diff options
Diffstat (limited to 'eclass')
53 files changed, 421 insertions, 244 deletions
diff --git a/eclass/Manifest.gz b/eclass/Manifest.gz Binary files differindex a5f3da468dc2..fbe371003aac 100644 --- a/eclass/Manifest.gz +++ b/eclass/Manifest.gz diff --git a/eclass/acct-group.eclass b/eclass/acct-group.eclass index 2c2c88cfc7e1..00908dbd8982 100644 --- a/eclass/acct-group.eclass +++ b/eclass/acct-group.eclass @@ -78,7 +78,7 @@ ACCT_GROUP_NAME=${PN} # << Boilerplate ebuild variables >> : "${DESCRIPTION:="System group: ${ACCT_GROUP_NAME}"}" : "${SLOT:=0}" -: "${KEYWORDS:=~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris}" +: "${KEYWORDS:=~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris}" S=${WORKDIR} diff --git a/eclass/acct-user.eclass b/eclass/acct-user.eclass index 9eab1f4c4ae6..19c5239eaede 100644 --- a/eclass/acct-user.eclass +++ b/eclass/acct-user.eclass @@ -144,7 +144,7 @@ ACCT_USER_NAME=${PN} # << Boilerplate ebuild variables >> : "${DESCRIPTION:="System user: ${ACCT_USER_NAME}"}" : "${SLOT:=0}" -: "${KEYWORDS:=~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris}" +: "${KEYWORDS:=~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris}" S=${WORKDIR} diff --git a/eclass/apache-module.eclass b/eclass/apache-module.eclass index 5a84ffedf71a..07bdb79e08a2 100644 --- a/eclass/apache-module.eclass +++ b/eclass/apache-module.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: apache-module.eclass @@ -44,14 +44,19 @@ # </IfDefine> # @CODE -case ${EAPI} in - 6|7|8) ;; - *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; -esac if [[ -z ${_APACHE_MODULE_ECLASS} ]]; then _APACHE_MODULE_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 + inherit depend.apache # ============================================================================== diff --git a/eclass/autotools.eclass b/eclass/autotools.eclass index 3c9e89bda90e..0571b18ba525 100644 --- a/eclass/autotools.eclass +++ b/eclass/autotools.eclass @@ -13,11 +13,6 @@ # Note: We require GNU m4, as does autoconf. So feel free to use any features # from the GNU version of m4 without worrying about other variants (i.e. BSD). -case ${EAPI} in - 6|7|8) ;; - *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; -esac - if [[ ${_AUTOTOOLS_AUTO_DEPEND+set} == "set" ]] ; then # See if we were included already, but someone changed the value # of AUTOTOOLS_AUTO_DEPEND on us. We could reload the entire @@ -31,6 +26,15 @@ fi if [[ -z ${_AUTOTOOLS_ECLASS} ]] ; then _AUTOTOOLS_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 + [[ ${EAPI} == 6 ]] && inherit eqawarn GNUCONFIG_AUTO_DEPEND=no diff --git a/eclass/bash-completion-r1.eclass b/eclass/bash-completion-r1.eclass index df1a2a54d39a..be506793ae94 100644 --- a/eclass/bash-completion-r1.eclass +++ b/eclass/bash-completion-r1.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: bash-completion-r1.eclass @@ -29,7 +29,11 @@ _BASH_COMPLETION_R1_ECLASS=1 inherit toolchain-funcs 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 diff --git a/eclass/cdrom.eclass b/eclass/cdrom.eclass index 4e56db951196..4f7ba663beba 100644 --- a/eclass/cdrom.eclass +++ b/eclass/cdrom.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: cdrom.eclass @@ -15,14 +15,18 @@ # eclass will require RESTRICT="bindist" but the point still stands. # The functions are generally called in src_unpack. -case ${EAPI:-0} in - 6|7|8) ;; - *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; -esac - if [[ -z ${_CDROM_ECLASS} ]]; then _CDROM_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 + inherit portability # @ECLASS_VARIABLE: CDROM_OPTIONAL diff --git a/eclass/check-reqs.eclass b/eclass/check-reqs.eclass index fac2f4553d74..02ff61187c45 100644 --- a/eclass/check-reqs.eclass +++ b/eclass/check-reqs.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: check-reqs.eclass @@ -38,14 +38,18 @@ # These checks should probably mostly work on non-Linux, and they should # probably degrade gracefully if they don't. Probably. +if [[ -z ${_CHECK_REQS_ECLASS} ]]; then +_CHECK_REQS_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 ${_CHECK_REQS_ECLASS} ]]; then -_CHECK_REQS_ECLASS=1 - # @ECLASS_VARIABLE: CHECKREQS_MEMORY # @DEFAULT_UNSET # @DESCRIPTION: diff --git a/eclass/depend.apache.eclass b/eclass/depend.apache.eclass index 8f0469931d2c..60926c298f04 100644 --- a/eclass/depend.apache.eclass +++ b/eclass/depend.apache.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: depend.apache.eclass @@ -40,12 +40,13 @@ # } # @CODE -case ${EAPI:-0} in - 6|7|8) - ;; - *) - die "EAPI=${EAPI} is not supported by depend.apache.eclass" +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 # ============================================================================== diff --git a/eclass/desktop.eclass b/eclass/desktop.eclass index 780971342ba1..144514c8f7c2 100644 --- a/eclass/desktop.eclass +++ b/eclass/desktop.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: desktop.eclass @@ -8,7 +8,11 @@ # @BLURB: support for desktop files, menus, and icons 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 diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index 0f9dc8d14d5e..5a6ebdcede8a 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -1253,7 +1253,9 @@ distutils_pep517_install() { fi local cmd=() config_settings= - has cargo ${INHERITED} && cmd+=( cargo_env ) + if has cargo ${INHERITED} && [[ ${_CARGO_GEN_CONFIG_HAS_RUN} ]]; then + cmd+=( cargo_env ) + fi case ${DISTUTILS_USE_PEP517} in maturin) @@ -2109,8 +2111,10 @@ _distutils-r1_post_python_install() { local strays=() local p mapfile -d $'\0' -t strays < <( + # jar for jpype, https://bugs.gentoo.org/937642 find "${sitedir}" -maxdepth 1 -type f '!' '(' \ -name '*.egg-info' -o \ + -name '*.jar' -o \ -name '*.pth' -o \ -name '*.py' -o \ -name '*.pyi' -o \ diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass index c6b1ad80e12e..02cd2dcfc592 100644 --- a/eclass/flag-o-matic.eclass +++ b/eclass/flag-o-matic.eclass @@ -10,14 +10,18 @@ # This eclass contains a suite of functions to help developers sanely # and safely manage toolchain flags in their builds. +if [[ -z ${_FLAG_O_MATIC_ECLASS} ]]; then +_FLAG_O_MATIC_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 ${_FLAG_O_MATIC_ECLASS} ]]; then -_FLAG_O_MATIC_ECLASS=1 - inherit toolchain-funcs [[ ${EAPI} == 6 ]] && inherit eqawarn diff --git a/eclass/fortran-2.eclass b/eclass/fortran-2.eclass index 855dcba59a39..5e2ce1fc68e4 100644 --- a/eclass/fortran-2.eclass +++ b/eclass/fortran-2.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: fortran-2.eclass @@ -26,14 +26,18 @@ # # FORTRAN_NEED_OPENMP=1 +if [[ -z ${_FORTRAN_2_ECLASS} ]]; then +_FORTRAN_2_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 ${_FORTRAN_2_ECLASS} ]]; then -_FORTRAN_2_ECLASS=1 - inherit toolchain-funcs # @ECLASS_VARIABLE: FORTRAN_NEED_OPENMP diff --git a/eclass/gnuconfig.eclass b/eclass/gnuconfig.eclass index fb73087aeacf..afcb8feee04e 100644 --- a/eclass/gnuconfig.eclass +++ b/eclass/gnuconfig.eclass @@ -16,14 +16,18 @@ # other files that come with automake, e.g. depcomp, mkinstalldirs, etc. # -case ${EAPI:-0} in - 6|7|8) ;; - *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; -esac - if [[ -z ${_GNUCONFIG_ECLASS} ]] ; then _GNUCONFIG_CLASS=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 + # @ECLASS_VARIABLE: GNUCONFIG_DEPEND # @OUTPUT_VARIABLE # @DESCRIPTION: diff --git a/eclass/java-pkg-2.eclass b/eclass/java-pkg-2.eclass index df024bbadf51..6da4efd222c2 100644 --- a/eclass/java-pkg-2.eclass +++ b/eclass/java-pkg-2.eclass @@ -13,14 +13,18 @@ # This eclass should be inherited for pure Java packages, or by packages which # need to use Java. +if [[ -z ${_JAVA_PKG_2_ECLASS} ]] ; then +_JAVA_PKG_2_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 ${_JAVA_PKG_2_ECLASS} ]] ; then -_JAVA_PKG_2_ECLASS=1 - inherit java-utils-2 # @ECLASS_VARIABLE: JAVA_PKG_IUSE diff --git a/eclass/java-utils-2.eclass b/eclass/java-utils-2.eclass index 647f25e2c987..43d9b749ba3d 100644 --- a/eclass/java-utils-2.eclass +++ b/eclass/java-utils-2.eclass @@ -17,14 +17,18 @@ # that have optional Java support. In addition you can inherit java-ant-2 for # Ant-based packages. +if [[ -z ${_JAVA_UTILS_2_ECLASS} ]] ; then +_JAVA_UTILS_2_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 ${_JAVA_UTILS_2_ECLASS} ]] ; then -_JAVA_UTILS_2_ECLASS=1 - # EAPI 7 has version functions built-in. Use eapi7-ver for all earlier EAPIs. # Keep versionator inheritance in case consumers are using it implicitly. [[ ${EAPI} == 6 ]] && inherit eapi7-ver eqawarn multilib versionator @@ -2250,29 +2254,6 @@ java-pkg_force-compiler() { JAVA_PKG_FORCE_COMPILER="$@" } -# @FUNCTION: use_doc -# @DESCRIPTION: -# -# Helper function for getting ant to build javadocs. If the user has USE=doc, -# then 'javadoc' or the argument are returned. Otherwise, there is no return. -# -# The output of this should be passed to ant. -# @CODE -# Parameters: -# $@ - Option value to return. Defaults to 'javadoc' -# -# Examples: -# build javadocs by calling 'javadoc' target -# eant $(use_doc) -# -# build javadocs by calling 'apidoc' target -# eant $(use_doc apidoc) -# @CODE -# @RETURN string - Name of the target to create javadocs -use_doc() { - use doc && echo ${@:-javadoc} -} - # @FUNCTION: java-pkg_init # @INTERNAL diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass index 930640188c26..dc337c7862fd 100644 --- a/eclass/kernel-install.eclass +++ b/eclass/kernel-install.eclass @@ -650,7 +650,7 @@ kernel-install_extract_from_uki() { local uki=${2} local out=${3} - $(tc-getOBJCOPY) -O binary "-j.${extract_type}" "${uki}" "${out}" || + $(tc-getOBJCOPY) "${uki}" --dump-section ".${extract_type}=${out}" || die "Failed to extract ${extract_type}" chmod 644 "${out}" || die } diff --git a/eclass/libtool.eclass b/eclass/libtool.eclass index bd6141e1ede9..b36b1fd365d3 100644 --- a/eclass/libtool.eclass +++ b/eclass/libtool.eclass @@ -18,6 +18,15 @@ if [[ -z ${_LIBTOOL_ECLASS} ]]; then _LIBTOOL_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 + +case ${EAPI} in 6) DEPEND=">=app-portage/elt-patches-20240116" ;; 7|8) BDEPEND=">=app-portage/elt-patches-20240116" ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass index da943081b9bf..7f7edd6fb652 100644 --- a/eclass/llvm.org.eclass +++ b/eclass/llvm.org.eclass @@ -72,20 +72,14 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then _LLVM_SOURCE_TYPE=snapshot case ${PV} in - 20.0.0_pre20240830) - EGIT_COMMIT=5500e21942f7047344b6fee62d3e08c0ba2f9182 - ;; - 20.0.0_pre20240822) - EGIT_COMMIT=503907dc505db1e439e7061113bf84dd105f2e35 + 20.0.0_pre20240917) + EGIT_COMMIT=41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f ;; - 20.0.0_pre20240815) - EGIT_COMMIT=db8ef6188cbbe2125e6d60bdef77a535105772df + 20.0.0_pre20240910) + EGIT_COMMIT=bece0d7517bd0a036dc8a319514e4a8a5c497dee ;; - 20.0.0_pre20240808) - EGIT_COMMIT=fd7d7882e7fa5a38d4bfde426120d4663718beb4 - ;; - 20.0.0_pre20240801) - EGIT_COMMIT=130c135689ec12ab78c53645808524a8d28f7cae + 20.0.0_pre20240830) + EGIT_COMMIT=5500e21942f7047344b6fee62d3e08c0ba2f9182 ;; *) die "Unknown snapshot: ${PV}" diff --git a/eclass/mono-env.eclass b/eclass/mono-env.eclass index 48712587ff3e..02bd7e8dd9be 100644 --- a/eclass/mono-env.eclass +++ b/eclass/mono-env.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: mono-env.eclass @@ -9,14 +9,18 @@ # @DESCRIPTION: # Set environment variables commonly used by dotnet packages. +if [[ -z ${_MONO_ENV_ECLASS} ]] ; then +_MONO_ENV_ECLASS=1 + case ${EAPI} in - 6|7) ;; + 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 ${_MONO_ENV_ECLASS} ]] ; then -_MONO_ENV_ECLASS=1 - SRC_URI="http://download.mono-project.com/sources/${PN}/${P}.tar.bz2" mono-env_pkg_setup() { diff --git a/eclass/mozcoreconf-v6.eclass b/eclass/mozcoreconf-v6.eclass index 71dbc6802d71..e7cf85fca24a 100644 --- a/eclass/mozcoreconf-v6.eclass +++ b/eclass/mozcoreconf-v6.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: mozcoreconf-v6.eclass @@ -157,7 +157,7 @@ mozconfig_init() { mozconfig_annotate "less than -O2 causes a segfault on x86" --enable-optimize=-O2 elif [[ ${ARCH} == arm ]] && [[ $(gcc-major-version) -ge 6 ]]; then mozconfig_annotate "less than -O2 causes a breakage on arm with gcc-6" --enable-optimize=-O2 - elif use custom-optimization || [[ ${ARCH} =~ (alpha|ia64) ]]; then + elif use custom-optimization || [[ ${ARCH} == alpha ]]; then # Set optimization level based on CFLAGS if is-flag -O0; then mozconfig_annotate "from CFLAGS" --enable-optimize=-O0 @@ -204,10 +204,6 @@ mozconfig_init() { # operation append-flags -fPIC -mieee ;; - ia64) - # Historically we have needed to add this manually for 64-bit - append-flags -fPIC - ;; esac # We need to append flags for gcc-6 support diff --git a/eclass/multibuild.eclass b/eclass/multibuild.eclass index f15d3327c7dd..0677ea346e4c 100644 --- a/eclass/multibuild.eclass +++ b/eclass/multibuild.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: multibuild.eclass @@ -13,17 +13,21 @@ # multiple 'variants' of a package (e.g. multilib, Python # implementations). +if [[ ! ${_MULTIBUILD_ECLASS} ]]; then +_MULTIBUILD_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) # backwards compatibility for run_in_build_dir inherit out-of-source-utils ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -if [[ ! ${_MULTIBUILD_ECLASS} ]]; then -_MULTIBUILD_ECLASS=1 - # @ECLASS_VARIABLE: MULTIBUILD_VARIANTS # @REQUIRED # @DESCRIPTION: diff --git a/eclass/multilib-build.eclass b/eclass/multilib-build.eclass index 1774ad057430..22c4a8bb3048 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 diff --git a/eclass/multilib-minimal.eclass b/eclass/multilib-minimal.eclass index 92968b6cf213..c84fb3781a97 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} "$@" diff --git a/eclass/multilib.eclass b/eclass/multilib.eclass index bf9c88f7e6a4..eca8c02d8336 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: diff --git a/eclass/multiprocessing.eclass b/eclass/multiprocessing.eclass index 13d6a92f2f2e..f9627de26c3b 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: diff --git a/eclass/out-of-source-utils.eclass b/eclass/out-of-source-utils.eclass index d68b21088995..55a88127ca71 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: <argv>... # @DESCRIPTION: diff --git a/eclass/pax-utils.eclass b/eclass/pax-utils.eclass index 3830f03df341..a7144278fd9a 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: diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass index 142fdeb8cfbd..d2b6cfb85f73 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 diff --git a/eclass/php-pear-r2.eclass b/eclass/php-pear-r2.eclass index 9882c7dcc700..567aa9a8144f 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" diff --git a/eclass/portability.eclass b/eclass/portability.eclass index 78da440e22dd..926ac8b8b825 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: <orig1> [orig2 orig3 ....] <dest> # @DESCRIPTION: diff --git a/eclass/prefix.eclass b/eclass/prefix.eclass index 8d50d0ba7b6e..e968e8ae8bac 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 diff --git a/eclass/preserve-libs.eclass b/eclass/preserve-libs.eclass index 35c65ef4436f..38571447b945 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: <libs to preserve> [more libs] # @DESCRIPTION: diff --git a/eclass/readme.gentoo-r1.eclass b/eclass/readme.gentoo-r1.eclass index 48023d9c049f..3d2d8244687c 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 diff --git a/eclass/rocm.eclass b/eclass/rocm.eclass index 7039455dec6b..cf501d5a8861 100644 --- a/eclass/rocm.eclass +++ b/eclass/rocm.eclass @@ -15,9 +15,13 @@ # edit USE flag to control which GPU architecture to compile. Using # ${ROCM_USEDEP} can ensure coherence among dependencies. Ebuilds can call the # function get_amdgpu_flag to translate activated target to GPU compile flags, -# passing it to configuration. Function check_amdgpu can help ebuild ensure +# passing it to configuration. Function rocm_use_hipcc switches active compiler +# to hipcc and cleans incompatible flags (useful for users with gcc-only flags +# in /etc/portage/make.conf). Function check_amdgpu can help ebuild ensure # read and write permissions to GPU device in src_test phase, throwing friendly -# error message if unavailable. +# error message if unavailable. However src_configure in general should not +# access any AMDGPU devices. If it does, it usually means that CMakeLists.txt +# ignores AMDGPU_TARGETS in favor of autodetected GPU, which is not desired. # # @EXAMPLE: # Example ebuild for ROCm library in https://github.com/ROCmSoftwarePlatform @@ -39,14 +43,12 @@ # " # # src_configure() { -# # avoid sandbox violation -# addpredict /dev/kfd -# addpredict /dev/dri/ +# rocm_use_hipcc # local mycmakeargs=( # -DAMDGPU_TARGETS="$(get_amdgpu_flags)" # -DBUILD_CLIENTS_TESTS=$(usex test ON OFF) # ) -# CXX=hipcc cmake_src_configure +# cmake_src_configure # } # # src_test() { @@ -90,6 +92,8 @@ esac if [[ ! ${_ROCM_ECLASS} ]]; then _ROCM_ECLASS=1 +inherit flag-o-matic + # @ECLASS_VARIABLE: ROCM_VERSION # @REQUIRED # @PRE_INHERIT @@ -231,3 +235,27 @@ check_amdgpu() { } fi + +# @FUNCTION: rocm_use_hipcc +# @USAGE: rocm_use_hipcc +# @DESCRIPTION: +# switch active C and C++ compilers to hipcc, clean unsupported flags and setup ROCM_TARGET_LST file. +rocm_use_hipcc() { + # During the configuration stage, CMake tests whether the compiler is able to compile a simple program. + # Since CMake checker does not specify --offload-arch=, hipcc enumerates devices using four methods + # until it finds at least one device. Last way is by accessing them (via rocminfo). + # To prevent potential sandbox violations, we set the ROCM_TARGET_LST variable (which is checked first). + local target_lst="${T}"/gentoo_rocm_target.lst + if [[ "${AMDGPU_TARGETS[@]}" = "" ]]; then + # Expected no GPU code; still need to calm down sandbox + echo "gfx000" > "${target_lst}" || die + else + printf "%s\n" ${AMDGPU_TARGETS[@]} > "${target_lst}" || die + fi + export ROCM_TARGET_LST="${target_lst}" + + # Export updated CC and CXX. Note that CC is needed even if no C code used, + # as CMake checks that C compiler can compile a simple test program. + export CC=hipcc CXX=hipcc + strip-unsupported-flags +} diff --git a/eclass/ruby-fakegem.eclass b/eclass/ruby-fakegem.eclass index 40ff76ce900e..04099a82ef4f 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 diff --git a/eclass/ruby-ng.eclass b/eclass/ruby-ng.eclass index d80ae96dd40b..2ef6d2247435 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 diff --git a/eclass/ruby-utils.eclass b/eclass/ruby-utils.eclass index 789f57ce25f6..48a25114b396 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: diff --git a/eclass/strip-linguas.eclass b/eclass/strip-linguas.eclass index 718341b4a626..b31f414c87c3 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: [<allow LINGUAS>|<-i|-u> <directories of .po files>] # @DESCRIPTION: # Make sure that LINGUAS only contains languages that a package can diff --git a/eclass/systemd.eclass b/eclass/systemd.eclass index 03d6a82fd310..a5f0decde1e3 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 diff --git a/eclass/tmpfiles.eclass b/eclass/tmpfiles.eclass index 39650401a6a0..63889a275fef 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 diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass index 5e36fa275dcd..66819996ea33 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 <VAR [search vars]> <default> [tuple] diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index ac236f3127f9..c03312be43ad 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -353,6 +353,7 @@ fi BDEPEND=" app-alternatives/yacc + sys-devel/binutils:* >=sys-devel/flex-2.5.4 nls? ( sys-devel/gettext ) test? ( diff --git a/eclass/udev.eclass b/eclass/udev.eclass index ac94f98221aa..7fd99cbba8b0 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 diff --git a/eclass/vcs-clean.eclass b/eclass/vcs-clean.eclass index e4c61ac7164a..719bdec17676 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: diff --git a/eclass/vim-doc.eclass b/eclass/vim-doc.eclass index 119ce793071d..f20f7397cf65 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: diff --git a/eclass/vim-plugin.eclass b/eclass/vim-plugin.eclass index ee4f1b6e0f81..b2ae0cb9e4c3 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 diff --git a/eclass/vim-spell.eclass b/eclass/vim-spell.eclass index 607771ae8035..57bcb0dc8021 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" diff --git a/eclass/virtualx.eclass b/eclass/virtualx.eclass index f7318eafc59e..07d303899582 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: diff --git a/eclass/webapp.eclass b/eclass/webapp.eclass index 5b091c84851f..e8bc127e1b96 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 diff --git a/eclass/wrapper.eclass b/eclass/wrapper.eclass index 8d3d273d81c6..a62bb51d0fe7 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: <wrapper> <target> [chdir] [libpaths] [installpath] # @DESCRIPTION: # Create a shell wrapper script named wrapper in installpath diff --git a/eclass/xdg-utils.eclass b/eclass/xdg-utils.eclass index 34535a129e33..84f88eee18fc 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 diff --git a/eclass/xdg.eclass b/eclass/xdg.eclass index 14c56047af45..6af4b91875fc 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 |