Compare commits

...

18 Commits

Author SHA1 Message Date
William Hubbs
66651180a7 update change log 2016-01-19 13:55:30 -06:00
William Hubbs
7d63dc928c localmount: Allow users to control whether errors are ignored
X-Gentoo-Bug: 572138
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=572138
2016-01-19 13:38:33 -06:00
Doug Freed
8e16828bd3 rc: remove use of magic constant and allow OpenVZ to drop to shell
OpenVZ has had console support for a long time now; allow them to use it
to drop to a shell during interactive boot.
2016-01-19 10:54:52 -06:00
Doug Freed
3a30710916 librc: handle rc_sys="prefix" even if we weren't built with a prefix
This probably isn't needed, but it mimics old behavior.
2016-01-19 10:54:52 -06:00
Doug Freed
290a91e8e9 librc: fix handling the nothing special case for rc_sys 2016-01-19 10:54:52 -06:00
Doug Freed
04d94be766 librc: move system detection code into rc_sys and use it
This fixes an issue where librc code was calling code that only existed
in the rc binary.

This reverts commits 8addd79 and 9f6e056

This fixes #75.
2016-01-19 10:54:52 -06:00
William Hubbs
fa6707e5b3 fix bsd build
X-Gentoo-Bug: 572068
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=572068
2016-01-18 22:53:58 -06:00
William Hubbs
3286a98fe6 start 0.20.3 2016-01-18 22:45:01 -06:00
William Hubbs
dc0ab571a2 update change log 2016-01-14 13:53:50 -06:00
William Hubbs
fb37e1aa96 src/rc/Makefile: fix make depend target 2016-01-14 13:35:56 -06:00
William Hubbs
8769cca710 include rc.h properly in source files
We were attempting to include rc.h in rc-misc.h instead of the source
files where it should be included.
2016-01-14 13:35:56 -06:00
William Hubbs
506f2887e1 fix selinux build
X-Gentoo-Bug: 571798
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=571798
2016-01-14 11:47:23 -06:00
William Hubbs
83223a6e97 version 0.20.2 2016-01-14 11:45:21 -06:00
William Hubbs
2747f40f82 update changelog 2016-01-13 20:21:17 -06:00
William Hubbs
933972da53 fix selinux build 2016-01-13 20:15:15 -06:00
William Hubbs
dbcb8ba3fe Add LANG, LC_MESSAGES and TERM to the environment whitelist 2016-01-13 20:15:14 -06:00
William Hubbs
e462c3223e fix seg fault 2016-01-13 20:15:14 -06:00
William Hubbs
06f195ce37 increment version number 2016-01-13 19:53:03 -06:00
19 changed files with 265 additions and 248 deletions

138
ChangeLog
View File

@@ -1,3 +1,135 @@
commit 7d63dc928ca02dc9ab654078c5c1ed0b6bb017d9
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
localmount: Allow users to control whether errors are ignored
X-Gentoo-Bug: 572138
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=572138
commit 8e16828bd3d97e6b1e40ded616a54cb8a9e7b403
Author: Doug Freed <dwfreed@mtu.edu>
Commit: William Hubbs <w.d.hubbs@gmail.com>
rc: remove use of magic constant and allow OpenVZ to drop to shell
OpenVZ has had console support for a long time now; allow them to use it
to drop to a shell during interactive boot.
commit 3a307109168ac82f37a9a85a81b7b527a57665e5
Author: Doug Freed <dwfreed@mtu.edu>
Commit: William Hubbs <w.d.hubbs@gmail.com>
librc: handle rc_sys="prefix" even if we weren't built with a prefix
This probably isn't needed, but it mimics old behavior.
commit 290a91e8e9242582ee13c7343b630b097e2eeaf2
Author: Doug Freed <dwfreed@mtu.edu>
Commit: William Hubbs <w.d.hubbs@gmail.com>
librc: fix handling the nothing special case for rc_sys
commit 04d94be766ae2808adc709b0e4e03ce1f3a75d5d
Author: Doug Freed <dwfreed@mtu.edu>
Commit: William Hubbs <w.d.hubbs@gmail.com>
librc: move system detection code into rc_sys and use it
This fixes an issue where librc code was calling code that only existed
in the rc binary.
This reverts commits 8addd79 and 9f6e056
This fixes #75.
commit fa6707e5b33738c3416bfbad661770302aa50212
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
fix bsd build
X-Gentoo-Bug: 572068
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=572068
commit 3286a98fe60d1c2617ec73ef68fc4a18f092d9da
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
start 0.20.3
commit dc0ab571a26e4c990559f4222780a26aa84bd463
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update change log
commit fb37e1aa96df351b1bf591dc36ef332f86820a2b
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
src/rc/Makefile: fix make depend target
commit 8769cca71089983ad8a8a69cec852c6bc169248d
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
include rc.h properly in source files
We were attempting to include rc.h in rc-misc.h instead of the source
files where it should be included.
commit 506f2887e13eb8093bbff0915381644c4c08fc5c
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
fix selinux build
X-Gentoo-Bug: 571798
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=571798
commit 83223a6e97ff2ed3a8b06c4794b55cdd1c61c657
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
version 0.20.2
commit 2747f40f823c2d31b820f0525360532287c70eea
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update changelog
commit 933972da532bdf23accaea68bd072fc723a4065d
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
fix selinux build
commit dbcb8ba3fe2ddce1052c6e0037c47e19d7c273aa
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Add LANG, LC_MESSAGES and TERM to the environment whitelist
commit e462c3223ec71e4567916c74b7e02ec167d91819
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
fix seg fault
commit 06f195ce37769fda1bbc2cfde13534abeb7f1176
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
increment version number
commit 04f05c30d13ec83b85164a536eb570f29a66b275
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit 9473ac514cb72663d5c3bac8b5473cced4a20bf7
Author: joe9 <joe9mail@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -1323,9 +1455,3 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
Fix off-by-one error in --test argument printout in start-stop-daemon.
Fixes #34.
commit 3c5dc0ec7774a72e243da43ac5180ea36a311ad8
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
tmpfiles.dev: pass --boot to tmpfiles.sh so kmod works properly

View File

@@ -76,13 +76,3 @@ Why: The getline() function was standardized in POSIX.1-2008, so it
Who:
### rc_sys()
When: 1.0
Why: The OpenRC code now uses two internal functions, detect_container()
and detect_vm() to handle this. rc_sys() is broken because it
doesn't differentiate between containers and vm's.
Who:

View File

@@ -1,3 +1,3 @@
NAME= openrc
VERSION= 0.20
VERSION= 0.20.3
PKG= ${NAME}-${VERSION}

View File

@@ -1,3 +1,9 @@
# Stop the unmounting of certain points.
# This could be useful for some NFS related work.
#no_umounts="/dir1:/var/dir2"
#
# Ignore errors when mounting local file systems.
# This should be left alone unless you know what you are doing. If it is
# set to yes, not only will we allow mount failures, but we will ignore
# syntax errors in fstab.
#ignore_mount_errors="NO"

View File

@@ -39,6 +39,11 @@ start()
rc=$?
if [ "$RC_UNAME" != Linux ]; then
rc=0
elif yesno "${ignore_mount_errors:-NO}"; then
if [ $rc -ne 0 ]; then
ewarn "localmount: errors detected, but ignored"
fi
rc=0
fi
return $rc
}

View File

@@ -26,7 +26,6 @@
#include <unistd.h>
#include "helpers.h"
#include "rc.h"
#define RC_LEVEL_BOOT "boot"
#define RC_LEVEL_DEFAULT "default"
@@ -61,10 +60,6 @@ int is_writable(const char *);
#define service_stop(service) exec_service(service, "stop");
int parse_mode(mode_t *, char *);
const char *detect_prefix(void);
const char *get_systype(void);
const char *detect_container(void);
const char *detect_vm(void);
/* Handy function so we can wrap einfo around our deptree */
RC_DEPTREE *_rc_deptree_load (int, int *);

View File

@@ -740,7 +740,7 @@ rc_deptree_update(void)
char *depend, *depends, *service, *type, *nosys, *onosys;
size_t i, k, l;
bool retval = true;
const char *sys = NULL;
const char *sys = rc_sys();
struct utsname uts;
/* Some init scripts need RC_LIBEXECDIR to source stuff
@@ -847,9 +847,6 @@ rc_deptree_update(void)
/* Phase 2 - if we're a special system, remove services that don't
* work for them. This doesn't stop them from being run directly. */
sys = detect_container();
if (!sys)
sys = detect_vm();
if (sys) {
len = strlen(sys);
nosys = xmalloc(len + 2);

View File

@@ -198,13 +198,9 @@ found:
#endif
const char *
rc_sys(void)
static const char *
get_systype(void)
{
#ifdef PREFIX
return RC_SYS_PREFIX;
#endif
char *systype = rc_conf_value("rc_sys");
if (systype) {
char *s = systype;
@@ -215,10 +211,37 @@ rc_sys(void)
s++;
}
}
return systype;
}
static const char *
detect_prefix(const char *systype)
{
#ifdef PREFIX
return RC_SYS_PREFIX;
#else
if (systype) {
if (strcmp(systype, RC_SYS_NONE) == 0)
return NULL;
if (strcmp(systype, RC_SYS_PREFIX) == 0)
return RC_SYS_PREFIX;
}
return NULL;
#endif
}
static const char *
detect_container(const char *systype)
{
#ifdef __FreeBSD__
if (systype && strcmp(systype, RC_SYS_JAIL) == 0)
return RC_SYS_JAIL;
if (systype) {
if (strcmp(systype, RC_SYS_NONE) == 0)
return NULL;
if (strcmp(systype, RC_SYS_JAIL) == 0)
return RC_SYS_JAIL;
}
int jailed = 0;
size_t len = sizeof(jailed);
@@ -227,25 +250,10 @@ rc_sys(void)
return RC_SYS_JAIL;
#endif
#ifdef __NetBSD__
if (systype) {
if(strcmp(systype, RC_SYS_XEN0) == 0)
return RC_SYS_XEN0;
if (strcmp(systype, RC_SYS_XENU) == 0)
return RC_SYS_XENU;
}
if (exists("/kern/xen/privcmd"))
return RC_SYS_XEN0;
if (exists("/kern/xen"))
return RC_SYS_XENU;
#endif
#ifdef __linux__
if (systype) {
if (strcmp(systype, RC_SYS_XEN0) == 0)
return RC_SYS_XEN0;
if (strcmp(systype, RC_SYS_XENU) == 0)
return RC_SYS_XENU;
if (strcmp(systype, RC_SYS_NONE) == 0)
return NULL;
if (strcmp(systype, RC_SYS_UML) == 0)
return RC_SYS_UML;
if (strcmp(systype, RC_SYS_VSERVER) == 0)
@@ -261,11 +269,7 @@ rc_sys(void)
if (strcmp(systype, RC_SYS_DOCKER) == 0)
return RC_SYS_DOCKER;
}
if (exists("/proc/xen")) {
if (file_regex("/proc/xen/capabilities", "control_d"))
return RC_SYS_XEN0;
return RC_SYS_XENU;
} else if (file_regex("/proc/cpuinfo", "UML"))
if (file_regex("/proc/cpuinfo", "UML"))
return RC_SYS_UML;
else if (file_regex("/proc/self/status",
"(s_context|VxID):[[:space:]]*[1-9]"))
@@ -287,6 +291,61 @@ rc_sys(void)
return NULL;
}
static const char *
detect_vm(const char *systype)
{
#ifdef __NetBSD__
if (systype) {
if (strcmp(systype, RC_SYS_NONE) == 0)
return NULL;
if (strcmp(systype, RC_SYS_XEN0) == 0)
return RC_SYS_XEN0;
if (strcmp(systype, RC_SYS_XENU) == 0)
return RC_SYS_XENU;
}
if (exists("/kern/xen/privcmd"))
return RC_SYS_XEN0;
if (exists("/kern/xen"))
return RC_SYS_XENU;
#endif
#ifdef __linux__
if (systype) {
if (strcmp(systype, RC_SYS_NONE) == 0)
return NULL;
if (strcmp(systype, RC_SYS_XEN0) == 0)
return RC_SYS_XEN0;
if (strcmp(systype, RC_SYS_XENU) == 0)
return RC_SYS_XENU;
}
if (exists("/proc/xen")) {
if (file_regex("/proc/xen/capabilities", "control_d"))
return RC_SYS_XEN0;
return RC_SYS_XENU;
}
#endif
return NULL;
}
const char *
rc_sys(void)
{
const char *systype;
const char *sys;
systype = get_systype();
sys = detect_prefix(systype);
if (!sys) {
sys = detect_container(systype);
if (!sys) {
sys = detect_vm(systype);
}
}
return sys;
}
librc_hidden_def(rc_sys)
static const char *

View File

@@ -318,6 +318,7 @@ bool rc_service_daemons_crashed(const char *);
* Some services cannot work in these systems, or we do something else. */
#define RC_SYS_DOCKER "DOCKER"
#define RC_SYS_JAIL "JAIL"
#define RC_SYS_NONE ""
#define RC_SYS_OPENVZ "OPENVZ"
#define RC_SYS_LXC "LXC"
#define RC_SYS_PREFIX "PREFIX"

View File

@@ -1,4 +1,9 @@
SRCS= rc.c rc-logger.c rc-misc.c rc-plugin.c
SRCS= checkpath.c do_e.c do_mark_service.c do_service.c \
do_value.c fstabinfo.c is_newer_than.c is_older_than.c \
mountinfo.c openrc-run.c rc-abort.c rc.c \
rc-depend.c rc-logger.c rc-misc.c rc-plugin.c \
rc-service.c rc-status.c rc-update.c \
shell_var.c start-stop-daemon.c swclock.c _usage.c
ifeq (${MKSELINUX},yes)
SRCS+= rc-selinux.c
@@ -75,7 +80,10 @@ check test::
all: ${ALL_PROGS}
checkpath: checkpath.o _usage.o rc-misc.o rc-selinux.o
checkpath: checkpath.o _usage.o rc-misc.o
ifeq (${MKSELINUX},yes)
checkpath: rc-selinux.o
endif
${CC} ${LOCAL_CFLAGS} ${LOCAL_LDFLAGS} ${CFLAGS} ${LDFLAGS} -o $@ $^ ${LDADD}
einfon einfo ewarnn ewarn eerrorn eerror ebegin eend ewend \
@@ -101,10 +109,13 @@ mark_service_hotplugged mark_service_failed: do_mark_service.o rc-misc.o
mountinfo: mountinfo.o _usage.o rc-misc.o
${CC} ${LOCAL_CFLAGS} ${LOCAL_LDFLAGS} ${CFLAGS} ${LDFLAGS} -o $@ $^ ${LDADD}
openrc rc: rc.o rc-logger.o rc-misc.o rc-plugin.o rc-selinux.o _usage.o
openrc rc: rc.o rc-logger.o rc-misc.o rc-plugin.o _usage.o
${CC} ${LOCAL_CFLAGS} ${LOCAL_LDFLAGS} ${CFLAGS} ${LDFLAGS} -o $@ $^ ${LDADD}
openrc-run runscript: openrc-run.o _usage.o rc-misc.o rc-plugin.o
ifeq (${MKSELINUX},yes)
openrc-run runscript: rc-selinux.o
endif
${CC} ${LOCAL_CFLAGS} ${LOCAL_LDFLAGS} ${CFLAGS} ${LDFLAGS} -o $@ $^ ${LDADD}
rc-abort: rc-abort.o

View File

@@ -13,6 +13,7 @@
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include "rc.h"
#include "rc-misc.h"
#include "_usage.h"
#include "version.h"
@@ -46,10 +47,7 @@ _noreturn void show_version(void)
const char *systype = NULL;
printf("%s (OpenRC", applet);
systype = detect_container();
if (!systype)
systype = detect_vm();
if (systype)
if ((systype = rc_sys()))
printf(" [%s]", systype);
printf(") %s", VERSION);
#ifdef BRANDING

View File

@@ -30,6 +30,7 @@
#include <unistd.h>
#include "einfo.h"
#include "rc.h"
#include "rc-misc.h"
#include "rc-selinux.h"
#include "_usage.h"

View File

@@ -28,6 +28,7 @@
#include <unistd.h>
#include "einfo.h"
#include "rc.h"
#include "rc-misc.h"
const char *applet = NULL;

View File

@@ -15,6 +15,7 @@
#include <stdio.h>
#include <stdlib.h>
#include "rc.h"
#include "rc-misc.h"
int main(int argc, char **argv)

View File

@@ -15,6 +15,7 @@
#include <stdio.h>
#include <stdlib.h>
#include "rc.h"
#include "rc-misc.h"
int main(int argc, char **argv)

View File

@@ -27,7 +27,6 @@
#include <ctype.h>
#include <fcntl.h>
#include <limits.h>
# include <regex.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
@@ -53,6 +52,7 @@ rc_conf_yesno(const char *setting)
static const char *const env_whitelist[] = {
"EERROR_QUIET", "EINFO_QUIET",
"IN_BACKGROUND", "IN_HOTPLUG",
"LANG", "LC_MESSAGES", "TERM",
NULL
};
@@ -125,7 +125,7 @@ env_config(void)
char *np;
char *npp;
char *tok;
const char *sys = NULL;
const char *sys = rc_sys();
char buffer[PATH_MAX];
/* Ensure our PATH is prefixed with the system locations first
@@ -176,9 +176,7 @@ env_config(void)
} else
setenv("RC_DEFAULTLEVEL", RC_LEVEL_DEFAULT, 1);
sys = detect_container();
if (!sys)
sys = detect_vm();
if (sys)
setenv("RC_SYS", sys, 1);
#ifdef PREFIX
@@ -335,163 +333,6 @@ is_writable(const char *path)
return 0;
}
static bool file_regex(const char *file, const char *regex)
{
FILE *fp;
char *line = NULL;
size_t len = 0;
regex_t re;
bool retval = true;
int result;
if (!(fp = fopen(file, "r")))
return false;
if ((result = regcomp(&re, regex, REG_EXTENDED | REG_NOSUB)) != 0) {
fclose(fp);
line = xmalloc(sizeof(char) * BUFSIZ);
regerror(result, &re, line, BUFSIZ);
fprintf(stderr, "file_regex: %s", line);
free(line);
return false;
}
while ((rc_getline(&line, &len, fp))) {
char *str = line;
/* some /proc files have \0 separated content so we have to
loop through the 'line' */
do {
if (regexec(&re, str, 0, NULL, 0) == 0)
goto found;
str += strlen(str) + 1;
/* len is the size of allocated buffer and we don't
want call regexec BUFSIZE times. find next str */
while (str < line + len && *str == '\0')
str++;
} while (str < line + len);
}
retval = false;
found:
fclose(fp);
free(line);
regfree(&re);
return retval;
}
const char *detect_prefix(void)
{
#ifdef PREFIX
return RC_SYS_PREFIX;
#else
return NULL;
#endif
}
const char *get_systype(void)
{
char *systype = rc_conf_value("rc_sys");
if (systype) {
char *s = systype;
/* Convert to uppercase */
while (s && *s) {
if (islower((unsigned char) *s))
*s = toupper((unsigned char) *s);
s++;
}
}
return systype;
}
const char *detect_container(void)
{
const char *systype = get_systype();
#ifdef __FreeBSD__
if (systype && strcmp(systype, RC_SYS_JAIL) == 0)
return RC_SYS_JAIL;
int jailed = 0;
size_t len = sizeof(jailed);
if (sysctlbyname("security.jail.jailed", &jailed, &len, NULL, 0) == 0)
if (jailed == 1)
return RC_SYS_JAIL;
#endif
#ifdef __linux__
if (systype) {
if (strcmp(systype, RC_SYS_UML) == 0)
return RC_SYS_UML;
if (strcmp(systype, RC_SYS_VSERVER) == 0)
return RC_SYS_VSERVER;
if (strcmp(systype, RC_SYS_OPENVZ) == 0)
return RC_SYS_OPENVZ;
if (strcmp(systype, RC_SYS_LXC) == 0)
return RC_SYS_LXC;
if (strcmp(systype, RC_SYS_RKT) == 0)
return RC_SYS_RKT;
if (strcmp(systype, RC_SYS_SYSTEMD_NSPAWN) == 0)
return RC_SYS_SYSTEMD_NSPAWN;
if (strcmp(systype, RC_SYS_DOCKER) == 0)
return RC_SYS_DOCKER;
}
if (file_regex("/proc/cpuinfo", "UML"))
return RC_SYS_UML;
else if (file_regex("/proc/self/status",
"(s_context|VxID):[[:space:]]*[1-9]"))
return RC_SYS_VSERVER;
else if (exists("/proc/vz/veinfo") && !exists("/proc/vz/version"))
return RC_SYS_OPENVZ;
else if (file_regex("/proc/self/status",
"envID:[[:space:]]*[1-9]"))
return RC_SYS_OPENVZ; /* old test */
else if (file_regex("/proc/1/environ", "container=lxc"))
return RC_SYS_LXC;
else if (file_regex("/proc/1/environ", "container=rkt"))
return RC_SYS_RKT;
else if (file_regex("/proc/1/environ", "container=systemd-nspawn"))
return RC_SYS_SYSTEMD_NSPAWN;
else if (file_regex("/proc/1/environ", "container=docker"))
return RC_SYS_DOCKER;
#endif
return NULL;
}
const char *detect_vm(void)
{
const char *systype = get_systype();
#ifdef __NetBSD__
if (systype) {
if(strcmp(systype, RC_SYS_XEN0) == 0)
return RC_SYS_XEN0;
if (strcmp(systype, RC_SYS_XENU) == 0)
return RC_SYS_XENU;
}
if (exists("/kern/xen/privcmd"))
return RC_SYS_XEN0;
if (exists("/kern/xen"))
return RC_SYS_XENU;
#endif
#ifdef __linux__
if (systype) {
if (strcmp(systype, RC_SYS_XEN0) == 0)
return RC_SYS_XEN0;
if (strcmp(systype, RC_SYS_XENU) == 0)
return RC_SYS_XENU;
}
if (exists("/proc/xen")) {
if (file_regex("/proc/xen/capabilities", "control_d"))
return RC_SYS_XEN0;
return RC_SYS_XENU;
}
#endif
return NULL;
}
RC_DEPTREE * _rc_deptree_load(int force, int *regen)
{
int fd;

View File

@@ -15,8 +15,6 @@
* except according to the terms contained in the LICENSE file.
*/
#ifdef HAVE_SELINUX
#include <stddef.h>
#include <errno.h>
#include <dlfcn.h>
@@ -386,5 +384,3 @@ out:
free(run_init_t);
free(curr_t);
}
#endif

View File

@@ -281,15 +281,10 @@ open_shell(void)
struct passwd *pw;
#ifdef __linux__
const char *sys = NULL;
const char *sys = rc_sys();
sys = detect_container();
if (!sys)
sys = detect_vm();
/* VSERVER and OPENVZ systems cannot really drop to shells */
if (sys &&
(strcmp(sys, "VSERVER") == 0 || strcmp(sys, "OPENVZ") == 0))
/* VSERVER systems cannot really drop to shells */
if (sys && strcmp(sys, RC_SYS_VSERVER) == 0)
{
execl("/sbin/halt", "/sbin/halt", "-f", (char *) NULL);
eerrorx("%s: unable to exec `/sbin/halt': %s",
@@ -491,10 +486,7 @@ do_sysinit()
uts.machine);
#endif
sys = detect_container();
if (!sys)
sys = detect_vm();
if (sys)
if ((sys = rc_sys()))
printf(" [%s]", sys);
printf("%s\n\n", ecolor(ECOLOR_NORMAL));
@@ -509,10 +501,7 @@ do_sysinit()
/* init may have mounted /proc so we can now detect or real
* sys */
sys = detect_container();
if (!sys)
sys = detect_vm();
if (sys)
if ((sys = rc_sys()))
setenv("RC_SYS", sys, 1);
}
@@ -832,9 +821,7 @@ int main(int argc, char **argv)
eerrorx("%s: %s", applet, strerror(errno));
/* NOTREACHED */
case 'S':
systype = detect_container();
if (!systype)
systype = detect_vm();
systype = rc_sys();
if (systype)
printf("%s\n", systype);
exit(EXIT_SUCCESS);

View File

@@ -30,6 +30,7 @@
#include <utime.h>
#include "einfo.h"
#include "rc.h"
#include "rc-misc.h"
#include "_usage.h"