summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kanavin <alex@linutronix.de>2025-01-08 09:42:09 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-01-14 11:57:52 +0000
commit46fb35a2a2159ae99976187d160dd1e542c1cdda (patch)
treea40484e9f50252df7fba5f120063a4be7c970c59
parent58bbcc3de42dff4e1c4edf6bf3f0f128050be8a2 (diff)
downloadpoky-46fb35a2a2159ae99976187d160dd1e542c1cdda.tar.gz
sysvinit: update 3.11 -> 3.13
Remove patches: install.patch (merged upstream) realpath.patch 0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch (musl fixes, no longer needed) pidof-add-m-option.patch (not a backport, not used in core, and isn't carried by either debian or fedora) (From OE-Core rev: 228e1fb5632061fccf58bec93b843e6d7a0827dd) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch50
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch27
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/install.patch79
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch193
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/realpath.patch61
-rw-r--r--meta/recipes-core/sysvinit/sysvinit_3.13.bb (renamed from meta/recipes-core/sysvinit/sysvinit_3.11.bb)6
6 files changed, 13 insertions, 403 deletions
diff --git a/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch b/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch
deleted file mode 100644
index 60fbd87534..0000000000
--- a/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch
+++ /dev/null
@@ -1,50 +0,0 @@
1From c710a3accd1fabdb671274e1a458405282d51e0c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 6 Aug 2018 15:38:58 -0700
4Subject: [PATCH] include sys/sysmacros.h for major/minor definitions
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7Upstream-Status: Pending
8
9---
10 src/bootlogd.c | 1 +
11 src/mountpoint.c | 1 +
12 src/shutdown.c | 1 +
13 3 files changed, 3 insertions(+)
14
15diff --git a/src/bootlogd.c b/src/bootlogd.c
16index 787db87..8b07903 100644
17--- a/src/bootlogd.c
18+++ b/src/bootlogd.c
19@@ -29,6 +29,7 @@
20 #include <sys/types.h>
21 #include <sys/time.h>
22 #include <sys/stat.h>
23+#include <sys/sysmacros.h>
24 #include <sys/ioctl.h>
25 #include <sys/utsname.h>
26 #include <time.h>
27diff --git a/src/mountpoint.c b/src/mountpoint.c
28index 5f20522..94df7a1 100644
29--- a/src/mountpoint.c
30+++ b/src/mountpoint.c
31@@ -25,6 +25,7 @@
32
33 #include <sys/types.h>
34 #include <sys/stat.h>
35+#include <sys/sysmacros.h>
36 #include <unistd.h>
37 #include <stdlib.h>
38 #include <string.h>
39diff --git a/src/shutdown.c b/src/shutdown.c
40index b744a2c..40b7faf 100644
41--- a/src/shutdown.c
42+++ b/src/shutdown.c
43@@ -40,6 +40,7 @@
44 #endif
45 #include <sys/types.h>
46 #include <sys/stat.h>
47+#include <sys/sysmacros.h>
48 #include <sys/wait.h>
49 #ifdef __linux__
50 #include <sys/sysmacros.h> /* brought in my LFS patch */
diff --git a/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch b/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
index 24c8182218..ece870c269 100644
--- a/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
+++ b/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
@@ -1,33 +1,33 @@
1From 49250c8e0ef563aafd5bbea62612f3d15fdee3af Mon Sep 17 00:00:00 2001 1From 19a8777c81bc451d65a4071528e4715e19941e0a Mon Sep 17 00:00:00 2001
2From: Jeff Dike <jdike@x86_64.user-mode-linux.org> 2From: Jeff Dike <jdike@x86_64.user-mode-linux.org>
3Date: Wed, 14 Jul 2010 14:35:52 -0400 3Date: Wed, 14 Jul 2010 14:35:52 -0400
4Subject: [PATCH] sysvinit - Remove sulogin dependency on /usr/lib*/libcrypt.a 4Subject: [PATCH] sysvinit - Remove sulogin dependency on /usr/lib*/libcrypt.a
5 5
6Upstream-Status: Inappropriate [configuration] 6The src Makefile was checking for libcrypt.a on the host, not in the
7build environment. This patch checks for $LCRYPT in the environment
8and uses it if it's there.
9jdike@linux.intel.com
7 10
8# The src Makefile was checking for libcrypt.a on the host, not in the 11Upstream-Status: Inappropriate [configuration]
9# build environment. This patch checks for $LCRYPT in the environment
10# and uses it if it's there.
11# - jdike@linux.intel.com
12--- 12---
13 src/Makefile | 12 ++---------- 13 src/Makefile | 12 ++----------
14 1 file changed, 2 insertions(+), 10 deletions(-) 14 1 file changed, 2 insertions(+), 10 deletions(-)
15 15
16diff --git a/src/Makefile b/src/Makefile 16diff --git a/src/Makefile b/src/Makefile
17index 0210171..f696247 100644 17index 4ce4889..1611c1c 100644
18--- a/src/Makefile 18--- a/src/Makefile
19+++ b/src/Makefile 19+++ b/src/Makefile
20@@ -101,16 +101,8 @@ endif 20@@ -97,16 +97,8 @@ else
21 21 SULOGINLIBS =
22 ROOT ?= $(DESTDIR) 22 endif
23 23
24-# Additional libs for GNU libc. 24-# Additional libs for GNU libc.
25-ifneq ($(wildcard $(ROOT)/usr/lib*/libcrypt.*),) 25-ifneq ($(wildcard $(ROOT)/$(usrdir)/lib*/libcrypt.*),)
26- SULOGINLIBS += -lcrypt 26- SULOGINLIBS += -lcrypt
27-endif 27-endif
28- 28-
29-# Additional libs for GNU libc / multiarch on Debian based systems. 29-# Additional libs for GNU libc / multiarch on Debian based systems.
30-ifneq ($(wildcard $(ROOT)/usr/lib/*/libcrypt.*),) 30-ifneq ($(wildcard $(ROOT)/$(usrdir)/lib/*/libcrypt.*),)
31-ifneq ($(findstring -lcrypt, $(SULOGINLIBS)), -lcrypt) 31-ifneq ($(findstring -lcrypt, $(SULOGINLIBS)), -lcrypt)
32- SULOGINLIBS += -lcrypt 32- SULOGINLIBS += -lcrypt
33-endif 33-endif
@@ -36,6 +36,3 @@ index 0210171..f696247 100644
36 endif 36 endif
37 37
38 all: $(BIN) $(SBIN) $(USRBIN) 38 all: $(BIN) $(SBIN) $(USRBIN)
39--
402.25.1
41
diff --git a/meta/recipes-core/sysvinit/sysvinit/install.patch b/meta/recipes-core/sysvinit/sysvinit/install.patch
deleted file mode 100644
index 4289c4eddc..0000000000
--- a/meta/recipes-core/sysvinit/sysvinit/install.patch
+++ /dev/null
@@ -1,79 +0,0 @@
1From f73a2c768687f3fed0ab570f47fa2157e5d4e586 Mon Sep 17 00:00:00 2001
2From: Qing He <qing.he@intel.com>
3Date: Fri, 18 Jun 2010 09:40:30 +0800
4Subject: [PATCH] sysvinit: upgrade to version 2.88dsf
5
6Upstream-Status: Submitted [https://github.com/slicer69/sysvinit/pull/13]
7---
8 src/Makefile | 37 ++++++++++++++++++++++---------------
9 1 file changed, 22 insertions(+), 15 deletions(-)
10
11diff --git a/src/Makefile b/src/Makefile
12index 21cbb2e..0210171 100644
13--- a/src/Makefile
14+++ b/src/Makefile
15@@ -80,7 +80,14 @@ else
16 INSTALL_DATA = install -m 644
17 endif
18 INSTALL_DIR = install -m 755 -d
19-MANDIR = /usr/share/man
20+
21+ROOT ?=
22+base_bindir ?= /bin
23+base_sbindir ?= /sbin
24+bindir ?= /usr/bin
25+sysconfdir ?= /etc
26+includedir ?= /usr/include
27+mandir ?= /usr/share/man
28
29 ifeq ($(WITH_SELINUX),yes)
30 SELINUX_DEF = -DWITH_SELINUX
31@@ -196,31 +203,31 @@ clobber: cleanobjs
32 distclean: clobber
33
34 install: all
35- $(INSTALL_DIR) $(ROOT)/bin/ $(ROOT)/sbin/
36- $(INSTALL_DIR) $(ROOT)/usr/bin/
37+ $(INSTALL_DIR) $(ROOT)$(base_bindir)/ $(ROOT)$(base_sbindir)/
38+ $(INSTALL_DIR) $(ROOT)$(bindir)/
39 for i in $(BIN); do \
40- $(INSTALL_EXEC) $$i $(ROOT)/bin/ ; \
41+ $(INSTALL_EXEC) $$i $(ROOT)$(base_bindir)/ ; \
42 done
43 for i in $(SBIN); do \
44- $(INSTALL_EXEC) $$i $(ROOT)/sbin/ ; \
45+ $(INSTALL_EXEC) $$i $(ROOT)$(base_sbindir)/ ; \
46 done
47 for i in $(USRBIN); do \
48- $(INSTALL_EXEC) $$i $(ROOT)/usr/bin/ ; \
49+ $(INSTALL_EXEC) $$i $(ROOT)$(bindir)/ ; \
50 done
51 # $(INSTALL_DIR) $(ROOT)/etc/
52 $(INSTALL_DIR) $(ROOT)/etc/inittab.d
53 # $(INSTALL_EXEC) ../doc/initscript.sample $(ROOT)/etc/
54- ln -sf halt $(ROOT)/sbin/reboot
55- ln -sf halt $(ROOT)/sbin/poweroff
56- ln -sf init $(ROOT)/sbin/telinit
57- ln -sf ../sbin/killall5 $(ROOT)/bin/pidof
58- if [ ! -f $(ROOT)/usr/bin/lastb ]; then \
59- ln -sf last $(ROOT)/usr/bin/lastb; \
60+ ln -sf halt $(ROOT)$(base_sbindir)/reboot
61+ ln -sf halt $(ROOT)$(base_sbindir)/poweroff
62+ ln -sf init $(ROOT)$(base_sbindir)/telinit
63+ ln -sf $(base_sbindir)/killall5 $(ROOT)$(base_bindir)/pidof
64+ if [ ! -f $(ROOT)$(bindir)/lastb ]; then \
65+ ln -sf last $(ROOT)$(bindir)/lastb; \
66 fi
67- $(INSTALL_DIR) $(ROOT)/usr/include/
68- $(INSTALL_DATA) initreq.h $(ROOT)/usr/include/
69+ $(INSTALL_DIR) $(ROOT)$(includedir)/
70+ $(INSTALL_DATA) initreq.h $(ROOT)$(includedir)/
71 for man in $(MANPAGES) ; do \
72- targetdir=$(ROOT)$(MANDIR)/$$(dirname $$man)/man$${man##*.}; \
73+ targetdir=$(ROOT)$(mandir)/$$(dirname $$man)/man$${man##*.}; \
74 $(INSTALL_DIR) $$targetdir; \
75 $(INSTALL_DATA) ../man/$$man $$targetdir/$$(basename $$man); \
76 sed -i "1{ $(MANDB); }" $$targetdir/$$(basename $$man); \
77--
782.25.1
79
diff --git a/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch b/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch
deleted file mode 100644
index 66da6fb403..0000000000
--- a/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch
+++ /dev/null
@@ -1,193 +0,0 @@
1From 2b19b36409b8de0621b9aeb0d13748e947a5bbfb Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Wed, 24 Jul 2013 17:07:22 +0800
4Subject: [PATCH] pidof: add -m option
5
6When used with -o, will also omit any processes that have the same
7argv[0] and argv[1] as any explicitly omitted process ids. This can be
8used to avoid multiple shell scripts concurrently calling pidof returning
9each other's pids.
10
11https://bugzilla.redhat.com/show_bug.cgi?id=883856
12
13Upstream-Status: Backport
14Imported patch from: https://bugzilla.redhat.com/attachment.cgi?id=658166
15
16Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
17---
18 man/pidof.8 | 6 +++++
19 src/killall5.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++---
20 2 files changed, 65 insertions(+), 3 deletions(-)
21
22diff --git a/man/pidof.8 b/man/pidof.8
23index 6866cb3..a87d878 100644
24--- a/man/pidof.8
25+++ b/man/pidof.8
26@@ -25,6 +25,7 @@ pidof - find the process ID of a running program
27 .RB [ \-n ]
28 .RB [ \-x ]
29 .RB [ \-z ]
30+.RB [ \-m ]
31 .RB [ \-o
32 .IR omitpid[,omitpid...] ]
33 .RB [ \-o
34@@ -77,6 +78,11 @@ is shown. The default separator is a space.
35 Tells \fIpidof\fP to omit processes with that process id. The special
36 pid \fB%PPID\fP can be used to name the parent process of the \fBpidof\fP
37 program, in other words the calling shell or shell script.
38+.IP -m
39+When used with -o, will also omit any processes that have the same
40+argv[0] and argv[1] as any explicitly omitted process ids. This can be
41+used to avoid multiple shell scripts concurrently calling pidof returning
42+each other's pids.
43 .SH "EXIT STATUS"
44 .TP
45 .B 0
46diff --git a/src/killall5.c b/src/killall5.c
47index 6f7528a..34d656b 100644
48--- a/src/killall5.c
49+++ b/src/killall5.c
50@@ -121,6 +121,7 @@ typedef struct _s_nfs
51
52 /* List of processes. */
53 PROC *plist = NULL;
54+PROC *olist = NULL;
55
56 /* List of processes to omit. */
57 OMIT *omit = NULL;
58@@ -356,6 +357,20 @@ static void clear_mnt(void)
59 }
60 }
61
62+static void clear_omit(void)
63+{
64+ OMIT *o;
65+ PROC *p;
66+ for (o = omit; o; o = omit) {
67+ omit = omit->next;
68+ free(o);
69+ }
70+ for (p = olist; p; p = olist) {
71+ olist = olist->next;
72+ free(p);
73+ }
74+}
75+
76 /*
77 * Check if path is a shadow off a NFS partition.
78 */
79@@ -481,6 +496,7 @@ int readproc()
80 DIR *dir;
81 FILE *fp;
82 PROC *p, *n;
83+ OMIT *o, *m;
84 struct dirent *d;
85 char path[PATH_MAX+1];
86 char buf[PATH_MAX+1];
87@@ -671,6 +687,17 @@ int readproc()
88 p->next = plist;
89 plist = p;
90 p->pid = pid;
91+ /* Could be smarter, but it's a small list. */
92+ m = omit;
93+ for (o = omit; m; o = m) {
94+ m = o->next;
95+ if (o->pid == p->pid) {
96+ n = (PROC*)xmalloc(sizeof(PROC));
97+ *n = *p;
98+ n->next = olist;
99+ olist = n;
100+ }
101+ }
102 }
103 closedir(dir);
104
105@@ -877,6 +904,26 @@ PIDQ_HEAD *pidof(char *prog)
106 return q;
107 }
108
109+int matches(PROC *o, PROC *p)
110+{
111+ int ret = 0;
112+ char *oargv1, *pargv1;
113+ if ((o->argv0 && p->argv0 && !strcmp(o->argv0,p->argv0))) {
114+ if (o->argv1 && p->argv1) {
115+ if ((oargv1 = canonicalize_file_name(o->argv1)) == NULL)
116+ oargv1 = strdup(o->argv1);
117+ if ((pargv1 = canonicalize_file_name(p->argv1)) == NULL)
118+ pargv1 = strdup(p->argv1);
119+ if (! strcmp(oargv1, pargv1)) {
120+ ret = 1;
121+ }
122+ free(oargv1);
123+ free(pargv1);
124+ }
125+ }
126+ return ret;
127+}
128+
129 /* Give usage message and exit. */
130 void usage(void)
131 {
132@@ -927,6 +974,7 @@ void nsyslog(int pri, char *fmt, ...)
133 #define PIDOF_OMIT 0x02
134 #define PIDOF_NETFS 0x04
135 #define PIDOF_QUIET 0x08
136+#define PIDOF_OMIT_OMIT_MATCHES 0x08
137
138 /*
139 * Pidof functionality.
140@@ -944,6 +992,7 @@ int main_pidof(int argc, char **argv)
141 char tmp[512];
142 char sep = ' ';
143
144+ olist = (PROC*)0;
145 omit = (OMIT*)0;
146 nlist = (NFS*)0;
147 opterr = 0;
148@@ -951,7 +1000,7 @@ int main_pidof(int argc, char **argv)
149 if ((token = getenv("PIDOF_NETFS")) && (strcmp(token,"no") != 0))
150 flags |= PIDOF_NETFS;
151
152- while ((opt = getopt(argc,argv,"qhco:d:sxzn")) != EOF) switch (opt) {
153+ while ((opt = getopt(argc,argv,"qhcmo:d:sxzn")) != EOF) switch (opt) {
154 case '?':
155 nsyslog(LOG_ERR,"invalid options on command line!\n");
156 closelog();
157@@ -1002,6 +1051,9 @@ int main_pidof(int argc, char **argv)
158 case 'z':
159 list_dz_processes = TRUE;
160 break;
161+ case 'm':
162+ flags |= PIDOF_OMIT_OMIT_MATCHES;
163+ break;
164 case 'n':
165 flags |= PIDOF_NETFS;
166 break;
167@@ -1033,10 +1085,13 @@ int main_pidof(int argc, char **argv)
168 pid_t spid = 0;
169 while ((p = get_next_from_pid_q(q))) {
170 if ((flags & PIDOF_OMIT) && omit) {
171- OMIT * optr;
172- for (optr = omit; optr; optr = optr->next) {
173+ PROC * optr;
174+ for (optr = olist; optr; optr = optr->next) {
175 if (optr->pid == p->pid)
176 break;
177+ if (flags & PIDOF_OMIT_OMIT_MATCHES)
178+ if (matches(optr, p))
179+ break;
180 }
181
182 /*
183@@ -1078,6 +1133,7 @@ int main_pidof(int argc, char **argv)
184 printf("\n");
185 }
186
187+ clear_omit();
188 clear_mnt();
189
190 closelog();
191--
1922.25.1
193
diff --git a/meta/recipes-core/sysvinit/sysvinit/realpath.patch b/meta/recipes-core/sysvinit/sysvinit/realpath.patch
deleted file mode 100644
index 7a669d0111..0000000000
--- a/meta/recipes-core/sysvinit/sysvinit/realpath.patch
+++ /dev/null
@@ -1,61 +0,0 @@
1From 50e6b3a0fc7c083e6514a55ac93e5591aaeb787d Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 19 Nov 2015 00:10:03 +0000
4Subject: [PATCH] Fix build on musl use realpath() API its available on all
5 libcs
6
7realpath() API doesnt work on systems with PATH_MAX set to be unlimited e.g. GNU/Hurd
8However for Linux it should always work
9
10Upstream-Status: Inappropriate [Linux specific]
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 src/killall5.c | 4 ++--
15 src/mountpoint.c | 1 +
16 src/wall.c | 1 +
17 3 files changed, 4 insertions(+), 2 deletions(-)
18
19diff --git a/src/killall5.c b/src/killall5.c
20index 34d656b..bc19d7f 100644
21--- a/src/killall5.c
22+++ b/src/killall5.c
23@@ -910,9 +910,9 @@ int matches(PROC *o, PROC *p)
24 char *oargv1, *pargv1;
25 if ((o->argv0 && p->argv0 && !strcmp(o->argv0,p->argv0))) {
26 if (o->argv1 && p->argv1) {
27- if ((oargv1 = canonicalize_file_name(o->argv1)) == NULL)
28+ if ((oargv1 = realpath(o->argv1, NULL)) == NULL)
29 oargv1 = strdup(o->argv1);
30- if ((pargv1 = canonicalize_file_name(p->argv1)) == NULL)
31+ if ((pargv1 = realpath(p->argv1, NULL)) == NULL)
32 pargv1 = strdup(p->argv1);
33 if (! strcmp(oargv1, pargv1)) {
34 ret = 1;
35diff --git a/src/mountpoint.c b/src/mountpoint.c
36index 184b1f6..c55b0df 100644
37--- a/src/mountpoint.c
38+++ b/src/mountpoint.c
39@@ -23,6 +23,7 @@
40 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
41 */
42
43+#include <sys/types.h>
44 #include <sys/stat.h>
45 #include <unistd.h>
46 #include <stdlib.h>
47diff --git a/src/wall.c b/src/wall.c
48index e527613..1d363ca 100644
49--- a/src/wall.c
50+++ b/src/wall.c
51@@ -30,6 +30,7 @@
52 #include <pwd.h>
53 #include <syslog.h>
54 #include <sys/types.h>
55+#include <time.h>
56 #include "init.h"
57
58
59--
602.25.1
61
diff --git a/meta/recipes-core/sysvinit/sysvinit_3.11.bb b/meta/recipes-core/sysvinit/sysvinit_3.13.bb
index e8eab27564..d935b0edfd 100644
--- a/meta/recipes-core/sysvinit/sysvinit_3.11.bb
+++ b/meta/recipes-core/sysvinit/sysvinit_3.13.bb
@@ -11,18 +11,14 @@ RDEPENDS:${PN} = "${PN}-inittab"
11 11
12GITHUB_BASE_URI = "https://github.com/slicer69/${BPN}/releases/" 12GITHUB_BASE_URI = "https://github.com/slicer69/${BPN}/releases/"
13SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.xz \ 13SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.xz \
14 file://install.patch \
15 file://crypt-lib.patch \ 14 file://crypt-lib.patch \
16 file://pidof-add-m-option.patch \
17 file://realpath.patch \
18 file://0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch \
19 file://rcS-default \ 15 file://rcS-default \
20 file://rc \ 16 file://rc \
21 file://rcS \ 17 file://rcS \
22 file://bootlogd.init \ 18 file://bootlogd.init \
23 file://01_bootlogd \ 19 file://01_bootlogd \
24 " 20 "
25SRC_URI[sha256sum] = "04f1b7d67413af1c09c41acc1e3ce946f2d0f7a1e47c9978744bc542864e13d4" 21SRC_URI[sha256sum] = "cbaeabddc35a6511b87c87452ee5e87c678a26329c7d7d17fb69a2b42a314d86"
26 22
27S = "${WORKDIR}/sysvinit-${PV}" 23S = "${WORKDIR}/sysvinit-${PV}"
28 24