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: Fri, 26 Aug 2022 06:36:52
Message-Id: 1661495739.60e01c45dba20077dc31fd1bf490806bdb87cd61.sam@gentoo
1 commit: 60e01c45dba20077dc31fd1bf490806bdb87cd61
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Fri Aug 26 06:35:11 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Fri Aug 26 06:35:39 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=60e01c45
7
8 sys-libs/ncurses: add 6.3_p20220820
9
10 Signed-off-by: Sam James <sam <AT> gentoo.org>
11
12 sys-libs/ncurses/Manifest | 36 ++
13 sys-libs/ncurses/ncurses-6.3_p20220820-r1.ebuild | 426 +++++++++++++++++++++++
14 sys-libs/ncurses/ncurses-6.3_p20220820.ebuild | 424 ++++++++++++++++++++++
15 3 files changed, 886 insertions(+)
16
17 diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest
18 index 3631d0295529..5bb87254f0a1 100644
19 --- a/sys-libs/ncurses/Manifest
20 +++ b/sys-libs/ncurses/Manifest
21 @@ -54,5 +54,41 @@ DIST ncurses-6.3-20220416.patch.gz 67896 BLAKE2B c95a993f51beb87bb9891bd0eee0872
22 DIST ncurses-6.3-20220416.patch.gz.asc 729 BLAKE2B 52ab1bfcac4b5d7b3733c399509ba4c0a6b9531c02a05846d39344488ba3a9196326a8126db225845a3ff1ca3fdd609fa1d9264583e7e57e28d2f4e3b58b4389 SHA512 c5a60d2ef9996c02264e6656a966f4be910a3acbee777a4ff2a5131efd156bdf1d32418a39d6e3c07fcbb59c75554d4cc1e7e9f84f5b59f69e7e4c17fafc749f
23 DIST ncurses-6.3-20220423.patch.gz 3394 BLAKE2B ac93810f1e826fc82de72a85effe5479576af14fa86e0dd08b8823b6f4652922f79242e9c867b1c864f0049c9e6d9864d6efc9282ab1e734dc316cac05655f4c SHA512 5dc87f70793d8319c5ee2f07c7f9432b1128e05f3aa2841a74deeaf294e46859f4198483dc783bb80e5e98f81f05cfef148df75a5abc5acfa69a9d6ad3abb702
24 DIST ncurses-6.3-20220423.patch.gz.asc 729 BLAKE2B 7225d28f7e61ae584183e98d8c93c7d470e96984aea4e462333f115c329a8c187927196447b8368949986d4b8c96086f5839fde5b442936e76ac797685ee109b SHA512 b0eecbdad448f193fb255bec2fa458d3fea972c181891882d8dc1e09cc325ecda38e98f2d410993f768f513f3a48b9be4b36dbb2919d82a778496b8ef2051565
25 +DIST ncurses-6.3-20220430.patch.gz 8987 BLAKE2B bd9d2b39670718277dd71b22fab41b311ef3732b4c3ccf77c796dafd24f7e0ae3a7a759340fa734425728b32ae6b4719b77862d64155fff906a9be01eda14b69 SHA512 7bab780d96404c7e368363ce8a41d5fa1668df9daed62753112541a1ee1da04ef6f3d8d3c06a7442b704c477bbff1b4544f419e532ec7bbfbddd630f66f138ce
26 +DIST ncurses-6.3-20220430.patch.gz.asc 729 BLAKE2B 8308cf7483087d516756e8a16dd29e5137efc35bce1cb73454b022302dfb77da92357aa0a716dccd0be83534a92467837d199deb1f7765da57323dd1cf95ed92 SHA512 c022fdae0880d56bee1fcd9076e64619bbdf09737484f89fab4c7c5d2c4b4fad236e42cc30c9557463cfd05a9c1d7b87bf3a5aa2904a79ba5a071463f3ac422d
27 +DIST ncurses-6.3-20220501.patch.gz 1920 BLAKE2B d4b3b23219d43bbaeb42fbe44034f5f0cfd2c24527ab8690f882f42dbd9855d4686a49734d3b2e5f1c6692847149bd6b62fd9ad9d3dd283156ea39441334fc65 SHA512 43b91e96aa067960aee3c42f65bd0ef91ad78360f30a25cb0637f96ad69d40ccf943c888d982521c6d1851fe4590692ecf6cdb4467757a33e901f53ea2e6eac0
28 +DIST ncurses-6.3-20220501.patch.gz.asc 729 BLAKE2B d32d3ecb5c6f91943179799eccfd536d7a57739dcac62dd7ae9bbf1b4a0491aa4aff7ae147e9e9353ad37bba89475f0d0a408cfa41b3812a48c42055240f1a6c SHA512 177951901957534f78cd2d71045ff8d9457fee426aea830739ece24d69689605c9f2b99be0fbb6d9ca34d6f5894a7bfb594faa2e7a69a87def44695988548375
29 +DIST ncurses-6.3-20220507.patch.gz 7625 BLAKE2B a7598b9b5b2f6d871e7eb8b11de39964954222a2837377e656e9d1f83002ef47478bf7776b54fc63a085de265f9be1b60d0b039ec77c5c3eb01107ff9158ecad SHA512 f688c38a809f60734efbf5bd07645faa4716c9b263d5edb284ae9a2f2cde5284b8698dd5a3988f433b969e9d26e74451f5c996ada2d7aa7760177d7f9c104f19
30 +DIST ncurses-6.3-20220507.patch.gz.asc 729 BLAKE2B 5653edd427ead8dc6540b45860380a8066bb3b8ba3015b0858e57c8696defdd99e6d19aa1a6ec269ddfea7a97630a901c4e29680a847070503d4659f9d533dd0 SHA512 f66ae09c989a229d7a8faf9bef7764de08f9a9cd9ffb8b35bfc7421cc8b942428bfdb8918c6f038d3f5e1697d1cdf49a02218b05175515b4e0bf29ed139c3199
31 +DIST ncurses-6.3-20220514.patch.gz 3612 BLAKE2B 73b151ba2e7bbac38067035bfb742d26f7d0e745ef176b7de56e00d930da3bf630030acede3fa6c63fbad41819e7b90f14848a1ea0d2a07473228dbd32ef7f4d SHA512 b69ac7b2469d7b97404a0dd5d57f6a06c88e139b0bf69627d8e1b65373b513544dfd1583d2fc95ed40ec131f49c90667b65ca2c513eccf785ddcc3b470b1dc17
32 +DIST ncurses-6.3-20220514.patch.gz.asc 729 BLAKE2B 6e2acb6ee12785aea5a3d881d6cbbfde0579ea4975d6a2b5a412e1fd8a6fa63df88c20013535e38da7f9fd8b2eddbade80da7a9d80a1e72229d89a042678836a SHA512 3cdd8d9ba80ceb3ac359265a8d8479ed9827c7abaa13562069dc2ed819b933b07a00bbf1a280551d30fc97e8d45bddcf0999d282521541244499873892618b94
33 +DIST ncurses-6.3-20220521.patch.gz 7405 BLAKE2B 788601d52671421c26fc4a6b4c8a5bcdd807a7d88c6636e24a11c70a32f35a7c50bd6f7166f9cc12e30134c49220070c432b3fa72004eb52e15912528d0d7aaf SHA512 58dd6f51e1d9bdb394cc8e86c8f14b953a0749cbd05ae4b114da482dc5c93878ae6fff6f8993194d9ff94461c6e9e38803418812f38d087729d42dff69c738fb
34 +DIST ncurses-6.3-20220521.patch.gz.asc 729 BLAKE2B 34daeb98a3cf36a0c6a471e617f07496fa173d1b57158d9052ebf94e11c65c61b26a8c884c83104cd4e9c62abdc0abf44ecc680c19751bec7c1d2bdd40fe4018 SHA512 a6d1a14032fab5de28df2efedcbc065a07d9c7da1eafa0efd380df42b479c7e9e3a73381fe7d1243e5abad82d3d01dad645b7876fcc16e723aea8d2c6542fb75
35 +DIST ncurses-6.3-20220529.patch.gz 5923 BLAKE2B 88f9b87a426b1384b62234b59b6b4655f6af0a1b0100e17c971e419d2ed1ec3a197b3a44b2b82d6550a62323f71efd0a0774df26bc653a7543f3646d88679470 SHA512 9f8c0b91f98c72e0892e9369e0f95aa56699b27d28d68febf746bac07fab75883461f363cdc6da0bf4c5b340287ba4e4c076b00c89550821990bba059f56d5f4
36 +DIST ncurses-6.3-20220529.patch.gz.asc 729 BLAKE2B af52d71d2b04b11404d5ff468869b7f633c367d10a9a7f43ca198b98fe255b032af837efafafd13dc8aebbfb5f919b453a7850c7d2dcc8b2f5375bbe3e0ee9e9 SHA512 d7aec9551acde75089a097b848125c5f4501751e58c800e40dd5b7234240c039b10de97ad2a70404f9b178a94ee4a3b8484a94fb6aca4599122c6a527161572e
37 +DIST ncurses-6.3-20220604.patch.gz 8200 BLAKE2B ee331e4467071d3f6655df009966f18aae2a25dca3d24272cedf54d7ee50cd2600cee71a835c11983b168b1dabe1193731cffcbab2773b650dd768f6dd8840c4 SHA512 2d0e2139ee9a43de6b4a10df5c44bcf1fed9919c3e254b9ca0d16fb37b0858e14cc10acbb0027522b0cb64f058d61b3aad3b8178fb6d634a4da57f30ed505e95
38 +DIST ncurses-6.3-20220604.patch.gz.asc 729 BLAKE2B b9a9b0d90b6f4a19a9aa9e006b6cf9dad0e927c02605af63c6c67a7025f9090a4b76fbb3e758f11e9a0c2e557ed65851ddbd7c831486c851e1d469d7dd16da8a SHA512 acd57c8b27fce2b04bdadcbf2ff82e34aafcdb72b9b2d3a913abf56467f78ce601c70aae93e4959269656adf5562799ba4d9e4aeb6965f4e57fc37577ffb64bf
39 +DIST ncurses-6.3-20220612.patch.gz 3474 BLAKE2B 67c4820457291e5f325119220631debef475fdf95d66c283616898cb454b281a73e5dee8404c1730b5ca10bc3521a2243f26dadce8c02f082ce1d0fa30c50189 SHA512 ccf89a98a095c6c498170b831cfeff24d1329d7f5007be82463699595e1c6dc01e0b458d456a5b8bda4e8faceced1a4d8f1c1bca7def54a3c6c6c2a2c43e36c6
40 +DIST ncurses-6.3-20220612.patch.gz.asc 729 BLAKE2B ba1dedfa9a4e83bc85716cb89507e73f44750f14bbe41fb439f764b71477d1dd4df600b4111f465aa80bf37adbea75359442eee48e70e90b8715d0f13bbe13ed SHA512 c8260b56019a3c44c7708b9b41e043871eb06a6e8847d085acbf0a901c39f025b51b41f6ade8863b3fa2460c66cc52571880420d454168e742479bbf7769c5c4
41 +DIST ncurses-6.3-20220618.patch.gz 5376 BLAKE2B b4ecfc699c0ad8d5f17f5883aee6a7b700495f8db151e68518ae567fc22afbc738796b99ddcd03c0e0f44036fca459d742a2069e794ab476b1183c970ec4c573 SHA512 1efada728e34ca7d4bf1e73bceea18e2334a27ff09872eadcc63988a9d6e6f1fdc5eab717d114805cc5610ec9b35ca00e54931d6503afd5543d035108c788148
42 +DIST ncurses-6.3-20220618.patch.gz.asc 729 BLAKE2B 9f3b6f6a077b20baa03bec84db9119061777aaa307613b2e22092c743772cc920a3621ac1b0216285f6ebd74737fc09221b8f8103d69dfbf334c5f53e6428054 SHA512 10efd950619625bc673ea88db1bc22d09ddf92910ba204e8bebd029f48f098ec8a35351f368881fcf890d8862fccc3d31b8ba73d1b32acc71722e777f4a3a3c4
43 +DIST ncurses-6.3-20220625.patch.gz 9730 BLAKE2B ac99b401c51b71df71dab8075d0ea29016a4b159e24773704598bdede7d91ad051633869a9bb0a42ad701995895f5acb711731c0954573c29bca0c9efd70bdf7 SHA512 dc707393050116c0351b132d4b20e9782e2e9920c31ffa101518714431a7a424b05ad2cc23bfc977ff96d4cb6199ab6e98e4204803370c0d557ee65cf84ef870
44 +DIST ncurses-6.3-20220625.patch.gz.asc 729 BLAKE2B 67790febe058f9e910ac69472ca91370dccdbdd986665f2f864cce50aa4350f77894b3aec3fd3a080d546a201f17d942e311bbee057ba6979ab7c56e1e2270dd SHA512 c4ed979bc34293ebe6e5b1dab099c8ab5f7d1d6dfdfe877e02b6182756b754706a827ac30a41c163582ca9d79a086df9c9ad6f09a55884dd04752adf37c4064c
45 +DIST ncurses-6.3-20220703.patch.gz 15771 BLAKE2B 8d0b406aee1b432e4a0cedbd68dd86d30d3116c303b72d7e6e4636e870b05f942ae8d8538a0f9118412350718683cbc014f98d5fc22914a14e2eeae740ad89f8 SHA512 68f4e7822077405ee29470a95aa66d284d2defd0e2ccdca12d58e417999b964657ae4170b54977430d859b840998042efe0f36ca41aab007062c53b409b2d467
46 +DIST ncurses-6.3-20220703.patch.gz.asc 729 BLAKE2B fb052729d5259ed6a7381566c400060a08af6caf6753cbfe82a6c5c2cfac1eaa82b59b6c533aad5ed06a6d527ef31f7ce46c49365386e1735bb5027f2f00d98f SHA512 ae9b8cc007f3b017a021430181ee92ef0dcbed1603c84b21148d0950b823a0cc50ec3ee2cc97880c24080bf8feb5a6152d104bffe39333466ee98cd07333e66d
47 +DIST ncurses-6.3-20220709.patch.gz 3567 BLAKE2B 97a8106bb64c3f32ca0984dfdbb8cb0b3e5822e726cd08826989cf09cf13ae0afe97b84b728620aef2bdf40f5ca54fd8e81fa354602cb80e98f73861f081408c SHA512 b35516f07614533c40559e3ce2346e51ed93f5c0f127ef076a96d4aa4bbb717f6456765d37034e8479a981194216cd0cd6c45e266715e46a155eb496653cc56c
48 +DIST ncurses-6.3-20220709.patch.gz.asc 729 BLAKE2B b2d4aa3c15c315a0f09fff8bb9c74595f28aac242fc8eba4bbff53c2d63fe5ca5e0e1356fb88c31df565ceff08065b2da29a961173a7f86c16ad849ba9212616 SHA512 faec18d2a7cf179e1c11dcd76406a790ae254da543ceb666bef2fa3d6a9d03c11ffec0c45495b40691567337895153ebffd6d7b3b30294d0ee707966b99bfdd3
49 +DIST ncurses-6.3-20220716.patch.gz 26266 BLAKE2B da5b2e610fd32a50694971ed3cd91d4e919d9ae1c7a7077269e8ffadda2717447eef41ff7c7bee42f5ab2363600a417306f40f8429ffeae318c9888e6dd66c38 SHA512 b591df49a00ac3ab717b01c53f7bae47b9aedf30dfeea549ab5a7bf9d366ad653c6d7d0a610ed70e3f3b3ebb18f7d1867ac95f0fb740aecf0343fe1639898230
50 +DIST ncurses-6.3-20220716.patch.gz.asc 729 BLAKE2B cb6da7708351abaf08ae815c46a994ff81c9b15e6ba7de3e98fe238b274ccfee4bbc31e5707b0cde0b018eaa8d708ae3d10d006eca81a33ca8480f55faec64bf SHA512 4b9da2b760ebc6d3731dc8e5974128ab88b9a170bc3d609b4656c420cdf3f2da6ae4952a9fb6700e926d6a90080caba6ec439fe79d5a9e33d8add31dc1a0b25f
51 +DIST ncurses-6.3-20220724.patch.gz 9302 BLAKE2B 4d54e2fb503f946608c8c6dcc53129a61a8d210a1db03a87f12e2acc3d8a423bba792929e1f845ffca2eb5041f27d399b685c697c53f65ddc340d9177675ed08 SHA512 eeb5e82bce1199ea4c968b5e8102ca84f1f9a88d5ea7707caf4b24ca51c76aaea0c721b8fb8c373e9e595e7621e320d63a2ed5f387aec777c119c3b87dbba06a
52 +DIST ncurses-6.3-20220724.patch.gz.asc 729 BLAKE2B 580e4c14f62defbe21e77936cc7f797c3fe42b78c8a451ebaa9c426c25d770d1ddf66447abdb3c703defb46bd436e4342c649b46999337cf11a80e57ddeae48d SHA512 e6c515dda6a9404247693f5f99efa2ab3297042e44a94da99d4e5d1e1b42c0966a874850c5f3e429e0466ca6ed910879a65f7e22dd5210bb3549f8c5a039e3ca
53 +DIST ncurses-6.3-20220729.patch.gz 85147 BLAKE2B b094798cc56db06e0d13bbffd073eff080822244039984b339a18cb2337d979b6b75acaf61b1392ad3818e1e5234ea274491b15ac2686064c8ad5ddb6453d885 SHA512 d8a515a46277de407cc7f58523fd99ec8d6cb9688740cad7ea743bd3610b62b5cb0fd4d8570bf1a83f7dd0f8887381aea9e4bdde084637f4cbe58ee206a2db4f
54 +DIST ncurses-6.3-20220729.patch.gz.asc 729 BLAKE2B 8d04bd485ad53f6c2cd18dd1966ddc76d6f1e6f43f9a30635732a49b249a3162d192159f90540ed8102fada9bc3d204f4209ba1a403bcfd7dacbc08cb93994f4 SHA512 927a97416043ce7be208549b7c4f61bae48328e6c04136c45555f95836f7ab538c2e8b850d0c7dee3e0b279597f1f6621fccda8fac7aef7ddb59d764e3052d60
55 +DIST ncurses-6.3-20220806.patch.gz 2491 BLAKE2B 7cae7ba5cec0e52a2f24088dc33191eb12ded64eddb753879b1edc49e81276f5d2aa205da851a21e6884d72b70e683a711b13faf69444fe06da03170cbf23653 SHA512 adc1a7e4c106e12cbac9bda467d8ec3d7dccbed2c67ec74faa32cf8cbbf5897e4c041ac02e94ecd8266de46aae9ce4060dceea224265a9c5532160ca9a494151
56 +DIST ncurses-6.3-20220806.patch.gz.asc 729 BLAKE2B fb8ce4c6bd63e0abd611c90c967efe749140fd811ea9ee91cda63343f1c9545ea8814e606742d00fedda2a461141d2dccec778a0ccece6e0213db1d7b636a0ff SHA512 215efa0da6980ded3f5b4d980cfed6268a6b5c157d4ce76e46cbce3055ac875bcbab5e605d4426e0c221316f5922b9e92b105af08686d4f798f88d400adeff3a
57 +DIST ncurses-6.3-20220813.patch.gz 11762 BLAKE2B e8a269aef28639deccf5db2fc2e649361dac134210bbba6b4e4e9fbbacae2900aa6cbbe00cead74a1f18ff0f00e2c54be607b17fb1e0cacfc0be95af5761dcf3 SHA512 57f5801bfe19922f67b3d65af60b5b9f3177955f26e08978594cc88681a1a3a465ee754548574b206ca607bd4c04f71cfd1c195ed396ea30d94f56ce580274e2
58 +DIST ncurses-6.3-20220813.patch.gz.asc 729 BLAKE2B e964291deb463dbce2dace974e2d7d6dffa8656d6b3f1b3f5651e0df8bae0bbb3edfcfdd02ef016bd0d452610bd329230ebc0bf5dd0d747fa88608a4f18ee73f SHA512 ff8e14a50165d0281b4a48d96a211e9c613d95ad20d78e261e1febbb17a9b8415351a38f594ce1c06707fada76b9a15ccbc5ba532cd4074e8a89d6571ade7918
59 +DIST ncurses-6.3-20220820.patch.gz 32018 BLAKE2B 14a29ee43c4d8df82a9f939ef4e028a482a8695feb89fdf6ec234410e3c1db105a4610f71f04c94acb322ff7d474196e4cb472ea5bbfdb7ce57e57c9a07c9139 SHA512 bdc458134e9c0c50c6e8aeeb44f05292f838d147186f2be5f8c872a43b376a66482ad7dec7aaa8a3facecd2c404ed5309cc744a6173b0570c6bfb0db40385619
60 +DIST ncurses-6.3-20220820.patch.gz.asc 729 BLAKE2B 93179103d5465b5ddff8513a383099bbf07993a1286a164b69d213c176cc39144fc8afb407fbbb2596d975bd7017b677f75609fe8ddaa3415f46cc73c5bdcbe3 SHA512 5e589d29903a2c6c1e85dfb64d7267e3528d65e49a7c4851318139142524bed4824dd787f980b2fbe8327f0b804ecea1ca94bbb6c7615fee9d993ea6d1568773
61 DIST ncurses-6.3.tar.gz 3583550 BLAKE2B b2c174ac48d587b4d3aa054f04e4ec8bffd8a657a4aff5f090104965c741901e600712c8f8e5e98f3b8a26bc558996a1e14a746f113854832853b855e9d406c3 SHA512 5373f228cba6b7869210384a607a2d7faecfcbfef6dbfcd7c513f4e84fbd8bcad53ac7db2e7e84b95582248c1039dcfc7c4db205a618f7da22a166db482f0105
62 DIST ncurses-6.3.tar.gz.sig 438 BLAKE2B d7f9852292110fe7a048a9e38611ea06564b5142cb4cbeb8d99bba752d5df8eeffa3b57e5ca315c14024520bc008b30650e99669c995dca05a798399a0c85d39 SHA512 b9a2a25e0b1854c272bf89c610c81fc0ba061f0296eca5c0079a79cfe310e44eb16c46eb5a0dd018f1ca9114d569c9d5087a2b8e60b0344f1eb97f7c5addafc6
63
64 diff --git a/sys-libs/ncurses/ncurses-6.3_p20220820-r1.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220820-r1.ebuild
65 new file mode 100644
66 index 000000000000..ee652af5700d
67 --- /dev/null
68 +++ b/sys-libs/ncurses/ncurses-6.3_p20220820-r1.ebuild
69 @@ -0,0 +1,426 @@
70 +# Copyright 1999-2022 Gentoo Authors
71 +# Distributed under the terms of the GNU General Public License v2
72 +
73 +EAPI=7
74 +
75 +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc
76 +inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig
77 +
78 +MY_PV="${PV:0:3}"
79 +MY_P="${PN}-${MY_PV}"
80 +DESCRIPTION="Console display library"
81 +HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/"
82 +SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz
83 + https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz
84 + verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig )"
85 +
86 +if [[ ${PV} == *_p* ]] ; then
87 + # Sometimes, after releases, there's no megapatch available yet.
88 + #
89 + # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/:
90 + #
91 + # "At times (generally to mark a relatively stable point), I create a rollup
92 + # patch, which consists of all changes from the release through the current date."
93 + #
94 + # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html,
95 + # the patches are considered to be acceptable to use after some testing. They
96 + # are both for development but also bug fixes.
97 + #
98 + # This array should contain a list of all the snapshots since the last
99 + # release if there's no megapatch available yet.
100 + PATCH_DATES=(
101 + 20211026
102 + 20211030
103 + 20211106
104 + 20211113
105 + 20211115
106 + 20211120
107 + 20211127
108 + 20211204
109 + 20211211
110 + 20211219
111 + 20211225
112 + 20220101
113 + 20220115
114 + 20220122
115 + 20220129
116 + 20220205
117 + 20220212
118 + 20220219
119 + 20220226
120 + 20220305
121 + 20220312
122 + 20220319
123 + 20220326
124 + 20220402
125 + 20220409
126 + 20220416
127 + 20220423
128 + 20220430
129 + 20220501
130 + 20220507
131 + 20220514
132 + 20220521
133 + 20220529
134 + 20220604
135 + 20220612
136 + 20220618
137 + 20220625
138 + 20220703
139 + 20220709
140 + 20220716
141 + 20220724
142 + 20220729
143 + 20220806
144 + 20220813
145 + 20220820
146 +
147 + # Latest patch is just _pN = $(ver_cut 4)
148 + $(ver_cut 4)
149 + )
150 +
151 + if [[ -z ${PATCH_DATES[@]} ]] ; then
152 + SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz"
153 + SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz.asc"
154 + else
155 + patch_url=
156 + my_patch_index=
157 + for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do
158 + patch_url="$(printf "https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)"
159 + SRC_URI+=" ${patch_url}"
160 + SRC_URI+=" verify-sig? ( ${patch_url}.asc )"
161 + done
162 + unset patch_url
163 + unset my_patch_index
164 + fi
165 +fi
166 +
167 +LICENSE="MIT"
168 +# The subslot reflects the SONAME.
169 +SLOT="0/6"
170 +#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"
171 +IUSE="ada +cxx debug doc gpm minimal profile +stack-realign static-libs test tinfo trace"
172 +RESTRICT="!test? ( test )"
173 +
174 +DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )"
175 +# Block the older ncurses that installed all files w/SLOT=5, bug #557472
176 +RDEPEND="${DEPEND}
177 + !<=sys-libs/ncurses-5.9-r4:5
178 + !<sys-libs/slang-2.3.2_pre23
179 + !<x11-terms/rxvt-unicode-9.06-r3
180 + !<x11-terms/st-0.6-r1"
181 +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
182 +
183 +S="${WORKDIR}/${MY_P}"
184 +
185 +PATCHES=(
186 + "${FILESDIR}/${PN}-5.7-nongnu.patch"
187 + "${FILESDIR}/${PN}-6.0-rxvt-unicode-9.15.patch" # bug #192083, bug #383871
188 + "${FILESDIR}/${PN}-6.0-pkg-config.patch"
189 + "${FILESDIR}/${PN}-6.0-ticlib.patch" # bug #557360
190 + "${FILESDIR}/${PN}-6.2_p20210123-cppflags-cross.patch" # bug #601426
191 +)
192 +
193 +src_prepare() {
194 + if [[ ${PV} == *_p* ]] ; then
195 + if [[ -z ${PATCH_DATES[@]} ]] ; then
196 + # If we have a rollup patch, use that instead of the individual ones.
197 + eapply "${WORKDIR}"/${P/_p/-}-patch.sh
198 + else
199 + eapply "${WORKDIR}"/
200 + fi
201 + fi
202 +
203 + default
204 +}
205 +
206 +src_configure() {
207 + # bug #115036
208 + unset TERMINFO
209 +
210 + tc-export_build_env BUILD_{CC,CPP}
211 +
212 + # bug #214642
213 + BUILD_CPPFLAGS+=" -D_GNU_SOURCE"
214 +
215 + # Should be fixed upstream soon:
216 + # https://lists.gnu.org/archive/html/bug-ncurses/2022-08/msg00024.html
217 + # bug #866398
218 + sed -i -e 's/ld --verbose/${LD} --verbose/' configure || die
219 + sed -i -e 's/pkg-config --version/${PKG_CONFIG} --version/' misc/gen-pkgconfig.in || die
220 +
221 + # Build the various variants of ncurses -- narrow, wide, and threaded. #510440
222 + # Order matters here -- we want unicode/thread versions to come last so that the
223 + # binaries in /usr/bin support both wide and narrow.
224 + # The naming is also important as we use these directly with filenames and when
225 + # checking configure flags.
226 + NCURSES_TARGETS=(
227 + ncurses
228 + ncursesw
229 + ncursest
230 + ncursestw
231 + )
232 +
233 + # When installing ncurses, we have to use a compatible version of tic.
234 + # This comes up when cross-compiling, doing multilib builds, upgrading,
235 + # or installing for the first time. Build a local copy of tic whenever
236 + # the host version isn't available. bug #249363, bug #557598
237 + if ! has_version -b "~sys-libs/${P}:0" ; then
238 + local lbuildflags="-static"
239 +
240 + # some toolchains don't quite support static linking
241 + local dbuildflags="-Wl,-rpath,${WORKDIR}/lib"
242 + case ${CHOST} in
243 + *-darwin*) dbuildflags= ;;
244 + *-solaris*) dbuildflags="-Wl,-R,${WORKDIR}/lib" ;;
245 + esac
246 + echo "int main() {}" | \
247 + $(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \
248 + || lbuildflags="${dbuildflags}"
249 +
250 + # We can't re-use the multilib BUILD_DIR because we run outside of it.
251 + BUILD_DIR="${WORKDIR}" \
252 + CC=${BUILD_CC} \
253 + CHOST=${CBUILD} \
254 + CFLAGS=${BUILD_CFLAGS} \
255 + CXXFLAGS=${BUILD_CXXFLAGS} \
256 + CPPFLAGS=${BUILD_CPPFLAGS} \
257 + LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \
258 + do_configure cross --without-shared --with-normal --with-progs
259 + fi
260 + multilib-minimal_src_configure
261 +}
262 +
263 +multilib_src_configure() {
264 + if [[ ${ABI} == x86 ]] ; then
265 + # For compatibility with older binaries at slight performance cost.
266 + # bug #616402
267 + use stack-realign && append-flags -mstackrealign
268 + fi
269 +
270 + local t
271 + for t in "${NCURSES_TARGETS[@]}" ; do
272 + do_configure "${t}"
273 + done
274 +}
275 +
276 +do_configure() {
277 + local target=$1
278 + shift
279 +
280 + mkdir "${BUILD_DIR}/${target}" || die
281 + cd "${BUILD_DIR}/${target}" || die
282 +
283 + local conf=(
284 + # We need the basic terminfo files in /etc, bug #37026. We will
285 + # add '--with-terminfo-dirs' and then populate /etc/terminfo in
286 + # src_install() ...
287 + --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo"
288 +
289 + # Enable installation of .pc files.
290 + --enable-pc-files
291 + # This path is used to control where the .pc files are installed.
292 + --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig"
293 +
294 + # Now the rest of the various standard flags.
295 + --with-shared
296 + # (Originally disabled until bug #245417 is sorted out, but now
297 + # just keeping it off for good, given nobody needed it until now
298 + # (2022) and we're trying to phase out bdb.)
299 + --without-hashed-db
300 + $(use_with ada)
301 + $(use_with cxx)
302 + $(use_with cxx cxx-binding)
303 + --with-cxx-shared
304 + $(use_with debug)
305 + $(use_with profile)
306 + # The configure script uses ldd to parse the linked output which
307 + # is flaky for cross-compiling/multilib/ldd versions/etc...
308 + $(use_with gpm gpm libgpm.so.1)
309 + # Required for building on mingw-w64, and possibly other windows
310 + # platforms, bug #639670
311 + $(use_enable kernel_Winnt term-driver)
312 + --disable-termcap
313 + --enable-symlinks
314 + --with-rcs-ids
315 + --with-manpage-format=normal
316 + --enable-const
317 + --enable-colorfgbg
318 + --enable-hard-tabs
319 + --enable-echo
320 + $(use_enable !ada warnings)
321 + $(use_with debug assertions)
322 + $(use_enable !debug leaks)
323 + $(use_with debug expanded)
324 + $(use_with !debug macros)
325 + $(multilib_native_with progs)
326 + $(use_with test tests)
327 + $(use_with trace)
328 + $(use_with tinfo termlib)
329 + --disable-stripping
330 + --disable-pkg-ldflags
331 + )
332 +
333 + if [[ ${target} == ncurses*w ]] ; then
334 + conf+=( --enable-widec )
335 + else
336 + conf+=( --disable-widec )
337 + fi
338 + if [[ ${target} == ncursest* ]] ; then
339 + conf+=( --with-{pthread,reentrant} )
340 + else
341 + conf+=( --without-{pthread,reentrant} )
342 + fi
343 +
344 + # Make sure each variant goes in a unique location.
345 + if [[ ${target} == "ncurses" ]] ; then
346 + # "ncurses" variant goes into "${EPREFIX}"/usr/include
347 + # It is needed on Prefix because the configure script appends
348 + # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr.
349 + conf+=( --enable-overwrite )
350 + else
351 + conf+=( --includedir="${EPREFIX}"/usr/include/${target} )
352 + fi
353 + # See comments in src_configure.
354 + if [[ ${target} != "cross" ]] ; then
355 + local cross_path="${WORKDIR}/cross"
356 + [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic"
357 + fi
358 +
359 + ECONF_SOURCE="${S}" econf "${conf[@]}" "$@"
360 +}
361 +
362 +src_compile() {
363 + # See comments in src_configure.
364 + if ! has_version -b "~sys-libs/${P}:0" ; then
365 + # We could possibly merge these two branches but opting to be
366 + # conservative when merging some of the Prefix changes.
367 +
368 + if [[ ${CHOST} == *-cygwin* ]] && ! multilib_is_native_abi ; then
369 + # We make 'tic$(x)' here, for Cygwin having x=".exe".
370 + BUILD_DIR="${WORKDIR}" \
371 + do_compile cross -C progs all PROGS='tic$(x)'
372 + else
373 + BUILD_DIR="${WORKDIR}" \
374 + do_compile cross -C progs tic
375 + fi
376 + fi
377 +
378 + multilib-minimal_src_compile
379 +}
380 +
381 +multilib_src_compile() {
382 + local t
383 + for t in "${NCURSES_TARGETS[@]}" ; do
384 + do_compile "${t}"
385 + done
386 +}
387 +
388 +do_compile() {
389 + local target=$1
390 + shift
391 +
392 + cd "${BUILD_DIR}/${target}" || die
393 +
394 + # A little hack to fix parallel builds ... they break when
395 + # generating sources so if we generate the sources first (in
396 + # non-parallel), we can then build the rest of the package
397 + # in parallel. This is not really a perf hit since the source
398 + # generation is quite small.
399 + emake -j1 sources
400 +
401 + # For some reason, sources depends on pc-files which depends on
402 + # compiled libraries which depends on sources which ...
403 + # Manually delete the pc-files file so the install step will
404 + # create the .pc files we want.
405 + rm -f misc/pc-files || die
406 + emake "$@"
407 +}
408 +
409 +multilib_src_install() {
410 + local target
411 + for target in "${NCURSES_TARGETS[@]}" ; do
412 + emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install
413 + done
414 +
415 + # Move main libraries into /.
416 + if multilib_is_native_abi ; then
417 + gen_usr_ldscript -a \
418 + "${NCURSES_TARGETS[@]}" \
419 + $(usex tinfo 'tinfow tinfo' '')
420 + fi
421 +
422 + # Don't delete '*.dll.a', needed for linking, bug #631468
423 + if ! use static-libs; then
424 + find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die
425 + fi
426 +
427 + # Build fails to create this ...
428 + # -FIXME-
429 + # Ugly hackaround for riscv having two parts libdir (bug #689240)
430 + # Replace this hack with an official solution once we have one...
431 + # -FIXME-
432 + dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \
433 + /usr/$(get_libdir)/terminfo
434 +
435 + # Remove obsolete libcurses symlink that is created by the build
436 + # system. Technically, this could be also achieved
437 + # via --disable-overwrite but it also moves headers implicitly,
438 + # and we do not want to do this yet.
439 + # bug #836696
440 + rm "${ED}"/usr/$(get_libdir)/libcurses* || die
441 +}
442 +
443 +multilib_src_install_all() {
444 + # We need the basic terminfo files in /etc for embedded/recovery, bug #37026
445 + einfo "Installing basic terminfo files in /etc..."
446 + local terms=(
447 + # Dumb/simple values that show up when using the in-kernel VT.
448 + ansi console dumb linux
449 + vt{52,100,102,200,220}
450 + # [u]rxvt users used to be pretty common. Probably should drop this
451 + # since upstream is dead and people are moving away from it.
452 + rxvt{,-unicode}{,-256color}
453 + # xterm users are common, as is terminals re-using/spoofing it.
454 + xterm xterm-{,256}color
455 + # screen is common (and reused by tmux).
456 + screen{,-256color}
457 + screen.xterm-256color
458 + )
459 + local x
460 + for x in "${terms[@]}"; do
461 + local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null)
462 + local basedir=$(basename "$(dirname "${termfile}")")
463 +
464 + if [[ -n ${termfile} ]] ; then
465 + dodir "/etc/terminfo/${basedir}"
466 + mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die
467 + dosym "../../../../etc/terminfo/${basedir}/${x}" \
468 + "/usr/share/terminfo/${basedir}/${x}"
469 + fi
470 + done
471 +
472 + echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses
473 +
474 + use minimal && rm -r "${ED}"/usr/share/terminfo*
475 + # Because ncurses5-config --terminfo returns the directory we keep it
476 + # bug #245374
477 + keepdir /usr/share/terminfo
478 +
479 + cd "${S}" || die
480 + dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc
481 + if use doc ; then
482 + docinto html
483 + dodoc -r doc/html/
484 + fi
485 +}
486 +
487 +pkg_preinst() {
488 + preserve_old_lib /$(get_libdir)/libncurses.so.5
489 + preserve_old_lib /$(get_libdir)/libncursesw.so.5
490 +}
491 +
492 +pkg_postinst() {
493 + preserve_old_lib_notify /$(get_libdir)/libncurses.so.5
494 + preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5
495 +}
496
497 diff --git a/sys-libs/ncurses/ncurses-6.3_p20220820.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220820.ebuild
498 new file mode 100644
499 index 000000000000..d911bf424397
500 --- /dev/null
501 +++ b/sys-libs/ncurses/ncurses-6.3_p20220820.ebuild
502 @@ -0,0 +1,424 @@
503 +# Copyright 1999-2022 Gentoo Authors
504 +# Distributed under the terms of the GNU General Public License v2
505 +
506 +EAPI=7
507 +
508 +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc
509 +inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig
510 +
511 +MY_PV="${PV:0:3}"
512 +MY_P="${PN}-${MY_PV}"
513 +DESCRIPTION="Console display library"
514 +HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/"
515 +SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz
516 + https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz
517 + verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig )"
518 +
519 +if [[ ${PV} == *_p* ]] ; then
520 + # Sometimes, after releases, there's no megapatch available yet.
521 + #
522 + # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/:
523 + #
524 + # "At times (generally to mark a relatively stable point), I create a rollup
525 + # patch, which consists of all changes from the release through the current date."
526 + #
527 + # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html,
528 + # the patches are considered to be acceptable to use after some testing. They
529 + # are both for development but also bug fixes.
530 + #
531 + # This array should contain a list of all the snapshots since the last
532 + # release if there's no megapatch available yet.
533 + PATCH_DATES=(
534 + 20211026
535 + 20211030
536 + 20211106
537 + 20211113
538 + 20211115
539 + 20211120
540 + 20211127
541 + 20211204
542 + 20211211
543 + 20211219
544 + 20211225
545 + 20220101
546 + 20220115
547 + 20220122
548 + 20220129
549 + 20220205
550 + 20220212
551 + 20220219
552 + 20220226
553 + 20220305
554 + 20220312
555 + 20220319
556 + 20220326
557 + 20220402
558 + 20220409
559 + 20220416
560 + 20220423
561 + 20220430
562 + 20220501
563 + 20220507
564 + 20220514
565 + 20220521
566 + 20220529
567 + 20220604
568 + 20220612
569 + 20220618
570 + 20220625
571 + 20220703
572 + 20220709
573 + 20220716
574 + 20220724
575 + 20220729
576 + 20220806
577 + 20220813
578 + 20220820
579 +
580 + # Latest patch is just _pN = $(ver_cut 4)
581 + $(ver_cut 4)
582 + )
583 +
584 + if [[ -z ${PATCH_DATES[@]} ]] ; then
585 + SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz"
586 + SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz.asc"
587 + else
588 + patch_url=
589 + my_patch_index=
590 + for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do
591 + patch_url="$(printf "https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)"
592 + SRC_URI+=" ${patch_url}"
593 + SRC_URI+=" verify-sig? ( ${patch_url}.asc )"
594 + done
595 + unset patch_url
596 + unset my_patch_index
597 + fi
598 +fi
599 +
600 +LICENSE="MIT"
601 +# The subslot reflects the SONAME.
602 +SLOT="0/6"
603 +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"
604 +IUSE="ada +cxx debug doc gpm minimal profile +stack-realign static-libs test tinfo trace"
605 +RESTRICT="!test? ( test )"
606 +
607 +DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )"
608 +# Block the older ncurses that installed all files w/SLOT=5, bug #557472
609 +RDEPEND="${DEPEND}
610 + !<=sys-libs/ncurses-5.9-r4:5
611 + !<sys-libs/slang-2.3.2_pre23
612 + !<x11-terms/rxvt-unicode-9.06-r3
613 + !<x11-terms/st-0.6-r1"
614 +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
615 +
616 +S="${WORKDIR}/${MY_P}"
617 +
618 +PATCHES=(
619 + "${FILESDIR}/${PN}-5.7-nongnu.patch"
620 + "${FILESDIR}/${PN}-6.0-rxvt-unicode-9.15.patch" # bug #192083, bug #383871
621 + "${FILESDIR}/${PN}-6.0-pkg-config.patch"
622 + "${FILESDIR}/${PN}-6.0-ticlib.patch" # bug #557360
623 + "${FILESDIR}/${PN}-6.2_p20210123-cppflags-cross.patch" # bug #601426
624 +)
625 +
626 +src_prepare() {
627 + if [[ ${PV} == *_p* ]] ; then
628 + if [[ -z ${PATCH_DATES[@]} ]] ; then
629 + # If we have a rollup patch, use that instead of the individual ones.
630 + eapply "${WORKDIR}"/${P/_p/-}-patch.sh
631 + else
632 + eapply "${WORKDIR}"/
633 + fi
634 + fi
635 +
636 + default
637 +}
638 +
639 +src_configure() {
640 + # bug #115036
641 + unset TERMINFO
642 +
643 + tc-export_build_env BUILD_{CC,CPP}
644 +
645 + # bug #214642
646 + BUILD_CPPFLAGS+=" -D_GNU_SOURCE"
647 +
648 + # Should be fixed upstream soon:
649 + # https://lists.gnu.org/archive/html/bug-ncurses/2022-08/msg00024.html
650 + # bug #866398
651 + sed -i -e 's/ld --verbose/${LD} --verbose/' configure || die
652 + sed -i -e 's/pkg-config --version/${PKG_CONFIG} --version/' misc/gen-pkgconfig.in || die
653 +
654 + # Build the various variants of ncurses -- narrow, wide, and threaded. #510440
655 + # Order matters here -- we want unicode/thread versions to come last so that the
656 + # binaries in /usr/bin support both wide and narrow.
657 + # The naming is also important as we use these directly with filenames and when
658 + # checking configure flags.
659 + NCURSES_TARGETS=(
660 + ncurses
661 + ncursesw
662 + ncursest
663 + ncursestw
664 + )
665 +
666 + # When installing ncurses, we have to use a compatible version of tic.
667 + # This comes up when cross-compiling, doing multilib builds, upgrading,
668 + # or installing for the first time. Build a local copy of tic whenever
669 + # the host version isn't available. bug #249363, bug #557598
670 + if ! has_version -b "~sys-libs/${P}:0" ; then
671 + local lbuildflags="-static"
672 +
673 + # some toolchains don't quite support static linking
674 + local dbuildflags="-Wl,-rpath,${WORKDIR}/lib"
675 + case ${CHOST} in
676 + *-darwin*) dbuildflags= ;;
677 + *-solaris*) dbuildflags="-Wl,-R,${WORKDIR}/lib" ;;
678 + esac
679 + echo "int main() {}" | \
680 + $(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \
681 + || lbuildflags="${dbuildflags}"
682 +
683 + # We can't re-use the multilib BUILD_DIR because we run outside of it.
684 + BUILD_DIR="${WORKDIR}" \
685 + CC=${BUILD_CC} \
686 + CHOST=${CBUILD} \
687 + CFLAGS=${BUILD_CFLAGS} \
688 + CXXFLAGS=${BUILD_CXXFLAGS} \
689 + CPPFLAGS=${BUILD_CPPFLAGS} \
690 + LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \
691 + do_configure cross --without-shared --with-normal --with-progs
692 + fi
693 + multilib-minimal_src_configure
694 +}
695 +
696 +multilib_src_configure() {
697 + if [[ ${ABI} == x86 ]] ; then
698 + # For compatibility with older binaries at slight performance cost.
699 + # bug #616402
700 + use stack-realign && append-flags -mstackrealign
701 + fi
702 +
703 + local t
704 + for t in "${NCURSES_TARGETS[@]}" ; do
705 + do_configure "${t}"
706 + done
707 +}
708 +
709 +do_configure() {
710 + local target=$1
711 + shift
712 +
713 + mkdir "${BUILD_DIR}/${target}" || die
714 + cd "${BUILD_DIR}/${target}" || die
715 +
716 + local conf=(
717 + # We need the basic terminfo files in /etc, bug #37026. We will
718 + # add '--with-terminfo-dirs' and then populate /etc/terminfo in
719 + # src_install() ...
720 + --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo"
721 +
722 + # Enable installation of .pc files.
723 + --enable-pc-files
724 + # This path is used to control where the .pc files are installed.
725 + --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig"
726 +
727 + # Now the rest of the various standard flags.
728 + --with-shared
729 + # (Originally disabled until bug #245417 is sorted out, but now
730 + # just keeping it off for good, given nobody needed it until now
731 + # (2022) and we're trying to phase out bdb.)
732 + --without-hashed-db
733 + $(use_with ada)
734 + $(use_with cxx)
735 + $(use_with cxx cxx-binding)
736 + --with-cxx-shared
737 + $(use_with debug)
738 + $(use_with profile)
739 + # The configure script uses ldd to parse the linked output which
740 + # is flaky for cross-compiling/multilib/ldd versions/etc...
741 + $(use_with gpm gpm libgpm.so.1)
742 + # Required for building on mingw-w64, and possibly other windows
743 + # platforms, bug #639670
744 + $(use_enable kernel_Winnt term-driver)
745 + --disable-termcap
746 + --enable-symlinks
747 + --with-rcs-ids
748 + --with-manpage-format=normal
749 + --enable-const
750 + --enable-colorfgbg
751 + --enable-hard-tabs
752 + --enable-echo
753 + $(use_enable !ada warnings)
754 + $(use_with debug assertions)
755 + $(use_enable !debug leaks)
756 + $(use_with debug expanded)
757 + $(use_with !debug macros)
758 + $(multilib_native_with progs)
759 + $(use_with test tests)
760 + $(use_with trace)
761 + $(use_with tinfo termlib)
762 + --disable-stripping
763 + --disable-pkg-ldflags
764 + )
765 +
766 + if [[ ${target} == ncurses*w ]] ; then
767 + conf+=( --enable-widec )
768 + else
769 + conf+=( --disable-widec )
770 + fi
771 + if [[ ${target} == ncursest* ]] ; then
772 + conf+=( --with-{pthread,reentrant} )
773 + else
774 + conf+=( --without-{pthread,reentrant} )
775 + fi
776 +
777 + # Make sure each variant goes in a unique location.
778 + if [[ ${target} == "ncurses" ]] ; then
779 + # "ncurses" variant goes into "${EPREFIX}"/usr/include
780 + # It is needed on Prefix because the configure script appends
781 + # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr.
782 + conf+=( --enable-overwrite )
783 + else
784 + conf+=( --includedir="${EPREFIX}"/usr/include/${target} )
785 + fi
786 + # See comments in src_configure.
787 + if [[ ${target} != "cross" ]] ; then
788 + local cross_path="${WORKDIR}/cross"
789 + [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic"
790 + fi
791 +
792 + ECONF_SOURCE="${S}" econf "${conf[@]}" "$@"
793 +}
794 +
795 +src_compile() {
796 + # See comments in src_configure.
797 + if ! has_version -b "~sys-libs/${P}:0" ; then
798 + # We could possibly merge these two branches but opting to be
799 + # conservative when merging some of the Prefix changes.
800 +
801 + if [[ ${CHOST} == *-cygwin* ]] && ! multilib_is_native_abi ; then
802 + # We make 'tic$(x)' here, for Cygwin having x=".exe".
803 + BUILD_DIR="${WORKDIR}" \
804 + do_compile cross -C progs all PROGS='tic$(x)'
805 + else
806 + BUILD_DIR="${WORKDIR}" \
807 + do_compile cross -C progs tic
808 + fi
809 + fi
810 +
811 + multilib-minimal_src_compile
812 +}
813 +
814 +multilib_src_compile() {
815 + local t
816 + for t in "${NCURSES_TARGETS[@]}" ; do
817 + do_compile "${t}"
818 + done
819 +}
820 +
821 +do_compile() {
822 + local target=$1
823 + shift
824 +
825 + cd "${BUILD_DIR}/${target}" || die
826 +
827 + # A little hack to fix parallel builds ... they break when
828 + # generating sources so if we generate the sources first (in
829 + # non-parallel), we can then build the rest of the package
830 + # in parallel. This is not really a perf hit since the source
831 + # generation is quite small.
832 + emake -j1 sources
833 +
834 + # For some reason, sources depends on pc-files which depends on
835 + # compiled libraries which depends on sources which ...
836 + # Manually delete the pc-files file so the install step will
837 + # create the .pc files we want.
838 + rm -f misc/pc-files || die
839 + emake "$@"
840 +}
841 +
842 +multilib_src_install() {
843 + local target
844 + for target in "${NCURSES_TARGETS[@]}" ; do
845 + emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install
846 + done
847 +
848 + # Move main libraries into /.
849 + if multilib_is_native_abi ; then
850 + gen_usr_ldscript -a \
851 + "${NCURSES_TARGETS[@]}" \
852 + $(usex tinfo 'tinfow tinfo' '')
853 + fi
854 +
855 + if ! tc-is-static-only ; then
856 + # Provide a link for -lcurses.
857 + ln -sf libncurses$(get_libname) "${ED}"/usr/$(get_libdir)/libcurses$(get_libname) || die
858 + fi
859 +
860 + # Don't delete '*.dll.a', needed for linking, bug #631468
861 + if ! use static-libs; then
862 + find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die
863 + fi
864 +
865 + # Build fails to create this ...
866 + # -FIXME-
867 + # Ugly hackaround for riscv having two parts libdir (bug #689240)
868 + # Replace this hack with an official solution once we have one...
869 + # -FIXME-
870 + dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \
871 + /usr/$(get_libdir)/terminfo
872 +}
873 +
874 +multilib_src_install_all() {
875 + # We need the basic terminfo files in /etc for embedded/recovery, bug #37026
876 + einfo "Installing basic terminfo files in /etc..."
877 + local terms=(
878 + # Dumb/simple values that show up when using the in-kernel VT.
879 + ansi console dumb linux
880 + vt{52,100,102,200,220}
881 + # [u]rxvt users used to be pretty common. Probably should drop this
882 + # since upstream is dead and people are moving away from it.
883 + rxvt{,-unicode}{,-256color}
884 + # xterm users are common, as is terminals re-using/spoofing it.
885 + xterm xterm-{,256}color
886 + # screen is common (and reused by tmux).
887 + screen{,-256color}
888 + screen.xterm-256color
889 + )
890 + local x
891 + for x in "${terms[@]}"; do
892 + local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null)
893 + local basedir=$(basename "$(dirname "${termfile}")")
894 +
895 + if [[ -n ${termfile} ]] ; then
896 + dodir "/etc/terminfo/${basedir}"
897 + mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die
898 + dosym "../../../../etc/terminfo/${basedir}/${x}" \
899 + "/usr/share/terminfo/${basedir}/${x}"
900 + fi
901 + done
902 +
903 + echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses
904 +
905 + use minimal && rm -r "${ED}"/usr/share/terminfo*
906 + # Because ncurses5-config --terminfo returns the directory we keep it
907 + # bug #245374
908 + keepdir /usr/share/terminfo
909 +
910 + cd "${S}" || die
911 + dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc
912 + if use doc ; then
913 + docinto html
914 + dodoc -r doc/html/
915 + fi
916 +}
917 +
918 +pkg_preinst() {
919 + preserve_old_lib /$(get_libdir)/libncurses.so.5
920 + preserve_old_lib /$(get_libdir)/libncursesw.so.5
921 +}
922 +
923 +pkg_postinst() {
924 + preserve_old_lib_notify /$(get_libdir)/libncurses.so.5
925 + preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5
926 +}