aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbuilders/milou/binhost-update17
-rw-r--r--builders/milou/gnome-23/portage/variants/lucky/.run_marker1
-rw-r--r--builders/milou/gnome-23/portage/variants/nopulse/package.use/nopulse1
-rwxr-xr-xbuilders/milou/gnome-23/portage/variants/unstable/buildpkgonly9
-rw-r--r--builders/milou/gnome-23/portage/variants/unstable/package.accept_keywords/gcc2
-rwxr-xr-xbuilders/milou/gnome-23/run-update38
-rw-r--r--builders/milou/gnome-v3-23/portage/variants/lucky/.run_marker1
-rw-r--r--builders/milou/gnome-v3-23/portage/variants/nopulse/package.use/nopulse1
-rwxr-xr-xbuilders/milou/gnome-v3-23/portage/variants/unstable/buildpkgonly9
-rw-r--r--builders/milou/gnome-v3-23/portage/variants/unstable/package.accept_keywords/gcc2
-rwxr-xr-xbuilders/milou/gnome-v3-23/run-update38
11 files changed, 112 insertions, 7 deletions
diff --git a/builders/milou/binhost-update b/builders/milou/binhost-update
index 8a304dd..d48e15e 100755
--- a/builders/milou/binhost-update
+++ b/builders/milou/binhost-update
@@ -113,15 +113,26 @@ emerge --sync -q &>> ${TMPFILE}
anyfail=0
+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 /var/lib/machines/${n}/etc/binhost &>> ${TMPFILE}
+ cd ${machinedir}/etc/binhost &>> ${TMPFILE}
git reset --hard &>> ${TMPFILE}
git pull &>> ${TMPFILE}
cd /root &>> ${TMPFILE}
- systemd-nspawn --bind /var/cache/distfiles --bind-ro /var/db/repos/gentoo --tmpfs=/var/tmp:mode=1777,size=${TMPFS_SIZE}g -M ${n} /root/bin/run-update &>> ${TMPFILE}
- let "anyfail+=$?"
+ "${nspawn_command[@]}" -M ${n} /root/bin/run-update &>> ${TMPFILE}
+ ret=$?
+ let "anyfail+=${ret}"
+ if [[ ${ret} = 0 ]]; then
+ builder=$(readlink ${machinedir}/etc/portage)
+ for variant in ${machinedir}/${builder}/variants/*; do
+ [[ -d ${variant} ]] || break
+ "${nspawn_command[@]}" --ephemeral --bind ${machinedir}/var/cache/binpkgs -M ${n} /root/bin/run-update ${variant##*/} &>> ${TMPFILE}
+ let "anyfail+=$?"
+ done
+ fi
done
diff --git a/builders/milou/gnome-23/portage/variants/lucky/.run_marker b/builders/milou/gnome-23/portage/variants/lucky/.run_marker
new file mode 100644
index 0000000..722c3eb
--- /dev/null
+++ b/builders/milou/gnome-23/portage/variants/lucky/.run_marker
@@ -0,0 +1 @@
+I'm feeling lucky!
diff --git a/builders/milou/gnome-23/portage/variants/nopulse/package.use/nopulse b/builders/milou/gnome-23/portage/variants/nopulse/package.use/nopulse
new file mode 100644
index 0000000..3f33baa
--- /dev/null
+++ b/builders/milou/gnome-23/portage/variants/nopulse/package.use/nopulse
@@ -0,0 +1 @@
+*/* -pulseaudio -screencast
diff --git a/builders/milou/gnome-23/portage/variants/unstable/buildpkgonly b/builders/milou/gnome-23/portage/variants/unstable/buildpkgonly
new file mode 100755
index 0000000..e344f3c
--- /dev/null
+++ b/builders/milou/gnome-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:15 sys-devel/gcc:14 sys-devel/gcc:12
+# ... and clean it up
+rm /etc/portage/package.accept_keywords/gcc
diff --git a/builders/milou/gnome-23/portage/variants/unstable/package.accept_keywords/gcc b/builders/milou/gnome-23/portage/variants/unstable/package.accept_keywords/gcc
new file mode 100644
index 0000000..8b9d7eb
--- /dev/null
+++ b/builders/milou/gnome-23/portage/variants/unstable/package.accept_keywords/gcc
@@ -0,0 +1,2 @@
+sys-devel/gcc ~amd64
+<sys-devel/gcc-15.0.9999:15 **
diff --git a/builders/milou/gnome-23/run-update b/builders/milou/gnome-23/run-update
index 02cdf8a..84bf589 100755
--- a/builders/milou/gnome-23/run-update
+++ b/builders/milou/gnome-23/run-update
@@ -3,6 +3,40 @@
# if one thing fails, abort entirely
set -e
-emerge -uDNkq --changed-deps --backtrack=100 --keep-going world
+to_install=(world)
-emerge --depclean --quiet-unmerge-warn
+if [[ $1 = lucky ]]; then
+ eix-update
+ eix --stable --only-names | grep -E -v '^(acct|virtual|sec)-' | sort -u > /tmp/stable
+ eix --installed --only-names | 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 --autounmask-keep-keywords --autounmask-write --autounmask-continue $(shuf -n1 /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
+ cp "${line}" "${dest}"
+ fi
+ done < <(find . -type f -printf '%P\0')
+ if [[ -f buildpkgonly ]]; then
+ ./buildpkgonly
+ fi
+ popd
+fi
+
+emerge -uDNkq --changed-deps --backtrack=100 --keep-going "${to_install[@]}"
+
+if [[ ! $1 ]]; then
+ emerge --depclean --quiet-unmerge-warn
+fi
diff --git a/builders/milou/gnome-v3-23/portage/variants/lucky/.run_marker b/builders/milou/gnome-v3-23/portage/variants/lucky/.run_marker
new file mode 100644
index 0000000..722c3eb
--- /dev/null
+++ b/builders/milou/gnome-v3-23/portage/variants/lucky/.run_marker
@@ -0,0 +1 @@
+I'm feeling lucky!
diff --git a/builders/milou/gnome-v3-23/portage/variants/nopulse/package.use/nopulse b/builders/milou/gnome-v3-23/portage/variants/nopulse/package.use/nopulse
new file mode 100644
index 0000000..3f33baa
--- /dev/null
+++ b/builders/milou/gnome-v3-23/portage/variants/nopulse/package.use/nopulse
@@ -0,0 +1 @@
+*/* -pulseaudio -screencast
diff --git a/builders/milou/gnome-v3-23/portage/variants/unstable/buildpkgonly b/builders/milou/gnome-v3-23/portage/variants/unstable/buildpkgonly
new file mode 100755
index 0000000..e344f3c
--- /dev/null
+++ b/builders/milou/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:15 sys-devel/gcc:14 sys-devel/gcc:12
+# ... and clean it up
+rm /etc/portage/package.accept_keywords/gcc
diff --git a/builders/milou/gnome-v3-23/portage/variants/unstable/package.accept_keywords/gcc b/builders/milou/gnome-v3-23/portage/variants/unstable/package.accept_keywords/gcc
new file mode 100644
index 0000000..8b9d7eb
--- /dev/null
+++ b/builders/milou/gnome-v3-23/portage/variants/unstable/package.accept_keywords/gcc
@@ -0,0 +1,2 @@
+sys-devel/gcc ~amd64
+<sys-devel/gcc-15.0.9999:15 **
diff --git a/builders/milou/gnome-v3-23/run-update b/builders/milou/gnome-v3-23/run-update
index 02cdf8a..84bf589 100755
--- a/builders/milou/gnome-v3-23/run-update
+++ b/builders/milou/gnome-v3-23/run-update
@@ -3,6 +3,40 @@
# if one thing fails, abort entirely
set -e
-emerge -uDNkq --changed-deps --backtrack=100 --keep-going world
+to_install=(world)
-emerge --depclean --quiet-unmerge-warn
+if [[ $1 = lucky ]]; then
+ eix-update
+ eix --stable --only-names | grep -E -v '^(acct|virtual|sec)-' | sort -u > /tmp/stable
+ eix --installed --only-names | 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 --autounmask-keep-keywords --autounmask-write --autounmask-continue $(shuf -n1 /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
+ cp "${line}" "${dest}"
+ fi
+ done < <(find . -type f -printf '%P\0')
+ if [[ -f buildpkgonly ]]; then
+ ./buildpkgonly
+ fi
+ popd
+fi
+
+emerge -uDNkq --changed-deps --backtrack=100 --keep-going "${to_install[@]}"
+
+if [[ ! $1 ]]; then
+ emerge --depclean --quiet-unmerge-warn
+fi