summaryrefslogtreecommitdiff
path: root/sys-apps/sysvinit/files
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/sysvinit/files')
-rw-r--r--sys-apps/sysvinit/files/sysvinit-2.86-kexec.patch142
-rw-r--r--sys-apps/sysvinit/files/sysvinit-2.94_beta-shutdown-single.patch39
-rw-r--r--sys-apps/sysvinit/files/sysvinit-3.07-halt.patch53
3 files changed, 0 insertions, 234 deletions
diff --git a/sys-apps/sysvinit/files/sysvinit-2.86-kexec.patch b/sys-apps/sysvinit/files/sysvinit-2.86-kexec.patch
deleted file mode 100644
index 4948806d9eb9..000000000000
--- a/sys-apps/sysvinit/files/sysvinit-2.86-kexec.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-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.94_beta-shutdown-single.patch b/sys-apps/sysvinit/files/sysvinit-2.94_beta-shutdown-single.patch
deleted file mode 100644
index 9aa85229eee1..000000000000
--- a/sys-apps/sysvinit/files/sysvinit-2.94_beta-shutdown-single.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-This patch makes shutdown use the Single User runlevel by default so
-the gettys are shutdown too.
-
-Roy Marples <uberlord@gentoo.org>
-
-Forward-ported from v2.86 to v2.94_beta
-Lars Wendler <polynomial-c@gentoo.org>
-
---- sysvinit-2.94/man/shutdown.8
-+++ sysvinit-2.94/man/shutdown.8
-@@ -44,7 +44,7 @@
- \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
---- sysvinit-2.94/src/shutdown.c
-+++ sysvinit-2.94/src/shutdown.c
-@@ -547,7 +547,7 @@
- usage();
- exit(1);
- }
-- strcpy(down_level, "1");
-+ strcpy(down_level, "S");
- halttype = NULL;
- memset(when, '\0', WHEN_SIZE);
-
-@@ -734,6 +734,8 @@
- strncpy(newstate, "for reboot", STATELEN);
- break;
- case '1':
-+ case 'S':
-+ case 's':
- strncpy(newstate, "to maintenance mode", STATELEN);
- break;
- default:
diff --git a/sys-apps/sysvinit/files/sysvinit-3.07-halt.patch b/sys-apps/sysvinit/files/sysvinit-3.07-halt.patch
deleted file mode 100644
index 4e65a912ccde..000000000000
--- a/sys-apps/sysvinit/files/sysvinit-3.07-halt.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-https://github.com/slicer69/sysvinit/pull/18
-https://bugs.gentoo.org/911257
-
-From fca101c2ff428eb765958ae6e3aaa0eb1adc0fdf Mon Sep 17 00:00:00 2001
-From: Jesse <jsmith@resonatingmedia.com>
-Date: Thu, 27 Jul 2023 00:39:53 -0300
-Subject: [PATCH] Floppym provided patch which causes the halt command to call
- "shutdown -h -H" instead of "shutdown -h" when halt is invoked without
- parameters. This forces the shutdown command to set the INIT_HALT variable
- and assume, unless other conditions apply, that the "halt" call really wants
- to halt the machine and INIT_HALT should be set. In other words we assume
- halt wants to halt unless told otherwise. Addresses downstream Gentoo bug ID
- 911257.
-
----
- doc/Changelog | 11 +++++++++++
- src/halt.c | 4 ++--
- 2 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/doc/Changelog b/doc/Changelog
-index c00f6ef..b902756 100644
---- a/doc/Changelog
-+++ b/doc/Changelog
-@@ -1,3 +1,14 @@
-+sysvinit (3.08) unreleased; urgency=low
-+ * Floppym provided patch which causes the halt command
-+ to call "shutdown -h -H" instead of "shutdown -h" when
-+ halt is invoked without parameters. This forces the shutdown
-+ command to set the INIT_HALT variable and assume, unless other
-+ conditions apply, that the "halt" call really wants to halt the
-+ machine and INIT_HALT should be set. In other words we
-+ assume halt wants to halt unless told otherwise.
-+ Addresses downstream Gentoo bug ID 911257.
-+
-+
- sysvinit (3.07) released; urgency=low
- * Fixed killall5 so that processes in the omit list are
- not sent any signals, including SIGSTOP.
-diff --git a/src/halt.c b/src/halt.c
-index a469147..9bd3a4d 100644
---- a/src/halt.c
-+++ b/src/halt.c
-@@ -162,8 +162,8 @@ void do_shutdown(char *fl, int should_poweroff, char *tm)
-
- args[i++] = "shutdown";
- args[i++] = fl;
-- if ( (! strcmp(fl, "-h") ) && (should_poweroff) )
-- args[i++] = "-P";
-+ if (! strcmp(fl, "-h"))
-+ args[i++] = (should_poweroff ? "-P" : "-H");
- if (tm) {
- args[i++] = "-t";
- args[i++] = tm;