Portage implicates the incorrect mask file for overlay masks (*/*::overlay). In the following example, it implicates package.mask/chaoslab when it _should_ implicate package.mask/guru - # emerge -avt waydroid These are the packages that would be merged: Calculating dependencies ... done! [ebuild N #] app-emulation/waydroid-1.2.1::guru PYTHON_SINGLE_TARGET="python3_9 -python3_10" 218 KiB [ebuild N ] app-containers/lxc-4.0.12::gentoo USE="-apparmor caps -doc -io-uring -man pam seccomp (-selinux) ssl tools -verify-sig" 1,529 KiB [ebuild N ] acct-group/lxc-0::gentoo 0 KiB [ebuild N ] acct-user/lxc-0::gentoo 0 KiB [ebuild N #] dev-python/gbinder-1.0.0::guru PYTHON_TARGETS="python3_9 python3_10" 23 KiB [ebuild N #] dev-libs/gbinder-1.1.19::guru 193 KiB [ebuild N #] dev-libs/libglibutil-1.0.63::guru 58 KiB Total: 7 packages (7 new), Size of downloads: 2,019 KiB The following mask changes are necessary to proceed: (see "package.unmask" in the portage(5) man page for more details) # required by app-emulation/waydroid-1.2.1::guru[python_single_target_python3_9] # required by waydroid (argument) # /etc/portage/package.mask/chaoslab: =dev-python/gbinder-1.0.0 # required by waydroid (argument) # /etc/portage/package.mask/chaoslab: =app-emulation/waydroid-1.2.1 # required by dev-python/gbinder-1.0.0::guru # required by app-emulation/waydroid-1.2.1::guru[python_single_target_python3_9] # required by waydroid (argument) # /etc/portage/package.mask/chaoslab: =dev-libs/gbinder-1.1.19 # required by dev-libs/gbinder-1.1.19::guru # required by dev-python/gbinder-1.0.0::guru # required by app-emulation/waydroid-1.2.1::guru[python_single_target_python3_9] # required by waydroid (argument) # /etc/portage/package.mask/chaoslab: =dev-libs/libglibutil-1.0.63 # cat /etc/portage/package.mask/chaoslab */*::chaoslab # cat /etc/portage/package.mask/guru */*::guru - I use multiple overlays and mask them all this way (only listing select packages in portage.unmask/), and portage _always_ says that package.mask/chaoslab is responsible for masking overlay packages _regardless_ of which actual mask file has masked the relevant overlay. I assume it's doing some lexical ordering and picking the 0th result to get this curious conclusion, but haven't dug into the specifics since I'm unfamiliar with portage internals. The error output is correct for other types of mask, eg specific packages or package versions. This behaviour has persisted over several recent versions of portage, and I couldn't find an existing bug that addresses it. - Supplementary information: # emerge --info Portage 3.0.30 (python 3.10.4-final-0, default/linux/amd64/17.1/desktop/plasma, gcc-11.3.0, glibc-2.34-r13, 5.15.43-dorellan x86_64) ================================================================= System uname: Linux-5.15.43-dorellan-x86_64-Intel-R-_Core-TM-_i7-7700K_CPU_@_4.20GHz-with-glibc2.34 KiB Mem: 32767796 total, 7782172 free KiB Swap: 67633144 total, 65041136 free Head commit of repository gentoo: ba19270dcd942b45acf1fc15e6145ae0cf8362b8 Timestamp of repository flussence: Wed, 08 Jun 2022 16:33:01 +0000 Head commit of repository flussence: b3f07b6a5af8ecdc9a0c644904ce62e6220c7b5c Timestamp of repository gentoo-zh: Thu, 09 Jun 2022 08:03:08 +0000 Head commit of repository gentoo-zh: d81b52f89c013ced58577f7f9d10ff40ac48f981 Timestamp of repository guru: Wed, 08 Jun 2022 18:03:04 +0000 Head commit of repository guru: c750a77575a7a7765693d2d24ef3b58924579c68 Head commit of repository polymc: 358b12bcc57c42066a9aba8292898a2abb69656a Timestamp of repository tatsh-overlay: Wed, 08 Jun 2022 08:04:15 +0000 Head commit of repository tatsh-overlay: 8ab7ecd772d87e4b7cc1ef419bc77427ededa612 Head commit of repository steam-overlay: 845eed8eae17b06f8e7cf6c94bc0143f60d5cc98 Head commit of repository tastytea: af5d3323f40f0bd46f828732ac4a36b9d7fda8c0 sh bash 5.1_p16 ld GNU ld (Gentoo 2.37_p1 p2) 2.37 distcc 3.4 x86_64-pc-linux-gnu [disabled] ccache version 4.5.1 [disabled] app-misc/pax-utils: 1.3.3::gentoo app-shells/bash: 5.1_p16::gentoo dev-java/java-config: 2.3.1::gentoo dev-lang/perl: 5.34.0-r9::gentoo dev-lang/python: 2.7.18_p15::gentoo, 3.8.13::gentoo, 3.9.12::gentoo, 3.10.4::gentoo dev-lang/rust: 1.60.0::gentoo dev-util/ccache: 4.5.1::gentoo dev-util/cmake: 3.22.4::gentoo dev-util/meson: 0.62.2::gentoo sys-apps/baselayout: 2.8::gentoo sys-apps/openrc: 0.44.10::gentoo sys-apps/sandbox: 2.29::gentoo sys-devel/autoconf: 2.13-r1::gentoo, 2.71-r1::gentoo sys-devel/automake: 1.16.5::gentoo sys-devel/binutils: 2.37_p1-r2::gentoo sys-devel/binutils-config: 5.4.1::gentoo sys-devel/clang: 13.0.1::gentoo, 14.0.4::gentoo sys-devel/gcc: 11.3.0::gentoo sys-devel/gcc-config: 2.5-r1::gentoo sys-devel/libtool: 2.4.6-r6::gentoo sys-devel/lld: 14.0.4::gentoo sys-devel/llvm: 13.0.1::gentoo, 14.0.4::gentoo sys-devel/make: 4.3::gentoo sys-kernel/linux-headers: 5.15-r3::gentoo (virtual/os-headers) sys-libs/glibc: 2.34-r13::gentoo sys-libs/libselinux: 3.3::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: git sync-uri: https://anongit.gentoo.org/git/repo/gentoo.git priority: -1000 flussence location: /var/db/repos/flussence sync-type: git sync-uri: https://github.com/gentoo-mirror/flussence.git masters: gentoo gentoo-zh location: /var/db/repos/gentoo-zh sync-type: git sync-uri: https://github.com/gentoo-mirror/gentoo-zh.git masters: gentoo guru location: /var/db/repos/guru sync-type: git sync-uri: https://github.com/gentoo-mirror/guru.git masters: gentoo polymc location: /var/db/repos/polymc sync-type: git sync-uri: https://gitlab.com/flowln/polymc-gentoo masters: gentoo tatsh-overlay location: /var/db/repos/tatsh-overlay sync-type: git sync-uri: https://github.com/gentoo-mirror/tatsh-overlay.git masters: gentoo crossdev location: /usr/local/portage-crossdev masters: gentoo priority: 10 steam-overlay location: /var/lib/layman/steam-overlay sync-type: git sync-uri: https://github.com/anyc/steam-overlay.git masters: gentoo priority: 50 tastytea location: /var/lib/layman/tastytea sync-type: git sync-uri: https://schlomp.space/tastytea/overlay.git masters: guru gentoo priority: 50 local location: /usr/local/portage masters: gentoo priority: 999 Installed sets: @esteam ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -march=native" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0 /var/bind" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/init.d /etc/portage/savedconfig /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /lib/modules" CXXFLAGS="-O2 -pipe -march=native" DISTDIR="/var/cache/distfiles" EMERGE_DEFAULT_OPTS="--alphabetical --keep-going --load-average=8 --autounmask=y --autounmask-write=n --verbose-conflicts --backtrack=100 --autounmask-backtrack=y --unordered-display" 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="-O2 -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg-live candy config-protect-if-modified distlocks downgrade-backup 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="-O2 -pipe" GENTOO_MIRRORS="http://mirrors.163.com/gentoo/ http://mirrors.aliyun.com/gentoo/" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en en-GB en_US zh_CN" MAKEOPTS="-j9 -l8" PKGDIR="/var/cache/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="/var/tmp" SHELL="" USE="MSP430 Mips WebAssembly X a52 aac acl acpi activities alsa amd64 apng av1 bitcoin_policy_spamfilter bittorrent bluetooth bluray branding btrfs bzip2 cairo cdda cddb cdr chm cjk cli client conntrack corefonts cpudetection cpufreq_bench crossdev crypt cryptsetup cups cxx cycles d3d9 dbus declarative dhcp dhcp-tools dist-kernel dlz dnsretry dri drm dts dvd dvdr eap-sim eap-tls elogind encode epub evdev exif expat fat ffmpeg fftw flac fluidsynth fontconfig fortran ftdi fuse gd gdbm geoip2 gif gimp github gles1 gles2 gphoto2 gpm grub gstreamer gtk gui haptic havege hcitop hddtemp http2 hwaccel iconv icu id3tag imagemagick imlib inotify io-uring iproute2 ipv6 ithreads jack jpeg json jumbo-build kde kwallet ladspa latex lcms libass libglvnd libinput libkms libnotify libtirpc libusb ljr lm_sensors logrotate lxc lz4 lzma lzo mad markdown matroska mdnsresponder-compat midi mikmod minizip mjpeg mng mobi mobile mod mp3 mp4 mpeg mtp multilib multimedia nano ncurses nethack netlink nftables nls nptl ntfs ntp nvme ocr ogg onigurama oniguruma opencl opengl openh264 openimageio openmp openssl pam pango pcre pcre16 pdf pdf-writer pdfimport pipewire pipewire-alsa plasma png policykit postproc postscript ppds printsupport qml qt5 qtmedia rar rdp readline redfish rendering rle rustfmt s3tc samba sasl scanner sdl sdl2 seccomp secure-delete semantic-desktop smp socks5 soundcloud spell split-usr sqlite ssh ssl sslv3 startup-notification subtitles svc svg sync-plugin-portage system-llvm taglib tcl text theora tiff tk tracepath truetype tty-helpers udev udf udisks uefi unicode unicode3 unit-mm update_drivedb upnp upower urandom usb usbredir utils uvm v4l vaapi vcd vdpau virt-network virtualbox vkd3d vnc vorbis vpx vulkan vulkan-overlay webp widgets winbind wireshark-plugins wps x264 x265 xattr xcb xcomposite xft xinerama xkb xla xml xmp xnasong xnest xrandr xv xvfb xvid xvmc zeroconf zip zlib zstd" ABI_X86="64" ADA_TARGET="gnat_2020" 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 http2" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sse sse2 sse3 sse4_1 sse4_2 ssse3" 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="keyboard mouse synaptics evdev mutouch" KERNEL="linux" L10N="en en-GB en-US zh-CN" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LLVM_TARGETS="AMDGPU ARM BPF NVPTX X86" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-4 php8-0" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_9 python3_10" QEMU_SOFTMMU_TARGETS="arm" QEMU_USER_TARGETS="arm" RUBY_TARGETS="ruby27" SANE_BACKENDS="abaton agfafocus apple artec artec_eplus48u as6e avision bhcanon canon630u canon_dr cardscan coolscan coolscan2 coolscan3 dc210 dc240 dc25 dell1600n_net dmc epjitsu epson epson2 fujitsu genesys gt68xx hp hp3500 hp3900 hp4200 hp5400 hp5590 hpljm1005 hs2p ibm kodak kodakaio kvs1025 kvs20xx kvs40xx leo lexmark ma1509 magicolor matsushita microtek microtek2 mustek mustek_usb mustek_usb2 nec net niash p5 pie pixma plustek plustek_pp pnm qcam ricoh rts8891 s9036 sceptre sharp sm3600 sm3840 snapscan sp15c st400 stv680 tamarack teco1 teco2 teco3 {-test} u12 umax umax1220u umax_pp xerox_mfp" USERLAND="GNU" VIDEO_CARDS="nvidia intel" 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: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LEX, LFLAGS, LIBTOOL, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
Here's another example: # emerge -avt wifite These are the packages that would be merged: Calculating dependencies... done! [ebuild N #] net-wireless/wifite-2.6.0:2::pentoo USE="-dict -extra opencl" PYTHON_TARGETS="python3_9 python3_10" 4,411 KiB [ebuild N ] net-wireless/aircrack-ng-1.6_p20200722-r1::gentoo USE="airdrop-ng airgraph-ng experimental netlink pcre sqlite" PYTHON_TARGETS="-python3_8 python3_9 python3_10" 7,425 KiB [ebuild N ] net-wireless/lorcon-0.0_p20200214::gentoo USE="python" PYTHON_TARGETS="-python3_8 python3_9 python3_10" 495 KiB [ebuild N #] net-wireless/hcxdumptool-6.2.0::pentoo USE="-gpio" 105 KiB [ebuild N #] net-wireless/hcxtools-6.2.0::pentoo 139 KiB Total: 5 packages (5 new), Size of downloads: 12,573 KiB The following mask changes are necessary to proceed: (see "package.unmask" in the portage(5) man page for more details) # required by net-wireless/wifite-2.6.0::pentoo # required by wifite (argument) # /etc/portage/package.mask/chaoslab: =net-wireless/hcxdumptool-6.2.0 # required by net-wireless/wifite-2.6.0::pentoo # required by wifite (argument) # /etc/portage/package.mask/chaoslab: =net-wireless/hcxtools-6.2.0 NOTE: The --autounmask-keep-masks option will prevent emerge from creating package.unmask or ** keyword changes. Use --autounmask-write to write changes to config files (honoring CONFIG_PROTECT). Carefully examine the list of proposed changes, paying special attention to mask or keyword changes that may expose experimental or unstable packages. # edescribe hcxdumptool hcxtools net-wireless/hcxdumptool::pentoo Small tool to capture packets from wlan devices (https://github.com/ZerBea/hcxdumptool) net-wireless/hcxtools::pentoo Portable solution for capturing wlan traffic and conversion to hashcat formats (https://github.com/ZerBea/hcxtools) # grep . /etc/portage/package.mask/chaoslab /etc/portage/package.mask/pentoo /etc/portage/package.mask/chaoslab:*/*::chaoslab /etc/portage/package.mask/pentoo:*/*::pentoo # emerge --version Portage 3.0.30 (python 3.10.5-final-0, default/linux/amd64/17.1/desktop/plasma, gcc-11.3.0, glibc-2.34-r13, 5.15.55-dorellan x86_64) -- As in the original report, portage is claiming that these packages are masked by an entry in /etc/portage/package.mask/chaoslab, when they're actually masked by an entry in /etc/portage/package.mask/pentoo. Portage's description of the specific mask is also rather unhelpful, and since portage is lauded for its clear descriptions of relevant issues, this may also be considered a bug.
Here's another example: # emerge -avtDUu @world … The following mask changes are necessary to proceed: (see "package.unmask" in the portage(5) man page for more details) # required by games-emulation/yuzu-9999::guru # required by @__auto_slot_operator_replace_installed__ (argument) # /etc/portage/package.mask/chaoslab: =dev-cpp/cpp-httplib-0.10.9 # required by games-emulation/yuzu-9999::guru # required by @__auto_slot_operator_replace_installed__ (argument) # /etc/portage/package.mask/chaoslab: =dev-cpp/cpp-jwt-1.5_pre20220727 $ edescribe cpp-httplib cpp-jwt dev-cpp/cpp-httplib::guru C++ header-only HTTP/HTTPS server and client library (https://github.com/yhirose/cpp-httplib) dev-cpp/cpp-jwt::guru JSON Web Token library for C++ (https://github.com/arun11299) $ grep . /etc/portage/package.mask/{chaoslab,guru} /etc/portage/package.mask/chaoslab:*/*::chaoslab /etc/portage/package.mask/guru:*/*::guru $ emerge --info Portage 3.0.38.1 (python 3.10.8-final-0, default/linux/amd64/17.1/desktop/plasma, gcc-11.3.0, glibc-2.36-r5, 5.19.17-dorellan x86_64) ------------ Emerge claims the packages are masked by an exact version mask in /etc/portage/package.mask/chaoslab, when they're actually masked by an overlay/repo mask (*/*::guru) in /etc/portage/package.mask/guru If portage is trying to suggest what should change so it can continue, perhaps it should be suggesting to add those lines to /etc/portage/package.unmask/yuzu?