Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 616126

Summary: dev-lang/php-5.6.30 USE=sqlite disables sqlite support?
Product: Gentoo Linux Reporter: Liam Dennehy <liam>
Component: Current packagesAssignee: PHP Bugs <php-bugs>
Status: RESOLVED INVALID    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: ebuild diff for sqlite3 flag: original on left, new on right

Description Liam Dennehy 2017-04-20 14:58:26 UTC
Created attachment 470472 [details]
ebuild diff for sqlite3 flag: original on left, new on right

Setting the "sqlite" USE flag for dev-lang/php-5.6.30 does not translate into sqlite3 being enabled during the configure phase.

The ebuild does contain the line:
> $(use_with sqlite sqlite3 "${EPREFIX}/usr")
... and the configure option defaults to "--without-sqlite3", so this seems to be the line that translates from the generic sqlite flag to sqlite3 in the configure phase. However, setting the "sqlite" flag still generates this "--without-sqlite3" option.

I am not familiar enough with ebuild files to properly debug, but a local overlay with each instance of "sqlite" replaced with "sqlite3" causes the correct flag to be set ("--with-sqlite3=/usr" in my instance) (diff attached).

Since there does not appear to be sqlite2 support, using the "sqlite3" USE flag doesn't seem appropriate, but again my ebuild foo is not strong enough for this challenge so I'm using a local "sqlite3" flag that matches the modified ebuild.
Comment 1 Liam Dennehy 2017-04-20 15:04:35 UTC
PHP Configure flags result with normal "sqlite" USE flag set, showing sqlite3 disabled:

> phpinfo()
> ---snip---
> './configure' '--prefix=/usr' '--build=x86_64-pc-linux-gnu' '--host=x86_64-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--docdir=/usr/share/doc/php-5.6.30' '--htmldir=/usr/share/doc/php-5.6.30/html' '--prefix=/usr/lib64/php5.6' '--mandir=/usr/lib64/php5.6/man' '--infodir=/usr/lib64/php5.6/info' '--libdir=/usr/lib64/php5.6/lib' '--with-libdir=lib64' '--localstatedir=/var' '--without-pear' '--disable-maintainer-zts' '--with-fpm-acl' '--disable-bcmath' '--with-bz2=/usr' '--disable-calendar' '--disable-gcov' '--enable-ctype' '--with-curl=/usr' '--enable-dom' '--without-enchant' '--disable-exif' '--enable-fileinfo' '--enable-filter' '--disable-ftp' '--with-gettext=/usr' '--without-gmp' '--enable-hash' '--without-mhash' '--with-iconv' '--disable-intl' '--enable-ipv6' '--enable-json' '--without-kerberos' '--enable-libxml' '--with-libxml-dir=/usr' '--enable-mbstring' '--with-mcrypt=/usr' '--without-mssql' '--with-onig=/usr' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--disable-pcntl' '--enable-phar' '--enable-pdo' '--enable-opcache' '--without-pgsql' '--enable-posix' '--without-pspell' '--without-recode' '--enable-simplexml' '--disable-shmop' '--without-snmp' '--disable-soap' '--disable-sockets' '--without-sqlite3' '--without-sybase-ct' '--disable-sysvmsg' '--disable-sysvsem' '--disable-sysvshm' '--with-fpm-systemd' '--without-tidy' '--enable-tokenizer' '--disable-wddx' '--enable-xml' '--enable-xmlreader' '--enable-xmlwriter' '--without-xmlrpc' '--with-xsl=/usr' '--enable-zip' '--with-zlib=/usr' '--disable-debug' '--enable-dba' '--without-cdb' '--with-db4=/usr' '--disable-flatfile' '--with-gdbm=/usr' '--disable-inifile' '--without-qdbm' '--without-freetype-dir' '--without-t1lib' '--disable-gd-jis-conv' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--without-xpm-dir' '--without-vpx-dir' '--with-gd' '--without-interbase' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-mysql-sock=/var/run/mysqld/mysqld.sock' '--without-unixODBC' '--without-iodbc' '--without-oci8' '--without-pdo-dblib' '--with-pdo-mysql=mysqlnd' '--without-pdo-pgsql' '--without-pdo-sqlite' '--without-pdo-firebird' '--without-pdo-odbc' '--without-pdo-oci' '--with-readline=/usr' '--without-libedit' '--without-mm' '--with-pic' '--with-pcre-regex=/usr' '--with-pcre-dir=/usr' '--with-config-file-path=/etc/php/apache2-php5.6' '--with-config-file-scan-dir=/etc/php/apache2-php5.6/ext-active' '--disable-embed' '--disable-cli' '--disable-cgi' '--disable-fpm' '--with-apxs2=/usr/bin/apxs' 'build_alias=x86_64-pc-linux-gnu' 'host_alias=x86_64-pc-linux-gnu' 'CFLAGS=-O2 '-pipe'' 'LDFLAGS=-Wl,-O1 '-Wl,--as-needed'' 'CPPFLAGS=' 'CXXFLAGS=-O2 '-pipe'' 
> ---snip---

Partial output from "equery u" for the above build
> $ equery u
> ---snip---
> - - spell               : Add dictionary support
> + + sqlite              : Add support for sqlite - embedded sql database
> + + ssl                 : Add support for Secure Socket Layer connections
> ---snip---
Comment 2 Brian Evans (RETIRED) gentoo-dev 2017-04-20 15:12:45 UTC
Please show evidence by attaching the build.log from doing 'ebuild /usr/portage/dev-lang/php/php-5.6.30.ebuild clean configure'

It does not happen here.


FWIW.. $(use_with sqlite sqlite3 "${EPREFIX}/usr") means:
when sqlite USE is enabled, output --with-sqlite3="${EPREFIX}/usr"
when sqlite USE is disabled, output --without-sqlite3
Comment 3 Brian Evans (RETIRED) gentoo-dev 2017-04-20 16:09:54 UTC
Alternatively, providing 'emerge --info =dev-lang/php-5.6.30' may provide clues as well
Comment 4 Liam Dennehy 2017-04-26 08:48:45 UTC
After reverting my changes and re-emergeing I am unable to replicate the issue, and SQLite3 class is available in PHP with the original USE flag set.

Rather annoying, as far as I can tell this genuinely happened in the first instance. Am never satisfied when an issue "magically" resolves itself, especially when it's entirely possible PEBKAC.