diff options
author | William Hubbs <w.d.hubbs@gmail.com> | 2013-12-11 17:39:38 -0600 |
---|---|---|
committer | William Hubbs <w.d.hubbs@gmail.com> | 2013-12-12 18:31:29 -0600 |
commit | 7b5fa011ac7a9544fe68a9abb2f8ef940d9845f7 (patch) | |
tree | b8c99079eac82e8c3a7c43b8d65585eb3b9a1f7f /src | |
parent | 09733d3fae77265263b1e918b9fce66a1c7a519a (diff) |
Rename the rc binary to openrc
Debian requested this rename due to the "rc" binary conflicting with the
"rc" binary from the plan 9 shell.
We also add a deprecation warning to the binary when it is run as rc to
encourage users to switch to openrc instead.
X-Gentoo-Bug: 493958
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=493958
Diffstat (limited to 'src')
-rw-r--r-- | src/rc/Makefile | 8 | ||||
-rw-r--r-- | src/rc/rc-applets.c | 11 | ||||
-rw-r--r-- | src/rc/rc.c | 6 |
3 files changed, 16 insertions, 9 deletions
diff --git a/src/rc/Makefile b/src/rc/Makefile index a2e638e8..209523ab 100644 --- a/src/rc/Makefile +++ b/src/rc/Makefile @@ -1,4 +1,4 @@ -PROG= rc +PROG= openrc SRCS= checkpath.c fstabinfo.c mountinfo.c start-stop-daemon.c \ rc-applets.c rc-depend.c rc-logger.c \ rc-misc.c rc-plugin.c rc-service.c rc-status.c rc-update.c \ @@ -11,7 +11,7 @@ SBINDIR= ${PREFIX}/sbin LINKDIR= ${LIBEXECDIR} BINLINKS= rc-status -SBINLINKS= rc-service rc-update runscript service start-stop-daemon +SBINLINKS= rc rc-service rc-update runscript service start-stop-daemon RC_BINLINKS= einfon einfo ewarnn ewarn eerrorn eerror ebegin eend ewend \ eindent eoutdent esyslog eval_ecolors ewaitfile \ veinfo vewarn vebegin veend vewend veindent veoutdent \ @@ -90,5 +90,5 @@ install: all check test:: -links: rc - $(call make-links,${ALL_LINKS},rc,.) +links: $PROG + $(call make-links,${ALL_LINKS},$PROG,.) diff --git a/src/rc/rc-applets.c b/src/rc/rc-applets.c index 64b6e888..8431eea3 100644 --- a/src/rc/rc-applets.c +++ b/src/rc/rc-applets.c @@ -533,11 +533,18 @@ run_applets(int argc, char **argv) { size_t i; + /* + * The "rc" applet is deprecated and should be referred to as + * "openrc", so output a warning. + */ + if (strcmp(applet, "rc") == 0) + ewarn("The 'rc' applet is deprecated; please use 'openrc' instead."); /* Bug 351712: We need an extra way to explicitly select an applet OTHER * than trusting argv[0], as argv[0] is not going to be the applet value if * we are doing SELinux context switching. For this, we allow calls such as * 'rc --applet APPLET', and shift ALL of argv down by two array items. */ - if (strcmp(applet, "rc") == 0 && argc >= 3 && + if ((strcmp(applet, "rc") == 0 || strcmp(applet, "openrc") == 0) && + argc >= 3 && (strcmp(argv[1],"--applet") == 0 || strcmp(argv[1], "-a") == 0)) { applet = argv[2]; argv += 2; @@ -557,6 +564,6 @@ run_applets(int argc, char **argv) if (strncmp(applet, "mark_service_", strlen("mark_service_")) == 0) exit(do_mark_service(argc, argv)); - if (strcmp(applet, "rc") != 0) + if (strcmp(applet, "rc") != 0 && strcmp(applet, "openrc") != 0) eerrorx("%s: unknown applet", applet); } diff --git a/src/rc/rc.c b/src/rc/rc.c index c1c1629a..136e8fa8 100644 --- a/src/rc/rc.c +++ b/src/rc/rc.c @@ -125,7 +125,7 @@ cleanup(void) #endif if (!rc_in_logger && !rc_in_plugin && - applet && strcmp(applet, "rc") == 0) + applet && (strcmp(applet, "rc") == 0 || strcmp(applet, "openrc") == 0)) { if (hook_out) rc_plugin_run(hook_out, runlevel); @@ -724,7 +724,7 @@ handle_bad_signal(int sig) #include "_usage.h" #define usagestring "" \ - "Usage: rc [options] [<runlevel>]" + "Usage: openrc [options] [<runlevel>]" #define getoptstring "a:no:s:S" getoptstring_COMMON static const struct option longopts[] = { { "applet", 1, NULL, 'a' }, @@ -864,7 +864,7 @@ main(int argc, char **argv) } /* Enable logging */ - setenv("EINFO_LOG", "rc", 1); + setenv("EINFO_LOG", "openrc", 1); /* Export our PID */ snprintf(pidstr, sizeof(pidstr), "%d", getpid()); |