OpenRC: improve /run creation.

This commit is contained in:
Juan RP 2011-05-04 13:11:19 +02:00
parent ba2205d461
commit 548b8f1224
2 changed files with 20 additions and 41 deletions

View file

@ -12,8 +12,7 @@ xbps changes:
* The mtab service checks if / is of type rootfs and tmpfs, and don't add it * The mtab service checks if / is of type rootfs and tmpfs, and don't add it
into /etc/mtab, which is redundant. into /etc/mtab, which is redundant.
* mount_svcdir() doesn't mount any tmpfs or ramfs anymore, rather mounts an * mount_svcdir() doesn't mount any tmpfs or ramfs anymore, rather mounts an
tmpfs in /run and creates compat symlinks on it for /tmp, /dev/shm, /var/tmp, tmpfs in /run and creates a compat symlink for /dev/shm.
/var/lock, /var/run, etc.
* Backported a patch to skip unmounting the /run mountpoint from upstream * Backported a patch to skip unmounting the /run mountpoint from upstream
git repo (Gentoo). git repo (Gentoo).
@ -178,9 +177,9 @@ xbps changes:
; do ; do
set -- $x set -- $x
grep -Eq "[[:space:]]+$1$" /proc/filesystems || continue grep -Eq "[[:space:]]+$1$" /proc/filesystems || continue
--- sh/init.sh.Linux.in.orig 2011-04-29 22:12:20.648999920 +0200 --- sh/init.sh.Linux.in.orig 2011-02-10 06:15:24.000000000 +0100
+++ sh/init.sh.Linux.in 2011-04-29 22:15:20.159999881 +0200 +++ sh/init.sh.Linux.in 2011-05-04 13:03:07.481471247 +0200
@@ -3,59 +3,42 @@ @@ -3,59 +3,22 @@
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
@ -213,25 +212,8 @@ xbps changes:
- if [ $? -eq 0 ]; then - if [ $? -eq 0 ]; then
- svcdir_restorecon - svcdir_restorecon
- [ $? -eq 0 ] && return 0 - [ $? -eq 0 ] && return 0
+ # Mount /run as tmpfs. - fi
+ mount -t tmpfs -o mode=0755,nosuid,nodev tmpfs /run - fi
+ # Create required /run directories.
+ for d in init.d pid udev; do
+ mkdir -m0755 /run/${d}
+ done
+ for d in lock tmp shm; do
+ mkdir -m1777 /run/${d}
+ done
+
+ # Create /run compat symlinks.
+ if [ "$(readlink -f /lib/rc/init.d)" != "/run/init.d" ]; then
+ rm -rf /lib/rc/init.d
+ ln -sf /run/init.d /lib/rc/init.d
fi
+ if [ "$(readlink -f /tmp)" != "/run/tmp" ]; then
+ rm -rf /tmp
+ ln -sf /run/tmp /tmp
fi
- -
- if grep -Eq "[[:space:]]+ramfs$" /proc/filesystems; then - if grep -Eq "[[:space:]]+ramfs$" /proc/filesystems; then
- fs="ramfs" - fs="ramfs"
@ -248,26 +230,25 @@ xbps changes:
- eerror "compiled into the kernel" - eerror "compiled into the kernel"
- echo - echo
- return 1 - return 1
+ if [ "$(readlink -f /var/tmp)" != "/run/tmp" ]; then - fi
+ rm -rf /var/tmp + # Mount /run as tmpfs.
+ ln -sf /run/tmp /var/tmp + mount -t tmpfs -o mode=0755,nosuid,nodev tmpfs /run
fi
-
- mount -n -t "$fs" $fsopts rc-svcdir "$RC_SVCDIR" - mount -n -t "$fs" $fsopts rc-svcdir "$RC_SVCDIR"
- if [ $? -eq 0 ]; then - if [ $? -eq 0 ]; then
- svcdir_restorecon - svcdir_restorecon
- [ $? -eq 0 ] && return 0 - [ $? -eq 0 ] && return 0
+ for d in init.d pid udev; do
+ mkdir -m0755 /run/${d}
+ done
+ for d in lock tmp shm; do
+ mkdir -m1777 /run/${d}
+ done
+
+ # Create /dev/shm -> /run/shm compat symlink.
+ if [ "$(readlink -f /dev/shm)" != "/run/shm" ]; then + if [ "$(readlink -f /dev/shm)" != "/run/shm" ]; then
+ rm -rf /dev/shm + rm -rf /dev/shm
+ ln -sf /run/shm /dev/shm + ln -sf /run/shm /dev/shm
+ fi
+ if [ "$(readlink -f /var/run)" != "/run/pid" ]; then
+ rm -rf /var/run
+ ln -sf /run/pid /var/run
+ fi
+ if [ "$(readlink -f /var/lock)" != "/run/lock" ]; then
+ rm -rf /var/lock
+ ln -sf /run/lock /var/lock
fi fi
} }

View file

@ -1,7 +1,7 @@
# Template file for 'OpenRC' # Template file for 'OpenRC'
pkgname=OpenRC pkgname=OpenRC
version=20110211 version=20110211
revision=4 revision=5
wrksrc=openrc-${version} wrksrc=openrc-${version}
distfiles="http://xbps.nopcode.org/distfiles/openrc-$version.tar.bz2" distfiles="http://xbps.nopcode.org/distfiles/openrc-$version.tar.bz2"
build_style=custom-install build_style=custom-install
@ -45,9 +45,6 @@ _branding="XBPS GNU/Linux"
do_build() do_build()
{ {
# Use cmp(1) from diffutils.
export PATH="/usr/bin:$PATH"
# Install the "locale" service # Install the "locale" service
cp ${FILESDIR}/locale.rc ${wrksrc}/init.d/locale.in cp ${FILESDIR}/locale.rc ${wrksrc}/init.d/locale.in
@ -79,4 +76,5 @@ do_install()
chmod 755 ${DESTDIR}/lib/lib* chmod 755 ${DESTDIR}/lib/lib*
chmod 755 ${DESTDIR}/usr/lib/lib* chmod 755 ${DESTDIR}/usr/lib/lib*
rmdir ${DESTDIR}/lib/rc/init.d
} }