Quoting Jan Beich <[email protected]> (from Mon, 24 Jul 2023 14:50:48 +0200):
Alexander Leidinger <[email protected]> writes:Quoting Jan Beich <[email protected]> (from Mon, 24 Jul 2023 13:52:43 +0200):Alexander Leidinger <[email protected]> writes:Hi, a build with non-standard port options (mostly nox11 und related stuff for a headless system, except for some ports where this doesn't work) is giving me an unresolved symbol in libQt6WebEngineCore.so.6.4.2. This symbol is _ZN7sandbox6policy12SandboxLinux11GetInstanceEv. I'm seeking some insight where this symbol comes from, so it would be nice if someone could report back if their libQt6WebEngineCore.so.6.4.2 also has this symbol as unresolved and which libary does provide this symbol via: find /usr/local/lib -type f -print0 | xargs -0 nm -dynamic --print-file-name | grep SandboxLinuxThe symbol is defined by WebEngine itself. $ cd www/qt6-webengine $ make clean patch $ cd `make -V WRKSRC` $ rg -lF 'SandboxLinux::GetInstance() {' src/3rdparty/chromium/sandbox/policy/linux/sandbox_linux.cc src/3rdparty/chromium/sandbox/policy/openbsd/sandbox_openbsd.cc src/3rdparty/chromium/sandbox/policy/freebsd/sandbox_freebsd.ccThat doesn't sound promising. The qt6-webengine build succeeded, but this symbol is missing... :( As the port only has the audio options, it's not some direct influence which is causing it, but some indirect dependency on something in the dependecy chain I would assume.If -Wl,--no-undefined (or -Wl,-z,defs) isn't passed then DSOs are allowed to have unresolved references. This is useful for plugins unlike shared libraries.
But then the sandbox code should be linked in even if there are some symbols (e.g. from X11) not available...
I had a look at the faq and explanation of the sandbox at chromium.googlesource.com, but I didn't see any low level stuff which could help to identify why it isn't in the lib.Check the build glue and/or ifdefs. src/3rdparty/chromium/sandbox/policy/BUILD.gn: if ((is_linux || is_chromeos) && !is_bsd) { sources += [ ... "linux/sandbox_linux.cc", "linux/sandbox_linux.h", ... ] ... } if (is_openbsd) { sources += [ "openbsd/sandbox_openbsd.cc", "openbsd/sandbox_openbsd.h", ] ... } # Required to avoid assertion errors during build of QtPDF if (is_freebsd && ozone_platform_x11) { sources += [ "freebsd/sandbox_freebsd.cc", "freebsd/sandbox_freebsd.h", ] ... } src/3rdparty/chromium/build/config/ozone.gni: } else if (is_linux && !is_bsd) { ozone_platform = "x11" ozone_platform_wayland = true ozone_platform_x11 = true } else if (is_openbsd) { ozone_platform = "x11" ozone_platform_wayland = false ozone_platform_x11 = true } else if (is_freebsd) { ozone_platform = "x11" ozone_platform_wayland = true ozone_platform_x11 = true
In general I have X11 and wayland disabled in the port options, except in some strategic places which resulted in build failures before. Seems some ports have changed regarding this and I need to find out what causes the sandbox code not to be included. I see references to X11 libs in the webengine libs, so :
---snip---
/usr/local/lib/qt6/libQt6WebEngineCore.so.6.4.2:
libthr.so.3 => /lib/libthr.so.3 (0x2762513e0000)
libnss3.so => /usr/local/lib/libnss3.so (0x27625c482000)
libsmime3.so => /usr/local/lib/libsmime3.so (0x27625bb0c000)
libnssutil3.so => /usr/local/lib/libnssutil3.so (0x27625d457000)
libplds4.so => /usr/local/lib/libplds4.so (0x27625dd34000)
libplc4.so => /usr/local/lib/libplc4.so (0x27625ef9f000)
libnspr4.so => /usr/local/lib/libnspr4.so (0x27625e740000)
libdl.so.1 => /usr/lib/libdl.so.1 (0x27625fb67000)
libkvm.so.7 => /lib/libkvm.so.7 (0x2762606d3000)
libexecinfo.so.1 => /usr/lib/libexecinfo.so.1 (0x276260b5a000)
libutil.so.9 => /lib/libutil.so.9 (0x2762625a6000)
libevent-2.1.so.7 => /usr/local/lib/libevent-2.1.so.7 (0x2762617bd000)
libz.so.6 => /lib/libz.so.6 (0x276263772000)
libjpeg.so.8 => /usr/local/lib/libjpeg.so.8 (0x276262755000)
libm.so.5 => /lib/libm.so.5 (0x2762646e6000)
libopus.so.0 => /usr/local/lib/libopus.so.0 (0x2762655ce000)
libavcodec.so.60 => /usr/local/lib/libavcodec.so.60 (0x276268c00000)
libavformat.so.60 => /usr/local/lib/libavformat.so.60 (0x276265730000)
libavutil.so.58 => /usr/local/lib/libavutil.so.58 (0x2762660a4000)
libopenh264.so.6 => /usr/local/lib/libopenh264.so.6 (0x276266a54000)
libvpx.so.8 => /usr/local/lib/libvpx.so.8 (0x27626773d000)
libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1
(0x2762689f2000)
libpng16.so.16 => /usr/local/lib/libpng16.so.16 (0x27626b144000)
libwebp.so.7 => /usr/local/lib/libwebp.so.7 (0x27626cfce000)
libwebpmux.so.3 => /usr/local/lib/libwebpmux.so.3 (0x27626a5c6000)
libwebpdemux.so.2 => /usr/local/lib/libwebpdemux.so.2 (0x27626bb60000)
libfreetype.so.6 => /usr/local/lib/libfreetype.so.6 (0x27626c01b000)
libexpat.so.1 => /usr/local/lib/libexpat.so.1 (0x27626dcb7000)
libharfbuzz-subset.so.0 =>
/usr/local/lib/libharfbuzz-subset.so.0 (0x27626ea2f000)
libharfbuzz.so.0 => /usr/local/lib/libharfbuzz.so.0 (0x2762705aa000)
libre2.so.10 => /usr/local/lib/libre2.so.10 (0x27626f387000)
libpci.so.3 => /usr/local/lib/libpci.so.3 (0x27626f463000)
libasound.so.2 => /usr/local/lib/libasound.so.2 (0x276270081000)
libsnappy.so.1 => /usr/local/lib/libsnappy.so.1 (0x276270948000)
libdbus-1.so.3 => /usr/local/lib/libdbus-1.so.3 (0x2762710e5000)
libminizip.so.1 => /usr/local/lib/libminizip.so.1 (0x276271fbe000)
libxml2.so.2 => /usr/local/lib/libxml2.so.2 (0x2762721a3000)
libxslt.so.1 => /usr/local/lib/libxslt.so.1 (0x276273082000)
liblcms2.so.2 => /usr/local/lib/liblcms2.so.2 (0x276273702000)
liblcms2_fast_float.so.1 =>
/usr/local/lib/liblcms2_fast_float.so.1 (0x276274ea1000)
liblcms2_threaded.so.1 =>
/usr/local/lib/liblcms2_threaded.so.1 (0x27627436e000)
libxkbcommon.so.0 => /usr/local/lib/libxkbcommon.so.0 (0x276275969000)
libQt6Quick.so.6 => /usr/local/lib/qt6/libQt6Quick.so.6
(0x276277400000)
libQt6OpenGL.so.6 => /usr/local/lib/qt6/libQt6OpenGL.so.6
(0x276276101000)
libQt6Gui.so.6 => /usr/local/lib/qt6/libQt6Gui.so.6 (0x276279800000)
libGLX.so.0 => /usr/local/lib/libGLX.so.0 (0x276276583000)
libOpenGL.so.0 => /usr/local/lib/libOpenGL.so.0 (0x276277e47000)
libQt6QmlModels.so.6 =>
/usr/local/lib/qt6/libQt6QmlModels.so.6 (0x276278c81000)
libQt6WebChannel.so.6 =>
/usr/local/lib/qt6/libQt6WebChannel.so.6 (0x27627ab7f000)
libQt6Qml.so.6 => /usr/local/lib/qt6/libQt6Qml.so.6 (0x27627bcaf000)
libQt6Network.so.6 => /usr/local/lib/qt6/libQt6Network.so.6
(0x27627dbf9000)
libQt6Positioning.so.6 =>
/usr/local/lib/qt6/libQt6Positioning.so.6 (0x27627b9e2000)
libQt6Core.so.6 => /usr/local/lib/qt6/libQt6Core.so.6 (0x276280c00000)
libc++.so.1 => /lib/libc++.so.1 (0x27627c956000)
libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x27627d0c5000)
libc.so.7 => /lib/libc.so.7 (0x276250578000)
libelf.so.2 => /lib/libelf.so.2 (0x27624f87e000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x27627ebf0000)
libswresample.so.4 => /usr/local/lib/libswresample.so.4
(0x27627ede6000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0x27627f993000)
libdav1d.so.6 => /usr/local/lib/libdav1d.so.6 (0x276280480000)
libaom.so.3 => /usr/local/lib/libaom.so.3 (0x276283150000)
libjxl.so.0.8 => /usr/local/lib/libjxl.so.0.8 (0x276281212000)
libjxl_threads.so.0.8 => /usr/local/lib/libjxl_threads.so.0.8
(0x27628257f000)
libSvtAv1Enc.so.1 => /usr/local/lib/libSvtAv1Enc.so.1 (0x276284903000)
libtheoraenc.so.1 => /usr/local/lib/libtheoraenc.so.1 (0x27628532b000)
libtheoradec.so.1 => /usr/local/lib/libtheoradec.so.1 (0x276285980000)
libvorbis.so.0 => /usr/local/lib/libvorbis.so.0 (0x27628723d000)
libvorbisenc.so.2 => /usr/local/lib/libvorbisenc.so.2 (0x276286835000)
libx264.so.164 => /usr/local/lib/libx264.so.164 (0x27628783e000)
libx265.so.192 => /usr/local/lib/libx265.so.192 (0x276288ea2000)
libSvtHevcEnc.so.1 => /usr/local/lib/libSvtHevcEnc.so.1
(0x27628c800000)
libxvidcore.so.4 => /usr/local/lib/libxvidcore.so.4 (0x276288596000)
libbz2.so.4 => /usr/lib/libbz2.so.4 (0x27628ac62000)
libgmp.so.10 => /usr/local/lib/libgmp.so.10 (0x27628b80f000)
libgnutls.so.30 => /usr/local/lib/libgnutls.so.30 (0x27628d983000)
libdrm.so.2 => /usr/local/lib/libdrm.so.2 (0x27628deae000)
libsharpyuv.so.0 => /usr/local/lib/libsharpyuv.so.0 (0x27628efdf000)
libbrotlidec.so.1 => /usr/local/lib/libbrotlidec.so.1 (0x27628edb4000)
libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0x27628f2b7000)
libgraphite2.so.3 => /usr/local/lib/libgraphite2.so.3 (0x27629100c000)
librt.so.1 => /usr/lib/librt.so.1 (0x27628fc7a000)
libicui18n.so.73 => /usr/local/lib/libicui18n.so.73 (0x27628fd28000)
libicuuc.so.73 => /usr/local/lib/libicuuc.so.73 (0x276291f0d000)
libicudata.so.73 => /usr/local/lib/libicudata.so.73 (0x27629365e000)
libEGL.so.1 => /usr/local/lib/libEGL.so.1 (0x27629274b000)
libQt6DBus.so.6 => /usr/local/lib/qt6/libQt6DBus.so.6 (0x2762943b6000)
libgthread-2.0.so.0 => /usr/local/lib/libgthread-2.0.so.0
(0x276294d4c000)
libGLdispatch.so.0 => /usr/local/lib/libGLdispatch.so.0
(0x276295966000)
libX11.so.6 => /usr/local/lib/libX11.so.6 (0x276295ed1000)
libzstd.so.1 => /usr/local/lib/libzstd.so.1 (0x276296f08000)
libdouble-conversion.so.3 =>
/usr/local/lib/libdouble-conversion.so.3 (0x276298932000)
libpcre2-16.so.0 => /usr/local/lib/libpcre2-16.so.0 (0x2762976cc000)
libmd.so.6 => /lib/libmd.so.6 (0x276297e94000)
libhwy.so.1 => /usr/local/lib/libhwy.so.1 (0x276298ca4000)
libbrotlienc.so.1 => /usr/local/lib/libbrotlienc.so.1 (0x27629a1f8000)
libogg.so.0 => /usr/local/lib/libogg.so.0 (0x27629913d000)
libintl.so.8 => /usr/local/lib/libintl.so.8 (0x276299b34000)
libp11-kit.so.0 => /usr/local/lib/libp11-kit.so.0 (0x27629afc4000)
libunistring.so.5 => /usr/local/lib/libunistring.so.5 (0x27629b413000)
libtasn1.so.6 => /usr/local/lib/libtasn1.so.6 (0x27629c8c1000)
libnettle.so.8 => /usr/local/lib/libnettle.so.8 (0x27629bef7000)
libhogweed.so.6 => /usr/local/lib/libhogweed.so.6 (0x27629cf3b000)
libbrotlicommon.so.1 => /usr/local/lib/libbrotlicommon.so.1
(0x27629dea6000)
libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x27629ee92000)
libpcre2-8.so.0 => /usr/local/lib/libpcre2-8.so.0 (0x27629f868000)
libxcb.so.1 => /usr/local/lib/libxcb.so.1 (0x2762a0c13000)
libffi.so.8 => /usr/local/lib/libffi.so.8 (0x2762a0843000)
libXau.so.6 => /usr/local/lib/libXau.so.6 (0x2762a1921000)
libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6 (0x2762a214f000)
---snip---
Bye,
Alexander.
--
http://www.Leidinger.net [email protected]: PGP 0x8F31830F9F2772BF
http://www.FreeBSD.org [email protected] : PGP 0x8F31830F9F2772BF
pgpmS842g2bBD.pgp
Description: Digitale PGP-Signatur
