Opened 9 years ago

Closed 8 years ago

Last modified 3 years ago

#51358 closed defect (invalid)

qt5-base fails to build with libressl

Reported by: bK4gYuRo Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version: 2.3.4
Keywords: Cc: chrstphrchvz (Christopher Chavez)
Port: qt5-qtbase

Description

qt5-base fails to build on Yosemite with libressl 2.3.4 with the following error:

:info:build /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -st
dlib=libc++ -I/opt/local/include/dbus-1.0 -I/opt/local/lib/dbus-1.0/include -O2 -std=c++1z -isysroot /Applications/Xcod
e.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -mmacosx-version-min=10.10 -fno-excep
tions -Wall -W -fPIC -DQT_NO_MTDEV -DQT_NO_LIBUDEV -DQT_NO_EVDEV -DQT_NO_TSLIB -DQT_NO_LIBINPUT -DQT_NO_CAST_FROM_ASCII
 -DQT_USE_QSTRINGBUILDER -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_DBUS_LIB -DQT_
CORE_LIB -I. -I../moc -I../../../include/QtDBus/5.6.0 -I../../../include/QtDBus/5.6.0/QtDBus -I../../../include/QtCore/
5.6.0 -I../../../include/QtCore/5.6.0/QtCore -I../../../include -I../../../include/QtDBus -I../../../include/QtCore -I.
moc -I../../../mkspecs/macx-clang -F/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_re
lease_tarballs_ports_aqua_qt5/qt5-qtbase/work/qtbase-opensource-src-5.6.0/lib -o .obj/qdbuscpp2xml.o qdbuscpp2xml.cpp
:info:build ssl/qsslcontext_openssl.cpp:349:33: error: use of undeclared identifier 'SSL_CTRL_SET_CURVES'
:info:build                                 SSL_CTRL_SET_CURVES,
:info:build                                 ^
:info:build 1 error generated.

Potential workaround is documented here: https://github.com/libressl-portable/openbsd/issues/33

I would need help to create and try a patch based on the workaround

Attachments (1)

main.log (1.9 MB) - added by bK4gYuRo 9 years ago.
build log

Download all attachments as: .zip

Change History (11)

Changed 9 years ago by bK4gYuRo

Attachment: main.log added

build log

comment:1 Changed 9 years ago by bK4gYuRo

Sorry, I mistyped port name, it's qt5-qtbase

comment:2 Changed 9 years ago by mf2k (Frank Schima)

Keywords: libressl removed
Owner: changed from macports-tickets@… to mcalhoun@…
Port: qt5-qtbase added; qt5-base removed

In the future, please Cc the port maintainers (port info --maintainers qt5-qtbase), if any.

comment:3 Changed 9 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Status: newassigned

According to the Qt mailing list and a related bug report (which has a patch), the conclusion seems to be that this is more or less an issue for LibreSSL to fix.
More recently,a patch was submitted to support LibreSSL, but it was rejected.
The current plan is to support LibreSSL more fully with a new backend.

I am inclined to wait for the upstream developers to come up with a solution and incorporate any fix they come up with.

comment:4 Changed 8 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: invalid
Status: assignedclosed

For the time being, let us close this ticket.
We can revisit this issue if the upstream developers follow through with the plan to have some sort of support for libressl.

comment:5 Changed 8 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Has duplicate #52645.

comment:6 Changed 8 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

In c7a77304/macports-ports:

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.htmlhttps://github.com/macports/macports-ports/pull/35234
See #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 #51358

comment:7 Changed 3 years ago by RJVB (René Bertin)

So currently we see this in port:qt5 :

                # see https://trac.macports.org/ticket/51358
                #     for why not a path dependency
                depends_lib-append path:lib/libssl.dylib:openssl

And I think "for why not a path dependency" really means "for the reason why a path-style dependency should not be used" (and not "let's use one of those, because why not") ;)

comment:8 in reply to:  7 ; Changed 3 years ago by chrstphrchvz (Christopher Chavez)

Replying to RJVB:

So currently we see this in port:qt5 :

It was also passed down to qt511, qt513, and qt6.

                # see https://trac.macports.org/ticket/51358
                #     for why not a path dependency
                depends_lib-append path:lib/libssl.dylib:openssl

And I think "for why not a path dependency" really means "for the reason why a path-style dependency should not be used" (and not "let's use one of those, because why not") ;)

Marcus set it to use a port: dependency and left the comment saying why in [e527763022/macports-ports]. The contradiction appeared when Jeremy then changed it back to a path: dependency in [607997ade7/macports-ports], either unaware of Marcus’ comment or neglecting to remove/revise the comment.

What should be done now: remove the comment, or revert to port: dependency? Does LibreSSL now work with Qt?

comment:9 Changed 3 years ago by chrstphrchvz (Christopher Chavez)

Cc: chrstphrchvz added

comment:10 in reply to:  8 Changed 3 years ago by RJVB (René Bertin)

Replying to chrstphrchvz:

Does LibreSSL now work with Qt?

If memory serves me well, the Qt guys decided not to support libressl back in the day. I can't remember if that decision was ever explained publicly, but I could imagine it has to do with how they support OpenSSL. You can (or could) either build with a hard dependency on OpenSSL (linking the libs in), or with dynamic support where the libraries are loaded on demand. Supporting both modes with both SSL implementations might not be feasible, and not supporting both modes with all supported SSL implementations might be inaccetable for them. Long story short: I'd be surprised if they had changed their mind about this unless LibreSSL was suddenly poised to take over the world (?)

Note: See TracTickets for help on using tickets.