aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/openrc/APKBUILD11
-rw-r--r--main/openrc/modloop.initd16
2 files changed, 20 insertions, 7 deletions
diff --git a/main/openrc/APKBUILD b/main/openrc/APKBUILD
index 9432b935ec..6c5b1f8e03 100644
--- a/main/openrc/APKBUILD
+++ b/main/openrc/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=openrc
pkgver=0.6.1
-pkgrel=0
+pkgrel=1
pkgdesc="OpenRC manages the services, startup and shutdown of a host"
url="http://roy.marples.name/openrc"
license='BSD-2'
@@ -18,6 +18,7 @@ source="http://roy.marples.name/downloads/$pkgname/$pkgname-$pkgver.tar.bz2
modloop.initd
networking.initd
local.start
+ modloop.confd
"
prepare() {
@@ -49,7 +50,8 @@ package() {
j=${i##*/}
install -Dm755 $i "$pkgdir"/etc/init.d/${j%.initd}
done
-
+
+ install -D -m644 "$srcdir"/modloop.confd "$pkgdir"/etc/conf.d/modloop
install -Dm644 ../local.start "$pkgdir"/etc/conf.d/local.start
}
@@ -60,6 +62,7 @@ c32e15b0858eef708497e7ee6355a055 hostname.initd
b1e64885f301166df30be3e3cf5338ff hwdrivers.initd
33ca3e558c42cdd17adccbc7807298f7 keymaps.initd
098a1f16812f56fcb56eb6b6f0fa31f6 modules.initd
-4c69d1c6a84cbe0195496c14a757579b modloop.initd
+80b3989370c8bf5cf23e65cd924f9846 modloop.initd
c05fc2ea5d771ca68cbb8d91494c9a2b networking.initd
-0a615d93aab691364c03539c3b496dcc local.start"
+0a615d93aab691364c03539c3b496dcc local.start
+c1ec888202d868710b5749f7b217d1e3 modloop.confd"
diff --git a/main/openrc/modloop.initd b/main/openrc/modloop.initd
index cf46c98df0..3cb62732ee 100644
--- a/main/openrc/modloop.initd
+++ b/main/openrc/modloop.initd
@@ -63,10 +63,20 @@ start() {
fi
mkdir -p /.modloop /lib
- mount -o loop,ro -t cramfs $alpine_mnt/$modloop /.modloop &&\
- rm -rf /lib/modules &&\
- ln -sf /.modloop/modules /lib/
+ mount -o loop,ro -t cramfs $alpine_mnt/$modloop /.modloop
+
eend $? || return 1
+
+ #use unionfs is available and configured
+ if grep -q -w "unionfs$" /proc/filesystems && [ -n "$unionfs_size" ]; then
+ ebegin "UnionFS detected. Mounting modloop rw"
+ mkdir -p /.modunisonfs/modules /lib/modules
+ mount -t tmpfs -o size="$unionfs_size" tmpfs /.modunisonfs/modules
+ mount -t unionfs -o dirs=/.modunisonfs/modules=rw:/.modloop/modules=ro unionfs /lib/modules
+ eend $? || return 1
+ else
+ rm -rf /lib/modules && ln -sf /.modloop/modules /lib/
+ fi
# copy firmware if there are any
if [ -d $alpine_mnt/firmware ]; then