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