[oe] [PATCH] update-rc.d: make update-rc.d local
Koen Kooi
k.kooi at student.utwente.nl
Mon Nov 22 08:50:21 UTC 2010
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 20-11-10 21:26, Frans Meulenbroeks wrote:
> the recipe did not build any more as handhelds.org is gone.
> Since this one is fairly crucial as lots of recipes depend on it
> I decided to put the update-rc.d file in update-rc.d/ instead of
> fetching it.
If it's local, why are you still patching it in the recipe?
>
> While at it als renamed files to update-rc.d
>
> Signed-off-by: Frans Meulenbroeks <fransmeulenbroeks at gmail.com>
> ---
> recipes/update-rc.d/files/add-verbose.patch | 47 -----
> recipes/update-rc.d/update-rc.d/add-verbose.patch | 47 +++++
> recipes/update-rc.d/update-rc.d/update-rc.d | 231 +++++++++++++++++++++
> recipes/update-rc.d/update-rc.d_0.7.bb | 7 +-
> 4 files changed, 282 insertions(+), 50 deletions(-)
> delete mode 100644 recipes/update-rc.d/files/add-verbose.patch
> create mode 100644 recipes/update-rc.d/update-rc.d/add-verbose.patch
> create mode 100644 recipes/update-rc.d/update-rc.d/update-rc.d
>
> diff --git a/recipes/update-rc.d/files/add-verbose.patch b/recipes/update-rc.d/files/add-verbose.patch
> deleted file mode 100644
> index 0f06830..0000000
> --- a/recipes/update-rc.d/files/add-verbose.patch
> +++ /dev/null
> @@ -1,47 +0,0 @@
> ---- 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/recipes/update-rc.d/update-rc.d/add-verbose.patch b/recipes/update-rc.d/update-rc.d/add-verbose.patch
> new file mode 100644
> index 0000000..0f06830
> --- /dev/null
> +++ b/recipes/update-rc.d/update-rc.d/add-verbose.patch
> @@ -0,0 +1,47 @@
> +--- 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/recipes/update-rc.d/update-rc.d/update-rc.d b/recipes/update-rc.d/update-rc.d/update-rc.d
> new file mode 100644
> index 0000000..ec50d15
> --- /dev/null
> +++ b/recipes/update-rc.d/update-rc.d/update-rc.d
> @@ -0,0 +1,231 @@
> +#!/bin/sh
> +#
> +# update-rc.d Update the links in /etc/rc[0-9S].d/
> +#
> +# (c) 2003, 2004 Phil Blundell <pb at handhelds.org>
> +#
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation; either version 2, or (at your option)
> +# any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +
> +initd="/etc/init.d"
> +etcd="/etc/rc"
> +notreally=0
> +force=0
> +dostart=0
> +
> +usage()
> +{
> + cat >&2 <<EOF
> +usage: update-rc.d [-n] [-f] [-r <root>] <basename> remove
> + update-rc.d [-n] [-r <root>] [-s] <basename> defaults [NN | sNN kNN]
> + update-rc.d [-n] [-r <root>] [-s] <basename> start|stop NN runlvl [runlvl] [...] .
> + -n: not really
> + -f: force
> + -r: alternate root path (default is /)
> + -s: invoke start methods if appropriate to current runlevel
> +EOF
> +}
> +
> +checklinks()
> +{
> + local i dn fn remove=0
> + if [ "x$1" = "xremove" ]; then
> + echo " Removing any system startup links for $bn ..."
> + remove=1
> + fi
> +
> + for i in 0 1 2 3 4 5 6 7 8 9 S; do
> + dn="${etcd}${i}.d"
> + if [ ! -d $dn ]; then
> + continue;
> + fi
> + for f in ${dn}/[SK]??${bn}; do
> + if [ -L $f ]; then
> + if [ $remove -eq 0 ]; then
> + return 1
> + fi
> + echo " $f"
> + if [ $notreally -eq 1 ]; then
> + continue
> + fi
> + rm $f
> + fi
> + done
> + done
> +
> + return 0
> +}
> +
> +dolink()
> +{
> + startstop=$1
> + lev=`echo $2 | cut -d/ -f1`
> + nn=`echo $2 | cut -d/ -f2`
> + fn="${etcd}${lev}.d/${startstop}${nn}${bn}"
> + echo " $fn -> ../init.d/$bn"
> + if [ $notreally -eq 0 ]; then
> + mkdir -p `dirname $fn`
> + ln -s ../init.d/$bn $fn
> + fi
> + if [ $dostart -eq 1 ] && [ $startstop = "S" ] && [ $lev = $RUNLEVEL ]; then
> + $fn start || true
> + fi
> +}
> +
> +makelinks()
> +{
> + if ! checklinks; then
> + echo " System startup links for $initd/$bn already exist."
> + if [ $dostart -eq 1 ] && [ $notreally -eq 0 ] && [ -L ${etcd}${RUNLEVEL}.d/S??${bn} ]; then
> + ${etcd}${RUNLEVEL}.d/S??${bn} restart || true
> + fi
> + exit 0
> + fi
> +
> + echo " Adding system startup for $initd/$bn ..."
> +
> + for i in $startlinks; do
> + dolink S $i
> + done
> + for i in $stoplinks; do
> + dolink K $i
> + done
> +}
> +
> +while [ $# -gt 0 ]; do
> + case $1 in
> + -n) notreally=1
> + shift
> + continue
> + ;;
> + -f) force=1
> + shift
> + continue
> + ;;
> + -s) dostart=1
> + shift
> + continue
> + ;;
> + -r) shift
> + root=$1
> + initd="${root}${initd}"
> + etcd="${root}${etcd}"
> + shift
> + ;;
> + -h | --help)
> + usage
> + exit 0
> + ;;
> + -*)
> + usage
> + exit 1
> + ;;
> + *)
> + break
> + ;;
> + esac
> +done
> +
> +if [ $# -lt 2 ]; then
> + usage
> + exit 1
> +fi
> +
> +bn=$1
> +shift
> +
> +if [ $1 != "remove" ]; then
> + if [ ! -f "$initd/$bn" ]; then
> + echo "update-rc.d: $initd/$bn: file does not exist" >&2
> + exit 1
> + fi
> +else
> + if [ -f "$initd/$bn" ]; then
> + if [ $force -eq 1 ]; then
> + echo "update-rc.d: $initd/$bn exists during rc.d purge (continuing)" >&2
> + else
> + echo "update-rc.d: $initd/$bn exists during rc.d purge (use -f to force)" >&2
> + exit 1
> + fi
> + fi
> +fi
> +
> +if [ $dostart -eq 1 ]; then
> + #RUNLEVEL=`sed 's/.*\[\(.*\)\]/\1/' < /proc/1/cmdline`
> + RUNLEVEL=`runlevel | cut -d" " -f2`
> + if [ "x$RUNLEVEL" = "x" ]; then
> + echo "Unable to determine current runlevel" >&2
> + exit 1
> + fi
> +fi
> +
> +case $1 in
> + remove)
> + checklinks "remove"
> + ;;
> +
> + defaults)
> + if [ $# -gt 3 ]; then
> + echo "defaults takes only one or two arguments" >&2
> + usage
> + exit 1
> + fi
> + start=20
> + stop=20
> + if [ $# -gt 1 ]; then
> + start=$2
> + stop=$2
> + fi
> + if [ $# -gt 2 ]; then
> + stop=$3
> + fi
> + start=`printf %02d $start`
> + stop=`printf %02d $stop`
> + stoplinks="0/$stop 1/$stop 6/$stop"
> + startlinks="2/$start 3/$start 4/$start 5/$start"
> + makelinks
> + ;;
> +
> + start | stop)
> + while [ $# -gt 0 ]; do
> + if [ $1 = "start" ]; then
> + letter=S
> + elif [ $1 = "stop" ]; then
> + letter=K
> + else
> + echo "expected start or stop" >&2
> + usage
> + exit 1
> + fi
> + shift
> + NN=`printf %02d $1`
> + shift
> + while [ "x$1" != "x." ]; do
> + if [ $# -eq 0 ]; then
> + echo "action with list of runlevels not terminated by \`.'" >&2
> + exit 1
> + fi
> + level=$1
> + shift
> + case $letter in
> + S) startlinks="$startlinks $level/$NN" ;;
> + K) stoplinks="$stoplinks $level/$NN" ;;
> + esac
> + done
> + shift
> + done
> + makelinks
> + ;;
> +
> + *)
> + usage
> + exit 1
> + ;;
> +esac
> diff --git a/recipes/update-rc.d/update-rc.d_0.7.bb b/recipes/update-rc.d/update-rc.d_0.7.bb
> index b36b8ca..43ebd04 100644
> --- a/recipes/update-rc.d/update-rc.d_0.7.bb
> +++ b/recipes/update-rc.d/update-rc.d_0.7.bb
> @@ -2,13 +2,14 @@ SECTION = "base"
> PRIORITY = "standard"
> DESCRIPTION = "Manage symlinks in /etc/rcN.d"
> LICENSE = "GPLv2+"
> -S = "${WORKDIR}/update-rc.d"
> +S = "${WORKDIR}"
> +# S = "${WORKDIR}/update-rc.d"
> INHIBIT_DEFAULT_DEPS = "1"
> -PR = "r1"
> +PR = "r2"
>
> BBCLASSEXTEND = "native"
>
> -SRC_URI = "${HANDHELDS_CVS};module=apps/update-rc.d;tag=r0_7 \
> +SRC_URI = "file://update-rc.d \
> file://add-verbose.patch"
>
> PACKAGE_ARCH = "all"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
iD8DBQFM6i7NMkyGM64RGpERAlYCAJ9y0f7oLFE5gxZi9pbvQ+P8NCNPOQCgukWC
I6KRX7XYgJeIXjEitRxfgyg=
=npja
-----END PGP SIGNATURE-----
More information about the Openembedded-devel
mailing list