22
33# create apt sources
44# environment variables:
5- # - RELEASE <required >:
5+ # - RELEASE <optional >:
66# - OS distro and codename to use (e.g. 'debian/bookworm')
7+ # - will fallback to host system if not set
78# - NONFREE <optional>:
89# - set to enable non-free by default
910# - TKL_TESTING <optional>:
2930# - add to plan & pin package(s) to backports (via prefs file); or
3031# - install via apt using '-t $CODENAME-backports' switch
3132
32- fatal () { echo " fatal: $@ " 1>&2 ; exit 1; }
33+ warning () { echo " warning: $* " 1>&2 ; }
34+ fatal () { echo " fatal: $* " 1>&2 ; exit 1; }
3335
34- [ ! -f /turnkey-buildenv ] || source /turnkey-buildenv
35- [ -n " $RELEASE " ] || fatal " RELEASE is not set"
36- CODENAME=$( basename $RELEASE )
37- [ -n " $CODENAME " ] || fatal " CODENAME is not set"
38- distro=$( dirname $RELEASE )
36+ if [[ -f /turnkey-buildenv ]]; then
37+ # shellcheck source=/dev/null
38+ source /turnkey-buildenv
39+ fi
40+
41+ if [[ -z " $RELEASE " ]]; then
42+ CODENAME=$( lsb_release -sc)
43+ _distro=$( lsb_release -si)
44+ distro=${_distro,,}
45+ warning " RELEASE not set - falling back to host: $distro /$CODENAME "
46+ else
47+ CODENAME=$( basename " $RELEASE " )
48+ distro=$( dirname " $RELEASE " )
49+ fi
3950if [[ " $distro " != ' debian' ]] && [[ " $distro " != ' ubuntu' ]]; then
4051 fatal " Only supported distros are 'debian' and 'ubuntu' (got '{$distro }')"
4152fi
4253rm -rf /turnkey-buildenv
4354
4455case $CODENAME in
45- buster| bullseye|bookworm)
56+ bullseye|bookworm|trixie )
4657 MIRROR_URL=http://deb.debian.org/debian
4758 SEC_MIRROR=http://security.debian.org/
4859 KEY_CODENAME=$CODENAME
4960 CONTRIB=" contrib"
5061 NON_FREE=" non-free"
5162 ;;&
52- bookworm)
63+ bookworm|trixie )
5364 SEC_MIRROR=" ${SEC_MIRROR} debian-security"
5465 ;;
5566 # Note - only Ubuntu LTS
56- focal|jammy)
67+ focal|jammy|noble )
5768 MIRROR_URL=http://archive.ubuntu.com/ubuntu
5869 SEC_MIRROR=$MIRROR_URL
5970 CONTRIB=" universe"
@@ -65,6 +76,9 @@ case $CODENAME in
6576 jammy)
6677 KEY_CODENAME=" bookworm"
6778 ;;
79+ noble)
80+ KEY_CODENAME=" trixie"
81+ ;;
6882 * )
6983 fatal " Codename '$CODENAME ' not supported"
7084 ;;
@@ -127,16 +141,16 @@ if [[ -z "$NO_TURNKEY_APT_REPO" ]]; then
127141 # gpg keyring files
128142 key_dir=/usr/share/keyrings
129143 repos=(main security testing)
130- for repo in ${repos[@]} ; do
144+ for repo in " ${repos[@]} " ; do
131145 full_path=$key_dir /tkl-$CODENAME -$repo
132146 keyring=$full_path .gpg
133147 keyfile=$full_path .asc
134- gpg --no-default-keyring --keyring $keyring --import $keyfile
135- rm $keyfile
148+ gpg --no-default-keyring --keyring " $keyring " --import " $keyfile "
149+ rm " $keyfile "
136150 done
137151 # ensure that gpg-agent is killed after processing keys
138- kill -9 $( pidof gpg-agent) || true
139- rm -rf $HOME /.gnupg
152+ kill -9 " $( pidof gpg-agent) " || true
153+ rm -rf " $HOME /.gnupg"
140154fi
141155
142156cat > $SOURCES_LIST /sources.list << EOF
@@ -191,15 +205,15 @@ if [[ -n "$NO_TURNKEY_APT_REPO" ]]; then
191205 find $SOURCES_LIST -type f -exec sed -i ' /archive.turnkeylinux.org/ s/^/#/g' {} \;
192206fi
193207
194- if [ -n " $PHP_VERSION " ]; then
208+ if [[ -n " $PHP_VERSION " ] ]; then
195209 # Use 3rd party sury.org repo
196210 # install support for https repo & wget (to download gpg key)
197- PKGS=" lsb-release ca-certificates wget"
211+ PKGS=( lsb-release ca-certificates wget)
198212 apt-get update --allow-releaseinfo-change
199- DEBIAN_FRONTEND=noninteractive apt-get install -y $ PKGS
213+ DEBIAN_FRONTEND=noninteractive apt-get install --yes " ${ PKGS[@]} "
200214
201215 # download keyfile
202- keyfile=/usr/share/keyrings/php-sury.org .gpg
216+ keyfile=/usr/share/keyrings/debsuryorg-archive-keyring .gpg
203217 wget -O $keyfile https://packages.sury.org/php/apt.gpg
204218
205219 cat > $SOURCES_LIST /php.list << EOF
0 commit comments