commit:     285b520a169db96d841536f648189097e488e829
Author:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 25 01:30:53 2018 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Nov 25 01:30:53 2018 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=285b520a

sys-apps/sysvinit: stack protector is broken on musl x86

Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
Package-Manager: Portage-2.3.51, Repoman-2.3.11

 sys-apps/sysvinit/Manifest                         |   2 +
 sys-apps/sysvinit/files/bootlogd                   |  12 ++
 sys-apps/sysvinit/files/inittab-2.91               |  61 +++++++++
 sys-apps/sysvinit/files/sysvinit-2.86-kexec.patch  | 142 +++++++++++++++++++++
 .../files/sysvinit-2.86-shutdown-single.patch      |  36 ++++++
 .../sysvinit/files/sysvinit-2.88-shutdown-h.patch  |  65 ++++++++++
 .../files/sysvinit-2.92_beta-shutdown-h.patch      |  81 ++++++++++++
 sys-apps/sysvinit/metadata.xml                     |  12 ++
 sys-apps/sysvinit/sysvinit-2.91-r1.ebuild          | 120 +++++++++++++++++
 sys-apps/sysvinit/sysvinit-2.92.ebuild             | 125 ++++++++++++++++++
 10 files changed, 656 insertions(+)

diff --git a/sys-apps/sysvinit/Manifest b/sys-apps/sysvinit/Manifest
new file mode 100644
index 0000000..59f5d29
--- /dev/null
+++ b/sys-apps/sysvinit/Manifest
@@ -0,0 +1,2 @@
+DIST sysvinit-2.91.tar.xz 114412 BLAKE2B 
5e044f589f5001c2b5a30eda76bf5c24bb2a7e0d308b7027d54031848407e6b7667b59096044eb186a7f6a862521d4a670c05a17dcc929d07da6515058949606
 SHA512 
8dcf6de79b03567c300ef5f2b7dd211895745e231510d730092085a15f61f06f28cee7c504b0b022bdcb4b4e903f44946537d4fbb2b5069fb5d29bb099fd45f5
+DIST sysvinit-2.92.tar.xz 117560 BLAKE2B 
300c9b7dffb5a07ece9b12682bf49816143215953527b69fe80c4f7f9b487de6c812213c9a851c5636de3989889b3179ace9a17b35c985729655a7c877b67170
 SHA512 
1395943540bc52d999de64c426c7f807d7688166591a8104e6c8cec2f45f13e0e3dd3d182b91194402c38172f412424a6c7d8c09662b3b5169ba6f928b5592a9

diff --git a/sys-apps/sysvinit/files/bootlogd b/sys-apps/sysvinit/files/bootlogd
new file mode 100755
index 0000000..3f3e363
--- /dev/null
+++ b/sys-apps/sysvinit/files/bootlogd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+description="bootlogd - record boot messages (sysvinit)"
+pidfile="/run/bootlogd"
+command="/sbin/bootlogd"
+command_args="-c -p ${pidfile}"
+
+depend() {
+       need localmount root
+}

diff --git a/sys-apps/sysvinit/files/inittab-2.91 
b/sys-apps/sysvinit/files/inittab-2.91
new file mode 100644
index 0000000..f9ed8d1
--- /dev/null
+++ b/sys-apps/sysvinit/files/inittab-2.91
@@ -0,0 +1,61 @@
+#
+# /etc/inittab:  This file describes how the INIT process should set up
+#                the system in a certain run-level.
+#
+# Author:  Miquel van Smoorenburg, <[email protected]>
+# Modified by:  Patrick J. Volkerding, <[email protected]>
+# Modified by:  Daniel Robbins, <[email protected]>
+# Modified by:  Martin Schlemmer, <[email protected]>
+# Modified by:  Mike Frysinger, <[email protected]>
+# Modified by:  Robin H. Johnson, <[email protected]>
+# Modified by:  William Hubbs, <[email protected]>
+#
+
+# Default runlevel.
+id:3:initdefault:
+
+# System initialization, mount local filesystems, etc.
+si::sysinit:/sbin/openrc sysinit
+
+# Further system initialization, brings up the boot runlevel.
+rc::bootwait:/sbin/openrc boot
+
+l0u:0:wait:/sbin/telinit u
+l0:0:wait:/sbin/openrc shutdown
+l0s:0:wait:/sbin/halt -dhnp
+l1:1:wait:/sbin/openrc single
+l2:2:wait:/sbin/openrc nonetwork
+l3:3:wait:/sbin/openrc default
+l4:4:wait:/sbin/openrc default
+l5:5:wait:/sbin/openrc default
+l6u:6:wait:/sbin/telinit u
+l6:6:wait:/sbin/openrc reboot
+l6r:6:wait:/sbin/reboot -dkn
+#z6:6:respawn:/sbin/sulogin
+
+# new-style single-user
+su0:S:wait:/sbin/openrc single
+su1:S:wait:/sbin/sulogin
+
+# TERMINALS
+#x1:12345:respawn:/sbin/agetty 38400 console linux
+c1:12345:respawn:/sbin/agetty 38400 tty1 linux
+c2:2345:respawn:/sbin/agetty 38400 tty2 linux
+c3:2345:respawn:/sbin/agetty 38400 tty3 linux
+c4:2345:respawn:/sbin/agetty 38400 tty4 linux
+c5:2345:respawn:/sbin/agetty 38400 tty5 linux
+c6:2345:respawn:/sbin/agetty 38400 tty6 linux
+
+# SERIAL CONSOLES
+#s0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt100
+#s1:12345:respawn:/sbin/agetty -L 9600 ttyS1 vt100
+
+# What to do at the "Three Finger Salute".
+ca:12345:ctrlaltdel:/sbin/shutdown -r now
+
+# Used by /etc/init.d/xdm to control DM startup.
+# Read the comments in /etc/init.d/xdm for more
+# info. Do NOT remove, as this will start nothing
+# extra at boot if /etc/init.d/xdm is not added
+# to the "default" runlevel.
+x:a:once:/etc/X11/startDM.sh

diff --git a/sys-apps/sysvinit/files/sysvinit-2.86-kexec.patch 
b/sys-apps/sysvinit/files/sysvinit-2.86-kexec.patch
new file mode 100644
index 0000000..4948806
--- /dev/null
+++ b/sys-apps/sysvinit/files/sysvinit-2.86-kexec.patch
@@ -0,0 +1,142 @@
+halt: add a -k kexec flag
+
+--- a/man/halt.8
++++ b/man/halt.8
+@@ -40,6 +40,7 @@ halt, reboot, poweroff \- stop the system.
+ .RB [ \-d ]
+ .RB [ \-f ]
+ .RB [ \-i ]
++.RB [ \-k ]
+ .br
+ .B /sbin/poweroff
+ .RB [ \-n ]
+@@ -83,6 +84,8 @@ Put all hard drives on the system in stand-by mode just 
before halt or power-off
+ .IP \fB\-p\fP
+ When halting the system, switch off the power. This is the default when halt 
is
+ called as \fBpoweroff\fP.
++.IP \fB\-k\fP
++Try to reboot using \fBkexec\fP, if kernel supports it.
+ .\"}}}
+ .\"{{{  Diagnostics
+ .SH DIAGNOSTICS
+--- a/src/halt.c
++++ b/src/halt.c
+@@ -8,7 +8,7 @@
+  *            execute an "shutdown -r". This is for compatibility with
+  *            sysvinit 2.4.
+  *
+- * Usage:     halt [-n] [-w] [-d] [-f] [-h] [-i] [-p]
++ * Usage:     halt [-n] [-w] [-d] [-f] [-h] [-i] [-p] [-k]
+  *            -n: don't sync before halting the system
+  *            -w: only write a wtmp reboot record and exit.
+  *            -d: don't write a wtmp record.
+@@ -16,6 +16,7 @@
+  *            -h: put harddisks in standby mode
+  *            -i: shut down all network interfaces.
+  *            -p: power down the system (if possible, otherwise halt).
++ *            -k: reboot the system using kexec.
+  *
+  *            Reboot and halt are both this program. Reboot
+  *            is just a link to halt. Invoking the program
+@@ -74,8 +75,10 @@ extern void write_wtmp(char *user, char *id, int pid, int 
type, char *line);
+  */
+ void usage(void)
+ {
+-      fprintf(stderr, "usage: %s [-n] [-w] [-d] [-f] [-h] [-i]%s\n",
+-              progname, strcmp(progname, "halt") ? "" : " [-p]");
++      fprintf(stderr, "usage: %s [-n] [-w] [-d] [-f] [-h] [-i]%s%s\n",
++              progname,
++              strcmp(progname, "halt") ? "" : " [-p]",
++              strcmp(progname, "reboot") ? "" : " [-k]");
+       fprintf(stderr, "\t-n: don't sync before halting the system\n");
+       fprintf(stderr, "\t-w: only write a wtmp reboot record and exit.\n");
+       fprintf(stderr, "\t-d: don't write a wtmp record.\n");
+@@ -84,6 +87,8 @@ void usage(void)
+       fprintf(stderr, "\t-i: shut down all network interfaces.\n");
+       if (!strcmp(progname, "halt"))
+               fprintf(stderr, "\t-p: power down the system (if possible, 
otherwise halt).\n");
++      if (!strcmp(progname, "reboot"))
++              fprintf(stderr, "\t-k: reboot the system using kexec.\n");
+       exit(1);
+ }
+ 
+@@ -182,6 +187,7 @@ int main(int argc, char **argv)
+       int do_ifdown = 0;
+       int do_hddown = 0;
+       int do_poweroff = 0;
++      int do_kexec = 0;
+       int c;
+       char *tm = NULL;
+ 
+@@ -201,7 +207,7 @@ int main(int argc, char **argv)
+       /*
+        *      Get flags
+        */
+-      while((c = getopt(argc, argv, ":ihdfnpwt:")) != EOF) {
++      while((c = getopt(argc, argv, ":ihdfnpwkt:")) != EOF) {
+               switch(c) {
+                       case 'n':
+                               do_sync = 0;
+@@ -225,6 +231,9 @@ int main(int argc, char **argv)
+                       case 'p':
+                               do_poweroff = 1;
+                               break;
++                      case 'k':
++                              do_kexec = 1;
++                              break;
+                       case 't':
+                               tm = optarg;
+                               break;
+@@ -242,10 +251,24 @@ int main(int argc, char **argv)
+       (void)chdir("/");
+ 
+       if (!do_hard && !do_nothing) {
++              c = get_runlevel();
++
++              /*
++               *       We can't reboot using kexec through this path.
++               */
++              if (c != '6' && do_reboot && do_kexec) {
++                      fprintf(stderr, "ERROR: using -k at this"
++                              " runlevel requires also -f\n"
++                              "  (You probably want instead to reboot"
++                              " normally and let your reboot\n"
++                              "   script, usually /etc/init.d/reboot,"
++                              " specify -k)\n");
++                      exit(1);
++              }
++
+               /*
+                *      See if we are in runlevel 0 or 6.
+                */
+-              c = get_runlevel();
+               if (c != '0' && c != '6')
+                       do_shutdown(do_reboot ? "-r" : "-h", tm);
+       }
+@@ -277,6 +300,15 @@ int main(int argc, char **argv)
+       if (do_nothing) exit(0);
+ 
+       if (do_reboot) {
++              /*
++               *      kexec or reboot
++               */
++              if (do_kexec)
++                      init_reboot(BMAGIC_KEXEC);
++
++              /*
++               *      Fall through if failed
++               */
+               init_reboot(BMAGIC_REBOOT);
+       } else {
+               /*
+--- a/src/reboot.h
++++ b/src/reboot.h
+@@ -47,5 +47,8 @@
+ #  define BMAGIC_POWEROFF     BMAGIC_HALT
+ #endif
+ 
++/* for kexec support */
++#define BMAGIC_KEXEC  0x45584543
++
+ #define init_reboot(magic)    reboot(magic)
+ 

diff --git a/sys-apps/sysvinit/files/sysvinit-2.86-shutdown-single.patch 
b/sys-apps/sysvinit/files/sysvinit-2.86-shutdown-single.patch
new file mode 100644
index 0000000..b8e403f
--- /dev/null
+++ b/sys-apps/sysvinit/files/sysvinit-2.86-shutdown-single.patch
@@ -0,0 +1,36 @@
+This patch makes shutdown use the Single User runlevel by default so
+the gettys are shutdown too.
+
+Roy Marples <[email protected]>
+
+--- a/man/shutdown.8
++++ b/man/shutdown.8
+@@ -44,7 +44,7 @@ mail and news processing programs a chance to exit cleanly, 
etc.
+ \fBshutdown\fP does its job by signalling the \fBinit\fP process, 
+ asking it to change the runlevel.
+ Runlevel \fB0\fP is used to halt the system, runlevel \fB6\fP is used
+-to reboot the system, and runlevel \fB1\fP is used to put to system into
++to reboot the system, and runlevel \fBS\fP is used to put to system into
+ a state where administrative tasks can be performed; this is the default
+ if neither the \fI-h\fP or \fI-r\fP flag is given to \fBshutdown\fP.
+ To see which actions are taken on halt or reboot see the appropriate
+--- a/src/shutdown.c
++++ b/src/shutdown.c
+@@ -506,7 +506,7 @@ int main(int argc, char **argv)
+               usage();
+               exit(1);
+       }
+-      strcpy(down_level, "1");
++      strcpy(down_level, "S");
+       halttype = NULL;
+ 
+       /* Process the options. */
+@@ -685,6 +685,8 @@ int main(int argc, char **argv)
+                       strcpy(newstate, "for reboot");
+                       break;
+               case '1':
++              case 'S':
++              case 's':
+                       strcpy(newstate, "to maintenance mode");
+                       break;
+               default:

diff --git a/sys-apps/sysvinit/files/sysvinit-2.88-shutdown-h.patch 
b/sys-apps/sysvinit/files/sysvinit-2.88-shutdown-h.patch
new file mode 100644
index 0000000..716999c
--- /dev/null
+++ b/sys-apps/sysvinit/files/sysvinit-2.88-shutdown-h.patch
@@ -0,0 +1,65 @@
+other inits have moved to not requiring the -h flag when used with -H/-P.
+modify sysvinit to be the same since it really doesn't matter.
+
+https://bugs.gentoo.org/449354
+
+patch by Doug Goldstein
+
+--- sysvinit-2.88dsf/man/shutdown.8
++++ sysvinit-2.88dsf/man/shutdown.8
+@@ -66,16 +66,15 @@
+ .\"}}}
+ .\"{{{  -h
+ .IP \fB\-h\fP
+-Halt or power off after shutdown.
++Equivalent to -P, unless -H is specified.
+ .\"}}}
+ .\"{{{  -P
+ .IP \fB\-P\fP
+-Halt action is to turn off the power.
++Action is to power-off the machine.
+ .\"}}}
+ .\"{{{  -H
+ .IP \fB\-H\fP
+-Modifier to the -h flag.  Halt action is to halt or drop into boot
+-monitor on systems that support it.  Must be used with the -h flag.
++Action is to halt the machine.
+ .\"}}}
+ .\"{{{  -f
+ .IP \fB\-f\fP
+--- sysvinit-2.88dsf/src/shutdown.c
++++ sysvinit-2.88dsf/src/shutdown.c
+@@ -514,9 +514,11 @@
+               switch(c) {
+                       case 'H':
+                               halttype = "HALT";
++                              down_level[0] = '0';
+                               break;
+                       case 'P':
+                               halttype = "POWERDOWN";
++                              down_level[0] = '0';
+                               break;
+                       case 'a': /* Access control. */
+                               useacl = 1;
+@@ -532,6 +534,8 @@
+                               break;
+                       case 'h': /* Halt after shutdown */
+                               down_level[0] = '0';
++                              if (!halttype)
++                                      halttype = "POWERDOWN";
+                               break;
+                       case 'f': /* Don't perform fsck after next boot */
+                               fastboot = 1;
+@@ -565,12 +569,6 @@
+               }
+       }
+ 
+-      if (NULL != halttype && down_level[0] != '0') {
+-              fprintf(stderr, "shutdown: -H and -P flags can only be used 
along with -h flag.\n");
+-              usage();
+-              exit(1);
+-      }
+-
+       /* Do we need to use the shutdown.allow file ? */
+       if (useacl && (fp = fopen(SDALLOW, "r")) != NULL) {
+ 

diff --git a/sys-apps/sysvinit/files/sysvinit-2.92_beta-shutdown-h.patch 
b/sys-apps/sysvinit/files/sysvinit-2.92_beta-shutdown-h.patch
new file mode 100644
index 0000000..e53a920
--- /dev/null
+++ b/sys-apps/sysvinit/files/sysvinit-2.92_beta-shutdown-h.patch
@@ -0,0 +1,81 @@
+other inits have moved to not requiring the -h flag when used with -H/-P.
+modify sysvinit to be the same since it really doesn't matter.
+
+https://bugs.gentoo.org/449354
+
+patch by Doug Goldstein
+
+---
+ man/shutdown.8 |    8 +++-----
+ src/shutdown.c |   12 ++++--------
+ 2 files changed, 7 insertions(+), 13 deletions(-)
+
+--- sysvinit-2.92/man/shutdown.8
++++ sysvinit-2.92/man/shutdown.8
+@@ -66,17 +66,15 @@
+ .\"}}}
+ .\"{{{  -h
+ .IP \fB\-h\fP
+-Halt or power off after shutdown.
++Equivalent to -P, unless -H is specified.
+ .\"}}}
+ .\"{{{  -P
+ .IP \fB\-P\fP
+-Modifier to the -h flag. Halt action is to turn off the power. 
+-Must be used with the -h flag.
++Action is to turn off the power. 
+ .\"}}}
+ .\"{{{  -H
+ .IP \fB\-H\fP
+-Modifier to the -h flag.  Halt action is to halt or drop into boot
+-monitor on systems that support it.  Must be used with the -h flag.
++Action is to halt or drop into boot monitor on systems that support it.
+ .\"}}}
+ .\"{{{  -f
+ .IP \fB\-f\fP
+--- sysvinit-2.92/src/shutdown.c
++++ sysvinit-2.92/src/shutdown.c
+@@ -135,9 +135,7 @@
+       "\t\t  -r:      reboot after shutdown.\n"
+       "\t\t  -h:      halt after shutdown.\n"
+       "\t\t  -P:      halt action is to turn off power.\n"
+-        "\t\t           can only be used along with -h flag.\n"
+       "\t\t  -H:      halt action is to just halt.\n"
+-        "\t\t           can only be used along with -h flag.\n"
+       "\t\t  -f:      do a 'fast' reboot (skip fsck).\n"
+       "\t\t  -F:      Force fsck on reboot.\n"
+       "\t\t  -n:      do not go through \"init\" but go down real fast.\n"
+@@ -546,9 +544,11 @@
+               switch(c) {
+                       case 'H':
+                               halttype = "HALT";
++                              down_level[0] = '0';
+                               break;
+                       case 'P':
+                               halttype = "POWEROFF";
++                              down_level[0] = '0';
+                               break;
+                       case 'a': /* Access control. */
+                               useacl = 1;
+@@ -564,6 +564,8 @@
+                               break;
+                       case 'h': /* Halt after shutdown */
+                               down_level[0] = '0';
++                              if (!halttype)
++                                      halttype = "POWEROFF";
+                               break;
+                       case 'f': /* Don't perform fsck after next boot */
+                               fastboot = 1;
+@@ -603,12 +605,6 @@
+               }
+       }
+ 
+-      if (NULL != halttype && down_level[0] != '0') {
+-              fprintf(stderr, "shutdown: -H and -P flags can only be used 
along with -h flag.\n");
+-              usage();
+-              exit(1);
+-      }
+-
+       /* Do we need to use the shutdown.allow file ? */
+       if (useacl && (fp = fopen(SDALLOW, "r")) != NULL) {
+ 

diff --git a/sys-apps/sysvinit/metadata.xml b/sys-apps/sysvinit/metadata.xml
new file mode 100644
index 0000000..53e0495
--- /dev/null
+++ b/sys-apps/sysvinit/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+<maintainer type="person">
+       <email>[email protected]</email>
+       <name>William Hubbs</name>
+</maintainer>
+<maintainer type="project">
+       <email>[email protected]</email>
+       <name>Gentoo Base System</name>
+</maintainer>
+</pkgmetadata>

diff --git a/sys-apps/sysvinit/sysvinit-2.91-r1.ebuild 
b/sys-apps/sysvinit/sysvinit-2.91-r1.ebuild
new file mode 100644
index 0000000..c16000d
--- /dev/null
+++ b/sys-apps/sysvinit/sysvinit-2.91-r1.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs flag-o-matic
+
+DESCRIPTION="/sbin/init - parent of all processes"
+HOMEPAGE="https://savannah.nongnu.org/projects/sysvinit";
+SRC_URI="mirror://nongnu/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~x86"
+IUSE="selinux ibm static kernel_FreeBSD"
+
+CDEPEND="
+       selinux? (
+               >=sys-libs/libselinux-1.28
+       )"
+DEPEND="${CDEPEND}
+       virtual/os-headers"
+RDEPEND="${CDEPEND}
+       selinux? ( sec-policy/selinux-shutdown )
+       !<sys-apps/openrc-0.13
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-2.86-kexec.patch" #80220
+       "${FILESDIR}/${PN}-2.86-shutdown-single.patch" #158615
+       "${FILESDIR}/${PN}-2.88-shutdown-h.patch" #449354
+)
+
+src_prepare() {
+       default
+       sed -i '/^CPPFLAGS =$/d' src/Makefile || die
+
+       # last/lastb/mesg/mountpoint/sulogin/utmpdump/wall have moved to 
util-linux
+       sed -i -r \
+               -e 
'/^(USR)?S?BIN/s:\<(last|lastb|mesg|mountpoint|sulogin|utmpdump|wall)\>::g' \
+               -e 
'/^MAN[18]/s:\<(last|lastb|mesg|mountpoint|sulogin|utmpdump|wall)[.][18]\>::g' \
+               src/Makefile || die
+
+       # pidof has moved to >=procps-3.3.9
+       sed -i -r \
+               -e '/\/bin\/pidof/d' \
+               -e '/^MAN8/s:\<pidof.8\>::g' \
+               src/Makefile || die
+
+       # stack protector is broken no x86 musl
+       sed -i 's/-fstack-protector-strong//' src/Makefile || die
+
+       # Mung inittab for specific architectures
+       cd "${WORKDIR}" || die
+       cp "${FILESDIR}"/inittab-2.91 inittab || die "cp inittab"
+       local insert=()
+       use ppc && insert=( '#psc0:12345:respawn:/sbin/agetty 115200 ttyPSC0 
linux' )
+       use arm && insert=( '#f0:12345:respawn:/sbin/agetty 9600 ttyFB0 vt100' )
+       use arm64 && insert=( 'f0:12345:respawn:/sbin/agetty 9600 ttyAMA0 
vt100' )
+       use hppa && insert=( 'b0:12345:respawn:/sbin/agetty 9600 ttyB0 vt100' )
+       use s390 && insert=( 's0:12345:respawn:/sbin/agetty 38400 console dumb' 
)
+       if use ibm ; then
+               insert+=(
+                       '#hvc0:2345:respawn:/sbin/agetty -L 9600 hvc0'
+                       '#hvsi:2345:respawn:/sbin/agetty -L 19200 hvsi0'
+               )
+       fi
+       (use arm || use mips || use sh || use sparc) && sed -i '/ttyS0/s:#::' 
inittab
+       if use kernel_FreeBSD ; then
+               sed -i \
+                       -e 's/linux/cons25/g' \
+                       -e 's/ttyS0/cuaa0/g' \
+                       -e 's/ttyS1/cuaa1/g' \
+                       inittab #121786
+       fi
+       if use x86 || use amd64 ; then
+               sed -i \
+                       -e '/ttyS[01]/s:9600:115200:' \
+                       inittab
+       fi
+       if [[ ${#insert[@]} -gt 0 ]] ; then
+               printf '%s\n' '' '# Architecture specific features' 
"${insert[@]}" >> inittab
+       fi
+}
+
+src_compile() {
+       tc-export CC
+       append-lfs-flags
+       export DISTRO= #381311
+       export VERSION="${PV}"
+       use static && append-ldflags -static
+       emake -C src $(usex selinux 'WITH_SELINUX=yes' '')
+}
+
+src_install() {
+       emake -C src install ROOT="${D}"
+       dodoc README doc/*
+
+       insinto /etc
+       doins "${WORKDIR}"/inittab
+
+       # dead symlink
+       rm "${ED%/}"/usr/bin/lastb || die
+}
+
+pkg_postinst() {
+       # Reload init to fix unmounting problems of / on next reboot.
+       # This is really needed, as without the new version of init cause init
+       # not to quit properly on reboot, and causes a fsck of / on next reboot.
+       if [[ ${ROOT} == / ]] ; then
+               if [[ -e /dev/initctl && ! -e /run/initctl ]]; then
+                       ln -s /dev/initctl /run/initctl
+               fi
+               # Do not return an error if this fails
+               /sbin/telinit U &>/dev/null
+       fi
+
+       elog "The last/lastb/mesg/mountpoint/sulogin/utmpdump/wall tools have 
been moved to"
+       elog "sys-apps/util-linux. The pidof tool has been moved to 
sys-process/procps."
+}

diff --git a/sys-apps/sysvinit/sysvinit-2.92.ebuild 
b/sys-apps/sysvinit/sysvinit-2.92.ebuild
new file mode 100644
index 0000000..87aed4d
--- /dev/null
+++ b/sys-apps/sysvinit/sysvinit-2.92.ebuild
@@ -0,0 +1,125 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs flag-o-matic
+
+DESCRIPTION="/sbin/init - parent of all processes"
+HOMEPAGE="https://savannah.nongnu.org/projects/sysvinit";
+SRC_URI="mirror://nongnu/${PN}/${P/_/-}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+[[ "${PV}" == *beta* ]] || \
+KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~x86"
+IUSE="selinux ibm static kernel_FreeBSD"
+
+CDEPEND="
+       selinux? (
+               >=sys-libs/libselinux-1.28
+       )"
+DEPEND="${CDEPEND}
+       virtual/os-headers"
+RDEPEND="${CDEPEND}
+       selinux? ( sec-policy/selinux-shutdown )
+       !<sys-apps/openrc-0.13
+"
+
+S="${WORKDIR}/${P/_*}"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-2.86-kexec.patch" #80220
+       "${FILESDIR}/${PN}-2.86-shutdown-single.patch" #158615
+       "${FILESDIR}/${PN}-2.92_beta-shutdown-h.patch" #449354
+)
+
+src_prepare() {
+       default
+       sed -i '/^CPPFLAGS =$/d' src/Makefile || die
+
+       # last/lastb/mesg/mountpoint/sulogin/utmpdump/wall have moved to 
util-linux
+       sed -i -r \
+               -e 
'/^(USR)?S?BIN/s:\<(last|lastb|mesg|mountpoint|sulogin|utmpdump|wall)\>::g' \
+               -e 
'/^MAN[18]/s:\<(last|lastb|mesg|mountpoint|sulogin|utmpdump|wall)[.][18]\>::g' \
+               src/Makefile || die
+
+       # pidof has moved to >=procps-3.3.9
+       sed -i -r \
+               -e '/\/bin\/pidof/d' \
+               -e '/^MAN8/s:\<pidof.8\>::g' \
+               src/Makefile || die
+
+       # stack protector is broken no x86 musl
+       sed -i 's/-fstack-protector-strong//' src/Makefile || die
+
+       # Mung inittab for specific architectures
+       cd "${WORKDIR}" || die
+       cp "${FILESDIR}"/inittab-2.91 inittab || die "cp inittab"
+       local insert=()
+       use ppc && insert=( '#psc0:12345:respawn:/sbin/agetty 115200 ttyPSC0 
linux' )
+       use arm && insert=( '#f0:12345:respawn:/sbin/agetty 9600 ttyFB0 vt100' )
+       use arm64 && insert=( 'f0:12345:respawn:/sbin/agetty 9600 ttyAMA0 
vt100' )
+       use hppa && insert=( 'b0:12345:respawn:/sbin/agetty 9600 ttyB0 vt100' )
+       use s390 && insert=( 's0:12345:respawn:/sbin/agetty 38400 console dumb' 
)
+       if use ibm ; then
+               insert+=(
+                       '#hvc0:2345:respawn:/sbin/agetty -L 9600 hvc0'
+                       '#hvsi:2345:respawn:/sbin/agetty -L 19200 hvsi0'
+               )
+       fi
+       (use arm || use mips || use sh || use sparc) && sed -i '/ttyS0/s:#::' 
inittab
+       if use kernel_FreeBSD ; then
+               sed -i \
+                       -e 's/linux/cons25/g' \
+                       -e 's/ttyS0/cuaa0/g' \
+                       -e 's/ttyS1/cuaa1/g' \
+                       inittab #121786
+       fi
+       if use x86 || use amd64 ; then
+               sed -i \
+                       -e '/ttyS[01]/s:9600:115200:' \
+                       inittab
+       fi
+       if [[ ${#insert[@]} -gt 0 ]] ; then
+               printf '%s\n' '' '# Architecture specific features' 
"${insert[@]}" >> inittab
+       fi
+}
+
+src_compile() {
+       tc-export CC
+       append-lfs-flags
+       export DISTRO= #381311
+       export VERSION="${PV}"
+       use static && append-ldflags -static
+       emake -C src $(usex selinux 'WITH_SELINUX=yes' '')
+}
+
+src_install() {
+       emake -C src install ROOT="${D}"
+       dodoc README doc/*
+
+       insinto /etc
+       doins "${WORKDIR}"/inittab
+
+       # dead symlink
+       rm "${ED%/}"/usr/bin/lastb || die
+
+       doinitd "${FILESDIR}"/bootlogd
+}
+
+pkg_postinst() {
+       # Reload init to fix unmounting problems of / on next reboot.
+       # This is really needed, as without the new version of init cause init
+       # not to quit properly on reboot, and causes a fsck of / on next reboot.
+       if [[ ${ROOT} == / ]] ; then
+               if [[ -e /dev/initctl && ! -e /run/initctl ]]; then
+                       ln -s /dev/initctl /run/initctl
+               fi
+               # Do not return an error if this fails
+               /sbin/telinit U &>/dev/null
+       fi
+
+       elog "The last/lastb/mesg/mountpoint/sulogin/utmpdump/wall tools have 
been moved to"
+       elog "sys-apps/util-linux. The pidof tool has been moved to 
sys-process/procps."
+}

Reply via email to