[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


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255007

            Bug ID: 255007
           Summary: www/qt5-webengine: 5.15.2 fails to build if 5.15.0 is
                    installed (link error)
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: kde at FreeBSD.org
          Reporter: jcfyecrayz at liamekaens.com
          Assignee: kde at FreeBSD.org
             Flags: maintainer-feedback?(kde at FreeBSD.org)

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)

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the kde-freebsd mailing list