aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-08-06 10:52:23 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-08-06 10:52:23 +0000
commita012d00b55499a918f32a0ca8bd4ae2421178dfd (patch)
tree09b912cde6aa747c367f11233f1cc4e0f30faa5e
parent745fe99e8be2f889ff79a544dd6a314b69437258 (diff)
downloadmkinitfs-a012d00b55499a918f32a0ca8bd4ae2421178dfd.tar.bz2
mkinitfs-a012d00b55499a918f32a0ca8bd4ae2421178dfd.tar.xz
init: fixes for new apk behaviour
-rwxr-xr-xinitramfs-init.in28
1 files changed, 16 insertions, 12 deletions
diff --git a/initramfs-init.in b/initramfs-init.in
index 0b295f8..0ea081c 100755
--- a/initramfs-init.in
+++ b/initramfs-init.in
@@ -6,7 +6,7 @@ SINGLEMODE=no
sysroot=/sysroot
/bin/busybox mkdir -p /usr/bin /usr/sbin /proc /sys /dev $sysroot \
- /media/cdrom /media/floppy /media/usb
+ /media/cdrom /media/floppy /media/usb /tmp
/bin/busybox --install -s
# basic environment
@@ -313,10 +313,6 @@ else
rc_add savecache shutdown
fi
-# copy the apk keys to sysroot
-mkdir -p "$sysroot"/etc/apk/keys
-cp -r /etc/apk/keys/* "$sysroot"/etc/apk/keys/ 2>/dev/null
-
# let user override tmpfs size in fstab in apkovl
if [ -f $sysroot/etc/fstab ]; then
mountopts=$(awk '$2 == "/" && $3 == "tmpfs" { print $4 }' $sysroot/etc/fstab)
@@ -342,13 +338,21 @@ if [ -n "$new_mnt" ] && [ "$new_mnt" != "$ALPINE_MNT" ]; then
ALPINE_MNT="$new_mnt"
fi
-# generate apk repositories file
-mkdir -p /etc/apk
-repo_opt=
-for i in $(find $ALPINE_MNT -name 'APK*.gz' -type f -maxdepth 3 \
- | sed 's:/APK.*\.gz$::'); do
- repo_opt="$repo_opt --repo $i"
-done
+# copy keys so apk finds them. apk looks for stuff relative --root
+mkdir -p $sysroot/etc/apk/keys/
+cp -a /etc/apk/keys $sysroot/etc/apk
+
+# generate apk repositories file and --repo opt
+echo "$(find $ALPINE_MNT -name .boot_repository -type f -maxdepth 3 \
+ | sed 's:/.boot_repository$::')" > /tmp/repositories
+
+if [ ! -f $sysroot/etc/apk/repositories ]; then
+ mv /tmp/repositories $sysroot/etc/apk/
+else
+ for i in $(cat /tmp/repositories); do
+ repo_opt="$repo_opt --repo $i"
+ done
+fi
# install new root
ebegin "Installing packages to root filesystem"