Skip to content

Commit

Permalink
dev-scheme/chicken: bump to 4.10.0
Browse files Browse the repository at this point in the history
ebuild and patch submitted by maintainer in sec bug #467966

Package-Manager: portage-2.2.20.1
  • Loading branch information
Ian Delaney committed Sep 13, 2015
1 parent 9f86f0b commit 2ba4fbc
Show file tree
Hide file tree
Showing 3 changed files with 137 additions and 0 deletions.
1 change: 1 addition & 0 deletions dev-scheme/chicken/Manifest
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
DIST chicken-4.10.0.tar.gz 4020442 SHA256 0e07f5abcd11961986950dbeaa5a40db415f8a1b65daff9c300e9b05b334899b SHA512 ff3405652e232ba7b06a8d4fc092772259f0917b1cdd119c0cf38f27ba95fca99d2c053c0f08317014fd7085e8cf89f68b56f22cb82c2988914b972ce59e3e29 WHIRLPOOL a413fe53c1e630d88b37bc59e8035219811f71a2a7a89c3ca6fc034f645e0029bb3162a3ae152ce11895c941322de86dd15447da7946f8e53967a58e5e031c47
DIST chicken-4.8.0.3-cve-updates.tar.bz2 218025 SHA256 3e4de410766b09706be156d8460a39a8382365470f46f2da545a577a4f986502 SHA512 2ad05fbc414fe536d94a63e4d57c98c3bb19267f99e636c2039cd2c3984778fb7f7a0765c64ed6dbe4c438c14bdc94d1f83a626191e0cb817eeca5ea1e480132 WHIRLPOOL b0c7a0280ff08e1ca66a8155e3917f6b12c4e9d9b94f2b354046d3d4cbc598d5edb43c4a210d30fda59c9a4654e95adfe7b21a0aa84ab795e46b37128235ec1e
DIST chicken-4.8.0.3.tar.gz 3959422 SHA256 6a1414e6f35586e47d7f4470eaf1779a4f73dec664b14bebf8763dd804b399c3 SHA512 8a716953fe7eeaea9039e90c5a2abad7fbe341a580176abe870c7b78bfdd11f1291d90bb9df43334b7f7ea484695ba59eba3558b9e360e5e9bd21fa106679197 WHIRLPOOL f55ca79a7df54dce9612b444a5a6a767b9b18cb9ba48a91bb5abab799d260e6c8aef83dade54d38013f41cc4d4b8bbdcda77513d75c91ab038289c6eabcca2fb
76 changes: 76 additions & 0 deletions dev-scheme/chicken/chicken-4.10.0.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI="5"

inherit eutils multilib versionator

MY_PV=$(get_version_component_range 1-3)
DESCRIPTION="Chicken is a Scheme interpreter and native Scheme to C compiler"
HOMEPAGE="http://www.call-cc.org/"
SRC_URI="http://code.call-cc.org/releases/${MY_PV}/${P}.tar.gz"

LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~x86"
IUSE="emacs parallel-build doc"

DEPEND="sys-apps/texinfo
emacs? ( virtual/emacs )"
RDEPEND="emacs? ( virtual/emacs app-emacs/scheme-complete )"

src_prepare() {
if use "parallel-build"
then
epatch "${FILESDIR}"/${PV}-parallel-build.patch
fi

#Because chicken's Upstream is in the habit of using variables that
#portage also uses :( eg. $ARCH and $A
sed 's,A\(\s?=\|)\),chicken&,' -i Makefile.cross-linux-mingw \
defaults.make rules.make \
|| die "sed failed"

sed "s,ARCH,zARCH," -i Makefile.bsd Makefile.cross-linux-mingw \
Makefile.cygwin Makefile.haiku Makefile.linux Makefile.macosx \
Makefile.mingw Makefile.mingw-msys Makefile.solaris \
defaults.make rules.make \
|| die "sed failed"

sed "s,\$(PREFIX)/lib,\$(PREFIX)/$(get_libdir)," -i defaults.make || die "sed failed"
sed "s,\$(DATADIR)/doc,\$(SHAREDIR)/doc/${P}," -i defaults.make || die "sed failed"
}

src_compile() {
if use "parallel-build"
then
OPTIONS="PLATFORM=linux PREFIX=/usr"
else
OPTIONS="-j1 PLATFORM=linux PREFIX=/usr"
fi

emake ${OPTIONS} C_COMPILER_OPTIMIZATION_OPTIONS="${CFLAGS}" \
LINKER_OPTIONS="${LDFLAGS}" \
HOSTSYSTEM="${CBUILD}"
}

# chicken's testsuite is not runnable before install
# upstream has been notified of the issue
RESTRICT=test

src_install() {
# still can't run make in parallel for the install target
emake -j1 ${OPTIONS} DESTDIR="${D}" HOSTSYSTEM="${CBUILD}" \
LINKER_OPTIONS="${LDFLAGS}" \
install

rm "${D}"/usr/share/doc/${P}/LICENSE || die
dodoc NEWS

# remove HTML documentation if the user doesn't USE=doc
if ! use "doc"
then
rm -rf "${D}"/usr/share/doc/${P}/manual || die
fi
}
60 changes: 60 additions & 0 deletions dev-scheme/chicken/files/4.10.0-parallel-build.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
diff --git a/README b/README
index 8d0d067..551b716 100644
--- a/README
+++ b/README
@@ -72,7 +72,7 @@
platforms.

Note that parallel builds (using the "-j" make(1) option) are
- *not* supported.
+ also supported. Beware that parallel install will not work though.

If you invoke "make" later with different configuration parameters,
it is advisable to run:
diff --git a/rules.make b/rules.make
index 929b0a3..a8cb9b0 100644
--- a/rules.make
+++ b/rules.make
@@ -243,8 +243,8 @@ lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A): $(APPLY_HACK_OBJECT) $(LIBCHIC

# import libraries and extensions

-%.so: %.o
- $(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_DLOADABLE_OPTIONS) $^ $(LINKER_OUTPUT_OPTION) $@ \
+%.so: %.o $(PRIMARY_LIBCHICKEN)
+ $(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_DLOADABLE_OPTIONS) $< $(LINKER_OUTPUT_OPTION) $@ \
$(LINKER_LIBRARY_PREFIX)$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(LINKER_LIBRARY_SUFFIX) \
$(LIBRARIES)

@@ -580,9 +580,9 @@ chicken-profile.c: $(SRCDIR)chicken-profile.scm
$(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@
chicken-install.c: $(SRCDIR)chicken-install.scm setup-download.c setup-api.c
$(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@
-chicken-uninstall.c: $(SRCDIR)chicken-uninstall.scm
+chicken-uninstall.c: $(SRCDIR)chicken-uninstall.scm setup-api.c
$(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@
-chicken-status.c: $(SRCDIR)chicken-status.scm
+chicken-status.c: $(SRCDIR)chicken-status.scm setup-api.c
$(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@
csc.c: $(SRCDIR)csc.scm
$(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@
@@ -673,14 +673,17 @@ bench: $(CHICKEN_SHARED_EXECUTABLE) $(CSI_SHARED_EXECUTABLE) $(CSC_PROGRAM)$(EXE
.PHONY: boot-chicken

boot-chicken:
+ "$(MAKE)" PLATFORM=$(PLATFORM) CONFIG= confclean
"$(MAKE)" PLATFORM=$(PLATFORM) PREFIX=/nowhere CONFIG= \
CHICKEN=$(CHICKEN) PROGRAM_SUFFIX=-boot-stage1 STATICBUILD=1 \
C_COMPILER_OPTIMIZATION_OPTIONS="$(C_COMPILER_OPTIMIZATION_OPTIONS)" C_HACKED_APPLY= BUILDING_CHICKEN_BOOT=1 \
- confclean chicken-boot-stage1$(EXE)
+ chicken-boot-stage1$(EXE)
+ "$(MAKE)" PLATFORM=$(PLATFORM) CONFIG= touchfiles
"$(MAKE)" PLATFORM=$(PLATFORM) PREFIX=/nowhere CONFIG= \
CHICKEN=.$(SEP)chicken-boot-stage1$(EXE) PROGRAM_SUFFIX=-boot \
STATICBUILD=1 C_COMPILER_OPTIMIZATION_OPTIONS="$(C_COMPILER_OPTIMIZATION_OPTIONS)" \
- touchfiles chicken-boot$(EXE) confclean
+ chicken-boot$(EXE)
+ "$(MAKE)" PLATFORM=$(PLATFORM) CONFIG= confclean

.PHONY: touchfiles

0 comments on commit 2ba4fbc

Please sign in to comment.