Bugzilla Automation <bugzi...@freebsd.org> has asked freebsd-kde (Team) <k...@freebsd.org> for maintainer-feedback: Bug 255007: www/qt5-webengine: 5.15.2 fails to build if 5.15.0 is installed (link error) https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255007
--- Description --- If qt5-webengine-5.15.0 is already installed in LOCALBASE, the build of www/qt5-webengine for 5.15.2 fails: /usr/local/bin/ld: .obj/qquickwebengineview.o: in function `QQuickWebEngineViewPrivate::runMouseLockP ermissionRequest(QUrl const&)': qquickwebengineview.cpp:(.text+0x250c): undefined reference to `QtWebEngineCore::WebContentsAdapter::grantMouseLockPermission(QUrl const&, bool)' /usr/local/bin/ld: .obj/qquickwebengineview.o: in function `QQuickWebEngineView::grantFeaturePermission(QUrl const&, QQuickWebEngineView::Feature, bool)': qquickwebengineview.cpp:(.text+0x4f55): undefined reference to `QtWebEngineCore::WebContentsAdapter::grantFeaturePermission(QUrl const&, QtWebEngineCore::ProfileAdapter::PermissionType, QtWebEngineCore::ProfileAdapter::PermissionState)' /usr/local/bin/ld: qquickwebengineview.cpp:(.text+0x4f72): undefined reference to `QtWebEngineCore::WebContentsAdapter::grantFeaturePermission(QUrl const&, QtWebEngineCore::ProfileAdapter::PermissionType, QtWebEngineCore::ProfileAdapter::PermissionState)' The offending link command (in .build/src/webengine) is: c++ -B/usr/local/bin -Wl,--as-needed -fstack-protector-strong -Wl,--no-undefined -Wl,--version-script,QtWebEngine.version -pthread -Wl,-rpath,/usr/local/lib/qt5 -Wl,-rpath-link,/usr/local/lib/qt5 -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQt5WebEngine.so.5 -o libQt5WebEngine.so.5.15.2 .obj/qquickwebengineaction.o .obj/qquickwebenginecertificateerror.o .obj/qquickwebengineclientcertificateselection.o .obj/qquickwebenginecontextmenurequest.o .obj/qquickwebenginedialogrequests.o .obj/qquickwebenginedownloaditem.o .obj/qquickwebenginehistory.o .obj/qquickwebenginefaviconprovider.o .obj/qquickwebengineloadrequest.o .obj/qquickwebenginenavigationrequest.o .obj/qquickwebenginenewviewrequest.o .obj/qquickwebengineprofile.o .obj/qquickwebenginescript.o .obj/qquickwebenginesettings.o .obj/qquickwebenginesingleton.o .obj/qquickwebenginetouchhandleprovider.o .obj/qquickwebengineview.o .obj/qtwebengineglobal.o .obj/render_widget_host_view_qt_delegate_quick.o .obj/render_widget_host_view_qt_delegate_quickwindow.o .obj/ui_delegates_manager.o .obj/moc_qquickwebengineaction_p.o .obj/moc_qquickwebenginecertificateerror_p.o .obj/moc_qquickwebengineclientcertificateselection_p.o .obj/moc_qquickwebenginecontextmenurequest_p.o .obj/moc_qquickwebenginedialogrequests_p.o .obj/moc_qquickwebenginedownloaditem_p.o .obj/moc_qquickwebenginehistory_p.o .obj/moc_qquickwebengineloadrequest_p.o .obj/moc_qquickwebenginenavigationrequest_p.o .obj/moc_qquickwebenginenewviewrequest_p.o .obj/moc_qquickwebengineprofile.o .obj/moc_qquickwebenginescript.o .obj/moc_qquickwebenginesettings_p.o .obj/moc_qquickwebenginesingleton_p.o .obj/moc_qquickwebengineview_p.o .obj/moc_render_widget_host_view_qt_delegate_quick.o -L/z1/local/users/jhein/.nobak/wd/usr/ports/www/qt5-webengine/work/.build/lib -L/usr/local/lib /usr/local/lib/qt5/libQt5WebEngineCore.so /usr/local/lib/qt5/libQt5Quick.so /usr/local/lib/qt5/libQt5Gui.so /usr/local/lib/qt5/libQt5QmlModels.so /usr/local/lib/qt5/libQt5WebChannel.so /usr/local/lib/qt5/libQt5Qml.so /usr/local/lib/qt5/libQt5Network.so /usr/local/lib/qt5/libQt5Positioning.so /usr/local/lib/qt5/libQt5Core.so /usr/local/lib/qt5/libQt5WebEngineCore.so /usr/local/lib/qt5/libQt5Quick.so /usr/local/lib/qt5/libQt5Gui.so /usr/local/lib/qt5/libQt5QmlModels.so /usr/local/lib/qt5/libQt5WebChannel.so /usr/local/lib/qt5/libQt5Qml.so /usr/local/lib/qt5/libQt5Network.so /usr/local/lib/qt5/libQt5Positioning.so /usr/local/lib/qt5/libQt5Core.so -lGL The important part is: ... -L/z1/local/users/jhein/.nobak/wd/usr/ports/www/qt5-webengine/work/.build/lib -L/usr/local/lib /usr/local/lib/qt5/libQt5WebEngineCore.so ... Note that we take care (if qt-dist.mk) to point to the work dir for linking before /usr/local/lib. But then the build bypasses that and links with the absolute path to libQt5WebEngineCore.so If we instead used -lQt5WebEngineCore, it works as desired. I know that building outside poudriere has become something of a second class citizen these days, but it would be nice to support it if the fix is not too hard to implement. Does anyone know where the absolute paths for libraries comes from? Might there be a way to tell the build to use -l<lib> instead? See also: bug 194088 (and probably bug 248585 and maybe others)