head	1.1;
access;
symbols
	netbsd-11-0-RC4:1.1
	netbsd-11-0-RC3:1.1
	netbsd-11-0-RC2:1.1
	netbsd-11-0-RC1:1.1
	perseant-exfatfs-base-20250801:1.1
	netbsd-11:1.1.0.6
	netbsd-11-base:1.1
	netbsd-10-1-RELEASE:1.1.4.2
	netbsd-10:1.1.0.4
	perseant-exfatfs-base-20240630:1.1
	perseant-exfatfs:1.1.0.2
	perseant-exfatfs-base:1.1;
locks; strict;
comment	@# @;


1.1
date	2024.05.31.19.49.03;	author tsutsui;	state Exp;
branches
	1.1.4.1;
next	;
commitid	woSxzLLKKep5KbcF;

1.1.4.1
date	2024.05.31.19.49.03;	author martin;	state dead;
branches;
next	1.1.4.2;
commitid	ukIKIblTxA6ajqgF;

1.1.4.2
date	2024.07.03.18.38.54;	author martin;	state Exp;
branches;
next	;
commitid	ukIKIblTxA6ajqgF;


desc
@@


1.1
log
@Import mkhybrid from OpenBSD 7.3 to create ISO9660/HFS hybrid ISO images.

- files in libfile except proto.h prepared by OpenBSD are not imported
  due to non-standard license
  (newer BSD Licensed versions will be imported later)
- unnecessary files for tools build are not imported
- RCSId strings are trimmed to avoid unintended substitutions

Proposed on tech-toolchain@@:
 https://mail-index.netbsd.org/tech-toolchain/2024/05/25/msg004355.html
@
text
@###############################################################################
#
# hfsutils - tools for reading and writing Macintosh HFS volumes
# Copyright (C) 1996, 1997 Robert Leslie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
###############################################################################

CC =		gcc
INCLUDES =	

LIBS =		
DEFINES =	

COPTS =		-g -Wall -pedantic
CFLAGS =	$(COPTS) $(INCLUDES) $(DEFINES)
ARFLAGS =	rc
RANLIB =	ranlib

###############################################################################

TARGET =	libhfs.a
OBJS =		data.o block.o low.o file.o btree.o node.o record.o volume.o  \
		hfs.o

###############################################################################

all :: $(TARGET)

again :: depend clean all

depend ::
	( sed -n '1,/^### DEPEND/p' Makefile;  \
	  echo;  \
	  $(CC) -MM $(CFLAGS) *.c;  \
	) > Makefile.new
	mv -f Makefile.new Makefile

clean ::
	rm -f $(TARGET) *.o core

###############################################################################

$(TARGET): $(OBJS)
	ar $(ARFLAGS) $@@  \
		$(OBJS)
	$(RANLIB) $@@

### DEPENDENCIES FOLLOW #######################################################

block.o: block.c internal.h hfs.h data.h block.h low.h
btree.o: btree.c internal.h hfs.h data.h block.h file.h btree.h node.h
data.o: data.c internal.h hfs.h data.h btree.h
file.o: file.c internal.h hfs.h data.h block.h file.h btree.h record.h \
 volume.h
hfs.o: hfs.c internal.h hfs.h data.h block.h low.h file.h btree.h \
 node.h record.h volume.h
low.o: low.c internal.h hfs.h data.h block.h low.h file.h
node.o: node.c internal.h hfs.h data.h btree.h node.h
record.o: record.c internal.h hfs.h data.h record.h
volume.o: volume.c internal.h hfs.h data.h low.h btree.h record.h \
 volume.h
@


1.1.4.1
log
@file Makefile was added on branch netbsd-10 on 2024-07-03 18:38:54 +0000
@
text
@d1 75
@


1.1.4.2
log
@Pull up following revision(s) (requested by tsutsui in ticket #733):

	external/gpl2/mkhybrid/dist/mkisofs.h: revision 1.6
	distrib/cdrom/Makefile: revision 1.55
	distrib/cdrom/macppc_installboot/Makefile: revision 1.12
	external/gpl2/mkhybrid/dist/getopt.c: revision 1.2
	external/gpl2/mkhybrid/dist/libfile/LEGAL.NOTICE: revision 1.1
	external/gpl2/mkhybrid/dist/write.c: revision 1.1
	distrib/cdrom/Makefile: revision 1.56
	distrib/cdrom/macppc_installboot/Makefile: revision 1.13
	distrib/cdrom/macppc_installboot/installboot.c: revision 1.6
	external/gpl2/mkhybrid/dist/getopt.c: revision 1.3
	external/gpl2/mkhybrid/dist/write.c: revision 1.2
	external/gpl2/mkhybrid/dist/libhfs_iso/data.h: revision 1.1
	distrib/cdrom/Makefile: revision 1.57
	distrib/cdrom/macppc_installboot/Makefile: revision 1.14
	distrib/cdrom/macppc_installboot/installboot.c: revision 1.7
	tools/Makefile: revision 1.221
	tools/Makefile: revision 1.222
	external/gpl2/mkhybrid/dist/libhfs_iso/file.h: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/README: revision 1.1
	distrib/macppc/Makefile: revision 1.18
	external/gpl2/mkhybrid/dist/TODO: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/block.h: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/record.c: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/hfs.c: revision 1.1
	external/gpl2/mkhybrid/dist/match.c: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/softmagic.c: revision 1.1
	external/gpl2/mkhybrid/dist/match.c: revision 1.2
	external/gpl2/mkhybrid/dist/libfile/softmagic.c: revision 1.2
	external/gpl2/mkhybrid/dist/volume.c: revision 1.1
	external/gpl2/mkhybrid/dist/volume.c: revision 1.2
	external/gpl2/mkhybrid/dist/libhfs_iso/internal.h: revision 1.1
	external/gpl2/mkhybrid/dist/getopt1.c: revision 1.1
	external/gpl2/mkhybrid/dist/getopt1.c: revision 1.2
	external/gpl2/mkhybrid/dist/getopt1.c: revision 1.3
	external/gpl2/mkhybrid/dist/README.mkisofs: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/hybrid.h: revision 1.1
	tools/mkhybrid/Makefile: revision 1.1
	external/gpl2/mkhybrid/dist/README.hfs_magic: revision 1.1
	external/gpl2/mkhybrid/dist/apple.h: revision 1.1
	external/gpl2/mkhybrid/dist/include/prototyp.h: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/volume.h: revision 1.1
	external/gpl2/mkhybrid/dist/apple.h: revision 1.2
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.1
	external/gpl2/mkhybrid/dist/desktop.c: revision 1.1
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.2
	external/gpl2/mkhybrid/dist/desktop.c: revision 1.2
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.3
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.4
	external/gpl2/mkhybrid/dist/libfile/file.h: revision 1.1
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.5
	external/gpl2/mkhybrid/dist/libfile/file.h: revision 1.2
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.6
	external/gpl2/mkhybrid/dist/libfile/file.h: revision 1.3
	external/gpl2/mkhybrid/dist/mkisofs.c: revision 1.7
	external/gpl2/mkhybrid/dist/getopt.h: revision 1.1
	distrib/cdrom/macppc_installboot/installboot.h: revision 1.5
	etc/etc.mac68k/Makefile.inc: revision 1.25
	external/gpl2/mkhybrid/dist/getopt.h: revision 1.2
	external/gpl2/mkhybrid/dist/write.h: revision 1.1
	etc/etc.mac68k/Makefile.inc: revision 1.26
	external/gpl2/mkhybrid/dist/rock.c: revision 1.1
	external/gpl2/mkhybrid/dist/hash.c: revision 1.1
	external/gpl2/mkhybrid/dist/hash.c: revision 1.2
	external/gpl2/mkhybrid/dist/libhfs_iso/record.h: revision 1.1
	external/gpl2/mkhybrid/dist/README.hfs_boot: revision 1.1
	external/gpl2/mkhybrid/dist/README: revision 1.1
	external/gpl2/mkhybrid/dist/README.win32: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/hfs.h: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/hfs.h: revision 1.2
	external/gpl2/mkhybrid/dist/config.h.in: revision 1.1
	external/gpl2/mkhybrid/dist/config.h.in: revision 1.2
	distrib/cdrom/boothfs.uue: revision 1.2
	external/gpl2/mkhybrid/dist/config.h.in: revision 1.3
	external/gpl2/mkhybrid/dist/volume.h: revision 1.1
	external/gpl2/mkhybrid/dist/volume.h: revision 1.2
	external/gpl2/mkhybrid/dist/ChangeLog: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/apprentice.c: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/apprentice.c: revision 1.2
	external/gpl2/mkhybrid/dist/mapping: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/btree.h: revision 1.1
	external/gpl2/mkhybrid/bin/Makefile: revision 1.1
	external/gpl2/mkhybrid/dist/include/statdefs.h: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/Makefile: revision 1.1
	external/gpl2/mkhybrid/bin/Makefile: revision 1.2
	external/gpl2/mkhybrid/dist/magic: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/node.h: revision 1.1
	external/gpl2/mkhybrid/bin/Makefile: revision 1.3
	external/gpl2/mkhybrid/dist/acconfig.h: revision 1.1
	external/gpl2/mkhybrid/dist/eltorito.c: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/patchlevel.h: revision 1.1
	share/mk/bsd.own.mk: revision 1.1375
	share/mk/bsd.own.mk: revision 1.1376
	external/gpl2/mkhybrid/dist/README.session: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/lfile.c: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/lfile.c: revision 1.2
	tools/macppc_installboot/Makefile: revision 1.1
	external/gpl2/mkhybrid/README.md: revision 1.1
	etc/etc.macppc/Makefile.inc: revision 1.13
	external/gpl2/mkhybrid/dist/defaults.h: revision 1.1
	external/gpl2/mkhybrid/dist/mkisofs.spec: revision 1.1
	external/gpl2/mkhybrid/dist/defaults.h: revision 1.2
	external/gpl2/mkhybrid/dist/mac_label.h: revision 1.1
	external/gpl2/mkhybrid/dist/defaults.h: revision 1.3
	external/gpl2/mkhybrid/dist/include/mconfig.h: revision 1.1
	external/gpl2/mkhybrid/dist/include/mconfig.h: revision 1.2
	external/gpl2/mkhybrid/dist/libfile/proto.h: revision 1.1
	external/gpl2/mkhybrid/dist/COPYING: revision 1.1
	external/gpl2/mkhybrid/dist/name.c: revision 1.1
	external/gpl2/mkhybrid/dist/configure.in: revision 1.1
	external/gpl2/mkhybrid/dist/configure.in: revision 1.2
	external/gpl2/mkhybrid/dist/mac_label_proto.h: revision 1.1
	external/gpl2/mkhybrid/dist/configure.in: revision 1.3
	external/gpl2/mkhybrid/dist/libhfs_iso/low.c: revision 1.1
	distrib/cdrom/macppc_mkboothfs/mkboothfs.c: revision 1.4
	external/gpl2/mkhybrid/dist/mkhybrid.8: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/btree.c: revision 1.1
	distrib/cdrom/macppc_installboot/cd9660.c: revision 1.5
	external/gpl2/mkhybrid/dist/config.h: revision 1.1
	external/gpl2/mkhybrid/dist/mkhybrid.8: revision 1.2
	distrib/cdrom/macppc_installboot/cd9660.c: revision 1.6
	external/gpl2/mkhybrid/dist/config.h: revision 1.2
	external/gpl2/mkhybrid/dist/libhfs_iso/node.c: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/data.c: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/file.c: revision 1.1
	external/gpl2/mkhybrid/dist/README.eltorito: revision 1.1
	external/gpl2/mkhybrid/dist/include/fctldefs.h: revision 1.1
	external/gpl2/mkhybrid/dist/libfile/README: revision 1.1
	external/gpl2/mkhybrid/dist/libhfs_iso/block.c: revision 1.1
	external/gpl2/mkhybrid/dist/mactypes.h: revision 1.1
	external/gpl2/mkhybrid/dist/apple_proto.h: revision 1.1
	external/gpl2/mkhybrid/dist/apple_proto.h: revision 1.2
	external/gpl2/mkhybrid/dist/multi.c: revision 1.1
	external/gpl2/mkhybrid/dist/match.h: revision 1.1
	external/gpl2/mkhybrid/dist/match.h: revision 1.2
	external/gpl2/mkhybrid/dist/mac_label.c: revision 1.1
	external/gpl2/mkhybrid/dist/Makefile.in: revision 1.1
	external/gpl2/mkhybrid/dist/mac_label.c: revision 1.2
	external/gpl2/mkhybrid/dist/libhfs_iso/lvolume.c: revision 1.1
	external/gpl2/mkhybrid/dist/Makefile.in: revision 1.2
	external/gpl2/mkhybrid/dist/configure: revision 1.1
	external/gpl2/mkhybrid/dist/configure: revision 1.2
	external/gpl2/mkhybrid/dist/install-sh: revision 1.1
	external/gpl2/mkhybrid/dist/configure: revision 1.3
	distrib/cdrom/macppc_installboot/cd9660.c: file removal
	external/gpl2/mkhybrid/dist/README.mkhybrid: revision 1.1
	external/gpl2/mkhybrid/dist/ChangeLog.mkhybrid: revision 1.1
	external/gpl2/mkhybrid/dist/iso9660.h: revision 1.1
	external/gpl2/mkhybrid/dist/joliet.c: revision 1.1
	external/gpl2/mkhybrid/dist/apple.c: revision 1.1
	external/gpl2/mkhybrid/dist/apple.c: revision 1.2
	external/gpl2/mkhybrid/dist/apple.c: revision 1.3
	etc/Makefile: revision 1.471
	external/gpl2/mkhybrid/dist/apple.c: revision 1.4
	external/gpl2/mkhybrid/dist/tree.c: revision 1.1
	etc/Makefile: revision 1.472
	external/gpl2/mkhybrid/dist/tree.c: revision 1.2
	external/gpl2/mkhybrid/dist/tree.c: revision 1.3
	external/gpl2/mkhybrid/dist/libhfs_iso/low.h: revision 1.1
	external/gpl2/mkhybrid/dist/mkisofs.h: revision 1.1
	external/gpl2/mkhybrid/dist/mkisofs.8: revision 1.1
	external/gpl2/mkhybrid/dist/mkisofs.h: revision 1.2
	external/gpl2/mkhybrid/dist/mkisofs.h: revision 1.3
	external/gpl2/mkhybrid/dist/mkisofs.h: revision 1.4
	external/gpl2/mkhybrid/dist/mkisofs.h: revision 1.5
	distrib/cdrom/Makefile: revision 1.54
	external/gpl2/mkhybrid/dist/getopt.c: revision 1.1

Add -data-change-warn to MKISOFS_ARGS for macppc as done for mac68k:
https://mail-index.netbsd.org/source-changes/2023/05/19/msg144826.html

Creating Type&Creator mappings for .bin (macbinary encoded) files,
mkisofs changes files, then turns around and complains they have been
changed.
This is a self-inflicted wound, so demote the error to a warning.
This looks to make macppccd builds with cdrtools-3.02a10.
Sync with src/usr.sbin/installboot/cd9660.c:
- include now properly updated cd9660_extern.h for function prototypes
  and remove them from local installboot.h
- use ISO_MAXNAMLEN rather than (BSD specific and incorrect) MAXNAMLEN
- use proper names for the secondary boot file
- appease several pointer signedness warnings (not fatal on HOST tools)
Use native cd9660 blocksize to specify block numbers in cd9660.c.
This reduces diffs from src/usr.sbin/installboot/cd9660.c.
Also explicitly call cd9660_match() to get fstype->blocksize properly.
Pull sharable src/usr.sbin/installboot/cd9660.c.
Import mkhybrid from OpenBSD 7.3 to create ISO9660/HFS hybrid ISO images.
- files in libfile except proto.h prepared by OpenBSD are not imported
  due to non-standard license
  (newer BSD Licensed versions will be imported later)
- unnecessary files for tools build are not imported
- RCSId strings are trimmed to avoid unintended substitutions
Proposed on tech-toolchain@@:
https://mail-index.netbsd.org/tech-toolchain/2024/05/25/msg004355.html

Import BSD licensed libfile for mkhybrid builds from cdrtools-3.01.
- unnecessary files for tools build are not imported
- file.c is renamed to lfile.c to avoid conflict with libhfs_iso
- RCSId strings are trimmed
Remove dependencies on non-existent exclude.h.
Pull changes from mkisofs-1.12.1 to avoid statvfs(2).
Make newer BSD Licensed libfile sources build as tools.
Update mkhybrid Makefile for NetBSD's tools builds.
Suppress implicit declaration warnings.
Appease discard-const warnings.
Remove duplicated SYSTEM_ID_DEFAULT definitions.
Don't redefine SYSTEM_ID_DEFAULT if it's specified in CPPFLAGS.
Remove ancient rlimit hacks for NetBSD disabled in cdrtools-2.01.
Always use local getopt.h as cdrtools-2.01 did.
Tweak and regen configure using autoconf-2.13 to use pkgsrc tools.
Check <stdlib.h> and <flock.h> in configure and regen config.h.
Use HAVE_CONFIG_H to include <stdlib.h> and <string.h> in getopt sources.
Appease more warnings and remove unused getopt functions.
Pull options -hide-joliet-trans-tbl and -hide-rr-moved from mkisofs-1.13.
Pull -graft-points option from mkisofs-1.13 and cdrtools-2.01.
Also remove #ifdef APPLE_HYB for NON-HFS changes to reduce diffs.
Tweak OPTION_* definitions to reduce diffs from mkisofs-1.13.
Pull malloc related fixes from cdrtools-2.01.
This seems to fix SIGSEGV during free(3) in write.c:write_one_file().
Build mkhybrid as a build tool.
Build mac68k and macppc iso images using tools/mkhybrid.
Drop -data-change-warn from MKISOFS_FLAGS.
It's available only on cdrtools-3.x and later.
Use tools/mkhybrid as MKISOFS for mac68k and future macppc.
Note about current status.
Also pull man page description of options pulled from mkisofs-1.13.
Don't print progress if -quiet is specfied as cdrtools-2.01 and later.
Exclude debug.tgz and xdebug.tgz from mac68k ISO to save ~320MB.
Drop -T (for non-Rock Ridge capable systems) from ${MKISOFS_FLAGS}.
Even old mac68k and macppc don't require it, and somehow TRANS.TBL
files are shown on NetBSD when the ISO images created with both -T
and and -hide-joliet-trans-tbl are mounted by mount_cd9660(8).
Note this also happens with mkisofs(8) from cdrtools-3.02,
but I have not investigated if it's expected behavior.
Build src/distrib/cdrom/macppc_installboot in src/tools as a tool.
Also use the tools version ${TOOLS_MACPPC_INSTALLBOOT} to create
bootable ISO9660/HFS hybrid installcd image for macppc.
Make sure NetBSD_BootBlock partition has 32KB to avoid extra padding.
It looks at least OpenFirmware 2.x fails to load the primary bootloader
in the NetBSD_BootBlock partition if the partition size is too small,
probably because OpenFirmware read() function implicitly uses 32KB blocks.
Build macppc iso with TOOL_MKHYBRID via "iso-image" target in src/etc.
No need to check and redefine C89 strerror(3) and strtoul(3).
Fixes build error on MacOS 10.4 with Xcode 2.5.
@
text
@a0 75
###############################################################################
#
# hfsutils - tools for reading and writing Macintosh HFS volumes
# Copyright (C) 1996, 1997 Robert Leslie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
###############################################################################

CC =		gcc
INCLUDES =	

LIBS =		
DEFINES =	

COPTS =		-g -Wall -pedantic
CFLAGS =	$(COPTS) $(INCLUDES) $(DEFINES)
ARFLAGS =	rc
RANLIB =	ranlib

###############################################################################

TARGET =	libhfs.a
OBJS =		data.o block.o low.o file.o btree.o node.o record.o volume.o  \
		hfs.o

###############################################################################

all :: $(TARGET)

again :: depend clean all

depend ::
	( sed -n '1,/^### DEPEND/p' Makefile;  \
	  echo;  \
	  $(CC) -MM $(CFLAGS) *.c;  \
	) > Makefile.new
	mv -f Makefile.new Makefile

clean ::
	rm -f $(TARGET) *.o core

###############################################################################

$(TARGET): $(OBJS)
	ar $(ARFLAGS) $@@  \
		$(OBJS)
	$(RANLIB) $@@

### DEPENDENCIES FOLLOW #######################################################

block.o: block.c internal.h hfs.h data.h block.h low.h
btree.o: btree.c internal.h hfs.h data.h block.h file.h btree.h node.h
data.o: data.c internal.h hfs.h data.h btree.h
file.o: file.c internal.h hfs.h data.h block.h file.h btree.h record.h \
 volume.h
hfs.o: hfs.c internal.h hfs.h data.h block.h low.h file.h btree.h \
 node.h record.h volume.h
low.o: low.c internal.h hfs.h data.h block.h low.h file.h
node.o: node.c internal.h hfs.h data.h btree.h node.h
record.o: record.c internal.h hfs.h data.h record.h
volume.o: volume.c internal.h hfs.h data.h low.h btree.h record.h \
 volume.h
@


