I care for and feed a slow but charming kvm s390x guest which, if allowed, tries unnecessarily and lengthily to build gettext despite USE -nls. A handful of ebuilds, one of which is bison, insist on pulling it in. So I mask gettext and tweak the ebuilds whenever a new version appears. The bison ebuild could more elegantly make conditional a build dependency that takes much longer to build than bison itself. A patch is suggested below. --- /usr/portage/sys-devel/bison/bison-3.7.ebuild 2020-07-27 08:09:07.000000000 +0000 +++ ./bison-3.7.ebuild 2020-07-28 00:10:38.941760778 +0000 @@ -24,7 +24,7 @@ DEPEND="${RDEPEND}" BDEPEND=" sys-devel/flex - >=sys-devel/gettext-0.21 + nls? ( >=sys-devel/gettext-0.21 ) examples? ( dev-lang/perl ) test? ( dev-lang/perl ) " Reproducible: Always Portage 3.0.1 (python 3.8.5-final-0, default/linux/s390/17.0/s390x, gcc-10.2.0, glibc-2.31-r6, 5.7.11-gentoo s390x) ================================================================= System uname: Linux-5.7.11-gentoo-s390x-2964-with-glibc2.2 KiB Mem: 4102084 total, 1459872 free KiB Swap: 2097148 total, 2097148 free Timestamp of repository gentoo: Thu, 06 Aug 2020 21:45:01 +0000 Head commit of repository gentoo: 9de2e8fab7ed0a04ece6ce9738a25e2ee0f3cdc4 sh bash 5.0_p18 ld GNU ld (Gentoo 2.34 p4) 2.34.0 app-shells/bash: 5.0_p18::gentoo dev-lang/perl: 5.30.3-r1::gentoo dev-lang/python: 3.8.5::gentoo sys-apps/baselayout: 2.7::gentoo sys-apps/openrc: 0.42.1::gentoo sys-apps/sandbox: 2.20::gentoo sys-devel/autoconf: 2.69-r5::gentoo sys-devel/automake: 1.16.2::gentoo sys-devel/binutils: 2.34-r1::gentoo sys-devel/gcc: 10.2.0::gentoo sys-devel/gcc-config: 2.3.1::gentoo sys-devel/libtool: 2.4.6-r6::gentoo sys-devel/make: 4.3::gentoo sys-kernel/linux-headers: 5.7::gentoo (virtual/os-headers) sys-libs/glibc: 2.31-r6::gentoo Repositories: gentoo location: /work/portage sync-type: rsync sync-uri: rsync://rsync.us.gentoo.org/gentoo-portage priority: -1000 sync-rsync-verify-max-age: 24 sync-rsync-verify-jobs: 1 sync-rsync-vcs-ignore: true sync-rsync-extra-opts: sync-rsync-verify-metamanifest: no local location: /usr/local/var/portage masters: gentoo priority: 0 ACCEPT_KEYWORDS="s390 ~s390" ACCEPT_LICENSE="* -@EULA" CBUILD="s390x-ibm-linux-gnu" CFLAGS="-O2 -pipe -march=z13 -fno-strict-aliasing" CHOST="s390x-ibm-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/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -pipe -march=z13 -fno-strict-aliasing" DISTDIR="/usr/portage/distfiles" ENV_UNSET="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="-O2 -pipe -march=z13 -fno-strict-aliasing" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fakeroot 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="-O2 -pipe -march=z13 -fno-strict-aliasing" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_GB.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en_GB.utf8 en_GB" MAKEOPTS="-j6" PKGDIR="/usr/local/packages" 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="/work/tmp/portage" USE="acl berkdb big-endian bzip2 cli crypt dri fortran gdbm iconv libressl ncurses nptl pam pcre readline s390 seccomp split-usr ssl tcpd unicode xattr zlib" ABI_S390="64" CURL_SSL="libressl" ELIBC="glibc" INPUT_DEVICES="void libinput" KERNEL="linux" L10N="en-GB" PYTHON_SINGLE_TARGET="python3_8" PYTHON_TARGETS="python3_8" RUBY_TARGETS="ruby25" USERLAND="GNU" Unset: CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Unfortunately bison unconditionally requires libtextstyle from gettext even with USE="-nls"
Bison gracefully does not to make the dependency on libtextstyle a hard one. Error messages are still generated correctly on a monochrome terminal without it, even with --color=always. It is the ebuild that forces the dependency.