From ed878ccb434820a3fd2dec001c5fa0af5bbcd4ea Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Sun, 30 Nov 2014 10:21:48 +0000 Subject: [PATCH] [molecules] introduce Sabayon SpinBase + sabayon-limbo --- chroots/limbo/.keep | 0 .../sabayon-amd64-spinbase+sabayon-limbo.spec | 21 ++++++++++ scripts/inner_chroot_script.sh | 39 +++++++++++++++++-- 3 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 chroots/limbo/.keep create mode 100644 molecules/sabayon-amd64-spinbase+sabayon-limbo.spec diff --git a/chroots/limbo/.keep b/chroots/limbo/.keep new file mode 100644 index 0000000..e69de29 diff --git a/molecules/sabayon-amd64-spinbase+sabayon-limbo.spec b/molecules/sabayon-amd64-spinbase+sabayon-limbo.spec new file mode 100644 index 0000000..e6ca412 --- /dev/null +++ b/molecules/sabayon-amd64-spinbase+sabayon-limbo.spec @@ -0,0 +1,21 @@ +# Use abs path, otherwise daily builds automagic won't work +%env %import ${SABAYON_MOLECULE_HOME:-/sabayon}/molecules/spinbase.common +%env %import ${SABAYON_MOLECULE_HOME:-/sabayon}/molecules/amd64.common + +%env destination_chroot: ${SABAYON_MOLECULE_HOME:-/sabayon/chroots/limbo} +%env inner_chroot_script: ${SABAYON_MOLECULE_HOME:-/sabayon}/scripts/inner_chroot_script.sh sabayon-limbo +%env destination_livecd_root: ${SABAYON_MOLECULE_HOME:-/sabayon/chroots/limbo} + +# Release Version +# Keep this here, otherwise daily builds automagic won't work +%env release_version: ${SABAYON_RELEASE:-LATEST} + +# Release Version string description +release_desc: amd64 SpinBase + +# Source chroot directory, where files are pulled from +%env source_chroot: ${SABAYON_MOLECULE_HOME:-/sabayon}/sources/amd64_core-2010 + +# Destination ISO image name, call whatever you want.iso, not mandatory +# Keep this here and set, otherwise daily builds automagic won't work +%env destination_iso_image_name: Sabayon_Linux_${SABAYON_RELEASE:-LATEST}_amd64_SpinBase+sabayon-limbo.iso diff --git a/scripts/inner_chroot_script.sh b/scripts/inner_chroot_script.sh index 5747bd4..d45d5c3 100755 --- a/scripts/inner_chroot_script.sh +++ b/scripts/inner_chroot_script.sh @@ -1,8 +1,29 @@ #!/bin/bash +UPGRADE_REPO="${1}" + /usr/sbin/env-update . /etc/profile +safe_run() { + local updated=0 + for ((i=0; i < 42; i++)); do + "${@}" && { + updated=1; + break; + } + if [ ${i} -gt 6 ]; then + sleep 3600 || return 1 + else + sleep 1200 || return 1 + fi + done + if [ "${updated}" = "0" ]; then + return 1 + fi + return 0 +} + sd_enable() { local srv="${1}" local ext=".${2:-service}" @@ -17,6 +38,7 @@ sd_disable() { systemctl --no-reload disable -f "${srv}${ext}" } + # create /proc if it doesn't exist # rsync doesn't copy it mkdir -p /proc @@ -28,9 +50,6 @@ touch /dev/shm/.keep mkdir -p /dev/pts touch /dev/pts/.keep -# Cleanup Perl cruft -perl-cleaner --ph-clean - # copy /root defaults from /etc/skel rm -rf /root cp /etc/skel /root -Rap @@ -42,6 +61,20 @@ for f in /etc/env.d/02locale /etc/locale.conf; do echo LANGUAGE=en_US.UTF-8 >> "${f}" echo LC_ALL=en_US.UTF-8 >> "${f}" done + + +if [ -n "${UPGRADE_REPO}" ]; then + echo "Upgrading system by enabling ${UPGRADE_REPO}" + equo repo enable "${UPGRADE_REPO}" || exit 1 + FORCE_EAPI=2 safe_run equo update || exit 1 + ETP_NOINTERACTIVE=1 safe_run equo upgrade --fetch || exit 1 + ETP_NOINTERACTIVE=1 equo upgrade --purge || exit 1 + echo "-5" | equo conf update +fi + +# Cleanup Perl cruft +perl-cleaner --ph-clean + # Needed by systemd, because it doesn't properly set a good # encoding in ttys. Test it with (on tty1, VT1): # echo -e "\xE2\x98\xA0"