I use sys-apps/portage-2.3.8 and I enabled the BINPKG_COMPRESS="xz" option in make.conf, but Portage still creates .tbz2 binary packages instead of .txz ones (or .tar.xz). Can suffixes be customized according to the compression algorithm being used? Example: $ file /var/portage/packages/media-sound/pulseaudio-10.0.tbz2 /var/portage/packages/media-sound/pulseaudio-10.0.tbz2: XZ compressed data Reproducible: Always $ emerge --info Portage 2.3.8 (python 3.6.1-final-0, default/linux/amd64/17.0/desktop/gnome/systemd, gcc-7.2.0, glibc-2.25-r4, 4.12.9-gnu x86_64) ================================================================= System uname: Linux-4.12.9-gnu-x86_64-Intel-R-_Core-TM-2_Duo_CPU_E8400_@_3.00GHz-with-gentoo-2.4.1 KiB Mem: 8108104 total, 249748 free KiB Swap: 8386556 total, 8385580 free Timestamp of repository gentoo: Thu, 31 Aug 2017 07:44:04 +0000 Head commit of repository gentoo: a0f56bde9040ab718ea70fe99f98ca39bbd8cad3 Head commit of repository bitcoin: 167967937c3508c3245b34f8119e396f6e881c8a Timestamp of repository frabjous: Thu, 31 Aug 2017 14:03:25 +0000 Head commit of repository frabjous: 1d2a60165a0ac917b5071de5a00310f66dbac554 Timestamp of repository octopus: Sun, 27 Aug 2017 08:15:47 +0000 Head commit of repository octopus: b1095c418fef6254601b758a9ecba030680a40df Timestamp of repository qt: Sun, 27 Aug 2017 06:03:24 +0000 Head commit of repository qt: fad838d15796eb5176fd10f073bb974d65d94a18 Timestamp of repository wichtounet: Mon, 28 Aug 2017 06:03:24 +0000 Head commit of repository wichtounet: aeff0558faec528bf26aa25a4f19fc91d9ba5be3 sh bash 4.4_p12 ld GNU ld (Gentoo 2.28.1 p1.0) 2.28.1 app-shells/bash: 4.4_p12::gentoo dev-lang/perl: 5.24.2::gentoo dev-lang/python: 2.7.13::gentoo, 3.5.3::gentoo, 3.6.1-r1::gentoo dev-util/cmake: 3.9.1::gentoo dev-util/pkgconfig: 0.29.2::gentoo sys-apps/baselayout: 2.4.1-r1::gentoo sys-apps/sandbox: 2.10-r4::gentoo sys-devel/autoconf: 2.13::gentoo, 2.69-r4::gentoo sys-devel/automake: 1.13.4-r1::gentoo, 1.15.1-r1::gentoo sys-devel/binutils: 2.28.1::gentoo sys-devel/gcc: 7.2.0::gentoo sys-devel/gcc-config: 1.8-r1::gentoo sys-devel/libtool: 2.4.6-r4::gentoo sys-devel/make: 4.2.1-r1::gentoo sys-kernel/linux-headers: 4.11::gentoo (virtual/os-headers) sys-libs/glibc: 2.25-r4::gentoo Repositories: gentoo location: /var/portage/repos/gentoo sync-type: git sync-uri: https://github.com/gentoo-mirror/gentoo priority: -1000 bitcoin location: /var/portage/repos/bitcoin sync-type: git sync-uri: https://gitlab.com/bitcoin/gentoo masters: gentoo priority: 0 frabjous location: /var/portage/repos/frabjous sync-type: git sync-uri: https://github.com/gentoo-mirror/frabjous masters: gentoo priority: 0 octopus location: /var/portage/repos/octopus sync-type: git sync-uri: https://github.com/gentoo-mirror/octopus masters: gentoo priority: 0 qt location: /var/portage/repos/qt sync-type: git sync-uri: https://github.com/gentoo-mirror/qt masters: gentoo priority: 0 wichtounet location: /var/portage/repos/wichtounet sync-type: git sync-uri: https://github.com/gentoo-mirror/wichtounet masters: gentoo priority: 0 fturco location: /var/portage/repos/fturco masters: gentoo priority: 1000 ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="@FREE" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=native -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/chromium/policies/managed/chrome-gnome-shell.json /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/opt/chrome/policies/managed/chrome-gnome-shell.json /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" CXXFLAGS="-O2 -march=native -pipe" DISTDIR="/var/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://mirror.switch.ch/ftp/mirror/gentoo/" LANG="en_US.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j2" PKGDIR="/var/portage/packages" PORTAGE_COMPRESS="xz" 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" USE="X aac acl acpi alsa amd64 bash-completion berkdb bzip2 cairo cdda cdparanoia cdr clamav cli colord cracklib crypt css cups curl cxx dbus dri dvd dvdr eds emacs encode evo exif expat ffmpeg firefox flac fontconfig ftp gd gif gimp git glamor gmp gnome gnome-keyring gnome-online-accounts gnutls gphoto2 gstreamer gtk gzip hddtemp iconv icu ieee1394 imagemagick imap introspection ipv6 javascript jpeg lame latex lcms ldap libass libcaca libffi libnotify libsecret lm_sensors lua lzma lzo mad matroska mime modules mp3 mp4 mplayer mtp musicbrainz nautilus ncurses networkmanager nls nptl ogg opengl openmp opus pam pango pcre pdf perl png policykit pulseaudio python qt3support qt5 readline rss ruby samba scanner sdl seccomp session slang smp sound spell sqlite ssl startup-notification svg systemd tcpd theora tiff tracker truetype udev udisks unicode upower usb v4l vala videos vnc vorbis webkit wifi x264 xcb xft xml xmlrpc xv zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" 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="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 sse4_1 ssse3" CURL_SSL="openssl" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="libinput" KERNEL="linux" L10N="en en-US" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_US" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_5 python3_6" QEMU_SOFTMMU_TARGETS="x86_64 i386" RUBY_TARGETS="ruby24" USERLAND="GNU" VIDEO_CARDS="intel i915 nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
A few options here: 1. Make the suffix configurable. 2. Choose a new compression-agnostic suffix. 3. Do nothing and accept that the .tbz2 suffix is not meaningful.
My preference is use the .xpak suffix uniformly, regardless of the compression type. This is why FEATURES=binpkg-multi-instance uses the .xpak suffix. This is possible because every compression format has a unique file header. When Manuel Rüger was working on BINPKG_COMPRESS support, he as also working on migrating the .tbz2 suffix to .xpak, but we haven't merged a patch for that yet.
I would prefer the packages end in the selected format's suffix because shell autocompletion relies heavily on file suffixes, and an incorrect format will preclude being able to select a package with a press of the tab key. Moreover, I think a better reason to use the proper suffix is because it is more precise. Are there technical hurdles to adding the proper suffix?
These files are not proper tarballs, since they have an xpak trailer. You can think of it as being analogous to the rpm format, which also supports multiple forms of compression for the payload.
I feel like this is essentially solved by https://www.gentoo.org/glep/glep-0078.html#the-container-format.