git: 9b0de17c9ccd - main - misc/mmv: update to version 2.10
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 25 Aug 2026 12:13:47 UTC
The branch main has been updated by se:
URL: https://cgit.FreeBSD.org/ports/commit/?id=9b0de17c9ccd7b0db1091157b1d86785f9d642f9
commit 9b0de17c9ccd7b0db1091157b1d86785f9d642f9
Author: Stefan Eßer <se@FreeBSD.org>
AuthorDate: 2026-08-25 12:11:05 +0000
Commit: Stefan Eßer <se@FreeBSD.org>
CommitDate: 2026-08-25 12:11:05 +0000
misc/mmv: update to version 2.10
This update replaces the unmaintained legacy version by a fork that
is seeing active development.
A number of options have been added, but the commands and options
should be backwards compatible with the original version.
---
misc/mmv/Makefile | 59 +++++++++++++++-----------------------
misc/mmv/distinfo | 8 ++----
misc/mmv/files/LICENSE | 10 -------
misc/mmv/files/patch-Makefile.am | 11 ++++++++
misc/mmv/files/patch-bootstrap | 20 +++++++++++++
misc/mmv/files/patch-mmv.c | 61 ----------------------------------------
misc/mmv/pkg-plist | 1 +
7 files changed, 58 insertions(+), 112 deletions(-)
diff --git a/misc/mmv/Makefile b/misc/mmv/Makefile
index 8ad62df1edff..cfcefb975fc1 100644
--- a/misc/mmv/Makefile
+++ b/misc/mmv/Makefile
@@ -1,43 +1,30 @@
PORTNAME= mmv
-PORTVERSION= 1.01b.19
-PORTREVISION= 2
+DISTVERSIONPREFIX= v
+DISTVERSION= 2.10
CATEGORIES= misc
-MASTER_SITES= DEBIAN_POOL
-DISTNAME= ${PORTNAME}_1.01b.orig
-DISTFILES= ${PORTNAME}_1.01b.orig${EXTRACT_SUFX} \
- ${_debfile}
-
-PATCH_DIST_STRIP= -p1
MAINTAINER= se@FreeBSD.org
COMMENT= Move/Copy/Append/Link multiple files
-WWW= https://packages.debian.org/unstable/utils/mmv
-
-LICENSE= Freeware
-LICENSE_NAME= MMV
-LICENSE_FILE= ${PATCHDIR}/LICENSE
-LICENSE_PERMS= dist-mirror pkg-mirror auto-accept
-
-CFLAGS+= -DHAS_DIRENT
-WRKSRC= ${WRKDIR}/${PORTNAME}-1.01b.orig
-
-_debfile= ${PORTNAME}_1.01b-19.debian.tar.xz
-
-pre-patch:
- ${TAR} -C ${WRKDIR} -xvJf ${DISTDIR}/${_debfile} debian/patches
- cd ${WRKSRC} && while read p ; do \
- ${PATCH} <${WRKDIR}/debian/patches/$$p ; \
- done <${WRKDIR}/debian/patches/series
-
-do-build:
- cd ${WRKSRC} && ${CC} ${CFLAGS} -o ${PORTNAME} ${PORTNAME}.c
-
-do-install:
- ${INSTALL_PROGRAM} ${WRKSRC}/mmv ${STAGEDIR}${PREFIX}/bin/
- ${INSTALL_MAN} ${WRKSRC}/mmv.1 ${STAGEDIR}${PREFIX}/share/man/man1/
-.for i in mcp mad mln
- ${LN} -sf ${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${i}
- ${LN} -sf ${PORTNAME}.1 ${STAGEDIR}${PREFIX}/share/man/man1/${i}.1
-.endfor
+WWW= https://github.com/rrthomas/mmv
+
+LICENSE= GPLv3+
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+BUILD_DEPENDS= gengetopt>=2.23:devel/gengetopt \
+ gnulib>0;:devel/gnulib \
+ help2man:misc/help2man
+
+USES= autoreconf pkgconfig
+USE_GITHUB= yes
+GH_ACCOUNT= rrthomas
+GNU_CONFIGURE= yes
+
+OPTIONS_DEFINE= DOCS
+
+post-extract:
+ ${RMDIR} ${WRKSRC}/gnulib && ${LN} -s ${LOCALBASE}/share/gnulib ${WRKSRC}/
+
+pre-configure:
+ cd ${WRKSRC} && ./bootstrap
.include <bsd.port.mk>
diff --git a/misc/mmv/distinfo b/misc/mmv/distinfo
index ca6295846cc5..4d192bad9781 100644
--- a/misc/mmv/distinfo
+++ b/misc/mmv/distinfo
@@ -1,5 +1,3 @@
-TIMESTAMP = 1577192605
-SHA256 (mmv_1.01b.orig.tar.gz) = 0399c027ea1e51fd607266c1e33573866d4db89f64a74be8b4a1d2d1ff1fdeef
-SIZE (mmv_1.01b.orig.tar.gz) = 25656
-SHA256 (mmv_1.01b-19.debian.tar.xz) = 79e0d8d31f76f6121dc563fa626dfaf9e2d4d9cec840121dd42e6b8cfc638b3e
-SIZE (mmv_1.01b-19.debian.tar.xz) = 12436
+TIMESTAMP = 1787655543
+SHA256 (rrthomas-mmv-v2.10_GH0.tar.gz) = e8dbd555bdd6c13ab563f796c6081c8e2c2cd2ab8967996bf2c430a7fb740d01
+SIZE (rrthomas-mmv-v2.10_GH0.tar.gz) = 68486
diff --git a/misc/mmv/files/LICENSE b/misc/mmv/files/LICENSE
deleted file mode 100644
index 813ade3eb999..000000000000
--- a/misc/mmv/files/LICENSE
+++ /dev/null
@@ -1,10 +0,0 @@
-Copyright (c) 1989 Vladimir Lanin
-
-Mmv is freeware. That means that the entire package of software and
-documentation is copyrighted, and may not be distributed with any
-modifications or for any charge (without the author's explicit written
-permission). Other than that, it may be used and distributed freely.
-
-Vladimir Lanin
-330 Wadsworth Ave, Apt 6F
-New York, NY 10040
diff --git a/misc/mmv/files/patch-Makefile.am b/misc/mmv/files/patch-Makefile.am
new file mode 100644
index 000000000000..5fdc1eacaa0c
--- /dev/null
+++ b/misc/mmv/files/patch-Makefile.am
@@ -0,0 +1,11 @@
+--- Makefile.am.orig 2026-08-25 11:33:24 UTC
++++ Makefile.am
+@@ -23,6 +23,8 @@ dist_doc_DATA = README.md
+
+ dist_doc_DATA = README.md
+
++RM = rm -f
++
+ LDADD = $(top_builddir)/lib/libgnu.a
+ AM_CPPFLAGS = -I$(top_srcdir)/lib -I$(top_builddir)/lib
+ AM_CFLAGS = $(WARN_CFLAGS)
diff --git a/misc/mmv/files/patch-bootstrap b/misc/mmv/files/patch-bootstrap
new file mode 100644
index 000000000000..6db7cf7dd000
--- /dev/null
+++ b/misc/mmv/files/patch-bootstrap
@@ -0,0 +1,20 @@
+--- bootstrap.orig 2026-08-25 11:58:45 UTC
++++ bootstrap
+@@ -4006,7 +4006,7 @@ func_require_extra_locale_categories ()
+ # require_git
+ # -----------
+ # Ignore git if it's not available, or we're not in a git checkout tree.
+-require_git=func_require_git
++#require_git=func_require_git
+ func_require_git ()
+ {
+ $debug_cmd
+@@ -5104,6 +5104,8 @@ func_check_versions ()
+ # ------------------------------------------------------
+ func_check_versions ()
+ {
++ /bin/true ; return
++
+ $debug_cmd
+
+ func_check_versions_result=:
diff --git a/misc/mmv/files/patch-mmv.c b/misc/mmv/files/patch-mmv.c
deleted file mode 100644
index 9f0e563f45ab..000000000000
--- a/misc/mmv/files/patch-mmv.c
+++ /dev/null
@@ -1,61 +0,0 @@
---- mmv.c.orig 2017-10-24 14:25:26 UTC
-+++ mmv.c
-@@ -73,7 +73,8 @@ Use -- as the end of options.\n";
- %s [-m|x|r|c|o|a|l%s] [-h] [-d|p] [-g|t] [-v|n] [from to]\n\
- \n\
- Use #[l|u]N in the ``to'' pattern to get the [lowercase|uppercase of the]\n\
--string matched by the N'th ``from'' pattern wildcard.\n\
-+string matched by the N'th ``from'' pattern wildcard. = can be used\n\
-+instead of #.\n\
- \n\
- A ``from'' pattern containing wildcards should be quoted when given\n\
- on the command line. Also you may need to quote ``to'' pattern.\n\
-@@ -977,6 +978,9 @@ static int parsepat()
- lastname = p + 1;
- break;
- case '#':
-+ case '=':
-+ {
-+ char index_char=c;
- c = *(++p);
- if (c == 'l' || c == 'u') {
- #ifdef IS_MSDOS
-@@ -987,8 +991,8 @@ static int parsepat()
- #endif
- }
- if (!isdigit(c)) {
-- printf("%s -> %s : expected digit (not '%c') after #.\n",
-- from, to, c);
-+ printf("%s -> %s : expected digit (not '%c') after %c.\n",
-+ from, to, c, index_char);
- return(-1);
- }
- for(x = 0; ;x *= 10) {
-@@ -999,8 +1003,8 @@ static int parsepat()
- p++;
- }
- if (x < 1 || x > totwilds) {
-- printf("%s -> %s : wildcard #%d does not exist.\n",
-- from, to, x);
-+ printf("%s -> %s : wildcard %c%d does not exist.\n",
-+ from, to, index_char, x);
- return(-1);
- }
- #ifdef IS_MSDOS
-@@ -1008,6 +1012,7 @@ static int parsepat()
- havedot = 1;
- #endif
- break;
-+ }
- case ESC:
- if ((c = *(++p)) == '\0') {
- printf(TRAILESC, from, to, ESC);
-@@ -2030,7 +2039,7 @@ static void makerep()
- repbad = 0;
- p = fullrep;
- for (pat = to, l = 0; (c = *pat) != '\0'; pat++, l++) {
-- if (c == '#') {
-+ if (c == '#' || c == '=') {
- c = *(++pat);
- #ifndef IS_MSDOS
- if (c == 'l') {
diff --git a/misc/mmv/pkg-plist b/misc/mmv/pkg-plist
index 38cfa1f4c67f..91924f23b072 100644
--- a/misc/mmv/pkg-plist
+++ b/misc/mmv/pkg-plist
@@ -2,6 +2,7 @@ bin/mad
bin/mcp
bin/mln
bin/mmv
+%%PORTDOCS%%%%DOCSDIR%%/README.md
share/man/man1/mad.1.gz
share/man/man1/mcp.1.gz
share/man/man1/mln.1.gz