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": {
|
||||
"dkms_package": ""
|
||||
},
|
||||
"gentoo": {
|
||||
"dkms_package": "",
|
||||
"grub-pc": "grub",
|
||||
"extlinux": "syslinux"
|
||||
}
|
||||
},
|
||||
"default": {
|
||||
|
@ -19,7 +19,7 @@ else
|
||||
fi
|
||||
|
||||
function install_extlinux {
|
||||
install-packages extlinux
|
||||
install-packages -m base extlinux
|
||||
|
||||
echo "Installing Extlinux..."
|
||||
|
||||
@ -59,9 +59,9 @@ function install_grub2 {
|
||||
if [ -f "/tmp/grub/install" ] ; then
|
||||
source /tmp/grub/install
|
||||
elif [[ "$ARCH" =~ "ppc" ]]; then
|
||||
install-packages grub-ieee1275
|
||||
install-packages -m base grub-ieee1275
|
||||
else
|
||||
install-packages grub-pc
|
||||
install-packages -m base grub-pc
|
||||
fi
|
||||
|
||||
# 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
|
||||
CBUyH4X/Ajz4MhvXjAYeWpvtzxHW5sJL0mnNBQtkEM3SPGrYsJLCmhp0hW0lfYtq
|
||||
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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'
|
||||
elif distro == 'opensuse':
|
||||
family = 'suse'
|
||||
elif distro == 'gentoo':
|
||||
family = 'gentoo'
|
||||
|
||||
return family
|
||||
|
||||
|
@ -13,13 +13,12 @@
|
||||
# under the License.
|
||||
import imp
|
||||
import os
|
||||
from oslotest import base
|
||||
|
||||
module_path = (os.path.dirname(os.path.realpath(__file__)) +
|
||||
'/../extra-data.d/10-merge-svc-map-files')
|
||||
service_map = imp.load_source('service_map', module_path)
|
||||
|
||||
from oslotest import base
|
||||
|
||||
|
||||
class TestDataMerge(base.BaseTestCase):
|
||||
|
||||
|
@ -191,6 +191,9 @@ function select_boot_kernel_initrd () {
|
||||
elif [ -f $TARGET_ROOT/etc/SuSE-release ]; then
|
||||
KERNEL=$(basename $(readlink -e $BOOTDIR/vmlinuz))
|
||||
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
|
||||
echo "ERROR: Unable to detect operating system"
|
||||
exit 1
|
||||
|
Loading…
Reference in New Issue
Block a user