9231f9b57d
This commit adds Gentoo support to elements needed to build a Gentoo nodepool image. The previous version of this commit had the default section of the pkg-map in the wrong area, specifically in the following file. nodepool/elements/infra-package-needs/pkg-map Change-Id: Ic686c325bc06564585a2e3ac50cadd7556612333
61 lines
1.8 KiB
Bash
Executable File
61 lines
1.8 KiB
Bash
Executable File
#!/bin/bash -xe
|
|
|
|
# set a default path to the preinstalled bindep entrypoint
|
|
export BINDEP=${BINDEP:-/usr/bindep-env/bin/bindep}
|
|
|
|
function is_fedora {
|
|
[ -f /usr/bin/yum ] && cat /etc/*release | grep -q -e "Fedora"
|
|
}
|
|
|
|
YUM=yum
|
|
if is_fedora; then
|
|
YUM=dnf
|
|
fi
|
|
|
|
# figure out which bindep list to use
|
|
if [ -n "$PACKAGES" ] ; then
|
|
# already set in the calling environment
|
|
:
|
|
elif [ -e bindep.txt ] ; then
|
|
# project has its own bindep list
|
|
export PACKAGES=bindep.txt
|
|
elif [ -e other-requirements.txt ] ; then
|
|
# project has its own bindep list
|
|
export PACKAGES=other-requirements.txt
|
|
else
|
|
# use the bindep fallback list preinstalled on the worker
|
|
export PACKAGES=/usr/local/jenkins/common_data/bindep-fallback.txt
|
|
fi
|
|
|
|
# an install loop, retrying to check that all requested packages are obtained
|
|
try=0
|
|
# Install test profile using bindep
|
|
until $BINDEP -b -f $PACKAGES test; do
|
|
if [ $try -gt 2 ] ; then
|
|
set +x
|
|
echo -e "\nERROR: These requested packages were not installed:\n" \
|
|
"\n`$BINDEP -b -f $PACKAGES test`\n" 1>&2
|
|
set -x
|
|
exit 1
|
|
fi
|
|
|
|
# don't abort inside the loop, we check for the desired outcome
|
|
set +e
|
|
if apt-get -v >/dev/null 2>&1 ; then
|
|
sudo apt-get -qq update
|
|
sudo PATH=/usr/sbin:/sbin:$PATH DEBIAN_FRONTEND=noninteractive \
|
|
apt-get -q --option "Dpkg::Options::=--force-confold" \
|
|
--assume-yes install `$BINDEP -b -f $PACKAGES test`
|
|
elif emerge --version >/dev/null 2>&1 ; then
|
|
sudo emerge -uDNq --jobs=4 @world
|
|
sudo PATH=/usr/sbin:/sbin:$PATH emerge -q --jobs=4 \
|
|
`$BINDEP -b -f $PACKAGES`
|
|
else
|
|
sudo PATH=/usr/sbin:/sbin:$PATH $YUM install -y \
|
|
`$BINDEP -b -f $PACKAGES test`
|
|
fi
|
|
set -e
|
|
|
|
try=$(( $try+1 ))
|
|
done
|