diff options
Diffstat (limited to 'yocto-poky/meta/recipes-core/update-rc.d')
4 files changed, 167 insertions, 0 deletions
diff --git a/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d/add-verbose.patch b/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d/add-verbose.patch new file mode 100644 index 000000000..fb443ff15 --- /dev/null +++ b/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d/add-verbose.patch @@ -0,0 +1,49 @@ +Upstream-Status: Pending + +--- update-rc.d/update-rc.d.org 2005-01-03 00:30:47.000000000 +0200 ++++ update-rc.d/update-rc.d 2007-12-01 19:41:08.000000000 +0200 +@@ -19,6 +19,7 @@ + notreally=0 + force=0 + dostart=0 ++verbose=0 + + usage() + { +@@ -28,6 +29,7 @@ + update-rc.d [-n] [-r <root>] [-s] <basename> start|stop NN runlvl [runlvl] [...] . + -n: not really + -f: force ++ -v: verbose + -r: alternate root path (default is /) + -s: invoke start methods if appropriate to current runlevel + EOF +@@ -69,7 +71,7 @@ + lev=`echo $2 | cut -d/ -f1` + nn=`echo $2 | cut -d/ -f2` + fn="${etcd}${lev}.d/${startstop}${nn}${bn}" +- echo " $fn -> ../init.d/$bn" ++ [ $verbose -eq 1 ] && echo " $fn -> ../init.d/$bn" + if [ $notreally -eq 0 ]; then + mkdir -p `dirname $fn` + ln -s ../init.d/$bn $fn +@@ -89,7 +91,7 @@ + exit 0 + fi + +- echo " Adding system startup for $initd/$bn ..." ++ echo " Adding system startup for $initd/$bn." + + for i in $startlinks; do + dolink S $i +@@ -105,6 +107,10 @@ + shift + continue + ;; ++ -v) verbose=1 ++ shift ++ continue ++ ;; + -f) force=1 + shift + continue diff --git a/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d/check-if-symlinks-are-valid.patch b/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d/check-if-symlinks-are-valid.patch new file mode 100644 index 000000000..075171a5a --- /dev/null +++ b/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d/check-if-symlinks-are-valid.patch @@ -0,0 +1,59 @@ +Check if symlinks are valid + +When using root option and $initd/$bn is a symlink, the script would fail because +the symlink points to a path on target. For example: + +/path/to/target/rootfs/etc/init.d/syslog -> /etc/init.d/syslog.busybox + +Hence, [ -f /path/to/target/rootfs/etc/init.d/syslog ] condition would return +false. + +This patch adds the posibility to check whether the file the symlink points to +actually exists in rootfs path and then continue. + +Upstream-Status: Pending + +Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> +Signed-off-by: Christopher Larson <chris_larson@mentor.com> + +Index: git/update-rc.d +=================================================================== +--- git.orig/update-rc.d ++++ git/update-rc.d +@@ -147,13 +147,34 @@ fi + bn=$1 + shift + ++sn=$initd/$bn ++if [ -L "$sn" -a -n "$root" ]; then ++ if which readlink >/dev/null; then ++ while true; do ++ linksn="$(readlink "$sn")" ++ if [ -z "$linksn" ]; then ++ break ++ fi ++ ++ sn="$linksn" ++ case "$sn" in ++ /*) sn="$root$sn" ;; ++ *) sn="$initd/$sn" ;; ++ esac ++ done ++ else ++ echo "update-rc.d: readlink tool not present, cannot check whether \ ++ $sn symlink points to a valid file." >&2 ++ fi ++fi ++ + if [ $1 != "remove" ]; then +- if [ ! -f "$initd/$bn" ]; then ++ if [ ! -f "$sn" ]; then + echo "update-rc.d: $initd/$bn: file does not exist" >&2 + exit 1 + fi + else +- if [ -f "$initd/$bn" ]; then ++ if [ -f "$sn" ]; then + if [ $force -eq 1 ]; then + echo "update-rc.d: $initd/$bn exists during rc.d purge (continuing)" >&2 + else diff --git a/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d/fix-to-handle-priority-numbers-correctly.patch b/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d/fix-to-handle-priority-numbers-correctly.patch new file mode 100644 index 000000000..85bc234a2 --- /dev/null +++ b/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d/fix-to-handle-priority-numbers-correctly.patch @@ -0,0 +1,28 @@ +Upstream-Status: Pending + +Fix to handle priority numbers correctly. +Previously, if the priority number is '08' or '09', for example, +the script cannot handle them correctly as these numbers are treated +as octal numbers. + +Signed-off-by: Chen Qi <Qi.Chen@windriver.com> +--- + update-rc.d | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/update-rc.d b/update-rc.d +index ec50d15..c70b859 100644 +--- a/update-rc.d ++++ b/update-rc.d +@@ -205,7 +205,7 @@ case $1 in + exit 1 + fi + shift +- NN=`printf %02d $1` ++ NN=`printf %02d $(expr $1 + 0)` + shift + while [ "x$1" != "x." ]; do + if [ $# -eq 0 ]; then +-- +1.7.9.5 + diff --git a/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb b/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb new file mode 100644 index 000000000..c15cb7803 --- /dev/null +++ b/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb @@ -0,0 +1,31 @@ +SUMMARY = "manage symlinks in /etc/rcN.d" +DESCRIPTION = "update-rc.d is a utilities that allows the management of symlinks to the initscripts in the /etc/rcN.d directory structure." +SECTION = "base" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://update-rc.d;beginline=5;endline=15;md5=148a48321b10eb37c1fa3ee02b940a75" + +PR = "r5" + +# Revision corresponding to tag update-rc.d_0.7 +SRCREV = "eca680ddf28d024954895f59a241a622dd575c11" + +SRC_URI = "git://github.com/philb/update-rc.d.git \ + file://add-verbose.patch \ + file://check-if-symlinks-are-valid.patch \ + file://fix-to-handle-priority-numbers-correctly.patch \ + " + +S = "${WORKDIR}/git" + +inherit allarch + +do_compile() { +} + +do_install() { + install -d ${D}${sbindir} + install -m 0755 ${S}/update-rc.d ${D}${sbindir}/update-rc.d +} + +BBCLASSEXTEND = "native" |