summaryrefslogtreecommitdiff
path: root/sys-libs
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-09-15 03:04:39 -0500
committerroot <root@alpha.trunkmasters.com>2026-09-15 03:04:39 -0500
commitc012d247f03a893c117c88f73bcf6cb6494dcd22 (patch)
tree89fc51e9b45239a8e4233e466f4746f81ec6718f /sys-libs
parentd09313d7f2546bde376a20ff739a5e90cb229e25 (diff)
downloadbaldeagleos-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/Manifest1
-rw-r--r--sys-libs/liburing/liburing-2.15.ebuild94
-rw-r--r--sys-libs/ncurses/Manifest49
-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.ebuild513
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
+}