Skip to content

Commit

Permalink
gnustep-base/gnustep-make: version bump to 2.6.8
Browse files Browse the repository at this point in the history
Strict v2 mode was enabled in this release, please fill a bug if a package in portage breaks with it

Package-Manager: portage-2.3.0
  • Loading branch information
voyageur committed Aug 17, 2016
1 parent e676a25 commit 4423bc5
Show file tree
Hide file tree
Showing 2 changed files with 143 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,3 +1,4 @@
DIST gnustep-make-2.6.2.tar.gz 562770 SHA256 7a95b3fc5bf14f6b06c4f1f716b48e9de13a11c1fa972aa3cc87736cd98f3e3a SHA512 5ef7889418e7e5acc40cd045772b08d178333dd7cb396b46bfcc117b8953c868cffff5ad41153f6cf2029f1d78d7213516cf1c2cfc88f028ffb883d0e83ea6a4 WHIRLPOOL 73f0953ba044323349a60393ca644031bac13ea48dab6ccbbf533ee5e52daa8411f6b7bdc4fc8928536c37c5edcaf3a6ef40c3c2ee335c0608b5c8d3a6d890d5
DIST gnustep-make-2.6.6.tar.gz 576589 SHA256 bcef14d875ff70b26dfc9e892f33bd3665e3d5d9b12eca0c4f2aae133aca981d SHA512 bfabcca446e37a167a5ee2da5230023387ed6edec3ca9f7067131f0f1296eb32754f35db13e7fb4670ac9bb9fa2ccfeb728adb63b692ed7f3f8f30ba39276224 WHIRLPOOL 0872046506300e23c40d23a01f29641d299bdc87d4c35d9c189064ed9110fbb7c6aaaf67626282eaa0a1a4a7bc3920617654a412222c19b98571a115020fa033
DIST gnustep-make-2.6.7.tar.gz 583730 SHA256 112b57737c3dcc66c78a5c88925ae1d672673d256d9935598e98bcd687d051e4 SHA512 4470844ec50d51ce4609b0ec8031e5dcb8422e46fbcfb6b3d6d2fee11f3b8140f6b07edcc3b8462177acb65d81cd4bc29a4fd86793ae52d6106e698170b0dad0 WHIRLPOOL da525cc4502e082ab1cce5f75c05472a1029041cf327104e714a2641f79961c4ecb9deb2afb707ae83af2fea1e50b0c064b27dd20e84d17d137a75226936d64f
DIST gnustep-make-2.6.8.tar.gz 592266 SHA256 603ed2d1339b44d154ea25229330acdedb6784b9c802b3797b2fefe3d2200064 SHA512 1df6757cd1e0dbca3eb6e4ad4346406799ebb2782f5853014cc3b1e8ae47056026e6c5cd43e5671c8802232444602fde164dde352c15b4e0d64bdfdea06bd8a0 WHIRLPOOL d54b06a9082e0b19bdb779c2e3914c57a9ecbad2cbb18de8d6f5cbe07c68208c0e169ee6e8ff41e70d619b028d208ed4089afaa86250bcd7452ae8d90e40cfa8
142 changes: 142 additions & 0 deletions gnustep-base/gnustep-make/gnustep-make-2.6.8.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=6
inherit gnustep-base eutils 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 ~x86-fbsd ~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-3.3[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} \
"${FILESDIR}"/testlibobjc.m -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() {
#--enable-objc-nonfragile-abi: only working in clang for now
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 libobjc2 objc-nonfragile-abi) \
$(use_enable native-exceptions native-objc-exceptions)
}

src_compile() {
emake
# Prepare doc here (needed when no gnustep-make is already installed)
if use doc ; then
# If a gnustep-1 environment is set
unset GNUSTEP_MAKEFILES
pushd Documentation &> /dev/null
emake -j1 all install
popd &> /dev/null
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
dodir ${GNUSTEP_SYSTEM_DOC}
cp -r Documentation/tmp-installation/System/Library/Documentation/* \
"${ED}"${GNUSTEP_SYSTEM_DOC=}
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 4423bc5

Please sign in to comment.