commit:     6e2cef0da192dbb18f950c190051cbabc2fc1a98
Author:     Jorge Manuel B. S. Vicetto (jmbsvicetto) <jmbsvicetto <AT> gentoo 
<DOT> org>
AuthorDate: Fri Dec 18 01:45:28 2015 +0000
Commit:     Jorge Manuel B. S. Vicetto <jmbsvicetto <AT> gentoo <DOT> org>
CommitDate: Fri Dec 18 01:45:28 2015 +0000
URL:        https://gitweb.gentoo.org/proj/releng.git/commit/?id=6e2cef0d

Add prep.sh to the repo and fix the stage3 name for the stage4 specs.

Signed-off-by: Jorge Manuel B. S. Vicetto (jmbsvicetto) <jmbsvicetto <AT> 
gentoo.org>

 releases/weekly/scripts/prep.sh                    | 79 ++++++++++++++++++++++
 .../specs/amd64/hardened/stage4-nomultilib.spec    |  2 +-
 releases/weekly/specs/amd64/hardened/stage4.spec   |  2 +-
 releases/weekly/specs/amd64/stage4-nomultilib.spec |  2 +-
 releases/weekly/specs/amd64/stage4.spec            |  2 +-
 5 files changed, 83 insertions(+), 4 deletions(-)

diff --git a/releases/weekly/scripts/prep.sh b/releases/weekly/scripts/prep.sh
new file mode 100644
index 0000000..22478a9
--- /dev/null
+++ b/releases/weekly/scripts/prep.sh
@@ -0,0 +1,79 @@
+#!/usr/bin/env bash
+#
+# Okay, so here's some real meat.  We take a drive (as 02 said, I use a VM),
+# and we spray that stage4 all over it.  Then we rub some grub (0.97) all over
+# it to make it feel better, and then we box it up and ship it out.
+
+set -e -u -x -o pipefail
+
+# Vars
+export TEMP_DIR=${TEMP_DIR:-'/root/tmp/catalyst/gentoo'}
+export MOUNT_DIR=${MOUNT_DIR:-'/mnt'}
+export DATE=${DATE:-"$(date +%Y%m%d)"}
+export PORTAGE_DIR=${PORTAGE_DIR:-"/var/tmp/catalyst/snapshots"}
+# profiles supported are as follows
+# default/linux/amd64/13.0
+# default/linux/amd64/13.0/no-multilib
+# hardened/linux/amd64
+# hardened/linux/amd64/no-multilib
+# hardened/linux/amd64/selinux (eventually)
+# hardened/linux/amd64/no-multilib/selinux (eventually)
+export PROFILE=${PROFILE:-"default/linux/amd64/13.0"}
+if [[ "${PROFILE}" == "default/linux/amd64/13.0" ]]; then
+  PROFILE_SHORTNAME="amd64-default"
+elif [[ "${PROFILE}" == "default/linux/amd64/13.0/no-multilib" ]]; then
+  PROFILE_SHORTNAME="amd64-default-nomultilib"
+elif [[ "${PROFILE}" == "hardened/linux/amd64" ]]; then
+  PROFILE_SHORTNAME="amd64-hardened"
+elif [[ "${PROFILE}" == "hardened/linux/amd64/no-multilib" ]]; then
+  PROFILE_SHORTNAME="amd64-hardened-nomultilib"
+else
+  echo 'invalid profile, exiting'
+  exit 1
+fi
+export 
TARBALL=${TARBALL:-"/root/tmp/catalyst/gentoo/stage4-${PROFILE_SHORTNAME}-${DATE}.tar.bz2"}
+export TEMP_IMAGE=${TEMP_IMAGE:-"gentoo-${PROFILE_SHORTNAME}.img"}
+export 
TARGET_IMAGE=${TARGET_IMAGE:-"/root/openstack-${PROFILE_SHORTNAME}-${DATE}.qcow2"}
+
+# create a raw partition and do stuff with it
+fallocate -l 5G "${TEMP_DIR}/${TEMP_IMAGE}"
+BLOCK_DEV=$(losetup -f --show "${TEMP_DIR}/${TEMP_IMAGE}")
+
+# Okay, we have the disk, let's prep it
+echo 'Building disk'
+parted -s "${BLOCK_DEV}" mklabel gpt
+parted -s --align=none "${BLOCK_DEV}" mkpart bios_boot 0 2M
+parted -s --align=none "${BLOCK_DEV}" mkpart primary 2M 100%
+parted -s "${BLOCK_DEV}" set 1 boot on
+parted -s "${BLOCK_DEV}" set 1 bios_grub on
+mkfs.ext4 -F "${BLOCK_DEV}p2"
+
+# Mount it
+echo 'Mounting disk'
+mkdir -p "${MOUNT_DIR}/${PROFILE_SHORTNAME}"
+mount "${BLOCK_DEV}p2" "${MOUNT_DIR}/${PROFILE_SHORTNAME}"
+
+# Expand the stage
+echo 'Expanding tarball'
+tar --xattrs -xjpf "${TARBALL}" -C "${MOUNT_DIR}/${PROFILE_SHORTNAME}"
+
+echo 'Adding in /usr/portage'
+tar --xattrs -xjpf "${PORTAGE_DIR}/portage-latest.tar.bz2" -C 
"${MOUNT_DIR}/${PROFILE_SHORTNAME}/usr"
+
+# Install grub
+echo 'Installing grub'
+grub2-install "${BLOCK_DEV}" --boot-directory 
"${MOUNT_DIR}/${PROFILE_SHORTNAME}/boot"
+
+# Clean up
+echo 'Syncing; unmounting'
+sync
+umount "${MOUNT_DIR}/${PROFILE_SHORTNAME}"
+
+# get rid of block mapping
+losetup -d "${BLOCK_DEV}"
+
+echo 'Converting raw image to qcow2'
+qemu-img convert -c -f raw -O qcow2 "${TEMP_DIR}/${TEMP_IMAGE}" 
"${TARGET_IMAGE}"
+
+echo 'Cleaning up'
+rm "${TEMP_DIR}/${TEMP_IMAGE}"

diff --git a/releases/weekly/specs/amd64/hardened/stage4-nomultilib.spec 
b/releases/weekly/specs/amd64/hardened/stage4-nomultilib.spec
index ec6e4cb..1ba0948 100644
--- a/releases/weekly/specs/amd64/hardened/stage4-nomultilib.spec
+++ b/releases/weekly/specs/amd64/hardened/stage4-nomultilib.spec
@@ -4,7 +4,7 @@ version_stamp: hardened+cloud-nomultilib-2008.0
 rel_type: hardened
 profile: hardened/linux/amd64/no-multilib
 snapshot: 2008.0
-source_subpath: hardened/stage3-amd64-hardened+cloud-nomultilib-2008.0
+source_subpath: hardened/stage3-amd64-hardened+nomultilib-2008.0
 portage_confdir: /release/releng/releases/weekly/portage/stages
 
 stage4/use:

diff --git a/releases/weekly/specs/amd64/hardened/stage4.spec 
b/releases/weekly/specs/amd64/hardened/stage4.spec
index 7c7233c..707ec8a 100644
--- a/releases/weekly/specs/amd64/hardened/stage4.spec
+++ b/releases/weekly/specs/amd64/hardened/stage4.spec
@@ -4,7 +4,7 @@ version_stamp: hardened+cloud-2008.0
 rel_type: hardened
 profile: hardened/linux/amd64
 snapshot: 2008.0
-source_subpath: hardened/stage3-amd64-cloud-hardened-2008.0
+source_subpath: hardened/stage3-amd64-hardened-2008.0
 portage_confdir: /release/releng/releases/weekly/portage/stages
 
 stage4/use:

diff --git a/releases/weekly/specs/amd64/stage4-nomultilib.spec 
b/releases/weekly/specs/amd64/stage4-nomultilib.spec
index 55297e9..e502645 100644
--- a/releases/weekly/specs/amd64/stage4-nomultilib.spec
+++ b/releases/weekly/specs/amd64/stage4-nomultilib.spec
@@ -4,7 +4,7 @@ version_stamp: cloud-nomultilib-2008.0
 rel_type: default
 profile: default/linux/amd64/13.0/no-multilib
 snapshot: 2008.0
-source_subpath: default/stage3-amd64-cloud-nomultilib-2008.0
+source_subpath: default/stage3-amd64-nomultilib-2008.0
 portage_confdir: /release/releng/releases/weekly/portage/stages
 
 stage4/use:

diff --git a/releases/weekly/specs/amd64/stage4.spec 
b/releases/weekly/specs/amd64/stage4.spec
index 74075d6..71e1ce9 100644
--- a/releases/weekly/specs/amd64/stage4.spec
+++ b/releases/weekly/specs/amd64/stage4.spec
@@ -4,7 +4,7 @@ version_stamp: cloud-2008.0
 rel_type: default
 profile: default/linux/amd64/13.0
 snapshot: 2008.0
-source_subpath: default/stage3-amd64-cloud-2008.0
+source_subpath: default/stage3-amd64-2008.0
 portage_confdir: /release/releng/releases/weekly/portage/stages
 
 stage4/use:

Reply via email to