summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-misc/screen')
-rw-r--r--app-misc/screen/Manifest8
-rw-r--r--app-misc/screen/files/screen-4.4.0-utmp-musl.patch62
-rw-r--r--app-misc/screen/files/screen-4.5.1-texinfo.patch13
-rw-r--r--app-misc/screen/files/screen-4.9.0-CVE-2023-24626.patch33
-rw-r--r--app-misc/screen/files/screen-4.9.0-clang16-chmod.patch12
-rw-r--r--app-misc/screen/files/screen-4.9.0-configure-implicit-function-decls.patch747
-rw-r--r--app-misc/screen/files/screen-4.9.1-utmp-exit.patch43
-rw-r--r--app-misc/screen/files/screen-9999-no-utempter.patch15
-rw-r--r--app-misc/screen/metadata.xml44
-rw-r--r--app-misc/screen/screen-4.4.0.ebuild154
-rw-r--r--app-misc/screen/screen-4.5.1.ebuild160
-rw-r--r--app-misc/screen/screen-4.6.0.ebuild158
-rw-r--r--app-misc/screen/screen-4.6.2.ebuild162
-rw-r--r--app-misc/screen/screen-4.9.0-r3.ebuild (renamed from app-misc/screen/screen-4.7.0.ebuild)92
-rw-r--r--app-misc/screen/screen-4.9.1-r1.ebuild (renamed from app-misc/screen/screen-4.6.2-r1.ebuild)92
-rw-r--r--app-misc/screen/screen-4.9.1.ebuild (renamed from app-misc/screen/screen-4.6.1.ebuild)102
-rw-r--r--app-misc/screen/screen-9999.ebuild123
17 files changed, 1055 insertions, 965 deletions
diff --git a/app-misc/screen/Manifest b/app-misc/screen/Manifest
index f9d35a5e7c21..9412dc3ffb01 100644
--- a/app-misc/screen/Manifest
+++ b/app-misc/screen/Manifest
@@ -1,6 +1,2 @@
-DIST screen-4.4.0.tar.gz 846010 BLAKE2B 7c7d37b22c1993420dbd8d4083bee0a748f28ace434963b822607747879bda60c1f2f435814e9d07ea88e4bbc1b43b6f600fce204fda7fde4a52a6314a27494a SHA512 6e43f85c419f778822ec85e4340c95769e981a3d51abdeb5f26c6ebb840da9ab11b351ecc7f380ceea39bcfaa87f1124cfebd6af4ecb62b886eb189e7b79981b
-DIST screen-4.5.1.tar.gz 963153 BLAKE2B 8f7e20a0a3dde58435fc500714b49af97b4f2f225d34394170572e79ab9a8b49beac6c054021db367a01b6da91deaa726284a25c86eb57e11dcd09ad5dc44cb4 SHA512 ca53477ad38264be38efb1d10a1337b647dd061127162c77533b17a30d046cd0caabe38e4a9e5389aac30d5dc62eb53e7877411e69adae36d0ca869bd0a82804
-DIST screen-4.6.0.tar.gz 849062 BLAKE2B e08915bb34d4e356eb33c479f1b2dc7a8f4a855e9d1c27490ff31cfc88b4bd9dfb11101dd0e4508f3b37b023b9f9b987dfaff4c6cc930e994d22fcb024cf341d SHA512 2ee7cc51c62a478e72eda0647f3f347e63f40384e19bc11b074158bd94cdb628c6425b1dd7a472496d56bff11a30a9dc58859c2e7e539fae2a8718ed9b0f96d7
-DIST screen-4.6.1.tar.gz 848979 BLAKE2B e78874b6d8723c52f827ab5e6b665102d7fd831f03a0006f9d31e000535ccce95ce08e2d302e34ba2d567167a917c8bd3b875843828d1951bcb38ab6ae4e0acf SHA512 e5d029400ed5b509ebddc1f55812c33536d6f5ce91119537c7d06e1fa7dee84939c43337df4638f61c818ce0412f4d08fe212202162a4483a9e84bbc4b3e4336
-DIST screen-4.6.2.tar.gz 845210 BLAKE2B feea244e2e0c8f638442a524cd7cac93c6c5e576541bf1321fb32bc9424abf53415d00ebcb4a13a9613788c1baad6e132f209bd0a017b100e0687b3658603aea SHA512 224bd16ad5ae501d1b8bb7d2ba9cc19e6a0743de5a5b320109c2f6bf3b1ca564cc7094ed9211be13733d9d769cde77d13fe236341d448cad0518038ab1e85c99
-DIST screen-4.7.0.tar.gz 854192 BLAKE2B f22ee3f3ad7591ee2641ba9667b131298f3cb9b7712b0f0db28516c60d0a0768893eda2f4ce35d9c641871247a638a03c2550328f1af1f85ab5ce8ffa9b77d54 SHA512 44c7a33e2ed772ce91998cdc07556ef7b972e5b100335e14702b273a234e437fe6415de459e7b6d34c6086282a432778629047424ef9159ac6fcf26d22b45745
+DIST screen-4.9.0.tar.gz 798229 BLAKE2B 0f64a14ce9a719bd4a6d045c55069769045a09ee2086c44c2e3d9da6d1e5ada2f094e00e16029767e1155ce35d4f360d0e2879995eefa052f3214ced71b7617c SHA512 18bbb085d77ecd02cbc02fa88a945c39f06e0c6de4eeaa16b278440dac5c9896811abbe0838144e997cd344ae08b9530399fa8fcb31a65fc571ead90e8307f84
+DIST screen-4.9.1.tar.gz 1040785 BLAKE2B 27d9c100bc1f747e39e109a4957702388d943c7d3b75b4c59dfc3894456d5249257742106fb24cf6f07a36764db0a1c5f7e0a44123edda1c570d771d7f46c638 SHA512 1f278313528815f4246bb162ced611c5d77321d11055e8d853168dc804c75d5f78568056a23e46db0640e1605e5cad4a5ce05e95e50cf02bb322cb6f57e5a126
diff --git a/app-misc/screen/files/screen-4.4.0-utmp-musl.patch b/app-misc/screen/files/screen-4.4.0-utmp-musl.patch
deleted file mode 100644
index 990c73042cd0..000000000000
--- a/app-misc/screen/files/screen-4.4.0-utmp-musl.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 74fdc8988b55633cd05f8625390cd3f6a8102003 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= <amade@asmblr.net>
-Date: Sat, 13 Jun 2015 17:52:46 +0200
-Subject: [PATCH] change checks for utmp/utmpx in header
-
-linuxes should've working utmpx, so this check was bit weird
-commit 2b1bdf96 mentions some "linux workaround", but nothing specific
-
-fixes build with musl libc
----
- os.h | 7 ++++---
- utmp.c | 4 ++--
- 2 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/os.h b/os.h
-index 55de249..e827ac9 100644
---- a/os.h
-+++ b/os.h
-@@ -250,9 +250,11 @@ extern int errno;
- #endif
-
- #if defined(UTMPOK) || defined(BUGGYGETLOGIN)
--# if defined(SVR4) && !defined(DGUX) && !defined(__hpux) && !defined(linux)
-+# if defined(SVR4) && !defined(DGUX) && !defined(__hpux)
- # include <utmpx.h>
--# define UTMPFILE UTMPX_FILE
-+# ifdef UTMPX_FILE /* GNU extension */
-+# define UTMPFILE UTMPX_FILE
-+# endif
- # define utmp utmpx
- # define getutent getutxent
- # define getutid getutxid
-@@ -260,7 +262,6 @@ extern int errno;
- # define pututline pututxline
- # define setutent setutxent
- # define endutent endutxent
--# define ut_time ut_xtime
- # else /* SVR4 */
- # include <utmp.h>
- # endif /* SVR4 */
-diff --git a/utmp.c b/utmp.c
-index fa8b87b..f5d7db8 100644
---- a/utmp.c
-+++ b/utmp.c
-@@ -631,7 +631,7 @@ int pid;
- /* must use temp variable because of NetBSD/sparc64, where
- * ut_xtime is long(64) but time_t is int(32) */
- (void)time(&now);
-- u->ut_time = now;
-+ u->ut_tv.tv_sec = now;
- }
-
- static slot_t
-@@ -743,7 +743,7 @@ int pid;
- strncpy(u->ut_line, line, sizeof(u->ut_line));
- strncpy(u->ut_name, user, sizeof(u->ut_name));
- (void)time(&now);
-- u->ut_time = now;
-+ u->ut_tv.tv_sec = now;
- }
-
- static slot_t
diff --git a/app-misc/screen/files/screen-4.5.1-texinfo.patch b/app-misc/screen/files/screen-4.5.1-texinfo.patch
deleted file mode 100644
index 8d7a5e527175..000000000000
--- a/app-misc/screen/files/screen-4.5.1-texinfo.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/doc/screen.texinfo
-+++ b/doc/screen.texinfo
-@@ -5796,8 +5796,8 @@
- ============
-
- @example
-- Thomas Renninger <treen@suse.com>,
-- Axel Beckert <abe@deuxchevaux.org>,
-+ Thomas Renninger <treen@@suse.com>,
-+ Axel Beckert <abe@@deuxchevaux.org>,
- Ken Beal <kbeal@@amber.ssd.csd.harris.com>,
- Rudolf Koenig <rfkoenig@@informatik.uni-erlangen.de>,
- Toerless Eckert <eckert@@informatik.uni-erlangen.de>,
diff --git a/app-misc/screen/files/screen-4.9.0-CVE-2023-24626.patch b/app-misc/screen/files/screen-4.9.0-CVE-2023-24626.patch
new file mode 100644
index 000000000000..07dec8ecdd28
--- /dev/null
+++ b/app-misc/screen/files/screen-4.9.0-CVE-2023-24626.patch
@@ -0,0 +1,33 @@
+From e9ad41bfedb4537a6f0de20f00b27c7739f168f7 Mon Sep 17 00:00:00 2001
+From: Alexander Naumov <alexander_naumov@opensuse.org>
+Date: Mon, 30 Jan 2023 17:22:25 +0200
+Subject: fix: missing signal sending permission check on failed query messages
+
+Signed-off-by: Alexander Naumov <alexander_naumov@opensuse.org>
+---
+ socket.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/socket.c b/socket.c
+index 147dc54..54d8cb8 100644
+--- a/socket.c
++++ b/socket.c
+@@ -1285,11 +1285,16 @@ ReceiveMsg()
+ else
+ queryflag = -1;
+
+- Kill(m.m.command.apid,
++ if (CheckPid(m.m.command.apid)) {
++ Msg(0, "Query attempt with bad pid(%d)!", m.m.command.apid);
++ }
++ else {
++ Kill(m.m.command.apid,
+ (queryflag >= 0)
+ ? SIGCONT
+ : SIG_BYE); /* Send SIG_BYE if an error happened */
+- queryflag = -1;
++ queryflag = -1;
++ }
+ }
+ break;
+ case MSG_COMMAND:
diff --git a/app-misc/screen/files/screen-4.9.0-clang16-chmod.patch b/app-misc/screen/files/screen-4.9.0-clang16-chmod.patch
new file mode 100644
index 000000000000..63872219a23f
--- /dev/null
+++ b/app-misc/screen/files/screen-4.9.0-clang16-chmod.patch
@@ -0,0 +1,12 @@
+Bug: https://bugs.gentoo.org/894562
+Taken from: https://git.savannah.gnu.org/cgit/screen.git/commit/?id=7f320d3a643ec95682a7213b7e991e27038d8a57
+--- a/display.c
++++ b/display.c
+@@ -27,6 +27,7 @@
+ */
+
+ #include <sys/types.h>
++#include <sys/stat.h>
+ #include <signal.h>
+ #include <fcntl.h>
+ #ifndef sun
diff --git a/app-misc/screen/files/screen-4.9.0-configure-implicit-function-decls.patch b/app-misc/screen/files/screen-4.9.0-configure-implicit-function-decls.patch
new file mode 100644
index 000000000000..e3990b2acf88
--- /dev/null
+++ b/app-misc/screen/files/screen-4.9.0-configure-implicit-function-decls.patch
@@ -0,0 +1,747 @@
+https://bugs.gentoo.org/869371
+
+Upstream variant: https://lists.gnu.org/archive/html/screen-devel/2022-08/msg00000.html
+--- a/configure.ac
++++ b/configure.ac
+@@ -157,10 +157,11 @@ if test -n "$ULTRIX"; then
+ fi
+ AC_CHECKING(for POSIX.1)
+ AC_EGREP_CPP(YES_IS_DEFINED,
+ [#include <sys/types.h>
+ #include <unistd.h>
++int
+ main () {
+ #ifdef _POSIX_VERSION
+ YES_IS_DEFINED;
+ #endif
+ ], AC_NOTE(- you have a POSIX system) AC_DEFINE(POSIX) posix=1)
+@@ -231,10 +232,11 @@ dnl
+
+ AC_CHECKING(BSD job jontrol)
+ AC_TRY_LINK(
+ [#include <sys/types.h>
+ #include <sys/ioctl.h>
++#include <unistd.h>
+ ], [
+ #ifdef POSIX
+ tcsetpgrp(0, 0);
+ #else
+ int x = TIOCSPGRP;
+@@ -248,48 +250,64 @@ int y = TIOCNOTTY;
+
+ dnl
+ dnl **** setresuid(), setreuid(), seteuid() ****
+ dnl
+ AC_CHECKING(setresuid)
+-AC_TRY_LINK(,[
++AC_TRY_LINK(
++[#include <unistd.h>
++], [
+ setresuid(0, 0, 0);
+ ], AC_DEFINE(HAVE_SETRESUID))
+ AC_CHECKING(setreuid)
+-AC_TRY_LINK(,[
++AC_TRY_LINK(
++[#include <unistd.h>
++], [
+ setreuid(0, 0);
+ ], AC_DEFINE(HAVE_SETREUID))
+ dnl
+ dnl seteuid() check:
+ dnl linux seteuid was broken before V1.1.11
+ dnl NeXT, AUX, ISC, and ultrix are still broken (no saved uid support)
+ dnl Solaris seteuid doesn't change the saved uid, bad for
+ dnl multiuser screen sessions
+ AC_CHECKING(seteuid)
+-AC_TRY_LINK(,[
++AC_TRY_LINK(
++[#include <unistd.h>
++],[
+ #if defined(linux) || defined(NeXT) || defined(_AUX_SOURCE) || defined(AUX) || defined(ultrix) || (defined(sun) && defined(SVR4)) || defined(ISC) || defined(sony_news)
+-seteuid_is_broken(0);
++int seteuid_is_broken(int); seteuid_is_broken(0);
+ #else
+ seteuid(0);
+ #endif
+ ], AC_DEFINE(HAVE_SETEUID))
+
+ dnl execvpe
+ AC_CHECKING(execvpe)
+-AC_TRY_LINK(,[
++AC_TRY_LINK(
++[#include <unistd.h>
++],[
+ execvpe(0, 0, 0);
+ ], AC_DEFINE(HAVE_EXECVPE)
+ CFLAGS="$CFLAGS -D_GNU_SOURCE")
+
+ dnl
+ dnl **** select() ****
+ dnl
+
+ AC_CHECKING(select)
+-AC_TRY_LINK(,[select(0, 0, 0, 0, 0);],,
++AC_TRY_LINK(
++[#include <sys/select.h>
++],[
++ select(0, 0, 0, 0, 0);
++],,
+ LIBS="$LIBS -lnet -lnsl"
+ AC_CHECKING(select with $LIBS)
+-AC_TRY_LINK(,[select(0, 0, 0, 0, 0);],,
++AC_TRY_LINK(
++[#include <sys/select.h>
++],[
++ select(0, 0, 0, 0, 0);
++],,
+ AC_MSG_ERROR(!!! no select - no screen))
+ )
+ dnl
+ dnl **** FIFO tests ****
+ dnl
+@@ -314,11 +332,11 @@ AC_TRY_RUN([
+ #define S_IFIFO 0010000
+ #endif
+
+ char *fin = "/tmp/conftest$$";
+
+-main()
++int main()
+ {
+ struct stat stb;
+ fd_set f;
+
+ (void)alarm(5);
+@@ -326,40 +344,40 @@ main()
+ #ifdef POSIX
+ if (mkfifo(fin, 0777))
+ #else
+ if (mknod(fin, S_IFIFO|0777, 0))
+ #endif
+- exit(1);
++ return 1;
+ if (stat(fin, &stb) || (stb.st_mode & S_IFIFO) != S_IFIFO)
+- exit(1);
++ return 1;
+ close(0);
+ #ifdef __386BSD__
+ /*
+ * The next test fails under 386BSD, but screen works using fifos.
+ * Fifos in O_RDWR mode are only used for the BROKEN_PIPE case and for
+ * the select() configuration test.
+ */
+- exit(0);
++ return 0;
+ #endif
+ if (open(fin, O_RDONLY | O_NONBLOCK))
+- exit(1);
++ return 1;
+ if (fork() == 0)
+ {
+ close(0);
+ if (open(fin, O_WRONLY | O_NONBLOCK))
+- exit(1);
++ return 1;
+ close(0);
+ if (open(fin, O_WRONLY | O_NONBLOCK))
+- exit(1);
++ return 1;
+ if (write(0, "TEST", 4) == -1)
+- exit(1);
+- exit(0);
++ return 1;
++ return 0;
+ }
+ FD_SET(0, &f);
+ if (select(1, &f, 0, 0, 0) == -1)
+- exit(1);
+- exit(0);
++ return 1;
++ return 0;
+ }
+ ], AC_NOTE(- your fifos are usable) fifo=1,
+ AC_NOTE(- your fifos are not usable),
+ AC_NOTE(- skipping check because we are cross compiling; assuming fifos are usable) fifo=1)
+ rm -f /tmp/conftest*
+@@ -385,30 +403,31 @@ AC_TRY_RUN([
+ #define S_IFIFO 0010000
+ #endif
+
+ char *fin = "/tmp/conftest$$";
+
++int
+ main()
+ {
+ struct timeval tv;
+ fd_set f;
+
+ #ifdef POSIX
+ if (mkfifo(fin, 0600))
+ #else
+ if (mknod(fin, S_IFIFO|0600, 0))
+ #endif
+- exit(1);
++ return 1;
+ close(0);
+ if (open(fin, O_RDONLY|O_NONBLOCK))
+- exit(1);
++ return 1;
+ FD_SET(0, &f);
+ tv.tv_sec = 1;
+ tv.tv_usec = 0;
+ if (select(1, &f, 0, 0, &tv))
+- exit(1);
+- exit(0);
++ return 1;
++ return 0;
+ }
+ ], AC_NOTE(- your implementation is ok),
+ AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1,
+ AC_NOTE(- skipping check because we are cross compiling; assuming fifo implementation is ok))
+ rm -f /tmp/conftest*
+@@ -432,46 +455,48 @@ AC_TRY_RUN([
+
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
++#include <signal.h>
+
+ char *son = "/tmp/conftest$$";
+
++int
+ main()
+ {
+ int s1, s2, l;
+ struct sockaddr_un a;
+ fd_set f;
+
+ (void)alarm(5);
+ if ((s1 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
+- exit(1);
++ return 1;
+ a.sun_family = AF_UNIX;
+ strcpy(a.sun_path, son);
+ (void) unlink(son);
+ if (bind(s1, (struct sockaddr *) &a, strlen(son)+2) == -1)
+- exit(1);
++ return 1;
+ if (listen(s1, 2))
+- exit(1);
++ return 1;
+ if (fork() == 0)
+ {
+ if ((s2 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
+ kill(getppid(), 3);
+ (void)connect(s2, (struct sockaddr *)&a, strlen(son) + 2);
+ if (write(s2, "HELLO", 5) == -1)
+ kill(getppid(), 3);
+- exit(0);
++ return 0;
+ }
+ l = sizeof(a);
+ close(0);
+ if (accept(s1, &a, &l))
+- exit(1);
++ return 1;
+ FD_SET(0, &f);
+ if (select(1, &f, 0, 0, 0) == -1)
+- exit(1);
+- exit(0);
++ return 1;
++ return 0;
+ }
+ ], AC_NOTE(- your sockets are usable) sock=1,
+ AC_NOTE(- your sockets are not usable),
+ AC_NOTE(- skipping check because we are cross compiling; assuming sockets are usable) sock=1)
+ rm -f /tmp/conftest*
+@@ -491,26 +516,27 @@ AC_TRY_RUN([
+ #include <sys/socket.h>
+ #include <sys/un.h>
+
+ char *son = "/tmp/conftest$$";
+
++int
+ main()
+ {
+ int s;
+ struct stat stb;
+ struct sockaddr_un a;
+ if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
+- exit(0);
++ return 0;
+ a.sun_family = AF_UNIX;
+ strcpy(a.sun_path, son);
+ (void) unlink(son);
+ if (bind(s, (struct sockaddr *) &a, strlen(son)+2) == -1)
+- exit(0);
++ return 0;
+ if (stat(son, &stb))
+- exit(1);
++ return 1;
+ close(s);
+- exit(0);
++ return 0;
+ }
+ ],AC_NOTE(- you are normal),
+ AC_NOTE(- unix domain sockets are not kept in the filesystem)
+ AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1,
+ AC_NOTE(- skipping check because we are cross compiling; assuming sockets are normal))
+@@ -545,122 +571,167 @@ char *nam = "/tmp/conftest$$";
+ #endif
+ #ifndef S_IFIFO
+ #define S_IFIFO 0010000
+ #endif
+
++int
+ main()
+ {
+ fd_set f;
+
+ #ifdef __FreeBSD__
+ /* From Andrew A. Chernov (ache@astral.msk.su):
+ * opening RDWR fifo fails in BSD 4.4, but select return values are
+ * right.
+ */
+- exit(0);
++ return 0;
+ #endif
+ (void)alarm(5);
+ #ifdef POSIX
+ if (mkfifo(nam, 0777))
+ #else
+ if (mknod(nam, S_IFIFO|0777, 0))
+ #endif
+- exit(1);
++ return 1;
+ close(0);
+ if (open(nam, O_RDWR | O_NONBLOCK))
+- exit(1);
++ return 1;
+ if (write(0, "TEST", 4) == -1)
+- exit(1);
++ return 1;
+
+ #else
+
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
++#include <signal.h>
+
++int
+ main()
+ {
+ int s1, s2, l;
+ struct sockaddr_un a;
+ fd_set f;
+
+ (void)alarm(5);
+ if ((s1 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
+- exit(1);
++ return 1;
+ a.sun_family = AF_UNIX;
+ strcpy(a.sun_path, nam);
+ (void) unlink(nam);
+ if (bind(s1, (struct sockaddr *) &a, strlen(nam)+2) == -1)
+- exit(1);
++ return 1;
+ if (listen(s1, 2))
+- exit(1);
++ return 1;
+ if (fork() == 0)
+ {
+ if ((s2 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
+ kill(getppid(), 3);
+ (void)connect(s2, (struct sockaddr *)&a, strlen(nam) + 2);
+ if (write(s2, "HELLO", 5) == -1)
+ kill(getppid(), 3);
+- exit(0);
++ return 0;
+ }
+ l = sizeof(a);
+ close(0);
+ if (accept(s1, (struct sockaddr *)&a, &l))
+- exit(1);
++ return 1;
+ #endif
+
+
+ FD_SET(0, &f);
+ if (select(1, &f, 0, 0, 0) == -1)
+- exit(1);
++ return 1;
+ if (select(1, &f, &f, 0, 0) != 2)
+- exit(1);
+- exit(0);
++ return 1;
++ return 0;
+ }
+ ],AC_NOTE(- select is ok),
+ AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN),
+ AC_NOTE(- skipping check because we are cross compiling; assuming select is ok))
+
+ dnl
+ dnl **** termcap or terminfo ****
+ dnl
+ AC_CHECKING(for tgetent)
+-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
++AC_TRY_LINK([
++ #include <curses.h>
++ #include <term.h>
++], [
++ tgetent((char *)0, (char *)0);
++],,
+ olibs="$LIBS"
+ LIBS="-lcurses $olibs"
+ AC_CHECKING(libcurses)
+-AC_TRY_LINK(,[
++AC_TRY_LINK([#include <curses.h>
++ #include <term.h>
++],[
+ #ifdef __hpux
+ __sorry_hpux_libcurses_is_totally_broken_in_10_10();
+ #else
+ tgetent((char *)0, (char *)0);
+ #endif
+ ],,
+ LIBS="-ltermcap $olibs"
+ AC_CHECKING(libtermcap)
+-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
++AC_TRY_LINK(
++[#include <curses.h>
++ #include <term.h>
++],[
++ tgetent((char *)0, (char *)0);
++],,
+ LIBS="-ltermlib $olibs"
+ AC_CHECKING(libtermlib)
+-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
++AC_TRY_LINK(
++[#include <curses.h>
++ #include <term.h>
++],[
++ tgetent((char *)0, (char *)0);
++],,
+ LIBS="-lncursesw $olibs"
+ AC_CHECKING(libncursesw)
+-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
++AC_TRY_LINK(
++[#include <curses.h>
++ #include <term.h>
++],[
++ tgetent((char *)0, (char *)0);
++],,
+ LIBS="-ltinfow $olibs"
+ AC_CHECKING(libtinfow)
+-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
++AC_TRY_LINK(
++[#include <curses.h>
++ #include <term.h>
++],[
++ tgetent((char *)0, (char *)0);
++],,
+ LIBS="-lncurses $olibs"
+ AC_CHECKING(libncurses)
+-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
++AC_TRY_LINK(
++[#include <curses.h>
++ #include <term.h>
++],[
++ tgetent((char *)0, (char *)0);
++],,
+ LIBS="-ltinfo $olibs"
+ AC_CHECKING(libtinfo)
+-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
++AC_TRY_LINK(
++[#include <curses.h>
++ #include <term.h>
++],[
++ tgetent((char *)0, (char *)0);
++],,
+ AC_MSG_ERROR(!!! no tgetent - no screen)))))))))
+
+ AC_TRY_RUN([
++#include <curses.h>
++#include <string.h>
++#include <term.h>
++
++int
+ main()
+ {
+- exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1);
++ return(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1);
+ }], AC_NOTE(- you use the termcap database),
+ AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO),
+ AC_NOTE(- skipping check because we are cross compiling; assuming terminfo database is used) AC_DEFINE(TERMINFO))
+ AC_CHECKING(ospeed)
+ AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
+@@ -677,11 +748,15 @@ fi
+
+ if test "$cross_compiling" = no ; then
+ AC_CHECKING(for SVR4 ptys)
+ sysvr4ptys=
+ if test -c /dev/ptmx ; then
+-AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE(HAVE_SVR4_PTYS)
++AC_TRY_LINK([
++ #include <stdlib.h>
++], [
++ ptsname(0);grantpt(0);unlockpt(0);
++],[AC_DEFINE(HAVE_SVR4_PTYS)
+ sysvr4ptys=1])
+ fi
+ fi
+
+ AC_CHECK_FUNCS(getpt)
+@@ -733,33 +808,36 @@ AC_CHECKING(default tty permissions/group)
+ rm -f conftest_grp
+ AC_TRY_RUN([
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++int
+ main()
+ {
+ struct stat sb;
+ char *x,*ttyname();
+ int om, m;
+ FILE *fp;
+
+- if (!(x = ttyname(0))) exit(1);
+- if (stat(x, &sb)) exit(1);
++ if (!(x = ttyname(0))) return 1;
++ if (stat(x, &sb)) return 1;
+ om = sb.st_mode;
+- if (om & 002) exit(0);
++ if (om & 002) return 0;
+ m = system("mesg y");
+- if (m == -1 || m == 127) exit(1);
+- if (stat(x, &sb)) exit(1);
++ if (m == -1 || m == 127) return 1;
++ if (stat(x, &sb)) return 1;
+ m = sb.st_mode;
+- if (chmod(x, om)) exit(1);
+- if (m & 002) exit(0);
+- if (sb.st_gid == getgid()) exit(1);
++ if (chmod(x, om)) return 1;
++ if (m & 002) return 0;
++ if (sb.st_gid == getgid()) return 1;
+ if (!(fp=fopen("conftest_grp", "w")))
+- exit(1);
++ return 1;
+ fprintf(fp, "%d\n", sb.st_gid);
+ fclose(fp);
+- exit(0);
++ return 0;
+ }
+ ],[
+ if test -f conftest_grp; then
+ ptygrp=`cat conftest_grp`
+ AC_NOTE([- pty mode: $ptymode, group: $ptygrp])
+@@ -869,17 +942,25 @@ AC_CHECKING(for libutil(s))
+ test -f /usr/lib/libutils.a && LIBS="$LIBS -lutils"
+ test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil"
+ fi
+
+ AC_CHECKING(getloadavg)
+-AC_TRY_LINK(,[getloadavg((double *)0, 0);],
++AC_TRY_LINK(
++[
++ #include <stdlib.h>
++],[
++ getloadavg((double *)0, 0);],
+ AC_DEFINE(LOADAV_GETLOADAVG) load=1,
+ if test "$cross_compiling" = no && test -f /usr/lib/libkvm.a ; then
+ olibs="$LIBS"
+ LIBS="$LIBS -lkvm"
+ AC_CHECKING(getloadavg with -lkvm)
+-AC_TRY_LINK(,[getloadavg((double *)0, 0);],
++AC_TRY_LINK(
++[
++ #include <stdlib.h>
++],[
++ getloadavg((double *)0, 0);],
+ AC_DEFINE(LOADAV_GETLOADAVG) load=1, LIBS="$olibs")
+ fi
+ )
+
+ if test -z "$load" ; then
+@@ -931,10 +1012,11 @@ else
+
+ $nlist64
+
+ struct nlist nl[2];
+
++int
+ main()
+ {
+ #if !defined(_AUX_SOURCE) && !defined(AUX)
+ # ifdef NLIST_NAME_UNION
+ nl[0].n_un.n_name = "$av";
+@@ -944,12 +1026,12 @@ main()
+ #else
+ strncpy(nl[0].n_name, "$av", sizeof(nl[0].n_name));
+ #endif
+ nlist(LOADAV_UNIX, nl);
+ if (nl[0].n_value == 0)
+- exit(1);
+- exit(0);
++ return 1;
++ return 0;
+ }
+ ],avensym=$av;break)
+ if test "$av" = _Loadavg; then
+ nlist64='#define nlist nlist64'
+ fi
+@@ -1068,21 +1150,22 @@ void
+ hand()
+ {
+ got++;
+ }
+
++int
+ main()
+ {
+ /* on hpux we use sigvec to get bsd signals */
+ #ifdef __hpux
+ (void)signal(SIGCLD, hand);
+ kill(getpid(), SIGCLD);
+ kill(getpid(), SIGCLD);
+ if (got < 2)
+- exit(1);
++ return 1;
+ #endif
+- exit(0);
++ return 0;
+ }
+ ],,AC_DEFINE(SYSVSIGS),:)
+
+ fi
+
+@@ -1107,14 +1190,22 @@ oldlibs="$LIBS"
+ LIBS="$LIBS -lsun"
+ AC_CHECKING(IRIX sun library)
+ AC_TRY_LINK(,,,LIBS="$oldlibs")
+
+ AC_CHECKING(syslog)
+-AC_TRY_LINK(,[closelog();], , [oldlibs="$LIBS"
++AC_TRY_LINK(
++[#include <syslog.h>
++], [
++ closelog();
++], , [oldlibs="$LIBS"
+ LIBS="$LIBS -lbsd"
+ AC_CHECKING(syslog in libbsd.a)
+-AC_TRY_LINK(, [closelog();], AC_NOTE(- found.), [LIBS="$oldlibs"
++AC_TRY_LINK(
++[#include <syslog.h>
++], [
++ closelog();
++], AC_NOTE(- found.), [LIBS="$oldlibs"
+ AC_NOTE(- bad news: syslog missing.) AC_DEFINE(NOSYSLOG)])])
+
+ AC_EGREP_CPP(YES_IS_DEFINED,
+ [#ifdef M_UNIX
+ YES_IS_DEFINED;
+@@ -1147,66 +1238,87 @@ fi
+ dnl AC_CHECK_HEADER(shadow.h, AC_DEFINE(SHADOWPW))
+ AC_CHECKING(getspnam)
+ AC_TRY_LINK([#include <shadow.h>], [getspnam("x");],AC_DEFINE(SHADOWPW))
+
+ AC_CHECKING(getttyent)
+-AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT))
++AC_TRY_LINK(
++[
++ #include <ttyent.h>
++],[
++ getttyent();
++], AC_DEFINE(GETTTYENT))
+
+ AC_CHECKING(fdwalk)
+ AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK))
+
+ AC_CHECKING(whether memcpy/memmove/bcopy handles overlapping arguments)
+ AC_TRY_RUN([
++#include <string.h>
++
++int
+ main() {
+ char buf[10];
+ strcpy(buf, "abcdefghi");
+ bcopy(buf, buf + 2, 3);
+ if (strncmp(buf, "ababcf", 6))
+- exit(1);
++ return 1;
+ strcpy(buf, "abcdefghi");
+ bcopy(buf + 2, buf, 3);
+ if (strncmp(buf, "cdedef", 6))
+- exit(1);
+- exit(0); /* libc version works properly. */
++ return 1;
++ return 0; /* libc version works properly. */
+ }], AC_DEFINE(USEBCOPY),,:)
+
+ AC_TRY_RUN([
++#include <string.h>
++
+ #define bcopy(s,d,l) memmove(d,s,l)
++int
+ main() {
+ char buf[10];
+ strcpy(buf, "abcdefghi");
+ bcopy(buf, buf + 2, 3);
+ if (strncmp(buf, "ababcf", 6))
+- exit(1);
++ return 1;
+ strcpy(buf, "abcdefghi");
+ bcopy(buf + 2, buf, 3);
+ if (strncmp(buf, "cdedef", 6))
+- exit(1);
+- exit(0); /* libc version works properly. */
++ return 1;
++ return 0; /* libc version works properly. */
+ }], AC_DEFINE(USEMEMMOVE),,
+ AC_NOTE(- skipping check because we are cross compiling; use memmove) AC_DEFINE(USEMEMMOVE))
+
+
+ AC_TRY_RUN([
++#include <string.h>
++
+ #define bcopy(s,d,l) memcpy(d,s,l)
++int
+ main() {
+ char buf[10];
+ strcpy(buf, "abcdefghi");
+ bcopy(buf, buf + 2, 3);
+ if (strncmp(buf, "ababcf", 6))
+- exit(1);
++ return 1;
+ strcpy(buf, "abcdefghi");
+ bcopy(buf + 2, buf, 3);
+ if (strncmp(buf, "cdedef", 6))
+- exit(1);
+- exit(0); /* libc version works properly. */
++ return 1;
++ return 0; /* libc version works properly. */
+ }], AC_DEFINE(USEMEMCPY),,:)
+
+ AC_SYS_LONG_FILE_NAMES
+
+ AC_MSG_CHECKING(for vsprintf)
+-AC_TRY_LINK([#include <stdarg.h>],[va_list valist; vsprintf(0,0,valist);], AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS), AC_MSG_RESULT(no))
++AC_TRY_LINK(
++[
++ #include <stdarg.h>
++ #include <stdio.h>
++],
++[
++ va_list valist; vsprintf(0,0,valist);
++], AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS), AC_MSG_RESULT(no))
+
+ AC_HEADER_DIRENT
+
+ AC_MSG_CHECKING(for setenv)
+ if test -z "$ac_setenv_args"; then
+
diff --git a/app-misc/screen/files/screen-4.9.1-utmp-exit.patch b/app-misc/screen/files/screen-4.9.1-utmp-exit.patch
new file mode 100644
index 000000000000..71c726b352db
--- /dev/null
+++ b/app-misc/screen/files/screen-4.9.1-utmp-exit.patch
@@ -0,0 +1,43 @@
+From 2f1b9dfe03133c9b77ea450aed088d65128dc547 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= <amade@asmblr.net>
+Date: Tue, 5 Apr 2016 12:47:08 +0200
+Subject: [PATCH] check if we have ut_exit in utmpx struct
+
+--- a/acconfig.h
++++ b/acconfig.h
+@@ -430,6 +430,11 @@
+ */
+ #undef BUGGYGETLOGIN
+
++/*
++ * Define if your utmpx has ut_exit struct
++ */
++#undef HAVE_UT_EXIT
++
+ /*
+ * If your system has the calls setreuid() and setregid(),
+ * define HAVE_SETREUID. Otherwise screen will use a forked process to
+--- a/configure.ac
++++ b/configure.ac
+@@ -438,6 +438,10 @@ AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1,
+ AC_NOTE(- skipping check because we are cross compiling; assuming fifo implementation is ok))
+ rm -f /tmp/conftest*
+ fi
++AC_CHECKING(ut_exit)
++AC_TRY_COMPILE([
++#include <utmpx.h>
++],[struct utmpx u; u.ut_exit.e_exit;], AC_DEFINE(HAVE_UT_EXIT))
+
+ dnl
+ dnl **** SOCKET tests ****
+--- a/utmp.c
++++ b/utmp.c
+@@ -607,7 +607,7 @@ makedead(u)
+ struct utmp *u;
+ {
+ u->ut_type = DEAD_PROCESS;
+-#if (!defined(linux) || defined(EMPTY)) && !defined(__CYGWIN__)
++#if defined(HAVE_UT_EXIT)
+ u->ut_exit.e_termination = 0;
+ u->ut_exit.e_exit = 0;
+ #endif
diff --git a/app-misc/screen/files/screen-9999-no-utempter.patch b/app-misc/screen/files/screen-9999-no-utempter.patch
new file mode 100644
index 000000000000..7eccc30c04c5
--- /dev/null
+++ b/app-misc/screen/files/screen-9999-no-utempter.patch
@@ -0,0 +1,15 @@
+--- i/configure.ac
++++ w/configure.ac
+@@ -151,12 +151,6 @@ AS_IF([test "x$enable_utmp" = "xyes"], [
+ AS_IF([test "x$have_utmpx" != "xyes"],
+ AC_ERROR(Missing utmpx.h))
+
+- AC_CHECK_HEADER(utempter.h, have_utempter=yes, have_utempter=no)
+- AS_IF([test "x$have_utempter" = "xyes"], [
+- AC_DEFINE(HAVE_UTEMPTER)
+- LIBS="$LIBS -lutempter"
+- ])
+-
+ AC_MSG_CHECKING(if utmpx struct has ut_host field)
+ AC_TRY_COMPILE([#include <utmpx.h>], [
+ struct utmpx u;
diff --git a/app-misc/screen/metadata.xml b/app-misc/screen/metadata.xml
index 85dc556e636e..ff53fc5f118c 100644
--- a/app-misc/screen/metadata.xml
+++ b/app-misc/screen/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>swegener@gentoo.org</email>
@@ -9,27 +9,29 @@
<name>Gentoo Shell Tools Project</name>
</maintainer>
<longdescription>
-Screen is a full-screen window manager that multiplexes a physical terminal
-between several processes, typically interactive shells. Each virtual terminal
-provides the functions of the DEC VT100 terminal and, in addition, several
-control functions from the ANSI X3.64 (ISO 6429) and ISO 2022 standards (e.g.,
-insert/delete line and support for multiple character sets). There is a
-scrollback history buffer for each virtual terminal and a copy-and-paste
-mechanism that allows the user to move text regions between windows. When screen
-is called, it creates a single window with a shell in it (or the specified
-command) and then gets out of your way so that you can use the program as you
-normally would. Then, at any time, you can create new (full-screen) windows with
-other programs in them (including more shells), kill the current window, view a
-list of the active windows, turn output logging on and off, copy text between
-windows, view the scrollback history, switch between windows, etc. All windows
-run their programs completely independent of each other. Programs continue to
-run when their window is currently not visible and even when the whole screen
-session is detached from the users terminal.
-</longdescription>
+ Screen is a full-screen window manager that multiplexes a physical terminal
+ between several processes, typically interactive shells. Each virtual terminal
+ provides the functions of the DEC VT100 terminal and, in addition, several
+ control functions from the ANSI X3.64 (ISO 6429) and ISO 2022 standards (e.g.,
+ insert/delete line and support for multiple character sets). There is a
+ scrollback history buffer for each virtual terminal and a copy-and-paste
+ mechanism that allows the user to move text regions between windows. When screen
+ is called, it creates a single window with a shell in it (or the specified
+ command) and then gets out of your way so that you can use the program as you
+ normally would. Then, at any time, you can create new (full-screen) windows with
+ other programs in them (including more shells), kill the current window, view a
+ list of the active windows, turn output logging on and off, copy text between
+ windows, view the scrollback history, switch between windows, etc. All windows
+ run their programs completely independent of each other. Programs continue to
+ run when their window is currently not visible and even when the whole screen
+ session is detached from the users terminal.
+ </longdescription>
<use>
- <flag name="multiuser">Enable multiuser support (by setting correct
- permissions)</flag>
+ <flag name="multiuser">Enable multiuser support (by setting correct permissions)</flag>
<flag name="nethack">Express error messages in nethack style</flag>
- <flag name="utmp">Include utmp support</flag>
</use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:gnu:screen</remote-id>
+ <remote-id type="savannah">screen</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-misc/screen/screen-4.4.0.ebuild b/app-misc/screen/screen-4.4.0.ebuild
deleted file mode 100644
index b6023c4e5928..000000000000
--- a/app-misc/screen/screen-4.4.0.ebuild
+++ /dev/null
@@ -1,154 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit autotools eutils flag-o-matic pam toolchain-funcs user
-
-DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
-HOMEPAGE="https://www.gnu.org/software/screen/"
-SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="debug nethack pam selinux multiuser"
-
-CDEPEND="
- >=sys-libs/ncurses-5.2:0=
- pam? ( sys-libs/pam )"
-RDEPEND="${CDEPEND}
- selinux? ( sec-policy/selinux-screen )"
-DEPEND="${CDEPEND}
- sys-apps/texinfo"
-
-# Patches:
-# - Don't use utempter even if it is found on the system.
-PATCHES=(
- "${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
- "${FILESDIR}"/${P}-utmp-musl.patch
-)
-
-pkg_setup() {
- # Make sure utmp group exists, as it's used later on.
- enewgroup utmp 406
-}
-
-src_prepare() {
- # Apply patches.
- epatch "${PATCHES[@]}"
-
- # sched.h is a system header and causes problems with some C libraries
- mv sched.h _sched.h || die
- sed -i '/include/ s:sched.h:_sched.h:' screen.h || die
-
- # Fix manpage.
- sed -i \
- -e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
- -e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
- -e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
- -e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
- -e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \
- doc/screen.1 \
- || die
-
- if [[ ${CHOST} == *-darwin* ]] ; then
- sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
- fi
-
- # reconfigure
- eautoreconf
-}
-
-src_configure() {
- append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
-
- if [[ ${CHOST} == *-solaris* ]] ; then
- # enable msg_header by upping the feature standard compatible
- # with c99 mode
- append-cppflags -D_XOPEN_SOURCE=600
- fi
-
- use nethack || append-cppflags "-DNONETHACK"
- use debug && append-cppflags "-DDEBUG"
-
- econf \
- --with-socket-dir="${EPREFIX}/tmp/screen" \
- --with-sys-screenrc="${EPREFIX}/etc/screenrc" \
- --with-pty-mode=0620 \
- --with-pty-group=5 \
- --enable-rxvt_osc \
- --enable-telnet \
- --enable-colors256 \
- $(use_enable pam)
-}
-
-src_compile() {
- LC_ALL=POSIX emake comm.h term.h
- emake osdef.h
-
- emake -C doc screen.info
- default
-}
-
-src_install() {
- local tmpfiles_perms tmpfiles_group
-
- dobin screen
-
- if use multiuser || use prefix
- then
- fperms 4755 /usr/bin/screen
- tmpfiles_perms="0755"
- tmpfiles_group="root"
- else
- fowners root:utmp /usr/bin/screen
- fperms 2755 /usr/bin/screen
- tmpfiles_perms="0775"
- tmpfiles_group="utmp"
- fi
-
- dodir /etc/tmpfiles.d
- echo "d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}" \
- > "${ED}"/etc/tmpfiles.d/screen.conf
-
- insinto /usr/share/screen
- doins terminfo/{screencap,screeninfo.src}
- insinto /usr/share/screen/utf8encodings
- doins utf8encodings/??
- insinto /etc
- doins "${FILESDIR}"/screenrc
-
- pamd_mimic_system screen auth
-
- dodoc \
- README ChangeLog INSTALL TODO NEWS* patchlevel.h \
- doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
-
- doman doc/screen.1
- doinfo doc/screen.info
-}
-
-pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]]
- then
- elog "Some dangerous key bindings have been removed or changed to more safe values."
- elog "We enable some xterm hacks in our default screenrc, which might break some"
- elog "applications. Please check /etc/screenrc for information on these changes."
- fi
-
- # Add /tmp/screen in case it doesn't exist yet. This should solve
- # problems like bug #508634 where tmpfiles.d isn't in effect.
- local rundir="${EROOT%/}/tmp/screen"
- if [[ ! -d ${rundir} ]] ; then
- if use multiuser || use prefix ; then
- tmpfiles_group="root"
- else
- tmpfiles_group="utmp"
- fi
- mkdir -m 0775 "${rundir}"
- chgrp ${tmpfiles_group} "${rundir}"
- fi
-
- ewarn "This revision changes the screen socket location to ${rundir}"
-}
diff --git a/app-misc/screen/screen-4.5.1.ebuild b/app-misc/screen/screen-4.5.1.ebuild
deleted file mode 100644
index f5c5c519dea8..000000000000
--- a/app-misc/screen/screen-4.5.1.ebuild
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-SCM=""
-[[ "${PV}" = 9999 ]] && SCM="git-r3"
-inherit autotools eutils flag-o-matic pam toolchain-funcs user ${SCM}
-unset SCM
-
-DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
-HOMEPAGE="https://www.gnu.org/software/screen/"
-
-if [[ "${PV}" != 9999 ]] ; then
- SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-else
- EGIT_REPO_URI="git://git.savannah.gnu.org/screen.git"
- EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on
- S="${WORKDIR}"/${P}/src
-fi
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="debug nethack pam selinux multiuser"
-
-CDEPEND="
- >=sys-libs/ncurses-5.2:0=
- pam? ( sys-libs/pam )"
-RDEPEND="${CDEPEND}
- selinux? ( sec-policy/selinux-screen )"
-DEPEND="${CDEPEND}
- sys-apps/texinfo"
-
-PATCHES=(
- # Don't use utempter even if it is found on the system.
- "${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
- # @ => @@
- "${FILESDIR}"/${PN}-4.5.1-texinfo.patch
-)
-
-pkg_setup() {
- # Make sure utmp group exists, as it's used later on.
- enewgroup utmp 406
-}
-
-src_prepare() {
- default
-
- # sched.h is a system header and causes problems with some C libraries
- mv sched.h _sched.h || die
- sed -i '/include/ s:sched.h:_sched.h:' screen.h || die
-
- # Fix manpage.
- sed -i \
- -e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
- -e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
- -e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
- -e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
- -e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \
- doc/screen.1 \
- || die
-
- if [[ ${CHOST} == *-darwin* ]] ; then
- sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
- fi
-
- # reconfigure
- eautoreconf
-}
-
-src_configure() {
- append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
-
- if [[ ${CHOST} == *-solaris* ]] ; then
- # enable msg_header by upping the feature standard compatible
- # with c99 mode
- append-cppflags -D_XOPEN_SOURCE=600
- fi
-
- use nethack || append-cppflags "-DNONETHACK"
- use debug && append-cppflags "-DDEBUG"
-
- econf \
- --with-socket-dir="${EPREFIX}/tmp/screen" \
- --with-sys-screenrc="${EPREFIX}/etc/screenrc" \
- --with-pty-mode=0620 \
- --with-pty-group=5 \
- --enable-rxvt_osc \
- --enable-telnet \
- --enable-colors256 \
- $(use_enable pam)
-}
-
-src_compile() {
- LC_ALL=POSIX emake comm.h term.h
- emake osdef.h
-
- emake -C doc screen.info
- default
-}
-
-src_install() {
- local DOCS=(
- README ChangeLog INSTALL TODO NEWS* patchlevel.h
- doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
- )
-
- default
-
- local tmpfiles_perms tmpfiles_group
-
- if use multiuser || use prefix
- then
- fperms 4755 /usr/bin/screen-${PV}
- tmpfiles_perms="0755"
- tmpfiles_group="root"
- else
- fowners root:utmp /usr/bin/screen-${PV}
- fperms 2755 /usr/bin/screen-${PV}
- tmpfiles_perms="0775"
- tmpfiles_group="utmp"
- fi
-
- dodir /etc/tmpfiles.d
- echo "d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}" \
- > "${ED}"/etc/tmpfiles.d/screen.conf
-
- insinto /usr/share/screen
- doins terminfo/{screencap,screeninfo.src}
-
- insinto /etc
- doins "${FILESDIR}"/screenrc
-
- pamd_mimic_system screen auth
-}
-
-pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]]
- then
- elog "Some dangerous key bindings have been removed or changed to more safe values."
- elog "We enable some xterm hacks in our default screenrc, which might break some"
- elog "applications. Please check /etc/screenrc for information on these changes."
- fi
-
- # Add /tmp/screen in case it doesn't exist yet. This should solve
- # problems like bug #508634 where tmpfiles.d isn't in effect.
- local rundir="${EROOT%/}/tmp/screen"
- if [[ ! -d ${rundir} ]] ; then
- if use multiuser || use prefix ; then
- tmpfiles_group="root"
- else
- tmpfiles_group="utmp"
- fi
- mkdir -m 0775 "${rundir}"
- chgrp ${tmpfiles_group} "${rundir}"
- fi
-
- ewarn "This revision changes the screen socket location to ${rundir}"
-}
diff --git a/app-misc/screen/screen-4.6.0.ebuild b/app-misc/screen/screen-4.6.0.ebuild
deleted file mode 100644
index 3e1c3a55ab8c..000000000000
--- a/app-misc/screen/screen-4.6.0.ebuild
+++ /dev/null
@@ -1,158 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-SCM=""
-[[ "${PV}" = 9999 ]] && SCM="git-r3"
-inherit autotools eutils flag-o-matic pam toolchain-funcs user ${SCM}
-unset SCM
-
-DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
-HOMEPAGE="https://www.gnu.org/software/screen/"
-
-if [[ "${PV}" != 9999 ]] ; then
- SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-else
- EGIT_REPO_URI="git://git.savannah.gnu.org/screen.git"
- EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on
- S="${WORKDIR}"/${P}/src
-fi
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="debug nethack pam selinux multiuser"
-
-CDEPEND="
- >=sys-libs/ncurses-5.2:0=
- pam? ( sys-libs/pam )"
-RDEPEND="${CDEPEND}
- selinux? ( sec-policy/selinux-screen )"
-DEPEND="${CDEPEND}
- sys-apps/texinfo"
-
-PATCHES=(
- # Don't use utempter even if it is found on the system.
- "${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
-)
-
-pkg_setup() {
- # Make sure utmp group exists, as it's used later on.
- enewgroup utmp 406
-}
-
-src_prepare() {
- default
-
- # sched.h is a system header and causes problems with some C libraries
- mv sched.h _sched.h || die
- sed -i '/include/ s:sched.h:_sched.h:' screen.h || die
-
- # Fix manpage.
- sed -i \
- -e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
- -e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
- -e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
- -e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
- -e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \
- doc/screen.1 \
- || die
-
- if [[ ${CHOST} == *-darwin* ]] ; then
- sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
- fi
-
- # reconfigure
- eautoreconf
-}
-
-src_configure() {
- append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
-
- if [[ ${CHOST} == *-solaris* ]] ; then
- # enable msg_header by upping the feature standard compatible
- # with c99 mode
- append-cppflags -D_XOPEN_SOURCE=600
- fi
-
- use nethack || append-cppflags "-DNONETHACK"
- use debug && append-cppflags "-DDEBUG"
-
- econf \
- --with-socket-dir="${EPREFIX}/tmp/screen" \
- --with-sys-screenrc="${EPREFIX}/etc/screenrc" \
- --with-pty-mode=0620 \
- --with-pty-group=5 \
- --enable-rxvt_osc \
- --enable-telnet \
- --enable-colors256 \
- $(use_enable pam)
-}
-
-src_compile() {
- LC_ALL=POSIX emake comm.h term.h
- emake osdef.h
-
- emake -C doc screen.info
- default
-}
-
-src_install() {
- local DOCS=(
- README ChangeLog INSTALL TODO NEWS* patchlevel.h
- doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
- )
-
- default
-
- local tmpfiles_perms tmpfiles_group
-
- if use multiuser || use prefix
- then
- fperms 4755 /usr/bin/screen-${PV}
- tmpfiles_perms="0755"
- tmpfiles_group="root"
- else
- fowners root:utmp /usr/bin/screen-${PV}
- fperms 2755 /usr/bin/screen-${PV}
- tmpfiles_perms="0775"
- tmpfiles_group="utmp"
- fi
-
- dodir /etc/tmpfiles.d
- echo "d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}" \
- > "${ED}"/etc/tmpfiles.d/screen.conf
-
- insinto /usr/share/screen
- doins terminfo/{screencap,screeninfo.src}
-
- insinto /etc
- doins "${FILESDIR}"/screenrc
-
- pamd_mimic_system screen auth
-}
-
-pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]]
- then
- elog "Some dangerous key bindings have been removed or changed to more safe values."
- elog "We enable some xterm hacks in our default screenrc, which might break some"
- elog "applications. Please check /etc/screenrc for information on these changes."
- fi
-
- # Add /tmp/screen in case it doesn't exist yet. This should solve
- # problems like bug #508634 where tmpfiles.d isn't in effect.
- local rundir="${EROOT%/}/tmp/screen"
- if [[ ! -d ${rundir} ]] ; then
- if use multiuser || use prefix ; then
- tmpfiles_group="root"
- else
- tmpfiles_group="utmp"
- fi
- mkdir -m 0775 "${rundir}"
- chgrp ${tmpfiles_group} "${rundir}"
- fi
-
- ewarn "This revision changes the screen socket location to ${rundir}"
-}
diff --git a/app-misc/screen/screen-4.6.2.ebuild b/app-misc/screen/screen-4.6.2.ebuild
deleted file mode 100644
index 245a4135f542..000000000000
--- a/app-misc/screen/screen-4.6.2.ebuild
+++ /dev/null
@@ -1,162 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-SCM=""
-[[ "${PV}" = 9999 ]] && SCM="git-r3"
-inherit autotools eutils flag-o-matic pam toolchain-funcs user ${SCM}
-unset SCM
-
-DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
-HOMEPAGE="https://www.gnu.org/software/screen/"
-
-if [[ "${PV}" != 9999 ]] ; then
- SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-else
- EGIT_REPO_URI="git://git.savannah.gnu.org/screen.git"
- EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on
- S="${WORKDIR}"/${P}/src
-fi
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="debug nethack pam selinux multiuser"
-
-CDEPEND="
- >=sys-libs/ncurses-5.2:0=
- pam? ( sys-libs/pam )"
-RDEPEND="${CDEPEND}
- selinux? ( sec-policy/selinux-screen )"
-DEPEND="${CDEPEND}
- sys-apps/texinfo"
-
-PATCHES=(
- # Don't use utempter even if it is found on the system.
- "${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
- "${FILESDIR}"/${P}-utmp-exit.patch
-)
-
-pkg_setup() {
- # Make sure utmp group exists, as it's used later on.
- enewgroup utmp 406
-}
-
-src_prepare() {
- default
-
- # sched.h is a system header and causes problems with some C libraries
- mv sched.h _sched.h || die
- sed -i '/include/ s:sched.h:_sched.h:' screen.h || die
-
- # Fix manpage.
- sed -i \
- -e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
- -e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
- -e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
- -e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
- -e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \
- doc/screen.1 \
- || die
-
- if [[ ${CHOST} == *-darwin* ]] || use elibc_musl ; then
- sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
- fi
-
- # disable musl dummy headers for utmp[x]
- use elibc_musl && append-cppflags "-D_UTMP_H -D_UTMPX_H"
-
- # reconfigure
- eautoreconf
-}
-
-src_configure() {
- append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
-
- if [[ ${CHOST} == *-solaris* ]] ; then
- # enable msg_header by upping the feature standard compatible
- # with c99 mode
- append-cppflags -D_XOPEN_SOURCE=600
- fi
-
- use nethack || append-cppflags "-DNONETHACK"
- use debug && append-cppflags "-DDEBUG"
-
- econf \
- --with-socket-dir="${EPREFIX}/tmp/screen" \
- --with-sys-screenrc="${EPREFIX}/etc/screenrc" \
- --with-pty-mode=0620 \
- --with-pty-group=5 \
- --enable-rxvt_osc \
- --enable-telnet \
- --enable-colors256 \
- $(use_enable pam)
-}
-
-src_compile() {
- LC_ALL=POSIX emake comm.h term.h
- emake osdef.h
-
- emake -C doc screen.info
- default
-}
-
-src_install() {
- local DOCS=(
- README ChangeLog INSTALL TODO NEWS* patchlevel.h
- doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
- )
-
- default
-
- local tmpfiles_perms tmpfiles_group
-
- if use multiuser || use prefix
- then
- fperms 4755 /usr/bin/screen-${PV}
- tmpfiles_perms="0755"
- tmpfiles_group="root"
- else
- fowners root:utmp /usr/bin/screen-${PV}
- fperms 2755 /usr/bin/screen-${PV}
- tmpfiles_perms="0775"
- tmpfiles_group="utmp"
- fi
-
- dodir /etc/tmpfiles.d
- echo "d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}" \
- > "${ED}"/etc/tmpfiles.d/screen.conf
-
- insinto /usr/share/screen
- doins terminfo/{screencap,screeninfo.src}
-
- insinto /etc
- doins "${FILESDIR}"/screenrc
-
- pamd_mimic_system screen auth
-}
-
-pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]]
- then
- elog "Some dangerous key bindings have been removed or changed to more safe values."
- elog "We enable some xterm hacks in our default screenrc, which might break some"
- elog "applications. Please check /etc/screenrc for information on these changes."
- fi
-
- # Add /tmp/screen in case it doesn't exist yet. This should solve
- # problems like bug #508634 where tmpfiles.d isn't in effect.
- local rundir="${EROOT%/}/tmp/screen"
- if [[ ! -d ${rundir} ]] ; then
- if use multiuser || use prefix ; then
- tmpfiles_group="root"
- else
- tmpfiles_group="utmp"
- fi
- mkdir -m 0775 "${rundir}"
- chgrp ${tmpfiles_group} "${rundir}"
- fi
-
- ewarn "This revision changes the screen socket location to ${rundir}"
-}
diff --git a/app-misc/screen/screen-4.7.0.ebuild b/app-misc/screen/screen-4.9.0-r3.ebuild
index bdc40e9094d1..4bb3440413fa 100644
--- a/app-misc/screen/screen-4.7.0.ebuild
+++ b/app-misc/screen/screen-4.9.0-r3.ebuild
@@ -1,16 +1,16 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit autotools flag-o-matic pam tmpfiles toolchain-funcs user
+inherit autotools flag-o-matic pam tmpfiles
DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
HOMEPAGE="https://www.gnu.org/software/screen/"
-if [[ "${PV}" != 9999 ]] ; then
+if [[ ${PV} != 9999 ]] ; then
SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
else
inherit git-r3
EGIT_REPO_URI="https://git.savannah.gnu.org/git/screen.git"
@@ -18,29 +18,27 @@ else
S="${WORKDIR}"/${P}/src
fi
-LICENSE="GPL-2"
+LICENSE="GPL-3+"
SLOT="0"
IUSE="debug nethack pam selinux multiuser"
-CDEPEND="
- >=sys-libs/ncurses-5.2:0=
+DEPEND=">=sys-libs/ncurses-5.2:=
+ virtual/libcrypt:=
pam? ( sys-libs/pam )"
-RDEPEND="${CDEPEND}
+RDEPEND="${DEPEND}
+ acct-group/utmp
selinux? ( sec-policy/selinux-screen )"
-DEPEND="${CDEPEND}
- sys-apps/texinfo"
+BDEPEND="sys-apps/texinfo"
PATCHES=(
# Don't use utempter even if it is found on the system.
"${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
"${FILESDIR}"/${PN}-4.6.2-utmp-exit.patch
+ "${FILESDIR}"/${PN}-4.9.0-configure-implicit-function-decls.patch
+ "${FILESDIR}"/${P}-CVE-2023-24626.patch
+ "${FILESDIR}"/${PN}-4.9.0-clang16-chmod.patch
)
-pkg_setup() {
- # Make sure utmp group exists, as it's used later on.
- enewgroup utmp 406
-}
-
src_prepare() {
default
@@ -48,17 +46,16 @@ src_prepare() {
mv sched.h _sched.h || die
sed -i '/include/ s:sched.h:_sched.h:' screen.h || die
- # Fix manpage.
+ # Fix manpage
sed -i \
-e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
-e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
-e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
-e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
-e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \
- doc/screen.1 \
- || die
+ doc/screen.1 || die
- if [[ ${CHOST} == *-darwin* ]] || use elibc_musl ; then
+ if [[ ${CHOST} == *-darwin* ]] || use elibc_musl; then
sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
fi
@@ -72,7 +69,7 @@ src_prepare() {
src_configure() {
append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
- if [[ ${CHOST} == *-solaris* ]] ; then
+ if [[ ${CHOST} == *-solaris* ]]; then
# enable msg_header by upping the feature standard compatible
# with c99 mode
append-cppflags -D_XOPEN_SOURCE=600
@@ -81,15 +78,17 @@ src_configure() {
use nethack || append-cppflags "-DNONETHACK"
use debug && append-cppflags "-DDEBUG"
- econf \
- --with-socket-dir="${EPREFIX}/tmp/screen" \
- --with-sys-screenrc="${EPREFIX}/etc/screenrc" \
- --with-pty-mode=0620 \
- --with-pty-group=5 \
- --enable-rxvt_osc \
- --enable-telnet \
- --enable-colors256 \
+ local myeconfargs=(
+ --with-socket-dir="${EPREFIX}/tmp/${PN}"
+ --with-sys-screenrc="${EPREFIX}/etc/screenrc"
+ --with-pty-mode=0620
+ --with-pty-group=5
+ --enable-rxvt_osc
+ --enable-telnet
+ --enable-colors256
$(use_enable pam)
+ )
+ econf "${myeconfargs[@]}"
}
src_compile() {
@@ -106,55 +105,44 @@ src_install() {
doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
)
- emake DESTDIR="${D}" SCREEN=screen-${PV} install
+ emake DESTDIR="${D}" SCREEN="${P}" install
local tmpfiles_perms tmpfiles_group
- if use multiuser || use prefix
- then
- fperms 4755 /usr/bin/screen-${PV}
+ if use multiuser || use prefix ; then
+ fperms 4755 /usr/bin/${P}
tmpfiles_perms="0755"
tmpfiles_group="root"
else
- fowners root:utmp /usr/bin/screen-${PV}
- fperms 2755 /usr/bin/screen-${PV}
+ fowners root:utmp /usr/bin/${P}
+ fperms 2755 /usr/bin/${P}
tmpfiles_perms="0775"
tmpfiles_group="utmp"
fi
newtmpfiles - screen.conf <<<"d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}"
- insinto /usr/share/screen
+ insinto /usr/share/${PN}
doins terminfo/{screencap,screeninfo.src}
insinto /etc
doins "${FILESDIR}"/screenrc
- pamd_mimic_system screen auth
+ if use pam; then
+ pamd_mimic_system screen auth
+ fi
dodoc "${DOCS[@]}"
}
pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]]
- then
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
elog "Some dangerous key bindings have been removed or changed to more safe values."
elog "We enable some xterm hacks in our default screenrc, which might break some"
elog "applications. Please check /etc/screenrc for information on these changes."
fi
- # Add /tmp/screen in case it doesn't exist yet. This should solve
- # problems like bug #508634 where tmpfiles.d isn't in effect.
- local rundir="${EROOT%/}/tmp/screen"
- if [[ ! -d ${rundir} ]] ; then
- if use multiuser || use prefix ; then
- tmpfiles_group="root"
- else
- tmpfiles_group="utmp"
- fi
- mkdir -m 0775 "${rundir}"
- chgrp ${tmpfiles_group} "${rundir}"
- fi
+ tmpfiles_process screen.conf
- ewarn "This revision changes the screen socket location to ${rundir}"
+ ewarn "This revision changes the screen socket location to ${EROOT}/tmp/${PN}"
}
diff --git a/app-misc/screen/screen-4.6.2-r1.ebuild b/app-misc/screen/screen-4.9.1-r1.ebuild
index d7aa2d425487..c0f7b34c213f 100644
--- a/app-misc/screen/screen-4.6.2-r1.ebuild
+++ b/app-misc/screen/screen-4.9.1-r1.ebuild
@@ -1,16 +1,16 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
-inherit autotools eutils flag-o-matic pam tmpfiles toolchain-funcs user
+inherit autotools flag-o-matic pam tmpfiles
DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
HOMEPAGE="https://www.gnu.org/software/screen/"
-if [[ "${PV}" != 9999 ]] ; then
+if [[ ${PV} != 9999 ]] ; then
SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
else
inherit git-r3
EGIT_REPO_URI="https://git.savannah.gnu.org/git/screen.git"
@@ -18,29 +18,24 @@ else
S="${WORKDIR}"/${P}/src
fi
-LICENSE="GPL-2"
+LICENSE="GPL-3+"
SLOT="0"
IUSE="debug nethack pam selinux multiuser"
-CDEPEND="
- >=sys-libs/ncurses-5.2:0=
+DEPEND=">=sys-libs/ncurses-5.2:=
+ virtual/libcrypt:=
pam? ( sys-libs/pam )"
-RDEPEND="${CDEPEND}
+RDEPEND="${DEPEND}
+ acct-group/utmp
selinux? ( sec-policy/selinux-screen )"
-DEPEND="${CDEPEND}
- sys-apps/texinfo"
+BDEPEND="sys-apps/texinfo"
PATCHES=(
# Don't use utempter even if it is found on the system.
"${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
- "${FILESDIR}"/${P}-utmp-exit.patch
+ "${FILESDIR}"/${PN}-4.9.1-utmp-exit.patch
)
-pkg_setup() {
- # Make sure utmp group exists, as it's used later on.
- enewgroup utmp 406
-}
-
src_prepare() {
default
@@ -48,17 +43,16 @@ src_prepare() {
mv sched.h _sched.h || die
sed -i '/include/ s:sched.h:_sched.h:' screen.h || die
- # Fix manpage.
+ # Fix manpage
sed -i \
-e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
-e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
-e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
-e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
-e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \
- doc/screen.1 \
- || die
+ doc/screen.1 || die
- if [[ ${CHOST} == *-darwin* ]] || use elibc_musl ; then
+ if [[ ${CHOST} == *-darwin* ]] || use elibc_musl; then
sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
fi
@@ -70,9 +64,10 @@ src_prepare() {
}
src_configure() {
+ append-lfs-flags
append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
- if [[ ${CHOST} == *-solaris* ]] ; then
+ if [[ ${CHOST} == *-solaris* ]]; then
# enable msg_header by upping the feature standard compatible
# with c99 mode
append-cppflags -D_XOPEN_SOURCE=600
@@ -81,15 +76,17 @@ src_configure() {
use nethack || append-cppflags "-DNONETHACK"
use debug && append-cppflags "-DDEBUG"
- econf \
- --with-socket-dir="${EPREFIX}/tmp/screen" \
- --with-sys-screenrc="${EPREFIX}/etc/screenrc" \
- --with-pty-mode=0620 \
- --with-pty-group=5 \
- --enable-rxvt_osc \
- --enable-telnet \
- --enable-colors256 \
+ local myeconfargs=(
+ --with-socket-dir="${EPREFIX}/tmp/${PN}"
+ --with-sys-screenrc="${EPREFIX}/etc/screenrc"
+ --with-pty-mode=0620
+ --with-pty-group=5
+ --enable-rxvt_osc
+ --enable-telnet
+ --enable-colors256
$(use_enable pam)
+ )
+ econf "${myeconfargs[@]}"
}
src_compile() {
@@ -106,55 +103,44 @@ src_install() {
doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
)
- emake DESTDIR="${D}" SCREEN=screen-${PV} install
+ emake DESTDIR="${D}" SCREEN="${P}" install
local tmpfiles_perms tmpfiles_group
- if use multiuser || use prefix
- then
- fperms 4755 /usr/bin/screen-${PV}
+ if use multiuser || use prefix ; then
+ fperms 4755 /usr/bin/${P}
tmpfiles_perms="0755"
tmpfiles_group="root"
else
- fowners root:utmp /usr/bin/screen-${PV}
- fperms 2755 /usr/bin/screen-${PV}
+ fowners root:utmp /usr/bin/${P}
+ fperms 2755 /usr/bin/${P}
tmpfiles_perms="0775"
tmpfiles_group="utmp"
fi
newtmpfiles - screen.conf <<<"d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}"
- insinto /usr/share/screen
+ insinto /usr/share/${PN}
doins terminfo/{screencap,screeninfo.src}
insinto /etc
doins "${FILESDIR}"/screenrc
- pamd_mimic_system screen auth
+ if use pam; then
+ pamd_mimic_system screen auth
+ fi
dodoc "${DOCS[@]}"
}
pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]]
- then
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
elog "Some dangerous key bindings have been removed or changed to more safe values."
elog "We enable some xterm hacks in our default screenrc, which might break some"
elog "applications. Please check /etc/screenrc for information on these changes."
fi
- # Add /tmp/screen in case it doesn't exist yet. This should solve
- # problems like bug #508634 where tmpfiles.d isn't in effect.
- local rundir="${EROOT%/}/tmp/screen"
- if [[ ! -d ${rundir} ]] ; then
- if use multiuser || use prefix ; then
- tmpfiles_group="root"
- else
- tmpfiles_group="utmp"
- fi
- mkdir -m 0775 "${rundir}"
- chgrp ${tmpfiles_group} "${rundir}"
- fi
+ tmpfiles_process screen.conf
- ewarn "This revision changes the screen socket location to ${rundir}"
+ ewarn "This revision changes the screen socket location to ${EROOT}/tmp/${PN}"
}
diff --git a/app-misc/screen/screen-4.6.1.ebuild b/app-misc/screen/screen-4.9.1.ebuild
index b4fad2505ebd..51788a01b0d4 100644
--- a/app-misc/screen/screen-4.6.1.ebuild
+++ b/app-misc/screen/screen-4.9.1.ebuild
@@ -1,47 +1,41 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
-SCM=""
-[[ "${PV}" = 9999 ]] && SCM="git-r3"
-inherit autotools eutils flag-o-matic pam toolchain-funcs user ${SCM}
-unset SCM
+inherit autotools flag-o-matic pam tmpfiles
DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
HOMEPAGE="https://www.gnu.org/software/screen/"
-if [[ "${PV}" != 9999 ]] ; then
+if [[ ${PV} != 9999 ]] ; then
SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
- KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
else
- EGIT_REPO_URI="git://git.savannah.gnu.org/screen.git"
+ inherit git-r3
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/screen.git"
EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on
S="${WORKDIR}"/${P}/src
fi
-LICENSE="GPL-2"
+LICENSE="GPL-3+"
SLOT="0"
IUSE="debug nethack pam selinux multiuser"
-CDEPEND="
- >=sys-libs/ncurses-5.2:0=
+DEPEND=">=sys-libs/ncurses-5.2:=
+ virtual/libcrypt:=
pam? ( sys-libs/pam )"
-RDEPEND="${CDEPEND}
+RDEPEND="${DEPEND}
+ acct-group/utmp
selinux? ( sec-policy/selinux-screen )"
-DEPEND="${CDEPEND}
- sys-apps/texinfo"
+BDEPEND="sys-apps/texinfo"
PATCHES=(
# Don't use utempter even if it is found on the system.
"${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
+ "${FILESDIR}"/${PN}-4.9.1-utmp-exit.patch
)
-pkg_setup() {
- # Make sure utmp group exists, as it's used later on.
- enewgroup utmp 406
-}
-
src_prepare() {
default
@@ -49,17 +43,16 @@ src_prepare() {
mv sched.h _sched.h || die
sed -i '/include/ s:sched.h:_sched.h:' screen.h || die
- # Fix manpage.
+ # Fix manpage
sed -i \
-e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
-e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
-e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
-e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
-e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \
- doc/screen.1 \
- || die
+ doc/screen.1 || die
- if [[ ${CHOST} == *-darwin* ]] || use elibc_musl ; then
+ if [[ ${CHOST} == *-darwin* ]] || use elibc_musl; then
sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
fi
@@ -73,7 +66,7 @@ src_prepare() {
src_configure() {
append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
- if [[ ${CHOST} == *-solaris* ]] ; then
+ if [[ ${CHOST} == *-solaris* ]]; then
# enable msg_header by upping the feature standard compatible
# with c99 mode
append-cppflags -D_XOPEN_SOURCE=600
@@ -82,15 +75,17 @@ src_configure() {
use nethack || append-cppflags "-DNONETHACK"
use debug && append-cppflags "-DDEBUG"
- econf \
- --with-socket-dir="${EPREFIX}/tmp/screen" \
- --with-sys-screenrc="${EPREFIX}/etc/screenrc" \
- --with-pty-mode=0620 \
- --with-pty-group=5 \
- --enable-rxvt_osc \
- --enable-telnet \
- --enable-colors256 \
+ local myeconfargs=(
+ --with-socket-dir="${EPREFIX}/tmp/${PN}"
+ --with-sys-screenrc="${EPREFIX}/etc/screenrc"
+ --with-pty-mode=0620
+ --with-pty-group=5
+ --enable-rxvt_osc
+ --enable-telnet
+ --enable-colors256
$(use_enable pam)
+ )
+ econf "${myeconfargs[@]}"
}
src_compile() {
@@ -107,55 +102,44 @@ src_install() {
doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
)
- default
+ emake DESTDIR="${D}" SCREEN="${P}" install
local tmpfiles_perms tmpfiles_group
- if use multiuser || use prefix
- then
- fperms 4755 /usr/bin/screen-${PV}
+ if use multiuser || use prefix ; then
+ fperms 4755 /usr/bin/${P}
tmpfiles_perms="0755"
tmpfiles_group="root"
else
- fowners root:utmp /usr/bin/screen-${PV}
- fperms 2755 /usr/bin/screen-${PV}
+ fowners root:utmp /usr/bin/${P}
+ fperms 2755 /usr/bin/${P}
tmpfiles_perms="0775"
tmpfiles_group="utmp"
fi
- dodir /etc/tmpfiles.d
- echo "d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}" \
- > "${ED}"/etc/tmpfiles.d/screen.conf
+ newtmpfiles - screen.conf <<<"d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}"
- insinto /usr/share/screen
+ insinto /usr/share/${PN}
doins terminfo/{screencap,screeninfo.src}
insinto /etc
doins "${FILESDIR}"/screenrc
- pamd_mimic_system screen auth
+ if use pam; then
+ pamd_mimic_system screen auth
+ fi
+
+ dodoc "${DOCS[@]}"
}
pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]]
- then
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
elog "Some dangerous key bindings have been removed or changed to more safe values."
elog "We enable some xterm hacks in our default screenrc, which might break some"
elog "applications. Please check /etc/screenrc for information on these changes."
fi
- # Add /tmp/screen in case it doesn't exist yet. This should solve
- # problems like bug #508634 where tmpfiles.d isn't in effect.
- local rundir="${EROOT%/}/tmp/screen"
- if [[ ! -d ${rundir} ]] ; then
- if use multiuser || use prefix ; then
- tmpfiles_group="root"
- else
- tmpfiles_group="utmp"
- fi
- mkdir -m 0775 "${rundir}"
- chgrp ${tmpfiles_group} "${rundir}"
- fi
+ tmpfiles_process screen.conf
- ewarn "This revision changes the screen socket location to ${rundir}"
+ ewarn "This revision changes the screen socket location to ${EROOT}/tmp/${PN}"
}
diff --git a/app-misc/screen/screen-9999.ebuild b/app-misc/screen/screen-9999.ebuild
index 29951514a764..f7b2fb9bb6fc 100644
--- a/app-misc/screen/screen-9999.ebuild
+++ b/app-misc/screen/screen-9999.ebuild
@@ -1,16 +1,16 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit autotools eutils flag-o-matic pam tmpfiles toolchain-funcs user
+inherit autotools flag-o-matic pam tmpfiles
DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
HOMEPAGE="https://www.gnu.org/software/screen/"
-if [[ "${PV}" != 9999 ]] ; then
+if [[ ${PV} != 9999 ]] ; then
SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
else
inherit git-r3
EGIT_REPO_URI="https://git.savannah.gnu.org/git/screen.git"
@@ -18,71 +18,75 @@ else
S="${WORKDIR}"/${P}/src
fi
-LICENSE="GPL-2"
+LICENSE="GPL-3+"
SLOT="0"
-IUSE="debug nethack pam selinux multiuser utmp"
+IUSE="debug nethack pam selinux multiuser"
-CDEPEND="
- >=sys-libs/ncurses-5.2:0=
+DEPEND=">=sys-libs/ncurses-5.2:=
+ virtual/libcrypt:=
pam? ( sys-libs/pam )"
-RDEPEND="${CDEPEND}
- selinux? ( sec-policy/selinux-screen )
- utmp? (
- kernel_linux? ( sys-libs/libutempter )
- kernel_FreeBSD? ( || ( >=sys-freebsd/freebsd-lib-9.0 sys-libs/libutempter ) )
- )
-"
-DEPEND="${CDEPEND}
- sys-apps/texinfo"
-
-RESTRICT="test"
+RDEPEND="${DEPEND}
+ acct-group/utmp
+ selinux? ( sec-policy/selinux-screen )"
+BDEPEND="sys-apps/texinfo"
-pkg_setup() {
- # Make sure utmp group exists, as it's used later on.
- enewgroup utmp 406
-}
+PATCHES=(
+ # Don't use utempter even if it is found on the system.
+ "${FILESDIR}"/${P}-no-utempter.patch
+)
src_prepare() {
default
# sched.h is a system header and causes problems with some C libraries
mv sched.h _sched.h || die
- sed -i \
- -e '/include/ s:sched.h:_sched.h:' \
- screen.h winmsg.c canvas.h sched.c || die
- sed -i -e 's:sched.h:_sched.h:g' Makefile.in || die
+ sed -i '/include/ s:sched\.h:_sched.h:' \
+ screen.h winmsg.c window.h sched.c canvas.h || die
+ sed -i 's@[[:space:]]sched\.h@ _sched.h@' Makefile.in || die
- # Fix manpage.
+ # Fix manpage
sed -i \
-e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
-e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
-e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
-e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
- -e 's:/local/screens/S\\-:'"${EPREFIX}"'/tmp/screen/S\\-:g' \
- -e 's:/usr/tmp/screens/:'"${EPREFIX}"'/tmp/screen/:g' \
- doc/screen.1 \
- || die
+ -e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \
+ doc/screen.1 || die
+
+ if [[ ${CHOST} == *-darwin* ]] || use elibc_musl; then
+ sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
+ fi
+
+ # disable musl dummy headers for utmp[x]
+ use elibc_musl && append-cppflags "-D_UTMP_H -D_UTMPX_H"
# reconfigure
eautoreconf
}
src_configure() {
+ append-lfs-flags
append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
- [[ ${CHOST} == *-solaris* ]] && append-libs -lsocket -lnsl
+ if [[ ${CHOST} == *-solaris* ]]; then
+ # enable msg_header by upping the feature standard compatible
+ # with c99 mode
+ append-cppflags -D_XOPEN_SOURCE=600
+ fi
use nethack || append-cppflags "-DNONETHACK"
use debug && append-cppflags "-DDEBUG"
- econf \
- --enable-socket-dir="${EPREFIX}/tmp/screen" \
- --with-system_screenrc="${EPREFIX}/etc/screenrc" \
- --with-pty-mode=0620 \
- --with-pty-group=5 \
- --enable-telnet \
- $(use_enable pam) \
- $(use_enable utmp)
+ local myeconfargs=(
+ --enable-socket-dir="${EPREFIX}/tmp/${PN}"
+ --with-system_screenrc="${EPREFIX}/etc/screenrc"
+ --with-pty-mode=0620
+ --with-pty-group=5
+ --enable-telnet
+ --enable-utmp
+ $(use_enable pam)
+ )
+ econf "${myeconfargs[@]}"
}
src_compile() {
@@ -98,55 +102,44 @@ src_install() {
doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
)
- emake DESTDIR="${D}" SCREEN=screen-${PV} install
+ emake DESTDIR="${D}" SCREEN="${P}" install
local tmpfiles_perms tmpfiles_group
- if use multiuser || use prefix
- then
- fperms 4755 /usr/bin/screen-${PV}
+ if use multiuser || use prefix ; then
+ fperms 4755 /usr/bin/${P}
tmpfiles_perms="0755"
tmpfiles_group="root"
else
- fowners root:utmp /usr/bin/screen-${PV}
- fperms 2755 /usr/bin/screen-${PV}
+ fowners root:utmp /usr/bin/${P}
+ fperms 2755 /usr/bin/${P}
tmpfiles_perms="0775"
tmpfiles_group="utmp"
fi
newtmpfiles - screen.conf <<<"d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}"
- insinto /usr/share/screen
+ insinto /usr/share/${PN}
doins terminfo/{screencap,screeninfo.src}
insinto /etc
doins "${FILESDIR}"/screenrc
- pamd_mimic_system screen auth
+ if use pam; then
+ pamd_mimic_system screen auth
+ fi
dodoc "${DOCS[@]}"
}
pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]]
- then
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
elog "Some dangerous key bindings have been removed or changed to more safe values."
elog "We enable some xterm hacks in our default screenrc, which might break some"
elog "applications. Please check /etc/screenrc for information on these changes."
fi
- # Add /tmp/screen in case it doesn't exist yet. This should solve
- # problems like bug #508634 where tmpfiles.d isn't in effect.
- local rundir="${EROOT%/}/tmp/screen"
- if [[ ! -d ${rundir} ]] ; then
- if use multiuser || use prefix ; then
- tmpfiles_group="root"
- else
- tmpfiles_group="utmp"
- fi
- mkdir -m 0775 "${rundir}"
- chgrp ${tmpfiles_group} "${rundir}"
- fi
+ tmpfiles_process screen.conf
- ewarn "This revision changes the screen socket location to ${rundir}"
+ ewarn "This revision changes the screen socket location to ${EROOT}/tmp/${PN}"
}