Initial add of gentoo support for diskimage-builder
uses upstream's stage4 images, includes all the needed bells and whistles for openstack on kvm. Change-Id: Ibca43173c30c2a74a73a2e2d9dd6d6d832c62694 Closes-Bug: 1530911
This commit is contained in:
parent
023cfc3541
commit
176ae7bff6
@ -5,6 +5,11 @@
|
|||||||
},
|
},
|
||||||
"suse": {
|
"suse": {
|
||||||
"dkms_package": ""
|
"dkms_package": ""
|
||||||
|
},
|
||||||
|
"gentoo": {
|
||||||
|
"dkms_package": "",
|
||||||
|
"grub-pc": "grub",
|
||||||
|
"extlinux": "syslinux"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
|
@ -19,7 +19,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
function install_extlinux {
|
function install_extlinux {
|
||||||
install-packages extlinux
|
install-packages -m base extlinux
|
||||||
|
|
||||||
echo "Installing Extlinux..."
|
echo "Installing Extlinux..."
|
||||||
|
|
||||||
@ -59,9 +59,9 @@ function install_grub2 {
|
|||||||
if [ -f "/tmp/grub/install" ] ; then
|
if [ -f "/tmp/grub/install" ] ; then
|
||||||
source /tmp/grub/install
|
source /tmp/grub/install
|
||||||
elif [[ "$ARCH" =~ "ppc" ]]; then
|
elif [[ "$ARCH" =~ "ppc" ]]; then
|
||||||
install-packages grub-ieee1275
|
install-packages -m base grub-ieee1275
|
||||||
else
|
else
|
||||||
install-packages grub-pc
|
install-packages -m base grub-pc
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# XXX: grub-probe on the nbd0/loop0 device returns nothing - workaround, manually
|
# XXX: grub-probe on the nbd0/loop0 device returns nothing - workaround, manually
|
||||||
|
26
elements/gentoo/README.rst
Normal file
26
elements/gentoo/README.rst
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
========
|
||||||
|
Gentoo
|
||||||
|
========
|
||||||
|
Use a Gentoo cloud image as the baseline for built disk images. The images are
|
||||||
|
located in profile specific sub directories:
|
||||||
|
|
||||||
|
http://distfiles.gentoo.org/releases/amd64/autobuilds/
|
||||||
|
|
||||||
|
As of this writing, only x86_64 images are available.
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
|
||||||
|
* There are very frequently new automated builds that include changes that
|
||||||
|
happen during the product maintenance. The download directories contain an
|
||||||
|
unversioned name and a versioned name. The unversioned name will always
|
||||||
|
point to the latest image, but will frequently change its content. The versioned
|
||||||
|
one will never change content, but will frequently be deleted and replaced
|
||||||
|
by a newer build with a higher version-release number.
|
||||||
|
|
||||||
|
* Other profiles can be used by exporting GENTOO_PROFILE with a valid profile.
|
||||||
|
A list of valid profiles follows:
|
||||||
|
|
||||||
|
default/linux/amd64/13.0
|
||||||
|
default/linux/amd64/13.0/no-multilib
|
||||||
|
hardened/linux/amd64
|
||||||
|
hardened/linux/amd64/no-multilib
|
121
elements/gentoo/bin/install-packages
Executable file
121
elements/gentoo/bin/install-packages
Executable file
@ -0,0 +1,121 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright 2016 Matthew Thode
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
if [[ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
ACTION='install'
|
||||||
|
|
||||||
|
SCRIPTNAME="$(basename $0)"
|
||||||
|
function show_options {
|
||||||
|
echo "Usage: ${SCRIPTNAME} [package ...]"
|
||||||
|
echo
|
||||||
|
echo 'Options:'
|
||||||
|
echo ' -u -- update all packages'
|
||||||
|
echo ' -e -- erase/remove packages'
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function fix_shm {
|
||||||
|
if [[ "${RUN_ONCE_SHM}" == '1' ]]; then
|
||||||
|
mv /dev/shm /dev/shm.orig
|
||||||
|
mkdir /dev/shm
|
||||||
|
mount -t tmpfs none /dev/shm
|
||||||
|
chmod 1777 /dev/shm
|
||||||
|
RUN_ONCE_SHM='0'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function unfix_shm {
|
||||||
|
if [[ "${RUN_ONCE_SHM}" == '0' ]]; then
|
||||||
|
umount /dev/shm
|
||||||
|
rmdir /dev/shm
|
||||||
|
mv /dev/shm.orig /dev/shm
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_gentoo_packages {
|
||||||
|
RUN_ONCE_SHM='1'
|
||||||
|
fix_shm
|
||||||
|
emerge "$@"
|
||||||
|
unfix_shm
|
||||||
|
}
|
||||||
|
|
||||||
|
TEMP="$(getopt -o huem: -n ${SCRIPTNAME} -- ${@})"
|
||||||
|
if [[ "${?}" != 0 ]]; then
|
||||||
|
echo 'Terminating...' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
eval set -- "${TEMP}"
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
case "${1}" in
|
||||||
|
-u )
|
||||||
|
emerge-webrsync -q
|
||||||
|
install_gentoo_packages -uDNv --with-bdeps=y --jobs=2 @world
|
||||||
|
install_gentoo_packages --verbose=n --depclean
|
||||||
|
install_gentoo_packages -v --usepkg=n @preserved-rebuild
|
||||||
|
etc-update --automode -5
|
||||||
|
eselect news read new
|
||||||
|
exit 0;
|
||||||
|
;;
|
||||||
|
-e )
|
||||||
|
ACTION='remove'
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-m )
|
||||||
|
MAP_ELEMENT="${2}"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-h )
|
||||||
|
show_options
|
||||||
|
;;
|
||||||
|
-- )
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
echo "Error: unsupported option ${1}."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
PKGS="${@}"
|
||||||
|
if [[ -n "${MAP_ELEMENT:-}" ]]; then
|
||||||
|
PKGS="$(pkg-map --element ${MAP_ELEMENT} ${@})"
|
||||||
|
if [[ "${?}" != 0 ]]; then
|
||||||
|
echo "bin/pkg-map error. ${PKGS}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "${PKGS}" ]]; then
|
||||||
|
echo "Not running install-packages ${ACTION} with empty packages list"
|
||||||
|
else
|
||||||
|
if [[ "${ACTION}" == 'install' ]]; then
|
||||||
|
emerge-webrsync -q
|
||||||
|
install_gentoo_packages -q --jobs=2 --changed-use "${PKGS}"
|
||||||
|
elif [[ "${ACTION}" == 'remove' ]]; then
|
||||||
|
emerge-webrsync -q
|
||||||
|
install_gentoo_packages -C "${PKGS}"
|
||||||
|
else
|
||||||
|
echo 'something when really wrong, install action is not install or remove'
|
||||||
|
fi
|
||||||
|
fi
|
2
elements/gentoo/element-deps
Normal file
2
elements/gentoo/element-deps
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
cache-url
|
||||||
|
dib-run-parts
|
1
elements/gentoo/element-provides
Normal file
1
elements/gentoo/element-provides
Normal file
@ -0,0 +1 @@
|
|||||||
|
operating-system
|
1
elements/gentoo/environment.d/10-gentoo-distro-name.bash
Normal file
1
elements/gentoo/environment.d/10-gentoo-distro-name.bash
Normal file
@ -0,0 +1 @@
|
|||||||
|
export DISTRO_NAME=gentoo
|
84
elements/gentoo/gentoo-releng.gpg
Normal file
84
elements/gentoo/gentoo-releng.gpg
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
mQINBEqUWzgBEACXftaG+HVuSQBEqdpBIg2SOVgWW/KbCihO5wPOsdbM93e+psmb
|
||||||
|
wvw+OtNHADQvxocKMuZX8Q/j5i3nQ/ikQFW5Oj6UXvl1qyxZhR2P7GZSNQxn0eMI
|
||||||
|
zAX08o691ws2/dFGXKmNT6btYJ0FxuTtTVSK6zi68WF+ILGK/O2TZXK9EKfZKPDH
|
||||||
|
KHcGrUq4c03vcGANz/8ksJj2ZYEGxMr1h7Wfe9PVcm0gCB1MhYHNR755M47V5Pch
|
||||||
|
fyxbs6vaKz82PgrNjjjbT0PISvnKReUOdA2PFUWry6UKQkiVrLVDRkd8fryLL8ey
|
||||||
|
5JxgVoJZ4echoVWQ0JYJ5lJTWmcZyxQYSAbz2w9dLB+dPyyGpyPp1KX1ADukbROp
|
||||||
|
9S11I9+oVnyGdUBm+AUme0ecekWvt4qiCw3azghLSwEyGZc4a8nNcwSqFmH7Rqdd
|
||||||
|
1+gHc+4tu4WHmguhMviifGXKyWiRERULp0obV33JEo/c4uwyAZHBTJtKtVaLb92z
|
||||||
|
aRdh1yox2I85iumyt62lq9dfOuet4NNVDnUkqMYCQD23JB8IM+qnVaDwJ6oCSIKi
|
||||||
|
nY3uyoqbVE6Lkm+Hk5q5pbvg1cpEH6HWWAl20EMCzMOoMcH0tPyQLDlD2Mml7veG
|
||||||
|
kwdy3S6RkjCympbNzqWec2+hkU2c93Bgpfh7QP0GDN0qrzcNNFmrD5795QARAQAB
|
||||||
|
tFNHZW50b28gTGludXggUmVsZWFzZSBFbmdpbmVlcmluZyAoQXV0b21hdGVkIFdl
|
||||||
|
ZWtseSBSZWxlYXNlIEtleSkgPHJlbGVuZ0BnZW50b28ub3JnPoheBBARCAAGBQJR
|
||||||
|
yaWCAAoJELP3uHLZaXat08sA/3paxuDydIV/8qe9PzgID6zifip9T9XfTDCRbHQR
|
||||||
|
Kw0xAP9vTE9yoPuNMrF55AP9+68FbYaIO0sUxNN9CVby28iU7IkBHAQQAQIABgUC
|
||||||
|
Ut9qEwAKCRAvJnjSPF2apBtSCACIPmfvwiBluwx1dz4/C4pUSIZmaRk5NrKhuADL
|
||||||
|
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
|
||||||
|
eas/U0Nj6KQR////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
/////////////////////////////////////////////////////////w==
|
||||||
|
=1qLu
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
9
elements/gentoo/pre-install.d/01-gentoo-install
Executable file
9
elements/gentoo/pre-install.d/01-gentoo-install
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
install -m 0755 -o root -g root $(dirname $0)/../bin/* /usr/local/bin
|
104
elements/gentoo/root.d/10-gentoo-image
Executable file
104
elements/gentoo/root.d/10-gentoo-image
Executable file
@ -0,0 +1,104 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright 2016 Matthew Thode
|
||||||
|
# All Rights Reserved.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
[ -n "${ARCH}" ]
|
||||||
|
[ -n "${TARGET_ROOT}" ]
|
||||||
|
|
||||||
|
if [ 'amd64' = "${ARCH}" ] ; then
|
||||||
|
ARCH='x86_64'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [ 'x86_64' = "${ARCH}" ] ; then
|
||||||
|
echo "Only x86_64 images are currently available but ARCH is set to ${ARCH}."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# get the element location so we can refrence things relative to it
|
||||||
|
ELEMENT_DIR=${ELEMENT_DIR:-"${ELEMENTS_PATH}/gentoo"}
|
||||||
|
# valid gentoo profiles are as follows
|
||||||
|
# default/linux/amd64/13.0
|
||||||
|
# default/linux/amd64/13.0/no-multilib
|
||||||
|
# hardened/linux/amd64
|
||||||
|
# hardened/linux/amd64/no-multilib
|
||||||
|
GENTOO_PROFILE=${GENTOO_PROFILE:-'default/linux/amd64/13.0'}
|
||||||
|
if [[ "${GENTOO_PROFILE}" == "default/linux/amd64/13.0" ]]; then
|
||||||
|
FILENAME_BASE='gentoo-stage4'
|
||||||
|
SIGNED_SOURCE_SUFFIX='cloud'
|
||||||
|
elif [[ "${GENTOO_PROFILE}" == "default/linux/amd64/13.0/no-multilib" ]]; then
|
||||||
|
FILENAME_BASE='gentoo-stage4-nomultilib'
|
||||||
|
SIGNED_SOURCE_SUFFIX='cloud-nomultilib'
|
||||||
|
elif [[ "${GENTOO_PROFILE}" == "hardened/linux/amd64" ]]; then
|
||||||
|
FILENAME_BASE='gentoo-stage4-hardened'
|
||||||
|
SIGNED_SOURCE_SUFFIX='hardened+cloud'
|
||||||
|
elif [[ "${GENTOO_PROFILE}" == "hardened/linux/amd64/no-multilib" ]]; then
|
||||||
|
FILENAME_BASE='gentoo-stage4-hardened-nomultilib'
|
||||||
|
SIGNED_SOURCE_SUFFIX='hardened+cloud-nomultilib'
|
||||||
|
else
|
||||||
|
echo 'invalid profile, please select from the following profiles'
|
||||||
|
echo 'default/linux/amd64/13.0'
|
||||||
|
echo 'default/linux/amd64/13.0/no-multilib'
|
||||||
|
echo 'hardened/linux/amd64'
|
||||||
|
echo 'hardened/linux/amd64/no-multilib'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
DIB_CLOUD_SOURCE=${DIB_CLOUD_SOURCE:-"http://distfiles.gentoo.org/releases/amd64/autobuilds/latest-stage4-amd64-${SIGNED_SOURCE_SUFFIX}.txt"}
|
||||||
|
BASE_IMAGE_FILE=${BASE_IMAGE_FILE:-"http://distfiles.gentoo.org/releases/amd64/autobuilds/$(curl ${DIB_CLOUD_SOURCE} -s | tail -n 1 | cut -d\ -f 1)"}
|
||||||
|
SIGNATURE_FILE="${SIGNATURE_FILE:-${BASE_IMAGE_FILE}.DIGESTS.asc}"
|
||||||
|
CACHED_FILE="${DIB_IMAGE_CACHE}/${FILENAME_BASE}.tar.bz2"
|
||||||
|
CACHED_SIGNATURE_FILE="${DIB_IMAGE_CACHE}/${FILENAME_BASE}.asc"
|
||||||
|
|
||||||
|
if [ -n "${DIB_OFFLINE}" -a -f "${CACHED_FILE}" ] ; then
|
||||||
|
echo "Not checking freshness of cached ${CACHED_FILE}"
|
||||||
|
else
|
||||||
|
echo 'Fetching Base Image'
|
||||||
|
"${TMP_HOOKS_PATH}"/bin/cache-url "${SIGNATURE_FILE}" "${CACHED_SIGNATURE_FILE}"
|
||||||
|
"${TMP_HOOKS_PATH}"/bin/cache-url "${BASE_IMAGE_FILE}" "${CACHED_FILE}"
|
||||||
|
pushd "${DIB_IMAGE_CACHE}"
|
||||||
|
# import the key
|
||||||
|
# this key can be verified at one of the following places
|
||||||
|
# https://wiki.gentoo.org/wiki/Project:RelEng#Keys
|
||||||
|
# https://dev.gentoo.org/~dolsen/releases/keyrings/gentoo-keys-*.tar.xz
|
||||||
|
# http://distfiles.gentoo.org/distfiles/gentoo-keys-*.tar.xz
|
||||||
|
GPGDIR=$(mktemp -d -t)
|
||||||
|
gpg --no-default-keyring --keyring "${GPGDIR}"/gentookeys.gpg --import "${ELEMENT_DIR}"/gentoo-releng.gpg
|
||||||
|
# check the sig file
|
||||||
|
gpgv --keyring "${GPGDIR}"/gentookeys.gpg "${CACHED_SIGNATURE_FILE}"
|
||||||
|
if [[ "${?}" != 0 ]]; then
|
||||||
|
echo 'invalid signature file'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
rm -rf "${GPGDIR}"
|
||||||
|
echo 'valid key used'
|
||||||
|
CACHED_SHA512SUM=$(grep -A1 -e 'SHA512' "${CACHED_SIGNATURE_FILE}" | grep -e 'tar.bz2$' | cut -d\ -f 1)
|
||||||
|
ACTUAL_SHA512SUM=$(sha512sum "${CACHED_FILE}" | cut -d\ -f 1)
|
||||||
|
if [[ "${ACTUAL_SHA512SUM}" != "${CACHED_SHA512SUM}" ]]; then
|
||||||
|
echo "invalid checksum on downloaded tarball: ${CACHED_FILE}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo 'valid checksum'
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extract the base image (use --numeric-owner to avoid UID/GID mismatch between
|
||||||
|
# image tarball and host OS)
|
||||||
|
sudo tar -C "${TARGET_ROOT}" --numeric-owner --xattrs -xjpf "${CACHED_FILE}"
|
@ -33,6 +33,8 @@ def os_family(distro):
|
|||||||
family = 'debian'
|
family = 'debian'
|
||||||
elif distro == 'opensuse':
|
elif distro == 'opensuse':
|
||||||
family = 'suse'
|
family = 'suse'
|
||||||
|
elif distro == 'gentoo':
|
||||||
|
family = 'gentoo'
|
||||||
|
|
||||||
return family
|
return family
|
||||||
|
|
||||||
|
@ -13,13 +13,12 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
import imp
|
import imp
|
||||||
import os
|
import os
|
||||||
|
from oslotest import base
|
||||||
|
|
||||||
module_path = (os.path.dirname(os.path.realpath(__file__)) +
|
module_path = (os.path.dirname(os.path.realpath(__file__)) +
|
||||||
'/../extra-data.d/10-merge-svc-map-files')
|
'/../extra-data.d/10-merge-svc-map-files')
|
||||||
service_map = imp.load_source('service_map', module_path)
|
service_map = imp.load_source('service_map', module_path)
|
||||||
|
|
||||||
from oslotest import base
|
|
||||||
|
|
||||||
|
|
||||||
class TestDataMerge(base.BaseTestCase):
|
class TestDataMerge(base.BaseTestCase):
|
||||||
|
|
||||||
|
@ -191,6 +191,9 @@ function select_boot_kernel_initrd () {
|
|||||||
elif [ -f $TARGET_ROOT/etc/SuSE-release ]; then
|
elif [ -f $TARGET_ROOT/etc/SuSE-release ]; then
|
||||||
KERNEL=$(basename $(readlink -e $BOOTDIR/vmlinuz))
|
KERNEL=$(basename $(readlink -e $BOOTDIR/vmlinuz))
|
||||||
RAMDISK=$(basename $(readlink -e $BOOTDIR/initrd))
|
RAMDISK=$(basename $(readlink -e $BOOTDIR/initrd))
|
||||||
|
elif [[ -f "${TARGET_ROOT}"/etc/gentoo-release ]]; then
|
||||||
|
KERNEL="$(basename $(ls -1rv $BOOTDIR/kernel-*-openstack | head -n 1))"
|
||||||
|
RAMDISK="$(basename $(ls -1rv $BOOTDIR/initramfs-*-openstack | head -n 1))"
|
||||||
else
|
else
|
||||||
echo "ERROR: Unable to detect operating system"
|
echo "ERROR: Unable to detect operating system"
|
||||||
exit 1
|
exit 1
|
||||||
|
Loading…
Reference in New Issue
Block a user