summaryrefslogtreecommitdiff
path: root/contrib/mkimage-arch.sh
diff options
context:
space:
mode:
authorStaf Wagemakers <staf@wagemakers.be>2019-05-01 12:17:04 +0200
committerStaf Wagemakers <staf@wagemakers.be>2019-05-01 12:17:04 +0200
commit74e3edc7d1f55b553ec099f99cc774d6d9e6548b (patch)
tree55157fbacd9f08a9c598edfe7e716b1ee378f1df /contrib/mkimage-arch.sh
parente516af6e5636023e85335ed8d9d0d824349dd6ff (diff)
downloaddocker-74e3edc7d1f55b553ec099f99cc774d6d9e6548b.tar.gz
Updated mkimage-arch.sh
* reset umask to 022 * introduced PKGREQUIRED * introduced PKGREMOVE - to be able to remove linux etc on Parabola GNU/Linux * updated PKGIGNORE - cryptsetup & device-mapper removed to not break the installation - added not required packages * force link /etc/localtime * install pacman-mirrorlist Signed-off-by: Staf Wagemakers <staf@wagemakers.be>
Diffstat (limited to 'contrib/mkimage-arch.sh')
-rwxr-xr-xcontrib/mkimage-arch.sh42
1 files changed, 35 insertions, 7 deletions
diff --git a/contrib/mkimage-arch.sh b/contrib/mkimage-arch.sh
index f941177122..53fd430fa6 100755
--- a/contrib/mkimage-arch.sh
+++ b/contrib/mkimage-arch.sh
@@ -4,6 +4,9 @@
# requires root
set -e
+# reset umask to default
+umask 022
+
hash pacstrap &>/dev/null || {
echo "Could not find pacstrap. Run pacman -S arch-install-scripts"
exit 1
@@ -14,20 +17,31 @@ hash expect &>/dev/null || {
exit 1
}
-
export LANG="C.UTF-8"
ROOTFS=$(mktemp -d ${TMPDIR:-/var/tmp}/rootfs-archlinux-XXXXXXXXXX)
chmod 755 $ROOTFS
+# required packages
+PKGREQUIRED=(
+ bash
+ haveged
+ pacman
+ pacman-mirrorlist
+)
+
# packages to ignore for space savings
PKGIGNORE=(
- cryptsetup
- device-mapper
dhcpcd
+ diffutils
+ file
+ inetutils
iproute2
+ iputils
jfsutils
+ licenses
linux
+ linux-firmware
lvm2
man-db
man-pages
@@ -37,16 +51,30 @@ PKGIGNORE=(
openresolv
pciutils
pcmciautils
+ psmisc
reiserfsprogs
s-nail
+ sysfsutils
systemd-sysvcompat
usbutils
vi
+ which
xfsprogs
)
+
+PKGREMOVE=(
+ gawk
+ haveged
+ less
+ linux-libre
+ linux-libre-firmware
+)
+
+PKGREQUIRED="${PKGREQUIRED[*]}"
IFS=','
PKGIGNORE="${PKGIGNORE[*]}"
unset IFS
+PKGREMOVE="${PKGREMOVE[*]}"
arch="$(uname -m)"
case "$arch" in
@@ -87,7 +115,7 @@ expect <<EOF
}
set timeout $EXPECT_TIMEOUT
- spawn pacstrap -C $PACMAN_CONF -c -d -G -i $ROOTFS base haveged $PACMAN_EXTRA_PKGS --ignore $PKGIGNORE
+ spawn pacstrap -C $PACMAN_CONF -c -d -G -i $ROOTFS base $PKGREQUIRED $PACMAN_EXTRA_PKGS --ignore $PKGIGNORE
expect {
-exact "anyway? \[Y/n\] " { send -- "n\r"; exp_continue }
-exact "(default=all): " { send -- "\r"; exp_continue }
@@ -97,11 +125,11 @@ expect <<EOF
EOF
arch-chroot $ROOTFS /bin/sh -c 'rm -r /usr/share/man/*'
-arch-chroot $ROOTFS /bin/sh -c "haveged -w 1024; pacman-key --init; pkill haveged; pacman -Rs --noconfirm haveged; pacman-key --populate $ARCH_KEYRING; pkill gpg-agent"
-arch-chroot $ROOTFS /bin/sh -c "ln -s /usr/share/zoneinfo/UTC /etc/localtime"
+arch-chroot $ROOTFS /bin/sh -c "haveged -w 1024; pacman-key --init; pkill haveged; pacman-key --populate $ARCH_KEYRING"
+arch-chroot $ROOTFS /bin/sh -c "ln -sf /usr/share/zoneinfo/UTC /etc/localtime"
+arch-chroot $ROOTFS /bin/sh -c "for pkg in $PKGREMOVE; do if pacman -Qi \$pkg > /dev/null 2>&1; then pacman -Rs --noconfirm \$pkg; fi; done"
echo 'en_US.UTF-8 UTF-8' > $ROOTFS/etc/locale.gen
arch-chroot $ROOTFS locale-gen
-arch-chroot $ROOTFS /bin/sh -c 'echo $PACMAN_MIRRORLIST > /etc/pacman.d/mirrorlist'
# udev doesn't work in containers, rebuild /dev
DEV=$ROOTFS/dev