1 |
commit: 98f0fc212d58518dbe50e962b56a32cf809b0999 |
2 |
Author: Michał Górny <mgorny <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Sep 22 19:59:34 2019 +0000 |
4 |
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Oct 1 19:13:44 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=98f0fc21 |
7 |
|
8 |
sys-libs/ncurses-compat: Split ABI compat version out of ncurses |
9 |
|
10 |
Split the :5 SONAME compatibility slot of sys-libs/ncurses into its own |
11 |
package. This is mostly meant to resolve outstanding problem with |
12 |
missing slot on dependencies, ncurses being the most common offender. |
13 |
By moving the compatibility into separate package, we no longer have |
14 |
to worry about people mistakenly not specifying the correct slot. |
15 |
|
16 |
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> |
17 |
|
18 |
profiles/base/package.use.force | 1 + |
19 |
profiles/prefix/windows/package.use.mask | 3 +- |
20 |
sys-libs/ncurses-compat/Manifest | 1 + |
21 |
.../ncurses-compat/files/ncurses-5.7-nongnu.patch | 11 ++ |
22 |
.../ncurses-compat/files/ncurses-5.8-gfbsd.patch | 24 +++ |
23 |
.../files/ncurses-5.9-fix-clang-build.patch | 44 +++++ |
24 |
.../ncurses-compat/files/ncurses-5.9-gcc-5.patch | 46 +++++ |
25 |
.../files/ncurses-5.9-no-I-usr-include.patch | 45 +++++ |
26 |
.../files/ncurses-5.9-pkg-config.patch | 26 +++ |
27 |
.../files/ncurses-5.9-rxvt-unicode-9.15.patch | 191 ++++++++++++++++++++ |
28 |
sys-libs/ncurses-compat/metadata.xml | 18 ++ |
29 |
sys-libs/ncurses-compat/ncurses-compat-5.9.ebuild | 199 +++++++++++++++++++++ |
30 |
12 files changed, 608 insertions(+), 1 deletion(-) |
31 |
|
32 |
diff --git a/profiles/base/package.use.force b/profiles/base/package.use.force |
33 |
index 732de2ed84d..e64b86353b9 100644 |
34 |
--- a/profiles/base/package.use.force |
35 |
+++ b/profiles/base/package.use.force |
36 |
@@ -23,6 +23,7 @@ sys-libs/glibc static-libs |
37 |
# affected. On the other hand, disabling USE=tinfo is capable of |
38 |
# breaking installed packages. |
39 |
sys-libs/ncurses tinfo |
40 |
+sys-libs/ncurses-compat tinfo |
41 |
|
42 |
# Mart Raudsepp <leio@g.o> (2018-12-14) |
43 |
# Security is not optional if available for the architecture/kernel. |
44 |
|
45 |
diff --git a/profiles/prefix/windows/package.use.mask b/profiles/prefix/windows/package.use.mask |
46 |
index 8aa55bffc31..a7308f8b5f2 100644 |
47 |
--- a/profiles/prefix/windows/package.use.mask |
48 |
+++ b/profiles/prefix/windows/package.use.mask |
49 |
@@ -1,6 +1,7 @@ |
50 |
-# Copyright 1999-2019 Gentoo Foundation |
51 |
+# Copyright 1999-2019 Gentoo Authors |
52 |
# Distributed under the terms of the GNU General Public License v2 |
53 |
|
54 |
# Michael Haubenwallner <haubi@g.o> (2019-07-31) |
55 |
# KERNEL=Winnt needs term-driver, which conflicts with termlib |
56 |
sys-libs/ncurses tinfo |
57 |
+sys-libs/ncurses-compat tinfo |
58 |
|
59 |
diff --git a/sys-libs/ncurses-compat/Manifest b/sys-libs/ncurses-compat/Manifest |
60 |
new file mode 100644 |
61 |
index 00000000000..db2086cf89e |
62 |
--- /dev/null |
63 |
+++ b/sys-libs/ncurses-compat/Manifest |
64 |
@@ -0,0 +1 @@ |
65 |
+DIST ncurses-5.9.tar.gz 2826473 BLAKE2B 91101b049a5eb6a2674fb86b5eba56515207f490dc7a6348f3194bbc50649717a26aff7a0df64f67ca318b5f244455cd57e760c65b9e551f6ec65b8c035a6ae1 SHA512 d7c5e54b6d4d8b9211f0006ca8786f7609d180cc1aaebf4f25e7e35e12959779cf66447359a602daed625621ca32b0d910d67aef3eb8b6fdc3c373819a88faa1 |
66 |
|
67 |
diff --git a/sys-libs/ncurses-compat/files/ncurses-5.7-nongnu.patch b/sys-libs/ncurses-compat/files/ncurses-5.7-nongnu.patch |
68 |
new file mode 100644 |
69 |
index 00000000000..3f4a4052000 |
70 |
--- /dev/null |
71 |
+++ b/sys-libs/ncurses-compat/files/ncurses-5.7-nongnu.patch |
72 |
@@ -0,0 +1,11 @@ |
73 |
+--- ncurses-5.7/ncurses/curses.priv.h |
74 |
++++ ncurses-5.7/ncurses/curses.priv.h |
75 |
+@@ -1452,6 +1452,8 @@ extern NCURSES_EXPORT(void) _nc_expanded |
76 |
+ |
77 |
+ /* charable.c */ |
78 |
+ #if USE_WIDEC_SUPPORT |
79 |
++#include <wchar.h> |
80 |
++ |
81 |
+ extern NCURSES_EXPORT(bool) _nc_is_charable(wchar_t); |
82 |
+ extern NCURSES_EXPORT(int) _nc_to_char(wint_t); |
83 |
+ extern NCURSES_EXPORT(wint_t) _nc_to_widechar(int); |
84 |
|
85 |
diff --git a/sys-libs/ncurses-compat/files/ncurses-5.8-gfbsd.patch b/sys-libs/ncurses-compat/files/ncurses-5.8-gfbsd.patch |
86 |
new file mode 100644 |
87 |
index 00000000000..0200a14462a |
88 |
--- /dev/null |
89 |
+++ b/sys-libs/ncurses-compat/files/ncurses-5.8-gfbsd.patch |
90 |
@@ -0,0 +1,24 @@ |
91 |
+we'll hijack the freebsd* case that comes later |
92 |
+ |
93 |
+--- ncurses-5.6/aclocal.m4 |
94 |
++++ ncurses-5.6/aclocal.m4 |
95 |
+@@ -3806,7 +3806,7 @@ |
96 |
+ fi |
97 |
+ cf_cv_rm_so_locs=yes |
98 |
+ ;; |
99 |
+- linux*|gnu*|k*bsd*-gnu) #(vi |
100 |
++ linux*|gnu*|k*bsd*-gnu|freebsd*|dragonfly*) #(vi |
101 |
+ if test "$DFT_LWR_MODEL" = "shared" ; then |
102 |
+ LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)" |
103 |
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" |
104 |
+--- ncurses-5.6/configure |
105 |
++++ ncurses-5.6/configure |
106 |
+@@ -3806,7 +3806,7 @@ |
107 |
+ fi |
108 |
+ cf_cv_rm_so_locs=yes |
109 |
+ ;; |
110 |
+- linux*|gnu*|k*bsd*-gnu) #(vi |
111 |
++ linux*|gnu*|k*bsd*-gnu|freebsd*|dragonfly*) #(vi |
112 |
+ if test "$DFT_LWR_MODEL" = "shared" ; then |
113 |
+ LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)" |
114 |
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" |
115 |
|
116 |
diff --git a/sys-libs/ncurses-compat/files/ncurses-5.9-fix-clang-build.patch b/sys-libs/ncurses-compat/files/ncurses-5.9-fix-clang-build.patch |
117 |
new file mode 100644 |
118 |
index 00000000000..0c6ca7acc4f |
119 |
--- /dev/null |
120 |
+++ b/sys-libs/ncurses-compat/files/ncurses-5.9-fix-clang-build.patch |
121 |
@@ -0,0 +1,44 @@ |
122 |
+diff --git a/ncurses-5.9/c++/cursesf.h b/ncurses-5.9/c++/cursesf.h |
123 |
+index 70a30c3..db38063 100644 |
124 |
+--- a/ncurses-5.9/c++/cursesf.h |
125 |
++++ b/ncurses-5.9/c++/cursesf.h |
126 |
+@@ -677,7 +677,7 @@ protected: |
127 |
+ } |
128 |
+ |
129 |
+ public: |
130 |
+- NCursesUserForm (NCursesFormField Fields[], |
131 |
++ NCursesUserForm (NCursesFormField* Fields[], |
132 |
+ const T* p_UserData = STATIC_CAST(T*)(0), |
133 |
+ bool with_frame=FALSE, |
134 |
+ bool autoDelete_Fields=FALSE) |
135 |
+@@ -686,7 +686,7 @@ public: |
136 |
+ set_user (const_cast<void *>(p_UserData)); |
137 |
+ }; |
138 |
+ |
139 |
+- NCursesUserForm (NCursesFormField Fields[], |
140 |
++ NCursesUserForm (NCursesFormField* Fields[], |
141 |
+ int nlines, |
142 |
+ int ncols, |
143 |
+ int begin_y = 0, |
144 |
+diff --git a/ncurses-5.9/c++/cursesm.h b/ncurses-5.9/c++/cursesm.h |
145 |
+index d9c2273..2d5b79a 100644 |
146 |
+--- a/ncurses-5.9/c++/cursesm.h |
147 |
++++ b/ncurses-5.9/c++/cursesm.h |
148 |
+@@ -635,7 +635,7 @@ protected: |
149 |
+ } |
150 |
+ |
151 |
+ public: |
152 |
+- NCursesUserMenu (NCursesMenuItem Items[], |
153 |
++ NCursesUserMenu (NCursesMenuItem* Items[], |
154 |
+ const T* p_UserData = STATIC_CAST(T*)(0), |
155 |
+ bool with_frame=FALSE, |
156 |
+ bool autoDelete_Items=FALSE) |
157 |
+@@ -644,7 +644,7 @@ public: |
158 |
+ set_user (const_cast<void *>(p_UserData)); |
159 |
+ }; |
160 |
+ |
161 |
+- NCursesUserMenu (NCursesMenuItem Items[], |
162 |
++ NCursesUserMenu (NCursesMenuItem* Items[], |
163 |
+ int nlines, |
164 |
+ int ncols, |
165 |
+ int begin_y = 0, |
166 |
|
167 |
diff --git a/sys-libs/ncurses-compat/files/ncurses-5.9-gcc-5.patch b/sys-libs/ncurses-compat/files/ncurses-5.9-gcc-5.patch |
168 |
new file mode 100644 |
169 |
index 00000000000..2448229b88e |
170 |
--- /dev/null |
171 |
+++ b/sys-libs/ncurses-compat/files/ncurses-5.9-gcc-5.patch |
172 |
@@ -0,0 +1,46 @@ |
173 |
+https://bugs.gentoo.org/545114 |
174 |
+ |
175 |
+extracted from the upstream change (which had many unrelated commits in one) |
176 |
+ |
177 |
+From 97bb4678dc03e753290b39bbff30ba2825df9517 Mon Sep 17 00:00:00 2001 |
178 |
+From: "Thomas E. Dickey" <dickey@××××××××××××××××.net> |
179 |
+Date: Sun, 7 Dec 2014 03:10:09 +0000 |
180 |
+Subject: [PATCH] ncurses 5.9 - patch 20141206 |
181 |
+ |
182 |
++ modify MKlib_gen.sh to work around change in development version of |
183 |
+ gcc introduced here: |
184 |
+ https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html |
185 |
+ https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00236.html |
186 |
+ (reports by Marcus Shawcroft, Maohui Lei). |
187 |
+ |
188 |
+diff --git a/ncurses/base/MKlib_gen.sh b/ncurses/base/MKlib_gen.sh |
189 |
+index d8cc3c9..b91398c 100755 |
190 |
+--- a/ncurses/base/MKlib_gen.sh |
191 |
++++ b/ncurses/base/MKlib_gen.sh |
192 |
+@@ -474,11 +474,22 @@ sed -n -f $ED1 \ |
193 |
+ -e 's/gen_$//' \ |
194 |
+ -e 's/ / /g' >>$TMP |
195 |
+ |
196 |
++cat >$ED1 <<EOF |
197 |
++s/ / /g |
198 |
++s/^ // |
199 |
++s/ $// |
200 |
++s/P_NCURSES_BOOL/NCURSES_BOOL/g |
201 |
++EOF |
202 |
++ |
203 |
++# A patch discussed here: |
204 |
++# https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html |
205 |
++# introduces spurious #line markers. Work around that by ignoring the system's |
206 |
++# attempt to define "bool" and using our own symbol here. |
207 |
++sed -e 's/bool/P_NCURSES_BOOL/g' $TMP > $ED2 |
208 |
++cat $ED2 >$TMP |
209 |
++ |
210 |
+ $preprocessor $TMP 2>/dev/null \ |
211 |
+-| sed \ |
212 |
+- -e 's/ / /g' \ |
213 |
+- -e 's/^ //' \ |
214 |
+- -e 's/_Bool/NCURSES_BOOL/g' \ |
215 |
++| sed -f $ED1 \ |
216 |
+ | $AWK -f $AW2 \ |
217 |
+ | sed -f $ED3 \ |
218 |
+ | sed \ |
219 |
|
220 |
diff --git a/sys-libs/ncurses-compat/files/ncurses-5.9-no-I-usr-include.patch b/sys-libs/ncurses-compat/files/ncurses-5.9-no-I-usr-include.patch |
221 |
new file mode 100644 |
222 |
index 00000000000..5c968e76c37 |
223 |
--- /dev/null |
224 |
+++ b/sys-libs/ncurses-compat/files/ncurses-5.9-no-I-usr-include.patch |
225 |
@@ -0,0 +1,45 @@ |
226 |
+https://bugs.gentoo.org/522586 |
227 |
+ |
228 |
+delete the -I$includedir paths that get added to CPPFLAGS. these are never |
229 |
+needed when building natively or cross-compiling and really get in the way |
230 |
+in both cases (upgrades/cross-compiling/etc...). |
231 |
+ |
232 |
+extracted from the upstream change: |
233 |
+http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff;h=9ee3995474454b7d956885e0fe5c8cac2ae25d42#patch5 |
234 |
+ |
235 |
+--- a/configure |
236 |
++++ b/configure |
237 |
+@@ -18596,33 +18596,11 @@ CPPFLAGS="$CPPFLAGS -I. -I../include" |
238 |
+ if test "$srcdir" != "."; then |
239 |
+ CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include" |
240 |
+ fi |
241 |
+-if test "$GCC" != yes; then |
242 |
+- CPPFLAGS="$CPPFLAGS -I\${includedir}" |
243 |
+-elif test "$includedir" != "/usr/include"; then |
244 |
+- if test "$includedir" = '${prefix}/include' ; then |
245 |
+- if test $prefix != /usr ; then |
246 |
+- CPPFLAGS="$CPPFLAGS -I\${includedir}" |
247 |
+- fi |
248 |
+- else |
249 |
+- CPPFLAGS="$CPPFLAGS -I\${includedir}" |
250 |
+- fi |
251 |
+-fi |
252 |
+ |
253 |
+ ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS" |
254 |
+ if test "$srcdir" != "."; then |
255 |
+ ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS" |
256 |
+ fi |
257 |
+-if test "$GCC" != yes; then |
258 |
+- ACPPFLAGS="$ACPPFLAGS -I\${includedir}" |
259 |
+-elif test "$includedir" != "/usr/include"; then |
260 |
+- if test "$includedir" = '${prefix}/include' ; then |
261 |
+- if test $prefix != /usr ; then |
262 |
+- ACPPFLAGS="$ACPPFLAGS -I\${includedir}" |
263 |
+- fi |
264 |
+- else |
265 |
+- ACPPFLAGS="$ACPPFLAGS -I\${includedir}" |
266 |
+- fi |
267 |
+-fi |
268 |
+ |
269 |
+ ### Build up pieces for makefile rules |
270 |
+ echo "$as_me:18628: checking default library suffix" >&5 |
271 |
|
272 |
diff --git a/sys-libs/ncurses-compat/files/ncurses-5.9-pkg-config.patch b/sys-libs/ncurses-compat/files/ncurses-5.9-pkg-config.patch |
273 |
new file mode 100644 |
274 |
index 00000000000..7c3c04a449f |
275 |
--- /dev/null |
276 |
+++ b/sys-libs/ncurses-compat/files/ncurses-5.9-pkg-config.patch |
277 |
@@ -0,0 +1,26 @@ |
278 |
+disable the $PATH search for the PKG_CONFIG tool. it isn't needed and just |
279 |
+gets in the way when setting to a value that might not yet exist. |
280 |
+ |
281 |
+disable the existence test for the PKG_CONFIG_LIBDIR dir. it breaks when you |
282 |
+cross-compile for an ABI that doesn't exist in the root dir (--build). |
283 |
+ |
284 |
+--- a/configure |
285 |
++++ b/configure |
286 |
+@@ -3582,7 +3582,7 @@ fi |
287 |
+ esac |
288 |
+ |
289 |
+ test -z "$PKG_CONFIG" && PKG_CONFIG=none |
290 |
+-if test "$PKG_CONFIG" != none ; then |
291 |
++if false ; then |
292 |
+ |
293 |
+ if test "x$prefix" != xNONE; then |
294 |
+ cf_path_syntax="$prefix" |
295 |
+@@ -3626,7 +3626,7 @@ echo $ECHO_N "checking if we should install .pc files for $PKG_CONFIG... $ECHO_C |
296 |
+ PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`/lib/pkgconfig |
297 |
+ fi |
298 |
+ PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'` |
299 |
+- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then |
300 |
++ if test -n "$PKG_CONFIG_LIBDIR" ; then |
301 |
+ |
302 |
+ # Check whether --enable-pc-files or --disable-pc-files was given. |
303 |
+ if test "${enable_pc_files+set}" = set; then |
304 |
|
305 |
diff --git a/sys-libs/ncurses-compat/files/ncurses-5.9-rxvt-unicode-9.15.patch b/sys-libs/ncurses-compat/files/ncurses-5.9-rxvt-unicode-9.15.patch |
306 |
new file mode 100644 |
307 |
index 00000000000..b6d1924cbe7 |
308 |
--- /dev/null |
309 |
+++ b/sys-libs/ncurses-compat/files/ncurses-5.9-rxvt-unicode-9.15.patch |
310 |
@@ -0,0 +1,191 @@ |
311 |
+Add rxvt-unicode terminfo, required by rxvt-unicode to function properly. |
312 |
+ |
313 |
+Providing this in ncurses makes it widely available, much better than having to |
314 |
+install rxvt-unicode everywhere. |
315 |
+ |
316 |
+http://bugs.gentoo.org/show_bug.cgi?id=192083 |
317 |
+ |
318 |
+This patch uses the updated rxvt-unicode-9.15 terminfo |
319 |
+which includes 256 color support and fixes Gentoo bug 383871 |
320 |
+ |
321 |
+http://bugs.gentoo.org/show_bug.cgi?id=383871 |
322 |
+ |
323 |
+--- misc/terminfo.src |
324 |
++++ misc/terminfo.src |
325 |
+@@ -4208,6 +4208,176 @@ |
326 |
+ rxvt-16color|xterm with 16 colors like aixterm, |
327 |
+ ncv#32, use=ibm+16color, use=rxvt, |
328 |
+ |
329 |
++# From: Thomas Dickey <dickey@×××××.net> 04 Oct 1997 |
330 |
++# Updated: Özgür Kesim <kesim@××××××××××××××.de> 02 Nov 1997 |
331 |
++# Updated: Marc Lehmann <schmorp@×××××××.de>, 17 Feb 2005 |
332 |
++# Updated: Marc Lehmann <schmorp@×××××××.de>, 04 Nov 2008: change init/reset sequences |
333 |
++rxvt-unicode|rxvt-unicode terminal (X Window System), |
334 |
++ am, |
335 |
++ bce, |
336 |
++ eo, |
337 |
++ km, |
338 |
++ msgr, |
339 |
++ xenl, |
340 |
++ hs, |
341 |
++ cols#80, |
342 |
++ it#8, |
343 |
++ lines#24, |
344 |
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~-A.B+C\,D0EhFiG, |
345 |
++ bel=^G, |
346 |
++ blink=\E[5m, |
347 |
++ bold=\E[1m, |
348 |
++ civis=\E[?25l, |
349 |
++ clear=\E[H\E[2J, |
350 |
++ cnorm=\E[?25h, |
351 |
++ cr=^M, |
352 |
++ csr=\E[%i%p1%d;%p2%dr, |
353 |
++ cub=\E[%p1%dD, |
354 |
++ cub1=^H, |
355 |
++ cud=\E[%p1%dB, |
356 |
++ cud1=^J, |
357 |
++ cuf=\E[%p1%dC, |
358 |
++ cuf1=\E[C, |
359 |
++ cup=\E[%i%p1%d;%p2%dH, |
360 |
++ cuu=\E[%p1%dA, |
361 |
++ cuu1=\E[A, |
362 |
++ cvvis=\E[?25h, |
363 |
++ dch=\E[%p1%dP, |
364 |
++ dch1=\E[P, |
365 |
++ dl=\E[%p1%dM, |
366 |
++ dl1=\E[M, |
367 |
++ ed=\E[J, |
368 |
++ el=\E[K, |
369 |
++ el1=\E[1K, |
370 |
++ flash=\E[?5h$<20/>\E[?5l, |
371 |
++ home=\E[H, |
372 |
++ hpa=\E[%i%p1%dG, |
373 |
++ ht=^I, |
374 |
++ hts=\EH, |
375 |
++ ich=\E[%p1%d@, |
376 |
++ ich1=\E[@, |
377 |
++ il=\E[%p1%dL, |
378 |
++ il1=\E[L, |
379 |
++ ind=^J, |
380 |
++ is1=\E[\041p, |
381 |
++ is2=\E[r\E[m\E[2J\E[?7;25h\E[?1;3;4;5;6;9;66;1000;1001;1049l\E[4l, |
382 |
++ kDC=\E[3$, |
383 |
++ kIC=\E[2$, |
384 |
++ kEND=\E[8$, |
385 |
++ kHOM=\E[7$, |
386 |
++ kLFT=\E[d, |
387 |
++ kNXT=\E[6$, |
388 |
++ kPRV=\E[5$, |
389 |
++ kRIT=\E[c, |
390 |
++ kbs=\177, |
391 |
++ ka1=\EOw, |
392 |
++ ka3=\EOy, |
393 |
++ kb2=\EOu, |
394 |
++ kc1=\EOq, |
395 |
++ kc3=\EOs, |
396 |
++ kcbt=\E[Z, |
397 |
++ kcub1=\E[D, |
398 |
++ kcud1=\E[B, |
399 |
++ kcuf1=\E[C, |
400 |
++ kcuu1=\E[A, |
401 |
++ kdch1=\E[3~, |
402 |
++ kel=\E[8\^, |
403 |
++ kend=\E[8~, |
404 |
++ kent=\EOM, |
405 |
++ kf1=\E[11~, |
406 |
++ kf10=\E[21~, |
407 |
++ kf11=\E[23~, |
408 |
++ kf12=\E[24~, |
409 |
++ kf13=\E[25~, |
410 |
++ kf14=\E[26~, |
411 |
++ kf15=\E[28~, |
412 |
++ kf16=\E[29~, |
413 |
++ kf17=\E[31~, |
414 |
++ kf18=\E[32~, |
415 |
++ kf19=\E[33~, |
416 |
++ kf2=\E[12~, |
417 |
++ kf20=\E[34~, |
418 |
++ kf3=\E[13~, |
419 |
++ kf4=\E[14~, |
420 |
++ kf5=\E[15~, |
421 |
++ kf6=\E[17~, |
422 |
++ kf7=\E[18~, |
423 |
++ kf8=\E[19~, |
424 |
++ kf9=\E[20~, |
425 |
++ kfnd=\E[1~, |
426 |
++ khome=\E[7~, |
427 |
++ kich1=\E[2~, |
428 |
++ kmous=\E[M, |
429 |
++ knp=\E[6~, |
430 |
++ kpp=\E[5~, |
431 |
++ kslt=\E[4~, |
432 |
++ rc=\E8, |
433 |
++ rev=\E[7m, |
434 |
++ ri=\EM, |
435 |
++ rmso=\E[27m, |
436 |
++ rmul=\E[24m, |
437 |
++ rs1=\Ec, |
438 |
++ rs2=\E[r\E[m\E[?7;25h\E[?1;3;4;5;6;9;66;1000;1001;1049l\E[4l, |
439 |
++ sgr0=\E[m\E(B, |
440 |
++ enacs=, |
441 |
++ smacs=\E(0, |
442 |
++ rmacs=\E(B, |
443 |
++ smso=\E[7m, |
444 |
++ smul=\E[4m, |
445 |
++ tbc=\E[3g, |
446 |
++ vpa=\E[%i%p1%dd, |
447 |
++ colors#88, |
448 |
++ pairs#7744, |
449 |
++ btns#5, |
450 |
++ lm#0, |
451 |
++ ccc, |
452 |
++ npc, |
453 |
++ mc5i, |
454 |
++ ncv#0, |
455 |
++ mir, |
456 |
++ xon, |
457 |
++ bw, |
458 |
++ ech=\E[%p1%dX, |
459 |
++ mc0=\E[i, |
460 |
++ mc4=\E[4i, |
461 |
++ mc5=\E[5i, |
462 |
++ sitm=\E[3m, |
463 |
++ ritm=\E[23m, |
464 |
++ smam=\E[?7h, |
465 |
++ rmam=\E[?7l, |
466 |
++ smir=\E[4h, |
467 |
++ rmir=\E[4l, |
468 |
++ smcup=\E[?1049h, |
469 |
++ rmcup=\E[r\E[?1049l, |
470 |
++ smkx=\E=, |
471 |
++ rmkx=\E>, |
472 |
++ indn=\E[%p1%dS, |
473 |
++ rin=\E[%p1%dT, |
474 |
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;, |
475 |
++ op=\E[39;49m, |
476 |
++ setaf=\E[38;5;%p1%dm, |
477 |
++ setab=\E[48;5;%p1%dm, |
478 |
++ setf=%?%p1%{7}%>%t\E[38;5;%p1%dm%e\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m%;, |
479 |
++ setb=%?%p1%{7}%>%t\E[48;5;%p1%dm%e\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m%;, |
480 |
++ initc=\E]4;%p1%d;rgb\:%p2%{65535}%*%{1000}%/%4.4X/%p3%{65535}%*%{1000}%/%4.4X/%p4%{65535}%*%{1000}%/%4.4X\E\\, |
481 |
++ sc=\E7, |
482 |
++ s0ds=\E(B, |
483 |
++ s1ds=\E(0, |
484 |
++ s2ds=\E*B, |
485 |
++ s3ds=\E+B, |
486 |
++ u6=\E[%i%d;%dR, |
487 |
++ u7=\E[6n, |
488 |
++ u8=\E[?1;2c, |
489 |
++ u9=\E[c, |
490 |
++ tsl=\E]2;, |
491 |
++ fsl=\007, |
492 |
++ dsl=\E]2;\007, |
493 |
++ |
494 |
++rxvt-unicode-256color|rxvt-unicode terminal with 256 colors (X Window System), |
495 |
++ colors#256, |
496 |
++ pairs#32767, |
497 |
++ use=rxvt-unicode, |
498 |
++ |
499 |
+ # mrxvt 0.5.4 |
500 |
+ # |
501 |
+ # mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which |
502 |
|
503 |
diff --git a/sys-libs/ncurses-compat/metadata.xml b/sys-libs/ncurses-compat/metadata.xml |
504 |
new file mode 100644 |
505 |
index 00000000000..471b2667ab5 |
506 |
--- /dev/null |
507 |
+++ b/sys-libs/ncurses-compat/metadata.xml |
508 |
@@ -0,0 +1,18 @@ |
509 |
+<?xml version="1.0" encoding="UTF-8"?> |
510 |
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> |
511 |
+<pkgmetadata> |
512 |
+<maintainer type="project"> |
513 |
+ <email>base-system@g.o</email> |
514 |
+ <name>Gentoo Base System</name> |
515 |
+</maintainer> |
516 |
+<use> |
517 |
+ <flag name="tinfo"> |
518 |
+ Build curses library (libncurses) sep from the low-level terminfo |
519 |
+ library (libtinfo) -- usually needed only for binary packages -- but |
520 |
+ it is binary compatible in either mode |
521 |
+ </flag> |
522 |
+</use> |
523 |
+<upstream> |
524 |
+ <remote-id type="cpe">cpe:/a:gnu:ncurses</remote-id> |
525 |
+</upstream> |
526 |
+</pkgmetadata> |
527 |
|
528 |
diff --git a/sys-libs/ncurses-compat/ncurses-compat-5.9.ebuild b/sys-libs/ncurses-compat/ncurses-compat-5.9.ebuild |
529 |
new file mode 100644 |
530 |
index 00000000000..936a384a044 |
531 |
--- /dev/null |
532 |
+++ b/sys-libs/ncurses-compat/ncurses-compat-5.9.ebuild |
533 |
@@ -0,0 +1,199 @@ |
534 |
+# Copyright 1999-2019 Gentoo Authors |
535 |
+# Distributed under the terms of the GNU General Public License v2 |
536 |
+ |
537 |
+# This version is just for the ABI .5 library |
538 |
+ |
539 |
+EAPI="5" |
540 |
+ |
541 |
+inherit eutils toolchain-funcs multilib-minimal |
542 |
+ |
543 |
+MY_PV=${PV:0:3} |
544 |
+MY_P=ncurses-${MY_PV} |
545 |
+DESCRIPTION="console display library" |
546 |
+HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/" |
547 |
+SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz" |
548 |
+ |
549 |
+LICENSE="MIT" |
550 |
+# The subslot reflects the SONAME. |
551 |
+SLOT="5/5" |
552 |
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd" |
553 |
+IUSE="gpm tinfo unicode" |
554 |
+ |
555 |
+DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" |
556 |
+# Block the ncurses-5 that installs the same lib. #557472 |
557 |
+RDEPEND="${DEPEND} |
558 |
+ !<sys-libs/ncurses-6:0 |
559 |
+ !sys-libs/ncurses:5" |
560 |
+ |
561 |
+S=${WORKDIR}/${MY_P} |
562 |
+ |
563 |
+PATCHES=( |
564 |
+ "${FILESDIR}"/ncurses-5.8-gfbsd.patch |
565 |
+ "${FILESDIR}"/ncurses-5.7-nongnu.patch |
566 |
+ "${FILESDIR}"/ncurses-5.9-rxvt-unicode-9.15.patch #192083 #383871 |
567 |
+ "${FILESDIR}"/ncurses-5.9-fix-clang-build.patch #417763 |
568 |
+ "${FILESDIR}"/ncurses-5.9-pkg-config.patch |
569 |
+ "${FILESDIR}"/ncurses-5.9-no-I-usr-include.patch #522586 |
570 |
+ "${FILESDIR}"/ncurses-5.9-gcc-5.patch #545114 |
571 |
+) |
572 |
+ |
573 |
+src_prepare() { |
574 |
+ epatch "${PATCHES[@]}" |
575 |
+} |
576 |
+ |
577 |
+src_configure() { |
578 |
+ unset TERMINFO #115036 |
579 |
+ tc-export_build_env BUILD_{CC,CPP} |
580 |
+ BUILD_CPPFLAGS+=" -D_GNU_SOURCE" #214642 |
581 |
+ |
582 |
+ # Build the various variants of ncurses -- narrow, wide, and threaded. #510440 |
583 |
+ # Order matters here -- we want unicode/thread versions to come last so that the |
584 |
+ # binaries in /usr/bin support both wide and narrow. |
585 |
+ # The naming is also important as we use these directly with filenames and when |
586 |
+ # checking configure flags. |
587 |
+ NCURSES_TARGETS=( |
588 |
+ ncurses |
589 |
+ $(usex unicode 'ncursesw' '') |
590 |
+ ) |
591 |
+ |
592 |
+ # When installing ncurses, we have to use a compatible version of tic. |
593 |
+ # This comes up when cross-compiling, doing multilib builds, upgrading, |
594 |
+ # or installing for the first time. Build a local copy of tic whenever |
595 |
+ # the host version isn't available. #249363 #557598 |
596 |
+ if ! ROOT=/ has_version "~sys-libs/${P}" ; then |
597 |
+ # We can't re-use the multilib BUILD_DIR because we run outside of it. |
598 |
+ BUILD_DIR="${WORKDIR}" \ |
599 |
+ CHOST=${CBUILD} \ |
600 |
+ CFLAGS=${BUILD_CFLAGS} \ |
601 |
+ CXXFLAGS=${BUILD_CXXFLAGS} \ |
602 |
+ CPPFLAGS=${BUILD_CPPFLAGS} \ |
603 |
+ LDFLAGS="${BUILD_LDFLAGS} -static" \ |
604 |
+ do_configure cross --without-shared --with-normal |
605 |
+ fi |
606 |
+ multilib-minimal_src_configure |
607 |
+} |
608 |
+ |
609 |
+multilib_src_configure() { |
610 |
+ local t |
611 |
+ for t in "${NCURSES_TARGETS[@]}" ; do |
612 |
+ do_configure "${t}" |
613 |
+ done |
614 |
+} |
615 |
+ |
616 |
+do_configure() { |
617 |
+ local target=$1 |
618 |
+ shift |
619 |
+ |
620 |
+ mkdir "${BUILD_DIR}/${target}" |
621 |
+ cd "${BUILD_DIR}/${target}" || die |
622 |
+ |
623 |
+ local conf=( |
624 |
+ # We need the basic terminfo files in /etc, bug #37026. We will |
625 |
+ # add '--with-terminfo-dirs' and then populate /etc/terminfo in |
626 |
+ # src_install() ... |
627 |
+ --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo" |
628 |
+ |
629 |
+ # Now the rest of the various standard flags. |
630 |
+ --without-hashed-db |
631 |
+ --disable-pc-files |
632 |
+ --with-shared |
633 |
+ --without-hashed-db |
634 |
+ --without-ada |
635 |
+ --without-cxx |
636 |
+ --without-cxx-binding |
637 |
+ --without-debug |
638 |
+ --without-profile |
639 |
+ # The configure script uses ldd to parse the linked output which |
640 |
+ # is flaky for cross-compiling/multilib/ldd versions/etc... |
641 |
+ $(use_with gpm gpm libgpm.so.1) |
642 |
+ --disable-termcap |
643 |
+ --enable-symlinks |
644 |
+ --with-rcs-ids |
645 |
+ --with-manpage-format=normal |
646 |
+ --enable-const |
647 |
+ --enable-colorfgbg |
648 |
+ --enable-echo |
649 |
+ --disable-warnings |
650 |
+ --without-assertions |
651 |
+ --enable-leaks |
652 |
+ --without-expanded |
653 |
+ --with-macros |
654 |
+ --without-progs |
655 |
+ --without-tests |
656 |
+ --without-trace |
657 |
+ $(use_with tinfo termlib) |
658 |
+ |
659 |
+ # The chtype/mmask-t settings below are to retain ABI compat |
660 |
+ # with ncurses-5.4 so dont change em ! |
661 |
+ --with-chtype=long |
662 |
+ --with-mmask-t=long |
663 |
+ --disable-ext-colors |
664 |
+ --disable-ext-mouse |
665 |
+ --without-{pthread,reentrant} |
666 |
+ ) |
667 |
+ |
668 |
+ if [[ ${target} == ncurses*w ]] ; then |
669 |
+ conf+=( --enable-widec ) |
670 |
+ else |
671 |
+ conf+=( --disable-widec ) |
672 |
+ fi |
673 |
+ # Make sure each variant goes in a unique location. |
674 |
+ if [[ ${target} != "ncurses" ]] ; then |
675 |
+ conf+=( --includedir="${EPREFIX}"/usr/include/${target} ) |
676 |
+ fi |
677 |
+ # See comments in src_configure. |
678 |
+ if [[ ${target} != "cross" ]] ; then |
679 |
+ local cross_path="${WORKDIR}/cross" |
680 |
+ [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic" |
681 |
+ else |
682 |
+ conf+=( --with-progs ) |
683 |
+ fi |
684 |
+ |
685 |
+ # Force bash until upstream rebuilds the configure script with a newer |
686 |
+ # version of autotools. #545532 |
687 |
+ CONFIG_SHELL=/bin/bash \ |
688 |
+ ECONF_SOURCE=${S} \ |
689 |
+ econf "${conf[@]}" "$@" |
690 |
+} |
691 |
+ |
692 |
+src_compile() { |
693 |
+ # See comments in src_configure. |
694 |
+ if ! ROOT=/ has_version "~sys-libs/${P}" ; then |
695 |
+ BUILD_DIR="${WORKDIR}" \ |
696 |
+ do_compile cross -C progs tic |
697 |
+ fi |
698 |
+ |
699 |
+ multilib-minimal_src_compile |
700 |
+} |
701 |
+ |
702 |
+multilib_src_compile() { |
703 |
+ local t |
704 |
+ for t in "${NCURSES_TARGETS[@]}" ; do |
705 |
+ do_compile "${t}" |
706 |
+ done |
707 |
+} |
708 |
+ |
709 |
+do_compile() { |
710 |
+ local target=$1 |
711 |
+ shift |
712 |
+ |
713 |
+ cd "${BUILD_DIR}/${target}" || die |
714 |
+ |
715 |
+ # A little hack to fix parallel builds ... they break when |
716 |
+ # generating sources so if we generate the sources first (in |
717 |
+ # non-parallel), we can then build the rest of the package |
718 |
+ # in parallel. This is not really a perf hit since the source |
719 |
+ # generation is quite small. |
720 |
+ emake -j1 sources |
721 |
+ emake "$@" |
722 |
+} |
723 |
+ |
724 |
+multilib_src_install() { |
725 |
+ local target lib |
726 |
+ for target in "${NCURSES_TARGETS[@]}" ; do |
727 |
+ cd "${BUILD_DIR}/${target}/lib" || die |
728 |
+ for lib in *5.9 ; do |
729 |
+ newlib.so "${lib}" "${lib%%.9}" |
730 |
+ done |
731 |
+ done |
732 |
+} |