Skip to content

Commit 3391757

Browse files
committed
Improved Arch Linux bootstrap
1 parent ac7f7b5 commit 3391757

File tree

2 files changed

+12
-24
lines changed

2 files changed

+12
-24
lines changed

include/bootstrap/alpine/deploy.sh

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,9 @@ do_install()
3333

3434
msg ":: Installing ${COMPONENT} ... "
3535

36-
local repo_url="${SOURCE_PATH%/}/${SUITE}"
37-
38-
msg "URL: ${repo_url}"
39-
4036
msg -n "Retrieving rootfs archive ... "
41-
local rootfs_name=$(wget -q -O - "${repo_url}/releases/${ARCH}/latest-releases.yaml" | grep "file: alpine-minirootfs" | awk '{print $2}')
37+
local repo_url="${SOURCE_PATH%/}/${SUITE}"
38+
local rootfs_name=$(wget -q -O - "${repo_url}/releases/${ARCH}/latest-releases.yaml" | grep -m1 "file: alpine-minirootfs" | awk '{print $2}')
4239
wget -q -O - "${repo_url}/releases/${ARCH}/${rootfs_name}" | tar xz -C "${CHROOT_DIR}"
4340
is_ok "fail" "done" || return 1
4441

include/bootstrap/archlinux/deploy.sh

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -55,31 +55,27 @@ do_install()
5555

5656
msg ":: Installing ${COMPONENT} ... "
5757

58-
local base_packages="filesystem acl archlinux-keyring attr bash bzip2 ca-certificates ca-certificates-mozilla ca-certificates-utils coreutils cracklib curl db e2fsprogs expat findutils gcc-libs gdbm glib2 glibc gmp gnupg gnutls gpgme iana-etc keyutils krb5 libarchive libassuan libcap libffi libgcrypt libgpg-error libidn libidn2 libksba libldap libnghttp2 libpsl libsasl libsecret libssh2 systemd-libs libtasn1 libtirpc libunistring libutil-linux linux-api-headers lz4 ncurses nettle npth openssl p11-kit pacman pacman-mirrorlist pam pambase pcre perl pinentry readline shadow sqlite sudo tzdata util-linux which xz zlib zstd"
59-
58+
local repo_url
6059
case "$(get_platform ${ARCH})" in
61-
x86_64) local repo_url="${SOURCE_PATH%/}/core/os/${ARCH}" ;;
62-
arm*|x86) local repo_url="${SOURCE_PATH%/}/${ARCH}/core" ;;
60+
x86_64) repo_url="${SOURCE_PATH%/}/core/os/${ARCH}" ;;
61+
arm*|x86) repo_url="${SOURCE_PATH%/}/${ARCH}/core" ;;
6362
*) return 1 ;;
6463
esac
6564

66-
msg "URL: ${repo_url}"
67-
6865
msg -n "Preparing for deployment ... "
6966
local cache_dir="${CHROOT_DIR}/var/cache/pacman/pkg"
7067
mkdir -p "${cache_dir}"
7168
is_ok "fail" "done" || return 1
7269

7370
msg -n "Retrieving packages list ... "
74-
local pkg_list=$(wget -q -O - "${repo_url}/" | sed -n '/<a / s/^.*<a [^>]*href="\([^\"]*\)".*$/\1/p' | awk -F'/' '{print $NF}' | sort -rn)
71+
local core_files=$(wget -q -O - "${repo_url}/core.db.tar.gz" | tar xOz | grep '.pkg.tar.xz$' | grep -v -e '^linux-' -e '^grub-' -e '^efibootmgr-' -e '^gcc-' -e '^openssh-' | sort)
7572
is_ok "fail" "done" || return 1
7673

77-
msg "Retrieving base packages: "
78-
for package in ${base_packages}
74+
msg "Retrieving core packages: "
75+
local fs_file=$(echo ${core_files} | grep -m1 '^filesystem-')
76+
for pkg_file in ${fs_file} ${core_files}
7977
do
80-
msg -n "${package} ... "
81-
local pkg_file=$(echo "${pkg_list}" | grep -m1 -e "^${package}-[[:digit:]].*\.xz$" -e "^${package}-[[:digit:]].*\.gz$")
82-
test "${pkg_file}"; is_ok "fail" || return 1
78+
msg -n "${pkg_file%-*} ... "
8379
# download
8480
local i
8581
for i in 1 2 3
@@ -88,12 +84,7 @@ do_install()
8884
sleep 30s
8985
done
9086
# unpack
91-
case "${pkg_file}" in
92-
*gz) tar xzf "${cache_dir}/${pkg_file}" -C "${CHROOT_DIR}" --exclude='./dev' --exclude='./sys' --exclude='./proc' --exclude='.INSTALL' --exclude='.MTREE' --exclude='.PKGINFO';;
93-
*bz2) tar xjf "${cache_dir}/${pkg_file}" -C "${CHROOT_DIR}" --exclude='./dev' --exclude='./sys' --exclude='./proc' --exclude='.INSTALL' --exclude='.MTREE' --exclude='.PKGINFO';;
94-
*xz) tar xJf "${cache_dir}/${pkg_file}" -C "${CHROOT_DIR}" --exclude='./dev' --exclude='./sys' --exclude='./proc' --exclude='.INSTALL' --exclude='.MTREE' --exclude='.PKGINFO';;
95-
*) msg "fail"; return 1;;
96-
esac
87+
tar xJf "${cache_dir}/${pkg_file}" -C "${CHROOT_DIR}" --exclude='./dev' --exclude='./sys' --exclude='./proc' --exclude='.INSTALL' --exclude='.MTREE' --exclude='.PKGINFO'
9788
is_ok "fail" "done" || return 1
9889
done
9990

@@ -104,7 +95,7 @@ do_install()
10495
is_ok "fail" "done"
10596

10697
msg "Installing base packages: "
107-
pacman_install base ${base_packages}
98+
pacman_install base $(echo ${core_files} | sed 's/-[0-9].*$//')
10899
is_ok || return 1
109100

110101
msg -n "Clearing cache ... "

0 commit comments

Comments
 (0)