Le Wed, 07 Apr 2021 00:16:26 +0200
Andreas Sturmlechner a écrit:
> Just some cheap fixes while flag-o-matic.eclass causes cache-regen anyway.
> See also: https://github.com/gentoo/gentoo/pull/20207
>
> - Add inherit guard
> - Fix some eclassdoc
> - Minor cleanup
>
> ---
> eclass/gnustep-base.eclass | 65 --
> 1 file changed, 34 insertions(+), 31 deletions(-)
>
> diff --git a/eclass/gnustep-base.eclass b/eclass/gnustep-base.eclass
> index 6cd9f532a55..c343dbb5c6b 100644
> --- a/eclass/gnustep-base.eclass
> +++ b/eclass/gnustep-base.eclass
> @@ -1,16 +1,27 @@
> -# Copyright 1999-2018 Gentoo Foundation
> +# Copyright 1999-2021 Gentoo Authors
> # Distributed under the terms of the GNU General Public License v2
>
> # @ECLASS: gnustep-base.eclass
> # @MAINTAINER:
> # GNUstep Herd
> -# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7
> +# @SUPPORTED_EAPIS: 5 6 7
> # @BLURB: Internal handling of GNUstep pacakges
> # @DESCRIPTION:
> # Inner gnustep eclass, should only be inherited directly by gnustep-base
> # packages
>
> -inherit eutils flag-o-matic
> +if [[ -z ${_GNUSTEP_BASE_ECLASS} ]]; then
> +_GNUSTEP_BASE_ECLASS=1
> +
> +inherit flag-o-matic
> +
> +EXPORT_FUNCTIONS pkg_setup src_prepare src_configure src_compile src_install
> pkg_postinst
> +
> +case ${EAPI:-0} in
> + [0-4]) die "gnustep-base.eclass: EAPI ${EAPI} is too old." ;;
> + [5-7]) inherit eutils ;;
> + *) die "EAPI ${EAPI} is not supported by gnustep-base.eclass." ;;
> +esac
>
> # IUSE variables across all GNUstep packages
> # "debug": enable code for debugging
> @@ -40,13 +51,6 @@ gnustep-base_pkg_setup() {
> filter-flags -fomit-frame-pointer
> }
>
> -gnustep-base_src_unpack() {
> - unpack ${A}
> - cd "${S}"
> -
> - gnustep-base_src_prepare
> -}
> -
> gnustep-base_src_prepare() {
> if [[ -f ./GNUmakefile ]] ; then
> # Kill stupid includes that are simply overdone or useless on
> normal
> @@ -63,22 +67,18 @@ gnustep-base_src_prepare() {
> eend $?
> fi
>
> - ! has ${EAPI:-0} 0 1 2 3 4 5 && default
> + ! has ${EAPI:-0} 5 && default
> }
>
> gnustep-base_src_configure() {
> egnustep_env
> if [[ -x ./configure ]] ; then
> - econf || die "configure failed"
> + econf
> fi
> }
>
> gnustep-base_src_compile() {
> egnustep_env
> - case ${EAPI:-0} in
> - 0|1) gnustep-base_src_configure ;;
> - esac
> -
> egnustep_make
> }
>
> @@ -105,6 +105,8 @@ gnustep-base_pkg_postinst() {
> elog " ${SCRIPT_PATH}/config-${PN}.sh"
> }
>
> +# @FUNCTION: egnustep_env
> +# @DESCRIPTION:
> # Clean/reset an ebuild to the installed GNUstep environment
> egnustep_env() {
> # Get additional variables
> @@ -113,9 +115,9 @@ egnustep_env() {
> # Makefiles path
> local GS_MAKEFILES
> if [[ -d ${EPREFIX}/usr/share/GNUstep/Makefiles ]]; then
> - GS_MAKEFILES=${EPREFIX}/usr/share/GNUstep/Makefiles
> + GS_MAKEFILES="${EPREFIX}"/usr/share/GNUstep/Makefiles
> else
> - GS_MAKEFILES=${GNUSTEP_PREFIX}/System/Library/Makefiles
> + GS_MAKEFILES="${GNUSTEP_PREFIX}"/System/Library/Makefiles
> fi
> if [[ -f ${GS_MAKEFILES}/GNUstep.sh ]] ; then
> # Reset GNUstep variables
> @@ -130,7 +132,6 @@ egnustep_env() {
> -i "${WORKDIR}"/GNUstep.conf || die
> "GNUstep.conf sed failed"
> fi
>
> -
> if [[ ! -d ${EPREFIX}/usr/share/GNUstep/Makefiles ]]; then
> # Set rpath in ldflags when available
> case ${CHOST} in
> @@ -159,8 +160,7 @@ egnustep_env() {
> && GS_ENV=( "${GS_ENV[@]}" "debug=yes" ) \
> || GS_ENV=( "${GS_ENV[@]}" "debug=no" )
>
> - if has_version "gnustep-base/gnustep-make[libobjc2]";
> - then
> + if has_version "gnustep-base/gnustep-make[libobjc2]"; then
> # Set clang for packages that do not respect
> gnustep-make
> # settings (gnustep-base's configure for example)
> export CC=clang CXX=clang CPP="clang -E" LD="clang"
> @@ -171,36 +171,42 @@ egnustep_env() {
> die "gnustep-make not installed!"
> }
>
> +# @FUNCTION: egnustep_make
> +# @DESCRIPTION:
> # Make utilizing GNUstep Makefiles
> egnustep_make() {
> if [[ -f ./Makefile || -f ./makefile || -f ./GNUmakefile ]] ; then
> - emake ${*} "${GS_ENV[@]}" all || die "package make failed"
> + emake ${*} "${GS_ENV[@]}" all
> return 0
> fi
> die "no Makefile found"
> }
>
> +# @FUNCTION: egnustep_install
> +# @DESCRIPTION:
> # Make-install utilizing GNUstep Makefiles
> egnustep_install() {
> if [[ ! -d ${EPREFIX}/usr/share/GNUstep/Makefiles ]]; then
> # avoid problems due to our "weird" prefix, ma