Codebase list openrc / a937760
Allow non-sh init.d shebang Thomas Goirand 10 years ago
2 changed file(s) with 17 addition(s) and 9 deletion(s). Raw diff Collapse all Expand all
55 - 0130-option-rc_loopsolver_warnings.patch
66 - 0140-loopsolver-doubleprint-fix.patch
77 * New version of the lsb2rcconf (LSB header support) patch.
8 * Allow non-sh shebang in init.d scripts.
89
910 -- Thomas Goirand <zigo@debian.org> Sun, 09 Feb 2014 17:34:25 +0800
1011
88
99 --- a/sh/gendepends.sh.in
1010 +++ b/sh/gendepends.sh.in
11 @@ -51,12 +51,14 @@
11 @@ -51,12 +51,14 @@ do
1212 for RC_SERVICE in *; do
1313 [ -x "$RC_SERVICE" -a -f "$RC_SERVICE" ] || continue
1414
2424 continue
2525 unset one two three
2626
27 @@ -83,10 +85,13 @@
27 @@ -83,10 +85,13 @@ do
2828
2929 [ -e @SYSCONFDIR@/rc.conf ] && . @SYSCONFDIR@/rc.conf
3030
4343 done
4444 --- a/sh/runscript.sh.in
4545 +++ b/sh/runscript.sh.in
46 @@ -223,28 +223,33 @@
46 @@ -223,28 +223,33 @@ fi
4747 cgroup_set_limits
4848
4949 # Load our script
9898 fi
9999
100100 while [ -n "$1" ]; do
101 @@ -258,7 +263,12 @@
101 @@ -258,7 +263,19 @@ while [ -n "$1" ]; do
102102 _depend
103103 cd /
104104 continue
105105 + elif [ -n "${lsbh}" ]; then
106 + . "${RC_SERVICE}"
106 + export CHILD=$((CHILD+1))
107 + SHEllBANG=$(sed -n '1s/#!//p' "$RC_SERVICE")
108 + if [ ! -z "$(echo $SHEllBANG|grep /bin/sh)" -o $CHILD -eq 2 ]; then
109 + . "${RC_SERVICE}"
110 + else
111 + $SHEllBANG $0 "${RC_SERVICE}" $*
112 + exit 0
113 + fi
107114 + shift
108115 + continue
109116 fi
124131 SUBDIR+= tools
125132 --- a/src/librc/librc-depend.c
126133 +++ b/src/librc/librc-depend.c
127 @@ -1537,14 +1537,6 @@
134 @@ -1537,14 +1537,6 @@ rc_deptree_update(void)
128135 strcmp(depend, service) == 0)
129136 continue;
130137
141148 rc_stringlist_delete(deptype->services, depend + 1);
142149 --- a/src/librc/librc.c
143150 +++ b/src/librc/librc.c
144 @@ -91,13 +91,6 @@
151 @@ -91,13 +91,6 @@ ls_dir(const char *dir, int options)
145152 r = stat(file, &buf);
146153 if (r != 0)
147154 continue;
155162 }
156163 if (options & LS_DIR) {
157164 if (stat(d->d_name, &buf) == 0 &&
158 @@ -533,16 +526,6 @@
165 @@ -533,16 +526,6 @@ rc_service_exists(const char *service)
159166 errno = EINVAL;
160167 return false;
161168 }
248255 +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
249256 --- a/src/rc/rc-misc.c
250257 +++ b/src/rc/rc-misc.c
251 @@ -296,7 +296,7 @@
258 @@ -296,7 +296,7 @@ exec_service(const char *service, const
252259 sigprocmask(SIG_SETMASK, &old, NULL);
253260
254261 /* Safe to run now */