summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/mkinitfs/APKBUILD3
-rw-r--r--main/mkinitfs/mkinitfs.trigger27
2 files changed, 27 insertions, 3 deletions
diff --git a/main/mkinitfs/APKBUILD b/main/mkinitfs/APKBUILD
index c7823c5f1..3666e533b 100644
--- a/main/mkinitfs/APKBUILD
+++ b/main/mkinitfs/APKBUILD
@@ -1,10 +1,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mkinitfs
pkgver=2.0_rc5
-pkgrel=0
+pkgrel=1
pkgdesc="Tool to generate initramfs images for Alpine"
url=http://git.alpinelinux.org/cgit/mkinitfs
depends="busybox"
+triggers="$pkgname.trigger:/usr/share/kernel/*"
source="http://git.alpinelinux.org/cgit/$pkgname/snapshot/$pkgname-$pkgver.tar.bz2
"
license="GPL-2"
diff --git a/main/mkinitfs/mkinitfs.trigger b/main/mkinitfs/mkinitfs.trigger
index be15f52f0..4117524c2 100644
--- a/main/mkinitfs/mkinitfs.trigger
+++ b/main/mkinitfs/mkinitfs.trigger
@@ -2,7 +2,30 @@
for i in "$@"; do
# get last element in path
- kver=${i##*/}
- mkinitfs $kver
+ flavor=${i##*/}
+ abi_release=$(cat "$i"/kernel.release)
+ initfs=initramfs-$abi_release
+ mkinitfs -o /boot/$initfs $abi_release
+ ln -sf $initfs /boot/initramfs-$flavor
+ ln -sf vmlinuz-$abi_release /boot/vmlinuz-$flavor
+
+ # extlinux will use path relative partition, so if /boot is on a
+ # separate partition we want /boot/<kernel> resolve to /<kernel>
+ ln -sf / /boot/boot
+
+ #this is for compat. to be removed eventually...
+ ln -sf vmlinuz-$flavor /boot/$flavor
+ ln -sf initramfs-$flavor /boot/$flavor.gz
+ ln -sf /boot/vmlinuz-$flavor /$flavor
+ ln -sf /boot/initramfs-$flavor /$flavor.gz
+
+ # Update the /boot/extlinux.conf to point to correct kernel
+ f=/boot/extlinux.conf
+ if [ -f $f ] && grep -q -- "kernel /$flavor" $f; then
+ sed -i -e "s:kernel /$flavor:kernel /boot/vmlinuz-$flavor:" \
+ -e "s:initrd=/$flavor.gz:initrd=/boot/initramfs-$flavor:" \
+ -e "s:initrd /$flavor.gz:initrd /boot/initramfs-$flavor:" \
+ $f
+ fi
done