summaryrefslogtreecommitdiff
path: root/gnu/packages/terminals.scm
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2021-11-27 12:51:18 +0100
committerTobias Geerinckx-Rice <me@tobias.gr>2021-11-27 16:35:53 +0100
commitd171b881bdcb91ec67490802f6408871e47e6891 (patch)
tree2d96119378e1ff3bf5b7509803298a47dc1fc244 /gnu/packages/terminals.scm
parent162e8ea5fccd52b15c4b300f33a2646af75d5091 (diff)
downloadguix-patches-d171b881bdcb91ec67490802f6408871e47e6891.tar
guix-patches-d171b881bdcb91ec67490802f6408871e47e6891.tar.gz
gnu: Add libptytty.
* gnu/packages/terminals.scm (libptytty): New public variable.
Diffstat (limited to 'gnu/packages/terminals.scm')
-rw-r--r--gnu/packages/terminals.scm34
1 files changed, 34 insertions, 0 deletions
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 0410b1e960..0c0c838a0e 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -103,6 +103,40 @@
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-26))
+(define-public libptytty
+ (package
+ (name "libptytty")
+ (version "2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/yusiwen/libptytty")
+ (commit "b9694ea18e0dbd78213f55233a430325c13ad63e")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1g8by1m6ya4r47p137mw4ddml40js0zh6mdb9n6ib49ayngv8ak3"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f)) ; no test suite
+ (home-page "https://github.com/yusiwen/libptytty")
+ (synopsis
+ "Portable, secure PTY/TTY and @file{utmp}/@file{wtmp}/@file{lastlog} handling")
+ (description
+ "Libptytty is a small C/C++ library to manage pseudo-ttys in a uniform way,
+created out of frustration over the many differences of PTY/TTY handling in
+different operating systems.
+
+In addition to mere PTY/TTY management, it supports updating the session
+database at @file{utmp}, and @file{wtmp}/@file{lastlog} for login shells.
+
+It also supports @code{fork}ing after start-up and dropping privileges in the
+calling process. This reduces the potential attack surface: if the calling
+process were to be compromised by the user starting the program, there would be
+less to gain, as only the helper process is running with privileges (e.g.,
+@code{setuid}/@code{setgid}).")
+ (license license:gpl2+)))
+
(define-public tilda
(package
(name "tilda")