The ebuild for net-p2p/transmission-1.76 depends on >=net-misc/curl-7.16.3[ssl]. curl has moved to the 'openssl' use flag, as of -7.19.7 and therefore transmission keeps trying to pull curl down to 7.19.6. A new ebuild should be made that depends on the old curl spec OR on the new version without [ssl]. Reproducible: Always Steps to Reproduce: 1. install =net-misc/curl-7.19.7 2. install =net-p2p/transmission-1.76 3. watch the badness Actual Results: Suggests downgrade of curl to 7.19.6. Expected Results: Used the up-to-date curl with the new use flags. This may or may not happen with portage. I have only verified it with paludis (and it keeps oscillating between the two versions which is REALLY annoying).
Looks like curl's ebuild is totally broken, it doesn't respect [ssl] anymore and is using local use flag openssl instead of ssl. Also this change was made without checking reverse dependencies. Please revert it soon as possible.
(In reply to comment #1) > Looks like curl's ebuild is totally broken, exaggeration? > it doesn't respect [ssl] anymore so? ssl was just confusion and not really indicitave. > and is using local use flag openssl instead of ssl. Also this change was made > without checking reverse dependencies. Please revert it soon as possible. I'm not willing to revert based on this. net-im/centerim/centerim-4.22.8.ebuild was the only fix I saw at the time so sorry for missing this one. The same approach of it should work. || ( <net-misc/curl-7.19.7[ssl] >=net-misc/curl-7.19.7[openssl] >=net-misc/curl-7.19.7[gnutls] >=net-misc/curl-7.19.7[nss] ) dev-util/cmake/cmake-2.8.0.ebuild may need the same fix.
I think in the tree so far ssl use flag has marked using the default implementation and then other flags exist for other implementations. I think we should keep the behavior in the tree consistent. See: qgrep -eH "IUSE.*gnutls" | grep ssl
as mentioned on the mailing list, if a package (like curl) has multiple implementations for ssl support, then it may add more USE flags to control behavior. but blatantly ignoring the *generic* ssl USE flag is wrong. i dont know what the upstream preference is with curl, but there are many possible ways of doing this right: IUSE="ssl gnutls nss" - USE=ssl means "i want ssl support", and divining gnutls/nss/openssl preference is trivial based on the state of gnutls/nss IUSE="ssl openssl gnutls nss" - more pedantic, but USE=ssl means "enable ssl support" while the other flags explicitly select a provider ... if none are selected, then the default upstream preference is used
(In reply to comment #4) > behavior. but blatantly ignoring the *generic* ssl USE flag is wrong. ok, reasonable critizism. I'm leaving on a not-very internet connected holiday in <24hrs. I don't have time to fully fix this between now and then. Feel free to commit a fix.
did you have a preference as to which USE flag variant you'd like ?
Based on ebuild syntax i think gnutls is the preffered one.
(In reply to comment #7) > Based on ebuild syntax i think gnutls is the preferred one. thats the way i've historically done it and i'm happy for this to continue
that's not what i meant ... do you want to keep USE=openssl ?
Created attachment 221637 [details, diff] add ssl to use flags, defaults to gnutls what's the status on this? here's a hacked up patch ... works for me ..
Created attachment 223813 [details, diff] curl-ssl.patch i'm going to commit this patch if no one complains. it changes curl behavior to match upstream: openssl, then gnutls, then nss. you can see this preference in the configure.ac file itself: - it checks for openssl - if openssl not found, it checks for gnutls - if openssl + gnutls not found, it checks for nss so the variant i chose is IUSE="ssl gnutls nss". USE="ssl" controls whether SSL support is enabled at all (so other packages only need net-misc/curl[ssl]), while gnutls/nss states a preference over openssl.
Good patch. Maybe you should also smash users nose if he has -ssl and enables nss or gnutls with some ewarn?
added net-misc/curl-7.20.0-r1 with the proposed changes Tomáš: ive added an ewarn for USE=-ssl and USE=gnutls/USE=nss; thanks KDE: you'll probably want to update cmake requirements on gnutls to accept [ssl] and down the line, only depend on that USE flag