Enable support for Gentoo overlays
This is intended to eventually support building musl-libc based images, which need the musl overlay. Change-Id: I8f5429ffa64e74c860772d9a00ff0b7eebb7721a
This commit is contained in:
parent
c886c4cbe1
commit
c4f83f2311
@ -44,3 +44,7 @@ Notes:
|
||||
which will be called by running the `python` command. The
|
||||
`GENTOO_PYTHON_ACTIVE_VERSION` is used to set that mapping. The variable
|
||||
contents can be something like `python3.5`.
|
||||
|
||||
* You can enable overlays using the `GENTOO_OVERLAYS` variable. In it you
|
||||
should put a space separated list of overlays. The overlays must be in the
|
||||
official overlay list and must be git based.
|
||||
|
@ -4,3 +4,4 @@ export GENTOO_PROFILE=${GENTOO_PROFILE:-'default/linux/amd64/13.0'}
|
||||
export GENTOO_PORTAGE_CLEANUP=${GENTOO_PORTAGE_CLEANUP:-'False'}
|
||||
export GENTOO_PYTHON_TARGETS=${GENTOO_PYTHON_TARGETS:-'python2_7 python3_4'}
|
||||
export GENTOO_PYTHON_ACTIVE_VERSION=${GENTOO_PYTHON_ACTIVE_VERSION:-'python3.4'}
|
||||
export GENTOO_OVERLAYS=${GENTOO_OVERLAYS:-''}
|
||||
|
@ -34,6 +34,13 @@ eselect news read all
|
||||
rm -Rf /root/.ccache/* /usr/src/* /var/cache/edb/dep/* /var/cache/genkernel/* /var/empty/* /var/run/* /var/state/* /var/tmp/*
|
||||
rm -Rf /etc/*- /etc/*.old /etc/ssh/ssh_host_* /root/.*history /root/.lesshst /root/.ssh/known_hosts /root/.viminfo /usr/share/genkernel /usr/lib64/python*/site-packages/gentoolkit/test/eclean/testdistfiles.tar.gz
|
||||
if [[ "${GENTOO_PORTAGE_CLEANUP}" != "False" ]]; then
|
||||
# remove the overlays
|
||||
if [[ ${GENTOO_OVERLAYS} != '' ]]; then
|
||||
for OVERLAY in ${GENTOO_OVERLAYS}; do
|
||||
layman -d "${OVERLAY}"
|
||||
done
|
||||
fi
|
||||
# remove portage files
|
||||
rm -Rf /usr/portage/* /var/cache/portage/distfiles
|
||||
fi
|
||||
|
||||
|
41
diskimage_builder/elements/gentoo/pre-install.d/02-gentoo-03-enable-overlays
Executable file
41
diskimage_builder/elements/gentoo/pre-install.d/02-gentoo-03-enable-overlays
Executable file
@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
||||
set -x
|
||||
fi
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
if [[ ${GENTOO_OVERLAYS} != '' ]]; then
|
||||
if mountpoint -q /dev/shm; then
|
||||
echo "/dev/shm found in /proc/self/mountinfo"
|
||||
elif [[ -k /dev/shm ]]; then
|
||||
echo "/dev/shm exists and is stickied"
|
||||
else
|
||||
fix_shm
|
||||
fi
|
||||
|
||||
if [[ ! -f /usr/portage/profiles ]]; then
|
||||
emerge-webrsync -q
|
||||
fi
|
||||
|
||||
# layman requires cryptography, which needs ecc crypto functions.
|
||||
# binaries providing those functions have questionable legality for
|
||||
# redistribution, so we have to use a version of openssl that works around
|
||||
# it (using fedora's patchset) and also use a version of cryptography that
|
||||
# depends on that version of openssl.
|
||||
echo '=dev-python/cryptography-2.1.3 ~amd64' >> /etc/portage/package.keywords/layman
|
||||
echo '=dev-libs/openssl-1.1.0g-r1 ~amd64' >> /etc/portage/package.keywords/layman
|
||||
echo '=dev-libs/openssl-1.1.0g-r1' >> /etc/portage/package.unmask/layman
|
||||
emerge -q --oneshot --jobs=2 openssl openssh
|
||||
# install layman
|
||||
USE="-build" emerge --deep -q --jobs=2 layman
|
||||
# sync the initial overlay list
|
||||
layman -S
|
||||
# enable the various overlays
|
||||
for OVERLAY in ${GENTOO_OVERLAYS}; do
|
||||
layman -a "${OVERLAY}"
|
||||
done
|
||||
|
||||
unfix_shm
|
||||
fi
|
Loading…
Reference in New Issue
Block a user