I enabled [libass] for ffmpeg because it would be nice to support subtitles. This naturally pulled in media-libs/libass which further pulled in media-libs/harfbizz. I was surprised that this wanted x11 things because I don't have X on this server. My profile is simply default/linux/arm64/17.0, no desktop or anything. Reproducible: Always Steps to Reproduce: 1. Install base gentoo with profile default/linux/arm64/17.0 and ACCEPT_KEYWORDS=~arm64 2. echo "media-video/ffmpeg libass" >> /etc/portage/package.use/package.use 3. emerge -atv ffmpeg Actual Results: It pulls in x11-libs/cairo Expected Results: A bunch of libs but not X11 rockpro64 ~ # emerge --info Portage 3.0.19 (python 3.8.10-final-0, default/linux/arm64/17.0, gcc-11.1.0, glibc-2.33, 5.6.0-1137-ayufan-ge57f05e7bf8f aarch64) ================================================================= System uname: Linux-5.6.0-1137-ayufan-ge57f05e7bf8f-aarch64-with-glibc2.17 KiB Mem: 3884724 total, 304928 free KiB Swap: 8388600 total, 5959368 free Timestamp of repository gentoo: Mon, 31 May 2021 03:30:01 +0000 Head commit of repository gentoo: 3ddcf2b4b150428a092fc9132e6b450703298dca sh bash 5.1_p8 ld GNU ld (Gentoo 2.35.2 p1) 2.35.2 app-shells/bash: 5.1_p8::gentoo dev-lang/perl: 5.34.0::gentoo dev-lang/python: 3.8.10_p1::gentoo, 3.9.5_p1::gentoo, 3.10.0_beta1::gentoo dev-util/cmake: 3.20.3::gentoo sys-apps/baselayout: 2.7-r2::gentoo sys-apps/openrc: 0.43.3::gentoo sys-apps/sandbox: 2.24::gentoo sys-devel/autoconf: 2.69-r5::gentoo, 2.71::gentoo sys-devel/automake: 1.16.3-r1::gentoo sys-devel/binutils: 2.35.2::gentoo, 2.36.1-r1::gentoo sys-devel/gcc: 10.2.0-r5::gentoo, 11.1.0::gentoo sys-devel/gcc-config: 2.4::gentoo sys-devel/libtool: 2.4.6-r6::gentoo sys-devel/make: 4.3::gentoo sys-kernel/linux-headers: 5.12::gentoo (virtual/os-headers) sys-libs/glibc: 2.33::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: -1000 sync-rsync-extra-opts: sync-rsync-verify-metamanifest: yes sync-rsync-verify-jobs: 1 sync-rsync-verify-max-age: 24 x-portage location: /usr/local/portage masters: gentoo priority: 0 flow location: /var/lib/layman/flow masters: gentoo priority: 50 gitlab location: /var/lib/layman/gitlab masters: gentoo priority: 50 nest location: /var/lib/layman/nest masters: gentoo priority: 50 ACCEPT_KEYWORDS="arm64 ~arm64" ACCEPT_LICENSE="@FREE" CBUILD="aarch64-unknown-linux-gnu" CFLAGS="-march=native -O2 -pipe" CHOST="aarch64-unknown-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/php/apache2-php7.3/ext-active/ /etc/php/apache2-php7.4/ext-active/ /etc/php/apache2-php8.0/ext-active/ /etc/php/cgi-php7.3/ext-active/ /etc/php/cgi-php7.4/ext-active/ /etc/php/cgi-php8.0/ext-active/ /etc/php/cli-php7.3/ext-active/ /etc/php/cli-php7.4/ext-active/ /etc/php/cli-php8.0/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/mnt/raid/portage/distfiles/" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY 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" FCFLAGS="-march=native -O2 -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-march=native -O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="C.UTF8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j6" 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="/mnt/raid/var/tmp/" USE="acl arm64 berkdb bzip2 cli crypt custom-cflags dri fortran gdbm iconv ipv6 libglvnd libtirpc mysql ncurses nls nptl openmp pam pcre postgres readline ruby seccomp split-usr ssl system-zlib tcpd unicode vim-syntax xattr zlib" ADA_TARGET="gnat_2018" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache 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_ARM="edsp thumb vfp vfpv3 vfpv4 vfp-d32 aes sha1 sha2 crc32 v4 v5 v6 v7 v8 thumb2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_8" PYTHON_TARGETS="python3_8" RUBY_TARGETS="ruby27" USERLAND="GNU" VIDEO_CARDS="fbdev dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RUSTFLAGS
rockpro64 ~ # grep cairo -r /var/db/repos/gentoo/profiles/ [snip] /var/db/repos/gentoo/profiles/targets/desktop/make.defaults:USE="a52 aac acpi alsa bluetooth branding cairo cdda cdr cups dbus dri dts dvd dvdr elogind emboss encode exif flac gif gpm gtk gui icu jpeg lcms libnotify mad mng mp3 mp4 mpeg ogg opengl pango pdf png policykit ppds qt5 sdl spell startup-notification svg tiff truetype vorbis udev udisks unicode upower usb wxwidgets X xcb x264 xml xv xvid" rockpro64 ~ # grep introspection -r /var/db/repos/gentoo/profiles/ [snip] /var/db/repos/gentoo/profiles/targets/desktop/gnome/make.defaults:USE="colord eds evo gnome gnome-keyring gnome-online-accounts gstreamer introspection libsecret nautilus networkmanager pulseaudio sysprof tracker wayland" [snip]
Thanks for your report. In order to properly process the issue, we need the full build log attached. Feel free, to re-open the issue again, by setting the status to UNCONFIRMED. Additional info: The cairo USE flag is enabled by default in media-libs/harfbuzz. Please unset it for the package and try if this solves the issue.
(In reply to Bernd from comment #2) > Thanks for your report. > In order to properly process the issue, we need the full build log attached. > Feel free, to re-open the issue again, by setting the status to UNCONFIRMED. > > Additional info: > The cairo USE flag is enabled by default in media-libs/harfbuzz. > Please unset it for the package and try if this solves the issue. I did override default cairo and introspections use flags in package.use and emerge. I'm requesting that this shouldn't be necessary on a headless server profile. The various desktop profiles already enable these use flags where they are appropriate.
cairo is a vector graphics library. It really isn't an "X11" library, despite its category. It is useful even when you are not rendering output to an X11 display. I don't really think there is anything to fix here.
(In reply to A Schenck from comment #3) > (In reply to Bernd from comment #2) > > Thanks for your report. > > In order to properly process the issue, we need the full build log attached. > > Feel free, to re-open the issue again, by setting the status to UNCONFIRMED. > > > > Additional info: > > The cairo USE flag is enabled by default in media-libs/harfbuzz. > > Please unset it for the package and try if this solves the issue. > > I did override default cairo and introspections use flags in package.use and > emerge. I'm requesting that this shouldn't be necessary on a headless > server profile. The various desktop profiles already enable these use flags > where they are appropriate. I don't even understand what packages it's pulled in that you don't want. cairo has a USE=X flag. Presumably it's off for you, so you shouldn't be getting any libX* packages. Is cairo itself the problem? If so...
(In reply to Matt Turner from comment #5) > (In reply to A Schenck from comment #3) > > (In reply to Bernd from comment #2) > > > Thanks for your report. > > > In order to properly process the issue, we need the full build log attached. > > > Feel free, to re-open the issue again, by setting the status to UNCONFIRMED. > > > > > > Additional info: > > > The cairo USE flag is enabled by default in media-libs/harfbuzz. > > > Please unset it for the package and try if this solves the issue. > > > > I did override default cairo and introspections use flags in package.use and > > emerge. I'm requesting that this shouldn't be necessary on a headless > > server profile. The various desktop profiles already enable these use flags > > where they are appropriate. > > I don't even understand what packages it's pulled in that you don't want. > > cairo has a USE=X flag. Presumably it's off for you, so you shouldn't be > getting any libX* packages. > > Is cairo itself the problem? If so... Ack! Been away for a while. My apologies. I was alarmed at seeing 'x11-libs' in the emerge pretend output because this system doesn't have X. If cairo isn't actually an X library then ideally it would be in media-libs or media-gfx but I understand that a pkgmove is a big deal for such a common dependency. I have overridden them in package.use, but I would prefer if the cairo and introspection USE flags were _not_ defaulted to on, particularly since those USE flags are enabled in the profiles that they apply to.
Created attachment 723199 [details, diff] requested change to no longer default cairo and introspection use flags Basically this patch was my request.