Module Name: src
Committed By: martin
Date: Tue Jul 23 16:02:32 UTC 2019
Modified Files:
src/usr.sbin/sysinst: defs.h menus.mi upgrade.c
Log Message:
Fix the "reinstall sets" action.
To generate a diff of this commit:
cvs rdiff -u -r1.39 -r1.40 src/usr.sbin/sysinst/defs.h
cvs rdiff -u -r1.18 -r1.19 src/usr.sbin/sysinst/menus.mi
cvs rdiff -u -r1.10 -r1.11 src/usr.sbin/sysinst/upgrade.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/sysinst/defs.h
diff -u src/usr.sbin/sysinst/defs.h:1.39 src/usr.sbin/sysinst/defs.h:1.40
--- src/usr.sbin/sysinst/defs.h:1.39 Tue Jul 23 15:23:14 2019
+++ src/usr.sbin/sysinst/defs.h Tue Jul 23 16:02:32 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: defs.h,v 1.39 2019/07/23 15:23:14 martin Exp $ */
+/* $NetBSD: defs.h,v 1.40 2019/07/23 16:02:32 martin Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@@ -684,7 +684,7 @@ int do_system(const char *);
/* from upgrade.c */
void do_upgrade(void);
-void do_reinstall_sets(struct install_partition_desc*);
+void do_reinstall_sets(void);
void restore_etc(void);
/* from part_edit.c */
Index: src/usr.sbin/sysinst/menus.mi
diff -u src/usr.sbin/sysinst/menus.mi:1.18 src/usr.sbin/sysinst/menus.mi:1.19
--- src/usr.sbin/sysinst/menus.mi:1.18 Thu Jun 20 00:43:55 2019
+++ src/usr.sbin/sysinst/menus.mi Tue Jul 23 16:02:32 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: menus.mi,v 1.18 2019/06/20 00:43:55 christos Exp $ */
+/* $NetBSD: menus.mi,v 1.19 2019/07/23 16:02:32 martin Exp $ */
/*-
* Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -270,7 +270,7 @@ menu netbsd, title MSG_NetBSD_VERSION_In
option MSG_Upgrade_NetBSD_on_a_hard_disk,
action { do_upgrade(); };
option MSG_Re_install_sets_or_install_additional_sets,
- action { do_reinstall_sets(NULL); };
+ action { do_reinstall_sets(); };
option MSG_Reboot_the_computer, exit,
action (endwin) { system("/sbin/reboot -q"); };
option MSG_Utility_menu, sub menu utility;
Index: src/usr.sbin/sysinst/upgrade.c
diff -u src/usr.sbin/sysinst/upgrade.c:1.10 src/usr.sbin/sysinst/upgrade.c:1.11
--- src/usr.sbin/sysinst/upgrade.c:1.10 Tue Jul 23 15:23:14 2019
+++ src/usr.sbin/sysinst/upgrade.c Tue Jul 23 16:02:32 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: upgrade.c,v 1.10 2019/07/23 15:23:14 martin Exp $ */
+/* $NetBSD: upgrade.c,v 1.11 2019/07/23 16:02:32 martin Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@@ -193,9 +193,11 @@ merge_X(const char *xroot)
* Unpacks sets, clobbering existing contents.
*/
void
-do_reinstall_sets(struct install_partition_desc *install)
+do_reinstall_sets()
{
+ struct install_partition_desc install;
int retcode = 0;
+ partman_go = 0;
unwind_mounts();
msg_display(MSG_reinstallusure);
@@ -205,17 +207,25 @@ do_reinstall_sets(struct install_partiti
if (find_disks(msg_string(MSG_reinstall)) < 0)
return;
- /* XXX find proper pm pointer and pass it here, make sure we have
- * read partitions and provide "infos" in there */
- if (mount_disks(install) != 0)
+ if (pm->parts == NULL) {
+ hit_enter_to_continue(MSG_noroot, NULL);
return;
+ }
+
+ install_desc_from_parts(&install, pm->parts);
+
+ if (mount_disks(&install) != 0)
+ goto free_install;
/* Unpack the distribution. */
process_menu(MENU_distset, &retcode);
if (retcode == 0)
- return;
+ goto free_install;
if (get_and_unpack_sets(0, NULL, MSG_unpackcomplete, MSG_abortunpack) != 0)
- return;
+ goto free_install;
sanity_check();
+
+free_install:
+ free_install_desc(&install);
}