'emerge -vt --update --newuse --deep --with-bdeps=y --backtrack=30 world' fails with: ... [nomerge ] www-apps/mediawiki-1.27.1:1.27.1::gentoo USE="imagemagick mysql postgres sqlite -vhosts" [nomerge ] virtual/httpd-php-7.0:7.0::gentoo [ebuild N ] dev-lang/php-7.0.13:7.0::gentoo USE="apache2 berkdb bzip2 calendar cgi cli crypt ctype curl exif fileinfo filter fpm ftp gd gdbm gmp hash iconv imap ipv6 json kerberos ldap mysql mysqli nls odbc opcache pcntl pdo phar posix postgres readline session simplexml snmp soap sockets spell sqlite ssl systemd threads tidy tokenizer truetype unicode xml xmlreader xmlrpc xmlwriter xpm zip zlib -bcmath -cdb -cjk -debug -embed -enchant (-firebird) -flatfile (-frontbase) -inifile -intl -iodbc -ldap-sasl -libedit -libressl -mhash -mssql -oci8-instant-client -phpdbg -qdbm -recode (-selinux) -sharedmem -sysvipc -wddx -webp -xslt" 0 KiB [ebuild N ] dev-lang/php-7.1.0:7.1::gentoo USE="apache2 berkdb bzip2 calendar cgi cli crypt ctype curl exif fileinfo filter fpm ftp gd gdbm gmp hash iconv imap ipv6 json kerberos ldap mysql mysqli nls odbc opcache pcntl pdo phar posix postgres readline session simplexml snmp soap sockets spell sqlite ssl systemd threads tidy tokenizer truetype unicode xml xmlreader xmlrpc xmlwriter xpm zip zlib -bcmath -cdb -cjk -debug -embed -enchant (-firebird) -flatfile (-frontbase) -inifile -intl -iodbc -ldap-sasl -libedit -libressl -mhash -mssql -oci8-instant-client -phpdbg -qdbm -recode (-selinux) -sharedmem -sysvipc {-test} -wddx -webp -xslt" 12,494 KiB ... * Error: The above package list contains packages which cannot be * installed at the same time on the same system. (app-text/htmltidy-20090325-r2:0/0::gentoo, ebuild scheduled for merge) pulled in by app-text/htmltidy required by (dev-lang/php-7.0.13:7.0/7.0::gentoo, ebuild scheduled for merge) app-text/htmltidy required by (dev-python/utidylib-0.3:0/0::gentoo, ebuild scheduled for merge) (app-text/tidy-html5-5.2.0:0/0::gentoo, installed) pulled in by app-text/tidy-html5 required by (dev-lang/php-7.1.0:7.1/7.1::gentoo, ebuild scheduled for merge)
Hmmm, I didn't consider this when I changed the dependencies of php:7.1. In the 7.0 series, we depend on app-text/htmltidy, because that's all that upstream supports. In 7.1, upstream supports both, but I opted to accept only app-text/tidy-html5, because app-text/htmltidy was abandoned and has unfixed security problems (see bug #564884). I guess we have three choices: 1. Do nothing. Users can't install php:7.0 and php:7.1 at the same time with USE=tidy. 2. Try to backport the patch (I wrote it) for php:7.1 to php:7.0. This is the nicest for users, but means we have to carry an unofficial patch for a few years. 3. Let php:7.1 use htmltidy as well. This is the easiest, but perpetuates the use of a library we're trying to get rid of. I'm leaning towards #3, but I'll think about it.
I took the lazy way out for now and followed upstream. If htmltidy's situation becomes more dire, I'll reconsider. commit 685ee720dc8485bdfa3e513daa5b5b8f07d047d0 Author: Michael Orlitzky <mjo@gentoo.org> Date: Thu Dec 8 19:35:40 2016 -0500 dev-lang/php: allow app-text/htmltidy in php:7.1. To help phase out the abandoned and buggy app-text/htmltidy, I tried to make the new php:7.1 depend on app-text/tidy-html5 instead. However, since older versions of PHP do not support tidy-html5, that causes a problem: php:7.1 cannot be installed alongside the older versions when USE=tidy is set for both of them. This solution is somewhat of a cop out, allowing htmltidy to be used in php:7.1 as a last resort. The alternative would have been to backport the tidy-html5 support to (both) older versions of PHP. That may eventually become necessary if it looks like htmltidy will be masked for removal; however, for now, this is the path of least resistance. Gentoo-Bug: 601614 Package-Manager: portage-2.3.0