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"