From d2e712f832cc81db8e35c964991ea3bab7a4b0f0 Mon Sep 17 00:00:00 2001 From: William Hubbs Date: Sat, 28 Dec 2013 21:56:12 -0600 Subject: Move code from dev-root-link helper to udev init script This code should only be run by the udev init script, so let's put it inside the script instead of making it a helper. X-Gentoo-Bug: 495086 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=495086 --- Makefile | 1 - helpers/dev-root-link.sh | 22 ---------------------- init.d/udev | 19 ++++++++++++++++++- 3 files changed, 18 insertions(+), 24 deletions(-) delete mode 100644 helpers/dev-root-link.sh diff --git a/Makefile b/Makefile index d631832..b1739ed 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,6 @@ CONFD ?= $(SYSCONFDIR)/conf.d INITD ?= $(SYSCONFDIR)/init.d HELPERS = \ - helpers/dev-root-link.sh \ helpers/net.sh all: diff --git a/helpers/dev-root-link.sh b/helpers/dev-root-link.sh deleted file mode 100644 index b92c47e..0000000 --- a/helpers/dev-root-link.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -e -# -# dev-root-link.sh: create /dev/root symlink -# -# Distributed under the terms of the GNU General Public License v2 -# -# This is here because some software expects /dev/root to exist. -# For more information, see this bug: -# https://bugs.gentoo.org/show_bug.cgi?id=438380 - -RULESDIR=/run/udev/rules.d - -[ -d $RULESDIR ] || mkdir -p $RULESDIR - -eval $(udevadm info --export --export-prefix=ROOT_ --device-id-of-file=/ || true) - -[ "$ROOT_MAJOR" -a "$ROOT_MINOR" ] || exit 0 - -# btrfs filesystems have bogus major/minor numbers -[ "$ROOT_MAJOR" != 0 ] || exit 0 - -echo 'ACTION=="add|change", SUBSYSTEM=="block", ENV{MAJOR}=="'$ROOT_MAJOR'", ENV{MINOR}=="'$ROOT_MINOR'", SYMLINK+="root"' > $RULESDIR/61-dev-root-link.rules diff --git a/init.d/udev b/init.d/udev index 0e9abfe..c861338 100644 --- a/init.d/udev +++ b/init.d/udev @@ -93,11 +93,28 @@ start_udevmonitor() --background --exec /bin/udevadm -- monitor ${udev_monitor_opts} } +# This is here because some software expects /dev/root to exist. +# For more information, see this bug: +# https://bugs.gentoo.org/show_bug.cgi?id=438380 +dev_root_link() +{ + local RULESDIR=/run/udev/rules.d + [ -d $RULESDIR ] || mkdir -p $RULESDIR + eval $(udevadm info --export --export-prefix=ROOT_ --device-id-of-file=/ || + true) + [ "$ROOT_MAJOR" -a "$ROOT_MINOR" ] || return 0 + + # btrfs filesystems have bogus major/minor numbers + [ "$ROOT_MAJOR" != 0 ] || return 0 + + echo 'ACTION=="add|change", SUBSYSTEM=="block", ENV{MAJOR}=="'$ROOT_MAJOR'", ENV{MINOR}=="'$ROOT_MINOR'", SYMLINK+="root"' > $RULESDIR/61-dev-root-link.rules +} + populate_dev() { if yesno ${rc_dev_root_symlink:-yes}; then ebegin "Generating a rule to create a /dev/root symlink" - /lib/udev/dev-root-link.sh + dev_root_link eend $? fi -- cgit v1.2.3-65-gdbad