Gentoo Archives: gentoo-commits

From: William Hubbs <williamh@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/openrc:master commit in: src/librc/, src/test/
Date: Wed, 02 Dec 2015 16:22:40
Message-Id: 1449013144.635e33cdc8f18bb290756633ce0714c496383cfb.williamh@OpenRC
1 commit: 635e33cdc8f18bb290756633ce0714c496383cfb
2 Author: William Hubbs <w.d.hubbs <AT> gmail <DOT> com>
3 AuthorDate: Tue Dec 1 23:39:04 2015 +0000
4 Commit: William Hubbs <williamh <AT> gentoo <DOT> org>
5 CommitDate: Tue Dec 1 23:39:04 2015 +0000
6 URL: https://gitweb.gentoo.org/proj/openrc.git/commit/?id=635e33cd
7
8 librc: comsolidate rc_sys_v1 and rc_sys_v2 into rc_sys
9
10 These functions were never meant to be used outside of OpenRC, and they
11 were added when we thought we were going to do away with the automatic
12 detection of subsystems. Since the autodetection is not going away, we
13 can combine these functions into rc_sys.
14
15 src/librc/librc.c | 82 ++++++++++++++++++--------------------------------
16 src/librc/librc.h | 2 --
17 src/librc/rc.h.in | 8 -----
18 src/test/rc.funcs.list | 4 ---
19 4 files changed, 30 insertions(+), 66 deletions(-)
20
21 diff --git a/src/librc/librc.c b/src/librc/librc.c
22 index 8f04313..5e5de8d 100644
23 --- a/src/librc/librc.c
24 +++ b/src/librc/librc.c
25 @@ -210,14 +210,14 @@ found:
26 }
27 #endif
28
29 -/* New sys identification code
30 - * Not to be used for any binaries outside of openrc. */
31 +
32 const char *
33 -rc_sys_v2(void)
34 +rc_sys(void)
35 {
36 -#define __STRING_SWITCH(x) { char *__string_switch = x; if (false) {}
37 -#define __STRING_CASE(y) else if (strcmp(__string_switch,y) == 0)
38 -#define __STRING_SWITCH_END() }
39 +#ifdef PREFIX
40 + return RC_SYS_PREFIX;
41 +#endif
42 +
43 char *systype = rc_conf_value("rc_sys");
44 if (systype) {
45 char *s = systype;
46 @@ -227,43 +227,11 @@ rc_sys_v2(void)
47 *s = toupper((unsigned char) *s);
48 s++;
49 }
50 - /* Now do detection */
51 - __STRING_SWITCH(systype)
52 - __STRING_CASE(RC_SYS_PREFIX) { return RC_SYS_PREFIX; }
53 -#ifdef __FreeBSD__
54 - __STRING_CASE(RC_SYS_JAIL) { return RC_SYS_JAIL; }
55 -#endif /* __FreeBSD__ */
56 -#ifdef __NetBSD__
57 - __STRING_CASE(RC_SYS_XEN0) { return RC_SYS_XEN0; }
58 - __STRING_CASE(RC_SYS_XENU) { return RC_SYS_XENU; }
59 -#endif /* __NetBSD__ */
60 -#ifdef __linux__
61 - __STRING_CASE(RC_SYS_XEN0) { return RC_SYS_XEN0; }
62 - __STRING_CASE(RC_SYS_XENU) { return RC_SYS_XENU; }
63 - __STRING_CASE(RC_SYS_UML) { return RC_SYS_UML; }
64 - __STRING_CASE(RC_SYS_VSERVER) { return RC_SYS_VSERVER; }
65 - __STRING_CASE(RC_SYS_OPENVZ) { return RC_SYS_OPENVZ; }
66 - __STRING_CASE(RC_SYS_LXC) { return RC_SYS_LXC; }
67 -#endif /* __linux__ */
68 - __STRING_SWITCH_END()
69 }
70 -#undef __STRING_SWITCH
71 -#undef __STRING_CASE
72 -#undef __STRING_SWITCH_END
73 - return NULL;
74 -}
75 -librc_hidden_def(rc_sys_v2)
76 -
77 -/* Old sys identification code.
78 - * Not to be used for any binaries outside of openrc. */
79 -const char *
80 -rc_sys_v1(void)
81 -{
82 -#ifdef PREFIX
83 - return RC_SYS_PREFIX;
84 -#else
85
86 #ifdef __FreeBSD__
87 + if (systype && strcmp(systype, RC_SYS_JAIL) == 0)
88 + return RC_SYS_JAIL;
89 int jailed = 0;
90 size_t len = sizeof(jailed);
91
92 @@ -273,6 +241,12 @@ rc_sys_v1(void)
93 #endif
94
95 #ifdef __NetBSD__
96 + if (systype) {
97 + if(strcmp(systype, RC_SYS_XEN0) == 0)
98 + return RC_SYS_XEN0;
99 + if (strcmp(systype, RC_SYS_XENU) == 0)
100 + return RC_SYS_XENU;
101 + }
102 if (exists("/kern/xen/privcmd"))
103 return RC_SYS_XEN0;
104 if (exists("/kern/xen"))
105 @@ -280,6 +254,22 @@ rc_sys_v1(void)
106 #endif
107
108 #ifdef __linux__
109 + if (systype) {
110 + if (strcmp(systype, RC_SYS_XEN0) == 0)
111 + return RC_SYS_XEN0;
112 + if (strcmp(systype, RC_SYS_XENU) == 0)
113 + return RC_SYS_XENU;
114 + if (strcmp(systype, RC_SYS_UML) == 0)
115 + return RC_SYS_UML;
116 + if (strcmp(systype, RC_SYS_VSERVER) == 0)
117 + return RC_SYS_VSERVER;
118 + if (strcmp(systype, RC_SYS_OPENVZ) == 0)
119 + return RC_SYS_OPENVZ;
120 + if (strcmp(systype, RC_SYS_LXC) == 0)
121 + return RC_SYS_LXC;
122 + if (strcmp(systype, RC_SYS_SYSTEMD_NSPAWN) == 0)
123 + return RC_SYS_SYSTEMD_NSPAWN;
124 + }
125 if (exists("/proc/xen")) {
126 if (file_regex("/proc/xen/capabilities", "control_d"))
127 return RC_SYS_XEN0;
128 @@ -301,18 +291,6 @@ rc_sys_v1(void)
129 #endif
130
131 return NULL;
132 -#endif /* PREFIX */
133 -}
134 -librc_hidden_def(rc_sys_v1)
135 -
136 -const char *
137 -rc_sys(void)
138 -{
139 - if (rc_conf_value("rc_sys")) {
140 - return rc_sys_v2();
141 - } else {
142 - return rc_sys_v1();
143 - }
144 }
145 librc_hidden_def(rc_sys)
146
147
148 diff --git a/src/librc/librc.h b/src/librc/librc.h
149 index 0824eba..01bb740 100644
150 --- a/src/librc/librc.h
151 +++ b/src/librc/librc.h
152 @@ -130,8 +130,6 @@ librc_hidden_proto(rc_stringlist_new)
153 librc_hidden_proto(rc_stringlist_split)
154 librc_hidden_proto(rc_stringlist_sort)
155 librc_hidden_proto(rc_sys)
156 -librc_hidden_proto(rc_sys_v1)
157 -librc_hidden_proto(rc_sys_v2)
158 librc_hidden_proto(rc_yesno)
159
160 #endif
161
162 diff --git a/src/librc/rc.h.in b/src/librc/rc.h.in
163 index e3a586f..141ecb9 100644
164 --- a/src/librc/rc.h.in
165 +++ b/src/librc/rc.h.in
166 @@ -343,14 +343,6 @@ bool rc_service_daemons_crashed(const char *);
167 * @return string from RC_SYS_* types or NULL if none detected */
168 const char *rc_sys(void);
169
170 -/*! Returns the type of subsystem using old automatic code
171 - * @return string from RC_SYS_* types or NULL if none detected */
172 -const char *rc_sys_v1(void);
173 -
174 -/*! Returns the type of subsystem using new rc.conf rc_sys value
175 - * @return string from RC_SYS_* types or NULL if none detected */
176 -const char *rc_sys_v2(void);
177 -
178 /*! @name Dependency options
179 * These options can change the services found by the rc_get_depinfo and
180 * rc_get_depends functions. */
181
182 diff --git a/src/test/rc.funcs.list b/src/test/rc.funcs.list
183 index f4c90b5..c87e470 100644
184 --- a/src/test/rc.funcs.list
185 +++ b/src/test/rc.funcs.list
186 @@ -112,9 +112,5 @@ rc_stringlist_split
187 rc_stringlist_split@@RC_1.0
188 rc_sys
189 rc_sys@@RC_1.0
190 -rc_sys_v1
191 -rc_sys_v1@@RC_1.0
192 -rc_sys_v2
193 -rc_sys_v2@@RC_1.0
194 rc_yesno
195 rc_yesno@@RC_1.0