[gentoo-dev] [PATCH 16/44] multilib-build.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/multilib-build.eclass | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/eclass/multilib-build.eclass b/eclass/multilib-build.eclass index 1774ad057430b..22c4a8bb30489 100644 --- a/eclass/multilib-build.eclass +++ b/eclass/multilib-build.eclass @@ -1,4 +1,4 @@ -# Copyright 2013-2023 Gentoo Authors +# Copyright 2013-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: multilib-build.eclass @@ -17,14 +17,18 @@ # dependencies shall use the USE dependency string in ${MULTILIB_USEDEP} # to properly request multilib enabled. +if [[ -z ${_MULTILIB_BUILD_ECLASS} ]]; then +_MULTILIB_BUILD_ECLASS=1 + case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_MULTILIB_BUILD_ECLASS} ]]; then -_MULTILIB_BUILD_ECLASS=1 - inherit multibuild multilib # @ECLASS_VARIABLE: _MULTILIB_FLAGS -- 2.46.0
[gentoo-dev] [PATCH 17/44] multilib.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/multilib.eclass | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/eclass/multilib.eclass b/eclass/multilib.eclass index bf9c88f7e6a4e..eca8c02d8336c 100644 --- a/eclass/multilib.eclass +++ b/eclass/multilib.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: multilib.eclass @@ -9,14 +9,18 @@ # @DESCRIPTION: # This eclass is for all functions pertaining to handling multilib configurations. +if [[ -z ${_MULTILIB_ECLASS} ]]; then +_MULTILIB_ECLASS=1 + case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_MULTILIB_ECLASS} ]]; then -_MULTILIB_ECLASS=1 - inherit toolchain-funcs # Defaults: -- 2.46.0
[gentoo-dev] [PATCH 18/44] multilib-minimal.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/multilib-minimal.eclass | 17 +++-- 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/eclass/multilib-minimal.eclass b/eclass/multilib-minimal.eclass index 92968b6cf2137..c84fb3781a975 100644 --- a/eclass/multilib-minimal.eclass +++ b/eclass/multilib-minimal.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: multilib-minimal.eclass @@ -23,16 +23,21 @@ # # If you need generic install rules, use multilib_src_install_all function. -case ${EAPI} in - 6|7|8) ;; - *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; -esac - inherit multilib-build if [[ ! ${_MULTILIB_MINIMAL_ECLASS} ]]; then _MULTILIB_MINIMAL_ECLASS=1 +case ${EAPI} in + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + + multilib-minimal_src_configure() { debug-print-function ${FUNCNAME} "$@" -- 2.46.0
[gentoo-dev] [PATCH 19/44] multiprocessing.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/multiprocessing.eclass | 16 ++-- 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/eclass/multiprocessing.eclass b/eclass/multiprocessing.eclass index 13d6a92f2f2e5..f9627de26c3b9 100644 --- a/eclass/multiprocessing.eclass +++ b/eclass/multiprocessing.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: multiprocessing.eclass @@ -24,14 +24,18 @@ # } # @CODE -case ${EAPI:-0} in - [5678]) ;; - *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; -esac - if [[ -z ${_MULTIPROCESSING_ECLASS} ]]; then _MULTIPROCESSING_ECLASS=1 +case ${EAPI} in + 5|6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + # @FUNCTION: get_nproc # @USAGE: [${fallback:-1}] # @DESCRIPTION: -- 2.46.0
[gentoo-dev] [PATCH 20/44] out-of-source-utils.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/out-of-source-utils.eclass | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/eclass/out-of-source-utils.eclass b/eclass/out-of-source-utils.eclass index d68b210889951..55a88127ca711 100644 --- a/eclass/out-of-source-utils.eclass +++ b/eclass/out-of-source-utils.eclass @@ -1,4 +1,4 @@ -# Copyright 2022-2023 Gentoo Authors +# Copyright 2022-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: out-of-source-utils.eclass @@ -12,14 +12,18 @@ # This eclass provides a run_in_build_dir() helper that can be used # to execute specified command inside BUILD_DIR. +if [[ ! ${_OUT_OF_SOURCE_UTILS_ECLASS} ]]; then +_OUT_OF_SOURCE_UTILS_ECLASS=1 + case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ ! ${_OUT_OF_SOURCE_UTILS_ECLASS} ]]; then -_OUT_OF_SOURCE_UTILS_ECLASS=1 - # @FUNCTION: run_in_build_dir # @USAGE: ... # @DESCRIPTION: -- 2.46.0
[gentoo-dev] [PATCH 21/44] pax-utils.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/pax-utils.eclass | 16 ++-- 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/eclass/pax-utils.eclass b/eclass/pax-utils.eclass index 3830f03df3419..a7144278fd9a4 100644 --- a/eclass/pax-utils.eclass +++ b/eclass/pax-utils.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: pax-utils.eclass @@ -21,14 +21,18 @@ # To control what markings are made, set PAX_MARKINGS in /etc/portage/make.conf # to contain either "PT", "XT" or "none". The default is none -case ${EAPI:-0} in - 5|6|7|8) ;; - *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; -esac - if [[ -z ${_PAX_UTILS_ECLASS} ]]; then _PAX_UTILS_ECLASS=1 +case ${EAPI} in + 5|6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + # @ECLASS_VARIABLE: PAX_MARKINGS # @DESCRIPTION: # Control which markings are made: -- 2.46.0
[gentoo-dev] [PATCH 22/44] perl-functions.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/perl-functions.eclass | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass index 142fdeb8cfbd0..d2b6cfb85f734 100644 --- a/eclass/perl-functions.eclass +++ b/eclass/perl-functions.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: perl-functions.eclass @@ -17,11 +17,12 @@ # global scope. case ${EAPI} in - 7|8) - ;; - *) - die "${ECLASS}: EAPI ${EAPI:-0} not supported" + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." ;; + 7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac [[ ${CATEGORY} == "perl-core" ]] && inherit alternatives -- 2.46.0
[gentoo-dev] [PATCH 23/44] php-pear-r2.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/php-pear-r2.eclass | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/eclass/php-pear-r2.eclass b/eclass/php-pear-r2.eclass index 9882c7dcc7004..567aa9a8144f3 100644 --- a/eclass/php-pear-r2.eclass +++ b/eclass/php-pear-r2.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: php-pear-r2.eclass @@ -14,14 +14,18 @@ # Note that this eclass doesn't handle dependencies of PEAR packages # on purpose; please use (R)DEPEND to define them correctly! +if [[ -z ${_PHP_PEAR_R2_ECLASS} ]]; then +_PHP_PEAR_R2_ECLASS=1 + case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_PHP_PEAR_R2_ECLASS} ]]; then -_PHP_PEAR_R2_ECLASS=1 - RDEPEND=">=dev-php/pear-1.8.1" [[ ${EAPI} != [67] ]] && IDEPEND=">=dev-php/pear-1.8.1" -- 2.46.0
[gentoo-dev] [PATCH 24/44] portability.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/portability.eclass | 12 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/eclass/portability.eclass b/eclass/portability.eclass index 78da440e22ddb..926ac8b8b825f 100644 --- a/eclass/portability.eclass +++ b/eclass/portability.eclass @@ -9,14 +9,18 @@ # @SUPPORTED_EAPIS: 6 7 8 # @BLURB: This eclass is created to avoid using non-portable GNUisms inside ebuilds +if [[ -z ${_PORTABILITY_ECLASS} ]]; then +_PORTABILITY_ECLASS=1 + case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_PORTABILITY_ECLASS} ]]; then -_PORTABILITY_ECLASS=1 - # @FUNCTION: treecopy # @USAGE: [orig2 orig3 ] # @DESCRIPTION: -- 2.46.0
[gentoo-dev] [PATCH 25/44] prefix.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/prefix.eclass | 16 ++-- 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/eclass/prefix.eclass b/eclass/prefix.eclass index 8d50d0ba7b6e1..e968e8ae8bac7 100644 --- a/eclass/prefix.eclass +++ b/eclass/prefix.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: prefix.eclass @@ -12,14 +12,18 @@ # located somewhere in the filesystem. Prefix ebuilds require # additional functions and variables which are defined by this eclass. -case ${EAPI:-0} in - [5678]) ;; - *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; -esac - if [[ -z ${_PREFIX_ECLASS} ]]; then _PREFIX_ECLASS=1 +case ${EAPI} in + 5|6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + # @ECLASS_VARIABLE: EPREFIX # @DESCRIPTION: # The offset prefix of a Gentoo Prefix installation. When Gentoo Prefix -- 2.46.0
[gentoo-dev] [PATCH 26/44] preserve-libs.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/preserve-libs.eclass | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/eclass/preserve-libs.eclass b/eclass/preserve-libs.eclass index 35c65ef4436f9..38571447b945d 100644 --- a/eclass/preserve-libs.eclass +++ b/eclass/preserve-libs.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: preserve-libs.eclass @@ -7,14 +7,18 @@ # @SUPPORTED_EAPIS: 5 6 7 8 # @BLURB: preserve libraries after SONAME changes +if [[ -z ${_PRESERVE_LIBS_ECLASS} ]]; then +_PRESERVE_LIBS_ECLASS=1 + case ${EAPI} in - 5|6|7|8) ;; + 5|6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_PRESERVE_LIBS_ECLASS} ]]; then -_PRESERVE_LIBS_ECLASS=1 - # @FUNCTION: preserve_old_lib # @USAGE: [more libs] # @DESCRIPTION: -- 2.46.0
[gentoo-dev] [PATCH 27/44] readme.gentoo-r1.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/readme.gentoo-r1.eclass | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eclass/readme.gentoo-r1.eclass b/eclass/readme.gentoo-r1.eclass index 48023d9c049f8..3d2d8244687c7 100644 --- a/eclass/readme.gentoo-r1.eclass +++ b/eclass/readme.gentoo-r1.eclass @@ -21,7 +21,11 @@ if [[ -z ${_README_GENTOO_ECLASS} ]]; then _README_GENTOO_ECLASS=1 case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -- 2.46.0
[gentoo-dev] [PATCH 28/44] ruby-fakegem.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/ruby-fakegem.eclass | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/eclass/ruby-fakegem.eclass b/eclass/ruby-fakegem.eclass index 40ff76ce900e0..04099a82ef4fd 100644 --- a/eclass/ruby-fakegem.eclass +++ b/eclass/ruby-fakegem.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: ruby-fakegem.eclass @@ -139,7 +139,11 @@ RUBY_FAKEGEM_BINDIR="${RUBY_FAKEGEM_BINDIR-bin}" RUBY_FAKEGEM_EXTENSION_LIBDIR="${RUBY_FAKEGEM_EXTENSION_LIBDIR-lib}" case ${EAPI} in - 5|6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -- 2.46.0
[gentoo-dev] [PATCH 29/44] ruby-ng.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/ruby-ng.eclass | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/eclass/ruby-ng.eclass b/eclass/ruby-ng.eclass index d80ae96dd40bc..2ef6d22474351 100644 --- a/eclass/ruby-ng.eclass +++ b/eclass/ruby-ng.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: ruby-ng.eclass @@ -67,7 +67,11 @@ # passed to "grep -E" to remove reporting of these shared objects. case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -- 2.46.0
[gentoo-dev] [PATCH 30/44] ruby-utils.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/ruby-utils.eclass | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/eclass/ruby-utils.eclass b/eclass/ruby-utils.eclass index 789f57ce25f6a..48a25114b396b 100644 --- a/eclass/ruby-utils.eclass +++ b/eclass/ruby-utils.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: ruby-utils.eclass @@ -15,13 +15,17 @@ # This eclass does not set any metadata variables nor export any phase # functions. It can be inherited safely. -case ${EAPI:-0} in - [5678]) ;; +if [[ ! ${_RUBY_UTILS} ]]; then + +case ${EAPI} in + 5|6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ ! ${_RUBY_UTILS} ]]; then - # @ECLASS_VARIABLE: RUBY_TARGETS_PREFERENCE # @INTERNAL # @DESCRIPTION: -- 2.46.0
[gentoo-dev] [PATCH 31/44] strip-linguas.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/strip-linguas.eclass | 16 ++-- 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/eclass/strip-linguas.eclass b/eclass/strip-linguas.eclass index 718341b4a6264..b31f414c87c31 100644 --- a/eclass/strip-linguas.eclass +++ b/eclass/strip-linguas.eclass @@ -1,4 +1,4 @@ -# Copyright 2004-2021 Gentoo Authors +# Copyright 2004-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: strip-linguas.eclass @@ -9,15 +9,19 @@ # @SUPPORTED_EAPIS: 5 6 7 8 # @BLURB: convenience function for LINGUAS support +if [[ -z ${_STRIP_LINGUAS_ECLASS} ]]; then +_STRIP_LINGUAS_ECLASS=1 + case ${EAPI} in - 5|6|7|8) ;; + 5|6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_STRIP_LINGUAS_ECLASS} ]]; then -_STRIP_LINGUAS_ECLASS=1 - -# @FUNCTION: strip-linguas +# FUNCTION: strip-linguas # @USAGE: [|<-i|-u> ] # @DESCRIPTION: # Make sure that LINGUAS only contains languages that a package can -- 2.46.0
[gentoo-dev] [PATCH 32/44] systemd.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/systemd.eclass | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/eclass/systemd.eclass b/eclass/systemd.eclass index 03d6a82fd3103..a5f0decde1e35 100644 --- a/eclass/systemd.eclass +++ b/eclass/systemd.eclass @@ -1,4 +1,4 @@ -# Copyright 2011-2023 Gentoo Authors +# Copyright 2011-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: systemd.eclass @@ -25,7 +25,11 @@ # @CODE case ${EAPI} in - 5|6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -- 2.46.0
[gentoo-dev] [PATCH 33/44] tmpfiles.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/tmpfiles.eclass | 12 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/eclass/tmpfiles.eclass b/eclass/tmpfiles.eclass index 39650401a6a0f..63889a275fef5 100644 --- a/eclass/tmpfiles.eclass +++ b/eclass/tmpfiles.eclass @@ -1,4 +1,4 @@ -# Copyright 2016-2022 Gentoo Authors +# Copyright 2016-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: tmpfiles.eclass @@ -55,9 +55,13 @@ if [[ -z ${_TMPFILES_ECLASS} ]]; then _TMPFILES_ECLASS=1 -case "${EAPI}" in -5|6|7|8) ;; -*) die "API is undefined for EAPI ${EAPI}" ;; +case ${EAPI} in + 5|6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac # @ECLASS_VARIABLE: TMPFILES_OPTIONAL -- 2.46.0
[gentoo-dev] [PATCH 34/44] toolchain-funcs.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/toolchain-funcs.eclass | 12 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass index 5e36fa275dcd0..66819996ea33b 100644 --- a/eclass/toolchain-funcs.eclass +++ b/eclass/toolchain-funcs.eclass @@ -13,14 +13,18 @@ # in such a way that you can rely on the function always returning # something sane. +if [[ -z ${_TOOLCHAIN_FUNCS_ECLASS} ]]; then +_TOOLCHAIN_FUNCS_ECLASS=1 + case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_TOOLCHAIN_FUNCS_ECLASS} ]]; then -_TOOLCHAIN_FUNCS_ECLASS=1 - inherit multilib # tc-getPROG [tuple] -- 2.46.0
[gentoo-dev] [PATCH 35/44] udev.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/udev.eclass | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/eclass/udev.eclass b/eclass/udev.eclass index ac94f98221aad..7fd99cbba8b06 100644 --- a/eclass/udev.eclass +++ b/eclass/udev.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: udev.eclass @@ -36,14 +36,18 @@ # } # @CODE +if [[ -z ${_UDEV_ECLASS} ]]; then +_UDEV_ECLASS=1 + case ${EAPI} in - 5|6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_UDEV_ECLASS} ]]; then -_UDEV_ECLASS=1 - inherit toolchain-funcs if [[ ${EAPI} == [56] ]]; then -- 2.46.0
[gentoo-dev] [PATCH 36/44] vcs-clean.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/vcs-clean.eclass | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/eclass/vcs-clean.eclass b/eclass/vcs-clean.eclass index e4c61ac7164ac..719bdec17676b 100644 --- a/eclass/vcs-clean.eclass +++ b/eclass/vcs-clean.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: vcs-clean.eclass @@ -9,14 +9,18 @@ # @SUPPORTED_EAPIS: 5 6 7 8 # @BLURB: helper functions to remove VCS directories +if [[ -z ${_VCS_CLEAN_ECLASS} ]] ; then +_VCS_CLEAN_ECLASS=1 + case ${EAPI} in - 5|6|7|8) ;; + 5|6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_VCS_CLEAN_ECLASS} ]] ; then -_VCS_CLEAN_ECLASS=1 - # @FUNCTION: ecvs_clean # @USAGE: [list of dirs] # @DESCRIPTION: -- 2.46.0
[gentoo-dev] [PATCH 37/44] vim-doc.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/vim-doc.eclass | 12 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/eclass/vim-doc.eclass b/eclass/vim-doc.eclass index 119ce793071d6..f20f7397cf65b 100644 --- a/eclass/vim-doc.eclass +++ b/eclass/vim-doc.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: vim-doc.eclass @@ -16,13 +16,17 @@ # DEPEND in vim-plugin or by whatever version of vim is being # installed by the eclass. +if [[ ! ${_VIM_DOC_ECLASS} ]] ; then + case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ ! ${_VIM_DOC_ECLASS} ]] ; then - # @FUNCTION: update_vim_helptags # @USAGE: # @DESCRIPTION: -- 2.46.0
[gentoo-dev] [PATCH 38/44] vim-plugin.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/vim-plugin.eclass | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/eclass/vim-plugin.eclass b/eclass/vim-plugin.eclass index ee4f1b6e0f813..b2ae0cb9e4c33 100644 --- a/eclass/vim-plugin.eclass +++ b/eclass/vim-plugin.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: vim-plugin.eclass @@ -12,14 +12,18 @@ # which is read automatically by vim. The only exception is # documentation, for which we make a special case via vim-doc.eclass. +if [[ -z ${_VIM_PLUGIN_ECLASS} ]]; then +_VIM_PLUGIN_ECLASS=1 + case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_VIM_PLUGIN_ECLASS} ]]; then -_VIM_PLUGIN_ECLASS=1 - inherit vim-doc [[ ${EAPI} != [67] ]] && _DEFINE_VIM_PLUGIN_SRC_PREPARE=true -- 2.46.0
[gentoo-dev] [PATCH 39/44] vim-spell.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/vim-spell.eclass | 12 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/eclass/vim-spell.eclass b/eclass/vim-spell.eclass index 607771ae8035d..57bcb0dc8021b 100644 --- a/eclass/vim-spell.eclass +++ b/eclass/vim-spell.eclass @@ -62,14 +62,18 @@ # spell files. It's best to let upstream know if you've generated spell files # for another language rather than keeping them Gentoo-specific. +if [[ -z ${_VIM_SPELL_ECLASS} ]] ; then +_VIM_SPELL_ECLASS=1 + case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_VIM_SPELL_ECLASS} ]] ; then -_VIM_SPELL_ECLASS=1 - SRC_URI="mirror://gentoo/${P}.tar.bz2" SLOT="0" -- 2.46.0
[gentoo-dev] [PATCH 40/44] virtualx.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/virtualx.eclass | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/eclass/virtualx.eclass b/eclass/virtualx.eclass index f7318eafc59e7..07d303899582e 100644 --- a/eclass/virtualx.eclass +++ b/eclass/virtualx.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: virtualx.eclass @@ -9,14 +9,18 @@ # @SUPPORTED_EAPIS: 6 7 8 # @BLURB: This eclass can be used for packages that need a working X environment to build. +if [[ -z ${_VIRTUALX_ECLASS} ]]; then +_VIRTUALX_ECLASS=1 + case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_VIRTUALX_ECLASS} ]]; then -_VIRTUALX_ECLASS=1 - # @ECLASS_VARIABLE: VIRTUALX_REQUIRED # @PRE_INHERIT # @DESCRIPTION: -- 2.46.0
[gentoo-dev] [PATCH 41/44] webapp.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/webapp.eclass | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/eclass/webapp.eclass b/eclass/webapp.eclass index 5b091c84851ff..e8bc127e1b96c 100644 --- a/eclass/webapp.eclass +++ b/eclass/webapp.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: webapp.eclass @@ -10,14 +10,18 @@ # The webapp eclass contains functions to handle web applications with # webapp-config. Part of the implementation of GLEP #11 +if [[ -z ${_WEBAPP_ECLASS} ]]; then +_WEBAPP_ECLASS=1 + case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_WEBAPP_ECLASS} ]]; then -_WEBAPP_ECLASS=1 - # @ECLASS_VARIABLE: WEBAPP_DEPEND # @DESCRIPTION: # An ebuild should use WEBAPP_DEPEND if a custom DEPEND needs to be built, most -- 2.46.0
[gentoo-dev] [PATCH 42/44] wrapper.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/wrapper.eclass | 16 ++-- 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/eclass/wrapper.eclass b/eclass/wrapper.eclass index 8d3d273d81c65..a62bb51d0fe71 100644 --- a/eclass/wrapper.eclass +++ b/eclass/wrapper.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: wrapper.eclass @@ -7,15 +7,19 @@ # @SUPPORTED_EAPIS: 5 6 7 8 # @BLURB: create a shell wrapper script +if [[ -z ${_WRAPPER_ECLASS} ]]; then +_WRAPPER_ECLASS=1 + case ${EAPI} in - 5|6|7|8) ;; + 5|6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_WRAPPER_ECLASS} ]]; then -_WRAPPER_ECLASS=1 - -# @FUNCTION: make_wrapper +# FUNCTION: make_wrapper # @USAGE: [chdir] [libpaths] [installpath] # @DESCRIPTION: # Create a shell wrapper script named wrapper in installpath -- 2.46.0
[gentoo-dev] [PATCH 43/44] xdg.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/xdg.eclass | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/eclass/xdg.eclass b/eclass/xdg.eclass index 14c56047af451..6af4b91875fc6 100644 --- a/eclass/xdg.eclass +++ b/eclass/xdg.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: xdg.eclass @@ -13,14 +13,18 @@ # Utility eclass to update the desktop, icon and shared mime info as laid # out in the freedesktop specs & implementations +if [[ -z ${_XDG_ECLASS} ]]; then +_XDG_ECLASS=1 + case ${EAPI} in - 6|7|8) ;; + 6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ -z ${_XDG_ECLASS} ]]; then -_XDG_ECLASS=1 - inherit xdg-utils # Avoid dependency loop as both depend on glib-2 -- 2.46.0
[gentoo-dev] [PATCH 44/44] xdg-utils.eclass: add global-scope ewarn for deprecated < EAPI 7
Signed-off-by: Sam James --- eclass/xdg-utils.eclass | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/eclass/xdg-utils.eclass b/eclass/xdg-utils.eclass index 34535a129e334..84f88eee18fce 100644 --- a/eclass/xdg-utils.eclass +++ b/eclass/xdg-utils.eclass @@ -1,4 +1,4 @@ -# Copyright 2004-2023 Gentoo Authors +# Copyright 2004-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: xdg-utils.eclass @@ -18,7 +18,11 @@ # * XDG mime information database management case ${EAPI} in - 5|6|7|8) ;; + 5|6) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI." + ;; + 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -- 2.46.0
Re: [gentoo-dev] [PATCH] profiles/targets/desktop: make USE=qml default for more than just plasma
Eli Schwartz writes: > Installing random applications tends to drag in qml requirements, as it > is a pivotal part of the Qt technology stack required by other > components. One quickly ends up in USE flag resolution hell when trying > to select it on a per-package basis for most use cases other than having > Qt installed solely for an isolated application. > > For average desktop use it makes sense to simply default it to on. > People can always disable it manually if they want, but it basically > just adds a single package (qtdeclarative) as a dep to your Qt stack. > Yes, please do. Especially given Ionen said he was OK with it (IIRC) and asturm acked it. > Signed-off-by: Eli Schwartz > --- > profiles/targets/desktop/make.defaults| 2 +- > profiles/targets/desktop/plasma/make.defaults | 4 ++-- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/profiles/targets/desktop/make.defaults > b/profiles/targets/desktop/make.defaults > index 72e77543df12..02e4f168b0a1 100644 > --- a/profiles/targets/desktop/make.defaults > +++ b/profiles/targets/desktop/make.defaults > @@ -1,4 +1,4 @@ > # Copyright 1999-2024 Gentoo Authors > # Distributed under the terms of the GNU General Public License v2 > > -USE="a52 aac acpi alsa bluetooth branding cairo cdda cdr cups dbus > dri dts dvd dvdr elogind encode exif flac gif gpm gtk gui icu jpeg > kf6compat lcms libnotify mad mng mp3 mp4 mpeg ogg opengl pango pdf png > policykit ppds qt6 qt5 sdl sound spell startup-notification svg tiff > truetype vorbis udev udisks unicode upower usb vulkan wxwidgets X xcb > xft x264 xml xv xvid" > +USE="a52 aac acpi alsa bluetooth branding cairo cdda cdr cups dbus > dri dts dvd dvdr elogind encode exif flac gif gpm gtk gui icu jpeg > kf6compat lcms libnotify mad mng mp3 mp4 mpeg ogg opengl pango pdf png > policykit ppds qml qt6 qt5 sdl sound spell startup-notification svg > tiff truetype vorbis udev udisks unicode upower usb vulkan wxwidgets X > xcb xft x264 xml xv xvid" > diff --git a/profiles/targets/desktop/plasma/make.defaults > b/profiles/targets/desktop/plasma/make.defaults > index 62e625bbfdcb..7f42ef98fc5b 100644 > --- a/profiles/targets/desktop/plasma/make.defaults > +++ b/profiles/targets/desktop/plasma/make.defaults > @@ -1,4 +1,4 @@ > -# Copyright 1999-2023 Gentoo Authors > +# Copyright 1999-2024 Gentoo Authors > # Distributed under the terms of the GNU General Public License v2 > > -USE="activities declarative dri kde kwallet networkmanager pipewire plasma > policykit pulseaudio qml screencast semantic-desktop wayland widgets" > +USE="activities declarative dri kde kwallet networkmanager pipewire plasma > policykit pulseaudio screencast semantic-desktop wayland widgets" signature.asc Description: PGP signature
Re: [gentoo-dev] [PATCH 00/30] One batch of Python eclass updates to rule them all
On Sun, 6 Feb 2022 13:48:11 +0100 Michał Górny wrote: > Hi, > > Here's the largest batch of eclass updates in quite some time. They > combine some new features needed for PEP 517 packages, other new > features, refactoring, cleanup and cosmetic changes -- hopefully > to stop the cache updates for some time. > > The changes can be also reviewed on GitHub, particularly if you want > to see the big diff rather than the 30 individual changes: > https://github.com/gentoo/gentoo/pull/24065 > lgtm, with the caveat of leaving out the has_version bits as per matt's comments for now, so we can flesh it out. While we're meddling with the eclassses, could we consider fixing the 'locale' calls on musl? musl guarantees a UTF 8 locale (I _think_ C.UTF-8) but the current eclass logic leads to log spam as the command doesn't exist on musl systems. best, sam pgpZvHCTHJp3I.pgp Description: OpenPGP digital signature
Re: [gentoo-dev] No stable firejail
> On 21 Feb 2022, at 00:49, Oskari Pirhonen wrote: > > Hi, > > After updating my system and running `eclean-dist --deep`, I noticed the > following output: > >The following unavailable installed packages were found > sys-apps/firejail-0.9.64.4 > > Was removing the stable version of sys-apps/firejail intentional? The > ebuild commit message says "Upstream released security bump", so it > sounds plausible. > > I'm OK with manually keywording `=sys-apps/firejail-0.9.68`, but I > generally prefer stable packages where I can. Also, I find it > interesting that a package that previously had a stable version no > longer does. I've used Gentoo since ~2016, and off the top of my head, I > can't think of another instance of something like this occurring (with > the set of packages I have installed). > Just a mistake. Probably better for bugs.gentoo.org. Fixed, thanks. Best, sam signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Last rites: dev-python/socketpool
# Sam James (2022-02-24) # No release since 2013, partly depends on stale dev-python/evenlet; # no reverse dependencies. Removal on 2022-03-24. dev-python/socketpool signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Last rites: sys-apps/dmapi
# Sam James (2022-02-24) # Obsolete, ex-dependency of xfsprogs. Fails to build on 32-bit arches. # No reverse dependencies. Discontinued upstream. Removal on 2022-03-24. # bug #811891 sys-apps/dmapi signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] cmake-utils.eclass consumers will be broken by >=dev-util/cmake-3.23.0
> On 27 Feb 2022, at 01:59, Jason Zaman wrote: > > On Sat, Feb 26, 2022 at 08:11:52PM +0100, Andreas Sturmlechner wrote: >> Dear packagers, >> >> - More than 4500 ebuilds were switched to cmake.eclass since 2019-12-21 [1] >> - Less than 110 ebuilds still inherit cmake-utils.eclass [2] >> - A change in cmake-3.23 will break all revdeps doing so >> - I am not fixing it >> - If *you* fix it, you will become the sole maintainer of cmake-utils.eclass >> - Any bugs filed as a result of this will block a future cmake-utils.eclass >> last-rites tracker. Failure to respond will make your package a last-rites >> candidate too. >> >> hth. >> >> [1] https://qa-reports.gentoo.org/output/eapi-per-eclass/cmake.eclass/ >> [2] https://qa-reports.gentoo.org/output/eapi-per-eclass/cmake-utils.eclass/ > > Whoops, thanks for the heads up! > google-cloud-cpp is mine (a dep of tensorflow). > It took me a while to realize in the above it has both cmake{,-utils}. > > Is there a migration guide or some docs about for what I need to do to > move it to the new eclass? https://bugs.gentoo.org/834110#c0 but let's dig stuff up for ease: - https://github.com/gentoo/gentoo/commits/master/eclass/cmake.eclass - https://github.com/gentoo/gentoo/commit/9053737a4e16fb1c9bcdd95373ef4e42d61404f4 ``` - Drop all pre-EAPI-7 compatibility - Drop CMAKE_MIN_VERSION - Drop CMAKE_REMOVE_MODULES - Array support for CMAKE_REMOVE_MODULES_LIST - Drop pushd/popd from src_prepare - Drop _cmake_generator_to_use() CMAKE_MAKEFILE_GENERATOR validity is already checked in global scope. Move the check for dev-util/ninja into src_prepare. - Rename cmake_src_make() -> cmake_build() - Drop _cmake_ninja_src_build and _cmake_emake_src_build, move into cmake_build ``` - https://marc.info/?l=gentoo-dev&m=157714319110420&w=2 - https://devmanual.gentoo.org/eclass-reference/cmake.eclass/index.html (but this doesn't note the differences w/ -utils). I think the summary is is (in addition to above): - BUILD_SHARED_LIBS is now default on - Note that between EAPI 7 and EAPI 8, cmake.eclass (not -utils) changed default build type from 'Gentoo' (custom) to 'RelWithDebInfo' - Some changes to do with out-of-source builds or working directory But just give a shout if something doesn't work! Best, sam signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Last rites: dev-libs/smack
# Sam James (2022-02-27) # EAPI=6 consumer of deprecated cmake-utils.eclass. No reverse # dependencies and will soon be unbuildable with new CMake. # bug #774495. Dead HOMEPAGE. Removal on 2022-03-27. dev-libs/smack signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Last rites: sci-chemistry/mm-align
# Sam James (2022-02-27) # Fails to build with modern GCC, stuck on cmake-utils.eclass too. # bug #723194, bug #834301. Removal on 2022-03-27. sci-chemistry/mm-align signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] [PATCH v2] go-module.eclass: deprecate EGO_SUM and call ego instead of go
> On 27 Feb 2022, at 04:38, William Hubbs wrote: > > EGO_SUM can be thousands of lines long in ebuilds, and it leads to > creating Manifest files that are thousands of lines long. > It has been determined that vendor tarballs are a better solution if > upstream doesn't vendor their dependencies. > > Also, call the ego helper function instead of calling go directly. > > Signed-off-by: William Hubbs > --- Per comments on IRC, I suggest not removing the EGO_SUM examples for now until we've got good documentation and tooling for vendor stuff, and a transition period is completed. We can do it in a little bit but let's not add the new thing and remove the old one in the same swoop. Best, sam signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] [PATCH v2] go-module.eclass: deprecate EGO_SUM and call ego instead of go
> On 4 Mar 2022, at 00:00, William Hubbs wrote: > > On Wed, Mar 02, 2022 at 09:32:14PM +0500, Anna Vyalkova wrote: >> On 2022-03-01 15:55, William Hubbs wrote: >>> I am willing to flag EGO_SUM as deprecated if a variable can be flagged >>> as deprecated; that is what I'm looking up now. >> >> EGO_SUM is often the only choice for overlays, so consider not >> deprecating it. > > EGO_SUM does not work for large SRC_URI; that is the reason it is > being deprecated. > > Also, my understanding is we do not normally keep code around > if that code's only purpose is to support overlays. I don't think there's a need to rip it out given we know it can be quite useful there though, right? It's not actively harming anything to just keep the small amount of code there. I think it's quite a nice convenience option (in fact, for ::gentoo too), where EGO_SUM isn't huge. But I admit this isn't that common. As for the series: as per commits on IRC: fine to compromise on you removing it now, but please do in two separate commits so it's more obvious in the git history. But that's notwithstanding possibly keeping it for overlays. signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Re: [PATCH v5] go-module.eclass: deprecate EGO_SUM
> On 5 Mar 2022, at 22:17, William Hubbs wrote: > >EGO_SUM can be thousands of lines long in ebuilds, and it leads to >creating Manifest files that are thousands of lines long. >It has been determined that dependency tarballs are a better solution if >upstream doesn't vendor their dependencies. > >Signed-off-by: William Hubbs > --- > eclass/go-module.eclass | 45 ++--- > 1 file changed, 33 insertions(+), 12 deletions(-) lgtm signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] [PATCH v5] go-module.eclass: deprecate EGO_SUM
> On 5 Mar 2022, at 22:17, William Hubbs wrote: > >EGO_SUM can be thousands of lines long in ebuilds, and it leads to >creating Manifest files that are thousands of lines long. >It has been determined that dependency tarballs are a better solution if >upstream doesn't vendor their dependencies. > >Signed-off-by: William Hubbs > --- > [snip] > -# > -# SRC_URI="https://github.com/example/${PN}/archive/v${PV}.tar.gz -> > ${P}.tar.gz > -# ${EGO_SUM_SRC_URI}" > +# SRC_URI="https://github.com/example/${PN}/archive/v${PV}.tar.gz -> > ${P}.tar.gz" > +# Add this line if you have a dependency tarball. > +# SRC_URI+=" ${P}-dep.tar.xz" In #gentoo-dev-help, Weiss-Fder[m] pointed out this should be 'deps'. Best, sam signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Last rites: dev-lang/python:3.6
# Sam James (2022-03-07) # Python 3.6 was declared end-of-life by upstream on 2021-11-04. # Please migrate to a newer Python version/slot or use a virtualenv # if still needed. Removal on 2022-04-07. dev-lang/python:3.6 signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Last rites: dev-perl/JavaScript-SpiderMonkey
# Sam James (2022-03-09) # Depends on very-old slot of SpiderMonkey which shouldn't be # used with untrusted input (vulnerable to lots of security bugs). # No reverse dependencies and no updates upstream for a long while. # Stuck on EAPI 5 too. Removal on 2022-04-09. bug #832313. dev-perl/JavaScript-SpiderMonkey signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Last rites: dev-java/edtftpj
# Sam James (2022-03-09) # EAPI 5, out-of-date. Not packaged by any other distributions. # Removal on 2022-04-09. dev-java/edtftpj signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Last rites: dev-java/cortado
# Sam James (2022-03-09) # Fails to build, stuck on EAPI 5. # bug #690606, bug #830937, bug #833397. # Removal on 2022-04-09. dev-java/cortado signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] Last rites: dev-java/cortado
> On 9 Mar 2022, at 14:34, Sam James wrote: > > # Sam James (2022-03-09) > # Fails to build, stuck on EAPI 5. > # bug #690606, bug #830937, bug #833397. > # Removal on 2022-04-09. > dev-java/cortado Cancelled. I'd missed that games-strategy/freecol still needs it. signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] Deprecating repoman
> On 10 Mar 2022, at 21:57, Joshua Kinard wrote: >> >> I'd be interested in hearing your workflow, so we can capture it in >> the table (mentioned earlier) so its clear how your existing workflow >> will work with the new tools (or perhaps there is a gap, or we need to >> craft / add additional tools?) I agree on the face it may not be >> obvious what workflows look like. > > My workflow is really rather standard when working in the tree itself. I > work one package directory at a time, apply changes that I've tested outside > of the tree in my local repo, eyeball everything a second time to make sure > I didn't miss something, regenerate the manifest, git add, run 'repoman full > -d -x', fix any issues it finds (if any) and manifest/git add again, then > 'repoman commit' and supply a commit message with sign-off. Lather, rinse, > repeat for other packages. > Having the same checks applied as in CI (which affects whether changes are deployed to users too) is important. pkgcheck has more checks than repoman. signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Last rites: dev-db/mysql-cluster
# Sam James (2022-03-11) # Significant number of open bugs including unaddressed security issues; # out of date; stuck on deprecated (and soon-to-stop-working) cmake-utils # eclass. See bug #834113. Removal on 2022-04-11. dev-db/mysql-cluster signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] Deprecating repoman
> On 11 Mar 2022, at 19:51, Joshua Kinard wrote: > > On 3/11/2022 13:25, Alec Warner wrote: > > [snip] > >> >> The new workflow with pkgcheck was announced at the end of 2019: >> https://blogs.gentoo.org/mgorny/2019/12/12/a-better-ebuild-workflow-with-pure-git-and-pkgcheck >> >> It's been 2 years, I think we can bring everyone into the fold here. > > I've searched my -dev archives for part of that URL, and the only hits I am > getting is this e-mail thread. Was this URL previously shared on this > mailing list or another? I do not track the Gentoo Blogs, so unless > something is shared to the mailing lists, I will likely miss it. I think you may be latching on a bit to the pkgcommit thing. Nobody is making you use mgorny's scripts. pkgdev has been advertised on this very ML: https://marc.info/?l=gentoo-dev&m=161443741531808&w=2 > > That said, I will admit I am uncomfortable with post-commit, pre-push > validation. I get that git is vastly different, and vastly superior, to > CVS. Get it right the first time, and you don't have to worry about fixing > it later -- CVS teaches you that very well, and it still works well for git > workflows. Going back into git post-commit to fix things is still something > I need to learn more about, as my git-fu is still pretty amateurish beyond > the common basics. Especially when dealing with kernel patch maintenance > and maintaining lots of small, discrete changes that kernel upstream prefers. You can always do 'pkgcheck scan' before committing, or, I think 'pkgdev commit -A' might work. signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] Deprecating repoman
> On 11 Mar 2022, at 19:39, Joshua Kinard wrote: > > On 3/11/2022 03:54, Mart Raudsepp wrote:> Ühel kenal päeval, N, 10.03.2022 > kell 18:18, kirjutas Joshua Kinard: >>> I stick to the officially-published method of checking and committing >>> changes: >>> https://devmanual.gentoo.org/ebuild-maintenance/git/index.html >>> >>> The two tools highlighted there for the bulk of the work is repoman >>> and pkgdev. repoman is cited twelve times, pkgdev is cited six times. >>> pkgcheck is mentioned once. pkgcommit has no mentions. >>> >>> From that, one should not be faulted for assuming that repoman is the >>> more important tool, if not preferred tool, with pkgdev coming in >>> second place. pkgcheck comes across as entirely optional and even >>> seems equivalent to 'repoman full', and how would one know that >>> pkgcommit even exists? >> >> I believe the very purpose of this thread is to have a consensus/pre- >> announcement before actually editing the official documentation as part >> of the process of deprecating repoman. > > I feel that the documentation should have had more mentions of these newer > tools as their adoption by other developers accelerated. Documentation > doesn't have to have a fixed point in time when it fully changes over. It > can change organically, like almost everything else in the project. Well, I've done that. I've been adding pkgcheck and pkgdev to the devmanual over time, and to the wiki. > [snip] >> Also the benefit of using pkgcheck is to actually be able to make the >> same checks that CI would do before you push, so you can amend your >> commits to fix issues before they hit the server and CI and break the >> tree. pkgcheck is so fast that it can do full tree checks in a >> reasonable time (repoman would take days on a radiator mips when you go >> outside single package), and I believe has features to have it check all >> your commits that haven't been pushed yet at once, checking only what it >> can to not be too slow to not use (so you don't need to run the check >> with each commit but for all of them once you commit - and if issues, >> again, git interactive rebase). > > Speed is really not a big issue for me. I run repoman from my amd64 dev > box, and it's like, maybe 10-13 seconds at most during 'repoman full'? And > my MIPS systems, while not the slowest of slow of that arch, they do teach > you patience over the years. > > The other bits you mention about pkgcheck do sound useful, though. But I am > a stickler for official documentation, because my risk aversion level when > committing to a public repo that can affect hundreds of thousands of users > is *extremely* high. When I first signed up as a dev and we had the It is already mentioned in the devmanual, but we can add it in more places if you specify which. signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] Deprecating repoman
> On 11 Mar 2022, at 17:14, Peter Stuge wrote: > [snip] > Looking into the future then maybe portage could even come to use > pkgcore for the low-level things that pkgcore does, then even users > could enjoy improved performance. > Are you volunteering to work on this substantial task? signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] Deprecating repoman
> On 10 Mar 2022, at 23:18, Joshua Kinard wrote: > > On 3/10/2022 14:58, Alec Warner wrote: >> On Thu, Mar 10, 2022 at 10:27 AM Joshua Kinard wrote: >>> >>> On 3/9/2022 16:00, Matt Turner wrote: I'd like to deprecate and ultimately remove repoman. I believe that dev-util/pkgcheck and pkgcommit (from app-portage/mgorny-dev-scripts) are far superior replacements, and it makes sense to have people using the same tool and seeing the same warnings as in the CI. Are there any useful checks or behaviors of repoman that are missing from pkgcheck and pkgcommit? Thanks, Matt >>> >>> repoman has been //the// goto tool for checking in a change since before I >>> was a developer in 2003. It does everything we need, in one simple tool. >>> Your proposal looks to replace repoman's functionality (and snark) with two >>> or more packages, including tools from a package named after a fellow >>> developer. >>> >>> Additionally, "I believe that are far superior replacements" is an >>> entirely subjective opinion and, frankly, completely invalid as >>> justification to replace a tool that has worked fine for the last 20+ years. >>> What is so fundamentally broken about repoman that cannot be fixed such >>> that it needs total replacement by multiple independent tools? Please >>> document. the pros and cons here so that we can all make an informed >>> decision. Matt could've given more details about why pkgcheck is superior but I think this is actually showing/exposing the problem again: we've assumed that everybody should really know repoman lacks a significant number of the checks pkgcheck has, as well as being much slower. Those are the two reasons why it's superior. >> >> So here is the more basic argument, you can agree or disagree. >> >> *The goal I want is for people to commit to the tree and not break things.* > > This goal I agree with, and I am rather pedantic about. If not mildly > fearful of. We've all been there at least once in our dev-lives. It's > almost a rite of passage, if you will, to break the tree with a dumb commit > at least once. Goal is to never repeat that mistake again. > Right. I spend a fair amount of time fixing issues with repoman doesn't find but pkgcheck / CI does, or filing bugs for them. > >> If we could accomplish this with no tooling at all, that would be >> great. Sadly humans are fallible and so we have tools to check their >> work. Currently this tooling has two parts: >> - pre-push tooling that you run prior to pushing. >> - post-push CI tooling that informs you when you break the tree. >> >> So holding to our goal of not breaking the tree, it's better for >> developers to run the same QA tool in pre-push that CI is using, >> because our metric for 'breaking the tree' is the CI tool and if the >> CI tool passes locally, there is a strong likelihood it will not break >> in CI either. Note this argument is generic, I'm not even saying which >> tools are in use, or which tools are better, or anything like that. >> >> Here we see Matt discussing a workflow he finds frustrating. >> - A developer does a push. >> - Their push breaks CI. >> - He inquires about their workflow. >> - He learns they did not run the CI tool in their pre-push workflow. >> - He tells them they should run the CI tool in their pre-push workflow. >> - This happens many times, causing this thread. >> >> The point of the thread then is to convince people to run the CI tool >> in pre-push, as a matter of policy, to reduce tree breakage and reduce >> the occurrence of the above conversation. > > I stick to the officially-published method of checking and committing changes: > https://devmanual.gentoo.org/ebuild-maintenance/git/index.html > > The two tools highlighted there for the bulk of the work is repoman and > pkgdev. repoman is cited twelve times, pkgdev is cited six times. pkgcheck > is mentioned once. pkgcommit has no mentions. pkgcommit is just a wrapper around git and pkgcheck, so it is there. It's not like you aren't allowed to make your own wrappers or aliases or scripts, right? >> > > Back in mid-2002, it was exactly Gentoo's snarkness that tipped the scales > for me. I'd just given up on FreeBSD-4.x on a sparc64 machine (old Sun > Blade 100) and LFS turned out to not be a lot of fun, but Gentoo worked fine > on it. All of the colors on the terminal gave it zing and pop, and made it > rather fun to work with. rpm and apt-get were dull; emerge was cheeky and > playful! Still is to this day. > I have no objection to (and in fact would rather welcome) contributions to make other tools more "Gentoo-like". Could you make a PR or provide some patch to add some more personality to them? signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Last rites: dev-libs/processor-trace
# Sam James (2022-03-11) # No maintainer, out of date, stuck on deprecated # (and soon-to-stop-working) cmake-utils. bug #774480. # Removal on 2022-04-11. dev-libs/processor-trace signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Last rites: dev-java/headius-options
# Sam James (2022-03-15) # No reverse dependencies, stuck on deprecated EAPI 5. # Removal on 2022-04-15. bug #835350. dev-java/headius-options signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Last rites: dev-java/android-util
# Volkmar W. Pogatzki (2022-03-16) # Java library without consumers. # Removal in 30 days. Bug #835389. dev-java/android-util signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Last rites: app-crypt/seahorse-sharing
# Sam James (2022-03-22) # Abandoned upstream (archived many years ago), fails # to build with modern versions of gnupg, and is # stuck on EAPI 5. No reverse dependencies. # bug #835388, bug #828948, bug #733010. # Maintainers welcome to take over. # Removal on 2022-04-22. app-crypt/seahorse-sharing signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] Policy on conditional patching
> On 28 Mar 2022, at 12:13, Fabian Groffen wrote: > > Hi, > > On 28-03-2022 13:05:03 +0200, Thomas Bracht Laumann Jespersen wrote: >> Hi! >> >> I've been working on a new section in the devmanual regarding conditional >> patching. In a PR [0] Sam suggested adding a section to clarify that >> conditional >> patching should be avoided, because it can quickly become a maintenance and >> testing burden. >> >> The devmanual PR is here: [1] >> >> Ulrich points out that conditional patching is actually suggested elsewhere, >> and >> that actively discouraging conditional patching is a policy change, which >> should >> be brought up on this list. So this is what I'm doing now. He also pointed >> out a >> comment in eutils.eclass re [2] (the comment now lives in epatch.eclass). >> As I say below, I somewhat think this is already de-facto policy to avoid. But having the discussion is not a bad thing. >> [snip] >> >> I think my question to this list is: Should it be policy that conditional >> patching is to be avoided? > > We really don't want conditional patches, but I from my experience > reality is that sometimes you have to. Therefore this should remain > possible. I have no problems with highly discouraging conditional > patching. I'm not suggesting banning them -- just codifying that they're discouraged unless unavoidable, which is what we "soft advise" right now anyway in both proxy-maint reviews but in general culture like mentoring. > > About your other points, I think they are kind of debatable. Gentoo > wants to be close to upstream, but with your set of rules, one can't > e.g. add hpn patches to ssh, which would be really silly, as the point > of Gentoo is that since you build from source, you can actually apply > such patches, conditionally if they don't have a means to be disabled. OpenSSH is actually a fantastic example of why it's a bad idea but the maintainers choose to live with the compromises (which is fine). I say "bad idea" because it leads to poor UX. We have to avoid doing bumps until the patches are out or live with pkg_setup die()s when they're not yet available. And then we get bugs filed for it. (This isn't a criticism of the OpenSSH maintainers in Gentoo, it's a special case for sure, but it's a great example of why we shouldn't be doing it en-masse unless we must.) > > In other words, I think the gist of your points is to be in an ideal > world, but unfortunately reality is far from it. That said, repeating > myself, nothing wrong with discouraging quick 'n' dirty, for as long as > it remains a big fat warning and advice. > Yep, the plan for this is big fat warning & advice. Not unconditionally banning condiitonal patching. > My €0.02 Appreciated as ever -- especially given you work in interesting corners like Prefix and now increasingly musl (yay!) Indeed, this is part of why we can't really ban it absolutely (not that I'm advocating for that anyway) -- for prefix and musl, while we want upstreamable patches, it's not always easy. Especially for more stale components of the toolchain or system which are critical but upstreaming is not feasible due to inactivity or whatever. > Fabian > >> [0]: https://github.com/gentoo/gentoo/pull/24709#discussion_r832361402 >> [1]: https://github.com/gentoo/devmanual/pull/281 >> [2]: >> https://gitweb.gentoo.org/archive/repo/gentoo-2.git/tree/eclass/eutils.eclass?id=50e8beda904760c773e5c67fdfe8242255e13495#n175 >> > Best, sam signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] Policy on conditional patching
> On 28 Mar 2022, at 12:05, Thomas Bracht Laumann Jespersen > wrote: > > Hi! > > I've been working on a new section in the devmanual regarding conditional > patching. In a PR [0] Sam suggested adding a section to clarify that > conditional > patching should be avoided, because it can quickly become a maintenance and > testing burden. > > The devmanual PR is here: [1] > > Ulrich points out that conditional patching is actually suggested elsewhere, > and > that actively discouraging conditional patching is a policy change, which > should > be brought up on this list. So this is what I'm doing now. He also pointed > out a > comment in eutils.eclass re [2] (the comment now lives in epatch.eclass). > Not convinced it is a policy change explicitly as we do soft-discourage it, but having the discussion is worthwhile. I suppose it's harder to argue with the odd example of conditional patching in the devmanual not being accompanied with a warning though. :) > The overall policy (proposal, I guess) is something like: > > * Patches should be written such that they affect behaviour correctly based on > e.g. build time definitions or config options, rather than USE flags > directly. > > * They should be applied unconditionally, so that, for version bumps and other > development happening with a package, any failure to apply the patch will be > caught by the developer. Yep. Although we're somewhat accepting of this in Prefix land, it does still happen with odd use combinations. I have less of an issue with this for prefix & kind of musl (although musl stuff should really be done in a standards-compliant way & upstreamed) because especially for prefix, sometimes there is no easy way to do this properly, and at least a patch for prefix users will fail hard rather than silently breaking (e.g. sed). > > * Patching is ideally only done to make the package in question build > properly, > and should not be done to modify the runtime behaviour of the package. (This > is what USE flags and configuration options of the package are for.) > I have another reason for why this is important: a conditional patch can be pretty much never be upstreamed. There might be some cases where we're conditionally applying it out of conservatism (which we should probably re-evaluate) even though it has e.g. appropriate configure options, but most of the time, a conditional patch is unconditionally applying functionality and therefore isn't upstreamable in its current state. > Sam made a specific point re musl: "for e.g. musl patches, we want a portable > fix, not a hack which is only applied for musl" Yep. I'd note that sometimes (as I say in my reply to grobian), it's okay, but we want to discourage it for sure. > > Feedback on this very welcome. I'm grappling a bit with the exact wording to > go > for, so input on that is also appreciated. > > I think my question to this list is: Should it be policy that conditional > patching is to be avoided? > Thanks for bringing this up. > All the best, > -- Thomas Best, sam signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] Policy on conditional patching
> On 29 Mar 2022, at 04:43, Sam James wrote: > > > >> On 28 Mar 2022, at 12:05, Thomas Bracht Laumann Jespersen >> wrote: >> >> Hi! >> >> I've been working on a new section in the devmanual regarding conditional >> patching. In a PR [0] Sam suggested adding a section to clarify that >> conditional >> patching should be avoided, because it can quickly become a maintenance and >> testing burden. >> ... and just to be clear, I'm not suggesting we ban it. Just discourage it so that people are aware it should be avoided where possible. Best, sam signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Packages up for grabs: dev-libs/zlog
Hi all, dev-libs/zlog is up for grabs as a result of klausman's retirement. No open bugs and is up to date, but could do with cleanup of old version. Best, sam signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] proposal: use only one hash function in manifest files
> On 5 Apr 2022, at 22:13, Jonas Stein wrote: > > Hi > >> I'd like to propose the following for portage: >> - Only support one "secure" hash function (such as sha2, sha3, blake2, etc) >> - Only generate and parse one hash function in Manifest files >> - Remove support for multiple hash functions > > No, this has no benefit. Which part has no benefit? I could see a case (although I don't think it's a super strong one) for keeping support for multiple hash types in Portage, but only 1 in a Manifest. I think Jason's made a fair case for dropping it. > >> In other words, what are we actually getting by having _both_ SHA2-512 >> and BLAKE2b for every file in every Manifest? > > Implementations are often broken and we have to expect zero day attacks on > hashes and on signatures. Hence it does not hurt to have a second hash. I don't think this is the case. They're not broken often, it's a very very big deal when they do, and we'd also have far bigger problems in such a case (as already pointed out, TLS would be an issue, but also GPG signatures, git commit hashes, ...). > > It is very likely that we can not trust in X for a while in the next years, > but it is very unlikely that two different implementations are affected. > I don't think it is likely that e.g. SHA512 will be broken in the next few years, no, but if it is going to be, we have far bigger issues and we'd need to have double algorithms in our whole stack, which we don't have. > Additionally calculating a second hash does not cost anything. It does have a cost at both Manifest-generation time and emerge-time. Thanks, sam signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] proposal: use only one hash function in manifest files
> On 6 Apr 2022, at 01:15, Jason A. Donenfeld wrote: > > Hi Sam, > > On Wed, Apr 6, 2022 at 2:02 AM Sam James wrote: >> This matches my views and recollection. We could revisit it >> if there was a passionate advocate (which it looks like there may well be). >> >> While I wasn't against it before, I was sort of ambivalent given >> we had no strong reason to, but I'm more willing now given >> we're also cleaning out other Portage cruft at the same time. > > I think actually the argument I'm making this time might be subtly > different from the motions that folks went through last year. > Specifically, the idea last year was to switch to using BLAKE2b only. > I think what the arguments I'm making now point to is switching to > SHA2-512 only. Oh, right. I see! (Aside: I should've been clearer in my first email, what I meant was: I'm fine with revisiting this, but I remember us feeling kind of lacklustre because even the proposer (mgorny) ended up not having the oomph to push it through given (small) opposition. I don't recall who had the stiff opposition at the time, but I do recall it was only small, but nobody really felt like it was worth the hassle. The overall Council feeling was "meh" without some momentum.) > There are two reasons for this. > > 1) Security: since the GPG signatures use SHA2-512, then the whole > system breaks if SHA2-512 breaks. If we choose BLAKE2b as our only > hash, then if either SHA2-512 or BLAKE2b break, then the system > breaks. But if we choose SHA2-512 as our only hash, then we only need > to worry about SHA2-512 breaking. > > 2) Comparability: other distros use SHA2-512, as well as various > upstreams, which means we can compare our hashes to theirs easily. > > A reason why some people might prefer BLAKE2b over SHA2-512 is a > performance improvement. However, seeing as right now we're opening > the file, reading it, computing BLAKE2b, closing the file, opening the > file again, reading it again, computing SHA2-512, closing the file, I > don't think performance is actually something people care about. Seen > differently, removing either one of them will already give us a > performance "boost" or sorts. > I think this seems pretty reasonable and I don't have any objection to it. 2) is a nice point and it's something Robin raised last time around too. > Jason best, sam signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] [PATCH v4 2/9] vim-plugin.eclass: support EAPI 8
> On 7 Apr 2022, at 13:01, Anna Vyalkova wrote: > > From: Thomas Bracht Laumann Jespersen > > * Drop EAPI 0, 1, 2 workarounds > * Move EXPORT_FUNCTIONS to end of file > * Add required @USAGE on functions > * Add _VIM_PLUGIN_ECLASS guard > > Bug: https://bugs.gentoo.org/830867 > Bug: https://bugs.gentoo.org/830866 > Signed-off-by: Thomas Bracht Laumann Jespersen > Signed-off-by: Anna Vyalkova > --- > eclass/vim-plugin.eclass | 28 +--- > 1 file changed, 17 insertions(+), 11 deletions(-) > > diff --git a/eclass/vim-plugin.eclass b/eclass/vim-plugin.eclass > index 50e727e98f..0ee4ebe374 100644 > --- a/eclass/vim-plugin.eclass > +++ b/eclass/vim-plugin.eclass > @@ -1,10 +1,10 @@ > -# Copyright 1999-2021 Gentoo Authors > +# Copyright 1999-2022 Gentoo Authors > # Distributed under the terms of the GNU General Public License v2 > > # @ECLASS: vim-plugin.eclass > # @MAINTAINER: > # v...@gentoo.org > -# @SUPPORTED_EAPIS: 6 7 > +# @SUPPORTED_EAPIS: 6 7 8 > # @BLURB: used for installing vim plugins > # @DESCRIPTION: > # This eclass simplifies installation of app-vim plugins into > @@ -13,12 +13,13 @@ > # documentation, for which we make a special case via vim-doc.eclass. > > case ${EAPI} in > - 6|7);; > - *) die "EAPI ${EAPI:-0} unsupported (too old)";; > + 6|7|8);; > + *) die "${ECLASS}: EAPI ${EAPI:-0} unsupported (too old)";; > esac > > +if [[ ! ${_VIM_PLUGIN_ECLASS} ]]; then > + > inherit vim-doc > -EXPORT_FUNCTIONS src_install pkg_postinst pkg_postrm > > VIM_PLUGIN_VIM_VERSION="${VIM_PLUGIN_VIM_VERSION:-7.3}" > > @@ -32,13 +33,13 @@ fi > SLOT="0" > > # @FUNCTION: vim-plugin_src_install > +# @USAGE: > # @DESCRIPTION: > # Overrides the default src_install phase. In order, this function: > # * fixes file permission across all files in ${S}. > # * installs help and documentation files. > # * installs all files in "${ED}"/usr/share/vim/vimfiles. > vim-plugin_src_install() { > - has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}" > > # Install non-vim-help-docs > einstalldocs > @@ -53,6 +54,7 @@ vim-plugin_src_install() { > } > Drop the now-blank line at start of function. > # @FUNCTION: vim-plugin_pkg_postinst > +# @USAGE: > # @DESCRIPTION: > # Overrides the pkg_postinst phase for this eclass. > # The following functions are called: > @@ -71,7 +73,6 @@ vim-plugin_pkg_postinst() { > # This function calls the update_vim_helptags and update_vim_afterscripts > # functions and eventually removes a bunch of empty directories. > vim-plugin_pkg_postrm() { > - has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= > update_vim_helptags # from vim-doc > update_vim_afterscripts # see below > I'd fix the indentation (i.e. don't, just use a space) on the comment, but not a big deal. > @@ -82,25 +83,24 @@ vim-plugin_pkg_postrm() { > } > > # @FUNCTION: update_vim_afterscripts > +# @USAGE: > # @DESCRIPTION: > # Creates scripts in /usr/share/vim/vimfiles/after/* > # comprised of the snippets in /usr/share/vim/vimfiles/after/*/*.d > update_vim_afterscripts() { > - has "${EAPI:-0}" 0 1 2 && ! use prefix && EROOT="${ROOT}" > - has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= > local d f afterdir="${EROOT}"/usr/share/vim/vimfiles/after > > # Nothing to do if the dir isn't there > [ -d "${afterdir}" ] || return 0 Bash tests. > > - einfo "Updating scripts in ${EPREFIX}/usr/share/vim/vimfiles/after" > + einfo "Updating scripts in ${afterdir}" > find "${afterdir}" -type d -name \*.vim.d | while read d; do > echo '" Generated by update_vim_afterscripts' > "${d%.d}" || die > find "${d}" -name \*.vim -type f -maxdepth 1 -print0 | sort -z > | \ > xargs -0 cat >> "${d%.d}" || die > "update_vim_afterscripts failed" > done > > - einfo "Removing dead scripts in ${EPREFIX}/usr/share/vim/vimfiles/after" > + einfo "Removing dead scripts in ${afterdir}" > find "${afterdir}" -type f -name \*.vim | \ > while read f; do > [[ "$(head -n 1 ${f})" == '" Generated by > update_vim_afterscripts' ]] \ > @@ -115,6 +115,7 @@ update_vim_afterscripts() { > } > > # @FUNCTION: display_vim_plugin_help > +# @USAGE: > # @DESCRIPTION: > # Displays a message with the plugin's help file if one is available. Uses the > # VIM_PLUGIN_HELPFILES env var. If multiple help files are available, they > @@ -160,3 +161,8 @@ display_vim_plugin_help() { > fi > fi > } > + > +_VIM_PLUGIN_ECLASS=1 > +fi > + > +EXPORT_FUNCTIONS src_install pkg_postinst pkg_postrm > -- > 2.35.1 > > signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] [RFC] Moving s outta metadata.xml, into a consistent mapping
> On 8 Apr 2022, at 00:07, Matt Turner wrote: > > On Thu, Apr 7, 2022 at 11:42 AM Michał Górny wrote: >> >> Hello, >> >> Right now we're keeping both email addresses (obligatory) and names >> (optional) for downstream maintainers in metadata.xml. The way I see >> it, there are three problems with that: >> >> 1. As noticed on IRC lately, a few devs haven't been listing their names >> at all, resulting in these names being missing from packages.g.o. >> >> 2. Not all names are listed consistently. This is especially the case >> for projects. When you want to group everything by maintainer, which >> name should be used? >> >> 3. In the end, listing the same names all over the place is a lot of >> redundancy. >> >> >> I'd like to propose that we deprecate for downstream >> maintainers, and instead work towards using an additional mapping from >> maintainer email addresses to their names. >> >> a. For projects, we can simply use projects.xml. We already require >> that all type="project" maintainers correspond to entries >> in projects.xml, so we should be good here. >> >> b. For human maintainers, I think we can use metadata/AUTHORS. This is >> pretty much killing two birds with one stone -- we could finally getting >> the file more complete, and at the same time use it to provide names for >> maintainers. >> >> While keeping names in metadata.xml has the advantage that they are >> immediately available (provided that they are actually listed there), >> I don't think this is really a show-stopper. > > Sounds like a good plan to me. Yep. It also has a nice consequence of allowing AUTHORS to be used as a mailmap for git (although git doesn't respect symlinks for mailmap, so we'd need to tell people to set it with the config option, but still.) The main value for me is in making AUTHORS more useful. If it has to exist, we should use it properly. But I love a bit of deduplication too. Best, sam signature.asc Description: Message signed with OpenPGP
[gentoo-dev] [PATCH] 2022-04-12-ccache-4_6-sandbox: add news item
Bug: https://bugs.gentoo.org/837362 Signed-off-by: Sam James --- .../2022-04-12-ccache-4_6-sandbox.en.txt | 25 +++ 1 file changed, 25 insertions(+) create mode 100644 2022-04-12-ccache-4_6-sandbox/2022-04-12-ccache-4_6-sandbox.en.txt diff --git a/2022-04-12-ccache-4_6-sandbox/2022-04-12-ccache-4_6-sandbox.en.txt b/2022-04-12-ccache-4_6-sandbox/2022-04-12-ccache-4_6-sandbox.en.txt new file mode 100644 index 000..1dabea9 --- /dev/null +++ b/2022-04-12-ccache-4_6-sandbox/2022-04-12-ccache-4_6-sandbox.en.txt @@ -0,0 +1,25 @@ +Title: Sandbox issue with ccache 4.6 +Author: Sam James +Posted: 2022-04-12 +Revision: 1 +News-Item-Format: 2.0 +Display-If-Installed: =dev-util/ccache-4.6 + +Users with ccache enabled for the dev-util/ccache package itself may need +to temporarily disable ccache in order to upgrade the package. + +Users on an earlier version of ccache (<4.6) or newer (>=4.6-r1) are +unaffected. + +For a small window (between 2022-04-09-4:30AM UTC and 2022-04-09-11:27AM UTC), +the ccache ebuild may have caused a sandbox violation [0] in some circumstances. + +To resolve this issue, temporarily re-emerge dev-util/ccache with ccache +disabled: +# FEATURES="-ccache" emerge -v1 ">dev-util/ccache-4.6" + +The sandbox violations occur when trying to use ccache for any package; +users who do not have ccache enabled globally (or at least not for ccache +itself) should also proactively upgrade ccache as above. + +[0] https://bugs.gentoo.org/837362 -- 2.35.1
[gentoo-dev] Packages up for grabs due to andrey_utkin's retirement
Packages up for grabs: dev-libs/libstrophe net-im/dino net-im/mcabber net-im/profanity net-libs/loudmouth signature.asc Description: Message signed with OpenPGP
[gentoo-dev] Up for grabs: media-libs/opencv
media-libs/opencv is up for grabs. It really needs a considerable amount of love and upstreaming of patches where applicable. 17 open bugs. Thanks! signature.asc Description: Message signed with OpenPGP
[gentoo-dev] [PATCH] metadata/install-qa-check.d: add 60libtool-la (check for unnecessary .la files)
Signed-off-by: Sam James --- metadata/install-qa-check.d/60libtool-la | 45 1 file changed, 45 insertions(+) create mode 100644 metadata/install-qa-check.d/60libtool-la diff --git a/metadata/install-qa-check.d/60libtool-la b/metadata/install-qa-check.d/60libtool-la new file mode 100644 index ..fd21ec8406d3 --- /dev/null +++ b/metadata/install-qa-check.d/60libtool-la @@ -0,0 +1,45 @@ +# Check if we're installing .la files unnecessarily +# https://projects.gentoo.org/qa/policy-guide/installed-files.html#pg0303 + +libtool_la_check() { + if [[ ${CATEGORY}/${PN} == dev-libs/libltdl ]] ; then + # bug #293921 + return + fi + + # Bail out if there aren't any .la files being installed + local files=$(find "${ED}"/usr/lib* -name '*.la' -print 2>/dev/null) + [[ -n "${files[@]}" ]] || return + + if grep -q "dev-libs/libltdl" <<<${RDEPEND}; then + # Nothing to do here + return + fi + + # Iterate over all the .la files we are installing to verify there's + # a corresponding .a file - they're pointless without a corresponding + # static library. + local file + local dir + local base + local bad_files=() + for file in "${files[@]}" ; do + dir=$(dirname ${file}) + base=${dir%/} + base=${base%.la} + + if [[ ! -f ${dir}/${base}.a ]] ; then + bad_files+=( ${file} ) + fi + done + + if [[ -n "${bad_files[@]}" ]] ; then + eqawarn "QA Notice: Installing libtool files (.la) without corresponding libraries!" + eqatag -v libtool-la.unnecessary "${bad_files[@]#${D}}" + fi +} + +libtool_la_check +: # guarantee successful exit + +# vim:ft=sh -- 2.35.1
[gentoo-dev] [PATCH 0/1] Add edo.eclass
Intended as a discussion starter after recent discussions in #gentoo-dev. I don't necc. expect this to be the final implementation at all, but it's often helpful to have something concrete to discuss & iterate on. I think the need for this is pretty strong in sci-*/* ebuilds which tend to need custom homebrew commands executed and such an edo helper allows us to: - have a more verbose log (which is one of our general principles and policies) - make the ebuild cleaner, as we only need one line to both echo-and-run Sam James (1): edo.eclass: add new eclass eclass/edo.eclass | 34 ++ 1 file changed, 34 insertions(+) create mode 100644 eclass/edo.eclass -- 2.35.1
[gentoo-dev] [PATCH 1/1] edo.eclass: add new eclass
Bug: https://bugs.gentoo.org/744880 Signed-off-by: Sam James --- eclass/edo.eclass | 34 ++ 1 file changed, 34 insertions(+) create mode 100644 eclass/edo.eclass diff --git a/eclass/edo.eclass b/eclass/edo.eclass new file mode 100644 index ..fc025ddf4503 --- /dev/null +++ b/eclass/edo.eclass @@ -0,0 +1,34 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# @ECLASS: edo.class +# @MAINTAINER: +# QA Team +# @AUTHOR: +# Sam James +# @SUPPORTED_EAPIS: 8 +# @BLURB: Convenience function to run commands verbosely and die on failure +# @DESCRIPTION: +# This eclass provides the 'edo' command which dies (exits) on failure +# and logs the command used verbosely. +# + +case ${EAPI:-0} in + 8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + +if [[ -z ${_EDO_ECLASS} ]] ; then + _EDO_CLASS=1 + +# @FUNCTION: edo +# @USAGE: command [arg1 [arg2 ...]] +# @DESCRIPTION: +# Executes 'command' with any given arguments and exits on failure unless +# called under 'nonfatal'. +edo() { + elog "$@" + "$@" || die -n "Failed to run command: $@ failed" +} + +fi -- 2.35.1
[gentoo-dev] [PATCH] gnuconfig.eclass: fix eend w/o ebegin
eend should be preceded by an begin call. Signed-off-by: Sam James --- eclass/gnuconfig.eclass | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eclass/gnuconfig.eclass b/eclass/gnuconfig.eclass index 58bdcfd660a6b..0791798632cdb 100644 --- a/eclass/gnuconfig.eclass +++ b/eclass/gnuconfig.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: gnuconfig.eclass @@ -84,9 +84,9 @@ gnuconfig_do_update() { if [[ -n ${targetlist} ]] ; then for target in ${targetlist} ; do [[ -L ${target} ]] && rm -f "${target}" - einfo " Updating ${target/$startdir\//}" + ebegin " Updating ${target/$startdir\//}" cp -f "${configsubs_dir}/${file}" "${target}" - eend $? + eend $? || die done else ewarn " No ${file} found in ${startdir}, skipping ..." -- 2.35.1
[gentoo-dev] [PATCH v2 1/1] edo.eclass: add new eclass
Bug: https://bugs.gentoo.org/744880 Signed-off-by: Sam James --- eclass/edo.eclass | 46 ++ 1 file changed, 46 insertions(+) create mode 100644 eclass/edo.eclass diff --git a/eclass/edo.eclass b/eclass/edo.eclass new file mode 100644 index ..7b4ae04c43ab --- /dev/null +++ b/eclass/edo.eclass @@ -0,0 +1,46 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# @ECLASS: edo.class +# @MAINTAINER: +# QA Team +# @AUTHOR: +# Sam James +# @SUPPORTED_EAPIS: 7 8 +# @BLURB: Convenience function to run commands verbosely and die on failure +# @DESCRIPTION: +# This eclass provides the 'edo' command, and an 'edob' variant for ebegin/eend, +# which dies (exits) on failure and logs the command used verbosely. +# + +case ${EAPI:-0} in + 7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + +if [[ -z ${_EDO_ECLASS} ]] ; then + _EDO_CLASS=1 + +# @FUNCTION: edo +# @USAGE: [...] +# @DESCRIPTION: +# Executes 'command' with any given arguments and exits on failure unless +# called under 'nonfatal'. +edo() { + elog "$@" + "$@" || die -n "Failed to run command: $@ failed" +} + +# @FUNCTION: edob +# @USAGE: [...] +# @DESCRIPTION: +# Executes 'command' with ebegin & eend with any given arguments and exits +# on failure unless called under 'nonfatal'. +# Intended for single commands, otherwise regular ebegin/eend should be used. +edob() { + ebegin "Running $@" + "$@" + eend $? || die -n "$@ failed" +} + +fi -- 2.35.1
[gentoo-dev] [PATCH v2 0/1] Add edo.eclass
Changes since v1: - Add EAPI 7 support (useful for e.g. base-system@ ebuilds) - Add 'edob' (edo with ebegin/eend for better logs log-running commands, UX) Sam James (1): edo.eclass: add new eclass eclass/edo.eclass | 46 ++ 1 file changed, 46 insertions(+) create mode 100644 eclass/edo.eclass -- 2.35.1
[gentoo-dev] [PATCH v3 0/1] Add edo.eclass
Changes since v2: - Fix typo in eclass guard - Rework description of edob - Use 'einfo', not 'elog' - Change die message for clarity Changes since v1: - Add EAPI 7 support (useful for e.g. base-system@ ebuilds) - Add 'edob' (edo with ebegin/eend for better logs log-running commands, UX) Sam James (1): edo.eclass: add new eclass eclass/edo.eclass | 45 + 1 file changed, 45 insertions(+) create mode 100644 eclass/edo.eclass -- 2.35.1
[gentoo-dev] [PATCH v3 1/1] edo.eclass: add new eclass
Bug: https://bugs.gentoo.org/744880 Signed-off-by: Sam James --- eclass/edo.eclass | 45 + 1 file changed, 45 insertions(+) create mode 100644 eclass/edo.eclass diff --git a/eclass/edo.eclass b/eclass/edo.eclass new file mode 100644 index ..e7b3b95df4ae --- /dev/null +++ b/eclass/edo.eclass @@ -0,0 +1,45 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# @ECLASS: edo.class +# @MAINTAINER: +# QA Team +# @AUTHOR: +# Sam James +# @SUPPORTED_EAPIS: 7 8 +# @BLURB: Convenience function to run commands verbosely and die on failure +# @DESCRIPTION: +# This eclass provides the 'edo' command, and an 'edob' variant for ebegin/eend, +# which dies (exits) on failure and logs the command used verbosely. +# + +case ${EAPI:-0} in + 7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + +if [[ -z ${_EDO_ECLASS} ]] ; then +_EDO_ECLASS=1 + +# @FUNCTION: edo +# @USAGE: [...] +# @DESCRIPTION: +# Executes a short 'command' with any given arguments and exits on failure unless +# called under 'nonfatal'. +edo() { + einfo "$@" + "$@" || die -n "Failed to run command: $@" +} + +# @FUNCTION: edob +# @USAGE: [...] +# @DESCRIPTION: +# Executes 'command' with ebegin & eend with any given arguments and exits +# on failure unless called under 'nonfatal'. +edob() { + ebegin "Running $@" + "$@" + eend $? || die -n "Failed to run command: $@" +} + +fi -- 2.35.1
[gentoo-dev] [PATCH v4 0/1] Add edo.eclass
Changes since v3: - EAPI check cleanup - Fix long line in eclassdoc Changes since v2: - Fix typo in eclass guard - Rework description of edob - Use 'einfo', not 'elog' - Change die message for clarity Changes since v1: - Add EAPI 7 support (useful for e.g. base-system@ ebuilds) - Add 'edob' (edo with ebegin/eend for better logs log-running commands, UX) Sam James (1): edo.eclass: add new eclass eclass/edo.eclass | 45 + 1 file changed, 45 insertions(+) create mode 100644 eclass/edo.eclass -- 2.35.1
[gentoo-dev] [PATCH v4 1/1] edo.eclass: add new eclass
Bug: https://bugs.gentoo.org/744880 Signed-off-by: Sam James --- eclass/edo.eclass | 45 + 1 file changed, 45 insertions(+) create mode 100644 eclass/edo.eclass diff --git a/eclass/edo.eclass b/eclass/edo.eclass new file mode 100644 index ..aa0385842c35 --- /dev/null +++ b/eclass/edo.eclass @@ -0,0 +1,45 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# @ECLASS: edo.class +# @MAINTAINER: +# QA Team +# @AUTHOR: +# Sam James +# @SUPPORTED_EAPIS: 7 8 +# @BLURB: Convenience function to run commands verbosely and die on failure +# @DESCRIPTION: +# This eclass provides the 'edo' command, and an 'edob' variant for ebegin/eend, +# which dies (exits) on failure and logs the command used verbosely. +# + +case ${EAPI} in + 7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + +if [[ -z ${_EDO_ECLASS} ]] ; then +_EDO_ECLASS=1 + +# @FUNCTION: edo +# @USAGE: [...] +# @DESCRIPTION: +# Executes a short 'command' with any given arguments and exits on failure +# unless called under 'nonfatal'. +edo() { + einfo "$@" + "$@" || die -n "Failed to run command: $@" +} + +# @FUNCTION: edob +# @USAGE: [...] +# @DESCRIPTION: +# Executes 'command' with ebegin & eend with any given arguments and exits +# on failure unless called under 'nonfatal'. +edob() { + ebegin "Running $@" + "$@" + eend $? || die -n "Failed to run command: $@" +} + +fi -- 2.35.1
Re: [gentoo-dev] [PATCH] 2022-04-21-systemd-utils: new entry
> On 17 Apr 2022, at 19:28, Mike Gilbert wrote: > > Signed-off-by: Mike Gilbert > --- > .../2022-04-21-systemd-utils.en.txt | 38 +++ > 1 file changed, 38 insertions(+) > create mode 100644 2022-04-21-systemd-utils/2022-04-21-systemd-utils.en.txt > > diff --git a/2022-04-21-systemd-utils/2022-04-21-systemd-utils.en.txt > b/2022-04-21-systemd-utils/2022-04-21-systemd-utils.en.txt > new file mode 100644 > index 000..b8c6f14 > --- /dev/null > +++ b/2022-04-21-systemd-utils/2022-04-21-systemd-utils.en.txt > @@ -0,0 +1,38 @@ > +Title: Migration to sys-apps/systemd-utils > +Author: Mike Gilbert > +Posted: 2022-04-21 > +Revision: 1 > +News-Item-Format: 2.0 > +Display-If-Installed: sys-apps/systemd-tmpfiles > +Display-If-Installed: sys-boot/systemd-boot > +Display-If-Installed: sys-fs/udev My suggestion is to display if systemd-utils is installed too, because... > + > +The sys-apps/systemd-utils package was recently added to the gentoo > +repository. This replaces sys-apps/systemd-tmpfiles, sys-boot/systemd-boot, > +and sys-fs/udev with a single package. USE flags are provided to allow each > +component to be enabled or disabled. I think a very brief bit of rationale about why would be helpful so we don't have to keep explaining it. Just something like: "This change has been made to significantly ease maintenance of tools split out from systemd, like udev, systemd-tmpfiles, and systemd-boot, as one ebuild (with USE flags) is used for each of the components." Would emphasise that it's specifically for non-systemd installations too. > + > +When upgrading to sys-apps/systemd-tmpfiles-250, > +sys-apps/systemd-utils[tmpfiles] will be pulled in as a dependency. > + > +When upgrading to sys-boot/systemd-boot-250, sys-apps/systemd-utils[boot] > will > +be pulled in as a dependency. > + > +When upgrading to sys-fs/udev-250, sys-apps/systemd-utils[udev] will be > pulled > +in as a depenendecy. > + dependency > +At a later date, sys-apps/systemd-tmpfiles, sys-boot/systemd-boot, and > +sys-fs/udev will be masked for removal once a suitable version of > +sys-apps/systemd-utils has been marked stable and sufficient time has been > +provided for users to migrate. > + > +Possible problems when upgrading: > + > +1. If sys-fs/eudev is present in the world file (@selected), emerge will > abort > + the upgrade with a unsolvable blocker error. To resolve this, either > remove > + sys-fs/eudev from the world file, or disable the 'udev' USE flag on > + sys-apps/systemd-utils. 'By using emerge --deselect ...'? > + > +2. The 'boot' USE flag on sys-apps/systemd-utils is disabled by default. > Users > + migrating from sys-boot/systemd-boot will need to enable the 'boot' use > + flag to continue receiving updates. > -- > 2.35.1 > > signature.asc Description: Message signed with OpenPGP
[gentoo-dev] [PATCH] [committed] edo.eclass: update eclassdoc to clarify purpose
Signed-off-by: Sam James --- eclass/edo.eclass | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/eclass/edo.eclass b/eclass/edo.eclass index 550d6770cb63..c2e7ed60083f 100644 --- a/eclass/edo.eclass +++ b/eclass/edo.eclass @@ -10,9 +10,12 @@ # @BLURB: Convenience function to run commands verbosely and die on failure # @DESCRIPTION: # This eclass provides the 'edo' command, and an 'edob' variant for ebegin/eend, -# which dies (exits) on failure and logs the command used verbosely. +# which logs the command used verbosely and dies (exits) on failure. # - +# This eclass should be used only where needed to give a more verbose log, e.g. +# for invoking non-standard ./configure scripts, or building objects/binaries +# directly within ebuilds via compiler invocations. It is NOT to be used +# in place of generic 'command || die' where verbosity is unnecessary. case ${EAPI} in 7|8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; -- 2.35.1
[gentoo-dev] [PATCH 1/2] meson.eclass: disable PCH
It's already masked and disabled in GCC and it causes a huge number of problems, but we need t odo this to avoid automagically trying to use PCH-even-once-it's-been-disabled-in-the-compiler. Bug: https://bugs.gentoo.org/839549 Signed-off-by: Sam James --- eclass/meson.eclass | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/eclass/meson.eclass b/eclass/meson.eclass index c094f4683913..809cf10f8366 100644 --- a/eclass/meson.eclass +++ b/eclass/meson.eclass @@ -1,4 +1,4 @@ -# Copyright 2017-2021 Gentoo Authors +# Copyright 2017-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: meson.eclass @@ -323,6 +323,12 @@ meson_src_configure() { --build.pkg-config-path "${BUILD_PKG_CONFIG_PATH}${BUILD_PKG_CONFIG_PATH:+:}${EPREFIX}/usr/share/pkgconfig" --pkg-config-path "${PKG_CONFIG_PATH}${PKG_CONFIG_PATH:+:}${EPREFIX}/usr/share/pkgconfig" --native-file "$(_meson_create_native_file)" + + # gcc[pch] is masked in profiles due to consistent bugginess + # without forcing this off, some packages may fail too (like gjs, + # bug #839549), but in any case, we don't want to bother attempting + # this. + -Db_pch=false ) if [[ -n ${EMESON_BUILDTYPE} ]]; then -- 2.35.1
[gentoo-dev] [PATCH 2/2] meson.eclass: disable werror
It's Gentoo policy to disable Werror where possible and this is a builtin Meson option, so let's use it, to save needing to add this all the time in ebuilds. Closes: https://bugs.gentoo.org/754279 Signed-off-by: Sam James --- eclass/meson.eclass | 4 1 file changed, 4 insertions(+) diff --git a/eclass/meson.eclass b/eclass/meson.eclass index 809cf10f8366..f2f7173f5a9a 100644 --- a/eclass/meson.eclass +++ b/eclass/meson.eclass @@ -329,6 +329,10 @@ meson_src_configure() { # bug #839549), but in any case, we don't want to bother attempting # this. -Db_pch=false + + # It's Gentoo policy to not have builds die on blanket -Werror, as it's + # an upstream development matter. bug #754279. + -Dwerror=false ) if [[ -n ${EMESON_BUILDTYPE} ]]; then -- 2.35.1
Re: [gentoo-dev] [RFC] Security Bug Assignment Change
> On 15 Apr 2022, at 02:38, John Helmert III wrote: > > Hi all! Currently all security bugs are assigned to security@g.o, > always. This can easily lead to some confusion about who needs to do > something about a given bug; right now this is generally tracked by > whiteboard magic strings that probably not many people outside of the > Security Project understand [1] and this has been a source of > confusion around security bugs for a long time. > > To make it abundantly clear who needs to take action for a given bug, > I propose we move away from the dogma of security@ always being > assigned to security bugs, and instead assign bugs to whoever needs to > take action for the bug. For example, on security bugs that need a > package bumped or cleaned up, the package maintainer would be > assigned. For bugs needing a GLSA, security@ would be assigned. > [...] > > What do you all think? > Yes, please. It's led to no end of confusion and had many requests for this over the years. > [1] > https://www.gentoo.org/support/security/vulnerability-treatment-policy.html > "Severity Level" section Best, sam signature.asc Description: Message signed with OpenPGP
[gentoo-dev] [PATCH 0/1] Add QA check for udev.eclass usage
Only lightly tested so far but nearly identical to the tmpfiles check which has gone pretty well. Sam James (1): metadata/install-qa-check.d: add new QA check for udev rules metadata/install-qa-check.d/60udev-eclass | 63 +++ 1 file changed, 63 insertions(+) create mode 100644 metadata/install-qa-check.d/60udev-eclass -- 2.35.1
[gentoo-dev] [PATCH 1/1] metadata/install-qa-check.d: add new QA check for udev rules
Very similar to tmpfiles.eclass check (60tmpfiles-paths). Three checks: 1) Verify packages don't install udev rules to /etc/udev/rules.d, which is a forbidden (user-configuration) location; 2) Check whether packages inherit udev.eclass if they're installing files to /lib/udev/rules.d/.. (This helps to catch packages not calling udev_reload in pkg_postinst). 3) Check for missing udev_process calls in pkg_postinst. Bug: https://bugs.gentoo.org/433916 See: c7fe1066a8fcd35f965de4ea16c9cd1001830642 Signed-off-by: Sam James --- metadata/install-qa-check.d/60udev-eclass | 63 +++ 1 file changed, 63 insertions(+) create mode 100644 metadata/install-qa-check.d/60udev-eclass diff --git a/metadata/install-qa-check.d/60udev-eclass b/metadata/install-qa-check.d/60udev-eclass new file mode 100644 index ..cf8e08e9971e --- /dev/null +++ b/metadata/install-qa-check.d/60udev-eclass @@ -0,0 +1,63 @@ +# Copyright 2021-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# QA check: ensure that packages installing udev rules inherit the eclass +# Maintainer: Sam James + +# Implements three checks: +# 1) Installation to /etc/udev/rules.d (which is a user-customization location); +# 2) Installation of any udev rules to /lib/udev/rules.d without inheriting the eclass +#(needed for udev_reload in pkg_postinst); +# 3) Check for installation of udev rules without calling udev_reload in +#pkg_postinst. +udev_rules_check() { + # Check 1 + # Scan image for files in /etc/udev/rules.d which is a forbidden location + # (We use this glob to avoid triggering on keepdir) + shopt -s nullglob + local files=( "${ED}"/etc/udev/rules.d/* ) + shopt -u nullglob + + if [[ ${#files[@]} -gt 0 ]]; then + eqawarn "QA Notice: files installed to /etc/udev/rules.d found" + eqawarn "udev rules files supplied by ebuilds must be installed to /lib/udev/rules.d/" + fi + + # Check 2 + # We're now going to check for whether we install files to /lib/udev/rules.d/ without + # inheriting the eclass (weak catch for ebuilds not calling udev_reload in pkg_postinst) + + if [[ -n ${UDEV_OPTIONAL} ]] ; then + # While imperfect, using ${UDEV_OPTIONAL} is good enough to allow opting out + # for e.g. sys-apps/portage, sys-apps/systemd, sys-libs/pam, etc. We may want + # a better/more standardised way to opt out from QA checks in future. + # It's okay for some packages to do this because of circular dependencies and such + # See: https://archives.gentoo.org/gentoo-dev/message/0a96793036a4fdd9ac311a46950d7e7b + return + fi + + if [[ -d "${ED}"/lib/udev/rules.d/ ]] ; then + if ! has udev ${INHERITED} ; then + eqawarn "QA Notice: package is installing udev ruleswithout inheriting udev.eclass!" + eqawarn "Packages must inherit udev.eclass then call udev_reload in pkg_postinst." + return + fi + + # Check 3 + # Check whether we're installing udev rules without explicitly + # calling udev_reload in pkg_postinst, but we have inherited + # the eclass. + # Small risk of false positives if called indirectly. + # See: https://archives.gentoo.org/gentoo-dev/message/7bdfdc9a7560fd07436defd0253af0b8 + local pkg_postinst_body="$(declare -fp pkg_postinst 2>&1)" + if [[ ! ${pkg_postinst_body} == *udev_reload* ]] ; then + eqawarn "QA Notice: package is installing udev rules without calling" + eqawarn "udev_reload in pkg_postinst phase" + fi + fi +} + +udev_rules_check +: # guarantee successful exit + +# vim:ft=sh -- 2.35.1
[gentoo-dev] [PATCH] autotools.eclass: drop ROOT=/ in has_version call
Noticed when doing a read-through of the eclass (which is how I noticed c8e74a7dfe477dea008548553141f083c5d03782 too). Forcing ROOT=/ is, at best, going to confuse matters, and at worst, do entirely the wrong thing. In EAPI 5 and 6, we had --host-root (which we use in the eclass), and in EAPI 7+, we have -b/-d (which we use in the eclass too). The ROOT= setting was there for pre-EAPI 5 times. The aforementioned toggles (--host-root and then later on, -b/-d) are the correct methods to specify (B)ROOT for has_version. Using one of those with ROOT= have undefined behaviour, so drop it. Bug: https://bugs.gentoo.org/312687 Thanks-to: James Le Cuirot Thanks-to: Ulrich Müller Signed-off-by: Sam James --- eclass/autotools.eclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eclass/autotools.eclass b/eclass/autotools.eclass index e6658e361318..b8eeb55fd8f2 100644 --- a/eclass/autotools.eclass +++ b/eclass/autotools.eclass @@ -523,7 +523,7 @@ autotools_env_setup() { hv_args="-b" ;; esac - ROOT=/ has_version ${hv_args} "=sys-devel/automake-${pv}*" && export WANT_AUTOMAKE="${pv}" && break + has_version ${hv_args} "=sys-devel/automake-${pv}*" && export WANT_AUTOMAKE="${pv}" && break done [[ ${WANT_AUTOMAKE} == "latest" ]] && \ die "Cannot find the latest automake! Tried ${_LATEST_AUTOMAKE[*]}" -- 2.35.1
[gentoo-dev] Packages up for grabs due to djc's retirement
Packages up for grabs: app-text/pelican mail-filter/postsrsd www-apache/mod_wsgi signature.asc Description: Message signed with OpenPGP
[gentoo-dev] [PATCH 1/5] ninja-utils.eclass: Support dev-util/samurai
From: orbea samurai is a ninja-compatible build tool written in C which works with cmake, meson and other users of ninja. It is feature-complete and supports most of the same options as ninja. Signed-off-by: orbea Signed-off-by: Sam James --- eclass/ninja-utils.eclass | 24 +++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/eclass/ninja-utils.eclass b/eclass/ninja-utils.eclass index c5f34934192f..67f7a6b5e8a7 100644 --- a/eclass/ninja-utils.eclass +++ b/eclass/ninja-utils.eclass @@ -26,6 +26,15 @@ esac if [[ -z ${_NINJA_UTILS_ECLASS} ]]; then _NINJA_UTILS_ECLASS=1 +# @ECLASS_VARIABLE: NINJA +# @PRE_INHERIT +# @DEFAULT_UNSET +# @DESCRIPTION: +# Specify a compatible ninja implementation to be used by eninja. +# At this point only "ninja" and "samu" are supported. +# The default is set to "ninja". +: ${NINJA:=ninja} + # @ECLASS_VARIABLE: NINJAOPTS # @DEFAULT_UNSET # @DESCRIPTION: @@ -35,6 +44,19 @@ _NINJA_UTILS_ECLASS=1 inherit multiprocessing +case "${NINJA}" in + ninja) + NINJA_DEPEND=">=dev-util/ninja-1.8.2" + ;; + samu) + NINJA_DEPEND="dev-util/samurai" + ;; + *) + eerror "Unknown value for \${NINJA}" + die "Value ${NINJA} is not supported" + ;; +esac + # @FUNCTION: eninja # @USAGE: [...] # @DESCRIPTION: @@ -48,7 +70,7 @@ eninja() { if [[ -z ${NINJAOPTS+set} ]]; then NINJAOPTS="-j$(makeopts_jobs "${MAKEOPTS}" 999) -l$(makeopts_loadavg "${MAKEOPTS}" 0)" fi - set -- ninja -v ${NINJAOPTS} "$@" + set -- "${NINJA}" -v ${NINJAOPTS} "$@" echo "$@" >&2 "$@" || die "${nonfatal_args[@]}" "${*} failed" } -- 2.35.1
[gentoo-dev] [PATCH 2/5] meson.eclass: Support dev-util/samurai
From: orbea samurai is a ninja-compatible build tool written in C which works with cmake, meson and other users of ninja. It is feature-complete and supports most of the same options as ninja. Signed-off-by: orbea Signed-off-by: Sam James --- eclass/meson.eclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eclass/meson.eclass b/eclass/meson.eclass index f2f7173f5a9a..57f5be610340 100644 --- a/eclass/meson.eclass +++ b/eclass/meson.eclass @@ -48,7 +48,7 @@ inherit multiprocessing ninja-utils python-utils-r1 toolchain-funcs EXPORT_FUNCTIONS src_configure src_compile src_test src_install _MESON_DEPEND=">=dev-util/meson-0.59.4 - >=dev-util/ninja-1.8.2 + ${NINJA_DEPEND} dev-util/meson-format-array " -- 2.35.1
[gentoo-dev] [PATCH 3/5] cmake.eclass: Support dev-util/samurai
From: orbea samurai is a ninja-compatible build tool written in C which works with cmake, meson and other users of ninja. It is feature-complete and supports most of the same options as ninja. Signed-off-by: orbea Signed-off-by: Sam James --- eclass/cmake.eclass | 13 + 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 59e5b60957c2..7ad0f6a7d45e 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -136,7 +136,7 @@ case ${CMAKE_MAKEFILE_GENERATOR} in BDEPEND="sys-devel/make" ;; ninja) - BDEPEND="dev-util/ninja" + BDEPEND="${NINJA_DEPEND}" ;; *) eerror "Unknown value for \${CMAKE_MAKEFILE_GENERATOR}" @@ -365,7 +365,7 @@ cmake_src_prepare() { # if ninja is enabled but not installed, the build could fail # this could happen if ninja is manually enabled (eg. make.conf) but not installed - if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]] && ! has_version -b dev-util/ninja; then + if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]] && ! has_version -b "${NINJA_DEPEND}"; then eerror "CMAKE_MAKEFILE_GENERATOR is set to ninja, but ninja is not installed." die "Please install dev-util/ninja or unset CMAKE_MAKEFILE_GENERATOR." fi @@ -703,12 +703,17 @@ cmake_src_test() { # @DESCRIPTION: # Function for installing the package. Automatically detects the build type. cmake_src_install() { + local generator=${CMAKE_MAKEFILE_GENERATOR} + case ${CMAKE_MAKEFILE_GENERATOR} in + ninja) generator="eninja" ;; + esac + debug-print-function ${FUNCNAME} "$@" _cmake_check_build_dir pushd "${BUILD_DIR}" > /dev/null || die - DESTDIR="${D}" ${CMAKE_MAKEFILE_GENERATOR} install "$@" || - die "died running ${CMAKE_MAKEFILE_GENERATOR} install" + DESTDIR="${D}" ${generator} install "$@" || + die "died running ${generator} install" popd > /dev/null || die if [[ ${EAPI} == 7 ]]; then -- 2.35.1
[gentoo-dev] [PATCH 4/5] sys-devel/llvm: Don't hardcode ninja
From: orbea Signed-off-by: orbea Signed-off-by: Sam James --- sys-devel/llvm/llvm-12.0.1.ebuild | 2 +- sys-devel/llvm/llvm-13.0.1.ebuild | 2 +- sys-devel/llvm/llvm-14.0.1.ebuild | 2 +- sys-devel/llvm/llvm-14.0.3.ebuild | 2 +- sys-devel/llvm/llvm-15.0.0..ebuild | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sys-devel/llvm/llvm-12.0.1.ebuild b/sys-devel/llvm/llvm-12.0.1.ebuild index 673ce8591884..0531bd0a71e6 100644 --- a/sys-devel/llvm/llvm-12.0.1.ebuild +++ b/sys-devel/llvm/llvm-12.0.1.ebuild @@ -141,7 +141,7 @@ check_distribution_components() { all_targets+=( "${l}" ) fi - done < <(ninja -t targets all) + done < <(${NINJA} -t targets all) while read -r l; do my_targets+=( "${l}" ) diff --git a/sys-devel/llvm/llvm-13.0.1.ebuild b/sys-devel/llvm/llvm-13.0.1.ebuild index a11941642024..6e9ee756d197 100644 --- a/sys-devel/llvm/llvm-13.0.1.ebuild +++ b/sys-devel/llvm/llvm-13.0.1.ebuild @@ -131,7 +131,7 @@ check_distribution_components() { all_targets+=( "${l}" ) fi - done < <(ninja -t targets all) + done < <(${NINJA} -t targets all) while read -r l; do my_targets+=( "${l}" ) diff --git a/sys-devel/llvm/llvm-14.0.1.ebuild b/sys-devel/llvm/llvm-14.0.1.ebuild index 0da9cd7b6b75..7c92fa427d5f 100644 --- a/sys-devel/llvm/llvm-14.0.1.ebuild +++ b/sys-devel/llvm/llvm-14.0.1.ebuild @@ -131,7 +131,7 @@ check_distribution_components() { all_targets+=( "${l}" ) fi - done < <(ninja -t targets all) + done < <(${NINJA} -t targets all) while read -r l; do my_targets+=( "${l}" ) diff --git a/sys-devel/llvm/llvm-14.0.3.ebuild b/sys-devel/llvm/llvm-14.0.3.ebuild index 360436b21ec4..4eeb2c8aa39f 100644 --- a/sys-devel/llvm/llvm-14.0.3.ebuild +++ b/sys-devel/llvm/llvm-14.0.3.ebuild @@ -139,7 +139,7 @@ check_distribution_components() { all_targets+=( "${l}" ) fi - done < <(ninja -t targets all) + done < <(${NINJA} -t targets all) while read -r l; do my_targets+=( "${l}" ) diff --git a/sys-devel/llvm/llvm-15.0.0..ebuild b/sys-devel/llvm/llvm-15.0.0..ebuild index 8d3abaa4540a..cef250bd6908 100644 --- a/sys-devel/llvm/llvm-15.0.0..ebuild +++ b/sys-devel/llvm/llvm-15.0.0..ebuild @@ -139,7 +139,7 @@ check_distribution_components() { all_targets+=( "${l}" ) fi - done < <(ninja -t targets all) + done < <(${NINJA} -t targets all) while read -r l; do my_targets+=( "${l}" ) -- 2.35.1
[gentoo-dev] [PATCH 5/5] sys-devel/clang: Don't hardcode ninja
From: orbea Signed-off-by: orbea Closes: https://github.com/gentoo/gentoo/pull/25272 Signed-off-by: Sam James --- sys-devel/clang/clang-12.0.1.ebuild | 2 +- sys-devel/clang/clang-13.0.1.ebuild | 2 +- sys-devel/clang/clang-14.0.1-r1.ebuild | 2 +- sys-devel/clang/clang-14.0.3.ebuild | 2 +- sys-devel/clang/clang-15.0.0..ebuild | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sys-devel/clang/clang-12.0.1.ebuild b/sys-devel/clang/clang-12.0.1.ebuild index e4b38d294772..45e134c179c8 100644 --- a/sys-devel/clang/clang-12.0.1.ebuild +++ b/sys-devel/clang/clang-12.0.1.ebuild @@ -130,7 +130,7 @@ check_distribution_components() { all_targets+=( "${l}" ) fi - done < <(ninja -t targets all) + done < <(${NINJA} -t targets all) while read -r l; do my_targets+=( "${l}" ) diff --git a/sys-devel/clang/clang-13.0.1.ebuild b/sys-devel/clang/clang-13.0.1.ebuild index 6f7c66ee8f02..0f9d5f0a2277 100644 --- a/sys-devel/clang/clang-13.0.1.ebuild +++ b/sys-devel/clang/clang-13.0.1.ebuild @@ -118,7 +118,7 @@ check_distribution_components() { all_targets+=( "${l}" ) fi - done < <(ninja -t targets all) + done < <(${NINJA} -t targets all) while read -r l; do my_targets+=( "${l}" ) diff --git a/sys-devel/clang/clang-14.0.1-r1.ebuild b/sys-devel/clang/clang-14.0.1-r1.ebuild index 01be8123474b..a29dc287ac44 100644 --- a/sys-devel/clang/clang-14.0.1-r1.ebuild +++ b/sys-devel/clang/clang-14.0.1-r1.ebuild @@ -120,7 +120,7 @@ check_distribution_components() { all_targets+=( "${l}" ) fi - done < <(ninja -t targets all) + done < <(${NINJA} -t targets all) while read -r l; do my_targets+=( "${l}" ) diff --git a/sys-devel/clang/clang-14.0.3.ebuild b/sys-devel/clang/clang-14.0.3.ebuild index 19d50597423e..8e4b5aa19f57 100644 --- a/sys-devel/clang/clang-14.0.3.ebuild +++ b/sys-devel/clang/clang-14.0.3.ebuild @@ -127,7 +127,7 @@ check_distribution_components() { all_targets+=( "${l}" ) fi - done < <(ninja -t targets all) + done < <(${NINJA} -t targets all) while read -r l; do my_targets+=( "${l}" ) diff --git a/sys-devel/clang/clang-15.0.0..ebuild b/sys-devel/clang/clang-15.0.0..ebuild index eed1670c87ea..4015eac2ba1c 100644 --- a/sys-devel/clang/clang-15.0.0..ebuild +++ b/sys-devel/clang/clang-15.0.0..ebuild @@ -127,7 +127,7 @@ check_distribution_components() { all_targets+=( "${l}" ) fi - done < <(ninja -t targets all) + done < <(${NINJA} -t targets all) while read -r l; do my_targets+=( "${l}" ) -- 2.35.1
Re: [gentoo-dev] [PATCH 0/6] python-utils-r1.eclass: Python 3.11 support
> On 8 May 2022, at 19:26, Michał Górny wrote: > > Hi, > > Here's a patchset to enable Python 3.11 support in the eclasses. > Along with the usual mechanical changes, I have refactored the tests > to avoid repetition and cover verifying that all the mechanical changes > were done. > LGTM. As discussed on the PR (https://github.com/gentoo/gentoo/pull/25383), we want the Python guide to be updated too, but you're already covering that. > -- > Best regards, > Michał Górny > > Michał Górny (6): > python-utils-r1.eclass: Add support for python3.11 > eclass/tests/python-utils-r1.sh: Streamline the tests > eclass/tests/python-utils-r1.eclass: Add tests for adding new impls > profiles: Add flags for python3.11 > dev-lang/python-exec: Enable python3.11 support > dev-lang/python: Add python-exec dep to 3.11.0_beta1 > > dev-lang/python-exec/python-exec-2.4.8.ebuild | 2 +- > ...1.ebuild => python-3.11.0_beta1-r1.ebuild} | 3 +- > eclass/python-utils-r1.eclass | 10 +- > eclass/tests/python-utils-r1.sh | 133 +- > profiles/base/package.use.force | 1 + > profiles/base/use.stable.mask | 7 +- > profiles/desc/python_single_target.desc | 1 + > profiles/desc/python_targets.desc | 1 + > 8 files changed, 80 insertions(+), 78 deletions(-) > rename dev-lang/python/{python-3.11.0_beta1.ebuild => > python-3.11.0_beta1-r1.ebuild} (99%) > Best, sam > -- > 2.35.1 > > signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] [PATCH] distutils-r1.eclass: Support DISTUTILS_ARGS in PEP517 mode
> On 8 May 2022, at 19:27, Michał Górny wrote: > > Use gpep517 --config-json support to pass DISTUTILS_ARGS in PEP517 mode. > > Signed-off-by: Michał Górny > --- > eclass/distutils-r1.eclass | 32 +++- > 1 file changed, 27 insertions(+), 5 deletions(-) > > diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass > index 1573d803f3f6..e9a28056e9cc 100644 > --- a/eclass/distutils-r1.eclass > +++ b/eclass/distutils-r1.eclass > @@ -1091,12 +1091,38 @@ distutils_pep517_install() { > local -x WHEEL_BUILD_DIR=${BUILD_DIR}/wheel > mkdir -p "${WHEEL_BUILD_DIR}" || die > > + if [[ -n ${mydistutilsargs[@]} ]]; then > + die "mydistutilsargs are banned in PEP517 mode (use > DISTUTILS_ARGS)" > + fi > + > + local config_settings= > + if [[ -n ${DISTUTILS_ARGS[@]} ]]; then > + case ${DISTUTILS_USE_PEP517} in > + setuptools) > + config_settings=$( > + "${EPYTHON}" - "${DISTUTILS_ARGS[@]}" > <<-EOF || die > + import json > + import sys > + > print(json.dumps({"--global-option": sys.argv[1:]})) > + EOF > + ) > + ;; > + *) > + die "DISTUTILS_ARGS are not supported by > ${DISTUTILS_USE_PEP517}" I'd do DISTUTILS_USE_PEP517=${...}, but I don't feel super strongly about it. ... and also Python guide update. > + ;; > + esac > + fi > + > local build_backend=$(_distutils-r1_get_backend) > einfo " Building the wheel for ${PWD#${WORKDIR}/} via ${build_backend}" > + local config_args=() > + [[ -n ${config_settings} ]] && > + config_args+=( --config-json "${config_settings}" ) > local wheel=$( > gpep517 build-wheel --backend "${build_backend}" \ > --output-fd 3 \ > - --wheel-dir "${WHEEL_BUILD_DIR}" 3>&1 >&2 || > + --wheel-dir "${WHEEL_BUILD_DIR}" \ > + "${config_args[@]}" 3>&1 >&2 || > die "Wheel build failed" > ) > [[ -n ${wheel} ]] || die "No wheel name returned" > @@ -1181,10 +1207,6 @@ distutils-r1_python_compile() { > esac > > if [[ ${DISTUTILS_USE_PEP517} ]]; then > - if [[ -n ${DISTUTILS_ARGS[@]} || -n ${mydistutilsargs[@]} ]]; > then > - die "DISTUTILS_ARGS are not supported in PEP-517 mode" > - fi > - > # python likes to compile any module it sees, which triggers > sandbox > # failures if some packages haven't compiled their modules yet. > addpredict "${EPREFIX}/usr/lib/${EPYTHON}" > -- > 2.35.1 > > signature.asc Description: Message signed with OpenPGP
[gentoo-dev] [PATCH v2 1/5] autotools.eclass: egrep -> grep -E
Signed-off-by: Sam James --- eclass/autotools.eclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eclass/autotools.eclass b/eclass/autotools.eclass index b8eeb55fd8f2..d6c5b7f0ec0d 100644 --- a/eclass/autotools.eclass +++ b/eclass/autotools.eclass @@ -283,7 +283,7 @@ _at_uses_pkg() { for macro ; do args+=( -e "^[[:space:]]*${macro}\>" ) done - egrep -q "${args[@]}" configure.?? + grep -E -q "${args[@]}" configure.?? fi } _at_uses_autoheader() { _at_uses_pkg A{C,M}_CONFIG_HEADER{S,}; } -- 2.35.1
[gentoo-dev] [PATCH v2 2/5] epatch.eclass: egrep -> grep -E
Signed-off-by: Sam James --- eclass/epatch.eclass | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eclass/epatch.eclass b/eclass/epatch.eclass index 5d18befe55b9..6a9c460da0a3 100644 --- a/eclass/epatch.eclass +++ b/eclass/epatch.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: epatch.eclass @@ -285,13 +285,13 @@ epatch() { # people could (accidently) patch files in the root filesystem. # Or trigger other unpleasantries #237667. So disallow -p0 on # such patches. - local abs_paths=$(egrep -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }') + local abs_paths=$(grep -E -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }') if [[ -n ${abs_paths} ]] ; then count=1 printf "NOTE: skipping -p0 due to absolute paths in patch:\n%s\n" "${abs_paths}" >> "${STDERR_TARGET}" fi # Similar reason, but with relative paths. - local rel_paths=$(egrep -n '^[-+]{3} [^ ]*[.][.]/' "${PATCH_TARGET}") + local rel_paths=$(grep -E -n '^[-+]{3} [^ ]*[.][.]/' "${PATCH_TARGET}") if [[ -n ${rel_paths} ]] ; then echo eerror "Rejected Patch: ${patchname}!" -- 2.35.1
[gentoo-dev] [PATCH v2 3/5] haskell-cabal.eclass: egrep -> grep -E
Signed-off-by: Sam James --- eclass/haskell-cabal.eclass | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eclass/haskell-cabal.eclass b/eclass/haskell-cabal.eclass index ae3229cc2676..64dcabb852b1 100644 --- a/eclass/haskell-cabal.eclass +++ b/eclass/haskell-cabal.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: haskell-cabal.eclass @@ -288,8 +288,8 @@ cabal-show-brokens() { elog "ghc-pkg check: 'checking for other broken packages:'" # pretty-printer $(ghc-getghcpkg) check 2>&1 \ - | egrep -v '^Warning: haddock-(html|interfaces): ' \ - | egrep -v '^Warning: include-dirs: ' \ + | grep -E -v '^Warning: haddock-(html|interfaces): ' \ + | grep -E -v '^Warning: include-dirs: ' \ | head -n 20 cabal-die-if-nonempty 'broken' \ -- 2.35.1
[gentoo-dev] [PATCH v2 4/5] qmail.eclass: egrep -> grep -E
Signed-off-by: Sam James --- eclass/qmail.eclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eclass/qmail.eclass b/eclass/qmail.eclass index 471f2fe7ce5e..707cc91adfd8 100644 --- a/eclass/qmail.eclass +++ b/eclass/qmail.eclass @@ -452,7 +452,7 @@ qmail_tcprules_config() { line="${ip}${tcpstring}" for proto in smtp qmtp qmqp; do f="${EROOT}${TCPRULES_DIR}/tcp.qmail-${proto}" - egrep -qs "${line}" "${f}" || echo "${line}" >> "${f}" + grep -E -qs "${line}" "${f}" || echo "${line}" >> "${f}" done done } -- 2.35.1
[gentoo-dev] [PATCH v2 5/5] ruby-ng.eclass: fgrep -> grep -F
Signed-off-by: Sam James --- eclass/ruby-ng.eclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eclass/ruby-ng.eclass b/eclass/ruby-ng.eclass index 70cb5be74b87..f0d6c4f6f6c4 100644 --- a/eclass/ruby-ng.eclass +++ b/eclass/ruby-ng.eclass @@ -604,7 +604,7 @@ _each_ruby_check_install() { # that's what changes between two implementations (otherwise you'd get false # positives now that Ruby 1.9.2 installs with the same sitedir as 1.8) ${scancmd} -qnR "${D}${sitelibdir}" "${D}${sitelibdir/site_ruby/gems}" \ - | fgrep -v "${libruby_soname}" \ + | grep -F -v "${libruby_soname}" \ | grep -E -v "${RUBY_QA_ALLOWED_LIBS}" \ > "${T}"/ruby-ng-${_ruby_implementation}-mislink.log -- 2.35.1
[gentoo-dev] Last rites: dev-python/django-taggit-serializer, dev-python/django-rq, dev-python/python-iptables
# Sam James (2022-05-15) # Unmaintained, doesn't support Python 3.10+, no tests. # Removal on 2022-06-15. dev-python/django-taggit-serializer # Sam James (2022-05-15) # Unmaintained, does not support Python 3.10+. Removal on 2022-06-15. dev-python/django-rq # Sam James (2022-05-15) # Masked for removal. No reverse dependencies, no releases in 2 years, # does not support Python 3.10+. Removal on 2022-06-15. dev-python/python-iptables signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] [PATCH] linux-info.eclass: Documentation updates
> On 14 May 2022, at 23:59, Mike Pagano wrote: > > Document functions which did not have any > documentation or was not formatted to gentoo > specifications > > Signed-off-by: Mike Pagano > --- > eclass/linux-info.eclass | 38 ++ > 1 file changed, 34 insertions(+), 4 deletions(-) > [snip] Just wanted to say thanks for putting the work in on eclassdocs and the other bits you've been doing with the eclasses recently. Cheers! signature.asc Description: Message signed with OpenPGP