NetBSD Problem Report #59374

From wiz@exadelic.gatalith.at  Mon Apr 28 14:48:00 2025
Return-Path: <wiz@exadelic.gatalith.at>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits)
	 client-signature RSA-PSS (2048 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id B828B1A9239
	for <gnats-bugs@gnats.NetBSD.org>; Mon, 28 Apr 2025 14:48:00 +0000 (UTC)
Message-Id: <20250428105112.96D032EBBAD9@exadelic.gatalith.at>
Date: Mon, 28 Apr 2025 12:51:12 +0200 (CEST)
From: Thomas Klausner <wiz@NetBSD.org>
Reply-To: Thomas Klausner <wiz@NetBSD.org>
To: gnats-bugs@NetBSD.org
Subject: KERNEL_DIR: support passing directories from 'boot'
X-Send-Pr-Version: 3.95

>Number:         59374
>Category:       kern
>Synopsis:       KERNEL_DIR: support passing directories from 'boot'
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pgoyette
>State:          closed
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Mon Apr 28 14:50:00 +0000 2025
>Closed-Date:    Tue May 06 18:38:16 +0000 2025
>Last-Modified:  Tue May 06 18:38:16 +0000 2025
>Originator:     Thomas Klausner
>Release:        NetBSD 10.99.14
>Organization:

>Environment:


Architecture: x86_64
Machine: amd64
>Description:
With the new KERNEL_DIR option, you can install kernel and modules together
into /netbsd, i.e.

/netbsd/kernel
/netbsd/kernel.gdb
/netbsd/modules/module_name/module_name.kmod

The updated boot code looks for /netbsd/kernel, /onetbsd/kernel, /netbsd.old/kernel
instead of /netbsd, /onetbsd, /netbsd.old.

However, when you manually want to boot a particular kernel, the
commandline in 'boot' has changed from

boot netbsd.test

to

boot netbsd.test/kernel

I'd like the following change:

When 'boot' finds that a path passed on the command line is a
directory, it automatically adds '/kernel' itself.

This way, the UI of the 'boot' command line doesn't change and admins don't need
to remember if they are on a KERNEL_DIR system or not.
>How-To-Repeat:
n/a
>Fix:
Please.

>Release-Note:

>Audit-Trail:
From: Christos Zoulas <christos@zoulas.com>
To: gnats-bugs@netbsd.org
Cc: kern-bug-people@netbsd.org,
 gnats-admin@netbsd.org,
 netbsd-bugs@netbsd.org
Subject: Re: kern/59374: KERNEL_DIR: support passing directories from 'boot'
Date: Mon, 28 Apr 2025 12:53:17 -0400

 --Apple-Mail=_AF6E9A8C-1266-425E-A77D-C50A43355E4C
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/plain;
 	charset=us-ascii

 Not easy to do because it can't simply stat the name because we are =
 accessing the disks using bios. The best we can do is probably
 try name/kernel, name/kernel.gz and then try name.

 christos=

 --Apple-Mail=_AF6E9A8C-1266-425E-A77D-C50A43355E4C
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
 	filename=signature.asc
 Content-Type: application/pgp-signature;
 	name=signature.asc
 Content-Description: Message signed with OpenPGP

 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - http://gpgtools.org

 iF0EARECAB0WIQS+BJlbqPkO0MDBdsRxESqxbLM7OgUCaA+yfQAKCRBxESqxbLM7
 OhjxAKDsUqCe0mz8nPQPBQCP7f+kB+YFSACgyzVDMSv6DYKkUHZDTwnK/1OWgk8=
 =077Y
 -----END PGP SIGNATURE-----

 --Apple-Mail=_AF6E9A8C-1266-425E-A77D-C50A43355E4C--

From: Paul Goyette <paul@whooppee.com>
To: Christos Zoulas <christos@zoulas.com>
Cc: gnats-bugs@netbsd.org, kern-bug-people@netbsd.org, gnats-admin@netbsd.org, 
    netbsd-bugs@netbsd.org
Subject: Re: kern/59374: KERNEL_DIR: support passing directories from 'boot'
Date: Mon, 28 Apr 2025 09:56:51 -0700 (PDT)

 On Mon, 28 Apr 2025, Christos Zoulas wrote:

 > Not easy to do because it can't simply stat the name because we are
 > accessing the disks using bios. The best we can do is probably
 > try name/kernel, name/kernel.gz and then try name.

 That sounds workable.



 +---------------------+--------------------------+----------------------+
 | Paul Goyette (.sig) | PGP Key fingerprint:     | E-mail addresses:    |
 | (Retired)           | 1B11 1849 721C 56C8 F63A | paul@whooppee.com    |
 | Software Developer  | 6E2E 05FD 15CE 9F2D 5102 | pgoyette@netbsd.org  |
 | & Network Engineer  |                          | pgoyette99@gmail.com |
 +---------------------+--------------------------+----------------------+

From: Christos Zoulas <christos@zoulas.com>
To: Paul Goyette <paul@whooppee.com>
Cc: gnats-bugs@netbsd.org,
 kern-bug-people@netbsd.org,
 gnats-admin@netbsd.org,
 netbsd-bugs@netbsd.org
Subject: Re: kern/59374: KERNEL_DIR: support passing directories from 'boot'
Date: Mon, 28 Apr 2025 12:58:00 -0400

 --Apple-Mail=_BA47B6B8-E466-4EF1-8B9D-AE62521905CB
 Content-Transfer-Encoding: 7bit
 Content-Type: text/plain;
 	charset=us-ascii

 But only if name does not contain a `/'...

 christos


 --Apple-Mail=_BA47B6B8-E466-4EF1-8B9D-AE62521905CB
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
 	filename=signature.asc
 Content-Type: application/pgp-signature;
 	name=signature.asc
 Content-Description: Message signed with OpenPGP

 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - http://gpgtools.org

 iF0EARECAB0WIQS+BJlbqPkO0MDBdsRxESqxbLM7OgUCaA+zmAAKCRBxESqxbLM7
 OlIsAJ9KJURrhqOsZGEPnTSeaeh+stvOLgCdF5hMMu3aSct34/oxqxy3VF1/AoA=
 =CKJY
 -----END PGP SIGNATURE-----

 --Apple-Mail=_BA47B6B8-E466-4EF1-8B9D-AE62521905CB--

From: Paul Goyette <paul@whooppee.com>
To: Christos Zoulas <christos@zoulas.com>
Cc: gnats-bugs@netbsd.org, kern-bug-people@netbsd.org, gnats-admin@netbsd.org, 
    netbsd-bugs@netbsd.org
Subject: Re: kern/59374: KERNEL_DIR: support passing directories from 'boot'
Date: Mon, 28 Apr 2025 13:18:08 -0700 (PDT)

 On Mon, 28 Apr 2025, Paul Goyette wrote:

 > On Mon, 28 Apr 2025, Christos Zoulas wrote:
 >
 >> Not easy to do because it can't simply stat the name because we are
 >> accessing the disks using bios. The best we can do is probably
 >> try name/kernel, name/kernel.gz and then try name.
 >
 > That sounds workable.

 Does this work for you?

 Index: boot2.c
 ===================================================================
 RCS file: /cvsroot/src/sys/arch/i386/stand/boot/boot2.c,v
 retrieving revision 1.80
 diff -u -p -r1.80 boot2.c
 --- boot2.c	26 Apr 2025 20:17:36 -0000	1.80
 +++ boot2.c	28 Apr 2025 20:16:01 -0000
 @@ -477,13 +477,34 @@ void
   command_boot(char *arg)
   {
   	char *filename;
 +	char path[512];
   	int howto;

   	if (!parseboot(arg, &filename, &howto))
   		return;

   	if (filename != NULL) {
 -		bootit(filename, howto);
 +		if ((strrchr(filename, '/') == '\0') {
 +
 +			/* filename/kernel */
 +			strcpy(path, filename);
 +			strcat(path, "/kernel");
 +			bootit(path, howto);
 +
 +			/* filename/kernel.gz */
 +			strcat(path, ".gz");
 +			bootit(path, howto || AB_VERBOSE);
 +
 +			/* filename */
 +			bootit(filename, howto);
 +
 +			/* filename.gz */
 +			strcpy(path, filename);
 +			strcat(path, ".gz");
 +			bootit(path, howto || AB_VERBOSE);
 +
 +		} else
 +			bootit(filename, howto);
   	} else {
   		int i;


 +---------------------+--------------------------+----------------------+
 | Paul Goyette (.sig) | PGP Key fingerprint:     | E-mail addresses:    |
 | (Retired)           | 1B11 1849 721C 56C8 F63A | paul@whooppee.com    |
 | Software Developer  | 6E2E 05FD 15CE 9F2D 5102 | pgoyette@netbsd.org  |
 | & Network Engineer  |                          | pgoyette99@gmail.com |
 +---------------------+--------------------------+----------------------+

From: Christos Zoulas <christos@zoulas.com>
To: gnats-bugs@netbsd.org
Cc: kern-bug-people@netbsd.org,
 gnats-admin@netbsd.org,
 netbsd-bugs@netbsd.org,
 Thomas Klausner <wiz@NetBSD.org>
Subject: Re: kern/59374: KERNEL_DIR: support passing directories from 'boot'
Date: Mon, 28 Apr 2025 16:48:39 -0400

 --Apple-Mail=_DFA14F01-7125-4D43-8947-FB2576ECA12C
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/plain;
 	charset=utf-8

 Perhaps:

 RCS file: /cvsroot/src/sys/arch/i386/stand/boot/boot2.c,v
 retrieving revision 1.80
 diff -u -p -u -r1.80 boot2.c
 --- boot2.c     26 Apr 2025 20:17:36 -0000      1.80
 +++ boot2.c     28 Apr 2025 20:47:31 -0000
 @@ -126,6 +126,7 @@ static const char *default_part_name;
 =20
  char *sprint_bootsel(const char *);
  static void bootit(const char *, int);
 +static void bootit2(const char *, size_t, int);
  void boot2(int, uint64_t);
 =20
  void   command_help(char *);
 @@ -473,6 +474,14 @@ command_quit(char *arg)
         panic("Could not reboot!");
  }
 =20
 +static void
 +bootit2(char *path, size_t plen, int howto)
 +{
 +       bootit(path, howto);
 +       snprintf(path, plen, "%s.gz", path);
 +       bootit(path, howto | AB_VERBOSE);
 +}
 +
  void
  command_boot(char *arg)
  {
 @@ -483,7 +492,13 @@ command_boot(char *arg)
                 return;
 =20
         if (filename !=3D NULL) {
 -               bootit(filename, howto);
 +               char path[512];
 +               if (strchr(filename, '/') =3D=3D NULL) {
 +                       snprintf(path, sizeof(path}, "%s/kernel", =
 filename);
 +                       bootit2(path, sizeof(path), howto);
 +               }
 +               snprintf(path, sizeof(path}, "%s", filename);
 +               bootit2(path, sizeof(path), howto);
         } else {
                 int i;
 =20


 > On Apr 28, 2025, at 4:20=E2=80=AFPM, Paul Goyette via gnats =
 <gnats-admin@netbsd.org> wrote:
 >=20
 > The following reply was made to PR kern/59374; it has been noted by =
 GNATS.
 >=20
 > From: Paul Goyette <paul@whooppee.com>
 > To: Christos Zoulas <christos@zoulas.com>
 > Cc: gnats-bugs@netbsd.org, kern-bug-people@netbsd.org, =
 gnats-admin@netbsd.org,=20
 >    netbsd-bugs@netbsd.org
 > Subject: Re: kern/59374: KERNEL_DIR: support passing directories from =
 'boot'
 > Date: Mon, 28 Apr 2025 13:18:08 -0700 (PDT)
 >=20
 > On Mon, 28 Apr 2025, Paul Goyette wrote:
 >=20
 >> On Mon, 28 Apr 2025, Christos Zoulas wrote:
 >>=20
 >>> Not easy to do because it can't simply stat the name because we are
 >>> accessing the disks using bios. The best we can do is probably
 >>> try name/kernel, name/kernel.gz and then try name.
 >>=20
 >> That sounds workable.
 >=20
 > Does this work for you?
 >=20
 > Index: boot2.c
 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 > RCS file: /cvsroot/src/sys/arch/i386/stand/boot/boot2.c,v
 > retrieving revision 1.80
 > diff -u -p -r1.80 boot2.c
 > --- boot2.c	26 Apr 2025 20:17:36 -0000	1.80
 > +++ boot2.c	28 Apr 2025 20:16:01 -0000
 > @@ -477,13 +477,34 @@ void
 >   command_boot(char *arg)
 >   {
 >   	char *filename;
 > +	char path[512];
 >   	int howto;
 >=20
 >   	if (!parseboot(arg, &filename, &howto))
 >   		return;
 >=20
 >   	if (filename !=3D NULL) {
 > -		bootit(filename, howto);
 > +		if ((strrchr(filename, '/') =3D=3D '\0') {
 > +
 > +			/* filename/kernel */
 > +			strcpy(path, filename);
 > +			strcat(path, "/kernel");
 > +			bootit(path, howto);
 > +
 > +			/* filename/kernel.gz */
 > +			strcat(path, ".gz");
 > +			bootit(path, howto || AB_VERBOSE);
 > +
 > +			/* filename */
 > +			bootit(filename, howto);
 > +
 > +			/* filename.gz */
 > +			strcpy(path, filename);
 > +			strcat(path, ".gz");
 > +			bootit(path, howto || AB_VERBOSE);
 > +
 > +		} else
 > +			bootit(filename, howto);
 >   	} else {
 >   		int i;
 >=20
 >=20
 > =
 +---------------------+--------------------------+----------------------+
 > | Paul Goyette (.sig) | PGP Key fingerprint:     | E-mail addresses:   =
  |
 > | (Retired)           | 1B11 1849 721C 56C8 F63A | paul@whooppee.com   =
  |
 > | Software Developer  | 6E2E 05FD 15CE 9F2D 5102 | pgoyette@netbsd.org =
  |
 > | & Network Engineer  |                          | =
 pgoyette99@gmail.com |
 > =
 +---------------------+--------------------------+----------------------+
 >=20


 --Apple-Mail=_DFA14F01-7125-4D43-8947-FB2576ECA12C
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
 	filename=signature.asc
 Content-Type: application/pgp-signature;
 	name=signature.asc
 Content-Description: Message signed with OpenPGP

 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - http://gpgtools.org

 iF0EARECAB0WIQS+BJlbqPkO0MDBdsRxESqxbLM7OgUCaA/ppwAKCRBxESqxbLM7
 OjtWAKDlH/PJ1+tauzByS4skxzs/2WbS+gCdFaVPDJwKMgwLuC8GpUdw7CKtJCI=
 =ZAoj
 -----END PGP SIGNATURE-----

 --Apple-Mail=_DFA14F01-7125-4D43-8947-FB2576ECA12C--

From: Paul Goyette <paul@whooppee.com>
To: Christos Zoulas <christos@zoulas.com>
Cc: gnats-bugs@netbsd.org, kern-bug-people@netbsd.org, gnats-admin@netbsd.org, 
    netbsd-bugs@netbsd.org, Thomas Klausner <wiz@NetBSD.org>
Subject: Re: kern/59374: KERNEL_DIR: support passing directories from 'boot'
Date: Mon, 28 Apr 2025 14:38:16 -0700 (PDT)

   This message is in MIME format.  The first part should be readable text,
   while the remaining parts are likely unreadable without MIME-aware tools.

 --0-1273842014-1745876296=:22606
 Content-Type: TEXT/PLAIN; charset=X-UNKNOWN; format=flowed
 Content-Transfer-Encoding: QUOTED-PRINTABLE

 On Mon, 28 Apr 2025, Christos Zoulas wrote:

 > Perhaps:

 Looks good - please go ahead and commit.  Or let me knnow if I
 should do it.

 > RCS file: /cvsroot/src/sys/arch/i386/stand/boot/boot2.c,v
 > retrieving revision 1.80
 > diff -u -p -u -r1.80 boot2.c
 > --- boot2.c     26 Apr 2025 20:17:36 -0000      1.80
 > +++ boot2.c     28 Apr 2025 20:47:31 -0000
 > @@ -126,6 +126,7 @@ static const char *default_part_name;
 >
 > char *sprint_bootsel(const char *);
 > static void bootit(const char *, int);
 > +static void bootit2(const char *, size_t, int);
 > void boot2(int, uint64_t);
 >
 > void   command_help(char *);
 > @@ -473,6 +474,14 @@ command_quit(char *arg)
 >        panic("Could not reboot!");
 > }
 >
 > +static void
 > +bootit2(char *path, size_t plen, int howto)
 > +{
 > +       bootit(path, howto);
 > +       snprintf(path, plen, "%s.gz", path);
 > +       bootit(path, howto | AB_VERBOSE);
 > +}
 > +
 > void
 > command_boot(char *arg)
 > {
 > @@ -483,7 +492,13 @@ command_boot(char *arg)
 >                return;
 >
 >        if (filename !=3D NULL) {
 > -               bootit(filename, howto);
 > +               char path[512];
 > +               if (strchr(filename, '/') =3D=3D NULL) {
 > +                       snprintf(path, sizeof(path}, "%s/kernel", filenam=
 e);
 > +                       bootit2(path, sizeof(path), howto);
 > +               }
 > +               snprintf(path, sizeof(path}, "%s", filename);
 > +               bootit2(path, sizeof(path), howto);
 >        } else {
 >                int i;
 >
 >
 >
 >> On Apr 28, 2025, at 4:20=E2=80=AFPM, Paul Goyette via gnats <gnats-admin=
 @netbsd.org> wrote:
 >>
 >> The following reply was made to PR kern/59374; it has been noted by GNAT=
 S.
 >>
 >> From: Paul Goyette <paul@whooppee.com>
 >> To: Christos Zoulas <christos@zoulas.com>
 >> Cc: gnats-bugs@netbsd.org, kern-bug-people@netbsd.org, gnats-admin@netbs=
 d.org,
 >>    netbsd-bugs@netbsd.org
 >> Subject: Re: kern/59374: KERNEL_DIR: support passing directories from 'b=
 oot'
 >> Date: Mon, 28 Apr 2025 13:18:08 -0700 (PDT)
 >>
 >> On Mon, 28 Apr 2025, Paul Goyette wrote:
 >>
 >>> On Mon, 28 Apr 2025, Christos Zoulas wrote:
 >>>
 >>>> Not easy to do because it can't simply stat the name because we are
 >>>> accessing the disks using bios. The best we can do is probably
 >>>> try name/kernel, name/kernel.gz and then try name.
 >>>
 >>> That sounds workable.
 >>
 >> Does this work for you?
 >>
 >> Index: boot2.c
 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 >> RCS file: /cvsroot/src/sys/arch/i386/stand/boot/boot2.c,v
 >> retrieving revision 1.80
 >> diff -u -p -r1.80 boot2.c
 >> --- boot2.c=0926 Apr 2025 20:17:36 -0000=091.80
 >> +++ boot2.c=0928 Apr 2025 20:16:01 -0000
 >> @@ -477,13 +477,34 @@ void
 >>   command_boot(char *arg)
 >>   {
 >>   =09char *filename;
 >> +=09char path[512];
 >>   =09int howto;
 >>
 >>   =09if (!parseboot(arg, &filename, &howto))
 >>   =09=09return;
 >>
 >>   =09if (filename !=3D NULL) {
 >> -=09=09bootit(filename, howto);
 >> +=09=09if ((strrchr(filename, '/') =3D=3D '\0') {
 >> +
 >> +=09=09=09/* filename/kernel */
 >> +=09=09=09strcpy(path, filename);
 >> +=09=09=09strcat(path, "/kernel");
 >> +=09=09=09bootit(path, howto);
 >> +
 >> +=09=09=09/* filename/kernel.gz */
 >> +=09=09=09strcat(path, ".gz");
 >> +=09=09=09bootit(path, howto || AB_VERBOSE);
 >> +
 >> +=09=09=09/* filename */
 >> +=09=09=09bootit(filename, howto);
 >> +
 >> +=09=09=09/* filename.gz */
 >> +=09=09=09strcpy(path, filename);
 >> +=09=09=09strcat(path, ".gz");
 >> +=09=09=09bootit(path, howto || AB_VERBOSE);
 >> +
 >> +=09=09} else
 >> +=09=09=09bootit(filename, howto);
 >>   =09} else {
 >>   =09=09int i;
 >>
 >>
 >> +---------------------+--------------------------+----------------------=
 +
 >> | Paul Goyette (.sig) | PGP Key fingerprint:     | E-mail addresses:    =
 |
 >> | (Retired)           | 1B11 1849 721C 56C8 F63A | paul@whooppee.com    =
 |
 >> | Software Developer  | 6E2E 05FD 15CE 9F2D 5102 | pgoyette@netbsd.org  =
 |
 >> | & Network Engineer  |                          | pgoyette99@gmail.com =
 |
 >> +---------------------+--------------------------+----------------------=
 +
 >>
 >
 >

 +---------------------+--------------------------+----------------------+
 | Paul Goyette (.sig) | PGP Key fingerprint:     | E-mail addresses:    |
 | (Retired)           | 1B11 1849 721C 56C8 F63A | paul@whooppee.com    |
 | Software Developer  | 6E2E 05FD 15CE 9F2D 5102 | pgoyette@netbsd.org  |
 | & Network Engineer  |                          | pgoyette99@gmail.com |
 +---------------------+--------------------------+----------------------+
 --0-1273842014-1745876296=:22606--

From: Christos Zoulas <christos@zoulas.com>
To: Paul Goyette <paul@whooppee.com>
Cc: gnats-bugs@netbsd.org,
 kern-bug-people@netbsd.org,
 gnats-admin@netbsd.org,
 netbsd-bugs@netbsd.org,
 Thomas Klausner <wiz@NetBSD.org>
Subject: Re: kern/59374: KERNEL_DIR: support passing directories from 'boot'
Date: Mon, 28 Apr 2025 17:59:23 -0400

 --Apple-Mail=_B3802621-E912-4C11-8514-0ADBA204713E
 Content-Type: multipart/alternative;
 	boundary="Apple-Mail=_B4FED3DB-A93B-4323-9CD3-02AAF1A1C31C"


 --Apple-Mail=_B4FED3DB-A93B-4323-9CD3-02AAF1A1C31C
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/plain;
 	charset=utf-8

 Test it and commit it :-)

 christos

 > On Apr 28, 2025, at 5:38=E2=80=AFPM, Paul Goyette <paul@whooppee.com> =
 wrote:
 >=20
 > On Mon, 28 Apr 2025, Christos Zoulas wrote:
 >=20
 >> Perhaps:
 >=20
 > Looks good - please go ahead and commit.  Or let me knnow if I
 > should do it.
 >=20
 >> RCS file: /cvsroot/src/sys/arch/i386/stand/boot/boot2.c,v
 >> retrieving revision 1.80
 >> diff -u -p -u -r1.80 boot2.c
 >> --- boot2.c     26 Apr 2025 20:17:36 -0000      1.80
 >> +++ boot2.c     28 Apr 2025 20:47:31 -0000
 >> @@ -126,6 +126,7 @@ static const char *default_part_name;
 >>=20
 >> char *sprint_bootsel(const char *);
 >> static void bootit(const char *, int);
 >> +static void bootit2(const char *, size_t, int);
 >> void boot2(int, uint64_t);
 >>=20
 >> void   command_help(char *);
 >> @@ -473,6 +474,14 @@ command_quit(char *arg)
 >>       panic("Could not reboot!");
 >> }
 >>=20
 >> +static void
 >> +bootit2(char *path, size_t plen, int howto)
 >> +{
 >> +       bootit(path, howto);
 >> +       snprintf(path, plen, "%s.gz", path);
 >> +       bootit(path, howto | AB_VERBOSE);
 >> +}
 >> +
 >> void
 >> command_boot(char *arg)
 >> {
 >> @@ -483,7 +492,13 @@ command_boot(char *arg)
 >>               return;
 >>=20
 >>       if (filename !=3D NULL) {
 >> -               bootit(filename, howto);
 >> +               char path[512];
 >> +               if (strchr(filename, '/') =3D=3D NULL) {
 >> +                       snprintf(path, sizeof(path}, "%s/kernel", =
 filename);
 >> +                       bootit2(path, sizeof(path), howto);
 >> +               }
 >> +               snprintf(path, sizeof(path}, "%s", filename);
 >> +               bootit2(path, sizeof(path), howto);
 >>       } else {
 >>               int i;
 >>=20
 >>=20
 >>=20
 >>> On Apr 28, 2025, at 4:20=E2=80=AFPM, Paul Goyette via gnats =
 <gnats-admin@netbsd.org> wrote:
 >>>=20
 >>> The following reply was made to PR kern/59374; it has been noted by =
 GNATS.
 >>>=20
 >>> From: Paul Goyette <paul@whooppee.com>
 >>> To: Christos Zoulas <christos@zoulas.com>
 >>> Cc: gnats-bugs@netbsd.org, kern-bug-people@netbsd.org, =
 gnats-admin@netbsd.org,
 >>>   netbsd-bugs@netbsd.org
 >>> Subject: Re: kern/59374: KERNEL_DIR: support passing directories =
 from 'boot'
 >>> Date: Mon, 28 Apr 2025 13:18:08 -0700 (PDT)
 >>>=20
 >>> On Mon, 28 Apr 2025, Paul Goyette wrote:
 >>>=20
 >>>> On Mon, 28 Apr 2025, Christos Zoulas wrote:
 >>>>=20
 >>>>> Not easy to do because it can't simply stat the name because we =
 are
 >>>>> accessing the disks using bios. The best we can do is probably
 >>>>> try name/kernel, name/kernel.gz and then try name.
 >>>>=20
 >>>> That sounds workable.
 >>>=20
 >>> Does this work for you?
 >>>=20
 >>> Index: boot2.c
 >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 >>> RCS file: /cvsroot/src/sys/arch/i386/stand/boot/boot2.c,v
 >>> retrieving revision 1.80
 >>> diff -u -p -r1.80 boot2.c
 >>> --- boot2.c	26 Apr 2025 20:17:36 -0000	1.80
 >>> +++ boot2.c	28 Apr 2025 20:16:01 -0000
 >>> @@ -477,13 +477,34 @@ void
 >>>  command_boot(char *arg)
 >>>  {
 >>>  	char *filename;
 >>> +	char path[512];
 >>>  	int howto;
 >>>=20
 >>>  	if (!parseboot(arg, &filename, &howto))
 >>>  		return;
 >>>=20
 >>>  	if (filename !=3D NULL) {
 >>> -		bootit(filename, howto);
 >>> +		if ((strrchr(filename, '/') =3D=3D '\0') {
 >>> +
 >>> +			/* filename/kernel */
 >>> +			strcpy(path, filename);
 >>> +			strcat(path, "/kernel");
 >>> +			bootit(path, howto);
 >>> +
 >>> +			/* filename/kernel.gz */
 >>> +			strcat(path, ".gz");
 >>> +			bootit(path, howto || AB_VERBOSE);
 >>> +
 >>> +			/* filename */
 >>> +			bootit(filename, howto);
 >>> +
 >>> +			/* filename.gz */
 >>> +			strcpy(path, filename);
 >>> +			strcat(path, ".gz");
 >>> +			bootit(path, howto || AB_VERBOSE);
 >>> +
 >>> +		} else
 >>> +			bootit(filename, howto);
 >>>  	} else {
 >>>  		int i;
 >>>=20
 >>>=20
 >>> =
 +---------------------+--------------------------+----------------------+
 >>> | Paul Goyette (.sig) | PGP Key fingerprint:     | E-mail addresses: =
    |
 >>> | (Retired)           | 1B11 1849 721C 56C8 F63A | paul@whooppee.com =
    |
 >>> | Software Developer  | 6E2E 05FD 15CE 9F2D 5102 | =
 pgoyette@netbsd.org  |
 >>> | & Network Engineer  |                          | =
 pgoyette99@gmail.com |
 >>> =
 +---------------------+--------------------------+----------------------+
 >>>=20
 >>=20
 >>=20
 >=20
 > =
 +---------------------+--------------------------+----------------------+
 > | Paul Goyette (.sig) | PGP Key fingerprint:     | E-mail addresses:   =
  |
 > | (Retired)           | 1B11 1849 721C 56C8 F63A | paul@whooppee.com =
 <mailto:paul@whooppee.com>    |
 > | Software Developer  | 6E2E 05FD 15CE 9F2D 5102 | pgoyette@netbsd.org =
 <mailto:pgoyette@netbsd.org>  |
 > | & Network Engineer  |                          | =
 pgoyette99@gmail.com <mailto:pgoyette99@gmail.com> |
 > =
 +---------------------+--------------------------+----------------------+


 --Apple-Mail=_B4FED3DB-A93B-4323-9CD3-02AAF1A1C31C
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/html;
 	charset=utf-8

 <html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
 charset=3Dutf-8"></head><body style=3D"overflow-wrap: break-word; =
 -webkit-nbsp-mode: space; line-break: after-white-space;">Test it and =
 commit it :-)<div><br></div><div>christos<br =
 id=3D"lineBreakAtBeginningOfMessage"><div><br><blockquote =
 type=3D"cite"><div>On Apr 28, 2025, at 5:38=E2=80=AFPM, Paul Goyette =
 &lt;paul@whooppee.com&gt; wrote:</div><br =
 class=3D"Apple-interchange-newline"><div><meta charset=3D"UTF-8"><span =
 style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
 letter-spacing: normal; text-align: start; text-indent: 0px; =
 text-transform: none; white-space: normal; word-spacing: 0px; =
 -webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
 display: inline !important;">On Mon, 28 Apr 2025, Christos Zoulas =
 wrote:</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
 Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
 normal; font-weight: 400; letter-spacing: normal; text-align: start; =
 text-indent: 0px; text-transform: none; white-space: normal; =
 word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
 none;"><br style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; =
 font-size: 12px; font-style: normal; font-variant-caps: normal; =
 font-weight: 400; letter-spacing: normal; text-align: start; =
 text-indent: 0px; text-transform: none; white-space: normal; =
 word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
 none;"><blockquote type=3D"cite" style=3D"font-family: Helvetica; =
 font-size: 12px; font-style: normal; font-variant-caps: normal; =
 font-weight: 400; letter-spacing: normal; orphans: auto; text-align: =
 start; text-indent: 0px; text-transform: none; white-space: normal; =
 widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
 text-decoration: none;">Perhaps:<br></blockquote><br style=3D"caret-color:=
  rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
 normal; font-variant-caps: normal; font-weight: 400; letter-spacing: =
 normal; text-align: start; text-indent: 0px; text-transform: none; =
 white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
 text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
 font-family: Helvetica; font-size: 12px; font-style: normal; =
 font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
 text-align: start; text-indent: 0px; text-transform: none; white-space: =
 normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
 text-decoration: none; float: none; display: inline !important;">Looks =
 good - please go ahead and commit. &nbsp;Or let me knnow if I</span><br =
 style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
 letter-spacing: normal; text-align: start; text-indent: 0px; =
 text-transform: none; white-space: normal; word-spacing: 0px; =
 -webkit-text-stroke-width: 0px; text-decoration: none;"><span =
 style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
 letter-spacing: normal; text-align: start; text-indent: 0px; =
 text-transform: none; white-space: normal; word-spacing: 0px; =
 -webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
 display: inline !important;">should do it.</span><br style=3D"caret-color:=
  rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
 normal; font-variant-caps: normal; font-weight: 400; letter-spacing: =
 normal; text-align: start; text-indent: 0px; text-transform: none; =
 white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
 text-decoration: none;"><br style=3D"caret-color: rgb(0, 0, 0); =
 font-family: Helvetica; font-size: 12px; font-style: normal; =
 font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
 text-align: start; text-indent: 0px; text-transform: none; white-space: =
 normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
 text-decoration: none;"><blockquote type=3D"cite" style=3D"font-family: =
 Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
 normal; font-weight: 400; letter-spacing: normal; orphans: auto; =
 text-align: start; text-indent: 0px; text-transform: none; white-space: =
 normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
 text-decoration: none;">RCS file: =
 /cvsroot/src/sys/arch/i386/stand/boot/boot2.c,v<br>retrieving revision =
 1.80<br>diff -u -p -u -r1.80 boot2.c<br>--- boot2.c =
 &nbsp;&nbsp;&nbsp;&nbsp;26 Apr 2025 20:17:36 -0000 =
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.80<br>+++ boot2.c =
 &nbsp;&nbsp;&nbsp;&nbsp;28 Apr 2025 20:47:31 -0000<br>@@ -126,6 +126,7 =
 @@ static const char *default_part_name;<br><br>char =
 *sprint_bootsel(const char *);<br>static void bootit(const char *, =
 int);<br>+static void bootit2(const char *, size_t, int);<br>void =
 boot2(int, uint64_t);<br><br>void &nbsp;&nbsp;command_help(char =
 *);<br>@@ -473,6 +474,14 @@ command_quit(char =
 *arg)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;panic("Could not =
 reboot!");<br>}<br><br>+static void<br>+bootit2(char *path, size_t plen, =
 int howto)<br>+{<br>+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bootit(path, =
 howto);<br>+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;snprintf(path, plen, =
 "%s.gz", path);<br>+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bootit(path, =
 howto | AB_VERBOSE);<br>+}<br>+<br>void<br>command_boot(char =
 *arg)<br>{<br>@@ -483,7 +492,13 @@ command_boot(char =
 *arg)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
 ;&nbsp;&nbsp;&nbsp;return;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if =
 (filename !=3D NULL) {<br>- =
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
 bsp;&nbsp;bootit(filename, howto);<br>+ =
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
 bsp;&nbsp;char path[512];<br>+ =
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
 bsp;&nbsp;if (strchr(filename, '/') =3D=3D NULL) {<br>+ =
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
 bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;snprintf(path, =
 sizeof(path}, "%s/kernel", filename);<br>+ =
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
 bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bootit2(path, =
 sizeof(path), howto);<br>+ =
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
 bsp;&nbsp;}<br>+ =
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
 bsp;&nbsp;snprintf(path, sizeof(path}, "%s", filename);<br>+ =
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
 bsp;&nbsp;bootit2(path, sizeof(path), =
 howto);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else =
 {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
 sp;&nbsp;&nbsp;int i;<br><br><br><br><blockquote type=3D"cite">On Apr =
 28, 2025, at 4:20=E2=80=AFPM, Paul Goyette via gnats =
 &lt;gnats-admin@netbsd.org&gt; wrote:<br><br>The following reply was =
 made to PR kern/59374; it has been noted by GNATS.<br><br>From: Paul =
 Goyette &lt;paul@whooppee.com&gt;<br>To: Christos Zoulas =
 &lt;christos@zoulas.com&gt;<br>Cc: gnats-bugs@netbsd.org, =
 kern-bug-people@netbsd.org, =
 gnats-admin@netbsd.org,<br>&nbsp;&nbsp;netbsd-bugs@netbsd.org<br>Subject: =
 Re: kern/59374: KERNEL_DIR: support passing directories from =
 'boot'<br>Date: Mon, 28 Apr 2025 13:18:08 -0700 (PDT)<br><br>On Mon, 28 =
 Apr 2025, Paul Goyette wrote:<br><br><blockquote type=3D"cite">On Mon, =
 28 Apr 2025, Christos Zoulas wrote:<br><br><blockquote type=3D"cite">Not =
 easy to do because it can't simply stat the name because we =
 are<br>accessing the disks using bios. The best we can do is =
 probably<br>try name/kernel, name/kernel.gz and then try =
 name.<br></blockquote><br>That sounds workable.<br></blockquote><br>Does =
 this work for you?<br><br>Index: =
 boot2.c<br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br>RCS =
 file: /cvsroot/src/sys/arch/i386/stand/boot/boot2.c,v<br>retrieving =
 revision 1.80<br>diff -u -p -r1.80 boot2.c<br>--- boot2.c<span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>26 Apr =
 2025 20:17:36 -0000<span class=3D"Apple-tab-span" style=3D"white-space: =
 pre;">	</span>1.80<br>+++ boot2.c<span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span>28 Apr 2025 20:16:01 -0000<br>@@ =
 -477,13 +477,34 @@ void<br>&nbsp;command_boot(char =
 *arg)<br>&nbsp;{<br>&nbsp;<span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span>char *filename;<br>+<span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>char =
 path[512];<br>&nbsp;<span class=3D"Apple-tab-span" style=3D"white-space: =
 pre;">	</span>int howto;<br><br>&nbsp;<span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span>if (!parseboot(arg, =
 &amp;filename, &amp;howto))<br>&nbsp;<span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span><span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span>return;<br><br>&nbsp;<span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>if =
 (filename !=3D NULL) {<br>-<span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span><span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span>bootit(filename, =
 howto);<br>+<span class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
 </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
 </span>if ((strrchr(filename, '/') =3D=3D '\0') {<br>+<br>+<span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>/* =
 filename/kernel */<br>+<span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span><span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span><span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span>strcpy(path, filename);<br>+<span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
 </span>strcat(path, "/kernel");<br>+<span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span><span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span><span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span>bootit(path, =
 howto);<br>+<br>+<span class=3D"Apple-tab-span" style=3D"white-space: =
 pre;">	</span><span class=3D"Apple-tab-span" style=3D"white-space: =
 pre;">	</span><span class=3D"Apple-tab-span" style=3D"white-space: =
 pre;">	</span>/* filename/kernel.gz */<br>+<span class=3D"Apple-tab-span"=
  style=3D"white-space: pre;">	</span><span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span><span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span>strcat(path, ".gz");<br>+<span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
 </span>bootit(path, howto || AB_VERBOSE);<br>+<br>+<span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>/* =
 filename */<br>+<span class=3D"Apple-tab-span" style=3D"white-space: =
 pre;">	</span><span class=3D"Apple-tab-span" style=3D"white-space: =
 pre;">	</span><span class=3D"Apple-tab-span" style=3D"white-space: =
 pre;">	</span>bootit(filename, howto);<br>+<br>+<span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>/* =
 filename.gz */<br>+<span class=3D"Apple-tab-span" style=3D"white-space: =
 pre;">	</span><span class=3D"Apple-tab-span" style=3D"white-space: =
 pre;">	</span><span class=3D"Apple-tab-span" style=3D"white-space: =
 pre;">	</span>strcpy(path, filename);<br>+<span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span><span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span><span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span>strcat(path, ".gz");<br>+<span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
 </span>bootit(path, howto || AB_VERBOSE);<br>+<br>+<span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>} =
 else<br>+<span class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
 </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
 </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
 </span>bootit(filename, howto);<br>&nbsp;<span class=3D"Apple-tab-span" =
 style=3D"white-space: pre;">	</span>} else {<br>&nbsp;<span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
 class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>int =
 i;<br><br><br>+---------------------+--------------------------+----------=
 ------------+<br>| Paul Goyette (.sig) | PGP Key fingerprint: =
 &nbsp;&nbsp;&nbsp;&nbsp;| E-mail addresses: &nbsp;&nbsp;&nbsp;|<br>| =
 (Retired) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| =
 1B11 1849 721C 56C8 F63A | paul@whooppee.com &nbsp;&nbsp;&nbsp;|<br>| =
 Software Developer &nbsp;| 6E2E 05FD 15CE 9F2D 5102 | =
 pgoyette@netbsd.org &nbsp;|<br>| &amp; Network Engineer &nbsp;| =
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
 bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
 p;| pgoyette99@gmail.com =
 |<br>+---------------------+--------------------------+-------------------=
 ---+<br><br></blockquote><br><br></blockquote><br style=3D"caret-color: =
 rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
 normal; font-variant-caps: normal; font-weight: 400; letter-spacing: =
 normal; text-align: start; text-indent: 0px; text-transform: none; =
 white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
 text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
 font-family: Helvetica; font-size: 12px; font-style: normal; =
 font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
 text-align: start; text-indent: 0px; text-transform: none; white-space: =
 normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
 text-decoration: none; float: none; display: inline =
 !important;">+---------------------+--------------------------+-----------=
 -----------+</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
 Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
 normal; font-weight: 400; letter-spacing: normal; text-align: start; =
 text-indent: 0px; text-transform: none; white-space: normal; =
 word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
 none;"><span style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; =
 font-size: 12px; font-style: normal; font-variant-caps: normal; =
 font-weight: 400; letter-spacing: normal; text-align: start; =
 text-indent: 0px; text-transform: none; white-space: normal; =
 word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
 none; float: none; display: inline !important;">| Paul Goyette (.sig) | =
 PGP Key fingerprint: &nbsp;&nbsp;&nbsp;&nbsp;| E-mail addresses: =
 &nbsp;&nbsp;&nbsp;|</span><br style=3D"caret-color: rgb(0, 0, 0); =
 font-family: Helvetica; font-size: 12px; font-style: normal; =
 font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
 text-align: start; text-indent: 0px; text-transform: none; white-space: =
 normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
 text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
 font-family: Helvetica; font-size: 12px; font-style: normal; =
 font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
 text-align: start; text-indent: 0px; text-transform: none; white-space: =
 normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
 text-decoration: none; float: none; display: inline !important;">| =
 (Retired) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| =
 1B11 1849 721C 56C8 F63A |<span =
 class=3D"Apple-converted-space">&nbsp;</span></span><a =
 href=3D"mailto:paul@whooppee.com" style=3D"font-family: Helvetica; =
 font-size: 12px; font-style: normal; font-variant-caps: normal; =
 font-weight: 400; letter-spacing: normal; orphans: auto; text-align: =
 start; text-indent: 0px; text-transform: none; white-space: normal; =
 widows: auto; word-spacing: 0px; -webkit-text-stroke-width: =
 0px;">paul@whooppee.com</a><span style=3D"caret-color: rgb(0, 0, 0); =
 font-family: Helvetica; font-size: 12px; font-style: normal; =
 font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
 text-align: start; text-indent: 0px; text-transform: none; white-space: =
 normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
 text-decoration: none; float: none; display: inline !important;"><span =
 class=3D"Apple-converted-space">&nbsp;</span>&nbsp;&nbsp;&nbsp;|</span><br=
  style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
 letter-spacing: normal; text-align: start; text-indent: 0px; =
 text-transform: none; white-space: normal; word-spacing: 0px; =
 -webkit-text-stroke-width: 0px; text-decoration: none;"><span =
 style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
 letter-spacing: normal; text-align: start; text-indent: 0px; =
 text-transform: none; white-space: normal; word-spacing: 0px; =
 -webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
 display: inline !important;">| Software Developer &nbsp;| 6E2E 05FD 15CE =
 9F2D 5102 |<span class=3D"Apple-converted-space">&nbsp;</span></span><a =
 href=3D"mailto:pgoyette@netbsd.org" style=3D"font-family: Helvetica; =
 font-size: 12px; font-style: normal; font-variant-caps: normal; =
 font-weight: 400; letter-spacing: normal; orphans: auto; text-align: =
 start; text-indent: 0px; text-transform: none; white-space: normal; =
 widows: auto; word-spacing: 0px; -webkit-text-stroke-width: =
 0px;">pgoyette@netbsd.org</a><span style=3D"caret-color: rgb(0, 0, 0); =
 font-family: Helvetica; font-size: 12px; font-style: normal; =
 font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
 text-align: start; text-indent: 0px; text-transform: none; white-space: =
 normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
 text-decoration: none; float: none; display: inline !important;"><span =
 class=3D"Apple-converted-space">&nbsp;</span>&nbsp;|</span><br =
 style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
 letter-spacing: normal; text-align: start; text-indent: 0px; =
 text-transform: none; white-space: normal; word-spacing: 0px; =
 -webkit-text-stroke-width: 0px; text-decoration: none;"><span =
 style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
 letter-spacing: normal; text-align: start; text-indent: 0px; =
 text-transform: none; white-space: normal; word-spacing: 0px; =
 -webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
 display: inline !important;">| &amp; Network Engineer &nbsp;| =
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
 bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
 p;|<span class=3D"Apple-converted-space">&nbsp;</span></span><a =
 href=3D"mailto:pgoyette99@gmail.com" style=3D"font-family: Helvetica; =
 font-size: 12px; font-style: normal; font-variant-caps: normal; =
 font-weight: 400; letter-spacing: normal; orphans: auto; text-align: =
 start; text-indent: 0px; text-transform: none; white-space: normal; =
 widows: auto; word-spacing: 0px; -webkit-text-stroke-width: =
 0px;">pgoyette99@gmail.com</a><span style=3D"caret-color: rgb(0, 0, 0); =
 font-family: Helvetica; font-size: 12px; font-style: normal; =
 font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
 text-align: start; text-indent: 0px; text-transform: none; white-space: =
 normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
 text-decoration: none; float: none; display: inline !important;"><span =
 class=3D"Apple-converted-space">&nbsp;</span>|</span><br =
 style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
 letter-spacing: normal; text-align: start; text-indent: 0px; =
 text-transform: none; white-space: normal; word-spacing: 0px; =
 -webkit-text-stroke-width: 0px; text-decoration: none;"><span =
 style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
 letter-spacing: normal; text-align: start; text-indent: 0px; =
 text-transform: none; white-space: normal; word-spacing: 0px; =
 -webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
 display: inline =
 !important;">+---------------------+--------------------------+-----------=
 -----------+</span></div></blockquote></div><br></div></body></html>=

 --Apple-Mail=_B4FED3DB-A93B-4323-9CD3-02AAF1A1C31C--

 --Apple-Mail=_B3802621-E912-4C11-8514-0ADBA204713E
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
 	filename=signature.asc
 Content-Type: application/pgp-signature;
 	name=signature.asc
 Content-Description: Message signed with OpenPGP

 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - http://gpgtools.org

 iF0EARECAB0WIQS+BJlbqPkO0MDBdsRxESqxbLM7OgUCaA/6OwAKCRBxESqxbLM7
 OqxxAJ9zENYqUj+GjWALkZfAUgAfpOOsEQCeI5euInxPCtBEh63/aJ31iQGGv1U=
 =nGNw
 -----END PGP SIGNATURE-----

 --Apple-Mail=_B3802621-E912-4C11-8514-0ADBA204713E--

Responsible-Changed-From-To: kern-bug-people->pgoyette
Responsible-Changed-By: pgoyette@NetBSD.org
Responsible-Changed-When: Tue, 06 May 2025 18:38:16 +0000
Responsible-Changed-Why:
it's mine


State-Changed-From-To: open->closed
State-Changed-By: pgoyette@NetBSD.org
State-Changed-When: Tue, 06 May 2025 18:38:16 +0000
State-Changed-Why:
no longer an issue


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.47 2022/09/11 19:34:41 kim Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2025 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.