commit:     aeada12dd9d9c0008a73a59fd37578abf3fc1f6a
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jun  2 18:06:23 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jun  2 18:39:05 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aeada12d

sys-libs/ncurses: optimise SRC_URI generation

Thanks to radhermit's new tooling.

Before:
```
sys-libs/ncurses-6.4_p20230401::.: 33.232636ms
sys-libs/ncurses-6.4_p20230527::.: 55.257908ms
sys-libs/ncurses-6.3_p20221203-r2::.: 137.523679ms
```

After:
```
sys-libs/ncurses-6.4_p20230401::.: 9.66169ms
sys-libs/ncurses-6.4_p20230527::.: 10.019753ms
sys-libs/ncurses-6.3_p20221203-r2::.: 11.878338ms
```

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/ncurses/ncurses-6.3_p20221203-r2.ebuild | 52 +++++++++++-------------
 sys-libs/ncurses/ncurses-6.4_p20230401.ebuild    | 52 +++++++++++-------------
 sys-libs/ncurses/ncurses-6.4_p20230527.ebuild    | 52 +++++++++++-------------
 3 files changed, 72 insertions(+), 84 deletions(-)

diff --git a/sys-libs/ncurses/ncurses-6.3_p20221203-r2.ebuild 
b/sys-libs/ncurses/ncurses-6.3_p20221203-r2.ebuild
index fd7f1fc9cb67..49ffaefaa688 100644
--- a/sys-libs/ncurses/ncurses-6.3_p20221203-r2.ebuild
+++ b/sys-libs/ncurses/ncurses-6.3_p20221203-r2.ebuild
@@ -105,36 +105,32 @@ if [[ ${PV} == *_p* ]] ; then
        )
 
        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";
+               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+=( "${WORKDIR}"/${P/_p/-}-patch.sh )
+               UPSTREAM_PATCHES+=( 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
+               # 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
 
        SRC_URI+=" 
https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz";
@@ -159,7 +155,7 @@ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
 S="${WORKDIR}/${MY_P}"
 
 PATCHES=(
-       "${UPSTREAM_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

diff --git a/sys-libs/ncurses/ncurses-6.4_p20230401.ebuild 
b/sys-libs/ncurses/ncurses-6.4_p20230401.ebuild
index d5ee5d28cc97..0d8e53d2c0e1 100644
--- a/sys-libs/ncurses/ncurses-6.4_p20230401.ebuild
+++ b/sys-libs/ncurses/ncurses-6.4_p20230401.ebuild
@@ -54,36 +54,32 @@ if [[ ${PV} == *_p* ]] ; then
        )
 
        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";
+               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+=( "${WORKDIR}"/${P/_p/-}-patch.sh )
+               UPSTREAM_PATCHES+=( 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
+               # 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
 
@@ -110,7 +106,7 @@ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
 S="${WORKDIR}/${MY_P}"
 
 PATCHES=(
-       "${UPSTREAM_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

diff --git a/sys-libs/ncurses/ncurses-6.4_p20230527.ebuild 
b/sys-libs/ncurses/ncurses-6.4_p20230527.ebuild
index 7f0aa8fa0754..460f89a85065 100644
--- a/sys-libs/ncurses/ncurses-6.4_p20230527.ebuild
+++ b/sys-libs/ncurses/ncurses-6.4_p20230527.ebuild
@@ -67,36 +67,32 @@ if [[ ${PV} == *_p* ]] ; then
        )
 
        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";
+               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+=( "${WORKDIR}"/${P/_p/-}-patch.sh )
+               UPSTREAM_PATCHES+=( 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
+               # 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
 
@@ -123,7 +119,7 @@ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
 S="${WORKDIR}/${MY_P}"
 
 PATCHES=(
-       "${UPSTREAM_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

Reply via email to