git: cb9e6945b32a - main - x11-fm/xfile: New port: File manager for Unix and alike systems running X11

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 19 Aug 2025 06:45:17 UTC
The branch main has been updated by yuri:

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

commit cb9e6945b32aa8ed7c4a929a540f25166d826762
Author:     Cédric Orlat <corlat@ermaion.com>
AuthorDate: 2025-08-19 06:43:26 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2025-08-19 06:45:13 +0000

    x11-fm/xfile: New port: File manager for Unix and alike systems running X11
    
    PR:             288924
---
 x11-fm/Makefile        |   1 +
 x11-fm/xfile/Makefile  |  46 +++++++++++++++++
 x11-fm/xfile/distinfo  |   3 ++
 x11-fm/xfile/pkg-descr |  13 +++++
 x11-fm/xfile/pkg-plist | 135 +++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 198 insertions(+)

diff --git a/x11-fm/Makefile b/x11-fm/Makefile
index 3d82810e74a0..9ec899307185 100644
--- a/x11-fm/Makefile
+++ b/x11-fm/Makefile
@@ -30,5 +30,6 @@
     SUBDIR += xcruise
     SUBDIR += xdiskusage
     SUBDIR += xfe
+    SUBDIR += xfile
 
 .include <bsd.port.subdir.mk>
diff --git a/x11-fm/xfile/Makefile b/x11-fm/xfile/Makefile
new file mode 100644
index 000000000000..3cfc3070a656
--- /dev/null
+++ b/x11-fm/xfile/Makefile
@@ -0,0 +1,46 @@
+PORTNAME=	xfile
+DISTVERSIONPREFIX=	src-
+DISTVERSION=	1.0
+DISTVERSIONSUFFIX=	-beta
+CATEGORIES=	x11-fm
+MASTER_SITES=	https://fastestcode.org/dl/
+
+MAINTAINER=	corlat@ermaion.com
+COMMENT=	File manager for Unix and alike systems running X11
+WWW=		https://fastestcode.org/xfile.html
+
+LICENSE=	MIT
+
+USES=		motif tar:xz
+USE_XORG=	x11 xinerama xt
+
+# The mkicons.sh script makes MAKE_JOBS_UNSAFE necessary.
+# Could be circumvnented by executing the script before building.
+MAKE_JOBS_UNSAFE=	yes
+
+# Workaround necessary until upstream change the name of the source archive;
+# probably not until next release.
+WRKSRC=		${WRKDIR}/${PORTNAME}-${DISTVERSION}-rc2
+
+do-install:
+	${INSTALL_PROGRAM} ${WRKSRC}/src/${PORTNAME} ${STAGEDIR}${PREFIX}/bin
+	@(cd ${STAGEDIR}${PREFIX}/bin && ${LN} -s ${PORTNAME} ${PORTNAME}-open)
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/man/man1
+	${INSTALL_MAN} ${WRKSRC}/src/${PORTNAME}.1 \
+		${STAGEDIR}${PREFIX}/share/man/man1
+	${MKDIR} ${STAGEDIR}${PREFIX}/etc/X11/app-defaults
+	${INSTALL_DATA} ${WRKSRC}/src/${PORTNAME}.ad \
+		${STAGEDIR}${PREFIX}/etc/X11/app-defaults/Xfile
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/xfile/types
+	${INSTALL_DATA} ${WRKSRC}/src/default.db \
+		${STAGEDIR}${PREFIX}/share/xfile/types/system.db
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/xfile/icons
+	${INSTALL_DATA} ${WRKSRC}/src/icons/*.xpm \
+		${STAGEDIR}${PREFIX}/share/xfile/icons
+	${INSTALL_DATA} ${WRKSRC}/src/icons/README \
+		${STAGEDIR}${PREFIX}/share/xfile/README.icons
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps
+	${INSTALL_DATA} ${WRKSRC}/src/xbm/cabinet.xpm \
+		${STAGEDIR}${PREFIX}/share/pixmaps/xfile_48x48.xpm
+
+.include <bsd.port.mk>
diff --git a/x11-fm/xfile/distinfo b/x11-fm/xfile/distinfo
new file mode 100644
index 000000000000..e56a2a1de792
--- /dev/null
+++ b/x11-fm/xfile/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1755456745
+SHA256 (xfile-src-1.0-beta.tar.xz) = 268ce054ced23fb0172ffe76cb2aa307367759ce743ad9b403a377e7d6eac38b
+SIZE (xfile-src-1.0-beta.tar.xz) = 121160
diff --git a/x11-fm/xfile/pkg-descr b/x11-fm/xfile/pkg-descr
new file mode 100644
index 000000000000..759afe765f81
--- /dev/null
+++ b/x11-fm/xfile/pkg-descr
@@ -0,0 +1,13 @@
+XFile is a compact file manager for Unix and alike systems running X11.
+It presents the file system as is, without imaginary locations, trashcans etc.
+XFile uses its own file type association database written in typical Unix/RC
+file syntax. Mounting support for file systems defined in fstab, and integration
+with mount daemons that manage a dedicated media directory is also included.
+
+XFile is easily configurable and customizable with X resources. The Tools
+dropdown menu can be populated with user defined commands, which may be run with
+selected files, current directory and user specified parameters as arguments.
+
+The application has no dependencies, save for X and Motif, and is built using
+simple Makefiles. It's written in C, and the source code is freely available
+under the terms of the X/MIT license.
diff --git a/x11-fm/xfile/pkg-plist b/x11-fm/xfile/pkg-plist
new file mode 100644
index 000000000000..501e8385bb4e
--- /dev/null
+++ b/x11-fm/xfile/pkg-plist
@@ -0,0 +1,135 @@
+bin/xfile
+bin/xfile-open
+etc/X11/app-defaults/Xfile
+share/man/man1/xfile.1.gz
+share/pixmaps/xfile_48x48.xpm
+%%DATADIR%%/README.icons
+%%DATADIR%%/icons/asm.l.xpm
+%%DATADIR%%/icons/asm.m.xpm
+%%DATADIR%%/icons/asm.s.xpm
+%%DATADIR%%/icons/asm.t.xpm
+%%DATADIR%%/icons/audio.l.xpm
+%%DATADIR%%/icons/audio.m.xpm
+%%DATADIR%%/icons/audio.s.xpm
+%%DATADIR%%/icons/audio.t.xpm
+%%DATADIR%%/icons/bin.l.xpm
+%%DATADIR%%/icons/bin.m.xpm
+%%DATADIR%%/icons/bin.s.xpm
+%%DATADIR%%/icons/bin.t.xpm
+%%DATADIR%%/icons/cinc.l.xpm
+%%DATADIR%%/icons/cinc.m.xpm
+%%DATADIR%%/icons/cinc.s.xpm
+%%DATADIR%%/icons/cinc.t.xpm
+%%DATADIR%%/icons/comp.l.xpm
+%%DATADIR%%/icons/comp.m.xpm
+%%DATADIR%%/icons/comp.s.xpm
+%%DATADIR%%/icons/comp.t.xpm
+%%DATADIR%%/icons/csrc.l.xpm
+%%DATADIR%%/icons/csrc.m.xpm
+%%DATADIR%%/icons/csrc.s.xpm
+%%DATADIR%%/icons/csrc.t.xpm
+%%DATADIR%%/icons/cxxinc.l.xpm
+%%DATADIR%%/icons/cxxinc.m.xpm
+%%DATADIR%%/icons/cxxinc.s.xpm
+%%DATADIR%%/icons/cxxinc.t.xpm
+%%DATADIR%%/icons/cxxsrc.l.xpm
+%%DATADIR%%/icons/cxxsrc.m.xpm
+%%DATADIR%%/icons/cxxsrc.s.xpm
+%%DATADIR%%/icons/cxxsrc.t.xpm
+%%DATADIR%%/icons/dir.l.xpm
+%%DATADIR%%/icons/dir.m.xpm
+%%DATADIR%%/icons/dir.s.xpm
+%%DATADIR%%/icons/dir.t.xpm
+%%DATADIR%%/icons/dlink.l.xpm
+%%DATADIR%%/icons/dlink.m.xpm
+%%DATADIR%%/icons/dlink.s.xpm
+%%DATADIR%%/icons/dlink.t.xpm
+%%DATADIR%%/icons/elf.l.xpm
+%%DATADIR%%/icons/elf.m.xpm
+%%DATADIR%%/icons/elf.s.xpm
+%%DATADIR%%/icons/elf.t.xpm
+%%DATADIR%%/icons/exec.l.xpm
+%%DATADIR%%/icons/exec.m.xpm
+%%DATADIR%%/icons/exec.s.xpm
+%%DATADIR%%/icons/exec.t.xpm
+%%DATADIR%%/icons/file.l.xpm
+%%DATADIR%%/icons/file.m.xpm
+%%DATADIR%%/icons/file.s.xpm
+%%DATADIR%%/icons/file.t.xpm
+%%DATADIR%%/icons/http.l.xpm
+%%DATADIR%%/icons/http.m.xpm
+%%DATADIR%%/icons/http.s.xpm
+%%DATADIR%%/icons/http.t.xpm
+%%DATADIR%%/icons/info.l.xpm
+%%DATADIR%%/icons/info.m.xpm
+%%DATADIR%%/icons/info.s.xpm
+%%DATADIR%%/icons/info.t.xpm
+%%DATADIR%%/icons/isocd.l.xpm
+%%DATADIR%%/icons/isocd.m.xpm
+%%DATADIR%%/icons/isocd.s.xpm
+%%DATADIR%%/icons/isocd.t.xpm
+%%DATADIR%%/icons/lib.l.xpm
+%%DATADIR%%/icons/lib.m.xpm
+%%DATADIR%%/icons/lib.s.xpm
+%%DATADIR%%/icons/lib.t.xpm
+%%DATADIR%%/icons/makefile.l.xpm
+%%DATADIR%%/icons/makefile.m.xpm
+%%DATADIR%%/icons/makefile.s.xpm
+%%DATADIR%%/icons/makefile.t.xpm
+%%DATADIR%%/icons/mpt.l.xpm
+%%DATADIR%%/icons/mpt.m.xpm
+%%DATADIR%%/icons/mpt.s.xpm
+%%DATADIR%%/icons/mpt.t.xpm
+%%DATADIR%%/icons/mpti.l.xpm
+%%DATADIR%%/icons/mpti.m.xpm
+%%DATADIR%%/icons/mpti.s.xpm
+%%DATADIR%%/icons/mpti.t.xpm
+%%DATADIR%%/icons/nrfile.l.xpm
+%%DATADIR%%/icons/nrfile.m.xpm
+%%DATADIR%%/icons/nrfile.s.xpm
+%%DATADIR%%/icons/nrfile.t.xpm
+%%DATADIR%%/icons/nxdir.l.xpm
+%%DATADIR%%/icons/nxdir.m.xpm
+%%DATADIR%%/icons/nxdir.s.xpm
+%%DATADIR%%/icons/nxdir.t.xpm
+%%DATADIR%%/icons/pdf.l.xpm
+%%DATADIR%%/icons/pdf.m.xpm
+%%DATADIR%%/icons/pdf.s.xpm
+%%DATADIR%%/icons/pdf.t.xpm
+%%DATADIR%%/icons/pixmap.l.xpm
+%%DATADIR%%/icons/pixmap.m.xpm
+%%DATADIR%%/icons/pixmap.s.xpm
+%%DATADIR%%/icons/pixmap.t.xpm
+%%DATADIR%%/icons/script.l.xpm
+%%DATADIR%%/icons/script.m.xpm
+%%DATADIR%%/icons/script.s.xpm
+%%DATADIR%%/icons/script.t.xpm
+%%DATADIR%%/icons/sh.l.xpm
+%%DATADIR%%/icons/sh.m.xpm
+%%DATADIR%%/icons/sh.s.xpm
+%%DATADIR%%/icons/sh.t.xpm
+%%DATADIR%%/icons/tar.l.xpm
+%%DATADIR%%/icons/tar.m.xpm
+%%DATADIR%%/icons/tar.s.xpm
+%%DATADIR%%/icons/tar.t.xpm
+%%DATADIR%%/icons/text.l.xpm
+%%DATADIR%%/icons/text.m.xpm
+%%DATADIR%%/icons/text.s.xpm
+%%DATADIR%%/icons/text.t.xpm
+%%DATADIR%%/icons/typeset.l.xpm
+%%DATADIR%%/icons/typeset.m.xpm
+%%DATADIR%%/icons/typeset.s.xpm
+%%DATADIR%%/icons/typeset.t.xpm
+%%DATADIR%%/icons/video.l.xpm
+%%DATADIR%%/icons/video.m.xpm
+%%DATADIR%%/icons/video.s.xpm
+%%DATADIR%%/icons/video.t.xpm
+%%DATADIR%%/icons/xbm.l.xpm
+%%DATADIR%%/icons/xbm.m.xpm
+%%DATADIR%%/icons/xbm.s.xpm
+%%DATADIR%%/icons/xbm.t.xpm
+%%DATADIR%%/icons/xpm.l.xpm
+%%DATADIR%%/icons/xpm.m.xpm
+%%DATADIR%%/icons/xpm.s.xpm
+%%DATADIR%%/icons/xpm.t.xpm
+%%DATADIR%%/types/system.db