Somehow gallery 2.3.1 doesn't offer the choice between mysql and any other dbm, but only can be installed with mysql support. IUSE="ffmpeg +gd imagemagick +mysql netpbm postgres raw sqlite unzip zip" should probably have the + removed from the mysql clause. Removing it and digesting the ebuild installs fine. Reproducible: Always Steps to Reproduce:
If I understand you correctly, INVALID. It needs to choose one, so it defaults to mysql, if you don't want that, add a proper entry in your package.use.
emerge: there are no ebuilds built with USE flags to satisfy "dev-lang/php[session,sqlite,postgres,mysql]". !!! One of the following packages is required to complete your request: - dev-lang/php-5.3.4 (Change USE: +mysql) (dependency required by "www-apps/gallery-2.3.1" [ebuild]) (dependency required by "gallery" [argument]) is what I get now, surely this can't be the proper behavior? I have to choose A database backend, If I set postgres via my useflags as my default database, gallery surely can just use that useflag and doesn't need a special override?
(In reply to comment #2) > I have to choose A > database backend, If I set postgres via my useflags as my default database, > gallery surely can just use that useflag and doesn't need a special override? > I didn't attach emerge --info, i don't know which USE flags have you set. And yes, if you don't have any flag to choose database (mysql or postgres or sqlite, in this case) default database is mysql for this ebuild. (And honestly, i don't know why mysql is choosen as default and why any database is choosen).
You are right, I should have been more specific, as it stands now however, you cannot run gallery without mysql, which is silly. Removing the + from mysql, and having postgres in the useflags installs and upgrades my 2.3 to 2.3.1 just fine.
No, you shouldn't and you don't have to edit ebuild. You didn't have to do it. Look at this example: 1. None database is selected via USE: emerge -pv gallery These are the packages that would be merged, in order: Calculating dependencies... done! emerge: there are no ebuilds built with USE flags to satisfy "dev-lang/php[mysql?,session,postgres?,sqlite?]". !!! One of the following packages is required to complete your request: - dev-lang/php-5.3.4 (Change USE: +mysql) - www-apps/gallery-2.3.1 (Change USE: -mysql) (dependency required by "www-apps/gallery-2.3.1" [ebuild]) (dependency required by "gallery" [argument]) Portage tries to use mysql as default database. Gallery for using mysql needs php to be compiled with "mysql" use flag. 2. I've set postgres via USE flag: USE="postgres" emerge -pv gallery These are the packages that would be merged, in order: Calculating dependencies... done! emerge: there are no ebuilds built with USE flags to satisfy "dev-lang/php[mysql?,session,postgres?,sqlite?]". !!! One of the following packages is required to complete your request: - dev-lang/php-5.3.4 (Change USE: +mysql) - www-apps/gallery-2.3.1 (Change USE: -mysql) (dependency required by "www-apps/gallery-2.3.1" [ebuild]) (dependency required by "gallery" [argument]) Portage knows that you want postgres, but prefer mysql over it :/ Yes, this is annoying. 3. I've enabled postgres and disabled mysql: USE="-mysql postgres" emerge -pv gallery These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] dev-libs/oniguruma-5.9.2 528 kB [ebuild N ] app-admin/webapp-config-1.50.16-r4 102 kB [ebuild N ] media-libs/t1lib-5.1.2 USE="X -doc" 1,829 kB [ebuild N ] app-admin/eselect-php-0.6.1 2 kB [ebuild N ] dev-libs/libmcrypt-2.5.8-r2 1,304 kB [ebuild N ] app-admin/apache-tools-2.2.16 USE="ssl" 4,664 kB [ebuild N ] www-servers/apache-2.2.16-r1 USE="ssl threads -debug -doc -ldap (-selinux) -static -suexec" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cgid dav deflate dir env expires ext_filter filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id usertrack vhost_alias -asis -auth_digest -authn_dbd -cache -cern_meta -cgi -charset_lite -dav_fs -dav_lock -dbd -disk_cache -dumpio -file_cache -ident -imagemap -log_forensic -mem_cache -proxy -proxy_ajp -proxy_balancer -proxy_connect -proxy_ftp -proxy_http -proxy_scgi -reqtimeout -substitute -userdir -version" APACHE2_MPMS="worker -event -itk -peruser -prefork" 63 kB [ebuild N ] virtual/httpd-cgi-0 0 kB [ebuild N ] app-text/aspell-0.60.6-r2 USE="nls -examples" LINGUAS="en es pl -af -be -bg -br -ca -cs -cy -da -de -el -eo -et -fi -fo -fr -ga -gl -he -hr -is -it -la -lt -nl -no -pt -pt_BR -ro -ru -sk -sl -sr -sv -uk -vi" 1,737 kB [ebuild N ] app-dicts/aspell-en-6.0.0 179 kB [ebuild N ] app-dicts/aspell-es-1.9a 130 kB [ebuild N ] app-dicts/aspell-pl-6.0.20061121.0 501 kB [ebuild N ] dev-lang/php-5.3.4 USE="apache2 bzip2 cli crypt ctype exif fileinfo filter ftp gd hash iconv ipv6 json nls phar posix postgres readline session simplexml spell ssl threads tokenizer truetype unicode xml zip zlib (-adabas) -bcmath -berkdb (-birdstep) -calendar -cdb -cgi -cjk -curl -curlwrappers -db2 (-dbmaker) -debug -doc -embed (-empress) (-empress-bcs) -enchant (-esoob) (-firebird) -flatfile -fpm (-frontbase) -gd-external -gdbm -gmp -imap -inifile -interbase -intl -iodbc -kerberos -kolab -ldap -ldap-sasl -libedit -mssql -mysql -mysqli -mysqlnd -oci8 -oci8-instant-client -odbc -pcntl -pdo -pic -qdbm -recode -sapdb -sharedext -sharedmem -snmp -soap -sockets (-solid) -sqlite -sqlite3 (-sybase-ct) -sysvipc -tidy -wddx -xmlreader -xmlrpc -xmlwriter -xpm -xsl" 10,561 kB [ebuild N ] virtual/httpd-php-5.3 0 kB [ebuild N ] www-apps/gallery-2.3.1 USE="gd postgres zip -ffmpeg -imagemagick -mysql -netpbm -raw -sqlite -unzip -vhosts" 14,224 kB Total: 15 packages (15 new), Size of downloads: 35,816 kB Voila! I can emerge gallery with postgres as default database. Imho, bug for me: dependency in ebuild should be satisfacted if one (and only one) database is choosen via use flag. Ebuild shouldn't requires to add "-mysql", it's needless USE flag for me.
I can't find the exact source reference, but the usual reason for +useflags in cases like this is that without *a* backend app would fail to work, so package maintainer chooses one as a default, so that if no relevant useflag is already set, the app would still work. As such the bug *is* INVALID - package.use *is* the proper way of dealing with the problem.
Agree, bug is invalid. ( I don't want to hijack bug. For me, if I have e.g. "sqlite" in USE (and i have not set "mysql" nor "postgres" nor "-mysql" nor "-postgres") it should be sufficient, without adding "-mysql".)
Marcin, I don't understand; you disagree, yet in your extra comment you do agree. "it should be sufficient, without adding "-mysql".)" I suppose I can add -mysql to my make.conf, but I thought that there was a better way of telling an ebuild it requires one of the db's, and the choice was up to the user, in e-builds. If not, I suppose a virtual/db would be better then defaulting to an arbitrary db.
Not to make.conf (unless you really want to), but to package.use. A default was required to not get a case of emerging a non working app. You don't like the default - useflags work fine.
echo "www-apps/gallery -mysql postgres" >> /etc/portage/package.use
I can see the need for a virtual/db class though for exactly this case. I'll add -mysql to my make.conf as I don't want mysql ever installed.