summaryrefslogtreecommitdiff
path: root/filesystems/mtools
diff options
context:
space:
mode:
authorRobert Clausecker <fuz@FreeBSD.org>2024-09-27 12:48:46 +0200
committerRobert Clausecker <fuz@FreeBSD.org>2024-11-06 16:17:35 +0100
commit6e2da9672f79f44048d597f0f61e4646cdeade9d (patch)
treec92e4b3158e3419e8cec38e00227d08dcdaab3e9 /filesystems/mtools
parentmath/sdpa: speed up build (diff)
filesystems: add new category for file systems and related utilities
The filesystems category houses file systems and file system utilities. It is added mainly to turn the sysutils/fusefs-* pseudo-category into a proper one, but is also useful for the sundry of other file systems related ports found in the tree. Ports that seem like they belong there are moved to the new category. Two ports, sysutils/fusefs-funionfs and sysutils/fusefs-fusepak are not moved as they currently don't fetch and don't have TIMESTAMP set in their distinfo, but that is required to be able to push a rename of the port by the pre-receive hook. Approved by: portmgr (rene) Reviewed by: mat Pull Request: https://github.com/freebsd/freebsd-ports/pull/302 PR: 281988
Diffstat (limited to 'filesystems/mtools')
-rw-r--r--filesystems/mtools/Makefile58
-rw-r--r--filesystems/mtools/distinfo3
-rw-r--r--filesystems/mtools/files/patch-Makefile.in40
-rw-r--r--filesystems/mtools/files/patch-configure63
-rw-r--r--filesystems/mtools/files/patch-mtools.texi11
-rw-r--r--filesystems/mtools/files/patch-scsi.c29
-rw-r--r--filesystems/mtools/files/pkg-message.in7
-rw-r--r--filesystems/mtools/pkg-descr4
-rw-r--r--filesystems/mtools/pkg-plist60
9 files changed, 275 insertions, 0 deletions
diff --git a/filesystems/mtools/Makefile b/filesystems/mtools/Makefile
new file mode 100644
index 000000000000..33b2c796964c
--- /dev/null
+++ b/filesystems/mtools/Makefile
@@ -0,0 +1,58 @@
+PORTNAME= mtools
+PORTVERSION= 4.0.43
+PORTREVISION= 1
+CATEGORIES= filesystems emulators
+MASTER_SITES= GNU
+
+MAINTAINER= skreuzer@FreeBSD.org
+COMMENT= Tools for manipulating MS-DOS disks and images
+WWW= https://www.gnu.org/software/mtools/intro.html
+
+LICENSE= GPLv3
+
+CONFLICTS_INSTALL= multimarkdown
+
+USES= gmake makeinfo tar:lz
+GNU_CONFIGURE= yes
+CONFIGURE_ENV= ac_cv_header_malloc_h=no
+CONFIGURE_ARGS= --enable-xdf
+GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
+
+SUB_FILES= pkg-message
+
+INFO= mtools
+
+OPTIONS_DEFINE= ICONV X11
+OPTIONS_DEFAULT=ICONV X11
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MICONV}
+USES+= iconv
+CPPFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib ${ICONV_LIB}
+LIB_DEPENDS+= libiconv.so:converters/libiconv
+.else
+CONFIGURE_ENV+= ac_cv_header_iconv_h=no
+.endif
+
+.if ${PORT_OPTIONS:MX11}
+USES+= xorg
+USE_XORG= x11 sm ice xau
+PLIST_SUB+= X11=""
+.else
+CONFIGURE_ARGS+= --without-x
+PLIST_SUB+= X11="@comment "
+MAKE_ENV+= WITHOUT_X11=yes
+.endif
+
+post-patch:
+ @${REINPLACE_CMD} -e '/LOCAL_CONF_FILE/s,/etc/default,${LOCALBASE}/etc,' \
+ ${WRKSRC}/mtoolsPaths.h
+ @${REINPLACE_CMD} -e 's|^\(SAMPLE FILE\)$$|#\1|' \
+ ${WRKSRC}/mtools.conf
+
+post-install:
+ ${INSTALL_DATA} ${WRKSRC}/mtools.conf ${STAGEDIR}${PREFIX}/etc/mtools.conf.sample
+
+.include <bsd.port.mk>
diff --git a/filesystems/mtools/distinfo b/filesystems/mtools/distinfo
new file mode 100644
index 000000000000..fdded9f52cc2
--- /dev/null
+++ b/filesystems/mtools/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1679438048
+SHA256 (mtools-4.0.43.tar.lz) = 997ffe4125a19de1fd433ed63f128f7d54bc1a5915f3cdb36da6491ef917f217
+SIZE (mtools-4.0.43.tar.lz) = 383347
diff --git a/filesystems/mtools/files/patch-Makefile.in b/filesystems/mtools/files/patch-Makefile.in
new file mode 100644
index 000000000000..1c9d84b0e764
--- /dev/null
+++ b/filesystems/mtools/files/patch-Makefile.in
@@ -0,0 +1,40 @@
+--- Makefile.in.orig 2022-10-09 09:55:19 UTC
++++ Makefile.in
+@@ -72,11 +72,14 @@ INSTALL_INFO = @INSTALL_INFO@
+ .SUFFIXES: .o .c
+ .SUFFIXES: .o .c
+
+-MAN1 = floppyd.1 floppyd_installtest.1 mattrib.1 mbadblocks.1 mcat.1 \
++MAN1 = mattrib.1 mbadblocks.1 mcat.1 \
+ mcd.1 mcopy.1 mdel.1 mdeltree.1 mdir.1 mdu.1 mformat.1 \
+ minfo.1 mkmanifest.1 mlabel.1 mmd.1 mmount.1 mmove.1 mpartition.1 \
+ mrd.1 mren.1 mshortname.1 mshowfat.1 mtoolstest.1 mtools.1 mtype.1 \
+ mzip.1
++ifndef WITHOUT_X11
++MAN1 += floppyd.1 floppyd_installtest.1
++endif
+
+ MAN1EXT = 1
+ MAN1DIR = $(DESTDIR)$(mandir)/man${MAN1EXT}
+@@ -119,7 +122,7 @@ privileges.c remap.c scsi_io.c scsi.c signal.c stream.
+ swap.c unix2dos.s unixdir.c tty.c vfat.c mkmanifest.c \
+ @FLOPPYD_IO_SRC@ @XDF_IO_SRC@
+
+-SCRIPTS = mcheck mxtar uz tgz mcomp amuFormat.sh
++SCRIPTS = mcheck mxtar mcomp amuFormat.sh
+
+ LINKS=mattrib mcat mcd mcopy mdel mdeltree mdir mdu \
+ mformat minfo mlabel mmd mmount mmove mpartition mrd mren mtype \
+@@ -264,11 +267,9 @@ install-links: $(DESTDIR)$(bindir)/mtools
+ install-scripts: $(DESTDIR)$(bindir)/mtools
+ @$(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
+ @for j in $(SCRIPTS) ; do \
+- $(INSTALL_PROGRAM) $(srcdir)/scripts/$$j $(DESTDIR)$(bindir)/$$j ; \
++ $(BSD_INSTALL_SCRIPT) $(srcdir)/scripts/$$j $(DESTDIR)$(bindir)/$$j ; \
+ echo $(DESTDIR)$(bindir)/$$j ; \
+ done
+- rm -f $(DESTDIR)$(bindir)/lz
+- cd $(DESTDIR)$(bindir) && $(LN_S) uz lz
+
+ install-man:
+ @$(top_srcdir)/mkinstalldirs $(MAN1DIR)
diff --git a/filesystems/mtools/files/patch-configure b/filesystems/mtools/files/patch-configure
new file mode 100644
index 000000000000..f7dc9e442ebd
--- /dev/null
+++ b/filesystems/mtools/files/patch-configure
@@ -0,0 +1,63 @@
+--- configure.orig 2020-11-28 11:54:35 UTC
++++ configure
+@@ -5696,10 +5696,10 @@ host_os3=`echo $host_os2 | sed 's/^\([^0-9]*\)[0-9]*$/
+ host_cpu1=`echo $host_cpu | sed 's/\./_/g'`
+ host_vendor1=`echo $host_vendor | sed 's/\./_/g'`
+ HOST_ID="-DCPU_$host_cpu1 -DVENDOR_$host_vendor1 -DOS_$host_os1"
+-if [ $host_os1 != $host_os2 ] ; then
++if [ "$host_os1" != "$host_os2" ] ; then
+ HOST_ID="$HOST_ID -DOS_$host_os2"
+ fi
+-if [ $host_os1 != $host_os3 ] && [ $host_os2 != $host_os3 ] ; then
++if [ "$host_os1" != "$host_os3" ] && [ "$host_os2" != "$host_os3" ] ; then
+ HOST_ID="$HOST_ID -DOS_$host_os3"
+ fi
+
+@@ -5725,39 +5725,39 @@ if [ "X$GCC" = "Xyes" ] ; then
+ esac
+ CFLAGS="$CFLAGS $Wall"
+ else
+- if [ $host_os3 = hpux ] ; then
++ if [ "$host_os3" = hpux ] ; then
+ CPPFLAGS="$CPPFLAGS -Ae"
+ fi
+
+- if [ $host_os3 = xenix ] ; then
++ if [ "$host_os3" = xenix ] ; then
+ CFLAGS="$CFLAGS -M2e"
+ fi
+ fi
+
+-if [ $host_os3 = hpux ] ; then
++if [ "$host_os3" = hpux ] ; then
+ LDFLAGS="$LDFLAGS -z"
+ fi
+
+-if [ $host_os3 = xenix ] ; then
++if [ "$host_os3" = xenix ] ; then
+ LDFLAGS="$LDFLAGS -M2e -i -f 5000"
+ fi
+
+-if [ $host_os2 = sysv4 ] ; then
++if [ "$host_os2" = sysv4 ] ; then
+ SHLIB="-lc -L/usr/ucblib -lucb"
+ else
+ SHLIB=""
+ fi
+
+-if [ $host_os3 = isc ] ; then
++if [ "$host_os3" = isc ] ; then
+ CFLAGS="$CFLAGS -D_SYSV3"
+ SHLIB="-lc_s"
+ fi
+
+-if [ $host_os3 = solaris -a x$newVold = xxyes ] ; then
++if [ "$host_os3" = solaris -a x$newVold = xxyes ] ; then
+ SHLIB="$SHLIB -s -lvolmgt"
+ fi
+
+-if [ $host_os3 = nextstep ] ; then
++if [ "$host_os3" = nextstep ] ; then
+ CFLAGS="$CFLAGS -DBSD"
+ SHLIB=""
+ fi
diff --git a/filesystems/mtools/files/patch-mtools.texi b/filesystems/mtools/files/patch-mtools.texi
new file mode 100644
index 000000000000..02360f495ddc
--- /dev/null
+++ b/filesystems/mtools/files/patch-mtools.texi
@@ -0,0 +1,11 @@
+--- mtools.texi.orig 2020-11-26 23:02:51 UTC
++++ mtools.texi
+@@ -39,7 +39,7 @@ mtools - utilities to access DOS disks in Unix.
+
+ @dircategory DOS
+ @direntry
+-* Mtools: (mtools). Mtools: utilities to access DOS disks in Unix.
++* Mtools: (mtools). Mtools: utilities to access DOS disks in Unix.
+ @end direntry
+
+
diff --git a/filesystems/mtools/files/patch-scsi.c b/filesystems/mtools/files/patch-scsi.c
new file mode 100644
index 000000000000..c0338b7ed945
--- /dev/null
+++ b/filesystems/mtools/files/patch-scsi.c
@@ -0,0 +1,29 @@
+--- scsi.c.orig 2018-12-02 16:23:26 UTC
++++ scsi.c
+@@ -62,7 +62,7 @@
+ #include <sys/scsicmd.h>
+ #endif
+
+-#if (defined(OS_freebsd)) && (__FreeBSD__ >= 2)
++#if (defined(OS_freebsd)) && (__FreeBSD__ >= 3)
+ #include <camlib.h>
+ #endif
+
+@@ -82,7 +82,7 @@ int scsi_max_length(void)
+ int scsi_open(const char *name, int flag UNUSEDP, int mode UNUSEDP,
+ void **extra_data UNUSEDP)
+ {
+-#if (defined(OS_freebsd)) && (__FreeBSD__ >= 2)
++#if (defined(OS_freebsd)) && (__FreeBSD__ >= 3)
+ struct cam_device *cam_dev;
+ cam_dev = cam_open_device(name, O_RDWR);
+ *extra_data = (void *) cam_dev;
+@@ -245,7 +245,7 @@ int scsi_cmd(int fd, unsigned char *cdb, int cmdlen, s
+ }
+
+ return 0;
+-#elif (defined OS_freebsd) && (__FreeBSD__ >= 2)
++#elif (defined OS_freebsd) && (__FreeBSD__ >= 3)
+ #define MSG_SIMPLE_Q_TAG 0x20 /* O/O */
+ union ccb *ccb;
+ int flags;
diff --git a/filesystems/mtools/files/pkg-message.in b/filesystems/mtools/files/pkg-message.in
new file mode 100644
index 000000000000..fb262add717d
--- /dev/null
+++ b/filesystems/mtools/files/pkg-message.in
@@ -0,0 +1,7 @@
+[
+{ type: install
+ message: <<EOM
+Please verify %%PREFIX%%/etc/mtools.conf for your machine.
+EOM
+}
+]
diff --git a/filesystems/mtools/pkg-descr b/filesystems/mtools/pkg-descr
new file mode 100644
index 000000000000..5ab285231a70
--- /dev/null
+++ b/filesystems/mtools/pkg-descr
@@ -0,0 +1,4 @@
+Mtools is a collection of utilities for accessing MS-DOS disks and file
+system images from Unix without mounting them. It supports Win95-style
+long file names, OS/2 XDF-formatted disks, ZIP/JAZ disks, and 2MB disks
+(store up to 1992kB on a high-density 3.5" diskette).
diff --git a/filesystems/mtools/pkg-plist b/filesystems/mtools/pkg-plist
new file mode 100644
index 000000000000..8fe66ac5cb9c
--- /dev/null
+++ b/filesystems/mtools/pkg-plist
@@ -0,0 +1,60 @@
+bin/amuFormat.sh
+%%X11%%bin/floppyd
+%%X11%%bin/floppyd_installtest
+bin/mattrib
+bin/mbadblocks
+bin/mcat
+bin/mcd
+bin/mcheck
+bin/mcomp
+bin/mcopy
+bin/mdel
+bin/mdeltree
+bin/mdir
+bin/mdu
+bin/mformat
+bin/minfo
+bin/mkmanifest
+bin/mlabel
+bin/mmd
+bin/mmount
+bin/mmove
+bin/mpartition
+bin/mrd
+bin/mren
+bin/mshowfat
+bin/mtools
+bin/mtoolstest
+bin/mtype
+bin/mxtar
+bin/mzip
+bin/mshortname
+%%X11%%share/man/man1/floppyd.1.gz
+%%X11%%share/man/man1/floppyd_installtest.1.gz
+share/man/man1/mattrib.1.gz
+share/man/man1/mbadblocks.1.gz
+share/man/man1/mcat.1.gz
+share/man/man1/mcd.1.gz
+share/man/man1/mcopy.1.gz
+share/man/man1/mdel.1.gz
+share/man/man1/mdeltree.1.gz
+share/man/man1/mdir.1.gz
+share/man/man1/mdu.1.gz
+share/man/man1/mformat.1.gz
+share/man/man1/minfo.1.gz
+share/man/man1/mkmanifest.1.gz
+share/man/man1/mlabel.1.gz
+share/man/man1/mmd.1.gz
+share/man/man1/mmount.1.gz
+share/man/man1/mmove.1.gz
+share/man/man1/mpartition.1.gz
+share/man/man1/mrd.1.gz
+share/man/man1/mren.1.gz
+share/man/man1/mshowfat.1.gz
+share/man/man1/mtools.1.gz
+share/man/man1/mtoolstest.1.gz
+share/man/man1/mtype.1.gz
+share/man/man1/mzip.1.gz
+share/man/man1/mshortname.1.gz
+share/man/man5/mtools.5.gz
+@sample etc/mtools.conf.sample