maintainer-feedback requested: [Bug 255007] www/qt5-webengine: 5.15.2 fails to build if 5.15.0 is installed (link error)

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Apr 12 16:49:34 BST 2021


Bugzilla Automation <bugzilla at FreeBSD.org> has asked freebsd-kde (Team)
<kde at 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)


More information about the kde-freebsd mailing list