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);
 }

Reply via email to