Commit Graph

38 Commits

Author SHA1 Message Date
dsl 98b66fc660 Use new kern.root_partition sysctl to find out whether we are installing
over the current root (ie the one we are booted from).
Remove all the stuff that tried to find this out by other means.
A few other message changes.
2003-09-27 10:47:17 +00:00
dsl 7f5beafa6b Sprinkle a load of consts, and change a few variable names.
Now compiles with WARNS=3.
2003-07-25 08:26:21 +00:00
dsl 16a2d1e961 Add run-time selection of installation language.
Make 'doingwhat' an argument to find_disks() instead of a global.
2003-06-27 22:20:14 +00:00
dsl 9ef6b561d7 Add a -D (debug) option for testing.
Ignore inability to remove swap if -D specified.
Select disk before sets (but label after)
Let mac68k sysinst run on i386.
2003-06-25 15:45:21 +00:00
dsl 08fc1c1957 A load of KNF changes, plus a couple of strnxxx => strlxxx my fingers did
on the way through.
2003-06-16 19:42:13 +00:00
dsl 430c90c3f6 Correct check for active swap on install disk.
Use swapctl() for all swap operations.
Remove md_upgrade_mbrtype() from arc and hpcmips ports.
(I haven't finalised what I'm doing about type 165 partitions, but the
existing code is borked.)
2003-06-16 10:42:47 +00:00
dsl 608254d0b8 rototil of the set selection menu
I've also made the set selection happen first.  This lets me test it!
also measn the selected sets could be used in the disk partition code.
Removed the 'with X' disk layout question (now too late to change the sets).
2003-06-11 21:35:35 +00:00
dsl 19b2fb2fb0 Add NULL to all process_menu() calls - value is passed through to the
action routine.
Make the french and polish versions compile.
NB needs a new version of menuc - so need 'build.sh tools'
2003-06-03 11:54:48 +00:00
chris 62fa2583b2 pleasemountroot has 4 %s's in it. Note that the fr translation needs
updating to 4.
2002-11-13 00:43:09 +00:00
grant f9419717d2 add setting of root's shell, from Julio Merino in install/17676 with
minor changes by me.
2002-07-29 03:05:16 +00:00
ad 6fcf2c1799 Allow the password cipher to be chosen at install time. XXX Not tested for
real yet, and the French files need updating.
2002-04-04 14:26:43 +00:00
jdc 6b6028160d Use wrefresh(curscr) instead of clearok().
Suggested by Thomas Dickey.
2001-01-07 13:07:57 +00:00
jdc 885c8eaa06 Be paranoid and do a clearok() before we do a refresh(). 2000-12-31 13:08:05 +00:00
jdc dab8e56b56 Don't output the termcap `cl' sequence.
XXX: do we really need to home the cursor here?
XXX: should we do clearok() instead or in addition?
2000-12-21 21:42:00 +00:00
fvdl 44c5ba4a36 Print an install complete message; this got lost when I changed things
to move this to after zetting the time zone.
2000-10-22 22:57:04 +00:00
fvdl 30b8888d4a * Change the interface of run_prog: use a flags argument instead of
seperate booleans. Add flags to run as a plain 'system()' command,
  fullscreen (but on a pty), and chrooted, and implement their
  functionality. Add a bit of TIOCPKT handling code to handle
  programs messing with term settings better.
* Ask to set the root password at the end of an install.
* Remove a few unneeded comments.
* Sprinkle some touchwin() calls here and there to make the output cleaner.
  They shouldn't really be needed, but even normal usage (no syslog
  messages) even left the screen messy sometimes.
* Change some messages around that were apparently swapped by accident and
  thus caused confusion.
2000-10-11 23:47:55 +00:00
fvdl 09aafa8795 Move md_enable_swap to disks.c, rename it set_swap, and handle both
enabling and disabling swap. Enabling swap is currently only
done by the i386 port on systems with <= 8M of physical memory.

If a user re-enters the install procedure through the main menu,
and the target disk has an active swap partition, try to disable it,
warning the user that this might lead to 'out of swap' problems,
making a restart necessary. This should not happen very often.

Partly based on comments by Simon Burge.
2000-09-27 12:42:04 +00:00
hubertf 10384ae3ba Doesn't it make you nervous to see a "lastchance" warning, telling you
that "your hard disk" is about to get nuked, and you are no longer sure
which of your ten disks you told sysinst to wipe?

Change this to tell you:
``Ok, we are now ready to install NetBSD on your hard disk (wd0). Nothing ...''
2000-09-20 21:21:14 +00:00
hubertf caa284ac57 * Add timezone-setting menu to sysinst, offering all timezones from
(/mnt)/usr/share/zoneinfo in a listbox, and setting (/mnt)/etc/localtime
   accordingly.
 * Adjust for the needed menuc change un run.c's log_flip() and script_flip()
   functions.

Related PRs:
 5777   sysinst does not offer to tweak /etc/localtime
 8099   changing the default time zone is non-obvious
 9910   sysinst doesn't ask about setting timezone
2000-08-15 01:08:00 +00:00
cgd 3528b5e0cf * make selection of 'none' for installation media type return the user
to the toplevel menu, as promised by the media selection menu, without
  first going through an "installation is aborted" menu.
* when something causes the installation to fail (e.g. missing set or failure
  to extract a set's contents), don't go through N menus
  (missing/failed/aborted, sets didn't install/aborted,
  sanity check failed/aborted) before getting back to the top level.  The
  user only needs to be told once that their life sucks.
1999-06-22 06:57:00 +00:00
cgd 59d3c08e03 mark all calls to write 'CL' (the screen-clear escape sequence) to the
screen as XXX.  Where they were not followed by wclear(stdscr), add
wclear(stdscr).  Somebody was let out without adult supervision.  If i
were more adventurous, i'd remove the bits that output 'CL', but i'm not
gonna go there right now.
1999-06-22 00:57:06 +00:00
cgd a640bc7014 copyright notice typo fixups, as noticed in PR#7248. This software
was developed, not develooped.
1999-06-20 06:08:13 +00:00
bouyer 8d7cb08335 Main change: add a cleanup_dist() function in util.c which will do the needed
cleanups before extracting a set. Should'nt do anything for an install,
as the filesystem shouldn't contain files that need to be removed.
cleanup_dist() is called before extract_file() for each set (the set name
is passed as parameter). It will open a file /dist/<set name>_obsolete
if it exists. This file should contain a list of files (absolutes
pathnames) that needs to be removed. cleanup_dist() will lstat() each file
to determine if it's there and if it's a directory or not.
It will then unlink() entries that are not directories and then rmdir()
directories. If a directory is not empty (it should now if the list of files
is correct) it will be renamed to <directory.old> and the user will be warned.

Other changes:
- move prototype of target_prefix() in defs.h, don't maintain a copy
  of it in each file.
- in install.c, after MSG_disksetupdone, do a wclear(stdscr) (display was
  clobbered after it).
- kill MSG_openmsgbuf, it's not used anywhere
- after MSG_disksetupdone in upgrade, don't call MENU_ok, do it the
  same way as in install.
- add wclear(stdscr);/wrefresh(stdscr); before calling MENU_distset (another
  display problem ...)
- While I'm there, move ask_verbose_dist() before MENU_distmedium. This way,
  if all go well the user can go away one ftp starts and come back once
  sets are extracted.
1999-04-13 20:17:47 +00:00
bouyer be743ed36b - Add 2 functions in label.c, getpartoff()/getpartsize() used to let the user
enter partitions offet and size. The user can chose unit independantly of
  the unit used for display ('M'/'c'/'s'). These functions do the proper
  bound checks and alignement/roudups. Used in the edfspart menu and
  i386 md_make_bsd_partitions() (other ports should do the change as
  well).
- now that getpartsize() does the rigth thing, kill the swapadj hack (which was
  buggy anyway).
- in i386 md_make_bsd_partitions(), don't propose defaults that don't fit on
  the disk. If the disk is too small, fallback to custom instead.
- fix a bug in mbr.c, where the partition flags would not have always been
  reset. sysinst created me a MBR with 2 active partition. The boot code
  doesn't like it :)
- added a message for eventual mount failures.
- killed donewfs and extracting messages, as we run  the commands in a
  subwindow these messages just flashed on the screen.
- Changes a few exit(1) to return(1), to give the user a second chance.
- added msg_clear() or wclear(stdscr) in a place or two, to make
  display a bit nicer.
- in run_cmd(), if the command succeeded, don't wait for the user to
  press enter.
1999-04-11 22:40:19 +00:00
bouyer 04f9354ab3 Some fixes for the do_install() function:
- Make all the functions called from do_install() return an error code,
  so that we can abort install if something went wrong.
- Add a 'errstr' argument to run_prog(), which if not NULL is displayed
  with msg_printf() and followed by process_menu(MENU_ok) if the command fail.
  Used to warn the user that the current action is aborted.
- in a few places use msg_display() or msg_printf() rather than printf.
  It seems that stdout/stderr are not always pointing to the active curses
  window.
- garbage-collecd unused messages, add a few new one (error handling).
XXX only tested on i386. Other md parts should be tested as well.
1999-04-09 10:24:38 +00:00
garbled 865c31ac7b This change includes the following:
Scripting and logging functionality for sysinst.
Child programs are run in a "display window" so you can actually see what
	they did before the screen flashes back and you loose it all.
Lots of curses fixups.  Removed nasty endwins that mangled the tty upon
	rentry.
Change the yes/no box to accept Y or N, and not require cursor motion to
	decide one or the other.
Perform curses redraws when doing things that could cause the kernel to
	spew printfs onto your screen.
1999-01-21 08:02:17 +00:00
mrg d1b0d1b602 KNF. 1998-06-20 13:05:48 +00:00
fvdl f998547470 Add MD cleanup function to do some thingd once the install is done.
Only implemented for the i386; behaviour for other ports is
unchanged. For the i386, make this function remove some extraneous
files in /, and frob rc.conf to have rc_configured=YES. The defaults
are reasonable, and it saves the user having to set TERM and mount
filesystems by hand in order to be able to edit /etc/rc.conf

(XXX not very clean, but it's a workaround to be more user-friendly
 for 1.3.2)

Also adapt a few messages slightly so they apply to both situations.
1998-05-15 15:12:29 +00:00
jonathan 7bd6655894 Add check for overlapping partitions:
* Add `partinfo' type, for description of a single partition,
   so we can pass labels by reference..
 * Add label.c with label initialization, naive overlap-check code,
   and a UI entrypoint edit_and_check_label() which iterates through
   checking a label for overlaps, and if any, giving the user the choice of
   fixing them or punting back to the main menu.
 * Change return type of md_make_bsd_partitions from void to int.
   Return 0 if the partition has problems (or the user gave up on it)
   and 1 if the partition is completed and looks OK.
 * Change install() to check return value of md_make_bsd_partitions().
   If it returns zero,  print an `abort' message and return to main menu.
 * Add label.c to all ports' Makefile.

MD code tested on pmax and cut-and-pasted to other ports.
1997-12-04 11:27:56 +00:00
jonathan b3da2a1b88 Fix target prefixing to handle both root-in-swap (traditional miniroot)
and current-root-is-target-root (pmax diskimage.

 * Add code to check disk names (e.g., "sd0") against the current
   kern.root_device  sysctl (whic  does *not* include a partition).

 * Add new function must_mount_root():
   check to see if it's the same device as the root.  If not,
   the current and target root partitions cannot overlap.
   If they do, do statfs() on "/", and return 1 iff we get back
   "root_device" as the mounted-on filesystem, otherwise zero.

* Call must_mount_root() right after the user specifies a disk as
  install/upgrade target, and  if it returns 1, print a message asking
  them to mount root, and abort.

*  Use statfs("/")  mounted_from string to check if a disk partition
    (e.g., "sd0a") matches the current root.
1997-11-09 12:47:06 +00:00
jonathan 77221dcc6a * Add code to run `test(1)' on target-root pathnames.
* Change find_disks: after mouting target root, check for
  /etc/fstab in target, and abort upgrade if not found.

* Change upgrade to check if the target root has /etc.old
  before renaming the target /etc -> /etc.old.  If found, abort.
  (may indicates a failed upgrade.)

*  Add save_etc(). saves target /etc as /etc.old, then copies back
   config files we might want during upgrade, in case target is current root.

* Fix logic that fscks and mounts disks. Use subroutines to
  fsck with a warning message and ok() on continue.  Same for doing mounts.

* Fix bug in extract_dist(). Do NOT do target prefixing on the dist_dir,
  since we didn't do target prefixing when mounting it.
  (At least, NFS does't.)

* Add function to  sanity-check target root.
   Call after upgrade/install  is done.

* Change MSG_realdir to print the strerror() of any errors.
  Change target_chdir() to check if chdir() returns -1 and return errno.

* Make sure /dev exists before cd'ing there and running MAKEDEV.

* Use target_fopen() and fprintf() to write network state to disk,
  to avoid inadvertent shell escapes.

* Fix silly typo in append_to_target_file. (maybe add shell quotes?)
1997-11-05 07:28:20 +00:00
jonathan a5f389631d Make install() use msgc, not inline text, for the `disks done' text.
Expand that text, making clearer what sysinst is done, what kind of
errors to double-check for before proceeding, and what we're about to do next.
1997-11-03 06:18:08 +00:00
jonathan 326ca1c813 Snip out common code that fetches and unpack setss in both upgrade()
and install().  Put it into a new function ``get_and_unpack_sets()''.
Fixes a typo (/sbin/umoount) in the upgrade() version.
1997-11-02 09:41:57 +00:00
phil 39725806db Floppy and cdrom distribution load. Other tweeks to improve installation
and upgrade.
1997-10-20 06:13:25 +00:00
phil 88ca252c34 Tweeks to make install nicer. 1997-10-17 21:10:39 +00:00
phil 9f2b3143db Update to current state. 1997-10-07 04:01:29 +00:00
phil 35e522db38 Sync to current state. (detect ftp error, clean up directories ...) 1997-09-27 00:09:22 +00:00
phil af1d23bed3 Import of sysinst. Not quite ready, but other ports want access for
parallel development.  i386 version about 90% complete.  pc532 version
just started, other architectures later in coordination with portmasters.

This is a curses based, menu driven installation program.

Better error checking is needed.
1997-09-26 23:02:53 +00:00