Thu Sep  5 11:12:32 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* init.c: Include <version.h>.
	(init_version): Delete variable.
	(launch_core_servers): Pass empty string as release; HURD_VERSION
	as version.

Tue Aug 13 17:51:38 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* Makefile (init): Remove -lutil.
	(libutil-libsubst): Variable removed.
	(LDLIBS): New variable.

Mon Aug 12 11:12:22 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* init.c (setup_terminal): Declare LINE.
	(add_terminal): Don't declare LINE.

Thu Aug  8 16:34:06 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* init.c (setup_terminal): New function.
	(add_terminal): Use setup_terminal.
	(reread_ttys): When turning an existent terminal spec on, call
	setup_terminal before startup_terminal.

	* init.c (struct terminal): New member `read'.
	(shutdown_terminal): New function.
	(reread_ttys): Use shutdown_terminal instead of doing it by hand.
	Keep track of which ttys we used to know about are no longer in
	/etc/ttys, and treat them as now `off'.
	
	* init.c (kill_everyone): `continue' in the essential task case
	didn't go back to the main loop; fix it up correctly.

Tue Jul 16 11:55:09 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c (process_signal): Set WUNTRACED in call to waitpid.

Sun Jul  7 21:18:10 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c (init_stdarrays): Don't use unsafe MOVE_SEND in call to
	interruptible proc_setexecdata.
	(open_console): Likewise, for file_set_translator.

Wed Jul  3 14:46:41 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (init): Add libports (because libfshelp.so requires it,
 	lose lose lose).

	* init.c (process_signal) [case SIGCHLD]: Correctly place `break'
 	*outside* of for loop.

Mon Jul  1 18:07:56 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c (process_signal): On SIGCHLD, keep reaping children until
 	we get an error; tolerate all errors silently.

Mon Jun 24 16:29:24 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c (kill_multi_user): Kill user tasks before doing
 	notify_shutdown.

Fri Jun 21 16:17:08 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* init.c (open_console): Pass correct length of argument vector
	when setting active translators.
	<maptime.h>: New include.
	(open_console): Print error messages for /dev/console failures.
	Reduce the scope of some variables.

Thu Jun 20 14:51:14 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c (mapped_time): New variable.
	(launch_multi_user): Initialize mapped_time.

	* init.c (_PATH_RUNCOM): Move to /libexec/rc.

Wed Jun 19 14:49:08 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c (run_for_real): Doc fix.
	(startup_terminal): Deal properly if one of the run_for_real's
	fails. 
	(launch_single_user): If the shell can't be started, crash the
	system. 
	(process_rc_script): Return non-zero if run_for_real fails.
	(process_signal) [SIGCHLD]: If process_rc_script fails, go back to
	single-user.
	(S_startup_essential_task): Likewise.
	(init_ttys): Return non-zero if we fail.
	(startup_terminal): Return non-zero if we don't actually start
	anything. 
	(startup_ttys): Return non-zero if we fail.
	(launch_multi_user): If init_ttys fails, go back to single.  If we
	go multi, actually set system_state accordingly.  If startup_ttys
	fails, go back to single.
	(init_ttys, reread_ttys): Test return value of setttyent
	correctly. 

Mon Jun 17 14:05:33 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (libutil-libsubst): Define (as -lutil); and link
	against -lutil.
	* init.c: Include <ttyent.h>, <argz.h>, and <utmp.h>.
	(add_terminal, init_ttys, free_ttys, startup_terminal,
	startup_ttys, find_line, reread_ttys, restart_terminal): New functions.
	(launch_multi_user): Use new functions to do things right.
	(session_pid): Delete variable.
	(kill_multi_user): Call free_ttys.
	(process_signal) [SIGHUP]: Call reread_ttys.
	[SIGCHLD/MULTI]: Call restart_terminal.

	* init.c (run_for_real): New arg `setsid'; only do setsid if it's
	set.  All callers changed.  Return the pid of the new program,
	not the task port.  All callers changed.
	
	* Makefile (dir): Now init.

	* init.c: Include "mung_msg_S.h" instead of "msg_S.h".
	(S_msg_sig_post, S_msg_sig_post_untraced): Include SIGCODE parm.
	* Makefile (mung_msg_S.h): New rule.

Mon Jun 17 00:17:37 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* init.c (run_for_real, open_console, process_signal, reboot_mach,
	run_for_real, run, reboot_system): Use error instead of fprintf.
	(notify_shutdown): Always emit terminating newline.
	
Fri Jun 14 11:07:30 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c: Include <paths.h>, <error.h>, <sys/wait.h>, and
	<hurd/msg_reply.h>.
	(S_startup_essential_task): When all core servers have
	showed up, call launch_single_user only if RB_SINGLE; otherwise
	call process_rc_script.  Call init_stdarrays here.
	(open_console): New function; massaged guts taken from
	launch_single_user.  Be more verbose if we do something unusual.
	(launch_single_user): Call open_console.  Don't call
	init_stdarrays here. 
	(system_state, default_ints): New variables.
	(main): Initialize SYSTEM_STATE and DEFAULT_INTS.
	(run_for_real): Pass default_ints.
	(run): Likewise.
	(S_startup_essential_task): Delete var INITDONE; use SYSTEM_STATE
	instead. 
	(launch_single_user): Set SYSTEM_STATE to SINGLE.
	(process_rc_script): New function.
	(launch_multi_user): New function.
	(kill_everyone): New function.
	(kill_multi_user): New function.
	(do_fastboot, rc_pid, session_pid): New variables.
	(process_signal): New function; guts from S_msg_sig_post_untraced.
	Handle state transitions here when programs exit.  Process
	SIGTERM, and SIGHUP appropriately.
	(_PATH_RUNCOM, _PATH_LOGIN): New macros.
	(S_msg_sig_post_untraced): Only validate signal here; use
	process_signal to do the work, but reply first.
	(S_msg_sig_post): Likewise.
	(notify_shutdown): New function.
	(reboot_system): Use notify_shutdown.

Wed Jun 12 16:01:17 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c (S_startup_request_notification): Fill NT->name properly.

Mon May 27 11:33:53 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* init.c (launch_single_user): Open TERM RDWR.
	Use openport to get FD from TERM.
	Print errno on assertion failure for FD.

Fri May 24 12:29:20 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c (reboot_mach): Insert a brief pause before actually
 	rebooting the kernel so that the user has a chance to see any
 	messages that may be displayed.

Tue May 14 11:26:49 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c (S_msg_get_exec_flags, S_msg_set_all_exec_flags,
 	S_msg_set_some_exec_flags, S_msg_clear_some_exec_flags): Delete
 	functions.
	(S_msg_describe_ports): New function.

	* init.c (reboot_system): Print prettier messages for shutdown
 	notifications.

Fri May 10 09:25:16 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c: <hurd/startup_notify.h> -> "startup_notify_U.h".
	* Makefile (OBJS): Add startup_notifyUser.o.

Thu May  9 19:03:24 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c (struct ntfy_task): New member `name'.
	(S_startup_request_notification): Expect and record name.
	(S_msg_startup_dosync): Delete function.
	Include <hurd/startup_notify.h>.
 	(reboot_system): Use new startup_dosync interface.
	
	* init.c (init_stdarrays): Use new authentication interface.

Mon May  6 14:25:02 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c (init_version): Upgrade to 0.0.

Mon Apr 29 16:49:18 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c (reboot_system): Not quite yet, though.

Sun Apr 28 19:15:30 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* init.c (reboot_system): Use 1 minute timeout on reply to
 	msg_startup_dosync.

Wed Apr 17 17:06:30 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* init.c (launch_single_user): Set an active, not passive,
 	translator on /tmp/console, so it works with / read-only.
	* Makefile (init): Depend on libfshelp.

Mon Mar 25 16:55:22 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (init): Add explicit dependency so that
 	libshouldbeinlibc is included.
	* init.c: Include <wire.h>.
	(main): Delete declarations of _etext _edata, and __data_start.
	(main): Use new wire_task_self function instead of doing it ourselves.

Tue Dec 19 18:29:19 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* init.c (launch_core_servers, run_for_real): Call proc_mark_exec
	on child proc ports.

Tue Dec  5 15:22:25 1995  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* init.c (launch_single_user): Change initialization of TERMINAL
 	to match new term driver arg syntax.  Start terminal as ordinary
 	passive translator instead of special weird kludge.  Deleted
	variables foobiebletchcount, foobiebletch, and termtask.

Sun Nov  5 02:03:33 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* init.c (reboot_system): Add flags, noise, & noise_len params to
	proc_getprocinfo.  Deallocate NOISE if necessary.
	(S_msg_report_wait): New function.

Tue Oct 24 16:49:08 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* init.c: Undo last change of 9Oct95.

Mon Oct  9 04:29:39 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* init.c: Pass dealloc args in file_exec calls.

Thu Jul  6 15:34:23 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* init.c (S_msg_sig_post, S_msg_sig_post_untraced): Reverse order
 	of these definitions.

	* init.c: Include <hurd/msg_server.h>.
	(reboot_mach): Insert extra parens around assignment inside while
	test.
	(launch_core_servers): Remove assignment from inside if test.

	* Makefile: Removed dependencies that are now automatically
 	generated.

Thu Feb  9 17:18:21 1995  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* init.c (S_msg_sig_post_untraced): Omit obnoxious "random child
	died" messages.

Sat Jan 28 15:00:37 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* init.c: Include "msg_S.h".  Prepend `msg_' to msg.defs server
 	functions.  Add stubs for new msg.defs functions.

Thu Jan 19 01:59:30 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* init.c: Prepend `msg_' to names of msg.defs RPCs.

Mon Nov 28 15:00:42 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* init.c (run_for_real): Print error msg if file_exec fails.
	(shell_pid): New variable.
	(demuxer): Also try msg_server.
	(launch_single_user): Open terminal O_RDWR and dup to 0, 1, 2.
	Set shell_pid after starting shell.
	(S_sig_post): New function; grok SIGCHLD and restart shell if
	shell_pid dies.
	* Makefile (OBJS): Add msgServer.o.
	(init.o): Depend on msg_S.h.

Fri Nov 11 14:06:43 1994  Michael I Bushnell  <mib@churchy.gnu.ai.mit.edu>

	* init.c (fakeboot): New variable.
	(STANDALONE): Deleted macro.
	(main): Set FAKEBOOT if -f was passed.
	(reboot_mach): Use FAKEBOOT flag instead of STANDALONE macro.
	(launch_core_servers): Likewise.
	(reboot_system): Likewise.  Also don't exit here; let
	reboot_mach exit.

Tue Nov  1 04:13:49 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* init.c (main): Use &_start for start of text to wire.
	(main): Use assert_perror in place of `assert (!err)'.
	(launch_single_user): Use _PATH_CONSOLE and _PATH_BSHELL instead
	of hardcoded strings.
	Check for error from io_stat on console, print message.
	Add #if 0'd code to prompt for shell name.

Tue Sep  6 13:09:40 1994  Michael I Bushnell  <mib@churchy.gnu.ai.mit.edu>

	* init.c (launch_single_user): Don't run device or pipes
	servers by default.  Run terminal server inside /tmp if
	/dev/console isn't set up properly.

Wed Aug 31 01:03:51 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* init.c (launch_single_user): Test TERMTASK as port, not boolean;
	if null, properly initialize TERM to MACH_PORT_NULL as well.

Tue Aug 30 17:07:07 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* init.c: Include <hurd/term.h>.

	* init.c (run): Use file_name_lookup instead of path_lookup.
	(launch_single_user): Likewise.
	(run_for_real): Likewise.

	* init.c (init_stdarrays): Use new authentication protocol.

Mon Aug 22 16:44:11 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* init.c (run_for_real): If CTTY is set, then also put the process
	in its own login collection.

Fri Aug 19 12:16:47 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* init.c (run_for_real): New arg `ctty'.  All callers changed.
	If it's set, then set the new process's INIT_PORT_CTTYID
	accordingly, and change CTTY's owner to be the new process pgrp.
	(launch_single_user): Don't free TERM right away, only do it
	after we've passed it to run_for_real on the shell.

Thu Aug 18 16:48:08 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* init.c (main): Print informative bootstrap messages.
	(launch_core_servers): Likewise.
	(launch_single_user): Likewise.
	(run): Don't print meaningless bootstrap clutter.

	* init.c (launch_single_user): Use task_info; it's less intrusive
	than task_suspend/task_resume.

	* init.c (launch_single_user): Run pipes before shell.

	* init.c (launch_single_user): Pause a bit to give term a chance
	to startup.

	* init.c (bootstrap_args): New variable.
	(main): Set `bootstrap_args' appropriately from argv[1].
	(prompt_for_servers): Deleted variable.
	(run): Use RB_INITNAME instead of prompt_for_servers.
	Only do `pausing' hack if RB_KDB is set.
	(run_for_real): Likewise.

	* init.c (main): Wire text and data segment soon after starting.

Wed Aug 17 19:20:51 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* init.c (run_for_real): Call proc_setsid on new proc.

Wed Aug 17 14:04:18 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* init.c (init_stdarrays): New function.
	(launch_single_user): Call init_stdarrays.

Tue Aug 16 00:44:20 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* init.c (launch_single_user): Prompt whether to run term or dev.

	* init.c (main): Set default_ports[INIT_PORT_BOOTSTRAP] to STARTUP
	while running proc and auth, and then reset it to null.

Mon Aug 15 23:16:24 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* init.c (launch_single_user): Use a volatile var to choose dev or
	term, so you can set it in gdb.
	(main): Set bootstrap port to MACH_PORT_NULL after fetching it.
	Don't set default_ports[INIT_PORT_BOOTSTRAP]; it should be nil.

Mon Aug 15 11:40:34 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* init.c (launch_core_servers): Renamed from launch_system.
	Don't start dev, term, pipes, or shell here.
	(S_startup_procinit): Call launch_core_servers instead of
	launch_system.
	(S_startup_authinit): Likewise.
	(launch_single_user): New function.
	(S_startup_essential_task): Call launch_single_user once
	all the core servers have registered themselves here.

Fri Aug 12 14:05:07 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* init.c (launch_system): Comment out use of dev for now.

Thu Aug 11 12:25:32 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* init.c (launch_system): Run dev instead of term.

Thu Jul 21 17:45:45 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* Makefile: Rewritten in accord with new scheme.
	* init.c: Include "startup_reply_U.h instead of "startup_reply.h".
	(demuxer): Remove S_ from references to startup_server.

Tue Jul 19 20:36:30 1994  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* init.c (run_for_real): Moved unused var BUF inside #if 0 where used.
	(launch_system): Call proc_set_arg_locations, not proc_setprocargs.

Tue Jul 19 12:44:56 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* Makefile (init): Don't use variable $(link) anymore.

Tue Jul  5 14:21:34 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* init.c (launch_system): After terminal driver is running,
	reopen stdin so that we always read through it.  Don't do
	output, because that (for reliability) shouldn't depend
	on the terminal driver.
	(main): Open stdin separately from stdout/stderr.

	* Makefile (SRCS): New variable.

Fri Jul  1 11:19:46 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* init.c (run_for_real): Return the task we created.  All callers
	changed.

Tue Jun 21 14:08:37 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* init.c (launch_system): Correct first arg to pipes.

Mon Jun 20 15:06:19 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* init.c (launch_system): Look for pipes in /hurd/pipes, not
	/bin/pipes.

	* init.c (run_for_real): Comment out old code that prompts user;
	abandon attempt if we can't run something.

	* Makefile (install): Use $(INSTALL_BIN) instead of cp.

Fri Jun 17 00:13:50 1994  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* init.c (demuxer): Use S_startup_server instead of startup_server.

Wed Jun 15 18:14:59 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* init.c (launch_system): Start pipes server after starting shell.

	* init.c (run_for_real): New parms ARGS and ARGLEN.  All callers
	changed.

Tue May 24 02:20:55 1994  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* init.c (launch_system): Start the shell before doing proc_setmsgport.

Tue May 24 00:05:43 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* init.c (launch_system): Call proc_setmsgport before fsys_init.

Mon May 16 14:43:47 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* init.c (reboot_system): Restore bits commented out on May 12;
	the proc bug responsible has been fixed.

Fri May 13 14:59:12 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* init.c (launch_system):  Make sure the auth server's proc state
	is correct *before* calling startup_authinit_reply.

Thu May 12 15:13:10 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* init.c (reboot_system): Comment out bits checking to see
	if the procserver has died; they aren't quite right.

	* init.c (S_startup_essential_task): Don't take over the exception
	port of the task right now; this interferes with things too much.

Thu May 12 02:22:08 1994  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* init.c (launch_system): Don't call _hurd_proc_init; just call
	proc_setprocargs ourselves.
	(launch_system): Do proc_setmsgport last.
	(run, run_for_real): Pass argv[0] with name of program.

Mon May  9 14:30:11 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* init.c (init_version): New variable.
	(launch_system): Call proc_register_version; don't call
	proc_setprocargs (which is done by _hurd_proc_init).  Give
	correct argument to _hurd_proc_init.

	* init.c (S_startup_register_version, S_startup_uname): Deleted.

Fri May  6 13:01:04 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* init.c (S_startup_register_version, S_startup_uname):
	New functions (temporary only).

Thu May  5 19:15:39 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* init.c: Include <hurd/msg.h> for prototype of startup_dosync.
	Change return types of MiG stubs to be kern_return_t.
	(S_startup_essential_task): Expect new arg CREDENTIAL and
	validate it.

Thu May  5 07:44:21 1994  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* Makefile: Change uses of $(headers) to $(includedir).

