Merge lp:~jamesodhunt/ubuntu/oneiric/upstart/1.3 into lp:ubuntu/oneiric/upstart
- Oneiric (11.10)
- 1.3
- Merge into oneiric
Proposed by
James Hunt
Status: | Merged |
---|---|
Merged at revision: | 1317 |
Proposed branch: | lp:~jamesodhunt/ubuntu/oneiric/upstart/1.3 |
Merge into: | lp:ubuntu/oneiric/upstart |
Diff against target: |
11841 lines (+2785/-3932) 64 files modified
ChangeLog (+410/-435) NEWS (+67/-98) TESTING.sessions (+263/-0) TODO (+1/-7) configure (+16/-16) configure.ac (+4/-4) contrib/bash_completion/upstart (+65/-29) contrib/vim/syntax/upstart.vim (+61/-22) debian/changelog (+21/-0) extra/Makefile.am (+0/-1) extra/conf/upstart-socket-bridge.conf (+0/-16) extra/man/socket-event.7 (+0/-92) extra/man/upstart-socket-bridge.8 (+0/-47) extra/upstart-socket-bridge.c (+1/-1) init/Makefile.am (+0/-13) init/Makefile.in (+246/-306) init/conf.c (+10/-8) init/conf.h (+1/-1) init/control.c (+2/-2) init/control.h (+1/-1) init/environ.c (+1/-57) init/environ.h (+0/-1) init/errors.h (+4/-1) init/event.c (+2/-1) init/job.c (+1/-1) init/job_class.c (+6/-4) init/job_class.h (+4/-2) init/job_process.c (+86/-31) init/job_process.h (+13/-2) init/main.c (+95/-20) init/man/init.5 (+58/-10) init/man/init.8 (+3/-4) init/parse_job.c (+69/-17) init/parse_job.h (+1/-1) init/paths.h (+9/-20) init/session.c (+1/-1) init/session.h (+1/-1) init/system.c (+5/-11) init/system.h (+1/-1) init/tests/test_conf.c (+146/-0) init/tests/test_control.c (+0/-38) init/tests/test_environ.c (+0/-107) init/tests/test_job_class.c (+5/-4) init/tests/test_job_process.c (+10/-26) init/tests/test_parse_job.c (+409/-8) init/tests/test_system.c (+3/-3) po/ChangeLog (+8/-0) po/POTFILES.in (+1/-0) po/en@boldquot.po (+211/-142) po/en@quot.po (+211/-142) po/upstart.pot (+209/-140) scripts/Makefile.am (+0/-25) scripts/Makefile.in (+0/-543) scripts/init-checkconf.sh (+0/-248) scripts/initctl2dot.py (+0/-571) scripts/man/init-checkconf.8 (+0/-73) scripts/man/initctl2dot.8 (+0/-87) util/Makefile.am (+10/-0) util/Makefile.in (+15/-4) util/initctl.c (+6/-20) util/initctl.h (+0/-458) util/man/initctl.8 (+7/-4) util/reboot.c (+1/-0) util/tests/test_initctl.c (+4/-4) |
To merge this branch: | bzr merge lp:~jamesodhunt/ubuntu/oneiric/upstart/1.3 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Colin Watson | Pending | ||
Review via email: mp+64969@code.launchpad.net |
Commit message
Description of the change
Upstream Upstart 1.3 release.
Original source tarball for Upstart 1.3 is here:
http://
Also:
http://
http://
Note that we still have user sessions disabled (via D-Bus policy).
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'ChangeLog' | |||
2 | --- ChangeLog 2011-05-25 19:38:25 +0000 | |||
3 | +++ ChangeLog 2011-06-17 11:15:58 +0000 | |||
4 | @@ -1,444 +1,427 @@ | |||
72 | 1 | 2011-04-27 James Hunt <james.hunt@ubuntu.com> | 1 | 2011-06-14 James Hunt <james.hunt@ubuntu.com> |
73 | 2 | 2 | ||
74 | 3 | * scripts/init-checkconf.sh: | 3 | * NEWS: Release 1.3 |
75 | 4 | - New function upstart_running. | 4 | |
76 | 5 | - We now check to ensure no other instance running. | 5 | 2011-06-14 James Hunt <james.hunt@ubuntu.com> |
77 | 6 | - Use list command rather than status since the latter requires an | 6 | |
78 | 7 | instance variable to be specified (LP: #770532). | 7 | * contrib/vim/syntax/upstart.vim: Updates for kill, oom, expect |
79 | 8 | - Improve cleanup safety. | 8 | and limit. |
80 | 9 | * scripts/man/init-checkconf.8: Added limitations section. | 9 | |
81 | 10 | 10 | 2011-06-07 Scott James Remnant <scott@netsplit.com> | |
82 | 11 | 2011-04-20 James Hunt <james.hunt@ubuntu.com> | 11 | |
83 | 12 | 12 | * init/job_process.c (job_process_spawn): Make sure we don't close | |
84 | 13 | * control_get_job_by_name: Fix to relax session rigidity for user | 13 | our own file descriptor if it already has the right value. |
85 | 14 | sessions (allow user sessions to see into the global | 14 | |
86 | 15 | namespace for backwards compatability) (LP: #767053). | 15 | 2011-06-06 James Hunt <james.hunt@ubuntu.com> |
87 | 16 | 16 | ||
88 | 17 | 2011-04-15 James Hunt <james.hunt@ubuntu.com> | 17 | Add override file support. |
89 | 18 | 18 | ||
90 | 19 | * init/conf.c: | 19 | * init/conf.c: |
91 | 20 | - conf_source_reload_file(): Added missing error return if override | 20 | - conf_reload_path(): Now takes an extra override_path parameter. |
92 | 21 | doesn't parse (code path currently unused). | 21 | - is_conf_file() / is_conf_file_std() / is_conf_file_override(): New |
93 | 22 | - Documentation updates. | 22 | functions to determine type of given file path. |
94 | 23 | * init/job.c: job_new(): Fix for nasty OOM scenario when an attempt is made | 23 | - toggle_conf_name(): New function which convert a conf file |
95 | 24 | to start a chroot job with same name as running single-instance non-chroot | 24 | name to an override name and vice versa. |
96 | 25 | job. Previously, the path for a chrooted Job was set from the (nul) instance | 25 | - majority of remaining functions updated to handle override |
97 | 26 | name of its parent JobClass. However, since that job instance name already | 26 | files. |
98 | 27 | existed outside the chroot and was already D-Bus registered, | 27 | * init/conf.h: Prototypes. |
99 | 28 | nih_dbus_object_new() (which allocates storage and is called by | 28 | * init/job_class.c: Whitespace. |
100 | 29 | job_register()) returned NULL and kept doing so due to being called | 29 | * init/man/init.5: Updated to document override file support. |
101 | 30 | within NIH_MUST(). This resulted in OOM due to an as-yet unidentified | 30 | * init/man/init.8: Added reference to control-alt-delete(7) man page. |
102 | 31 | D-Bus bug (possibly a leak in find_subtree_recurse()). | 31 | * init/paths.h: New macros CONF_EXT_OVERRIDE, CONF_EXT_STD, |
103 | 32 | * init/session.h: Documentation updates. | 32 | IS_CONF_FILE_OVERRIDE and IS_CONF_FILE_STD. |
104 | 33 | * util/test_initctl.c: Cleaned up variable names | 33 | * init/parse_conf.c: Added assertion to remind us forcibly to add |
105 | 34 | in RUN_COMMAND macro. | 34 | override-handling code for directories if we ever allow content in |
106 | 35 | * init/parse_job.c: Documentation updates. | 35 | 'init.conf'. |
107 | 36 | 36 | * init/parse_job.c (parse_job): Additional parameter 'update' to | |
108 | 37 | 2011-04-06 James Hunt <james.hunt@ubuntu.com> | 37 | allow override files to replace existing Job details. |
109 | 38 | 38 | * init/parse_job.h: Updated parse_job() prototype. | |
110 | 39 | * init/conf.c: conf_select_job(): Added Session parameter. | 39 | * init/test_conf.c |
111 | 40 | * init/control.c: control_get_job_by_name(): Handle multiple jobs with same | 40 | - New macros TEST_ENSURE_CLEAN_ENV() and |
112 | 41 | name (but different session) in job_classes hash. | 41 | TEST_FORCE_WATCH_UPDATE(). |
113 | 42 | * init/job_class.c: | 42 | - test_override(): New function. |
114 | 43 | - job_class_remove(): Added Session parameter. | 43 | - test_toggle_conf_name(): New function. |
115 | 44 | - job_class_consider(): Handle multiple jobs with same name | 44 | * init/test_parse_job.c: |
116 | 45 | (but different session) in job_classes hash. | 45 | - Updated for extra parse_job() parameter. |
117 | 46 | - job_class_reconsider(): Handle multiple jobs with same name | 46 | - added a test feature to test_parse_job() to exercise new |
118 | 47 | (but different session) in job_classes hash. | 47 | parameter to parse_job(). |
119 | 48 | - job_class_remove(): Handle incorrect session. | 48 | * util/man/initctl.8: Clarified what it means to restart a job. |
120 | 49 | * init/job_process.c: job_process_spawn(): Updated for sessions and | 49 | |
121 | 50 | chroots. | 50 | Add udev and socket bridges. |
122 | 51 | * init/job_process.h: New enums for: | 51 | |
123 | 52 | - JOB_PROCESS_ERROR_SETUID | 52 | * Makefile.am: Added extra directory. |
124 | 53 | - JOB_PROCESS_ERROR_SETGID | 53 | * New files: |
125 | 54 | * init/session.c: | 54 | - extra/Makefile.am |
126 | 55 | - session_from_dbus(): Added ability to disable sessions. | 55 | - extra/conf/upstart-socket-bridge.conf |
127 | 56 | - Added disable_sessions variable, set via main(). | 56 | - extra/conf/upstart-udev-bridge.conf |
128 | 57 | * init/session.h: Added tabular comment summarising Session object | 57 | - extra/man/socket-event.7 |
129 | 58 | contents for different environments. | 58 | - extra/man/upstart-socket-bridge.8 |
130 | 59 | * init/Makefile.am: Reverted special-casing for session.c. | 59 | - extra/man/upstart-udev-bridge.8 |
131 | 60 | * init/main.c: Addition of new command-line option "--no-sessions" to | 60 | - extra/upstart-socket-bridge.c |
132 | 61 | disable chroot+user sessions (providing a "traditional" Upstart | 61 | - extra/upstart-udev-bridge.c |
133 | 62 | environment. The primary use for this option is the test suite. | 62 | * configure.ac: |
134 | 63 | * init/man/init.8: Updates for "--no-sessions". | 63 | - Check for udev (for upstart-udev-bridge). |
135 | 64 | * init/tests/test_*.c: Replaced explicit Sessions with NULL | 64 | - Add extra/Makefile to AC_CONFIG_FILES. |
136 | 65 | session since tests are not yet session-aware (with the exception of | 65 | * dbus/com.ubuntu.Upstart.xml: Add EmitEventWithFile method. |
137 | 66 | test_job_process.c, all main() functions now set the | 66 | * init/control.c: |
138 | 67 | UPSTART_NO_SESSIONS variable to disable sessions). | 67 | - control_emit_event(): Now a wrapper for control_emit_event_with_file. |
139 | 68 | - control_emit_event_with_file(): New function that operates on an fd. | ||
140 | 69 | * init/control.h: Prototype for control_emit_event_with_file(). | ||
141 | 70 | * init/event.c: | ||
142 | 71 | - event_new(): Initialize event fd. | ||
143 | 72 | - event_pending_handle_jobs(): Now calls event_operator_fds(). | ||
144 | 73 | * init/event.c: Add fd to Event struct. | ||
145 | 74 | * init/event_operator.c: event_operator_fds(): New function. | ||
146 | 75 | * init/event_operator.h: Prototype for event_operator_fds(). | ||
147 | 76 | * init/job.c: job_new(): Initialize fd members. | ||
148 | 77 | * init/job.h: Add fds and num_fds to Job struct. | ||
149 | 78 | |||
150 | 79 | 2011-06-03 James Hunt <james.hunt@ubuntu.com> | ||
151 | 80 | |||
152 | 81 | Add session support. Note that there are no automatically runnable and | ||
153 | 82 | explicit tests yet. However, see TESTING.sessions. | ||
154 | 83 | |||
155 | 84 | * TESTING.sessions: ASCII (reStructuredText) document explaining | ||
156 | 85 | how to run manual tests for session support (for chroots). | ||
157 | 86 | * dbus/Upstart.conf: Simplified to support allowing users to invoke | ||
158 | 87 | all methods (since Upstart now isolates commands by user). | ||
159 | 88 | * init/Makefile.am: Added session.[ch] files. | ||
160 | 89 | * init/session.c: New file. Note that session_from_dbus() will disable sessions | ||
161 | 90 | (by returning the NULL session) if environment variable "UPSTART_NO_SESSIONS" | ||
162 | 91 | is set to any value (used by tests). | ||
163 | 92 | * init/session.h: New file. | ||
164 | 93 | * init/parse_job.h: parse_job(): Add session pointer to prototype. | ||
165 | 94 | * init/parse_job.c: | ||
166 | 95 | - parse_job(): Add session parameter. | ||
167 | 96 | - Update calls to job_class_new() to pass session pointer. | ||
168 | 97 | * init/job.c: job_new(): Crucial change to ensure chroot sessions have | ||
169 | 98 | a unique D-Bus name (LP:#728531). | ||
170 | 99 | * init/job_class.c: | ||
171 | 100 | - job_class_new(): Add session parameter and session support. | ||
172 | 101 | - job_class_remove(): Add session parameter to prototype. | ||
173 | 102 | - job_class_consider(): Only consider jobs from the appropriate session. | ||
174 | 103 | - job_class_reconsider(): Only consider jobs from the appropriate session. | ||
175 | 104 | - job_class_start(): Disallow out-of-session modification. | ||
176 | 105 | - job_class_stop(): Disallow out-of-session modification. | ||
177 | 106 | - job_class_restart(): Disallow out-of-session modification. | ||
178 | 107 | * init/main.c: Add "--no-sessions" command-line option to disable | ||
179 | 108 | sessions and revert to traditional behaviour. | ||
180 | 109 | * init/job_class.h: | ||
181 | 110 | - job_class_new(): Add session pointer to prototype. | ||
182 | 111 | - JobClass: Add session member. | ||
183 | 112 | * init/job_process.c: job_process_spawn(): | ||
184 | 113 | - Call chroot(2) for chroot sessions. | ||
185 | 114 | - Call setuid(2) for user session jobs. | ||
186 | 115 | * init/job.c: | ||
187 | 116 | - job_emit_event(): Set session for event. | ||
188 | 117 | - job_start(): Disallow out-of-session modification. | ||
189 | 118 | - job_stop(): Disallow out-of-session modification. | ||
190 | 119 | - job_restart(): Disallow out-of-session modification. | ||
191 | 120 | * init/event.h: Event: Add session member. | ||
192 | 121 | * init/event.c: | ||
193 | 122 | - event_new(): initialize session to NULL. | ||
194 | 123 | - event_pending_handle_jobs(): Add session handling. | ||
195 | 124 | - event_finished(): Set session for failure event. | ||
196 | 125 | * init/control.c: | ||
197 | 126 | - control_get_job_by_name(): Add session handling. | ||
198 | 127 | - control_get_all_jobs(): Add session handling. | ||
199 | 128 | - control_emit_event(): Add session handling. | ||
200 | 129 | * init/conf.c: | ||
201 | 130 | - conf_source_new(): Initialise session to NULL. | ||
202 | 131 | - conf_reload_path(): Pass session to parse_job(). | ||
203 | 132 | - conf_select_job(): Add session parameter. | ||
204 | 133 | * init/conf.h: | ||
205 | 134 | - ConfSource: Add session member. | ||
206 | 135 | - conf_select_job(): Add session parameter to prototype. | ||
207 | 136 | * All tests updated to set "UPSTART_NO_SESSIONS" (to disable | ||
208 | 137 | sessions). | ||
209 | 138 | |||
210 | 139 | 2011-06-02 James Hunt <james.hunt@ubuntu.com> | ||
211 | 140 | |||
212 | 141 | * contrib/bash_completion/upstart: | ||
213 | 142 | - Made function names more meaningful: | ||
214 | 143 | - _upstart_jobs: Now returns a unique list | ||
215 | 144 | - _upstart_events (nee _upstart_named_events ) now considers all | ||
216 | 145 | "emits" tokens. | ||
217 | 146 | - Updates for "check-config" and "show-config". | ||
218 | 147 | - Added "--session" option. | ||
219 | 148 | - Added "--no-wait" for emit, reload and restart. | ||
220 | 149 | |||
221 | 150 | Man page updates. | ||
222 | 151 | |||
223 | 152 | * init/man/init.5: | ||
224 | 153 | - Quoted dashes. | ||
225 | 154 | - Explain handling of duplicated stanzas. | ||
226 | 155 | - "respawn": Document default count and interval. | ||
227 | 156 | - "emits": Reference "initctl check-config". | ||
228 | 157 | - Added BUGS section. | ||
229 | 158 | - Added copyright. | ||
230 | 159 | * init/man/init.8: | ||
231 | 160 | - Quoted dashes. | ||
232 | 161 | - See Also: Added control-alt-delete(7). | ||
233 | 162 | * util/man/initctl.8: | ||
234 | 163 | - Quoted dashes. | ||
235 | 164 | - "restart": Clarified meaning. | ||
236 | 165 | - "list": Explained "stop/waiting" jobs. | ||
237 | 166 | |||
238 | 167 | 2011-06-01 James Hunt <james.hunt@ubuntu.com> | ||
239 | 168 | |||
240 | 169 | Add D-Bus session support to initctl. | ||
241 | 170 | |||
242 | 171 | * util/initctl.c: | ||
243 | 172 | - Added "--session" command-line option. | ||
244 | 173 | - dbus_bus_type_setter(): New function used by option parser to | ||
245 | 174 | distinguish system/session D-Bus bus type. | ||
246 | 175 | - system_bus variable now replaced by two others: use_dbus (boolean) | ||
247 | 176 | and dbus_bus_type. | ||
248 | 177 | - upstart_open(): Updated to handle multiple D-Bus bus types. | ||
249 | 178 | * util/man/initctl.8: Update for "--session" option. | ||
250 | 179 | * util/tests/test_initctl.c: Updated to make use of use_dbus and | ||
251 | 180 | dbus_bus_type rather than system_bus. | ||
252 | 181 | |||
253 | 182 | Add "show-config" command to initctl. | ||
254 | 183 | |||
255 | 184 | * util/initctl.c: | ||
256 | 185 | - New functions: | ||
257 | 186 | - job_class_condition_handler(): Handler function to retrieve job conditions. | ||
258 | 187 | - job_class_condition_err_handler(): Handler error function for | ||
259 | 188 | job_class_condition_handler(). | ||
260 | 189 | - job_class_parse_events(): Convert RPN "start on" and "stop on" conditions to | ||
261 | 190 | human-readable format. | ||
262 | 191 | - job_class_show_emits(): Display events which job emits. | ||
263 | 192 | - job_class_show_conditions(): Make D-Bus calls to retrieve "start on" and | ||
264 | 193 | "stop on" conditions. | ||
265 | 194 | - show_config_action: Handle "show-config" command.. | ||
266 | 195 | * util/initctl.h: New file providing stack-handling functionality for | ||
267 | 196 | RPN parsing for "show-config" command. | ||
268 | 197 | * util/Makefile.am: Added initctl.h to initctl_SOURCES. | ||
269 | 198 | * util/man/initctl.8: Updated for "show-config" command and associated | ||
270 | 199 | options. | ||
271 | 68 | * util/tests/test_initctl.c: | 200 | * util/tests/test_initctl.c: |
305 | 69 | - START_UPSTART now specifies "--no-sessions" | 201 | - New macros START_UPSTART, STOP_UPSTART, RUN_COMMAND, CREATE_FILE and DELETE_FILE. |
306 | 70 | - test_check_config(): Added test for "--warn". | 202 | These are required since due to the introduction of the |
307 | 71 | * scripts/init-checkconf.sh: Script now also checks any script | 203 | "show-config" initctl command, initctl is no longer solely a proxy |
308 | 72 | sections found unless the new "--noscript" option is specified. | 204 | to Upstart: it now has some intelligence (it parses the |
309 | 73 | Added required "--no-sessions" option to upstart_cmd to ensure Upstart | 205 | "emits", "start on" and "stop on" conditions) and thus must be |
310 | 74 | treats clients requests in traditional manner. | 206 | tested directly. |
311 | 75 | * scripts/man/init-checkconf.8: Update for "--noscript". | 207 | - test_show_config(): New function to test "initctl show-config". |
312 | 76 | * util/initctl.c: Added "--warn" option for check-config command to | 208 | - in_chroot(): New function to detect if tests are being run from |
313 | 77 | warn if any events or jobs are not known. | 209 | within a chroot environment. |
314 | 78 | 210 | - dbus_configured(): New function which performs a basic check to | |
315 | 79 | 2011-03-24 James Hunt <james.hunt@ubuntu.com> | 211 | establish if D-Bus is configured correctly. |
316 | 80 | 212 | - main(): Added call to test_show_config(), conditional on | |
317 | 81 | * init/tests/test_control.c: Added comment. | 213 | a non-chroot environment and a working D-Bus system. |
318 | 82 | * scripts/initctl2dot.py: Fixes to handle 'emits' glob syntax: | 214 | |
319 | 83 | - header(): Change default node to be an event to simplify handling | 215 | Add "check-config" command to initctl. |
320 | 84 | globs in 'emits' stanzas. | 216 | |
288 | 85 | - footer(): Updated for glob event nodes. | ||
289 | 86 | - sanitize(): Protect against glob syntax. | ||
290 | 87 | - show_event(): Update for glob event nodes. | ||
291 | 88 | - show_job(): Explicit specification of record node. | ||
292 | 89 | - show_edges(): Handle 'emits' glob syntax. | ||
293 | 90 | |||
294 | 91 | 2011-03-15 James Hunt <james.hunt@ubuntu.com> | ||
295 | 92 | |||
296 | 93 | * configure.ac: Bump version to 0.9.3. | ||
297 | 94 | * NEWS: Entry for version 0.9.3. | ||
298 | 95 | * conf/rc-sysinit.conf: Added emits stanza for runlevel event. | ||
299 | 96 | * extra/conf/upstart-socket-bridge.conf: Added emits stanza for socket | ||
300 | 97 | event. | ||
301 | 98 | * extra/conf/upstart-udev-bridge.conf: Added emits stanza for udev class | ||
302 | 99 | of events (using globs). | ||
303 | 100 | * init/man/init.5: Updated emits stanza section to explain use of | ||
304 | 101 | wildcard characters. | ||
321 | 102 | * util/initctl.c: | 217 | * util/initctl.c: |
322 | 103 | - New functions: | 218 | - New functions: |
323 | 219 | - allow_event(): Determine if specified event is erroneous or not. | ||
324 | 220 | Handles globbing. | ||
325 | 104 | - allow_job(): Determine if specified job is erroneous or not. | 221 | - allow_job(): Determine if specified job is erroneous or not. |
326 | 105 | Handles variables (such as instance variables). | 222 | Handles variables (such as instance variables). |
327 | 106 | - allow_event(): Determine if specified event is erroneous or not. | ||
328 | 107 | Handles globbing. | ||
329 | 108 | - eval_expr_tree(): | ||
330 | 109 | - Added calls to allow_job() and allow_event(). | ||
331 | 110 | - Slight simplification of operand-handling code. | ||
332 | 111 | * util/tests/test_initctl.c: Simplification of dbus_configured(). | ||
333 | 112 | |||
334 | 113 | 2011-03-11 James Hunt <james.hunt@ubuntu.com> | ||
335 | 114 | |||
336 | 115 | * scripts/Makefile.am: Install improvements for | ||
337 | 116 | "make distcheck". Added uninstall for scripts. | ||
338 | 117 | |||
339 | 118 | 2011-03-10 James Hunt <james.hunt@ubuntu.com> | ||
340 | 119 | |||
341 | 120 | * extra/conf/upstart-socket-bridge.conf: Start as soon as networking is | ||
342 | 121 | available. | ||
343 | 122 | * extra/man/socket-event.7: Minor typo fixes and troff quoting for | ||
344 | 123 | dashes. | ||
345 | 124 | * extra/man/upstart-socket-bridge.8: Removed reference to socket(8) and | ||
346 | 125 | replaced with socket-event(7). | ||
347 | 126 | * extra/man/upstart-udev-bridge.8: Minor typo fixes, troff quoting for | ||
348 | 127 | dashes, and replaced literal quotes with troff quotes. | ||
349 | 128 | * init/control.c: Typo. | ||
350 | 129 | * init/main.c: Corrected indentation. | ||
351 | 130 | * init/man/init.5: Minor typo fixes, troff quoting for | ||
352 | 131 | dashes, and replaced literal quotes with troff quotes. | ||
353 | 132 | * init/man/init.8: Typo. | ||
354 | 133 | * scripts/init-checkconf.sh: Fixed to ensure safety and portability: | ||
355 | 134 | - Quoted all variables. | ||
356 | 135 | - Removed non-portable syntax. | ||
357 | 136 | - Changed to using getopt(1) rather than getopts(1), and added | ||
358 | 137 | long-options. | ||
359 | 138 | * scripts/initctl2dot.py: | ||
360 | 139 | - Changed from os.popen() to (safer) | ||
361 | 140 | subprocess.Popen() | ||
362 | 141 | - Formatting and typos. | ||
363 | 142 | * util/initctl.c: Typo. | ||
364 | 143 | * util/man/initctl.8: Minor typo fixes, troff quoting for | ||
365 | 144 | dashes, and replaced literal quotes with troff quotes. | ||
366 | 145 | * util/tests/test_initctl.c: | ||
367 | 146 | - START_UPSTART: improved comments and minor tidyup. | ||
368 | 147 | - test_show_config(): Placed tests for expected number of lines of | ||
369 | 148 | output *after* checking expected line values. This ensures that if | ||
370 | 149 | problems are encountered (for example D-Bus issues), the person | ||
371 | 150 | viewing the log has a hope of working out what went wrong :-) | ||
372 | 151 | - test_check_config(): As test_show_config(). | ||
373 | 152 | - dbus_configured(): New function that performs a highly rudimentary | ||
374 | 153 | check to see if D-Bus appears to be configured for the environment | ||
375 | 154 | the tests run in. | ||
376 | 155 | - main(): Improved test for running tests within a chroot: we do now | ||
377 | 156 | run all tests assuming that D-Bus is found to be working within a | ||
378 | 157 | chroot environment. | ||
379 | 158 | |||
380 | 159 | 2011-03-07 James Hunt <james.hunt@ubuntu.com> | ||
381 | 160 | |||
382 | 161 | * extra/man/upstart-udev-bridge.8: Added examples. | ||
383 | 162 | * extra/Makefile.am: Create links to upstart-udev-bridge | ||
384 | 163 | man page for well-known Upstart udev events. | ||
385 | 164 | * util/initctl.h: Improved comments for CheckConfigData. | ||
386 | 165 | * scripts/init-checkconf.sh: | ||
387 | 166 | - cleanup(): Make use of $upstart_pid. | ||
388 | 167 | - main(): disown $upstart_pid to stop newer bash versions | ||
389 | 168 | displaying changed child process status. | ||
390 | 169 | * scripts/init2dot.py: | ||
391 | 170 | - Removed erroneous check option. | ||
392 | 171 | - Improved exaplanation of '-r' option. | ||
393 | 172 | * scripts/Makefile.am: Added manual pages. | ||
394 | 173 | * scripts/man/init-checkconf.8: New manual page. | ||
395 | 174 | * scripts/man/initctl2dot.8: New manual page. | ||
396 | 175 | |||
397 | 176 | 2011-03-04 James Hunt <james.hunt@ubuntu.com> | ||
398 | 177 | |||
399 | 178 | * contrib/Makefile.am: Fixed paths and names for scripts. | ||
400 | 179 | * extra/Makefile.am: Update for upstart-socket-bridge. | ||
401 | 180 | * util/tests/test_initctl.c: | ||
402 | 181 | - in_chroot(): New function to detect if in chroot environment. | ||
403 | 182 | - main(): Call in_chroot() to work around bug lp:728988. | ||
404 | 183 | - START_UPSTART(): Only try to connect 10 times. Don't use | ||
405 | 184 | upstart_open() since this uses the system bus whereas we care | ||
406 | 185 | about the session bus. Removed "--debug" as this confuses the | ||
407 | 186 | log output. | ||
408 | 187 | * Moved scripts from "contrib/utils/" to "scripts/" and ensured they | ||
409 | 188 | now install on "make install". | ||
410 | 189 | * Makefile.am: Added scripts directory. | ||
411 | 190 | * configure.ac: Added scripts/Makefile. | ||
412 | 191 | * Packaging changes for socket bridge. | ||
413 | 192 | |||
414 | 193 | 2011-03-03 James Hunt <james.hunt@ubuntu.com> | ||
415 | 194 | |||
416 | 195 | * extra/man/socket-event.7: Man page for new socket event. | ||
417 | 196 | * extra/man/upstart-socket-bridge.8: Man page for socket bridge. | ||
418 | 197 | * upstart-socket-bridge.conf: configuration file for socket | ||
419 | 198 | bridge. | ||
420 | 199 | * contrib/bash_completion/upstart: Updated for new initctl commands | ||
421 | 200 | "show-config" and "check-config". | ||
422 | 201 | * contrib/utils/init-check.sh: Script to determine if the | ||
423 | 202 | specified job configuration file (located outside of /etc/init/) | ||
424 | 203 | is valid or not. | ||
425 | 204 | * contrib/utils/initctl2dot.py: Simply Python script to convert new initctl | ||
426 | 205 | output to GraphViz dot format. Example usage: | ||
427 | 206 | initctl2dot.py -o - | dot -Tpng -o upstart.png | ||
428 | 207 | * init/control.h: New define for USE_SESSION_BUS_ENV. | ||
429 | 208 | * init/control.c: | ||
430 | 209 | - control_handle_bus_type(): New function to allow selection of | ||
431 | 210 | session bus via env var "UPSTART_USE_SESSION_BUS" (for testing). | ||
432 | 211 | - control_bus_open(): Connect to either D-Bus system bus or session bus. | ||
433 | 212 | * init/man/init.8: Updated for --confdir, --session, --no-startup-event | ||
434 | 213 | and --startup-event. | ||
435 | 214 | * init/main.c: | ||
436 | 215 | - Added new options '--startup-event' and '--no-startup-event'. | ||
437 | 216 | - Addition of --session and --confdir command-line option (required for | ||
438 | 217 | test framework to test changes to initctl). | ||
439 | 218 | - handle_confdir(): New function to select alternate confdir using env | ||
440 | 219 | var "UPSTART_CONFDIR" (for testing). | ||
441 | 220 | * init/paths.h: | ||
442 | 221 | - Renamed CONDIR to DEFAULT_CONFDIR to make its use clearer now it can be changed. | ||
443 | 222 | - Renamed CONFILE to DEFAULT_CONFFILE for parity with DEFAULT_CONFDIR. | ||
444 | 223 | - Added define for CONFDIR_ENV. | ||
445 | 224 | * util/initctl.c: | ||
446 | 225 | - Addition of --session command-line option (required for test framework to test | ||
447 | 226 | visualisation changes to initctl). | ||
448 | 227 | - Changed 'system_bus' variable to 'use_dbus' since now we can use either D-Bus bus type. | ||
449 | 228 | - Added 'dbus_bus_type' which encodes D-Bus bus type to use. | ||
450 | 229 | - Added 'verbose_detail' and 'enumerate_events' variables to | ||
451 | 230 | - Created new functions: | ||
452 | 231 | - show_config_action(): New function to handle 'show-config' command. | ||
453 | 232 | - job_class_condition_handler(): Handler function to retrieve job conditions. | ||
454 | 233 | - job_class_condition_err_handler(): Handler error function for | ||
455 | 234 | job_class_condition_handler(). | ||
456 | 235 | - job_class_parse_events(): Convert RPN "start on" and "stop on" conditions to | ||
457 | 236 | human-readable format. | ||
458 | 237 | - job_class_show_emits(): Display events which job emits. | ||
459 | 238 | - job_class_show_conditions(): Make D-Bus calls to retrieve "start on" and | ||
460 | 239 | "stop on" conditions. | ||
461 | 240 | - dbus_bus_type_setter(): Used by option parser to distinguish system/session | ||
462 | 241 | D-Bus bus type. | ||
463 | 242 | - New functions for check-config command; | ||
464 | 243 | - check_config_action: Handler for new check-config command-line | ||
465 | 244 | option. | ||
466 | 245 | - ignored_events_setter(): handler for '--ignore-events' command-line | ||
467 | 246 | option for check-config command. | ||
468 | 247 | - eval_expr_tree(): Evaluate expression tree. | ||
469 | 248 | - check_condition(): High-level function to handle checking start | ||
470 | 249 | on/stop on conditions. | ||
471 | 250 | - tree_filter(): Used for filtering expression tree nodes. | ||
472 | 251 | - display_check_errors(): | ||
473 | 252 | - Updated upstart_open() to handle multiple D-Bus bus types. | ||
474 | 253 | - status_action() and list_action() modified to call: | ||
475 | 254 | - job_class_show_emits() | ||
476 | 255 | - job_class_show_conditions() | ||
477 | 256 | * util/initctl.h: New file providing: | ||
478 | 257 | - stack-handling functionality for RPN parsing | ||
479 | 258 | - New macros: | ||
480 | 259 | - GET_JOB_NAME(): Determine if specified token refers to a job and | ||
481 | 260 | return it if true. | ||
482 | 261 | - IS_INIT_EVEN(): Determine if specified event is an internally | ||
483 | 262 | generated event. | ||
484 | 263 | - MAKE_EXPR_NODE(): Create an ExprNode object. | ||
485 | 264 | - MAKE_JOB_CONDITION(): Create a JobCondition object. | ||
486 | 265 | - New types required for check-config command: | ||
487 | 266 | - CheckConfigData | ||
488 | 267 | - JobCondition | ||
489 | 268 | - ConditionHandlerData | ||
490 | 269 | - ExprNode | ||
491 | 270 | * util/man/initctl.8: | ||
492 | 271 | - Updated for show-config section showing new "--enumerate" format output. | ||
493 | 272 | - Added section for check-config command. | ||
494 | 273 | * util/tests/test_initctl.c: | ||
495 | 274 | - added test_show_config() and test_check_config(). | ||
496 | 275 | - new macros START_UPSTART, STOP_UPSTART, RUN_COMMAND, CREATE_FILE | ||
497 | 276 | and DELETE_FILE. These are required since due to the changes in initctl.c, we | ||
498 | 277 | actually need to run the initctl binary directly (as that is where all | ||
499 | 278 | the emits/start on/stop on parsing occurs). The test stategy adopted is to run | ||
500 | 279 | (a second instance of! :-) Upstart as a non-privileged user | ||
501 | 280 | connected to the session bus and using an alternate config | ||
502 | 281 | directory. Then, by invoking initctl, again connecting to the session | ||
503 | 282 | bus, we test the parsing functionality directly. | ||
504 | 283 | |||
505 | 284 | 2011-02-23 James Hunt <james.hunt@ubuntu.com> | ||
506 | 285 | |||
507 | 286 | * Fixes to allow "make check" to pass with Session support. | ||
508 | 287 | |||
509 | 288 | 2011-01-21 James Hunt <james.hunt@ubuntu.com> | ||
510 | 289 | |||
511 | 290 | * Override file support. | ||
512 | 291 | |||
513 | 292 | 2011-03-03 James Hunt <james.hunt@ubuntu.com> | ||
514 | 293 | |||
515 | 294 | * contrib/bash_completion/upstart: Updated for new initctl show-config | ||
516 | 295 | command. | ||
517 | 296 | * contrib/utils/init-checkconf.sh: Added '-i' option to specify path to | ||
518 | 297 | init daemon (for test builds). Ensure conf file exists. | ||
519 | 298 | * contrib/utils/initctl2dot.py: Updated for changed initctl show-config | ||
520 | 299 | output. | ||
521 | 300 | * util/Makefile.am: Added missing initctl.h to initctl_SOURCES. | ||
522 | 301 | * util/initctl.c: | ||
523 | 302 | - New functions to handle new check-config command. | ||
524 | 303 | - check_config_action: Handler for new check-config command-line | ||
525 | 304 | option. | ||
526 | 305 | - ignored_events_setter(): handler for '--ignore-events' command-line | ||
527 | 306 | option for check-config command. | ||
528 | 307 | - eval_expr_tree(): Evaluate expression tree. | ||
529 | 308 | - check_condition(): High-level function to handle checking start | 223 | - check_condition(): High-level function to handle checking start |
530 | 309 | on/stop on conditions. | 224 | on/stop on conditions. |
531 | 225 | - check_config_action: Handler for "check-config" command. | ||
532 | 226 | - display_check_errors(): Display errors from expression tree nodes | ||
533 | 227 | that are in error. | ||
534 | 228 | - eval_expr_tree(): Evaluate expression tree. | ||
535 | 229 | - ignored_events_setter(): handler for '--ignore-events' command-line | ||
536 | 230 | option for "check-config" command. | ||
537 | 310 | - tree_filter(): Used for filtering expression tree nodes. | 231 | - tree_filter(): Used for filtering expression tree nodes. |
541 | 311 | - display_check_errors(): | 232 | - show_config_action(): Update for check-config mode. |
542 | 312 | - Removed ENSURE_ROOT() macros since this would conflict with user | 233 | - job_class_parse_events(): Update for check-config mode. |
543 | 313 | sessions. | 234 | - job_class_show_emits(): Update for check-config mode. |
544 | 314 | * util/initctl.h: | 235 | * util/initctl.h: |
613 | 315 | - New macros: | 236 | - Added structs for JobCondition, CheckConfigData and ExprNode. |
614 | 316 | - GET_JOB_NAME(): Determine if specified token refers to a job and | 237 | - New macros: MAKE_EXPR_NODE() and MAKE_JOB_CONDITION(). |
615 | 317 | return it if true. | 238 | * util/tests/test_initctl.c: |
616 | 318 | - IS_INIT_EVEN(): Determine if specified event is an internally | 239 | - test_check_config(): New function to test "initctl check-config". |
617 | 319 | generated event. | 240 | - main(): Added call to test_check_config(), conditional on |
618 | 320 | - MAKE_EXPR_NODE(): Create an ExprNode object. | 241 | a non-chroot environment and a working D-Bus system. |
619 | 321 | - MAKE_JOB_CONDITION(): Create a JobCondition object. | 242 | * util/man/initctl.8: Updated for "check-config" command and associated |
620 | 322 | - New types required for check-config command: | 243 | options. |
621 | 323 | - CheckConfigData | 244 | * conf/rc-sysinit.conf: Added "emits" stanza, required by |
622 | 324 | - JobCondition | 245 | "check-config". |
623 | 325 | - ConditionHandlerData | 246 | |
624 | 326 | - ExprNode | 247 | Addition of initctl2dot script for visualisation. |
625 | 327 | * util/man/initctl.8: | 248 | |
626 | 328 | - Updated for show-config section showing new "--enumerate" format output. | 249 | * Makefile.am: Added scripts directory. |
627 | 329 | - Added section for check-config command. | 250 | * configure.ac: Updated AC_CONFIG_FILES for scripts/Makefile. |
628 | 330 | * util/tests/test_initctl.c: | 251 | * scripts/Makefile.am: Makefile for scripts. |
629 | 331 | - START_UPSTART(): Improved test to ensure Upstart has actually | 252 | * scripts/initctl2dot.py: Python script to produce dot(1) graphs of |
630 | 332 | started. | 253 | "initctl show-config" output. |
631 | 333 | - STOP_UPSTART(): Improved test to ensure Upstart has actually | 254 | * scripts/man/initctl2dot.8: Man page for initctl2dot.py script. |
632 | 334 | stopped. | 255 | |
633 | 335 | - test_show_config(): Updated for new show-config --enumerate syntax. | 256 | Addition of init-checkconf script. |
634 | 336 | - test_check_config(): New function to test check-config command. | 257 | |
635 | 337 | 258 | * scripts/init-checkconf.sh: Script to determine if specified job | |
636 | 338 | 2011-02-17 James Hunt <james.hunt@ubuntu.com> | 259 | config file is valid or not. |
637 | 339 | 260 | * scripts/man/init-checkconf.8: Man page for init-checkconf.sh. | |
638 | 340 | * contrib/utils/init-check.sh renamed to init-checkconf.sh. | 261 | * scripts/Makefile.am: Added init-checkconf script and man |
639 | 341 | * contrib/utils/initct2dot.py: | 262 | page. |
640 | 342 | - updated to call "initctl show-config" | 263 | |
641 | 343 | - Added options to allow specification of all colo(u)rs. | 264 | 2011-05-31 James Hunt <james.hunt@ubuntu.com> |
642 | 344 | - Added a '--restrict-to-jobs' option to allow a sub-set of all jobs | 265 | |
643 | 345 | to be viewed (along with their associated jobs and events). | 266 | Add command-line option to use D-Bus session bus (for testing). |
644 | 346 | - Code refactored. | 267 | |
577 | 347 | * init/main.c: | ||
578 | 348 | - Added new options '--startup-event' and '--no-startup-event'. | ||
579 | 349 | * init/man/init.8: Updated for "initctl show-status". | ||
580 | 350 | * util/initctl.c: | ||
581 | 351 | - Reworked code so that rather than utilizing existing 'list' and | ||
582 | 352 | 'status' commands, we now have a new command: 'show-status'. This is | ||
583 | 353 | more logical since it is obvious what it is doing and it also | ||
584 | 354 | doesn't pollute the dynamic data returned by 'status' and 'list' with | ||
585 | 355 | purely static info. | ||
586 | 356 | - upstart_open(): Improved dbus_bus_type usage (now only default to | ||
587 | 357 | system bus). | ||
588 | 358 | - show_config_action(): New function to handle 'show-config' command. | ||
589 | 359 | - job_class_parse_events(): Fixed uninitialized variable issue and | ||
590 | 360 | removed IS_JOB() macro in favour of the ultimately reliable | ||
591 | 361 | IS_JOB_EVENT() macro. | ||
592 | 362 | * util/initctl.h: Only enable stack debugging if DEBUG_STACK defined. | ||
593 | 363 | This ensures that "make check" doesn't fail due to stack DEBUG output. | ||
594 | 364 | * util/man/initctl.8: Updated for new 'show-config' command. | ||
595 | 365 | * util/tests/test_initctl.c: | ||
596 | 366 | - Improved START_UPSTART() and STOP_UPSTART() macros. | ||
597 | 367 | - Renamed test_status_and_list_action_detail() to | ||
598 | 368 | test_show_config_action() to reflect the new command under test. | ||
599 | 369 | - test_show_config_action(): Removed all (now-redundant) tests calling | ||
600 | 370 | "initctl status" and "initctl list" and updated for new 'show-config' | ||
601 | 371 | command. | ||
602 | 372 | |||
603 | 373 | 2011-02-15 James Hunt <james.hunt@ubuntu.com> | ||
604 | 374 | |||
605 | 375 | * contrib/bash_completion/upstart: Update for job visualisation. | ||
606 | 376 | * contrib/utils/init-check.sh: Script to determine if the | ||
607 | 377 | specified job configuration file (located outside of /etc/init/) | ||
608 | 378 | is valid or not. | ||
609 | 379 | * contrib/utils/initctl2dot.py: Simple Python script to convert new initctl | ||
610 | 380 | output to GraphViz dot format. Example usage: | ||
611 | 381 | initctl2dot.py > upstart.dot && dot -Tpng -o upstart.png upstart.dot | ||
612 | 382 | * dbus/upstart.h: Whitespace fix. | ||
645 | 383 | * init/control.c: | 268 | * init/control.c: |
646 | 269 | - Added new boolean use_session_bus. | ||
647 | 270 | - Updated comments. | ||
648 | 384 | - control_handle_bus_type(): New function to allow selection of | 271 | - control_handle_bus_type(): New function to allow selection of |
651 | 385 | session bus via env var "UPSTART_USE_SESSION_BUS" (for testing). | 272 | session bus via env var "UPSTART_USE_SESSION_BUS". |
652 | 386 | - control_bus_open(): Connect to either D-Bus system bus or session bus. | 273 | Also logs use of session bus if use_session_bus set. |
653 | 274 | - control_bus_open(): Now connects to either D-Bus system bus or session bus. | ||
654 | 387 | * init/control.h: New define for USE_SESSION_BUS_ENV. | 275 | * init/control.h: New define for USE_SESSION_BUS_ENV. |
656 | 388 | * init/man/init.8: Update for --confdir and --session. | 276 | * init/main.c: Addition of "--session" command-line option. |
657 | 277 | * init/man/init.8: Update for new "--session" command-line option. | ||
658 | 278 | |||
659 | 279 | * Corrected copyright notices. | ||
660 | 280 | |||
661 | 281 | Add option to allow alternate location for job config files. | ||
662 | 282 | |||
663 | 389 | * init/main.c: | 283 | * init/main.c: |
666 | 390 | - Addition of --session and --confdir command-line option (required for | 284 | - Added "--confdir <dir>" command-line option. |
665 | 391 | test framework to test changes to initctl). | ||
667 | 392 | - handle_confdir(): New function to select alternate confdir using env | 285 | - handle_confdir(): New function to select alternate confdir using env |
717 | 393 | var "UPSTART_CONFDIR" (for testing). | 286 | var "UPSTART_CONFDIR" or command-line option (for testing). |
718 | 394 | * init/paths.h: | 287 | * init/paths.h: Added define for CONFDIR_ENV. |
719 | 395 | - Renamed CONDIR to DEFAULT_CONFDIR to make its use clearer now it can be changed. | 288 | * init/man/init.8: Update for new "--confdir" command-line option. |
720 | 396 | - Renamed CONFILE to DEFAULT_CONFFILE for parity with DEFAULT_CONFDIR. | 289 | |
721 | 397 | - Added define for CONFDIR_ENV. | 290 | Add ability to suppress initial event and/or change its name. |
722 | 398 | * util/initctl.c: | 291 | |
723 | 399 | - Addition of --session command-line option (required for test framework to test | 292 | * init/main.c: New command-line options: "--no-startup-event" and |
724 | 400 | visualisation changes to initctl). | 293 | "--startup-event". If "--no-startup-event" specified, log message as a |
725 | 401 | - Changed 'system_bus' variable to 'use_dbus' since now we can use either D-Bus | 294 | debug aid. |
726 | 402 | bus type. | 295 | * init/man/init.8: Documentation for new command-line options: |
727 | 403 | - Added 'dbus_bus_type' which encodes D-Bus bus type to use. | 296 | "--no-startup-event" and "--startup-event". |
728 | 404 | - Added 'verbose_detail' and 'enumerate_events' variables to | 297 | |
729 | 405 | - Created new functions: | 298 | 2011-05-12 Marc - A. Dahlhaus <mad@wol.de> |
730 | 406 | - job_class_condition_handler(): Handler function to retrieve job conditions. | 299 | |
731 | 407 | - job_class_condition_err_handler(): Handler error function for | 300 | * init/job_class.h (JobClass): Add kill signal member |
732 | 408 | job_class_condition_handler(). | 301 | * init/job_class.c (job_class_new): Initialise kill signal |
733 | 409 | - job_class_parse_events(): Convert RPN "start on" and "stop on" conditions to | 302 | * init/tests/test_job_class.c (test_new): Check kill signal initialised |
734 | 410 | human-readable format. | 303 | correctly. |
735 | 411 | - job_class_show_emits(): Display events which job emits. | 304 | * init/system.c (system_kill): Change to accept a signal rather than |
736 | 412 | - job_class_show_conditions(): Make D-Bus calls to retrieve "start on" and | 305 | a boolean. |
737 | 413 | "stop on" conditions. | 306 | * init/system.h: Update prototype |
738 | 414 | - dbus_bus_type_setter(): Used by option parser to distinguish system/session | 307 | * init/tests/test_system.c (test_kill): Update tests to pass signals |
739 | 415 | D-Bus bus type. | 308 | by value. |
740 | 416 | - Updated upstart_open() to handle multiple D-Bus bus types. | 309 | * init/job_process.c (job_process_kill, job_process_kill_timer): Pass |
741 | 417 | - Changed following functions to error with message if initctl run as | 310 | the configured kill signal, or SIGKILL, to the function rather than |
742 | 418 | non-root user (without this, you get a very cryptic D-Bus error): | 311 | TRUE/FALSE. |
743 | 419 | - start_action() | 312 | * init/parse_job.c (stanza_kill): Add parsing for kill signal. |
744 | 420 | - stop_action() | 313 | * init/tests/test_parse_job.c (test_stanza_kill): Check parsing works |
745 | 421 | - restart_action() | 314 | * init/errors.h: Add illegal signal error and string. |
746 | 422 | - reload_configuration_action() | 315 | * init/man/init.5: Update documentation |
747 | 423 | - log_priority_action() | 316 | |
748 | 424 | - status_action() and list_action() modified to call: | 317 | * init/job_class.h (JobClass): Replace oom_adj with oom_score_adj |
749 | 425 | - job_class_show_emits() | 318 | * init/job_class.c (job_class_new): Replace oom_adj with oom_score_adj. |
750 | 426 | - job_class_show_conditions() | 319 | * init/job_process.c (job_process_spawn): Write the new score |
751 | 427 | * util/initctl.h: New file providing stack-handling functionality for RPN parsing. | 320 | adjustment, falling back to calculating and writing the old value if |
752 | 428 | * util/initctl.8: Updated for --session, and --detail/-d and | 321 | necessary. |
753 | 429 | --enumerate/-e options to status and list commands. | 322 | * init/parse_job.c (stanza_oom): Parse both the new and old values, |
754 | 430 | * util/tests/test_initctl.c: | 323 | converting the old value to the new value if present. |
755 | 431 | - new macros START_UPSTART, STOP_UPSTART, RUN_COMMAND, CREATE_FILE and DELETE_FILE. | 324 | * init/errors.h: Add new error string. |
756 | 432 | These are required since due to the changes in initctl.c, we | 325 | * init/man/init.5: Documentation update. |
757 | 433 | actually need to run the initctl binary directly (as that is where all | 326 | * init/tests/test_job_class.c (test_new): Update check. |
758 | 434 | the emits/start on/stop on parsing occurs). The test stategy adopted is to run | 327 | * init/tests/test_parse_job.c (test_stanza_oom): Update tests. |
759 | 435 | (a second instance of! :-) Upstart as a non-privileged user | 328 | |
760 | 436 | connected to the session bus and using an alternate config | 329 | 2011-05-12 Scott James Remnant <scott@netsplit.com> |
761 | 437 | directory. Then, by invoking initctl, again connecting to the session | 330 | |
762 | 438 | bus, we test the parsing functionality directly. | 331 | * init/job_process.c (job_process_run): Always make the shell script |
763 | 439 | - test_status_and_list_action_detail(): New function to test '-d' and | 332 | fd 9, since that's the highest that shells are required by POSIX to |
764 | 440 | '-e' options for status and list commands. | 333 | support. Pass the file descriptor to job_process_spawn() |
765 | 441 | - updated all remaining functions to use 'use_dbus' rather than 'system_bus'. | 334 | (job_process_run): Accept the extra file descriptor, moving it to fd 9. |
766 | 335 | (job_process_error_read): Add handling for error condition. | ||
767 | 336 | * init/job_process.h: Adjust prototypes, add constant | ||
768 | 337 | * init/tests/test_job_process.c (test_spawn): Add argument to call in | ||
769 | 338 | tests | ||
770 | 339 | |||
771 | 340 | 2011-03-22 Scott James Remnant <scott@netsplit.com> | ||
772 | 341 | |||
773 | 342 | * configure.ac: Bump version to 1.3 | ||
774 | 343 | * NEWS: Begin new release | ||
775 | 344 | |||
776 | 345 | * NEWS: Release 1.2 | ||
777 | 346 | |||
778 | 347 | * init/job_process.c (job_process_run): Correct shell redirection; | ||
779 | 348 | the form we used dosen't work with at least pdksh | ||
780 | 349 | |||
781 | 350 | 2011-03-16 Scott James Remnant <scott@netsplit.com> | ||
782 | 351 | |||
783 | 352 | * configure.ac: Bump version to 1.2 | ||
784 | 353 | * NEWS: Begin new release | ||
785 | 354 | |||
786 | 355 | * NEWS: Release 1.1 | ||
787 | 356 | |||
788 | 357 | * configure.ac (NIH_COPYRIGHT): Update | ||
789 | 358 | |||
790 | 359 | * init/main.c: Don't close the console until initialization is | ||
791 | 360 | complete. | ||
792 | 361 | |||
793 | 362 | * util/Makefile.am (uninstall-hook): Clean up symlinks on uninstall | ||
794 | 363 | |||
795 | 364 | * init/environ.c (environ_all_valid): Only verify that an = is present | ||
796 | 365 | (environ_valid): Drop this function, the part of POSIX I read about | ||
797 | 366 | valid environment variable names only applies to other things defined | ||
798 | 367 | by POSIX, elsewhere it explicitly says Applications may do whatever | ||
799 | 368 | they like (and even encourages to avoid conflict) | ||
800 | 369 | (environ_expand_until): Remove validity check for name. | ||
801 | 370 | * init/environ.h: Update header. | ||
802 | 371 | * init/tests/test_environ.c (test_valid): Drop tests. | ||
803 | 372 | (test_all_valid): Drop name tests. | ||
804 | 373 | (test_expand): Remove illegal expansion test. | ||
805 | 374 | * init/tests/test_control.c (test_emit_event): Remove the test case for | ||
806 | 375 | an invalid name in the environment. | ||
807 | 376 | * init/tests/test_job_class.c (test_start, test_stop) | ||
808 | 377 | (test_restart): Change the invalid argument tests to use an entry | ||
809 | 378 | without an = as the invalid test. | ||
810 | 379 | |||
811 | 380 | * util/reboot.c: pass '-H' to shutdown when called as 'halt' | ||
812 | 381 | |||
813 | 382 | * init/job_process.c (job_process_handler): Check the job's normal exit | ||
814 | 383 | list, decrease log priority of messages from warning to information if | ||
815 | 384 | the exit status or signal is in the list. | ||
816 | 385 | * init/tests/test_job_process.c (test_handler): Change the normal exit | ||
817 | 386 | test cases to not expect the warning | ||
818 | 387 | |||
819 | 388 | * init/job_process.c (job_process_run): Prepend a shell command to the | ||
820 | 389 | pasted script to force the shell to close the file descriptor being | ||
821 | 390 | used to paste the script. The shell will already have a new copy when | ||
822 | 391 | it opened the path. | ||
823 | 392 | |||
824 | 393 | 2011-03-15 James Hunt <james.hunt@ubuntu.com> | ||
825 | 394 | |||
826 | 395 | * init/conf.c (conf_source_reload, conf_source_reload_dir): Fix typos | ||
827 | 396 | in doc-strings | ||
828 | 397 | * init/job_process.c (job_process_run): Fix typo in doc-string | ||
829 | 398 | * init/parse_job.c (stanza_env): Fix typo in doc-string | ||
830 | 399 | |||
831 | 400 | 2011-03-15 Patty Langasek <harmoney@dodds.net> | ||
832 | 401 | |||
833 | 402 | * init/man/init.5: Grammar fixes | ||
834 | 403 | |||
835 | 404 | 2011-03-15 Jacek Konieczny <jajcus@jajcus.net> | ||
836 | 405 | |||
837 | 406 | * contrib/vim/syntax/upstart.vim: Further improve syntax hilighting | ||
838 | 407 | |||
839 | 408 | 2011-03-01 Scott James Remnant <scott@netsplit.com> | ||
840 | 409 | |||
841 | 410 | * configure.ac: Bump version to 1.1 | ||
842 | 411 | * NEWS: Begin new release | ||
843 | 412 | |||
844 | 413 | * NEWS: Release 1.0 | ||
845 | 414 | |||
846 | 415 | 2011-02-17 Scott James Remnant <scott@netsplit.com> | ||
847 | 416 | |||
848 | 417 | * configure.ac, NEWS: Bump version to 1.0 | ||
849 | 418 | * TODO: Update. | ||
850 | 419 | |||
851 | 420 | * init/tests/test_conf.c (test_source_reload_job_dir): Add tests for | ||
852 | 421 | a crasher bug when a file is created called ".conf" | ||
853 | 422 | * init/conf.c (conf_dir_filter): Apply fix for the crasher; check that | ||
854 | 423 | the character before the ".conf" extension is not "/" | ||
855 | 424 | * NEWS: Update. | ||
856 | 442 | 425 | ||
857 | 443 | 2011-01-06 Petr Lautrbach <plautrba@redhat.com> | 426 | 2011-01-06 Petr Lautrbach <plautrba@redhat.com> |
858 | 444 | 427 | ||
859 | @@ -500,14 +483,6 @@ | |||
860 | 500 | 483 | ||
861 | 501 | 2010-12-10 Scott James Remnant <scott@netsplit.com> | 484 | 2010-12-10 Scott James Remnant <scott@netsplit.com> |
862 | 502 | 485 | ||
863 | 503 | * Socket bridge and udev bridge support. | ||
864 | 504 | |||
865 | 505 | 2010-12-10 Scott James Remnant <scott@netsplit.com> | ||
866 | 506 | |||
867 | 507 | * Session support (chroots, sessions and user-session). | ||
868 | 508 | |||
869 | 509 | 2010-12-10 Scott James Remnant <scott@netsplit.com> | ||
870 | 510 | |||
871 | 511 | * dbus/upstart.h (DBUS_SERVICE_UPSTART, DBUS_ADDRESS_UPSTART): | 486 | * dbus/upstart.h (DBUS_SERVICE_UPSTART, DBUS_ADDRESS_UPSTART): |
872 | 512 | For debugging purposes, when -DDEBUG is given, change the values of | 487 | For debugging purposes, when -DDEBUG is given, change the values of |
873 | 513 | these constants. You'll need to modify your own D-Bus configuration | 488 | these constants. You'll need to modify your own D-Bus configuration |
874 | 514 | 489 | ||
875 | === modified file 'NEWS' | |||
876 | --- NEWS 2011-05-25 19:25:11 +0000 | |||
877 | +++ NEWS 2011-06-17 11:15:58 +0000 | |||
878 | @@ -1,78 +1,70 @@ | |||
954 | 1 | 0.9.7 2011-04-20 | 1 | 1.4 xxxx-xx-xx |
955 | 2 | 2 | ||
956 | 3 | * Fix for user sessions to retain backwards compatibility behaviour | 3 | 1.3 2011-06-14 "Concordia" |
957 | 4 | where a non-privileged user can enquire on jobs owned by the | 4 | |
958 | 5 | global namespace. | 5 | * New upstart-socket-bridge application which allows jobs to be |
959 | 6 | 6 | started when an incoming client socket connection is initiated | |
960 | 7 | 0.9.6 2011-04-15 | 7 | (requires a suitably modified server daemon since jobs only |
961 | 8 | 8 | need call accept(2) before reading from the socket). | |
962 | 9 | * Fix for nasty OOM scenario when an attempt is made to start | 9 | * User session support allowing non-privileged users to |
963 | 10 | a chroot job with same name as running single-instance | 10 | manipulate their own jobs (not available within a chroot |
964 | 11 | non-chroot job. Previously, the path for a chrooted Job | 11 | environment). |
965 | 12 | was set from the (nul) instance name of its parent JobClass. | 12 | * Chroot support allowing jobs to be controlled within chroot |
966 | 13 | However, since that job instance name already existed | 13 | environments. |
967 | 14 | outside the chroot and was already D-Bus registered, | 14 | * Updated bash completion script. |
968 | 15 | nih_dbus_object_new() (which allocates storage and is | 15 | * Updated vim syntax script. |
969 | 16 | called by job_register()) returned NULL and kept doing so | 16 | * init-checkconf script used to check syntax of Job |
970 | 17 | due to being called within NIH_MUST(). This resulted in | 17 | Configuration Files (including script sections). |
971 | 18 | OOM due to an as-yet unidentified D-Bus bug (possibly a | 18 | * initctl2dot script to convert initctl(8) output to GraphViz |
972 | 19 | leak in find_subtree_recurse()). | 19 | dot(1) format for analysing relationships between jobs and |
973 | 20 | 20 | events. | |
974 | 21 | 0.9.5 2011-04-06 | 21 | * New "check-config" initctl command to check for jobs whose |
975 | 22 | 22 | * "start on" and "stop on" events cannot be satisfied. | |
976 | 23 | * Important fixes for user and chroot sessions. | 23 | * New "show-config" initctl command to display "start on", "stop |
977 | 24 | * scripts/init-checkconf.sh: Now checks script sections too. | 24 | on" and emits" information in parseable format. |
978 | 25 | * util/initctl.c: Added "--warn" option for check-config command | 25 | * New initctl command-line option: "--session" for D-Bus |
979 | 26 | to warn if any events or jobs are not known. | 26 | session connection. |
980 | 27 | 27 | * New init command line options (mostly for testing): | |
981 | 28 | 0.9.4 2011-03-24 | 28 | - "--session" for D-Bus session bus. |
982 | 29 | 29 | - "--confdir <dir>". | |
983 | 30 | * scripts/initctl2dot.py: Fix to handle 'emits' glob syntax | 30 | - "--startup-event <event>". |
984 | 31 | which was causing script to fail for upstart-udev-bridge. | 31 | - "--no-startup-event". |
985 | 32 | 32 | * New "kill signal" stanza to allow override of SIGTERM when | |
986 | 33 | 0.9.3 2011-03-15 | 33 | stopping jobs. |
987 | 34 | 34 | * Add support for the oom_score_adj procfs API. | |
988 | 35 | * Added missing emits stanzas for supplied .conf files. | 35 | * Improved POSIX compliance when running shell scripts. |
989 | 36 | 36 | ||
990 | 37 | * Added wildcard/globbing facility to initctl.c (for check-config | 37 | 1.2 2011-03-22 "This sort of thing is my bag, baby" |
991 | 38 | command). | 38 | |
992 | 39 | 39 | * Fixed incorrect shell redirection syntax that broke at least | |
993 | 40 | * Updated man page on emits stanza syntax. | 40 | pdksh. (Bug: #739984) |
994 | 41 | 41 | ||
995 | 42 | 0.9.2 2011-03-11 | 42 | 1.1 2011-03-16 "It's probably 'cause you think you're cooler than me" |
996 | 43 | 43 | ||
997 | 44 | * Improvements to existing documentation. | 44 | * When /sbin/halt is called (without -p), this now results in the |
998 | 45 | * scripts/man/init-checkconf.8: New manual page. | 45 | system being halted and not powered down. If you meant it to be |
999 | 46 | * scripts/man/initctl2dot.8: New manual page. | 46 | powered down, use /sbin/poweroff. (Bug: #532366) |
1000 | 47 | * packaging improvements (including "make distcheck" fix). | 47 | |
1001 | 48 | * extra/man/upstart-udev-bridge.8: Added examples. | 48 | * Fixed file descriptor leak of /proc/self/fd/NN to shell scripts |
1002 | 49 | * extra/Makefile.am: Create links to upstart-udev-bridge | 49 | executed by Upstart. (Bug: #619269) |
1003 | 50 | man page for well-known Upstart udev events. | 50 | |
1004 | 51 | 51 | * Fixed bug where console was closed too early, causing loss of error | |
1005 | 52 | 0.9.1 2011-03-03 | 52 | messages and non-functioning keyboard-request event, |
1006 | 53 | 53 | (Bug: #707151) | |
1007 | 54 | * Added supporting documentation for upstart-socket-bridge and | 54 | |
1008 | 55 | sessions and chroot support. | 55 | * Fixed bug where environment variables containing unusual characters |
1009 | 56 | 56 | were not accepted due to a mis-reading of POSIX. (Bug: #567068). | |
1010 | 57 | * Added job configuration file for upstart-socket-bridge. | 57 | |
1011 | 58 | 58 | * Fixed non-removal of symlinks on "make uninstall". (Bug: #604227) | |
1012 | 59 | * Added job/event visualisation support. This comprises a new | 59 | |
1013 | 60 | initctl command, "show-config" which generates human-readable | 60 | * Reduced priority of job termination messages from warn to info |
1014 | 61 | (and machine parseable) output showing start on, stop on and | 61 | if the exit status or signal is listed in "normal exit". |
1015 | 62 | emits details for each job. See initctl.8 for further details. | 62 | (Bug: #522197) |
1016 | 63 | The output from show-config is used by the new script | 63 | |
1017 | 64 | contrib/utils/initctl2dot.py which graphs the data in GraphViz | 64 | 1.0 2011-03-01 "This is a fertile land, and we will thrive" |
1018 | 65 | format. | 65 | |
1019 | 66 | 66 | * Fixed an assertion when a file named /etc/init/.conf is created. | |
1020 | 67 | * Added new initctl command check-config allowing unreachable | 67 | Discovered by Коренберг Марк (Bug: #720573) |
946 | 68 | job conditions to be detected. See initctl.8 for further | ||
947 | 69 | details. | ||
948 | 70 | |||
949 | 71 | * Added script contrib/utils/init-checkconf.sh which allows | ||
950 | 72 | non-privileged users to check job configuration files for syntax | ||
951 | 73 | errors prior to installing in /etc/init/. | ||
952 | 74 | |||
953 | 75 | 0.9.0 2011-02-24 | ||
1021 | 76 | 68 | ||
1022 | 77 | * utmp entries will be replaced with DEAD_PROCESS ones when a | 69 | * utmp entries will be replaced with DEAD_PROCESS ones when a |
1023 | 78 | pid supervised by Upstart terminates. (Bug: #183729) | 70 | pid supervised by Upstart terminates. (Bug: #183729) |
1024 | @@ -83,29 +75,6 @@ | |||
1025 | 83 | * Included bash completion script in contrib directory. | 75 | * Included bash completion script in contrib directory. |
1026 | 84 | (Bug: #672067) | 76 | (Bug: #672067) |
1027 | 85 | 77 | ||
1028 | 86 | * Addition of Session support (chroots, sessions and | ||
1029 | 87 | user-session). | ||
1030 | 88 | |||
1031 | 89 | * Socket bridge support allowing jobs to be started based on | ||
1032 | 90 | socket connections. Examples of supported syntax: | ||
1033 | 91 | |||
1034 | 92 | start on socket PROTO=inet PORT=1234 | ||
1035 | 93 | start on socket PROTO=unix PATH=/var/run/.s.pgsql.1234 | ||
1036 | 94 | start on socket PROTO=unix PATH=@/at/upstart/example | ||
1037 | 95 | |||
1038 | 96 | * udev bridge support imported from Ubuntu. See | ||
1039 | 97 | "man 8 upstart-udev-bridge" for further details. | ||
1040 | 98 | |||
1041 | 99 | * Override file support allowing the creation of files named | ||
1042 | 100 | "<job_conf>.override" whose contents override that found in | ||
1043 | 101 | "<job_conf>.conf". Useful to modify a job without touching its | ||
1044 | 102 | .conf file. For example, a job can now be disabled simply by | ||
1045 | 103 | doing: | ||
1046 | 104 | |||
1047 | 105 | echo "manual" >> /etc/init/jobname.override | ||
1048 | 106 | |||
1049 | 107 | See "man 5 init" for further details. | ||
1050 | 108 | |||
1051 | 109 | 0.6.7 2010-12-14 "Return of the Mole" | 78 | 0.6.7 2010-12-14 "Return of the Mole" |
1052 | 110 | 79 | ||
1053 | 111 | * A new "manual" stanza has been added to the configuration, this | 80 | * A new "manual" stanza has been added to the configuration, this |
1054 | 112 | 81 | ||
1055 | === added file 'TESTING.sessions' | |||
1056 | --- TESTING.sessions 1970-01-01 00:00:00 +0000 | |||
1057 | +++ TESTING.sessions 2011-06-17 11:15:58 +0000 | |||
1058 | @@ -0,0 +1,263 @@ | |||
1059 | 1 | .. contents:: | ||
1060 | 2 | |||
1061 | 3 | ============================= | ||
1062 | 4 | Testing Sessions with Upstart | ||
1063 | 5 | ============================= | ||
1064 | 6 | |||
1065 | 7 | Upstart now has support for chroots which are implemented by creating a | ||
1066 | 8 | separate session for every user within each chroot. It also has partial | ||
1067 | 9 | support for user sessions, but since this is experimental (and disabled | ||
1068 | 10 | in Ubuntu), this document does not cover testing this feature. | ||
1069 | 11 | |||
1070 | 12 | The session support does not yet provide full tests (as would be run by | ||
1071 | 13 | "``make check``"). This is partly due to the complexity of automatically | ||
1072 | 14 | testing some of the scenarios below. | ||
1073 | 15 | |||
1074 | 16 | This document attempts to outline the minimum set of tests that should | ||
1075 | 17 | be performed to ensure that chroot support works as expected. | ||
1076 | 18 | |||
1077 | 19 | Assumptions | ||
1078 | 20 | =========== | ||
1079 | 21 | |||
1080 | 22 | You are running an Ubuntu or Debian system. | ||
1081 | 23 | |||
1082 | 24 | Setup | ||
1083 | 25 | ===== | ||
1084 | 26 | |||
1085 | 27 | #. Install a chroot environement (such as ``schroot(1)``) and configure it. | ||
1086 | 28 | #. run, "``debootstrap(8)``" to install the same release as you are running into your chroot. | ||
1087 | 29 | #. Create the following files *outside* your chroot. | ||
1088 | 30 | |||
1089 | 31 | - ``/etc/init/foo.conf``:: | ||
1090 | 32 | |||
1091 | 33 | start on wibble | ||
1092 | 34 | |||
1093 | 35 | script | ||
1094 | 36 | exec 2>>/tmp/foo.$$.log | ||
1095 | 37 | set -x | ||
1096 | 38 | echo "foo: stat=`stat /`" | ||
1097 | 39 | echo "foo: env=`env`" | ||
1098 | 40 | sleep 999 | ||
1099 | 41 | end script | ||
1100 | 42 | |||
1101 | 43 | - ``/etc/init/outside_chroot.conf``:: | ||
1102 | 44 | |||
1103 | 45 | start on A | ||
1104 | 46 | |||
1105 | 47 | script | ||
1106 | 48 | exec 2>>/tmp/outside_chroot.$$.log | ||
1107 | 49 | set -x | ||
1108 | 50 | echo "in_chroot: stat=`stat /`" | ||
1109 | 51 | echo "in_chroot: env=`env`" | ||
1110 | 52 | sleep 999 | ||
1111 | 53 | end script | ||
1112 | 54 | |||
1113 | 55 | #. Create following files inside chroot environment. | ||
1114 | 56 | |||
1115 | 57 | - ``/path/to/chroot/etc/init/foo.conf``:: | ||
1116 | 58 | |||
1117 | 59 | start on wibble | ||
1118 | 60 | |||
1119 | 61 | script | ||
1120 | 62 | exec 2>>/tmp/foo.$$.log | ||
1121 | 63 | set -x | ||
1122 | 64 | echo "foo: stat=`stat /`" | ||
1123 | 65 | echo "foo: env=`env`" | ||
1124 | 66 | sleep 999 | ||
1125 | 67 | end script | ||
1126 | 68 | |||
1127 | 69 | - ``/path/to/chroot/etc/init/in_chroot.conf``:: | ||
1128 | 70 | |||
1129 | 71 | start on A | ||
1130 | 72 | |||
1131 | 73 | script | ||
1132 | 74 | exec 2>>/tmp/in_chroot.$$.log | ||
1133 | 75 | set -x | ||
1134 | 76 | echo "in_chroot: stat=`stat /`" | ||
1135 | 77 | echo "in_chroot: env=`env`" | ||
1136 | 78 | sleep 999 | ||
1137 | 79 | end script | ||
1138 | 80 | |||
1139 | 81 | |||
1140 | 82 | Run as non-``root`` with no chroot | ||
1141 | 83 | ================================== | ||
1142 | 84 | |||
1143 | 85 | - ``initctl list`` | ||
1144 | 86 | |||
1145 | 87 | Ensure list is contents of ``/etc/init/``: the command below should | ||
1146 | 88 | return no output:: | ||
1147 | 89 | |||
1148 | 90 | cmp <(initctl list|awk '{print $1}'|sort -u) <(cd /etc/init && ls *.conf|cut -d: -f2-|sed 's/\.conf//g'|sort -u) | ||
1149 | 91 | |||
1150 | 92 | - ``initctl status cron`` | ||
1151 | 93 | |||
1152 | 94 | Should work. | ||
1153 | 95 | |||
1154 | 96 | - ``initctl show-config`` | ||
1155 | 97 | |||
1156 | 98 | Should work. | ||
1157 | 99 | |||
1158 | 100 | - ``initctl check-config`` | ||
1159 | 101 | |||
1160 | 102 | Should work. | ||
1161 | 103 | |||
1162 | 104 | - ``start foo`` | ||
1163 | 105 | |||
1164 | 106 | Should fail ("``initctl: Rejected send message``"). | ||
1165 | 107 | |||
1166 | 108 | - ``stop cron`` | ||
1167 | 109 | |||
1168 | 110 | Should fail ("``initctl: Rejected send message``"). | ||
1169 | 111 | |||
1170 | 112 | - ``restart cron`` | ||
1171 | 113 | |||
1172 | 114 | Should fail ("``initctl: Rejected send message``"). | ||
1173 | 115 | |||
1174 | 116 | - ``initctl emit bar`` | ||
1175 | 117 | |||
1176 | 118 | Should fail ("``initctl: Rejected send message``"). | ||
1177 | 119 | |||
1178 | 120 | Run as ``root`` with no chroot | ||
1179 | 121 | ============================== | ||
1180 | 122 | |||
1181 | 123 | - ``initctl list`` | ||
1182 | 124 | |||
1183 | 125 | Ensure list is contents of ``/etc/init/``: command below should return no output:: | ||
1184 | 126 | |||
1185 | 127 | cmp <(initctl list|awk '{print $1}'|sort -u) <(cd /etc/init && ls *.conf|cut -d: -f2-|sed 's/\.conf//g'|sort -u) | ||
1186 | 128 | |||
1187 | 129 | - ``initctl status outside_chroot`` | ||
1188 | 130 | |||
1189 | 131 | Should work. | ||
1190 | 132 | |||
1191 | 133 | - ``initctl status in_chroot`` | ||
1192 | 134 | |||
1193 | 135 | Should fail with message:: | ||
1194 | 136 | |||
1195 | 137 | initct: Unknown job: in_chroot | ||
1196 | 138 | |||
1197 | 139 | - ``initctl show-config`` | ||
1198 | 140 | |||
1199 | 141 | Should work. | ||
1200 | 142 | |||
1201 | 143 | - ``initctl check-config`` | ||
1202 | 144 | |||
1203 | 145 | Should work. | ||
1204 | 146 | |||
1205 | 147 | - ``start in_chroot`` | ||
1206 | 148 | |||
1207 | 149 | Should fail with message:: | ||
1208 | 150 | |||
1209 | 151 | initct: Unknown job: in_chroot | ||
1210 | 152 | |||
1211 | 153 | - ``start outside_chroot`` | ||
1212 | 154 | |||
1213 | 155 | Should work. | ||
1214 | 156 | |||
1215 | 157 | - ``stop in_chroot`` | ||
1216 | 158 | |||
1217 | 159 | Should fail with message:: | ||
1218 | 160 | |||
1219 | 161 | initct: Unknown job: in_chroot | ||
1220 | 162 | |||
1221 | 163 | - ``restart outside_chroot`` | ||
1222 | 164 | |||
1223 | 165 | Should work. | ||
1224 | 166 | |||
1225 | 167 | - ``stop outside_chroot`` | ||
1226 | 168 | |||
1227 | 169 | Should work. | ||
1228 | 170 | |||
1229 | 171 | - ``initctl emit wibble`` | ||
1230 | 172 | |||
1231 | 173 | - Ensure ``/etc/init/foo.conf`` runs by looking at the log and ensuring | ||
1232 | 174 | the inode for the stat of '``/``' is the same as running "``stat /``" on | ||
1233 | 175 | the command-line. | ||
1234 | 176 | |||
1235 | 177 | * Ensure ``/path/to/chroot/etc/init/foo.conf`` does *NOT* run. | ||
1236 | 178 | |||
1237 | 179 | - ``initctl emit A`` | ||
1238 | 180 | |||
1239 | 181 | - Ensure ``/etc/init/outside_chroot.conf`` runs. | ||
1240 | 182 | |||
1241 | 183 | - Ensure ``/path/to/chroot/etc/init/in_chroot.conf`` does *NOT* run. | ||
1242 | 184 | |||
1243 | 185 | Run as ``root`` inside a chroot | ||
1244 | 186 | =============================== | ||
1245 | 187 | |||
1246 | 188 | - ``initctl list`` | ||
1247 | 189 | |||
1248 | 190 | Ensure list is contents of ``/path/to/chroot/etc/init/``: command below should return no output:: | ||
1249 | 191 | |||
1250 | 192 | cmp <(initctl list|awk '{print $1}'|sort -u) <(cd /etc/init && ls *.conf|cut -d: -f2-|sed 's/\.conf//g'|sort -u) | ||
1251 | 193 | |||
1252 | 194 | - ``initctl status in_chroot`` | ||
1253 | 195 | |||
1254 | 196 | Should work. | ||
1255 | 197 | |||
1256 | 198 | - ``initctl status outside_chroot`` | ||
1257 | 199 | |||
1258 | 200 | Should fail with message:: | ||
1259 | 201 | |||
1260 | 202 | initct: Unknown job: outside_chroot | ||
1261 | 203 | |||
1262 | 204 | - ``initctl show-config`` | ||
1263 | 205 | |||
1264 | 206 | Should work. | ||
1265 | 207 | |||
1266 | 208 | - ``initctl check-config`` | ||
1267 | 209 | |||
1268 | 210 | Should work. | ||
1269 | 211 | |||
1270 | 212 | - ``start outside_chroot`` | ||
1271 | 213 | |||
1272 | 214 | Should fail with message:: | ||
1273 | 215 | |||
1274 | 216 | initct: Unknown job: outside_chroot | ||
1275 | 217 | |||
1276 | 218 | - ``stop outside_chroot`` | ||
1277 | 219 | |||
1278 | 220 | Should fail with message:: | ||
1279 | 221 | |||
1280 | 222 | initct: Unknown job: outside_chroot | ||
1281 | 223 | |||
1282 | 224 | - ``start in_chroot`` | ||
1283 | 225 | |||
1284 | 226 | Should work. | ||
1285 | 227 | |||
1286 | 228 | - ``restart in_chroot`` | ||
1287 | 229 | |||
1288 | 230 | Should work. | ||
1289 | 231 | |||
1290 | 232 | - ``stop in_chroot`` | ||
1291 | 233 | |||
1292 | 234 | Should work. | ||
1293 | 235 | |||
1294 | 236 | - ``initctl emit wibble`` | ||
1295 | 237 | |||
1296 | 238 | - Ensure ``/path/to/chroot/etc/init/foo.conf`` runs by looking at the log and ensuring | ||
1297 | 239 | the inode for the stat of '``/``' is the same as running "``stat /``" on the command-line. | ||
1298 | 240 | |||
1299 | 241 | - Ensure ``/etc/init/foo.conf`` does *NOT* run. | ||
1300 | 242 | |||
1301 | 243 | - ``initctl emit A`` | ||
1302 | 244 | |||
1303 | 245 | - Ensure ``/path/to/chroot/etc/init/in_chroot.conf`` runs. | ||
1304 | 246 | |||
1305 | 247 | - Ensure ``/etc/init/outside_chroot.conf`` does *NOT* run. | ||
1306 | 248 | |||
1307 | 249 | Run as non-root inside a chroot | ||
1308 | 250 | =============================== | ||
1309 | 251 | |||
1310 | 252 | Not supported. | ||
1311 | 253 | |||
1312 | 254 | Run with ``--no-sessions`` | ||
1313 | 255 | ========================== | ||
1314 | 256 | |||
1315 | 257 | The "``--no-sessions``" option makes Upstart behave as it used to prior to | ||
1316 | 258 | the introduction of session support. | ||
1317 | 259 | |||
1318 | 260 | #. Reboot system and specify "``--no-sessions``" on kernel command-line. | ||
1319 | 261 | |||
1320 | 262 | #. Ensure "``initctl list``" within a chroot displays the same list as | ||
1321 | 263 | "``initctl list``" run outside of any chroot environment. | ||
1322 | 0 | 264 | ||
1323 | === modified file 'TODO' | |||
1324 | --- TODO 2010-02-04 08:47:46 +0000 | |||
1325 | +++ TODO 2011-06-17 11:15:58 +0000 | |||
1326 | @@ -1,10 +1,4 @@ | |||
1334 | 1 | Merge 1216.1.1 from Ubuntu (reload command), add test case. | 1 | 1.x series: |
1328 | 2 | |||
1329 | 3 | __abort_msg should be weak or changed | ||
1330 | 4 | |||
1331 | 5 | |||
1332 | 6 | |||
1333 | 7 | 0.6.x series: | ||
1335 | 8 | 2 | ||
1336 | 9 | * going into runlevel S from !S, need to stty console | 3 | * going into runlevel S from !S, need to stty console |
1337 | 10 | * going into 6, 0 or 1, need to stty console | 4 | * going into 6, 0 or 1, need to stty console |
1338 | 11 | 5 | ||
1339 | === modified file 'configure' | |||
1340 | --- configure 2011-05-25 19:25:11 +0000 | |||
1341 | +++ configure 2011-06-17 11:15:58 +0000 | |||
1342 | @@ -1,6 +1,6 @@ | |||
1343 | 1 | #! /bin/sh | 1 | #! /bin/sh |
1344 | 2 | # Guess values for system-dependent variables and create Makefiles. | 2 | # Guess values for system-dependent variables and create Makefiles. |
1346 | 3 | # Generated by GNU Autoconf 2.67 for upstart 0.9.7. | 3 | # Generated by GNU Autoconf 2.67 for upstart 1.3. |
1347 | 4 | # | 4 | # |
1348 | 5 | # Report bugs to <upstart-devel@lists.ubuntu.com>. | 5 | # Report bugs to <upstart-devel@lists.ubuntu.com>. |
1349 | 6 | # | 6 | # |
1350 | @@ -13,7 +13,7 @@ | |||
1351 | 13 | # This configure script is free software; the Free Software Foundation | 13 | # This configure script is free software; the Free Software Foundation |
1352 | 14 | # gives unlimited permission to copy, distribute and modify it. | 14 | # gives unlimited permission to copy, distribute and modify it. |
1353 | 15 | # | 15 | # |
1355 | 16 | # Copyright © 2011 Canonical Ltd. | 16 | # Copyright © 2011 Scott James Remnant, Canonical Ltd. |
1356 | 17 | ## -------------------- ## | 17 | ## -------------------- ## |
1357 | 18 | ## M4sh Initialization. ## | 18 | ## M4sh Initialization. ## |
1358 | 19 | ## -------------------- ## | 19 | ## -------------------- ## |
1359 | @@ -703,8 +703,8 @@ | |||
1360 | 703 | # Identity of this package. | 703 | # Identity of this package. |
1361 | 704 | PACKAGE_NAME='upstart' | 704 | PACKAGE_NAME='upstart' |
1362 | 705 | PACKAGE_TARNAME='upstart' | 705 | PACKAGE_TARNAME='upstart' |
1365 | 706 | PACKAGE_VERSION='0.9.7' | 706 | PACKAGE_VERSION='1.3' |
1366 | 707 | PACKAGE_STRING='upstart 0.9.7' | 707 | PACKAGE_STRING='upstart 1.3' |
1367 | 708 | PACKAGE_BUGREPORT='upstart-devel@lists.ubuntu.com' | 708 | PACKAGE_BUGREPORT='upstart-devel@lists.ubuntu.com' |
1368 | 709 | PACKAGE_URL='' | 709 | PACKAGE_URL='' |
1369 | 710 | 710 | ||
1370 | @@ -1511,7 +1511,7 @@ | |||
1371 | 1511 | # Omit some internal or obsolete options to make the list less imposing. | 1511 | # Omit some internal or obsolete options to make the list less imposing. |
1372 | 1512 | # This message is too long to be a string in the A/UX 3.1 sh. | 1512 | # This message is too long to be a string in the A/UX 3.1 sh. |
1373 | 1513 | cat <<_ACEOF | 1513 | cat <<_ACEOF |
1375 | 1514 | \`configure' configures upstart 0.9.7 to adapt to many kinds of systems. | 1514 | \`configure' configures upstart 1.3 to adapt to many kinds of systems. |
1376 | 1515 | 1515 | ||
1377 | 1516 | Usage: $0 [OPTION]... [VAR=VALUE]... | 1516 | Usage: $0 [OPTION]... [VAR=VALUE]... |
1378 | 1517 | 1517 | ||
1379 | @@ -1581,7 +1581,7 @@ | |||
1380 | 1581 | 1581 | ||
1381 | 1582 | if test -n "$ac_init_help"; then | 1582 | if test -n "$ac_init_help"; then |
1382 | 1583 | case $ac_init_help in | 1583 | case $ac_init_help in |
1384 | 1584 | short | recursive ) echo "Configuration of upstart 0.9.7:";; | 1584 | short | recursive ) echo "Configuration of upstart 1.3:";; |
1385 | 1585 | esac | 1585 | esac |
1386 | 1586 | cat <<\_ACEOF | 1586 | cat <<\_ACEOF |
1387 | 1587 | 1587 | ||
1388 | @@ -1723,14 +1723,14 @@ | |||
1389 | 1723 | test -n "$ac_init_help" && exit $ac_status | 1723 | test -n "$ac_init_help" && exit $ac_status |
1390 | 1724 | if $ac_init_version; then | 1724 | if $ac_init_version; then |
1391 | 1725 | cat <<\_ACEOF | 1725 | cat <<\_ACEOF |
1393 | 1726 | upstart configure 0.9.7 | 1726 | upstart configure 1.3 |
1394 | 1727 | generated by GNU Autoconf 2.67 | 1727 | generated by GNU Autoconf 2.67 |
1395 | 1728 | 1728 | ||
1396 | 1729 | Copyright (C) 2010 Free Software Foundation, Inc. | 1729 | Copyright (C) 2010 Free Software Foundation, Inc. |
1397 | 1730 | This configure script is free software; the Free Software Foundation | 1730 | This configure script is free software; the Free Software Foundation |
1398 | 1731 | gives unlimited permission to copy, distribute and modify it. | 1731 | gives unlimited permission to copy, distribute and modify it. |
1399 | 1732 | 1732 | ||
1401 | 1733 | Copyright © 2011 Canonical Ltd. | 1733 | Copyright © 2011 Scott James Remnant, Canonical Ltd. |
1402 | 1734 | _ACEOF | 1734 | _ACEOF |
1403 | 1735 | exit | 1735 | exit |
1404 | 1736 | fi | 1736 | fi |
1405 | @@ -2326,7 +2326,7 @@ | |||
1406 | 2326 | This file contains any messages produced by compilers while | 2326 | This file contains any messages produced by compilers while |
1407 | 2327 | running configure, to aid debugging if configure makes a mistake. | 2327 | running configure, to aid debugging if configure makes a mistake. |
1408 | 2328 | 2328 | ||
1410 | 2329 | It was created by upstart $as_me 0.9.7, which was | 2329 | It was created by upstart $as_me 1.3, which was |
1411 | 2330 | generated by GNU Autoconf 2.67. Invocation command line was | 2330 | generated by GNU Autoconf 2.67. Invocation command line was |
1412 | 2331 | 2331 | ||
1413 | 2332 | $ $0 $@ | 2332 | $ $0 $@ |
1414 | @@ -2682,8 +2682,8 @@ | |||
1415 | 2682 | 2682 | ||
1416 | 2683 | 2683 | ||
1417 | 2684 | 2684 | ||
1420 | 2685 | $as_echo "#define PACKAGE_COPYRIGHT \"Copyright (C) 2011 Canonical Ltd.\"" >>confdefs.h | 2685 | $as_echo "#define PACKAGE_COPYRIGHT \"Copyright (C) 2011 Scott James Remnant, Canonical Ltd.\"" >>confdefs.h |
1421 | 2686 | PACKAGE_COPYRIGHT="Copyright © 2011 Canonical Ltd." | 2686 | PACKAGE_COPYRIGHT="Copyright © 2011 Scott James Remnant, Canonical Ltd." |
1422 | 2687 | 2687 | ||
1423 | 2688 | 2688 | ||
1424 | 2689 | 2689 | ||
1425 | @@ -4481,7 +4481,7 @@ | |||
1426 | 4481 | 4481 | ||
1427 | 4482 | # Define the identity of the package. | 4482 | # Define the identity of the package. |
1428 | 4483 | PACKAGE='upstart' | 4483 | PACKAGE='upstart' |
1430 | 4484 | VERSION='0.9.7' | 4484 | VERSION='1.3' |
1431 | 4485 | 4485 | ||
1432 | 4486 | 4486 | ||
1433 | 4487 | cat >>confdefs.h <<_ACEOF | 4487 | cat >>confdefs.h <<_ACEOF |
1434 | @@ -17364,7 +17364,7 @@ | |||
1435 | 17364 | 17364 | ||
1436 | 17365 | 17365 | ||
1437 | 17366 | 17366 | ||
1439 | 17367 | ac_config_files="$ac_config_files Makefile intl/Makefile dbus/Makefile init/Makefile util/Makefile extra/Makefile conf/Makefile doc/Makefile contrib/Makefile po/Makefile.in scripts/Makefile" | 17367 | ac_config_files="$ac_config_files Makefile intl/Makefile dbus/Makefile init/Makefile util/Makefile conf/Makefile extra/Makefile doc/Makefile contrib/Makefile po/Makefile.in scripts/Makefile" |
1440 | 17368 | 17368 | ||
1441 | 17369 | ac_config_headers="$ac_config_headers config.h" | 17369 | ac_config_headers="$ac_config_headers config.h" |
1442 | 17370 | 17370 | ||
1443 | @@ -17898,7 +17898,7 @@ | |||
1444 | 17898 | # report actual input values of CONFIG_FILES etc. instead of their | 17898 | # report actual input values of CONFIG_FILES etc. instead of their |
1445 | 17899 | # values after options handling. | 17899 | # values after options handling. |
1446 | 17900 | ac_log=" | 17900 | ac_log=" |
1448 | 17901 | This file was extended by upstart $as_me 0.9.7, which was | 17901 | This file was extended by upstart $as_me 1.3, which was |
1449 | 17902 | generated by GNU Autoconf 2.67. Invocation command line was | 17902 | generated by GNU Autoconf 2.67. Invocation command line was |
1450 | 17903 | 17903 | ||
1451 | 17904 | CONFIG_FILES = $CONFIG_FILES | 17904 | CONFIG_FILES = $CONFIG_FILES |
1452 | @@ -17964,7 +17964,7 @@ | |||
1453 | 17964 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | 17964 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
1454 | 17965 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" | 17965 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" |
1455 | 17966 | ac_cs_version="\\ | 17966 | ac_cs_version="\\ |
1457 | 17967 | upstart config.status 0.9.7 | 17967 | upstart config.status 1.3 |
1458 | 17968 | configured by $0, generated by GNU Autoconf 2.67, | 17968 | configured by $0, generated by GNU Autoconf 2.67, |
1459 | 17969 | with options \\"\$ac_cs_config\\" | 17969 | with options \\"\$ac_cs_config\\" |
1460 | 17970 | 17970 | ||
1461 | @@ -18363,8 +18363,8 @@ | |||
1462 | 18363 | "dbus/Makefile") CONFIG_FILES="$CONFIG_FILES dbus/Makefile" ;; | 18363 | "dbus/Makefile") CONFIG_FILES="$CONFIG_FILES dbus/Makefile" ;; |
1463 | 18364 | "init/Makefile") CONFIG_FILES="$CONFIG_FILES init/Makefile" ;; | 18364 | "init/Makefile") CONFIG_FILES="$CONFIG_FILES init/Makefile" ;; |
1464 | 18365 | "util/Makefile") CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; | 18365 | "util/Makefile") CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; |
1465 | 18366 | "conf/Makefile") CONFIG_FILES="$CONFIG_FILES conf/Makefile" ;; | ||
1466 | 18366 | "extra/Makefile") CONFIG_FILES="$CONFIG_FILES extra/Makefile" ;; | 18367 | "extra/Makefile") CONFIG_FILES="$CONFIG_FILES extra/Makefile" ;; |
1467 | 18367 | "conf/Makefile") CONFIG_FILES="$CONFIG_FILES conf/Makefile" ;; | ||
1468 | 18368 | "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; | 18368 | "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; |
1469 | 18369 | "contrib/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/Makefile" ;; | 18369 | "contrib/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/Makefile" ;; |
1470 | 18370 | "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; | 18370 | "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; |
1471 | 18371 | 18371 | ||
1472 | === modified file 'configure.ac' | |||
1473 | --- configure.ac 2011-05-25 19:25:11 +0000 | |||
1474 | +++ configure.ac 2011-06-17 11:15:58 +0000 | |||
1475 | @@ -1,8 +1,8 @@ | |||
1476 | 1 | # Process this file with autoconf to produce a configure script. | 1 | # Process this file with autoconf to produce a configure script. |
1477 | 2 | 2 | ||
1478 | 3 | AC_PREREQ(2.61) | 3 | AC_PREREQ(2.61) |
1481 | 4 | AC_INIT([upstart], [0.9.7], [upstart-devel@lists.ubuntu.com]) | 4 | AC_INIT([upstart], [1.3], [upstart-devel@lists.ubuntu.com]) |
1482 | 5 | NIH_COPYRIGHT([[Copyright © 2011 Canonical Ltd.]]) | 5 | NIH_COPYRIGHT([[Copyright © 2011 Scott James Remnant, Canonical Ltd.]]) |
1483 | 6 | AC_CONFIG_SRCDIR([init/main.c]) | 6 | AC_CONFIG_SRCDIR([init/main.c]) |
1484 | 7 | AC_CONFIG_MACRO_DIR([m4]) | 7 | AC_CONFIG_MACRO_DIR([m4]) |
1485 | 8 | 8 | ||
1486 | @@ -66,8 +66,8 @@ | |||
1487 | 66 | 66 | ||
1488 | 67 | 67 | ||
1489 | 68 | AC_CONFIG_FILES([ Makefile intl/Makefile | 68 | AC_CONFIG_FILES([ Makefile intl/Makefile |
1492 | 69 | dbus/Makefile init/Makefile util/Makefile extra/Makefile | 69 | dbus/Makefile init/Makefile util/Makefile conf/Makefile |
1493 | 70 | conf/Makefile doc/Makefile contrib/Makefile po/Makefile.in | 70 | extra/Makefile doc/Makefile contrib/Makefile po/Makefile.in |
1494 | 71 | scripts/Makefile ]) | 71 | scripts/Makefile ]) |
1495 | 72 | AC_CONFIG_HEADERS([config.h]) | 72 | AC_CONFIG_HEADERS([config.h]) |
1496 | 73 | AC_OUTPUT | 73 | AC_OUTPUT |
1497 | 74 | 74 | ||
1498 | === modified file 'contrib/bash_completion/upstart' | |||
1499 | --- contrib/bash_completion/upstart 2011-05-25 19:25:11 +0000 | |||
1500 | +++ contrib/bash_completion/upstart 2011-06-17 11:15:58 +0000 | |||
1501 | @@ -3,26 +3,28 @@ | |||
1502 | 3 | # | 3 | # |
1503 | 4 | # We don't provide completion for 'init' itself for obvious reasons. | 4 | # We don't provide completion for 'init' itself for obvious reasons. |
1504 | 5 | have initctl && | 5 | have initctl && |
1518 | 6 | _upstart_conf_jobs() | 6 | _upstart_jobs() |
1519 | 7 | { | 7 | { |
1520 | 8 | initctl list|awk '{print $1}' | 8 | initctl list|awk '{print $1}'|sort -u |
1521 | 9 | } && | 9 | } && |
1522 | 10 | _upstart_named_events() | 10 | _upstart_startable_jobs() |
1510 | 11 | { | ||
1511 | 12 | (cd /etc/init && grep '^emits ' *.conf|sed 's/^emits //g') | ||
1512 | 13 | } && | ||
1513 | 14 | _upstart_events() | ||
1514 | 15 | { | ||
1515 | 16 | (_upstart_conf_jobs;_upstart_named_events)|tr ' ' '\n'|sort -u | ||
1516 | 17 | } && | ||
1517 | 18 | _upstart_startable_events() | ||
1523 | 19 | { | 11 | { |
1524 | 20 | initctl list|cut -d\, -f1|awk '$2 == "stop/waiting" {print $1}' | 12 | initctl list|cut -d\, -f1|awk '$2 == "stop/waiting" {print $1}' |
1525 | 21 | } && | 13 | } && |
1527 | 22 | _upstart_stoppable_events() | 14 | _upstart_stoppable_jobs() |
1528 | 23 | { | 15 | { |
1529 | 24 | initctl list|cut -d\, -f1|awk '$2 == "start/running" {print $1}' | 16 | initctl list|cut -d\, -f1|awk '$2 == "start/running" {print $1}' |
1530 | 25 | } && | 17 | } && |
1531 | 18 | _upstart_events() | ||
1532 | 19 | { | ||
1533 | 20 | # note that we don't provide the internal events such as "starting" | ||
1534 | 21 | # (and those from mountall) since the user should be using the | ||
1535 | 22 | # associated command to emit such events. | ||
1536 | 23 | (cd /etc/init && \ | ||
1537 | 24 | egrep '^[[:space:]]*emits ' *.conf |\ | ||
1538 | 25 | cut -d: -f2- | sed 's/^[[:space:]]*emits //g' |\ | ||
1539 | 26 | tr ' ' '\n' | awk '{print $NF}' | grep -v ^$|sort -u) | ||
1540 | 27 | } && | ||
1541 | 26 | _upstart_initctl() | 28 | _upstart_initctl() |
1542 | 27 | { | 29 | { |
1543 | 28 | _get_comp_words_by_ref cur prev | 30 | _get_comp_words_by_ref cur prev |
1544 | @@ -32,20 +34,34 @@ | |||
1545 | 32 | case "$prev" in | 34 | case "$prev" in |
1546 | 33 | 35 | ||
1547 | 34 | start) | 36 | start) |
1549 | 35 | COMPREPLY=( $(compgen -W "-n --no-wait $(_upstart_startable_events)" -- ${cur}) ) | 37 | COMPREPLY=( $(compgen -W "-n --no-wait $(_upstart_startable_jobs)" -- ${cur}) ) |
1550 | 36 | return 0 | 38 | return 0 |
1551 | 37 | ;; | 39 | ;; |
1552 | 38 | 40 | ||
1553 | 39 | stop) | 41 | stop) |
1555 | 40 | COMPREPLY=( $(compgen -W "-n --no-wait $(_upstart_stoppable_events)" -- ${cur}) ) | 42 | COMPREPLY=( $(compgen -W "-n --no-wait $(_upstart_stoppable_jobs)" -- ${cur}) ) |
1556 | 41 | return 0 | 43 | return 0 |
1557 | 42 | ;; | 44 | ;; |
1558 | 43 | 45 | ||
1559 | 44 | emit) | 46 | emit) |
1561 | 45 | COMPREPLY=( $(compgen -W "$(_upstart_events)" -- ${cur}) ) | 47 | COMPREPLY=( $(compgen -W "-n --no-wait $(_upstart_events)" -- ${cur}) ) |
1562 | 46 | return 0 | 48 | return 0 |
1563 | 47 | ;; | 49 | ;; |
1564 | 48 | 50 | ||
1565 | 51 | -i|--ignore-events) | ||
1566 | 52 | # handle visualisation options after check-config command | ||
1567 | 53 | for cmd in check-config | ||
1568 | 54 | do | ||
1569 | 55 | cwords=${COMP_WORDS[@]##} | ||
1570 | 56 | filtered_cwords=${COMP_WORDS[@]##${cmd}} | ||
1571 | 57 | if [ "$filtered_cwords" != "$cwords" ] | ||
1572 | 58 | then | ||
1573 | 59 | COMPREPLY=( $(compgen -W "$(_upstart_jobs)" -- ${cur}) ) | ||
1574 | 60 | return 0 | ||
1575 | 61 | fi | ||
1576 | 62 | done | ||
1577 | 63 | ;; | ||
1578 | 64 | |||
1579 | 49 | -e|--enumerate) | 65 | -e|--enumerate) |
1580 | 50 | # handle visualisation options after show-config command | 66 | # handle visualisation options after show-config command |
1581 | 51 | for cmd in show-config | 67 | for cmd in show-config |
1582 | @@ -54,36 +70,56 @@ | |||
1583 | 54 | filtered_cwords=${COMP_WORDS[@]##${cmd}} | 70 | filtered_cwords=${COMP_WORDS[@]##${cmd}} |
1584 | 55 | if [ "$filtered_cwords" != "$cwords" ] | 71 | if [ "$filtered_cwords" != "$cwords" ] |
1585 | 56 | then | 72 | then |
1587 | 57 | COMPREPLY=( $(compgen -W "${vis_opts} $(_upstart_conf_jobs)" -- ${cur}) ) | 73 | COMPREPLY=( $(compgen -W "$(_upstart_jobs)" -- ${cur}) ) |
1588 | 58 | return 0 | 74 | return 0 |
1589 | 59 | fi | 75 | fi |
1590 | 60 | done | 76 | done |
1591 | 61 | ;; | 77 | ;; |
1592 | 62 | 78 | ||
1593 | 63 | reload|restart) | 79 | reload|restart) |
1595 | 64 | COMPREPLY=( $(compgen -W "$(_upstart_conf_jobs)" -- ${cur}) ) | 80 | COMPREPLY=( $(compgen -W "-n --no-wait $(_upstart_stoppable_jobs)" -- ${cur}) ) |
1596 | 65 | return 0 | 81 | return 0 |
1597 | 66 | ;; | 82 | ;; |
1598 | 67 | 83 | ||
1599 | 68 | status) | 84 | status) |
1601 | 69 | COMPREPLY=( $(compgen -W "${vis_opts} $(_upstart_conf_jobs)" -- ${cur}) ) | 85 | COMPREPLY=( $(compgen -W "$(_upstart_jobs)" -- ${cur}) ) |
1602 | 70 | return 0 | 86 | return 0 |
1603 | 71 | ;; | 87 | ;; |
1604 | 72 | 88 | ||
1605 | 89 | check-config) | ||
1606 | 90 | COMPREPLY=( $(compgen -W "-w --warn -i --ignore-events= $(_upstart_jobs)" -- ${cur}) ) | ||
1607 | 91 | return 0 | ||
1608 | 92 | ;; | ||
1609 | 73 | show-config) | 93 | show-config) |
1611 | 74 | COMPREPLY=( $(compgen -W "-e --enumerate $(_upstart_conf_jobs)" -- ${cur}) ) | 94 | COMPREPLY=( $(compgen -W "-e --enumerate $(_upstart_jobs)" -- ${cur}) ) |
1612 | 75 | return 0 | 95 | return 0 |
1613 | 76 | ;; | 96 | ;; |
1614 | 77 | 97 | ||
1615 | 78 | -n|--no-wait) | 98 | -n|--no-wait) |
1618 | 79 | # allow no wait after start/stop commands | 99 | # allow 'no wait' for certain commands |
1619 | 80 | for cmd in start stop | 100 | for cmd in start stop restart emit |
1620 | 81 | do | 101 | do |
1621 | 82 | cwords=${COMP_WORDS[@]##} | 102 | cwords=${COMP_WORDS[@]##} |
1622 | 83 | filtered_cwords=${COMP_WORDS[@]##${cmd}} | 103 | filtered_cwords=${COMP_WORDS[@]##${cmd}} |
1623 | 84 | if [ "$filtered_cwords" != "$cwords" ] | 104 | if [ "$filtered_cwords" != "$cwords" ] |
1624 | 85 | then | 105 | then |
1626 | 86 | COMPREPLY=( $(compgen -W "$(_upstart_${cmd}able_events)" -- ${cur}) ) | 106 | case "$cmd" in |
1627 | 107 | start) | ||
1628 | 108 | COMPREPLY=( $(compgen -W "$(_upstart_startable_jobs)" -- ${cur}) ) | ||
1629 | 109 | ;; | ||
1630 | 110 | |||
1631 | 111 | stop) | ||
1632 | 112 | COMPREPLY=( $(compgen -W "$(_upstart_stoppable_jobs)" -- ${cur}) ) | ||
1633 | 113 | ;; | ||
1634 | 114 | |||
1635 | 115 | restart) | ||
1636 | 116 | COMPREPLY=( $(compgen -W "$(_upstart_stoppable_jobs)" -- ${cur}) ) | ||
1637 | 117 | ;; | ||
1638 | 118 | |||
1639 | 119 | emit) | ||
1640 | 120 | COMPREPLY=( $(compgen -W "$(_upstart_events)" -- ${cur}) ) | ||
1641 | 121 | ;; | ||
1642 | 122 | esac | ||
1643 | 87 | return 0 | 123 | return 0 |
1644 | 88 | fi | 124 | fi |
1645 | 89 | done | 125 | done |
1646 | @@ -118,7 +154,7 @@ | |||
1647 | 118 | ;; | 154 | ;; |
1648 | 119 | esac | 155 | esac |
1649 | 120 | 156 | ||
1651 | 121 | COMPREPLY=( $(compgen -W "$opts $(_upstart_startable_events)" -- ${cur}) ) | 157 | COMPREPLY=( $(compgen -W "$opts $(_upstart_startable_jobs)" -- ${cur}) ) |
1652 | 122 | return 0 | 158 | return 0 |
1653 | 123 | } && complete -F _upstart_start start | 159 | } && complete -F _upstart_start start |
1654 | 124 | 160 | ||
1655 | @@ -138,7 +174,7 @@ | |||
1656 | 138 | ;; | 174 | ;; |
1657 | 139 | esac | 175 | esac |
1658 | 140 | 176 | ||
1660 | 141 | COMPREPLY=( $(compgen -W "$opts $(_upstart_stoppable_events)" -- ${cur}) ) | 177 | COMPREPLY=( $(compgen -W "$opts $(_upstart_stoppable_jobs)" -- ${cur}) ) |
1661 | 142 | return 0 | 178 | return 0 |
1662 | 143 | } && complete -F _upstart_stop stop | 179 | } && complete -F _upstart_stop stop |
1663 | 144 | 180 | ||
1664 | @@ -158,7 +194,7 @@ | |||
1665 | 158 | ;; | 194 | ;; |
1666 | 159 | esac | 195 | esac |
1667 | 160 | 196 | ||
1669 | 161 | COMPREPLY=( $(compgen -W "$opts $(_upstart_events)" -- ${cur}) ) | 197 | COMPREPLY=( $(compgen -W "$opts $(_upstart_stoppable_jobs)" -- ${cur}) ) |
1670 | 162 | return 0 | 198 | return 0 |
1671 | 163 | 199 | ||
1672 | 164 | } && complete -F _upstart_restart restart | 200 | } && complete -F _upstart_restart restart |
1673 | @@ -178,7 +214,7 @@ | |||
1674 | 178 | ;; | 214 | ;; |
1675 | 179 | esac | 215 | esac |
1676 | 180 | 216 | ||
1678 | 181 | COMPREPLY=( $(compgen -W "$opts $(_upstart_events)" -- ${cur}) ) | 217 | COMPREPLY=( $(compgen -W "$opts $(_upstart_jobs)" -- ${cur}) ) |
1679 | 182 | return 0 | 218 | return 0 |
1680 | 183 | 219 | ||
1681 | 184 | } && complete -F _upstart_status status | 220 | } && complete -F _upstart_status status |
1682 | @@ -198,7 +234,7 @@ | |||
1683 | 198 | ;; | 234 | ;; |
1684 | 199 | esac | 235 | esac |
1685 | 200 | 236 | ||
1687 | 201 | COMPREPLY=( $(compgen -W "$opts $(_upstart_events)" -- ${cur}) ) | 237 | COMPREPLY=( $(compgen -W "$opts $(_upstart_stoppable_jobs)" -- ${cur}) ) |
1688 | 202 | return 0 | 238 | return 0 |
1689 | 203 | 239 | ||
1690 | 204 | } && complete -F _upstart_reload reload | 240 | } && complete -F _upstart_reload reload |
1691 | 205 | 241 | ||
1692 | === modified file 'contrib/vim/syntax/upstart.vim' | |||
1693 | --- contrib/vim/syntax/upstart.vim 2009-07-08 19:59:21 +0000 | |||
1694 | +++ contrib/vim/syntax/upstart.vim 2011-06-17 11:15:58 +0000 | |||
1695 | @@ -1,10 +1,11 @@ | |||
1696 | 1 | " Vim syntax file | 1 | " Vim syntax file |
1697 | 2 | " Language: Upstart job files | 2 | " Language: Upstart job files |
1698 | 3 | " Maintainer: Michael Biebl <biebl@debian.org> | 3 | " Maintainer: Michael Biebl <biebl@debian.org> |
1700 | 4 | " Last Change: 2007 Feb 13 | 4 | " James Hunt <james.hunt@ubuntu.com> |
1701 | 5 | " Last Change: 2011 Jun 14 | ||
1702 | 5 | " License: GPL v2 | 6 | " License: GPL v2 |
1705 | 6 | " Version: 0.1 | 7 | " Version: 0.3 |
1706 | 7 | " Remark: Syntax highlighting for upstart job files. | 8 | " Remark: Syntax highlighting for Upstart (init(8)) job files. |
1707 | 8 | " | 9 | " |
1708 | 9 | " It is inspired by the initng syntax file and includes sh.vim to do the | 10 | " It is inspired by the initng syntax file and includes sh.vim to do the |
1709 | 10 | " highlighting of script blocks. | 11 | " highlighting of script blocks. |
1710 | @@ -16,7 +17,6 @@ | |||
1711 | 16 | endif | 17 | endif |
1712 | 17 | 18 | ||
1713 | 18 | let is_bash = 1 | 19 | let is_bash = 1 |
1714 | 19 | "unlet! b:current_syntax | ||
1715 | 20 | syn include @Shell syntax/sh.vim | 20 | syn include @Shell syntax/sh.vim |
1716 | 21 | 21 | ||
1717 | 22 | syn case match | 22 | syn case match |
1718 | @@ -31,8 +31,12 @@ | |||
1719 | 31 | syn cluster upstartShellCluster contains=@Shell | 31 | syn cluster upstartShellCluster contains=@Shell |
1720 | 32 | 32 | ||
1721 | 33 | " one argument | 33 | " one argument |
1724 | 34 | syn keyword upstartStatement description author version | 34 | syn keyword upstartStatement description author version instance expect |
1725 | 35 | syn keyword upstartStatement pid kill normal console env umask nice limit chroot chdir exec | 35 | syn keyword upstartStatement pid kill normal console env exit export |
1726 | 36 | syn keyword upstartStatement umask nice oom chroot chdir exec | ||
1727 | 37 | |||
1728 | 38 | " two arguments | ||
1729 | 39 | syn keyword upstartStatement limit | ||
1730 | 36 | 40 | ||
1731 | 37 | " one or more arguments (events) | 41 | " one or more arguments (events) |
1732 | 38 | syn keyword upstartStatement emits | 42 | syn keyword upstartStatement emits |
1733 | @@ -40,27 +44,62 @@ | |||
1734 | 40 | syn keyword upstartStatement on start stop | 44 | syn keyword upstartStatement on start stop |
1735 | 41 | 45 | ||
1736 | 42 | " flag, no parameter | 46 | " flag, no parameter |
1738 | 43 | syn keyword upstartStatement daemon respawn service instance | 47 | syn keyword upstartStatement respawn service instance manual debug task |
1739 | 44 | 48 | ||
1740 | 45 | " prefix for exec or script | 49 | " prefix for exec or script |
1741 | 46 | syn keyword upstartOption pre-start post-start pre-stop post-stop | 50 | syn keyword upstartOption pre-start post-start pre-stop post-stop |
1742 | 47 | 51 | ||
1749 | 48 | " options for pid | 52 | " option for kill |
1750 | 49 | syn keyword upstartOption file binary timeout | 53 | syn keyword upstartOption timeout signal |
1751 | 50 | " option for | 54 | " option for oom |
1752 | 51 | syn keyword upstartOption timeout | 55 | syn keyword upstartOption score never |
1747 | 52 | " option for respawn | ||
1748 | 53 | syn keyword upstartOption limit | ||
1753 | 54 | " options for console | 56 | " options for console |
1761 | 55 | syn keyword upstartOption logged output owner none | 57 | syn keyword upstartOption output owner |
1762 | 56 | 58 | " options for expect | |
1763 | 57 | syn keyword upstartEvent startup stalled control-alt-delete kbdrequest starting started stopping stopped runlevel | 59 | syn keyword upstartOption stop fork daemon none |
1764 | 58 | 60 | " options for limit | |
1765 | 59 | hi def link upstartComment Comment | 61 | syn keyword upstartOption unlimited core cpu data fsize memlock msgqueue nice |
1766 | 60 | hi def link upstartTodo Todo | 62 | syn keyword upstartOption nofile nproc rss rtprio sigpending stack |
1767 | 61 | hi def link upstartString String | 63 | |
1768 | 64 | " 'options' for start/stop on | ||
1769 | 65 | syn keyword upstartOption and or | ||
1770 | 66 | |||
1771 | 67 | " Upstart itself and associated utilities | ||
1772 | 68 | syn keyword upstartEvent runlevel | ||
1773 | 69 | syn keyword upstartEvent started | ||
1774 | 70 | syn keyword upstartEvent starting | ||
1775 | 71 | syn keyword upstartEvent startup | ||
1776 | 72 | syn keyword upstartEvent stopped | ||
1777 | 73 | syn keyword upstartEvent stopping | ||
1778 | 74 | syn match upstartEvent /control-alt-delete/ | ||
1779 | 75 | syn match upstartEvent /keyboard-request/ | ||
1780 | 76 | syn match upstartEvent /power-status-changed/ | ||
1781 | 77 | |||
1782 | 78 | " D-Bus | ||
1783 | 79 | syn match upstartEvent /dbus-activation/ | ||
1784 | 80 | |||
1785 | 81 | " Display Manager (ie gdm) | ||
1786 | 82 | syn match upstartEvent /desktop-session-start/ | ||
1787 | 83 | syn match upstartEvent /login-session-start/ | ||
1788 | 84 | |||
1789 | 85 | " mountall | ||
1790 | 86 | syn keyword upstartEvent filesystem | ||
1791 | 87 | syn keyword upstartEvent mounted | ||
1792 | 88 | syn keyword upstartEvent mounting | ||
1793 | 89 | syn match upstartEvent /\(\<local\>\|\<virtual\>\|\<remote\>\)-filesystems/ | ||
1794 | 90 | syn match upstartEvent /all-swaps/ | ||
1795 | 91 | |||
1796 | 92 | " upstart-udev-bridge and ifup/down | ||
1797 | 93 | syn match upstartEvent /\<\i\{-1,}-device-\(\<added\>\|\<removed\>\|\<up\>\|\<down\>\)/ | ||
1798 | 94 | |||
1799 | 95 | " upstart-socket-bridge | ||
1800 | 96 | syn keyword upstartEvent socket | ||
1801 | 97 | |||
1802 | 98 | hi def link upstartComment Comment | ||
1803 | 99 | hi def link upstartTodo Todo | ||
1804 | 100 | hi def link upstartString String | ||
1805 | 62 | hi def link upstartStatement Statement | 101 | hi def link upstartStatement Statement |
1808 | 63 | hi def link upstartOption Type | 102 | hi def link upstartOption Type |
1809 | 64 | hi def link upstartEvent Define | 103 | hi def link upstartEvent Define |
1810 | 65 | 104 | ||
1811 | 66 | let b:current_syntax = "upstart" | 105 | let b:current_syntax = "upstart" |
1812 | 67 | 106 | ||
1813 | === modified file 'debian/changelog' | |||
1814 | --- debian/changelog 2011-05-25 19:38:25 +0000 | |||
1815 | +++ debian/changelog 2011-06-17 11:15:58 +0000 | |||
1816 | @@ -1,3 +1,24 @@ | |||
1817 | 1 | upstart (1.3-0ubuntu3) oneiric; urgency=low | ||
1818 | 2 | |||
1819 | 3 | * init/paths.h: Syned with upstream since Ubuntu file appears to have | ||
1820 | 4 | diff applied twice, causing redefines. | ||
1821 | 5 | |||
1822 | 6 | -- James Hunt <james.hunt@ubuntu.com> Fri, 17 Jun 2011 09:59:49 +0100 | ||
1823 | 7 | |||
1824 | 8 | upstart (1.3-0ubuntu2) oneiric; urgency=low | ||
1825 | 9 | |||
1826 | 10 | * init/Makefile.am: Sync up from upstream, dropping TEST define which is | ||
1827 | 11 | no longer required now we set UPSTART_NO_SESSIONS for init/tests/*.c | ||
1828 | 12 | and specify "--no-sessions" for util/tests/*.c. | ||
1829 | 13 | |||
1830 | 14 | -- James Hunt <james.hunt@ubuntu.com> Fri, 17 Jun 2011 09:47:36 +0100 | ||
1831 | 15 | |||
1832 | 16 | upstart (1.3-0ubuntu1) oneiric; urgency=low | ||
1833 | 17 | |||
1834 | 18 | * Merge of Upstart 1.3 (lp:upstart @ 1.3 release tag). | ||
1835 | 19 | |||
1836 | 20 | -- James Hunt <james.hunt@ubuntu.com> Thu, 16 Jun 2011 15:09:41 +0100 | ||
1837 | 21 | |||
1838 | 1 | upstart (0.9.7-3) oneiric; urgency=low | 22 | upstart (0.9.7-3) oneiric; urgency=low |
1839 | 2 | 23 | ||
1840 | 3 | * Merge of upstream lp:~upstart-devel/upstart/0.9: Updates for | 24 | * Merge of upstream lp:~upstart-devel/upstart/0.9: Updates for |
1841 | 4 | 25 | ||
1842 | === modified file 'extra/Makefile.am' | |||
1843 | --- extra/Makefile.am 2011-05-25 19:25:11 +0000 | |||
1844 | +++ extra/Makefile.am 2011-06-17 11:15:58 +0000 | |||
1845 | @@ -74,7 +74,6 @@ | |||
1846 | 74 | else | 74 | else |
1847 | 75 | EXTRA_DIST = \ | 75 | EXTRA_DIST = \ |
1848 | 76 | man/upstart-udev-bridge.8 | 76 | man/upstart-udev-bridge.8 |
1849 | 77 | |||
1850 | 78 | endif | 77 | endif |
1851 | 79 | 78 | ||
1852 | 80 | 79 | ||
1853 | 81 | 80 | ||
1854 | === added file 'extra/conf/upstart-socket-bridge.conf' | |||
1855 | --- extra/conf/upstart-socket-bridge.conf 1970-01-01 00:00:00 +0000 | |||
1856 | +++ extra/conf/upstart-socket-bridge.conf 2011-06-17 11:15:58 +0000 | |||
1857 | @@ -0,0 +1,16 @@ | |||
1858 | 1 | # upstart-socket-bridge - Bridge socket events into upstart | ||
1859 | 2 | # | ||
1860 | 3 | # This helper daemon receives socket(7) events and | ||
1861 | 4 | # emits equivalent Upstart events. | ||
1862 | 5 | |||
1863 | 6 | description "Bridge socket events into upstart" | ||
1864 | 7 | |||
1865 | 8 | emits socket | ||
1866 | 9 | |||
1867 | 10 | start on net-device-up IFACE=lo | ||
1868 | 11 | stop on runlevel [!2345] | ||
1869 | 12 | |||
1870 | 13 | expect daemon | ||
1871 | 14 | respawn | ||
1872 | 15 | |||
1873 | 16 | exec upstart-socket-bridge --daemon | ||
1874 | 0 | 17 | ||
1875 | === removed file 'extra/conf/upstart-socket-bridge.conf' | |||
1876 | --- extra/conf/upstart-socket-bridge.conf 2011-05-25 19:25:11 +0000 | |||
1877 | +++ extra/conf/upstart-socket-bridge.conf 1970-01-01 00:00:00 +0000 | |||
1878 | @@ -1,16 +0,0 @@ | |||
1879 | 1 | # upstart-socket-bridge - Bridge socket events into upstart | ||
1880 | 2 | # | ||
1881 | 3 | # This helper daemon receives socket(7) events and | ||
1882 | 4 | # emits equivalent Upstart events. | ||
1883 | 5 | |||
1884 | 6 | description "Bridge socket events into upstart" | ||
1885 | 7 | |||
1886 | 8 | emits socket | ||
1887 | 9 | |||
1888 | 10 | start on net-device-up IFACE=lo | ||
1889 | 11 | stop on runlevel [!2345] | ||
1890 | 12 | |||
1891 | 13 | expect daemon | ||
1892 | 14 | respawn | ||
1893 | 15 | |||
1894 | 16 | exec upstart-socket-bridge --daemon | ||
1895 | 17 | 0 | ||
1896 | === added file 'extra/man/socket-event.7' | |||
1897 | --- extra/man/socket-event.7 1970-01-01 00:00:00 +0000 | |||
1898 | +++ extra/man/socket-event.7 2011-06-17 11:15:58 +0000 | |||
1899 | @@ -0,0 +1,92 @@ | |||
1900 | 1 | .TH socket\-event 8 2011-03-08 upstart | ||
1901 | 2 | .\" | ||
1902 | 3 | .SH NAME | ||
1903 | 4 | socket \- event signalling that a socket connection has been made | ||
1904 | 5 | .\" | ||
1905 | 6 | .SH SYNOPSIS | ||
1906 | 7 | .B socket | ||
1907 | 8 | .BI PROTO\fR= PROTO | ||
1908 | 9 | .BI PORT\fR= PORT | ||
1909 | 10 | .BI ADDR\fR= ADDR | ||
1910 | 11 | |||
1911 | 12 | .B socket | ||
1912 | 13 | .BI PROTO\fR= PROTO | ||
1913 | 14 | .BI PATH\fR= PATH | ||
1914 | 15 | .\" | ||
1915 | 16 | .SH DESCRIPTION | ||
1916 | 17 | |||
1917 | 18 | The | ||
1918 | 19 | .B socket | ||
1919 | 20 | event is generated by the | ||
1920 | 21 | .BR upstart\-socket\-bridge (8) | ||
1921 | 22 | daemon when a socket connection is made whose details match the | ||
1922 | 23 | socket event condition and environment specified in a jobs | ||
1923 | 24 | .B start on | ||
1924 | 25 | or | ||
1925 | 26 | .B stop on | ||
1926 | 27 | stanza. | ||
1927 | 28 | |||
1928 | 29 | When an incoming connection is detected, the file descriptor | ||
1929 | 30 | representing the socket is passed to the job in question to allow it to | ||
1930 | 31 | .BR accept (2) | ||
1931 | 32 | the connection. Additionally, the environment variable | ||
1932 | 33 | .B UPSTART_JOB | ||
1933 | 34 | will contain the name of the event ("socket") and the environment | ||
1934 | 35 | variable | ||
1935 | 36 | .B UPSTART_FDS | ||
1936 | 37 | will contain the number of the file descriptor corresponding to the | ||
1937 | 38 | listening socket. | ||
1938 | 39 | .\" | ||
1939 | 40 | .SH EXAMPLES | ||
1940 | 41 | .\" | ||
1941 | 42 | .SS Internet socket | ||
1942 | 43 | Start web server when first client connects from localhost: | ||
1943 | 44 | .RS | ||
1944 | 45 | .nf | ||
1945 | 46 | |||
1946 | 47 | start on socket PROTO=inet PORT=80 ADDR=127.0.0.1 | ||
1947 | 48 | .fi | ||
1948 | 49 | .RE | ||
1949 | 50 | .\" | ||
1950 | 51 | .SS Local socket | ||
1951 | 52 | .P | ||
1952 | 53 | .RS | ||
1953 | 54 | .nf | ||
1954 | 55 | |||
1955 | 56 | start on socket PROTO=unix PATH=/var/run/.s.pgsql.1234 | ||
1956 | 57 | .fi | ||
1957 | 58 | .FE | ||
1958 | 59 | .\" | ||
1959 | 60 | .SS Abstract socket | ||
1960 | 61 | .P | ||
1961 | 62 | |||
1962 | 63 | .RS | ||
1963 | 64 | .nf | ||
1964 | 65 | |||
1965 | 66 | start on socket PROTO=unix PATH=@/at/upstart/example | ||
1966 | 67 | .fi | ||
1967 | 68 | .FE | ||
1968 | 69 | .\" | ||
1969 | 70 | .SH AUTHOR | ||
1970 | 71 | Written by Scott James Remnant | ||
1971 | 72 | .RB < scott@netsplit.com > | ||
1972 | 73 | |||
1973 | 74 | Manual page written by James Hunt | ||
1974 | 75 | .RB < james.hunt@ubuntu.com > | ||
1975 | 76 | .\" | ||
1976 | 77 | .SH BUGS | ||
1977 | 78 | Report bugs at | ||
1978 | 79 | .RB < https://launchpad.net/upstart/+bugs > | ||
1979 | 80 | .\" | ||
1980 | 81 | .SH COPYRIGHT | ||
1981 | 82 | Copyright \(co 2011 Canonical Ltd. | ||
1982 | 83 | .PP | ||
1983 | 84 | This is free software; see the source for copying conditions. There is NO | ||
1984 | 85 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
1985 | 86 | .\" | ||
1986 | 87 | .SH SEE ALSO | ||
1987 | 88 | .BR init (5) | ||
1988 | 89 | .BR init (8) | ||
1989 | 90 | .BR socket (2) | ||
1990 | 91 | .BR socket (7) | ||
1991 | 92 | .BR upstart\-socket\-bridge (8) | ||
1992 | 0 | 93 | ||
1993 | === removed file 'extra/man/socket-event.7' | |||
1994 | --- extra/man/socket-event.7 2011-05-25 19:25:11 +0000 | |||
1995 | +++ extra/man/socket-event.7 1970-01-01 00:00:00 +0000 | |||
1996 | @@ -1,92 +0,0 @@ | |||
1997 | 1 | .TH socket\-event 8 2011-03-08 upstart | ||
1998 | 2 | .\" | ||
1999 | 3 | .SH NAME | ||
2000 | 4 | socket \- event signalling that a socket connection has been made | ||
2001 | 5 | .\" | ||
2002 | 6 | .SH SYNOPSIS | ||
2003 | 7 | .B socket | ||
2004 | 8 | .BI PROTO\fR= PROTO | ||
2005 | 9 | .BI PORT\fR= PORT | ||
2006 | 10 | .BI ADDR\fR= ADDR | ||
2007 | 11 | |||
2008 | 12 | .B socket | ||
2009 | 13 | .BI PROTO\fR= PROTO | ||
2010 | 14 | .BI PATH\fR= PATH | ||
2011 | 15 | .\" | ||
2012 | 16 | .SH DESCRIPTION | ||
2013 | 17 | |||
2014 | 18 | The | ||
2015 | 19 | .B socket | ||
2016 | 20 | event is generated by the | ||
2017 | 21 | .BR upstart\-socket\-bridge (8) | ||
2018 | 22 | daemon when a socket connection is made whose details match the | ||
2019 | 23 | socket event condition and environment specified in a jobs | ||
2020 | 24 | .B start on | ||
2021 | 25 | or | ||
2022 | 26 | .B stop on | ||
2023 | 27 | stanza. | ||
2024 | 28 | |||
2025 | 29 | When an incoming connection is detected, the file descriptor | ||
2026 | 30 | representing the socket is passed to the job in question to allow it to | ||
2027 | 31 | .BR accept (2) | ||
2028 | 32 | the connection. Additionally, the environment variable | ||
2029 | 33 | .B UPSTART_JOB | ||
2030 | 34 | will contain the name of the event ("socket") and the environment | ||
2031 | 35 | variable | ||
2032 | 36 | .B UPSTART_FDS | ||
2033 | 37 | will contain the number of the file descriptor corresponding to the | ||
2034 | 38 | listening socket. | ||
2035 | 39 | .\" | ||
2036 | 40 | .SH EXAMPLES | ||
2037 | 41 | .\" | ||
2038 | 42 | .SS Internet socket | ||
2039 | 43 | Start web server when first client connects from localhost: | ||
2040 | 44 | .RS | ||
2041 | 45 | .nf | ||
2042 | 46 | |||
2043 | 47 | start on socket PROTO=inet PORT=80 ADDR=127.0.0.1 | ||
2044 | 48 | .fi | ||
2045 | 49 | .RE | ||
2046 | 50 | .\" | ||
2047 | 51 | .SS Local socket | ||
2048 | 52 | .P | ||
2049 | 53 | .RS | ||
2050 | 54 | .nf | ||
2051 | 55 | |||
2052 | 56 | start on socket PROTO=unix PATH=/var/run/.s.pgsql.1234 | ||
2053 | 57 | .fi | ||
2054 | 58 | .FE | ||
2055 | 59 | .\" | ||
2056 | 60 | .SS Abstract socket | ||
2057 | 61 | .P | ||
2058 | 62 | |||
2059 | 63 | .RS | ||
2060 | 64 | .nf | ||
2061 | 65 | |||
2062 | 66 | start on socket PROTO=unix PATH=@/at/upstart/example | ||
2063 | 67 | .fi | ||
2064 | 68 | .FE | ||
2065 | 69 | .\" | ||
2066 | 70 | .SH AUTHOR | ||
2067 | 71 | Written by Scott James Remnant | ||
2068 | 72 | .RB < scott@netsplit.com > | ||
2069 | 73 | |||
2070 | 74 | Manual page written by James Hunt | ||
2071 | 75 | .RB < james.hunt@ubuntu.com > | ||
2072 | 76 | .\" | ||
2073 | 77 | .SH BUGS | ||
2074 | 78 | Report bugs at | ||
2075 | 79 | .RB < https://launchpad.net/upstart/+bugs > | ||
2076 | 80 | .\" | ||
2077 | 81 | .SH COPYRIGHT | ||
2078 | 82 | Copyright \(co 2011 Canonical Ltd. | ||
2079 | 83 | .PP | ||
2080 | 84 | This is free software; see the source for copying conditions. There is NO | ||
2081 | 85 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
2082 | 86 | .\" | ||
2083 | 87 | .SH SEE ALSO | ||
2084 | 88 | .BR init (5) | ||
2085 | 89 | .BR init (8) | ||
2086 | 90 | .BR socket (2) | ||
2087 | 91 | .BR socket (7) | ||
2088 | 92 | .BR upstart\-socket\-bridge (8) | ||
2089 | 93 | 0 | ||
2090 | === added file 'extra/man/upstart-socket-bridge.8' | |||
2091 | --- extra/man/upstart-socket-bridge.8 1970-01-01 00:00:00 +0000 | |||
2092 | +++ extra/man/upstart-socket-bridge.8 2011-06-17 11:15:58 +0000 | |||
2093 | @@ -0,0 +1,47 @@ | |||
2094 | 1 | .TH upstart-socket-bridge 8 2011-03-08 upstart | ||
2095 | 2 | .\" | ||
2096 | 3 | .SH NAME | ||
2097 | 4 | upstart-socket-bridge \- Bridge between Upstart and sockets | ||
2098 | 5 | .\" | ||
2099 | 6 | .SH SYNOPSIS | ||
2100 | 7 | .B upstart-socket-bridge | ||
2101 | 8 | .RI [ OPTIONS ]... | ||
2102 | 9 | .\" | ||
2103 | 10 | .SH DESCRIPTION | ||
2104 | 11 | The | ||
2105 | 12 | .B upstart-socket-bridge | ||
2106 | 13 | queries the Upstart | ||
2107 | 14 | .BR init (8) | ||
2108 | 15 | daemon for all job configurations which | ||
2109 | 16 | .B start on | ||
2110 | 17 | or | ||
2111 | 18 | .B stop on | ||
2112 | 19 | the socket event. It then waits for an incoming connection on each | ||
2113 | 20 | specified | ||
2114 | 21 | .BR socket (7) | ||
2115 | 22 | and when detected emits the socket event (\fBsocket\-event\fP (7)), | ||
2116 | 23 | setting a number of environment variables for the job to query. | ||
2117 | 24 | .\" | ||
2118 | 25 | .SH AUTHOR | ||
2119 | 26 | Written by Scott James Remnant | ||
2120 | 27 | .RB < scott@netsplit.com > | ||
2121 | 28 | |||
2122 | 29 | Manual page written by James Hunt | ||
2123 | 30 | .RB < james.hunt@ubuntu.com > | ||
2124 | 31 | .\" | ||
2125 | 32 | .SH BUGS | ||
2126 | 33 | Report bugs at | ||
2127 | 34 | .RB < https://launchpad.net/upstart/+bugs > | ||
2128 | 35 | .\" | ||
2129 | 36 | .SH COPYRIGHT | ||
2130 | 37 | Copyright \(co 2011 Canonical Ltd. | ||
2131 | 38 | .PP | ||
2132 | 39 | This is free software; see the source for copying conditions. There is NO | ||
2133 | 40 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
2134 | 41 | .\" | ||
2135 | 42 | .SH SEE ALSO | ||
2136 | 43 | .BR init (5) | ||
2137 | 44 | .BR init (8) | ||
2138 | 45 | .BR socket (2) | ||
2139 | 46 | .BR socket (7) | ||
2140 | 47 | .BR socket\-event (7) | ||
2141 | 0 | 48 | ||
2142 | === removed file 'extra/man/upstart-socket-bridge.8' | |||
2143 | --- extra/man/upstart-socket-bridge.8 2011-05-25 19:25:11 +0000 | |||
2144 | +++ extra/man/upstart-socket-bridge.8 1970-01-01 00:00:00 +0000 | |||
2145 | @@ -1,47 +0,0 @@ | |||
2146 | 1 | .TH upstart-socket-bridge 8 2011-03-08 upstart | ||
2147 | 2 | .\" | ||
2148 | 3 | .SH NAME | ||
2149 | 4 | upstart-socket-bridge \- Bridge between Upstart and sockets | ||
2150 | 5 | .\" | ||
2151 | 6 | .SH SYNOPSIS | ||
2152 | 7 | .B upstart-socket-bridge | ||
2153 | 8 | .RI [ OPTIONS ]... | ||
2154 | 9 | .\" | ||
2155 | 10 | .SH DESCRIPTION | ||
2156 | 11 | The | ||
2157 | 12 | .B upstart-socket-bridge | ||
2158 | 13 | queries the Upstart | ||
2159 | 14 | .BR init (8) | ||
2160 | 15 | daemon for all job configurations which | ||
2161 | 16 | .B start on | ||
2162 | 17 | or | ||
2163 | 18 | .B stop on | ||
2164 | 19 | the socket event. It then waits for an incoming connection on each | ||
2165 | 20 | specified | ||
2166 | 21 | .BR socket (7) | ||
2167 | 22 | and when detected emits the socket event (\fBsocket\-event\fP (7)), | ||
2168 | 23 | setting a number of environment variables for the job to query. | ||
2169 | 24 | .\" | ||
2170 | 25 | .SH AUTHOR | ||
2171 | 26 | Written by Scott James Remnant | ||
2172 | 27 | .RB < scott@netsplit.com > | ||
2173 | 28 | |||
2174 | 29 | Manual page written by James Hunt | ||
2175 | 30 | .RB < james.hunt@ubuntu.com > | ||
2176 | 31 | .\" | ||
2177 | 32 | .SH BUGS | ||
2178 | 33 | Report bugs at | ||
2179 | 34 | .RB < https://launchpad.net/upstart/+bugs > | ||
2180 | 35 | .\" | ||
2181 | 36 | .SH COPYRIGHT | ||
2182 | 37 | Copyright \(co 2011 Canonical Ltd. | ||
2183 | 38 | .PP | ||
2184 | 39 | This is free software; see the source for copying conditions. There is NO | ||
2185 | 40 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
2186 | 41 | .\" | ||
2187 | 42 | .SH SEE ALSO | ||
2188 | 43 | .BR init (5) | ||
2189 | 44 | .BR init (8) | ||
2190 | 45 | .BR socket (2) | ||
2191 | 46 | .BR socket (7) | ||
2192 | 47 | .BR socket\-event (7) | ||
2193 | 48 | 0 | ||
2194 | === modified file 'extra/upstart-socket-bridge.c' | |||
2195 | --- extra/upstart-socket-bridge.c 2011-05-25 19:25:11 +0000 | |||
2196 | +++ extra/upstart-socket-bridge.c 2011-06-17 11:15:58 +0000 | |||
2197 | @@ -478,7 +478,7 @@ | |||
2198 | 478 | nih_assert (! strcmp(socket_info[0], "socket")); | 478 | nih_assert (! strcmp(socket_info[0], "socket")); |
2199 | 479 | 479 | ||
2200 | 480 | sock = NIH_MUST (nih_new (job, Socket)); | 480 | sock = NIH_MUST (nih_new (job, Socket)); |
2202 | 481 | memset (sock, 0, sizeof sock); | 481 | memset (sock, 0, sizeof (Socket)); |
2203 | 482 | sock->sock = -1; | 482 | sock->sock = -1; |
2204 | 483 | 483 | ||
2205 | 484 | nih_list_init (&sock->entry); | 484 | nih_list_init (&sock->entry); |
2206 | 485 | 485 | ||
2207 | === modified file 'init/Makefile.am' | |||
2208 | --- init/Makefile.am 2011-05-25 19:25:11 +0000 | |||
2209 | +++ init/Makefile.am 2011-06-17 11:15:58 +0000 | |||
2210 | @@ -145,19 +145,16 @@ | |||
2211 | 145 | tests: $(BUILT_SOURCES) $(check_PROGRAMS) | 145 | tests: $(BUILT_SOURCES) $(check_PROGRAMS) |
2212 | 146 | 146 | ||
2213 | 147 | test_system_SOURCES = tests/test_system.c | 147 | test_system_SOURCES = tests/test_system.c |
2214 | 148 | test_system_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2215 | 149 | test_system_LDADD = \ | 148 | test_system_LDADD = \ |
2216 | 150 | system.o \ | 149 | system.o \ |
2217 | 151 | $(NIH_LIBS) | 150 | $(NIH_LIBS) |
2218 | 152 | 151 | ||
2219 | 153 | test_environ_SOURCES = tests/test_environ.c | 152 | test_environ_SOURCES = tests/test_environ.c |
2220 | 154 | test_environ_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2221 | 155 | test_environ_LDADD = \ | 153 | test_environ_LDADD = \ |
2222 | 156 | environ.o \ | 154 | environ.o \ |
2223 | 157 | $(NIH_LIBS) | 155 | $(NIH_LIBS) |
2224 | 158 | 156 | ||
2225 | 159 | test_process_SOURCES = tests/test_process.c | 157 | test_process_SOURCES = tests/test_process.c |
2226 | 160 | test_process_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2227 | 161 | test_process_LDADD = \ | 158 | test_process_LDADD = \ |
2228 | 162 | system.o environ.o process.o \ | 159 | system.o environ.o process.o \ |
2229 | 163 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 160 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2230 | @@ -170,7 +167,6 @@ | |||
2231 | 170 | $(DBUS_LIBS) | 167 | $(DBUS_LIBS) |
2232 | 171 | 168 | ||
2233 | 172 | test_job_class_SOURCES = tests/test_job_class.c | 169 | test_job_class_SOURCES = tests/test_job_class.c |
2234 | 173 | test_job_class_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2235 | 174 | test_job_class_LDADD = \ | 170 | test_job_class_LDADD = \ |
2236 | 175 | system.o environ.o process.o \ | 171 | system.o environ.o process.o \ |
2237 | 176 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 172 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2238 | @@ -183,7 +179,6 @@ | |||
2239 | 183 | $(DBUS_LIBS) | 179 | $(DBUS_LIBS) |
2240 | 184 | 180 | ||
2241 | 185 | test_job_process_SOURCES = tests/test_job_process.c | 181 | test_job_process_SOURCES = tests/test_job_process.c |
2242 | 186 | test_job_process_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2243 | 187 | test_job_process_LDADD = \ | 182 | test_job_process_LDADD = \ |
2244 | 188 | system.o environ.o process.o \ | 183 | system.o environ.o process.o \ |
2245 | 189 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 184 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2246 | @@ -196,7 +191,6 @@ | |||
2247 | 196 | $(DBUS_LIBS) | 191 | $(DBUS_LIBS) |
2248 | 197 | 192 | ||
2249 | 198 | test_job_SOURCES = tests/test_job.c | 193 | test_job_SOURCES = tests/test_job.c |
2250 | 199 | test_job_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2251 | 200 | test_job_LDADD = \ | 194 | test_job_LDADD = \ |
2252 | 201 | system.o environ.o process.o \ | 195 | system.o environ.o process.o \ |
2253 | 202 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 196 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2254 | @@ -209,7 +203,6 @@ | |||
2255 | 209 | $(DBUS_LIBS) | 203 | $(DBUS_LIBS) |
2256 | 210 | 204 | ||
2257 | 211 | test_event_SOURCES = tests/test_event.c | 205 | test_event_SOURCES = tests/test_event.c |
2258 | 212 | test_event_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2259 | 213 | test_event_LDADD = \ | 206 | test_event_LDADD = \ |
2260 | 214 | system.o environ.o process.o \ | 207 | system.o environ.o process.o \ |
2261 | 215 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 208 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2262 | @@ -222,7 +215,6 @@ | |||
2263 | 222 | $(DBUS_LIBS) | 215 | $(DBUS_LIBS) |
2264 | 223 | 216 | ||
2265 | 224 | test_event_operator_SOURCES = tests/test_event_operator.c | 217 | test_event_operator_SOURCES = tests/test_event_operator.c |
2266 | 225 | test_event_operator_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2267 | 226 | test_event_operator_LDADD = \ | 218 | test_event_operator_LDADD = \ |
2268 | 227 | system.o environ.o process.o \ | 219 | system.o environ.o process.o \ |
2269 | 228 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 220 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2270 | @@ -235,7 +227,6 @@ | |||
2271 | 235 | $(DBUS_LIBS) | 227 | $(DBUS_LIBS) |
2272 | 236 | 228 | ||
2273 | 237 | test_blocked_SOURCES = tests/test_blocked.c | 229 | test_blocked_SOURCES = tests/test_blocked.c |
2274 | 238 | test_blocked_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2275 | 239 | test_blocked_LDADD = \ | 230 | test_blocked_LDADD = \ |
2276 | 240 | system.o environ.o process.o \ | 231 | system.o environ.o process.o \ |
2277 | 241 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 232 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2278 | @@ -248,7 +239,6 @@ | |||
2279 | 248 | $(DBUS_LIBS) | 239 | $(DBUS_LIBS) |
2280 | 249 | 240 | ||
2281 | 250 | test_parse_job_SOURCES = tests/test_parse_job.c | 241 | test_parse_job_SOURCES = tests/test_parse_job.c |
2282 | 251 | test_parse_job_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2283 | 252 | test_parse_job_LDADD = \ | 242 | test_parse_job_LDADD = \ |
2284 | 253 | system.o environ.o process.o \ | 243 | system.o environ.o process.o \ |
2285 | 254 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 244 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2286 | @@ -261,7 +251,6 @@ | |||
2287 | 261 | $(DBUS_LIBS) | 251 | $(DBUS_LIBS) |
2288 | 262 | 252 | ||
2289 | 263 | test_parse_conf_SOURCES = tests/test_parse_conf.c | 253 | test_parse_conf_SOURCES = tests/test_parse_conf.c |
2290 | 264 | test_parse_conf_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2291 | 265 | test_parse_conf_LDADD = \ | 254 | test_parse_conf_LDADD = \ |
2292 | 266 | system.o environ.o process.o \ | 255 | system.o environ.o process.o \ |
2293 | 267 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 256 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2294 | @@ -274,7 +263,6 @@ | |||
2295 | 274 | $(DBUS_LIBS) | 263 | $(DBUS_LIBS) |
2296 | 275 | 264 | ||
2297 | 276 | test_conf_SOURCES = tests/test_conf.c | 265 | test_conf_SOURCES = tests/test_conf.c |
2298 | 277 | test_conf_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2299 | 278 | test_conf_LDADD = \ | 266 | test_conf_LDADD = \ |
2300 | 279 | system.o environ.o process.o \ | 267 | system.o environ.o process.o \ |
2301 | 280 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 268 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2302 | @@ -287,7 +275,6 @@ | |||
2303 | 287 | $(DBUS_LIBS) | 275 | $(DBUS_LIBS) |
2304 | 288 | 276 | ||
2305 | 289 | test_control_SOURCES = tests/test_control.c | 277 | test_control_SOURCES = tests/test_control.c |
2306 | 290 | test_control_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2307 | 291 | test_control_LDADD = \ | 278 | test_control_LDADD = \ |
2308 | 292 | system.o environ.o process.o \ | 279 | system.o environ.o process.o \ |
2309 | 293 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 280 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2310 | 294 | 281 | ||
2311 | === modified file 'init/Makefile.in' | |||
2312 | --- init/Makefile.in 2011-05-25 19:25:11 +0000 | |||
2313 | +++ init/Makefile.in 2011-06-17 11:15:58 +0000 | |||
2314 | @@ -99,7 +99,7 @@ | |||
2315 | 99 | AM_V_lt = $(am__v_lt_$(V)) | 99 | AM_V_lt = $(am__v_lt_$(V)) |
2316 | 100 | am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) | 100 | am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) |
2317 | 101 | am__v_lt_0 = --silent | 101 | am__v_lt_0 = --silent |
2319 | 102 | am_test_blocked_OBJECTS = test_blocked-test_blocked.$(OBJEXT) | 102 | am_test_blocked_OBJECTS = test_blocked.$(OBJEXT) |
2320 | 103 | test_blocked_OBJECTS = $(am_test_blocked_OBJECTS) | 103 | test_blocked_OBJECTS = $(am_test_blocked_OBJECTS) |
2321 | 104 | test_blocked_DEPENDENCIES = system.o environ.o process.o job_class.o \ | 104 | test_blocked_DEPENDENCIES = system.o environ.o process.o job_class.o \ |
2322 | 105 | job_process.o job.o event.o event_operator.o blocked.o \ | 105 | job_process.o job.o event.o event_operator.o blocked.o \ |
2323 | @@ -107,10 +107,7 @@ | |||
2324 | 107 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ | 107 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ |
2325 | 108 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ | 108 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ |
2326 | 109 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) | 109 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) |
2331 | 110 | test_blocked_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | 110 | am_test_conf_OBJECTS = test_conf.$(OBJEXT) |
2328 | 111 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_blocked_CFLAGS) \ | ||
2329 | 112 | $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
2330 | 113 | am_test_conf_OBJECTS = test_conf-test_conf.$(OBJEXT) | ||
2332 | 114 | test_conf_OBJECTS = $(am_test_conf_OBJECTS) | 111 | test_conf_OBJECTS = $(am_test_conf_OBJECTS) |
2333 | 115 | test_conf_DEPENDENCIES = system.o environ.o process.o job_class.o \ | 112 | test_conf_DEPENDENCIES = system.o environ.o process.o job_class.o \ |
2334 | 116 | job_process.o job.o event.o event_operator.o blocked.o \ | 113 | job_process.o job.o event.o event_operator.o blocked.o \ |
2335 | @@ -118,10 +115,7 @@ | |||
2336 | 118 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ | 115 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ |
2337 | 119 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ | 116 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ |
2338 | 120 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) | 117 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) |
2343 | 121 | test_conf_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | 118 | am_test_control_OBJECTS = test_control.$(OBJEXT) |
2340 | 122 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_conf_CFLAGS) \ | ||
2341 | 123 | $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
2342 | 124 | am_test_control_OBJECTS = test_control-test_control.$(OBJEXT) | ||
2344 | 125 | test_control_OBJECTS = $(am_test_control_OBJECTS) | 119 | test_control_OBJECTS = $(am_test_control_OBJECTS) |
2345 | 126 | test_control_DEPENDENCIES = system.o environ.o process.o job_class.o \ | 120 | test_control_DEPENDENCIES = system.o environ.o process.o job_class.o \ |
2346 | 127 | job_process.o job.o event.o event_operator.o blocked.o \ | 121 | job_process.o job.o event.o event_operator.o blocked.o \ |
2347 | @@ -129,16 +123,10 @@ | |||
2348 | 129 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ | 123 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ |
2349 | 130 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ | 124 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ |
2350 | 131 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) | 125 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) |
2355 | 132 | test_control_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | 126 | am_test_environ_OBJECTS = test_environ.$(OBJEXT) |
2352 | 133 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_control_CFLAGS) \ | ||
2353 | 134 | $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
2354 | 135 | am_test_environ_OBJECTS = test_environ-test_environ.$(OBJEXT) | ||
2356 | 136 | test_environ_OBJECTS = $(am_test_environ_OBJECTS) | 127 | test_environ_OBJECTS = $(am_test_environ_OBJECTS) |
2357 | 137 | test_environ_DEPENDENCIES = environ.o $(am__DEPENDENCIES_1) | 128 | test_environ_DEPENDENCIES = environ.o $(am__DEPENDENCIES_1) |
2362 | 138 | test_environ_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | 129 | am_test_event_OBJECTS = test_event.$(OBJEXT) |
2359 | 139 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_environ_CFLAGS) \ | ||
2360 | 140 | $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
2361 | 141 | am_test_event_OBJECTS = test_event-test_event.$(OBJEXT) | ||
2363 | 142 | test_event_OBJECTS = $(am_test_event_OBJECTS) | 130 | test_event_OBJECTS = $(am_test_event_OBJECTS) |
2364 | 143 | test_event_DEPENDENCIES = system.o environ.o process.o job_class.o \ | 131 | test_event_DEPENDENCIES = system.o environ.o process.o job_class.o \ |
2365 | 144 | job_process.o job.o event.o event_operator.o blocked.o \ | 132 | job_process.o job.o event.o event_operator.o blocked.o \ |
2366 | @@ -146,11 +134,7 @@ | |||
2367 | 146 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ | 134 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ |
2368 | 147 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ | 135 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ |
2369 | 148 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) | 136 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) |
2375 | 149 | test_event_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | 137 | am_test_event_operator_OBJECTS = test_event_operator.$(OBJEXT) |
2371 | 150 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_event_CFLAGS) \ | ||
2372 | 151 | $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
2373 | 152 | am_test_event_operator_OBJECTS = \ | ||
2374 | 153 | test_event_operator-test_event_operator.$(OBJEXT) | ||
2376 | 154 | test_event_operator_OBJECTS = $(am_test_event_operator_OBJECTS) | 138 | test_event_operator_OBJECTS = $(am_test_event_operator_OBJECTS) |
2377 | 155 | test_event_operator_DEPENDENCIES = system.o environ.o process.o \ | 139 | test_event_operator_DEPENDENCIES = system.o environ.o process.o \ |
2378 | 156 | job_class.o job_process.o job.o event.o event_operator.o \ | 140 | job_class.o job_process.o job.o event.o event_operator.o \ |
2379 | @@ -158,11 +142,7 @@ | |||
2380 | 158 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ | 142 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ |
2381 | 159 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ | 143 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ |
2382 | 160 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) | 144 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) |
2388 | 161 | test_event_operator_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ | 145 | am_test_job_OBJECTS = test_job.$(OBJEXT) |
2384 | 162 | $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ | ||
2385 | 163 | $(test_event_operator_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | ||
2386 | 164 | $(LDFLAGS) -o $@ | ||
2387 | 165 | am_test_job_OBJECTS = test_job-test_job.$(OBJEXT) | ||
2389 | 166 | test_job_OBJECTS = $(am_test_job_OBJECTS) | 146 | test_job_OBJECTS = $(am_test_job_OBJECTS) |
2390 | 167 | test_job_DEPENDENCIES = system.o environ.o process.o job_class.o \ | 147 | test_job_DEPENDENCIES = system.o environ.o process.o job_class.o \ |
2391 | 168 | job_process.o job.o event.o event_operator.o blocked.o \ | 148 | job_process.o job.o event.o event_operator.o blocked.o \ |
2392 | @@ -170,10 +150,7 @@ | |||
2393 | 170 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ | 150 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ |
2394 | 171 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ | 151 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ |
2395 | 172 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) | 152 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) |
2400 | 173 | test_job_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | 153 | am_test_job_class_OBJECTS = test_job_class.$(OBJEXT) |
2397 | 174 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_job_CFLAGS) \ | ||
2398 | 175 | $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
2399 | 176 | am_test_job_class_OBJECTS = test_job_class-test_job_class.$(OBJEXT) | ||
2401 | 177 | test_job_class_OBJECTS = $(am_test_job_class_OBJECTS) | 154 | test_job_class_OBJECTS = $(am_test_job_class_OBJECTS) |
2402 | 178 | test_job_class_DEPENDENCIES = system.o environ.o process.o job_class.o \ | 155 | test_job_class_DEPENDENCIES = system.o environ.o process.o job_class.o \ |
2403 | 179 | job_process.o job.o event.o event_operator.o blocked.o \ | 156 | job_process.o job.o event.o event_operator.o blocked.o \ |
2404 | @@ -181,12 +158,7 @@ | |||
2405 | 181 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ | 158 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ |
2406 | 182 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ | 159 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ |
2407 | 183 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) | 160 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) |
2414 | 184 | test_job_class_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ | 161 | am_test_job_process_OBJECTS = test_job_process.$(OBJEXT) |
2409 | 185 | $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ | ||
2410 | 186 | $(test_job_class_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \ | ||
2411 | 187 | $@ | ||
2412 | 188 | am_test_job_process_OBJECTS = \ | ||
2413 | 189 | test_job_process-test_job_process.$(OBJEXT) | ||
2415 | 190 | test_job_process_OBJECTS = $(am_test_job_process_OBJECTS) | 162 | test_job_process_OBJECTS = $(am_test_job_process_OBJECTS) |
2416 | 191 | test_job_process_DEPENDENCIES = system.o environ.o process.o \ | 163 | test_job_process_DEPENDENCIES = system.o environ.o process.o \ |
2417 | 192 | job_class.o job_process.o job.o event.o event_operator.o \ | 164 | job_class.o job_process.o job.o event.o event_operator.o \ |
2418 | @@ -194,12 +166,7 @@ | |||
2419 | 194 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ | 166 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ |
2420 | 195 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ | 167 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ |
2421 | 196 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) | 168 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) |
2428 | 197 | test_job_process_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ | 169 | am_test_parse_conf_OBJECTS = test_parse_conf.$(OBJEXT) |
2423 | 198 | $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ | ||
2424 | 199 | $(test_job_process_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ | ||
2425 | 200 | -o $@ | ||
2426 | 201 | am_test_parse_conf_OBJECTS = \ | ||
2427 | 202 | test_parse_conf-test_parse_conf.$(OBJEXT) | ||
2429 | 203 | test_parse_conf_OBJECTS = $(am_test_parse_conf_OBJECTS) | 170 | test_parse_conf_OBJECTS = $(am_test_parse_conf_OBJECTS) |
2430 | 204 | test_parse_conf_DEPENDENCIES = system.o environ.o process.o \ | 171 | test_parse_conf_DEPENDENCIES = system.o environ.o process.o \ |
2431 | 205 | job_class.o job_process.o job.o event.o event_operator.o \ | 172 | job_class.o job_process.o job.o event.o event_operator.o \ |
2432 | @@ -207,11 +174,7 @@ | |||
2433 | 207 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ | 174 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ |
2434 | 208 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ | 175 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ |
2435 | 209 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) | 176 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) |
2441 | 210 | test_parse_conf_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ | 177 | am_test_parse_job_OBJECTS = test_parse_job.$(OBJEXT) |
2437 | 211 | $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ | ||
2438 | 212 | $(test_parse_conf_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ | ||
2439 | 213 | -o $@ | ||
2440 | 214 | am_test_parse_job_OBJECTS = test_parse_job-test_parse_job.$(OBJEXT) | ||
2442 | 215 | test_parse_job_OBJECTS = $(am_test_parse_job_OBJECTS) | 178 | test_parse_job_OBJECTS = $(am_test_parse_job_OBJECTS) |
2443 | 216 | test_parse_job_DEPENDENCIES = system.o environ.o process.o job_class.o \ | 179 | test_parse_job_DEPENDENCIES = system.o environ.o process.o job_class.o \ |
2444 | 217 | job_process.o job.o event.o event_operator.o blocked.o \ | 180 | job_process.o job.o event.o event_operator.o blocked.o \ |
2445 | @@ -219,11 +182,7 @@ | |||
2446 | 219 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ | 182 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ |
2447 | 220 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ | 183 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ |
2448 | 221 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) | 184 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) |
2454 | 222 | test_parse_job_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ | 185 | am_test_process_OBJECTS = test_process.$(OBJEXT) |
2450 | 223 | $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ | ||
2451 | 224 | $(test_parse_job_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \ | ||
2452 | 225 | $@ | ||
2453 | 226 | am_test_process_OBJECTS = test_process-test_process.$(OBJEXT) | ||
2455 | 227 | test_process_OBJECTS = $(am_test_process_OBJECTS) | 186 | test_process_OBJECTS = $(am_test_process_OBJECTS) |
2456 | 228 | test_process_DEPENDENCIES = system.o environ.o process.o job_class.o \ | 187 | test_process_DEPENDENCIES = system.o environ.o process.o job_class.o \ |
2457 | 229 | job_process.o job.o event.o event_operator.o blocked.o \ | 188 | job_process.o job.o event.o event_operator.o blocked.o \ |
2458 | @@ -231,15 +190,9 @@ | |||
2459 | 231 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ | 190 | com.ubuntu.Upstart.o com.ubuntu.Upstart.Job.o \ |
2460 | 232 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ | 191 | com.ubuntu.Upstart.Instance.o $(am__DEPENDENCIES_1) \ |
2461 | 233 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) | 192 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) |
2466 | 234 | test_process_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | 193 | am_test_system_OBJECTS = test_system.$(OBJEXT) |
2463 | 235 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_process_CFLAGS) \ | ||
2464 | 236 | $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
2465 | 237 | am_test_system_OBJECTS = test_system-test_system.$(OBJEXT) | ||
2467 | 238 | test_system_OBJECTS = $(am_test_system_OBJECTS) | 194 | test_system_OBJECTS = $(am_test_system_OBJECTS) |
2468 | 239 | test_system_DEPENDENCIES = system.o $(am__DEPENDENCIES_1) | 195 | test_system_DEPENDENCIES = system.o $(am__DEPENDENCIES_1) |
2469 | 240 | test_system_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
2470 | 241 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_system_CFLAGS) \ | ||
2471 | 242 | $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
2472 | 243 | DEFAULT_INCLUDES = | 196 | DEFAULT_INCLUDES = |
2473 | 244 | depcomp = $(SHELL) $(top_srcdir)/depcomp | 197 | depcomp = $(SHELL) $(top_srcdir)/depcomp |
2474 | 245 | am__depfiles_maybe = depfiles | 198 | am__depfiles_maybe = depfiles |
2475 | @@ -594,19 +547,16 @@ | |||
2476 | 594 | 547 | ||
2477 | 595 | EXTRA_DIST = init.supp | 548 | EXTRA_DIST = init.supp |
2478 | 596 | test_system_SOURCES = tests/test_system.c | 549 | test_system_SOURCES = tests/test_system.c |
2479 | 597 | test_system_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2480 | 598 | test_system_LDADD = \ | 550 | test_system_LDADD = \ |
2481 | 599 | system.o \ | 551 | system.o \ |
2482 | 600 | $(NIH_LIBS) | 552 | $(NIH_LIBS) |
2483 | 601 | 553 | ||
2484 | 602 | test_environ_SOURCES = tests/test_environ.c | 554 | test_environ_SOURCES = tests/test_environ.c |
2485 | 603 | test_environ_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2486 | 604 | test_environ_LDADD = \ | 555 | test_environ_LDADD = \ |
2487 | 605 | environ.o \ | 556 | environ.o \ |
2488 | 606 | $(NIH_LIBS) | 557 | $(NIH_LIBS) |
2489 | 607 | 558 | ||
2490 | 608 | test_process_SOURCES = tests/test_process.c | 559 | test_process_SOURCES = tests/test_process.c |
2491 | 609 | test_process_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2492 | 610 | test_process_LDADD = \ | 560 | test_process_LDADD = \ |
2493 | 611 | system.o environ.o process.o \ | 561 | system.o environ.o process.o \ |
2494 | 612 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 562 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2495 | @@ -619,7 +569,6 @@ | |||
2496 | 619 | $(DBUS_LIBS) | 569 | $(DBUS_LIBS) |
2497 | 620 | 570 | ||
2498 | 621 | test_job_class_SOURCES = tests/test_job_class.c | 571 | test_job_class_SOURCES = tests/test_job_class.c |
2499 | 622 | test_job_class_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2500 | 623 | test_job_class_LDADD = \ | 572 | test_job_class_LDADD = \ |
2501 | 624 | system.o environ.o process.o \ | 573 | system.o environ.o process.o \ |
2502 | 625 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 574 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2503 | @@ -632,7 +581,6 @@ | |||
2504 | 632 | $(DBUS_LIBS) | 581 | $(DBUS_LIBS) |
2505 | 633 | 582 | ||
2506 | 634 | test_job_process_SOURCES = tests/test_job_process.c | 583 | test_job_process_SOURCES = tests/test_job_process.c |
2507 | 635 | test_job_process_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2508 | 636 | test_job_process_LDADD = \ | 584 | test_job_process_LDADD = \ |
2509 | 637 | system.o environ.o process.o \ | 585 | system.o environ.o process.o \ |
2510 | 638 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 586 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2511 | @@ -645,7 +593,6 @@ | |||
2512 | 645 | $(DBUS_LIBS) | 593 | $(DBUS_LIBS) |
2513 | 646 | 594 | ||
2514 | 647 | test_job_SOURCES = tests/test_job.c | 595 | test_job_SOURCES = tests/test_job.c |
2515 | 648 | test_job_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2516 | 649 | test_job_LDADD = \ | 596 | test_job_LDADD = \ |
2517 | 650 | system.o environ.o process.o \ | 597 | system.o environ.o process.o \ |
2518 | 651 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 598 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2519 | @@ -658,7 +605,6 @@ | |||
2520 | 658 | $(DBUS_LIBS) | 605 | $(DBUS_LIBS) |
2521 | 659 | 606 | ||
2522 | 660 | test_event_SOURCES = tests/test_event.c | 607 | test_event_SOURCES = tests/test_event.c |
2523 | 661 | test_event_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2524 | 662 | test_event_LDADD = \ | 608 | test_event_LDADD = \ |
2525 | 663 | system.o environ.o process.o \ | 609 | system.o environ.o process.o \ |
2526 | 664 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 610 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2527 | @@ -671,7 +617,6 @@ | |||
2528 | 671 | $(DBUS_LIBS) | 617 | $(DBUS_LIBS) |
2529 | 672 | 618 | ||
2530 | 673 | test_event_operator_SOURCES = tests/test_event_operator.c | 619 | test_event_operator_SOURCES = tests/test_event_operator.c |
2531 | 674 | test_event_operator_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2532 | 675 | test_event_operator_LDADD = \ | 620 | test_event_operator_LDADD = \ |
2533 | 676 | system.o environ.o process.o \ | 621 | system.o environ.o process.o \ |
2534 | 677 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 622 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2535 | @@ -684,7 +629,6 @@ | |||
2536 | 684 | $(DBUS_LIBS) | 629 | $(DBUS_LIBS) |
2537 | 685 | 630 | ||
2538 | 686 | test_blocked_SOURCES = tests/test_blocked.c | 631 | test_blocked_SOURCES = tests/test_blocked.c |
2539 | 687 | test_blocked_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2540 | 688 | test_blocked_LDADD = \ | 632 | test_blocked_LDADD = \ |
2541 | 689 | system.o environ.o process.o \ | 633 | system.o environ.o process.o \ |
2542 | 690 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 634 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2543 | @@ -697,7 +641,6 @@ | |||
2544 | 697 | $(DBUS_LIBS) | 641 | $(DBUS_LIBS) |
2545 | 698 | 642 | ||
2546 | 699 | test_parse_job_SOURCES = tests/test_parse_job.c | 643 | test_parse_job_SOURCES = tests/test_parse_job.c |
2547 | 700 | test_parse_job_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2548 | 701 | test_parse_job_LDADD = \ | 644 | test_parse_job_LDADD = \ |
2549 | 702 | system.o environ.o process.o \ | 645 | system.o environ.o process.o \ |
2550 | 703 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 646 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2551 | @@ -710,7 +653,6 @@ | |||
2552 | 710 | $(DBUS_LIBS) | 653 | $(DBUS_LIBS) |
2553 | 711 | 654 | ||
2554 | 712 | test_parse_conf_SOURCES = tests/test_parse_conf.c | 655 | test_parse_conf_SOURCES = tests/test_parse_conf.c |
2555 | 713 | test_parse_conf_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2556 | 714 | test_parse_conf_LDADD = \ | 656 | test_parse_conf_LDADD = \ |
2557 | 715 | system.o environ.o process.o \ | 657 | system.o environ.o process.o \ |
2558 | 716 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 658 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2559 | @@ -723,7 +665,6 @@ | |||
2560 | 723 | $(DBUS_LIBS) | 665 | $(DBUS_LIBS) |
2561 | 724 | 666 | ||
2562 | 725 | test_conf_SOURCES = tests/test_conf.c | 667 | test_conf_SOURCES = tests/test_conf.c |
2563 | 726 | test_conf_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2564 | 727 | test_conf_LDADD = \ | 668 | test_conf_LDADD = \ |
2565 | 728 | system.o environ.o process.o \ | 669 | system.o environ.o process.o \ |
2566 | 729 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 670 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2567 | @@ -736,7 +677,6 @@ | |||
2568 | 736 | $(DBUS_LIBS) | 677 | $(DBUS_LIBS) |
2569 | 737 | 678 | ||
2570 | 738 | test_control_SOURCES = tests/test_control.c | 679 | test_control_SOURCES = tests/test_control.c |
2571 | 739 | test_control_CFLAGS = $(AM_CFLAGS) -DTEST | ||
2572 | 740 | test_control_LDADD = \ | 680 | test_control_LDADD = \ |
2573 | 741 | system.o environ.o process.o \ | 681 | system.o environ.o process.o \ |
2574 | 742 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ | 682 | job_class.o job_process.o job.o event.o event_operator.o blocked.o \ |
2575 | @@ -840,43 +780,43 @@ | |||
2576 | 840 | $(AM_V_CCLD)$(LINK) $(init_OBJECTS) $(init_LDADD) $(LIBS) | 780 | $(AM_V_CCLD)$(LINK) $(init_OBJECTS) $(init_LDADD) $(LIBS) |
2577 | 841 | test_blocked$(EXEEXT): $(test_blocked_OBJECTS) $(test_blocked_DEPENDENCIES) | 781 | test_blocked$(EXEEXT): $(test_blocked_OBJECTS) $(test_blocked_DEPENDENCIES) |
2578 | 842 | @rm -f test_blocked$(EXEEXT) | 782 | @rm -f test_blocked$(EXEEXT) |
2580 | 843 | $(AM_V_CCLD)$(test_blocked_LINK) $(test_blocked_OBJECTS) $(test_blocked_LDADD) $(LIBS) | 783 | $(AM_V_CCLD)$(LINK) $(test_blocked_OBJECTS) $(test_blocked_LDADD) $(LIBS) |
2581 | 844 | test_conf$(EXEEXT): $(test_conf_OBJECTS) $(test_conf_DEPENDENCIES) | 784 | test_conf$(EXEEXT): $(test_conf_OBJECTS) $(test_conf_DEPENDENCIES) |
2582 | 845 | @rm -f test_conf$(EXEEXT) | 785 | @rm -f test_conf$(EXEEXT) |
2584 | 846 | $(AM_V_CCLD)$(test_conf_LINK) $(test_conf_OBJECTS) $(test_conf_LDADD) $(LIBS) | 786 | $(AM_V_CCLD)$(LINK) $(test_conf_OBJECTS) $(test_conf_LDADD) $(LIBS) |
2585 | 847 | test_control$(EXEEXT): $(test_control_OBJECTS) $(test_control_DEPENDENCIES) | 787 | test_control$(EXEEXT): $(test_control_OBJECTS) $(test_control_DEPENDENCIES) |
2586 | 848 | @rm -f test_control$(EXEEXT) | 788 | @rm -f test_control$(EXEEXT) |
2588 | 849 | $(AM_V_CCLD)$(test_control_LINK) $(test_control_OBJECTS) $(test_control_LDADD) $(LIBS) | 789 | $(AM_V_CCLD)$(LINK) $(test_control_OBJECTS) $(test_control_LDADD) $(LIBS) |
2589 | 850 | test_environ$(EXEEXT): $(test_environ_OBJECTS) $(test_environ_DEPENDENCIES) | 790 | test_environ$(EXEEXT): $(test_environ_OBJECTS) $(test_environ_DEPENDENCIES) |
2590 | 851 | @rm -f test_environ$(EXEEXT) | 791 | @rm -f test_environ$(EXEEXT) |
2592 | 852 | $(AM_V_CCLD)$(test_environ_LINK) $(test_environ_OBJECTS) $(test_environ_LDADD) $(LIBS) | 792 | $(AM_V_CCLD)$(LINK) $(test_environ_OBJECTS) $(test_environ_LDADD) $(LIBS) |
2593 | 853 | test_event$(EXEEXT): $(test_event_OBJECTS) $(test_event_DEPENDENCIES) | 793 | test_event$(EXEEXT): $(test_event_OBJECTS) $(test_event_DEPENDENCIES) |
2594 | 854 | @rm -f test_event$(EXEEXT) | 794 | @rm -f test_event$(EXEEXT) |
2596 | 855 | $(AM_V_CCLD)$(test_event_LINK) $(test_event_OBJECTS) $(test_event_LDADD) $(LIBS) | 795 | $(AM_V_CCLD)$(LINK) $(test_event_OBJECTS) $(test_event_LDADD) $(LIBS) |
2597 | 856 | test_event_operator$(EXEEXT): $(test_event_operator_OBJECTS) $(test_event_operator_DEPENDENCIES) | 796 | test_event_operator$(EXEEXT): $(test_event_operator_OBJECTS) $(test_event_operator_DEPENDENCIES) |
2598 | 857 | @rm -f test_event_operator$(EXEEXT) | 797 | @rm -f test_event_operator$(EXEEXT) |
2600 | 858 | $(AM_V_CCLD)$(test_event_operator_LINK) $(test_event_operator_OBJECTS) $(test_event_operator_LDADD) $(LIBS) | 798 | $(AM_V_CCLD)$(LINK) $(test_event_operator_OBJECTS) $(test_event_operator_LDADD) $(LIBS) |
2601 | 859 | test_job$(EXEEXT): $(test_job_OBJECTS) $(test_job_DEPENDENCIES) | 799 | test_job$(EXEEXT): $(test_job_OBJECTS) $(test_job_DEPENDENCIES) |
2602 | 860 | @rm -f test_job$(EXEEXT) | 800 | @rm -f test_job$(EXEEXT) |
2604 | 861 | $(AM_V_CCLD)$(test_job_LINK) $(test_job_OBJECTS) $(test_job_LDADD) $(LIBS) | 801 | $(AM_V_CCLD)$(LINK) $(test_job_OBJECTS) $(test_job_LDADD) $(LIBS) |
2605 | 862 | test_job_class$(EXEEXT): $(test_job_class_OBJECTS) $(test_job_class_DEPENDENCIES) | 802 | test_job_class$(EXEEXT): $(test_job_class_OBJECTS) $(test_job_class_DEPENDENCIES) |
2606 | 863 | @rm -f test_job_class$(EXEEXT) | 803 | @rm -f test_job_class$(EXEEXT) |
2608 | 864 | $(AM_V_CCLD)$(test_job_class_LINK) $(test_job_class_OBJECTS) $(test_job_class_LDADD) $(LIBS) | 804 | $(AM_V_CCLD)$(LINK) $(test_job_class_OBJECTS) $(test_job_class_LDADD) $(LIBS) |
2609 | 865 | test_job_process$(EXEEXT): $(test_job_process_OBJECTS) $(test_job_process_DEPENDENCIES) | 805 | test_job_process$(EXEEXT): $(test_job_process_OBJECTS) $(test_job_process_DEPENDENCIES) |
2610 | 866 | @rm -f test_job_process$(EXEEXT) | 806 | @rm -f test_job_process$(EXEEXT) |
2612 | 867 | $(AM_V_CCLD)$(test_job_process_LINK) $(test_job_process_OBJECTS) $(test_job_process_LDADD) $(LIBS) | 807 | $(AM_V_CCLD)$(LINK) $(test_job_process_OBJECTS) $(test_job_process_LDADD) $(LIBS) |
2613 | 868 | test_parse_conf$(EXEEXT): $(test_parse_conf_OBJECTS) $(test_parse_conf_DEPENDENCIES) | 808 | test_parse_conf$(EXEEXT): $(test_parse_conf_OBJECTS) $(test_parse_conf_DEPENDENCIES) |
2614 | 869 | @rm -f test_parse_conf$(EXEEXT) | 809 | @rm -f test_parse_conf$(EXEEXT) |
2616 | 870 | $(AM_V_CCLD)$(test_parse_conf_LINK) $(test_parse_conf_OBJECTS) $(test_parse_conf_LDADD) $(LIBS) | 810 | $(AM_V_CCLD)$(LINK) $(test_parse_conf_OBJECTS) $(test_parse_conf_LDADD) $(LIBS) |
2617 | 871 | test_parse_job$(EXEEXT): $(test_parse_job_OBJECTS) $(test_parse_job_DEPENDENCIES) | 811 | test_parse_job$(EXEEXT): $(test_parse_job_OBJECTS) $(test_parse_job_DEPENDENCIES) |
2618 | 872 | @rm -f test_parse_job$(EXEEXT) | 812 | @rm -f test_parse_job$(EXEEXT) |
2620 | 873 | $(AM_V_CCLD)$(test_parse_job_LINK) $(test_parse_job_OBJECTS) $(test_parse_job_LDADD) $(LIBS) | 813 | $(AM_V_CCLD)$(LINK) $(test_parse_job_OBJECTS) $(test_parse_job_LDADD) $(LIBS) |
2621 | 874 | test_process$(EXEEXT): $(test_process_OBJECTS) $(test_process_DEPENDENCIES) | 814 | test_process$(EXEEXT): $(test_process_OBJECTS) $(test_process_DEPENDENCIES) |
2622 | 875 | @rm -f test_process$(EXEEXT) | 815 | @rm -f test_process$(EXEEXT) |
2624 | 876 | $(AM_V_CCLD)$(test_process_LINK) $(test_process_OBJECTS) $(test_process_LDADD) $(LIBS) | 816 | $(AM_V_CCLD)$(LINK) $(test_process_OBJECTS) $(test_process_LDADD) $(LIBS) |
2625 | 877 | test_system$(EXEEXT): $(test_system_OBJECTS) $(test_system_DEPENDENCIES) | 817 | test_system$(EXEEXT): $(test_system_OBJECTS) $(test_system_DEPENDENCIES) |
2626 | 878 | @rm -f test_system$(EXEEXT) | 818 | @rm -f test_system$(EXEEXT) |
2628 | 879 | $(AM_V_CCLD)$(test_system_LINK) $(test_system_OBJECTS) $(test_system_LDADD) $(LIBS) | 819 | $(AM_V_CCLD)$(LINK) $(test_system_OBJECTS) $(test_system_LDADD) $(LIBS) |
2629 | 880 | 820 | ||
2630 | 881 | mostlyclean-compile: | 821 | mostlyclean-compile: |
2631 | 882 | -rm -f *.$(OBJEXT) | 822 | -rm -f *.$(OBJEXT) |
2632 | @@ -902,19 +842,19 @@ | |||
2633 | 902 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process.Po@am__quote@ | 842 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process.Po@am__quote@ |
2634 | 903 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/session.Po@am__quote@ | 843 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/session.Po@am__quote@ |
2635 | 904 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/system.Po@am__quote@ | 844 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/system.Po@am__quote@ |
2649 | 905 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_blocked-test_blocked.Po@am__quote@ | 845 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_blocked.Po@am__quote@ |
2650 | 906 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_conf-test_conf.Po@am__quote@ | 846 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_conf.Po@am__quote@ |
2651 | 907 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_control-test_control.Po@am__quote@ | 847 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_control.Po@am__quote@ |
2652 | 908 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_environ-test_environ.Po@am__quote@ | 848 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_environ.Po@am__quote@ |
2653 | 909 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_event-test_event.Po@am__quote@ | 849 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_event.Po@am__quote@ |
2654 | 910 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_event_operator-test_event_operator.Po@am__quote@ | 850 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_event_operator.Po@am__quote@ |
2655 | 911 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_job-test_job.Po@am__quote@ | 851 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_job.Po@am__quote@ |
2656 | 912 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_job_class-test_job_class.Po@am__quote@ | 852 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_job_class.Po@am__quote@ |
2657 | 913 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_job_process-test_job_process.Po@am__quote@ | 853 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_job_process.Po@am__quote@ |
2658 | 914 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_parse_conf-test_parse_conf.Po@am__quote@ | 854 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_parse_conf.Po@am__quote@ |
2659 | 915 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_parse_job-test_parse_job.Po@am__quote@ | 855 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_parse_job.Po@am__quote@ |
2660 | 916 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_process-test_process.Po@am__quote@ | 856 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_process.Po@am__quote@ |
2661 | 917 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_system-test_system.Po@am__quote@ | 857 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_system.Po@am__quote@ |
2662 | 918 | 858 | ||
2663 | 919 | .c.o: | 859 | .c.o: |
2664 | 920 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | 860 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
2665 | @@ -940,213 +880,213 @@ | |||
2666 | 940 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 880 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2667 | 941 | @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< | 881 | @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< |
2668 | 942 | 882 | ||
2876 | 943 | test_blocked-test_blocked.o: tests/test_blocked.c | 883 | test_blocked.o: tests/test_blocked.c |
2877 | 944 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_blocked_CFLAGS) $(CFLAGS) -MT test_blocked-test_blocked.o -MD -MP -MF $(DEPDIR)/test_blocked-test_blocked.Tpo -c -o test_blocked-test_blocked.o `test -f 'tests/test_blocked.c' || echo '$(srcdir)/'`tests/test_blocked.c | 884 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_blocked.o -MD -MP -MF $(DEPDIR)/test_blocked.Tpo -c -o test_blocked.o `test -f 'tests/test_blocked.c' || echo '$(srcdir)/'`tests/test_blocked.c |
2878 | 945 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_blocked-test_blocked.Tpo $(DEPDIR)/test_blocked-test_blocked.Po | 885 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_blocked.Tpo $(DEPDIR)/test_blocked.Po |
2879 | 946 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 886 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2880 | 947 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_blocked.c' object='test_blocked-test_blocked.o' libtool=no @AMDEPBACKSLASH@ | 887 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_blocked.c' object='test_blocked.o' libtool=no @AMDEPBACKSLASH@ |
2881 | 948 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 888 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2882 | 949 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_blocked_CFLAGS) $(CFLAGS) -c -o test_blocked-test_blocked.o `test -f 'tests/test_blocked.c' || echo '$(srcdir)/'`tests/test_blocked.c | 889 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_blocked.o `test -f 'tests/test_blocked.c' || echo '$(srcdir)/'`tests/test_blocked.c |
2883 | 950 | 890 | ||
2884 | 951 | test_blocked-test_blocked.obj: tests/test_blocked.c | 891 | test_blocked.obj: tests/test_blocked.c |
2885 | 952 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_blocked_CFLAGS) $(CFLAGS) -MT test_blocked-test_blocked.obj -MD -MP -MF $(DEPDIR)/test_blocked-test_blocked.Tpo -c -o test_blocked-test_blocked.obj `if test -f 'tests/test_blocked.c'; then $(CYGPATH_W) 'tests/test_blocked.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_blocked.c'; fi` | 892 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_blocked.obj -MD -MP -MF $(DEPDIR)/test_blocked.Tpo -c -o test_blocked.obj `if test -f 'tests/test_blocked.c'; then $(CYGPATH_W) 'tests/test_blocked.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_blocked.c'; fi` |
2886 | 953 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_blocked-test_blocked.Tpo $(DEPDIR)/test_blocked-test_blocked.Po | 893 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_blocked.Tpo $(DEPDIR)/test_blocked.Po |
2887 | 954 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 894 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2888 | 955 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_blocked.c' object='test_blocked-test_blocked.obj' libtool=no @AMDEPBACKSLASH@ | 895 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_blocked.c' object='test_blocked.obj' libtool=no @AMDEPBACKSLASH@ |
2889 | 956 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 896 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2890 | 957 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_blocked_CFLAGS) $(CFLAGS) -c -o test_blocked-test_blocked.obj `if test -f 'tests/test_blocked.c'; then $(CYGPATH_W) 'tests/test_blocked.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_blocked.c'; fi` | 897 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_blocked.obj `if test -f 'tests/test_blocked.c'; then $(CYGPATH_W) 'tests/test_blocked.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_blocked.c'; fi` |
2891 | 958 | 898 | ||
2892 | 959 | test_conf-test_conf.o: tests/test_conf.c | 899 | test_conf.o: tests/test_conf.c |
2893 | 960 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_conf_CFLAGS) $(CFLAGS) -MT test_conf-test_conf.o -MD -MP -MF $(DEPDIR)/test_conf-test_conf.Tpo -c -o test_conf-test_conf.o `test -f 'tests/test_conf.c' || echo '$(srcdir)/'`tests/test_conf.c | 900 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_conf.o -MD -MP -MF $(DEPDIR)/test_conf.Tpo -c -o test_conf.o `test -f 'tests/test_conf.c' || echo '$(srcdir)/'`tests/test_conf.c |
2894 | 961 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_conf-test_conf.Tpo $(DEPDIR)/test_conf-test_conf.Po | 901 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_conf.Tpo $(DEPDIR)/test_conf.Po |
2895 | 962 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 902 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2896 | 963 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_conf.c' object='test_conf-test_conf.o' libtool=no @AMDEPBACKSLASH@ | 903 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_conf.c' object='test_conf.o' libtool=no @AMDEPBACKSLASH@ |
2897 | 964 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 904 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2898 | 965 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_conf_CFLAGS) $(CFLAGS) -c -o test_conf-test_conf.o `test -f 'tests/test_conf.c' || echo '$(srcdir)/'`tests/test_conf.c | 905 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_conf.o `test -f 'tests/test_conf.c' || echo '$(srcdir)/'`tests/test_conf.c |
2899 | 966 | 906 | ||
2900 | 967 | test_conf-test_conf.obj: tests/test_conf.c | 907 | test_conf.obj: tests/test_conf.c |
2901 | 968 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_conf_CFLAGS) $(CFLAGS) -MT test_conf-test_conf.obj -MD -MP -MF $(DEPDIR)/test_conf-test_conf.Tpo -c -o test_conf-test_conf.obj `if test -f 'tests/test_conf.c'; then $(CYGPATH_W) 'tests/test_conf.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_conf.c'; fi` | 908 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_conf.obj -MD -MP -MF $(DEPDIR)/test_conf.Tpo -c -o test_conf.obj `if test -f 'tests/test_conf.c'; then $(CYGPATH_W) 'tests/test_conf.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_conf.c'; fi` |
2902 | 969 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_conf-test_conf.Tpo $(DEPDIR)/test_conf-test_conf.Po | 909 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_conf.Tpo $(DEPDIR)/test_conf.Po |
2903 | 970 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 910 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2904 | 971 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_conf.c' object='test_conf-test_conf.obj' libtool=no @AMDEPBACKSLASH@ | 911 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_conf.c' object='test_conf.obj' libtool=no @AMDEPBACKSLASH@ |
2905 | 972 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 912 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2906 | 973 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_conf_CFLAGS) $(CFLAGS) -c -o test_conf-test_conf.obj `if test -f 'tests/test_conf.c'; then $(CYGPATH_W) 'tests/test_conf.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_conf.c'; fi` | 913 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_conf.obj `if test -f 'tests/test_conf.c'; then $(CYGPATH_W) 'tests/test_conf.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_conf.c'; fi` |
2907 | 974 | 914 | ||
2908 | 975 | test_control-test_control.o: tests/test_control.c | 915 | test_control.o: tests/test_control.c |
2909 | 976 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_control_CFLAGS) $(CFLAGS) -MT test_control-test_control.o -MD -MP -MF $(DEPDIR)/test_control-test_control.Tpo -c -o test_control-test_control.o `test -f 'tests/test_control.c' || echo '$(srcdir)/'`tests/test_control.c | 916 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_control.o -MD -MP -MF $(DEPDIR)/test_control.Tpo -c -o test_control.o `test -f 'tests/test_control.c' || echo '$(srcdir)/'`tests/test_control.c |
2910 | 977 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_control-test_control.Tpo $(DEPDIR)/test_control-test_control.Po | 917 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_control.Tpo $(DEPDIR)/test_control.Po |
2911 | 978 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 918 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2912 | 979 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_control.c' object='test_control-test_control.o' libtool=no @AMDEPBACKSLASH@ | 919 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_control.c' object='test_control.o' libtool=no @AMDEPBACKSLASH@ |
2913 | 980 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 920 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2914 | 981 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_control_CFLAGS) $(CFLAGS) -c -o test_control-test_control.o `test -f 'tests/test_control.c' || echo '$(srcdir)/'`tests/test_control.c | 921 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_control.o `test -f 'tests/test_control.c' || echo '$(srcdir)/'`tests/test_control.c |
2915 | 982 | 922 | ||
2916 | 983 | test_control-test_control.obj: tests/test_control.c | 923 | test_control.obj: tests/test_control.c |
2917 | 984 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_control_CFLAGS) $(CFLAGS) -MT test_control-test_control.obj -MD -MP -MF $(DEPDIR)/test_control-test_control.Tpo -c -o test_control-test_control.obj `if test -f 'tests/test_control.c'; then $(CYGPATH_W) 'tests/test_control.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_control.c'; fi` | 924 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_control.obj -MD -MP -MF $(DEPDIR)/test_control.Tpo -c -o test_control.obj `if test -f 'tests/test_control.c'; then $(CYGPATH_W) 'tests/test_control.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_control.c'; fi` |
2918 | 985 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_control-test_control.Tpo $(DEPDIR)/test_control-test_control.Po | 925 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_control.Tpo $(DEPDIR)/test_control.Po |
2919 | 986 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 926 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2920 | 987 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_control.c' object='test_control-test_control.obj' libtool=no @AMDEPBACKSLASH@ | 927 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_control.c' object='test_control.obj' libtool=no @AMDEPBACKSLASH@ |
2921 | 988 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 928 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2922 | 989 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_control_CFLAGS) $(CFLAGS) -c -o test_control-test_control.obj `if test -f 'tests/test_control.c'; then $(CYGPATH_W) 'tests/test_control.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_control.c'; fi` | 929 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_control.obj `if test -f 'tests/test_control.c'; then $(CYGPATH_W) 'tests/test_control.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_control.c'; fi` |
2923 | 990 | 930 | ||
2924 | 991 | test_environ-test_environ.o: tests/test_environ.c | 931 | test_environ.o: tests/test_environ.c |
2925 | 992 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_environ_CFLAGS) $(CFLAGS) -MT test_environ-test_environ.o -MD -MP -MF $(DEPDIR)/test_environ-test_environ.Tpo -c -o test_environ-test_environ.o `test -f 'tests/test_environ.c' || echo '$(srcdir)/'`tests/test_environ.c | 932 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_environ.o -MD -MP -MF $(DEPDIR)/test_environ.Tpo -c -o test_environ.o `test -f 'tests/test_environ.c' || echo '$(srcdir)/'`tests/test_environ.c |
2926 | 993 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_environ-test_environ.Tpo $(DEPDIR)/test_environ-test_environ.Po | 933 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_environ.Tpo $(DEPDIR)/test_environ.Po |
2927 | 994 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 934 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2928 | 995 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_environ.c' object='test_environ-test_environ.o' libtool=no @AMDEPBACKSLASH@ | 935 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_environ.c' object='test_environ.o' libtool=no @AMDEPBACKSLASH@ |
2929 | 996 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 936 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2930 | 997 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_environ_CFLAGS) $(CFLAGS) -c -o test_environ-test_environ.o `test -f 'tests/test_environ.c' || echo '$(srcdir)/'`tests/test_environ.c | 937 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_environ.o `test -f 'tests/test_environ.c' || echo '$(srcdir)/'`tests/test_environ.c |
2931 | 998 | 938 | ||
2932 | 999 | test_environ-test_environ.obj: tests/test_environ.c | 939 | test_environ.obj: tests/test_environ.c |
2933 | 1000 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_environ_CFLAGS) $(CFLAGS) -MT test_environ-test_environ.obj -MD -MP -MF $(DEPDIR)/test_environ-test_environ.Tpo -c -o test_environ-test_environ.obj `if test -f 'tests/test_environ.c'; then $(CYGPATH_W) 'tests/test_environ.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_environ.c'; fi` | 940 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_environ.obj -MD -MP -MF $(DEPDIR)/test_environ.Tpo -c -o test_environ.obj `if test -f 'tests/test_environ.c'; then $(CYGPATH_W) 'tests/test_environ.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_environ.c'; fi` |
2934 | 1001 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_environ-test_environ.Tpo $(DEPDIR)/test_environ-test_environ.Po | 941 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_environ.Tpo $(DEPDIR)/test_environ.Po |
2935 | 1002 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 942 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2936 | 1003 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_environ.c' object='test_environ-test_environ.obj' libtool=no @AMDEPBACKSLASH@ | 943 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_environ.c' object='test_environ.obj' libtool=no @AMDEPBACKSLASH@ |
2937 | 1004 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 944 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2938 | 1005 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_environ_CFLAGS) $(CFLAGS) -c -o test_environ-test_environ.obj `if test -f 'tests/test_environ.c'; then $(CYGPATH_W) 'tests/test_environ.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_environ.c'; fi` | 945 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_environ.obj `if test -f 'tests/test_environ.c'; then $(CYGPATH_W) 'tests/test_environ.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_environ.c'; fi` |
2939 | 1006 | 946 | ||
2940 | 1007 | test_event-test_event.o: tests/test_event.c | 947 | test_event.o: tests/test_event.c |
2941 | 1008 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_event_CFLAGS) $(CFLAGS) -MT test_event-test_event.o -MD -MP -MF $(DEPDIR)/test_event-test_event.Tpo -c -o test_event-test_event.o `test -f 'tests/test_event.c' || echo '$(srcdir)/'`tests/test_event.c | 948 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_event.o -MD -MP -MF $(DEPDIR)/test_event.Tpo -c -o test_event.o `test -f 'tests/test_event.c' || echo '$(srcdir)/'`tests/test_event.c |
2942 | 1009 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_event-test_event.Tpo $(DEPDIR)/test_event-test_event.Po | 949 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_event.Tpo $(DEPDIR)/test_event.Po |
2943 | 1010 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 950 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2944 | 1011 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_event.c' object='test_event-test_event.o' libtool=no @AMDEPBACKSLASH@ | 951 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_event.c' object='test_event.o' libtool=no @AMDEPBACKSLASH@ |
2945 | 1012 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 952 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2946 | 1013 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_event_CFLAGS) $(CFLAGS) -c -o test_event-test_event.o `test -f 'tests/test_event.c' || echo '$(srcdir)/'`tests/test_event.c | 953 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_event.o `test -f 'tests/test_event.c' || echo '$(srcdir)/'`tests/test_event.c |
2947 | 1014 | 954 | ||
2948 | 1015 | test_event-test_event.obj: tests/test_event.c | 955 | test_event.obj: tests/test_event.c |
2949 | 1016 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_event_CFLAGS) $(CFLAGS) -MT test_event-test_event.obj -MD -MP -MF $(DEPDIR)/test_event-test_event.Tpo -c -o test_event-test_event.obj `if test -f 'tests/test_event.c'; then $(CYGPATH_W) 'tests/test_event.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_event.c'; fi` | 956 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_event.obj -MD -MP -MF $(DEPDIR)/test_event.Tpo -c -o test_event.obj `if test -f 'tests/test_event.c'; then $(CYGPATH_W) 'tests/test_event.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_event.c'; fi` |
2950 | 1017 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_event-test_event.Tpo $(DEPDIR)/test_event-test_event.Po | 957 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_event.Tpo $(DEPDIR)/test_event.Po |
2951 | 1018 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 958 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2952 | 1019 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_event.c' object='test_event-test_event.obj' libtool=no @AMDEPBACKSLASH@ | 959 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_event.c' object='test_event.obj' libtool=no @AMDEPBACKSLASH@ |
2953 | 1020 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 960 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2954 | 1021 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_event_CFLAGS) $(CFLAGS) -c -o test_event-test_event.obj `if test -f 'tests/test_event.c'; then $(CYGPATH_W) 'tests/test_event.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_event.c'; fi` | 961 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_event.obj `if test -f 'tests/test_event.c'; then $(CYGPATH_W) 'tests/test_event.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_event.c'; fi` |
2955 | 1022 | 962 | ||
2956 | 1023 | test_event_operator-test_event_operator.o: tests/test_event_operator.c | 963 | test_event_operator.o: tests/test_event_operator.c |
2957 | 1024 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_event_operator_CFLAGS) $(CFLAGS) -MT test_event_operator-test_event_operator.o -MD -MP -MF $(DEPDIR)/test_event_operator-test_event_operator.Tpo -c -o test_event_operator-test_event_operator.o `test -f 'tests/test_event_operator.c' || echo '$(srcdir)/'`tests/test_event_operator.c | 964 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_event_operator.o -MD -MP -MF $(DEPDIR)/test_event_operator.Tpo -c -o test_event_operator.o `test -f 'tests/test_event_operator.c' || echo '$(srcdir)/'`tests/test_event_operator.c |
2958 | 1025 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_event_operator-test_event_operator.Tpo $(DEPDIR)/test_event_operator-test_event_operator.Po | 965 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_event_operator.Tpo $(DEPDIR)/test_event_operator.Po |
2959 | 1026 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 966 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2960 | 1027 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_event_operator.c' object='test_event_operator-test_event_operator.o' libtool=no @AMDEPBACKSLASH@ | 967 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_event_operator.c' object='test_event_operator.o' libtool=no @AMDEPBACKSLASH@ |
2961 | 1028 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 968 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2962 | 1029 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_event_operator_CFLAGS) $(CFLAGS) -c -o test_event_operator-test_event_operator.o `test -f 'tests/test_event_operator.c' || echo '$(srcdir)/'`tests/test_event_operator.c | 969 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_event_operator.o `test -f 'tests/test_event_operator.c' || echo '$(srcdir)/'`tests/test_event_operator.c |
2963 | 1030 | 970 | ||
2964 | 1031 | test_event_operator-test_event_operator.obj: tests/test_event_operator.c | 971 | test_event_operator.obj: tests/test_event_operator.c |
2965 | 1032 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_event_operator_CFLAGS) $(CFLAGS) -MT test_event_operator-test_event_operator.obj -MD -MP -MF $(DEPDIR)/test_event_operator-test_event_operator.Tpo -c -o test_event_operator-test_event_operator.obj `if test -f 'tests/test_event_operator.c'; then $(CYGPATH_W) 'tests/test_event_operator.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_event_operator.c'; fi` | 972 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_event_operator.obj -MD -MP -MF $(DEPDIR)/test_event_operator.Tpo -c -o test_event_operator.obj `if test -f 'tests/test_event_operator.c'; then $(CYGPATH_W) 'tests/test_event_operator.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_event_operator.c'; fi` |
2966 | 1033 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_event_operator-test_event_operator.Tpo $(DEPDIR)/test_event_operator-test_event_operator.Po | 973 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_event_operator.Tpo $(DEPDIR)/test_event_operator.Po |
2967 | 1034 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 974 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2968 | 1035 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_event_operator.c' object='test_event_operator-test_event_operator.obj' libtool=no @AMDEPBACKSLASH@ | 975 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_event_operator.c' object='test_event_operator.obj' libtool=no @AMDEPBACKSLASH@ |
2969 | 1036 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 976 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2970 | 1037 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_event_operator_CFLAGS) $(CFLAGS) -c -o test_event_operator-test_event_operator.obj `if test -f 'tests/test_event_operator.c'; then $(CYGPATH_W) 'tests/test_event_operator.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_event_operator.c'; fi` | 977 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_event_operator.obj `if test -f 'tests/test_event_operator.c'; then $(CYGPATH_W) 'tests/test_event_operator.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_event_operator.c'; fi` |
2971 | 1038 | 978 | ||
2972 | 1039 | test_job-test_job.o: tests/test_job.c | 979 | test_job.o: tests/test_job.c |
2973 | 1040 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_job_CFLAGS) $(CFLAGS) -MT test_job-test_job.o -MD -MP -MF $(DEPDIR)/test_job-test_job.Tpo -c -o test_job-test_job.o `test -f 'tests/test_job.c' || echo '$(srcdir)/'`tests/test_job.c | 980 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_job.o -MD -MP -MF $(DEPDIR)/test_job.Tpo -c -o test_job.o `test -f 'tests/test_job.c' || echo '$(srcdir)/'`tests/test_job.c |
2974 | 1041 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_job-test_job.Tpo $(DEPDIR)/test_job-test_job.Po | 981 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_job.Tpo $(DEPDIR)/test_job.Po |
2975 | 1042 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 982 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2976 | 1043 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_job.c' object='test_job-test_job.o' libtool=no @AMDEPBACKSLASH@ | 983 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_job.c' object='test_job.o' libtool=no @AMDEPBACKSLASH@ |
2977 | 1044 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 984 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2978 | 1045 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_job_CFLAGS) $(CFLAGS) -c -o test_job-test_job.o `test -f 'tests/test_job.c' || echo '$(srcdir)/'`tests/test_job.c | 985 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_job.o `test -f 'tests/test_job.c' || echo '$(srcdir)/'`tests/test_job.c |
2979 | 1046 | 986 | ||
2980 | 1047 | test_job-test_job.obj: tests/test_job.c | 987 | test_job.obj: tests/test_job.c |
2981 | 1048 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_job_CFLAGS) $(CFLAGS) -MT test_job-test_job.obj -MD -MP -MF $(DEPDIR)/test_job-test_job.Tpo -c -o test_job-test_job.obj `if test -f 'tests/test_job.c'; then $(CYGPATH_W) 'tests/test_job.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_job.c'; fi` | 988 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_job.obj -MD -MP -MF $(DEPDIR)/test_job.Tpo -c -o test_job.obj `if test -f 'tests/test_job.c'; then $(CYGPATH_W) 'tests/test_job.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_job.c'; fi` |
2982 | 1049 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_job-test_job.Tpo $(DEPDIR)/test_job-test_job.Po | 989 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_job.Tpo $(DEPDIR)/test_job.Po |
2983 | 1050 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 990 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2984 | 1051 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_job.c' object='test_job-test_job.obj' libtool=no @AMDEPBACKSLASH@ | 991 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_job.c' object='test_job.obj' libtool=no @AMDEPBACKSLASH@ |
2985 | 1052 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 992 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2986 | 1053 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_job_CFLAGS) $(CFLAGS) -c -o test_job-test_job.obj `if test -f 'tests/test_job.c'; then $(CYGPATH_W) 'tests/test_job.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_job.c'; fi` | 993 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_job.obj `if test -f 'tests/test_job.c'; then $(CYGPATH_W) 'tests/test_job.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_job.c'; fi` |
2987 | 1054 | 994 | ||
2988 | 1055 | test_job_class-test_job_class.o: tests/test_job_class.c | 995 | test_job_class.o: tests/test_job_class.c |
2989 | 1056 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_job_class_CFLAGS) $(CFLAGS) -MT test_job_class-test_job_class.o -MD -MP -MF $(DEPDIR)/test_job_class-test_job_class.Tpo -c -o test_job_class-test_job_class.o `test -f 'tests/test_job_class.c' || echo '$(srcdir)/'`tests/test_job_class.c | 996 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_job_class.o -MD -MP -MF $(DEPDIR)/test_job_class.Tpo -c -o test_job_class.o `test -f 'tests/test_job_class.c' || echo '$(srcdir)/'`tests/test_job_class.c |
2990 | 1057 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_job_class-test_job_class.Tpo $(DEPDIR)/test_job_class-test_job_class.Po | 997 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_job_class.Tpo $(DEPDIR)/test_job_class.Po |
2991 | 1058 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 998 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
2992 | 1059 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_job_class.c' object='test_job_class-test_job_class.o' libtool=no @AMDEPBACKSLASH@ | 999 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_job_class.c' object='test_job_class.o' libtool=no @AMDEPBACKSLASH@ |
2993 | 1060 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 1000 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
2994 | 1061 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_job_class_CFLAGS) $(CFLAGS) -c -o test_job_class-test_job_class.o `test -f 'tests/test_job_class.c' || echo '$(srcdir)/'`tests/test_job_class.c | 1001 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_job_class.o `test -f 'tests/test_job_class.c' || echo '$(srcdir)/'`tests/test_job_class.c |
2995 | 1062 | 1002 | ||
2996 | 1063 | test_job_class-test_job_class.obj: tests/test_job_class.c | 1003 | test_job_class.obj: tests/test_job_class.c |
2997 | 1064 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_job_class_CFLAGS) $(CFLAGS) -MT test_job_class-test_job_class.obj -MD -MP -MF $(DEPDIR)/test_job_class-test_job_class.Tpo -c -o test_job_class-test_job_class.obj `if test -f 'tests/test_job_class.c'; then $(CYGPATH_W) 'tests/test_job_class.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_job_class.c'; fi` | 1004 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_job_class.obj -MD -MP -MF $(DEPDIR)/test_job_class.Tpo -c -o test_job_class.obj `if test -f 'tests/test_job_class.c'; then $(CYGPATH_W) 'tests/test_job_class.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_job_class.c'; fi` |
2998 | 1065 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_job_class-test_job_class.Tpo $(DEPDIR)/test_job_class-test_job_class.Po | 1005 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_job_class.Tpo $(DEPDIR)/test_job_class.Po |
2999 | 1066 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 1006 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
3000 | 1067 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_job_class.c' object='test_job_class-test_job_class.obj' libtool=no @AMDEPBACKSLASH@ | 1007 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_job_class.c' object='test_job_class.obj' libtool=no @AMDEPBACKSLASH@ |
3001 | 1068 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 1008 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
3002 | 1069 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_job_class_CFLAGS) $(CFLAGS) -c -o test_job_class-test_job_class.obj `if test -f 'tests/test_job_class.c'; then $(CYGPATH_W) 'tests/test_job_class.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_job_class.c'; fi` | 1009 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_job_class.obj `if test -f 'tests/test_job_class.c'; then $(CYGPATH_W) 'tests/test_job_class.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_job_class.c'; fi` |
3003 | 1070 | 1010 | ||
3004 | 1071 | test_job_process-test_job_process.o: tests/test_job_process.c | 1011 | test_job_process.o: tests/test_job_process.c |
3005 | 1072 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_job_process_CFLAGS) $(CFLAGS) -MT test_job_process-test_job_process.o -MD -MP -MF $(DEPDIR)/test_job_process-test_job_process.Tpo -c -o test_job_process-test_job_process.o `test -f 'tests/test_job_process.c' || echo '$(srcdir)/'`tests/test_job_process.c | 1012 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_job_process.o -MD -MP -MF $(DEPDIR)/test_job_process.Tpo -c -o test_job_process.o `test -f 'tests/test_job_process.c' || echo '$(srcdir)/'`tests/test_job_process.c |
3006 | 1073 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_job_process-test_job_process.Tpo $(DEPDIR)/test_job_process-test_job_process.Po | 1013 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_job_process.Tpo $(DEPDIR)/test_job_process.Po |
3007 | 1074 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 1014 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
3008 | 1075 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_job_process.c' object='test_job_process-test_job_process.o' libtool=no @AMDEPBACKSLASH@ | 1015 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_job_process.c' object='test_job_process.o' libtool=no @AMDEPBACKSLASH@ |
3009 | 1076 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 1016 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
3010 | 1077 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_job_process_CFLAGS) $(CFLAGS) -c -o test_job_process-test_job_process.o `test -f 'tests/test_job_process.c' || echo '$(srcdir)/'`tests/test_job_process.c | 1017 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_job_process.o `test -f 'tests/test_job_process.c' || echo '$(srcdir)/'`tests/test_job_process.c |
3011 | 1078 | 1018 | ||
3012 | 1079 | test_job_process-test_job_process.obj: tests/test_job_process.c | 1019 | test_job_process.obj: tests/test_job_process.c |
3013 | 1080 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_job_process_CFLAGS) $(CFLAGS) -MT test_job_process-test_job_process.obj -MD -MP -MF $(DEPDIR)/test_job_process-test_job_process.Tpo -c -o test_job_process-test_job_process.obj `if test -f 'tests/test_job_process.c'; then $(CYGPATH_W) 'tests/test_job_process.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_job_process.c'; fi` | 1020 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_job_process.obj -MD -MP -MF $(DEPDIR)/test_job_process.Tpo -c -o test_job_process.obj `if test -f 'tests/test_job_process.c'; then $(CYGPATH_W) 'tests/test_job_process.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_job_process.c'; fi` |
3014 | 1081 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_job_process-test_job_process.Tpo $(DEPDIR)/test_job_process-test_job_process.Po | 1021 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_job_process.Tpo $(DEPDIR)/test_job_process.Po |
3015 | 1082 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 1022 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
3016 | 1083 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_job_process.c' object='test_job_process-test_job_process.obj' libtool=no @AMDEPBACKSLASH@ | 1023 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_job_process.c' object='test_job_process.obj' libtool=no @AMDEPBACKSLASH@ |
3017 | 1084 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 1024 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
3018 | 1085 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_job_process_CFLAGS) $(CFLAGS) -c -o test_job_process-test_job_process.obj `if test -f 'tests/test_job_process.c'; then $(CYGPATH_W) 'tests/test_job_process.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_job_process.c'; fi` | 1025 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_job_process.obj `if test -f 'tests/test_job_process.c'; then $(CYGPATH_W) 'tests/test_job_process.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_job_process.c'; fi` |
3019 | 1086 | 1026 | ||
3020 | 1087 | test_parse_conf-test_parse_conf.o: tests/test_parse_conf.c | 1027 | test_parse_conf.o: tests/test_parse_conf.c |
3021 | 1088 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_parse_conf_CFLAGS) $(CFLAGS) -MT test_parse_conf-test_parse_conf.o -MD -MP -MF $(DEPDIR)/test_parse_conf-test_parse_conf.Tpo -c -o test_parse_conf-test_parse_conf.o `test -f 'tests/test_parse_conf.c' || echo '$(srcdir)/'`tests/test_parse_conf.c | 1028 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_parse_conf.o -MD -MP -MF $(DEPDIR)/test_parse_conf.Tpo -c -o test_parse_conf.o `test -f 'tests/test_parse_conf.c' || echo '$(srcdir)/'`tests/test_parse_conf.c |
3022 | 1089 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_parse_conf-test_parse_conf.Tpo $(DEPDIR)/test_parse_conf-test_parse_conf.Po | 1029 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_parse_conf.Tpo $(DEPDIR)/test_parse_conf.Po |
3023 | 1090 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 1030 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
3024 | 1091 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_parse_conf.c' object='test_parse_conf-test_parse_conf.o' libtool=no @AMDEPBACKSLASH@ | 1031 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_parse_conf.c' object='test_parse_conf.o' libtool=no @AMDEPBACKSLASH@ |
3025 | 1092 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 1032 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
3026 | 1093 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_parse_conf_CFLAGS) $(CFLAGS) -c -o test_parse_conf-test_parse_conf.o `test -f 'tests/test_parse_conf.c' || echo '$(srcdir)/'`tests/test_parse_conf.c | 1033 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_parse_conf.o `test -f 'tests/test_parse_conf.c' || echo '$(srcdir)/'`tests/test_parse_conf.c |
3027 | 1094 | 1034 | ||
3028 | 1095 | test_parse_conf-test_parse_conf.obj: tests/test_parse_conf.c | 1035 | test_parse_conf.obj: tests/test_parse_conf.c |
3029 | 1096 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_parse_conf_CFLAGS) $(CFLAGS) -MT test_parse_conf-test_parse_conf.obj -MD -MP -MF $(DEPDIR)/test_parse_conf-test_parse_conf.Tpo -c -o test_parse_conf-test_parse_conf.obj `if test -f 'tests/test_parse_conf.c'; then $(CYGPATH_W) 'tests/test_parse_conf.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_parse_conf.c'; fi` | 1036 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_parse_conf.obj -MD -MP -MF $(DEPDIR)/test_parse_conf.Tpo -c -o test_parse_conf.obj `if test -f 'tests/test_parse_conf.c'; then $(CYGPATH_W) 'tests/test_parse_conf.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_parse_conf.c'; fi` |
3030 | 1097 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_parse_conf-test_parse_conf.Tpo $(DEPDIR)/test_parse_conf-test_parse_conf.Po | 1037 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_parse_conf.Tpo $(DEPDIR)/test_parse_conf.Po |
3031 | 1098 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 1038 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
3032 | 1099 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_parse_conf.c' object='test_parse_conf-test_parse_conf.obj' libtool=no @AMDEPBACKSLASH@ | 1039 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_parse_conf.c' object='test_parse_conf.obj' libtool=no @AMDEPBACKSLASH@ |
3033 | 1100 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 1040 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
3034 | 1101 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_parse_conf_CFLAGS) $(CFLAGS) -c -o test_parse_conf-test_parse_conf.obj `if test -f 'tests/test_parse_conf.c'; then $(CYGPATH_W) 'tests/test_parse_conf.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_parse_conf.c'; fi` | 1041 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_parse_conf.obj `if test -f 'tests/test_parse_conf.c'; then $(CYGPATH_W) 'tests/test_parse_conf.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_parse_conf.c'; fi` |
3035 | 1102 | 1042 | ||
3036 | 1103 | test_parse_job-test_parse_job.o: tests/test_parse_job.c | 1043 | test_parse_job.o: tests/test_parse_job.c |
3037 | 1104 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_parse_job_CFLAGS) $(CFLAGS) -MT test_parse_job-test_parse_job.o -MD -MP -MF $(DEPDIR)/test_parse_job-test_parse_job.Tpo -c -o test_parse_job-test_parse_job.o `test -f 'tests/test_parse_job.c' || echo '$(srcdir)/'`tests/test_parse_job.c | 1044 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_parse_job.o -MD -MP -MF $(DEPDIR)/test_parse_job.Tpo -c -o test_parse_job.o `test -f 'tests/test_parse_job.c' || echo '$(srcdir)/'`tests/test_parse_job.c |
3038 | 1105 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_parse_job-test_parse_job.Tpo $(DEPDIR)/test_parse_job-test_parse_job.Po | 1045 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_parse_job.Tpo $(DEPDIR)/test_parse_job.Po |
3039 | 1106 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 1046 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
3040 | 1107 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_parse_job.c' object='test_parse_job-test_parse_job.o' libtool=no @AMDEPBACKSLASH@ | 1047 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_parse_job.c' object='test_parse_job.o' libtool=no @AMDEPBACKSLASH@ |
3041 | 1108 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 1048 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
3042 | 1109 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_parse_job_CFLAGS) $(CFLAGS) -c -o test_parse_job-test_parse_job.o `test -f 'tests/test_parse_job.c' || echo '$(srcdir)/'`tests/test_parse_job.c | 1049 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_parse_job.o `test -f 'tests/test_parse_job.c' || echo '$(srcdir)/'`tests/test_parse_job.c |
3043 | 1110 | 1050 | ||
3044 | 1111 | test_parse_job-test_parse_job.obj: tests/test_parse_job.c | 1051 | test_parse_job.obj: tests/test_parse_job.c |
3045 | 1112 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_parse_job_CFLAGS) $(CFLAGS) -MT test_parse_job-test_parse_job.obj -MD -MP -MF $(DEPDIR)/test_parse_job-test_parse_job.Tpo -c -o test_parse_job-test_parse_job.obj `if test -f 'tests/test_parse_job.c'; then $(CYGPATH_W) 'tests/test_parse_job.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_parse_job.c'; fi` | 1052 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_parse_job.obj -MD -MP -MF $(DEPDIR)/test_parse_job.Tpo -c -o test_parse_job.obj `if test -f 'tests/test_parse_job.c'; then $(CYGPATH_W) 'tests/test_parse_job.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_parse_job.c'; fi` |
3046 | 1113 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_parse_job-test_parse_job.Tpo $(DEPDIR)/test_parse_job-test_parse_job.Po | 1053 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_parse_job.Tpo $(DEPDIR)/test_parse_job.Po |
3047 | 1114 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 1054 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
3048 | 1115 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_parse_job.c' object='test_parse_job-test_parse_job.obj' libtool=no @AMDEPBACKSLASH@ | 1055 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_parse_job.c' object='test_parse_job.obj' libtool=no @AMDEPBACKSLASH@ |
3049 | 1116 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 1056 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
3050 | 1117 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_parse_job_CFLAGS) $(CFLAGS) -c -o test_parse_job-test_parse_job.obj `if test -f 'tests/test_parse_job.c'; then $(CYGPATH_W) 'tests/test_parse_job.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_parse_job.c'; fi` | 1057 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_parse_job.obj `if test -f 'tests/test_parse_job.c'; then $(CYGPATH_W) 'tests/test_parse_job.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_parse_job.c'; fi` |
3051 | 1118 | 1058 | ||
3052 | 1119 | test_process-test_process.o: tests/test_process.c | 1059 | test_process.o: tests/test_process.c |
3053 | 1120 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_process_CFLAGS) $(CFLAGS) -MT test_process-test_process.o -MD -MP -MF $(DEPDIR)/test_process-test_process.Tpo -c -o test_process-test_process.o `test -f 'tests/test_process.c' || echo '$(srcdir)/'`tests/test_process.c | 1060 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_process.o -MD -MP -MF $(DEPDIR)/test_process.Tpo -c -o test_process.o `test -f 'tests/test_process.c' || echo '$(srcdir)/'`tests/test_process.c |
3054 | 1121 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_process-test_process.Tpo $(DEPDIR)/test_process-test_process.Po | 1061 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_process.Tpo $(DEPDIR)/test_process.Po |
3055 | 1122 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 1062 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
3056 | 1123 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_process.c' object='test_process-test_process.o' libtool=no @AMDEPBACKSLASH@ | 1063 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_process.c' object='test_process.o' libtool=no @AMDEPBACKSLASH@ |
3057 | 1124 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 1064 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
3058 | 1125 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_process_CFLAGS) $(CFLAGS) -c -o test_process-test_process.o `test -f 'tests/test_process.c' || echo '$(srcdir)/'`tests/test_process.c | 1065 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_process.o `test -f 'tests/test_process.c' || echo '$(srcdir)/'`tests/test_process.c |
3059 | 1126 | 1066 | ||
3060 | 1127 | test_process-test_process.obj: tests/test_process.c | 1067 | test_process.obj: tests/test_process.c |
3061 | 1128 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_process_CFLAGS) $(CFLAGS) -MT test_process-test_process.obj -MD -MP -MF $(DEPDIR)/test_process-test_process.Tpo -c -o test_process-test_process.obj `if test -f 'tests/test_process.c'; then $(CYGPATH_W) 'tests/test_process.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_process.c'; fi` | 1068 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_process.obj -MD -MP -MF $(DEPDIR)/test_process.Tpo -c -o test_process.obj `if test -f 'tests/test_process.c'; then $(CYGPATH_W) 'tests/test_process.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_process.c'; fi` |
3062 | 1129 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_process-test_process.Tpo $(DEPDIR)/test_process-test_process.Po | 1069 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_process.Tpo $(DEPDIR)/test_process.Po |
3063 | 1130 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 1070 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
3064 | 1131 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_process.c' object='test_process-test_process.obj' libtool=no @AMDEPBACKSLASH@ | 1071 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_process.c' object='test_process.obj' libtool=no @AMDEPBACKSLASH@ |
3065 | 1132 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 1072 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
3066 | 1133 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_process_CFLAGS) $(CFLAGS) -c -o test_process-test_process.obj `if test -f 'tests/test_process.c'; then $(CYGPATH_W) 'tests/test_process.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_process.c'; fi` | 1073 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_process.obj `if test -f 'tests/test_process.c'; then $(CYGPATH_W) 'tests/test_process.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_process.c'; fi` |
3067 | 1134 | 1074 | ||
3068 | 1135 | test_system-test_system.o: tests/test_system.c | 1075 | test_system.o: tests/test_system.c |
3069 | 1136 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_system_CFLAGS) $(CFLAGS) -MT test_system-test_system.o -MD -MP -MF $(DEPDIR)/test_system-test_system.Tpo -c -o test_system-test_system.o `test -f 'tests/test_system.c' || echo '$(srcdir)/'`tests/test_system.c | 1076 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_system.o -MD -MP -MF $(DEPDIR)/test_system.Tpo -c -o test_system.o `test -f 'tests/test_system.c' || echo '$(srcdir)/'`tests/test_system.c |
3070 | 1137 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_system-test_system.Tpo $(DEPDIR)/test_system-test_system.Po | 1077 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_system.Tpo $(DEPDIR)/test_system.Po |
3071 | 1138 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 1078 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
3072 | 1139 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_system.c' object='test_system-test_system.o' libtool=no @AMDEPBACKSLASH@ | 1079 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_system.c' object='test_system.o' libtool=no @AMDEPBACKSLASH@ |
3073 | 1140 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 1080 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
3074 | 1141 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_system_CFLAGS) $(CFLAGS) -c -o test_system-test_system.o `test -f 'tests/test_system.c' || echo '$(srcdir)/'`tests/test_system.c | 1081 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_system.o `test -f 'tests/test_system.c' || echo '$(srcdir)/'`tests/test_system.c |
3075 | 1142 | 1082 | ||
3076 | 1143 | test_system-test_system.obj: tests/test_system.c | 1083 | test_system.obj: tests/test_system.c |
3077 | 1144 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_system_CFLAGS) $(CFLAGS) -MT test_system-test_system.obj -MD -MP -MF $(DEPDIR)/test_system-test_system.Tpo -c -o test_system-test_system.obj `if test -f 'tests/test_system.c'; then $(CYGPATH_W) 'tests/test_system.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_system.c'; fi` | 1084 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_system.obj -MD -MP -MF $(DEPDIR)/test_system.Tpo -c -o test_system.obj `if test -f 'tests/test_system.c'; then $(CYGPATH_W) 'tests/test_system.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_system.c'; fi` |
3078 | 1145 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_system-test_system.Tpo $(DEPDIR)/test_system-test_system.Po | 1085 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_system.Tpo $(DEPDIR)/test_system.Po |
3079 | 1146 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | 1086 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ |
3080 | 1147 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_system.c' object='test_system-test_system.obj' libtool=no @AMDEPBACKSLASH@ | 1087 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/test_system.c' object='test_system.obj' libtool=no @AMDEPBACKSLASH@ |
3081 | 1148 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 1088 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
3082 | 1149 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_system_CFLAGS) $(CFLAGS) -c -o test_system-test_system.obj `if test -f 'tests/test_system.c'; then $(CYGPATH_W) 'tests/test_system.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_system.c'; fi` | 1089 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_system.obj `if test -f 'tests/test_system.c'; then $(CYGPATH_W) 'tests/test_system.c'; else $(CYGPATH_W) '$(srcdir)/tests/test_system.c'; fi` |
3083 | 1150 | 1090 | ||
3084 | 1151 | mostlyclean-libtool: | 1091 | mostlyclean-libtool: |
3085 | 1152 | -rm -f *.lo | 1092 | -rm -f *.lo |
3086 | 1153 | 1093 | ||
3087 | === modified file 'init/conf.c' | |||
3088 | --- init/conf.c 2011-05-25 19:25:11 +0000 | |||
3089 | +++ init/conf.c 2011-06-17 11:15:58 +0000 | |||
3090 | @@ -2,7 +2,7 @@ | |||
3091 | 2 | * | 2 | * |
3092 | 3 | * conf.c - configuration management | 3 | * conf.c - configuration management |
3093 | 4 | * | 4 | * |
3095 | 5 | * Copyright © 2009, 2010 Canonical Ltd. | 5 | * Copyright © 2009,2010,2011 Canonical Ltd. |
3096 | 6 | * Author: Scott James Remnant <scott@netsplit.com>. | 6 | * Author: Scott James Remnant <scott@netsplit.com>. |
3097 | 7 | * | 7 | * |
3098 | 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
3099 | @@ -80,8 +80,7 @@ | |||
3100 | 80 | static inline int is_conf_file_std (const char *path) | 80 | static inline int is_conf_file_std (const char *path) |
3101 | 81 | __attribute__ ((warn_unused_result)); | 81 | __attribute__ ((warn_unused_result)); |
3102 | 82 | 82 | ||
3105 | 83 | static inline int | 83 | static inline int is_conf_file_override(const char *path) |
3104 | 84 | is_conf_file_override (const char *path) | ||
3106 | 85 | __attribute__ ((warn_unused_result)); | 84 | __attribute__ ((warn_unused_result)); |
3107 | 86 | 85 | ||
3108 | 87 | /** | 86 | /** |
3109 | @@ -154,7 +153,7 @@ | |||
3110 | 154 | { | 153 | { |
3111 | 155 | char *ptr = strrchr (path, '.'); | 154 | char *ptr = strrchr (path, '.'); |
3112 | 156 | 155 | ||
3114 | 157 | if (ptr && IS_CONF_EXT (ptr)) | 156 | if (ptr && (ptr > path) && (ptr[-1] != '/') && IS_CONF_EXT (ptr)) |
3115 | 158 | return TRUE; | 157 | return TRUE; |
3116 | 159 | 158 | ||
3117 | 160 | return FALSE; | 159 | return FALSE; |
3118 | @@ -352,7 +351,8 @@ | |||
3119 | 352 | NihError *err; | 351 | NihError *err; |
3120 | 353 | 352 | ||
3121 | 354 | err = nih_error_get (); | 353 | err = nih_error_get (); |
3123 | 355 | nih_error ("%s: %s: %s", source->path, | 354 | if (err->number != ENOENT) |
3124 | 355 | nih_error ("%s: %s: %s", source->path, | ||
3125 | 356 | _("Unable to load configuration"), | 356 | _("Unable to load configuration"), |
3126 | 357 | err->message); | 357 | err->message); |
3127 | 358 | nih_free (err); | 358 | nih_free (err); |
3128 | @@ -372,7 +372,7 @@ | |||
3129 | 372 | * out for editors that rename over the top, etc. | 372 | * out for editors that rename over the top, etc. |
3130 | 373 | * | 373 | * |
3131 | 374 | * We then parse the current state of the source. The flag member is | 374 | * We then parse the current state of the source. The flag member is |
3133 | 375 | * toggled first, and this is propogated to all new and modified files and | 375 | * toggled first, and this is propagated to all new and modified files and |
3134 | 376 | * items that we find as a result of parsing. Once done, we scan for | 376 | * items that we find as a result of parsing. Once done, we scan for |
3135 | 377 | * anything with the wrong flag, and delete them. | 377 | * anything with the wrong flag, and delete them. |
3136 | 378 | * | 378 | * |
3137 | @@ -538,7 +538,7 @@ | |||
3138 | 538 | * tree. | 538 | * tree. |
3139 | 539 | * | 539 | * |
3140 | 540 | * Otherwise we walk the tree ourselves and parse all files that we find, | 540 | * Otherwise we walk the tree ourselves and parse all files that we find, |
3142 | 541 | * propogating the value of the flag member to all files so that deletion | 541 | * propagating the value of the flag member to all files so that deletion |
3143 | 542 | * can be detected by the calling function. | 542 | * can be detected by the calling function. |
3144 | 543 | * | 543 | * |
3145 | 544 | * Returns: zero on success, negative value on raised error. | 544 | * Returns: zero on success, negative value on raised error. |
3146 | @@ -1041,8 +1041,10 @@ | |||
3147 | 1041 | } else { | 1041 | } else { |
3148 | 1042 | nih_debug ("Loading %s from %s", name, path); | 1042 | nih_debug ("Loading %s from %s", name, path); |
3149 | 1043 | } | 1043 | } |
3150 | 1044 | |||
3151 | 1044 | file->job = parse_job (NULL, source->session, file->job, | 1045 | file->job = parse_job (NULL, source->session, file->job, |
3153 | 1045 | name, buf, len, &pos, &lineno); | 1046 | name, buf, len, &pos, &lineno); |
3154 | 1047 | |||
3155 | 1046 | if (file->job) { | 1048 | if (file->job) { |
3156 | 1047 | job_class_consider (file->job); | 1049 | job_class_consider (file->job); |
3157 | 1048 | } else { | 1050 | } else { |
3158 | 1049 | 1051 | ||
3159 | === modified file 'init/conf.h' | |||
3160 | --- init/conf.h 2011-05-25 19:25:11 +0000 | |||
3161 | +++ init/conf.h 2011-06-17 11:15:58 +0000 | |||
3162 | @@ -1,6 +1,6 @@ | |||
3163 | 1 | /* upstart | 1 | /* upstart |
3164 | 2 | * | 2 | * |
3166 | 3 | * Copyright © 2010 Canonical Ltd. | 3 | * Copyright © 2010,2011 Canonical Ltd. |
3167 | 4 | * Author: Scott James Remnant <scott@netsplit.com>. | 4 | * Author: Scott James Remnant <scott@netsplit.com>. |
3168 | 5 | * | 5 | * |
3169 | 6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
3170 | 7 | 7 | ||
3171 | === modified file 'init/control.c' | |||
3172 | --- init/control.c 2011-05-25 19:25:11 +0000 | |||
3173 | +++ init/control.c 2011-06-17 11:15:58 +0000 | |||
3174 | @@ -2,7 +2,7 @@ | |||
3175 | 2 | * | 2 | * |
3176 | 3 | * control.c - D-Bus connections, objects and methods | 3 | * control.c - D-Bus connections, objects and methods |
3177 | 4 | * | 4 | * |
3179 | 5 | * Copyright © 2010 Canonical Ltd. | 5 | * Copyright © 2009-2011 Canonical Ltd. |
3180 | 6 | * Author: Scott James Remnant <scott@netsplit.com>. | 6 | * Author: Scott James Remnant <scott@netsplit.com>. |
3181 | 7 | * | 7 | * |
3182 | 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
3183 | @@ -65,7 +65,7 @@ | |||
3184 | 65 | /** | 65 | /** |
3185 | 66 | * use_session_bus: | 66 | * use_session_bus: |
3186 | 67 | * | 67 | * |
3188 | 68 | * If TRUE, connect to the D-Bus session bus rather than the system bus. | 68 | * If TRUE, connect to the D-Bus sessio bus rather than the system bus. |
3189 | 69 | * | 69 | * |
3190 | 70 | * Used for testing. | 70 | * Used for testing. |
3191 | 71 | **/ | 71 | **/ |
3192 | 72 | 72 | ||
3193 | === modified file 'init/control.h' | |||
3194 | --- init/control.h 2011-05-25 19:25:11 +0000 | |||
3195 | +++ init/control.h 2011-06-17 11:15:58 +0000 | |||
3196 | @@ -1,6 +1,6 @@ | |||
3197 | 1 | /* upstart | 1 | /* upstart |
3198 | 2 | * | 2 | * |
3200 | 3 | * Copyright © 2009 Canonical Ltd. | 3 | * Copyright © 2009-2011 Canonical Ltd. |
3201 | 4 | * Author: Scott James Remnant <scott@netsplit.com>. | 4 | * Author: Scott James Remnant <scott@netsplit.com>. |
3202 | 5 | * | 5 | * |
3203 | 6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
3204 | 7 | 7 | ||
3205 | === modified file 'init/environ.c' | |||
3206 | --- init/environ.c 2009-06-23 09:29:35 +0000 | |||
3207 | +++ init/environ.c 2011-06-17 11:15:58 +0000 | |||
3208 | @@ -354,50 +354,11 @@ | |||
3209 | 354 | 354 | ||
3210 | 355 | 355 | ||
3211 | 356 | /** | 356 | /** |
3212 | 357 | * environ_valid: | ||
3213 | 358 | * @key: string to check, | ||
3214 | 359 | * @len: length of @key. | ||
3215 | 360 | * | ||
3216 | 361 | * Check whether the environment key @key, that is @len characters long, | ||
3217 | 362 | * is valid according to the usual rules. Names may begin with an alpha or | ||
3218 | 363 | * an underscore, and then consist of any number of alphanumerics and | ||
3219 | 364 | * underscores. | ||
3220 | 365 | * | ||
3221 | 366 | * Returns: TRUE if @key is a valid variable name, FALSE otherwise. | ||
3222 | 367 | **/ | ||
3223 | 368 | int | ||
3224 | 369 | environ_valid (const char *key, | ||
3225 | 370 | size_t len) | ||
3226 | 371 | { | ||
3227 | 372 | nih_assert (key != NULL); | ||
3228 | 373 | |||
3229 | 374 | if (! len) | ||
3230 | 375 | return FALSE; | ||
3231 | 376 | |||
3232 | 377 | if ((*key != '_') | ||
3233 | 378 | && ((*key < 'A') || (*key > 'Z')) | ||
3234 | 379 | && ((*key < 'a') || (*key > 'z'))) | ||
3235 | 380 | return FALSE; | ||
3236 | 381 | |||
3237 | 382 | while (--len) { | ||
3238 | 383 | ++key; | ||
3239 | 384 | if ((*key != '_') | ||
3240 | 385 | && ((*key < 'A') || (*key > 'Z')) | ||
3241 | 386 | && ((*key < 'a') || (*key > 'z')) | ||
3242 | 387 | && ((*key < '0') || (*key > '9'))) | ||
3243 | 388 | return FALSE; | ||
3244 | 389 | } | ||
3245 | 390 | |||
3246 | 391 | return TRUE; | ||
3247 | 392 | } | ||
3248 | 393 | |||
3249 | 394 | /** | ||
3250 | 395 | * environ_all_valid: | 357 | * environ_all_valid: |
3251 | 396 | * @env: NULL-terminated array of variables to check. | 358 | * @env: NULL-terminated array of variables to check. |
3252 | 397 | * | 359 | * |
3253 | 398 | * Checks each of the environment variables in @env for validity; that is | 360 | * Checks each of the environment variables in @env for validity; that is |
3256 | 399 | * each must be of KEY=VALUE form, and KEY must be a valid name for a | 361 | * each must be of KEY=VALUE form. |
3255 | 400 | * variable. | ||
3257 | 401 | * | 362 | * |
3258 | 402 | * This is intended for checking external data such as that in control | 363 | * This is intended for checking external data such as that in control |
3259 | 403 | * messages; environment lists defined in job definitions are actually | 364 | * messages; environment lists defined in job definitions are actually |
3260 | @@ -418,9 +379,6 @@ | |||
3261 | 418 | value = strchr (*e, '='); | 379 | value = strchr (*e, '='); |
3262 | 419 | if (! value) | 380 | if (! value) |
3263 | 420 | return FALSE; | 381 | return FALSE; |
3264 | 421 | |||
3265 | 422 | if (! environ_valid (*e, value - *e)) | ||
3266 | 423 | return FALSE; | ||
3267 | 424 | } | 382 | } |
3268 | 425 | 383 | ||
3269 | 426 | return TRUE; | 384 | return TRUE; |
3270 | @@ -590,20 +548,6 @@ | |||
3271 | 590 | 548 | ||
3272 | 591 | name_end = (*pos); | 549 | name_end = (*pos); |
3273 | 592 | 550 | ||
3274 | 593 | /* Check the environment variable name is | ||
3275 | 594 | * actually valid | ||
3276 | 595 | */ | ||
3277 | 596 | if (! environ_valid (*str + name_start, | ||
3278 | 597 | name_end - name_start)) { | ||
3279 | 598 | nih_error_raise_printf ( | ||
3280 | 599 | ENVIRON_ILLEGAL_PARAM, | ||
3281 | 600 | "%s: %.*s", _(ENVIRON_ILLEGAL_PARAM_STR), | ||
3282 | 601 | (int)(name_end - name_start), | ||
3283 | 602 | *str + name_start); | ||
3284 | 603 | |||
3285 | 604 | goto error; | ||
3286 | 605 | } | ||
3287 | 606 | |||
3288 | 607 | /* Check for an expression operator; if we find one, | 551 | /* Check for an expression operator; if we find one, |
3289 | 608 | * step over it and evalulate the rest of the bracketed | 552 | * step over it and evalulate the rest of the bracketed |
3290 | 609 | * expression to find the substitute value. | 553 | * expression to find the substitute value. |
3291 | 610 | 554 | ||
3292 | === modified file 'init/environ.h' | |||
3293 | --- init/environ.h 2009-06-23 09:29:35 +0000 | |||
3294 | +++ init/environ.h 2011-06-17 11:15:58 +0000 | |||
3295 | @@ -43,7 +43,6 @@ | |||
3296 | 43 | const char * environ_getn (char * const *env, const char *key, | 43 | const char * environ_getn (char * const *env, const char *key, |
3297 | 44 | size_t len); | 44 | size_t len); |
3298 | 45 | 45 | ||
3299 | 46 | int environ_valid (const char *key, size_t len); | ||
3300 | 47 | int environ_all_valid (char * const *env); | 46 | int environ_all_valid (char * const *env); |
3301 | 48 | 47 | ||
3302 | 49 | char * environ_expand (const void *parent, const char *string, | 48 | char * environ_expand (const void *parent, const char *string, |
3303 | 50 | 49 | ||
3304 | === modified file 'init/errors.h' | |||
3305 | --- init/errors.h 2009-06-23 09:29:35 +0000 | |||
3306 | +++ init/errors.h 2011-06-17 11:15:58 +0000 | |||
3307 | @@ -40,6 +40,7 @@ | |||
3308 | 40 | /* Errors while parsing configuration files */ | 40 | /* Errors while parsing configuration files */ |
3309 | 41 | PARSE_ILLEGAL_INTERVAL, | 41 | PARSE_ILLEGAL_INTERVAL, |
3310 | 42 | PARSE_ILLEGAL_EXIT, | 42 | PARSE_ILLEGAL_EXIT, |
3311 | 43 | PARSE_ILLEGAL_SIGNAL, | ||
3312 | 43 | PARSE_ILLEGAL_UMASK, | 44 | PARSE_ILLEGAL_UMASK, |
3313 | 44 | PARSE_ILLEGAL_NICE, | 45 | PARSE_ILLEGAL_NICE, |
3314 | 45 | PARSE_ILLEGAL_OOM, | 46 | PARSE_ILLEGAL_OOM, |
3315 | @@ -60,9 +61,11 @@ | |||
3316 | 60 | #define ENVIRON_MISMATCHED_BRACES_STR N_("Mismatched braces") | 61 | #define ENVIRON_MISMATCHED_BRACES_STR N_("Mismatched braces") |
3317 | 61 | #define PARSE_ILLEGAL_INTERVAL_STR N_("Illegal interval, expected number of seconds") | 62 | #define PARSE_ILLEGAL_INTERVAL_STR N_("Illegal interval, expected number of seconds") |
3318 | 62 | #define PARSE_ILLEGAL_EXIT_STR N_("Illegal exit status, expected integer") | 63 | #define PARSE_ILLEGAL_EXIT_STR N_("Illegal exit status, expected integer") |
3319 | 64 | #define PARSE_ILLEGAL_SIGNAL_STR N_("Illegal signal status, expected integer") | ||
3320 | 63 | #define PARSE_ILLEGAL_UMASK_STR N_("Illegal file creation mask, expected octal integer") | 65 | #define PARSE_ILLEGAL_UMASK_STR N_("Illegal file creation mask, expected octal integer") |
3321 | 64 | #define PARSE_ILLEGAL_NICE_STR N_("Illegal nice value, expected -20 to 19") | 66 | #define PARSE_ILLEGAL_NICE_STR N_("Illegal nice value, expected -20 to 19") |
3323 | 65 | #define PARSE_ILLEGAL_OOM_STR N_("Illegal oom adjustment, expected -16 to 15 or never") | 67 | #define PARSE_ILLEGAL_OOM_STR N_("Illegal oom adjustment, expected -16 to 15 or 'never'") |
3324 | 68 | #define PARSE_ILLEGAL_OOM_SCORE_STR N_("Illegal oom score adjustment, expected -999 to 1000 or 'never'") | ||
3325 | 66 | #define PARSE_ILLEGAL_LIMIT_STR N_("Illegal limit, expected 'unlimited' or integer") | 69 | #define PARSE_ILLEGAL_LIMIT_STR N_("Illegal limit, expected 'unlimited' or integer") |
3326 | 67 | #define PARSE_EXPECTED_EVENT_STR N_("Expected event") | 70 | #define PARSE_EXPECTED_EVENT_STR N_("Expected event") |
3327 | 68 | #define PARSE_EXPECTED_OPERATOR_STR N_("Expected operator") | 71 | #define PARSE_EXPECTED_OPERATOR_STR N_("Expected operator") |
3328 | 69 | 72 | ||
3329 | === modified file 'init/event.c' | |||
3330 | --- init/event.c 2011-05-25 19:25:11 +0000 | |||
3331 | +++ init/event.c 2011-06-17 11:15:58 +0000 | |||
3332 | @@ -2,7 +2,7 @@ | |||
3333 | 2 | * | 2 | * |
3334 | 3 | * event.c - event queue and handling | 3 | * event.c - event queue and handling |
3335 | 4 | * | 4 | * |
3337 | 5 | * Copyright © 2009, 2010 Canonical Ltd. | 5 | * Copyright © 2010 Canonical Ltd. |
3338 | 6 | * Author: Scott James Remnant <scott@netsplit.com>. | 6 | * Author: Scott James Remnant <scott@netsplit.com>. |
3339 | 7 | * | 7 | * |
3340 | 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
3341 | @@ -126,6 +126,7 @@ | |||
3342 | 126 | 126 | ||
3343 | 127 | event->session = NULL; | 127 | event->session = NULL; |
3344 | 128 | event->fd = -1; | 128 | event->fd = -1; |
3345 | 129 | |||
3346 | 129 | event->progress = EVENT_PENDING; | 130 | event->progress = EVENT_PENDING; |
3347 | 130 | event->failed = FALSE; | 131 | event->failed = FALSE; |
3348 | 131 | 132 | ||
3349 | 132 | 133 | ||
3350 | === modified file 'init/job.c' | |||
3351 | --- init/job.c 2011-05-25 19:25:11 +0000 | |||
3352 | +++ init/job.c 2011-06-17 11:15:58 +0000 | |||
3353 | @@ -2,7 +2,7 @@ | |||
3354 | 2 | * | 2 | * |
3355 | 3 | * job.c - core state machine of tasks and services | 3 | * job.c - core state machine of tasks and services |
3356 | 4 | * | 4 | * |
3358 | 5 | * Copyright © 2010 Canonical Ltd. | 5 | * Copyright © 2010,2011 Canonical Ltd. |
3359 | 6 | * Author: Scott James Remnant <scott@netsplit.com>. | 6 | * Author: Scott James Remnant <scott@netsplit.com>. |
3360 | 7 | * | 7 | * |
3361 | 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
3362 | 9 | 9 | ||
3363 | === modified file 'init/job_class.c' | |||
3364 | --- init/job_class.c 2011-05-25 19:25:11 +0000 | |||
3365 | +++ init/job_class.c 2011-06-17 11:15:58 +0000 | |||
3366 | @@ -2,7 +2,7 @@ | |||
3367 | 2 | * | 2 | * |
3368 | 3 | * job_class.c - job class definition handling | 3 | * job_class.c - job class definition handling |
3369 | 4 | * | 4 | * |
3371 | 5 | * Copyright © 2010 Canonical Ltd. | 5 | * Copyright © 2010,2011 Canonical Ltd. |
3372 | 6 | * Author: Scott James Remnant <scott@netsplit.com>. | 6 | * Author: Scott James Remnant <scott@netsplit.com>. |
3373 | 7 | * | 7 | * |
3374 | 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
3375 | @@ -26,6 +26,7 @@ | |||
3376 | 26 | 26 | ||
3377 | 27 | #include <errno.h> | 27 | #include <errno.h> |
3378 | 28 | #include <string.h> | 28 | #include <string.h> |
3379 | 29 | #include <signal.h> | ||
3380 | 29 | 30 | ||
3381 | 30 | #include <nih/macros.h> | 31 | #include <nih/macros.h> |
3382 | 31 | #include <nih/alloc.h> | 32 | #include <nih/alloc.h> |
3383 | @@ -148,7 +149,7 @@ | |||
3384 | 148 | JobClass * | 149 | JobClass * |
3385 | 149 | job_class_new (const void *parent, | 150 | job_class_new (const void *parent, |
3386 | 150 | const char *name, | 151 | const char *name, |
3388 | 151 | Session * session) | 152 | Session *session) |
3389 | 152 | { | 153 | { |
3390 | 153 | JobClass *class; | 154 | JobClass *class; |
3391 | 154 | int i; | 155 | int i; |
3392 | @@ -236,6 +237,7 @@ | |||
3393 | 236 | class->task = FALSE; | 237 | class->task = FALSE; |
3394 | 237 | 238 | ||
3395 | 238 | class->kill_timeout = JOB_DEFAULT_KILL_TIMEOUT; | 239 | class->kill_timeout = JOB_DEFAULT_KILL_TIMEOUT; |
3396 | 240 | class->kill_signal = SIGTERM; | ||
3397 | 239 | 241 | ||
3398 | 240 | class->respawn = FALSE; | 242 | class->respawn = FALSE; |
3399 | 241 | class->respawn_limit = JOB_DEFAULT_RESPAWN_LIMIT; | 243 | class->respawn_limit = JOB_DEFAULT_RESPAWN_LIMIT; |
3400 | @@ -248,7 +250,7 @@ | |||
3401 | 248 | 250 | ||
3402 | 249 | class->umask = JOB_DEFAULT_UMASK; | 251 | class->umask = JOB_DEFAULT_UMASK; |
3403 | 250 | class->nice = 0; | 252 | class->nice = 0; |
3405 | 251 | class->oom_adj = 0; | 253 | class->oom_score_adj = 0; |
3406 | 252 | 254 | ||
3407 | 253 | for (i = 0; i < RLIMIT_NLIMITS; i++) | 255 | for (i = 0; i < RLIMIT_NLIMITS; i++) |
3408 | 254 | class->limits[i] = NULL; | 256 | class->limits[i] = NULL; |
3409 | @@ -257,7 +259,7 @@ | |||
3410 | 257 | class->chdir = NULL; | 259 | class->chdir = NULL; |
3411 | 258 | 260 | ||
3412 | 259 | class->deleted = FALSE; | 261 | class->deleted = FALSE; |
3414 | 260 | class->debug = FALSE; | 262 | class->debug = FALSE; |
3415 | 261 | 263 | ||
3416 | 262 | return class; | 264 | return class; |
3417 | 263 | 265 | ||
3418 | 264 | 266 | ||
3419 | === modified file 'init/job_class.h' | |||
3420 | --- init/job_class.h 2011-05-25 19:25:11 +0000 | |||
3421 | +++ init/job_class.h 2011-06-17 11:15:58 +0000 | |||
3422 | @@ -87,6 +87,7 @@ | |||
3423 | 87 | * @expect: what to expect before entering the next state after spawned, | 87 | * @expect: what to expect before entering the next state after spawned, |
3424 | 88 | * @task: start requests are not unblocked until instances have finished, | 88 | * @task: start requests are not unblocked until instances have finished, |
3425 | 89 | * @kill_timeout: time to wait between sending TERM and KILL signals, | 89 | * @kill_timeout: time to wait between sending TERM and KILL signals, |
3426 | 90 | * @kill_signal: first signal to send (usually SIGTERM), | ||
3427 | 90 | * @respawn: instances should be restarted if main process fails, | 91 | * @respawn: instances should be restarted if main process fails, |
3428 | 91 | * @respawn_limit: number of respawns in @respawn_interval that we permit, | 92 | * @respawn_limit: number of respawns in @respawn_interval that we permit, |
3429 | 92 | * @respawn_interval: barrier for @respawn_limit, | 93 | * @respawn_interval: barrier for @respawn_limit, |
3430 | @@ -95,7 +96,7 @@ | |||
3431 | 95 | * @console: how to arrange processes' stdin/out/err file descriptors, | 96 | * @console: how to arrange processes' stdin/out/err file descriptors, |
3432 | 96 | * @umask: file mode creation mask, | 97 | * @umask: file mode creation mask, |
3433 | 97 | * @nice: process priority, | 98 | * @nice: process priority, |
3435 | 98 | * @oom_adj: OOM killer adjustment, | 99 | * @oom_score_adj: OOM killer score adjustment, |
3436 | 99 | * @limits: resource limits indexed by resource, | 100 | * @limits: resource limits indexed by resource, |
3437 | 100 | * @chroot: root directory of process (implies @chdir if not set), | 101 | * @chroot: root directory of process (implies @chdir if not set), |
3438 | 101 | * @chdir: working directory of process, | 102 | * @chdir: working directory of process, |
3439 | @@ -132,6 +133,7 @@ | |||
3440 | 132 | int task; | 133 | int task; |
3441 | 133 | 134 | ||
3442 | 134 | time_t kill_timeout; | 135 | time_t kill_timeout; |
3443 | 136 | int kill_signal; | ||
3444 | 135 | 137 | ||
3445 | 136 | int respawn; | 138 | int respawn; |
3446 | 137 | int respawn_limit; | 139 | int respawn_limit; |
3447 | @@ -144,7 +146,7 @@ | |||
3448 | 144 | 146 | ||
3449 | 145 | mode_t umask; | 147 | mode_t umask; |
3450 | 146 | int nice; | 148 | int nice; |
3452 | 147 | int oom_adj; | 149 | int oom_score_adj; |
3453 | 148 | struct rlimit *limits[RLIMIT_NLIMITS]; | 150 | struct rlimit *limits[RLIMIT_NLIMITS]; |
3454 | 149 | char *chroot; | 151 | char *chroot; |
3455 | 150 | char *chdir; | 152 | char *chdir; |
3456 | 151 | 153 | ||
3457 | === modified file 'init/job_process.c' | |||
3458 | --- init/job_process.c 2011-05-25 19:25:11 +0000 | |||
3459 | +++ init/job_process.c 2011-06-17 11:15:58 +0000 | |||
3460 | @@ -117,7 +117,7 @@ | |||
3461 | 117 | * characters within the command member, in which case it is executed | 117 | * characters within the command member, in which case it is executed |
3462 | 118 | * directly using exec after splitting on whitespace. | 118 | * directly using exec after splitting on whitespace. |
3463 | 119 | * | 119 | * |
3465 | 120 | * When exectued with the shell, if the command (which may be an entire | 120 | * When executed with the shell, if the command (which may be an entire |
3466 | 121 | * script) is reasonably small (less than 1KB) it is passed to the | 121 | * script) is reasonably small (less than 1KB) it is passed to the |
3467 | 122 | * shell using the POSIX-specified -c option. Otherwise the shell is told | 122 | * shell using the POSIX-specified -c option. Otherwise the shell is told |
3468 | 123 | * to read commands from one of the special /proc/self/fd/NN devices and NihIo | 123 | * to read commands from one of the special /proc/self/fd/NN devices and NihIo |
3469 | @@ -145,7 +145,8 @@ | |||
3470 | 145 | nih_local char *script = NULL; | 145 | nih_local char *script = NULL; |
3471 | 146 | char **e; | 146 | char **e; |
3472 | 147 | size_t argc, envc; | 147 | size_t argc, envc; |
3474 | 148 | int error = FALSE, fds[2], trace = FALSE, shell = FALSE; | 148 | int fds[2] = { -1, -1 }; |
3475 | 149 | int error = FALSE, trace = FALSE, shell = FALSE; | ||
3476 | 149 | 150 | ||
3477 | 150 | nih_assert (job != NULL); | 151 | nih_assert (job != NULL); |
3478 | 151 | 152 | ||
3479 | @@ -208,12 +209,9 @@ | |||
3480 | 208 | 209 | ||
3481 | 209 | shell = TRUE; | 210 | shell = TRUE; |
3482 | 210 | 211 | ||
3483 | 211 | /* FIXME actually always want it to be /proc/self/fd/3 and | ||
3484 | 212 | * dup2() in the child to make it that way ... no way | ||
3485 | 213 | * of passing that yet | ||
3486 | 214 | */ | ||
3487 | 215 | cmd = NIH_MUST (nih_sprintf (argv, "%s/%d", | 212 | cmd = NIH_MUST (nih_sprintf (argv, "%s/%d", |
3489 | 216 | "/proc/self/fd", fds[0])); | 213 | "/proc/self/fd", |
3490 | 214 | JOB_PROCESS_SCRIPT_FD)); | ||
3491 | 217 | NIH_MUST (nih_str_array_addp (&argv, NULL, | 215 | NIH_MUST (nih_str_array_addp (&argv, NULL, |
3492 | 218 | &argc, cmd)); | 216 | &argc, cmd)); |
3493 | 219 | } | 217 | } |
3494 | @@ -259,7 +257,7 @@ | |||
3495 | 259 | 257 | ||
3496 | 260 | /* Spawn the process, repeat until fork() works */ | 258 | /* Spawn the process, repeat until fork() works */ |
3497 | 261 | while ((job->pid[process] = job_process_spawn (job->class, argv, | 259 | while ((job->pid[process] = job_process_spawn (job->class, argv, |
3499 | 262 | env, trace)) < 0) { | 260 | env, trace, fds[0])) < 0) { |
3500 | 263 | NihError *err; | 261 | NihError *err; |
3501 | 264 | 262 | ||
3502 | 265 | err = nih_error_get (); | 263 | err = nih_error_get (); |
3503 | @@ -316,6 +314,14 @@ | |||
3504 | 316 | nih_free (err); | 314 | nih_free (err); |
3505 | 317 | } | 315 | } |
3506 | 318 | 316 | ||
3507 | 317 | /* We're feeding using a pipe, which has a file descriptor | ||
3508 | 318 | * on the child end even though it open()s it again using | ||
3509 | 319 | * a path. Instruct the shell to close this extra fd and | ||
3510 | 320 | * not to leak it. | ||
3511 | 321 | */ | ||
3512 | 322 | NIH_ZERO (nih_io_printf (io, "exec %d<&-\n", | ||
3513 | 323 | JOB_PROCESS_SCRIPT_FD)); | ||
3514 | 324 | |||
3515 | 319 | NIH_ZERO (nih_io_write (io, script, strlen (script))); | 325 | NIH_ZERO (nih_io_write (io, script, strlen (script))); |
3516 | 320 | nih_io_shutdown (io); | 326 | nih_io_shutdown (io); |
3517 | 321 | } | 327 | } |
3518 | @@ -329,7 +335,8 @@ | |||
3519 | 329 | * @class: job class of process to be spawned, | 335 | * @class: job class of process to be spawned, |
3520 | 330 | * @argv: NULL-terminated list of arguments for the process, | 336 | * @argv: NULL-terminated list of arguments for the process, |
3521 | 331 | * @env: NULL-terminated list of environment variables for the process, | 337 | * @env: NULL-terminated list of environment variables for the process, |
3523 | 332 | * @trace: whether to trace this process. | 338 | * @trace: whether to trace this process, |
3524 | 339 | * @script_fd: script file descriptor. | ||
3525 | 333 | * | 340 | * |
3526 | 334 | * This function spawns a new process using the @class details to set up the | 341 | * This function spawns a new process using the @class details to set up the |
3527 | 335 | * environment for it; the process is always a session and process group | 342 | * environment for it; the process is always a session and process group |
3528 | @@ -345,6 +352,9 @@ | |||
3529 | 345 | * wait for this and then may use it to set options before continuing the | 352 | * wait for this and then may use it to set options before continuing the |
3530 | 346 | * process. | 353 | * process. |
3531 | 347 | * | 354 | * |
3532 | 355 | * If @script_fd is not -1, this file descriptor is dup()d to the special fd 9 | ||
3533 | 356 | * (moving any other out of the way if necessary). | ||
3534 | 357 | * | ||
3535 | 348 | * This function only spawns the process, it is up to the caller to ensure | 358 | * This function only spawns the process, it is up to the caller to ensure |
3536 | 349 | * that the information is saved into the job and that the process is watched, | 359 | * that the information is saved into the job and that the process is watched, |
3537 | 350 | * etc. | 360 | * etc. |
3538 | @@ -360,7 +370,8 @@ | |||
3539 | 360 | job_process_spawn (JobClass *class, | 370 | job_process_spawn (JobClass *class, |
3540 | 361 | char * const argv[], | 371 | char * const argv[], |
3541 | 362 | char * const *env, | 372 | char * const *env, |
3543 | 363 | int trace) | 373 | int trace, |
3544 | 374 | int script_fd) | ||
3545 | 364 | { | 375 | { |
3546 | 365 | sigset_t child_set, orig_set; | 376 | sigset_t child_set, orig_set; |
3547 | 366 | pid_t pid; | 377 | pid_t pid; |
3548 | @@ -426,8 +437,24 @@ | |||
3549 | 426 | * far because read() returned zero. | 437 | * far because read() returned zero. |
3550 | 427 | */ | 438 | */ |
3551 | 428 | close (fds[0]); | 439 | close (fds[0]); |
3552 | 440 | if (fds[1] == JOB_PROCESS_SCRIPT_FD) { | ||
3553 | 441 | int tmp = dup2 (fds[1], fds[0]); | ||
3554 | 442 | close (fds[1]); | ||
3555 | 443 | fds[1] = tmp; | ||
3556 | 444 | } | ||
3557 | 429 | nih_io_set_cloexec (fds[1]); | 445 | nih_io_set_cloexec (fds[1]); |
3558 | 430 | 446 | ||
3559 | 447 | /* Move the script fd to special fd 9; the only gotcha is if that | ||
3560 | 448 | * would be our error descriptor, but that's handled above. | ||
3561 | 449 | */ | ||
3562 | 450 | if ((script_fd != -1) && (script_fd != JOB_PROCESS_SCRIPT_FD)) { | ||
3563 | 451 | int tmp = dup2 (script_fd, JOB_PROCESS_SCRIPT_FD); | ||
3564 | 452 | if (tmp < 0) | ||
3565 | 453 | job_process_error_abort (fds[1], JOB_PROCESS_ERROR_DUP, 0); | ||
3566 | 454 | close (script_fd); | ||
3567 | 455 | script_fd = tmp; | ||
3568 | 456 | } | ||
3569 | 457 | |||
3570 | 431 | /* Become the leader of a new session and process group, shedding | 458 | /* Become the leader of a new session and process group, shedding |
3571 | 432 | * any controlling tty (which we shouldn't have had anyway). | 459 | * any controlling tty (which we shouldn't have had anyway). |
3572 | 433 | */ | 460 | */ |
3573 | @@ -486,16 +513,24 @@ | |||
3574 | 486 | 513 | ||
3575 | 487 | /* Adjust the process OOM killer priority. | 514 | /* Adjust the process OOM killer priority. |
3576 | 488 | */ | 515 | */ |
3578 | 489 | if (class->oom_adj) { | 516 | if (class->oom_score_adj) { |
3579 | 517 | int oom_value; | ||
3580 | 490 | snprintf (filename, sizeof (filename), | 518 | snprintf (filename, sizeof (filename), |
3583 | 491 | "/proc/%d/oom_adj", getpid ()); | 519 | "/proc/%d/oom_score_adj", getpid ()); |
3584 | 492 | 520 | oom_value = class->oom_score_adj; | |
3585 | 493 | fd = fopen (filename, "w"); | 521 | fd = fopen (filename, "w"); |
3586 | 522 | if ((! fd) && (errno == EACCES)) { | ||
3587 | 523 | snprintf (filename, sizeof (filename), | ||
3588 | 524 | "/proc/%d/oom_adj", getpid ()); | ||
3589 | 525 | oom_value = (class->oom_score_adj | ||
3590 | 526 | * ((class->oom_score_adj < 0) ? 17 : 15)) / 1000; | ||
3591 | 527 | fd = fopen (filename, "w"); | ||
3592 | 528 | } | ||
3593 | 494 | if (! fd) { | 529 | if (! fd) { |
3594 | 495 | nih_error_raise_system (); | 530 | nih_error_raise_system (); |
3595 | 496 | job_process_error_abort (fds[1], JOB_PROCESS_ERROR_OOM_ADJ, 0); | 531 | job_process_error_abort (fds[1], JOB_PROCESS_ERROR_OOM_ADJ, 0); |
3596 | 497 | } else { | 532 | } else { |
3598 | 498 | fprintf (fd, "%d\n", class->oom_adj); | 533 | fprintf (fd, "%d\n", oom_value); |
3599 | 499 | 534 | ||
3600 | 500 | if (fclose (fd)) { | 535 | if (fclose (fd)) { |
3601 | 501 | nih_error_raise_system (); | 536 | nih_error_raise_system (); |
3602 | @@ -715,6 +750,11 @@ | |||
3603 | 715 | err->error.number = JOB_PROCESS_ERROR; | 750 | err->error.number = JOB_PROCESS_ERROR; |
3604 | 716 | 751 | ||
3605 | 717 | switch (err->type) { | 752 | switch (err->type) { |
3606 | 753 | case JOB_PROCESS_ERROR_DUP: | ||
3607 | 754 | err->error.message = NIH_MUST (nih_sprintf ( | ||
3608 | 755 | err, _("unable to move script fd: %s"), | ||
3609 | 756 | strerror (err->errnum))); | ||
3610 | 757 | break; | ||
3611 | 718 | case JOB_PROCESS_ERROR_CONSOLE: | 758 | case JOB_PROCESS_ERROR_CONSOLE: |
3612 | 719 | err->error.message = NIH_MUST (nih_sprintf ( | 759 | err->error.message = NIH_MUST (nih_sprintf ( |
3613 | 720 | err, _("unable to open console: %s"), | 760 | err, _("unable to open console: %s"), |
3614 | @@ -820,9 +860,9 @@ | |||
3615 | 820 | * @process: process to be killed. | 860 | * @process: process to be killed. |
3616 | 821 | * | 861 | * |
3617 | 822 | * This function forces a @job to leave its current state by sending | 862 | * This function forces a @job to leave its current state by sending |
3621 | 823 | * @process the TERM signal, and maybe later the KILL signal. The actual | 863 | * @process the "kill signal" defined signal (TERM by default), and maybe |
3622 | 824 | * state changes are performed by job_child_reaper when the process | 864 | * later the KILL signal. The actual state changes are performed by |
3623 | 825 | * has actually terminated. | 865 | * job_child_reaper when the process has actually terminated. |
3624 | 826 | **/ | 866 | **/ |
3625 | 827 | void | 867 | void |
3626 | 828 | job_process_kill (Job *job, | 868 | job_process_kill (Job *job, |
3627 | @@ -833,15 +873,17 @@ | |||
3628 | 833 | nih_assert (job->kill_timer == NULL); | 873 | nih_assert (job->kill_timer == NULL); |
3629 | 834 | nih_assert (job->kill_process = -1); | 874 | nih_assert (job->kill_process = -1); |
3630 | 835 | 875 | ||
3632 | 836 | nih_info (_("Sending TERM signal to %s %s process (%d)"), | 876 | nih_info (_("Sending %s signal to %s %s process (%d)"), |
3633 | 877 | nih_signal_to_name (job->class->kill_signal), | ||
3634 | 837 | job_name (job), process_name (process), job->pid[process]); | 878 | job_name (job), process_name (process), job->pid[process]); |
3635 | 838 | 879 | ||
3637 | 839 | if (system_kill (job->pid[process], FALSE) < 0) { | 880 | if (system_kill (job->pid[process], job->class->kill_signal) < 0) { |
3638 | 840 | NihError *err; | 881 | NihError *err; |
3639 | 841 | 882 | ||
3640 | 842 | err = nih_error_get (); | 883 | err = nih_error_get (); |
3641 | 843 | if (err->number != ESRCH) | 884 | if (err->number != ESRCH) |
3643 | 844 | nih_warn (_("Failed to send TERM signal to %s %s process (%d): %s"), | 885 | nih_warn (_("Failed to send %s signal to %s %s process (%d): %s"), |
3644 | 886 | nih_signal_to_name (job->class->kill_signal), | ||
3645 | 845 | job_name (job), process_name (process), | 887 | job_name (job), process_name (process), |
3646 | 846 | job->pid[process], err->message); | 888 | job->pid[process], err->message); |
3647 | 847 | nih_free (err); | 889 | nih_free (err); |
3648 | @@ -881,15 +923,17 @@ | |||
3649 | 881 | job->kill_timer = NULL; | 923 | job->kill_timer = NULL; |
3650 | 882 | job->kill_process = -1; | 924 | job->kill_process = -1; |
3651 | 883 | 925 | ||
3653 | 884 | nih_info (_("Sending KILL signal to %s %s process (%d)"), | 926 | nih_info (_("Sending %s signal to %s %s process (%d)"), |
3654 | 927 | "KILL", | ||
3655 | 885 | job_name (job), process_name (process), job->pid[process]); | 928 | job_name (job), process_name (process), job->pid[process]); |
3656 | 886 | 929 | ||
3658 | 887 | if (system_kill (job->pid[process], TRUE) < 0) { | 930 | if (system_kill (job->pid[process], SIGKILL) < 0) { |
3659 | 888 | NihError *err; | 931 | NihError *err; |
3660 | 889 | 932 | ||
3661 | 890 | err = nih_error_get (); | 933 | err = nih_error_get (); |
3662 | 891 | if (err->number != ESRCH) | 934 | if (err->number != ESRCH) |
3664 | 892 | nih_warn (_("Failed to send KILL signal to %s %s process (%d): %s"), | 935 | nih_warn (_("Failed to send %s signal to %s %s process (%d): %s"), |
3665 | 936 | "KILL", | ||
3666 | 893 | job_name (job), process_name (process), | 937 | job_name (job), process_name (process), |
3667 | 894 | job->pid[process], err->message); | 938 | job->pid[process], err->message); |
3668 | 895 | nih_free (err); | 939 | nih_free (err); |
3669 | @@ -919,6 +963,7 @@ | |||
3670 | 919 | { | 963 | { |
3671 | 920 | Job *job; | 964 | Job *job; |
3672 | 921 | ProcessType process; | 965 | ProcessType process; |
3673 | 966 | NihLogLevel priority; | ||
3674 | 922 | const char *sig; | 967 | const char *sig; |
3675 | 923 | 968 | ||
3676 | 924 | nih_assert (pid > 0); | 969 | nih_assert (pid > 0); |
3677 | @@ -927,21 +972,31 @@ | |||
3678 | 927 | * job's process it was. If we don't know about it, then we simply | 972 | * job's process it was. If we don't know about it, then we simply |
3679 | 928 | * ignore the event. | 973 | * ignore the event. |
3680 | 929 | */ | 974 | */ |
3681 | 930 | nih_debug ("Ignored event %x (%d) for process %d", event, status, pid); | ||
3682 | 931 | job = job_process_find (pid, &process); | 975 | job = job_process_find (pid, &process); |
3683 | 932 | if (! job) | 976 | if (! job) |
3684 | 933 | return; | 977 | return; |
3685 | 934 | 978 | ||
3686 | 979 | /* Check the job's normal exit clauses to see whether this is a failure | ||
3687 | 980 | * worth warning about. | ||
3688 | 981 | */ | ||
3689 | 982 | priority = NIH_LOG_WARN; | ||
3690 | 983 | for (size_t i = 0; i < job->class->normalexit_len; i++) { | ||
3691 | 984 | if (job->class->normalexit[i] == status) { | ||
3692 | 985 | priority = NIH_LOG_INFO; | ||
3693 | 986 | break; | ||
3694 | 987 | } | ||
3695 | 988 | } | ||
3696 | 989 | |||
3697 | 935 | switch (event) { | 990 | switch (event) { |
3698 | 936 | case NIH_CHILD_EXITED: | 991 | case NIH_CHILD_EXITED: |
3699 | 937 | /* Child exited; check status to see whether it exited | 992 | /* Child exited; check status to see whether it exited |
3700 | 938 | * normally (zero) or with a non-zero status. | 993 | * normally (zero) or with a non-zero status. |
3701 | 939 | */ | 994 | */ |
3702 | 940 | if (status) { | 995 | if (status) { |
3707 | 941 | nih_warn (_("%s %s process (%d) " | 996 | nih_log_message (priority, _("%s %s process (%d) " |
3708 | 942 | "terminated with status %d"), | 997 | "terminated with status %d"), |
3709 | 943 | job_name (job), process_name (process), | 998 | job_name (job), process_name (process), |
3710 | 944 | pid, status); | 999 | pid, status); |
3711 | 945 | } else { | 1000 | } else { |
3712 | 946 | nih_info (_("%s %s process (%d) exited normally"), | 1001 | nih_info (_("%s %s process (%d) exited normally"), |
3713 | 947 | job_name (job), process_name (process), pid); | 1002 | job_name (job), process_name (process), pid); |
3714 | @@ -958,9 +1013,9 @@ | |||
3715 | 958 | */ | 1013 | */ |
3716 | 959 | sig = nih_signal_to_name (status); | 1014 | sig = nih_signal_to_name (status); |
3717 | 960 | if (sig) { | 1015 | if (sig) { |
3721 | 961 | nih_warn (_("%s %s process (%d) killed by %s signal"), | 1016 | nih_log_message (priority, _("%s %s process (%d) killed by %s signal"), |
3722 | 962 | job_name (job), process_name (process), | 1017 | job_name (job), process_name (process), |
3723 | 963 | pid, sig); | 1018 | pid, sig); |
3724 | 964 | } else { | 1019 | } else { |
3725 | 965 | nih_warn (_("%s %s process (%d) killed by signal %d"), | 1020 | nih_warn (_("%s %s process (%d) killed by signal %d"), |
3726 | 966 | job_name (job), process_name (process), | 1021 | job_name (job), process_name (process), |
3727 | 967 | 1022 | ||
3728 | === modified file 'init/job_process.h' | |||
3729 | --- init/job_process.h 2011-05-25 19:25:11 +0000 | |||
3730 | +++ init/job_process.h 2011-06-17 11:15:58 +0000 | |||
3731 | @@ -1,6 +1,6 @@ | |||
3732 | 1 | /* upstart | 1 | /* upstart |
3733 | 2 | * | 2 | * |
3735 | 3 | * Copyright © 2009 Canonical Ltd. | 3 | * Copyright © 2009,2010,2011 Canonical Ltd. |
3736 | 4 | * Author: Scott James Remnant <scott@netsplit.com>. | 4 | * Author: Scott James Remnant <scott@netsplit.com>. |
3737 | 5 | * | 5 | * |
3738 | 6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
3739 | @@ -32,12 +32,23 @@ | |||
3740 | 32 | 32 | ||
3741 | 33 | 33 | ||
3742 | 34 | /** | 34 | /** |
3743 | 35 | * JOB_PROCESS_SCRIPT_FD: | ||
3744 | 36 | * | ||
3745 | 37 | * The special fd used to pass the script to the shell process, this can be | ||
3746 | 38 | * anything from 3-9 (0-2 are stdin/out/err, 10 and above aren't guaranteed | ||
3747 | 39 | * by POSIX). | ||
3748 | 40 | **/ | ||
3749 | 41 | #define JOB_PROCESS_SCRIPT_FD 9 | ||
3750 | 42 | |||
3751 | 43 | |||
3752 | 44 | /** | ||
3753 | 35 | * JobProcessErrorType: | 45 | * JobProcessErrorType: |
3754 | 36 | * | 46 | * |
3755 | 37 | * These constants represent the different steps of process spawning that | 47 | * These constants represent the different steps of process spawning that |
3756 | 38 | * can produce an error. | 48 | * can produce an error. |
3757 | 39 | **/ | 49 | **/ |
3758 | 40 | typedef enum job_process_error_type { | 50 | typedef enum job_process_error_type { |
3759 | 51 | JOB_PROCESS_ERROR_DUP, | ||
3760 | 41 | JOB_PROCESS_ERROR_CONSOLE, | 52 | JOB_PROCESS_ERROR_CONSOLE, |
3761 | 42 | JOB_PROCESS_ERROR_RLIMIT, | 53 | JOB_PROCESS_ERROR_RLIMIT, |
3762 | 43 | JOB_PROCESS_ERROR_PRIORITY, | 54 | JOB_PROCESS_ERROR_PRIORITY, |
3763 | @@ -82,7 +93,7 @@ | |||
3764 | 82 | int job_process_run (Job *job, ProcessType process); | 93 | int job_process_run (Job *job, ProcessType process); |
3765 | 83 | 94 | ||
3766 | 84 | pid_t job_process_spawn (JobClass *class, char * const argv[], | 95 | pid_t job_process_spawn (JobClass *class, char * const argv[], |
3768 | 85 | char * const *env, int trace) | 96 | char * const *env, int trace, int script_fd) |
3769 | 86 | __attribute__ ((warn_unused_result)); | 97 | __attribute__ ((warn_unused_result)); |
3770 | 87 | 98 | ||
3771 | 88 | void job_process_kill (Job *job, ProcessType process); | 99 | void job_process_kill (Job *job, ProcessType process); |
3772 | 89 | 100 | ||
3773 | === modified file 'init/main.c' | |||
3774 | --- init/main.c 2011-05-25 19:25:11 +0000 | |||
3775 | +++ init/main.c 2011-06-17 11:15:58 +0000 | |||
3776 | @@ -1,6 +1,6 @@ | |||
3777 | 1 | /* upstart | 1 | /* upstart |
3778 | 2 | * | 2 | * |
3780 | 3 | * Copyright © 2010,2011 Canonical Ltd. | 3 | * Copyright © 2009-2011 Canonical Ltd. |
3781 | 4 | * Author: Scott James Remnant <scott@netsplit.com>. | 4 | * Author: Scott James Remnant <scott@netsplit.com>. |
3782 | 5 | * | 5 | * |
3783 | 6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
3784 | @@ -62,6 +62,7 @@ | |||
3785 | 62 | 62 | ||
3786 | 63 | /* Prototypes for static functions */ | 63 | /* Prototypes for static functions */ |
3787 | 64 | #ifndef DEBUG | 64 | #ifndef DEBUG |
3788 | 65 | static int logger_kmsg (NihLogLevel priority, const char *message); | ||
3789 | 65 | static void crash_handler (int signum); | 66 | static void crash_handler (int signum); |
3790 | 66 | #endif /* DEBUG */ | 67 | #endif /* DEBUG */ |
3791 | 67 | static void term_handler (void *data, NihSignal *signal); | 68 | static void term_handler (void *data, NihSignal *signal); |
3792 | @@ -93,6 +94,8 @@ | |||
3793 | 93 | static int restart = FALSE; | 94 | static int restart = FALSE; |
3794 | 94 | 95 | ||
3795 | 95 | 96 | ||
3796 | 97 | extern int disable_sessions; | ||
3797 | 98 | |||
3798 | 96 | /** | 99 | /** |
3799 | 97 | * conf_dir: | 100 | * conf_dir: |
3800 | 98 | * | 101 | * |
3801 | @@ -117,8 +120,6 @@ | |||
3802 | 117 | 120 | ||
3803 | 118 | extern int use_session_bus; | 121 | extern int use_session_bus; |
3804 | 119 | 122 | ||
3805 | 120 | extern int disable_sessions; | ||
3806 | 121 | |||
3807 | 122 | /** | 123 | /** |
3808 | 123 | * options: | 124 | * options: |
3809 | 124 | * | 125 | * |
3810 | @@ -128,20 +129,20 @@ | |||
3811 | 128 | { 0, "confdir", N_("specify alternative directory to load configuration files from"), | 129 | { 0, "confdir", N_("specify alternative directory to load configuration files from"), |
3812 | 129 | NULL, "DIR", &conf_dir, NULL }, | 130 | NULL, "DIR", &conf_dir, NULL }, |
3813 | 130 | 131 | ||
3816 | 131 | { 0, "startup-event", N_("specify an alternative initial event (for testing)"), | 132 | { 0, "no-sessions", N_("Disable user and chroot sessions"), |
3817 | 132 | NULL, "NAME", &initial_event, NULL }, | 133 | NULL, NULL, &disable_sessions, NULL }, |
3818 | 133 | 134 | ||
3819 | 134 | { 0, "no-startup-event", N_("do not emit any startup event (for testing)"), | 135 | { 0, "no-startup-event", N_("do not emit any startup event (for testing)"), |
3820 | 135 | NULL, NULL, &disable_startup_event, NULL }, | 136 | NULL, NULL, &disable_startup_event, NULL }, |
3821 | 136 | 137 | ||
3822 | 137 | { 0, "no-sessions", N_("Disable user and chroot sessions"), | ||
3823 | 138 | NULL, NULL, &disable_sessions, NULL }, | ||
3824 | 139 | |||
3825 | 140 | { 0, "restart", NULL, NULL, NULL, &restart, NULL }, | 138 | { 0, "restart", NULL, NULL, NULL, &restart, NULL }, |
3827 | 141 | 139 | ||
3828 | 142 | { 0, "session", N_("use D-Bus session bus rather than system bus (for testing)"), | 140 | { 0, "session", N_("use D-Bus session bus rather than system bus (for testing)"), |
3829 | 143 | NULL, NULL, &use_session_bus, NULL }, | 141 | NULL, NULL, &use_session_bus, NULL }, |
3830 | 144 | 142 | ||
3831 | 143 | { 0, "startup-event", N_("specify an alternative initial event (for testing)"), | ||
3832 | 144 | NULL, "NAME", &initial_event, NULL }, | ||
3833 | 145 | |||
3834 | 145 | /* Ignore invalid options */ | 146 | /* Ignore invalid options */ |
3835 | 146 | { '-', "--", NULL, NULL, NULL, NULL, NULL }, | 147 | { '-', "--", NULL, NULL, NULL, NULL, NULL }, |
3836 | 147 | 148 | ||
3837 | @@ -212,14 +213,18 @@ | |||
3838 | 212 | *arg_end = ' '; | 213 | *arg_end = ' '; |
3839 | 213 | } | 214 | } |
3840 | 214 | 215 | ||
3841 | 216 | |||
3842 | 215 | /* Become the leader of a new session and process group, shedding | 217 | /* Become the leader of a new session and process group, shedding |
3843 | 216 | * any controlling tty (which we shouldn't have had anyway - but | 218 | * any controlling tty (which we shouldn't have had anyway - but |
3844 | 217 | * you never know what initramfs did). | 219 | * you never know what initramfs did). |
3845 | 218 | */ | 220 | */ |
3846 | 219 | setsid (); | 221 | setsid (); |
3847 | 220 | 222 | ||
3850 | 221 | /* Set the standard file descriptors. */ | 223 | /* Set the standard file descriptors to the ordinary console device, |
3851 | 222 | if (system_setup_console (CONSOLE_NONE, FALSE) < 0) | 224 | * resetting it to sane defaults unless we're inheriting from another |
3852 | 225 | * init process which we know left it in a sane state. | ||
3853 | 226 | */ | ||
3854 | 227 | if (system_setup_console (CONSOLE_OUTPUT, (! restart)) < 0) | ||
3855 | 223 | nih_free (nih_error_get ()); | 228 | nih_free (nih_error_get ()); |
3856 | 224 | 229 | ||
3857 | 225 | /* Set the PATH environment variable */ | 230 | /* Set the PATH environment variable */ |
3858 | @@ -231,7 +236,7 @@ | |||
3859 | 231 | */ | 236 | */ |
3860 | 232 | if (chdir ("/")) | 237 | if (chdir ("/")) |
3861 | 233 | nih_warn ("%s: %s", _("Unable to set root directory"), | 238 | nih_warn ("%s: %s", _("Unable to set root directory"), |
3863 | 234 | strerror (errno)); | 239 | strerror (errno)); |
3864 | 235 | 240 | ||
3865 | 236 | /* Mount the /proc and /sys filesystems, which are pretty much | 241 | /* Mount the /proc and /sys filesystems, which are pretty much |
3866 | 237 | * essential for any Linux system; not to mention used by | 242 | * essential for any Linux system; not to mention used by |
3867 | @@ -242,7 +247,7 @@ | |||
3868 | 242 | 247 | ||
3869 | 243 | err = nih_error_get (); | 248 | err = nih_error_get (); |
3870 | 244 | nih_warn ("%s: %s", _("Unable to mount /proc filesystem"), | 249 | nih_warn ("%s: %s", _("Unable to mount /proc filesystem"), |
3872 | 245 | err->message); | 250 | err->message); |
3873 | 246 | nih_free (err); | 251 | nih_free (err); |
3874 | 247 | } | 252 | } |
3875 | 248 | 253 | ||
3876 | @@ -251,10 +256,15 @@ | |||
3877 | 251 | 256 | ||
3878 | 252 | err = nih_error_get (); | 257 | err = nih_error_get (); |
3879 | 253 | nih_warn ("%s: %s", _("Unable to mount /sys filesystem"), | 258 | nih_warn ("%s: %s", _("Unable to mount /sys filesystem"), |
3881 | 254 | err->message); | 259 | err->message); |
3882 | 255 | nih_free (err); | 260 | nih_free (err); |
3883 | 256 | } | 261 | } |
3884 | 262 | } else { | ||
3885 | 263 | nih_log_set_priority (NIH_LOG_DEBUG); | ||
3886 | 264 | nih_debug ("Running with UID %d as PID %d (PPID %d)", | ||
3887 | 265 | (int)getuid (), (int)getpid (), (int)getppid ()); | ||
3888 | 257 | } | 266 | } |
3889 | 267 | |||
3890 | 258 | #else /* DEBUG */ | 268 | #else /* DEBUG */ |
3891 | 259 | nih_log_set_priority (NIH_LOG_DEBUG); | 269 | nih_log_set_priority (NIH_LOG_DEBUG); |
3892 | 260 | nih_debug ("Running with UID %d as PID %d (PPID %d)", | 270 | nih_debug ("Running with UID %d as PID %d (PPID %d)", |
3893 | @@ -325,6 +335,7 @@ | |||
3894 | 325 | } | 335 | } |
3895 | 326 | #endif /* DEBUG */ | 336 | #endif /* DEBUG */ |
3896 | 327 | 337 | ||
3897 | 338 | |||
3898 | 328 | /* Watch children for events */ | 339 | /* Watch children for events */ |
3899 | 329 | NIH_MUST (nih_child_add_watch (NULL, -1, NIH_CHILD_ALL, | 340 | NIH_MUST (nih_child_add_watch (NULL, -1, NIH_CHILD_ALL, |
3900 | 330 | job_process_handler, NULL)); | 341 | job_process_handler, NULL)); |
3901 | @@ -335,7 +346,7 @@ | |||
3902 | 335 | 346 | ||
3903 | 336 | 347 | ||
3904 | 337 | /* Read configuration */ | 348 | /* Read configuration */ |
3906 | 338 | NIH_MUST (conf_source_new (NULL, DEFAULT_CONFFILE, CONF_FILE)); | 349 | NIH_MUST (conf_source_new (NULL, CONFFILE, CONF_FILE)); |
3907 | 339 | NIH_MUST (conf_source_new (NULL, conf_dir, CONF_JOB_DIR)); | 350 | NIH_MUST (conf_source_new (NULL, conf_dir, CONF_JOB_DIR)); |
3908 | 340 | 351 | ||
3909 | 341 | conf_reload (); | 352 | conf_reload (); |
3910 | @@ -348,7 +359,7 @@ | |||
3911 | 348 | err = nih_error_get (); | 359 | err = nih_error_get (); |
3912 | 349 | if (err->number != ENOMEM) { | 360 | if (err->number != ENOMEM) { |
3913 | 350 | nih_warn ("%s: %s", _("Unable to listen for private connections"), | 361 | nih_warn ("%s: %s", _("Unable to listen for private connections"), |
3915 | 351 | err->message); | 362 | err->message); |
3916 | 352 | nih_free (err); | 363 | nih_free (err); |
3917 | 353 | break; | 364 | break; |
3918 | 354 | } | 365 | } |
3919 | @@ -374,10 +385,12 @@ | |||
3920 | 374 | #ifndef DEBUG | 385 | #ifndef DEBUG |
3921 | 375 | if (use_session_bus == FALSE) { | 386 | if (use_session_bus == FALSE) { |
3922 | 376 | /* Now that the startup is complete, send all further logging output | 387 | /* Now that the startup is complete, send all further logging output |
3924 | 377 | * to syslog instead of to the console. | 388 | * to kmsg instead of to the console. |
3925 | 378 | */ | 389 | */ |
3928 | 379 | openlog (program_name, LOG_CONS, LOG_DAEMON); | 390 | if (system_setup_console (CONSOLE_NONE, FALSE) < 0) |
3929 | 380 | nih_log_set_logger (nih_logger_syslog); | 391 | nih_free (nih_error_get ()); |
3930 | 392 | |||
3931 | 393 | nih_log_set_logger (logger_kmsg); | ||
3932 | 381 | } | 394 | } |
3933 | 382 | #endif /* DEBUG */ | 395 | #endif /* DEBUG */ |
3934 | 383 | 396 | ||
3935 | @@ -456,6 +469,7 @@ | |||
3936 | 456 | 469 | ||
3937 | 457 | closedir (piddir); | 470 | closedir (piddir); |
3938 | 458 | } | 471 | } |
3939 | 472 | |||
3940 | 459 | } else { | 473 | } else { |
3941 | 460 | sigset_t mask; | 474 | sigset_t mask; |
3942 | 461 | 475 | ||
3943 | @@ -480,6 +494,67 @@ | |||
3944 | 480 | 494 | ||
3945 | 481 | #ifndef DEBUG | 495 | #ifndef DEBUG |
3946 | 482 | /** | 496 | /** |
3947 | 497 | * logger_kmsg: | ||
3948 | 498 | * @priority: priority of message being logged, | ||
3949 | 499 | * @message: message to log. | ||
3950 | 500 | * | ||
3951 | 501 | * Outputs the @message to the kernel log message socket prefixed with an | ||
3952 | 502 | * appropriate tag based on @priority, the program name and terminated with | ||
3953 | 503 | * a new line. | ||
3954 | 504 | * | ||
3955 | 505 | * Returns: zero on success, negative value on error. | ||
3956 | 506 | **/ | ||
3957 | 507 | static int | ||
3958 | 508 | logger_kmsg (NihLogLevel priority, | ||
3959 | 509 | const char *message) | ||
3960 | 510 | { | ||
3961 | 511 | int tag; | ||
3962 | 512 | FILE *kmsg; | ||
3963 | 513 | |||
3964 | 514 | nih_assert (message != NULL); | ||
3965 | 515 | |||
3966 | 516 | switch (priority) { | ||
3967 | 517 | case NIH_LOG_DEBUG: | ||
3968 | 518 | tag = '7'; | ||
3969 | 519 | break; | ||
3970 | 520 | case NIH_LOG_INFO: | ||
3971 | 521 | tag = '6'; | ||
3972 | 522 | break; | ||
3973 | 523 | case NIH_LOG_MESSAGE: | ||
3974 | 524 | tag = '5'; | ||
3975 | 525 | break; | ||
3976 | 526 | case NIH_LOG_WARN: | ||
3977 | 527 | tag = '4'; | ||
3978 | 528 | break; | ||
3979 | 529 | case NIH_LOG_ERROR: | ||
3980 | 530 | tag = '3'; | ||
3981 | 531 | break; | ||
3982 | 532 | case NIH_LOG_FATAL: | ||
3983 | 533 | tag = '2'; | ||
3984 | 534 | break; | ||
3985 | 535 | default: | ||
3986 | 536 | tag = 'd'; | ||
3987 | 537 | } | ||
3988 | 538 | |||
3989 | 539 | kmsg = fopen ("/dev/kmsg", "w"); | ||
3990 | 540 | if (! kmsg) | ||
3991 | 541 | return -1; | ||
3992 | 542 | |||
3993 | 543 | if (fprintf (kmsg, "<%c>%s: %s\n", tag, program_name, message) < 0) { | ||
3994 | 544 | int saved_errno = errno; | ||
3995 | 545 | fclose (kmsg); | ||
3996 | 546 | errno = saved_errno; | ||
3997 | 547 | return -1; | ||
3998 | 548 | } | ||
3999 | 549 | |||
4000 | 550 | if (fclose (kmsg) < 0) | ||
4001 | 551 | return -1; | ||
4002 | 552 | |||
4003 | 553 | return 0; | ||
4004 | 554 | } | ||
4005 | 555 | |||
4006 | 556 | |||
4007 | 557 | /** | ||
4008 | 483 | * crash_handler: | 558 | * crash_handler: |
4009 | 484 | * @signum: signal number received. | 559 | * @signum: signal number received. |
4010 | 485 | * | 560 | * |
4011 | @@ -711,7 +786,7 @@ | |||
4012 | 711 | if (conf_dir) | 786 | if (conf_dir) |
4013 | 712 | goto out; | 787 | goto out; |
4014 | 713 | 788 | ||
4016 | 714 | conf_dir = DEFAULT_CONFDIR; | 789 | conf_dir = CONFDIR; |
4017 | 715 | 790 | ||
4018 | 716 | dir = getenv (CONFDIR_ENV); | 791 | dir = getenv (CONFDIR_ENV); |
4019 | 717 | if (! dir) | 792 | if (! dir) |
4020 | 718 | 793 | ||
4021 | === modified file 'init/man/init.5' | |||
4022 | --- init/man/init.5 2011-05-25 19:25:11 +0000 | |||
4023 | +++ init/man/init.5 2011-06-17 11:15:58 +0000 | |||
4024 | @@ -1,10 +1,12 @@ | |||
4026 | 1 | .TH init 5 2011-03-03 "Upstart" | 1 | .TH init 5 2011-05-12 "Upstart" |
4027 | 2 | .\" | 2 | .\" |
4028 | 3 | .SH NAME | 3 | .SH NAME |
4029 | 4 | init \- Upstart init daemon job configuration | 4 | init \- Upstart init daemon job configuration |
4030 | 5 | .\" | 5 | .\" |
4031 | 6 | .SH SYNOPSIS | 6 | .SH SYNOPSIS |
4032 | 7 | .B /etc/init/ | 7 | .B /etc/init/ |
4033 | 8 | |||
4034 | 9 | .B $HOME/.init/ | ||
4035 | 8 | .\" | 10 | .\" |
4036 | 9 | .SH DESCRIPTION | 11 | .SH DESCRIPTION |
4037 | 10 | On startup, the Upstart | 12 | On startup, the Upstart |
4038 | @@ -14,6 +16,11 @@ | |||
4039 | 14 | directory, and watches for future changes to these files using | 16 | directory, and watches for future changes to these files using |
4040 | 15 | .BR inotify (7). | 17 | .BR inotify (7). |
4041 | 16 | 18 | ||
4042 | 19 | If D\-Bus has been configured to allow non\-privileged users to invoke all | ||
4043 | 20 | Upstart D\-Bus methods, Upstart is also able to manage User Jobs. See | ||
4044 | 21 | .B User Jobs | ||
4045 | 22 | for further details. | ||
4046 | 23 | |||
4047 | 17 | To be considered by Upstart, files in this directory must have a | 24 | To be considered by Upstart, files in this directory must have a |
4048 | 18 | recognized suffix and may also be present in sub\-directories. There are | 25 | recognized suffix and may also be present in sub\-directories. There are |
4049 | 19 | two recognized suffixes: | 26 | two recognized suffixes: |
4050 | @@ -44,7 +51,7 @@ | |||
4051 | 44 | file. | 51 | file. |
4052 | 45 | 52 | ||
4053 | 46 | Each configuration file defines the template for a single \fIservice\fP | 53 | Each configuration file defines the template for a single \fIservice\fP |
4055 | 47 | (long\-running process or daemon) or \fItask\fP (short\-lived process). | 54 | (long-running process or daemon) or \fItask\fP (short-lived process). |
4056 | 48 | 55 | ||
4057 | 49 | Note that a configuration file is not itself a job: it is a description | 56 | Note that a configuration file is not itself a job: it is a description |
4058 | 50 | of an environmenta job could be run in. A job is the runtime embodiment | 57 | of an environmenta job could be run in. A job is the runtime embodiment |
4059 | @@ -53,7 +60,7 @@ | |||
4060 | 53 | The configuration file name as displayed by Upstart and associated | 60 | The configuration file name as displayed by Upstart and associated |
4061 | 54 | tooling is taken from its relative path within the directory without the | 61 | tooling is taken from its relative path within the directory without the |
4062 | 55 | extension. For example a configuration file | 62 | extension. For example a configuration file |
4064 | 56 | .I /etc/init/rc\-sysinit.conf | 63 | .I /etc/init/rc-sysinit.conf |
4065 | 57 | is named | 64 | is named |
4066 | 58 | .IR rc\-sysinit , | 65 | .IR rc\-sysinit , |
4067 | 59 | while a configuration file | 66 | while a configuration file |
4068 | @@ -65,6 +72,36 @@ | |||
4069 | 65 | 72 | ||
4070 | 66 | Configuration files are plain text and should not be executable. | 73 | Configuration files are plain text and should not be executable. |
4071 | 67 | .\" | 74 | .\" |
4072 | 75 | .SS User Jobs | ||
4073 | 76 | |||
4074 | 77 | A User Job is a job configuration file created by a non\-privileged user | ||
4075 | 78 | in their | ||
4076 | 79 | .B $HOME/.init/ | ||
4077 | 80 | directory. Job configuration files in this directory have | ||
4078 | 81 | the same syntax as system job configuration files. | ||
4079 | 82 | |||
4080 | 83 | Any user can create user jobs, but that user can control | ||
4081 | 84 | .I only | ||
4082 | 85 | jobs they create. | ||
4083 | 86 | |||
4084 | 87 | Users are able to manage their jobs using the standard | ||
4085 | 88 | .BR initctl (8) | ||
4086 | 89 | facility. | ||
4087 | 90 | |||
4088 | 91 | Note that a user job configuration file cannot have the same name as a | ||
4089 | 92 | system job configuration file. | ||
4090 | 93 | .\" | ||
4091 | 94 | .SS Chroot Support | ||
4092 | 95 | |||
4093 | 96 | Upstart is able to manage jobs within a \fBchroot\fP(2). To control jobs | ||
4094 | 97 | within the chroot environment, use the standard | ||
4095 | 98 | .BR initctl (8) | ||
4096 | 99 | facility. Note that it is not necessary to install D\-Bus within the | ||
4097 | 100 | chroot (in fact it is not recommended). | ||
4098 | 101 | |||
4099 | 102 | Note that User Jobs can be created within a chroot environment. | ||
4100 | 103 | |||
4101 | 104 | .\" | ||
4102 | 68 | .SS Configuration File Format | 105 | .SS Configuration File Format |
4103 | 69 | Each line begins with a configuration stanza and continues until either | 106 | Each line begins with a configuration stanza and continues until either |
4104 | 70 | the end of the line or a line containing a closing stanza. Line breaks | 107 | the end of the line or a line containing a closing stanza. Line breaks |
4105 | @@ -93,7 +130,7 @@ | |||
4106 | 93 | .B script | 130 | .B script |
4107 | 94 | stanzas, only one of which is permitted. These specify the executable | 131 | stanzas, only one of which is permitted. These specify the executable |
4108 | 95 | or shell script that will be run when the job is considered to be running. | 132 | or shell script that will be run when the job is considered to be running. |
4110 | 96 | Once this process terminates, the job stop. | 133 | Once this process terminates, the job stops. |
4111 | 97 | 134 | ||
4112 | 98 | All processes are run with the full job environment available as | 135 | All processes are run with the full job environment available as |
4113 | 99 | environment variables in their process. | 136 | environment variables in their process. |
4114 | @@ -553,15 +590,15 @@ | |||
4115 | 553 | for more details. | 590 | for more details. |
4116 | 554 | .\" | 591 | .\" |
4117 | 555 | .TP | 592 | .TP |
4119 | 556 | .B oom \fIADJUSTMENT\fR|\fBnever | 593 | .B oom score \fIADJUSTMENT\fR|\fBnever |
4120 | 557 | Normally the OOM killer regards all processes equally, this stanza | 594 | Normally the OOM killer regards all processes equally, this stanza |
4121 | 558 | advises the kernel to treat this job differently. | 595 | advises the kernel to treat this job differently. |
4122 | 559 | 596 | ||
4123 | 560 | .I ADJUSTMENT | 597 | .I ADJUSTMENT |
4124 | 561 | may be an integer value from | 598 | may be an integer value from |
4126 | 562 | .I \-16 | 599 | .I -999 |
4127 | 563 | (very unlikely to be killed by the OOM killer) up to | 600 | (very unlikely to be killed by the OOM killer) up to |
4129 | 564 | .I 14 | 601 | .I 1000 |
4130 | 565 | (very likely to be killed by the OOM killer). It may also be the special | 602 | (very likely to be killed by the OOM killer). It may also be the special |
4131 | 566 | value | 603 | value |
4132 | 567 | .B never | 604 | .B never |
4133 | @@ -656,10 +693,20 @@ | |||
4134 | 656 | .\" | 693 | .\" |
4135 | 657 | .SS Miscellaneous | 694 | .SS Miscellaneous |
4136 | 658 | .TP | 695 | .TP |
4137 | 696 | .B kill signal \fISIGNAL | ||
4138 | 697 | Specifies the stopping signal, | ||
4139 | 698 | .I SIGTERM | ||
4140 | 699 | by default, a job's main process will receive when stopping the | ||
4141 | 700 | running job. | ||
4142 | 701 | |||
4143 | 702 | .nf | ||
4144 | 703 | kill signal INT | ||
4145 | 704 | .fi | ||
4146 | 705 | .\" | ||
4147 | 706 | .TP | ||
4148 | 659 | .B kill timeout \fIINTERVAL | 707 | .B kill timeout \fIINTERVAL |
4149 | 660 | Specifies the interval between sending the job's main process the | 708 | Specifies the interval between sending the job's main process the |
4152 | 661 | .I SIGTERM | 709 | "stopping" (see above) and |
4151 | 662 | and | ||
4153 | 663 | .I SIGKILL | 710 | .I SIGKILL |
4154 | 664 | signals when stopping the running job. Default is 5 seconds. | 711 | signals when stopping the running job. Default is 5 seconds. |
4155 | 665 | .\" | 712 | .\" |
4156 | @@ -739,7 +786,7 @@ | |||
4157 | 739 | .RB < https://launchpad.net/upstart/+bugs > | 786 | .RB < https://launchpad.net/upstart/+bugs > |
4158 | 740 | .\" | 787 | .\" |
4159 | 741 | .SH COPYRIGHT | 788 | .SH COPYRIGHT |
4161 | 742 | Copyright \(co 2010,2011 Canonical Ltd. | 789 | Copyright \(co 2009-2011 Canonical Ltd. |
4162 | 743 | .br | 790 | .br |
4163 | 744 | This is free software; see the source for copying conditions. There is NO | 791 | This is free software; see the source for copying conditions. There is NO |
4164 | 745 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 792 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
4165 | @@ -747,5 +794,6 @@ | |||
4166 | 747 | .\" | 794 | .\" |
4167 | 748 | .SH SEE ALSO | 795 | .SH SEE ALSO |
4168 | 749 | .BR init (8) | 796 | .BR init (8) |
4169 | 797 | .BR initctl (8) | ||
4170 | 750 | .BR sh (1) | 798 | .BR sh (1) |
4171 | 751 | .BR upstart-events (7) | 799 | .BR upstart-events (7) |
4172 | 752 | 800 | ||
4173 | === modified file 'init/man/init.8' | |||
4174 | --- init/man/init.8 2011-05-25 19:25:11 +0000 | |||
4175 | +++ init/man/init.8 2011-06-17 11:15:58 +0000 | |||
4176 | @@ -18,7 +18,7 @@ | |||
4177 | 18 | .B init | 18 | .B init |
4178 | 19 | are known as jobs and are defined by files in the | 19 | are known as jobs and are defined by files in the |
4179 | 20 | .I /etc/init | 20 | .I /etc/init |
4181 | 21 | directory, unless overridden (see below). See | 21 | directory. See |
4182 | 22 | .BR init (5) | 22 | .BR init (5) |
4183 | 23 | for more details on configuring Upstart. | 23 | for more details on configuring Upstart. |
4184 | 24 | .\" | 24 | .\" |
4185 | @@ -85,7 +85,7 @@ | |||
4186 | 85 | .\" | 85 | .\" |
4187 | 86 | .TP | 86 | .TP |
4188 | 87 | .B \-\-session | 87 | .B \-\-session |
4190 | 88 | Connect to the D-Bus session bus. This should only be used for testing. | 88 | Connect to the D\-Bus session bus. This should only be used for testing. |
4191 | 89 | .\" | 89 | .\" |
4192 | 90 | .TP | 90 | .TP |
4193 | 91 | .B \-\-startup-event \fIevent\fP | 91 | .B \-\-startup-event \fIevent\fP |
4194 | @@ -121,7 +121,7 @@ | |||
4195 | 121 | .RB < https://launchpad.net/upstart/+bugs > | 121 | .RB < https://launchpad.net/upstart/+bugs > |
4196 | 122 | .\" | 122 | .\" |
4197 | 123 | .SH COPYRIGHT | 123 | .SH COPYRIGHT |
4199 | 124 | Copyright \(co 2010, 2011 Canonical Ltd. | 124 | Copyright \(co 2009\-2011 Canonical Ltd. |
4200 | 125 | .br | 125 | .br |
4201 | 126 | This is free software; see the source for copying conditions. There is NO | 126 | This is free software; see the source for copying conditions. There is NO |
4202 | 127 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 127 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
4203 | @@ -136,6 +136,5 @@ | |||
4204 | 136 | .BR started (7) | 136 | .BR started (7) |
4205 | 137 | .BR stopping (7) | 137 | .BR stopping (7) |
4206 | 138 | .BR stopped (7) | 138 | .BR stopped (7) |
4207 | 139 | .BR stopped (7) | ||
4208 | 140 | .BR telinit (8) | 139 | .BR telinit (8) |
4209 | 141 | .BR upstart-events (7) | 140 | .BR upstart-events (7) |
4210 | 142 | 141 | ||
4211 | === modified file 'init/parse_job.c' | |||
4212 | --- init/parse_job.c 2011-05-25 19:25:11 +0000 | |||
4213 | +++ init/parse_job.c 2011-06-17 11:15:58 +0000 | |||
4214 | @@ -2,7 +2,7 @@ | |||
4215 | 2 | * | 2 | * |
4216 | 3 | * parse_job.c - job definition parsing | 3 | * parse_job.c - job definition parsing |
4217 | 4 | * | 4 | * |
4219 | 5 | * Copyright © 2010 Canonical Ltd. | 5 | * Copyright © 2010,2011 Canonical Ltd. |
4220 | 6 | * Author: Scott James Remnant <scott@netsplit.com>. | 6 | * Author: Scott James Remnant <scott@netsplit.com>. |
4221 | 7 | * | 7 | * |
4222 | 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
4223 | @@ -280,12 +280,12 @@ | |||
4224 | 280 | * of the returned job are freed, the returned job will also be | 280 | * of the returned job are freed, the returned job will also be |
4225 | 281 | * freed. | 281 | * freed. |
4226 | 282 | * | 282 | * |
4229 | 283 | * Returns: If @update is NULL, returns new JobClass structure on success, NULL on raised error. | 283 | * Returns: if @update is NULL, returns new JobClass structure on success, NULL on raised error. |
4230 | 284 | * If @update is not NULL, returns @update on success, or NULL on error. | 284 | * If @update is not NULL, returns @update or NULL on error. |
4231 | 285 | **/ | 285 | **/ |
4232 | 286 | JobClass * | 286 | JobClass * |
4233 | 287 | parse_job (const void *parent, | 287 | parse_job (const void *parent, |
4235 | 288 | Session * session, | 288 | Session *session, |
4236 | 289 | JobClass *update, | 289 | JobClass *update, |
4237 | 290 | const char *name, | 290 | const char *name, |
4238 | 291 | const char *file, | 291 | const char *file, |
4239 | @@ -304,11 +304,11 @@ | |||
4240 | 304 | nih_debug ("Reusing JobClass %s (%s)", | 304 | nih_debug ("Reusing JobClass %s (%s)", |
4241 | 305 | class->name, class->path); | 305 | class->name, class->path); |
4242 | 306 | } else { | 306 | } else { |
4244 | 307 | nih_debug ("Creating new JobClass %s", | 307 | nih_debug ("Creating new JobClass %s", |
4245 | 308 | name); | 308 | name); |
4249 | 309 | class = job_class_new (parent, name, session); | 309 | class = job_class_new (parent, name, session); |
4250 | 310 | if (! class) | 310 | if (! class) |
4251 | 311 | nih_return_system_error (NULL); | 311 | nih_return_system_error (NULL); |
4252 | 312 | } | 312 | } |
4253 | 313 | 313 | ||
4254 | 314 | if (nih_config_parse_file (file, len, pos, lineno, | 314 | if (nih_config_parse_file (file, len, pos, lineno, |
4255 | @@ -1225,7 +1225,7 @@ | |||
4256 | 1225 | * | 1225 | * |
4257 | 1226 | * Parse an env stanza from @file, extracting a single argument of the form | 1226 | * Parse an env stanza from @file, extracting a single argument of the form |
4258 | 1227 | * VAR or VAR=VALUE. These are stored in the env array, which is increased | 1227 | * VAR or VAR=VALUE. These are stored in the env array, which is increased |
4260 | 1228 | * in size to accomodate the new value. | 1228 | * in size to accommodate the new value. |
4261 | 1229 | * | 1229 | * |
4262 | 1230 | * Returns: zero on success, negative value on error. | 1230 | * Returns: zero on success, negative value on error. |
4263 | 1231 | **/ | 1231 | **/ |
4264 | @@ -1796,6 +1796,7 @@ | |||
4265 | 1796 | { | 1796 | { |
4266 | 1797 | size_t a_pos, a_lineno; | 1797 | size_t a_pos, a_lineno; |
4267 | 1798 | int ret = -1; | 1798 | int ret = -1; |
4268 | 1799 | char *endptr; | ||
4269 | 1799 | nih_local char *arg = NULL; | 1800 | nih_local char *arg = NULL; |
4270 | 1800 | 1801 | ||
4271 | 1801 | nih_assert (class != NULL); | 1802 | nih_assert (class != NULL); |
4272 | @@ -1813,7 +1814,6 @@ | |||
4273 | 1813 | 1814 | ||
4274 | 1814 | if (! strcmp (arg, "timeout")) { | 1815 | if (! strcmp (arg, "timeout")) { |
4275 | 1815 | nih_local char *timearg = NULL; | 1816 | nih_local char *timearg = NULL; |
4276 | 1816 | char *endptr; | ||
4277 | 1817 | 1817 | ||
4278 | 1818 | /* Update error position to the timeout value */ | 1818 | /* Update error position to the timeout value */ |
4279 | 1819 | *pos = a_pos; | 1819 | *pos = a_pos; |
4280 | @@ -1830,14 +1830,40 @@ | |||
4281 | 1830 | if (errno || *endptr || (class->kill_timeout < 0)) | 1830 | if (errno || *endptr || (class->kill_timeout < 0)) |
4282 | 1831 | nih_return_error (-1, PARSE_ILLEGAL_INTERVAL, | 1831 | nih_return_error (-1, PARSE_ILLEGAL_INTERVAL, |
4283 | 1832 | _(PARSE_ILLEGAL_INTERVAL_STR)); | 1832 | _(PARSE_ILLEGAL_INTERVAL_STR)); |
4287 | 1833 | 1833 | } else if (! strcmp (arg, "signal")) { | |
4288 | 1834 | ret = nih_config_skip_comment (file, len, &a_pos, &a_lineno); | 1834 | unsigned long status; |
4289 | 1835 | 1835 | nih_local char *sigarg = NULL; | |
4290 | 1836 | int signal; | ||
4291 | 1837 | |||
4292 | 1838 | /* Update error position to the exit status */ | ||
4293 | 1839 | *pos = a_pos; | ||
4294 | 1840 | if (lineno) | ||
4295 | 1841 | *lineno = a_lineno; | ||
4296 | 1842 | |||
4297 | 1843 | sigarg = nih_config_next_arg (NULL, file, len, &a_pos, | ||
4298 | 1844 | &a_lineno); | ||
4299 | 1845 | |||
4300 | 1846 | if (! sigarg) | ||
4301 | 1847 | goto finish; | ||
4302 | 1848 | |||
4303 | 1849 | signal = nih_signal_from_name (sigarg); | ||
4304 | 1850 | if (signal < 0) { | ||
4305 | 1851 | errno = 0; | ||
4306 | 1852 | status = strtoul (sigarg, &endptr, 10); | ||
4307 | 1853 | if (errno || *endptr || (status > INT_MAX)) | ||
4308 | 1854 | nih_return_error (-1, PARSE_ILLEGAL_SIGNAL, | ||
4309 | 1855 | _(PARSE_ILLEGAL_SIGNAL_STR)); | ||
4310 | 1856 | } | ||
4311 | 1857 | |||
4312 | 1858 | /* Set the signal */ | ||
4313 | 1859 | class->kill_signal = signal; | ||
4314 | 1836 | } else { | 1860 | } else { |
4315 | 1837 | nih_return_error (-1, NIH_CONFIG_UNKNOWN_STANZA, | 1861 | nih_return_error (-1, NIH_CONFIG_UNKNOWN_STANZA, |
4316 | 1838 | _(NIH_CONFIG_UNKNOWN_STANZA_STR)); | 1862 | _(NIH_CONFIG_UNKNOWN_STANZA_STR)); |
4317 | 1839 | } | 1863 | } |
4318 | 1840 | 1864 | ||
4319 | 1865 | ret = nih_config_skip_comment (file, len, &a_pos, &a_lineno); | ||
4320 | 1866 | |||
4321 | 1841 | finish: | 1867 | finish: |
4322 | 1842 | *pos = a_pos; | 1868 | *pos = a_pos; |
4323 | 1843 | if (lineno) | 1869 | if (lineno) |
4324 | @@ -2247,6 +2273,7 @@ | |||
4325 | 2247 | nih_local char *arg = NULL; | 2273 | nih_local char *arg = NULL; |
4326 | 2248 | char *endptr; | 2274 | char *endptr; |
4327 | 2249 | size_t a_pos, a_lineno; | 2275 | size_t a_pos, a_lineno; |
4328 | 2276 | int oom_adj; | ||
4329 | 2250 | int ret = -1; | 2277 | int ret = -1; |
4330 | 2251 | 2278 | ||
4331 | 2252 | nih_assert (class != NULL); | 2279 | nih_assert (class != NULL); |
4332 | @@ -2261,12 +2288,37 @@ | |||
4333 | 2261 | if (! arg) | 2288 | if (! arg) |
4334 | 2262 | goto finish; | 2289 | goto finish; |
4335 | 2263 | 2290 | ||
4338 | 2264 | if (! strcmp (arg, "never")) { | 2291 | if (! strcmp (arg, "score")) { |
4339 | 2265 | class->oom_adj = -17; | 2292 | nih_local char *scorearg = NULL; |
4340 | 2293 | |||
4341 | 2294 | /* Update error position to the score value */ | ||
4342 | 2295 | *pos = a_pos; | ||
4343 | 2296 | if (lineno) | ||
4344 | 2297 | *lineno = a_lineno; | ||
4345 | 2298 | |||
4346 | 2299 | scorearg = nih_config_next_arg (NULL, file, len, | ||
4347 | 2300 | &a_pos, &a_lineno); | ||
4348 | 2301 | if (! scorearg) | ||
4349 | 2302 | goto finish; | ||
4350 | 2303 | |||
4351 | 2304 | if (! strcmp (scorearg, "never")) { | ||
4352 | 2305 | class->oom_score_adj = -1000; | ||
4353 | 2306 | } else { | ||
4354 | 2307 | errno = 0; | ||
4355 | 2308 | class->oom_score_adj = (int)strtol (scorearg, &endptr, 10); | ||
4356 | 2309 | if (errno || *endptr || | ||
4357 | 2310 | (class->oom_score_adj < -1000) || | ||
4358 | 2311 | (class->oom_score_adj > 1000)) | ||
4359 | 2312 | nih_return_error (-1, PARSE_ILLEGAL_OOM, | ||
4360 | 2313 | _(PARSE_ILLEGAL_OOM_SCORE_STR)); | ||
4361 | 2314 | } | ||
4362 | 2315 | } else if (! strcmp (arg, "never")) { | ||
4363 | 2316 | class->oom_score_adj = -1000; | ||
4364 | 2266 | } else { | 2317 | } else { |
4365 | 2267 | errno = 0; | 2318 | errno = 0; |
4368 | 2268 | class->oom_adj = (int)strtol (arg, &endptr, 10); | 2319 | oom_adj = (int)strtol (arg, &endptr, 10); |
4369 | 2269 | if (errno || *endptr || (class->oom_adj < -17) || (class->oom_adj > 15)) | 2320 | class->oom_score_adj = (oom_adj * 1000) / ((oom_adj < 0) ? 17 : 15); |
4370 | 2321 | if (errno || *endptr || (oom_adj < -17) || (oom_adj > 15)) | ||
4371 | 2270 | nih_return_error (-1, PARSE_ILLEGAL_OOM, | 2322 | nih_return_error (-1, PARSE_ILLEGAL_OOM, |
4372 | 2271 | _(PARSE_ILLEGAL_OOM_STR)); | 2323 | _(PARSE_ILLEGAL_OOM_STR)); |
4373 | 2272 | } | 2324 | } |
4374 | 2273 | 2325 | ||
4375 | === modified file 'init/parse_job.h' | |||
4376 | --- init/parse_job.h 2011-05-25 19:25:11 +0000 | |||
4377 | +++ init/parse_job.h 2011-06-17 11:15:58 +0000 | |||
4378 | @@ -1,6 +1,6 @@ | |||
4379 | 1 | /* upstart | 1 | /* upstart |
4380 | 2 | * | 2 | * |
4382 | 3 | * Copyright © 2009, 2010 Canonical Ltd. | 3 | * Copyright © 2010 Canonical Ltd. |
4383 | 4 | * Author: Scott James Remnant <scott@netsplit.com>. | 4 | * Author: Scott James Remnant <scott@netsplit.com>. |
4384 | 5 | * | 5 | * |
4385 | 6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
4386 | 7 | 7 | ||
4387 | === modified file 'init/paths.h' | |||
4388 | --- init/paths.h 2011-05-25 19:25:11 +0000 | |||
4389 | +++ init/paths.h 2011-06-17 11:15:58 +0000 | |||
4390 | @@ -1,6 +1,6 @@ | |||
4391 | 1 | /* upstart | 1 | /* upstart |
4392 | 2 | * | 2 | * |
4394 | 3 | * Copyright © 2010 Canonical Ltd. | 3 | * Copyright © 2010-2011 Canonical Ltd. |
4395 | 4 | * Author: Scott James Remnant <scott@netsplit.com>. | 4 | * Author: Scott James Remnant <scott@netsplit.com>. |
4396 | 5 | * | 5 | * |
4397 | 6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
4398 | @@ -44,7 +44,6 @@ | |||
4399 | 44 | #define CONSOLE "/dev/console" | 44 | #define CONSOLE "/dev/console" |
4400 | 45 | #endif | 45 | #endif |
4401 | 46 | 46 | ||
4402 | 47 | |||
4403 | 48 | /** | 47 | /** |
4404 | 49 | * DEV_NULL: | 48 | * DEV_NULL: |
4405 | 50 | * | 49 | * |
4406 | @@ -57,25 +56,23 @@ | |||
4407 | 57 | 56 | ||
4408 | 58 | 57 | ||
4409 | 59 | /** | 58 | /** |
4411 | 60 | * DEFAULT_CONFFILE: | 59 | * CONFFILE: |
4412 | 61 | * | 60 | * |
4413 | 62 | * Init daemon configuration file. | 61 | * Init daemon configuration file. |
4414 | 63 | **/ | 62 | **/ |
4417 | 64 | #ifndef DEFAULT_CONFFILE | 63 | #ifndef CONFFILE |
4418 | 65 | #define DEFAULT_CONFFILE "/etc/init.conf" | 64 | #define CONFFILE "/etc/init.conf" |
4419 | 66 | #endif | 65 | #endif |
4420 | 67 | 66 | ||
4421 | 68 | |||
4422 | 69 | /** | 67 | /** |
4424 | 70 | * DEFAULT_CONFDIR: | 68 | * CONFDIR: |
4425 | 71 | * | 69 | * |
4427 | 72 | * Top-level directory of the system configuration files. | 70 | * Default top-level directory of the system configuration files. |
4428 | 73 | **/ | 71 | **/ |
4431 | 74 | #ifndef DEFAULT_CONFDIR | 72 | #ifndef CONFDIR |
4432 | 75 | #define DEFAULT_CONFDIR "/etc/init" | 73 | #define CONFDIR "/etc/init" |
4433 | 76 | #endif | 74 | #endif |
4434 | 77 | 75 | ||
4435 | 78 | |||
4436 | 79 | /** | 76 | /** |
4437 | 80 | * USERCONFDIR: | 77 | * USERCONFDIR: |
4438 | 81 | * | 78 | * |
4439 | @@ -90,7 +87,7 @@ | |||
4440 | 90 | * CONFDIR_ENV: | 87 | * CONFDIR_ENV: |
4441 | 91 | * | 88 | * |
4442 | 92 | * If this environment variable is set, read configuration files | 89 | * If this environment variable is set, read configuration files |
4444 | 93 | * from the location specified, rather than DEFAULT_CONFDIR. | 90 | * from the location specified, rather than CONFDIR. |
4445 | 94 | * | 91 | * |
4446 | 95 | * Value is expected to be the full path to an alternative job | 92 | * Value is expected to be the full path to an alternative job |
4447 | 96 | * configuration directory. | 93 | * configuration directory. |
4448 | @@ -110,7 +107,6 @@ | |||
4449 | 110 | #define SHELL "/bin/sh" | 107 | #define SHELL "/bin/sh" |
4450 | 111 | #endif | 108 | #endif |
4451 | 112 | 109 | ||
4452 | 113 | |||
4453 | 114 | /** | 110 | /** |
4454 | 115 | * SBINDIR: | 111 | * SBINDIR: |
4455 | 116 | * | 112 | * |
4456 | @@ -120,7 +116,6 @@ | |||
4457 | 120 | #define SBINDIR "/sbin" | 116 | #define SBINDIR "/sbin" |
4458 | 121 | #endif | 117 | #endif |
4459 | 122 | 118 | ||
4460 | 123 | |||
4461 | 124 | /** | 119 | /** |
4462 | 125 | * TELINIT: | 120 | * TELINIT: |
4463 | 126 | * | 121 | * |
4464 | @@ -131,13 +126,11 @@ | |||
4465 | 131 | #define TELINIT SBINDIR "/telinit" | 126 | #define TELINIT SBINDIR "/telinit" |
4466 | 132 | #endif | 127 | #endif |
4467 | 133 | 128 | ||
4468 | 134 | |||
4469 | 135 | /** | 129 | /** |
4470 | 136 | * File extension for standard configuration files. | 130 | * File extension for standard configuration files. |
4471 | 137 | **/ | 131 | **/ |
4472 | 138 | #define CONF_EXT_STD ".conf" | 132 | #define CONF_EXT_STD ".conf" |
4473 | 139 | 133 | ||
4474 | 140 | |||
4475 | 141 | /** | 134 | /** |
4476 | 142 | * File extension for override files. | 135 | * File extension for override files. |
4477 | 143 | * | 136 | * |
4478 | @@ -147,7 +140,6 @@ | |||
4479 | 147 | **/ | 140 | **/ |
4480 | 148 | #define CONF_EXT_OVERRIDE ".override" | 141 | #define CONF_EXT_OVERRIDE ".override" |
4481 | 149 | 142 | ||
4482 | 150 | |||
4483 | 151 | /** | 143 | /** |
4484 | 152 | * Determine if specified path extension representes a standard | 144 | * Determine if specified path extension representes a standard |
4485 | 153 | * configuration file. | 145 | * configuration file. |
4486 | @@ -160,7 +152,6 @@ | |||
4487 | 160 | #define IS_CONF_EXT_STD(period) \ | 152 | #define IS_CONF_EXT_STD(period) \ |
4488 | 161 | (!strcmp (period, CONF_EXT_STD)) | 153 | (!strcmp (period, CONF_EXT_STD)) |
4489 | 162 | 154 | ||
4490 | 163 | |||
4491 | 164 | /** | 155 | /** |
4492 | 165 | * Determine if specified path extension representes an | 156 | * Determine if specified path extension representes an |
4493 | 166 | * override file. | 157 | * override file. |
4494 | @@ -173,7 +164,6 @@ | |||
4495 | 173 | #define IS_CONF_EXT_OVERRIDE(period) \ | 164 | #define IS_CONF_EXT_OVERRIDE(period) \ |
4496 | 174 | (!strcmp (period, CONF_EXT_OVERRIDE)) | 165 | (!strcmp (period, CONF_EXT_OVERRIDE)) |
4497 | 175 | 166 | ||
4498 | 176 | |||
4499 | 177 | /** | 167 | /** |
4500 | 178 | * Determine if specified filename has a valid configuration | 168 | * Determine if specified filename has a valid configuration |
4501 | 179 | * file name extension. | 169 | * file name extension. |
4502 | @@ -187,5 +177,4 @@ | |||
4503 | 187 | (IS_CONF_EXT_STD(period) || \ | 177 | (IS_CONF_EXT_STD(period) || \ |
4504 | 188 | IS_CONF_EXT_OVERRIDE(period)) | 178 | IS_CONF_EXT_OVERRIDE(period)) |
4505 | 189 | 179 | ||
4506 | 190 | |||
4507 | 191 | #endif /* INIT_PATHS_H */ | 180 | #endif /* INIT_PATHS_H */ |
4508 | 192 | 181 | ||
4509 | === modified file 'init/session.c' | |||
4510 | --- init/session.c 2011-05-25 19:25:11 +0000 | |||
4511 | +++ init/session.c 2011-06-17 11:15:58 +0000 | |||
4512 | @@ -2,7 +2,7 @@ | |||
4513 | 2 | * | 2 | * |
4514 | 3 | * session.c - session segregation | 3 | * session.c - session segregation |
4515 | 4 | * | 4 | * |
4517 | 5 | * Copyright © 2010 Canonical Ltd. | 5 | * Copyright © 2010,2011 Canonical Ltd. |
4518 | 6 | * Author: Scott James Remnant <scott@netsplit.com>. | 6 | * Author: Scott James Remnant <scott@netsplit.com>. |
4519 | 7 | * | 7 | * |
4520 | 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
4521 | 9 | 9 | ||
4522 | === modified file 'init/session.h' | |||
4523 | --- init/session.h 2011-05-25 19:25:11 +0000 | |||
4524 | +++ init/session.h 2011-06-17 11:15:58 +0000 | |||
4525 | @@ -1,6 +1,6 @@ | |||
4526 | 1 | /* upstart | 1 | /* upstart |
4527 | 2 | * | 2 | * |
4529 | 3 | * Copyright © 2010 Canonical Ltd. | 3 | * Copyright © 2010,2011 Canonical Ltd. |
4530 | 4 | * Author: Scott James Remnant <scott@netsplit.com>. | 4 | * Author: Scott James Remnant <scott@netsplit.com>. |
4531 | 5 | * | 5 | * |
4532 | 6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
4533 | 7 | 7 | ||
4534 | === modified file 'init/system.c' | |||
4535 | --- init/system.c 2010-04-27 19:52:43 +0000 | |||
4536 | +++ init/system.c 2011-06-17 11:15:58 +0000 | |||
4537 | @@ -48,27 +48,21 @@ | |||
4538 | 48 | /** | 48 | /** |
4539 | 49 | * system_kill: | 49 | * system_kill: |
4540 | 50 | * @pid: process id of process, | 50 | * @pid: process id of process, |
4548 | 51 | * @force: force the death. | 51 | * @signal: signal to send. |
4549 | 52 | * | 52 | * |
4550 | 53 | * Kill all processes in the same process group as @pid, which may not | 53 | * Send all processes in the same process group as @pid, which may not |
4551 | 54 | * necessarily be the group leader. | 54 | * necessarily be the group leader the @signal. |
4545 | 55 | * | ||
4546 | 56 | * When @force is FALSE, the TERM signal is sent; when it is TRUE, KILL | ||
4547 | 57 | * is sent instead. | ||
4552 | 58 | * | 55 | * |
4553 | 59 | * Returns: zero on success, negative value on raised error. | 56 | * Returns: zero on success, negative value on raised error. |
4554 | 60 | **/ | 57 | **/ |
4555 | 61 | int | 58 | int |
4556 | 62 | system_kill (pid_t pid, | 59 | system_kill (pid_t pid, |
4558 | 63 | int force) | 60 | int signal) |
4559 | 64 | { | 61 | { |
4560 | 65 | int signal; | ||
4561 | 66 | pid_t pgid; | 62 | pid_t pgid; |
4562 | 67 | 63 | ||
4563 | 68 | nih_assert (pid > 0); | 64 | nih_assert (pid > 0); |
4564 | 69 | 65 | ||
4565 | 70 | signal = (force ? SIGKILL : SIGTERM); | ||
4566 | 71 | |||
4567 | 72 | pgid = getpgid (pid); | 66 | pgid = getpgid (pid); |
4568 | 73 | 67 | ||
4569 | 74 | if (kill (pgid > 0 ? -pgid : pid, signal) < 0) | 68 | if (kill (pgid > 0 ? -pgid : pid, signal) < 0) |
4570 | 75 | 69 | ||
4571 | === modified file 'init/system.h' | |||
4572 | --- init/system.h 2010-04-27 19:52:43 +0000 | |||
4573 | +++ init/system.h 2011-06-17 11:15:58 +0000 | |||
4574 | @@ -29,7 +29,7 @@ | |||
4575 | 29 | 29 | ||
4576 | 30 | NIH_BEGIN_EXTERN | 30 | NIH_BEGIN_EXTERN |
4577 | 31 | 31 | ||
4579 | 32 | int system_kill (pid_t pid, int force) | 32 | int system_kill (pid_t pid, int signal) |
4580 | 33 | __attribute__ ((warn_unused_result)); | 33 | __attribute__ ((warn_unused_result)); |
4581 | 34 | 34 | ||
4582 | 35 | int system_setup_console (ConsoleType type, int reset) | 35 | int system_setup_console (ConsoleType type, int reset) |
4583 | 36 | 36 | ||
4584 | === modified file 'init/tests/test_conf.c' | |||
4585 | --- init/tests/test_conf.c 2011-05-25 19:25:11 +0000 | |||
4586 | +++ init/tests/test_conf.c 2011-06-17 11:15:58 +0000 | |||
4587 | @@ -1052,6 +1052,82 @@ | |||
4588 | 1052 | nih_free (source); | 1052 | nih_free (source); |
4589 | 1053 | 1053 | ||
4590 | 1054 | 1054 | ||
4591 | 1055 | /* Check that a file without the ".conf" extension is ignored. | ||
4592 | 1056 | */ | ||
4593 | 1057 | TEST_FEATURE ("without .conf extension only"); | ||
4594 | 1058 | |||
4595 | 1059 | TEST_FILENAME (dirname); | ||
4596 | 1060 | mkdir (dirname, 0755); | ||
4597 | 1061 | |||
4598 | 1062 | source = conf_source_new (NULL, dirname, CONF_JOB_DIR); | ||
4599 | 1063 | ret = conf_source_reload (source); | ||
4600 | 1064 | |||
4601 | 1065 | TEST_EQ (ret, 0); | ||
4602 | 1066 | TEST_HASH_EMPTY (source->files); | ||
4603 | 1067 | TEST_HASH_EMPTY (job_classes); | ||
4604 | 1068 | |||
4605 | 1069 | strcpy (filename, dirname); | ||
4606 | 1070 | strcat (filename, "/munchkin"); | ||
4607 | 1071 | |||
4608 | 1072 | f = fopen (filename, "w"); | ||
4609 | 1073 | fprintf (f, "exec echo\n"); | ||
4610 | 1074 | fclose (f); | ||
4611 | 1075 | |||
4612 | 1076 | nfds = 0; | ||
4613 | 1077 | FD_ZERO (&readfds); | ||
4614 | 1078 | FD_ZERO (&writefds); | ||
4615 | 1079 | FD_ZERO (&exceptfds); | ||
4616 | 1080 | |||
4617 | 1081 | nih_io_select_fds (&nfds, &readfds, &writefds, &exceptfds); | ||
4618 | 1082 | nih_io_handle_fds (&readfds, &writefds, &exceptfds); | ||
4619 | 1083 | |||
4620 | 1084 | TEST_HASH_EMPTY (source->files); | ||
4621 | 1085 | TEST_HASH_EMPTY (job_classes); | ||
4622 | 1086 | |||
4623 | 1087 | nih_free (source); | ||
4624 | 1088 | |||
4625 | 1089 | unlink (filename); | ||
4626 | 1090 | rmdir (dirname); | ||
4627 | 1091 | |||
4628 | 1092 | |||
4629 | 1093 | /* Check that a file named just ".conf" is ignored. | ||
4630 | 1094 | */ | ||
4631 | 1095 | TEST_FEATURE ("with literal .conf file"); | ||
4632 | 1096 | |||
4633 | 1097 | TEST_FILENAME (dirname); | ||
4634 | 1098 | mkdir (dirname, 0755); | ||
4635 | 1099 | |||
4636 | 1100 | source = conf_source_new (NULL, dirname, CONF_JOB_DIR); | ||
4637 | 1101 | ret = conf_source_reload (source); | ||
4638 | 1102 | |||
4639 | 1103 | TEST_EQ (ret, 0); | ||
4640 | 1104 | TEST_HASH_EMPTY (source->files); | ||
4641 | 1105 | TEST_HASH_EMPTY (job_classes); | ||
4642 | 1106 | |||
4643 | 1107 | strcpy (filename, dirname); | ||
4644 | 1108 | strcat (filename, "/.conf"); | ||
4645 | 1109 | |||
4646 | 1110 | f = fopen (filename, "w"); | ||
4647 | 1111 | fprintf (f, "exec echo\n"); | ||
4648 | 1112 | fclose (f); | ||
4649 | 1113 | |||
4650 | 1114 | nfds = 0; | ||
4651 | 1115 | FD_ZERO (&readfds); | ||
4652 | 1116 | FD_ZERO (&writefds); | ||
4653 | 1117 | FD_ZERO (&exceptfds); | ||
4654 | 1118 | |||
4655 | 1119 | nih_io_select_fds (&nfds, &readfds, &writefds, &exceptfds); | ||
4656 | 1120 | nih_io_handle_fds (&readfds, &writefds, &exceptfds); | ||
4657 | 1121 | |||
4658 | 1122 | TEST_HASH_EMPTY (source->files); | ||
4659 | 1123 | TEST_HASH_EMPTY (job_classes); | ||
4660 | 1124 | |||
4661 | 1125 | nih_free (source); | ||
4662 | 1126 | |||
4663 | 1127 | unlink (filename); | ||
4664 | 1128 | rmdir (dirname); | ||
4665 | 1129 | |||
4666 | 1130 | |||
4667 | 1055 | /* Consume all available inotify instances so that the following | 1131 | /* Consume all available inotify instances so that the following |
4668 | 1056 | * tests run without inotify. | 1132 | * tests run without inotify. |
4669 | 1057 | */ | 1133 | */ |
4670 | @@ -1508,6 +1584,76 @@ | |||
4671 | 1508 | nih_free (source); | 1584 | nih_free (source); |
4672 | 1509 | 1585 | ||
4673 | 1510 | 1586 | ||
4674 | 1587 | /* Check that a file without the ".conf" extension is ignored | ||
4675 | 1588 | * when it exists at reload time. | ||
4676 | 1589 | */ | ||
4677 | 1590 | TEST_FEATURE ("without .conf extension only"); | ||
4678 | 1591 | |||
4679 | 1592 | TEST_FILENAME (dirname); | ||
4680 | 1593 | mkdir (dirname, 0755); | ||
4681 | 1594 | |||
4682 | 1595 | source = conf_source_new (NULL, dirname, CONF_JOB_DIR); | ||
4683 | 1596 | ret = conf_source_reload (source); | ||
4684 | 1597 | |||
4685 | 1598 | TEST_EQ (ret, 0); | ||
4686 | 1599 | TEST_HASH_EMPTY (source->files); | ||
4687 | 1600 | TEST_HASH_EMPTY (job_classes); | ||
4688 | 1601 | |||
4689 | 1602 | strcpy (filename, dirname); | ||
4690 | 1603 | strcat (filename, "/munchkin"); | ||
4691 | 1604 | |||
4692 | 1605 | f = fopen (filename, "w"); | ||
4693 | 1606 | fprintf (f, "exec echo\n"); | ||
4694 | 1607 | fclose (f); | ||
4695 | 1608 | |||
4696 | 1609 | ret = conf_source_reload (source); | ||
4697 | 1610 | |||
4698 | 1611 | TEST_EQ (ret, 0); | ||
4699 | 1612 | |||
4700 | 1613 | TEST_HASH_EMPTY (source->files); | ||
4701 | 1614 | TEST_HASH_EMPTY (job_classes); | ||
4702 | 1615 | |||
4703 | 1616 | nih_free (source); | ||
4704 | 1617 | |||
4705 | 1618 | unlink (filename); | ||
4706 | 1619 | rmdir (dirname); | ||
4707 | 1620 | |||
4708 | 1621 | |||
4709 | 1622 | /* Check that a file named just ".conf" is ignored when it exists | ||
4710 | 1623 | * at reload time. | ||
4711 | 1624 | */ | ||
4712 | 1625 | TEST_FEATURE ("with literal .conf file"); | ||
4713 | 1626 | |||
4714 | 1627 | TEST_FILENAME (dirname); | ||
4715 | 1628 | mkdir (dirname, 0755); | ||
4716 | 1629 | |||
4717 | 1630 | source = conf_source_new (NULL, dirname, CONF_JOB_DIR); | ||
4718 | 1631 | ret = conf_source_reload (source); | ||
4719 | 1632 | |||
4720 | 1633 | TEST_EQ (ret, 0); | ||
4721 | 1634 | TEST_HASH_EMPTY (source->files); | ||
4722 | 1635 | TEST_HASH_EMPTY (job_classes); | ||
4723 | 1636 | |||
4724 | 1637 | strcpy (filename, dirname); | ||
4725 | 1638 | strcat (filename, "/.conf"); | ||
4726 | 1639 | |||
4727 | 1640 | f = fopen (filename, "w"); | ||
4728 | 1641 | fprintf (f, "exec echo\n"); | ||
4729 | 1642 | fclose (f); | ||
4730 | 1643 | |||
4731 | 1644 | ret = conf_source_reload (source); | ||
4732 | 1645 | |||
4733 | 1646 | TEST_EQ (ret, 0); | ||
4734 | 1647 | |||
4735 | 1648 | TEST_HASH_EMPTY (source->files); | ||
4736 | 1649 | TEST_HASH_EMPTY (job_classes); | ||
4737 | 1650 | |||
4738 | 1651 | nih_free (source); | ||
4739 | 1652 | |||
4740 | 1653 | unlink (filename); | ||
4741 | 1654 | rmdir (dirname); | ||
4742 | 1655 | |||
4743 | 1656 | |||
4744 | 1511 | nih_log_set_priority (NIH_LOG_MESSAGE); | 1657 | nih_log_set_priority (NIH_LOG_MESSAGE); |
4745 | 1512 | 1658 | ||
4746 | 1513 | /* Release consumed instances */ | 1659 | /* Release consumed instances */ |
4747 | 1514 | 1660 | ||
4748 | === modified file 'init/tests/test_control.c' | |||
4749 | --- init/tests/test_control.c 2011-05-25 19:25:11 +0000 | |||
4750 | +++ init/tests/test_control.c 2011-06-17 11:15:58 +0000 | |||
4751 | @@ -1617,44 +1617,6 @@ | |||
4752 | 1617 | dbus_message_unref (method); | 1617 | dbus_message_unref (method); |
4753 | 1618 | 1618 | ||
4754 | 1619 | 1619 | ||
4755 | 1620 | /* Check that if an entry in the environment list has an invalid name, | ||
4756 | 1621 | * an error is returned immediately. | ||
4757 | 1622 | */ | ||
4758 | 1623 | TEST_FEATURE ("with invalid name in environment list"); | ||
4759 | 1624 | method = dbus_message_new_method_call ( | ||
4760 | 1625 | dbus_bus_get_unique_name (conn), | ||
4761 | 1626 | DBUS_PATH_UPSTART, | ||
4762 | 1627 | DBUS_INTERFACE_UPSTART, | ||
4763 | 1628 | "EmitEvent"); | ||
4764 | 1629 | |||
4765 | 1630 | dbus_connection_send (client_conn, method, &serial); | ||
4766 | 1631 | dbus_connection_flush (client_conn); | ||
4767 | 1632 | dbus_message_unref (method); | ||
4768 | 1633 | |||
4769 | 1634 | TEST_DBUS_MESSAGE (conn, method); | ||
4770 | 1635 | assert (dbus_message_get_serial (method) == serial); | ||
4771 | 1636 | |||
4772 | 1637 | message = nih_new (NULL, NihDBusMessage); | ||
4773 | 1638 | message->connection = conn; | ||
4774 | 1639 | message->message = method; | ||
4775 | 1640 | |||
4776 | 1641 | env = nih_str_array_new (message); | ||
4777 | 1642 | assert (nih_str_array_add (&env, message, NULL, "FOO BAR=BAZ")); | ||
4778 | 1643 | |||
4779 | 1644 | ret = control_emit_event (NULL, message, "test", env, TRUE); | ||
4780 | 1645 | |||
4781 | 1646 | TEST_LT (ret, 0); | ||
4782 | 1647 | |||
4783 | 1648 | dbus_error = (NihDBusError *)nih_error_get (); | ||
4784 | 1649 | TEST_ALLOC_SIZE (dbus_error, sizeof (NihDBusError)); | ||
4785 | 1650 | TEST_EQ (dbus_error->number, NIH_DBUS_ERROR); | ||
4786 | 1651 | TEST_EQ_STR (dbus_error->name, DBUS_ERROR_INVALID_ARGS); | ||
4787 | 1652 | nih_free (dbus_error); | ||
4788 | 1653 | |||
4789 | 1654 | nih_free (message); | ||
4790 | 1655 | dbus_message_unref (method); | ||
4791 | 1656 | |||
4792 | 1657 | |||
4793 | 1658 | TEST_DBUS_CLOSE (conn); | 1620 | TEST_DBUS_CLOSE (conn); |
4794 | 1659 | TEST_DBUS_CLOSE (client_conn); | 1621 | TEST_DBUS_CLOSE (client_conn); |
4795 | 1660 | TEST_DBUS_END (dbus_pid); | 1622 | TEST_DBUS_END (dbus_pid); |
4796 | 1661 | 1623 | ||
4797 | === modified file 'init/tests/test_environ.c' | |||
4798 | --- init/tests/test_environ.c 2011-05-25 19:25:11 +0000 | |||
4799 | +++ init/tests/test_environ.c 2011-06-17 11:15:58 +0000 | |||
4800 | @@ -904,83 +904,6 @@ | |||
4801 | 904 | 904 | ||
4802 | 905 | 905 | ||
4803 | 906 | void | 906 | void |
4804 | 907 | test_valid (void) | ||
4805 | 908 | { | ||
4806 | 909 | int valid; | ||
4807 | 910 | |||
4808 | 911 | TEST_FUNCTION ("environ_valid"); | ||
4809 | 912 | |||
4810 | 913 | /* Check that an all-uppercase key is valid. */ | ||
4811 | 914 | TEST_FEATURE ("with uppercase key"); | ||
4812 | 915 | valid = environ_valid ("FOO", 3); | ||
4813 | 916 | |||
4814 | 917 | TEST_TRUE (valid); | ||
4815 | 918 | |||
4816 | 919 | |||
4817 | 920 | /* Check that an all-lowercase key is valid. */ | ||
4818 | 921 | TEST_FEATURE ("with lowercase key"); | ||
4819 | 922 | valid = environ_valid ("foo", 3); | ||
4820 | 923 | |||
4821 | 924 | TEST_TRUE (valid); | ||
4822 | 925 | |||
4823 | 926 | |||
4824 | 927 | /* Check that an all-alphanumeric key is valid. */ | ||
4825 | 928 | TEST_FEATURE ("with alphanumeric key"); | ||
4826 | 929 | valid = environ_valid ("Foo45", 5); | ||
4827 | 930 | |||
4828 | 931 | TEST_TRUE (valid); | ||
4829 | 932 | |||
4830 | 933 | |||
4831 | 934 | /* Check that an underscores in the key are valid. */ | ||
4832 | 935 | TEST_FEATURE ("with underscores in key"); | ||
4833 | 936 | valid = environ_valid ("FOO_45", 6); | ||
4834 | 937 | |||
4835 | 938 | TEST_TRUE (valid); | ||
4836 | 939 | |||
4837 | 940 | |||
4838 | 941 | /* Check that a key may begin with an underscore. */ | ||
4839 | 942 | TEST_FEATURE ("with initial underscore"); | ||
4840 | 943 | valid = environ_valid ("_FOO", 4); | ||
4841 | 944 | |||
4842 | 945 | TEST_TRUE (valid); | ||
4843 | 946 | |||
4844 | 947 | |||
4845 | 948 | /* Check that a key may not begin with a number. */ | ||
4846 | 949 | TEST_FEATURE ("with initial number"); | ||
4847 | 950 | valid = environ_valid ("9FOO", 4); | ||
4848 | 951 | |||
4849 | 952 | TEST_FALSE (valid); | ||
4850 | 953 | |||
4851 | 954 | |||
4852 | 955 | /* Check that a key may not begin with any other character. */ | ||
4853 | 956 | TEST_FEATURE ("with initial dash"); | ||
4854 | 957 | valid = environ_valid ("-FOO", 4); | ||
4855 | 958 | |||
4856 | 959 | TEST_FALSE (valid); | ||
4857 | 960 | |||
4858 | 961 | |||
4859 | 962 | /* Check that a key may not contain dashes. */ | ||
4860 | 963 | TEST_FEATURE ("with dash"); | ||
4861 | 964 | valid = environ_valid ("FOO-BAR", 7); | ||
4862 | 965 | |||
4863 | 966 | TEST_FALSE (valid); | ||
4864 | 967 | |||
4865 | 968 | |||
4866 | 969 | /* Check that a key may not contain spaces. */ | ||
4867 | 970 | TEST_FEATURE ("with space"); | ||
4868 | 971 | valid = environ_valid ("FOO BAR", 7); | ||
4869 | 972 | |||
4870 | 973 | TEST_FALSE (valid); | ||
4871 | 974 | |||
4872 | 975 | |||
4873 | 976 | /* Check that the length is honoured. */ | ||
4874 | 977 | TEST_FEATURE ("with longer string then key"); | ||
4875 | 978 | valid = environ_valid ("FOO BAR", 3); | ||
4876 | 979 | |||
4877 | 980 | TEST_TRUE (valid); | ||
4878 | 981 | } | ||
4879 | 982 | |||
4880 | 983 | void | ||
4881 | 984 | test_all_valid (void) | 907 | test_all_valid (void) |
4882 | 985 | { | 908 | { |
4883 | 986 | char **env; | 909 | char **env; |
4884 | @@ -1026,22 +949,6 @@ | |||
4885 | 1026 | TEST_FALSE (valid); | 949 | TEST_FALSE (valid); |
4886 | 1027 | 950 | ||
4887 | 1028 | nih_free (env); | 951 | nih_free (env); |
4888 | 1029 | |||
4889 | 1030 | |||
4890 | 1031 | /* Check that an entry with an invalid key name means the table | ||
4891 | 1032 | * is also not valid. | ||
4892 | 1033 | */ | ||
4893 | 1034 | TEST_FEATURE ("with invalid key"); | ||
4894 | 1035 | env = nih_str_array_new (NULL); | ||
4895 | 1036 | assert (nih_str_array_add (&env, NULL, NULL, "FOO=BAR")); | ||
4896 | 1037 | assert (nih_str_array_add (&env, NULL, NULL, "BAR BEE=FOO")); | ||
4897 | 1038 | assert (nih_str_array_add (&env, NULL, NULL, "WIBBLE=woo")); | ||
4898 | 1039 | |||
4899 | 1040 | valid = environ_all_valid (env); | ||
4900 | 1041 | |||
4901 | 1042 | TEST_FALSE (valid); | ||
4902 | 1043 | |||
4903 | 1044 | nih_free (env); | ||
4904 | 1045 | } | 952 | } |
4905 | 1046 | 953 | ||
4906 | 1047 | 954 | ||
4907 | @@ -1648,19 +1555,6 @@ | |||
4908 | 1648 | nih_free (error); | 1555 | nih_free (error); |
4909 | 1649 | 1556 | ||
4910 | 1650 | 1557 | ||
4911 | 1651 | /* Check that attempting to expand an illegal variable name results in | ||
4912 | 1652 | * an error being raised. | ||
4913 | 1653 | */ | ||
4914 | 1654 | TEST_FEATURE ("with expansion of illegal variable"); | ||
4915 | 1655 | str = environ_expand (NULL, "this is a ${WIB WOB} test", env); | ||
4916 | 1656 | |||
4917 | 1657 | TEST_EQ_P (str, NULL); | ||
4918 | 1658 | |||
4919 | 1659 | error = nih_error_get (); | ||
4920 | 1660 | TEST_EQ (error->number, ENVIRON_ILLEGAL_PARAM); | ||
4921 | 1661 | nih_free (error); | ||
4922 | 1662 | |||
4923 | 1663 | |||
4924 | 1664 | /* Check that inventing a new operator results in an error | 1558 | /* Check that inventing a new operator results in an error |
4925 | 1665 | * being raised. | 1559 | * being raised. |
4926 | 1666 | */ | 1560 | */ |
4927 | @@ -1701,7 +1595,6 @@ | |||
4928 | 1701 | test_lookup (); | 1595 | test_lookup (); |
4929 | 1702 | test_get (); | 1596 | test_get (); |
4930 | 1703 | test_getn (); | 1597 | test_getn (); |
4931 | 1704 | test_valid (); | ||
4932 | 1705 | test_all_valid (); | 1598 | test_all_valid (); |
4933 | 1706 | test_expand (); | 1599 | test_expand (); |
4934 | 1707 | 1600 | ||
4935 | 1708 | 1601 | ||
4936 | === modified file 'init/tests/test_job_class.c' | |||
4937 | --- init/tests/test_job_class.c 2011-05-25 19:25:11 +0000 | |||
4938 | +++ init/tests/test_job_class.c 2011-06-17 11:15:58 +0000 | |||
4939 | @@ -119,6 +119,7 @@ | |||
4940 | 119 | TEST_EQ (class->task, FALSE); | 119 | TEST_EQ (class->task, FALSE); |
4941 | 120 | 120 | ||
4942 | 121 | TEST_EQ (class->kill_timeout, 5); | 121 | TEST_EQ (class->kill_timeout, 5); |
4943 | 122 | TEST_EQ (class->kill_signal, SIGTERM); | ||
4944 | 122 | 123 | ||
4945 | 123 | TEST_EQ (class->respawn, FALSE); | 124 | TEST_EQ (class->respawn, FALSE); |
4946 | 124 | TEST_EQ (class->respawn_limit, 10); | 125 | TEST_EQ (class->respawn_limit, 10); |
4947 | @@ -131,7 +132,7 @@ | |||
4948 | 131 | 132 | ||
4949 | 132 | TEST_EQ (class->umask, 022); | 133 | TEST_EQ (class->umask, 022); |
4950 | 133 | TEST_EQ (class->nice, 0); | 134 | TEST_EQ (class->nice, 0); |
4952 | 134 | TEST_EQ (class->oom_adj, 0); | 135 | TEST_EQ (class->oom_score_adj, 0); |
4953 | 135 | 136 | ||
4954 | 136 | for (i = 0; i < RLIMIT_NLIMITS; i++) | 137 | for (i = 0; i < RLIMIT_NLIMITS; i++) |
4955 | 137 | TEST_EQ_P (class->limits[i], NULL); | 138 | TEST_EQ_P (class->limits[i], NULL); |
4956 | @@ -1942,7 +1943,7 @@ | |||
4957 | 1942 | TEST_FREE_TAG (message); | 1943 | TEST_FREE_TAG (message); |
4958 | 1943 | 1944 | ||
4959 | 1944 | env = nih_str_array_new (message); | 1945 | env = nih_str_array_new (message); |
4961 | 1945 | assert (nih_str_array_add (&env, message, NULL, "FOO BAR=wibble")); | 1946 | assert (nih_str_array_add (&env, message, NULL, "FOO")); |
4962 | 1946 | 1947 | ||
4963 | 1947 | ret = job_class_start (class, message, env, TRUE); | 1948 | ret = job_class_start (class, message, env, TRUE); |
4964 | 1948 | 1949 | ||
4965 | @@ -2378,7 +2379,7 @@ | |||
4966 | 2378 | TEST_FREE_TAG (message); | 2379 | TEST_FREE_TAG (message); |
4967 | 2379 | 2380 | ||
4968 | 2380 | env = nih_str_array_new (message); | 2381 | env = nih_str_array_new (message); |
4970 | 2381 | assert (nih_str_array_add (&env, message, NULL, "FOO BAR=wibble")); | 2382 | assert (nih_str_array_add (&env, message, NULL, "FOO")); |
4971 | 2382 | 2383 | ||
4972 | 2383 | ret = job_class_stop (class, message, env, TRUE); | 2384 | ret = job_class_stop (class, message, env, TRUE); |
4973 | 2384 | 2385 | ||
4974 | @@ -2862,7 +2863,7 @@ | |||
4975 | 2862 | TEST_FREE_TAG (message); | 2863 | TEST_FREE_TAG (message); |
4976 | 2863 | 2864 | ||
4977 | 2864 | env = nih_str_array_new (message); | 2865 | env = nih_str_array_new (message); |
4979 | 2865 | assert (nih_str_array_add (&env, message, NULL, "FOO BAR=wibble")); | 2866 | assert (nih_str_array_add (&env, message, NULL, "FOO")); |
4980 | 2866 | 2867 | ||
4981 | 2867 | ret = job_class_restart (class, message, env, TRUE); | 2868 | ret = job_class_restart (class, message, env, TRUE); |
4982 | 2868 | 2869 | ||
4983 | 2869 | 2870 | ||
4984 | === modified file 'init/tests/test_job_process.c' | |||
4985 | --- init/tests/test_job_process.c 2011-05-25 19:25:11 +0000 | |||
4986 | +++ init/tests/test_job_process.c 2011-06-17 11:15:58 +0000 | |||
4987 | @@ -821,7 +821,7 @@ | |||
4988 | 821 | 821 | ||
4989 | 822 | class = job_class_new (NULL, "test", NULL); | 822 | class = job_class_new (NULL, "test", NULL); |
4990 | 823 | 823 | ||
4992 | 824 | pid = job_process_spawn (class, args, NULL, FALSE); | 824 | pid = job_process_spawn (class, args, NULL, FALSE, -1); |
4993 | 825 | TEST_GT (pid, 0); | 825 | TEST_GT (pid, 0); |
4994 | 826 | 826 | ||
4995 | 827 | waitpid (pid, NULL, 0); | 827 | waitpid (pid, NULL, 0); |
4996 | @@ -859,7 +859,7 @@ | |||
4997 | 859 | class = job_class_new (NULL, "test", NULL); | 859 | class = job_class_new (NULL, "test", NULL); |
4998 | 860 | class->console = CONSOLE_NONE; | 860 | class->console = CONSOLE_NONE; |
4999 | 861 | 861 | ||
5000 | 862 | pid = job_process_spawn (class, args, NULL, FALSE); |
The diff has been truncated for viewing.