2007-10-08 Scott James Remnant <email address hidden>
* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.16.1 since this
version of gettext is needed for compatibility with Automake 1.10
* HACKING: Bump version in the docs too.
* compat/sysv/Makefile.am: Only create symlinks if COMPAT_SYSV is
enabled, otherwise we leave dangling ones.
* Makefile.am (ACLOCAL_AMFLAGS): Specify that aclocal install
ordinarily system-wide macros into m4 (libtool.m4, specifically).
This makes it easier for packagers to modify autoconfery since
aclocal is no longer a destructive event.
* configure.ac (AM_INIT_AUTOMAKE): Increase Automake requirement to
1.10 to ensure we have aclocal --instal
* HACKING: Increase Automake version in the docs.
2007-09-21 Scott James Remnant <email address hidden>
* init/job.c (job_detect_stalled, job_free_deleted): Call job_init()
on entry, since we don't have a Job pointer passed to us, we need
to make sure we don't dereference a potentially NULL list.
2007-06-22 Scott James Remnant <email address hidden>
* init/tests/test_process.c (test_kill): Make sure that all processes
in the process group are killed, rather than just the lone one.
* init/process.c (process_kill): Send the signal to all processes
in the same process group as the pid.
* init/tests/test_job.c (test_change_state, test_kill_process):
After spawning a child, call setpgid() to put it in its own process
group otherwise we could end up TERMing ourselves.
2007-06-12 Scott James Remnant <email address hidden>
* compat/sysv/shutdown.c: Use nih pidfile functions since they're
more reliable than doing it ourselves.
2007-06-04 Scott James Remnant <email address hidden>
* upstart/Makefile.am (libupstart_la_LIBADD): Add $(LTLIBINTL)
* init/Makefile.am (init_LDADD): Reorder and add $(LTLIBINTL)
* util/Makefile.am (initctl_LDADD): Reorder and add $(LTLIBINTL)
* compat/sysv/Makefile.am (reboot_LDADD): Reorder and add $(LTLIBINTL)
(runlevel_LDADD): add $(LTLIBINTL)
(shutdown_LDADD): Reorder and add $(LTLIBINTL)
(telinit_LDADD): Reorder and add $(LTLIBINTL)
* logd/Makefile.am (logd_LDADD): Add $(LTLIBINTL)
2007-06-03 Scott James Remnant <email address hidden>
* init/tests/test_job.c (test_run_process): Add a test case for a
crasher when the event has no arguments.
* init/job.c (job_run_process): Fix the bug, we need to check the
arguments before trying to append them.
2007-05-27 Scott James Remnant <email address hidden>
* init/cfgfile.h (CFG_DIR): Drop this define, since it's in paths.h
(CfgDirectory):
2007-05-18 Scott James Remnant <email address hidden>
* init/event.c (event_copy): Use nih_str_array_copy here, to make the
code somewhat simpler.
(event_finished): Copy the arguments and environment from the old
event, rather than stealing and reparenting.
* init/job.c (job_copy): Use nih_str_array_copy here too.
(job_run_process): Use nih_str_array_append to add the arguments from
the emission onto the command run.
* TODO: Update.
2007-04-24 Scott James Remnant <email address hidden>
* configure.ac: Add AM_PROG_CC_C_O since we use per-target flags
for one of the test cases.
2007-03-16 Scott James Remnant <email address hidden>
* upstart/message.c (upstart_message_newv): Add va_end to match
va_copy because the standard says so.
* upstart/wire.c (upstart_push_packv, upstart_pop_packv): Add
va_end here as well.
2007-03-13 Scott James Remnant <email address hidden>
* init/main.c: Wait until we've closed inherited standard file
descriptors and opened the console instead before trying to open the
control socket; otherwise we end up closing it by accident if we
weren't opened with sufficient descriptors in the first place.
Also wait until we've set up the logger before trying to parse the
configuration. In fact both of these things need to be pretty low
down the main() function.
* init/tests/test_job.c (test_run_process): Skip /dev/fd test cases
if that's not available.
* init/tests/test_control.c (test_log_priority): Make sure we know
that the message has been sent before calling the watcher.
* init/cfgfile.c (cfg_watch_dir): We get ENOSYS for missing inotify
support, not EOPNOTSUPP.
* init/tests/test_cfgfile.c (test_watch_dir): Actually make the
directory tree before testing for inotify, since we use the same
tree there too.
* util/initctl.c (job_info_output): Restructure so gcc doesn't think
name can be used uninitialised.
* init/tests/test_cfgfile.c (test_watch_dir): Correct an error where
i wouldn't be initialised if we skipped the inotify tests.
* util/initctl.c (job_info_output): Restructure so gcc doesn't think
* init/process.c (process_setup_environment): job id fits inside
a %u now
* upstart/message.h: Style; always refer to "unsigned int" as
"unsigned int", and never "unsigned.
* upstart/tests/test_message.c (my_handler): Catch a stray couple
of "unsigned"s
* init/control.c (control_job_query, control_job_start)
(control_job_stop): Change type of id argument to unsigned int,
and call printf with %u to output it.
* init/tests/test_control.c (check_job, check_job_instance)
(check_job_instance_end, check_job_status__waiting)
(check_job_status_end__waiting, check_job_status__starting)
(check_job_status_end__starting, check_job_status__running)
(check_job_status_end__running, check_job_status__pre_stop)
(check_job_status_end__pre_stop, check_job_status__stopping)
(check_job_status_end__stopping, check_job_status__deleted)
(check_job_status_end__deleted, check_job_unknown)
(check_job_invalid, check_job_unchanged, check_event): Change
type of id arguments to unsigned int.
(check_list): Change type of id to unsigned int.
* init/tests/test_notify.c (check_job_status)
(check_job_status_end, check_job_finished, check_event)
(check_event_caused, check_event_finished): Change type of id
arguments to unsigned int.
* init/job.h (Job): Change the type of the id to unsigned int.
* init/job.c (job_next_id): Change ids to be unsigned ints, and now
we can just use %u in the nih_error call.
(job_find_by_id): Change argument to be unsigned int
* init/tests/test_job.c (test_find_by_id): Change id type to unsigned
int.
* init/event.h (Event): Change the type of the id to unsigned int.
* init/event.c (event_emit_next_id): Change ids to be unsigned ints,
and now we can just use %u in the nih_error call.
(event_emit_find_by_id): Change argument to be unsigned int
* init/tests/test_event.c (test_emit, test_emit_find_by_id)
(check_event, check_event_finished): Change id type to unsigned int.
* util/initctl.c (output_name): Use an unsigned int for the job id,
which means we can use ordinary %u for the printf argument.
(handle_job, handle_job_finished, handle_job_instance)
(handle_job_instance_end, handle_job_status)
(handle_job_status_end, handle_job_unknown, handle_job_invalid)
(handle_job_unchanged, handle_event, handle_event_caused)
(handle_event_finished): Change argument type of id from uint32_t
to unsigned int.
(job_info_output): Change output type of id from %zu to %u
* upstart/message.c (upstart_message_handle): Use unsigned int for
ids, rather than a fixed-width type.
* upstart/tests/test_message.c (my_handler): Use unsigned int for
the ids, and give "unsigned int" instead of "unsigned" to va_arg as
a matter of style.
* upstart/wire.c (upstart_push_int, upstart_pop_int): Send over the
wire using a plain old integer type, instead of a fixed width type;
there's no advantage to using the fixed-width type and we could hurt
ourselves if we tried running on ILP64.
(upstart_push_unsigned, upstart_pop_unsigned): Likewise use a plain
unsigned int over the wire.
(upstart_push_string, upstart_pop_string): Use an unsigned int for
the length of the string, technically this means that we silently
truncate any string that's greater than 4GB on 64-bit platforms;
it's either that or make the test cases harder (we did this before
anyway).
(upstart_push_header, upstart_pop_header): Type is always an unsigned
int (best conversion from an enum)
2007-03-11 Scott James Remnant <email address hidden>
* configure.ac: Bump version to 0.3.9