diff --git a/meta-3dr/recipes-networking/dnsmasq/files/add-verbose.patch b/meta-3dr/recipes-networking/dnsmasq/files/add-verbose.patch new file mode 100644 index 0000000..30bd3d5 --- /dev/null +++ b/meta-3dr/recipes-networking/dnsmasq/files/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 ] [-s] 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 \ No newline at end of file diff --git a/meta-3dr/recipes-networking/dnsmasq/files/check-if-symlinks-are-valid.patch b/meta-3dr/recipes-networking/dnsmasq/files/check-if-symlinks-are-valid.patch new file mode 100644 index 0000000..1fa387e --- /dev/null +++ b/meta-3dr/recipes-networking/dnsmasq/files/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 +Signed-off-by: Christopher Larson + +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 \ No newline at end of file diff --git a/meta-3dr/recipes-networking/dnsmasq/update-rc.d_0.7.bb b/meta-3dr/recipes-networking/dnsmasq/update-rc.d_0.7.bb new file mode 100644 index 0000000..6ec6f1a --- /dev/null +++ b/meta-3dr/recipes-networking/dnsmasq/update-rc.d_0.7.bb @@ -0,0 +1,30 @@ +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;protocol=http \ + file://add-verbose.patch \ + file://check-if-symlinks-are-valid.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"