From 1a256280f70812d1ae23f0ce2a2569291b6609da Mon Sep 17 00:00:00 2001
From: V3n3RiX <venerix@koprulu.sector>
Date: Sun, 25 Sep 2022 05:33:01 +0100
Subject: gentoo auto-resync : 25:09:2022 - 05:33:00

---
 sys-libs/Manifest.gz                              | Bin 14227 -> 14225 bytes
 sys-libs/glibc/Manifest                           |   4 +-
 sys-libs/glibc/glibc-2.36-r3.ebuild               |   4 +
 sys-libs/glibc/glibc-9999.ebuild                  |   7 +-
 sys-libs/ncurses/Manifest                         |   5 +
 sys-libs/ncurses/ncurses-6.3_p20220924-r1.ebuild  | 465 ++++++++++++++++++++++
 sys-libs/ncurses/ncurses-6.3_p20220924.ebuild     | 463 +++++++++++++++++++++
 sys-libs/timezone-data/Manifest                   |   3 +
 sys-libs/timezone-data/timezone-data-2022d.ebuild | 202 ++++++++++
 9 files changed, 1149 insertions(+), 4 deletions(-)
 create mode 100644 sys-libs/ncurses/ncurses-6.3_p20220924-r1.ebuild
 create mode 100644 sys-libs/ncurses/ncurses-6.3_p20220924.ebuild
 create mode 100644 sys-libs/timezone-data/timezone-data-2022d.ebuild

(limited to 'sys-libs')

diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz
index ac188f3d0698..73a5942a497b 100644
Binary files a/sys-libs/Manifest.gz and b/sys-libs/Manifest.gz differ
diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest
index 64c0eb3a393e..5fcb385c604e 100644
--- a/sys-libs/glibc/Manifest
+++ b/sys-libs/glibc/Manifest
@@ -45,6 +45,6 @@ EBUILD glibc-2.33-r14.ebuild 48617 BLAKE2B bd3d13ab2419162e08cb204e279b1d570d5e6
 EBUILD glibc-2.34-r14.ebuild 49608 BLAKE2B 387023eb99a184e90ae50a09375e9858307f458c4d48b487d50d83bbe571b0b186eeea1ce8a71bc1f243e4220b04eaf7426b75182157655fe44d31bbb60b4e6d SHA512 578c2f6599045b34410dc0905e35263325bb28fd73b6f5c8d487b432e966088b189e24fd16a1055efdf93128c5343db88b1adc514659f878aaefe2426ced56dc
 EBUILD glibc-2.35-r10.ebuild 50157 BLAKE2B dc920c979618e1d30028afffc2b0c895bcdcdbc039e6674557aaea875744fa954c34e13f04925e95449683d64bd476879ed6674ce8b6cd5797d5131d57b8b3fb SHA512 c748dff0ffdeaecdabc37c60422f1c01d7a9d893f260c0d72806df251e0036e74f60c9e8d88273d1e9afd00efc4637db7a31c96ca43228a99723cf48afc4d372
 EBUILD glibc-2.35-r8.ebuild 49639 BLAKE2B 4cc331274b2b17b57e594a42e73ddbdd1691077e9568b32490852bf10a39788cda466a6fdb64e07890ff5d0291a6f7841e0f5ff2724fbc6d77d2e8c5bb86fd89 SHA512 dda73c9736d0d35f50db6f03c35de07a70fae4ae6cfb232e78f87c22247e67c916748080cdfd3f2117ef8b324938ddffaf7484c6a54ba06e00e157225bfa72e0
-EBUILD glibc-2.36-r3.ebuild 50578 BLAKE2B c8d5b97a66360f92d4605137a16d9dea32c06140e30d404aab79d3ad63a804f5442f84f4eddde54175afe0a77d1f03fa2c9184ef498b586cd81ed9ed0a150157 SHA512 5dd52aba6c0ad8d1301d91ac5fea32cbbd8fb3bb733eea2219c9087f05820fbe71228fe1d30105eb3c4b74e16c8d0115ccaa57c8b132c6126e8cb5365502714e
-EBUILD glibc-9999.ebuild 50585 BLAKE2B c850b211242f339611b64f72d79d044768671cd622c82d90fe7610de1485a0908cf0cc43f804909194ae64be02b1b07a715298910292e0c4f37131739114111d SHA512 701e7f86860af540f50e497ed3b059a1763aae68a82b50eb247f55827e4186112b015e96c0d22db860a7779e37da5e2fb52c6d63811e449995e20d4b7cdf1831
+EBUILD glibc-2.36-r3.ebuild 50757 BLAKE2B 70227d9d0dbf484c21f3e7dbe3a5fa596259c01a8286b116f645a94b222303fd176d147a5077e522d68fc6174d5e28633b9eac08ef0e9f6d8a2881e56a10f39c SHA512 b703e7975604187f7401254be1e0277bd3a6217db877f98435413a32598cf76cd02d61b5ad9c573a14691395bc593cb37a1e8f6f7b4985c8e7c8e40740e044c9
+EBUILD glibc-9999.ebuild 50758 BLAKE2B 6d0615192be2ab9183a966cca3aabbb4969e9362125aa69f3e4ebde9d5e5c942ac8b5faa8b7bae96ac24e4eeb1400bffd66771343983c929df8f337dcb24e3a5 SHA512 3ca0d9b4a2887ca81477d67250f9d8a07d837cfe5fe653d2a122678179c7f1081c885be4a254602ef74999f19a7ff486febc40ce1ba52b2dcec69ca69726c02d
 MISC metadata.xml 2072 BLAKE2B 441d10ce8368fa7b569ab9f29a2936ffd024534841bff3596f2dca05a5413e408a9ee6109fbc0fc6cb5d254b802b85241ff2f94da1f6d5dcb63b224930933e89 SHA512 26c8e9535e5c08ba86078084f25b6e4d3973ba1e004fb2bd3552c76deb383f53ad5fdb40ca071819be56d6fc3f7d5ef2ab6a76861fa7f94428ed06d681073985
diff --git a/sys-libs/glibc/glibc-2.36-r3.ebuild b/sys-libs/glibc/glibc-2.36-r3.ebuild
index 012d6984dd74..7d7069dadec8 100644
--- a/sys-libs/glibc/glibc-2.36-r3.ebuild
+++ b/sys-libs/glibc/glibc-2.36-r3.ebuild
@@ -336,10 +336,14 @@ setup_target_flags() {
 				use stack-realign && export CFLAGS_x86+=" -mstackrealign"
 
 				# Workaround for bug #823780.
+				# Need to save/restore CC because earlier on, we stuff it full of CFLAGS, and tc-getCPP doesn't like that.
+				CC_mangled=${CC}
+				CC=${glibc__GLIBC_CC}
 				if tc-is-gcc && (($(gcc-major-version) == 11)) && (($(gcc-minor-version) <= 2)) && (($(gcc-micro-version) == 0)) ; then
 					export CFLAGS_x86="${CFLAGS_x86} -mno-avx512f"
 					einfo "Auto adding -mno-avx512f to CFLAGS_x86 for buggy GCC version (bug #823780) (ABI=${ABI})"
 				fi
+				CC=${CC_mangled}
 			fi
 		;;
 		mips)
diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index 8456c2a16fe4..68bafd8c3c33 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -26,8 +26,7 @@ PATCH_DEV=dilfridge
 if [[ ${PV} == 9999* ]]; then
 	inherit git-r3
 else
-	#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-	KEYWORDS=""
+	#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
 	SRC_URI="mirror://gnu/glibc/${P}.tar.xz"
 	SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz"
 fi
@@ -337,10 +336,14 @@ setup_target_flags() {
 				use stack-realign && export CFLAGS_x86+=" -mstackrealign"
 
 				# Workaround for bug #823780.
+				# Need to save/restore CC because earlier on, we stuff it full of CFLAGS, and tc-getCPP doesn't like that.
+				CC_mangled=${CC}
+				CC=${glibc__GLIBC_CC}
 				if tc-is-gcc && (($(gcc-major-version) == 11)) && (($(gcc-minor-version) <= 2)) && (($(gcc-micro-version) == 0)) ; then
 					export CFLAGS_x86="${CFLAGS_x86} -mno-avx512f"
 					einfo "Auto adding -mno-avx512f to CFLAGS_x86 for buggy GCC version (bug #823780) (ABI=${ABI})"
 				fi
+				CC=${CC_mangled}
 			fi
 		;;
 		mips)
diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest
index 38cf7cd3f85e..0c82e83e7c04 100644
--- a/sys-libs/ncurses/Manifest
+++ b/sys-libs/ncurses/Manifest
@@ -101,12 +101,17 @@ DIST ncurses-6.3-20220910.patch.gz 120984 BLAKE2B 69ad11c6d31d4bb97737e6ede506ba
 DIST ncurses-6.3-20220910.patch.gz.asc 729 BLAKE2B 55c87ac9edd67abf2c39823acc37a9c8dce6852344d38b442bc2e4693a44412383c2ea710d3030b079607824877f6a1f5efc50970ccd51086c62ebed23e7ee05 SHA512 887031e5248665c79abbc35f4c1e63cffa3b271359188e266372c624b1ac2ce6bb269823c16ea0f6662e4e4acf592179db8f0030fdd9b03ed531d37d5fb7b44e
 DIST ncurses-6.3-20220917.patch.gz 7833 BLAKE2B 338ddfc2b660cff6248bcb2fc39ef13baf3d622c9f68b47c2da4d94e21a12dec7f6d98f7125a154f1e4dbe612cde9172de9d78851bba1fe4e9106dc1cd9e0a26 SHA512 5b2de00087211b9e599aecbe94870504c4bd312d9f0ab4959e706f784700e6e3095beeb8283ed8df9911f5e841f1004a2ef5184ee2c04762a63d84c47c2f4cfe
 DIST ncurses-6.3-20220917.patch.gz.asc 729 BLAKE2B c952f018cee490635809fa3a4ead27964a639289db16db42768c545e85b56033b01ea45b9251cd14f4d0cff97673566a4c8d04f93a1539392b676baeecc0307c SHA512 57de37e7c0fe70b0c1abdabe77b36a95b2845b423f167dd4d5acf5999a7152d69193f707c41f88d6e4210934c120d8c72a93830c6f2f9cb49832266e02314588
+DIST ncurses-6.3-20220924.patch.gz 112587 BLAKE2B 77711d12d8b38d72c8f218eae8f1452fe5d6f65e00937b663ee99e399f0b2a53d450391b12900470b1670cd83dfaac3c10ecc2e4358617866edc317c6daeb3fd SHA512 99057a0e28fa03aae415761928a4fd158eca7de1fee34531a102901846a94893de9dce2f1ad08885201ec0f54d379c3b4886725e766c27239ac957108c89dcb4
+DIST ncurses-6.3-20220924.patch.gz.asc 729 BLAKE2B 64103419d56b0e3b9ab7d7c0b2c650db18b472f2c656b6939b865f7a93e4f6ef5adbed9e438c21a488c204c0dffc818a9c787558ce04a50c7d1c6384f84889aa SHA512 f4bda8c09b6b701c99ffd3153dd8754496991b7f83c36ee7f49c4c701d081d32adfc9c04fa83e639df7f024479c7ee5b3921f45db9f72e896c48637073eca38b
 DIST ncurses-6.3.tar.gz 3583550 BLAKE2B b2c174ac48d587b4d3aa054f04e4ec8bffd8a657a4aff5f090104965c741901e600712c8f8e5e98f3b8a26bc558996a1e14a746f113854832853b855e9d406c3 SHA512 5373f228cba6b7869210384a607a2d7faecfcbfef6dbfcd7c513f4e84fbd8bcad53ac7db2e7e84b95582248c1039dcfc7c4db205a618f7da22a166db482f0105
 DIST ncurses-6.3.tar.gz.sig 438 BLAKE2B d7f9852292110fe7a048a9e38611ea06564b5142cb4cbeb8d99bba752d5df8eeffa3b57e5ca315c14024520bc008b30650e99669c995dca05a798399a0c85d39 SHA512 b9a2a25e0b1854c272bf89c610c81fc0ba061f0296eca5c0079a79cfe310e44eb16c46eb5a0dd018f1ca9114d569c9d5087a2b8e60b0344f1eb97f7c5addafc6
 DIST ncurses-6.3_p20220910-patches.tar.xz 62776 BLAKE2B a65260559ca4f69d724fdaec5ebade7f213144ff77485f6a8b6a55632736caae350ab478550d7ad3a3b723c4804397e8c5dfbed172f77f4f91a444a545b85f16 SHA512 21a51325ab649213e09ea67bc22045e91e67766211766f2d19477e740d36cb235b292576230d087532ba0b44947938d29fd2d28199084fb91e3f8cd3cd6cf00a
+DIST ncurses-6.3_p20220924-patches.tar.xz 63272 BLAKE2B 94b617ba8e949bd7b78047bb1a99acb9f5e0e456d4aebfe3d81b405c491071be7aaeb90df68d144c80a7da6a02a916ba3b2c553ecaf7a8a74214860743b7b783 SHA512 7e55e96b94184a84a752a2b482d13c3aaccb41ade79d14569aad00534c03a80f2dbafc5460838b8d51271089c02c5f0da1a73e5a70bc0619217124ae1c647e20
 EBUILD ncurses-6.3_p20220423.ebuild 12167 BLAKE2B d7ea349cae22e242b2dabb4376f61e22902003137387a5a0af844961c3f2d64b2618fc3f9c654285491f2f80bb1de70124a8cd86345de4239331f3e69537a8be SHA512 7f5bcaed9bceb9eea739d4396ac0a1293aa3194d9d3f4085ece5db541fe86b8dbee76317e5b12ffbb7243eb09aa123b2c8efb376b1b3ebf5c795aed5a4dc9eef
 EBUILD ncurses-6.3_p20220827-r1.ebuild 12236 BLAKE2B 53261bd55ba8d2efa739b9309624bbf17e20984dab9e0b040cffc4058f3bfd394853a0a72e0223d227882b2676b2f56d8c2703256955bab7e347a0b9f3aa2a1c SHA512 5d67dc3716535da4bf5167f674f17e1bffb4359806cfd222a48a011d7f500cd58a2d11d0c86819e21dcf4d5852f125353402d16ac7ee588f53a75fb392e79cce
 EBUILD ncurses-6.3_p20220827.ebuild 12110 BLAKE2B aa1226cb5e8ea8b23f66e9e7376e795594a8da27eb668fe9252418a40333162901e51194b1270e8b0a47adf18d795305dd87885aa3604c4f7a753c697082a393 SHA512 d47f2c1be92863dbd377b47dfa91d7114b05cc9443e90aaae6ca2b59a7d2d46e75f198acd518ed3224547d1378cb0c93e20c6b569efeb7d0ef4472d7f8b0e192
 EBUILD ncurses-6.3_p20220917-r1.ebuild 13651 BLAKE2B ea86e9fa7612733045230fe19acbaa0b6c6088b39d63d386d362b9c42f3e5ecf8d27310f1761b1e9e4c4a9a2f051e1bb35377ed718d8edac35a9e7a1354bb89b SHA512 d571f2cddd6e32043fd9a6ac54bead7502082eb6b2302aa929e8f79ac8d00371237c81eda7004da5e19ed40b13fc7f8af8acc6e6cb14d21210cf603a42d1d15d
 EBUILD ncurses-6.3_p20220917.ebuild 13525 BLAKE2B d7c7d30af0e28d4d4af319772fcec6b550eeed446c6bb2393b8fb9fdb2c03c7015a61ebb8447761ceaa7e415f4434f4e6a02488246cff4ebbe0de4559ec2049a SHA512 590bd5c3b11aad73b985115461a8a4eff412a6057f9ff253a4835c3f7d98d828b80b4f090576ca09568befd5e5a483f05320b7f1918233be92f16eb35775ff4c
+EBUILD ncurses-6.3_p20220924-r1.ebuild 13671 BLAKE2B 4e7c605c60a605d0548a806fdb3500049b5b26f0930b7be5df894c171a46c0551493e0ee676ee748acaf440da12f4a8ae964092df598a54343932f4066a95b74 SHA512 cc302fcf689c9915a0c2cbdf97ad66be015512dc37ed2fd8911f7623653dcb9f33453528d5dbccc21ba3b9229bacbe7468790f2f114a3505e73e841d91257cf3
+EBUILD ncurses-6.3_p20220924.ebuild 13545 BLAKE2B c162a3bd0af366b06c8bdb336ac32a526000cd16133012e1f4eece94bc4ceb38e5a83a486b79c3d5e723674358e0edd5cb10ca67a22a3820d1b54ba3bde549da SHA512 aa975ca77c417b54129a9b4527ed550060cf7fe26260d17b01fce48361ef95ed1e17fe89032d9b046af97d05a57774dde305ea5aed2153daeea5c0e5dc75fb43
 MISC metadata.xml 1094 BLAKE2B a65bbb9584f77fb07fff735e6471ef48a5d63e7fa79112bf75df67f2f94e816706165fdd42a482708a7fd2ab3b3e308f9766eac0b39c3a4e31dcff5b3db25d57 SHA512 adf0f939a1e14c964bfb44ab80b1b8c1ee897a036a994848ba3e40280ab3a73ddb3beef540c905efd623e71b890c4c91e0b7c24651561d0e2bb2a4c86f039dba
diff --git a/sys-libs/ncurses/ncurses-6.3_p20220924-r1.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220924-r1.ebuild
new file mode 100644
index 000000000000..3f93d46bd575
--- /dev/null
+++ b/sys-libs/ncurses/ncurses-6.3_p20220924-r1.ebuild
@@ -0,0 +1,465 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc
+inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript 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.3_p20220924
+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=(
+		20211026
+		20211030
+		20211106
+		20211113
+		20211115
+		20211120
+		20211127
+		20211204
+		20211211
+		20211219
+		20211225
+		20220101
+		20220115
+		20220122
+		20220129
+		20220205
+		20220212
+		20220219
+		20220226
+		20220305
+		20220312
+		20220319
+		20220326
+		20220402
+		20220409
+		20220416
+		20220423
+		20220430
+		20220501
+		20220507
+		20220514
+		20220521
+		20220529
+		20220604
+		20220612
+		20220618
+		20220625
+		20220703
+		20220709
+		20220716
+		20220724
+		20220729
+		20220806
+		20220813
+		20220820
+		20220827
+		20220903
+		20220910
+		20220917
+
+		# 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*}/${P/_p/-}.patch.sh.gz"
+		SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz.asc"
+
+		# If we have a rollup patch, use that instead of the individual ones.
+		UPSTREAM_PATCHES+=( "${WORKDIR}"/${P/_p/-}-patch.sh )
+	else
+		patch_url=
+		my_patch_index=
+
+		# We keep a bunch of mirrors here as we've had reports of invisible*.net
+		# being 403 forbidden for some users.
+		urls=(
+			"https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s"
+			"https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-%s"
+			"https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${MY_P}-%s"
+		)
+
+		for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do
+			for url in "${urls[@]}" ; do
+				patch_url="$(printf ${urls} ${PATCH_DATES[${my_patch_index}]}.patch.gz)"
+				SRC_URI+=" ${patch_url}"
+				SRC_URI+=" verify-sig? ( ${patch_url}.asc )"
+			done
+
+			UPSTREAM_PATCHES+=( "${WORKDIR}"/${MY_P}-${PATCH_DATES[${my_patch_index}]}.patch )
+		done
+
+		unset patch_url
+		unset my_patch_index
+		unset urls
+	fi
+
+	SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz"
+fi
+
+LICENSE="MIT"
+# The subslot reflects the SONAME.
+SLOT="0/6"
+#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"
+IUSE="ada +cxx debug doc gpm minimal profile +stack-realign static-libs test tinfo trace"
+RESTRICT="!test? ( test )"
+
+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"
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+	"${UPSTREAM_PATCHES[@]}"
+
+	# When rebasing Gentoo's patchset, please use git from a clean
+	# src_unpack 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,CPP}
+
+	# 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.
+	# The naming is also important as we use these directly with filenames and when
+	# checking configure flags.
+	NCURSES_TARGETS=(
+		ncurses
+		ncursesw
+		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}"
+
+		# We can't re-use the multilib BUILD_DIR because we run outside of it.
+		BUILD_DIR="${WORKDIR}" \
+		CC=${BUILD_CC} \
+		CHOST=${CBUILD} \
+		CFLAGS=${BUILD_CFLAGS} \
+		CXXFLAGS=${BUILD_CXXFLAGS} \
+		CPPFLAGS=${BUILD_CPPFLAGS} \
+		LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \
+		do_configure cross --without-shared --with-normal --with-progs
+	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 t
+	for t in "${NCURSES_TARGETS[@]}" ; do
+		do_configure "${t}"
+	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
+		# (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)
+		# Required for building  on mingw-w64, and possibly other windows
+		# platforms, bug #639670
+		$(use_enable kernel_Winnt term-driver)
+		--disable-termcap
+		--enable-symlinks
+		--with-rcs-ids
+		--with-manpage-format=normal
+		--enable-const
+		--enable-colorfgbg
+		--enable-hard-tabs
+		--enable-echo
+		$(use_enable !ada warnings)
+		$(use_with debug assertions)
+		$(use_enable !debug leaks)
+		$(use_with debug expanded)
+		$(use_with !debug macros)
+		$(multilib_native_with progs)
+		$(use_with test tests)
+		$(use_with trace)
+		$(use_with tinfo termlib)
+		--disable-stripping
+		--disable-pkg-ldflags
+	)
+
+	if [[ ${target} == ncurses*w ]] ; then
+		conf+=( --enable-widec )
+	else
+		conf+=( --disable-widec )
+	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
+	# See comments in src_configure.
+	if [[ ${target} != "cross" ]] ; then
+		local cross_path="${WORKDIR}/cross"
+		[[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic"
+	fi
+
+	ECONF_SOURCE="${S}" econf "${conf[@]}" "$@"
+}
+
+src_compile() {
+	# See comments in src_configure.
+	if ! has_version -b "~sys-libs/${P}:0" ; then
+		# We could possibly merge these two branches but opting to be
+		# conservative when merging some of the Prefix changes.
+
+		if [[ ${CHOST} == *-cygwin* ]] && ! multilib_is_native_abi ; then
+			# We make 'tic$(x)' here, for Cygwin having x=".exe".
+			BUILD_DIR="${WORKDIR}" \
+				 do_compile cross -C progs all PROGS='tic$(x)'
+		else
+			BUILD_DIR="${WORKDIR}" \
+				 do_compile cross -C progs tic
+		fi
+	fi
+
+	multilib-minimal_src_compile
+}
+
+multilib_src_compile() {
+	local t
+	for t in "${NCURSES_TARGETS[@]}" ; do
+		do_compile "${t}"
+	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
+
+	# 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
+	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
+	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() {
+	# We need the basic terminfo files in /etc for embedded/recovery, bug #37026
+	einfo "Installing basic terminfo files in /etc..."
+	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
+	)
+	local x
+	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
+
+	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
+}
+
+pkg_postinst() {
+	preserve_old_lib_notify /$(get_libdir)/libncurses.so.5
+	preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5
+}
diff --git a/sys-libs/ncurses/ncurses-6.3_p20220924.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220924.ebuild
new file mode 100644
index 000000000000..4fcb647e26d7
--- /dev/null
+++ b/sys-libs/ncurses/ncurses-6.3_p20220924.ebuild
@@ -0,0 +1,463 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc
+inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript 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.3_p20220924
+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=(
+		20211026
+		20211030
+		20211106
+		20211113
+		20211115
+		20211120
+		20211127
+		20211204
+		20211211
+		20211219
+		20211225
+		20220101
+		20220115
+		20220122
+		20220129
+		20220205
+		20220212
+		20220219
+		20220226
+		20220305
+		20220312
+		20220319
+		20220326
+		20220402
+		20220409
+		20220416
+		20220423
+		20220430
+		20220501
+		20220507
+		20220514
+		20220521
+		20220529
+		20220604
+		20220612
+		20220618
+		20220625
+		20220703
+		20220709
+		20220716
+		20220724
+		20220729
+		20220806
+		20220813
+		20220820
+		20220827
+		20220903
+		20220910
+		20220917
+
+		# 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*}/${P/_p/-}.patch.sh.gz"
+		SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz.asc"
+
+		# If we have a rollup patch, use that instead of the individual ones.
+		UPSTREAM_PATCHES+=( "${WORKDIR}"/${P/_p/-}-patch.sh )
+	else
+		patch_url=
+		my_patch_index=
+
+		# We keep a bunch of mirrors here as we've had reports of invisible*.net
+		# being 403 forbidden for some users.
+		urls=(
+			"https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s"
+			"https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-%s"
+			"https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${MY_P}-%s"
+		)
+
+		for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do
+			for url in "${urls[@]}" ; do
+				patch_url="$(printf ${urls} ${PATCH_DATES[${my_patch_index}]}.patch.gz)"
+				SRC_URI+=" ${patch_url}"
+				SRC_URI+=" verify-sig? ( ${patch_url}.asc )"
+			done
+
+			UPSTREAM_PATCHES+=( "${WORKDIR}"/${MY_P}-${PATCH_DATES[${my_patch_index}]}.patch )
+		done
+
+		unset patch_url
+		unset my_patch_index
+		unset urls
+	fi
+
+	SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz"
+fi
+
+LICENSE="MIT"
+# The subslot reflects the SONAME.
+SLOT="0/6"
+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"
+IUSE="ada +cxx debug doc gpm minimal profile +stack-realign static-libs test tinfo trace"
+RESTRICT="!test? ( test )"
+
+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"
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+	"${UPSTREAM_PATCHES[@]}"
+
+	# When rebasing Gentoo's patchset, please use git from a clean
+	# src_unpack 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,CPP}
+
+	# 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.
+	# The naming is also important as we use these directly with filenames and when
+	# checking configure flags.
+	NCURSES_TARGETS=(
+		ncurses
+		ncursesw
+		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}"
+
+		# We can't re-use the multilib BUILD_DIR because we run outside of it.
+		BUILD_DIR="${WORKDIR}" \
+		CC=${BUILD_CC} \
+		CHOST=${CBUILD} \
+		CFLAGS=${BUILD_CFLAGS} \
+		CXXFLAGS=${BUILD_CXXFLAGS} \
+		CPPFLAGS=${BUILD_CPPFLAGS} \
+		LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \
+		do_configure cross --without-shared --with-normal --with-progs
+	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 t
+	for t in "${NCURSES_TARGETS[@]}" ; do
+		do_configure "${t}"
+	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
+		# (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)
+		# Required for building  on mingw-w64, and possibly other windows
+		# platforms, bug #639670
+		$(use_enable kernel_Winnt term-driver)
+		--disable-termcap
+		--enable-symlinks
+		--with-rcs-ids
+		--with-manpage-format=normal
+		--enable-const
+		--enable-colorfgbg
+		--enable-hard-tabs
+		--enable-echo
+		$(use_enable !ada warnings)
+		$(use_with debug assertions)
+		$(use_enable !debug leaks)
+		$(use_with debug expanded)
+		$(use_with !debug macros)
+		$(multilib_native_with progs)
+		$(use_with test tests)
+		$(use_with trace)
+		$(use_with tinfo termlib)
+		--disable-stripping
+		--disable-pkg-ldflags
+	)
+
+	if [[ ${target} == ncurses*w ]] ; then
+		conf+=( --enable-widec )
+	else
+		conf+=( --disable-widec )
+	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
+	# See comments in src_configure.
+	if [[ ${target} != "cross" ]] ; then
+		local cross_path="${WORKDIR}/cross"
+		[[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic"
+	fi
+
+	ECONF_SOURCE="${S}" econf "${conf[@]}" "$@"
+}
+
+src_compile() {
+	# See comments in src_configure.
+	if ! has_version -b "~sys-libs/${P}:0" ; then
+		# We could possibly merge these two branches but opting to be
+		# conservative when merging some of the Prefix changes.
+
+		if [[ ${CHOST} == *-cygwin* ]] && ! multilib_is_native_abi ; then
+			# We make 'tic$(x)' here, for Cygwin having x=".exe".
+			BUILD_DIR="${WORKDIR}" \
+				 do_compile cross -C progs all PROGS='tic$(x)'
+		else
+			BUILD_DIR="${WORKDIR}" \
+				 do_compile cross -C progs tic
+		fi
+	fi
+
+	multilib-minimal_src_compile
+}
+
+multilib_src_compile() {
+	local t
+	for t in "${NCURSES_TARGETS[@]}" ; do
+		do_compile "${t}"
+	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
+
+	# 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
+	done
+
+	# Move main libraries into /.
+	if multilib_is_native_abi ; then
+		gen_usr_ldscript -a \
+			"${NCURSES_TARGETS[@]}" \
+			$(usex tinfo 'tinfow tinfo' '')
+	fi
+
+	if ! tc-is-static-only ; then
+		# Provide a link for -lcurses.
+		ln -sf libncurses$(get_libname) "${ED}"/usr/$(get_libdir)/libcurses$(get_libname) || die
+	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
+	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
+}
+
+multilib_src_install_all() {
+	# We need the basic terminfo files in /etc for embedded/recovery, bug #37026
+	einfo "Installing basic terminfo files in /etc..."
+	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
+	)
+	local x
+	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
+
+	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
+}
+
+pkg_postinst() {
+	preserve_old_lib_notify /$(get_libdir)/libncurses.so.5
+	preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5
+}
diff --git a/sys-libs/timezone-data/Manifest b/sys-libs/timezone-data/Manifest
index b9fffca6f155..3376f14b7e60 100644
--- a/sys-libs/timezone-data/Manifest
+++ b/sys-libs/timezone-data/Manifest
@@ -1,4 +1,7 @@
 DIST tzcode2022c.tar.gz 280190 BLAKE2B 4c66b84da8b1e535b92f8be8f0a1fa32f3b050f3e7676370e3094b5098e7670455e506160f364c61cfba1a919b769da8864a5347f240107c750c723fcc5caa2f SHA512 3373fa16a12007415c3dc3a75c4a0d61d6ae54968eeecedcdf4bcfd7f554020a15c4687dde107b90462b75d848eebe1e200c33322ebe0d3f1ad11bc769cade06
+DIST tzcode2022d.tar.gz 280432 BLAKE2B eaae4bb669f247f757a9e7394a7cd6bc5a457611cc6da44a08f697b4d2a34be2d9f7a65310767278ab1b8ed1454a1e36bb4f8d5d818f00f07475d5f955b1986d SHA512 54491ef8dbab7c41754eb3f2990b8ccb2a10960098c7d78d94375d7f1362540f0d71ba77a46bcaf95f419f8d01a23bdf940cdc9c7906c23ad6c40cd1c788b1c2
 DIST tzdata2022c.tar.gz 432721 BLAKE2B 087a0e728c6052f91142ef11ad2092e573de99d787ed1e8ff62476b870ff2e3d222a19df01ad624cf06e543aa7e40df89dcd888b9e5fd12f8b5af90bdffc9ac9 SHA512 e2ae92abac6d87ce4ab4ba9012e868e1791b842e083293489debc0c671b9cf135b5b70426dacb6dbebbf6eba24463205225ae45bb7df891a086b25475f85ee0b
+DIST tzdata2022d.tar.gz 433425 BLAKE2B 8339904a8d6ff8cfbd3e3180ebdce826ace0ba06e95a14d4cb99e423e3c7aef44eb6d5d6e35164b3cd69830d0136eb43d2a835c9b54d5f5fb40e5a0b437a33c9 SHA512 f0d9f1dc6b7613598a861a3860f249e5beff75d8c4bb12bae21018ee617044cf25065dff08f81b0e6ed2c43602f2166dd6407a989a369a004e068260f2eece30
 EBUILD timezone-data-2022c.ebuild 5724 BLAKE2B 2b382ae9265a0c3bac352c2390539b525404cb56c9ebbdf8700c398bed04442c2ca80895744fd47da36c20c0dbb5e22c7b8a1e528d9df192ea0823b80f1a591b SHA512 4327f00dd3e916e8352177f9d857501a94d66e4bd3dd182ba928aa2073bfd1c398dedc3760d463e96c179fbd40f4809ff49d9fec43eab758cc947b453b8716df
+EBUILD timezone-data-2022d.ebuild 5744 BLAKE2B 242e81915890677d557534413ce0b85b0d07595d569ed71c964b95c694e54315c32ae9f919cbad91825b3650d06957b4e973d62ba95e22d69cb28e3d4567cb95 SHA512 afc434f933e34d7dabaf8bdaff81c35f18bf8b6f2b9d21e2cdb882d161dc89bf5da2da9d95c2f97c4e37cc98f0407a608938842b8418f6b1f120f700e7ae7901
 MISC metadata.xml 807 BLAKE2B 24b09c4228c232b607e6e6c165a20e364136d77aa970e72c70124636a038cd3b672bad16ddd68c0b75373be6a09f969e59bc38f7e451bb2869cd46c521e2ca82 SHA512 0b95b32d79651493a04032f175f3320d8975cea714b43fa56aa528f10f51a7c52b58a934828f98a770855485af6f8db048bd2bfa3010802cff8c26ae05bb16e2
diff --git a/sys-libs/timezone-data/timezone-data-2022d.ebuild b/sys-libs/timezone-data/timezone-data-2022d.ebuild
new file mode 100644
index 000000000000..e7e80dff58c7
--- /dev/null
+++ b/sys-libs/timezone-data/timezone-data-2022d.ebuild
@@ -0,0 +1,202 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs flag-o-matic
+
+MY_CODE_VER=${PV}
+MY_DATA_VER=${PV}
+DESCRIPTION="Timezone data (/usr/share/zoneinfo) and utilities (tzselect/zic/zdump)"
+HOMEPAGE="https://www.iana.org/time-zones"
+SRC_URI="https://www.iana.org/time-zones/repository/releases/tzdata${MY_DATA_VER}.tar.gz
+	https://www.iana.org/time-zones/repository/releases/tzcode${MY_CODE_VER}.tar.gz"
+
+LICENSE="BSD public-domain"
+SLOT="0"
+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"
+IUSE="nls leaps-timezone zic-slim"
+
+DEPEND="nls? ( virtual/libintl )"
+RDEPEND="
+	${DEPEND}
+	!sys-libs/glibc[vanilla(+)]
+"
+
+src_unpack() {
+	mkdir -p "${S}" && cd "${S}" || die
+	default
+}
+
+src_prepare() {
+	default
+
+	# check_web contacts validator.w3.org
+	sed -i -e 's/check_tables check_web/check_tables/g' \
+		Makefile || die "Failed to disable check_web"
+
+	tc-is-cross-compiler && cp -pR "${S}" "${S}"-native
+}
+
+src_configure() {
+	tc-export CC
+
+	# bug #471102
+	append-lfs-flags
+
+	if use elibc_Darwin ; then
+		# bug #138251
+		append-cppflags -DSTD_INSPIRED
+	fi
+
+	append-cppflags -DHAVE_GETTEXT=$(usex nls 1 0) -DTZ_DOMAIN='\"libc\"'
+
+	# Upstream default is 'slim', but it breaks quite a few programs
+	# that parse /etc/localtime directly: bug #747538.
+	append-cppflags -DZIC_BLOAT_DEFAULT='\"'$(usex zic-slim slim fat)'\"'
+
+	LDLIBS=""
+	if use nls ; then
+		# See if an external libintl is available. bug #154181, bug #578424
+		local c="${T}/test"
+		echo 'main(){}' > "${c}.c" || die
+		if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} "${c}.c" -o "${c}" -lintl 2>/dev/null ; then
+			LDLIBS+=" -lintl"
+		fi
+	fi
+}
+
+_emake() {
+	emake \
+		REDO=$(usex leaps-timezone posix_right posix_only) \
+		TOPDIR="${EPREFIX}" \
+		ZICDIR='$(TOPDIR)/usr/bin' \
+		"$@"
+}
+
+src_compile() {
+	_emake \
+		AR="$(tc-getAR)" \
+		cc="$(tc-getCC)" \
+		RANLIB="$(tc-getRANLIB)" \
+		CFLAGS="${CFLAGS} -std=gnu99 ${CPPFLAGS}" \
+		LDFLAGS="${LDFLAGS}" \
+		LDLIBS="${LDLIBS}"
+
+	if tc-is-cross-compiler ; then
+		_emake -C "${S}"-native \
+			AR="$(tc-getBUILD_AR)" \
+			cc="$(tc-getBUILD_CC)" \
+			RANLIB="$(tc-getBUILD_RANLIB)" \
+			CFLAGS="${BUILD_CFLAGS} ${BUILD_CPPFLAGS}" \
+			LDFLAGS="${BUILD_LDFLAGS}" \
+			LDLIBS="${LDLIBS}" \
+			zic
+	fi
+}
+
+src_test() {
+	# VALIDATE_ENV is used for extended/web based tests. Punt on them.
+	emake check VALIDATE_ENV=true
+}
+
+src_install() {
+	local zic=""
+	tc-is-cross-compiler && zic="zic=${S}-native/zic"
+	_emake install ${zic} DESTDIR="${D}" LIBDIR="/nukeit"
+	rm -rf "${D}/nukeit" "${ED}/etc" || die
+
+	insinto /usr/share/zoneinfo
+	doins "${S}"/leap-seconds.list
+
+	# Delete man pages installed by man-pages package.
+	rm "${ED}"/usr/share/man/man5/tzfile.5* "${ED}"/usr/share/man/man8/{tzselect,zdump,zic}.8 || die
+	dodoc CONTRIBUTING README NEWS *.html
+}
+
+get_TIMEZONE() {
+	local tz src="${EROOT}/etc/timezone"
+	if [[ -e ${src} ]] ; then
+		tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}")
+	else
+		tz="FOOKABLOIE"
+	fi
+
+	[[ -z ${tz} ]] && return 1 || echo "${tz}"
+}
+
+pkg_preinst() {
+	local tz=$(get_TIMEZONE)
+	if [[ ${tz} == right/* || ${tz} == posix/* ]] ; then
+		eerror "The right & posix subdirs are no longer installed as subdirs -- they have been"
+		eerror "relocated to match upstream paths as sibling paths.  Further, posix/xxx is the"
+		eerror "same as xxx, so you should simply drop the posix/ prefix.  You also should not"
+		eerror "be using right/xxx for the system timezone as it breaks programs."
+		die "Please fix your timezone setting"
+	fi
+
+	# Trim the symlink by hand to avoid portage's automatic protection checks.
+	rm -f "${EROOT}"/usr/share/zoneinfo/posix
+
+	if has_version "<=${CATEGORY}/${PN}-2015c" ; then
+		elog "Support for accessing posix/ and right/ directly has been dropped to match"
+		elog "upstream.  There is no need to set TZ=posix/xxx as it is the same as TZ=xxx."
+		elog "For TZ=right/, you can use TZ=../zoneinfo-leaps/xxx instead.  See this post"
+		elog "for details: https://mm.icann.org/pipermail/tz/2015-February/022024.html"
+	fi
+}
+
+configure_tz_data() {
+	# Make sure the /etc/localtime file does not get stale, bug #127899
+	local tz src="${EROOT}/etc/timezone" etc_lt="${EROOT}/etc/localtime"
+
+	# If it's a symlink, assume the user knows what they're doing and
+	# they're managing it themselves, bug #511474
+	if [[ -L "${etc_lt}" ]] ; then
+		einfo "Assuming your ${etc_lt} symlink is what you want; skipping update."
+		return 0
+	fi
+
+	if ! tz=$(get_TIMEZONE) ; then
+		einfo "Assuming your empty ${src} file is what you want; skipping update."
+		return 0
+	fi
+
+	if [[ "${tz}" == "FOOKABLOIE" ]] ; then
+		einfo "You do not have a timezone set in ${src}; skipping update."
+		return 0
+	fi
+
+	local tzpath="${EROOT}/usr/share/zoneinfo/${tz}"
+
+	if [[ ! -e ${tzpath} ]]; then
+		ewarn "The timezone specified in ${src} is not valid."
+		return 1
+	fi
+
+	if [[ -f ${etc_lt} ]]; then
+		# If a regular file already exists, copy over it.
+		ewarn "Found a regular file at ${etc_lt}."
+		ewarn "Some software may expect a symlink instead."
+		ewarn "You may convert it to a symlink by removing the file and running:"
+		ewarn "  emerge --config sys-libs/timezone-data"
+		einfo "Copying ${tzpath} to ${etc_lt}."
+		cp -f "${tzpath}" "${etc_lt}"
+	else
+		# Otherwise, create a symlink and remove the timezone file.
+		tzpath="../usr/share/zoneinfo/${tz}"
+		einfo "Linking ${tzpath} at ${etc_lt}."
+		if ln -snf "${tzpath}" "${etc_lt}"; then
+			einfo "Removing ${src}."
+			rm -f "${src}"
+		fi
+	fi
+}
+
+pkg_config() {
+	configure_tz_data
+}
+
+pkg_postinst() {
+	configure_tz_data
+}
-- 
cgit v1.2.3