This turned into a weird problem when trying to regression test slony, as it would keep installing 2 versions of postgres for each target. For instance, slony1-2.2.4 installed both dev-db/postgresql-9.5.7:9.5 and dev-db/postgresql-9.4.12:9.4 And slony-2.1.3 installed both dev-db/postgresql-9.5.7:9.5 and dev-db/postgresql-9.2.21:9.2 This appears to be a result of portage's interpretation of: DEPEND="|| ( dev-db/postgresql:9.4[server] dev-db/postgresql:9.3[server] dev-db/postgresql:9.2[server] dev-db/postgresql:9.1[server] dev-db/postgresql:9.0[server] ) dev-db/postgresql[threads] As the || ( ) only matches a non-latest version, and the last line *outside* the || ( ) matches the latest version. Which of course, is 2 postgres slots. I expect, following this pattern in the future, that: DEPEND="|| ( dev-db/postgresql:9.6 dev-db/postgresql:9.5 dev-db/postgresql:9.4 dev-db/postgresql:9.3 dev-db/postgresql:9.2 dev-db/postgresql:9.1 ) dev-db/postgresql[server,threads] perl? ( dev-perl/DBD-Pg ) " In slony1-2.2.5 will, after postgres:9.7 appears, install both postgres 9.7 and postgres 9.6 And this tends to create a little chaos for eselect ( a seperate problem I'll report when I have a better clue wtf is going on )
commit 5e6704a19a5161f30ec02498b62a0af91de62c67 Author: Aaron W. Swenson <titanofold@gentoo.org> Date: Sun Jul 9 22:17:12 2017 -0400 dev-db/slony1: Use postgres-multi Now build and install against multiple versions. Use flag controlled dependency on the PostgreSQL slots eliminates too many slots being emerged. Bug: 399097, 623230 Package-Manager: Portage-2.3.6, Repoman-2.3.1