[macports-ports] 01/03: qt5*: add openssl variant

Ryan Schmidt ryandesign at macports.org
Sat Feb 18 02:37:50 UTC 2017


> On Feb 17, 2017, at 07:23, Marcus Calhoun-Lopez <mcalhoun at 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 <mcalhoun at 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.






More information about the macports-dev mailing list