Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-libs/ncurses/
Date: Sun, 25 Sep 2022 05:05:39
Message-Id: 1664082308.fe955a2baf5892a2255f498f9173d95990176f10.sam@gentoo
1 commit: fe955a2baf5892a2255f498f9173d95990176f10
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Sun Sep 25 05:04:49 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Sun Sep 25 05:05:08 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fe955a2b
7
8 sys-libs/ncurses: drop versions
9
10 None of these versions were stable candidates, so drop them to avoid
11 confusion. Partly because of b6c4ac1ae4228b4b865da7f9f3ad3c3a1c5a2b00
12 but also lots of rejigging with patches and such.
13
14 Signed-off-by: Sam James <sam <AT> gentoo.org>
15
16 sys-libs/ncurses/Manifest | 1 -
17 sys-libs/ncurses/ncurses-6.3_p20220827-r1.ebuild | 420 --------------------
18 sys-libs/ncurses/ncurses-6.3_p20220827.ebuild | 418 --------------------
19 sys-libs/ncurses/ncurses-6.3_p20220917-r1.ebuild | 464 -----------------------
20 sys-libs/ncurses/ncurses-6.3_p20220917.ebuild | 462 ----------------------
21 5 files changed, 1765 deletions(-)
22
23 diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest
24 index 46fc616af217..dc099aea6d1c 100644
25 --- a/sys-libs/ncurses/Manifest
26 +++ b/sys-libs/ncurses/Manifest
27 @@ -100,5 +100,4 @@ DIST ncurses-6.3-20220924.patch.gz 112587 BLAKE2B 77711d12d8b38d72c8f218eae8f145
28 DIST ncurses-6.3-20220924.patch.gz.asc 729 BLAKE2B 64103419d56b0e3b9ab7d7c0b2c650db18b472f2c656b6939b865f7a93e4f6ef5adbed9e438c21a488c204c0dffc818a9c787558ce04a50c7d1c6384f84889aa SHA512 f4bda8c09b6b701c99ffd3153dd8754496991b7f83c36ee7f49c4c701d081d32adfc9c04fa83e639df7f024479c7ee5b3921f45db9f72e896c48637073eca38b
29 DIST ncurses-6.3.tar.gz 3583550 BLAKE2B b2c174ac48d587b4d3aa054f04e4ec8bffd8a657a4aff5f090104965c741901e600712c8f8e5e98f3b8a26bc558996a1e14a746f113854832853b855e9d406c3 SHA512 5373f228cba6b7869210384a607a2d7faecfcbfef6dbfcd7c513f4e84fbd8bcad53ac7db2e7e84b95582248c1039dcfc7c4db205a618f7da22a166db482f0105
30 DIST ncurses-6.3.tar.gz.sig 438 BLAKE2B d7f9852292110fe7a048a9e38611ea06564b5142cb4cbeb8d99bba752d5df8eeffa3b57e5ca315c14024520bc008b30650e99669c995dca05a798399a0c85d39 SHA512 b9a2a25e0b1854c272bf89c610c81fc0ba061f0296eca5c0079a79cfe310e44eb16c46eb5a0dd018f1ca9114d569c9d5087a2b8e60b0344f1eb97f7c5addafc6
31 -DIST ncurses-6.3_p20220910-patches.tar.xz 62776 BLAKE2B a65260559ca4f69d724fdaec5ebade7f213144ff77485f6a8b6a55632736caae350ab478550d7ad3a3b723c4804397e8c5dfbed172f77f4f91a444a545b85f16 SHA512 21a51325ab649213e09ea67bc22045e91e67766211766f2d19477e740d36cb235b292576230d087532ba0b44947938d29fd2d28199084fb91e3f8cd3cd6cf00a
32 DIST ncurses-6.3_p20220924-patches.tar.xz 63272 BLAKE2B 94b617ba8e949bd7b78047bb1a99acb9f5e0e456d4aebfe3d81b405c491071be7aaeb90df68d144c80a7da6a02a916ba3b2c553ecaf7a8a74214860743b7b783 SHA512 7e55e96b94184a84a752a2b482d13c3aaccb41ade79d14569aad00534c03a80f2dbafc5460838b8d51271089c02c5f0da1a73e5a70bc0619217124ae1c647e20
33
34 diff --git a/sys-libs/ncurses/ncurses-6.3_p20220827-r1.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220827-r1.ebuild
35 deleted file mode 100644
36 index 00c25213f3dc..000000000000
37 --- a/sys-libs/ncurses/ncurses-6.3_p20220827-r1.ebuild
38 +++ /dev/null
39 @@ -1,420 +0,0 @@
40 -# Copyright 1999-2022 Gentoo Authors
41 -# Distributed under the terms of the GNU General Public License v2
42 -
43 -EAPI=7
44 -
45 -VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc
46 -inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig
47 -
48 -MY_PV="${PV:0:3}"
49 -MY_P="${PN}-${MY_PV}"
50 -DESCRIPTION="Console display library"
51 -HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/"
52 -SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz
53 - https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz
54 - verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig )"
55 -
56 -if [[ ${PV} == *_p* ]] ; then
57 - # Sometimes, after releases, there's no megapatch available yet.
58 - #
59 - # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/:
60 - #
61 - # "At times (generally to mark a relatively stable point), I create a rollup
62 - # patch, which consists of all changes from the release through the current date."
63 - #
64 - # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html,
65 - # the patches are considered to be acceptable to use after some testing. They
66 - # are both for development but also bug fixes.
67 - #
68 - # This array should contain a list of all the snapshots since the last
69 - # release if there's no megapatch available yet.
70 - PATCH_DATES=(
71 - 20211026
72 - 20211030
73 - 20211106
74 - 20211113
75 - 20211115
76 - 20211120
77 - 20211127
78 - 20211204
79 - 20211211
80 - 20211219
81 - 20211225
82 - 20220101
83 - 20220115
84 - 20220122
85 - 20220129
86 - 20220205
87 - 20220212
88 - 20220219
89 - 20220226
90 - 20220305
91 - 20220312
92 - 20220319
93 - 20220326
94 - 20220402
95 - 20220409
96 - 20220416
97 - 20220423
98 - 20220430
99 - 20220501
100 - 20220507
101 - 20220514
102 - 20220521
103 - 20220529
104 - 20220604
105 - 20220612
106 - 20220618
107 - 20220625
108 - 20220703
109 - 20220709
110 - 20220716
111 - 20220724
112 - 20220729
113 - 20220806
114 - 20220813
115 - 20220820
116 -
117 - # Latest patch is just _pN = $(ver_cut 4)
118 - $(ver_cut 4)
119 - )
120 -
121 - if [[ -z ${PATCH_DATES[@]} ]] ; then
122 - SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz"
123 - SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz.asc"
124 - else
125 - patch_url=
126 - my_patch_index=
127 - for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do
128 - patch_url="$(printf "https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)"
129 - SRC_URI+=" ${patch_url}"
130 - SRC_URI+=" verify-sig? ( ${patch_url}.asc )"
131 - done
132 - unset patch_url
133 - unset my_patch_index
134 - fi
135 -fi
136 -
137 -LICENSE="MIT"
138 -# The subslot reflects the SONAME.
139 -SLOT="0/6"
140 -#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
141 -IUSE="ada +cxx debug doc gpm minimal profile +stack-realign static-libs test tinfo trace"
142 -RESTRICT="!test? ( test )"
143 -
144 -DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )"
145 -# Block the older ncurses that installed all files w/SLOT=5, bug #557472
146 -RDEPEND="${DEPEND}
147 - !<=sys-libs/ncurses-5.9-r4:5
148 - !<sys-libs/slang-2.3.2_pre23
149 - !<x11-terms/rxvt-unicode-9.06-r3
150 - !<x11-terms/st-0.6-r1"
151 -BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
152 -
153 -S="${WORKDIR}/${MY_P}"
154 -
155 -PATCHES=(
156 - "${FILESDIR}/${PN}-5.7-nongnu.patch"
157 - "${FILESDIR}/${PN}-6.0-rxvt-unicode-9.15.patch" # bug #192083, bug #383871
158 - "${FILESDIR}/${PN}-6.0-pkg-config.patch"
159 - "${FILESDIR}/${PN}-6.0-ticlib.patch" # bug #557360
160 - "${FILESDIR}/${PN}-6.2_p20210123-cppflags-cross.patch" # bug #601426
161 -)
162 -
163 -src_prepare() {
164 - if [[ ${PV} == *_p* ]] ; then
165 - if [[ -z ${PATCH_DATES[@]} ]] ; then
166 - # If we have a rollup patch, use that instead of the individual ones.
167 - eapply "${WORKDIR}"/${P/_p/-}-patch.sh
168 - else
169 - eapply "${WORKDIR}"/
170 - fi
171 - fi
172 -
173 - default
174 -}
175 -
176 -src_configure() {
177 - # bug #115036
178 - unset TERMINFO
179 -
180 - tc-export_build_env BUILD_{CC,CPP}
181 -
182 - # bug #214642
183 - BUILD_CPPFLAGS+=" -D_GNU_SOURCE"
184 -
185 - # Build the various variants of ncurses -- narrow, wide, and threaded. #510440
186 - # Order matters here -- we want unicode/thread versions to come last so that the
187 - # binaries in /usr/bin support both wide and narrow.
188 - # The naming is also important as we use these directly with filenames and when
189 - # checking configure flags.
190 - NCURSES_TARGETS=(
191 - ncurses
192 - ncursesw
193 - ncursest
194 - ncursestw
195 - )
196 -
197 - # When installing ncurses, we have to use a compatible version of tic.
198 - # This comes up when cross-compiling, doing multilib builds, upgrading,
199 - # or installing for the first time. Build a local copy of tic whenever
200 - # the host version isn't available. bug #249363, bug #557598
201 - if ! has_version -b "~sys-libs/${P}:0" ; then
202 - local lbuildflags="-static"
203 -
204 - # some toolchains don't quite support static linking
205 - local dbuildflags="-Wl,-rpath,${WORKDIR}/lib"
206 - case ${CHOST} in
207 - *-darwin*) dbuildflags= ;;
208 - *-solaris*) dbuildflags="-Wl,-R,${WORKDIR}/lib" ;;
209 - esac
210 - echo "int main() {}" | \
211 - $(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \
212 - || lbuildflags="${dbuildflags}"
213 -
214 - # We can't re-use the multilib BUILD_DIR because we run outside of it.
215 - BUILD_DIR="${WORKDIR}" \
216 - CC=${BUILD_CC} \
217 - CHOST=${CBUILD} \
218 - CFLAGS=${BUILD_CFLAGS} \
219 - CXXFLAGS=${BUILD_CXXFLAGS} \
220 - CPPFLAGS=${BUILD_CPPFLAGS} \
221 - LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \
222 - do_configure cross --without-shared --with-normal --with-progs
223 - fi
224 - multilib-minimal_src_configure
225 -}
226 -
227 -multilib_src_configure() {
228 - if [[ ${ABI} == x86 ]] ; then
229 - # For compatibility with older binaries at slight performance cost.
230 - # bug #616402
231 - use stack-realign && append-flags -mstackrealign
232 - fi
233 -
234 - local t
235 - for t in "${NCURSES_TARGETS[@]}" ; do
236 - do_configure "${t}"
237 - done
238 -}
239 -
240 -do_configure() {
241 - local target=$1
242 - shift
243 -
244 - mkdir "${BUILD_DIR}/${target}" || die
245 - cd "${BUILD_DIR}/${target}" || die
246 -
247 - local conf=(
248 - # We need the basic terminfo files in /etc, bug #37026. We will
249 - # add '--with-terminfo-dirs' and then populate /etc/terminfo in
250 - # src_install() ...
251 - --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo"
252 -
253 - # Enable installation of .pc files.
254 - --enable-pc-files
255 - # This path is used to control where the .pc files are installed.
256 - --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig"
257 -
258 - # Now the rest of the various standard flags.
259 - --with-shared
260 - # (Originally disabled until bug #245417 is sorted out, but now
261 - # just keeping it off for good, given nobody needed it until now
262 - # (2022) and we're trying to phase out bdb.)
263 - --without-hashed-db
264 - $(use_with ada)
265 - $(use_with cxx)
266 - $(use_with cxx cxx-binding)
267 - --with-cxx-shared
268 - $(use_with debug)
269 - $(use_with profile)
270 - # The configure script uses ldd to parse the linked output which
271 - # is flaky for cross-compiling/multilib/ldd versions/etc...
272 - $(use_with gpm gpm libgpm.so.1)
273 - # Required for building on mingw-w64, and possibly other windows
274 - # platforms, bug #639670
275 - $(use_enable kernel_Winnt term-driver)
276 - --disable-termcap
277 - --enable-symlinks
278 - --with-rcs-ids
279 - --with-manpage-format=normal
280 - --enable-const
281 - --enable-colorfgbg
282 - --enable-hard-tabs
283 - --enable-echo
284 - $(use_enable !ada warnings)
285 - $(use_with debug assertions)
286 - $(use_enable !debug leaks)
287 - $(use_with debug expanded)
288 - $(use_with !debug macros)
289 - $(multilib_native_with progs)
290 - $(use_with test tests)
291 - $(use_with trace)
292 - $(use_with tinfo termlib)
293 - --disable-stripping
294 - --disable-pkg-ldflags
295 - )
296 -
297 - if [[ ${target} == ncurses*w ]] ; then
298 - conf+=( --enable-widec )
299 - else
300 - conf+=( --disable-widec )
301 - fi
302 - if [[ ${target} == ncursest* ]] ; then
303 - conf+=( --with-{pthread,reentrant} )
304 - else
305 - conf+=( --without-{pthread,reentrant} )
306 - fi
307 -
308 - # Make sure each variant goes in a unique location.
309 - if [[ ${target} == "ncurses" ]] ; then
310 - # "ncurses" variant goes into "${EPREFIX}"/usr/include
311 - # It is needed on Prefix because the configure script appends
312 - # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr.
313 - conf+=( --enable-overwrite )
314 - else
315 - conf+=( --includedir="${EPREFIX}"/usr/include/${target} )
316 - fi
317 - # See comments in src_configure.
318 - if [[ ${target} != "cross" ]] ; then
319 - local cross_path="${WORKDIR}/cross"
320 - [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic"
321 - fi
322 -
323 - ECONF_SOURCE="${S}" econf "${conf[@]}" "$@"
324 -}
325 -
326 -src_compile() {
327 - # See comments in src_configure.
328 - if ! has_version -b "~sys-libs/${P}:0" ; then
329 - # We could possibly merge these two branches but opting to be
330 - # conservative when merging some of the Prefix changes.
331 -
332 - if [[ ${CHOST} == *-cygwin* ]] && ! multilib_is_native_abi ; then
333 - # We make 'tic$(x)' here, for Cygwin having x=".exe".
334 - BUILD_DIR="${WORKDIR}" \
335 - do_compile cross -C progs all PROGS='tic$(x)'
336 - else
337 - BUILD_DIR="${WORKDIR}" \
338 - do_compile cross -C progs tic
339 - fi
340 - fi
341 -
342 - multilib-minimal_src_compile
343 -}
344 -
345 -multilib_src_compile() {
346 - local t
347 - for t in "${NCURSES_TARGETS[@]}" ; do
348 - do_compile "${t}"
349 - done
350 -}
351 -
352 -do_compile() {
353 - local target=$1
354 - shift
355 -
356 - cd "${BUILD_DIR}/${target}" || die
357 -
358 - # A little hack to fix parallel builds ... they break when
359 - # generating sources so if we generate the sources first (in
360 - # non-parallel), we can then build the rest of the package
361 - # in parallel. This is not really a perf hit since the source
362 - # generation is quite small.
363 - emake -j1 sources
364 -
365 - # For some reason, sources depends on pc-files which depends on
366 - # compiled libraries which depends on sources which ...
367 - # Manually delete the pc-files file so the install step will
368 - # create the .pc files we want.
369 - rm -f misc/pc-files || die
370 - emake "$@"
371 -}
372 -
373 -multilib_src_install() {
374 - local target
375 - for target in "${NCURSES_TARGETS[@]}" ; do
376 - emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install
377 - done
378 -
379 - # Move main libraries into /.
380 - if multilib_is_native_abi ; then
381 - gen_usr_ldscript -a \
382 - "${NCURSES_TARGETS[@]}" \
383 - $(usex tinfo 'tinfow tinfo' '')
384 - fi
385 -
386 - # Don't delete '*.dll.a', needed for linking, bug #631468
387 - if ! use static-libs; then
388 - find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die
389 - fi
390 -
391 - # Build fails to create this ...
392 - # -FIXME-
393 - # Ugly hackaround for riscv having two parts libdir (bug #689240)
394 - # Replace this hack with an official solution once we have one...
395 - # -FIXME-
396 - dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \
397 - /usr/$(get_libdir)/terminfo
398 -
399 - # Remove obsolete libcurses symlink that is created by the build
400 - # system. Technically, this could be also achieved
401 - # via --disable-overwrite but it also moves headers implicitly,
402 - # and we do not want to do this yet.
403 - # bug #836696
404 - rm "${ED}"/usr/$(get_libdir)/libcurses* || die
405 -}
406 -
407 -multilib_src_install_all() {
408 - # We need the basic terminfo files in /etc for embedded/recovery, bug #37026
409 - einfo "Installing basic terminfo files in /etc..."
410 - local terms=(
411 - # Dumb/simple values that show up when using the in-kernel VT.
412 - ansi console dumb linux
413 - vt{52,100,102,200,220}
414 - # [u]rxvt users used to be pretty common. Probably should drop this
415 - # since upstream is dead and people are moving away from it.
416 - rxvt{,-unicode}{,-256color}
417 - # xterm users are common, as is terminals re-using/spoofing it.
418 - xterm xterm-{,256}color
419 - # screen is common (and reused by tmux).
420 - screen{,-256color}
421 - screen.xterm-256color
422 - )
423 - local x
424 - for x in "${terms[@]}"; do
425 - local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null)
426 - local basedir=$(basename "$(dirname "${termfile}")")
427 -
428 - if [[ -n ${termfile} ]] ; then
429 - dodir "/etc/terminfo/${basedir}"
430 - mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die
431 - dosym "../../../../etc/terminfo/${basedir}/${x}" \
432 - "/usr/share/terminfo/${basedir}/${x}"
433 - fi
434 - done
435 -
436 - echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses
437 -
438 - use minimal && rm -r "${ED}"/usr/share/terminfo*
439 - # Because ncurses5-config --terminfo returns the directory we keep it
440 - # bug #245374
441 - keepdir /usr/share/terminfo
442 -
443 - cd "${S}" || die
444 - dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc
445 - if use doc ; then
446 - docinto html
447 - dodoc -r doc/html/
448 - fi
449 -}
450 -
451 -pkg_preinst() {
452 - preserve_old_lib /$(get_libdir)/libncurses.so.5
453 - preserve_old_lib /$(get_libdir)/libncursesw.so.5
454 -}
455 -
456 -pkg_postinst() {
457 - preserve_old_lib_notify /$(get_libdir)/libncurses.so.5
458 - preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5
459 -}
460
461 diff --git a/sys-libs/ncurses/ncurses-6.3_p20220827.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220827.ebuild
462 deleted file mode 100644
463 index 0c36e629826e..000000000000
464 --- a/sys-libs/ncurses/ncurses-6.3_p20220827.ebuild
465 +++ /dev/null
466 @@ -1,418 +0,0 @@
467 -# Copyright 1999-2022 Gentoo Authors
468 -# Distributed under the terms of the GNU General Public License v2
469 -
470 -EAPI=7
471 -
472 -VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc
473 -inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig
474 -
475 -MY_PV="${PV:0:3}"
476 -MY_P="${PN}-${MY_PV}"
477 -DESCRIPTION="Console display library"
478 -HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/"
479 -SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz
480 - https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz
481 - verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig )"
482 -
483 -if [[ ${PV} == *_p* ]] ; then
484 - # Sometimes, after releases, there's no megapatch available yet.
485 - #
486 - # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/:
487 - #
488 - # "At times (generally to mark a relatively stable point), I create a rollup
489 - # patch, which consists of all changes from the release through the current date."
490 - #
491 - # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html,
492 - # the patches are considered to be acceptable to use after some testing. They
493 - # are both for development but also bug fixes.
494 - #
495 - # This array should contain a list of all the snapshots since the last
496 - # release if there's no megapatch available yet.
497 - PATCH_DATES=(
498 - 20211026
499 - 20211030
500 - 20211106
501 - 20211113
502 - 20211115
503 - 20211120
504 - 20211127
505 - 20211204
506 - 20211211
507 - 20211219
508 - 20211225
509 - 20220101
510 - 20220115
511 - 20220122
512 - 20220129
513 - 20220205
514 - 20220212
515 - 20220219
516 - 20220226
517 - 20220305
518 - 20220312
519 - 20220319
520 - 20220326
521 - 20220402
522 - 20220409
523 - 20220416
524 - 20220423
525 - 20220430
526 - 20220501
527 - 20220507
528 - 20220514
529 - 20220521
530 - 20220529
531 - 20220604
532 - 20220612
533 - 20220618
534 - 20220625
535 - 20220703
536 - 20220709
537 - 20220716
538 - 20220724
539 - 20220729
540 - 20220806
541 - 20220813
542 - 20220820
543 -
544 - # Latest patch is just _pN = $(ver_cut 4)
545 - $(ver_cut 4)
546 - )
547 -
548 - if [[ -z ${PATCH_DATES[@]} ]] ; then
549 - SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz"
550 - SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz.asc"
551 - else
552 - patch_url=
553 - my_patch_index=
554 - for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do
555 - patch_url="$(printf "https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)"
556 - SRC_URI+=" ${patch_url}"
557 - SRC_URI+=" verify-sig? ( ${patch_url}.asc )"
558 - done
559 - unset patch_url
560 - unset my_patch_index
561 - fi
562 -fi
563 -
564 -LICENSE="MIT"
565 -# The subslot reflects the SONAME.
566 -SLOT="0/6"
567 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
568 -IUSE="ada +cxx debug doc gpm minimal profile +stack-realign static-libs test tinfo trace"
569 -RESTRICT="!test? ( test )"
570 -
571 -DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )"
572 -# Block the older ncurses that installed all files w/SLOT=5, bug #557472
573 -RDEPEND="${DEPEND}
574 - !<=sys-libs/ncurses-5.9-r4:5
575 - !<sys-libs/slang-2.3.2_pre23
576 - !<x11-terms/rxvt-unicode-9.06-r3
577 - !<x11-terms/st-0.6-r1"
578 -BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
579 -
580 -S="${WORKDIR}/${MY_P}"
581 -
582 -PATCHES=(
583 - "${FILESDIR}/${PN}-5.7-nongnu.patch"
584 - "${FILESDIR}/${PN}-6.0-rxvt-unicode-9.15.patch" # bug #192083, bug #383871
585 - "${FILESDIR}/${PN}-6.0-pkg-config.patch"
586 - "${FILESDIR}/${PN}-6.0-ticlib.patch" # bug #557360
587 - "${FILESDIR}/${PN}-6.2_p20210123-cppflags-cross.patch" # bug #601426
588 -)
589 -
590 -src_prepare() {
591 - if [[ ${PV} == *_p* ]] ; then
592 - if [[ -z ${PATCH_DATES[@]} ]] ; then
593 - # If we have a rollup patch, use that instead of the individual ones.
594 - eapply "${WORKDIR}"/${P/_p/-}-patch.sh
595 - else
596 - eapply "${WORKDIR}"/
597 - fi
598 - fi
599 -
600 - default
601 -}
602 -
603 -src_configure() {
604 - # bug #115036
605 - unset TERMINFO
606 -
607 - tc-export_build_env BUILD_{CC,CPP}
608 -
609 - # bug #214642
610 - BUILD_CPPFLAGS+=" -D_GNU_SOURCE"
611 -
612 - # Build the various variants of ncurses -- narrow, wide, and threaded. #510440
613 - # Order matters here -- we want unicode/thread versions to come last so that the
614 - # binaries in /usr/bin support both wide and narrow.
615 - # The naming is also important as we use these directly with filenames and when
616 - # checking configure flags.
617 - NCURSES_TARGETS=(
618 - ncurses
619 - ncursesw
620 - ncursest
621 - ncursestw
622 - )
623 -
624 - # When installing ncurses, we have to use a compatible version of tic.
625 - # This comes up when cross-compiling, doing multilib builds, upgrading,
626 - # or installing for the first time. Build a local copy of tic whenever
627 - # the host version isn't available. bug #249363, bug #557598
628 - if ! has_version -b "~sys-libs/${P}:0" ; then
629 - local lbuildflags="-static"
630 -
631 - # some toolchains don't quite support static linking
632 - local dbuildflags="-Wl,-rpath,${WORKDIR}/lib"
633 - case ${CHOST} in
634 - *-darwin*) dbuildflags= ;;
635 - *-solaris*) dbuildflags="-Wl,-R,${WORKDIR}/lib" ;;
636 - esac
637 - echo "int main() {}" | \
638 - $(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \
639 - || lbuildflags="${dbuildflags}"
640 -
641 - # We can't re-use the multilib BUILD_DIR because we run outside of it.
642 - BUILD_DIR="${WORKDIR}" \
643 - CC=${BUILD_CC} \
644 - CHOST=${CBUILD} \
645 - CFLAGS=${BUILD_CFLAGS} \
646 - CXXFLAGS=${BUILD_CXXFLAGS} \
647 - CPPFLAGS=${BUILD_CPPFLAGS} \
648 - LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \
649 - do_configure cross --without-shared --with-normal --with-progs
650 - fi
651 - multilib-minimal_src_configure
652 -}
653 -
654 -multilib_src_configure() {
655 - if [[ ${ABI} == x86 ]] ; then
656 - # For compatibility with older binaries at slight performance cost.
657 - # bug #616402
658 - use stack-realign && append-flags -mstackrealign
659 - fi
660 -
661 - local t
662 - for t in "${NCURSES_TARGETS[@]}" ; do
663 - do_configure "${t}"
664 - done
665 -}
666 -
667 -do_configure() {
668 - local target=$1
669 - shift
670 -
671 - mkdir "${BUILD_DIR}/${target}" || die
672 - cd "${BUILD_DIR}/${target}" || die
673 -
674 - local conf=(
675 - # We need the basic terminfo files in /etc, bug #37026. We will
676 - # add '--with-terminfo-dirs' and then populate /etc/terminfo in
677 - # src_install() ...
678 - --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo"
679 -
680 - # Enable installation of .pc files.
681 - --enable-pc-files
682 - # This path is used to control where the .pc files are installed.
683 - --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig"
684 -
685 - # Now the rest of the various standard flags.
686 - --with-shared
687 - # (Originally disabled until bug #245417 is sorted out, but now
688 - # just keeping it off for good, given nobody needed it until now
689 - # (2022) and we're trying to phase out bdb.)
690 - --without-hashed-db
691 - $(use_with ada)
692 - $(use_with cxx)
693 - $(use_with cxx cxx-binding)
694 - --with-cxx-shared
695 - $(use_with debug)
696 - $(use_with profile)
697 - # The configure script uses ldd to parse the linked output which
698 - # is flaky for cross-compiling/multilib/ldd versions/etc...
699 - $(use_with gpm gpm libgpm.so.1)
700 - # Required for building on mingw-w64, and possibly other windows
701 - # platforms, bug #639670
702 - $(use_enable kernel_Winnt term-driver)
703 - --disable-termcap
704 - --enable-symlinks
705 - --with-rcs-ids
706 - --with-manpage-format=normal
707 - --enable-const
708 - --enable-colorfgbg
709 - --enable-hard-tabs
710 - --enable-echo
711 - $(use_enable !ada warnings)
712 - $(use_with debug assertions)
713 - $(use_enable !debug leaks)
714 - $(use_with debug expanded)
715 - $(use_with !debug macros)
716 - $(multilib_native_with progs)
717 - $(use_with test tests)
718 - $(use_with trace)
719 - $(use_with tinfo termlib)
720 - --disable-stripping
721 - --disable-pkg-ldflags
722 - )
723 -
724 - if [[ ${target} == ncurses*w ]] ; then
725 - conf+=( --enable-widec )
726 - else
727 - conf+=( --disable-widec )
728 - fi
729 - if [[ ${target} == ncursest* ]] ; then
730 - conf+=( --with-{pthread,reentrant} )
731 - else
732 - conf+=( --without-{pthread,reentrant} )
733 - fi
734 -
735 - # Make sure each variant goes in a unique location.
736 - if [[ ${target} == "ncurses" ]] ; then
737 - # "ncurses" variant goes into "${EPREFIX}"/usr/include
738 - # It is needed on Prefix because the configure script appends
739 - # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr.
740 - conf+=( --enable-overwrite )
741 - else
742 - conf+=( --includedir="${EPREFIX}"/usr/include/${target} )
743 - fi
744 - # See comments in src_configure.
745 - if [[ ${target} != "cross" ]] ; then
746 - local cross_path="${WORKDIR}/cross"
747 - [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic"
748 - fi
749 -
750 - ECONF_SOURCE="${S}" econf "${conf[@]}" "$@"
751 -}
752 -
753 -src_compile() {
754 - # See comments in src_configure.
755 - if ! has_version -b "~sys-libs/${P}:0" ; then
756 - # We could possibly merge these two branches but opting to be
757 - # conservative when merging some of the Prefix changes.
758 -
759 - if [[ ${CHOST} == *-cygwin* ]] && ! multilib_is_native_abi ; then
760 - # We make 'tic$(x)' here, for Cygwin having x=".exe".
761 - BUILD_DIR="${WORKDIR}" \
762 - do_compile cross -C progs all PROGS='tic$(x)'
763 - else
764 - BUILD_DIR="${WORKDIR}" \
765 - do_compile cross -C progs tic
766 - fi
767 - fi
768 -
769 - multilib-minimal_src_compile
770 -}
771 -
772 -multilib_src_compile() {
773 - local t
774 - for t in "${NCURSES_TARGETS[@]}" ; do
775 - do_compile "${t}"
776 - done
777 -}
778 -
779 -do_compile() {
780 - local target=$1
781 - shift
782 -
783 - cd "${BUILD_DIR}/${target}" || die
784 -
785 - # A little hack to fix parallel builds ... they break when
786 - # generating sources so if we generate the sources first (in
787 - # non-parallel), we can then build the rest of the package
788 - # in parallel. This is not really a perf hit since the source
789 - # generation is quite small.
790 - emake -j1 sources
791 -
792 - # For some reason, sources depends on pc-files which depends on
793 - # compiled libraries which depends on sources which ...
794 - # Manually delete the pc-files file so the install step will
795 - # create the .pc files we want.
796 - rm -f misc/pc-files || die
797 - emake "$@"
798 -}
799 -
800 -multilib_src_install() {
801 - local target
802 - for target in "${NCURSES_TARGETS[@]}" ; do
803 - emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install
804 - done
805 -
806 - # Move main libraries into /.
807 - if multilib_is_native_abi ; then
808 - gen_usr_ldscript -a \
809 - "${NCURSES_TARGETS[@]}" \
810 - $(usex tinfo 'tinfow tinfo' '')
811 - fi
812 -
813 - if ! tc-is-static-only ; then
814 - # Provide a link for -lcurses.
815 - ln -sf libncurses$(get_libname) "${ED}"/usr/$(get_libdir)/libcurses$(get_libname) || die
816 - fi
817 -
818 - # Don't delete '*.dll.a', needed for linking, bug #631468
819 - if ! use static-libs; then
820 - find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die
821 - fi
822 -
823 - # Build fails to create this ...
824 - # -FIXME-
825 - # Ugly hackaround for riscv having two parts libdir (bug #689240)
826 - # Replace this hack with an official solution once we have one...
827 - # -FIXME-
828 - dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \
829 - /usr/$(get_libdir)/terminfo
830 -}
831 -
832 -multilib_src_install_all() {
833 - # We need the basic terminfo files in /etc for embedded/recovery, bug #37026
834 - einfo "Installing basic terminfo files in /etc..."
835 - local terms=(
836 - # Dumb/simple values that show up when using the in-kernel VT.
837 - ansi console dumb linux
838 - vt{52,100,102,200,220}
839 - # [u]rxvt users used to be pretty common. Probably should drop this
840 - # since upstream is dead and people are moving away from it.
841 - rxvt{,-unicode}{,-256color}
842 - # xterm users are common, as is terminals re-using/spoofing it.
843 - xterm xterm-{,256}color
844 - # screen is common (and reused by tmux).
845 - screen{,-256color}
846 - screen.xterm-256color
847 - )
848 - local x
849 - for x in "${terms[@]}"; do
850 - local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null)
851 - local basedir=$(basename "$(dirname "${termfile}")")
852 -
853 - if [[ -n ${termfile} ]] ; then
854 - dodir "/etc/terminfo/${basedir}"
855 - mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die
856 - dosym "../../../../etc/terminfo/${basedir}/${x}" \
857 - "/usr/share/terminfo/${basedir}/${x}"
858 - fi
859 - done
860 -
861 - echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses
862 -
863 - use minimal && rm -r "${ED}"/usr/share/terminfo*
864 - # Because ncurses5-config --terminfo returns the directory we keep it
865 - # bug #245374
866 - keepdir /usr/share/terminfo
867 -
868 - cd "${S}" || die
869 - dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc
870 - if use doc ; then
871 - docinto html
872 - dodoc -r doc/html/
873 - fi
874 -}
875 -
876 -pkg_preinst() {
877 - preserve_old_lib /$(get_libdir)/libncurses.so.5
878 - preserve_old_lib /$(get_libdir)/libncursesw.so.5
879 -}
880 -
881 -pkg_postinst() {
882 - preserve_old_lib_notify /$(get_libdir)/libncurses.so.5
883 - preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5
884 -}
885
886 diff --git a/sys-libs/ncurses/ncurses-6.3_p20220917-r1.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220917-r1.ebuild
887 deleted file mode 100644
888 index f412a82933aa..000000000000
889 --- a/sys-libs/ncurses/ncurses-6.3_p20220917-r1.ebuild
890 +++ /dev/null
891 @@ -1,464 +0,0 @@
892 -# Copyright 1999-2022 Gentoo Authors
893 -# Distributed under the terms of the GNU General Public License v2
894 -
895 -EAPI=7
896 -
897 -VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc
898 -inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig
899 -
900 -MY_PV="${PV:0:3}"
901 -MY_P="${PN}-${MY_PV}"
902 -DESCRIPTION="Console display library"
903 -HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/"
904 -# Keep invisible-mirror.net here as some users reported 403 forbidden with invisible-island.net
905 -SRC_URI="
906 - mirror://gnu/ncurses/${MY_P}.tar.gz
907 - https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz
908 - https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz
909 - verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig )
910 -"
911 -
912 -GENTOO_PATCH_DEV=sam
913 -GENTOO_PATCH_PV=6.3_p20220910
914 -GENTOO_PATCH_NAME=${PN}-${GENTOO_PATCH_PV}-patches
915 -
916 -# Populated below in a loop. Do not add patches manually here.
917 -UPSTREAM_PATCHES=()
918 -
919 -if [[ ${PV} == *_p* ]] ; then
920 - # Sometimes, after releases, there's no megapatch available yet.
921 - #
922 - # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/:
923 - #
924 - # "At times (generally to mark a relatively stable point), I create a rollup
925 - # patch, which consists of all changes from the release through the current date."
926 - #
927 - # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html,
928 - # the patches are considered to be acceptable to use after some testing. They
929 - # are both for development but also bug fixes.
930 - #
931 - # This array should contain a list of all the snapshots since the last
932 - # release if there's no megapatch available yet.
933 - PATCH_DATES=(
934 - 20211026
935 - 20211030
936 - 20211106
937 - 20211113
938 - 20211115
939 - 20211120
940 - 20211127
941 - 20211204
942 - 20211211
943 - 20211219
944 - 20211225
945 - 20220101
946 - 20220115
947 - 20220122
948 - 20220129
949 - 20220205
950 - 20220212
951 - 20220219
952 - 20220226
953 - 20220305
954 - 20220312
955 - 20220319
956 - 20220326
957 - 20220402
958 - 20220409
959 - 20220416
960 - 20220423
961 - 20220430
962 - 20220501
963 - 20220507
964 - 20220514
965 - 20220521
966 - 20220529
967 - 20220604
968 - 20220612
969 - 20220618
970 - 20220625
971 - 20220703
972 - 20220709
973 - 20220716
974 - 20220724
975 - 20220729
976 - 20220806
977 - 20220813
978 - 20220820
979 - 20220827
980 - 20220903
981 - 20220910
982 -
983 - # Latest patch is just _pN = $(ver_cut 4)
984 - $(ver_cut 4)
985 - )
986 -
987 - if [[ -z ${PATCH_DATES[@]} ]] ; then
988 - SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz"
989 - SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz.asc"
990 -
991 - # If we have a rollup patch, use that instead of the individual ones.
992 - UPSTREAM_PATCHES+=( "${WORKDIR}"/${P/_p/-}-patch.sh )
993 - else
994 - patch_url=
995 - my_patch_index=
996 -
997 - # We keep a bunch of mirrors here as we've had reports of invisible*.net
998 - # being 403 forbidden for some users.
999 - urls=(
1000 - "https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s"
1001 - "https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-%s"
1002 - "https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${MY_P}-%s"
1003 - )
1004 -
1005 - for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do
1006 - for url in "${urls[@]}" ; do
1007 - patch_url="$(printf ${urls} ${PATCH_DATES[${my_patch_index}]}.patch.gz)"
1008 - SRC_URI+=" ${patch_url}"
1009 - SRC_URI+=" verify-sig? ( ${patch_url}.asc )"
1010 - done
1011 -
1012 - UPSTREAM_PATCHES+=( "${WORKDIR}"/${MY_P}-${PATCH_DATES[${my_patch_index}]}.patch )
1013 - done
1014 -
1015 - unset patch_url
1016 - unset my_patch_index
1017 - unset urls
1018 - fi
1019 -
1020 - SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz"
1021 -fi
1022 -
1023 -LICENSE="MIT"
1024 -# The subslot reflects the SONAME.
1025 -SLOT="0/6"
1026 -#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
1027 -IUSE="ada +cxx debug doc gpm minimal profile +stack-realign static-libs test tinfo trace"
1028 -RESTRICT="!test? ( test )"
1029 -
1030 -DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )"
1031 -# Block the older ncurses that installed all files w/SLOT=5, bug #557472
1032 -RDEPEND="${DEPEND}
1033 - !<=sys-libs/ncurses-5.9-r4:5
1034 - !<sys-libs/slang-2.3.2_pre23
1035 - !<x11-terms/rxvt-unicode-9.06-r3
1036 - !<x11-terms/st-0.6-r1"
1037 -BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
1038 -
1039 -S="${WORKDIR}/${MY_P}"
1040 -
1041 -PATCHES=(
1042 - "${UPSTREAM_PATCHES[@]}"
1043 -
1044 - # When rebasing Gentoo's patchset, please use git from a clean
1045 - # src_unpack with upstream patches already applied. git am
1046 - # the existing patchset and rebase as required. This makes it easier
1047 - # to manage future rebasing & adding new patches.
1048 - #
1049 - # For the same reasons, please include the original configure.in changes,
1050 - # NOT just the generated results!
1051 - "${WORKDIR}"/${GENTOO_PATCH_NAME}
1052 -)
1053 -
1054 -src_unpack() {
1055 - # Avoid trying to verify our own patchset tarball, there's no point
1056 - if use verify-sig ; then
1057 - local file
1058 - for file in ${A} ; do
1059 - if [[ ${file} == ${MY_P}.tar.gz ]] ; then
1060 - verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.sig
1061 - else
1062 - [[ ${file} == @(*${GENTOO_PATCH_NAME}.tar.xz|*.asc|*.sig) ]] && continue
1063 -
1064 - verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.asc
1065 - fi
1066 - done
1067 - fi
1068 -
1069 - default
1070 -}
1071 -
1072 -src_configure() {
1073 - # bug #115036
1074 - unset TERMINFO
1075 -
1076 - tc-export_build_env BUILD_{CC,CPP}
1077 -
1078 - # bug #214642
1079 - BUILD_CPPFLAGS+=" -D_GNU_SOURCE"
1080 -
1081 - # Build the various variants of ncurses -- narrow, wide, and threaded. #510440
1082 - # Order matters here -- we want unicode/thread versions to come last so that the
1083 - # binaries in /usr/bin support both wide and narrow.
1084 - # The naming is also important as we use these directly with filenames and when
1085 - # checking configure flags.
1086 - NCURSES_TARGETS=(
1087 - ncurses
1088 - ncursesw
1089 - ncursest
1090 - ncursestw
1091 - )
1092 -
1093 - # When installing ncurses, we have to use a compatible version of tic.
1094 - # This comes up when cross-compiling, doing multilib builds, upgrading,
1095 - # or installing for the first time. Build a local copy of tic whenever
1096 - # the host version isn't available. bug #249363, bug #557598
1097 - if ! has_version -b "~sys-libs/${P}:0" ; then
1098 - local lbuildflags="-static"
1099 -
1100 - # some toolchains don't quite support static linking
1101 - local dbuildflags="-Wl,-rpath,${WORKDIR}/lib"
1102 - case ${CHOST} in
1103 - *-darwin*) dbuildflags= ;;
1104 - *-solaris*) dbuildflags="-Wl,-R,${WORKDIR}/lib" ;;
1105 - esac
1106 - echo "int main() {}" | \
1107 - $(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \
1108 - || lbuildflags="${dbuildflags}"
1109 -
1110 - # We can't re-use the multilib BUILD_DIR because we run outside of it.
1111 - BUILD_DIR="${WORKDIR}" \
1112 - CC=${BUILD_CC} \
1113 - CHOST=${CBUILD} \
1114 - CFLAGS=${BUILD_CFLAGS} \
1115 - CXXFLAGS=${BUILD_CXXFLAGS} \
1116 - CPPFLAGS=${BUILD_CPPFLAGS} \
1117 - LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \
1118 - do_configure cross --without-shared --with-normal --with-progs
1119 - fi
1120 - multilib-minimal_src_configure
1121 -}
1122 -
1123 -multilib_src_configure() {
1124 - if [[ ${ABI} == x86 ]] ; then
1125 - # For compatibility with older binaries at slight performance cost.
1126 - # bug #616402
1127 - use stack-realign && append-flags -mstackrealign
1128 - fi
1129 -
1130 - local t
1131 - for t in "${NCURSES_TARGETS[@]}" ; do
1132 - do_configure "${t}"
1133 - done
1134 -}
1135 -
1136 -do_configure() {
1137 - local target=$1
1138 - shift
1139 -
1140 - mkdir "${BUILD_DIR}/${target}" || die
1141 - cd "${BUILD_DIR}/${target}" || die
1142 -
1143 - local conf=(
1144 - # We need the basic terminfo files in /etc, bug #37026. We will
1145 - # add '--with-terminfo-dirs' and then populate /etc/terminfo in
1146 - # src_install() ...
1147 - --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo"
1148 -
1149 - # Enable installation of .pc files.
1150 - --enable-pc-files
1151 - # This path is used to control where the .pc files are installed.
1152 - --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig"
1153 -
1154 - # Now the rest of the various standard flags.
1155 - --with-shared
1156 - # (Originally disabled until bug #245417 is sorted out, but now
1157 - # just keeping it off for good, given nobody needed it until now
1158 - # (2022) and we're trying to phase out bdb.)
1159 - --without-hashed-db
1160 - $(use_with ada)
1161 - $(use_with cxx)
1162 - $(use_with cxx cxx-binding)
1163 - --with-cxx-shared
1164 - $(use_with debug)
1165 - $(use_with profile)
1166 - # The configure script uses ldd to parse the linked output which
1167 - # is flaky for cross-compiling/multilib/ldd versions/etc...
1168 - $(use_with gpm gpm libgpm.so.1)
1169 - # Required for building on mingw-w64, and possibly other windows
1170 - # platforms, bug #639670
1171 - $(use_enable kernel_Winnt term-driver)
1172 - --disable-termcap
1173 - --enable-symlinks
1174 - --with-rcs-ids
1175 - --with-manpage-format=normal
1176 - --enable-const
1177 - --enable-colorfgbg
1178 - --enable-hard-tabs
1179 - --enable-echo
1180 - $(use_enable !ada warnings)
1181 - $(use_with debug assertions)
1182 - $(use_enable !debug leaks)
1183 - $(use_with debug expanded)
1184 - $(use_with !debug macros)
1185 - $(multilib_native_with progs)
1186 - $(use_with test tests)
1187 - $(use_with trace)
1188 - $(use_with tinfo termlib)
1189 - --disable-stripping
1190 - --disable-pkg-ldflags
1191 - )
1192 -
1193 - if [[ ${target} == ncurses*w ]] ; then
1194 - conf+=( --enable-widec )
1195 - else
1196 - conf+=( --disable-widec )
1197 - fi
1198 - if [[ ${target} == ncursest* ]] ; then
1199 - conf+=( --with-{pthread,reentrant} )
1200 - else
1201 - conf+=( --without-{pthread,reentrant} )
1202 - fi
1203 -
1204 - # Make sure each variant goes in a unique location.
1205 - if [[ ${target} == "ncurses" ]] ; then
1206 - # "ncurses" variant goes into "${EPREFIX}"/usr/include
1207 - # It is needed on Prefix because the configure script appends
1208 - # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr.
1209 - conf+=( --enable-overwrite )
1210 - else
1211 - conf+=( --includedir="${EPREFIX}"/usr/include/${target} )
1212 - fi
1213 - # See comments in src_configure.
1214 - if [[ ${target} != "cross" ]] ; then
1215 - local cross_path="${WORKDIR}/cross"
1216 - [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic"
1217 - fi
1218 -
1219 - ECONF_SOURCE="${S}" econf "${conf[@]}" "$@"
1220 -}
1221 -
1222 -src_compile() {
1223 - # See comments in src_configure.
1224 - if ! has_version -b "~sys-libs/${P}:0" ; then
1225 - # We could possibly merge these two branches but opting to be
1226 - # conservative when merging some of the Prefix changes.
1227 -
1228 - if [[ ${CHOST} == *-cygwin* ]] && ! multilib_is_native_abi ; then
1229 - # We make 'tic$(x)' here, for Cygwin having x=".exe".
1230 - BUILD_DIR="${WORKDIR}" \
1231 - do_compile cross -C progs all PROGS='tic$(x)'
1232 - else
1233 - BUILD_DIR="${WORKDIR}" \
1234 - do_compile cross -C progs tic
1235 - fi
1236 - fi
1237 -
1238 - multilib-minimal_src_compile
1239 -}
1240 -
1241 -multilib_src_compile() {
1242 - local t
1243 - for t in "${NCURSES_TARGETS[@]}" ; do
1244 - do_compile "${t}"
1245 - done
1246 -}
1247 -
1248 -do_compile() {
1249 - local target=$1
1250 - shift
1251 -
1252 - cd "${BUILD_DIR}/${target}" || die
1253 -
1254 - # A little hack to fix parallel builds ... they break when
1255 - # generating sources so if we generate the sources first (in
1256 - # non-parallel), we can then build the rest of the package
1257 - # in parallel. This is not really a perf hit since the source
1258 - # generation is quite small.
1259 - emake -j1 sources
1260 -
1261 - # For some reason, sources depends on pc-files which depends on
1262 - # compiled libraries which depends on sources which ...
1263 - # Manually delete the pc-files file so the install step will
1264 - # create the .pc files we want.
1265 - rm -f misc/pc-files || die
1266 - emake "$@"
1267 -}
1268 -
1269 -multilib_src_install() {
1270 - local target
1271 - for target in "${NCURSES_TARGETS[@]}" ; do
1272 - emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install
1273 - done
1274 -
1275 - # Move main libraries into /.
1276 - if multilib_is_native_abi ; then
1277 - gen_usr_ldscript -a \
1278 - "${NCURSES_TARGETS[@]}" \
1279 - $(usex tinfo 'tinfow tinfo' '')
1280 - fi
1281 -
1282 - # Don't delete '*.dll.a', needed for linking, bug #631468
1283 - if ! use static-libs; then
1284 - find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die
1285 - fi
1286 -
1287 - # Build fails to create this ...
1288 - # -FIXME-
1289 - # Ugly hackaround for riscv having two parts libdir (bug #689240)
1290 - # Replace this hack with an official solution once we have one...
1291 - # -FIXME-
1292 - dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \
1293 - /usr/$(get_libdir)/terminfo
1294 -
1295 - # Remove obsolete libcurses symlink that is created by the build
1296 - # system. Technically, this could be also achieved
1297 - # via --disable-overwrite but it also moves headers implicitly,
1298 - # and we do not want to do this yet.
1299 - # bug #836696
1300 - rm "${ED}"/usr/$(get_libdir)/libcurses* || die
1301 -}
1302 -
1303 -multilib_src_install_all() {
1304 - # We need the basic terminfo files in /etc for embedded/recovery, bug #37026
1305 - einfo "Installing basic terminfo files in /etc..."
1306 - local terms=(
1307 - # Dumb/simple values that show up when using the in-kernel VT.
1308 - ansi console dumb linux
1309 - vt{52,100,102,200,220}
1310 - # [u]rxvt users used to be pretty common. Probably should drop this
1311 - # since upstream is dead and people are moving away from it.
1312 - rxvt{,-unicode}{,-256color}
1313 - # xterm users are common, as is terminals re-using/spoofing it.
1314 - xterm xterm-{,256}color
1315 - # screen is common (and reused by tmux).
1316 - screen{,-256color}
1317 - screen.xterm-256color
1318 - )
1319 - local x
1320 - for x in "${terms[@]}"; do
1321 - local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null)
1322 - local basedir=$(basename "$(dirname "${termfile}")")
1323 -
1324 - if [[ -n ${termfile} ]] ; then
1325 - dodir "/etc/terminfo/${basedir}"
1326 - mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die
1327 - dosym "../../../../etc/terminfo/${basedir}/${x}" \
1328 - "/usr/share/terminfo/${basedir}/${x}"
1329 - fi
1330 - done
1331 -
1332 - echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses
1333 -
1334 - use minimal && rm -r "${ED}"/usr/share/terminfo*
1335 - # Because ncurses5-config --terminfo returns the directory we keep it
1336 - # bug #245374
1337 - keepdir /usr/share/terminfo
1338 -
1339 - cd "${S}" || die
1340 - dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc
1341 - if use doc ; then
1342 - docinto html
1343 - dodoc -r doc/html/
1344 - fi
1345 -}
1346 -
1347 -pkg_preinst() {
1348 - preserve_old_lib /$(get_libdir)/libncurses.so.5
1349 - preserve_old_lib /$(get_libdir)/libncursesw.so.5
1350 -}
1351 -
1352 -pkg_postinst() {
1353 - preserve_old_lib_notify /$(get_libdir)/libncurses.so.5
1354 - preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5
1355 -}
1356
1357 diff --git a/sys-libs/ncurses/ncurses-6.3_p20220917.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220917.ebuild
1358 deleted file mode 100644
1359 index ac56ad1e72d6..000000000000
1360 --- a/sys-libs/ncurses/ncurses-6.3_p20220917.ebuild
1361 +++ /dev/null
1362 @@ -1,462 +0,0 @@
1363 -# Copyright 1999-2022 Gentoo Authors
1364 -# Distributed under the terms of the GNU General Public License v2
1365 -
1366 -EAPI=7
1367 -
1368 -VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc
1369 -inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig
1370 -
1371 -MY_PV="${PV:0:3}"
1372 -MY_P="${PN}-${MY_PV}"
1373 -DESCRIPTION="Console display library"
1374 -HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/"
1375 -# Keep invisible-mirror.net here as some users reported 403 forbidden with invisible-island.net
1376 -SRC_URI="
1377 - mirror://gnu/ncurses/${MY_P}.tar.gz
1378 - https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz
1379 - https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz
1380 - verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig )
1381 -"
1382 -
1383 -GENTOO_PATCH_DEV=sam
1384 -GENTOO_PATCH_PV=6.3_p20220910
1385 -GENTOO_PATCH_NAME=${PN}-${GENTOO_PATCH_PV}-patches
1386 -
1387 -# Populated below in a loop. Do not add patches manually here.
1388 -UPSTREAM_PATCHES=()
1389 -
1390 -if [[ ${PV} == *_p* ]] ; then
1391 - # Sometimes, after releases, there's no megapatch available yet.
1392 - #
1393 - # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/:
1394 - #
1395 - # "At times (generally to mark a relatively stable point), I create a rollup
1396 - # patch, which consists of all changes from the release through the current date."
1397 - #
1398 - # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html,
1399 - # the patches are considered to be acceptable to use after some testing. They
1400 - # are both for development but also bug fixes.
1401 - #
1402 - # This array should contain a list of all the snapshots since the last
1403 - # release if there's no megapatch available yet.
1404 - PATCH_DATES=(
1405 - 20211026
1406 - 20211030
1407 - 20211106
1408 - 20211113
1409 - 20211115
1410 - 20211120
1411 - 20211127
1412 - 20211204
1413 - 20211211
1414 - 20211219
1415 - 20211225
1416 - 20220101
1417 - 20220115
1418 - 20220122
1419 - 20220129
1420 - 20220205
1421 - 20220212
1422 - 20220219
1423 - 20220226
1424 - 20220305
1425 - 20220312
1426 - 20220319
1427 - 20220326
1428 - 20220402
1429 - 20220409
1430 - 20220416
1431 - 20220423
1432 - 20220430
1433 - 20220501
1434 - 20220507
1435 - 20220514
1436 - 20220521
1437 - 20220529
1438 - 20220604
1439 - 20220612
1440 - 20220618
1441 - 20220625
1442 - 20220703
1443 - 20220709
1444 - 20220716
1445 - 20220724
1446 - 20220729
1447 - 20220806
1448 - 20220813
1449 - 20220820
1450 - 20220827
1451 - 20220903
1452 - 20220910
1453 -
1454 - # Latest patch is just _pN = $(ver_cut 4)
1455 - $(ver_cut 4)
1456 - )
1457 -
1458 - if [[ -z ${PATCH_DATES[@]} ]] ; then
1459 - SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz"
1460 - SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz.asc"
1461 -
1462 - # If we have a rollup patch, use that instead of the individual ones.
1463 - UPSTREAM_PATCHES+=( "${WORKDIR}"/${P/_p/-}-patch.sh )
1464 - else
1465 - patch_url=
1466 - my_patch_index=
1467 -
1468 - # We keep a bunch of mirrors here as we've had reports of invisible*.net
1469 - # being 403 forbidden for some users.
1470 - urls=(
1471 - "https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s"
1472 - "https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-%s"
1473 - "https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${MY_P}-%s"
1474 - )
1475 -
1476 - for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do
1477 - for url in "${urls[@]}" ; do
1478 - patch_url="$(printf ${urls} ${PATCH_DATES[${my_patch_index}]}.patch.gz)"
1479 - SRC_URI+=" ${patch_url}"
1480 - SRC_URI+=" verify-sig? ( ${patch_url}.asc )"
1481 - done
1482 -
1483 - UPSTREAM_PATCHES+=( "${WORKDIR}"/${MY_P}-${PATCH_DATES[${my_patch_index}]}.patch )
1484 - done
1485 -
1486 - unset patch_url
1487 - unset my_patch_index
1488 - unset urls
1489 - fi
1490 -
1491 - SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz"
1492 -fi
1493 -
1494 -LICENSE="MIT"
1495 -# The subslot reflects the SONAME.
1496 -SLOT="0/6"
1497 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
1498 -IUSE="ada +cxx debug doc gpm minimal profile +stack-realign static-libs test tinfo trace"
1499 -RESTRICT="!test? ( test )"
1500 -
1501 -DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )"
1502 -# Block the older ncurses that installed all files w/SLOT=5, bug #557472
1503 -RDEPEND="${DEPEND}
1504 - !<=sys-libs/ncurses-5.9-r4:5
1505 - !<sys-libs/slang-2.3.2_pre23
1506 - !<x11-terms/rxvt-unicode-9.06-r3
1507 - !<x11-terms/st-0.6-r1"
1508 -BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
1509 -
1510 -S="${WORKDIR}/${MY_P}"
1511 -
1512 -PATCHES=(
1513 - "${UPSTREAM_PATCHES[@]}"
1514 -
1515 - # When rebasing Gentoo's patchset, please use git from a clean
1516 - # src_unpack with upstream patches already applied. git am
1517 - # the existing patchset and rebase as required. This makes it easier
1518 - # to manage future rebasing & adding new patches.
1519 - #
1520 - # For the same reasons, please include the original configure.in changes,
1521 - # NOT just the generated results!
1522 - "${WORKDIR}"/${GENTOO_PATCH_NAME}
1523 -)
1524 -
1525 -src_unpack() {
1526 - # Avoid trying to verify our own patchset tarball, there's no point
1527 - if use verify-sig ; then
1528 - local file
1529 - for file in ${A} ; do
1530 - if [[ ${file} == ${MY_P}.tar.gz ]] ; then
1531 - verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.sig
1532 - else
1533 - [[ ${file} == @(*${GENTOO_PATCH_NAME}.tar.xz|*.asc|*.sig) ]] && continue
1534 -
1535 - verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.asc
1536 - fi
1537 - done
1538 - fi
1539 -
1540 - default
1541 -}
1542 -
1543 -src_configure() {
1544 - # bug #115036
1545 - unset TERMINFO
1546 -
1547 - tc-export_build_env BUILD_{CC,CPP}
1548 -
1549 - # bug #214642
1550 - BUILD_CPPFLAGS+=" -D_GNU_SOURCE"
1551 -
1552 - # Build the various variants of ncurses -- narrow, wide, and threaded. #510440
1553 - # Order matters here -- we want unicode/thread versions to come last so that the
1554 - # binaries in /usr/bin support both wide and narrow.
1555 - # The naming is also important as we use these directly with filenames and when
1556 - # checking configure flags.
1557 - NCURSES_TARGETS=(
1558 - ncurses
1559 - ncursesw
1560 - ncursest
1561 - ncursestw
1562 - )
1563 -
1564 - # When installing ncurses, we have to use a compatible version of tic.
1565 - # This comes up when cross-compiling, doing multilib builds, upgrading,
1566 - # or installing for the first time. Build a local copy of tic whenever
1567 - # the host version isn't available. bug #249363, bug #557598
1568 - if ! has_version -b "~sys-libs/${P}:0" ; then
1569 - local lbuildflags="-static"
1570 -
1571 - # some toolchains don't quite support static linking
1572 - local dbuildflags="-Wl,-rpath,${WORKDIR}/lib"
1573 - case ${CHOST} in
1574 - *-darwin*) dbuildflags= ;;
1575 - *-solaris*) dbuildflags="-Wl,-R,${WORKDIR}/lib" ;;
1576 - esac
1577 - echo "int main() {}" | \
1578 - $(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \
1579 - || lbuildflags="${dbuildflags}"
1580 -
1581 - # We can't re-use the multilib BUILD_DIR because we run outside of it.
1582 - BUILD_DIR="${WORKDIR}" \
1583 - CC=${BUILD_CC} \
1584 - CHOST=${CBUILD} \
1585 - CFLAGS=${BUILD_CFLAGS} \
1586 - CXXFLAGS=${BUILD_CXXFLAGS} \
1587 - CPPFLAGS=${BUILD_CPPFLAGS} \
1588 - LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \
1589 - do_configure cross --without-shared --with-normal --with-progs
1590 - fi
1591 - multilib-minimal_src_configure
1592 -}
1593 -
1594 -multilib_src_configure() {
1595 - if [[ ${ABI} == x86 ]] ; then
1596 - # For compatibility with older binaries at slight performance cost.
1597 - # bug #616402
1598 - use stack-realign && append-flags -mstackrealign
1599 - fi
1600 -
1601 - local t
1602 - for t in "${NCURSES_TARGETS[@]}" ; do
1603 - do_configure "${t}"
1604 - done
1605 -}
1606 -
1607 -do_configure() {
1608 - local target=$1
1609 - shift
1610 -
1611 - mkdir "${BUILD_DIR}/${target}" || die
1612 - cd "${BUILD_DIR}/${target}" || die
1613 -
1614 - local conf=(
1615 - # We need the basic terminfo files in /etc, bug #37026. We will
1616 - # add '--with-terminfo-dirs' and then populate /etc/terminfo in
1617 - # src_install() ...
1618 - --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo"
1619 -
1620 - # Enable installation of .pc files.
1621 - --enable-pc-files
1622 - # This path is used to control where the .pc files are installed.
1623 - --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig"
1624 -
1625 - # Now the rest of the various standard flags.
1626 - --with-shared
1627 - # (Originally disabled until bug #245417 is sorted out, but now
1628 - # just keeping it off for good, given nobody needed it until now
1629 - # (2022) and we're trying to phase out bdb.)
1630 - --without-hashed-db
1631 - $(use_with ada)
1632 - $(use_with cxx)
1633 - $(use_with cxx cxx-binding)
1634 - --with-cxx-shared
1635 - $(use_with debug)
1636 - $(use_with profile)
1637 - # The configure script uses ldd to parse the linked output which
1638 - # is flaky for cross-compiling/multilib/ldd versions/etc...
1639 - $(use_with gpm gpm libgpm.so.1)
1640 - # Required for building on mingw-w64, and possibly other windows
1641 - # platforms, bug #639670
1642 - $(use_enable kernel_Winnt term-driver)
1643 - --disable-termcap
1644 - --enable-symlinks
1645 - --with-rcs-ids
1646 - --with-manpage-format=normal
1647 - --enable-const
1648 - --enable-colorfgbg
1649 - --enable-hard-tabs
1650 - --enable-echo
1651 - $(use_enable !ada warnings)
1652 - $(use_with debug assertions)
1653 - $(use_enable !debug leaks)
1654 - $(use_with debug expanded)
1655 - $(use_with !debug macros)
1656 - $(multilib_native_with progs)
1657 - $(use_with test tests)
1658 - $(use_with trace)
1659 - $(use_with tinfo termlib)
1660 - --disable-stripping
1661 - --disable-pkg-ldflags
1662 - )
1663 -
1664 - if [[ ${target} == ncurses*w ]] ; then
1665 - conf+=( --enable-widec )
1666 - else
1667 - conf+=( --disable-widec )
1668 - fi
1669 - if [[ ${target} == ncursest* ]] ; then
1670 - conf+=( --with-{pthread,reentrant} )
1671 - else
1672 - conf+=( --without-{pthread,reentrant} )
1673 - fi
1674 -
1675 - # Make sure each variant goes in a unique location.
1676 - if [[ ${target} == "ncurses" ]] ; then
1677 - # "ncurses" variant goes into "${EPREFIX}"/usr/include
1678 - # It is needed on Prefix because the configure script appends
1679 - # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr.
1680 - conf+=( --enable-overwrite )
1681 - else
1682 - conf+=( --includedir="${EPREFIX}"/usr/include/${target} )
1683 - fi
1684 - # See comments in src_configure.
1685 - if [[ ${target} != "cross" ]] ; then
1686 - local cross_path="${WORKDIR}/cross"
1687 - [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic"
1688 - fi
1689 -
1690 - ECONF_SOURCE="${S}" econf "${conf[@]}" "$@"
1691 -}
1692 -
1693 -src_compile() {
1694 - # See comments in src_configure.
1695 - if ! has_version -b "~sys-libs/${P}:0" ; then
1696 - # We could possibly merge these two branches but opting to be
1697 - # conservative when merging some of the Prefix changes.
1698 -
1699 - if [[ ${CHOST} == *-cygwin* ]] && ! multilib_is_native_abi ; then
1700 - # We make 'tic$(x)' here, for Cygwin having x=".exe".
1701 - BUILD_DIR="${WORKDIR}" \
1702 - do_compile cross -C progs all PROGS='tic$(x)'
1703 - else
1704 - BUILD_DIR="${WORKDIR}" \
1705 - do_compile cross -C progs tic
1706 - fi
1707 - fi
1708 -
1709 - multilib-minimal_src_compile
1710 -}
1711 -
1712 -multilib_src_compile() {
1713 - local t
1714 - for t in "${NCURSES_TARGETS[@]}" ; do
1715 - do_compile "${t}"
1716 - done
1717 -}
1718 -
1719 -do_compile() {
1720 - local target=$1
1721 - shift
1722 -
1723 - cd "${BUILD_DIR}/${target}" || die
1724 -
1725 - # A little hack to fix parallel builds ... they break when
1726 - # generating sources so if we generate the sources first (in
1727 - # non-parallel), we can then build the rest of the package
1728 - # in parallel. This is not really a perf hit since the source
1729 - # generation is quite small.
1730 - emake -j1 sources
1731 -
1732 - # For some reason, sources depends on pc-files which depends on
1733 - # compiled libraries which depends on sources which ...
1734 - # Manually delete the pc-files file so the install step will
1735 - # create the .pc files we want.
1736 - rm -f misc/pc-files || die
1737 - emake "$@"
1738 -}
1739 -
1740 -multilib_src_install() {
1741 - local target
1742 - for target in "${NCURSES_TARGETS[@]}" ; do
1743 - emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install
1744 - done
1745 -
1746 - # Move main libraries into /.
1747 - if multilib_is_native_abi ; then
1748 - gen_usr_ldscript -a \
1749 - "${NCURSES_TARGETS[@]}" \
1750 - $(usex tinfo 'tinfow tinfo' '')
1751 - fi
1752 -
1753 - if ! tc-is-static-only ; then
1754 - # Provide a link for -lcurses.
1755 - ln -sf libncurses$(get_libname) "${ED}"/usr/$(get_libdir)/libcurses$(get_libname) || die
1756 - fi
1757 -
1758 - # Don't delete '*.dll.a', needed for linking, bug #631468
1759 - if ! use static-libs; then
1760 - find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die
1761 - fi
1762 -
1763 - # Build fails to create this ...
1764 - # -FIXME-
1765 - # Ugly hackaround for riscv having two parts libdir (bug #689240)
1766 - # Replace this hack with an official solution once we have one...
1767 - # -FIXME-
1768 - dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \
1769 - /usr/$(get_libdir)/terminfo
1770 -}
1771 -
1772 -multilib_src_install_all() {
1773 - # We need the basic terminfo files in /etc for embedded/recovery, bug #37026
1774 - einfo "Installing basic terminfo files in /etc..."
1775 - local terms=(
1776 - # Dumb/simple values that show up when using the in-kernel VT.
1777 - ansi console dumb linux
1778 - vt{52,100,102,200,220}
1779 - # [u]rxvt users used to be pretty common. Probably should drop this
1780 - # since upstream is dead and people are moving away from it.
1781 - rxvt{,-unicode}{,-256color}
1782 - # xterm users are common, as is terminals re-using/spoofing it.
1783 - xterm xterm-{,256}color
1784 - # screen is common (and reused by tmux).
1785 - screen{,-256color}
1786 - screen.xterm-256color
1787 - )
1788 - local x
1789 - for x in "${terms[@]}"; do
1790 - local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null)
1791 - local basedir=$(basename "$(dirname "${termfile}")")
1792 -
1793 - if [[ -n ${termfile} ]] ; then
1794 - dodir "/etc/terminfo/${basedir}"
1795 - mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die
1796 - dosym "../../../../etc/terminfo/${basedir}/${x}" \
1797 - "/usr/share/terminfo/${basedir}/${x}"
1798 - fi
1799 - done
1800 -
1801 - echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses
1802 -
1803 - use minimal && rm -r "${ED}"/usr/share/terminfo*
1804 - # Because ncurses5-config --terminfo returns the directory we keep it
1805 - # bug #245374
1806 - keepdir /usr/share/terminfo
1807 -
1808 - cd "${S}" || die
1809 - dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc
1810 - if use doc ; then
1811 - docinto html
1812 - dodoc -r doc/html/
1813 - fi
1814 -}
1815 -
1816 -pkg_preinst() {
1817 - preserve_old_lib /$(get_libdir)/libncurses.so.5
1818 - preserve_old_lib /$(get_libdir)/libncursesw.so.5
1819 -}
1820 -
1821 -pkg_postinst() {
1822 - preserve_old_lib_notify /$(get_libdir)/libncurses.so.5
1823 - preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5
1824 -}