Created attachment 895520 [details] build log obs-studio is now failing to compile on musl system when the browser USE flag is set. FAILED: plugins/obs-browser/CMakeFiles/obs-browser-page.dir/browser-app.cpp.o /usr/bin/x86_64-gentoo-linux-musl-g++ -DENABLE_HEVC -I/var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser -I/var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser/deps -I/var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser/obs-browser-page -isystem /var/tmp/portage/media-video/obs-studio-30.1.1/work/cef_binary_5060_linux_x86_64 -O2 -pipe -march=native -std=c++17 -Wextra -Wvla -Wswitch -Wno-error=switch -Wformat -Wformat-security -Wunused-parameter -Wno-unused-function -Wno-missing-field-initializers -fno-strict-aliasing -Wconversion-null -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -MD -MT plugins/obs-browser/CMakeFiles/obs-browser-page.dir/browser-app.cpp.o -MF plugins/obs-browser/CMakeFiles/obs-browser-page.dir/browser-app.cpp.o.d -o plugins/obs-browser/CMakeFiles/obs-browser-page.dir/browser-app.cpp.o -c /var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser/browser-app.cpp /var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser/browser-app.cpp: In member function 'virtual bool BrowserApp::Execute(const CefString&, CefRefPtr<CefV8Value>, const CefV8ValueList&, CefRefPtr<CefV8Value>&, CefString&)': /var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser/browser-app.cpp:432:22: error: 'u_long' was not declared in this scope; did you mean 'long'? 432 | for (u_long l = 0; l < arguments.size(); l++) { | ^~~~~~ | long /var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser/browser-app.cpp:432:36: error: 'l' was not declared in this scope 432 | for (u_long l = 0; l < arguments.size(); l++) { | ^ /var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser/browser-app.cpp:433:31: error: expected ';' before 'pos' 433 | u_long pos; | ^~~~ | ; /var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser/browser-app.cpp:435:33: error: 'pos' was not declared in this scope; did you mean 'pow'? 435 | pos = l; | ^~~ | pow /var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser/browser-app.cpp:437:33: error: 'pos' was not declared in this scope; did you mean 'pow'? 437 | pos = l + 1; | ^~~ | pow /var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser/browser-app.cpp:440:49: error: 'pos' was not declared in this scope; did you mean 'pow'? 440 | args->SetString(pos, | ^~~ | pow /var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser/browser-app.cpp:443:46: error: 'pos' was not declared in this scope; did you mean 'pow'? 443 | args->SetInt(pos, arguments[l]->GetIntValue()); | ^~~ | pow /var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser/browser-app.cpp:445:47: error: 'pos' was not declared in this scope; did you mean 'pow'? 445 | args->SetBool(pos, | ^~~ | pow /var/tmp/portage/media-video/obs-studio-30.1.1/work/obs-studio-30.1.1/plugins/obs-browser/browser-app.cpp:448:49: error: 'pos' was not declared in this scope; did you mean 'pow'? 448 | args->SetDouble(pos, | ^~~ | pow emerge info: Portage 3.0.64 (python 3.11.9-final-0, default/linux/amd64/23.0/musl/hardened, gcc-13, musl-1.2.4-r1, 6.8.9-gentoo-dist x86_64) ================================================================= System uname: Linux-6.8.9-gentoo-dist-x86_64-Intel-R-_Core-TM-_i5-8350U_CPU_@_1.70GHz-with-libc KiB Mem: 8007976 total, 826428 free KiB Swap: 8388604 total, 8181080 free Timestamp of repository gentoo: Mon, 20 May 2024 03:00:00 +0000 Head commit of repository gentoo: ce02acf5ebe864a0911620d829f4c41c88f046fa Timestamp of repository guru: Mon, 20 May 2024 00:33:35 +0000 Head commit of repository guru: fd9c52b7541d9331e5708f05722c40f1972e8172 sh bash 5.2_p26-r3 ld GNU ld (Gentoo 2.42 p3) 2.42.0 app-misc/pax-utils: 1.3.7::gentoo app-shells/bash: 5.2_p26-r3::gentoo dev-build/autoconf: 2.71-r7::gentoo, 2.72-r1::gentoo dev-build/automake: 1.16.5-r2::gentoo dev-build/cmake: 3.29.3::gentoo dev-build/libtool: 2.4.7-r4::gentoo dev-build/make: 4.4.1-r1::gentoo dev-build/meson: 1.4.0-r1::gentoo dev-lang/perl: 5.38.2-r5::gentoo dev-lang/python: 3.11.9::gentoo, 3.12.3::gentoo, 3.13.0_beta1_p1::gentoo dev-lang/rust-bin: 1.77.1::gentoo sys-apps/baselayout: 2.15::gentoo sys-apps/openrc: 0.54::gentoo sys-apps/sandbox: 2.38::gentoo sys-devel/binutils: 2.41-r3::gentoo, 2.42-r1::gentoo sys-devel/binutils-config: 5.5::gentoo sys-devel/clang: 17.0.6::gentoo, 18.1.5::gentoo sys-devel/gcc: 13.2.1_p20240113-r1::gentoo, 14.0.1_pre20240211-r1::gentoo sys-devel/gcc-config: 2.11::gentoo sys-devel/lld: 18.1.5::gentoo sys-devel/llvm: 17.0.6::gentoo, 18.1.5::gentoo sys-kernel/linux-headers: 6.9::gentoo (virtual/os-headers) sys-libs/musl: 1.2.4-r1::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: -1000 volatile: False sync-rsync-verify-jobs: 1 sync-rsync-verify-metamanifest: yes sync-rsync-verify-max-age: 3 sync-rsync-extra-opts: guru location: /var/db/repos/guru sync-type: git sync-uri: https://github.com/gentoo-mirror/guru.git masters: gentoo volatile: False local location: /var/db/repos/local masters: gentoo volatile: False Binary Repositories: gentoobinhost priority: 1 sync-uri: https://distfiles.gentoo.org/releases/amd64/binpackages/17.1/x86-64_musl_hardened ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-gentoo-linux-musl" CFLAGS="-O2 -pipe -march=native" CHOST="x86_64-gentoo-linux-musl" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d" CXXFLAGS="-O2 -pipe -march=native" DISTDIR="/var/cache/distfiles" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME" FCFLAGS="-O2 -pipe -march=native" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe -march=native" GENTOO_MIRRORS="http://distfiles.gentoo.org" INSTALL_MASK="charset.alias /usr/share/locale/locale.alias" LANG="C.UTF8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs" LEX="flex" PKGDIR="/var/cache/binpkgs" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" SHELL="/bin/bash" USE="X a52 aac acl acpi alsa amd64 bluetooth branding bzip2 cairo cdda cdr cet crypt cups dbus dri dts dvd dvdr elogind encode exif flac gif gpm gtk gui hardened iconv icu ipv6 jpeg lcms libnotify libtirpc mad mng mp3 mp4 mpeg ncurses nls ogg opengl openmp pam pango pcre pdf pic pie png policykit ppds pulseaudio readline sdl seccomp sound spell ssl ssp startup-notification svg test-rust tiff truetype udev udisks unicode upower usb vorbis vulkan wxwidgets x264 xattr xcb xft xml xtpax xv xvid zlib" ABI_X86="64" ADA_TARGET="gcc_12" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 aes avx avx2 f16c fma3 pclmul popcnt rdrand sse3 sse4_1 sse4_2 ssse3" ELIBC="musl" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 ntrip navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" INPUT_DEVICES="evdev synaptics libinput" KERNEL="linux" L10N="en" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby31" VIDEO_CARDS="intel i915" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account" Unset: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, MAKEOPTS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
considering USE=browser uses prebuilt binaries linked with glibc, it probably doesn't matter whether it builds or not and USE should just be masked
I have a vague memory of this working on musl before however let me confirm this and then I'll add the mask as a PR based on those findings.
(In reply to immolo from comment #2) > I have a vague memory of this working on musl before however let me confirm > this and then I'll add the mask as a PR based on those findings. fwiw haven't tried browser on non-glibc (maybe it's able to use another browser? albeit it'd be surprising), but it bundles prebuilt CEF to open webpages and has the usual e.g. QA_PREBUILT=" usr/lib*/obs-plugins/chrome-sandbox So I'd assume obs starts fine but once you try to open webpages it'll fail.
I suppose similar to 922163 [1], things would be better here if we could build said binaries as well, but that would also likely not be supported by upstream... 1. https://bugs.gentoo.org/922163
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f1dc6e386d2e91eeab53d796c764e522a78daa75 commit f1dc6e386d2e91eeab53d796c764e522a78daa75 Author: Ian Jordan <immoloism@gmail.com> AuthorDate: 2024-08-01 05:13:49 +0000 Commit: Jimi Huotari <chiitoo@gentoo.org> CommitDate: 2024-08-22 05:57:01 +0000 profiles/features/musl: media-video/obs-studio mask browser USE flag Browser binary is currently built against glibc so masking for now. Bug: https://bugs.gentoo.org/934005 Closes: https://github.com/gentoo/gentoo/pull/37893 Signed-off-by: Ian Jordan <immoloism@gmail.com> Signed-off-by: Jimi Huotari <chiitoo@gentoo.org> profiles/features/musl/package.use.mask | 4 ++++ 1 file changed, 4 insertions(+)