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