git: 3df343917482 - main - textproc/xxdiff{,-scripts}: ressurect port

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Wed, 09 Jul 2025 15:52:46 UTC
The branch main has been updated by fuz:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3df3439174824981511bd1512767381607c1f90a

commit 3df3439174824981511bd1512767381607c1f90a
Author:     Robert Clausecker <fuz@FreeBSD.org>
AuthorDate: 2025-07-04 12:47:57 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2025-07-09 15:52:34 +0000

    textproc/xxdiff{,-scripts}: ressurect port
    
     - update to current qt5/qt6 fork
     - update scripts to use Python 3
     - update port to current conventions
    
    Requested by:   reddit user /u/steverikli
---
 textproc/Makefile                 |  2 ++
 textproc/xxdiff-scripts/Makefile  | 20 +++++++++++++++++
 textproc/xxdiff-scripts/pkg-descr | 13 +++++++++++
 textproc/xxdiff/Makefile          | 45 +++++++++++++++++++++++++++++++++++++++
 textproc/xxdiff/Makefile.master   | 10 +++++++++
 textproc/xxdiff/distinfo          |  3 +++
 textproc/xxdiff/pkg-descr         | 20 +++++++++++++++++
 7 files changed, 113 insertions(+)

diff --git a/textproc/Makefile b/textproc/Makefile
index cd5de1cc450d..33486902cb64 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -2193,6 +2193,8 @@
     SUBDIR += xstream
     SUBDIR += xsv-rs
     SUBDIR += xwindiff
+    SUBDIR += xxdiff
+    SUBDIR += xxdiff-scripts
     SUBDIR += y2l
     SUBDIR += yali
     SUBDIR += yaml-mode.el
diff --git a/textproc/xxdiff-scripts/Makefile b/textproc/xxdiff-scripts/Makefile
new file mode 100644
index 000000000000..6c6107f365d2
--- /dev/null
+++ b/textproc/xxdiff-scripts/Makefile
@@ -0,0 +1,20 @@
+PORTNAME=	xxdiff
+CATEGORIES=	textproc
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+PKGNAMESUFFIX=	-scripts
+
+MAINTAINER=	fuz@FreeBSD.org
+COMMENT=	Helper scripts for xxdiff
+WWW=		http://furius.ca/xxdiff/doc/xxdiff-scripts.html
+
+LICENSE=	GPLv2
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+RUN_DEPENDS=	xxdiff:textproc/xxdiff
+
+USES=		python
+USE_PYTHON=	autoplist distutils
+PYDISTUTILS_PKGNAME=	xxdiff-scripts
+MASTERDIR=	${.CURDIR}/../xxdiff
+
+.include "${MASTERDIR}/Makefile.master"
diff --git a/textproc/xxdiff-scripts/pkg-descr b/textproc/xxdiff-scripts/pkg-descr
new file mode 100644
index 000000000000..97ec74448441
--- /dev/null
+++ b/textproc/xxdiff-scripts/pkg-descr
@@ -0,0 +1,13 @@
+xxdiff is a computer program that allows a user (usually a software
+developer of some sort) to easily visualize the differences between
+files. The manner and goal for which this process is applied over
+multiple files is highly dependent on the application, and most of
+the time is driven by custom user scripts.
+
+For example, a configuration management engineer in a company might
+provide some kind of merge policing environment, that allows software
+developers to review changes in files for the purpose of accepting or
+rejecting a submitted changeset to a codebase. Another example is
+that of a developer wishing to review the changes he made to a
+checkout of files from a source-code management system such as CVS,
+Subversion, ClearCase, Perforce, etc.
diff --git a/textproc/xxdiff/Makefile b/textproc/xxdiff/Makefile
new file mode 100644
index 000000000000..762024a6dd6b
--- /dev/null
+++ b/textproc/xxdiff/Makefile
@@ -0,0 +1,45 @@
+PORTNAME=	xxdiff
+CATEGORIES=	textproc
+
+MAINTAINER=	fuz@FreeBSD.org
+COMMENT=	Graphical file and directories comparator and merge tool
+WWW=		http://furius.ca/xxdiff/
+
+LICENSE=	GPLv2
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+FLAVOR?=	${FLAVORS:[1]}
+FLAVORS=	qt5 qt6
+qt5_PKGNAMEPREFIX=	qt5-
+qt6_PKGNAMEPREFIX=	qt6-
+
+USES=		bison gl gmake
+USE_GL=		gl
+
+.if ${FLAVOR} == qt5
+USES+=		qt:5
+USE_QT=		core gui buildtools:build qmake:build widgets
+.else
+USES+=		qt:6
+USE_QT=		base
+.endif
+
+BUILD_WRKSRC=	${WRKSRC}/src
+
+PLIST_FILES=	bin/xxdiff
+PORTDOCS=	*
+
+OPTIONS_DEFINE=	DOCS
+
+pre-build:
+	@(cd ${BUILD_WRKSRC} && ${SETENV} ${MAKE_ENV} QMAKE=${QMAKE} \
+		${MAKE_CMD} -f Makefile.bootstrap ${MAKE_ARGS} Makefile)
+
+do-install:
+	${INSTALL_PROGRAM} ${WRKSRC}/bin/xxdiff ${STAGEDIR}${PREFIX}/bin
+
+do-install-DOCS-on:
+	cd ${WRKSRC}/doc && ${COPYTREE_SHARE} "${PORTDOCS} ! -name Makefile" \
+		${STAGEDIR}/${DOCSDIR}
+
+.include "Makefile.master"
diff --git a/textproc/xxdiff/Makefile.master b/textproc/xxdiff/Makefile.master
new file mode 100644
index 000000000000..a51495b3ffd3
--- /dev/null
+++ b/textproc/xxdiff/Makefile.master
@@ -0,0 +1,10 @@
+PORTVERSION=	g20250320
+PORTEPOCH=	1
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	blais
+GH_TAGNAME=	a5593c1c675fb79d0ec2b6e353abba1fb0179aa7
+
+DESCR=		${.CURDIR}/pkg-descr
+
+.include <bsd.port.mk>
diff --git a/textproc/xxdiff/distinfo b/textproc/xxdiff/distinfo
new file mode 100644
index 000000000000..196a6b26ae08
--- /dev/null
+++ b/textproc/xxdiff/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1751631586
+SHA256 (blais-xxdiff-g20250320-a5593c1c675fb79d0ec2b6e353abba1fb0179aa7_GH0.tar.gz) = 11ac99e758b8cccc8ced208a69d7026c32a7b2a5a1f18fcce48521f8cb4d8c9c
+SIZE (blais-xxdiff-g20250320-a5593c1c675fb79d0ec2b6e353abba1fb0179aa7_GH0.tar.gz) = 2057252
diff --git a/textproc/xxdiff/pkg-descr b/textproc/xxdiff/pkg-descr
new file mode 100644
index 000000000000..cf257c7da0d0
--- /dev/null
+++ b/textproc/xxdiff/pkg-descr
@@ -0,0 +1,20 @@
+xxdiff is a graphical tool for viewing the differences between two or three
+files, or between two directories, and can produce a merged version thereof.
+
+Some of its features:
+
+  - Comparing two files, three files, or two directories (shallow and
+    recursive)
+  - Horizontal diffs highlighting
+  - Files can be merged interactively and resulting output visualized
+    and saved
+  - Has features to assist in performing merge reviews/policing
+  - Can unmerge CVS conflicts in automatically merged file and display
+    them as two files, to help resolve conflicts
+  - Uses external diff program to compute differences: works with GNU
+    diff, SGI diff and ClearCase's cleardiff, and any other diff whose
+    output is similar to those
+  - Fully customizable with a resource file
+  - Look-and-feel similar to Rudy Wortel's/SGI xdiff; it is desktop
+    agnostic (i.e. will work equally well with KDE or GNOME)
+  - Features and output that ease integration with scripts