Hanno Böck commited on 2021-03-06 11:09:04
Zeige 3 geänderte Dateien mit 221 Einfügungen und 0 Löschungen.
... | ... |
@@ -1,6 +1,8 @@ |
1 | 1 |
AUX screen-4.3.0-no-utempter.patch 341 BLAKE2B 3339783b3574f82f093c82a613ad18c5c58c184c082c2c311281cdd57e7176abae0f5935466a4a8b4d931d1d1b93d8f0a4e6b558a268553af4a0170061e6ebfe SHA512 f4191ba1ecac3076f958f56309c0a1d523b455fa4e3388f1cfca59c8ccff0afdfb20ef18d54794ba539b2b6d1511ed599dc44787344dc5ccce2902c9b9848155 |
2 | 2 |
AUX screen-4.6.2-utmp-exit.patch 1558 BLAKE2B e08e83f8b9f0cd09cd9bad4486a75d71bd899a7917954702ece0837099639079a746138374cbeaf71072cca64ae36a3c2a32250123c6747089e724272227e0dd SHA512 0e7c6c224f6fb8e01650b778cb2b155942752504dc97112d9594b7fa0da1bb8bd828240a2519b1c21f1c162181da89a8daa51ef7f74c8ced0b85cdb3e911a67c |
3 |
+AUX screen-CVE-2021-26937.patch 1864 BLAKE2B 7425a49e003601f21130cf9c42354aaeb5f3cd639dd274971393420ccf45e8273539ae020f8a1a6e4063e741e75dcbf8cecd4e35b26c6d04ffca108ddea7bd32 SHA512 419f4d10b23369fccdadfb024b6ce268794e7f76188b25dd9051ff8cd6080dc0c70f66b9c2480095d655bb63f20ba1fdfa1ce0c681c9b8aff4d4918764018516 |
|
3 | 4 |
AUX screenrc 10412 BLAKE2B f4866f4a83b22c37484b66e4c7d52ec479fe12ae3e72e5c9e769b1b543ecf04d14ef4339e1c72064741cbf39502ef82d3beb213326a30889f128e135f60bd528 SHA512 06fbec5e28480a2c369330fac0c94faa47e5d28e037d9fefd0cb3e813002c504866dc8ac86872b7ac6f16059a219e396a9c425b578b8afe882153ddb506158f7 |
4 | 5 |
DIST screen-4.8.0.tar.gz 854854 BLAKE2B 97ef6f18bf2c63c477260b742ac0b3501f112d380c41ccecc5cf2853db853cc62d4fd6d37edeca35fb41a43b76d98a5cfe160749c992d284f9764b0a0fdcc778 SHA512 770ebaf6ee9be711bcb8a6104b3294f2bf4523dae6683fdc5eac4b3aff7e511be2d922b6b2ad28ec241113c2e4fe0d80f9a482ae1658adc19c8c3a3680caa25c |
5 | 6 |
EBUILD screen-4.8.0-r1.ebuild 4072 BLAKE2B 4c1ac6d6807b377d5b648f453ab618195fd20871a4d1fe9bc77c5c64efea0b2548022c78ed079aa2582f1677f96dee7b502d3a6b7e406b0e1b0e1cb458db8b38 SHA512 5f2e18376474a2ab897958da5d7f9ebd09076889cfbf82f9e372c082c73790cc12eb9530d80a8f016861d431b8ce5cc4abe89544ef75cc8047338da6d25010d7 |
7 |
+EBUILD screen-4.8.0-r2.ebuild 4115 BLAKE2B e948a011d1ff91a9643efc2df77d1cfee102505bbc47084f30c4eea52d7517bdf8c873ab9a5b5d658ca5a6bdeb18707f3c249e6c6a93503252c741b9cd292ba5 SHA512 ddd2fee4195b06a080d9db19ec471391a013e2febc8d33b626eb5f9afa4fd391090755333b5a415517f09752b54a9053930842acdf64b752ed307361e675108a |
|
6 | 8 |
MISC metadata.xml 1836 BLAKE2B 4625e11b8c3120b23e613e14d03ac88b505b412be97270159c881f56ebf674c78274a8dcf199d69ea91f6438d2661635ebbbf38fdc7ebebe8dd6e2ff88f4c6d7 SHA512 e327b61501e6b496045d552851db574b519a99f56c9203c3376b886808a422f8e4aab23b667bcab0d1388ba7ea781c9c9e9f1d07b1426f113119c60cd70d0bcf |
... | ... |
@@ -0,0 +1,61 @@ |
1 |
+ encoding.c | 15 +++++++++------ |
|
2 |
+ 1 file changed, 9 insertions(+), 6 deletions(-) |
|
3 |
+ |
|
4 |
+diff --git i/encoding.c w/encoding.c |
|
5 |
+index e5db3e7..79f5d14 100644 |
|
6 |
+--- i/encoding.c |
|
7 |
++++ w/encoding.c |
|
8 |
+@@ -43,7 +43,7 @@ static int encmatch __P((char *, char *)); |
|
9 |
+ # ifdef UTF8 |
|
10 |
+ static int recode_char __P((int, int, int)); |
|
11 |
+ static int recode_char_to_encoding __P((int, int)); |
|
12 |
+-static void comb_tofront __P((int, int)); |
|
13 |
++static void comb_tofront __P((int)); |
|
14 |
+ # ifdef DW_CHARS |
|
15 |
+ static int recode_char_dw __P((int, int *, int, int)); |
|
16 |
+ static int recode_char_dw_to_encoding __P((int, int *, int)); |
|
17 |
+@@ -1263,6 +1263,8 @@ int c; |
|
18 |
+ {0x30000, 0x3FFFD}, |
|
19 |
+ }; |
|
20 |
+ |
|
21 |
++ if (c >= 0xdf00 && c <= 0xdfff) |
|
22 |
++ return 1; /* dw combining sequence */ |
|
23 |
+ return ((bisearch(c, wide, sizeof(wide) / sizeof(struct interval) - 1)) || |
|
24 |
+ (cjkwidth && |
|
25 |
+ bisearch(c, ambiguous, |
|
26 |
+@@ -1330,11 +1332,12 @@ int c; |
|
27 |
+ } |
|
28 |
+ |
|
29 |
+ static void |
|
30 |
+-comb_tofront(root, i) |
|
31 |
+-int root, i; |
|
32 |
++comb_tofront(i) |
|
33 |
++int i; |
|
34 |
+ { |
|
35 |
+ for (;;) |
|
36 |
+ { |
|
37 |
++ int root = i >= 0x700 ? 0x801 : 0x800; |
|
38 |
+ debug1("bring to front: %x\n", i); |
|
39 |
+ combchars[combchars[i]->prev]->next = combchars[i]->next; |
|
40 |
+ combchars[combchars[i]->next]->prev = combchars[i]->prev; |
|
41 |
+@@ -1396,9 +1399,9 @@ struct mchar *mc; |
|
42 |
+ { |
|
43 |
+ /* full, recycle old entry */ |
|
44 |
+ if (c1 >= 0xd800 && c1 < 0xe000) |
|
45 |
+- comb_tofront(root, c1 - 0xd800); |
|
46 |
++ comb_tofront(c1 - 0xd800); |
|
47 |
+ i = combchars[root]->prev; |
|
48 |
+- if (c1 == i + 0xd800) |
|
49 |
++ if (i == 0x800 || i == 0x801 || c1 == i + 0xd800) |
|
50 |
+ { |
|
51 |
+ /* completely full, can't recycle */ |
|
52 |
+ debug("utf8_handle_comp: completely full!\n"); |
|
53 |
+@@ -1422,7 +1425,7 @@ struct mchar *mc; |
|
54 |
+ mc->font = (i >> 8) + 0xd8; |
|
55 |
+ mc->fontx = 0; |
|
56 |
+ debug3("combinig char %x %x -> %x\n", c1, c, i + 0xd800); |
|
57 |
+- comb_tofront(root, i); |
|
58 |
++ comb_tofront(i); |
|
59 |
+ } |
|
60 |
+ |
|
61 |
+ #else /* !UTF8 */ |
... | ... |
@@ -0,0 +1,158 @@ |
1 |
+# Copyright 1999-2021 Gentoo Authors |
|
2 |
+# Distributed under the terms of the GNU General Public License v2 |
|
3 |
+ |
|
4 |
+EAPI=7 |
|
5 |
+ |
|
6 |
+inherit autotools flag-o-matic pam tmpfiles toolchain-funcs |
|
7 |
+ |
|
8 |
+DESCRIPTION="screen manager with VT100/ANSI terminal emulation" |
|
9 |
+HOMEPAGE="https://www.gnu.org/software/screen/" |
|
10 |
+ |
|
11 |
+if [[ "${PV}" != 9999 ]] ; then |
|
12 |
+ SRC_URI="mirror://gnu/${PN}/${P}.tar.gz" |
|
13 |
+ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" |
|
14 |
+else |
|
15 |
+ inherit git-r3 |
|
16 |
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/screen.git" |
|
17 |
+ EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on |
|
18 |
+ S="${WORKDIR}"/${P}/src |
|
19 |
+fi |
|
20 |
+ |
|
21 |
+LICENSE="GPL-2" |
|
22 |
+SLOT="0" |
|
23 |
+IUSE="debug nethack pam selinux multiuser" |
|
24 |
+ |
|
25 |
+CDEPEND=" |
|
26 |
+ >=sys-libs/ncurses-5.2:0= |
|
27 |
+ pam? ( sys-libs/pam )" |
|
28 |
+RDEPEND="${CDEPEND} |
|
29 |
+ acct-group/utmp |
|
30 |
+ selinux? ( sec-policy/selinux-screen )" |
|
31 |
+DEPEND="${CDEPEND} |
|
32 |
+ sys-apps/texinfo" |
|
33 |
+ |
|
34 |
+PATCHES=( |
|
35 |
+ # Don't use utempter even if it is found on the system. |
|
36 |
+ "${FILESDIR}"/${PN}-4.3.0-no-utempter.patch |
|
37 |
+ "${FILESDIR}"/${PN}-4.6.2-utmp-exit.patch |
|
38 |
+ "${FILESDIR}"/${PN}-CVE-2021-26937.patch |
|
39 |
+) |
|
40 |
+ |
|
41 |
+src_prepare() { |
|
42 |
+ default |
|
43 |
+ |
|
44 |
+ # sched.h is a system header and causes problems with some C libraries |
|
45 |
+ mv sched.h _sched.h || die |
|
46 |
+ sed -i '/include/ s:sched.h:_sched.h:' screen.h || die |
|
47 |
+ |
|
48 |
+ # Fix manpage. |
|
49 |
+ sed -i \ |
|
50 |
+ -e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \ |
|
51 |
+ -e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \ |
|
52 |
+ -e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \ |
|
53 |
+ -e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \ |
|
54 |
+ -e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \ |
|
55 |
+ doc/screen.1 || die |
|
56 |
+ |
|
57 |
+ if [[ ${CHOST} == *-darwin* ]] || use elibc_musl ; then |
|
58 |
+ sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die |
|
59 |
+ fi |
|
60 |
+ |
|
61 |
+ # disable musl dummy headers for utmp[x] |
|
62 |
+ use elibc_musl && append-cppflags "-D_UTMP_H -D_UTMPX_H" |
|
63 |
+ |
|
64 |
+ # reconfigure |
|
65 |
+ eautoreconf |
|
66 |
+} |
|
67 |
+ |
|
68 |
+src_configure() { |
|
69 |
+ append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}" |
|
70 |
+ |
|
71 |
+ if [[ ${CHOST} == *-solaris* ]] ; then |
|
72 |
+ # enable msg_header by upping the feature standard compatible |
|
73 |
+ # with c99 mode |
|
74 |
+ append-cppflags -D_XOPEN_SOURCE=600 |
|
75 |
+ fi |
|
76 |
+ |
|
77 |
+ use nethack || append-cppflags "-DNONETHACK" |
|
78 |
+ use debug && append-cppflags "-DDEBUG" |
|
79 |
+ |
|
80 |
+ local myeconfargs=( |
|
81 |
+ --with-sys-screenrc="${EPREFIX}/etc/screenrc" |
|
82 |
+ --with-pty-mode=0620 |
|
83 |
+ --with-pty-group=5 |
|
84 |
+ --enable-rxvt_osc |
|
85 |
+ --enable-telnet |
|
86 |
+ --enable-colors256 |
|
87 |
+ $(use_enable pam) |
|
88 |
+ ) |
|
89 |
+ econf "${myeconfargs[@]}" |
|
90 |
+} |
|
91 |
+ |
|
92 |
+src_compile() { |
|
93 |
+ LC_ALL=POSIX emake comm.h term.h |
|
94 |
+ emake osdef.h |
|
95 |
+ |
|
96 |
+ emake -C doc screen.info |
|
97 |
+ default |
|
98 |
+} |
|
99 |
+ |
|
100 |
+src_install() { |
|
101 |
+ local DOCS=( |
|
102 |
+ README ChangeLog INSTALL TODO NEWS* patchlevel.h |
|
103 |
+ doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps} |
|
104 |
+ ) |
|
105 |
+ |
|
106 |
+ emake DESTDIR="${D}" SCREEN="${P}" install |
|
107 |
+ |
|
108 |
+ local tmpfiles_perms tmpfiles_group |
|
109 |
+ |
|
110 |
+ if use multiuser || use prefix ; then |
|
111 |
+ fperms 4755 /usr/bin/${P} |
|
112 |
+ tmpfiles_perms="0755" |
|
113 |
+ tmpfiles_group="root" |
|
114 |
+ else |
|
115 |
+ fowners root:utmp /usr/bin/${P} |
|
116 |
+ fperms 2755 /usr/bin/${P} |
|
117 |
+ tmpfiles_perms="0775" |
|
118 |
+ tmpfiles_group="utmp" |
|
119 |
+ fi |
|
120 |
+ |
|
121 |
+ newtmpfiles - screen.conf <<<"d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}" |
|
122 |
+ |
|
123 |
+ insinto /usr/share/${PN} |
|
124 |
+ doins terminfo/{screencap,screeninfo.src} |
|
125 |
+ |
|
126 |
+ insinto /etc |
|
127 |
+ doins "${FILESDIR}"/screenrc |
|
128 |
+ |
|
129 |
+ if use pam; then |
|
130 |
+ pamd_mimic_system screen auth |
|
131 |
+ fi |
|
132 |
+ |
|
133 |
+ dodoc "${DOCS[@]}" |
|
134 |
+} |
|
135 |
+ |
|
136 |
+pkg_postinst() { |
|
137 |
+ if [[ -z ${REPLACING_VERSIONS} ]] |
|
138 |
+ then |
|
139 |
+ elog "Some dangerous key bindings have been removed or changed to more safe values." |
|
140 |
+ elog "We enable some xterm hacks in our default screenrc, which might break some" |
|
141 |
+ elog "applications. Please check /etc/screenrc for information on these changes." |
|
142 |
+ fi |
|
143 |
+ |
|
144 |
+ # Add /tmp/screen in case it doesn't exist yet. This should solve |
|
145 |
+ # problems like bug #508634 where tmpfiles.d isn't in effect. |
|
146 |
+ local rundir="${EROOT}/tmp/${PN}" |
|
147 |
+ if [[ ! -d ${rundir} ]] ; then |
|
148 |
+ if use multiuser || use prefix ; then |
|
149 |
+ tmpfiles_group="root" |
|
150 |
+ else |
|
151 |
+ tmpfiles_group="utmp" |
|
152 |
+ fi |
|
153 |
+ mkdir -m 0775 "${rundir}" |
|
154 |
+ chgrp ${tmpfiles_group} "${rundir}" |
|
155 |
+ fi |
|
156 |
+ |
|
157 |
+ ewarn "This revision changes the screen socket location to ${rundir}" |
|
158 |
+} |
|
0 | 159 |