Module Name:    src
Committed By:   msaitoh
Date:           Wed Aug 28 10:00:53 UTC 2019

Modified Files:
        src/usr.sbin/sysinst [netbsd-9]: defs.h upgrade.c util.c

Log Message:
Pull up following revision(s) (requested by martin in ticket #123):
        usr.sbin/sysinst/util.c: revision 1.32
        usr.sbin/sysinst/upgrade.c: revision 1.13
        usr.sbin/sysinst/defs.h: revision 1.44
Do not offer to upgrade the "current system" if we are running off a CD
(i.e. / is mounted read-only)


To generate a diff of this commit:
cvs rdiff -u -r1.42.2.1 -r1.42.2.2 src/usr.sbin/sysinst/defs.h
cvs rdiff -u -r1.12 -r1.12.2.1 src/usr.sbin/sysinst/upgrade.c
cvs rdiff -u -r1.29.2.2 -r1.29.2.3 src/usr.sbin/sysinst/util.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.42.2.1 src/usr.sbin/sysinst/defs.h:1.42.2.2
--- src/usr.sbin/sysinst/defs.h:1.42.2.1	Thu Aug  8 05:51:43 2019
+++ src/usr.sbin/sysinst/defs.h	Wed Aug 28 10:00:53 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: defs.h,v 1.42.2.1 2019/08/08 05:51:43 msaitoh Exp $	*/
+/*	$NetBSD: defs.h,v 1.42.2.2 2019/08/28 10:00:53 msaitoh Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -712,6 +712,7 @@ bool	parts_use_wholedisk(struct disk_par
 bool	md_parts_use_wholedisk(struct disk_partitions*);
 
 /* from util.c */
+bool	root_is_read_only(void);
 void	get_ptn_alignment(const struct disk_partitions *parts, daddr_t *align, daddr_t *p0off);
 char*	str_arg_subst(const char *, size_t, const char **);
 void	msg_display_subst(const char *, size_t, ...);

Index: src/usr.sbin/sysinst/upgrade.c
diff -u src/usr.sbin/sysinst/upgrade.c:1.12 src/usr.sbin/sysinst/upgrade.c:1.12.2.1
--- src/usr.sbin/sysinst/upgrade.c:1.12	Tue Jul 23 18:13:40 2019
+++ src/usr.sbin/sysinst/upgrade.c	Wed Aug 28 10:00:53 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: upgrade.c,v 1.12 2019/07/23 18:13:40 martin Exp $	*/
+/*	$NetBSD: upgrade.c,v 1.12.2.1 2019/08/28 10:00:53 msaitoh Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -64,7 +64,7 @@ do_upgrade(void)
 
 	get_ramsize();
 
-	if (find_disks(msg_string(MSG_upgrade), true) < 0)
+	if (find_disks(msg_string(MSG_upgrade), !root_is_read_only()) < 0)
 		return;
 
 	if (pm->parts == NULL && !pm->cur_system) {
@@ -208,7 +208,7 @@ do_reinstall_sets()
 	if (!ask_noyes(NULL))
 		return;
 
-	if (find_disks(msg_string(MSG_reinstall), true) < 0)
+	if (find_disks(msg_string(MSG_reinstall), !root_is_read_only()) < 0)
 		return;
 
 	if (!pm->cur_system) {

Index: src/usr.sbin/sysinst/util.c
diff -u src/usr.sbin/sysinst/util.c:1.29.2.2 src/usr.sbin/sysinst/util.c:1.29.2.3
--- src/usr.sbin/sysinst/util.c:1.29.2.2	Sun Aug 18 13:29:15 2019
+++ src/usr.sbin/sysinst/util.c	Wed Aug 28 10:00:53 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: util.c,v 1.29.2.2 2019/08/18 13:29:15 msaitoh Exp $	*/
+/*	$NetBSD: util.c,v 1.29.2.3 2019/08/28 10:00:53 msaitoh Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -537,6 +537,17 @@ boot_media_still_needed(void)
 	return 0;
 }
 
+bool
+root_is_read_only(void)
+{
+	struct statvfs sb;
+
+	if (statvfs("/", &sb) == 0)
+		return sb.f_flag & ST_RDONLY;
+
+	return false;
+}
+
 /*
  * Get from a CDROM distribution.
  * Also used on "installation using bootable install media"

Reply via email to