Skip to content

Commit

Permalink
gnustep-base/gnustep-make: 2.9.0 bump
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
voyageur committed Jun 3, 2021
1 parent 19ca752 commit 64f14ef
Show file tree
Hide file tree
Showing 2 changed files with 133 additions and 0 deletions.
1 change: 1 addition & 0 deletions gnustep-base/gnustep-make/Manifest
Original file line number Diff line number Diff line change
@@ -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
132 changes: 132 additions & 0 deletions gnustep-base/gnustep-make/gnustep-make-2.9.0.ebuild
Original file line number Diff line number Diff line change
@@ -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
}

0 comments on commit 64f14ef

Please sign in to comment.