Skip to content

Commit

Permalink
Support wrapper script on Debian 12 Cloud image
Browse files Browse the repository at this point in the history
- Support *.source files in /etc/apt/sources
- Copy over /etc/apt/mirrors
- Install ca-certificates package for https repositories
- Don't rely on the local /etc/groups file being complete enough
  for the chroot
  • Loading branch information
matt335672 committed Sep 6, 2024
1 parent 791dc3f commit 18685a8
Showing 1 changed file with 17 additions and 7 deletions.
24 changes: 17 additions & 7 deletions scripts/install_pulseaudio_sources_apt_wrapper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,11 @@ BUILDROOT=/var/lib/pa-build/$USER
# Extra packages to install in the build root which the wrapped script
# may be using. These are packages available by default when using
# GitHub actions
WRAPPED_SCRIPT_DEPS="sudo lsb-release"
#
# ca-certificates are needed to fetch updates over https
#
# This list is comma-separated
WRAPPED_SCRIPT_DEPS="ca-certificates,sudo,lsb-release"

# -----------------------------------------------------------------------------
# S U I T E E X I S T S
Expand Down Expand Up @@ -113,11 +117,12 @@ RunWrappedScript()
# -d : Directory to switch to before running command
schroot="schroot -c pa-build-$USER -d /build"

# Install extra dependencies
# Update the buildroot
$schroot -u root -- apt-get update
$schroot -u root -- apt-get install -y $WRAPPED_SCRIPT_DEPS

# Allow normal user to sudo without a password
# Allow normal user to sudo without a password. We may need to add the
# normal user, as it probably isn't created by debootstrap
$schroot -u root -- useradd -M $USER || :
$schroot -u root -- \
/bin/sh -c "echo '$USER ALL=(ALL) NOPASSWD:ALL'>/etc/sudoers.d/nopasswd-$USER"
$schroot -u root -- chmod 400 /etc/sudoers.d/nopasswd-$USER
Expand All @@ -130,7 +135,7 @@ RunWrappedScript()
# M A I N
# -----------------------------------------------------------------------------
debootstrap_mirror=""
debootstrap_switches=""
debootstrap_switches="--include=$WRAPPED_SCRIPT_DEPS"
debootstrap_suite=""

# Parse command line switches
Expand Down Expand Up @@ -214,12 +219,17 @@ echo "- Creating schroot config file $schroot_conf"
echo "root-users=$USER"
echo "users=$USER"
echo "type=directory"
# Make sure we don't clobber /etc/passwd, /etc/group (etc) which
# have been created by debootstrap
echo "setup.nssdatabases="
} | sudo tee $schroot_conf >/dev/null || exit $?

# Copy some files to the build root
for file in $(find /etc/apt/ /etc/apt/sources.list.d -maxdepth 1 -type f -name '*.list'); do
for file in $(find /etc/apt/ /etc/apt/sources.list.d/ /etc/apt/mirrors/ \
-maxdepth 1 \
-type f \( -name '*.list' -o -name '*.sources' \) ); do
echo "- Copying $file to the root"
sudo install -m 0644 $file $BUILDROOT/$file || exit $?
sudo install -Dm 0644 $file $BUILDROOT/$file || exit $?
done

# Create a separate directory in $BUILDROOT to hold the build
Expand Down

0 comments on commit 18685a8

Please sign in to comment.