> On Feb 17, 2017, at 07:23, Marcus Calhoun-Lopez <mcalh...@macports.org> wrote:
> 
> MarcusCalhoun-Lopez pushed a commit to branch master
> in repository macports-ports.
> 
> 
> https://github.com/macports/macports-ports/commit/c7a773046fd088bdfff557277384b28099f94406
> 
> commit c7a773046fd088bdfff557277384b28099f94406
> 
> Author: Marcus Calhoun-Lopez <mcalh...@macports.org>
> AuthorDate: Fri Feb 17 05:46:51 2017 -0700
> 
>     qt5*: add openssl variant
>     
>     Some users might not want to use OpenSSL because
>     of licensing issues with GPL.
>     See 
> https://lists.macports.org/pipermail/macports-dev/2017-January/thread.html#35234
>     See https://trac.macports.org/ticket/53369
>     See http://doc.qt.io/qt-5/qtnetwork-index.html#licenses-and-attributions
>     
>     Some users may have LibreSSL installed, which conflicts with OpenSSL
>     and is currently incompatible with Qt.
>     See https://trac.macports.org/ticket/51358


> +            variant openssl description {Use OpenSSL instead of Secure 
> Transport} {
> +                configure.args-delete -securetransport -no-openssl
> +                configure.args-append -openssl-linked
> +                depends_lib-append path:lib/libssl.dylib:openssl
> +                # see https://trac.macports.org/ticket/51358
> +                conflicts-append libressl libressl-devel
> +            }
> +            default_variants-append +openssl

Hmm. The "conflicts" keyword is for activation-time conflicts. For example, 
glib2 and glib2-devel install (different versions of) the same files to the 
same locations, so glib2 says "conflicts glib2-devel" and glib2-devel says 
"conflicts glib2".

The "conflicts_build" keyword (from the conflicts_build 1.0 portgroup) is for 
build-time conflicts. For example, magic fails to build if gnome-keyring is 
active, so it says "conflicts_build gnome-keyring".

In this case, you have a dependency on "path:lib/libssl.dylib:openssl" which 
means you can work with any port that provides lib/libssl.dylib. But this 
appears not to be true. If you require openssl, and don't work with libressl, 
then you should just declare the dependency as "port:openssl" and remove the 
conflicts keyword.

IMHO the real problem is that libressl installs files to the same locations as 
openssl and claims to be a drop-in replacement for openssl, but isn't. libressl 
should be changed to install to different locations, should not conflict with 
openssl, and any port that links with openssl should be changed to have 
variants for openssl and libressl. But this is a lot of work.




Reply via email to