commit:     64f14efb433d9394fff1e0c73c055180a91748fd
Author:     Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
AuthorDate: Thu Jun  3 20:53:57 2021 +0000
Commit:     Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
CommitDate: Thu Jun  3 21:20:29 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=64f14efb

gnustep-base/gnustep-make: 2.9.0 bump

Tweak compiler dependencies (libobjc.so version has been identical for
ages now, all gcc versions in tree are supported)

Package-Manager: Portage-3.0.19, Repoman-3.0.3
Signed-off-by: Bernard Cafarelli <voyageur <AT> gentoo.org>

 gnustep-base/gnustep-make/Manifest                 |   1 +
 .../gnustep-make/gnustep-make-2.9.0.ebuild         | 132 +++++++++++++++++++++
 2 files changed, 133 insertions(+)

diff --git a/gnustep-base/gnustep-make/Manifest 
b/gnustep-base/gnustep-make/Manifest
index a21203d361c..6e3b0459875 100644
--- a/gnustep-base/gnustep-make/Manifest
+++ b/gnustep-base/gnustep-make/Manifest
@@ -1 +1,2 @@
 DIST gnustep-make-2.8.0.tar.gz 606337 BLAKE2B 
b4defb8fdd8fc17ce2ac14c7d3d63b85e817bb639b7c1ae6a150baf74cda222ac046d890e677b50398bb9953e1496a98e9eb542809c961243f4f620276ab13fb
 SHA512 
e9e57ed7a1c360c2dbf17f70d38e5107a1a9613842dcc645f10ed7a01eb9f9ee71bd2d0cacbe00439ce73f194a3eb3ed2e71409241ac96ee3bba704dcf6dfd7b
+DIST gnustep-make-2.9.0.tar.gz 611406 BLAKE2B 
73bae19b5d3d3c1e069d22ce7087308166f632277d870fa5ab125d5bc004a1518a1edb6822c61e00b98fc13a1b3354440024bd13d98662002c15298745c4e935
 SHA512 
ff185affe32d4efc2009d72a3862bc3bffebce05ea5a7fdfbf4372774e57b6654863e317ce648c248716dd3e97a4320d697a313e7eefd04f5723186be6cbf1e3

diff --git a/gnustep-base/gnustep-make/gnustep-make-2.9.0.ebuild 
b/gnustep-base/gnustep-make/gnustep-make-2.9.0.ebuild
new file mode 100644
index 00000000000..3657bdcd66f
--- /dev/null
+++ b/gnustep-base/gnustep-make/gnustep-make-2.9.0.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit gnustep-base prefix toolchain-funcs
+
+DESCRIPTION="GNUstep Makefile Package"
+HOMEPAGE="http://www.gnustep.org";
+SRC_URI="ftp://ftp.gnustep.org/pub/gnustep/core/${P}.tar.gz";
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux 
~sparc-solaris ~x86-solaris"
+IUSE="libobjc2 native-exceptions"
+
+DEPEND="${GNUSTEP_CORE_DEPEND}
+       >=sys-devel/make-3.75
+       libobjc2? ( gnustep-base/libobjc2
+               sys-devel/clang:* )
+       !libobjc2? ( !!gnustep-base/libobjc2
+               || (
+                       sys-devel/gcc:*[objc]
+                       sys-devel/clang:*
+               ) )"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+       # Determine libobjc.so to use
+       if use libobjc2; then
+               libobjc_version=libobjc.so.4
+       else
+               # Find version in active gcc
+               for ver in {2..5};
+               do
+                       if $(tc-getCC) -Werror -Wl,-l:libobjc.so.${ver} -x 
objective-c \
+                               - <<<$'int main() {}' -o /dev/null 2> /dev/null;
+                       then
+                               libobjc_version=libobjc.so.${ver}
+                       fi
+               done
+       fi
+
+       # Stop if we could not get libobjc.so
+       if [[ -z ${libobjc_version} ]]; then
+               eerror "${P} requires a working Objective-C runtime and a 
compiler with"
+               eerror "Objective-C support. Your current settings lack these 
requirements"
+               if ! use libobjc2;
+               then
+                       eerror "Please switch your active compiler to gcc with 
USE=objc, or clang"
+               fi
+               die "Could not find Objective-C runtime"
+       fi
+
+       # For existing installations, determine if we will use another 
libobjc.so
+       if has_version gnustep-base/gnustep-make; then
+               local current_libobjc="$(awk -F: '/^OBJC_LIB_FLAG/ {print $2}' 
${EPREFIX}/usr/share/GNUstep/Makefiles/config.make)"
+               # Old installations did not set this explicitely
+               : ${current_libobjc:=libobjc.so.2}
+
+               if [[ ${current_libobjc} != ${libobjc_version} ]]; then
+                       ewarn "Warning: changed libobjc.so version!!"
+                       ewarn "The libobjc.so version used for gnustep-make has 
changed"
+                       ewarn "(either by the libojbc2 use-flag or a GCC 
upgrade)"
+                       ewarn "You must rebuild all gnustep packages installed."
+                       ewarn ""
+                       ewarn "To do so, please emerge 
gnustep-base/gnustep-updater and run:"
+                       ewarn "# gnustep-updater -l"
+               fi
+       fi
+
+       if use libobjc2; then
+               export CC=clang
+       fi
+}
+
+src_prepare() {
+       # Multilib-strict
+       sed -e "s#/lib#/$(get_libdir)#" -i FilesystemLayouts/fhs-system || die 
"sed failed"
+       cp "${FILESDIR}"/gnustep-5.{csh,sh} "${T}"/
+       eprefixify "${T}"/gnustep-5.{csh,sh}
+
+       default
+}
+
+src_configure() {
+       econf \
+               INSTALL="${EPREFIX}"/usr/bin/install \
+               --with-layout=fhs-system \
+               --with-config-file="${EPREFIX}"/etc/GNUstep/GNUstep.conf \
+               --with-objc-lib-flag=-l:${libobjc_version} \
+               $(use_enable native-exceptions native-objc-exceptions)
+}
+
+src_compile() {
+       emake
+       if use doc ; then
+               emake -C Documentation
+       fi
+}
+
+src_install() {
+       # Get GNUSTEP_* variables
+       . ./GNUstep.conf
+
+       local make_eval
+       use debug || make_eval="${make_eval} debug=no"
+       make_eval="${make_eval} verbose=yes"
+
+       emake ${make_eval} DESTDIR="${D}" install
+
+       # Copy the documentation
+       if use doc ; then
+               emake -C Documentation ${make_eval} DESTDIR="${D}" install
+       fi
+
+       dodoc FAQ README RELEASENOTES
+
+       exeinto /etc/profile.d
+       doexe "${T}"/gnustep-?.sh
+       doexe "${T}"/gnustep-?.csh
+}
+
+pkg_postinst() {
+       # Warn about new layout if old GNUstep directory is still here
+       if [ -e /usr/GNUstep/System ]; then
+               ewarn "Old layout directory detected (/usr/GNUstep/System)"
+               ewarn "Gentoo has switched to FHS layout for GNUstep packages"
+               ewarn "You must first update the configuration files from this 
package,"
+               ewarn "then remerge all packages still installed with the old 
layout"
+               ewarn "You can use gnustep-base/gnustep-updater for this task"
+       fi
+}

Reply via email to