summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-09-03 20:56:28 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-09-03 20:56:28 +0100
commitfbda87924e6faa7a1919f1a2b4182490bde5ec5c (patch)
treef3114a4ed212a754756adce027aeef3a4a1a2e2a /eclass
parent3b08f674e3f771b49370edb144dab0958c8cf721 (diff)
gentoo resync : 03.09.2021
Diffstat (limited to 'eclass')
-rw-r--r--eclass/Manifest.gzbin35975 -> 35991 bytes
-rw-r--r--eclass/ant-tasks.eclass1
-rw-r--r--eclass/apache-module.eclass4
-rw-r--r--eclass/cmake-multilib.eclass28
-rw-r--r--eclass/cmake-utils.eclass1
-rw-r--r--eclass/cmake.eclass134
-rw-r--r--eclass/common-lisp-3.eclass4
-rw-r--r--eclass/distutils-r1.eclass1
-rw-r--r--eclass/ecm.eclass49
-rw-r--r--eclass/elisp.eclass1
-rw-r--r--eclass/emboss-r2.eclass4
-rw-r--r--eclass/gnome2-utils.eclass1
-rw-r--r--eclass/gnome2.eclass1
-rw-r--r--eclass/gnustep-2.eclass1
-rw-r--r--eclass/gnustep-base.eclass4
-rw-r--r--eclass/go-module.eclass21
-rw-r--r--eclass/golang-build.eclass1
-rw-r--r--eclass/golang-vcs-snapshot.eclass1
-rw-r--r--eclass/golang-vcs.eclass1
-rw-r--r--eclass/gstreamer-meson.eclass1
-rw-r--r--eclass/gstreamer.eclass1
-rw-r--r--eclass/java-ant-2.eclass1
-rw-r--r--eclass/java-osgi.eclass1
-rw-r--r--eclass/java-pkg-2.eclass5
-rw-r--r--eclass/java-pkg-opt-2.eclass5
-rw-r--r--eclass/java-pkg-simple.eclass4
-rw-r--r--eclass/java-virtuals-2.eclass4
-rw-r--r--eclass/kde.org.eclass4
-rw-r--r--eclass/kernel-2.eclass14
-rw-r--r--eclass/kernel-build.eclass1
-rw-r--r--eclass/kernel-install.eclass1
-rw-r--r--eclass/linux-info.eclass13
-rw-r--r--eclass/linux-mod.eclass6
-rw-r--r--eclass/lua-single.eclass1
-rw-r--r--eclass/lua.eclass1
-rw-r--r--eclass/mercurial.eclass4
-rw-r--r--eclass/meson-multilib.eclass1
-rw-r--r--eclass/mozlinguas-v2.eclass2
-rw-r--r--eclass/multilib-build.eclass1
-rw-r--r--eclass/multilib-minimal.eclass1
-rw-r--r--eclass/perl-module.eclass1
-rw-r--r--eclass/php-ext-pecl-r3.eclass4
-rw-r--r--eclass/php-ext-source-r3.eclass4
-rw-r--r--eclass/python-any-r1.eclass1
-rw-r--r--eclass/python-r1.eclass1
-rw-r--r--eclass/python-single-r1.eclass1
-rw-r--r--eclass/rpm.eclass4
-rw-r--r--eclass/ruby-fakegem.eclass1
-rw-r--r--eclass/ruby-ng-gnome2.eclass1
-rw-r--r--eclass/ruby-single.eclass1
-rw-r--r--eclass/subversion.eclass21
-rw-r--r--eclass/toolchain-glibc.eclass2
-rw-r--r--eclass/unpacker.eclass59
-rw-r--r--eclass/xdg.eclass1
-rw-r--r--eclass/xorg-3.eclass1
55 files changed, 291 insertions, 142 deletions
diff --git a/eclass/Manifest.gz b/eclass/Manifest.gz
index e75fbd345d06..f4899465e3fc 100644
--- a/eclass/Manifest.gz
+++ b/eclass/Manifest.gz
Binary files differ
diff --git a/eclass/ant-tasks.eclass b/eclass/ant-tasks.eclass
index ea347fd706af..71923261084c 100644
--- a/eclass/ant-tasks.eclass
+++ b/eclass/ant-tasks.eclass
@@ -7,6 +7,7 @@
# @AUTHOR:
# Vlastimil Babka <caster@gentoo.org>
# @SUPPORTED_EAPIS: 6 7
+# @PROVIDES: java-utils-2
# @BLURB: Eclass for building dev-java/ant-* packages
# @DESCRIPTION:
# This eclass provides functionality and default ebuild variables for building
diff --git a/eclass/apache-module.eclass b/eclass/apache-module.eclass
index 2594445c8b4f..60631171ed91 100644
--- a/eclass/apache-module.eclass
+++ b/eclass/apache-module.eclass
@@ -50,8 +50,6 @@ case ${EAPI} in
*) die "EAPI=${EAPI:-0} is not supported" ;;
esac
-EXPORT_FUNCTIONS src_compile src_install pkg_postinst
-
if [[ -z ${_APACHE_MODULE_ECLASS} ]]; then
_APACHE_MODULE_ECLASS=1
@@ -247,3 +245,5 @@ apache-module_pkg_postinst() {
}
fi
+
+EXPORT_FUNCTIONS src_compile src_install pkg_postinst
diff --git a/eclass/cmake-multilib.eclass b/eclass/cmake-multilib.eclass
index 6b38d2606551..b40157dc3fd4 100644
--- a/eclass/cmake-multilib.eclass
+++ b/eclass/cmake-multilib.eclass
@@ -6,7 +6,8 @@
# Michał Górny <mgorny@gentoo.org>
# @AUTHOR:
# Author: Michał Górny <mgorny@gentoo.org>
-# @SUPPORTED_EAPIS: 7
+# @SUPPORTED_EAPIS: 7 8
+# @PROVIDES: cmake cmake-utils multilib-minimal
# @BLURB: cmake wrapper for multilib builds
# @DESCRIPTION:
# The cmake-multilib.eclass provides a glue between cmake.eclass(5)
@@ -19,21 +20,23 @@
# in multilib-minimal, yet they ought to call appropriate cmake
# phase rather than 'default'.
+[[ ${EAPI} == 7 ]] && : ${CMAKE_ECLASS:=cmake-utils}
# @ECLASS-VARIABLE: CMAKE_ECLASS
# @PRE_INHERIT
# @DESCRIPTION:
-# Default is "cmake-utils" for compatibility in EAPI-7. Specify "cmake" for
-# ebuilds that ported to cmake.eclass already. Future EAPI is "cmake" only.
-: ${CMAKE_ECLASS:=cmake-utils}
+# Only "cmake" is supported in EAPI-8 and later.
+# In EAPI-7, default is "cmake-utils" for compatibility. Specify "cmake" for
+# ebuilds that ported to cmake.eclass already.
+: ${CMAKE_ECLASS:=cmake}
# @ECLASS-VARIABLE: _CMAKE_ECLASS_IMPL
# @INTERNAL
# @DESCRIPTION:
-# Default is "cmake" for future EAPI. Cleanup once EAPI-7 support is gone.
+# TODO: Cleanup once EAPI-7 support is gone.
_CMAKE_ECLASS_IMPL=cmake
-case ${EAPI:-0} in
- 7)
+case ${EAPI} in
+ 7|8)
case ${CMAKE_ECLASS} in
cmake-utils|cmake) ;;
*)
@@ -43,16 +46,17 @@ case ${EAPI:-0} in
esac
_CMAKE_ECLASS_IMPL=${CMAKE_ECLASS}
;;
- *) die "EAPI=${EAPI} is not supported" ;;
+ *) die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;;
esac
if [[ ${CMAKE_IN_SOURCE_BUILD} ]]; then
die "${ECLASS}: multilib support requires out-of-source builds."
fi
-inherit ${_CMAKE_ECLASS_IMPL} multilib-minimal
+if [[ -z ${_CMAKE_MULTILIB_ECLASS} ]]; then
+_CMAKE_MULTILIB_ECLASS=1
-EXPORT_FUNCTIONS src_configure src_compile src_test src_install
+inherit ${_CMAKE_ECLASS_IMPL} multilib-minimal
cmake-multilib_src_configure() {
local _cmake_args=( "${@}" )
@@ -93,3 +97,7 @@ cmake-multilib_src_install() {
multilib_src_install() {
${_CMAKE_ECLASS_IMPL}_src_install "${_cmake_args[@]}"
}
+
+fi
+
+EXPORT_FUNCTIONS src_configure src_compile src_test src_install
diff --git a/eclass/cmake-utils.eclass b/eclass/cmake-utils.eclass
index 8a4405bef86c..28753faf664b 100644
--- a/eclass/cmake-utils.eclass
+++ b/eclass/cmake-utils.eclass
@@ -10,6 +10,7 @@
# (undisclosed contributors)
# Original author: Zephyrus (zephyrus@mirach.it)
# @SUPPORTED_EAPIS: 5 6 7
+# @PROVIDES: ninja-utils
# @BLURB: common ebuild functions for cmake-based packages
# @DEPRECATED: cmake.eclass
# @DESCRIPTION:
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index 4bd09459ea62..02683634af9f 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -9,7 +9,8 @@
# Maciej Mrozowski <reavertm@gentoo.org>
# (undisclosed contributors)
# Original author: Zephyrus (zephyrus@mirach.it)
-# @SUPPORTED_EAPIS: 7
+# @SUPPORTED_EAPIS: 7 8
+# @PROVIDES: ninja-utils
# @BLURB: common ebuild functions for cmake-based packages
# @DESCRIPTION:
# The cmake eclass makes creating ebuilds for cmake-based packages much easier.
@@ -17,30 +18,44 @@
# out-of-source builds (default), in-source builds and an implementation of the
# well-known use_enable function for CMake.
+case ${EAPI} in
+ 7|8) ;;
+ *) die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;;
+esac
+
if [[ -z ${_CMAKE_ECLASS} ]]; then
_CMAKE_ECLASS=1
+inherit flag-o-matic multiprocessing ninja-utils toolchain-funcs xdg-utils
+
# @ECLASS-VARIABLE: BUILD_DIR
+# @DEFAULT_UNSET
# @DESCRIPTION:
# Build directory where all cmake processed files should be generated.
# For in-source build it's fixed to ${CMAKE_USE_DIR}.
# For out-of-source build it can be overridden, by default it uses
-# ${WORKDIR}/${P}_build.
-: ${BUILD_DIR:=${WORKDIR}/${P}_build}
+# ${CMAKE_USE_DIR}_build (in EAPI-7: ${WORKDIR}/${P}_build).
+[[ ${EAPI} == 7 ]] && : ${BUILD_DIR:=${WORKDIR}/${P}_build}
+# EAPI-8: set inside _cmake_check_build_dir
# @ECLASS-VARIABLE: CMAKE_BINARY
# @DESCRIPTION:
# Eclass can use different cmake binary than the one provided in by system.
: ${CMAKE_BINARY:=cmake}
+[[ ${EAPI} == 7 ]] && : ${CMAKE_BUILD_TYPE:=Gentoo}
# @ECLASS-VARIABLE: CMAKE_BUILD_TYPE
# @DESCRIPTION:
# Set to override default CMAKE_BUILD_TYPE. Only useful for packages
# known to make use of "if (CMAKE_BUILD_TYPE MATCHES xxx)".
# If about to be set - needs to be set before invoking cmake_src_configure.
-# You usually do *NOT* want nor need to set it as it pulls CMake default
-# build-type specific compiler flags overriding make.conf.
-: ${CMAKE_BUILD_TYPE:=Gentoo}
+#
+# The default is RelWithDebInfo as that is least likely to append undesirable
+# flags. However, you may still need to sed CMake files or choose a different
+# build type to achieve desirable results.
+#
+# In EAPI 7, the default was non-standard build type of Gentoo.
+: ${CMAKE_BUILD_TYPE:=RelWithDebInfo}
# @ECLASS-VARIABLE: CMAKE_IN_SOURCE_BUILD
# @DEFAULT_UNSET
@@ -57,17 +72,29 @@ _CMAKE_ECLASS=1
: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
# @ECLASS-VARIABLE: CMAKE_REMOVE_MODULES_LIST
+# @PRE_INHERIT
+# @DEFAULT_UNSET
# @DESCRIPTION:
-# Array of CMake modules that will be removed in $S during src_prepare,
-# in order to force packages to use the system version.
-# Set to "none" to disable removing modules entirely.
-: ${CMAKE_REMOVE_MODULES_LIST:=FindBLAS FindLAPACK}
+# Array of .cmake modules to be removed in ${CMAKE_USE_DIR} (in EAPI-7: ${S})
+# during src_prepare, in order to force packages to use the system version.
+# By default, contains "FindBLAS" and "FindLAPACK".
+# Set to empty to disable removing modules entirely.
+if [[ ${CMAKE_REMOVE_MODULES_LIST} ]]; then
+ if [[ ${EAPI} != 7 ]]; then
+ [[ ${CMAKE_REMOVE_MODULES_LIST@a} == *a* ]] ||
+ die "CMAKE_REMOVE_MODULES_LIST must be an array"
+ fi
+else
+ if ! [[ ${CMAKE_REMOVE_MODULES_LIST@a} == *a* && ${#CMAKE_REMOVE_MODULES_LIST[@]} -eq 0 ]]; then
+ CMAKE_REMOVE_MODULES_LIST=( FindBLAS FindLAPACK )
+ fi
+fi
# @ECLASS-VARIABLE: CMAKE_USE_DIR
# @DESCRIPTION:
# Sets the directory where we are working with cmake, for example when
# application uses autotools and only one plugin needs to be done by cmake.
-# By default it uses ${S}.
+# By default it uses current working directory (in EAPI-7: ${S}).
# @ECLASS-VARIABLE: CMAKE_VERBOSE
# @DESCRIPTION:
@@ -93,22 +120,13 @@ _CMAKE_ECLASS=1
# @USER_VARIABLE
# @DEFAULT_UNSET
# @DESCRIPTION:
-# After running cmake_src_prepare, sets ${S} to read-only. This is
-# a user flag and should under _no circumstances_ be set in the ebuild.
-# Helps in improving QA of build systems that write to source tree.
-
-case ${EAPI} in
- 7) ;;
- *) die "EAPI=${EAPI:-0} is not supported" ;;
-esac
-
-inherit toolchain-funcs ninja-utils flag-o-matic multiprocessing xdg-utils
-
-EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install
+# After running cmake_src_prepare, sets ${CMAKE_USE_DIR} (in EAPI-7: ${S}) to
+# read-only. This is a user flag and should under _no circumstances_ be set in
+# the ebuild. Helps in improving QA of build systems that write to source tree.
[[ ${CMAKE_MIN_VERSION} ]] && die "CMAKE_MIN_VERSION is banned; if necessary, set BDEPEND=\">=dev-util/cmake-${CMAKE_MIN_VERSION}\" directly"
[[ ${CMAKE_BUILD_DIR} ]] && die "The ebuild must be migrated to BUILD_DIR"
-[[ ${CMAKE_REMOVE_MODULES} ]] && die "CMAKE_REMOVE_MODULES is banned, set CMAKE_REMOVE_MODULES_LIST=\"\" instead"
+[[ ${CMAKE_REMOVE_MODULES} ]] && die "CMAKE_REMOVE_MODULES is banned, set CMAKE_REMOVE_MODULES_LIST array instead"
[[ ${CMAKE_UTILS_QA_SRC_DIR_READONLY} ]] && die "Use CMAKE_QA_SRC_DIR_READONLY instead"
[[ ${WANT_CMAKE} ]] && die "WANT_CMAKE has been removed and is a no-op"
[[ ${PREFIX} ]] && die "PREFIX has been removed and is a no-op"
@@ -127,7 +145,7 @@ case ${CMAKE_MAKEFILE_GENERATOR} in
esac
if [[ ${PN} != cmake ]]; then
- BDEPEND+=" dev-util/cmake"
+ BDEPEND+=" >=dev-util/cmake-3.20.5"
fi
# @FUNCTION: cmake_run_in
@@ -264,14 +282,22 @@ cmake-utils_useno() { _cmake_banned_func "" "$@" ; }
# @DESCRIPTION:
# Determine using IN or OUT source build
_cmake_check_build_dir() {
- : ${CMAKE_USE_DIR:=${S}}
+ if [[ ${EAPI} == 7 ]]; then
+ : ${CMAKE_USE_DIR:=${S}}
+ else
+ : ${CMAKE_USE_DIR:=${PWD}}
+ fi
if [[ -n ${CMAKE_IN_SOURCE_BUILD} ]]; then
# we build in source dir
BUILD_DIR="${CMAKE_USE_DIR}"
+ else
+ : ${BUILD_DIR:=${CMAKE_USE_DIR}_build}
fi
+ einfo "Source directory (CMAKE_USE_DIR): \"${CMAKE_USE_DIR}\""
+ einfo "Build directory (BUILD_DIR): \"${BUILD_DIR}\""
+
mkdir -p "${BUILD_DIR}" || die
- einfo "Working in BUILD_DIR: \"$BUILD_DIR\""
}
# @FUNCTION: _cmake_modify-cmakelists
@@ -320,12 +346,14 @@ _cmake_modify-cmakelists() {
cmake_src_prepare() {
debug-print-function ${FUNCNAME} "$@"
- # FIXME: workaround from cmake-utils; use current working directory instead, bug #704524
- # esp. test with 'special' pkgs like: app-arch/brotli, media-gfx/gmic, net-libs/quiche
- pushd "${S}" > /dev/null || die
+ if [[ ${EAPI} == 7 ]]; then
+ pushd "${S}" > /dev/null || die # workaround from cmake-utils
+ # in EAPI-8, we use current working directory instead, bug #704524
+ # esp. test with 'special' pkgs like: app-arch/brotli, media-gfx/gmic, net-libs/quiche
+ fi
+ _cmake_check_build_dir
default_src_prepare
- _cmake_check_build_dir
# check if CMakeLists.txt exist and if no then die
if [[ ! -e ${CMAKE_USE_DIR}/CMakeLists.txt ]] ; then
@@ -343,25 +371,36 @@ cmake_src_prepare() {
fi
local modules_list
- if [[ $(declare -p CMAKE_REMOVE_MODULES_LIST) == "declare -a"* ]]; then
- modules_list=( "${CMAKE_REMOVE_MODULES_LIST[@]}" )
- else
+ if [[ ${EAPI} == 7 && $(declare -p CMAKE_REMOVE_MODULES_LIST) != "declare -a"* ]]; then
modules_list=( ${CMAKE_REMOVE_MODULES_LIST} )
+ else
+ modules_list=( "${CMAKE_REMOVE_MODULES_LIST[@]}" )
fi
local name
for name in "${modules_list[@]}" ; do
- find "${S}" -name ${name}.cmake -exec rm -v {} + || die
+ if [[ ${EAPI} == 7 ]]; then
+ find "${S}" -name ${name}.cmake -exec rm -v {} + || die
+ else
+ find -name "${name}.cmake" -exec rm -v {} + || die
+ fi
done
# Remove dangerous things.
_cmake_modify-cmakelists
- popd > /dev/null || die
+ if [[ ${EAPI} == 7 ]]; then
+ popd > /dev/null || die
+ fi
- # make ${S} read-only in order to detect broken build-systems
+ # Make ${CMAKE_USE_DIR} (in EAPI-7: ${S}) read-only in order to detect
+ # broken build systems.
if [[ ${CMAKE_QA_SRC_DIR_READONLY} && ! ${CMAKE_IN_SOURCE_BUILD} ]]; then
- chmod -R a-w "${S}"
+ if [[ ${EAPI} == 7 ]]; then
+ chmod -R a-w "${S}"
+ else
+ chmod -R a-w "${CMAKE_USE_DIR}"
+ fi
fi
_CMAKE_SRC_PREPARE_HAS_RUN=1
@@ -502,6 +541,11 @@ cmake_src_configure() {
echo 'set(CMAKE_COLOR_MAKEFILE OFF CACHE BOOL "pretty colors during make" FORCE)' >> "${common_config}" || die
fi
+ # See bug 735820
+ if [[ ${EAPI} != 7 ]]; then
+ echo 'set(CMAKE_INSTALL_ALWAYS 1)' >> "${common_config}" || die
+ fi
+
# Wipe the default optimization flags out of CMake
if [[ ${CMAKE_BUILD_TYPE} != Gentoo ]]; then
cat >> ${common_config} <<- _EOF_ || die
@@ -657,9 +701,17 @@ cmake_src_install() {
die "died running ${CMAKE_MAKEFILE_GENERATOR} install"
popd > /dev/null || die
- pushd "${S}" > /dev/null || die
- einstalldocs
- popd > /dev/null || die
+ if [[ ${EAPI} == 7 ]]; then
+ pushd "${S}" > /dev/null || die
+ einstalldocs
+ popd > /dev/null || die
+ else
+ pushd "${CMAKE_USE_DIR}" > /dev/null || die
+ einstalldocs
+ popd > /dev/null || die
+ fi
}
fi
+
+EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install
diff --git a/eclass/common-lisp-3.eclass b/eclass/common-lisp-3.eclass
index 0f47b3c094d1..91752dcacc9b 100644
--- a/eclass/common-lisp-3.eclass
+++ b/eclass/common-lisp-3.eclass
@@ -15,8 +15,6 @@ case ${EAPI} in
*) die "EAPI=${EAPI:-0} is not supported" ;;
esac
-EXPORT_FUNCTIONS src_compile src_install
-
inherit eutils
if [[ -z ${_COMMON_LISP_3_ECLASS} ]]; then
@@ -246,3 +244,5 @@ common-lisp-export-impl-args() {
}
fi
+
+EXPORT_FUNCTIONS src_compile src_install
diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index 3207ed6f4b8e..75e8179c810e 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -8,6 +8,7 @@
# Author: Michał Górny <mgorny@gentoo.org>
# Based on the work of: Krzysztof Pawlik <nelchael@gentoo.org>
# @SUPPORTED_EAPIS: 6 7 8
+# @PROVIDES: python-r1 python-single-r1
# @BLURB: A simple eclass to build Python packages using distutils.
# @DESCRIPTION:
# A simple eclass providing functions to build Python packages using
diff --git a/eclass/ecm.eclass b/eclass/ecm.eclass
index 5f10a7caf78d..a2c8ed1c9541 100644
--- a/eclass/ecm.eclass
+++ b/eclass/ecm.eclass
@@ -4,7 +4,8 @@
# @ECLASS: ecm.eclass
# @MAINTAINER:
# kde@gentoo.org
-# @SUPPORTED_EAPIS: 7
+# @SUPPORTED_EAPIS: 7 8
+# @PROVIDES: cmake
# @BLURB: Support eclass for packages that use KDE Frameworks with ECM.
# @DESCRIPTION:
# This eclass is intended to streamline the creation of ebuilds for packages
@@ -21,16 +22,10 @@
# any phase functions are overridden the version here should also be called.
case ${EAPI} in
- 7) ;;
- *) die "EAPI=${EAPI:-0} is not supported" ;;
+ 7|8) ;;
+ *) die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;;
esac
-if [[ -v KDE_GCC_MINIMAL ]]; then
- EXPORT_FUNCTIONS pkg_pretend
-fi
-
-EXPORT_FUNCTIONS pkg_setup src_prepare src_configure src_test pkg_preinst pkg_postinst pkg_postrm
-
if [[ -z ${_ECM_ECLASS} ]]; then
_ECM_ECLASS=1
@@ -41,6 +36,8 @@ _ECM_ECLASS=1
# for tests you should proceed with setting VIRTUALX_REQUIRED=test.
: ${VIRTUALX_REQUIRED:=manual}
+inherit cmake flag-o-matic toolchain-funcs virtualx
+
# @ECLASS-VARIABLE: ECM_NONGUI
# @DEFAULT_UNSET
# @DESCRIPTION:
@@ -53,8 +50,6 @@ if [[ ${CATEGORY} = kde-frameworks ]] ; then
fi
: ${ECM_NONGUI:=false}
-inherit cmake flag-o-matic toolchain-funcs virtualx
-
if [[ ${ECM_NONGUI} = false ]] ; then
inherit xdg
fi
@@ -154,7 +149,7 @@ fi
if [[ ${CATEGORY} = kde-frameworks ]]; then
: ${KFMIN:=$(ver_cut 1-2)}
fi
-: ${KFMIN:=5.64.0}
+: ${KFMIN:=5.82.0}
# @ECLASS-VARIABLE: KFSLOT
# @INTERNAL
@@ -271,7 +266,7 @@ unset COMMONDEPEND
# @DESCRIPTION:
# Determine if the current GCC version is acceptable, otherwise die.
_ecm_check_gcc_version() {
- if [[ ${MERGE_TYPE} != binary && -v KDE_GCC_MINIMAL ]] && tc-is-gcc; then
+ if [[ ${MERGE_TYPE} != binary && -v ${KDE_GCC_MINIMAL} ]] && tc-is-gcc; then
local version=$(gcc-version)
@@ -535,12 +530,26 @@ ecm_src_test() {
# @FUNCTION: ecm_src_install
# @DESCRIPTION:
-# Wrapper for cmake_src_install. Currently doesn't do anything extra, but
-# is included as part of the API just in case it's needed in the future.
+# Wrapper for cmake_src_install. Drops executable bit from .desktop files
+# installed inside /usr/share/applications. This is set by cmake when install()
+# is called in PROGRAM form, as seen in many kde.org projects.
ecm_src_install() {
debug-print-function ${FUNCNAME} "$@"
cmake_src_install
+
+ # bug 621970
+ if [[ ${EAPI} != 7 ]]; then
+ if [[ -d "${ED}"/usr/share/applications ]]; then
+ local f
+ for f in "${ED}"/usr/share/applications/*.desktop; do
+ if [[ -x ${f} ]]; then
+ einfo "Removing executable bit from ${f#${ED}}"
+ fperms a-x "${f#${ED}}"
+ fi
+ done
+ fi
+ fi
}
# @FUNCTION: ecm_pkg_preinst
@@ -586,3 +595,13 @@ ecm_pkg_postrm() {
}
fi
+
+if [[ -v ${KDE_GCC_MINIMAL} ]]; then
+ EXPORT_FUNCTIONS pkg_pretend
+fi
+
+EXPORT_FUNCTIONS pkg_setup src_prepare src_configure src_test pkg_preinst pkg_postinst pkg_postrm
+
+if [[ ${EAPI} != 7 ]]; then
+ EXPORT_FUNCTIONS src_install
+fi
diff --git a/eclass/elisp.eclass b/eclass/elisp.eclass
index c3c0045d854e..282beee5b6ae 100644
--- a/eclass/elisp.eclass
+++ b/eclass/elisp.eclass
@@ -10,6 +10,7 @@
# Christian Faulhammer <fauli@gentoo.org>
# Ulrich Müller <ulm@gentoo.org>
# @SUPPORTED_EAPIS: 6 7 8
+# @PROVIDES: elisp-common
# @BLURB: Eclass for Emacs Lisp packages
# @DESCRIPTION:
#
diff --git a/eclass/emboss-r2.eclass b/eclass/emboss-r2.eclass
index 680b7b7e4d61..bcab338ad614 100644
--- a/eclass/emboss-r2.eclass
+++ b/eclass/emboss-r2.eclass
@@ -40,8 +40,6 @@ case ${EAPI:-0} in
*) die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" ;;
esac
-EXPORT_FUNCTIONS src_prepare src_configure src_install
-
if [[ ! ${_EMBOSS_R2_ECLASS} ]]; then
_EMBOSS_R2_ECLASS=1
@@ -156,3 +154,5 @@ emboss-r2_src_install() {
}
fi
+
+EXPORT_FUNCTIONS src_prepare src_configure src_install
diff --git a/eclass/gnome2-utils.eclass b/eclass/gnome2-utils.eclass
index 8513de0af4d6..f7d45090f820 100644
--- a/eclass/gnome2-utils.eclass
+++ b/eclass/gnome2-utils.eclass
@@ -5,6 +5,7 @@
# @MAINTAINER:
# gnome@gentoo.org
# @SUPPORTED_EAPIS: 5 6 7
+# @PROVIDES: xdg-utils
# @BLURB: Auxiliary functions commonly used by Gnome packages.
# @DESCRIPTION:
# This eclass provides a set of auxiliary functions needed by most Gnome
diff --git a/eclass/gnome2.eclass b/eclass/gnome2.eclass
index 27ea9f96c0d9..6fab55785be5 100644
--- a/eclass/gnome2.eclass
+++ b/eclass/gnome2.eclass
@@ -5,6 +5,7 @@
# @MAINTAINER:
# gnome@gentoo.org
# @SUPPORTED_EAPIS: 5 6 7
+# @PROVIDES: gnome2-utils
# @BLURB: Provides phases for Gnome/Gtk+ based packages.
# @DESCRIPTION:
# Exports portage base functions used by ebuilds written for packages using the
diff --git a/eclass/gnustep-2.eclass b/eclass/gnustep-2.eclass
index 2d615db3a1f2..68c15bbc62e1 100644
--- a/eclass/gnustep-2.eclass
+++ b/eclass/gnustep-2.eclass
@@ -5,6 +5,7 @@
# @MAINTAINER:
# GNUstep Herd <gnustep@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7 8
+# @PROVIDES: gnustep-base
# @BLURB: eclass for GNUstep Apps, Frameworks, and Bundles build
# @DESCRIPTION:
# This eclass sets up GNUstep environment to properly install
diff --git a/eclass/gnustep-base.eclass b/eclass/gnustep-base.eclass
index fb4a48b734cd..d37ecad102e0 100644
--- a/eclass/gnustep-base.eclass
+++ b/eclass/gnustep-base.eclass
@@ -15,8 +15,6 @@ case ${EAPI:-0} in
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
-EXPORT_FUNCTIONS pkg_setup src_prepare src_configure src_compile src_install pkg_postinst
-
if [[ -z ${_GNUSTEP_BASE_ECLASS} ]] ; then
_GNUSTEP_BASE_ECLASS=1
@@ -263,3 +261,5 @@ EOF
}
fi
+
+EXPORT_FUNCTIONS src_{prepare,configure,compile,install} pkg_{setup,postinst}
diff --git a/eclass/go-module.eclass b/eclass/go-module.eclass
index 053861a1a180..d1e81babf1f8 100644
--- a/eclass/go-module.eclass
+++ b/eclass/go-module.eclass
@@ -75,9 +75,7 @@ export GOCACHE="${T}/go-build"
# The following go flags should be used for all builds.
# -v prints the names of packages as they are compiled
# -x prints commands as they are executed
-# -mod=readonly do not update go.mod/go.sum but fail if updates are needed
-# -mod=vendor use the vendor directory instead of downloading dependencies
-export GOFLAGS="-v -x -mod=readonly"
+export GOFLAGS="-v -x"
# Do not complain about CFLAGS etc since go projects do not use them.
QA_FLAGS_IGNORED='.*'
@@ -85,7 +83,7 @@ QA_FLAGS_IGNORED='.*'
# Go packages should not be stripped with strip(1).
RESTRICT+=" strip"
-EXPORT_FUNCTIONS src_unpack pkg_postinst
+EXPORT_FUNCTIONS src_unpack
# @ECLASS-VARIABLE: EGO_SUM
# @DESCRIPTION:
@@ -417,21 +415,6 @@ go-module_live_vendor() {
popd >& /dev/null || die
}
-# @FUNCTION: go-module_pkg_postinst
-# @DESCRIPTION:
-# Display a warning about security updates for Go programs.
-go-module_pkg_postinst() {
- debug-print-function "${FUNCNAME}" "$@"
- [[ -n ${REPLACING_VERSIONS} ]] && return 0
- ewarn "${PN} is written in the Go programming language."
- ewarn "Since this language is statically linked, security"
- ewarn "updates will be handled in individual packages and will be"
- ewarn "difficult for us to track as a distribution."
- ewarn "For this reason, please update any go packages asap when new"
- ewarn "versions enter the tree or go stable if you are running the"
- ewarn "stable tree."
-}
-
# @FUNCTION: _go-module_gomod_encode
# @DESCRIPTION:
# Encode the name(path) of a Golang module in the format expected by Goproxy.
diff --git a/eclass/golang-build.eclass b/eclass/golang-build.eclass
index d106a30eb58a..308503e84950 100644
--- a/eclass/golang-build.eclass
+++ b/eclass/golang-build.eclass
@@ -5,6 +5,7 @@
# @MAINTAINER:
# William Hubbs <williamh@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7
+# @PROVIDES: golang-base
# @BLURB: Eclass for compiling go packages.
# @DESCRIPTION:
# This eclass provides default src_compile, src_test and src_install
diff --git a/eclass/golang-vcs-snapshot.eclass b/eclass/golang-vcs-snapshot.eclass
index abdb7fa119dd..66503e38b59d 100644
--- a/eclass/golang-vcs-snapshot.eclass
+++ b/eclass/golang-vcs-snapshot.eclass
@@ -5,6 +5,7 @@
# @MAINTAINER:
# William Hubbs <williamh@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7
+# @PROVIDES: golang-base
# @BLURB: eclass to unpack VCS snapshot tarballs for Go software
# @DESCRIPTION:
# This eclass provides a convenience src_unpack() which unpacks the
diff --git a/eclass/golang-vcs.eclass b/eclass/golang-vcs.eclass
index 4d4a38bffe8c..27b2e5fa9c9b 100644
--- a/eclass/golang-vcs.eclass
+++ b/eclass/golang-vcs.eclass
@@ -5,6 +5,7 @@
# @MAINTAINER:
# William Hubbs <williamh@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7
+# @PROVIDES: golang-base
# @BLURB: Eclass for fetching and unpacking go repositories.
# @DESCRIPTION:
# This eclass is written to ease the maintenance of live ebuilds
diff --git a/eclass/gstreamer-meson.eclass b/eclass/gstreamer-meson.eclass
index 2a45df008c29..152a52b984f1 100644
--- a/eclass/gstreamer-meson.eclass
+++ b/eclass/gstreamer-meson.eclass
@@ -14,6 +14,7 @@
# Steven Newbury
# @SUPPORTED_EAPIS: 7
# @BLURB: Helps building core & split gstreamer plugins
+# @PROVIDES: meson multilib-minimal
# @DESCRIPTION:
# Eclass to make external gst-plugins emergable on a per-plugin basis
# and to solve the problem with gst-plugins generating far too much
diff --git a/eclass/gstreamer.eclass b/eclass/gstreamer.eclass
index 301d0874106e..399fe1377329 100644
--- a/eclass/gstreamer.eclass
+++ b/eclass/gstreamer.eclass
@@ -11,6 +11,7 @@
# foser <foser@gentoo.org>
# zaheerm <zaheerm@gentoo.org>
# @SUPPORTED_EAPIS: 5 6
+# @PROVIDES: multilib-minimal
# @BLURB: Helps building core & split gstreamer plugins.
# @DESCRIPTION:
# Eclass to make external gst-plugins emergable on a per-plugin basis
diff --git a/eclass/java-ant-2.eclass b/eclass/java-ant-2.eclass
index 5592186936c0..501d17ef229e 100644
--- a/eclass/java-ant-2.eclass
+++ b/eclass/java-ant-2.eclass
@@ -8,6 +8,7 @@
# kiorky <kiorky@cryptelium.net>
# Petteri Räty <betelgeuse@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7
+# @PROVIDES: java-utils-2
# @BLURB: eclass for ant based Java packages
# @DESCRIPTION:
# Eclass for Ant-based Java packages. Provides support for both automatic and
diff --git a/eclass/java-osgi.eclass b/eclass/java-osgi.eclass
index abbf73cdd3fa..74c7c1a07f5c 100644
--- a/eclass/java-osgi.eclass
+++ b/eclass/java-osgi.eclass
@@ -7,6 +7,7 @@
# @AUTHOR:
# Java maintainers <java@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7
+# @PROVIDES: java-utils-2
# @BLURB: Java OSGi eclass
# @DESCRIPTION:
# This eclass provides functionality which is used by packages that need to be
diff --git a/eclass/java-pkg-2.eclass b/eclass/java-pkg-2.eclass
index 4d5cb7665728..b0573eea4d0b 100644
--- a/eclass/java-pkg-2.eclass
+++ b/eclass/java-pkg-2.eclass
@@ -7,6 +7,7 @@
# @AUTHOR:
# Thomas Matthijs <axxo@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7
+# @PROVIDES: java-utils-2
# @BLURB: Eclass for Java Packages
# @DESCRIPTION:
# This eclass should be inherited for pure Java packages, or by packages which
@@ -17,8 +18,6 @@ case ${EAPI:-0} in
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
-EXPORT_FUNCTIONS pkg_setup src_prepare src_compile pkg_preinst
-
if [[ -z ${_JAVA_PKG_2_ECLASS} ]] ; then
_JAVA_PKG_2_ECLASS=1
@@ -158,3 +157,5 @@ java-pkg-2_pkg_preinst() {
}
fi
+
+EXPORT_FUNCTIONS pkg_setup src_prepare src_compile pkg_preinst
diff --git a/eclass/java-pkg-opt-2.eclass b/eclass/java-pkg-opt-2.eclass
index 7f1f5a2f8394..79833c98ea6b 100644
--- a/eclass/java-pkg-opt-2.eclass
+++ b/eclass/java-pkg-opt-2.eclass
@@ -7,6 +7,7 @@
# @AUTHOR:
# Thomas Matthijs <axxo@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7
+# @PROVIDES: java-utils-2
# @BLURB: Eclass for package with optional Java support
# @DESCRIPTION:
# Inherit this eclass instead of java-pkg-2 if you only need optional Java
@@ -17,8 +18,6 @@ case ${EAPI:-0} in
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
-EXPORT_FUNCTIONS pkg_setup src_prepare pkg_preinst
-
if [[ -z ${_JAVA_PKG_OPT_2_ECLASS} ]] ; then
_JAVA_PKG_OPT_2_ECLASS=1
@@ -66,3 +65,5 @@ java-pkg-opt-2_pkg_preinst() {
}
fi
+
+EXPORT_FUNCTIONS pkg_setup src_prepare pkg_preinst
diff --git a/eclass/java-pkg-simple.eclass b/eclass/java-pkg-simple.eclass
index 184934eb3bd3..fc006ff2fcc4 100644
--- a/eclass/java-pkg-simple.eclass
+++ b/eclass/java-pkg-simple.eclass
@@ -21,8 +21,6 @@ case ${EAPI:-0} in
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
-EXPORT_FUNCTIONS src_compile src_install src_test
-
if [[ -z ${_JAVA_PKG_SIMPLE_ECLASS} ]] ; then
_JAVA_PKG_SIMPLE_ECLASS=1
@@ -570,3 +568,5 @@ java-pkg-simple_src_test() {
}
fi
+
+EXPORT_FUNCTIONS src_compile src_install src_test
diff --git a/eclass/java-virtuals-2.eclass b/eclass/java-virtuals-2.eclass
index 27ed9157da5b..dedbf2f26195 100644
--- a/eclass/java-virtuals-2.eclass
+++ b/eclass/java-virtuals-2.eclass
@@ -17,8 +17,6 @@ case ${EAPI:-0} in
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
-EXPORT_FUNCTIONS src_install
-
if [[ -z ${_JAVA_VIRTUALS_2_ECLASS} ]] ; then
_JAVA_VIRTUALS_2_ECLASS=1
@@ -63,3 +61,5 @@ java-virtuals-2_do_write() {
}
fi
+
+EXPORT_FUNCTIONS src_install
diff --git a/eclass/kde.org.eclass b/eclass/kde.org.eclass
index aab7abcd6c65..bf087dfc8a60 100644
--- a/eclass/kde.org.eclass
+++ b/eclass/kde.org.eclass
@@ -20,8 +20,6 @@ case ${EAPI} in
*) die "EAPI=${EAPI:-0} is not supported" ;;
esac
-EXPORT_FUNCTIONS pkg_nofetch src_unpack
-
if [[ -z ${_KDE_ORG_ECLASS} ]]; then
_KDE_ORG_ECLASS=1
@@ -354,3 +352,5 @@ kde.org_src_unpack() {
}
fi
+
+EXPORT_FUNCTIONS pkg_nofetch src_unpack
diff --git a/eclass/kernel-2.eclass b/eclass/kernel-2.eclass
index c2f1e93dca68..ef70e250c179 100644
--- a/eclass/kernel-2.eclass
+++ b/eclass/kernel-2.eclass
@@ -199,12 +199,11 @@
# that of course does not mean we're not willing to help.
inherit estack toolchain-funcs
-[[ ${EAPI:-0} == 6 ]] && inherit eapi7-ver
-case ${EAPI:-0} in
- 6|7|8)
- EXPORT_FUNCTIONS src_{unpack,prepare,compile,install,test} \
- pkg_{setup,preinst,postinst,postrm} ;;
- *) die "${ECLASS}: EAPI ${EAPI} not supported" ;;
+[[ ${EAPI} == 6 ]] && inherit eapi7-ver
+
+case ${EAPI} in
+ 6|7|8) ;;
+ *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
# Added by Daniel Ostrow <dostrow@gentoo.org>
@@ -1566,3 +1565,6 @@ kernel-2_pkg_postrm() {
ewarn "For more detailed kernel removal instructions, please see: "
ewarn "https://wiki.gentoo.org/wiki/Kernel/Removal"
}
+
+EXPORT_FUNCTIONS src_{unpack,prepare,compile,install,test} \
+ pkg_{setup,preinst,postinst,postrm}
diff --git a/eclass/kernel-build.eclass b/eclass/kernel-build.eclass
index 28fed910fff8..279649301087 100644
--- a/eclass/kernel-build.eclass
+++ b/eclass/kernel-build.eclass
@@ -7,6 +7,7 @@
# @AUTHOR:
# Michał Górny <mgorny@gentoo.org>
# @SUPPORTED_EAPIS: 7
+# @PROVIDES: kernel-install
# @BLURB: Build mechanics for Distribution Kernels
# @DESCRIPTION:
# This eclass provides the logic to build a Distribution Kernel from
diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass
index b80a8d6ea93b..609afa754deb 100644
--- a/eclass/kernel-install.eclass
+++ b/eclass/kernel-install.eclass
@@ -7,6 +7,7 @@
# @AUTHOR:
# Michał Górny <mgorny@gentoo.org>
# @SUPPORTED_EAPIS: 7
+# @PROVIDES: dist-kernel-utils
# @BLURB: Installation mechanics for Distribution Kernels
# @DESCRIPTION:
# This eclass provides the logic needed to test and install different
diff --git a/eclass/linux-info.eclass b/eclass/linux-info.eclass
index 8edd17c317d4..0b6df1bf5919 100644
--- a/eclass/linux-info.eclass
+++ b/eclass/linux-info.eclass
@@ -539,14 +539,11 @@ get_version() {
# And contrary to existing functions I feel we shouldn't trust the
# directory name to find version information as this seems insane.
- # So we parse ${KERNEL_MAKEFILE}. We should be able to trust that
- # the Makefile is simple enough to use the noexec extract function.
- # This has been true for every release thus far, and it's faster
- # than using make to evaluate the Makefile every time.
- KV_MAJOR=$(getfilevar_noexec VERSION "${KERNEL_MAKEFILE}")
- KV_MINOR=$(getfilevar_noexec PATCHLEVEL "${KERNEL_MAKEFILE}")
- KV_PATCH=$(getfilevar_noexec SUBLEVEL "${KERNEL_MAKEFILE}")
- KV_EXTRA=$(getfilevar_noexec EXTRAVERSION "${KERNEL_MAKEFILE}")
+ # So we parse ${KERNEL_MAKEFILE}.
+ KV_MAJOR=$(getfilevar VERSION "${KERNEL_MAKEFILE}")
+ KV_MINOR=$(getfilevar PATCHLEVEL "${KERNEL_MAKEFILE}")
+ KV_PATCH=$(getfilevar SUBLEVEL "${KERNEL_MAKEFILE}")
+ KV_EXTRA=$(getfilevar EXTRAVERSION "${KERNEL_MAKEFILE}")
if [ -z "${KV_MAJOR}" -o -z "${KV_MINOR}" -o -z "${KV_PATCH}" ]
then
diff --git a/eclass/linux-mod.eclass b/eclass/linux-mod.eclass
index eda5e9aee013..ca7bb2e219f5 100644
--- a/eclass/linux-mod.eclass
+++ b/eclass/linux-mod.eclass
@@ -8,6 +8,7 @@
# John Mylchreest <johnm@gentoo.org>,
# Stefan Schweizer <genstef@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7
+# @PROVIDES: linux-info
# @BLURB: It provides the functionality required to install external modules against a kernel source tree.
# @DESCRIPTION:
# This eclass is used to interface with linux-info.eclass in such a way
@@ -153,8 +154,6 @@ case ${EAPI:-0} in
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
-EXPORT_FUNCTIONS pkg_setup pkg_preinst pkg_postinst src_install src_compile pkg_postrm
-
if [[ -z ${_LINUX_MOD_ECLASS} ]] ; then
_LINUX_MOD_ECLASS=1
@@ -796,3 +795,6 @@ linux-mod_pkg_postrm() {
}
fi
+
+EXPORT_FUNCTIONS pkg_setup src_compile src_install \
+ pkg_preinst pkg_postinst pkg_postrm
diff --git a/eclass/lua-single.eclass b/eclass/lua-single.eclass
index 26967000748c..2f4ebaa14198 100644
--- a/eclass/lua-single.eclass
+++ b/eclass/lua-single.eclass
@@ -9,6 +9,7 @@
# Marek Szuba <marecki@gentoo.org>
# Based on python-single-r1.eclass by Michał Górny <mgorny@gentoo.org> et al.
# @SUPPORTED_EAPIS: 7 8
+# @PROVIDES: lua-utils
# @BLURB: An eclass for Lua packages not installed for multiple implementations.
# @DESCRIPTION:
# An extension of lua.eclass suite for packages which don't support being
diff --git a/eclass/lua.eclass b/eclass/lua.eclass
index f1967ae6e015..5c2a7b290061 100644
--- a/eclass/lua.eclass
+++ b/eclass/lua.eclass
@@ -9,6 +9,7 @@
# Marek Szuba <marecki@gentoo.org>
# Based on python-r1.eclass by Michał Górny <mgorny@gentoo.org> et al.
# @SUPPORTED_EAPIS: 7 8
+# @PROVIDES: lua-utils
# @BLURB: A common eclass for Lua packages
# @DESCRIPTION:
# A common eclass providing helper functions to build and install
diff --git a/eclass/mercurial.eclass b/eclass/mercurial.eclass
index b62ecdf102a5..5d0ebf0d9e4f 100644
--- a/eclass/mercurial.eclass
+++ b/eclass/mercurial.eclass
@@ -20,8 +20,6 @@ case ${EAPI:-0} in
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
-EXPORT_FUNCTIONS src_unpack
-
if [[ -z ${_MERCURIAL_ECLASS} ]] ; then
_MERCURIAL_ECLASS=1
@@ -219,3 +217,5 @@ function mercurial_src_unpack {
}
fi
+
+EXPORT_FUNCTIONS src_unpack
diff --git a/eclass/meson-multilib.eclass b/eclass/meson-multilib.eclass
index 1ed95f99fa18..49c64418727e 100644
--- a/eclass/meson-multilib.eclass
+++ b/eclass/meson-multilib.eclass
@@ -8,6 +8,7 @@
# Michał Górny <mgorny@gentoo.org>
# Matt Turner <mattst88@gentoo.org>
# @SUPPORTED_EAPIS: 7 8
+# @PROVIDES: meson multilib-minimal
# @BLURB: meson wrapper for multilib builds
# @DESCRIPTION:
# The meson-multilib.eclass provides a glue between meson.eclass(5)
diff --git a/eclass/mozlinguas-v2.eclass b/eclass/mozlinguas-v2.eclass
index 423f0bdcc71a..f8e3c95d8824 100644
--- a/eclass/mozlinguas-v2.eclass
+++ b/eclass/mozlinguas-v2.eclass
@@ -299,7 +299,7 @@ mozlinguas_src_compile() {
# leverage BUILD_OBJ_DIR if set otherwise assume PWD.
local x y targets=( "langpack" ) localedir="${BUILD_OBJ_DIR:-.}"
case ${PN} in
- *firefox)
+ *firefox|waterfox*)
localedir+="/browser/locales"
;;
seamonkey)
diff --git a/eclass/multilib-build.eclass b/eclass/multilib-build.eclass
index e3e8730904ab..17cd7da0d189 100644
--- a/eclass/multilib-build.eclass
+++ b/eclass/multilib-build.eclass
@@ -7,6 +7,7 @@
# @AUTHOR:
# Author: Michał Górny <mgorny@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7 8
+# @PROVIDES: multibuild
# @BLURB: flags and utility functions for building multilib packages
# @DESCRIPTION:
# The multilib-build.eclass exports USE flags and utility functions
diff --git a/eclass/multilib-minimal.eclass b/eclass/multilib-minimal.eclass
index 6c5c754381b5..9a1efe2cc466 100644
--- a/eclass/multilib-minimal.eclass
+++ b/eclass/multilib-minimal.eclass
@@ -5,6 +5,7 @@
# @MAINTAINER:
# Michał Górny <mgorny@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7 8
+# @PROVIDES: multilib-build
# @BLURB: wrapper for multilib builds providing convenient multilib_src_* functions
# @DESCRIPTION:
#
diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass
index 3c1b4c3c5acc..cff6f203ab8f 100644
--- a/eclass/perl-module.eclass
+++ b/eclass/perl-module.eclass
@@ -8,6 +8,7 @@
# Seemant Kulleen <seemant@gentoo.org>
# Andreas K. Hüttel <dilfridge@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7 8
+# @PROVIDES: perl-functions
# @BLURB: eclass for installing Perl module distributions
# @DESCRIPTION:
# The perl-module eclass is designed to allow easier installation of Perl
diff --git a/eclass/php-ext-pecl-r3.eclass b/eclass/php-ext-pecl-r3.eclass
index f3977b225aa4..ccb4bcfc83da 100644
--- a/eclass/php-ext-pecl-r3.eclass
+++ b/eclass/php-ext-pecl-r3.eclass
@@ -16,8 +16,6 @@ case ${EAPI:-0} in
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
-EXPORT_FUNCTIONS src_install src_test
-
if [[ -z ${_PHP_EXT_PECL_R3_ECLASS} ]] ; then
_PHP_EXT_PECL_R3_ECLASS=1
@@ -96,3 +94,5 @@ php-ext-pecl-r3_src_test() {
}
fi
+
+EXPORT_FUNCTIONS src_install src_test
diff --git a/eclass/php-ext-source-r3.eclass b/eclass/php-ext-source-r3.eclass
index a782081b72a7..556b51ecb0cf 100644
--- a/eclass/php-ext-source-r3.eclass
+++ b/eclass/php-ext-source-r3.eclass
@@ -12,8 +12,6 @@
inherit autotools
-EXPORT_FUNCTIONS src_prepare src_configure src_compile src_install src_test
-
case ${EAPI:-0} in
6) inherit eapi7-ver ;;
7) ;;
@@ -461,3 +459,5 @@ php-ext-source-r3_addtoinifiles() {
done
done
}
+
+EXPORT_FUNCTIONS src_prepare src_configure src_compile src_install src_test
diff --git a/eclass/python-any-r1.eclass b/eclass/python-any-r1.eclass
index eaae5379b732..7af9474d9a1f 100644
--- a/eclass/python-any-r1.eclass
+++ b/eclass/python-any-r1.eclass
@@ -8,6 +8,7 @@
# Author: Michał Górny <mgorny@gentoo.org>
# Based on work of: Krzysztof Pawlik <nelchael@gentoo.org>
# @SUPPORTED_EAPIS: 6 7 8
+# @PROVIDES: python-utils-r1
# @BLURB: An eclass for packages having build-time dependency on Python.
# @DESCRIPTION:
# A minimal eclass for packages which need any Python interpreter
diff --git a/eclass/python-r1.eclass b/eclass/python-r1.eclass
index 3a4d257036c8..dc624946cfc1 100644
--- a/eclass/python-r1.eclass
+++ b/eclass/python-r1.eclass
@@ -8,6 +8,7 @@
# Author: Michał Górny <mgorny@gentoo.org>
# Based on work of: Krzysztof Pawlik <nelchael@gentoo.org>
# @SUPPORTED_EAPIS: 6 7 8
+# @PROVIDES: multibuild python-utils-r1
# @BLURB: A common, simple eclass for Python packages.
# @DESCRIPTION:
# A common eclass providing helper functions to build and install
diff --git a/eclass/python-single-r1.eclass b/eclass/python-single-r1.eclass
index da0113b6d57b..228c66a77af6 100644
--- a/eclass/python-single-r1.eclass
+++ b/eclass/python-single-r1.eclass
@@ -8,6 +8,7 @@
# Author: Michał Górny <mgorny@gentoo.org>
# Based on work of: Krzysztof Pawlik <nelchael@gentoo.org>
# @SUPPORTED_EAPIS: 6 7 8
+# @PROVIDES: python-utils-r1
# @BLURB: An eclass for Python packages not installed for multiple implementations.
# @DESCRIPTION:
# An extension of the python-r1 eclass suite for packages which
diff --git a/eclass/rpm.eclass b/eclass/rpm.eclass
index 77db8e808796..c97e23144c2b 100644
--- a/eclass/rpm.eclass
+++ b/eclass/rpm.eclass
@@ -14,8 +14,6 @@ case ${EAPI} in
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
-EXPORT_FUNCTIONS src_unpack
-
if [[ -z ${_RPM_ECLASS} ]] ; then
_RPM_ECLASS=1
@@ -145,3 +143,5 @@ rpm_spec_epatch() {
}
fi
+
+EXPORT_FUNCTIONS src_unpack
diff --git a/eclass/ruby-fakegem.eclass b/eclass/ruby-fakegem.eclass
index 76a80f6b9be2..d999ace34286 100644
--- a/eclass/ruby-fakegem.eclass
+++ b/eclass/ruby-fakegem.eclass
@@ -9,6 +9,7 @@
# Author: Alex Legler <a3li@gentoo.org>
# Author: Hans de Graaff <graaff@gentoo.org>
# @SUPPORTED_EAPIS: 4 5 6 7 8
+# @PROVIDES: ruby-ng
# @BLURB: An eclass for installing Ruby packages to behave like RubyGems.
# @DESCRIPTION:
# This eclass allows to install arbitrary Ruby libraries (including Gems),
diff --git a/eclass/ruby-ng-gnome2.eclass b/eclass/ruby-ng-gnome2.eclass
index 3b18faf95aae..cc475b36b731 100644
--- a/eclass/ruby-ng-gnome2.eclass
+++ b/eclass/ruby-ng-gnome2.eclass
@@ -7,6 +7,7 @@
# @AUTHOR:
# Author: Hans de Graaff <graaff@gentoo.org>
# @SUPPORTED_EAPIS: 6 7
+# @PROVIDES: ruby-ng
# @BLURB: An eclass to simplify handling of various ruby-gnome2 parts.
# @DESCRIPTION:
# This eclass simplifies installation of the various pieces of
diff --git a/eclass/ruby-single.eclass b/eclass/ruby-single.eclass
index e19597b99a01..ed230f4a84e5 100644
--- a/eclass/ruby-single.eclass
+++ b/eclass/ruby-single.eclass
@@ -8,6 +8,7 @@
# Author: Hans de Graaff <graaff@gentoo.org>
# Based on python-single-r1 by: Michał Górny <mgorny@gentoo.org>
# @SUPPORTED_EAPIS: 4 5 6 7 8
+# @PROVIDES: ruby-utils
# @BLURB: An eclass for Ruby packages not installed for multiple implementations.
# @DESCRIPTION:
# An eclass for packages which don't support being installed for
diff --git a/eclass/subversion.eclass b/eclass/subversion.eclass
index 6ed8a62dbe35..aa1a5c355877 100644
--- a/eclass/subversion.eclass
+++ b/eclass/subversion.eclass
@@ -14,18 +14,10 @@
ESVN="${ECLASS}"
-case ${EAPI:-0} in
- 4|5)
- inherit eutils
- EXPORT_FUNCTIONS src_unpack src_prepare pkg_preinst
- ;;
- 6|7)
- inherit estack
- EXPORT_FUNCTIONS src_unpack pkg_preinst
- ;;
- *)
- die "${ESVN}: EAPI ${EAPI:-0} is not supported"
- ;;
+case ${EAPI} in
+ 4|5) inherit eutils ;;
+ 6|7) inherit estack ;;
+ *) die "${ESVN}: EAPI ${EAPI:-0} is not supported" ;;
esac
PROPERTIES+=" live"
@@ -543,3 +535,8 @@ subversion__get_peg_revision() {
echo "${peg_rev}"
}
+
+EXPORT_FUNCTIONS src_unpack pkg_preinst
+if [[ ${EAPI} == [45] ]]; then
+ EXPORT_FUNCTIONS src_prepare
+fi
diff --git a/eclass/toolchain-glibc.eclass b/eclass/toolchain-glibc.eclass
index e41cc7114398..a0a407882d60 100644
--- a/eclass/toolchain-glibc.eclass
+++ b/eclass/toolchain-glibc.eclass
@@ -1,6 +1,8 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# @DEAD
+
# @ECLASS: toolchain-glibc.eclass
# @MAINTAINER:
# <toolchain@gentoo.org>
diff --git a/eclass/unpacker.eclass b/eclass/unpacker.eclass
index c9dab4345c95..74899fd77b70 100644
--- a/eclass/unpacker.eclass
+++ b/eclass/unpacker.eclass
@@ -4,7 +4,7 @@
# @ECLASS: unpacker.eclass
# @MAINTAINER:
# base-system@gentoo.org
-# @SUPPORTED_EAPIS: 5 6 7
+# @SUPPORTED_EAPIS: 5 6 7 8
# @BLURB: helpers for extraneous file formats and consistent behavior across EAPIs
# @DESCRIPTION:
# Some extraneous file formats are not part of PMS, or are only in certain
@@ -16,7 +16,7 @@
# - support partial unpacks?
case ${EAPI:-0} in
- [567]) ;;
+ [5678]) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
@@ -335,6 +335,47 @@ unpack_zip() {
[[ $? -le 1 ]] || die "unpacking ${zip} failed (arch=unpack_zip)"
}
+# @FUNCTION: unpack_7z
+# @USAGE: <7z file>
+# @DESCRIPTION:
+# Unpack 7z archives.
+unpack_7z() {
+ [[ $# -eq 1 ]] || die "Usage: ${FUNCNAME} <file>"
+
+ local p7z=$(find_unpackable_file "$1")
+ unpack_banner "${p7z}"
+ local output="$(7z x -y "${p7z}")"
+
+ if [ $? -ne 0 ]; then
+ echo "${output}" >&2
+ die "unpacking ${p7z} failed (arch=unpack_7z)"
+ fi
+}
+
+# @FUNCTION: unpack_rar
+# @USAGE: <rar file>
+# @DESCRIPTION:
+# Unpack RAR archives.
+unpack_rar() {
+ [[ $# -eq 1 ]] || die "Usage: ${FUNCNAME} <file>"
+
+ local rar=$(find_unpackable_file "$1")
+ unpack_banner "${rar}"
+ unrar x -idq -o+ "${rar}" || die "unpacking ${rar} failed (arch=unpack_rar)"
+}
+
+# @FUNCTION: unpack_lha
+# @USAGE: <lha file>
+# @DESCRIPTION:
+# Unpack LHA/LZH archives.
+unpack_lha() {
+ [[ $# -eq 1 ]] || die "Usage: ${FUNCNAME} <file>"
+
+ local lha=$(find_unpackable_file "$1")
+ unpack_banner "${lha}"
+ lha xfq "${lha}" || die "unpacking ${lha} failed (arch=unpack_lha)"
+}
+
# @FUNCTION: _unpacker
# @USAGE: <one archive to unpack>
# @INTERNAL
@@ -395,6 +436,18 @@ _unpacker() {
arch="unpack_zip" ;;
esac
+ # 7z, rar and lha/lzh are handled by package manager in EAPI < 8
+ if [[ ${EAPI} != [567] ]]; then
+ case ${m} in
+ *.7z)
+ arch="unpack_7z" ;;
+ *.rar|*.RAR)
+ arch="unpack_rar" ;;
+ *.LHA|*.LHa|*.lha|*.lzh)
+ arch="unpack_lha" ;;
+ esac
+ fi
+
# finally do the unpack
if [[ -z ${arch}${comp} ]] ; then
unpack "$1"
@@ -471,6 +524,8 @@ unpacker_src_uri_depends() {
d="|| ( app-arch/plzip app-arch/pdlzip app-arch/lzip )" ;;
*.zst)
d="app-arch/zstd" ;;
+ *.LHA|*.LHa|*.lha|*.lzh)
+ d="app-arch/lha" ;;
esac
deps+=" ${d}"
done
diff --git a/eclass/xdg.eclass b/eclass/xdg.eclass
index 08dc8432a5e0..a3e75103a046 100644
--- a/eclass/xdg.eclass
+++ b/eclass/xdg.eclass
@@ -7,6 +7,7 @@
# @AUTHOR:
# Original author: Gilles Dartiguelongue <eva@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7 8
+# @PROVIDES: xdg-utils
# @BLURB: Provides phases for XDG compliant packages.
# @DESCRIPTION:
# Utility eclass to update the desktop, icon and shared mime info as laid
diff --git a/eclass/xorg-3.eclass b/eclass/xorg-3.eclass
index 7ed96c60848a..cfa679b766ce 100644
--- a/eclass/xorg-3.eclass
+++ b/eclass/xorg-3.eclass
@@ -9,6 +9,7 @@
# Author: Donnie Berkholz <dberkholz@gentoo.org>
# Author: Matt Turner <mattst88@gentoo.org>
# @SUPPORTED_EAPIS: 7
+# @PROVIDES: multilib-minimal
# @BLURB: Reduces code duplication in the modularized X11 ebuilds.
# @DESCRIPTION:
# This eclass makes trivial X ebuilds possible for apps, drivers,