diff options
| author | root <root@alpha.trunkmasters.com> | 2026-09-15 03:04:39 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-09-15 03:04:39 -0500 |
| commit | c012d247f03a893c117c88f73bcf6cb6494dcd22 (patch) | |
| tree | 89fc51e9b45239a8e4233e466f4746f81ec6718f /sys-libs | |
| parent | d09313d7f2546bde376a20ff739a5e90cb229e25 (diff) | |
| download | baldeagleos-repo-c012d247f03a893c117c88f73bcf6cb6494dcd22.tar.gz baldeagleos-repo-c012d247f03a893c117c88f73bcf6cb6494dcd22.tar.xz baldeagleos-repo-c012d247f03a893c117c88f73bcf6cb6494dcd22.zip | |
Adding metadata
Diffstat (limited to 'sys-libs')
| -rw-r--r-- | sys-libs/liburing/Manifest | 1 | ||||
| -rw-r--r-- | sys-libs/liburing/liburing-2.15.ebuild | 94 | ||||
| -rw-r--r-- | sys-libs/ncurses/Manifest | 49 | ||||
| -rw-r--r-- | sys-libs/ncurses/ncurses-6.6_p20260411-r1.ebuild (renamed from sys-libs/ncurses/ncurses-6.6_p20260411.ebuild) | 98 | ||||
| -rw-r--r-- | sys-libs/ncurses/ncurses-6.6_p20260912.ebuild | 513 |
5 files changed, 725 insertions, 30 deletions
diff --git a/sys-libs/liburing/Manifest b/sys-libs/liburing/Manifest index e7e620b148af..ccac57eb37a3 100644 --- a/sys-libs/liburing/Manifest +++ b/sys-libs/liburing/Manifest @@ -4,4 +4,5 @@ DIST liburing-2.11.tar.gz 429859 BLAKE2B 9a649132e28569c7de30f284da13fb7318f406f DIST liburing-2.12.tar.gz 441865 BLAKE2B 9229974bcebd6d117fb686ed998dfc76a3dd68c1d1da0d18a895b55cc6ba01f1656756f95987f1a18495306d038ebc4c7090c2eb0dea455b596c5e639d413b29 SHA512 ccd40be43d4ea046c63d949cfddd9adb0fda531e3ae4ee17d4639b82a11eda966d8a2afd280b4e6b45f907ea1d53bbd432bfd8ae7a015609e86555a766fc850f DIST liburing-2.13.tar.gz 454243 BLAKE2B e9032e48622ee87ddbd9dd25d4e0264f0a648f9540acaca69a3a9bea05e64c5a8bdf2da37787ea72a298074f01bc0ab8baf934da5ece792443ee4417245d75fd SHA512 ada60d8c0bf5b546e45fe2e9e58b2cb4e342665d260648210218e5802dbc7bf650bc8bbcf0620dee27bc4310089dd5c509451a4f451368eccf1e1c5b3a4db0a7 DIST liburing-2.14.tar.gz 487718 BLAKE2B 9e2e7b6c3a7a4fa2d285bb8cb1bea65bef7d56aac7992b912feaf67c2b99590912fd195213a04c320f3ef615ee4f45b8c4b808ca78442d74cbbdd93bda13c700 SHA512 3eb8419cd6c9ae4909b9697b188f5c6a27e107694eefe9747822524c8710e0798476aa43acada578fcbcf6e46b63ebdfb59350e4ba8f928dfe7cac3614e32a48 +DIST liburing-2.15.tar.gz 550191 BLAKE2B 0b2dfc71fc76b3c429864c8cad5186abd2ce7ab8b136eca81a92988f52fedeac49b739cee0a7e7b78f32ff7c5bfbd42263bbfddd15b7abdc51de823d5c9e9d9c SHA512 8f2de8b294b14ef2802fe1806ae62a0a4e1f8a52c423e1069a97600a742492eecb1078c435624b9a094a07ae5f706a68e333714c00c904f3d93ca8acf40f81ae DIST liburing-2.9.tar.gz 407191 BLAKE2B 7081f9430e9532cad659e24de7ba998ad40f15a3fc3bf08fbe2b30df2bb335d4b06affb98d5667d4f8e6c8bc6e7a98c25caddd57ec5c98940562eb0e7977e54d SHA512 f27233e6128444175b18cd1d45647acdd27b906a8cd561029508710e443b44416b916cad1b2c1217e23d9a5ffb5ba68b119e9c812eae406650fbd10bf26c2fa5 diff --git a/sys-libs/liburing/liburing-2.15.ebuild b/sys-libs/liburing/liburing-2.15.ebuild new file mode 100644 index 000000000000..3d52769f11ba --- /dev/null +++ b/sys-libs/liburing/liburing-2.15.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib-minimal toolchain-funcs + +DESCRIPTION="Efficient I/O with io_uring" +HOMEPAGE="https://github.com/axboe/liburing" +if [[ "${PV}" == *9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI=" + https://git.kernel.org/pub/scm/linux/kernel/git/axboe/liburing.git + https://github.com/axboe/liburing.git + " + S="${WORKDIR}"/liburing-${PV} +else + SRC_URI=" + https://github.com/axboe/liburing/archive/refs/tags/${P}.tar.gz + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + QA_PKGCONFIG_VERSION=${PV} + S="${WORKDIR}"/liburing-${P} +fi + +LICENSE="MIT" +SLOT="0/2" # liburing.so major version +IUSE="examples static-libs test" +# https://lore.kernel.org/io-uring/13d5c94e-9f3c-4a0e-a468-562e78155ba5@kernel.dk/ +RESTRICT="!test? ( test ) test" + +# At least installed headers need <linux/*>, bug #802516 +DEPEND=">=sys-kernel/linux-headers-5.1" +RDEPEND="${DEPEND}" + +src_prepare() { + default + + if ! use examples; then + sed -e '/examples/d' Makefile -i || die + fi + if ! use test; then + sed -e '/test/d' Makefile -i || die + fi + + multilib_copy_sources +} + +multilib_src_configure() { + local myconf=( + --prefix="${EPREFIX}/usr" + --libdir="${EPREFIX}/usr/$(get_libdir)" + --libdevdir="${EPREFIX}/usr/$(get_libdir)" + --mandir="${EPREFIX}/usr/share/man" + --cc="$(tc-getCC)" + --cxx="$(tc-getCXX)" + --use-libc + ) + # No autotools configure! "econf" will fail. + TMPDIR="${T}" ./configure "${myconf[@]}" || die +} + +multilib_src_compile() { + emake V=1 AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" +} + +multilib_src_install_all() { + einstalldocs + + if ! use static-libs ; then + find "${ED}" -type f -name "*.a" -delete || die + fi +} + +multilib_src_test() { + local disabled_tests=( + accept.c + conn-unreach.t + fpos.c + io_uring_register.c + link-timeout.c + read-before-exit.c + recv-msgall-stream.c + msg-ring.c + wait-timeout.t + ) + local disabled_test + for disabled_test in "${disabled_tests[@]}"; do + sed -i "/\s*${disabled_test}/d" test/Makefile \ + || die "Failed to remove ${disabled_test}" + done + + emake -C test V=1 runtests +} diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest index 6254367ad561..6e5dd765f1a7 100644 --- a/sys-libs/ncurses/Manifest +++ b/sys-libs/ncurses/Manifest @@ -195,6 +195,55 @@ DIST ncurses-6.6-20260404.patch.gz 5546 BLAKE2B 30b4c0973e9cea1296cc3f60c4140225 DIST ncurses-6.6-20260404.patch.gz.asc 729 BLAKE2B 353528c751e141cc78c1fe281ad6629280efdaa0e8faecd409681b91bd5e53db6321bf4030d1f8f53b35c1647fc7005da9a12e9c47c9ca066d9878a9f7ec4273 SHA512 01d0f8709d592b6d979c670627dddc2ea4120d0ad1bf679932199cbec322d6d83dd029a365b8df9cfd0a75a446a44015231cdf64d7b0aed3c578437861e2ae81 DIST ncurses-6.6-20260411.patch.gz 3662 BLAKE2B 9e2ca4d0c1222a14461d9a01e5d67dfe6c8281d084413dda50c06935cb7b41bcff1d9d74a40b2d47b003475ccceda4417c193553e34d5c8d845694bbca1536a5 SHA512 dc4fa7682ad91056e8bbad942991344216a418a88505e468a38b60d06fd25abcc5d9b047474ea43d4e097e97ad2b4e8cf91c5e28f5b716a0a8a651548f7eba94 DIST ncurses-6.6-20260411.patch.gz.asc 729 BLAKE2B 45bacf4a9ac503271c25c39e6f74f536f1dd2e6464b194a3525ef6134acb8543c6a4e1a4e293d5617c2c0680e86ee6a7c9151710c68244f3278fdc81a314d2be SHA512 b5d7a0e245d98943cada86996268817cf9722bfc1c2addfbf20dc63da3de5d4cbd92aaa6609f79f862ac5ecc2c86c55b139e00f3a5820e27adddb1695e954ebd +DIST ncurses-6.6-20260418.patch.gz 14537 BLAKE2B 7afd1fabc6718e6dc83be7d21a4932b9a332afc69f4896865be4bb860ab350c57dabe574d5847a737c3eac4bfb565742443fde8519bf78527627685737049c6f SHA512 bbe8c9d5d0f35b94e14a135c647ae5e728a1e2151710e69ff11485b93279c70eb3c540d019c23d3640394b9046fbe76de38d3b811a0356e9a50c4a69b3ef4f6f +DIST ncurses-6.6-20260418.patch.gz.asc 729 BLAKE2B 8bde517c5dadfa9d90c7f9cda7ab7f686edbae80d5b5dfeae971b959aa4f78a56841a2a09a3ebd6e63f98c64189390dd1bb15597a76032ff2b5b27c424ca2e42 SHA512 0bd766c42aaef9eae19e65abd549c0f3f1b012f10cca2152629530c139370dae9d77c3d9562ab9b778a5bd65531e19ab44e6abdd655d7c32f343d1145978a194 +DIST ncurses-6.6-20260425.patch.gz 210782 BLAKE2B a3d2b25551aa8c891199a9a738e15925b32743e82af8c14bdb6885c6ce8331213b8a0d52ab8fedd96569da7e767ef9bf7c7cc07bb979eea9ac25ffd218e35197 SHA512 5a48a3947b4a15ad41d5aebec30a37dbad8e8a08d6ab178053884d91c45c6b308d4e082dd099cfecbc6511d4f4f37ff8262ad0a6f0c74591a7ab9da8c66d08be +DIST ncurses-6.6-20260425.patch.gz.asc 729 BLAKE2B 2dd4949c75f497d25ebe70e96e7be61e00975a65079a9a718fd6c9dbee46c4e2997697ed6feb06eaf5714040f8254309ca12906798bf29f11a176dc3cafd4d69 SHA512 432cb78435fbbec789c8cd74fb763f775c91a089ea6501992ce929d272edfd5056a6b4586193c9aacb0a70e3443ecd93c43790f9d5e8ae913feba89e344c91d8 +DIST ncurses-6.6-20260502.patch.gz 3736 BLAKE2B 2b32b3fe2fa97b96224b139674a1a5444370da759b2fc18d41f0e8cecc0af2dfd52685b531d3b82da6ba27a37ee7df911cf002f3b47a9510c5a917c5de229638 SHA512 15f2a73e9266807e7dce1c9cd8e84b08e6b23f465a592e9d2b6de94377b187a29472748c396aceedf2eded005a4252becb9e78c4298a09eda1ccdfa3261cb907 +DIST ncurses-6.6-20260502.patch.gz.asc 729 BLAKE2B 3914d120ad691f87ddb98efee1195f4b4f4b15144ce8057850948313b09d36a533b3421a156e2fb6f69923df68adfc4ec950c95740d468c321885ef088d44b5c SHA512 810dadaa4d06eb4a26147b38a463ec7113b08545a2b390c55c83f21b3b431e13231824630d087cd3f744a79a043018ae8bc42dced8b3f7d0ca32302882fc2366 +DIST ncurses-6.6-20260509.patch.gz 5237 BLAKE2B aa4002e389465b497fe43214224bf2d591c4b08027aa121b8e186e4736817d8a187a3906a627997b019b69e64526b452f672122879b59179e36cf7492d071882 SHA512 3bdc6501d05995fe752791ca512253db9517d19fe7d85e388673611c5a157ef7220b31e78601192fd8ff63e049b4d9a52f705c45a32e7a30fbbbb8109d36c420 +DIST ncurses-6.6-20260509.patch.gz.asc 729 BLAKE2B bee40b716f4b95a46b41d7d66a288208fdb99668bbc82843f015eec803a78f5d79d2dcfa2c4acb57e4a1935e9e27fb499f79afdb4424b1f9522ec143777d5423 SHA512 f5effd71c392d026db5466b1420862e8db824965a09f33d1cd47a87610bba224584c51fe0d29333872ed9e2d3ebdff45d79aba75b1b88516077ddd40c7bdd023 +DIST ncurses-6.6-20260516.patch.gz 14409 BLAKE2B f21de6129d844f077172343269c1387fc827227470b5faff277cd378c1e9aa16541b6dc51b73de2ae4ffeec4706242fee75259ef78c735e3202f8943e65dd1fe SHA512 c0c75d9f38ad59f9143f11e12d75eb647498615886c0c4f06ea4c7168e09042e2b2de22da1e5cb4080449a91477ebcd60756f0ec9dc96ff83ecb85903224933d +DIST ncurses-6.6-20260516.patch.gz.asc 729 BLAKE2B be1c35d2f9552bc36e083bcd6d071d7a64c8357119a78764c31c41865ac62d53dc9bbaf65700d6ca0f867ae0dd1b9bff29c34e07e7eb3881bec7deb66b724829 SHA512 b84ed68ee70a85619f5411004b6d4ec38b50033a7b42666551383771502886b98a0b080aac59e5560bdb403f8abb1fb4fe127d7e514d841c9f2dc36dcf14a4a7 +DIST ncurses-6.6-20260523.patch.gz 7537 BLAKE2B 54c86c3d11b5d5b1626d14d087936fea27eec523eb1ba7011ea3e7bd7113a3abb24dc3da447284cd88d45cc73be55d1f6690b723a3bdb1e9c12e2a646c3d5058 SHA512 902558be3136d38147364f6e01aa142d24519bcc5f2e962974f6d7f334c7a3f5190748e658b381c7de25765d37d3cd58eb61a26b75e3e8064ec7355d3cec4963 +DIST ncurses-6.6-20260523.patch.gz.asc 729 BLAKE2B 85e82688093a13433d0cf474e90b6191f405903bc469a86f9edcf7930db26857824a0504d67d9e4b9e758056e841e6972fd8754cafd9a94cc178892c334bd000 SHA512 adc1f298cd366fc62db813ef2b822eb0a5e49000db1e79faa29854804138b10ea28acdf9065a7be028c15ce5ba8fca6e0cc3b819612a2b351b091326342facfb +DIST ncurses-6.6-20260530.patch.gz 113406 BLAKE2B 0ee3ee6a74b0147e4e416176fb3b0f9620626e1a7d4c541f2fd37061822b197e743de11babcd6aeb47f3f7242770255cc3694dfabcd37f62492c08d7c2c392e8 SHA512 950994abab08f48d9d8150b2d2a2f954c7f404565e24fcb4d58307dd0480099efd42864cc98e38dc02ee316ca966765971eb4b9aed317d23b97c0b70b35a5a5a +DIST ncurses-6.6-20260530.patch.gz.asc 729 BLAKE2B 4966f839668e9dc872670d93099389c164dc381f176eff5e7e281c319a8ac70ea15ec9f7930b7ba1de9a58baa693180edad9068879eeab2dfa448deebe4499c7 SHA512 2f5fffdc8655f41688abd624bea4f6ed62088adf1a8263e8fcffda07f0c3e078344b79e30e02b7bd4eb1f317ba5289c9a1bea2da51c2e22412b9850b5e883f5b +DIST ncurses-6.6-20260606.patch.gz 16006 BLAKE2B dc91122cf5429c8de46a55b8e803dd914e19976e3f674a0661b96547e3fb3a2fe99c57b69fad7d1c02d722dbae8530ef1ff60be1162b1842a6f785ca111778e0 SHA512 58fe3896c48e30a9244893cb93439c8839c74351d457463445dfa29bad20141a0e4e5b3c45c3a05a6612db5d1c8a835ff7e957d1301bb9f8822761d287475a33 +DIST ncurses-6.6-20260606.patch.gz.asc 729 BLAKE2B 604a69018bd1c6d688bf10f60afdaf61ff42ecbaadba22b3c396d8b765538f3d1df30178fb606fe8b9657f6f7165de52ba8cfcedfae36735918a122de03e9b3e SHA512 3d0d4584ed54005a4bd10955f31e13b5529e42507ff593f61cfb2012efc502236c289b915bda1ab30bd0c5ce6662acbc9da25b55168830a6915991c450ab4769 +DIST ncurses-6.6-20260607.patch.gz 2062 BLAKE2B 49940ba3ee5755fdf74cabc3aa8da0965cdb92854c29ba25b2e5473df5b9d0f905f796e728e6ba5c5b0e9352e55c31bb697f65df28a04c8c9d18d9b52be89f22 SHA512 ef677ab433fe11d8fc7420601864080c5c6aa52b17518cd22c72373ec2698b8e81dc730115ce2a88e9fffe888a5e35f6c300aa2766cc541c5842e7cb4dee406d +DIST ncurses-6.6-20260607.patch.gz.asc 729 BLAKE2B 5c9806d5c0e125e1659a22df821bca33c3f8457931877fe20334db0e7ca67134fb728b1c52c3c94bab0a1af35bf8db0ac8474283edae17660555a59b54c96023 SHA512 4a365529fa44e86dd5bfa6d73af472004c52a2aa4f257c04632be44672ae99f4dc108e4fff19016d853e47b5b8317f2980e0ded5d1858cfc0a678685a82b8db6 +DIST ncurses-6.6-20260608.patch.gz 2925 BLAKE2B f63a5fb777fab6fa027a5aef604bfe1e2a48d4667f1ad978ad7a929f8944c4b26e888a9de2b35ea7b083f27cf400b3388004740ae6c34d69d8fbfe92155b7ba2 SHA512 84222a93e08990ad65cc4af8ada132462d1049dd9bb900db94089c77861a1fc7d494563ea5ec590080c1e75e4bb81e51d4cb7275d492bed42482012c73e8f3e9 +DIST ncurses-6.6-20260608.patch.gz.asc 729 BLAKE2B f98e2805fce8310a39ccff430d896119d9eaf905c5761522e5180a15fed1032de7eab8350a7e9775681d5a8ac4baa9c25d35df5b753d1626fd2bce4e54b419c0 SHA512 61096b2cfa7d5ce22d567d967e750ede45e6c9dbf4e58cb0f23fcf10cf9963eac829de282f5f5be496a5db108e734612408a56f1aaf0b717358ffde39291375a +DIST ncurses-6.6-20260613.patch.gz 9268 BLAKE2B d69d0048630a03db3af1216f03c70ab0d665ba7342638619ec5b0bba3ed8e53c526638a4102c8aefa172d01bd8e6d6a0d04e06f7a2a95759f710eed905a99b30 SHA512 8fd34780a02561ce96b826a337aa870bf629a1de61e631a8b58a993b9083cea0f378b2f8c001111f24a6e7fa404abe724fe3f2fdd5bdcc14026563aa7f1100cd +DIST ncurses-6.6-20260613.patch.gz.asc 729 BLAKE2B 37ccb4ccd621a268cf3a1a03fdc25d63143c270f0bf846263491f18108a28eca0eeb87b6ac39b6341140cec6365a01e438d815fae9cd587586355975640f018f SHA512 fc8c94b512e903733a3ae85828bffd319bb47509c25425540c15d5f267b30821e0971d38f08bc835f48405ad9be5057084f5d256195c1132e4b7138fbeb6f740 +DIST ncurses-6.6-20260620.patch.gz 7039 BLAKE2B 895bb7f8171442a53cef628d5750eec7fb7e3f9e68348abc828701ebc1364a65db73d5e620e20a7afde0ed34d5bc3ba7c4f27522243b9fe78e55440b6ff335e7 SHA512 59a6a8f855ff3e5e610a8519ced459470fd645c45272c59c93143bbcd4970ddcc5e92d6524f472eb08877210fd7691cebef886de18c080a1bf0a241b4f85ade9 +DIST ncurses-6.6-20260620.patch.gz.asc 729 BLAKE2B 910cbcbe31c4c1c5cfdbe3b05116fd52f5b04330ed3e20a10bd1ad41486dd0ee7615b8957d336d873af57e32fa9986563bae8572322ccb731a0c3bf7e2c51556 SHA512 ed22566f5b20e2206963c38b44085702862c02b9a396c4c50e1ee66a40ab9d31fe77f7ec438ed1274557fa4d676f7762d74548fe5152c08578c15873e5721574 +DIST ncurses-6.6-20260627.patch.gz 12054 BLAKE2B 09a0f0a10cb9bb7d164e8f32f8b7ba403b512a0d9e6a3e473e9debe13d1a2fbe76a452d911e728f985635145cc3444ca8534be2fe39496ce4e999dbb4a2dc3b8 SHA512 b7ebb5573ea732c540b3fd29fd70eebc1ceeb19bd5567f9335e7c8510eadee8cfd56800aa3fead9eb713a53259d7096b52e8989b42c7fffadc55b6416ba41fa4 +DIST ncurses-6.6-20260627.patch.gz.asc 729 BLAKE2B 1e08c950b63e81e8f765c8244eb2f53d1e8ebd4c13531a8c8f6a076ccebe5b1d27c284ec1a4037d19537758c6e649ead251bd50639045146d12710ceb0732822 SHA512 d981e0c70e2e200c8179c7a68cd8ee4dc93d3801f03896fe855ab0bb4123ca641817cf3df00ce316272f48b0230777a5a289d65100e3d6f845679f200830aaae +DIST ncurses-6.6-20260704.patch.gz 16124 BLAKE2B cfdfa7776b9e6dedabcf1c082229d46f4bcd6c36e27ae660a4a0bbf89c7bc23afaaa267cc8532f42ca08dbd9f51f93d7e986973b2dda2075177e07cebc27dda1 SHA512 f63d0ea6f5a41dc35787eb4a52a9e5ebe695deaeca25587003bd7e0204e2c1e9216bb643e000b952153cd0e46ecc38ee43bb59511b0823cd09b0ef76a157d6db +DIST ncurses-6.6-20260704.patch.gz.asc 729 BLAKE2B 0a78de9e6fd9d8cf4e9971cbdc53bde42d8dfa96629d0b131314b441188019094455625f3bc544664b93cdd2e5a534fca67133c312ae5d5c300c9db8189ffc2e SHA512 d9be635d0a343f8231466f0072ba1fdbb904b212145ca55d4105a4abf906e30587d7a9c4ed94f1646f322576df33e4fac1a5e6d268fc1241fe764292e070ffdd +DIST ncurses-6.6-20260711.patch.gz 14611 BLAKE2B 6327d85fe1b481923766f612f70dbba35b3a35e04fab77a087461085607964f3e524659f1adc5cfa383cc0394e5be8e6c1c355beb7760b96de5cd8c5465fe4be SHA512 cbca11246dbd12f702bba8e7bebcdbf1dc23e6e97d1193a32830260f7b2b7d6280ccf1f9d6f1d15527c781ab3719cb5354bcc6f34fac3cf43465ddf9bd8a5e50 +DIST ncurses-6.6-20260711.patch.gz.asc 729 BLAKE2B 20faa4171995bb0420bd95ef3d51cff41342e9fa6bb7b3275cfcfedabc83a8025592f0efdbe1981c2010b0682b3ea7928a16db1b0208a0a2dbd9e0ba2f8abaff SHA512 75326e2e893dfbe77f40cf1ad8b5d30c0ea67f452cd7645444f94cd6acf0dfcf1c82b12595c45229442181b32f8611022fba3e98ea4e988f3113b3e156a715ef +DIST ncurses-6.6-20260718.patch.gz 30433 BLAKE2B 52483315f2dcf2899a548d40f52344c5b61067fd8d7c60e3c0fe1a70536c59a2442769b9077c8b74bd2e37de9fbcc7179b293bc8bee9c7c6e717b6c0a4082bb0 SHA512 4149df8117cac2c7c270670eeb5626edd76651693c3fafa8ed798bac738e26d80fae4536e3c52e9149fd96238ee11a611ae2e03517997b8cf79649dd5a61c745 +DIST ncurses-6.6-20260718.patch.gz.asc 729 BLAKE2B 1bf398b8c0f12d3946f14df16e9453ff037e930e55cd1347da53cecbe95ebb0eb554433f84225c5a136f777577a19fd719ed5dbfd1b1af616bb6aaa454094cdd SHA512 f72aa3adeb6602b4123856dc338777700fb48cc087f7a4eb4e7ad173c4b867f725dfa83cdf1a769d576e7f28192e1c7fabe2ee8b926cdbc1837212098027fc3d +DIST ncurses-6.6-20260725.patch.gz 22894 BLAKE2B 50ff44f45ac564c5092c6020efd81f65fb806e9bc58f2e40400afeddc0eec8c1a781c2e2bce70b52713cca58d0b98ad5117f7063023b75d0abacca59c8a77e9d SHA512 6f01a87fdaf7a39fcbd6e8c50d4d1ee959bee7864fa2720d8b8079a7fac11e7dc1b376adc935ad1136eb92012ff610ee64e6c94c4740f2337f2287cc8d037572 +DIST ncurses-6.6-20260725.patch.gz.asc 729 BLAKE2B 23ae7cc746dbbfed32dcfbde76469d08b4166b3fad17ad26484ccee906d146e4b6cff847f97d6f4a50cf4cd33768a4b22ebe303bfadf94ffbc2ae393fd05f8d1 SHA512 ebc84dcc1f466a9b7060b003dd512b4a308ac9cf15671d84e54a9fb287ff6c42fcb3530f4253903670fe909e06f19fc16154f6ac03f16943278ce2bf981b004b +DIST ncurses-6.6-20260801.patch.gz 20105 BLAKE2B dfbdbbb361648bbcdff8850c147074a66eebbd0f8eedae6e9d95d29293d75d1342a7d0efb76a28f35ecaf7dd4d77efe1bbbef479f543bdb55f33b81c9af02149 SHA512 c2ce875f69f60e0f4f88f44da0346b172e1e53fbf3ec0165065faba0530c26cab4dd729426414e5fd4d437c1021dea6b02e9ac6c8a5d3598c8d1e3cf3fc578c4 +DIST ncurses-6.6-20260801.patch.gz.asc 729 BLAKE2B 2d5ad5fa0d15ba2b64b1a2ab2ff0e7e8a6360fff52ee3caffeaa4ae9327cebce2b3c65d35fa95bb2e7a46256889a8a4f8ac6dfba26ae83cd4386f172836671ae SHA512 38d130c0fd334b97aeb96baf1bd783f56f3eb930cfaec4c8d24b93927e3a67c1b04c030706741c7874525794d7d3b7b900e2a6f54453ed07f5f0924b1aadd5a6 +DIST ncurses-6.6-20260808.patch.gz 5286 BLAKE2B 6562b838c9df69805f77230fa6ffae1e2417e67711d8bafd549ff51a02b6ae652ab366f65e5729569580d46dea95716ba28acce332e8636b93d657ac33ccddcc SHA512 69a39d440e8fb5375c7af6e6e120f78c0fcfc172436f670fd30b19d275cd096600c5a607717111cf1fdd3b7435158c17161573a73d9a0513c2b96254a4e80894 +DIST ncurses-6.6-20260808.patch.gz.asc 729 BLAKE2B fc41a6982e1392864a8b3edffdc2e77439b51f241a6c921fc6d54506cca8f8b2dde7ff95b7752e9ec82ab507a71fbc83e41260dec7a355c7ad33a6503606f853 SHA512 9b6f8dcd991f1f3032e607404e726cd140e77a7f83a6b74dba3686a8556004dd9515cbb9e44819fb711d6b1e2938ca19d110214c76b69bb4ee54569affa7df45 +DIST ncurses-6.6-20260815.patch.gz 53165 BLAKE2B ca91c15babe94a95ca5b6b81b443c88d98c49a0d22d66301d7e3c864accd24dd4367fcbcce534f1b000348eab0868745b879e3f2aa334304cbe60e92f9825eab SHA512 112f87f48593f1c6563a59b0cfc22fe61036b21741d0c6c10630c325d2ec634602829419cbe8b7799a482d9618c803f548bfed893323ddec56316bdc2417c6d0 +DIST ncurses-6.6-20260815.patch.gz.asc 729 BLAKE2B e03ca6fecb19d9e563a8faab55d8c6fcbca518e905ca32185fe6b1297678af8f71bb7b4964d2d09aab2eb8ca5dd9d829f2914a432d4175ca94c5333577040232 SHA512 242c868e9d26e16123c0e71c63eb9ee85ea1a33f5603a83bd6aecabb390288b367445dc32c17ddca4a8e6c5cb6fedfa46057438bc351938c5e45003a3537f22d +DIST ncurses-6.6-20260822.patch.gz 63008 BLAKE2B 9b4a2ece7195cbe7919413bd08f85dfc1bd5ae23a36a98398f8b94993777959059ff76403959efba3c6b620b329d3d62d8208380f3450406b6896a64cfeab87a SHA512 2fb5c320842bc69f6e4f2e4bb9fe156b8ac8c638e73c765b15d9daa640eeef398a6f4d98f543fa80c5c32281212330130685dce8767c9a8f501d7da791348d58 +DIST ncurses-6.6-20260822.patch.gz.asc 729 BLAKE2B 8a4e66927b8f0c2fe000740f5535c0cb1d935a2ac5b7ac56ebb8cd8cf774a111f52f84debc44a655cbc686d87ba37f4f222f90680dbd55ee98ba504a3d05407d SHA512 4540f2e8240989cbca94ac33c3cf169a71340bb5ce34c9cba26eb063db055e37a606de205dcf5999f36824e875b97b2a77f96b1ded0cb9d6178423bb6dc68635 +DIST ncurses-6.6-20260829.patch.gz 48385 BLAKE2B 88c444619a371f007b18bee2afc7fb836e01fa2d4d29730e9a27fb9ee60683fcbcead17f6de39e38717de3563d7b36a6f7e84fa06d548a4262c6067ccb5f2d1b SHA512 c8bf2eca1f0c8e200ad95050bcdbd1b48ead8eaf5a92ae3e0bac197a93de470c11139d086d914455a958dea637762ebe3be86accf1652c1a7d39b9ba836d983a +DIST ncurses-6.6-20260829.patch.gz.asc 729 BLAKE2B 4bff744b90ba5dffe3e105d1c4591f4e6f8ef502a1cf9287c33ecd7958d998ce90bdaa966ba081f7c69c32a53e00e4d91566b79d60d9580c33398baab2a80fb7 SHA512 7eac4fdba05a9d212b62a7c8503217902fe4820de213fbf373ecdfd7a1bcb50992caca9cf521c7ec595c644d34b30a08579de4d5d4f4bf10794ed31f1dd5068b +DIST ncurses-6.6-20260905.patch.gz 14356 BLAKE2B 732d7cfd1cf14b55a38e068d8bc40c9f502ea6aca4099cbfb7e19dcde61e236d46bde2abf0a3c3b9afebb61ce47bcb5ea9cb2dad861ecd4d0051b4375d73fb8b SHA512 de5cde58469a58d5297d3080ebae9f28ff75ea20b9ca40c7a8317aec4685742349e6e33f71ad9b129309c607b29dc66c5a98d93ed821e4aea448b9466a6d3cbb +DIST ncurses-6.6-20260905.patch.gz.asc 729 BLAKE2B ca6831b2f5e3cefcf26cbd14b9c2f343b6b1ee5958c8996a2128e5334adba77f63d754aca9cd4fbe50f03e077a5b572d7cc4ac697593010e31b46bf6b6473157 SHA512 4dc179a70caa62fc1c68bd642c455f0b3d9769c69c646827da066229ac1c6a26d18978c004d7cb3c28fa6b91b3f02e5212d888a0aebbd55c527e9a6efd66ef5f +DIST ncurses-6.6-20260912.patch.gz 144302 BLAKE2B b0cf9de7900e15805ea623a9978f3bc3c76de49f827fb7c45d2b2cb07d94725be6b490c27c1b03ec6dc7beff3f4f5bc8842453407ccbf5b41665099f00cc1636 SHA512 b2332327c56366647b012e7995a938c4bc4182ab5569452cc1168bdc70fc3cae2f6548cd86608aa81c2227ec216c5613c4a184057728aa3d3909b39fdff6894d +DIST ncurses-6.6-20260912.patch.gz.asc 729 BLAKE2B c8137473140d28f766fabb2e74fc474d55667776dc3afd4d939db07c9ca10c7f5441a56af976e33911491050a2fc59f7c1ff88484e32c8213b49bfae0e41a8dd SHA512 38b236dc403d64475c80d5a6bb5b9410faa8e372259daf000d5f5e6feeb2171f9fc3685f3aaeebb6abb6391caead7f6024417d0c58a6f84d5431e66bc2cb0981 DIST ncurses-6.6.tar.gz 3791150 BLAKE2B 8863ce3091fc72f23d12fe5913ea07c783e907cd8454b1c2b782f3e6bb91110cbfc4c52b8f0404eabd0d2041211183614e9d7f125ef8deeb23237b031f61fca0 SHA512 02647baae53abc844fbadee5b0a2187ad073125c4e8950df6d1c4feb781cb74ba64fb838cedfee2c246c39932187f6775b1df124f18b99a4233f0d98c72191de DIST ncurses-6.6.tar.gz.sig 438 BLAKE2B 0c687ae08bc40642479eeefc3f40f6993646566bd6fc2c6ff8f0f5c5bb930a3c9dfa4d85916eb9ce42ca17cec4ecccbbb532ac3bc6fdf16f5fc406171706c4b8 SHA512 73c6ca454e15d20d544e1220c62dcc265f69b42a76f29cd2068f06d874ed05d7567fdce8afe342fa5bb62d0f1c650927a88255f71b1b386a5d54d41738167eed DIST ncurses-6.6_p20260411-patches.tar.xz 81820 BLAKE2B 1f5496b2a77a876b96d8b1b9ffc3d6a0d7452d3b7f3f8e5e96643756b9a5c97b7aff5758f1e9e5e574875c5dc6cd9d517556c96e5d967ef6f7e2c2fc3668d543 SHA512 11bb25b97d7377ac06d78e5c1026077ba1f1a45521473d2173532e9dbb4f938cc400faf140e3ed28963c49a3561b4bc4ab45c21c24ca223d41e43ee69ba33723 +DIST ncurses-6.6_p20260912-patches.tar.xz 64856 BLAKE2B c01762e650058d7730809858165373c9d9f985054f4d473eb0c074314e436541d6c5de61204807df2e2a6ac696f8267d06558732fa5632b7526ba257fb50123e SHA512 0c34d94fea4701bb174435c9207f2063b5ae96746b3fc4d2752fb00652fc4f4f9b9ce7c523248c8bc3c6f7d545175733962ab2f97231de7b5f64ec742ae4a4bd diff --git a/sys-libs/ncurses/ncurses-6.6_p20260411.ebuild b/sys-libs/ncurses/ncurses-6.6_p20260411-r1.ebuild index a5b83840c446..1a9838f2a751 100644 --- a/sys-libs/ncurses/ncurses-6.6_p20260411.ebuild +++ b/sys-libs/ncurses/ncurses-6.6_p20260411-r1.ebuild @@ -162,14 +162,16 @@ src_configure() { # bug #214642 BUILD_CPPFLAGS+=" -D_GNU_SOURCE" - # Build the various variants of ncurses -- narrow, wide, and threaded. #510440 - # Order matters here -- we want unicode/thread versions to come last so that the - # binaries in /usr/bin support both wide and narrow. + # Build the various variants of ncurses -- wide, narrow, threaded (bug #510440). + # We only install programs & the terminfo DB for the wide version. + # Wide goes first because later variants won't overwrite existing files + # (at least partially). + # # The naming is also important as we use these directly with filenames and when # checking configure flags. NCURSES_TARGETS=( - ncurses ncursesw + ncurses ncursest ncursestw ) @@ -191,6 +193,7 @@ src_configure() { $(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \ || lbuildflags="${dbuildflags}" + einfo "Configuring target: minimal tic" # We can't re-use the multilib BUILD_DIR because we run outside of it. BUILD_DIR="${WORKDIR}" \ CC=${BUILD_CC} \ @@ -213,9 +216,10 @@ multilib_src_configure() { use stack-realign && append-flags -mstackrealign fi - local t - for t in "${NCURSES_TARGETS[@]}" ; do - do_configure "${t}" + local target + for target in "${NCURSES_TARGETS[@]}" ; do + einfo "Configuring target: ${target}" + do_configure "${target}" done } @@ -240,9 +244,10 @@ do_configure() { # Now the rest of the various standard flags. --with-shared --enable-fvisibility - # (Originally disabled until bug #245417 is sorted out, but now + + # Originally disabled until bug #245417 is sorted out, but now # just keeping it off for good, given nobody needed it until now - # (2022) and we're trying to phase out bdb.) + # (2022) and we're trying to phase out bdb. --without-hashed-db $(use_with ada) $(use_with cxx) @@ -272,10 +277,9 @@ do_configure() { $(use_enable !debug leaks) $(use_enable debug expanded) $(use_enable !debug macros) - $(multilib_native_with progs) + --without-progs $(use_with test tests) $(use_with trace) - $(use_with tinfo termlib) --disable-stripping --disable-pkg-ldflags ) @@ -290,10 +294,11 @@ do_configure() { esac if [[ ${target} == ncurses*w ]] ; then - conf+=( --enable-widec ) + conf+=( --enable-{widec,ext-colors} ) else - conf+=( --disable-widec ) + conf+=( --disable-{widec,ext-colors} ) fi + if [[ ${target} == ncursest* ]] ; then conf+=( --with-{pthread,reentrant} ) else @@ -309,10 +314,37 @@ do_configure() { else conf+=( --includedir="${EPREFIX}"/usr/include/${target} ) fi + + if [[ ${target} == "ncursesw" ]] ; then + # Overwrite libtinfo with the wide variant (bug #910430, bug #972804). + # + # Don't do this for all variants, as we can't mix ncurses with + # ncursestw, for example. + conf+=( + $(use_with tinfo termlib tinfo) + --with-ticlib=tic + --disable-tic-depends + + $(multilib_native_with progs) + ) + else + conf+=( + $(use_with tinfo termlib) + --with-ticlib + --disable-tic-depends + + --disable-db-install + ) + fi + # See comments in src_configure. if [[ ${target} != "cross" ]] ; then local cross_path="${WORKDIR}/cross" - [[ -d ${cross_path} ]] && export TIC="${cross_path}/progs/tic" + local tic="${cross_path}/progs/tic" + if [[ -x ${tic} ]] ; then + einfo "Using TIC=${tic}" + export TIC="${tic}" + fi fi ECONF_SOURCE="${S}" econf "${conf[@]}" "$@" @@ -321,6 +353,7 @@ do_configure() { src_compile() { # See comments in src_configure. if ! has_version -b "~sys-libs/${P}:0" ; then + einfo "Building target: minimal tic" BUILD_DIR="${WORKDIR}" do_compile cross -C progs tic$(get_exeext) fi @@ -328,9 +361,10 @@ src_compile() { } multilib_src_compile() { - local t - for t in "${NCURSES_TARGETS[@]}" ; do - do_compile "${t}" + local target + for target in "${NCURSES_TARGETS[@]}" ; do + einfo "Building target: ${target}" + do_compile "${target}" done } @@ -347,27 +381,29 @@ do_compile() { # generation is quite small. emake -j1 sources - # For some reason, sources depends on pc-files which depends on - # compiled libraries which depends on sources which ... - # Manually delete the pc-files file so the install step will - # create the .pc files we want. - rm -f misc/pc-files || die emake "$@" } multilib_src_install() { local target for target in "${NCURSES_TARGETS[@]}" ; do - emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install + case ${target} in + ncursesw) + einfo "Installing full target: ${target}" + ( + # Make sure tic picks up the just-built library + local -x PATH="${BUILD_DIR}/${target}/progs${PATH+:${PATH}}" + local -x LD_LIBRARY_PATH="${BUILD_DIR}/${target}/lib${LD_LIBRARY_PATH+:${LD_LIBRARY_PATH}}" + emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install + ) + ;; + *) + einfo "Installing library-only target: ${target}" + emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install.libs + ;; + esac done - # Move main libraries into /. - if multilib_is_native_abi ; then - gen_usr_ldscript -a \ - "${NCURSES_TARGETS[@]}" \ - $(usex tinfo 'tinfow tinfo' '') - fi - # Don't delete '*.dll.a', needed for linking, bug #631468 if ! use static-libs; then find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die @@ -443,9 +479,11 @@ multilib_src_install_all() { pkg_preinst() { preserve_old_lib /$(get_libdir)/libncurses.so.5 preserve_old_lib /$(get_libdir)/libncursesw.so.5 + preserve_old_lib /$(get_libdir)/libtinfow.so.6 } pkg_postinst() { preserve_old_lib_notify /$(get_libdir)/libncurses.so.5 preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5 + preserve_old_lib_notify /$(get_libdir)/libtinfow.so.6 } diff --git a/sys-libs/ncurses/ncurses-6.6_p20260912.ebuild b/sys-libs/ncurses/ncurses-6.6_p20260912.ebuild new file mode 100644 index 000000000000..a77f1e145a13 --- /dev/null +++ b/sys-libs/ncurses/ncurses-6.6_p20260912.ebuild @@ -0,0 +1,513 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# sys-libs/ncurses-compat can be bumped with sys-libs/ncurses as upstream +# provide a configure option for the ABI version. + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/thomasdickey.asc +inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs verify-sig + +MY_PV="${PV:0:3}" +MY_P="${PN}-${MY_PV}" +DESCRIPTION="Console display library" +HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/" +# Keep invisible-mirror.net here as some users reported 403 forbidden with invisible-island.net +SRC_URI=" + mirror://gnu/ncurses/${MY_P}.tar.gz + https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz + https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz + verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig ) +" + +GENTOO_PATCH_DEV=sam +GENTOO_PATCH_PV=6.6_p20260912 +GENTOO_PATCH_NAME=${PN}-${GENTOO_PATCH_PV}-patches + +# Populated below in a loop. Do not add patches manually here. +UPSTREAM_PATCHES=() + +if [[ ${PV} == *_p* ]] ; then + # Sometimes, after releases, there's no megapatch available yet. + # + # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/: + # + # "At times (generally to mark a relatively stable point), I create a rollup + # patch, which consists of all changes from the release through the current date." + # + # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html, + # the patches are considered to be acceptable to use after some testing. They + # are both for development but also bug fixes. + # + # This array should contain a list of all the snapshots since the last + # release if there's no megapatch available yet. + PATCH_DATES=( + 20251231 + 20260103 + 20260117 + 20260124 + 20260131 + 20260207 + 20260214 + 20260221 + 20260301 + 20260307 + 20260314 + 20260321 + 20260328 + 20260404 + 20260411 + 20260418 + 20260425 + 20260502 + 20260509 + 20260516 + 20260523 + 20260530 + 20260606 + 20260607 + 20260608 + 20260613 + 20260620 + 20260627 + 20260704 + 20260711 + 20260718 + 20260725 + 20260801 + 20260808 + 20260815 + 20260822 + 20260829 + 20260905 + + # Latest patch is just _pN = $(ver_cut 4) + $(ver_cut 4) + ) + + if [[ -z ${PATCH_DATES[@]} ]] ; then + SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz" + SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz.asc" + + # If we have a rollup patch, use that instead of the individual ones. + UPSTREAM_PATCHES+=( patch.sh ) + else + # We use a mirror as well because we've had reports of 403 forbidden for some users. + upstream_url_base="https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-" + upstream_m_url_base="https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-" + + # Prefix each date with the upstream location (https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}) + mangled_patches=( "${PATCH_DATES[@]/#/${upstream_url_base}}" ) + # Suffix each with .patch.gz + mangled_patches=( "${mangled_patches[@]/%/.patch.gz}" ) + mangled_patches_sig=( "${mangled_patches[@]/%/.asc}" ) + # Repeat for .patch.gz.asc for verify-sig + SRC_URI+=" ${mangled_patches[@]}" + SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]} )" + + # For all of the URLs, chuck in invisible-island.net too: + SRC_URI+=" ${mangled_patches[@]/${upstream_url_base}/${upstream_m_url_base}}" + SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]/${upstream_url_base}/${upstream_m_url_base}} )" + + UPSTREAM_PATCHES=( "${PATCH_DATES[@]/%/.patch}" ) + + unset upstream_url_base upstream_m_url_base mangled_patches mangled_patches_sig + fi +fi + +SRC_URI+=" https://distfiles.gentoo.org/pub/proj/base-system/ncurses/${GENTOO_PATCH_NAME}.tar.xz" +S="${WORKDIR}/${MY_P}" + +LICENSE="MIT" +# The subslot reflects the SONAME. +SLOT="0/6" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="ada +cxx debug doc gpm minimal profile split-usr +stack-realign static-libs test tinfo trace" +# In 6.5_p20250118, the C++ examples fail to link, but there's no automated +# testsuite anyway. Controlling building examples isn't really what USE=test +# is for. Just restrict them. Still seems to fail after +# https://lists.gnu.org/archive/html/bug-ncurses/2026-03/msg00013.html too. +RESTRICT="!test? ( test ) test" + +# TODO: ncurses allows (and we take advantage of this, even) passing +# the SONAME for dlopen() use, so only the header is needed at build time. +# Maybe we should bundle a copy of gpm.h so we can move gpm to PDEPEND +# which would be far nicer UX-wise. +DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" +# Block the older ncurses that installed all files w/SLOT=5, bug #557472 +RDEPEND=" + ${DEPEND} + !<=sys-libs/ncurses-5.9-r4:5 + !<sys-libs/slang-2.3.2_pre23 + !<x11-terms/rxvt-unicode-9.06-r3 + !<x11-terms/st-0.6-r1 + !minimal? ( !<x11-terms/ghostty-1.1.0 ) +" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )" + +PATCHES=( + "${UPSTREAM_PATCHES[@]/#/${WORKDIR}/${MY_P}-}" + + # When rebasing Gentoo's patchset, please use git from a clean + # src_prepare with upstream patches already applied. git am --reject + # the existing patchset and rebase as required. This makes it easier + # to manage future rebasing & adding new patches. + # + # For the same reasons, please include the original configure.in changes, + # NOT just the generated results! + "${WORKDIR}"/${GENTOO_PATCH_NAME} +) + +src_unpack() { + # Avoid trying to verify our own patchset tarball, there's no point + if use verify-sig ; then + local file + for file in ${A} ; do + if [[ ${file} == ${MY_P}.tar.gz ]] ; then + verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.sig + else + [[ ${file} == @(*${GENTOO_PATCH_NAME}.tar.xz|*.asc|*.sig) ]] && continue + + verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.asc + fi + done + fi + + default +} + +src_configure() { + # bug #115036 + unset TERMINFO + + tc-export_build_env BUILD_{CC,CXX,CPP} + + # bug #214642 + BUILD_CPPFLAGS+=" -D_GNU_SOURCE" + + # Build the various variants of ncurses -- wide, narrow, threaded (bug #510440). + # We only install programs & the terminfo DB for the wide version. + # Wide goes first because later variants won't overwrite existing files + # (at least partially). + # + # The naming is also important as we use these directly with filenames and when + # checking configure flags. + NCURSES_TARGETS=( + ncursesw + ncurses + ncursest + ncursestw + ) + + # When installing ncurses, we have to use a compatible version of tic. + # This comes up when cross-compiling, doing multilib builds, upgrading, + # or installing for the first time. Build a local copy of tic whenever + # the host version isn't available. bug #249363, bug #557598 + if ! has_version -b "~sys-libs/${P}:0" ; then + local lbuildflags="-static" + + # some toolchains don't quite support static linking + local dbuildflags="-Wl,-rpath,${WORKDIR}/lib" + case ${CHOST} in + *-darwin*) dbuildflags= ;; + *-solaris*) dbuildflags="-Wl,-R,${WORKDIR}/lib" ;; + esac + echo "int main() {}" | \ + $(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \ + || lbuildflags="${dbuildflags}" + + einfo "Configuring target: minimal tic" + # We can't re-use the multilib BUILD_DIR because we run outside of it. + BUILD_DIR="${WORKDIR}" \ + CC=${BUILD_CC} \ + CXX=${BUILD_CXX} \ + CPP=${BUILD_CPP} \ + CHOST=${CBUILD} \ + CFLAGS=${BUILD_CFLAGS} \ + CXXFLAGS=${BUILD_CXXFLAGS} \ + CPPFLAGS=${BUILD_CPPFLAGS} \ + LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \ + do_configure cross --without-shared --with-normal --with-progs --without-ada + fi + multilib-minimal_src_configure +} + +multilib_src_configure() { + if [[ ${ABI} == x86 ]] ; then + # For compatibility with older binaries at slight performance cost. + # bug #616402 + use stack-realign && append-flags -mstackrealign + fi + + local target + for target in "${NCURSES_TARGETS[@]}" ; do + einfo "Configuring target: ${target}" + do_configure "${target}" + done +} + +do_configure() { + local target=$1 + shift + + mkdir "${BUILD_DIR}/${target}" || die + cd "${BUILD_DIR}/${target}" || die + + local conf=( + # We need the basic terminfo files in /etc, bug #37026. We will + # add '--with-terminfo-dirs' and then populate /etc/terminfo in + # src_install() ... + --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo" + + # Enable installation of .pc files. + --enable-pc-files + # This path is used to control where the .pc files are installed. + --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" + + # Now the rest of the various standard flags. + --with-shared + --enable-fvisibility + + # Originally disabled until bug #245417 is sorted out, but now + # just keeping it off for good, given nobody needed it until now + # (2022) and we're trying to phase out bdb. + --without-hashed-db + $(use_with ada) + $(use_with cxx) + $(use_with cxx cxx-binding) + --with-cxx-shared + $(use_with debug) + $(use_with profile) + # The configure script uses ldd to parse the linked output which + # is flaky for cross-compiling/multilib/ldd versions/etc... + $(use_with gpm gpm libgpm.so.1) + + # bug #930806 + --disable-setuid-environ + # TODO: Maybe do these for USE=hardened + #--disable-root-access + #--disable-root-environ + + --disable-termcap + --enable-symlinks + --with-manpage-format=normal + --enable-const + --enable-colorfgbg + --enable-hard-tabs + --enable-echo + $(use_enable !ada warnings) + $(use_enable debug assertions) + $(use_enable !debug leaks) + $(use_enable debug expanded) + $(use_enable !debug macros) + --without-progs + $(use_with test tests) + $(use_with trace) + --disable-stripping + --disable-pkg-ldflags + ) + + case ${CHOST} in + *-mingw32*) + conf+=( --enable-term-driver ) + ;; + *) + conf+=( --disable-term-driver ) + ;; + esac + + if [[ ${target} == ncurses*w ]] ; then + conf+=( --enable-{widec,ext-colors} ) + else + conf+=( --disable-{widec,ext-colors} ) + fi + + if [[ ${target} == ncursest* ]] ; then + conf+=( --with-{pthread,reentrant} ) + else + conf+=( --without-{pthread,reentrant} ) + fi + + # Make sure each variant goes in a unique location. + if [[ ${target} == "ncurses" ]] ; then + # "ncurses" variant goes into "${EPREFIX}"/usr/include + # It is needed on Prefix because the configure script appends + # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr. + conf+=( --enable-overwrite ) + else + conf+=( --includedir="${EPREFIX}"/usr/include/${target} ) + fi + + if [[ ${target} == "ncursesw" ]] ; then + # Overwrite libtinfo with the wide variant (bug #910430, bug #972804). + # + # Don't do this for all variants, as we can't mix ncurses with + # ncursestw, for example. + conf+=( + $(use_with tinfo termlib tinfo) + --with-ticlib=tic + --disable-tic-depends + + $(multilib_native_with progs) + ) + else + conf+=( + $(use_with tinfo termlib) + --with-ticlib + --disable-tic-depends + + --disable-db-install + ) + fi + + # See comments in src_configure. + if [[ ${target} != "cross" ]] ; then + local cross_path="${WORKDIR}/cross" + local tic="${cross_path}/progs/tic" + if [[ -x ${tic} ]] ; then + einfo "Using TIC=${tic}" + export TIC="${tic}" + fi + fi + + ECONF_SOURCE="${S}" econf "${conf[@]}" "$@" +} + +src_compile() { + # See comments in src_configure. + if ! has_version -b "~sys-libs/${P}:0" ; then + einfo "Building target: minimal tic" + BUILD_DIR="${WORKDIR}" do_compile cross -C progs tic$(get_exeext) + fi + + multilib-minimal_src_compile +} + +multilib_src_compile() { + local target + for target in "${NCURSES_TARGETS[@]}" ; do + einfo "Building target: ${target}" + do_compile "${target}" + done +} + +do_compile() { + local target=$1 + shift + + cd "${BUILD_DIR}/${target}" || die + + # A little hack to fix parallel builds ... they break when + # generating sources so if we generate the sources first (in + # non-parallel), we can then build the rest of the package + # in parallel. This is not really a perf hit since the source + # generation is quite small. + emake -j1 sources + + emake "$@" +} + +multilib_src_install() { + local target + for target in "${NCURSES_TARGETS[@]}" ; do + case ${target} in + ncursesw) + einfo "Installing full target: ${target}" + ( + # Make sure tic picks up the just-built library + local -x PATH="${BUILD_DIR}/${target}/progs${PATH+:${PATH}}" + local -x LD_LIBRARY_PATH="${BUILD_DIR}/${target}/lib${LD_LIBRARY_PATH+:${LD_LIBRARY_PATH}}" + emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install + ) + ;; + *) + einfo "Installing library-only target: ${target}" + emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install.libs + ;; + esac + done + + # Don't delete '*.dll.a', needed for linking, bug #631468 + if ! use static-libs; then + find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die + fi + + # Build fails to create this ... + # -FIXME- + # Ugly hackaround for riscv having two parts libdir (bug #689240) + # Replace this hack with an official solution once we have one... + # -FIXME- + dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \ + /usr/$(get_libdir)/terminfo + + # Remove obsolete libcurses symlink that is created by the build + # system. Technically, this could be also achieved + # via --disable-overwrite but it also moves headers implicitly, + # and we do not want to do this yet. + # bug #836696 + rm "${ED}"/usr/$(get_libdir)/libcurses* || die +} + +multilib_src_install_all() { + local terms=( + # Dumb/simple values that show up when using the in-kernel VT. + ansi console dumb linux + vt{52,100,102,200,220} + # [u]rxvt users used to be pretty common. Probably should drop this + # since upstream is dead and people are moving away from it. + rxvt{,-unicode}{,-256color} + # xterm users are common, as is terminals re-using/spoofing it. + xterm xterm-{,256}color + # screen is common (and reused by tmux). + screen{,-256color} + screen.xterm-256color + ) + if use split-usr ; then + local x + # We need the basic terminfo files in /etc for embedded/recovery, bug #37026 + einfo "Installing basic terminfo files in /etc..." + for x in "${terms[@]}"; do + local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null) + local basedir=$(basename "$(dirname "${termfile}")") + + if [[ -n ${termfile} ]] ; then + dodir "/etc/terminfo/${basedir}" + mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die + dosym "../../../../etc/terminfo/${basedir}/${x}" \ + "/usr/share/terminfo/${basedir}/${x}" + fi + done + + echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses + + use minimal && rm -r "${ED}"/usr/share/terminfo* + # Because ncurses5-config --terminfo returns the directory we keep it + # bug #245374 + keepdir /usr/share/terminfo + elif use minimal ; then + # Keep only the basic terminfo files + find "${ED}"/usr/share/terminfo/ \ + \( -type f -o -type l \) ${terms[*]/#/! -name } -delete , \ + -type d -empty -delete || die + fi + + cd "${S}" || die + dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc + if use doc ; then + docinto html + dodoc -r doc/html/ + fi +} + +pkg_preinst() { + preserve_old_lib /$(get_libdir)/libncurses.so.5 + preserve_old_lib /$(get_libdir)/libncursesw.so.5 + preserve_old_lib /$(get_libdir)/libtinfow.so.6 +} + +pkg_postinst() { + preserve_old_lib_notify /$(get_libdir)/libncurses.so.5 + preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5 + preserve_old_lib_notify /$(get_libdir)/libtinfow.so.6 +} |
