summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/update-rc.d
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core/update-rc.d')
-rw-r--r--meta/recipes-core/update-rc.d/update-rc.d/add-verbose.patch49
-rw-r--r--meta/recipes-core/update-rc.d/update-rc.d/check-if-symlinks-are-valid.patch59
-rw-r--r--meta/recipes-core/update-rc.d/update-rc.d_0.7.bb30
3 files changed, 138 insertions, 0 deletions
diff --git a/meta/recipes-core/update-rc.d/update-rc.d/add-verbose.patch b/meta/recipes-core/update-rc.d/update-rc.d/add-verbose.patch
new file mode 100644
index 0000000000..fb443ff15e
--- /dev/null
+++ b/meta/recipes-core/update-rc.d/update-rc.d/add-verbose.patch
@@ -0,0 +1,49 @@
1Upstream-Status: Pending
2
3--- update-rc.d/update-rc.d.org 2005-01-03 00:30:47.000000000 +0200
4+++ update-rc.d/update-rc.d 2007-12-01 19:41:08.000000000 +0200
5@@ -19,6 +19,7 @@
6 notreally=0
7 force=0
8 dostart=0
9+verbose=0
10
11 usage()
12 {
13@@ -28,6 +29,7 @@
14 update-rc.d [-n] [-r <root>] [-s] <basename> start|stop NN runlvl [runlvl] [...] .
15 -n: not really
16 -f: force
17+ -v: verbose
18 -r: alternate root path (default is /)
19 -s: invoke start methods if appropriate to current runlevel
20 EOF
21@@ -69,7 +71,7 @@
22 lev=`echo $2 | cut -d/ -f1`
23 nn=`echo $2 | cut -d/ -f2`
24 fn="${etcd}${lev}.d/${startstop}${nn}${bn}"
25- echo " $fn -> ../init.d/$bn"
26+ [ $verbose -eq 1 ] && echo " $fn -> ../init.d/$bn"
27 if [ $notreally -eq 0 ]; then
28 mkdir -p `dirname $fn`
29 ln -s ../init.d/$bn $fn
30@@ -89,7 +91,7 @@
31 exit 0
32 fi
33
34- echo " Adding system startup for $initd/$bn ..."
35+ echo " Adding system startup for $initd/$bn."
36
37 for i in $startlinks; do
38 dolink S $i
39@@ -105,6 +107,10 @@
40 shift
41 continue
42 ;;
43+ -v) verbose=1
44+ shift
45+ continue
46+ ;;
47 -f) force=1
48 shift
49 continue
diff --git a/meta/recipes-core/update-rc.d/update-rc.d/check-if-symlinks-are-valid.patch b/meta/recipes-core/update-rc.d/update-rc.d/check-if-symlinks-are-valid.patch
new file mode 100644
index 0000000000..075171a5a3
--- /dev/null
+++ b/meta/recipes-core/update-rc.d/update-rc.d/check-if-symlinks-are-valid.patch
@@ -0,0 +1,59 @@
1Check if symlinks are valid
2
3When using root option and $initd/$bn is a symlink, the script would fail because
4the symlink points to a path on target. For example:
5
6/path/to/target/rootfs/etc/init.d/syslog -> /etc/init.d/syslog.busybox
7
8Hence, [ -f /path/to/target/rootfs/etc/init.d/syslog ] condition would return
9false.
10
11This patch adds the posibility to check whether the file the symlink points to
12actually exists in rootfs path and then continue.
13
14Upstream-Status: Pending
15
16Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
17Signed-off-by: Christopher Larson <chris_larson@mentor.com>
18
19Index: git/update-rc.d
20===================================================================
21--- git.orig/update-rc.d
22+++ git/update-rc.d
23@@ -147,13 +147,34 @@ fi
24 bn=$1
25 shift
26
27+sn=$initd/$bn
28+if [ -L "$sn" -a -n "$root" ]; then
29+ if which readlink >/dev/null; then
30+ while true; do
31+ linksn="$(readlink "$sn")"
32+ if [ -z "$linksn" ]; then
33+ break
34+ fi
35+
36+ sn="$linksn"
37+ case "$sn" in
38+ /*) sn="$root$sn" ;;
39+ *) sn="$initd/$sn" ;;
40+ esac
41+ done
42+ else
43+ echo "update-rc.d: readlink tool not present, cannot check whether \
44+ $sn symlink points to a valid file." >&2
45+ fi
46+fi
47+
48 if [ $1 != "remove" ]; then
49- if [ ! -f "$initd/$bn" ]; then
50+ if [ ! -f "$sn" ]; then
51 echo "update-rc.d: $initd/$bn: file does not exist" >&2
52 exit 1
53 fi
54 else
55- if [ -f "$initd/$bn" ]; then
56+ if [ -f "$sn" ]; then
57 if [ $force -eq 1 ]; then
58 echo "update-rc.d: $initd/$bn exists during rc.d purge (continuing)" >&2
59 else
diff --git a/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb b/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb
new file mode 100644
index 0000000000..50dcaa2d3f
--- /dev/null
+++ b/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb
@@ -0,0 +1,30 @@
1SUMMARY = "manage symlinks in /etc/rcN.d"
2DESCRIPTION = "update-rc.d is a utilities that allows the management of symlinks to the initscripts in the /etc/rcN.d directory structure."
3SECTION = "base"
4
5LICENSE = "GPLv2+"
6LIC_FILES_CHKSUM = "file://update-rc.d;beginline=5;endline=15;md5=148a48321b10eb37c1fa3ee02b940a75"
7
8PR = "r5"
9
10# Revision corresponding to tag update-rc.d_0.7
11SRCREV = "eca680ddf28d024954895f59a241a622dd575c11"
12
13SRC_URI = "git://github.com/philb/update-rc.d.git \
14 file://add-verbose.patch \
15 file://check-if-symlinks-are-valid.patch \
16 "
17
18S = "${WORKDIR}/git"
19
20inherit allarch
21
22do_compile() {
23}
24
25do_install() {
26 install -d ${D}${sbindir}
27 install -m 0755 ${S}/update-rc.d ${D}${sbindir}/update-rc.d
28}
29
30BBCLASSEXTEND = "native"