commit:     ccfbc558e36de73a620726ddd2ed6f000f58f178
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Tue Dec  9 09:01:35 2025 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Tue Dec  9 09:01:35 2025 +0000
URL:        https://gitweb.gentoo.org/proj/binhost.git/commit/?id=ccfbc558

Copy milou to tintin, reduce to v3 only

Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>

 builders/tintin/binhost-update                     | 166 +++++++++++++++++++++
 builders/tintin/fstab.inc                          |  10 ++
 builders/tintin/gnome-v3-23/portage/env/lto.conf   |   5 +
 builders/tintin/gnome-v3-23/portage/env/nolto.conf |   5 +
 builders/tintin/gnome-v3-23/portage/make.conf      |  52 +++++++
 builders/tintin/gnome-v3-23/portage/make.profile   |   1 +
 .../tintin/gnome-v3-23/portage/package.env/lto     |   3 +
 .../gnome-v3-23/portage/package.mask/prebuilt-bin  |   1 +
 .../tintin/gnome-v3-23/portage/package.use/bindist |   2 +
 .../tintin/gnome-v3-23/portage/package.use/blender |   7 +
 .../gnome-v3-23/portage/package.use/dist-kernel    |   1 +
 .../tintin/gnome-v3-23/portage/package.use/fixed   |   6 +
 .../gnome-v3-23/portage/package.use/inkscape       |   1 +
 .../tintin/gnome-v3-23/portage/package.use/lxqt    |   3 +
 .../gnome-v3-23/portage/package.use/meson-ci       |   3 +
 .../gnome-v3-23/portage/package.use/multilib       |  32 ++++
 .../tintin/gnome-v3-23/portage/package.use/pgo     |   2 +
 .../tintin/gnome-v3-23/portage/package.use/queued  |   1 +
 .../tintin/gnome-v3-23/portage/package.use/rust    |   2 +
 .../tintin/gnome-v3-23/portage/package.use/slim    |   1 +
 .../gnome-v3-23/portage/package.use/virt-manager   |   5 +
 .../tintin/gnome-v3-23/portage/package.use/xfce4   |   1 +
 .../tintin/gnome-v3-23/portage/package.use/zlib    |   1 +
 .../portage/variants/debug/package.use/debug       |   6 +
 .../gccfrontends/package.use/gcc-frontends         |   2 +
 .../portage/variants/gccfrontends/world            |   4 +
 .../gnome-v3-23/portage/variants/lucky/.run_marker |   1 +
 .../variants/nobluetooth/package.use/nobluetooth   |   1 +
 .../portage/variants/nopulse/package.use/nopulse   |   1 +
 .../portage/variants/novala/buildpkgonly           |   3 +
 .../portage/variants/novala/package.use/novala     |   1 +
 .../portage/variants/novala/world.remove           |   3 +
 .../variants/nowayland/package.use/nowayland       |   5 +
 .../portage/variants/python3both/buildpkgonly      |  16 ++
 .../portage/variants/python3both/make.conf.footer  |   2 +
 .../variants/python3both/package.use/python3both   |   2 +
 .../variants/python3both/profile/use.stable.mask   |   2 +
 .../portage/variants/slim/package.use/slim2        |   6 +
 .../portage/variants/unstable/buildpkgonly         |   9 ++
 .../variants/unstable/package.accept_keywords/gcc  |   2 +
 builders/tintin/gnome-v3-23/run-update             |  51 +++++++
 builders/tintin/gnome-v3-23/world                  |  61 ++++++++
 builders/tintin/kde-v3-23/portage/env/lto.conf     |   5 +
 builders/tintin/kde-v3-23/portage/env/nolto.conf   |   5 +
 builders/tintin/kde-v3-23/portage/make.conf        |  52 +++++++
 builders/tintin/kde-v3-23/portage/make.profile     |   1 +
 builders/tintin/kde-v3-23/portage/package.env/lto  |   3 +
 .../kde-v3-23/portage/package.mask/prebuilt-bin    |   1 +
 .../tintin/kde-v3-23/portage/package.use/bindist   |   2 +
 .../tintin/kde-v3-23/portage/package.use/calibre   |   1 +
 .../kde-v3-23/portage/package.use/dist-kernel      |   1 +
 .../tintin/kde-v3-23/portage/package.use/ffmpeg    |   1 +
 .../tintin/kde-v3-23/portage/package.use/fixed     |   6 +
 builders/tintin/kde-v3-23/portage/package.use/gcc  |   2 +
 builders/tintin/kde-v3-23/portage/package.use/kde  |   4 +
 .../tintin/kde-v3-23/portage/package.use/klayout   |   2 +
 builders/tintin/kde-v3-23/portage/package.use/mate |   1 +
 .../kde-v3-23/portage/package.use/python3-incompat |   2 +
 .../tintin/kde-v3-23/portage/package.use/queued    |   3 +
 builders/tintin/kde-v3-23/portage/package.use/rust |   1 +
 .../portage/variants/debug/package.use/debug       |   6 +
 .../portage/variants/gcc-nopgo/package.use/gcc     |   1 +
 .../kde-v3-23/portage/variants/lucky/.run_marker   |   1 +
 .../portage/variants/python3both/buildpkgonly      |  16 ++
 .../portage/variants/python3both/make.conf.footer  |   2 +
 .../variants/python3both/package.use/python3both   |   2 +
 .../variants/python3both/profile/use.stable.mask   |   2 +
 builders/tintin/kde-v3-23/run-update               |  51 +++++++
 builders/tintin/kde-v3-23/world                    |  61 ++++++++
 builders/tintin/openrc-v3-23/portage/env/lto.conf  |   5 +
 .../tintin/openrc-v3-23/portage/env/nolto.conf     |   5 +
 builders/tintin/openrc-v3-23/portage/make.conf     |  52 +++++++
 builders/tintin/openrc-v3-23/portage/make.profile  |   1 +
 .../tintin/openrc-v3-23/portage/package.env/lto    |   3 +
 .../openrc-v3-23/portage/package.mask/prebuilt-bin |   1 +
 .../openrc-v3-23/portage/package.use/bindist       |   2 +
 .../openrc-v3-23/portage/package.use/blender       |   5 +
 .../openrc-v3-23/portage/package.use/dist-kernel   |   1 +
 .../tintin/openrc-v3-23/portage/package.use/fixed  |   6 +
 .../openrc-v3-23/portage/package.use/inkscape      |   1 +
 .../tintin/openrc-v3-23/portage/package.use/kde    |  23 +++
 .../tintin/openrc-v3-23/portage/package.use/llvm   |   2 +
 .../openrc-v3-23/portage/package.use/multilib      |  28 ++++
 .../tintin/openrc-v3-23/portage/package.use/queued |   1 +
 .../tintin/openrc-v3-23/portage/package.use/rust   |   2 +
 .../tintin/openrc-v3-23/portage/package.use/xfce4  |   1 +
 .../tintin/openrc-v3-23/portage/package.use/zlib   |   1 +
 .../portage/variants/lucky/.run_marker             |   1 +
 builders/tintin/openrc-v3-23/run-update            |  51 +++++++
 builders/tintin/openrc-v3-23/world                 |  47 ++++++
 builders/tintin/server-v3-23/portage/env/lto.conf  |   5 +
 .../tintin/server-v3-23/portage/env/nolto.conf     |   5 +
 builders/tintin/server-v3-23/portage/make.conf     |  52 +++++++
 builders/tintin/server-v3-23/portage/make.profile  |   1 +
 .../tintin/server-v3-23/portage/package.env/lto    |   3 +
 .../server-v3-23/portage/package.mask/prebuilt-bin |   1 +
 .../server-v3-23/portage/package.use/dist-kernel   |   1 +
 .../tintin/server-v3-23/portage/package.use/gcc    |   2 +
 .../portage/package.use/networkmanager             |   2 +
 .../tintin/server-v3-23/portage/package.use/nginx  |   2 +
 .../tintin/server-v3-23/portage/package.use/npm    |   1 +
 .../portage/package.use/python3-incompat           |   2 +
 .../tintin/server-v3-23/portage/package.use/qt     |   1 +
 .../tintin/server-v3-23/portage/package.use/rust   |   1 +
 .../portage/variants/debug/package.use/debug       |   6 +
 .../portage/variants/gcc-nopgo/package.use/gcc     |   1 +
 .../portage/variants/lucky/.run_marker             |   1 +
 .../portage/variants/meson-ci/package.use/meson-ci |  14 ++
 .../portage/variants/python3both/buildpkgonly      |  16 ++
 .../portage/variants/python3both/make.conf.footer  |   2 +
 .../variants/python3both/package.use/python3both   |   2 +
 .../variants/python3both/profile/use.stable.mask   |   2 +
 builders/tintin/server-v3-23/run-update            |  52 +++++++
 builders/tintin/server-v3-23/world                 | 102 +++++++++++++
 114 files changed, 1240 insertions(+)

diff --git a/builders/tintin/binhost-update b/builders/tintin/binhost-update
new file mode 100755
index 0000000..d3578d9
--- /dev/null
+++ b/builders/tintin/binhost-update
@@ -0,0 +1,166 @@
+#!/bin/bash
+
+BINHOST_NAME=amd64/23.0/x86-64
+_BINHOST_NAME=$(echo ${BINHOST_NAME}|sed -e 's:/:_:g')
+
+TMPFILE="/root/.tmp-binhost-${_BINHOST_NAME}-update-$(date +%s)"
+LOCKFILE="/root/.tmp-binhost-${_BINHOST_NAME}-lock"
+
[email protected]
[email protected]
+
+NSPAWNS_x8664v3_23=(
+       binhost-amd64-x86-64-v3-kde-23
+       binhost-amd64-x86-64-v3-gnome-23
+       binhost-amd64-x86-64-v3-openrc-23
+       binhost-amd64-x86-64-v3-server-23
+)
+
+NSPAWN_NAMES=(
+       "${NSPAWNS_x8664v3_23[@]}"
+)
+
+UPLOAD_USER=amd64
+UPLOAD_KEY=/root/.ssh/id_ed25519
+
+TMPFS_SIZE=48
+
+
+send_email() {
+        local subject="[binhost ${BINHOST_NAME}] $1"
+        local message=$2
+        local logfile=$3
+        local body
+
+        if [ -n "${logfile}" ]; then
+                url=$(xz -c "${logfile}" | curl -F "_=<-" 
https://paste.gentoo.zip)
+                body=$(printf '%b\n\n\n' "${message}"; tail -n 500 
"${logfile}"; printf '\n\n\nFull build log at %s (download: %s)\n' "${logfile}" 
"${url}")
+        else
+                body=${message}
+        fi
+
+        printf 'From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%b' \
+                "${EMAIL_FROM}" "${EMAIL_TO}" "${subject}" "${body}" | \
+                /usr/sbin/sendmail -f "${EMAIL_FROM}" ${EMAIL_TO//,/ }
+}
+
+upsync_binpackages() {
+       # parameter 1: a PKGDIR on the local host
+       # parameter 2: the target dir in the mirroring system, should be of the
+       #              form arch/profileversion/name (e.g., amd64/17.0/x32 )
+       echo Upsyncing binpackages from $1 to $2
+       local SSH_CMD=(
+               ssh
+                       -i ${UPLOAD_KEY}
+                -o UserKnownHostsFile=/dev/null
+                -o VerifyHostKeyDNS=yes
+                -o StrictHostKeyChecking=no
+                -o IPQoS=cs0
+        )
+        local RSYNC_OPTS=(
+                -e "${SSH_CMD[*]}"
+                --archive
+                --delete
+                --delete-after
+                --omit-dir-times
+                --delay-updates
+                --mkpath
+                --stats
+        )
+        rsync "${RSYNC_OPTS[@]}" "$1"/* 
"${UPLOAD_USER}@releng-incoming.gentoo.org:/release/weekly/binpackages/$2/"
+}
+
+verify_dnssec() {
+        which dig >/dev/null || {
+                echo "net-dns/bind-tools is needed to verify DNSSEC is working"
+                exit 1
+        }
+
+        if ! dig +noall +comments dev.gentoo.org. IN SSHFP | egrep -q '^;; 
flags: [ a-z]+\<ad\>'; then
+                echo "DNSSEC does not appear to be working. Bailing out"
+                exit 1
+        fi
+
+        if ! grep -q '^options\>.*\<edns0\>' /etc/resolv.conf; then
+                echo "DNSSEC is not enabled in /etc/resolv.conf"
+                exit 1
+        fi
+}
+
+upload_all() {
+       local -; set +x
+       cp ${TMPFILE} 
/var/lib/machines/binhost-amd64-x86-64-kde-23/var/cache/binpkgs/last-build.log
+       upsync_binpackages 
/var/lib/machines/binhost-amd64-x86-64-kde-23/var/cache/binpkgs 
amd64/23.0/x86-64 &>> ${TMPFILE}
+       upsync_binpackages 
/var/lib/machines/binhost-amd64-x86-64-v3-kde-23/var/cache/binpkgs 
amd64/23.0/x86-64-v3 &>> ${TMPFILE}
+}
+
+checkpoint_build() {
+       now=$(date +%s)
+       if [[ $((starttime + 3600)) -lt ${now} ]]; then
+               upload_all
+               starttime=${now}
+       fi
+}
+
+
+
+if [[ -f ${LOCKFILE} ]] ; then
+       echo "lockfile ${LOCKFILE} exists, aborting"
+       exit 111
+fi
+touch ${LOCKFILE} || exit 112
+
+verify_dnssec
+
+echo Starting run at $(date -u) > ${TMPFILE}
+
+echo Syncing host &>> ${TMPFILE}
+
+emerge --sync -q &>> ${TMPFILE}
+
+anyfail=0
+
+starttime=$(date +%s)
+
+exec {BASH_XTRACEFD}>> ${TMPFILE}
+set -x
+
+nspawn_command=(systemd-nspawn --bind /var/cache/distfiles --bind-ro 
/var/db/repos/gentoo --tmpfs=/var/tmp:mode=1777,size=${TMPFS_SIZE}g)
+for n in "${NSPAWN_NAMES[@]}" ; do
+       machinedir=/var/lib/machines/${n}
+       echo Machine ${n} &>> ${TMPFILE}
+       echo &>> ${TMPFILE}
+       cd ${machinedir}/etc/binhost &>> ${TMPFILE}
+       git reset --hard &>> ${TMPFILE}
+       git pull &>> ${TMPFILE}
+       cd /root &>> ${TMPFILE}
+       "${nspawn_command[@]}" -M ${n} /root/bin/run-update &>> ${TMPFILE}
+       ret=$?
+       let "anyfail+=${ret}"
+       checkpoint_build
+       if [[ ${ret} = 0 ]]; then
+               builder=/etc/$(readlink ${machinedir}/etc/binhost.this)/portage
+               echo "Starting variant builds for ${machinedir}/${builder}..." 
&>> ${TMPFILE}
+               for variant in ${machinedir}/${builder}/variants/*; do
+                       [[ -d ${variant} ]] || break
+                       echo "Variant: ${variant}" &>> ${TMPFILE}
+                       "${nspawn_command[@]}" --ephemeral --bind 
${machinedir}/var/cache/binpkgs:/var/cache/binpkgs -M ${n} /root/bin/run-update 
${variant##*/} &>> ${TMPFILE}
+                       let "anyfail+=$?"
+                       checkpoint_build
+               done
+       fi
+done
+set +x
+
+
+upload_all
+
+
+if [[ ${anyfail} -gt 0 ]] ; then
+
+  send_email "Update failed" "Binhost ${BINHOST_NAME} update failed in at 
least one nspawn" ${TMPFILE}
+
+fi
+
+
+rm ${LOCKFILE}

diff --git a/builders/tintin/fstab.inc b/builders/tintin/fstab.inc
new file mode 100644
index 0000000..8027800
--- /dev/null
+++ b/builders/tintin/fstab.inc
@@ -0,0 +1,10 @@
+# for the binhosts, mount package dirs together (per abi)
+
+/var/lib/machines/binhost-amd64-x86-64-kde-23/var/cache/binpkgs 
/var/lib/machines/binhost-amd64-x86-64-gnome-23/var/cache/binpkgs bind bind 0 0
+/var/lib/machines/binhost-amd64-x86-64-kde-23/var/cache/binpkgs 
/var/lib/machines/binhost-amd64-x86-64-server-23/var/cache/binpkgs bind bind 0 0
+/var/lib/machines/binhost-amd64-x86-64-kde-23/var/cache/binpkgs 
/var/lib/machines/binhost-amd64-x86-64-openrc-23/var/cache/binpkgs bind bind 0 0
+
+/var/lib/machines/binhost-amd64-x86-64-v3-kde-23/var/cache/binpkgs 
/var/lib/machines/binhost-amd64-x86-64-v3-gnome-23/var/cache/binpkgs bind bind 
0 0
+/var/lib/machines/binhost-amd64-x86-64-v3-kde-23/var/cache/binpkgs 
/var/lib/machines/binhost-amd64-x86-64-v3-server-23/var/cache/binpkgs bind bind 
0 0
+/var/lib/machines/binhost-amd64-x86-64-v3-kde-23/var/cache/binpkgs 
/var/lib/machines/binhost-amd64-x86-64-v3-openrc-23/var/cache/binpkgs bind bind 
0 0
+

diff --git a/builders/tintin/gnome-v3-23/portage/env/lto.conf 
b/builders/tintin/gnome-v3-23/portage/env/lto.conf
new file mode 100644
index 0000000..37647dd
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/env/lto.conf
@@ -0,0 +1,5 @@
+CFLAGS="${CFLAGS} -flto"
+CXXFLAGS="${CXXFLAGS} -flto"
+FCFLAGS="${FCFLAGS} -flto"
+FFLAGS="${FFLAGS} -flto"
+LDFLAGS="${LDFLAGS} -flto"

diff --git a/builders/tintin/gnome-v3-23/portage/env/nolto.conf 
b/builders/tintin/gnome-v3-23/portage/env/nolto.conf
new file mode 100644
index 0000000..4f1f356
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/env/nolto.conf
@@ -0,0 +1,5 @@
+CFLAGS="${CFLAGS} -fno-lto"
+CXXFLAGS="${CXXFLAGS} -fno-lto"
+FCFLAGS="${FCFLAGS} -fno-lto"
+FFLAGS="${FFLAGS} -fno-lto"
+LDFLAGS="${LDFLAGS} -fno-lto"

diff --git a/builders/tintin/gnome-v3-23/portage/make.conf 
b/builders/tintin/gnome-v3-23/portage/make.conf
new file mode 100644
index 0000000..6391bc8
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/make.conf
@@ -0,0 +1,52 @@
+# These settings were set by the catalyst build script that automatically
+# built this stage.
+# Please consult /usr/share/portage/config/make.conf.example for a more
+# detailed example.
+
+# For now, we enforce LTO warnings but only enable LTO for certain packages.
+LTOFLAGS="-Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
+COMMON_FLAGS="-O2 -pipe -march=x86-64-v3 ${LTOFLAGS}"
+CFLAGS="${COMMON_FLAGS}"
+CXXFLAGS="${COMMON_FLAGS}"
+FCFLAGS="${COMMON_FLAGS}"
+FFLAGS="${COMMON_FLAGS}"
+
+LDFLAGS="${LDFLAGS} ${LTOFLAGS}"
+
+# NOTE: This stage was built with the bindist Use flag enabled
+PORTDIR="/var/db/repos/gentoo"
+DISTDIR="/var/cache/distfiles"
+PKGDIR="/var/cache/binpkgs"
+
+# This sets the language of build output to English.
+# Please keep this setting intact when reporting bugs.
+LC_MESSAGES=C
+
+MAKEOPTS="-j32 -l64"
+
+EMERGE_DEFAULT_OPTS="--jobs 20 --load-average 64 --quiet --keep-going 
--binpkg-respect-use --usepkg --with-bdeps=y --color n --nospinner"
+
+FEATURES="binpkg-multi-instance buildpkg compress-index -network-sandbox 
notitles"
+
+PORTAGE_BINHOST_TTL="3600"
+BINPKG_FORMAT="gpkg"
+BINPKG_COMPRESS="xz"
+
+USE="bindist cet lto pgo native-extensions"
+
+ACCEPT_RESTRICT="* -bindist"
+
+ACCEPT_LICENSE="@FREE MPEG-4"
+
+LC_ALL="en_US.utf8"
+
+# x86-64-v1:
+CPU_FLAGS_X86_v1="cmov cx8 fpu fxsr mmx osfxsr sce mmxext sse sse2"
+
+# x86-64-v2:
+CPU_FLAGS_X86_v2="${CPU_FLAGS_X86_v1} cmpxchg16b lahf_sahf popcnt sse3 sse4_1 
sse4_2 ssse3"
+
+# x86-64-v3:
+CPU_FLAGS_X86_v3="${CPU_FLAGS_X86_v2} avx avx2 bmi1 bmi2 f16c fma3 lzcnt movbe 
osxsave"
+
+CPU_FLAGS_X86=${CPU_FLAGS_X86_v3}

diff --git a/builders/tintin/gnome-v3-23/portage/make.profile 
b/builders/tintin/gnome-v3-23/portage/make.profile
new file mode 120000
index 0000000..2b817fe
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/make.profile
@@ -0,0 +1 @@
+/var/db/repos/gentoo/profiles/default/linux/amd64/23.0/desktop/gnome/systemd
\ No newline at end of file

diff --git a/builders/tintin/gnome-v3-23/portage/package.env/lto 
b/builders/tintin/gnome-v3-23/portage/package.env/lto
new file mode 100644
index 0000000..30a3c07
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.env/lto
@@ -0,0 +1,3 @@
+dev-lang/python lto.conf
+sys-devel/* lto.conf
+www-client/firefox lto.conf

diff --git a/builders/tintin/gnome-v3-23/portage/package.mask/prebuilt-bin 
b/builders/tintin/gnome-v3-23/portage/package.mask/prebuilt-bin
new file mode 100644
index 0000000..6d8e24a
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.mask/prebuilt-bin
@@ -0,0 +1 @@
+dev-lang/rust-bin

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/bindist 
b/builders/tintin/gnome-v3-23/portage/package.use/bindist
new file mode 100644
index 0000000..b75a197
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/bindist
@@ -0,0 +1,2 @@
+
+net-voip/telepathy-gabble gnutls

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/blender 
b/builders/tintin/gnome-v3-23/portage/package.use/blender
new file mode 100644
index 0000000..d2c15e1
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/blender
@@ -0,0 +1,7 @@
+media-libs/freetype brotli
+media-video/ffmpeg lame opus theora vpx
+
+# circ
+media-libs/opencolorio -opengl
+
+sys-devel/gcc openmp

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/dist-kernel 
b/builders/tintin/gnome-v3-23/portage/package.use/dist-kernel
new file mode 100644
index 0000000..7e6ada4
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/dist-kernel
@@ -0,0 +1 @@
+*/* dist-kernel

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/fixed 
b/builders/tintin/gnome-v3-23/portage/package.use/fixed
new file mode 100644
index 0000000..9574ec7
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/fixed
@@ -0,0 +1,6 @@
+# 26f47f5c7df6edda39ff1febc821f1f8e1803321
+sys-apps/dbus user-session
+
+
+# todo
+media-libs/freetype harfbuzz

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/inkscape 
b/builders/tintin/gnome-v3-23/portage/package.use/inkscape
new file mode 100644
index 0000000..4b2df36
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/inkscape
@@ -0,0 +1 @@
+dev-python/pillow webp

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/lxqt 
b/builders/tintin/gnome-v3-23/portage/package.use/lxqt
new file mode 100644
index 0000000..fdf4012
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/lxqt
@@ -0,0 +1,3 @@
+dev-qt/qt5compat qml
+dev-qt/qtmultimedia qml
+kde-frameworks/kconfig qml

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/meson-ci 
b/builders/tintin/gnome-v3-23/portage/package.use/meson-ci
new file mode 100644
index 0000000..4d21591
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/meson-ci
@@ -0,0 +1,3 @@
+dev-libs/boost python
+sys-cluster/openmpi fortran
+sci-libs/hdf5 cxx fortran

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/multilib 
b/builders/tintin/gnome-v3-23/portage/package.use/multilib
new file mode 100644
index 0000000..d025015
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/multilib
@@ -0,0 +1,32 @@
+dev-libs/icu abi_x86_32
+llvm-core/libclc abi_x86_32
+dev-libs/libffi abi_x86_32
+dev-libs/libxml2 abi_x86_32
+dev-ml/llvm-ocaml abi_x86_32
+dev-python/clang-python abi_x86_32
+dev-python/lit abi_x86_32
+dev-util/lldb abi_x86_32
+llvm-core/clang abi_x86_32
+llvm-core/clang-common abi_x86_32
+llvm-core/clang-runtime abi_x86_32
+llvm-core/clang-toolchain-symlinks abi_x86_32
+llvm-core/lld abi_x86_32
+llvm-core/lld-toolchain-symlinks abi_x86_32
+llvm-core/llvm abi_x86_32
+llvm-core/llvm-common abi_x86_32
+llvm-core/llvm-toolchain-symlinks abi_x86_32
+llvm-core/llvmgold abi_x86_32
+llvm-runtimes/compiler-rt abi_x86_32
+llvm-runtimes/compiler-rt-sanitizers abi_x86_32
+sys-libs/gpm abi_x86_32
+sys-libs/libcxx abi_x86_32
+sys-libs/libcxxabi abi_x86_32
+llvm-runtimes/openmp abi_x86_32
+sys-libs/llvm-libunwind abi_x86_32
+sys-libs/ncurses abi_x86_32 -gpm
+sys-libs/zlib abi_x86_32
+virtual/zlib abi_x86_32
+
+# for 23.0
+app-arch/xz-utils abi_x86_32
+app-arch/zstd abi_x86_32

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/pgo 
b/builders/tintin/gnome-v3-23/portage/package.use/pgo
new file mode 100644
index 0000000..07b62df
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/pgo
@@ -0,0 +1,2 @@
+# needed by firefox
+x11-base/xorg-server xvfb

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/queued 
b/builders/tintin/gnome-v3-23/portage/package.use/queued
new file mode 100644
index 0000000..49491b2
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/queued
@@ -0,0 +1 @@
+media-libs/libvpx postproc

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/rust 
b/builders/tintin/gnome-v3-23/portage/package.use/rust
new file mode 100644
index 0000000..471adda
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/rust
@@ -0,0 +1,2 @@
+dev-lang/rust clippy rustfmt
+dev-lang/rust mrustc-bootstrap

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/slim 
b/builders/tintin/gnome-v3-23/portage/package.use/slim
new file mode 100644
index 0000000..d84530e
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/slim
@@ -0,0 +1 @@
+dev-qt/qtwebengine -pulseaudio -screencast

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/virt-manager 
b/builders/tintin/gnome-v3-23/portage/package.use/virt-manager
new file mode 100644
index 0000000..7c86c53
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/virt-manager
@@ -0,0 +1,5 @@
+# not built by any binhost except when libvirt depends on it
+net-dns/dnsmasq script
+net-misc/spice-gtk usbredir
+# built by every binhost, with identical flag coverage
+net-libs/gnutls tools pkcs11

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/xfce4 
b/builders/tintin/gnome-v3-23/portage/package.use/xfce4
new file mode 100644
index 0000000..47dd0b9
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/xfce4
@@ -0,0 +1 @@
+dev-libs/libdbusmenu gtk3

diff --git a/builders/tintin/gnome-v3-23/portage/package.use/zlib 
b/builders/tintin/gnome-v3-23/portage/package.use/zlib
new file mode 100644
index 0000000..b934da8
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/package.use/zlib
@@ -0,0 +1 @@
+sys-libs/zlib minizip

diff --git 
a/builders/tintin/gnome-v3-23/portage/variants/debug/package.use/debug 
b/builders/tintin/gnome-v3-23/portage/variants/debug/package.use/debug
new file mode 100644
index 0000000..c1256bb
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/variants/debug/package.use/debug
@@ -0,0 +1,6 @@
+llvm-core/* debug
+llvm-runtimes/* debug
+
+sys-devel/gcc debug
+
+dev-lang/python debug

diff --git 
a/builders/tintin/gnome-v3-23/portage/variants/gccfrontends/package.use/gcc-frontends
 
b/builders/tintin/gnome-v3-23/portage/variants/gccfrontends/package.use/gcc-frontends
new file mode 100644
index 0000000..f7d9ab7
--- /dev/null
+++ 
b/builders/tintin/gnome-v3-23/portage/variants/gccfrontends/package.use/gcc-frontends
@@ -0,0 +1,2 @@
+sys-devel/gcc ada d jit
+>=sys-devel/gcc-13 ada objc objc++

diff --git a/builders/tintin/gnome-v3-23/portage/variants/gccfrontends/world 
b/builders/tintin/gnome-v3-23/portage/variants/gccfrontends/world
new file mode 100644
index 0000000..5e2737d
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/variants/gccfrontends/world
@@ -0,0 +1,4 @@
+=dev-lang/ada-bootstrap-11
+sys-devel/gcc:12
+sys-devel/gcc:13
+sys-devel/gcc:14

diff --git a/builders/tintin/gnome-v3-23/portage/variants/lucky/.run_marker 
b/builders/tintin/gnome-v3-23/portage/variants/lucky/.run_marker
new file mode 100644
index 0000000..722c3eb
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/variants/lucky/.run_marker
@@ -0,0 +1 @@
+I'm feeling lucky!

diff --git 
a/builders/tintin/gnome-v3-23/portage/variants/nobluetooth/package.use/nobluetooth
 
b/builders/tintin/gnome-v3-23/portage/variants/nobluetooth/package.use/nobluetooth
new file mode 100644
index 0000000..75f37fd
--- /dev/null
+++ 
b/builders/tintin/gnome-v3-23/portage/variants/nobluetooth/package.use/nobluetooth
@@ -0,0 +1 @@
+*/* -bluetooth

diff --git 
a/builders/tintin/gnome-v3-23/portage/variants/nopulse/package.use/nopulse 
b/builders/tintin/gnome-v3-23/portage/variants/nopulse/package.use/nopulse
new file mode 100644
index 0000000..3f33baa
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/variants/nopulse/package.use/nopulse
@@ -0,0 +1 @@
+*/* -pulseaudio -screencast

diff --git a/builders/tintin/gnome-v3-23/portage/variants/novala/buildpkgonly 
b/builders/tintin/gnome-v3-23/portage/variants/novala/buildpkgonly
new file mode 100755
index 0000000..465f80d
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/variants/novala/buildpkgonly
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+equery hasuse -F '$cp:$slot' vala | xargs emerge -1

diff --git 
a/builders/tintin/gnome-v3-23/portage/variants/novala/package.use/novala 
b/builders/tintin/gnome-v3-23/portage/variants/novala/package.use/novala
new file mode 100644
index 0000000..a28e144
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/variants/novala/package.use/novala
@@ -0,0 +1 @@
+*/* -vala

diff --git a/builders/tintin/gnome-v3-23/portage/variants/novala/world.remove 
b/builders/tintin/gnome-v3-23/portage/variants/novala/world.remove
new file mode 100644
index 0000000..e615ce3
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/variants/novala/world.remove
@@ -0,0 +1,3 @@
+gnome-base/gnome
+gnome-base/gnome-extra-apps
+mate-base/mate

diff --git 
a/builders/tintin/gnome-v3-23/portage/variants/nowayland/package.use/nowayland 
b/builders/tintin/gnome-v3-23/portage/variants/nowayland/package.use/nowayland
new file mode 100644
index 0000000..3e192a2
--- /dev/null
+++ 
b/builders/tintin/gnome-v3-23/portage/variants/nowayland/package.use/nowayland
@@ -0,0 +1,5 @@
+*/* -wayland
+media-gfx/blender -gnome
+
+# automagic dependency workaround fixed in ~arch
+media-libs/clutter-gtk wayland

diff --git 
a/builders/tintin/gnome-v3-23/portage/variants/python3both/buildpkgonly 
b/builders/tintin/gnome-v3-23/portage/variants/python3both/buildpkgonly
new file mode 100755
index 0000000..aae8e72
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/variants/python3both/buildpkgonly
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+set -e
+
+emerge -uDN --backtrack=100 @world
+
+# py 3.13 exclusive (non default)
+cat >> ../../make.conf <<- __EOF__
+       PYTHON_TARGETS="python3_12"
+       PYTHON_SINGLE_TARGET="python3_12"
+__EOF__
+
+EPYTHON=python3.12 emerge -uDN --backtrack=100 @world
+
+# USE is redundant, but works around https://bugs.gentoo.org/964705
+USE="-python" PYTHON_TARGETS= PYTHON_SINGLE_TARGET= emerge -1 $(pquery -I 
--has-use python --attr use| awk '/-python[ $]/{print "="$1}' | sed 
'/samba/d;/ldb/d;/tdb/d;/tevent/d;/qemu/d')

diff --git 
a/builders/tintin/gnome-v3-23/portage/variants/python3both/make.conf.footer 
b/builders/tintin/gnome-v3-23/portage/variants/python3both/make.conf.footer
new file mode 100644
index 0000000..255ab7c
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/variants/python3both/make.conf.footer
@@ -0,0 +1,2 @@
+PYTHON_TARGETS="python3_12 python3_13"
+PYTHON_SINGLE_TARGET="python3_12"

diff --git 
a/builders/tintin/gnome-v3-23/portage/variants/python3both/package.use/python3both
 
b/builders/tintin/gnome-v3-23/portage/variants/python3both/package.use/python3both
new file mode 100644
index 0000000..e7a834f
--- /dev/null
+++ 
b/builders/tintin/gnome-v3-23/portage/variants/python3both/package.use/python3both
@@ -0,0 +1,2 @@
+# unavailable for 3.13
+media-gfx/blender PYTHON_SINGLE_TARGET: python3_12

diff --git 
a/builders/tintin/gnome-v3-23/portage/variants/python3both/profile/use.stable.mask
 
b/builders/tintin/gnome-v3-23/portage/variants/python3both/profile/use.stable.mask
new file mode 100644
index 0000000..d58f7bb
--- /dev/null
+++ 
b/builders/tintin/gnome-v3-23/portage/variants/python3both/profile/use.stable.mask
@@ -0,0 +1,2 @@
+-python_targets_python3_13
+-python_single_target_python3_13

diff --git 
a/builders/tintin/gnome-v3-23/portage/variants/slim/package.use/slim2 
b/builders/tintin/gnome-v3-23/portage/variants/slim/package.use/slim2
new file mode 100644
index 0000000..a2f06fb
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/variants/slim/package.use/slim2
@@ -0,0 +1,6 @@
+*/* -bluetooth -gnome-online-accounts -pulseaudio -wayland
+app-office/libreoffice -eds -gstreamer
+media-gfx/blender -gnome
+
+# automagic dependency workaround fixed in ~arch
+media-libs/clutter-gtk wayland

diff --git a/builders/tintin/gnome-v3-23/portage/variants/unstable/buildpkgonly 
b/builders/tintin/gnome-v3-23/portage/variants/unstable/buildpkgonly
new file mode 100755
index 0000000..c97cc92
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/portage/variants/unstable/buildpkgonly
@@ -0,0 +1,9 @@
+#!/bin/bash
+set -e
+
+# We must use buildpkgonly here since we do not want to actually install
+# unstable packages. buildpkgonly will fatally error if any dependencies aren't
+# installed.
+emerge --buildpkgonly sys-devel/gcc:{16,15,14,13,12}
+# ... and clean it up
+rm /etc/portage/package.accept_keywords/gcc

diff --git 
a/builders/tintin/gnome-v3-23/portage/variants/unstable/package.accept_keywords/gcc
 
b/builders/tintin/gnome-v3-23/portage/variants/unstable/package.accept_keywords/gcc
new file mode 100644
index 0000000..faed33e
--- /dev/null
+++ 
b/builders/tintin/gnome-v3-23/portage/variants/unstable/package.accept_keywords/gcc
@@ -0,0 +1,2 @@
+sys-devel/gcc ~amd64
+<sys-devel/gcc-16.0.9999:16 **

diff --git a/builders/tintin/gnome-v3-23/run-update 
b/builders/tintin/gnome-v3-23/run-update
new file mode 100755
index 0000000..51bd9f6
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/run-update
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+# if one thing fails, abort entirely
+set -e
+
+to_install=(world)
+
+if [[ $1 = *lucky ]]; then
+       pquery -F '{category}/{package}' --max -r gentoo | grep -E -v 
'^(acct|virtual|sec)-' | sort -u > /tmp/stable
+       pquery --installed -F '{category}/{package}' | sort -u > /tmp/installed
+       comm -23 /tmp/stable /tmp/installed > /tmp/uninstalled-stable
+       sed -i 's/--binpkg-respect-use//' /etc/portage/make.conf
+
+       to_install=(--autounmask-write --autounmask-continue $(shuf -n3 
/tmp/uninstalled-stable))
+elif [[ $1 ]]; then
+       pushd /etc/portage/variants/$1
+       while read -r -d '' line; do
+               dest=../../${line%.footer}
+               if [[ ${line} = world* ]]; then
+                       dest=/var/lib/portage/world
+               fi
+
+               if [[ ${line} = world.remove ]]; then
+                       emerge -C $(<"${line}")
+               elif [[ ${line} = *.footer ]]; then
+                       cat "${line}" >> "${dest}"
+               else
+                       mkdir -p "${dest%/*}"
+                       cp "${line}" "${dest}"
+               fi
+       done < <(find . -type f -printf '%P\0')
+       if [[ -f buildpkgonly ]]; then
+               ./buildpkgonly
+       fi
+       popd
+fi
+
+emerge -uDN --changed-deps --backtrack=100 "${to_install[@]}"
+
+if [[ ! $1 ]]; then
+       emerge --depclean --quiet-unmerge-warn
+fi
+
+mapfile -t badlibs < <(portageq list_preserved_libs /)
+
+if (( ${#badlibs[@]} > 0 )); then
+       printf '%s\n' "WARNING: preserved-libs in binary packages!"
+       printf '  - %s\n' "${badlibs[@]}"
+       emerge -p @preserved-rebuild
+       exit 1
+fi

diff --git a/builders/tintin/gnome-v3-23/world 
b/builders/tintin/gnome-v3-23/world
new file mode 100644
index 0000000..bcb6d46
--- /dev/null
+++ b/builders/tintin/gnome-v3-23/world
@@ -0,0 +1,61 @@
+app-admin/keepassxc
+app-containers/docker
+app-containers/earthly
+app-editors/emacs
+app-editors/nano
+app-editors/vim
+app-editors/zed
+app-emulation/virt-manager
+app-office/abiword
+app-office/gnucash
+app-office/libreoffice
+app-office/texstudio
+app-officeext/texmaths
+app-portage/eix
+app-portage/gentoolkit
+app-text/doxygen
+app-text/pdftk
+app-text/xournalpp
+dev-debug/dtrace
+dev-java/openjdk
+dev-lang/ada-bootstrap
+dev-lang/mono
+dev-lang/python:3.10
+dev-lang/python:3.11
+dev-lang/python:3.12
+dev-lang/python:3.13
+dev-lang/rust
+dev-qt/qtwebengine
+dev-tex/latex-beamer
+dev-util/libabigail
+dev-util/perf
+gnome-base/gnome
+gnome-base/gnome-extra-apps
+llvm-core/clang
+lxqt-base/lxqt-meta
+mail-client/thunderbird
+mate-base/mate
+media-gfx/engauge
+media-gfx/gimp
+media-gfx/gnuclad
+media-gfx/inkscape
+media-gfx/povray
+net-dialup/ppp
+net-firewall/fwbuilder
+net-irc/quassel
+net-misc/chrony
+net-misc/dhcpcd
+net-misc/networkmanager
+net-vpn/openvpn
+sci-libs/netcdf
+sci-visualization/gnuplot
+sci-visualization/gwyddion
+sci-visualization/spyview
+sys-apps/pkgcore
+sys-apps/portage
+sys-boot/grub
+sys-cluster/openmpi
+sys-devel/gcc:14
+dev-debug/gdb
+www-client/firefox
+xfce-base/xfce4-meta

diff --git a/builders/tintin/kde-v3-23/portage/env/lto.conf 
b/builders/tintin/kde-v3-23/portage/env/lto.conf
new file mode 100644
index 0000000..37647dd
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/env/lto.conf
@@ -0,0 +1,5 @@
+CFLAGS="${CFLAGS} -flto"
+CXXFLAGS="${CXXFLAGS} -flto"
+FCFLAGS="${FCFLAGS} -flto"
+FFLAGS="${FFLAGS} -flto"
+LDFLAGS="${LDFLAGS} -flto"

diff --git a/builders/tintin/kde-v3-23/portage/env/nolto.conf 
b/builders/tintin/kde-v3-23/portage/env/nolto.conf
new file mode 100644
index 0000000..4f1f356
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/env/nolto.conf
@@ -0,0 +1,5 @@
+CFLAGS="${CFLAGS} -fno-lto"
+CXXFLAGS="${CXXFLAGS} -fno-lto"
+FCFLAGS="${FCFLAGS} -fno-lto"
+FFLAGS="${FFLAGS} -fno-lto"
+LDFLAGS="${LDFLAGS} -fno-lto"

diff --git a/builders/tintin/kde-v3-23/portage/make.conf 
b/builders/tintin/kde-v3-23/portage/make.conf
new file mode 100644
index 0000000..4a53383
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/make.conf
@@ -0,0 +1,52 @@
+# These settings were set by the catalyst build script that automatically
+# built this stage.
+# Please consult /usr/share/portage/config/make.conf.example for a more
+# detailed example.
+
+# For now, we enforce LTO warnings but only enable LTO for certain packages.
+LTOFLAGS="-Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
+COMMON_FLAGS="-O2 -pipe -march=x86-64-v3 ${LTOFLAGS}"
+CFLAGS="${COMMON_FLAGS}"
+CXXFLAGS="${COMMON_FLAGS}"
+FCFLAGS="${COMMON_FLAGS}"
+FFLAGS="${COMMON_FLAGS}"
+
+LDFLAGS="${LDFLAGS} ${LTOFLAGS}"
+
+# NOTE: This stage was built with the bindist Use flag enabled
+PORTDIR="/var/db/repos/gentoo"
+DISTDIR="/var/cache/distfiles"
+PKGDIR="/var/cache/binpkgs"
+
+# This sets the language of build output to English.
+# Please keep this setting intact when reporting bugs.
+LC_MESSAGES=C
+
+MAKEOPTS="-j32 -l64"
+
+EMERGE_DEFAULT_OPTS="--jobs 20 --load-average 64 --quiet --keep-going 
--binpkg-respect-use --usepkg --with-bdeps=y --color n --nospinner"
+
+FEATURES="binpkg-multi-instance buildpkg compress-index -network-sandbox 
notitles"
+
+PORTAGE_BINHOST_TTL="3600"
+BINPKG_FORMAT="gpkg"
+BINPKG_COMPRESS="xz"
+
+USE="bindist cet native-extensions"
+
+ACCEPT_RESTRICT="* -bindist"
+
+ACCEPT_LICENSE="@FREE MPEG-4"
+
+LC_ALL="en_US.utf8"
+
+# x86-64-v1:
+CPU_FLAGS_X86_v1="cmov cx8 fpu fxsr mmx osfxsr sce mmxext sse sse2"
+
+# x86-64-v2:
+CPU_FLAGS_X86_v2="${CPU_FLAGS_X86_v1} cmpxchg16b lahf_sahf popcnt sse3 sse4_1 
sse4_2 ssse3"
+
+# x86-64-v3:
+CPU_FLAGS_X86_v3="${CPU_FLAGS_X86_v2} avx avx2 bmi1 bmi2 f16c fma3 lzcnt movbe 
osxsave"
+
+CPU_FLAGS_X86=${CPU_FLAGS_X86_v3}

diff --git a/builders/tintin/kde-v3-23/portage/make.profile 
b/builders/tintin/kde-v3-23/portage/make.profile
new file mode 120000
index 0000000..536e7ef
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/make.profile
@@ -0,0 +1 @@
+/var/db/repos/gentoo/profiles/default/linux/amd64/23.0/desktop/plasma/systemd
\ No newline at end of file

diff --git a/builders/tintin/kde-v3-23/portage/package.env/lto 
b/builders/tintin/kde-v3-23/portage/package.env/lto
new file mode 100644
index 0000000..30a3c07
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.env/lto
@@ -0,0 +1,3 @@
+dev-lang/python lto.conf
+sys-devel/* lto.conf
+www-client/firefox lto.conf

diff --git a/builders/tintin/kde-v3-23/portage/package.mask/prebuilt-bin 
b/builders/tintin/kde-v3-23/portage/package.mask/prebuilt-bin
new file mode 100644
index 0000000..6d8e24a
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.mask/prebuilt-bin
@@ -0,0 +1 @@
+dev-lang/rust-bin

diff --git a/builders/tintin/kde-v3-23/portage/package.use/bindist 
b/builders/tintin/kde-v3-23/portage/package.use/bindist
new file mode 100644
index 0000000..b75a197
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.use/bindist
@@ -0,0 +1,2 @@
+
+net-voip/telepathy-gabble gnutls

diff --git a/builders/tintin/kde-v3-23/portage/package.use/calibre 
b/builders/tintin/kde-v3-23/portage/package.use/calibre
new file mode 100644
index 0000000..57cb853
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.use/calibre
@@ -0,0 +1 @@
+dev-python/pyqt6 quick

diff --git a/builders/tintin/kde-v3-23/portage/package.use/dist-kernel 
b/builders/tintin/kde-v3-23/portage/package.use/dist-kernel
new file mode 100644
index 0000000..7e6ada4
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.use/dist-kernel
@@ -0,0 +1 @@
+*/* dist-kernel

diff --git a/builders/tintin/kde-v3-23/portage/package.use/ffmpeg 
b/builders/tintin/kde-v3-23/portage/package.use/ffmpeg
new file mode 100644
index 0000000..aad80a4
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.use/ffmpeg
@@ -0,0 +1 @@
+media-video/ffmpeg libass

diff --git a/builders/tintin/kde-v3-23/portage/package.use/fixed 
b/builders/tintin/kde-v3-23/portage/package.use/fixed
new file mode 100644
index 0000000..9574ec7
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.use/fixed
@@ -0,0 +1,6 @@
+# 26f47f5c7df6edda39ff1febc821f1f8e1803321
+sys-apps/dbus user-session
+
+
+# todo
+media-libs/freetype harfbuzz

diff --git a/builders/tintin/kde-v3-23/portage/package.use/gcc 
b/builders/tintin/kde-v3-23/portage/package.use/gcc
new file mode 100644
index 0000000..84862d7
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.use/gcc
@@ -0,0 +1,2 @@
+sys-devel/gcc lto pgo
+sys-devel/binutils pgo

diff --git a/builders/tintin/kde-v3-23/portage/package.use/kde 
b/builders/tintin/kde-v3-23/portage/package.use/kde
new file mode 100644
index 0000000..f7a73ab
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.use/kde
@@ -0,0 +1,4 @@
+# KDE requirements not met by the profile
+
+# akonadi
+dev-qt/qtbase mysql

diff --git a/builders/tintin/kde-v3-23/portage/package.use/klayout 
b/builders/tintin/kde-v3-23/portage/package.use/klayout
new file mode 100644
index 0000000..11da39c
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.use/klayout
@@ -0,0 +1,2 @@
+# Needed for sci-electronics/klayout
+dev-qt/qttools designer

diff --git a/builders/tintin/kde-v3-23/portage/package.use/mate 
b/builders/tintin/kde-v3-23/portage/package.use/mate
new file mode 100644
index 0000000..47dd0b9
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.use/mate
@@ -0,0 +1 @@
+dev-libs/libdbusmenu gtk3

diff --git a/builders/tintin/kde-v3-23/portage/package.use/python3-incompat 
b/builders/tintin/kde-v3-23/portage/package.use/python3-incompat
new file mode 100644
index 0000000..871a663
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.use/python3-incompat
@@ -0,0 +1,2 @@
+# unavailable for 3.13
+<llvm-core/clang-18 PYTHON_SINGLE_TARGET: python3_12

diff --git a/builders/tintin/kde-v3-23/portage/package.use/queued 
b/builders/tintin/kde-v3-23/portage/package.use/queued
new file mode 100644
index 0000000..f61935d
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.use/queued
@@ -0,0 +1,3 @@
+media-libs/libvpx postproc
+dev-qt/qtpositioning geoclue
+dev-python/pillow webp

diff --git a/builders/tintin/kde-v3-23/portage/package.use/rust 
b/builders/tintin/kde-v3-23/portage/package.use/rust
new file mode 100644
index 0000000..2b1a617
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/package.use/rust
@@ -0,0 +1 @@
+dev-lang/rust mrustc-bootstrap

diff --git a/builders/tintin/kde-v3-23/portage/variants/debug/package.use/debug 
b/builders/tintin/kde-v3-23/portage/variants/debug/package.use/debug
new file mode 100644
index 0000000..c1256bb
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/variants/debug/package.use/debug
@@ -0,0 +1,6 @@
+llvm-core/* debug
+llvm-runtimes/* debug
+
+sys-devel/gcc debug
+
+dev-lang/python debug

diff --git 
a/builders/tintin/kde-v3-23/portage/variants/gcc-nopgo/package.use/gcc 
b/builders/tintin/kde-v3-23/portage/variants/gcc-nopgo/package.use/gcc
new file mode 100644
index 0000000..6e7c460
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/variants/gcc-nopgo/package.use/gcc
@@ -0,0 +1 @@
+# revert default pgo/lto for binpkg coverage

diff --git a/builders/tintin/kde-v3-23/portage/variants/lucky/.run_marker 
b/builders/tintin/kde-v3-23/portage/variants/lucky/.run_marker
new file mode 100644
index 0000000..722c3eb
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/variants/lucky/.run_marker
@@ -0,0 +1 @@
+I'm feeling lucky!

diff --git 
a/builders/tintin/kde-v3-23/portage/variants/python3both/buildpkgonly 
b/builders/tintin/kde-v3-23/portage/variants/python3both/buildpkgonly
new file mode 100755
index 0000000..c855314
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/variants/python3both/buildpkgonly
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+set -e
+
+emerge -uDN --backtrack=100 @world
+
+# py 3.13 exclusive (non default)
+cat >> ../../make.conf <<- __EOF__
+       PYTHON_TARGETS="python3_12"
+       PYTHON_SINGLE_TARGET="python3_12"
+__EOF__
+
+EPYTHON=python3.12 emerge -uDN --backtrack=100 @world
+
+# USE is redundant, but works around https://bugs.gentoo.org/964705
+USE="-python" PYTHON_TARGETS= PYTHON_SINGLE_TARGET= emerge -1 $(pquery -I 
--has-use python --attr use| awk '/-python[ $]/{print "="$1}')

diff --git 
a/builders/tintin/kde-v3-23/portage/variants/python3both/make.conf.footer 
b/builders/tintin/kde-v3-23/portage/variants/python3both/make.conf.footer
new file mode 100644
index 0000000..255ab7c
--- /dev/null
+++ b/builders/tintin/kde-v3-23/portage/variants/python3both/make.conf.footer
@@ -0,0 +1,2 @@
+PYTHON_TARGETS="python3_12 python3_13"
+PYTHON_SINGLE_TARGET="python3_12"

diff --git 
a/builders/tintin/kde-v3-23/portage/variants/python3both/package.use/python3both
 
b/builders/tintin/kde-v3-23/portage/variants/python3both/package.use/python3both
new file mode 100644
index 0000000..871a663
--- /dev/null
+++ 
b/builders/tintin/kde-v3-23/portage/variants/python3both/package.use/python3both
@@ -0,0 +1,2 @@
+# unavailable for 3.13
+<llvm-core/clang-18 PYTHON_SINGLE_TARGET: python3_12

diff --git 
a/builders/tintin/kde-v3-23/portage/variants/python3both/profile/use.stable.mask
 
b/builders/tintin/kde-v3-23/portage/variants/python3both/profile/use.stable.mask
new file mode 100644
index 0000000..d58f7bb
--- /dev/null
+++ 
b/builders/tintin/kde-v3-23/portage/variants/python3both/profile/use.stable.mask
@@ -0,0 +1,2 @@
+-python_targets_python3_13
+-python_single_target_python3_13

diff --git a/builders/tintin/kde-v3-23/run-update 
b/builders/tintin/kde-v3-23/run-update
new file mode 100755
index 0000000..51bd9f6
--- /dev/null
+++ b/builders/tintin/kde-v3-23/run-update
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+# if one thing fails, abort entirely
+set -e
+
+to_install=(world)
+
+if [[ $1 = *lucky ]]; then
+       pquery -F '{category}/{package}' --max -r gentoo | grep -E -v 
'^(acct|virtual|sec)-' | sort -u > /tmp/stable
+       pquery --installed -F '{category}/{package}' | sort -u > /tmp/installed
+       comm -23 /tmp/stable /tmp/installed > /tmp/uninstalled-stable
+       sed -i 's/--binpkg-respect-use//' /etc/portage/make.conf
+
+       to_install=(--autounmask-write --autounmask-continue $(shuf -n3 
/tmp/uninstalled-stable))
+elif [[ $1 ]]; then
+       pushd /etc/portage/variants/$1
+       while read -r -d '' line; do
+               dest=../../${line%.footer}
+               if [[ ${line} = world* ]]; then
+                       dest=/var/lib/portage/world
+               fi
+
+               if [[ ${line} = world.remove ]]; then
+                       emerge -C $(<"${line}")
+               elif [[ ${line} = *.footer ]]; then
+                       cat "${line}" >> "${dest}"
+               else
+                       mkdir -p "${dest%/*}"
+                       cp "${line}" "${dest}"
+               fi
+       done < <(find . -type f -printf '%P\0')
+       if [[ -f buildpkgonly ]]; then
+               ./buildpkgonly
+       fi
+       popd
+fi
+
+emerge -uDN --changed-deps --backtrack=100 "${to_install[@]}"
+
+if [[ ! $1 ]]; then
+       emerge --depclean --quiet-unmerge-warn
+fi
+
+mapfile -t badlibs < <(portageq list_preserved_libs /)
+
+if (( ${#badlibs[@]} > 0 )); then
+       printf '%s\n' "WARNING: preserved-libs in binary packages!"
+       printf '  - %s\n' "${badlibs[@]}"
+       emerge -p @preserved-rebuild
+       exit 1
+fi

diff --git a/builders/tintin/kde-v3-23/world b/builders/tintin/kde-v3-23/world
new file mode 100644
index 0000000..3ceede3
--- /dev/null
+++ b/builders/tintin/kde-v3-23/world
@@ -0,0 +1,61 @@
+app-admin/keepassxc
+app-containers/docker
+app-containers/earthly
+app-editors/emacs
+app-editors/kile
+app-editors/nano
+app-office/abiword
+app-office/gnucash
+app-office/kmymoney
+app-office/libreoffice
+app-office/scribus
+app-office/texstudio
+app-officeext/texmaths
+app-portage/eix
+app-portage/gentoolkit
+app-text/calibre
+app-text/pdftk
+app-text/xournalpp
+dev-java/openjdk
+dev-lang/ada-bootstrap
+dev-lang/mono
+dev-lang/rust
+dev-tex/latex-beamer
+dev-util/kdevelop
+kde-apps/kde-apps-meta
+kde-apps/kdepim-meta
+kde-plasma/plasma-meta
+llvm-core/clang:15
+llvm-core/clang:16
+llvm-core/clang:17
+llvm-core/clang:18
+llvm-core/clang:19
+llvm-core/clang:20
+lxqt-base/lxqt-meta
+mate-base/mate
+media-gfx/engauge
+media-gfx/gimp
+media-gfx/gnuclad
+media-gfx/inkscape
+media-gfx/krita
+media-gfx/povray
+media-sound/strawberry
+media-video/kaffeine
+net-firewall/fwbuilder
+net-irc/quassel
+net-misc/chrony
+net-misc/dhcpcd
+net-misc/networkmanager
+net-vpn/openvpn
+sci-electronics/klayout
+sci-visualization/gnuplot
+sci-visualization/gwyddion
+sci-visualization/spyview
+sys-apps/pkgcore
+sys-apps/portage
+sys-auth/AusweisApp
+sys-devel/gcc:14
+dev-debug/gdb
+www-client/firefox
+www-client/qutebrowser
+www-servers/apache

diff --git a/builders/tintin/openrc-v3-23/portage/env/lto.conf 
b/builders/tintin/openrc-v3-23/portage/env/lto.conf
new file mode 100644
index 0000000..37647dd
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/env/lto.conf
@@ -0,0 +1,5 @@
+CFLAGS="${CFLAGS} -flto"
+CXXFLAGS="${CXXFLAGS} -flto"
+FCFLAGS="${FCFLAGS} -flto"
+FFLAGS="${FFLAGS} -flto"
+LDFLAGS="${LDFLAGS} -flto"

diff --git a/builders/tintin/openrc-v3-23/portage/env/nolto.conf 
b/builders/tintin/openrc-v3-23/portage/env/nolto.conf
new file mode 100644
index 0000000..4f1f356
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/env/nolto.conf
@@ -0,0 +1,5 @@
+CFLAGS="${CFLAGS} -fno-lto"
+CXXFLAGS="${CXXFLAGS} -fno-lto"
+FCFLAGS="${FCFLAGS} -fno-lto"
+FFLAGS="${FFLAGS} -fno-lto"
+LDFLAGS="${LDFLAGS} -fno-lto"

diff --git a/builders/tintin/openrc-v3-23/portage/make.conf 
b/builders/tintin/openrc-v3-23/portage/make.conf
new file mode 100644
index 0000000..4a53383
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/make.conf
@@ -0,0 +1,52 @@
+# These settings were set by the catalyst build script that automatically
+# built this stage.
+# Please consult /usr/share/portage/config/make.conf.example for a more
+# detailed example.
+
+# For now, we enforce LTO warnings but only enable LTO for certain packages.
+LTOFLAGS="-Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
+COMMON_FLAGS="-O2 -pipe -march=x86-64-v3 ${LTOFLAGS}"
+CFLAGS="${COMMON_FLAGS}"
+CXXFLAGS="${COMMON_FLAGS}"
+FCFLAGS="${COMMON_FLAGS}"
+FFLAGS="${COMMON_FLAGS}"
+
+LDFLAGS="${LDFLAGS} ${LTOFLAGS}"
+
+# NOTE: This stage was built with the bindist Use flag enabled
+PORTDIR="/var/db/repos/gentoo"
+DISTDIR="/var/cache/distfiles"
+PKGDIR="/var/cache/binpkgs"
+
+# This sets the language of build output to English.
+# Please keep this setting intact when reporting bugs.
+LC_MESSAGES=C
+
+MAKEOPTS="-j32 -l64"
+
+EMERGE_DEFAULT_OPTS="--jobs 20 --load-average 64 --quiet --keep-going 
--binpkg-respect-use --usepkg --with-bdeps=y --color n --nospinner"
+
+FEATURES="binpkg-multi-instance buildpkg compress-index -network-sandbox 
notitles"
+
+PORTAGE_BINHOST_TTL="3600"
+BINPKG_FORMAT="gpkg"
+BINPKG_COMPRESS="xz"
+
+USE="bindist cet native-extensions"
+
+ACCEPT_RESTRICT="* -bindist"
+
+ACCEPT_LICENSE="@FREE MPEG-4"
+
+LC_ALL="en_US.utf8"
+
+# x86-64-v1:
+CPU_FLAGS_X86_v1="cmov cx8 fpu fxsr mmx osfxsr sce mmxext sse sse2"
+
+# x86-64-v2:
+CPU_FLAGS_X86_v2="${CPU_FLAGS_X86_v1} cmpxchg16b lahf_sahf popcnt sse3 sse4_1 
sse4_2 ssse3"
+
+# x86-64-v3:
+CPU_FLAGS_X86_v3="${CPU_FLAGS_X86_v2} avx avx2 bmi1 bmi2 f16c fma3 lzcnt movbe 
osxsave"
+
+CPU_FLAGS_X86=${CPU_FLAGS_X86_v3}

diff --git a/builders/tintin/openrc-v3-23/portage/make.profile 
b/builders/tintin/openrc-v3-23/portage/make.profile
new file mode 120000
index 0000000..52b8803
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/make.profile
@@ -0,0 +1 @@
+/var/db/repos/gentoo/profiles/default/linux/amd64/23.0/desktop/gnome
\ No newline at end of file

diff --git a/builders/tintin/openrc-v3-23/portage/package.env/lto 
b/builders/tintin/openrc-v3-23/portage/package.env/lto
new file mode 100644
index 0000000..30a3c07
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.env/lto
@@ -0,0 +1,3 @@
+dev-lang/python lto.conf
+sys-devel/* lto.conf
+www-client/firefox lto.conf

diff --git a/builders/tintin/openrc-v3-23/portage/package.mask/prebuilt-bin 
b/builders/tintin/openrc-v3-23/portage/package.mask/prebuilt-bin
new file mode 100644
index 0000000..6d8e24a
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.mask/prebuilt-bin
@@ -0,0 +1 @@
+dev-lang/rust-bin

diff --git a/builders/tintin/openrc-v3-23/portage/package.use/bindist 
b/builders/tintin/openrc-v3-23/portage/package.use/bindist
new file mode 100644
index 0000000..b75a197
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.use/bindist
@@ -0,0 +1,2 @@
+
+net-voip/telepathy-gabble gnutls

diff --git a/builders/tintin/openrc-v3-23/portage/package.use/blender 
b/builders/tintin/openrc-v3-23/portage/package.use/blender
new file mode 100644
index 0000000..b2c229e
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.use/blender
@@ -0,0 +1,5 @@
+media-libs/freetype brotli
+media-video/ffmpeg lame opus theora vpx
+
+# circ
+media-libs/opencolorio -opengl

diff --git a/builders/tintin/openrc-v3-23/portage/package.use/dist-kernel 
b/builders/tintin/openrc-v3-23/portage/package.use/dist-kernel
new file mode 100644
index 0000000..7e6ada4
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.use/dist-kernel
@@ -0,0 +1 @@
+*/* dist-kernel

diff --git a/builders/tintin/openrc-v3-23/portage/package.use/fixed 
b/builders/tintin/openrc-v3-23/portage/package.use/fixed
new file mode 100644
index 0000000..9574ec7
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.use/fixed
@@ -0,0 +1,6 @@
+# 26f47f5c7df6edda39ff1febc821f1f8e1803321
+sys-apps/dbus user-session
+
+
+# todo
+media-libs/freetype harfbuzz

diff --git a/builders/tintin/openrc-v3-23/portage/package.use/inkscape 
b/builders/tintin/openrc-v3-23/portage/package.use/inkscape
new file mode 100644
index 0000000..4b2df36
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.use/inkscape
@@ -0,0 +1 @@
+dev-python/pillow webp

diff --git a/builders/tintin/openrc-v3-23/portage/package.use/kde 
b/builders/tintin/openrc-v3-23/portage/package.use/kde
new file mode 100644
index 0000000..93cefae
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.use/kde
@@ -0,0 +1,23 @@
+kde-frameworks/* qml
+kde-plasma/kwin lock
+kde-plasma/kwin-x11 lock
+media-plugins/gst-plugins-meta theora v4l
+media-video/ffmpeg libass
+dev-qt/* qml
+dev-qt/qtwebengine widgets
+dev-qt/qtscript scripttools
+dev-qt/qtsql mysql
+dev-qt/qtpositioning geoclue
+
+# Required by kde-apps/kdenlive
+media-libs/mlt ffmpeg frei0r
+media-libs/opencv features2d
+
+# Required by media-gfx/digikam
+media-libs/opencv contrib contribdnn
+
+# akonadi
+dev-qt/qtbase mysql
+
+# kgraphviewer/graphviz
+media-libs/gd fontconfig

diff --git a/builders/tintin/openrc-v3-23/portage/package.use/llvm 
b/builders/tintin/openrc-v3-23/portage/package.use/llvm
new file mode 100644
index 0000000..c75065b
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.use/llvm
@@ -0,0 +1,2 @@
+app-arch/xz-utils abi_x86_32
+app-arch/zstd abi_x86_32

diff --git a/builders/tintin/openrc-v3-23/portage/package.use/multilib 
b/builders/tintin/openrc-v3-23/portage/package.use/multilib
new file mode 100644
index 0000000..7d78185
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.use/multilib
@@ -0,0 +1,28 @@
+dev-libs/icu abi_x86_32
+llvm-core/libclc abi_x86_32
+dev-libs/libffi abi_x86_32
+dev-libs/libxml2 abi_x86_32
+dev-ml/llvm-ocaml abi_x86_32
+dev-python/clang-python abi_x86_32
+dev-python/lit abi_x86_32
+dev-util/lldb abi_x86_32
+llvm-core/clang abi_x86_32
+llvm-core/clang-common abi_x86_32
+llvm-core/clang-runtime abi_x86_32
+llvm-core/clang-toolchain-symlinks abi_x86_32
+llvm-core/lld abi_x86_32
+llvm-core/lld-toolchain-symlinks abi_x86_32
+llvm-core/llvm abi_x86_32
+llvm-core/llvm-common abi_x86_32
+llvm-core/llvm-toolchain-symlinks abi_x86_32
+llvm-core/llvmgold abi_x86_32
+llvm-runtimes/compiler-rt abi_x86_32
+llvm-runtimes/compiler-rt-sanitizers abi_x86_32
+sys-libs/gpm abi_x86_32
+sys-libs/libcxx abi_x86_32
+sys-libs/libcxxabi abi_x86_32
+llvm-runtimes/openmp abi_x86_32
+sys-libs/llvm-libunwind abi_x86_32
+sys-libs/ncurses abi_x86_32 -gpm
+sys-libs/zlib abi_x86_32
+virtual/zlib abi_x86_32

diff --git a/builders/tintin/openrc-v3-23/portage/package.use/queued 
b/builders/tintin/openrc-v3-23/portage/package.use/queued
new file mode 100644
index 0000000..49491b2
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.use/queued
@@ -0,0 +1 @@
+media-libs/libvpx postproc

diff --git a/builders/tintin/openrc-v3-23/portage/package.use/rust 
b/builders/tintin/openrc-v3-23/portage/package.use/rust
new file mode 100644
index 0000000..471adda
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.use/rust
@@ -0,0 +1,2 @@
+dev-lang/rust clippy rustfmt
+dev-lang/rust mrustc-bootstrap

diff --git a/builders/tintin/openrc-v3-23/portage/package.use/xfce4 
b/builders/tintin/openrc-v3-23/portage/package.use/xfce4
new file mode 100644
index 0000000..47dd0b9
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.use/xfce4
@@ -0,0 +1 @@
+dev-libs/libdbusmenu gtk3

diff --git a/builders/tintin/openrc-v3-23/portage/package.use/zlib 
b/builders/tintin/openrc-v3-23/portage/package.use/zlib
new file mode 100644
index 0000000..b934da8
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/package.use/zlib
@@ -0,0 +1 @@
+sys-libs/zlib minizip

diff --git a/builders/tintin/openrc-v3-23/portage/variants/lucky/.run_marker 
b/builders/tintin/openrc-v3-23/portage/variants/lucky/.run_marker
new file mode 100644
index 0000000..722c3eb
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/portage/variants/lucky/.run_marker
@@ -0,0 +1 @@
+I'm feeling lucky!

diff --git a/builders/tintin/openrc-v3-23/run-update 
b/builders/tintin/openrc-v3-23/run-update
new file mode 100755
index 0000000..51bd9f6
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/run-update
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+# if one thing fails, abort entirely
+set -e
+
+to_install=(world)
+
+if [[ $1 = *lucky ]]; then
+       pquery -F '{category}/{package}' --max -r gentoo | grep -E -v 
'^(acct|virtual|sec)-' | sort -u > /tmp/stable
+       pquery --installed -F '{category}/{package}' | sort -u > /tmp/installed
+       comm -23 /tmp/stable /tmp/installed > /tmp/uninstalled-stable
+       sed -i 's/--binpkg-respect-use//' /etc/portage/make.conf
+
+       to_install=(--autounmask-write --autounmask-continue $(shuf -n3 
/tmp/uninstalled-stable))
+elif [[ $1 ]]; then
+       pushd /etc/portage/variants/$1
+       while read -r -d '' line; do
+               dest=../../${line%.footer}
+               if [[ ${line} = world* ]]; then
+                       dest=/var/lib/portage/world
+               fi
+
+               if [[ ${line} = world.remove ]]; then
+                       emerge -C $(<"${line}")
+               elif [[ ${line} = *.footer ]]; then
+                       cat "${line}" >> "${dest}"
+               else
+                       mkdir -p "${dest%/*}"
+                       cp "${line}" "${dest}"
+               fi
+       done < <(find . -type f -printf '%P\0')
+       if [[ -f buildpkgonly ]]; then
+               ./buildpkgonly
+       fi
+       popd
+fi
+
+emerge -uDN --changed-deps --backtrack=100 "${to_install[@]}"
+
+if [[ ! $1 ]]; then
+       emerge --depclean --quiet-unmerge-warn
+fi
+
+mapfile -t badlibs < <(portageq list_preserved_libs /)
+
+if (( ${#badlibs[@]} > 0 )); then
+       printf '%s\n' "WARNING: preserved-libs in binary packages!"
+       printf '  - %s\n' "${badlibs[@]}"
+       emerge -p @preserved-rebuild
+       exit 1
+fi

diff --git a/builders/tintin/openrc-v3-23/world 
b/builders/tintin/openrc-v3-23/world
new file mode 100644
index 0000000..54ac745
--- /dev/null
+++ b/builders/tintin/openrc-v3-23/world
@@ -0,0 +1,47 @@
+app-admin/keepassxc
+app-containers/docker
+app-containers/earthly
+app-editors/emacs
+app-editors/nano
+app-editors/vim
+app-office/abiword
+app-office/gnucash
+app-office/libreoffice
+app-office/texstudio
+app-officeext/texmaths
+app-portage/eix
+app-portage/gentoolkit
+app-text/pdftk
+app-text/xournalpp
+dev-java/openjdk
+dev-lang/ada-bootstrap
+dev-lang/mono
+dev-lang/rust
+dev-tex/latex-beamer
+gnome-base/gnome
+gnome-base/gnome-extra-apps
+kde-apps/kde-apps-meta
+kde-apps/kdepim-meta
+kde-plasma/plasma-meta
+llvm-core/clang
+lxqt-base/lxqt-meta
+mate-base/mate
+media-gfx/engauge
+media-gfx/gimp
+media-gfx/gnuclad
+media-gfx/inkscape
+media-gfx/povray
+net-firewall/fwbuilder
+net-irc/quassel
+net-misc/chrony
+net-misc/dhcpcd
+net-vpn/openvpn
+sci-visualization/gnuplot
+sci-visualization/gwyddion
+sci-visualization/spyview
+sys-apps/pkgcore
+sys-apps/portage
+sys-devel/gcc:14
+dev-debug/gdb
+www-client/firefox
+xfce-base/xfce4-meta

diff --git a/builders/tintin/server-v3-23/portage/env/lto.conf 
b/builders/tintin/server-v3-23/portage/env/lto.conf
new file mode 100644
index 0000000..37647dd
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/env/lto.conf
@@ -0,0 +1,5 @@
+CFLAGS="${CFLAGS} -flto"
+CXXFLAGS="${CXXFLAGS} -flto"
+FCFLAGS="${FCFLAGS} -flto"
+FFLAGS="${FFLAGS} -flto"
+LDFLAGS="${LDFLAGS} -flto"

diff --git a/builders/tintin/server-v3-23/portage/env/nolto.conf 
b/builders/tintin/server-v3-23/portage/env/nolto.conf
new file mode 100644
index 0000000..4f1f356
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/env/nolto.conf
@@ -0,0 +1,5 @@
+CFLAGS="${CFLAGS} -fno-lto"
+CXXFLAGS="${CXXFLAGS} -fno-lto"
+FCFLAGS="${FCFLAGS} -fno-lto"
+FFLAGS="${FFLAGS} -fno-lto"
+LDFLAGS="${LDFLAGS} -fno-lto"

diff --git a/builders/tintin/server-v3-23/portage/make.conf 
b/builders/tintin/server-v3-23/portage/make.conf
new file mode 100644
index 0000000..4a53383
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/make.conf
@@ -0,0 +1,52 @@
+# These settings were set by the catalyst build script that automatically
+# built this stage.
+# Please consult /usr/share/portage/config/make.conf.example for a more
+# detailed example.
+
+# For now, we enforce LTO warnings but only enable LTO for certain packages.
+LTOFLAGS="-Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
+COMMON_FLAGS="-O2 -pipe -march=x86-64-v3 ${LTOFLAGS}"
+CFLAGS="${COMMON_FLAGS}"
+CXXFLAGS="${COMMON_FLAGS}"
+FCFLAGS="${COMMON_FLAGS}"
+FFLAGS="${COMMON_FLAGS}"
+
+LDFLAGS="${LDFLAGS} ${LTOFLAGS}"
+
+# NOTE: This stage was built with the bindist Use flag enabled
+PORTDIR="/var/db/repos/gentoo"
+DISTDIR="/var/cache/distfiles"
+PKGDIR="/var/cache/binpkgs"
+
+# This sets the language of build output to English.
+# Please keep this setting intact when reporting bugs.
+LC_MESSAGES=C
+
+MAKEOPTS="-j32 -l64"
+
+EMERGE_DEFAULT_OPTS="--jobs 20 --load-average 64 --quiet --keep-going 
--binpkg-respect-use --usepkg --with-bdeps=y --color n --nospinner"
+
+FEATURES="binpkg-multi-instance buildpkg compress-index -network-sandbox 
notitles"
+
+PORTAGE_BINHOST_TTL="3600"
+BINPKG_FORMAT="gpkg"
+BINPKG_COMPRESS="xz"
+
+USE="bindist cet native-extensions"
+
+ACCEPT_RESTRICT="* -bindist"
+
+ACCEPT_LICENSE="@FREE MPEG-4"
+
+LC_ALL="en_US.utf8"
+
+# x86-64-v1:
+CPU_FLAGS_X86_v1="cmov cx8 fpu fxsr mmx osfxsr sce mmxext sse sse2"
+
+# x86-64-v2:
+CPU_FLAGS_X86_v2="${CPU_FLAGS_X86_v1} cmpxchg16b lahf_sahf popcnt sse3 sse4_1 
sse4_2 ssse3"
+
+# x86-64-v3:
+CPU_FLAGS_X86_v3="${CPU_FLAGS_X86_v2} avx avx2 bmi1 bmi2 f16c fma3 lzcnt movbe 
osxsave"
+
+CPU_FLAGS_X86=${CPU_FLAGS_X86_v3}

diff --git a/builders/tintin/server-v3-23/portage/make.profile 
b/builders/tintin/server-v3-23/portage/make.profile
new file mode 120000
index 0000000..6656efc
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/make.profile
@@ -0,0 +1 @@
+/var/db/repos/gentoo/profiles/default/linux/amd64/23.0/no-multilib
\ No newline at end of file

diff --git a/builders/tintin/server-v3-23/portage/package.env/lto 
b/builders/tintin/server-v3-23/portage/package.env/lto
new file mode 100644
index 0000000..30a3c07
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/package.env/lto
@@ -0,0 +1,3 @@
+dev-lang/python lto.conf
+sys-devel/* lto.conf
+www-client/firefox lto.conf

diff --git a/builders/tintin/server-v3-23/portage/package.mask/prebuilt-bin 
b/builders/tintin/server-v3-23/portage/package.mask/prebuilt-bin
new file mode 100644
index 0000000..6d8e24a
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/package.mask/prebuilt-bin
@@ -0,0 +1 @@
+dev-lang/rust-bin

diff --git a/builders/tintin/server-v3-23/portage/package.use/dist-kernel 
b/builders/tintin/server-v3-23/portage/package.use/dist-kernel
new file mode 100644
index 0000000..7e6ada4
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/package.use/dist-kernel
@@ -0,0 +1 @@
+*/* dist-kernel

diff --git a/builders/tintin/server-v3-23/portage/package.use/gcc 
b/builders/tintin/server-v3-23/portage/package.use/gcc
new file mode 100644
index 0000000..84862d7
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/package.use/gcc
@@ -0,0 +1,2 @@
+sys-devel/gcc lto pgo
+sys-devel/binutils pgo

diff --git a/builders/tintin/server-v3-23/portage/package.use/networkmanager 
b/builders/tintin/server-v3-23/portage/package.use/networkmanager
new file mode 100644
index 0000000..5d977ab
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/package.use/networkmanager
@@ -0,0 +1,2 @@
+# Required for networkmanager
+net-wireless/wpa_supplicant dbus

diff --git a/builders/tintin/server-v3-23/portage/package.use/nginx 
b/builders/tintin/server-v3-23/portage/package.use/nginx
new file mode 100644
index 0000000..9d49054
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/package.use/nginx
@@ -0,0 +1,2 @@
+# www-servers/nginx needs app-misc/mime-types[nginx]
+app-misc/mime-types nginx

diff --git a/builders/tintin/server-v3-23/portage/package.use/npm 
b/builders/tintin/server-v3-23/portage/package.use/npm
new file mode 100644
index 0000000..a90c167
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/package.use/npm
@@ -0,0 +1 @@
+net-libs/nodejs npm

diff --git a/builders/tintin/server-v3-23/portage/package.use/python3-incompat 
b/builders/tintin/server-v3-23/portage/package.use/python3-incompat
new file mode 100644
index 0000000..871a663
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/package.use/python3-incompat
@@ -0,0 +1,2 @@
+# unavailable for 3.13
+<llvm-core/clang-18 PYTHON_SINGLE_TARGET: python3_12

diff --git a/builders/tintin/server-v3-23/portage/package.use/qt 
b/builders/tintin/server-v3-23/portage/package.use/qt
new file mode 100644
index 0000000..1b62b11
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/package.use/qt
@@ -0,0 +1 @@
+x11-libs/libxkbcommon X

diff --git a/builders/tintin/server-v3-23/portage/package.use/rust 
b/builders/tintin/server-v3-23/portage/package.use/rust
new file mode 100644
index 0000000..2b1a617
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/package.use/rust
@@ -0,0 +1 @@
+dev-lang/rust mrustc-bootstrap

diff --git 
a/builders/tintin/server-v3-23/portage/variants/debug/package.use/debug 
b/builders/tintin/server-v3-23/portage/variants/debug/package.use/debug
new file mode 100644
index 0000000..c1256bb
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/variants/debug/package.use/debug
@@ -0,0 +1,6 @@
+llvm-core/* debug
+llvm-runtimes/* debug
+
+sys-devel/gcc debug
+
+dev-lang/python debug

diff --git 
a/builders/tintin/server-v3-23/portage/variants/gcc-nopgo/package.use/gcc 
b/builders/tintin/server-v3-23/portage/variants/gcc-nopgo/package.use/gcc
new file mode 100644
index 0000000..6e7c460
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/variants/gcc-nopgo/package.use/gcc
@@ -0,0 +1 @@
+# revert default pgo/lto for binpkg coverage

diff --git a/builders/tintin/server-v3-23/portage/variants/lucky/.run_marker 
b/builders/tintin/server-v3-23/portage/variants/lucky/.run_marker
new file mode 100644
index 0000000..722c3eb
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/variants/lucky/.run_marker
@@ -0,0 +1 @@
+I'm feeling lucky!

diff --git 
a/builders/tintin/server-v3-23/portage/variants/meson-ci/package.use/meson-ci 
b/builders/tintin/server-v3-23/portage/variants/meson-ci/package.use/meson-ci
new file mode 100644
index 0000000..74e03d3
--- /dev/null
+++ 
b/builders/tintin/server-v3-23/portage/variants/meson-ci/package.use/meson-ci
@@ -0,0 +1,14 @@
+dev-libs/boost python
+
+# USE=test-full
+dev-build/meson test test-full
+sys-libs/zlib static-libs
+virtual/zlib static-libs
+sci-libs/hdf5 cxx fortran
+sys-cluster/openmpi fortran
+media-libs/freetype harfbuzz
+
+# recursive
+dev-python/pycairo X
+media-libs/libglvnd X
+x11-libs/cairo X

diff --git 
a/builders/tintin/server-v3-23/portage/variants/python3both/buildpkgonly 
b/builders/tintin/server-v3-23/portage/variants/python3both/buildpkgonly
new file mode 100755
index 0000000..8bf2a62
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/variants/python3both/buildpkgonly
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+set -e
+
+emerge -uDN --backtrack=100 @world
+
+# py 3.13 exclusive (non default)
+cat >> ../../make.conf <<- __EOF__
+       PYTHON_TARGETS="python3_12"
+       PYTHON_SINGLE_TARGET="python3_12"
+__EOF__
+
+EPYTHON=python3.12 emerge -uDN --backtrack=100 @world
+
+# USE is redundant, but works around https://bugs.gentoo.org/964705
+USE="-python" PYTHON_TARGETS= PYTHON_SINGLE_TARGET= emerge -1 $(pquery -I 
--has-use python --attr use| awk '/-python[ $]/{print "="$1}' | sed '/z3/d')

diff --git 
a/builders/tintin/server-v3-23/portage/variants/python3both/make.conf.footer 
b/builders/tintin/server-v3-23/portage/variants/python3both/make.conf.footer
new file mode 100644
index 0000000..255ab7c
--- /dev/null
+++ b/builders/tintin/server-v3-23/portage/variants/python3both/make.conf.footer
@@ -0,0 +1,2 @@
+PYTHON_TARGETS="python3_12 python3_13"
+PYTHON_SINGLE_TARGET="python3_12"

diff --git 
a/builders/tintin/server-v3-23/portage/variants/python3both/package.use/python3both
 
b/builders/tintin/server-v3-23/portage/variants/python3both/package.use/python3both
new file mode 100644
index 0000000..871a663
--- /dev/null
+++ 
b/builders/tintin/server-v3-23/portage/variants/python3both/package.use/python3both
@@ -0,0 +1,2 @@
+# unavailable for 3.13
+<llvm-core/clang-18 PYTHON_SINGLE_TARGET: python3_12

diff --git 
a/builders/tintin/server-v3-23/portage/variants/python3both/profile/use.stable.mask
 
b/builders/tintin/server-v3-23/portage/variants/python3both/profile/use.stable.mask
new file mode 100644
index 0000000..d58f7bb
--- /dev/null
+++ 
b/builders/tintin/server-v3-23/portage/variants/python3both/profile/use.stable.mask
@@ -0,0 +1,2 @@
+-python_targets_python3_13
+-python_single_target_python3_13

diff --git a/builders/tintin/server-v3-23/run-update 
b/builders/tintin/server-v3-23/run-update
new file mode 100755
index 0000000..32facf9
--- /dev/null
+++ b/builders/tintin/server-v3-23/run-update
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+# if one thing fails, abort entirely
+set -e
+
+to_install=(world)
+
+if [[ $1 = *lucky ]]; then
+       pquery -F '{category}/{package}' --max -r gentoo | grep -E -v 
'^(acct|virtual|sec)-' | sort -u > /tmp/stable
+       pquery --installed -F '{category}/{package}' | sort -u > /tmp/installed
+       comm -23 /tmp/stable /tmp/installed > /tmp/uninstalled-stable
+       sed -i 's/--binpkg-respect-use//' /etc/portage/make.conf
+
+       to_install=(--autounmask-write --autounmask-continue $(shuf -n3 
/tmp/uninstalled-stable))
+elif [[ $1 ]]; then
+       pushd /etc/portage/variants/$1
+       while read -r -d '' line; do
+               dest=../../${line%.footer}
+               if [[ ${line} = world* ]]; then
+                       dest=/var/lib/portage/world
+               fi
+
+               if [[ ${line} = world.remove ]]; then
+                       emerge -C $(<"${line}")
+               elif [[ ${line} = *.footer ]]; then
+                       cat "${line}" >> "${dest}"
+               else
+                       mkdir -p "${dest%/*}"
+                       cp "${line}" "${dest}"
+               fi
+       done < <(find . -type f -printf '%P\0')
+       if [[ -f buildpkgonly ]]; then
+               ./buildpkgonly
+       fi
+       popd
+fi
+
+emerge -uDN --changed-deps --backtrack=100 "${to_install[@]}"
+
+if [[ ! $1 ]]; then
+       emerge --depclean --quiet-unmerge-warn
+       eclean-pkg --changed-deps
+fi
+
+mapfile -t badlibs < <(portageq list_preserved_libs /)
+
+if (( ${#badlibs[@]} > 0 )); then
+       printf '%s\n' "WARNING: preserved-libs in binary packages!"
+       printf '  - %s\n' "${badlibs[@]}"
+       emerge -p @preserved-rebuild
+       exit 1
+fi

diff --git a/builders/tintin/server-v3-23/world 
b/builders/tintin/server-v3-23/world
new file mode 100644
index 0000000..ca96160
--- /dev/null
+++ b/builders/tintin/server-v3-23/world
@@ -0,0 +1,102 @@
+app-accessibility/brltty
+app-accessibility/espeakup
+app-admin/hddtemp
+app-admin/metalog
+app-admin/rsyslog
+app-admin/sudo
+app-admin/syslog-ng
+app-admin/sysklogd
+app-admin/sysstat
+app-admin/testdisk
+app-arch/bzip2
+app-arch/bzip3
+app-arch/cpio
+app-arch/dpkg
+app-arch/deb2targz
+app-arch/gzip
+app-arch/mt-st
+app-arch/p7zip
+app-arch/pbzip2
+app-arch/rpm
+app-arch/tar
+app-arch/zip
+app-backup/fsarchiver
+app-benchmarks/bonnie++
+app-benchmarks/dbench
+app-benchmarks/stress
+app-benchmarks/tiobench
+app-cdr/dvd+rw-tools
+app-cdr/cdrtools
+app-containers/docker
+app-crypt/chntpw
+app-editors/emacs
+app-editors/hexedit
+app-editors/joe
+app-editors/mg
+app-editors/nano
+app-editors/neovim
+app-editors/vim
+app-emacs/ebuild-mode
+app-portage/cpuid2cpuflags
+app-portage/eix
+app-portage/gentoolkit
+app-portage/mirrorselect
+app-text/doxygen
+net-dialup/ppp
+net-dns/bind
+net-mail/dovecot
+dev-debug/gdb
+dev-debug/strace
+dev-debug/valgrind
+dev-java/openjdk
+dev-lang/ada-bootstrap
+dev-lang/python:2.7
+dev-lang/python:3.10
+dev-lang/python:3.11
+dev-lang/python:3.12
+dev-lang/python:3.13
+dev-lang/rust
+dev-python/mypy
+dev-python/pip
+dev-qt/qtbase
+dev-util/bindgen
+dev-util/perf
+dev-util/pkgdev
+llvm-core/clang:15
+llvm-core/clang:16
+llvm-core/clang:17
+llvm-core/clang:18
+llvm-core/clang:19
+llvm-core/clang:20
+mail-mta/postfix
+media-libs/libsdl2
+media-libs/libwmf
+media-libs/vulkan-loader
+net-dialup/minicom
+net-libs/nodejs
+net-misc/chrony
+net-misc/dhcpcd
+net-misc/networkmanager
+net-vpn/openvpn
+net-wireless/iw
+sci-libs/armadillo
+sci-mathematics/z3
+sys-apps/bat
+sys-apps/fakeroot
+sys-apps/mlocate
+sys-apps/pciutils
+sys-apps/portage
+sys-boot/grub
+sys-devel/gcc:14
+sys-fs/btrfs-progs
+sys-fs/ncdu
+sys-fs/xfsprogs
+sys-fs/dosfstools
+sys-fs/e2fsprogs
+sys-fs/jfsutils
+sys-fs/xfsprogs
+sys-process/btop
+sys-process/cronie
+www-servers/apache
+www-servers/lighttpd
+www-servers/nginx


Reply via email to