NetBSD Problem Report #57909
From www@netbsd.org Thu Feb 8 15:09:28 2024
Return-Path: <www@netbsd.org>
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))
(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
by mollari.NetBSD.org (Postfix) with ESMTPS id 7C1141A9238
for <gnats-bugs@gnats.NetBSD.org>; Thu, 8 Feb 2024 15:09:28 +0000 (UTC)
Message-Id: <20240208150927.97D9E1A9239@mollari.NetBSD.org>
Date: Thu, 8 Feb 2024 15:09:27 +0000 (UTC)
From: jbglaw@lug-owl.de
Reply-To: jbglaw@lug-owl.de
To: gnats-bugs@NetBSD.org
Subject: [RB] hp300/m68k mkboot: Don't include (build) timestamp when doing a reproducible build
X-Send-Pr-Version: www-1.0
>Number: 57909
>Category: misc
>Synopsis: [RB] hp300/m68k mkboot: Don't include (build) timestamp when doing a reproducible build
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: misc-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Feb 08 15:10:00 +0000 2024
>Last-Modified: Sat Jun 22 11:00:04 +0000 2024
>Originator: Jan-Benedict Glaw
>Release: current
>Organization:
>Environment:
Linux lili 5.16.0-4-amd64 #1 SMP PREEMPT Debian 5.16.12-1 (2022-03-08) x86_64 GNU/Linux
>Description:
I'm running lots of CI builds and started to actually also test reproducibility. For hp300/m68k, I noticed that build artifacts contain a timestamp.
>How-To-Repeat:
Build twice for hp300/m68k with `build.sh [...] -P` and compare artifacts.
>Fix:
diff --git a/sys/arch/hp300/stand/Makefile.buildboot b/sys/arch/hp300/stand/Makefile.buildboot
index 1f528d5d3f96..2ff61444b7e4 100644
--- a/sys/arch/hp300/stand/Makefile.buildboot
+++ b/sys/arch/hp300/stand/Makefile.buildboot
@@ -29,9 +29,13 @@ LIBC=
LIBCRTBEGIN=
LIBCRTEND=
+.if ${MKREPRO_TIMESTAMP:Uno} != "no"
+HP300MKBOOT_TIMESTAMP=-t "${MKREPRO_TIMESTAMP}"
+.endif
+
${PROG}: ${PROGAOUT}
${OBJCOPY} --output-target=binary ${PROGAOUT} ${PROGAOUT}.bin
- ${TOOL_HP300MKBOOT} -l 0x${RELOC} ${PROGAOUT}.bin ${PROG}
+ ${TOOL_HP300MKBOOT} -l 0x${RELOC} ${HP300MKBOOT_TIMESTAMP} ${PROGAOUT}.bin ${PROG}
rm -f ${PROGAOUT}.bin
.include "${S}/conf/newvers_stand.mk"
diff --git a/sys/arch/hp300/stand/mkboot/mkboot.c b/sys/arch/hp300/stand/mkboot/mkboot.c
index 5f7bd7fecc1f..914d094c0f49 100644
--- a/sys/arch/hp300/stand/mkboot/mkboot.c
+++ b/sys/arch/hp300/stand/mkboot/mkboot.c
@@ -83,6 +83,7 @@ int loadpoint;
struct load ld;
struct lifvol lifv;
struct lifdir lifd[LIF_NUMDIR];
+time_t repro_epoch = 0;
int main(int, char **);
void bcddate(char *, char *);
@@ -127,6 +128,15 @@ main(int argc, char **argv)
argv++;
argc--;
}
+ if (!strcmp(argv[0], "-t")) {
+ argv++;
+ argc--;
+ if (argc == 0)
+ usage();
+ repro_epoch = atol(argv[0]);
+ argv++;
+ argc--;
+ }
if (!lpflag || argc == 0)
usage();
n1 = argv[0];
@@ -251,7 +261,7 @@ usage(void)
{
fprintf(stderr,
- "usage: mkboot -l loadpoint prog1 [ prog2 ] outfile\n");
+ "usage: mkboot -l loadpoint [-t epoch] prog1 [ prog2 ] outfile\n");
exit(1);
}
@@ -284,8 +294,12 @@ bcddate(char *name, char *toc)
struct stat statb;
struct tm *tm;
- stat(name, &statb);
- tm = localtime(&statb.st_ctime);
+ if (repro_epoch)
+ tm = gmtime(&repro_epoch);
+ else {
+ stat(name, &statb);
+ tm = localtime(&statb.st_ctime);
+ }
*toc = ((tm->tm_mon+1) / 10) << 4;
*toc++ |= (tm->tm_mon+1) % 10;
*toc = (tm->tm_mday / 10) << 4;
>Audit-Trail:
From: "Christos Zoulas" <christos@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/57909 CVS commit: src/sys/arch/hp300/stand
Date: Thu, 8 Feb 2024 13:10:34 -0500
Module Name: src
Committed By: christos
Date: Thu Feb 8 18:10:34 UTC 2024
Modified Files:
src/sys/arch/hp300/stand: Makefile.buildboot
src/sys/arch/hp300/stand/mkboot: mkboot.c
Log Message:
PR/57909: Jan-Benedict Glaw: Don't include (build) timestamp when doing a
reproducible build
To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 src/sys/arch/hp300/stand/Makefile.buildboot
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/hp300/stand/mkboot/mkboot.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
From: "Izumi Tsutsui" <tsutsui@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/57909 CVS commit: src/sys/arch/hp300/stand/mkboot
Date: Sun, 5 May 2024 07:36:38 +0000
Module Name: src
Committed By: tsutsui
Date: Sun May 5 07:36:38 UTC 2024
Modified Files:
src/sys/arch/hp300/stand/mkboot: mkboot.c
Log Message:
Fix integer overflow of strtol(3) for "loadpoint" address on ILP32 hosts.
This strtol(3) was introduced in rev 1.12 for PR/57909 after netbsd-10,
but it returns LONG_MAX (0x7FFFFFFF) for 0xFFF00000 on ILP32 hosts and
the wrong loadpoint causes "NOT ENOUGH MEMORY" error by the BOOTROMs
on loading uboot.lif on (at least) my 9000/360 and 9000/425t.
To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/hp300/stand/mkboot/mkboot.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/57909 CVS commit: [netbsd-10] src
Date: Sat, 22 Jun 2024 10:57:12 +0000
Module Name: src
Committed By: martin
Date: Sat Jun 22 10:57:11 UTC 2024
Modified Files:
src/distrib/hp300/cdroms/installcd [netbsd-10]: Makefile
src/sys/arch/hp300/dev [netbsd-10]: dcm.c dcmreg.h diofbreg.h
diofbvar.h dma.c dnkbd.c dvbox.c frodoreg.h hpib.c mcclock_frodo.c
rbox.c rboxreg.h rtc.c sti_sgc.c topcatreg.h
src/sys/arch/hp300/hp300 [netbsd-10]: autoconf.c machdep.c trap.c
src/sys/arch/hp300/include [netbsd-10]: bus.h cpu.h
src/sys/arch/hp300/stand [netbsd-10]: Makefile.buildboot
src/sys/arch/hp300/stand/common [netbsd-10]: clock.c conf.c conf.h
devopen.c hil.c ite_dumb.c ite_sti.c machdep.c netio.c prf.c rd.c
scsi.c scsireg.h scsivar.h sd.c
src/sys/arch/hp300/stand/inst [netbsd-10]: Makefile inst.c
src/sys/arch/hp300/stand/mkboot [netbsd-10]: Makefile mkboot.c
src/sys/arch/hp300/stand/uboot [netbsd-10]: Makefile
src/sys/fs/cd9660 [netbsd-10]: cd9660_extern.h cd9660_util.c
src/sys/sys [netbsd-10]: bootblock.h
src/tools [netbsd-10]: Makefile.nbincludes
src/usr.sbin/installboot [netbsd-10]: Makefile fstypes.c installboot.8
installboot.h
src/usr.sbin/installboot/arch [netbsd-10]: hp300.c
Added Files:
src/usr.sbin/installboot [netbsd-10]: cd9660.c
Removed Files:
src/sys/arch/hp300/stand/mkboot [netbsd-10]: volhdr.h
Log Message:
Pull up following revision(s) (requested by tsutsui in ticket #722):
sys/fs/cd9660/cd9660_util.c: revision 1.16
sys/arch/hp300/stand/common/clock.c: revision 1.14
sys/arch/hp300/stand/common/scsireg.h: revision 1.5
sys/arch/hp300/stand/common/scsireg.h: revision 1.6
sys/arch/hp300/stand/Makefile.buildboot: revision 1.38
sys/arch/hp300/include/bus.h: revision 1.23
sys/arch/hp300/stand/Makefile.buildboot: revision 1.39
sys/arch/hp300/stand/common/sd.c: revision 1.12
sys/arch/hp300/stand/common/prf.c: revision 1.6
sys/arch/hp300/stand/common/sd.c: revision 1.13
usr.sbin/installboot/installboot.8: revision 1.106
usr.sbin/installboot/Makefile: revision 1.59
sys/arch/hp300/stand/common/devopen.c: revision 1.14
usr.sbin/installboot/installboot.8: revision 1.107
sys/arch/hp300/stand/common/ite_dumb.c: revision 1.2
sys/arch/hp300/stand/common/devopen.c: revision 1.15
usr.sbin/installboot/installboot.8: revision 1.108
sys/fs/cd9660/cd9660_extern.h: revision 1.29
usr.sbin/installboot/installboot.8: revision 1.109
tools/Makefile.nbincludes: revision 1.11 (patch)
sys/arch/hp300/dev/rboxreg.h: revision 1.3
sys/arch/hp300/stand/common/scsivar.h: revision 1.5
sys/arch/hp300/dev/dnkbd.c: revision 1.14
sys/arch/hp300/hp300/trap.c: revision 1.156
sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.12
sys/arch/hp300/dev/frodoreg.h: revision 1.6
sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.13
sys/arch/hp300/stand/common/ite_sti.c: revision 1.2
sys/arch/hp300/stand/common/hil.c: revision 1.15
usr.sbin/installboot/arch/hp300.c: revision 1.18
sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.14
sys/arch/hp300/dev/rbox.c: revision 1.4
usr.sbin/installboot/arch/hp300.c: revision 1.19
sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.15
sys/sys/bootblock.h: revision 1.59
sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.16
usr.sbin/installboot/installboot.h: revision 1.44
sys/arch/hp300/stand/mkboot/volhdr.h: file removal
sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.17
sys/arch/hp300/dev/hpib.c: revision 1.45
usr.sbin/installboot/installboot.h: revision 1.45
usr.sbin/installboot/cd9660.c: revision 1.1
sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.18
sys/arch/hp300/dev/topcatreg.h: revision 1.3
usr.sbin/installboot/cd9660.c: revision 1.2
sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.19
sys/arch/hp300/stand/inst/inst.c: revision 1.25
sys/arch/hp300/stand/uboot/Makefile: revision 1.12
sys/arch/hp300/dev/dvbox.c: revision 1.4
sys/arch/hp300/dev/dma.c: revision 1.45
sys/arch/hp300/stand/uboot/Makefile: revision 1.13
sys/arch/hp300/stand/common/rd.c: revision 1.16
sys/arch/hp300/stand/inst/Makefile: revision 1.12
distrib/hp300/cdroms/installcd/Makefile: revision 1.4
sys/arch/hp300/stand/mkboot/volhdr.h: revision 1.6
sys/arch/hp300/stand/common/machdep.c: revision 1.16
usr.sbin/installboot/fstypes.c: revision 1.14
sys/arch/hp300/hp300/machdep.c: revision 1.238
sys/arch/hp300/include/cpu.h: revision 1.73
sys/arch/hp300/dev/diofbreg.h: revision 1.4
sys/arch/hp300/stand/common/scsi.c: revision 1.12
sys/arch/hp300/stand/common/netio.c: revision 1.19
sys/arch/hp300/stand/common/scsi.c: revision 1.13
sys/arch/hp300/dev/sti_sgc.c: revision 1.8
sys/arch/hp300/dev/rtc.c: revision 1.22
sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.20
sys/arch/hp300/stand/common/conf.h: revision 1.4
sys/arch/hp300/hp300/autoconf.c: revision 1.111
sys/arch/hp300/stand/common/conf.c: revision 1.15
sys/arch/hp300/stand/mkboot/Makefile: revision 1.12
sys/arch/hp300/stand/mkboot/Makefile: revision 1.13
sys/arch/hp300/hp300/autoconf.c: revision 1.114
sys/arch/hp300/dev/dcmreg.h: revision 1.11
sys/arch/hp300/dev/diofbvar.h: revision 1.4
sys/arch/hp300/dev/dcm.c: revision 1.91
sys/fs/cd9660/cd9660_util.c: revision 1.15
sys/arch/hp300/dev/mcclock_frodo.c: revision 1.2
TAB/space cleanup.
installboot(8): formatting improvements
Use Ar foo instead of <foo>; this is mdoc.
Other formatting tweaks.
installboot(8): fix up markup
Don't overuse .Sy - when everything is highlighted, nothing is. Use
.Ic for options &c to get correct PostScript output (both are bold in
plain text).
Use Aq Ar inside .Pa, as both Pa and Ar are rendered as underscored
text in plain text output, and the distinction is lost.
Don't set examples in bold, but give them .Pp space around - they are
much easier to read this way.
Use consistent -width in FILES.
document how to use installboot on netbsd/vax.
PR/57909: Jan-Benedict Glaw: Don't include (build) timestamp when doing a
reproducible build
fix usage string, improve error handling.
add missing chunk for repro-build. fix gcc warnings.
avoid stringop truncation, fix copyright string to prevent assembler warnings.
Fix build as a tool (Jan-Benedict Glaw)
Fix integer overflow of strtol(3) for "loadpoint" address on ILP32 hosts.
This strtol(3) was introduced in rev 1.12 for PR/57909 after netbsd-10,
but it returns LONG_MAX (0x7FFFFFFF) for 0xFFF00000 on ILP32 hosts and
the wrong loadpoint causes "NOT ENOUGH MEMORY" error by the BOOTROMs
on loading uboot.lif on (at least) my 9000/360 and 9000/425t.
Misc cosmetic changes for mostly readability.
- KNF and add some newlines per blocks
- define and use proper bintobcd() macro
- make local functions and variables static
The same uboot.lif binaries are generated.
Rename ${PROGAOUT} -> ${PROGELF} to reflect reality.
Use proper signedness for the LIF file system data structures.
Ancient 4.3BSD used short and int for location, file size, file type,
and addresses etc. but all of them should be unsigned.
Also rename several variables and add comments for readability.
The LIF file system info can be found in "The HPDir Project" page:
https://www.hp9845.net/9845/projects/hpdir/
The same uboot.lif binaries are generated.
Add a preliminary CD boot support to uboot for preparation of PR/54455.
Briefly tested on mame, but not enalbed yet.
Recognize SCSI CD-ROM devices as a booted device properly.
Necessary for PR port-hp300/54455, to boot an md root root RAMDISK
kernel from CD-ROM without "WARNING: can't find match for bootdev:"
prompt.
Sync with src/sys/arch/hp300/stand/mkboot/volhdr.h rev 1.6.
https://mail-index.netbsd.org/source-changes/2024/05/07/msg151195.html
Use proper signedness for the LIF file system data structures.
mkboot should use this MI <sys/bootblock.h> and volhdr.h should
be removed soon.
Use MI <sys/bootblock.h> to refer LIF filesystem structures.
This should have been done when LIF definitions were initially added
to <sys/bootblock.h> for MI installboot(8).
Enable SUPPORT_CD on uboot.
Make cd9660_util.c usable in userland tools like installboot(8).
This was partially done for src/distrib/cdrom/macppc_installboot,
but more strict prototypes are necessary for native binary builds.
Install cd9660 related system headers for tools installboot(8) builds.
Reorder function prototypes per source files.
Add cd9660 support to search a bootloader file in the target file system.
Also add CD boot support for hp300, using a bootloader file in cd9660 fs.
This is a tool's part to close PR/54455.
HP 9000/300 machines read LIF directory entry allocated after
the LIF volume header at the top of the boot disk during bootstrap,
and a bootstrap file must be contiguously allocated on the disk
due to limitation of the LIF specification.
Current NetBSD/hp300's bootloader is larger than ~80KB so we have
to prepare a special 'boot' partition for FFS (that has only 8KB (ffsv1)
or 32KB (ffsv2) spaces) disks to put such a large bootloader.
On the other hand, on ISO9660 fs all files are allocated contiguously
so we can specify a bootloader file in the target ISO9660 directly
in the LIF directory entry.
Note we can simply use the existing "append" option to create bootable
CD ISO for hp300, but it looks some emulators (at leaset MAME) reject
such non-standard ISO files, i.e. with an appended bootloader file at
the end of the image.
Put a RAMDISK kernel and SYS_UBOOT into hp300 installcd to make it bootable.
This should finally close PR/54455.
Fix tools build errors on Cygwin.
Appease warnings on building tools/installboot on Cygwin.
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.3.8.1 src/distrib/hp300/cdroms/installcd/Makefile
cvs rdiff -u -r1.90 -r1.90.4.1 src/sys/arch/hp300/dev/dcm.c
cvs rdiff -u -r1.10 -r1.10.58.1 src/sys/arch/hp300/dev/dcmreg.h
cvs rdiff -u -r1.3 -r1.3.90.1 src/sys/arch/hp300/dev/diofbreg.h \
src/sys/arch/hp300/dev/dvbox.c src/sys/arch/hp300/dev/rbox.c
cvs rdiff -u -r1.3.90.1 -r1.3.90.2 src/sys/arch/hp300/dev/diofbvar.h
cvs rdiff -u -r1.44 -r1.44.4.1 src/sys/arch/hp300/dev/dma.c
cvs rdiff -u -r1.13 -r1.13.6.1 src/sys/arch/hp300/dev/dnkbd.c
cvs rdiff -u -r1.5 -r1.5.58.1 src/sys/arch/hp300/dev/frodoreg.h
cvs rdiff -u -r1.44 -r1.44.6.1 src/sys/arch/hp300/dev/hpib.c
cvs rdiff -u -r1.1 -r1.1.68.1 src/sys/arch/hp300/dev/mcclock_frodo.c
cvs rdiff -u -r1.2 -r1.2.90.1 src/sys/arch/hp300/dev/rboxreg.h
cvs rdiff -u -r1.21 -r1.21.58.1 src/sys/arch/hp300/dev/rtc.c
cvs rdiff -u -r1.7 -r1.7.4.1 src/sys/arch/hp300/dev/sti_sgc.c
cvs rdiff -u -r1.2.90.1 -r1.2.90.2 src/sys/arch/hp300/dev/topcatreg.h
cvs rdiff -u -r1.110.6.1 -r1.110.6.2 src/sys/arch/hp300/hp300/autoconf.c
cvs rdiff -u -r1.237 -r1.237.2.1 src/sys/arch/hp300/hp300/machdep.c
cvs rdiff -u -r1.155 -r1.155.4.1 src/sys/arch/hp300/hp300/trap.c
cvs rdiff -u -r1.22 -r1.22.18.1 src/sys/arch/hp300/include/bus.h
cvs rdiff -u -r1.72 -r1.72.26.1 src/sys/arch/hp300/include/cpu.h
cvs rdiff -u -r1.37 -r1.37.10.1 src/sys/arch/hp300/stand/Makefile.buildboot
cvs rdiff -u -r1.13 -r1.13.50.1 src/sys/arch/hp300/stand/common/clock.c
cvs rdiff -u -r1.14 -r1.14.2.1 src/sys/arch/hp300/stand/common/conf.c
cvs rdiff -u -r1.3 -r1.3.2.1 src/sys/arch/hp300/stand/common/conf.h
cvs rdiff -u -r1.13 -r1.13.2.1 src/sys/arch/hp300/stand/common/devopen.c
cvs rdiff -u -r1.14 -r1.14.86.1 src/sys/arch/hp300/stand/common/hil.c
cvs rdiff -u -r1.1 -r1.1.92.1 src/sys/arch/hp300/stand/common/ite_dumb.c
cvs rdiff -u -r1.1 -r1.1.68.1 src/sys/arch/hp300/stand/common/ite_sti.c
cvs rdiff -u -r1.15 -r1.15.86.1 src/sys/arch/hp300/stand/common/machdep.c
cvs rdiff -u -r1.18 -r1.18.16.1 src/sys/arch/hp300/stand/common/netio.c
cvs rdiff -u -r1.5 -r1.5.196.1 src/sys/arch/hp300/stand/common/prf.c
cvs rdiff -u -r1.15 -r1.15.2.1 src/sys/arch/hp300/stand/common/rd.c
cvs rdiff -u -r1.11 -r1.11.60.1 src/sys/arch/hp300/stand/common/scsi.c
cvs rdiff -u -r1.4 -r1.4.48.1 src/sys/arch/hp300/stand/common/scsireg.h
cvs rdiff -u -r1.4 -r1.4.196.1 src/sys/arch/hp300/stand/common/scsivar.h
cvs rdiff -u -r1.11 -r1.11.84.1 src/sys/arch/hp300/stand/common/sd.c
cvs rdiff -u -r1.10.26.1 -r1.10.26.2 src/sys/arch/hp300/stand/inst/Makefile
cvs rdiff -u -r1.24 -r1.24.2.1 src/sys/arch/hp300/stand/inst/inst.c
cvs rdiff -u -r1.11 -r1.11.196.1 src/sys/arch/hp300/stand/mkboot/Makefile
cvs rdiff -u -r1.11 -r1.11.50.1 src/sys/arch/hp300/stand/mkboot/mkboot.c
cvs rdiff -u -r1.5 -r0 src/sys/arch/hp300/stand/mkboot/volhdr.h
cvs rdiff -u -r1.10.2.1 -r1.10.2.2 src/sys/arch/hp300/stand/uboot/Makefile
cvs rdiff -u -r1.27 -r1.27.30.1 src/sys/fs/cd9660/cd9660_extern.h
cvs rdiff -u -r1.14 -r1.14.48.1 src/sys/fs/cd9660/cd9660_util.c
cvs rdiff -u -r1.58 -r1.58.40.1 src/sys/sys/bootblock.h
cvs rdiff -u -r1.5 -r1.5.24.1 src/tools/Makefile.nbincludes
cvs rdiff -u -r1.56 -r1.56.6.1 src/usr.sbin/installboot/Makefile
cvs rdiff -u -r0 -r1.2.2.2 src/usr.sbin/installboot/cd9660.c
cvs rdiff -u -r1.13 -r1.13.56.1 src/usr.sbin/installboot/fstypes.c
cvs rdiff -u -r1.105 -r1.105.2.1 src/usr.sbin/installboot/installboot.8
cvs rdiff -u -r1.43 -r1.43.2.1 src/usr.sbin/installboot/installboot.h
cvs rdiff -u -r1.17 -r1.17.2.1 src/usr.sbin/installboot/arch/hp300.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
(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-2024
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.