commit:     64d14f3a3d8c7558194dc648a2a1ba624f669dac
Author:     Ben Kohler <bkohler <AT> gmail <DOT> com>
AuthorDate: Sat Jun 23 17:59:39 2018 +0000
Commit:     Amy Liffey <amynka <AT> gentoo <DOT> org>
CommitDate: Sat Jun 23 19:49:23 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=64d14f3a

dev-scheme/scm: fix bug 596630, partial LDFLAGS fix, EAPI=7

LDFLAGS are now respected on the main build but
not plugins yet.  Ebuild is also bumped to EAPI=7 and several unused
eclass inherits are removed.
Closes: https://bugs.gentoo.org/596630

Package-Manager: Portage-2.3.40, Repoman-2.3.9

 .../scm/files/scm-5.5.6-respect-ldflags.patch      |  12 ++
 dev-scheme/scm/scm-5.5.6-r4.ebuild                 | 169 +++++++++++++++++++++
 2 files changed, 181 insertions(+)

diff --git a/dev-scheme/scm/files/scm-5.5.6-respect-ldflags.patch 
b/dev-scheme/scm/files/scm-5.5.6-respect-ldflags.patch
new file mode 100644
index 00000000000..a78e7ddb5d7
--- /dev/null
+++ b/dev-scheme/scm/files/scm-5.5.6-respect-ldflags.patch
@@ -0,0 +1,12 @@
+diff -ur b/Makefile a/Makefile
+--- b/Makefile 2018-06-21 14:02:53.439716620 -0500
++++ a/Makefile 2018-06-21 14:03:33.900568504 -0500
+@@ -111,7 +111,7 @@
+ 
+ # SCMLIT -- try making this first!
+ scmlit:       $(ofiles) scmmain.o require.scm Makefile
+-      $(LD) -o scmlit $(ofiles) scmmain.o $(LIBS)
++      $(LD) $(LDFLAGS) -o scmlit $(ofiles) scmmain.o $(LIBS)
+       $(MAKE) checklit
+ scmflags.h:   scmflags
+ scmflags:
\ No newline at end of file

diff --git a/dev-scheme/scm/scm-5.5.6-r4.ebuild 
b/dev-scheme/scm/scm-5.5.6-r4.ebuild
new file mode 100644
index 00000000000..2d3d39bbaeb
--- /dev/null
+++ b/dev-scheme/scm/scm-5.5.6-r4.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+#version magic thanks to masterdriverz and UberLord using bash array instead 
of tr
+trarr="0abcdefghi"
+MY_PV="$(ver_cut 1)${trarr:$(ver_cut 2):1}$(ver_cut 3)"
+
+MY_P=${PN}-${MY_PV}
+S=${WORKDIR}/${PN}
+DESCRIPTION="SCM is a Scheme implementation from the author of slib"
+SRC_URI="http://groups.csail.mit.edu/mac/ftpdir/scm/${MY_P}.zip";
+HOMEPAGE="http://swiss.csail.mit.edu/~jaffer/SCM";
+
+SLOT="0"
+LICENSE="LGPL-3"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-macos"
+IUSE="arrays bignums cautious dynamic-linking engineering-notation gsubr 
inexact ioext libscm macro ncurses posix readline regex sockets unix"
+
+BDEPEND="app-arch/unzip"
+DEPEND=">=dev-scheme/slib-3.1.5
+       dev-util/cproto
+       ncurses? ( sys-libs/ncurses:0= )
+       readline? ( sys-libs/libtermcap-compat )"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${P}-multiplefixes.patch"
+       "${FILESDIR}/${P}-respect-ldflags.patch" )
+
+src_compile() {
+       # SLIB is required to build SCM.
+       local slibpath="${EPREFIX}/usr/share/slib/"
+       if [ -n "$SCHEME_LIBRARY_PATH" ]; then
+               einfo "using SLIB $SCHEME_LIBRARY_PATH"
+       elif [ -d ${slibpath} ]; then
+               export SCHEME_LIBRARY_PATH=${slibpath}
+       fi
+
+       einfo "Making scmlit"
+       emake -j1 scmlit clean
+
+       einfo "Building scm"
+       local features=""
+       use arrays && features+="arrays"
+       use bignums && features+=" bignums"
+       use cautious && features+=" cautious"
+       use engineering-notation && features+=" engineering-notation"
+       use inexact && features+=" inexact"
+       use macro && features+=" macro"
+
+       ( use readline ||
+         use ncurses ||
+         use regex ||
+         use posix ||
+         use ioext ||
+         use gsubr ||
+         use sockets ||
+         use unix ||
+         use dynamic-linking ) && features+=" dynamic-linking"
+
+       ./build \
+               --compiler-options="${CFLAGS}" \
+               --linker-options="${LDFLAGS} -L${EPREFIX}/$(get_libdir)" \
+               -s "${EPREFIX}"/usr/$(get_libdir)/scm \
+               -F ${features:="none"} \
+               -h system \
+               -o scm || die
+
+       einfo "Building DLLs"
+       if use readline; then
+               ./build \
+                       --compiler-options="${CFLAGS}" \
+                       --linker-options="${LDFLAGS}" \
+                       -h system \
+                       -F edit-line \
+                       -t dll || die
+       fi
+       if use ncurses ; then
+               ./build \
+                       --compiler-options="${CFLAGS}" \
+                       --linker-options="${LDFLAGS}" \
+                       -F curses \
+                       -h system \
+                       -t dll || die
+       fi
+       if use regex ; then
+               ./build \
+                       --compiler-options="${CFLAGS}" \
+                       --linker-options="${LDFLAGS}" \
+                       -c rgx.c \
+                       -h system \
+                       -t dll || die
+       fi
+       if use gsubr ; then
+               ./build \
+                       --compiler-options="${CFLAGS}" \
+                       --linker-options="${LDFLAGS}" \
+                       -c gsubr.c \
+                       -h system \
+                       -t dll || die
+       fi
+       if use ioext ; then
+               ./build \
+                       --compiler-options="${CFLAGS}" \
+                       --linker-options="${LDFLAGS}" \
+                       -c ioext.c \
+                       -h system \
+                       -t dll || die
+       fi
+       if use posix; then
+               ./build \
+                       --compiler-options="${CFLAGS}" \
+                       --linker-options="${LDFLAGS}" \
+                       -c posix.c \
+                       -h system \
+                       -t dll || die
+       fi
+       if use sockets ; then
+               ./build \
+                       --compiler-options="${CFLAGS}" \
+                       --linker-options="${LDFLAGS}" \
+                       -c socket.c \
+                       -h system \
+                       -t dll || die
+       fi
+       if use unix ; then
+               ./build \
+                       --compiler-options="${CFLAGS}" \
+                       --linker-options="${LDFLAGS}" \
+                       -c unix.c \
+                       -h system \
+                       -t dll || die
+       fi
+
+       if use libscm ; then
+               emake libscm.a
+       fi
+}
+
+src_test() {
+       emake check
+}
+
+src_install() {
+       emake DESTDIR="${D}" man1dir="${EPREFIX}"/usr/share/man/man1/ \
+               install
+
+       if use libscm; then
+               emake DESTDIR="${D}" libdir="${EPREFIX}"/usr/$(get_libdir)/ \
+                       installlib
+       fi
+
+       doinfo scm.info
+       doinfo hobbit.info
+}
+
+regen_catalog() {
+       einfo "Regenerating catalog..."
+       scm -e "(require 'new-catalog)"
+}
+
+pkg_postinst() {
+       [ "${ROOT}" == "/" ] && regen_catalog
+}
+
+pkg_config() {
+       regen_catalog
+}
\ No newline at end of file

Reply via email to