Download project files

How do I verify a download?


4146 of 46 releases

0.2.6 release from the 0.2 series released

Release information
Release notes:

        * Fix major bug on architectures with 64-bit kernel and 32-bit
          user-land caused by an inconsitency between the behaviour of
          kernel's compat_sys_waitid() vs. sys_waitid() functions.

        * "halt" now only calls "shutdown -h now"

Changelog:

2006-09-13 Scott James Remnant <email address hidden>

        * NEWS: Updated.

        * TODO: More TODO.

2006-09-10 Scott James Remnant <email address hidden>

        * util/reboot.c (main): Don't give -H with "halt".

File Description Downloads
download icon upstart-0.2.6.tar.gz (md5) 15
last downloaded 4 days ago
download icon upstart-0.2.6.tar.bz2 (md5) Upstart 0.2.6 14
last downloaded 46 weeks ago
Total downloads: 29

0.2.5 release from the 0.2 series released

Release information
Release notes:

        * "control-alt-delete" event name changed to "ctrlaltdel".

        * "initctl shutdown EVENT" added that performs the same job as
          "shutdown" but without all the usual warnings, timings, etc.

        * "logd" has now been written, if installed this is started by init
          before sending the "startup" call and all jobs with "console logged"
          (the default) will have their output sent to this daemon. It
          currently just logs to /var/log/boot.

        * "shutdown -k" implemented.

        * The "shutdown" utility has been changed to generate "system-halt"
          for "-H", "power-off" for "-P" and just "halt" if only "-h" given.

        * If "shutdown" is run when running under sysvinit, it will now
          send the appropriate /dev/initctl me...

Changelog:

2006-09-09 Scott James Remnant <email address hidden>

 * NEWS: Update.
 * TODO: Update.

 * upstart/control.c (upstart_send_msg_to, upstart_recv_msg): Change
 the magic to be the package string.
 * upstart/tests/test_control.c (test_recv_msg): Update tests.

 * util/initctl.c (main): Set the usage string.
 * util/shutdown.c (main): Set the usage string.
 * util/start.c (main): Set the usage string.
 * compat/sysv/runlevel.c (main): Set the usage string.
 * compat/sysv/telinit.c (main): Set the usage string.

 * man/Makefile.am: Use install-data-hook and $(man8dir)
 * util/Makefile.am: Also use install-exec-hook

 * Makefile.am (SUBDIRS): Install contents of the man directory
 * configure.ac (AC_CONFIG_FILES): Generate man/Makefile
 * man/Makefile.am: Install manpages in the appropriate places.
 * man/init.8, man/logd.8, man/initctl.8, man/reboot.8,
 * man/shutdown.8, man/start.8, man/sulogin.8, man/runlevel.8,
 * man/telinit.8: Include some basic manpages so we at least have
 some level of documentation.

 * init/job.c (job_child_reaper): Don't check the exit status of
 a respawning job if the goal is to stop it.

 * compat/sysv/telinit.c (main): Generate events rather than
 starting and stopping jobs directly, the events are named
 "runlevel-X". 0, 1, 6 and s/S are shutdown events.

 * logd/main.c (main): Raise SIGSTOP before entering the main loop.
 * init/main.c (main): Interlock with logd.

 * event.d/logd: Should not be a console owner, but should stop
 on shutdown.

 * init/process.c (process_setup_console): Revert part of the previous
 change, should just output to /dev/null if we don't have logd.

 * configure.ac: Bump version to 0.2.5

 * init/main.c (main): Start the logd job if it exists.

 * init/process.c (process_setup_console): Ignore ECONNREFUSED as
 that just means that logd isn't around, handle errors by falling
 back to opening the console.

 * init/process.c (process_setup_console): Implement handling for
 CONSOLE_LOGGED and generally clean up the other handling.
 * init/process.h: Update.
 * init/main.c (main): Pass NULL for the job to setup console.
 * TODO: Update.

 * logd/main.c: Implement the logging daemon, it accepts connections
 on a unix stream socket with the abstract name
 "/com/ubuntu/upstart/logd", expects the length of the name and the
 name to follow; then sequences of lines which are logged to
 /var/log/boot, or memory until that file can be opened.

2006-09-08 Scott James Remnant <email address hidden>

 * util/shutdown.c (event_setter): Change the event names to
 distinguish between "shutdown -h" and "shutdown -h -H".

 * init/job.c (job_handle_event): Allow jobs to react to their own
 events, this is how we'll do respawn eventually.
 * init/tests/test_job.c (test_handle_event): Remove test.

 * init/main.c (cad_handler, kbd_handler): Generate the new event
 names.
 * init/event.h (CTRLALTDEL_EVENT, KBDREQUEST_EVENT): Add definitions
 of these event names, change the ctrlaltdel event to just that.

 * logd/main.c (main): Add the code to daemonise, etc.

2006-09-07 Scott James Remnant <email address hidden>

 * TODO: Long discussion today on #upstart, many improvements to the
 job and event model that make it more elegant.
 * AUTHORS: Include a list of thanks.

 * util/shutdown.c (shutdown_now): If we get ECONNREFUSED when we
 try and send the shutdown event to init, it probably means we're
 still in sysvinit. So try that instead.
 (sysvinit_shutdown): Function to send a hand-crafted runlevel
 change message across /dev/initctl.

 * util/initctl.c (main): Add a shutdown command that takes an
 arbitrary event name to be issued after "shutdown". You'll
 nearly always want the /sbin/shutdown tool instead.

 * init/job.c (job_detect_idle): Only generate the stalled event
 if at least one job handles it in its start_events list.
 * init/tests/test_job.c (test_detect_idle): Make sure that works.

 * init/event.h (STARTUP_EVENT, SHUTDOWN_EVENT, STALLED_EVENT):
 Macros to define the standard event names.
 * init/main.c (main): Use STARTUP_EVENT macro instead of "startup"
 * init/control.c (control_handle): Use SHUTDOWN_EVENT macro
 instead of "shutdown".
 * init/job.c (job_detect_idle): Use STALLED_EVENT macro instead
 of "stalled".

 * init/job.c (job_detect_idle): Add some log messages for when we
 detect the idle or stalled states.
 (job_kill_process, job_kill_timer): Increase log verbosity.
 * init/event.c (event_queue_run): Log which events we're handling
 if --debug is given.

 * compat/sysv/telinit.c (main): Send a shutdown command when
 requesting to enter runlevel 0 or runlevel 6, likewise for
 runlevel 1, s or S which all run "rc1" not "rcS".
 * init/main.c (main): When called directory (pid != 1) try and
 run telinit before complaining that we're not init. Make sure
 errors aren't lost.

2006-09-04 Johan Kiviniemi <email address hidden>

 * upstart/control.c (upstart_addr): Replace use of __builtin_offsetof
 with offsetof.
 * upstart/tests/test_control.c (test_recv_msg): Likewise.

2006-09-04 Scott James Remnant <email address hidden>

 * util/shutdown.c (main): Exit normally after sending the warning
 message if -k is given.

File Description Downloads
download icon upstart-0.2.5.tar.gz (md5) 13
last downloaded 46 weeks ago
download icon upstart-0.2.5.tar.bz2 (md5) Upstart 0.2.5 14
last downloaded 46 weeks ago
Total downloads: 27

0.2.1 release from the 0.2 series released

Release information
Release notes:

        * Compilation fixes

Changelog:

        * NEWS: Update.
        * configure.ac: Bump version to 0.2.1

        * init/process.c (process_setup_console): Ensure that the console
        is always initialised to at least /dev/null
        * init/job.c (job_change_state): Initialise event to NULL.
        * init/event.c (event_read_state): Don't mask initialisation of
        other variable.
        * init/cfgfile.c (cfg_job_stanza, cfg_parse_script, cfg_next_token):
        Print lineno using %zi not %d
        * compat/sysv/runlevel.c (store): Cast pointer type of timeval.

        * init/main.c: Move the kernel headers include beneath the C
        library ones, so that compilation doesn't fail on !i386.
        * util/reboot.c: Likewise.

File Description Downloads
download icon upstart-0.2.1.tar.gz (md5) 14
last downloaded 6 weeks ago
download icon upstart-0.2.1.tar.bz2 (md5) Upstart 0.2.1 11
last downloaded 47 weeks ago
Total downloads: 25

0.2.0 release from the 0.2 series released

Release information
Release notes:

        * "shutdown", "reboot", "halt" and "poweroff" utilities provided
          that match their traditional equivalents.

        * "start", "stop" and "status" utilities provided to start, stop
          and query the status of jobs respectively.

        * "runlevel" and "telinit" utilities provided for compatibility.

        * "initctl list" will list active jobs.

        * Events vastly simplified to just simple strings.

        * Jobs now generate "jobname/start", "jobname/started",
          "jobname/stop" and "jobname/stopped" events as they go through
          state transitions.

        * Services generate a "jobname" event when they are running.

        * Tasks generate a "jobname" event when they have finished.
        * The "shutdown" utility will generate a "shutdo...

Changelog:

        * init/main.c (term_handler): Close the control connection if we
        re-exec init, otherwise it won't be able to bind. Drop debugging.

        * init/main.c (term_handler): It always helps if we dup2 the
        right file descriptor.

        * init/main.c: Use the TERM signal instead of USR1, as old init
        used that for something else. Also rather than passing across
        file descriptor numbers, use a fixed descriptor and just pass
        "--restart". When we get that option we need to unmask signals
        otherwise we sit there looking like a lemon.

        * init/job.c (job_change_state): Don't free the event unless we
        generate one.

        * NEWS: Update.

        * init/cfgfile.c (cfg_watcher): Ignore any file with '.' or '~'

        * TODO: Update.

        * init/main.c (main): Parse command-line arguments, specifically
        look for --state-fd which we'll use for reexec. Don't do a couple
        of things if we're passed this.
        (read_state): Parse the line-buffered state.
        * init/job.c (job_read_state, job_write_state): Job state
        serialisation so that we can re-exec ourselves.
        * init/job.h: Update.
        * init/tests/test_job.c: Test the serialisation.
        * init/event.c (event_read_state, event_write_state): And similar
        functions for serialising the event queue.
        * init/event.h: Update.
        * init/tests/test_event.c: Test the serialisation.
        * init/cfgfile.c (cfg_read_job): Fix a bug, need to subtract current
        time to get due time.

        * upstart/job.c (job_goal_from_name, job_state_from_name)
        (process_state_from_name): Add opposite numbers that convert a
        string back into an enumeration.
        * upstart/job.h: Update.
        * upstart/tests/test_job.c: Test the new functions.

2006-08-31 Scott James Remnant <email address hidden>

        * init/job.h (Job): Add respawn_limit, respawn_interval,
        respawn_count and respawn_time members so that we can keep track of
        runaway processes.
        * init/job.c (job_catch_runaway): Increment the respawn_count
        within respawn_interval, or reset it if we go over.
        (job_new): Initialise respawn_limit and respawn_interval to sensible
        defaults.
        * init/tests/test_job.c (test_new): Check the defaults are set.
        (test_change_state): Check the respawning code works.
        * init/cfgfile.c (cfg_job_stanza): Parse the "respawn limit" stanza.
        * init/tests/test_cfgfile.c (test_read_job): Test the new stanza.

        * init/process.c (process_setup_console): Remove the console reset
        code, it tends to just crash X and seems to do nothing interesting.
        * init/main.c (reset_console): Instead put it here and just do it
        on startup.

        * configure.ac: Bump version to 0.2.0

        * util/Makefile.am (install-exec-local): Create symbolic links,
        not hard links.

        * init/main.c: Can't catch STOP.

        * util/reboot.c: Pause init while shutting down or rebooting.

        * init/main.c (stop_handler): Catch STOP/TSTP and CONT.
        * init/event.c (event_queue_run): Don't run the event queue while
        paused.
        * init/job.c (job_detect_idle): Don't detect idle jobs while paused.

        * util/reboot.c: if we get the -w argument ("only write to wtmp")
        we need to exit, and not behave as halt normally would.

        * compat/sysv/runlevel.c (main): Add missing newline.
        * compat/sysv/telinit.c (main): And here too.

        * init/main.c (main): Check for idle after the startup event queue
        has been run, otherwise we may just sit there.

        * compat/sysv/Makefile.am (sbin_PROGRAMS): Build and install telinit
        (telinit_SOURCES, telinit_LDFLAGS, telinit_LDADD): Details for
        telinit binary.
        * compat/sysv/telinit.c: Trivial telinit program that just runs
        the appropriate rcX job.
        * compat/sysv/runlevel.c (main): Suggest help on illegal runlevel.

        * util/Makefile.am: Tidy up.

        * configure.ac (AC_CONFIG_FILES): Create compat/sysv/Makefile
        * Makefile.am (SUBDIRS): Build things found in compat/sysv
        * compat/sysv/Makefile.am (sbin_PROGRAMS): Build and install runlevel
        (runlevel_SOURCES, runlevel_LDFLAGS, runlevel_LDADD): Details for
        runlevel binary.
        * compat/sysv/runlevel.c: Helper to store and retrieve the current
        "runlevel" from utmp/wtmp; as well as the reboot time.

        * init/main.c (main): Drop debugging set.

        * init/job.c (job_change_state): As well as the job/state events,
        send the job event when a service is running or a task is stopping.
        * init/tests/test_job.c (test_change_state): Check the events get
        sent properly.

        * util/start.c: Write a simple utility to start, stop, or query
        the status of the named jobs.
        * util/Makefile.am (sbin_PROGRAMS): Build and install start
        (start_SOURCES, start_LDFLAGS, start_LDADD): Details for start
        (install-exec-local): Also install as stop and status.
        * util/reboot.c (main): Drop the debugging set.

        * init/cfgfile.c (cfg_job_stanza): Correct nih_alloc error.

        * init/process.c (process_setup_environment): Guard memory alloc.
        * init/job.c (job_set_idle_event): Likewise.
        (job_change_state): And here too.
        (job_run_command): Likewise.
        * init/control.c (control_send): Likewise.
        * init/cfgfile.c: And throughout this file.
        * upstart/control.c (upstart_recv_msg): And once here too.

        * upstart/control.h: Abolish the separate halt, reboot and poweroff
        messages and replace with a single shutdown message that takes
        an event name (for the idle event issued afterwards).
        * upstart/control.c (upstart_send_msg_to, upstart_recv_msg): Handle
        the new shutdown event type by just treating it as an event.
        * upstart/tests/test_control.c (test_messages): Update tests.
        * init/job.c (job_set_idle_event): Store a copy of the idle event
        name.
        * init/control.c (control_send): Copy the shutdown event name.
        (control_handle): Replace individual handling with the new
        single event.
        * init/tests/test_control.c (test_watcher): Update.
        * util/initctl.c: Drop handling for things that shutdown does now.
        * util/shutdown.c: Send the UPSTART_SHUTDOWN event and let the user
        specify anything they want, just give defaults.

        This is quite a big change and abolishes level events entirely,
        along with the event history. We now just treat events as a
        transient queue of strings that go past, may cause things to change,
        but are otherwise forgotten. This turns out to be much easier to
        understand and has no real loss of power.

        * init/event.c: Vastly simplify; gone are the separate notions of
        edge and level events, instead we just treat them as one-shot
        things that go past and are forgotten about.
        * init/event.h (Event): Remove value member.
        Update prototypes.
        * init/tests/test_event.c: Update.
        * init/job.c (job_change_state): Change the event pattern to be
        one that includes the job name and a description of the transition
        instead of the new state.
        (job_detect_idle): Call event_queue rather than event_queue_edge.
        * init/tests/test_job.c: Update.
        * init/cfgfile.c (cfg_job_stanza): Drop "when" and "while".
        * init/tests/test_cfgfile.c (test_read_job): Drop mentions of
        "when" and "while".
        * init/control.c (control_send, control_handle): Drop cases for
        level events.
        (control_handle_event): Don't include a level in the event.
        * init/tests/test_control.c: Update
        * init/main.c: Call event_queue rather than event_queue_edge.
        * upstart/control.c (upstart_send_msg_to, upstart_recv_msg): Change
        event handling so that only a name is read.
        * upstart/control.h: Remove value/level event structures.
        * upstart/tests/test_control.c (test_messages): Update.
        * upstart/job.c (process_state_name): Not used for events, adjust
        documentation so it doesn't lie.
        * util/initctl.c (main): Drop the set function, simplify trigger.
        * util/shutdown.c (shutdown_now): Call UPSTART_EVENT_QUEUE for
        shutdown into maintenance mode.

        * init/control.c (control_handle): Place a message in the syslog
        before halting, powering off or rebooting.

        * util/shutdown.c: Adjust so that the warning message is sent out
        if shutdown is immediate, and when it actually happens. Include
        the hostname as wall does.

2006-08-30 Scott James Remnant <email address hidden>

        * TODO: Update.

        * util/shutdown.c: Implement shutdown utility along the same lines
        as the sysvinit one, but with rather different code.

        * util/initctl.c (main): Call setuid on the effective user id so
        that we can be made setuid root and executable by a special group.
        * util/reboot.c (main): Likewise.

        * util/initctl.c (main): Check the effective rather than the real
        user id, if we're effectively root, that's good enough.

        * util/reboot.c: Implement reboot/halt/poweroff utility.
        * util/Makefile.am (sbin_PROGRAMS): Build and install reboot
        (reboot_SOURCES, reboot_LDFLAGS, reboot_LDADD): Details for reboot
        (install-exec-local): Create hardlinks to reboot for halt and poweroff.

2006-08-29 Scott James Remnant <email address hidden>

        * init/main.c (main): Actually run the idle-detect function.
        * init/job.c (job_detect_idle): Interrupt the main loop, otherwise
        we may end up waiting for a signal before we process the event
        we just issued.

2006-08-27 Scott James Remnant <email address hidden>

        * util/shutdown.c: Template main function.
        * util/Makefile.am (sbin_PROGRAMS): Build and install the
        shutdown binary.
        (shutdown_SOURCES, shutdown_LDFLAGS, shutdown_LDADD): Details for
        the shutdown binary

        * util/initctl.c (main): Add commands for halt, poweroff and reboot.

        * init/event.c (event_queue_run): Remove the parameters.
        * init/event.h: Update.
        * init/main.c (main): Update.
        * init/tests/test_control.c (test_watcher): Update.
        * init/tests/test_job.c (test_detect_idle): Update.

        * upstart/control.c (upstart_send_msg_to, upstart_recv_msg): Deal
        with halting, rebooting and powering off; or at least the appropriate
        messages.
        * upstart/control.h: Add control message structures for halting,
        powering off and rebooting the machine.
        * upstart/tests/test_control.c (test_messages): Run the tests.
        * init/control.c (control_handle): Add handling for halt, power off
        and reboot that issue the shutdown event and arrange for the halt,
        poweroff or reboot to be issued the next time the system is idle.
        * init/tests/test_control.c (test_watcher): Test the events.

        * TODO: Update.

        * init/job.c (job_detect_idle): Function to detect when the system is
        stalled or idle.
        * init/job.h: Update
        * init/tests/test_job.c (test_detect_idle): Test the new function.

        * util/initctl.c (main): Handle the list command.

        * TODO: Update.

        * upstart/control.c (WireJobStatusPayload): add description to the
        job status payload.
        (upstart_send_msg_to, upstart_recv_msg): Send and receieve the
        description over the wire.
        * upstart/control.h (UpstartJobStatusMsg): add a description field
        * upstart/tests/test_control.c: Update test cases.
        * init/control.c (control_handle): Include the job description in
        the message.
        (control_send): Copy the description when we put the message on
        the queue.
        (control_handle_job): Copy the description here too
        * init/tests/test_control.c: Update test cases.

        * init/job.c (job_list): Add a function to return the job list.
        * init/job.h: Update.
        * init/control.c (control_handle): Handle the JOB_LIST message
        by sending back a list of job status messages followed by the
        JOB_LIST_END message.
        * init/tests/test_control.c (test_watcher_child): Check the
        JOB_LIST message works properly.

        * upstart/control.c (upstart_send_msg_to, upstart_recv_msg): Handle
        the JOB_LIST and JOB_LIST_END messages which have no payload.
        * upstart/control.h: Add enums and structures for job list messages.
        * upstart/tests/test_control.c (test_messages): Update tests.

        * init/main.c (main): Check that we're both uid and process #1

        * init/main.c (main): Stop handling SIGTERM, we never want people
        to kill init. Handle SIGINT and SIGWINCH through the ordinary
        handler and SIGSEGV through a direct handler.
        (segv_handler): Write a sensible core dump handler, we use a child
        to dump core while we carry on in the parent hopefully stepping over
        the bad instruction.
        (cad_handler): Generate the control-alt-delete event.
        (kbd_handler): Generate the kbdrequest event.

2006-08-25 Scott James Remnant <email address hidden>

        * configure.ac: Bump version to 0.1.2

File Description Downloads
download icon upstart-0.2.0.tar.gz (md5) 14
last downloaded 47 weeks ago
download icon upstart-0.2.0.tar.bz2 (md5) Upstart 0.2.0 19
last downloaded 47 weeks ago
Total downloads: 33

0.1.1 release from the 0.1 series released

Release information
Release notes:

        * Minor bug fixes.

Changelog:

        * NEWS: Update.

        * TODO: Update.

        * init/process.c (process_setup_environment): Inherit the PATH
        and TERM environment variables from the init process, so the
        console works properly.
        * init/process.h (PATH): Declare a default value for this variable
        * init/main.c (main): Set the value of PATH to the default.
        * init/tests/test_process.c (child): Update test case.

File Description Downloads
download icon upstart-0.1.1.tar.gz (md5) 12
last downloaded 46 weeks ago
download icon upstart-0.1.1.tar.bz2 (md5) Upstart 0.1.1 13
last downloaded 46 weeks ago
Total downloads: 25

0.1.0 release from the 0.1 series released

Release information
Release notes:

Initial release.

File Description Downloads
download icon upstart-0.1.0.tar.gz (md5) 14
last downloaded 46 weeks ago
download icon upstart-0.1.0.tar.bz2 (md5) Upstart 0.1.0 18
last downloaded 47 weeks ago
Total downloads: 32

4146 of 46 releases