use stage3 instead of stage4 for gentoo builds
The main reason for using the stage4 is now gone (kernel compile). Install and use the distro provided binary kernel package. In addition to this, set the locale and timezone, beyond that very little was done in the gentoo stage4. Change-Id: I541b7d9b807e2357398ae1c249b1978958dd1137 Signed-off-by: Matthew Thode <mthode@mthode.org>
This commit is contained in:
parent
339d713527
commit
041bdd331a
@ -1,2 +1,3 @@
|
|||||||
sys-fs/dosfstools:
|
|
||||||
app-admin/sudo:
|
app-admin/sudo:
|
||||||
|
sys-fs/dosfstools:
|
||||||
|
sys-kernel/gentoo-kernel-bin:
|
||||||
|
@ -8,3 +8,12 @@ set -o pipefail
|
|||||||
|
|
||||||
# set profile symlink to the hardcoded PORDIR
|
# set profile symlink to the hardcoded PORDIR
|
||||||
ln -sf ../.."${PORTDIR}/profiles/${GENTOO_PROFILE}" /etc/portage/make.profile
|
ln -sf ../.."${PORTDIR}/profiles/${GENTOO_PROFILE}" /etc/portage/make.profile
|
||||||
|
|
||||||
|
# Set timezone
|
||||||
|
echo 'UTC' > /etc/timezone
|
||||||
|
|
||||||
|
# Set locale
|
||||||
|
echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen
|
||||||
|
echo 'en_US ISO-8859-1' >> /etc/locale.gen
|
||||||
|
locale-gen -q
|
||||||
|
eselect locale set en_US.utf8
|
||||||
|
@ -8,15 +8,10 @@ set -o pipefail
|
|||||||
|
|
||||||
# get the directories in order
|
# get the directories in order
|
||||||
mkdir -p /etc/portage/profile
|
mkdir -p /etc/portage/profile
|
||||||
|
mkdir -p /etc/portage/package.accept_keywords
|
||||||
if [ -f /etc/portage/package.keywords ]; then
|
if [ -f /etc/portage/package.keywords ]; then
|
||||||
mv /etc/portage/package.keywords /etc/portage/package.keywords.bak
|
mv /etc/portage/package.keywords /etc/portage/package.accept_keywords/prebuilt-1
|
||||||
mkdir -p /etc/portage/package.keywords
|
|
||||||
mv /etc/portage/package.keywords.bak /etc/portage/package.keywords/prebuilt-1
|
|
||||||
else
|
|
||||||
mkdir -p /etc/portage/package.keywords
|
|
||||||
fi
|
fi
|
||||||
[ -d /etc/portage/package.accept_keywords ] && mv /etc/portage/package.accept_keywords/* /etc/portage/package.keywords/ && rmdir /etc/portage/package.accept_keywords
|
|
||||||
[ -f /etc/portage/package.accept_keywords ] && mv /etc/portage/package.accept_keywords /etc/portage/package.keywords/prebuilt-2
|
|
||||||
mkdir -p /etc/portage/package.mask
|
mkdir -p /etc/portage/package.mask
|
||||||
mkdir -p /etc/portage/package.unmask
|
mkdir -p /etc/portage/package.unmask
|
||||||
mkdir -p /etc/portage/package.use
|
mkdir -p /etc/portage/package.use
|
||||||
@ -28,16 +23,23 @@ echo 'sys-fs/lvm2 -thin' >> /etc/portage/package.use/grub
|
|||||||
echo 'sys-boot/grub device-mapper' >> /etc/portage/package.use/grub
|
echo 'sys-boot/grub device-mapper' >> /etc/portage/package.use/grub
|
||||||
|
|
||||||
# needed in order to install pip packages as root
|
# needed in order to install pip packages as root
|
||||||
echo '=dev-python/pip-9.0.1-r2 ~amd64' >> /etc/portage/package.keywords/pip
|
echo '=dev-python/pip-9.0.1-r2 ~amd64' >> /etc/portage/package.accept_keywords/pip
|
||||||
|
# needed to install static kernel
|
||||||
|
echo '~sys-apps/debianutils-4.9.1 ~amd64' >> /etc/portage/package.accept_keywords/kernel
|
||||||
|
echo 'sys-kernel/installkernel-gentoo ~amd64' >> /etc/portage/package.accept_keywords/kernel
|
||||||
|
echo 'sys-kernel/gentoo-kernel-bin ~amd64' >> /etc/portage/package.accept_keywords/kernel
|
||||||
|
|
||||||
|
# needed for sfdisk to work
|
||||||
|
echo '~sys-apps/util-linux-2.35.2 ~amd64 # sfdisk growpart fix' >> /etc/portage/package.accept_keywords/util-linux
|
||||||
|
|
||||||
if [[ "${GENTOO_PROFILE}" == *"systemd"* ]]; then
|
if [[ "${GENTOO_PROFILE}" == *"systemd"* ]]; then
|
||||||
# systemd import-tar is broken, use a more recent (fixed) version
|
# systemd import-tar is broken, use a more recent (fixed) version
|
||||||
echo '~sys-apps/systemd-241 ~amd64' >> /etc/portage/package.keywords/systemd
|
echo '~sys-apps/systemd-241 ~amd64' >> /etc/portage/package.accept_keywords/systemd
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${GENTOO_PROFILE}" == *"musl"* ]]; then
|
if [[ "${GENTOO_PROFILE}" == *"musl"* ]]; then
|
||||||
echo "dev-vcs/git -gpg" >> /etc/portage/package.use/musl # gpg doesn't build on musl profiles
|
echo "dev-vcs/git -gpg" >> /etc/portage/package.use/musl # gpg doesn't build on musl profiles
|
||||||
echo "=sys-block/open-iscsi-2.0.874-r1 ~amd64" >> /etc/portage/package.keywords/musl
|
echo "=sys-block/open-iscsi-2.0.874-r1 ~amd64" >> /etc/portage/package.accept_keywords/musl
|
||||||
echo "=sys-block/open-isns-0.97 ~amd64" >> /etc/portage/package.keywords/musl
|
echo "=sys-block/open-isns-0.97 ~amd64" >> /etc/portage/package.accept_keywords/musl
|
||||||
echo "sys-libs/pam cracklib" >> /etc/portage/package.use/musl
|
echo "sys-libs/pam cracklib" >> /etc/portage/package.use/musl
|
||||||
fi
|
fi
|
||||||
|
@ -21,7 +21,7 @@ if [[ ${GENTOO_OVERLAYS} != '' ]]; then
|
|||||||
|
|
||||||
# upstream has problems with supporting other libcs still
|
# upstream has problems with supporting other libcs still
|
||||||
if [[ "${GENTOO_PROFILE}" == *"musl"* ]]; then
|
if [[ "${GENTOO_PROFILE}" == *"musl"* ]]; then
|
||||||
echo '=sys-block/open-iscsi-2.0.877' >> /etc/portage/package.keywords/open-iscsi
|
echo '=sys-block/open-iscsi-2.0.877' >> /etc/portage/package.accept_keywords/open-iscsi
|
||||||
fi
|
fi
|
||||||
emerge ${GENTOO_EMERGE_DEFAULT_OPTS} --oneshot openssl openssh
|
emerge ${GENTOO_EMERGE_DEFAULT_OPTS} --oneshot openssl openssh
|
||||||
# install layman
|
# install layman
|
||||||
|
@ -30,6 +30,8 @@ PYTHON_PACKAGES="dev-python/six dev-python/packaging dev-python/appdirs dev-pyth
|
|||||||
for PACKAGE in ${PYTHON_PACKAGES}; do
|
for PACKAGE in ${PYTHON_PACKAGES}; do
|
||||||
emerge ${GENTOO_EMERGE_DEFAULT_OPTS} --oneshot --update --newuse --deep --nodeps "${PACKAGE}"
|
emerge ${GENTOO_EMERGE_DEFAULT_OPTS} --oneshot --update --newuse --deep --nodeps "${PACKAGE}"
|
||||||
done
|
done
|
||||||
|
# install portage first due to bug in env vars not being passed when portage installs itself and re-inits
|
||||||
|
emerge ${GENTOO_EMERGE_DEFAULT_OPTS} --oneshot sys-apps/portage
|
||||||
emerge ${GENTOO_EMERGE_DEFAULT_OPTS} --oneshot --update --newuse --deep --complete-graph=y sys-apps/portage dev-python/pyxattr
|
emerge ${GENTOO_EMERGE_DEFAULT_OPTS} --oneshot --update --newuse --deep --complete-graph=y sys-apps/portage dev-python/pyxattr
|
||||||
# set the active python version
|
# set the active python version
|
||||||
eselect python set ${GENTOO_PYTHON_ACTIVE_VERSION}
|
eselect python set ${GENTOO_PYTHON_ACTIVE_VERSION}
|
||||||
|
@ -40,20 +40,20 @@ fi
|
|||||||
# hardened/linux/amd64/no-multilib
|
# hardened/linux/amd64/no-multilib
|
||||||
GENTOO_PROFILE=${GENTOO_PROFILE:-'default/linux/amd64/17.1'}
|
GENTOO_PROFILE=${GENTOO_PROFILE:-'default/linux/amd64/17.1'}
|
||||||
if [[ "${GENTOO_PROFILE}" == "default/linux/amd64/17.1" ]]; then
|
if [[ "${GENTOO_PROFILE}" == "default/linux/amd64/17.1" ]]; then
|
||||||
FILENAME_BASE='gentoo-stage4'
|
FILENAME_BASE='gentoo-stage3'
|
||||||
SIGNED_SOURCE_SUFFIX='minimal'
|
SIGNED_SOURCE_SUFFIX=''
|
||||||
elif [[ "${GENTOO_PROFILE}" == "default/linux/amd64/17.1/no-multilib" ]]; then
|
elif [[ "${GENTOO_PROFILE}" == "default/linux/amd64/17.1/no-multilib" ]]; then
|
||||||
FILENAME_BASE='gentoo-stage4-nomultilib'
|
FILENAME_BASE='gentoo-stage3-nomultilib'
|
||||||
SIGNED_SOURCE_SUFFIX='minimal-nomultilib'
|
SIGNED_SOURCE_SUFFIX='-nomultilib'
|
||||||
elif [[ "${GENTOO_PROFILE}" == "default/linux/amd64/17.1/hardened" ]]; then
|
elif [[ "${GENTOO_PROFILE}" == "default/linux/amd64/17.1/hardened" ]]; then
|
||||||
FILENAME_BASE='gentoo-stage4-hardened'
|
FILENAME_BASE='gentoo-stage3-hardened'
|
||||||
SIGNED_SOURCE_SUFFIX='hardened+minimal'
|
SIGNED_SOURCE_SUFFIX='-hardened'
|
||||||
elif [[ "${GENTOO_PROFILE}" == "default/linux/amd64/17.1/no-multilib/hardened" ]]; then
|
elif [[ "${GENTOO_PROFILE}" == "default/linux/amd64/17.1/no-multilib/hardened" ]]; then
|
||||||
FILENAME_BASE='gentoo-stage4-hardened-nomultilib'
|
FILENAME_BASE='gentoo-stage3-hardened-nomultilib'
|
||||||
SIGNED_SOURCE_SUFFIX='hardened+minimal-nomultilib'
|
SIGNED_SOURCE_SUFFIX='-hardened+nomultilib'
|
||||||
elif [[ "${GENTOO_PROFILE}" == "default/linux/amd64/17.1/systemd" ]]; then
|
elif [[ "${GENTOO_PROFILE}" == "default/linux/amd64/17.1/systemd" ]]; then
|
||||||
FILENAME_BASE='gentoo-stage4-systemd'
|
FILENAME_BASE='gentoo-stage3-systemd'
|
||||||
SIGNED_SOURCE_SUFFIX='systemd'
|
SIGNED_SOURCE_SUFFIX='-systemd'
|
||||||
else
|
else
|
||||||
echo 'invalid profile, please select from the following profiles'
|
echo 'invalid profile, please select from the following profiles'
|
||||||
echo 'default/linux/amd64/17.1'
|
echo 'default/linux/amd64/17.1'
|
||||||
@ -64,7 +64,7 @@ else
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DIB_CLOUD_SOURCE=${DIB_CLOUD_SOURCE:-"http://distfiles.gentoo.org/releases/amd64/autobuilds/latest-stage4-amd64-${SIGNED_SOURCE_SUFFIX}.txt"}
|
DIB_CLOUD_SOURCE=${DIB_CLOUD_SOURCE:-"http://distfiles.gentoo.org/releases/amd64/autobuilds/latest-stage3-amd64${SIGNED_SOURCE_SUFFIX}.txt"}
|
||||||
BASE_IMAGE_FILE=${BASE_IMAGE_FILE:-"http://distfiles.gentoo.org/releases/amd64/autobuilds/$(curl ${DIB_CLOUD_SOURCE} -s -f | tail -n 1 | cut -d\ -f 1)"}
|
BASE_IMAGE_FILE=${BASE_IMAGE_FILE:-"http://distfiles.gentoo.org/releases/amd64/autobuilds/$(curl ${DIB_CLOUD_SOURCE} -s -f | tail -n 1 | cut -d\ -f 1)"}
|
||||||
BASE_IMAGE_FILE_SUFFIX=${BASE_IMAGE_FILE_SUFFIX:-"$(basename ${BASE_IMAGE_FILE} | cut -d. -f 2,3)"}
|
BASE_IMAGE_FILE_SUFFIX=${BASE_IMAGE_FILE_SUFFIX:-"$(basename ${BASE_IMAGE_FILE} | cut -d. -f 2,3)"}
|
||||||
SIGNATURE_FILE="${SIGNATURE_FILE:-${BASE_IMAGE_FILE}.DIGESTS.asc}"
|
SIGNATURE_FILE="${SIGNATURE_FILE:-${BASE_IMAGE_FILE}.DIGESTS.asc}"
|
||||||
@ -106,3 +106,11 @@ fi
|
|||||||
# Extract the base image (use --numeric-owner to avoid UID/GID mismatch between
|
# Extract the base image (use --numeric-owner to avoid UID/GID mismatch between
|
||||||
# image tarball and host OS)
|
# image tarball and host OS)
|
||||||
sudo tar -C "${TARGET_ROOT}" --numeric-owner --xattrs -xf "${CACHED_FILE}"
|
sudo tar -C "${TARGET_ROOT}" --numeric-owner --xattrs -xf "${CACHED_FILE}"
|
||||||
|
|
||||||
|
# Put in a dummy /etc/resolv.conf over the temporary one we used
|
||||||
|
# to bootstrap. systemd has a bug/feature [1] that it will assume
|
||||||
|
# you want systemd-networkd as the network manager and create a
|
||||||
|
# broken symlink to /run/... if the base image doesn't have one.
|
||||||
|
# This broken link confuses things like dhclient.
|
||||||
|
# [1] https://bugzilla.redhat.com/show_bug.cgi?id=1197204
|
||||||
|
echo -e "# This file intentionally left blank\n" | sudo tee "${TARGET_ROOT}"/etc/resolv.conf
|
||||||
|
Loading…
Reference in New Issue
Block a user