Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 934005 - media-video/obs-studio +browser fails to compile on musl - error: 'u_long' was not declared in this scope; did you mean 'long'?
Summary: media-video/obs-studio +browser fails to compile on musl - error: 'u_long' w...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Chiitoo
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2024-06-10 15:39 UTC by immolo
Modified: 2024-08-22 05:58 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build log (obs.log,226.26 KB, text/x-log)
2024-06-10 15:39 UTC, immolo
Details

Note You need to log in before you can comment on or make changes to this bug.
Description immolo 2024-06-10 15:39:53 UTC
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
Comment 1 Ionen Wolkens gentoo-dev 2024-06-10 16:29:39 UTC
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
Comment 2 immolo 2024-06-10 18:51:16 UTC
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.
Comment 3 Ionen Wolkens gentoo-dev 2024-06-10 22:48:54 UTC
(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.
Comment 4 Chiitoo gentoo-dev 2024-06-10 22:59:03 UTC
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
Comment 5 Larry the Git Cow gentoo-dev 2024-08-22 05:58:03 UTC
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(+)