git: 5ed930dbd523 - main - sysutils/libptytty: adding an offspring of rxvt-unicode that handles pseudo-tty

From: Thierry Thomas <thierry_at_FreeBSD.org>
Date: Tue, 23 Nov 2021 21:03:05 UTC
The branch main has been updated by thierry:

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

commit 5ed930dbd52349bc978371d0b42bee7ceee81cef
Author:     Thierry Thomas <thierry@FreeBSD.org>
AuthorDate: 2021-11-23 19:20:38 +0000
Commit:     Thierry Thomas <thierry@FreeBSD.org>
CommitDate: 2021-11-23 21:02:59 +0000

    sysutils/libptytty: adding an offspring of rxvt-unicode that handles pseudo-tty
    
    It is now required by rxvt-unicode 9.29 as an external dependency.
---
 sysutils/Makefile            |  1 +
 sysutils/libptytty/Makefile  | 30 ++++++++++++++++++++++++++++++
 sysutils/libptytty/distinfo  |  3 +++
 sysutils/libptytty/pkg-descr | 16 ++++++++++++++++
 sysutils/libptytty/pkg-plist |  5 +++++
 5 files changed, 55 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index aa4b3824b569..8465410fd936 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -616,6 +616,7 @@
     SUBDIR += libg15render
     SUBDIR += libgksu
     SUBDIR += libieee1284
+    SUBDIR += libptytty
     SUBDIR += libretto-config
     SUBDIR += libsunacl
     SUBDIR += libsysstat
diff --git a/sysutils/libptytty/Makefile b/sysutils/libptytty/Makefile
new file mode 100644
index 000000000000..ce747e6c8687
--- /dev/null
+++ b/sysutils/libptytty/Makefile
@@ -0,0 +1,30 @@
+# Created by: Thierry Thomas <thierry@pompo.net>
+
+PORTNAME=	libptytty
+PORTVERSION=	2.0
+CATEGORIES=	sysutils
+MASTER_SITES=	http://dist.schmorp.de/libptytty/%SUBDIR%/
+MASTER_SITE_SUBDIR=	. Attic
+
+MAINTAINER=	thierry@FreeBSD.org
+COMMENT=	OS independent and secure pseudo-tty management
+
+LICENSE=	GPLv2
+
+USES=		cmake cpe
+CPE_VENDOR=	marc_lehmann
+
+OPTIONS_DEFINE=	DOCS EXAMPLES
+
+PORTDOCS=	README
+PORTEXAMPLES=	c-sample.c
+
+post-install-DOCS-on:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/README ${STAGEDIR}${DOCSDIR}
+
+post-install-EXAMPLES-on:
+	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
+	${INSTALL_DATA} ${WRKSRC}/eg/c-sample.c ${STAGEDIR}${EXAMPLESDIR}
+
+.include <bsd.port.mk>
diff --git a/sysutils/libptytty/distinfo b/sysutils/libptytty/distinfo
new file mode 100644
index 000000000000..2b1a12aa5223
--- /dev/null
+++ b/sysutils/libptytty/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1637693439
+SHA256 (libptytty-2.0.tar.gz) = 8033ed3aadf28759660d4f11f2d7b030acf2a6890cb0f7926fb0cfa6739d31f7
+SIZE (libptytty-2.0.tar.gz) = 45673
diff --git a/sysutils/libptytty/pkg-descr b/sysutils/libptytty/pkg-descr
new file mode 100644
index 000000000000..45f1c6d36cdc
--- /dev/null
+++ b/sysutils/libptytty/pkg-descr
@@ -0,0 +1,16 @@
+Libptytty is a small library that offers pseudo-tty management in an
+OS-independent way. It was created out of frustration over the many differences
+of pty/tty handling in different operating systems for the use inside
+"rxvt-unicode".
+
+In addition to offering mere pty/tty management, it also offers session database
+support (utmp and optional wtmp/lastlog updates for login shells).
+
+It also supports fork'ing after startup and dropping privileges in the calling
+process, so in case the calling process gets compromised by the user starting
+the program there is less to gain, as only the helper process runs with
+privileges (e.g. setuid/setgid), which reduces the area of attack immensely.
+
+Libptytty is written in C++, but it also offers a C-only API.
+
+WWW: http://software.schmorp.de/pkg/libptytty.html
diff --git a/sysutils/libptytty/pkg-plist b/sysutils/libptytty/pkg-plist
new file mode 100644
index 000000000000..c8c4cd482809
--- /dev/null
+++ b/sysutils/libptytty/pkg-plist
@@ -0,0 +1,5 @@
+include/libptytty.h
+lib/libptytty.so
+lib/libptytty.so.0
+libdata/pkgconfig/libptytty.pc
+man/man3/libptytty.3.gz