diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-09-03 20:56:28 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-09-03 20:56:28 +0100 |
commit | fbda87924e6faa7a1919f1a2b4182490bde5ec5c (patch) | |
tree | f3114a4ed212a754756adce027aeef3a4a1a2e2a /eclass | |
parent | 3b08f674e3f771b49370edb144dab0958c8cf721 (diff) |
gentoo resync : 03.09.2021
Diffstat (limited to 'eclass')
55 files changed, 291 insertions, 142 deletions
diff --git a/eclass/Manifest.gz b/eclass/Manifest.gz Binary files differindex e75fbd345d06..f4899465e3fc 100644 --- a/eclass/Manifest.gz +++ b/eclass/Manifest.gz 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, |