git: 517a36067bbe - main - net/boinctui: Add port: Fullscreen text-mode manager for BOINC client

From: Rainer Hurling <rhurlin_at_FreeBSD.org>
Date: Sun, 08 Sep 2024 12:23:49 UTC
The branch main has been updated by rhurlin:

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

commit 517a36067bbe6dab38ace9c59a0ac86e4701d8c3
Author:     Älven <alster@vinterdalen.se>
AuthorDate: 2024-09-08 12:08:51 +0000
Commit:     Rainer Hurling <rhurlin@FreeBSD.org>
CommitDate: 2024-09-08 12:23:11 +0000

    net/boinctui: Add port: Fullscreen text-mode manager for BOINC client
    
    PR:             281176
---
 net/Makefile                          |  1 +
 net/boinctui/Makefile                 | 34 ++++++++++++++++++++++++++++++++++
 net/boinctui/distinfo                 |  3 +++
 net/boinctui/files/patch-Makefile.in  | 30 ++++++++++++++++++++++++++++++
 net/boinctui/files/patch-configure.in | 14 ++++++++++++++
 net/boinctui/files/patch-src_net.cpp  | 18 ++++++++++++++++++
 net/boinctui/pkg-descr                | 15 +++++++++++++++
 net/boinctui/pkg-plist                |  3 +++
 8 files changed, 118 insertions(+)

diff --git a/net/Makefile b/net/Makefile
index 3ee718b6a3da..9bf56ac69ce8 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -60,6 +60,7 @@
     SUBDIR += bmon
     SUBDIR += boinc-client
     SUBDIR += boinc_curses
+    SUBDIR += boinctui
     SUBDIR += bosh-bootloader
     SUBDIR += bosh-cli
     SUBDIR += bounce
diff --git a/net/boinctui/Makefile b/net/boinctui/Makefile
new file mode 100644
index 000000000000..7a74ede07ffd
--- /dev/null
+++ b/net/boinctui/Makefile
@@ -0,0 +1,34 @@
+PORTNAME=	boinctui
+DISTVERSION=	2.7.1
+CATEGORIES=	net
+MASTER_SITES=	SF/${PORTNAME}
+DISTNAME=	${PORTNAME}_${PORTVERSION}
+
+MAINTAINER=	alster@vinterdalen.se
+COMMENT=	Fullscreen text-mode manager for BOINC client
+WWW=		https://sourceforge.net/projects/boinctui/
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/gpl-3.0.txt
+
+LIB_DEPENDS=	libexpat.so:textproc/expat2
+
+USES=		autoreconf gmake localbase ncurses
+
+GNU_CONFIGURE=	yes
+CONFIGURE_ARGS=	--with-boinc-dir=/var/db/boinc
+
+WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}
+
+OPTIONS_DEFAULT=	GNUTLS
+OPTIONS_SINGLE=		SSL
+OPTIONS_SINGLE_SSL=	GNUTLS OPENSSL
+
+GNUTLS_LIB_DEPENDS=	libgnutls.so:security/gnutls
+OPENSSL_USES=		ssl
+OPENSSL_CONFIGURE_ON=	--without-gnutls
+
+post-install:
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/net/boinctui/distinfo b/net/boinctui/distinfo
new file mode 100644
index 000000000000..1947c717c9a6
--- /dev/null
+++ b/net/boinctui/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1725122849
+SHA256 (boinctui_2.7.1.tar.gz) = 44b059a31d1dc4d7125a48bef6c201c08fda599ed22490cbb626880bbd0ccf66
+SIZE (boinctui_2.7.1.tar.gz) = 98119
diff --git a/net/boinctui/files/patch-Makefile.in b/net/boinctui/files/patch-Makefile.in
new file mode 100644
index 000000000000..3836fa47d6da
--- /dev/null
+++ b/net/boinctui/files/patch-Makefile.in
@@ -0,0 +1,30 @@
+Use INSTALL_DATA (mode 0644) to install changelog and man files
+
+--- Makefile.in.orig	2023-12-14 18:14:23 UTC
++++ Makefile.in
+@@ -2,6 +2,7 @@ CPP	= @CXX@
+ 
+ DEFS	+= -DVERSION=$(VERSION) @DEFS@
+ CPP	= @CXX@
++INSTALL_DATA = install -m 0644
+ INSTALL_PROGRAM = install
+ 
+ SRCS	= ncolorstring.cpp nhline.cpp nvline.cpp nscrollview.cpp nselectlist.cpp nview.cpp \
+@@ -48,7 +49,7 @@ install: installman
+ 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(BINDIR)
+ 	$(INSTALL_PROGRAM) $(PACKAGE_TARNAME) $(DESTDIR)$(BINDIR)
+ 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(DOCDIR)
+-	$(INSTALL_PROGRAM) changelog $(DESTDIR)$(DOCDIR)
++	$(INSTALL_DATA) changelog $(DESTDIR)$(DOCDIR)
+ 
+ createobj:
+ 	@if ! [ -d "$(ODIR)" ] ; then echo "create $(ODIR)";  mkdir $(ODIR); fi
+@@ -56,7 +57,7 @@ installman:
+ installman:
+ 	@echo "install man (boinctui.1) to " $(DESTDIR)@mandir@/man1 " directory"
+ 	mkdir -p $(DESTDIR)@mandir@/man1
+-	install -m 0644 boinctui.1 $(DESTDIR)@mandir@/man1
++	$(INSTALL_DATA) boinctui.1 $(DESTDIR)@mandir@/man1
+ 
+ #srctgz: clean
+ #	@if ! [ -d "../$(PACKAGE_TARNAME)-$(VERSION)" ] ; then echo "create symlink ../$(PACKAGE_TARNAME)-$(VERSION)->$(notdir $(CURDIR))";  ln -n -s $(notdir $(CURDIR)) ../$(PACKAGE_TARNAME)-$(VERSION); fi
diff --git a/net/boinctui/files/patch-configure.in b/net/boinctui/files/patch-configure.in
new file mode 100644
index 000000000000..ea13ee11f939
--- /dev/null
+++ b/net/boinctui/files/patch-configure.in
@@ -0,0 +1,14 @@
+FreeBSD needs netinet/in.h with struct sockaddr_in for src/net.cpp
+to be included explicitly. See man ip(4).
+
+--- configure.in.orig	2024-08-31 18:10:20 UTC
++++ configure.in
+@@ -71,7 +71,7 @@ string.h stdlib.h stdio.h sys/stat.h unistd.h stdarg.h
+ [ \
+ pthread.h \
+ string.h stdlib.h stdio.h sys/stat.h unistd.h stdarg.h sys/ioctl.h arpa/inet.h \
+-locale.h malloc.h sys/socket.h netdb.h signal.h ctype.h \
++locale.h malloc.h sys/socket.h netinet/in.h netdb.h signal.h ctype.h \
+ algorithm string list vector queue stack sstream \
+ expat.h \
+ ] ,  , [AC_MSG_ERROR([Couldn't find some headers])] )
diff --git a/net/boinctui/files/patch-src_net.cpp b/net/boinctui/files/patch-src_net.cpp
new file mode 100644
index 000000000000..416622375ce5
--- /dev/null
+++ b/net/boinctui/files/patch-src_net.cpp
@@ -0,0 +1,18 @@
+FreeBSD needs netinet/in.h with struct sockaddr_in for src/net.cpp
+to be included explicitly. See man ip(4).
+
+--- src/net.cpp.orig	2023-12-14 18:14:23 UTC
++++ src/net.cpp
+@@ -16,6 +16,7 @@
+ // =============================================================================
+ 
+ #include <sys/socket.h>
++#include <netinet/in.h>
+ #include <netdb.h>
+ #include <arpa/inet.h>
+ #include <stdlib.h>
+@@ -139,4 +140,3 @@ char* TConnect::waitresult() //получить отв
+     //    printf("'%s' \nlen=%d\n", answbuf, strlen(answbuf));
+     return answbuf;
+ }
+-
diff --git a/net/boinctui/pkg-descr b/net/boinctui/pkg-descr
new file mode 100644
index 000000000000..6ea024377e92
--- /dev/null
+++ b/net/boinctui/pkg-descr
@@ -0,0 +1,15 @@
+BOINC can be configured in many ways. And the monitoring of scientific
+progress contributed to one's own machines is rewarding. For remote machines
+or to avoid moving the hands of your keyboard, this package provides, all
+for your UNIX command line:
+
+- Fullscreen curses-based text user interface
+- Switch between several hosts running the BOINC client via a hot key
+- View a host's task list (including each task's state)
+- View the BOINC log file in a separate window
+- Suspend/Resume/Abort control of all tasks
+- Update/Suspend/Resume/Reset/No New Task/Allow New Task for projects
+- Toggle activity state
+  (Always suspend/Always resume/Run based on preferences)
+- Run benchmarks
+- Manage BOINC client on remote hosts via boinc_gui RPC protocol
diff --git a/net/boinctui/pkg-plist b/net/boinctui/pkg-plist
new file mode 100644
index 000000000000..d0657da7d342
--- /dev/null
+++ b/net/boinctui/pkg-plist
@@ -0,0 +1,3 @@
+bin/boinctui
+%%DOCSDIR%%/changelog
+share/man/man1/boinctui.1.gz