Module Name:    src
Committed By:   snj
Date:           Tue Dec 26 05:54:16 UTC 2023

Modified Files:
        src/usr.sbin/sysinst [netbsd-10]: configmenu.c defs.h main.c
            menus.entropy menus.mi net.c

Log Message:
Pull up following revision(s) (requested by martin in ticket #511):
        usr.sbin/sysinst/configmenu.c: revision 1.18
        usr.sbin/sysinst/defs.h: revision 1.90
        usr.sbin/sysinst/main.c: revision 1.32
        usr.sbin/sysinst/menus.entropy: revision 1.3
        usr.sbin/sysinst/menus.mi: revision 1.29
        usr.sbin/sysinst/net.c: revision 1.45
Add a https transfer method (sharing all host details with the http
transfer). Make this method the default for all downloads.
Try to make sure the binary pkg installation (which runs in a chroot
in the already installed system) can make use of SSL verification.
This does NOT fix the missing SSL verification in most install media
even if using https (due to not fully populated /etc/openssl/certs).


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.17.2.1 src/usr.sbin/sysinst/configmenu.c
cvs rdiff -u -r1.88 -r1.88.2.1 src/usr.sbin/sysinst/defs.h
cvs rdiff -u -r1.30.2.1 -r1.30.2.2 src/usr.sbin/sysinst/main.c
cvs rdiff -u -r1.2 -r1.2.2.1 src/usr.sbin/sysinst/menus.entropy
cvs rdiff -u -r1.27.2.1 -r1.27.2.2 src/usr.sbin/sysinst/menus.mi
cvs rdiff -u -r1.43.2.1 -r1.43.2.2 src/usr.sbin/sysinst/net.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/configmenu.c
diff -u src/usr.sbin/sysinst/configmenu.c:1.17 src/usr.sbin/sysinst/configmenu.c:1.17.2.1
--- src/usr.sbin/sysinst/configmenu.c:1.17	Wed May 18 16:39:03 2022
+++ src/usr.sbin/sysinst/configmenu.c	Tue Dec 26 05:54:15 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: configmenu.c,v 1.17 2022/05/18 16:39:03 martin Exp $ */
+/* $NetBSD: configmenu.c,v 1.17.2.1 2023/12/26 05:54:15 snj Exp $ */
 
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -324,6 +324,9 @@ set_binpkg(struct menudesc *menu, void *
 	int allok = 0;
 	arg_rv parm;
 
+	if (config_network(0))
+		mnt_net_config();
+
 	do {
 		parm.rv = -1;
 		parm.arg = additional_pkgs;
@@ -333,7 +336,16 @@ set_binpkg(struct menudesc *menu, void *
 			return 0;
 		}
 
-		make_url(pkgpath, &pkg, pkg_dir);
+		/*
+		 * Make sure we have the TLS certs in a usable state
+		 * (if target is a new installation)
+		 */
+		if (pkg.xfer == XFER_HTTPS) {
+			run_program(RUN_CHROOT | RUN_SILENT,
+			    "/bin/sh /etc/rc.d/certctl_init onestart");
+			make_url(pkgpath, &pkg, pkg_dir);
+		}
+
 		if (run_program(RUN_DISPLAY | RUN_PROGRESS | RUN_CHROOT,
 			"pkg_add %s/pkgin", pkgpath) == 0) {
 			allok = 1;

Index: src/usr.sbin/sysinst/defs.h
diff -u src/usr.sbin/sysinst/defs.h:1.88 src/usr.sbin/sysinst/defs.h:1.88.2.1
--- src/usr.sbin/sysinst/defs.h:1.88	Thu Dec 15 15:32:04 2022
+++ src/usr.sbin/sysinst/defs.h	Tue Dec 26 05:54:15 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: defs.h,v 1.88 2022/12/15 15:32:04 martin Exp $	*/
+/*	$NetBSD: defs.h,v 1.88.2.1 2023/12/26 05:54:15 snj Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -599,10 +599,13 @@ extern const char *ushell;
 
 #define	XFER_FTP	0
 #define	XFER_HTTP	1
-#define	XFER_MAX	XFER_HTTP
+#define	XFER_HTTPS	2
+#define	XFER_MAX	XFER_HTTPS
+#define	XFER_HOST_MAX	XFER_HTTP	/* http and https share a server name */
+#define	XFER_HOST(XFER)	((XFER) == XFER_FTP ? 0 : 1)
 
 struct ftpinfo {
-	char xfer_host[XFER_MAX+1][STRSIZE];
+	char xfer_host[XFER_HOST_MAX+1][STRSIZE];
 	char dir[STRSIZE] ;
 	char user[SSTRSIZE];
 	char pass[STRSIZE];

Index: src/usr.sbin/sysinst/main.c
diff -u src/usr.sbin/sysinst/main.c:1.30.2.1 src/usr.sbin/sysinst/main.c:1.30.2.2
--- src/usr.sbin/sysinst/main.c:1.30.2.1	Fri Jun 23 05:40:02 2023
+++ src/usr.sbin/sysinst/main.c	Tue Dec 26 05:54:16 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.30.2.1 2023/06/23 05:40:02 msaitoh Exp $	*/
+/*	$NetBSD: main.c,v 1.30.2.2 2023/12/26 05:54:16 snj Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -132,8 +132,8 @@ static const struct f_arg fflagopts[] = 
 	{"xfer dir", "/usr/INSTALL", xfer_dir, sizeof xfer_dir},
 	{"ext dir", "", ext_dir_bin, sizeof ext_dir_bin},
 	{"ext src dir", "", ext_dir_src, sizeof ext_dir_src},
-	{"ftp host", SYSINST_FTP_HOST, ftp.xfer_host[XFER_FTP], sizeof ftp.xfer_host[XFER_FTP]},
-	{"http host", SYSINST_HTTP_HOST, ftp.xfer_host[XFER_HTTP], sizeof ftp.xfer_host[XFER_HTTP]},
+	{"ftp host", SYSINST_FTP_HOST, ftp.xfer_host[XFER_HOST(XFER_FTP)], sizeof ftp.xfer_host[XFER_HOST(XFER_FTP)]},
+	{"http host", SYSINST_HTTP_HOST, ftp.xfer_host[XFER_HOST(XFER_HTTP)], sizeof ftp.xfer_host[XFER_HOST(XFER_HTTP)]},
 	{"ftp dir", SYSINST_FTP_DIR, ftp.dir, sizeof ftp.dir},
 	{"ftp prefix", "/" ARCH_SUBDIR "/binary/sets", set_dir_bin, sizeof set_dir_bin},
 	{"ftp src prefix", "/source/sets", set_dir_src, sizeof set_dir_src},
@@ -150,15 +150,15 @@ static const struct f_arg fflagopts[] = 
 	{"targetroot mount", "/targetroot", targetroot_mnt, sizeof targetroot_mnt},
 	{"dist postfix", "." SETS_TAR_SUFF, dist_postfix, sizeof dist_postfix},
 	{"dist tgz postfix", ".tgz", dist_tgz_postfix, sizeof dist_tgz_postfix},
-	{"pkg host", SYSINST_PKG_HOST, pkg.xfer_host[XFER_FTP], sizeof pkg.xfer_host[XFER_FTP]},
-	{"pkg http host", SYSINST_PKG_HTTP_HOST, pkg.xfer_host[XFER_HTTP], sizeof pkg.xfer_host[XFER_HTTP]},
+	{"pkg host", SYSINST_PKG_HOST, pkg.xfer_host[XFER_HOST(XFER_FTP)], sizeof pkg.xfer_host[XFER_HOST(XFER_FTP)]},
+	{"pkg http host", SYSINST_PKG_HTTP_HOST, pkg.xfer_host[XFER_HOST(XFER_HTTP)], sizeof pkg.xfer_host[XFER_HOST(XFER_HTTP)]},
 	{"pkg dir", SYSINST_PKG_DIR, pkg.dir, sizeof pkg.dir},
 	{"pkg prefix", "/" PKG_ARCH_SUBDIR "/" PKG_SUBDIR "/All", pkg_dir, sizeof pkg_dir},
 	{"pkg user", "ftp", pkg.user, sizeof pkg.user},
 	{"pkg pass", "", pkg.pass, sizeof pkg.pass},
 	{"pkg proxy", "", pkg.proxy, sizeof pkg.proxy},
-	{"pkgsrc host", SYSINST_PKGSRC_HOST, pkgsrc.xfer_host[XFER_FTP], sizeof pkgsrc.xfer_host[XFER_FTP]},
-	{"pkgsrc http host", SYSINST_PKGSRC_HTTP_HOST, pkgsrc.xfer_host[XFER_HTTP], sizeof pkgsrc.xfer_host[XFER_HTTP]},
+	{"pkgsrc host", SYSINST_PKGSRC_HOST, pkgsrc.xfer_host[XFER_HOST(XFER_FTP)], sizeof pkgsrc.xfer_host[XFER_HOST(XFER_FTP)]},
+	{"pkgsrc http host", SYSINST_PKGSRC_HTTP_HOST, pkgsrc.xfer_host[XFER_HOST(XFER_HTTP)], sizeof pkgsrc.xfer_host[XFER_HOST(XFER_HTTP)]},
 	{"pkgsrc dir", "", pkgsrc.dir, sizeof pkgsrc.dir},
 	{"pkgsrc prefix", "pub/pkgsrc/stable", pkgsrc_dir, sizeof pkgsrc_dir},
 	{"pkgsrc user", "ftp", pkgsrc.user, sizeof pkgsrc.user},
@@ -191,7 +191,7 @@ init(void)
 		else
 			strlcpy(arg->var, arg->dflt, arg->size);
 	}
-	pkg.xfer = pkgsrc.xfer = XFER_HTTP;
+	ftp.xfer = pkg.xfer = pkgsrc.xfer = XFER_HTTPS;
 
 	clr_arg.bg=COLOR_BLUE;
 	clr_arg.fg=COLOR_WHITE;

Index: src/usr.sbin/sysinst/menus.entropy
diff -u src/usr.sbin/sysinst/menus.entropy:1.2 src/usr.sbin/sysinst/menus.entropy:1.2.2.1
--- src/usr.sbin/sysinst/menus.entropy:1.2	Fri Oct  8 15:59:55 2021
+++ src/usr.sbin/sysinst/menus.entropy	Tue Dec 26 05:54:16 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: menus.entropy,v 1.2 2021/10/08 15:59:55 martin Exp $	*/
+/*	$NetBSD: menus.entropy,v 1.2.2.1 2023/12/26 05:54:16 snj Exp $	*/
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -75,10 +75,12 @@ menu entropy_ftpsource, y=-4, x=0, w=70,
 	exitstring MSG_download_entropy;
 	option {src_legend(menu, MSG_Host,
 			((struct ftpinfo*)((arg_rv*)arg)->arg)->xfer_host[
-			((struct ftpinfo*)((arg_rv*)arg)->arg)->xfer]);},
+			XFER_HOST(((struct ftpinfo*)
+			((arg_rv*)arg)->arg)->xfer)]);},
 		action { struct ftpinfo *fpi = (struct ftpinfo*)((arg_rv*)arg)->arg;
-			src_prompt(MSG_Host, fpi->xfer_host[fpi->xfer],
-			sizeof fpi->xfer_host[fpi->xfer]); };
+			src_prompt(MSG_Host,
+			fpi->xfer_host[XFER_HOST(fpi->xfer)],
+			sizeof fpi->xfer_host[XFER_HOST(fpi->xfer)]); };
 	option {src_legend(menu, MSG_entropy_path_and_file, entropy_file);},
 		action { src_prompt(MSG_entropy_path_and_file,
 			entropy_file, sizeof entropy_file); };

Index: src/usr.sbin/sysinst/menus.mi
diff -u src/usr.sbin/sysinst/menus.mi:1.27.2.1 src/usr.sbin/sysinst/menus.mi:1.27.2.2
--- src/usr.sbin/sysinst/menus.mi:1.27.2.1	Fri Feb 24 13:48:28 2023
+++ src/usr.sbin/sysinst/menus.mi	Tue Dec 26 05:54:16 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: menus.mi,v 1.27.2.1 2023/02/24 13:48:28 martin Exp $	*/
+/*	$NetBSD: menus.mi,v 1.27.2.2 2023/12/26 05:54:16 snj Exp $	*/
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -366,8 +366,12 @@ menu ftpsource, y=-4, x=0, w=70, no box,
 		msg_display_subst(MSG_ftpsource, 2, "." SETS_TAR_SUFF,
 		    url_proto((uintptr_t)((arg_rv*)arg)->arg));
 	    };
-	option {src_legend(menu, MSG_Host, ftp.xfer_host[(uintptr_t)((arg_rv*)arg)->arg]);},
-		action { src_prompt(MSG_Host, ftp.xfer_host[(uintptr_t)((arg_rv*)arg)->arg], sizeof ftp.xfer_host[(uintptr_t)((arg_rv*)arg)->arg]); };
+	option {src_legend(menu, MSG_Host, ftp.xfer_host[
+		XFER_HOST((uintptr_t)((arg_rv*)arg)->arg)]);},
+		action { src_prompt(MSG_Host, ftp.xfer_host[
+		XFER_HOST((uintptr_t)((arg_rv*)arg)->arg)],
+		sizeof ftp.xfer_host[XFER_HOST(
+		(uintptr_t)((arg_rv*)arg)->arg)]); };
 	option {src_legend(menu, MSG_Base_dir, ftp.dir);},
 		action { src_prompt(MSG_Base_dir, ftp.dir, sizeof ftp.dir); };
 	option {src_legend(menu, MSG_Set_dir_bin, set_dir_bin);},
@@ -566,8 +570,11 @@ menu zeroconf, title "Zeroconf", no clea
 menu binpkg, y=-4, x=0, w=70, no box, no clear,
 	    exitstring MSG_Install_pkgin;
 	display action { msg_display(MSG_pkgpath); };
-	option {src_legend(menu, MSG_Host, pkg.xfer_host[pkg.xfer]);},
-		action { src_prompt(MSG_Host, pkg.xfer_host[pkg.xfer], sizeof pkg.xfer_host[pkg.xfer]); };
+	option {src_legend(menu, MSG_Host,
+		pkg.xfer_host[XFER_HOST(pkg.xfer)]);},
+		action { src_prompt(MSG_Host,
+		pkg.xfer_host[XFER_HOST(pkg.xfer)],
+		sizeof pkg.xfer_host[XFER_HOST(pkg.xfer)]); };
 	option {src_legend(menu, MSG_Base_dir, pkg.dir);},
 		action { src_prompt(MSG_Base_dir, pkg.dir, sizeof pkg.dir); };
 	option {src_legend(menu, MSG_Pkg_dir, pkg_dir);},
@@ -613,9 +620,11 @@ menu binpkg, y=-4, x=0, w=70, no box, no
 menu pkgsrc, y=-4, x=0, w=70, no box, no clear,
 	    exit, exitstring MSG_Install_pkgsrc;
 	display action { msg_display(MSG_pkgsrc); };
-	option {src_legend(menu, MSG_Host, pkgsrc.xfer_host[pkgsrc.xfer]);},
-		action { src_prompt(MSG_Host, pkgsrc.xfer_host[pkgsrc.xfer],
-			sizeof pkgsrc.xfer_host[pkgsrc.xfer]); };
+	option {src_legend(menu, MSG_Host, pkgsrc.xfer_host[
+		XFER_HOST(pkgsrc.xfer)]);},
+		action { src_prompt(MSG_Host,
+			pkgsrc.xfer_host[XFER_HOST(pkgsrc.xfer)],
+			sizeof pkgsrc.xfer_host[XFER_HOST(pkgsrc.xfer)]); };
 	option {src_legend(menu, MSG_Pkgsrc_dir, pkgsrc_dir);},
 		action { src_prompt(MSG_Pkgsrc_dir, pkgsrc_dir, sizeof pkgsrc_dir); };
 	option {src_legend(menu, MSG_User, pkgsrc.user);},

Index: src/usr.sbin/sysinst/net.c
diff -u src/usr.sbin/sysinst/net.c:1.43.2.1 src/usr.sbin/sysinst/net.c:1.43.2.2
--- src/usr.sbin/sysinst/net.c:1.43.2.1	Wed Jan  4 05:30:44 2023
+++ src/usr.sbin/sysinst/net.c	Tue Dec 26 05:54:16 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: net.c,v 1.43.2.1 2023/01/04 05:30:44 snj Exp $	*/
+/*	$NetBSD: net.c,v 1.43.2.2 2023/12/26 05:54:16 snj Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -905,8 +905,9 @@ const char *
 url_proto(unsigned int xfer)
 {
 	switch (xfer) {
-	case XFER_FTP:	return "ftp";
-	case XFER_HTTP:	return "http";
+	case XFER_FTP:		return "ftp";
+	case XFER_HTTP:		return "http";
+	case XFER_HTTPS:	return "https";
 	}
 
 	return "";
@@ -956,7 +957,8 @@ make_url(char *urlbuffer, struct ftpinfo
 			RFC1738_SAFE_LESS_SHELL_PLUS_SLASH, 0);
 
 	snprintf(urlbuffer, STRSIZE, "%s://%s%s/%s", url_proto(f->xfer),
-	    ftp_user_encoded, f->xfer_host[f->xfer], ftp_dir_encoded);
+	    ftp_user_encoded, f->xfer_host[XFER_HOST(f->xfer)],
+	    ftp_dir_encoded);
 }
 
 

Reply via email to