git: 7b0bec15a69a - main - x11/gbsddialog: add new port

From: Joseph Mingrone <jrm_at_FreeBSD.org>
Date: Wed, 21 Feb 2024 04:24:11 UTC
The branch main has been updated by jrm:

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

commit 7b0bec15a69a325190b01f433cb506f1cb004df2
Author:     Pierre Pronchery <khorben@defora.org>
AuthorDate: 2024-02-16 18:20:22 +0000
Commit:     Joseph Mingrone <jrm@FreeBSD.org>
CommitDate: 2024-02-21 04:22:40 +0000

    x11/gbsddialog: add new port
    
    gbsddialog is an implementation of bsddialog, a text-based user interface to be
    used in scripts and tools, such as in the official FreeBSD installer,
    bsdinstall(8). gbsddialog uses Gtk+ dialogs and widgets instead of console-based
    equivalents. The objective is to reproduce the same behaviour as the original
    tool, respecting the exact command-line parameters and output. gbsddialog can
    then be used as a drop-in replacement to bsddialog, effectively granting the
    possibility to install and configure FreeBSD entirely in graphical mode.
    
    In addition, an implementation of Xdialog is also provided, for use with
    bsdconfig(8) when invoked in graphical mode with -S or -X.
    
    Reviewed by:    jrm
    Sponsored by:   The FreeBSD Foundation
    Pull Request:   https://github.com/freebsd/freebsd-ports/pull/235
---
 x11/Makefile               |  1 +
 x11/gbsddialog/Makefile    | 26 ++++++++++++++++++++++++++
 x11/gbsddialog/distinfo    |  3 +++
 x11/gbsddialog/pkg-descr   | 14 ++++++++++++++
 x11/gbsddialog/pkg-message | 11 +++++++++++
 x11/gbsddialog/pkg-plist   | 44 ++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 99 insertions(+)

diff --git a/x11/Makefile b/x11/Makefile
index 2fb860abb569..c347b37c2617 100644
--- a/x11/Makefile
+++ b/x11/Makefile
@@ -86,6 +86,7 @@
     SUBDIR += foot
     SUBDIR += fstobdf
     SUBDIR += fuzzel
+    SUBDIR += gbsddialog
     SUBDIR += gdm
     SUBDIR += glcapsviewer
     SUBDIR += gmrun
diff --git a/x11/gbsddialog/Makefile b/x11/gbsddialog/Makefile
new file mode 100644
index 000000000000..d8ad4e7ba8eb
--- /dev/null
+++ b/x11/gbsddialog/Makefile
@@ -0,0 +1,26 @@
+PORTNAME=	gbsddialog
+DISTVERSION=	0.8.1
+CATEGORIES=	x11
+MASTER_SITES=	${WWW}/releases/download/${PORTNAME}_${DISTVERSION:S/./-/g}/
+
+MAINTAINER=	khorben@defora.org
+COMMENT=	Drop in replacement for the "dialog" or "cdialog" programs
+WWW=		https://github.com/khorben/gbsddialog
+
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+LIB_DEPENDS=	libharfbuzz.so:print/harfbuzz
+
+USES=		desktop-file-utils gettext-runtime gnome pkgconfig
+USE_GNOME=	cairo gdkpixbuf2 glib20 gtk30 pango
+
+CONFLICTS_INSTALL=	xdialog-*
+
+OPTIONS_DEFINE=	DOCS
+
+post-install:
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/Xdialog \
+		${STAGEDIR}${PREFIX}/bin/gbsddialog
+
+.include <bsd.port.mk>
diff --git a/x11/gbsddialog/distinfo b/x11/gbsddialog/distinfo
new file mode 100644
index 000000000000..41dbec3f88bc
--- /dev/null
+++ b/x11/gbsddialog/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1708207721
+SHA256 (gbsddialog-0.8.1.tar.gz) = 2b08ea0dff3f8a5fdf99571a92ae996a5713596769231030093201ed63679de5
+SIZE (gbsddialog-0.8.1.tar.gz) = 76238
diff --git a/x11/gbsddialog/pkg-descr b/x11/gbsddialog/pkg-descr
new file mode 100644
index 000000000000..5a08288e8cb6
--- /dev/null
+++ b/x11/gbsddialog/pkg-descr
@@ -0,0 +1,14 @@
+gbsddialog is an implementation of bsddialog, a text-based user interface to be
+used in scripts and tools, such as in the official FreeBSD installer,
+bsdinstall(8).
+
+However, gbsddialog uses Gtk+ dialogs and widgets instead of console-based
+equivalents.
+
+The objective is to reproduce the same behaviour as the original tool,
+respecting the exact command-line parameters and output. gbsddialog can then be
+used as a drop-in replacement to bsddialog, effectively granting the possibility
+to install and configure FreeBSD entirely in graphical mode.
+
+In addition, an implementation of Xdialog is also provided, for use with
+bsdconfig(8) when invoked in graphical mode with -S or -X.
diff --git a/x11/gbsddialog/pkg-message b/x11/gbsddialog/pkg-message
new file mode 100644
index 000000000000..f764e314e684
--- /dev/null
+++ b/x11/gbsddialog/pkg-message
@@ -0,0 +1,11 @@
+[
+{ type: install
+  message: <<EOM
+This package also installs a desktop application file for bsdconfig(8),
+FreeBSD's system configuration tool, for operation as a graphical
+interface (starting with -X) as permitted with xdialog(1) as helper tool.
+However, for proper operation this requires either running as the root user, or
+sudo(8) to be installed and the user to be allowed in the sudoers(5) file.
+EOM
+}
+]
diff --git a/x11/gbsddialog/pkg-plist b/x11/gbsddialog/pkg-plist
new file mode 100644
index 000000000000..51784bd66833
--- /dev/null
+++ b/x11/gbsddialog/pkg-plist
@@ -0,0 +1,44 @@
+bin/Xdialog
+bin/gbsddialog
+share/applications/bsdconfig.desktop
+share/icons/hicolor/48x48/apps/bsdconfig.png
+share/man/man1/Xdialog.1.gz
+share/man/man1/gbsddialog.1.gz
+%%PORTDOCS%%%%DOCSDIR%%/COPYING
+%%PORTDOCS%%%%DOCSDIR%%/README.md
+%%PORTDOCS%%%%DOCSDIR%%/samples/Xdialog.wrapper.c
+%%PORTDOCS%%%%DOCSDIR%%/samples/Xmessage
+%%PORTDOCS%%%%DOCSDIR%%/samples/Xmore
+%%PORTDOCS%%%%DOCSDIR%%/samples/allrpms
+%%PORTDOCS%%%%DOCSDIR%%/samples/bluebox.rc
+%%PORTDOCS%%%%DOCSDIR%%/samples/buildlist
+%%PORTDOCS%%%%DOCSDIR%%/samples/calendar
+%%PORTDOCS%%%%DOCSDIR%%/samples/chain
+%%PORTDOCS%%%%DOCSDIR%%/samples/checklist
+%%PORTDOCS%%%%DOCSDIR%%/samples/dselect
+%%PORTDOCS%%%%DOCSDIR%%/samples/editbox
+%%PORTDOCS%%%%DOCSDIR%%/samples/fixed-font.rc
+%%PORTDOCS%%%%DOCSDIR%%/samples/format1440
+%%PORTDOCS%%%%DOCSDIR%%/samples/fselect
+%%PORTDOCS%%%%DOCSDIR%%/samples/gauge
+%%PORTDOCS%%%%DOCSDIR%%/samples/infobox
+%%PORTDOCS%%%%DOCSDIR%%/samples/infobox2
+%%PORTDOCS%%%%DOCSDIR%%/samples/inputbox
+%%PORTDOCS%%%%DOCSDIR%%/samples/install-wrapper
+%%PORTDOCS%%%%DOCSDIR%%/samples/kernel
+%%PORTDOCS%%%%DOCSDIR%%/samples/logbox
+%%PORTDOCS%%%%DOCSDIR%%/samples/logbox2
+%%PORTDOCS%%%%DOCSDIR%%/samples/login
+%%PORTDOCS%%%%DOCSDIR%%/samples/menubox
+%%PORTDOCS%%%%DOCSDIR%%/samples/msgbox
+%%PORTDOCS%%%%DOCSDIR%%/samples/no-entry.xpm
+%%PORTDOCS%%%%DOCSDIR%%/samples/radiolist
+%%PORTDOCS%%%%DOCSDIR%%/samples/rangebox
+%%PORTDOCS%%%%DOCSDIR%%/samples/set-time
+%%PORTDOCS%%%%DOCSDIR%%/samples/tailbox
+%%PORTDOCS%%%%DOCSDIR%%/samples/textbox
+%%PORTDOCS%%%%DOCSDIR%%/samples/timebox
+%%PORTDOCS%%%%DOCSDIR%%/samples/treeview
+%%PORTDOCS%%%%DOCSDIR%%/samples/warning.xpm
+%%PORTDOCS%%%%DOCSDIR%%/samples/xlock-wrapper
+%%PORTDOCS%%%%DOCSDIR%%/samples/yesno