summaryrefslogtreecommitdiff
path: root/app-misc
diff options
context:
space:
mode:
Diffstat (limited to 'app-misc')
-rw-r--r--app-misc/Manifest.gzbin49277 -> 49270 bytes
-rw-r--r--app-misc/ckb/Manifest2
-rw-r--r--app-misc/ckb/ckb-0.5.0-r1.ebuild (renamed from app-misc/ckb/ckb-0.5.0.ebuild)0
-rw-r--r--app-misc/fdupes/Manifest2
-rw-r--r--app-misc/fdupes/fdupes-2.2.1.ebuild43
-rw-r--r--app-misc/rbutil/Manifest2
-rw-r--r--app-misc/rbutil/rbutil-1.5.1-r1.ebuild (renamed from app-misc/rbutil/rbutil-1.5.1.ebuild)0
-rw-r--r--app-misc/screen/Manifest2
-rw-r--r--app-misc/screen/files/screen-4.9.0-configure-implicit-function-decls.patch745
-rw-r--r--app-misc/screen/screen-4.9.0-r1.ebuild146
10 files changed, 940 insertions, 2 deletions
diff --git a/app-misc/Manifest.gz b/app-misc/Manifest.gz
index 79cd35e2c91f..da0be68fdf1e 100644
--- a/app-misc/Manifest.gz
+++ b/app-misc/Manifest.gz
Binary files differ
diff --git a/app-misc/ckb/Manifest b/app-misc/ckb/Manifest
index 58e3f4985b3f..113c34551867 100644
--- a/app-misc/ckb/Manifest
+++ b/app-misc/ckb/Manifest
@@ -1,4 +1,4 @@
DIST ckb-0.5.0.tar.gz 1868880 BLAKE2B 867923f4eaf5d0e9d4ec14c5bd5952d88436c12a0d615528e083705cff7346a654dc801e743519e5482e8beb1cd28284710000e69b20032856b0e22d48792ee3 SHA512 d4e46466df4cdac7f4d4be05072592101780c94af261ec1b0bf6ec8bb1f97f892fb5da17dd91cf5f9b45fe128547cc7393c13e29843d6a7ae0de7a4688a5cdb1
-EBUILD ckb-0.5.0.ebuild 1390 BLAKE2B aa692e11f58277dcf21b0c1585c88612173c78e9d18d2931eef64a9e2c2ba1d7846387a83e13d658f7b02c7fc4566137f92920aeca0265fafdbf86edba912cb5 SHA512 3062729bc4735aa8fac53f7b30ab5559f4afac3c5fcbae6f76f8e4a34589433ce35c1ca5c929b73c79e426f0a9f0087b3554afdd0f17dbc191ef45d8b1f50714
+EBUILD ckb-0.5.0-r1.ebuild 1390 BLAKE2B aa692e11f58277dcf21b0c1585c88612173c78e9d18d2931eef64a9e2c2ba1d7846387a83e13d658f7b02c7fc4566137f92920aeca0265fafdbf86edba912cb5 SHA512 3062729bc4735aa8fac53f7b30ab5559f4afac3c5fcbae6f76f8e4a34589433ce35c1ca5c929b73c79e426f0a9f0087b3554afdd0f17dbc191ef45d8b1f50714
EBUILD ckb-9999.ebuild 1391 BLAKE2B 7a5fd88fb9bbd46f34348e3f93fa3f388755a53f3f806e80bb678d56e916bcc56ec7929ffa11665139dd0a3c35daef3b2bd7f7d3ef99bf07c8cf6c78f30ee56d SHA512 70f9e226901ae57ab8b3b8e09899ceeb39785a7eb7680dae3e4977829345b63fbd0f21b74f80b44f9075a488412adbf21aaf00af78131127d6551be0d8924830
MISC metadata.xml 330 BLAKE2B 1620c787b0b2ede7874f1b8dba4aa6629f436217278024965a9e5a715cb3196b8630351a1b742f7f05177dc7a22b76caf16cc0ed8fd52dec2e81c54dc1f7f3db SHA512 241b50400569870e01576e52b871aded1ab05853677a05ac42a54eb03295ec9e197a6a592e9182c1169dc9e1f963b9439bce6a2c75eddf5ea7168e07ca362dae
diff --git a/app-misc/ckb/ckb-0.5.0.ebuild b/app-misc/ckb/ckb-0.5.0-r1.ebuild
index 168115f90d2b..168115f90d2b 100644
--- a/app-misc/ckb/ckb-0.5.0.ebuild
+++ b/app-misc/ckb/ckb-0.5.0-r1.ebuild
diff --git a/app-misc/fdupes/Manifest b/app-misc/fdupes/Manifest
index 5ca3259c2d34..b45d62bf37ca 100644
--- a/app-misc/fdupes/Manifest
+++ b/app-misc/fdupes/Manifest
@@ -1,6 +1,8 @@
DIST fdupes-2.1.2.tar.gz 142266 BLAKE2B caf949b87baf0fecc87fef58f512d0a99e1219b57bc167992b0e40841ce67e5ddcf5307de7fc9c70f173e75aab4a12eb86abef0084084b5119f95326509ea665 SHA512 9c3761e7ce34f2d9d1b5ee49ebc3bf665e3d45e4146231bc77d7416801fbfa70415e80c81c64962897766ee068d1a103609895d783f20a765c351d4cd433323d
DIST fdupes-2.2.0.tar.gz 144763 BLAKE2B 26a6f003b6e1b536d02da1f4b5e9051c3da19ae67c6cbdfb3cf2060ae68288b9ebdf64ca911e60126a6646895f6a6d7158c23b28c20b415ee341a8dd29820aaf SHA512 83f7bb9c3dc44ef5356c02b1db7f7f0e5698f2b73dfbb8ea1176e9a7399167a7ffd8d416036792ede1ba106dfb221d72708f7e483ce96fb7faf6c23a4f43128b
+DIST fdupes-2.2.1.tar.gz 144719 BLAKE2B 904fd70650847e48e135e47ef77e244ee847151f6ff88ccda2aeba5158038de8507b2ea23a7172e9c1fcd634ae38601c66da225014b9cfd65fd506ce77e7d408 SHA512 4911d2f776480691e7bd7045c181d49159add5b479188b05f0878a7af365cee0e430093e71ff172c04b876c58efc3be0f24c9d25f0cdebf1c869931175bc8608
EBUILD fdupes-2.1.2.ebuild 783 BLAKE2B 4fc90a4e2178f2483e6b64075a0d930a540893257a0753aebe9d822febb3b2ee01500f6d728d923b4ba74ad35c0a7d08eaaac11a4bcaaedabed649493c803845 SHA512 674992c3955962e5e37cce751aba9f2e13caf9ce72661d5daca47459d09dfff90b4101aa68466863d4116bc3dfd37b1f1df1c5157e16ec6bc8989be1ab6b833c
EBUILD fdupes-2.2.0.ebuild 986 BLAKE2B bed740b4937ce26cdac0a55c8579f0c36341a67fd4bb494dfc95ea9e2a0b3d27f3164ffb116156e22e1ee8dec29e3ffbc3ac312b2108bed01b895b685269e7fd SHA512 9b188308540dc189d5187adc79de5605e8eb2317fec25fe6923bdb1c49c5439649d1e586a19db9453dae88861cc723a2f95dc7c1d5bd57ad65486a1c15e6d84a
+EBUILD fdupes-2.2.1.ebuild 986 BLAKE2B bed740b4937ce26cdac0a55c8579f0c36341a67fd4bb494dfc95ea9e2a0b3d27f3164ffb116156e22e1ee8dec29e3ffbc3ac312b2108bed01b895b685269e7fd SHA512 9b188308540dc189d5187adc79de5605e8eb2317fec25fe6923bdb1c49c5439649d1e586a19db9453dae88861cc723a2f95dc7c1d5bd57ad65486a1c15e6d84a
EBUILD fdupes-9999.ebuild 986 BLAKE2B bed740b4937ce26cdac0a55c8579f0c36341a67fd4bb494dfc95ea9e2a0b3d27f3164ffb116156e22e1ee8dec29e3ffbc3ac312b2108bed01b895b685269e7fd SHA512 9b188308540dc189d5187adc79de5605e8eb2317fec25fe6923bdb1c49c5439649d1e586a19db9453dae88861cc723a2f95dc7c1d5bd57ad65486a1c15e6d84a
MISC metadata.xml 354 BLAKE2B 1856a8a97481585a4c2df78ed004e7f560a9ab5433ca73a55f7895078d166c4f94a21bdb099cecc79ef6fda4ac7a68f5a9a5c50f3a8ddac5f4b1e5e42e1d9470 SHA512 5a21ed62cd9553f55ffb9ca06e904a2ec4540a9656934e2e4c47b85f5a63667afbce639851cd9b6b2123a41611fa1dc71c71793163f44dddc12c7019c6dce871
diff --git a/app-misc/fdupes/fdupes-2.2.1.ebuild b/app-misc/fdupes/fdupes-2.2.1.ebuild
new file mode 100644
index 000000000000..3578fdc09788
--- /dev/null
+++ b/app-misc/fdupes/fdupes-2.2.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Identify/delete duplicate files residing within specified directories"
+HOMEPAGE="https://github.com/adrianlopezroche/fdupes"
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/adrianlopezroche/fdupes.git"
+ inherit autotools git-r3
+else
+ SRC_URI="https://github.com/adrianlopezroche/${PN}/releases/download/v${PV}/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="+ncurses"
+
+RDEPEND="
+ dev-libs/libpcre2[pcre32]
+ ncurses? ( sys-libs/ncurses:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( CHANGES CONTRIBUTORS README )
+
+src_prepare() {
+ default
+
+ [[ ${PV} == *9999 ]] && eautoreconf
+}
+
+src_configure() {
+ econf $(use_with ncurses)
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
diff --git a/app-misc/rbutil/Manifest b/app-misc/rbutil/Manifest
index a35a002e2f14..85714c5c5376 100644
--- a/app-misc/rbutil/Manifest
+++ b/app-misc/rbutil/Manifest
@@ -2,5 +2,5 @@ AUX rbutil-1.5.1-cmake.patch 1518 BLAKE2B 1755a6cf567775afc5eb1a9b9c12ac29a01ed2
AUX rbutil-1.5.1-headers.patch 475 BLAKE2B 3bb6bfdaaa16f8401b9efce799a2a726b8c903a20b97191e41ed01b7970f7629b997fa6e044ff9472e64947cad207dcdb0c71ca1489e391648a8f30c06eaea6f SHA512 ebf25d30cb067d831024973913f8aa48de6b282db667939a4bdada4a44f7d74ccf58f764a2aa079dc3f7875631638070b75d7fae65d670836460efc1f0dc64f8
AUX rbutil-1.5.1-system-quazip.patch 5656 BLAKE2B c36a76ebe073055ea4c7e840f532a3a356b824d1aba5f4082f88176a5ffa5a01c1a4b199346baa1a2ac910698fc0fb7cdb222fc7c6ee7f9f83f5e945301b64d9 SHA512 3ee97efa7453ad7fc77a39dcae9225f1a17b176b62cde1033a3426d5f8786447d260a284f43b6fcf8bd7c8a5049f845a4241daa057ee81ad342d1994c83529d7
DIST RockboxUtility-v1.5.1-src.tar.bz2 1495776 BLAKE2B 0a5009cfbe610a46a98d72d184cb49852ba6ffbee7a826bc4d69a7dd06f982695c6964586c48cf58b2f12ee5f650ec2ee0c650336ea987b2c8d62b459f2333cb SHA512 623cdc7bba3028264448f072be1e9a754afe544cda1193bec051dd390acadea213cda8f00e25bc3a0254a282f8f6b2ba34e67c2ac0d086c0a74d52df1fd733fb
-EBUILD rbutil-1.5.1.ebuild 1385 BLAKE2B 41b756370e93063d9951818aa248bfea68ca733d7af139d686da182ef86cbfa30f2ac5c60d3670f002fd79a87e1251c1287db014c1eb038784c731adebabfcf2 SHA512 87ccaad4a4461096a61f267e63156962d109f44585e6e83a38dfb44d4a5de5f6d5a669795424cddada50262014839a0d7ef84712b373e93909e13b2903cd1b90
+EBUILD rbutil-1.5.1-r1.ebuild 1385 BLAKE2B 41b756370e93063d9951818aa248bfea68ca733d7af139d686da182ef86cbfa30f2ac5c60d3670f002fd79a87e1251c1287db014c1eb038784c731adebabfcf2 SHA512 87ccaad4a4461096a61f267e63156962d109f44585e6e83a38dfb44d4a5de5f6d5a669795424cddada50262014839a0d7ef84712b373e93909e13b2903cd1b90
MISC metadata.xml 248 BLAKE2B 97ed0d2320e1aa2d1cca6b63b0cf9cb07669ea73ac0dad7a8f7db4f510d3b2dc28cbf5a7c019f15ac87c25c5e51e619386694b49d21fc19f4092047c8e382287 SHA512 23bb29604f7cc644073025158d751004189a85fe6be88a7817afebad685c3b73f21cdb3e5d05f16699baa5d6b52f1e3a1f365b1ad7ea09bfcd204182e646f203
diff --git a/app-misc/rbutil/rbutil-1.5.1.ebuild b/app-misc/rbutil/rbutil-1.5.1-r1.ebuild
index f40401e4f9e5..f40401e4f9e5 100644
--- a/app-misc/rbutil/rbutil-1.5.1.ebuild
+++ b/app-misc/rbutil/rbutil-1.5.1-r1.ebuild
diff --git a/app-misc/screen/Manifest b/app-misc/screen/Manifest
index 712ff8df2c77..177cbc670f16 100644
--- a/app-misc/screen/Manifest
+++ b/app-misc/screen/Manifest
@@ -1,11 +1,13 @@
AUX screen-4.3.0-no-utempter.patch 341 BLAKE2B 3339783b3574f82f093c82a613ad18c5c58c184c082c2c311281cdd57e7176abae0f5935466a4a8b4d931d1d1b93d8f0a4e6b558a268553af4a0170061e6ebfe SHA512 f4191ba1ecac3076f958f56309c0a1d523b455fa4e3388f1cfca59c8ccff0afdfb20ef18d54794ba539b2b6d1511ed599dc44787344dc5ccce2902c9b9848155
AUX screen-4.6.2-utmp-exit.patch 1558 BLAKE2B e08e83f8b9f0cd09cd9bad4486a75d71bd899a7917954702ece0837099639079a746138374cbeaf71072cca64ae36a3c2a32250123c6747089e724272227e0dd SHA512 0e7c6c224f6fb8e01650b778cb2b155942752504dc97112d9594b7fa0da1bb8bd828240a2519b1c21f1c162181da89a8daa51ef7f74c8ced0b85cdb3e911a67c
+AUX screen-4.9.0-configure-implicit-function-decls.patch 16578 BLAKE2B 633070a619a45d23f4b2ff4e58fc626e50eefddc11778a68a9bc0da67d60127bc2a0fe8fb6f398b7e9e81b0876733e52127f2ef746171d87122dee24d3a341ac SHA512 c08ae0f2f7015f627486a95fd30e9ce9bf7fd843d520a05213dbe22b97208d10b7212fba7ac9c9ef47b61d8fab96c555909f9a9257ba971f03ae4bd2739e4bf3
AUX screen-9999-no-utempter.patch 465 BLAKE2B be4d690d2f478a2660cb3c0b0f83d9a62328b82b06b85860a84e1b3a924c751080d7e9f35c4b48c3fe6a0152ae75df1dc665b97f8bc70e026bbadd19d4891df1 SHA512 c011936e35e04e7704b0d8d7892f2ebe22fb6993241e7c4b6733e48f6400ca8aeb20c638108018fab006e402332460e89d321e2118f564316e3f7e26a05212d2
AUX screen-CVE-2021-26937.patch 1864 BLAKE2B 7425a49e003601f21130cf9c42354aaeb5f3cd639dd274971393420ccf45e8273539ae020f8a1a6e4063e741e75dcbf8cecd4e35b26c6d04ffca108ddea7bd32 SHA512 419f4d10b23369fccdadfb024b6ce268794e7f76188b25dd9051ff8cd6080dc0c70f66b9c2480095d655bb63f20ba1fdfa1ce0c681c9b8aff4d4918764018516
AUX screenrc 10412 BLAKE2B f4866f4a83b22c37484b66e4c7d52ec479fe12ae3e72e5c9e769b1b543ecf04d14ef4339e1c72064741cbf39502ef82d3beb213326a30889f128e135f60bd528 SHA512 06fbec5e28480a2c369330fac0c94faa47e5d28e037d9fefd0cb3e813002c504866dc8ac86872b7ac6f16059a219e396a9c425b578b8afe882153ddb506158f7
DIST screen-4.8.0.tar.gz 854854 BLAKE2B 97ef6f18bf2c63c477260b742ac0b3501f112d380c41ccecc5cf2853db853cc62d4fd6d37edeca35fb41a43b76d98a5cfe160749c992d284f9764b0a0fdcc778 SHA512 770ebaf6ee9be711bcb8a6104b3294f2bf4523dae6683fdc5eac4b3aff7e511be2d922b6b2ad28ec241113c2e4fe0d80f9a482ae1658adc19c8c3a3680caa25c
DIST screen-4.9.0.tar.gz 798229 BLAKE2B 0f64a14ce9a719bd4a6d045c55069769045a09ee2086c44c2e3d9da6d1e5ada2f094e00e16029767e1155ce35d4f360d0e2879995eefa052f3214ced71b7617c SHA512 18bbb085d77ecd02cbc02fa88a945c39f06e0c6de4eeaa16b278440dac5c9896811abbe0838144e997cd344ae08b9530399fa8fcb31a65fc571ead90e8307f84
EBUILD screen-4.8.0-r3.ebuild 3848 BLAKE2B e861b10538b50fa4d53a9b42fc3e69409c2a9d6e24d4f757b9905fc2f48b2ebcc94066f7c7b25f5dfc0c6661b696ca878b9a4a8fce694ed847e6e0eab2095112 SHA512 5c51dde15eeab2e1f0dbf3120ee20cdc1ec22666ad62bf4b86a9db85793d1293673071d2a5cb620726abbba6b2318f172248d381383338b23ba89f1e03cbef3b
+EBUILD screen-4.9.0-r1.ebuild 3851 BLAKE2B 5a85d371d6fb07207d883fa1324094f605114af99c017fb95cd3ff1bfe5d37ba3f0a659e7b98129bf680546514fe6891362369a8ba8e93e1794e0524b2c6bbd0 SHA512 a258bc64578d2189003c1f6d9cd24e5025983cb70c6da9332c654d0a7a5331a434f56c14e336480d9f5f03d040094d7e0f01a4c00498403718ea8a45c3e71111
EBUILD screen-4.9.0.ebuild 3776 BLAKE2B 3a633a10f4ce16e6a98ce539679e6466f41e2edab285caea9bb8d51706d657df7e31d03639bdd9d87a77af7cfc2d308a64a72800371076ba66b981bf942547b6 SHA512 9b8d81c3652eac5342823c27e3199a873031bb8c54182ff3432d631e6f363322a71973b9d58610e93aeca9f040f30f06a3e4592d573146ea826c3f05d13db9e2
EBUILD screen-9999.ebuild 3781 BLAKE2B c70c76d9f0d0f1ea8f7af9d182e22dcb381d9e0ef0f134b27e72e07a3be90e387efe0856dff3459ce04e125dd0e555e83df1e5e32c93bce84ccb7a6b1ee7f6cd SHA512 b503a8ebfdef364fed0acbac79f0960969c668b68243c337ed12a814e7b796cec4235a4faa2c6bae84cb20d6d866547aa3e2b1d4dd242be328cbda43a9c7f188
MISC metadata.xml 1783 BLAKE2B 6b1b392339f6786f95c151a7f311c24adf76c32d23e0f5bf50ff97571ab7e0a7b878d1ccac6938a01c2783c4f54eb0644dfd1f35b9bc602590fce96eed4a4e99 SHA512 fc4a716f118ab74b7757035ffadaaeebd47ba512a8ff123a7f5df4fa8fd2b384a66d4da88f8b78e7c16314b710e2346cfa6fc644c22f059d065cc1778565d060
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..e9db7ba786aa
--- /dev/null
+++ b/app-misc/screen/files/screen-4.9.0-configure-implicit-function-decls.patch
@@ -0,0 +1,745 @@
+https://bugs.gentoo.org/869371
+--- 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/screen-4.9.0-r1.ebuild b/app-misc/screen/screen-4.9.0-r1.ebuild
new file mode 100644
index 000000000000..44eb81d05d0d
--- /dev/null
+++ b/app-misc/screen/screen-4.9.0-r1.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+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
+ SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+else
+ 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"
+SLOT="0"
+IUSE="debug nethack pam selinux multiuser"
+
+DEPEND=">=sys-libs/ncurses-5.2:=
+ virtual/libcrypt:=
+ pam? ( sys-libs/pam )"
+RDEPEND="${DEPEND}
+ acct-group/utmp
+ selinux? ( sec-policy/selinux-screen )"
+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
+)
+
+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"
+
+ 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() {
+ 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}
+ )
+
+ emake DESTDIR="${D}" SCREEN="${P}" install
+
+ local tmpfiles_perms tmpfiles_group
+
+ if use multiuser || use prefix ; then
+ fperms 4755 /usr/bin/${P}
+ tmpfiles_perms="0755"
+ tmpfiles_group="root"
+ else
+ 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/${PN}
+ doins terminfo/{screencap,screeninfo.src}
+
+ insinto /etc
+ doins "${FILESDIR}"/screenrc
+
+ if use pam; then
+ pamd_mimic_system screen auth
+ fi
+
+ dodoc "${DOCS[@]}"
+}
+
+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
+
+ tmpfiles_process screen.conf
+
+ ewarn "This revision changes the screen socket location to ${EROOT}/tmp/${PN}"
+}