it should be rather something like : libressl? ( dev-libs/libressl[static-libs(+)] ) openssl? ( !libressl ( dev-libs/openssl:0[static-libs(+)] ) and matching logic in the configure flags and REQUIRED_USE fixes as given on #gentoo-dev and https://wiki.gentoo.org/wiki/Project:LibreSSL has suggestions for USE flag stuff
The whole thing could really use doing without REQUIRED_USE exactly-one-of trouble. Maybe design how older mesa did - https://gitweb.gentoo.org/repo/gentoo.git/tree/media-libs/mesa/mesa-13.0.6.ebuild?id=eafb362ed66f981ebd20b5a13c7737cb54f6a062#n106
Patches are welcome. To be honest, I have no idea what crypto implementation should be preferred in order to get rid of REQUIRED_USE...
Since patches are welcome, will whoever write the patch just choose one default implementation to use or is there a cleaner way around this? It seems that deciding on any default is always tied to lots of stress, so I somehow don't think anyone will ever provide patches for this. I was - in fact - going to try and provide one, but better to ask before my patch is shot down by someone whose preferred default implementation does not align with mine. As a libressl user, I would like to see this fixed soon, and I am definitely ready to provide help - given that anything I provide is actually taken into consideration.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e7b28e2545c9e3fb8f68f32899f10187f2da5b25 commit e7b28e2545c9e3fb8f68f32899f10187f2da5b25 Author: Aaron Bauman <bman@gentoo.org> AuthorDate: 2018-04-11 04:40:48 +0000 Commit: Lars Wendler <polynomial-c@gentoo.org> CommitDate: 2018-04-11 07:27:54 +0000 net-misc/iputils: fix ipv6 dependency logic and drop REQUIRED_USE This revision bump adjusts the logic for OpenSSL and LibreSSL ensuring that the libressl flag is not dependent on the openssl flag being set. Also, this revision bump removes the requirement for REQUIRED_USE and defaults to dev-libs/openssl if no user flags are set. OpenSSL was chosen as it is the current default provider for a stage3. Should the libressl project decide to build a stage3 this can also be easily adjusted in profiles without ebuild modifications. Bug: https://bugs.gentoo.org/643304 Package-Manager: Portage-2.3.28, Repoman-2.3.9 Closes: https://github.com/gentoo/gentoo/pull/7937 net-misc/iputils/iputils-20171016_pre-r1.ebuild | 179 ++++++++++++++++++++++++ 1 file changed, 179 insertions(+)}
Fails for me, I have openssl USE flag set: emerge -pvuDN @world These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] net-misc/iputils-20171016_pre-r1::gentoo [20171016_pre::gentoo] USE="arping caps filecaps ipv6 ssl -SECURITY_HAZARD -clockdiff -doc -gcrypt -idn -libressl -nettle -rarpd -rdisc -static -tftpd -tracepath -traceroute (-openssl%*)" 0 KiB And during emerge: >>> Source prepared. >>> Configuring source in /var/tmp/portage/net-misc/iputils-20171016_pre-r1/work/iputils-67e7d0daf1f231cc708217e6aec2f8d5ce7aeacf ... * ERROR: net-misc/iputils-20171016_pre-r1::gentoo failed (configure phase): * USE Flag 'openssl' not in IUSE for net-misc/iputils-20171016_pre-r1 * * Call stack: * ebuild.sh, line 124: Called src_configure * environment, line 2453: Called usex 'openssl' * phase-helpers.sh, line 208: Called use 'openssl' * phase-helpers.sh, line 247: Called die * The specific snippet of code: * die "USE Flag '${u}' not in IUSE for ${CATEGORY}/${PF}" * * If you need support, post the output of `emerge --info '=net-misc/iputils-20171016_pre-r1::gentoo'`, * the complete build log and the output of `emerge -pqv '=net-misc/iputils-20171016_pre-r1::gentoo'`. * The complete build log is located at '/var/tmp/portage/net-misc/iputils-20171016_pre-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/net-misc/iputils-20171016_pre-r1/temp/environment'. * Working directory: '/var/tmp/portage/net-misc/iputils-20171016_pre-r1/work/iputils-67e7d0daf1f231cc708217e6aec2f8d5ce7aeacf' * S: '/var/tmp/portage/net-misc/iputils-20171016_pre-r1/work/iputils-67e7d0daf1f231cc708217e6aec2f8d5ce7aeacf'
Lets adjust the actual configuration part as well please... >>> Configuring source in /tmp/portage/net-misc/iputils-20171016_pre-r1/work/iputils-67e7d0daf1f231cc708217e6aec2f8d5ce7aeacf ... * ERROR: net-misc/iputils-20171016_pre-r1::gentoo failed (configure phase): * USE Flag 'openssl' not in IUSE for net-misc/iputils-20171016_pre-r1 I think changing USE_CRYPTO=$(usex openssl) to USE_CRYPTO=$(usex ssl) or USE_CRYPTO=yes might be sufficient, maybe moved to the end of the 3 for being more clear. That's because iputils Makefile actually checks the USE flags in order by itself, thus if USE=gcrypt is set, only that will be picked, if USE=nettle is set, that will be picked (if gcrypt wasn't already), otherwise openssl/libressl is picked if USE_CRYPTO is set but not the others. Re-checking that logic appreciated (and maybe conversion to use meson instead too..)
Emerges OK with USE_CRYPTO=$(usex ssl).
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=84a612ae902ed90b13887a252b9ed81c57c15712 commit 84a612ae902ed90b13887a252b9ed81c57c15712 Author: Thomas Deutschmann <whissi@gentoo.org> AuthorDate: 2018-04-11 11:40:22 +0000 Commit: Thomas Deutschmann <whissi@gentoo.org> CommitDate: 2018-04-11 11:40:22 +0000 net-misc/iputils: Fix IUSE ...and update live ebuild with recent changes. Closes: https://bugs.gentoo.org/643304 Package-Manager: Portage-2.3.28, Repoman-2.3.9 net-misc/iputils/iputils-20171016_pre-r1.ebuild | 20 +++++++++++--------- net-misc/iputils/iputils-99999999.ebuild | 25 ++++++++++++++----------- 2 files changed, 25 insertions(+), 20 deletions(-)