Sure. I guess the next thing to do would be using gzopen type functions, to edit a gzip'd version of the file.
Then the recent move to .gz files would be more transparent for this specific use case (which I think is very rare, honestly). I'm not sure if it matters. > The following diff makes various distrib Makefile to use ${MACHINE} > instead of hardcoded value. > > Currently, some archs are using ${MACHINE} and others are using > hardcoded value. > > Please note I am unsure about sgi: disklabel -w is using > "OpenBSD/sgi " as packid, and I changed it to "OpenBSD/${MACHINE}". > But the packid used isn't uniform across archs, so it might not matter. > > The purpose is to reduce gradually the difference of Makefile between > archs. > > Comments or OK ? > -- > Sebastien Marie > > Index: amd64/ramdisk_cd/Makefile > =================================================================== > RCS file: /cvs/src/distrib/amd64/ramdisk_cd/Makefile,v > retrieving revision 1.28 > diff -u -p -r1.28 Makefile > --- amd64/ramdisk_cd/Makefile 13 Feb 2021 18:52:08 -0000 1.28 > +++ amd64/ramdisk_cd/Makefile 14 Feb 2021 13:40:13 -0000 > @@ -38,18 +38,18 @@ ${FS}: bsd.gz > > ${CDROM}: bsd.rd > rm -rf ${.OBJDIR}/cd-dir > - mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/amd64 > + mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} > mkdir -p ${.OBJDIR}/cd-dir/etc > - echo "set image /${OSREV}/amd64/bsd.rd" > > ${.OBJDIR}/cd-dir/etc/boot.conf > - cp ${.OBJDIR}/bsd.rd ${.OBJDIR}/cd-dir/${OSREV}/amd64 > - cp ${DESTDIR}/usr/mdec/cdbr ${.OBJDIR}/cd-dir/${OSREV}/amd64 > - cp ${DESTDIR}/usr/mdec/cdboot ${.OBJDIR}/cd-dir/${OSREV}/amd64/cdboot > + echo "set image /${OSREV}/${MACHINE}/bsd.rd" > > ${.OBJDIR}/cd-dir/etc/boot.conf > + cp ${.OBJDIR}/bsd.rd ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} > + cp ${DESTDIR}/usr/mdec/cdbr ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} > + cp ${DESTDIR}/usr/mdec/cdboot > ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}/cdboot > mkhybrid -a -R -T -L -l -d -D -N -o ${.OBJDIR}/${CDROM} \ > - -A "OpenBSD ${OSREV} amd64 bootonly CD" \ > + -A "OpenBSD ${OSREV} ${MACHINE} bootonly CD" \ > -P "Copyright (c) `date +%Y` Theo de Raadt, The OpenBSD project" \ > -p "Theo de Raadt <dera...@openbsd.org>" \ > - -V "OpenBSD/amd64 ${OSREV} boot-only CD" \ > - -b ${OSREV}/amd64/cdbr -c ${OSREV}/amd64/boot.catalog \ > + -V "OpenBSD/${MACHINE} ${OSREV} boot-only CD" \ > + -b ${OSREV}/${MACHINE}/cdbr -c ${OSREV}/${MACHINE}/boot.catalog \ > ${.OBJDIR}/cd-dir > > MRDISKTYPE= rdrootb > Index: hppa/ramdisk/Makefile > =================================================================== > RCS file: /cvs/src/distrib/hppa/ramdisk/Makefile,v > retrieving revision 1.46 > diff -u -p -r1.46 Makefile > --- hppa/ramdisk/Makefile 17 May 2020 17:04:27 -0000 1.46 > +++ hppa/ramdisk/Makefile 14 Feb 2021 13:40:13 -0000 > @@ -20,10 +20,10 @@ ${CDROM}: bsd.rd > rm -rf ${.OBJDIR}/cd-dir/ > mkdir -p ${.OBJDIR}/cd-dir/ > cp bsd.rd ${.OBJDIR}/cd-dir/bsd.rd > - mkhybrid -A "OpenBSD ${OSREV} hppa bootonly CD" \ > + mkhybrid -A "OpenBSD ${OSREV} ${MACHINE} bootonly CD" \ > -P "Copyright (c) `date +%Y` Theo de Raadt, The OpenBSD project" \ > -p "Theo de Raadt <dera...@openbsd.org>" \ > - -V "OpenBSD/hppa ${OSREV} boot-only CD" \ > + -V "OpenBSD/${MACHINE} ${OSREV} boot-only CD" \ > -o ${.OBJDIR}/${CDROM} ${.OBJDIR}/cd-dir > dd if=${DESTDIR}/usr/mdec/cdboot of=${.OBJDIR}/${CDROM} \ > bs=32k count=1 conv=notrunc > Index: i386/ramdisk_cd/Makefile > =================================================================== > RCS file: /cvs/src/distrib/i386/ramdisk_cd/Makefile,v > retrieving revision 1.22 > diff -u -p -r1.22 Makefile > --- i386/ramdisk_cd/Makefile 13 Feb 2021 18:52:08 -0000 1.22 > +++ i386/ramdisk_cd/Makefile 14 Feb 2021 13:40:13 -0000 > @@ -35,18 +35,18 @@ ${FS}: bsd.gz > > ${CDROM}: bsd.rd > rm -rf ${.OBJDIR}/cd-dir > - mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/i386 > + mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} > mkdir -p ${.OBJDIR}/cd-dir/etc > - echo "set image /${OSREV}/i386/bsd.rd" > ${.OBJDIR}/cd-dir/etc/boot.conf > - cp ${.OBJDIR}/bsd.rd ${.OBJDIR}/cd-dir/${OSREV}/i386 > - cp ${DESTDIR}/usr/mdec/cdbr ${.OBJDIR}/cd-dir/${OSREV}/i386 > - cp ${DESTDIR}/usr/mdec/cdboot ${.OBJDIR}/cd-dir/${OSREV}/i386/cdboot > + echo "set image /${OSREV}/${MACHINE}/bsd.rd" > > ${.OBJDIR}/cd-dir/etc/boot.conf > + cp ${.OBJDIR}/bsd.rd ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} > + cp ${DESTDIR}/usr/mdec/cdbr ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} > + cp ${DESTDIR}/usr/mdec/cdboot > ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}/cdboot > mkhybrid -a -R -T -L -l -d -D -N -o ${.OBJDIR}/${CDROM} \ > - -A "OpenBSD ${OSREV} i386 bootonly CD" \ > + -A "OpenBSD ${OSREV} ${MACHINE} bootonly CD" \ > -P "Copyright (c) `date +%Y` Theo de Raadt, The OpenBSD project" \ > -p "Theo de Raadt <dera...@openbsd.org>" \ > - -V "OpenBSD/i386 ${OSREV} boot-only CD" \ > - -b ${OSREV}/i386/cdbr -c ${OSREV}/i386/boot.catalog \ > + -V "OpenBSD/${MACHINE} ${OSREV} boot-only CD" \ > + -b ${OSREV}/${MACHINE}/cdbr -c ${OSREV}/${MACHINE}/boot.catalog \ > ${.OBJDIR}/cd-dir > > MRDISKTYPE= rdrootb > Index: loongson/ramdisk/Makefile > =================================================================== > RCS file: /cvs/src/distrib/loongson/ramdisk/Makefile,v > retrieving revision 1.29 > diff -u -p -r1.29 Makefile > --- loongson/ramdisk/Makefile 13 Feb 2021 18:46:52 -0000 1.29 > +++ loongson/ramdisk/Makefile 14 Feb 2021 13:40:13 -0000 > @@ -33,15 +33,15 @@ ${FS}: bsd.strip > > ${CDROM}: bsd.rd > rm -rf ${.OBJDIR}/cd-dir > - mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/loongson > + mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} > mkdir -p ${.OBJDIR}/cd-dir/etc > - echo "set image /${OSREV}/loongson/bsd.rd" > > ${.OBJDIR}/cd-dir/etc/boot.conf > - cp ${.OBJDIR}/bsd.rd ${.OBJDIR}/cd-dir/${OSREV}/loongson > + echo "set image /${OSREV}/${MACHINE}/bsd.rd" > > ${.OBJDIR}/cd-dir/etc/boot.conf > + cp ${.OBJDIR}/bsd.rd ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} > mkhybrid -a -R -T -L -l -d -D -N -o ${.OBJDIR}/${CDROM} \ > - -A "OpenBSD ${OSREV} loongson bootonly CD" \ > + -A "OpenBSD ${OSREV} ${MACHINE} bootonly CD" \ > -P "Copyright (c) `date +%Y` Theo de Raadt, The OpenBSD project" \ > -p "Theo de Raadt <dera...@openbsd.org>" \ > - -V "OpenBSD/loongson ${OSREV} boot CD" \ > + -V "OpenBSD/${MACHINE} ${OSREV} boot CD" \ > ${.OBJDIR}/cd-dir > > bsd.strip: bsd.rd > Index: macppc/ramdisk/Makefile > =================================================================== > RCS file: /cvs/src/distrib/macppc/ramdisk/Makefile,v > retrieving revision 1.48 > diff -u -p -r1.48 Makefile > --- macppc/ramdisk/Makefile 5 Jan 2021 15:10:43 -0000 1.48 > +++ macppc/ramdisk/Makefile 14 Feb 2021 13:40:13 -0000 > @@ -11,21 +11,21 @@ all: ${CDROM} > > ${CDROM}: bsd.gz > rm -rf ${.OBJDIR}/cd-dir/ > - mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/macppc/ > - cp bsd.gz ${.OBJDIR}/cd-dir/${OSREV}/macppc/bsd.rd > + mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}/ > + cp bsd.gz ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}/bsd.rd > # On HFS, doing the following means COPIES of the files.. therefore > # we skip doing so. > - # ln ${.OBJDIR}/cd-dir/${OSREV}/macppc/bsd.rd ${.OBJDIR}/cd-dir/bsd.rd > + # ln ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}/bsd.rd > ${.OBJDIR}/cd-dir/bsd.rd > # ln ${.OBJDIR}/cd-dir/bsd.rd ${.OBJDIR}/cd-dir/bsd > - cp ${DESTDIR}/usr/mdec/bsd.tbxi ${.OBJDIR}/cd-dir/${OSREV}/macppc > + cp ${DESTDIR}/usr/mdec/bsd.tbxi ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} > cp ${DESTDIR}/usr/mdec/ofwboot ${.OBJDIR}/cd-dir/ > mkhybrid -r -part -hfs \ > - -hfs-bless ${.OBJDIR}/cd-dir/${OSREV}/macppc \ > + -hfs-bless ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} \ > -map ${.CURDIR}/../../../gnu/usr.sbin/mkhybrid/src/more.mapping \ > - -A "OpenBSD ${OSREV} macppc bootonly CD" \ > + -A "OpenBSD ${OSREV} ${MACHINE} bootonly CD" \ > -P "Copyright (c) `date +%Y` Theo de Raadt, The OpenBSD project" \ > -p "Theo de Raadt <dera...@openbsd.org>" \ > - -V "OpenBSD/macppc ${OSREV} boot-only CD" \ > + -V "OpenBSD/${MACHINE} ${OSREV} boot-only CD" \ > -o ${CDROM} ${.OBJDIR}/cd-dir > > MRDISKTYPE= rdroot > Index: sgi/cdfs/Makefile > =================================================================== > RCS file: /cvs/src/distrib/sgi/cdfs/Makefile,v > retrieving revision 1.30 > diff -u -p -r1.30 Makefile > --- sgi/cdfs/Makefile 18 May 2020 06:20:43 -0000 1.30 > +++ sgi/cdfs/Makefile 14 Feb 2021 13:40:13 -0000 > @@ -19,16 +19,16 @@ SGIVOLSZ= 33500 > ${CDROM}: > dd if=/dev/zero of=${FS} bs=1m count=${CDFSMB} > vnconfig -v ${FS} > vnd > - disklabel -w `cat vnd` minicdroot "OpenBSD/sgi " > + disklabel -w `cat vnd` minicdroot "OpenBSD/${MACHINE}" > newfs -O 1 -m 0 -o space -i 524288 /dev/r`cat vnd`a > mount /dev/`cat vnd`a ${MOUNT_POINT} > - mkdir -p ${MOUNT_POINT}/${OSrev}/sgi > + mkdir -p ${MOUNT_POINT}/${OSrev}/${MACHINE} > .for IP in ${ALLIP} > gzip -9cf ${.OBJDIR}/../ramdisk/bsd.rd.IP${IP} > \ > ${MOUNT_POINT}/bsd.IP${IP} > ln ${MOUNT_POINT}/bsd.IP${IP} ${MOUNT_POINT}/bsd.rd.IP${IP} > - ln ${MOUNT_POINT}/bsd.IP${IP} ${MOUNT_POINT}/${OSrev}/sgi/bsd.IP${IP} > - ln ${MOUNT_POINT}/bsd.IP${IP} ${MOUNT_POINT}/${OSrev}/sgi/bsd.rd.IP${IP} > + ln ${MOUNT_POINT}/bsd.IP${IP} > ${MOUNT_POINT}/${OSrev}/${MACHINE}/bsd.IP${IP} > + ln ${MOUNT_POINT}/bsd.IP${IP} > ${MOUNT_POINT}/${OSrev}/${MACHINE}/bsd.rd.IP${IP} > .endfor > cp ${DESTDIR}/usr/mdec/bootecoff ${MOUNT_POINT}/bootecoff > cp ${DESTDIR}/usr/mdec/boot32 ${MOUNT_POINT}/boot32 > Index: sgi/iso/Makefile > =================================================================== > RCS file: /cvs/src/distrib/sgi/iso/Makefile,v > retrieving revision 1.38 > diff -u -p -r1.38 Makefile > --- sgi/iso/Makefile 18 May 2020 06:20:43 -0000 1.38 > +++ sgi/iso/Makefile 14 Feb 2021 13:40:13 -0000 > @@ -68,7 +68,7 @@ ${CDROM}: > > vnconfig -v -t cdroot ${CDROM} > vnd > > - disklabel -w `cat vnd` cdroot "OpenBSD/sgi " > + disklabel -w `cat vnd` cdroot "OpenBSD/${MACHINE}" > newfs -O 1 -m 0 -o space -i 524288 /dev/r`cat vnd`a > mount /dev/`cat vnd`a ${.OBJDIR}/cd-dir > mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} > Index: sparc64/miniroot/Makefile > =================================================================== > RCS file: /cvs/src/distrib/sparc64/miniroot/Makefile,v > retrieving revision 1.25 > diff -u -p -r1.25 Makefile > --- sparc64/miniroot/Makefile 13 Feb 2021 18:41:52 -0000 1.25 > +++ sparc64/miniroot/Makefile 14 Feb 2021 13:40:13 -0000 > @@ -34,10 +34,10 @@ ${FS}: bsd.gz > > ${CDROM}: bsd.rd ${FS} > rm -rf ${.OBJDIR}/cd-dir > - mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/sparc64 > - cp ${.OBJDIR}/bsd.rd ${.OBJDIR}/cd-dir/${OSREV}/sparc64 > - ln ${.OBJDIR}/cd-dir/${OSREV}/sparc64/bsd.rd > ${.OBJDIR}/cd-dir/${OSREV}/sparc64/bsd > - cp ${DESTDIR}/usr/mdec/ofwboot ${.OBJDIR}/cd-dir/${OSREV}/sparc64 > + mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} > + cp ${.OBJDIR}/bsd.rd ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} > + ln ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}/bsd.rd > ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}/bsd > + cp ${DESTDIR}/usr/mdec/ofwboot ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} > > echo 'm 1 sun4' > ${.OBJDIR}/cd-dir/.slicemapfile > echo 'm 2 sun4c' >> ${.OBJDIR}/cd-dir/.slicemapfile > @@ -47,13 +47,13 @@ ${CDROM}: bsd.rd ${FS} > echo 'm 5 sun4us' >> ${.OBJDIR}/cd-dir/.slicemapfile > echo 'm 6 sun4v' >> ${.OBJDIR}/cd-dir/.slicemapfile > mkhybrid -a -R -r -T -L -d -D -N \ > - -A "OpenBSD ${OSREV} sparc64 bootonly CD" \ > + -A "OpenBSD ${OSREV} ${MACHINE} bootonly CD" \ > -P "Copyright (c) `date +%Y` Theo de Raadt, The OpenBSD project" \ > -p "Theo de Raadt <dera...@openbsd.org>" \ > - -V "OpenBSD/sparc64 ${OSREV} boot-only CD" \ > + -V "OpenBSD/${MACHINE} ${OSREV} boot-only CD" \ > -o ${.OBJDIR}/${CDROM} ${.OBJDIR}/cd-dir > vnconfig -v ${CDROM} > vnd > - disklabel -w `cat vnd` fakecdrom "OpenBSD${OSrev}sparc64" > + disklabel -w `cat vnd` fakecdrom "OpenBSD${OSrev}${MACHINE}" > vnconfig -u `cat vnd` > rm -f vnd > mksuncd f ${CDROM} ${FS} >