summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres Loeh <kosmikus@gentoo.org>2004-10-18 17:20:50 +0000
committerAndres Loeh <kosmikus@gentoo.org>2004-10-18 17:20:50 +0000
commit8f3b70d5c484cc3f9c6f6e816d98150c868c27af (patch)
tree11b96a1b1c528d6b390555d9c93171950e1ec789 /dev-lang/ghc
parentstable on x86 (Manifest recommit) (diff)
downloadgentoo-2-8f3b70d5c484cc3f9c6f6e816d98150c868c27af.tar.gz
gentoo-2-8f3b70d5c484cc3f9c6f6e816d98150c868c27af.tar.bz2
gentoo-2-8f3b70d5c484cc3f9c6f6e816d98150c868c27af.zip
new version, and closing #59709
Diffstat (limited to 'dev-lang/ghc')
-rw-r--r--dev-lang/ghc/ChangeLog8
-rw-r--r--dev-lang/ghc/files/digest-ghc-6.01
-rw-r--r--dev-lang/ghc/files/digest-ghc-6.2.11
-rw-r--r--dev-lang/ghc/files/digest-ghc-6.2.21
-rw-r--r--dev-lang/ghc/files/ghc-6.2.hardened.patch14
-rw-r--r--dev-lang/ghc/ghc-6.0.ebuild143
-rw-r--r--dev-lang/ghc/ghc-6.2.1-r1.ebuild40
-rw-r--r--dev-lang/ghc/ghc-6.2.2.ebuild (renamed from dev-lang/ghc/ghc-6.2.1.ebuild)79
8 files changed, 102 insertions, 185 deletions
diff --git a/dev-lang/ghc/ChangeLog b/dev-lang/ghc/ChangeLog
index 8f26f0469281..aecf98f30549 100644
--- a/dev-lang/ghc/ChangeLog
+++ b/dev-lang/ghc/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-lang/ghc
# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ChangeLog,v 1.42 2004/10/18 16:47:48 usata Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ChangeLog,v 1.43 2004/10/18 17:20:50 kosmikus Exp $
+
+*ghc-6.2.2 (18 Oct 2004)
+
+ 18 Oct 2004; Andres Loeh <kosmikus@gentoo.org> ghc-6.0.ebuild,
+ ghc-6.2.1-r1.ebuild, ghc-6.2.1.ebuild, ghc-6.2.2.ebuild:
+ New version. Included mattam's fix for #59709. Removed some old versions.
19 Oct 2004; Mamoru KOMACHI <usata@gentoo.org> ghc-6.0.1.ebuild,
ghc-6.0.ebuild, ghc-6.2-r1.ebuild, ghc-6.2.1-r1.ebuild, ghc-6.2.1.ebuild,
diff --git a/dev-lang/ghc/files/digest-ghc-6.0 b/dev-lang/ghc/files/digest-ghc-6.0
deleted file mode 100644
index 81b3f90cc500..000000000000
--- a/dev-lang/ghc/files/digest-ghc-6.0
+++ /dev/null
@@ -1 +0,0 @@
-MD5 d0eb15ac5a37a2a695bb8c2c638f96b7 ghc-6.0-src.tar.bz2 5250663
diff --git a/dev-lang/ghc/files/digest-ghc-6.2.1 b/dev-lang/ghc/files/digest-ghc-6.2.1
deleted file mode 100644
index 61f5b8e7bb46..000000000000
--- a/dev-lang/ghc/files/digest-ghc-6.2.1
+++ /dev/null
@@ -1 +0,0 @@
-MD5 fa9f90fd6b8852679c5fc16509e94d7a ghc-6.2.1-src.tar.bz2 5367409
diff --git a/dev-lang/ghc/files/digest-ghc-6.2.2 b/dev-lang/ghc/files/digest-ghc-6.2.2
new file mode 100644
index 000000000000..f022e58da9e8
--- /dev/null
+++ b/dev-lang/ghc/files/digest-ghc-6.2.2
@@ -0,0 +1 @@
+MD5 8dc5ab2137ef9593f52180b0b2423d7f ghc-6.2.2-src.tar.bz2 5407409
diff --git a/dev-lang/ghc/files/ghc-6.2.hardened.patch b/dev-lang/ghc/files/ghc-6.2.hardened.patch
new file mode 100644
index 000000000000..706fe33b6e8e
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-6.2.hardened.patch
@@ -0,0 +1,14 @@
+--- ghc/ghc.sh.orig 2004-09-25 20:07:56.256016992 +0200
++++ ghc/ghc.sh 2004-09-25 20:09:51.779454760 +0200
+@@ -1,2 +1,3 @@
++#!/bin/bash
+ # Mini-driver for GHC
+-exec $GHCBIN $TOPDIROPT ${1+"$@"}
++exec ${GHCBIN} ${TOPDIROPT} @GHC_CFLAGS@ ${1+"$@"}
+--- ghci/ghci.sh.orig 2004-09-25 20:08:07.860252880 +0200
++++ ghci/ghci.sh 2004-09-25 20:09:45.880351560 +0200
+@@ -1,2 +1,3 @@
++#!/bin/bash
+ # Mini-driver for GHCi
+-exec $GHCBIN $TOPDIROPT --interactive ${1+"$@"}
++exec ${GHCBIN} ${TOPDIROPT} @GHC_CFLAGS@ --interactive ${1+"$@"}
diff --git a/dev-lang/ghc/ghc-6.0.ebuild b/dev-lang/ghc/ghc-6.0.ebuild
deleted file mode 100644
index 543657fe6f68..000000000000
--- a/dev-lang/ghc/ghc-6.0.ebuild
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright 1999-2004 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-6.0.ebuild,v 1.9 2004/10/18 16:47:48 usata Exp $
-
-#Some explanation of bootstrap logic:
-#
-#After thinking through the best way to bootstrap ghc I decided to split it into
-#ghc and ghc-bin and make ghc depend on ghc-bin.
-# The ebuild has been revamped and greatly simplified. Bootstrap off old 4x hc files no longer works on x86.
-#Not sure what happens with old scheme on sparc, as I did not see any test reports.
-#
-#The considerations:
-#Making ghc unpack binary build first (under ${WORKDIR}) and bootstrapping from that will effectively force
-#ghc-bin reinstall every time ghc is rebuilt or upgraded. What is worse it will likely force download of binary image
-#at upgrade, which is not nice (in fact quite bad for modem users - 16+ MB).
-#
-#The best results are achieved if ghc-bin is left alone after ghc installation -
-#Both ebuilds install in the same place, thus space penalty is minimal. In fact only the docs exist in double
-#(considering that ghc is not installing much docs at present this looks more like an advantage).
-#When the upgrade time comes, if you still have ghc-bin around, portage will happily bootstrap off
-#your existing ghc (or ghc-bin, whichever was merged last), without attempting to ruin anything...
-#
-#There is only one issue: ghci will be successfully built only if ghc is bootstrapped from the same version.
-#Thus we need to detect presently installed one and bootstrap in one or two stages..
-
-inherit base
-
-IUSE="doc tetex opengl"
-
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="http://www.haskell.org/ghc/"
-
-SRC_URI="http://www.haskell.org/ghc/dist/${PV}/ghc-${PV}-src.tar.bz2"
-
-LICENSE="as-is"
-SLOT="0"
-KEYWORDS="~x86 ~sparc -ppc -alpha"
-
-
-PROVIDE="virtual/ghc"
-# FIXME: Add USE support for parallel haskell (requires PVM)
-# Get PVM from ftp://ftp.netlib.org/pvm3/
-DEPEND="virtual/ghc
- >=dev-lang/perl-5.6.1
- >=sys-devel/gcc-2.95.3
- >=sys-devel/make-3.79.1
- >=sys-apps/sed-3.02.80
- >=sys-devel/flex-2.5.4a
- >=dev-libs/gmp-4.1
- doc? ( >=app-text/openjade-1.3.1
- >=app-text/sgml-common-0.6.3
- ~app-text/docbook-sgml-dtd-3.1
- >=app-text/docbook-dsssl-stylesheets-1.64
- >=dev-haskell/haddock-0.4
- tetex? ( virtual/tetex
- >=app-text/jadetex-3.12 ) )
- opengl? ( virtual/opengl
- virtual/glu
- virtual/glut )"
-
-RDEPEND="virtual/libc
- >=sys-devel/gcc-2.95.3
- >=dev-lang/perl-5.6.1
- >=dev-libs/gmp-4.1
- opengl? ( virtual/opengl virtual/glu virtual/glut )"
-
-# extend path to /opt/ghc/bin to guarantee that ghc-bin is found
-GHCPATH="${PATH}:/opt/ghc/bin"
-
-src_unpack() {
- base_src_unpack
-
- # fix libraries/OpenGL/Makefile
- cd ${S}
- pushd libraries/OpenGL
- mv Makefile Makefile-orig
- sed -e 's/\(-D.*=\)"\(.*\)"/\1\\\"\2\\\"/' Makefile-orig > Makefile
- popd
-}
-
-src_compile() {
- local myconf
- if use opengl; then
- myconf="--enable-hopengl"
- fi
-
- # unset SGML_CATALOG_FILES because documentation installation
- # breaks otherwise ...
- PATH="${GHCPATH}" SGML_CATALOG_FILES="" econf \
- --enable-threaded-rts ${myconf} || die "econf failed"
-
- # the build does not seem to work all that
- # well with parallel make
- make || die
-
- # if documentation has been requested, build documentation ...
- if use doc; then
- emake html || die
- if use tetex; then
- emake ps || die
- fi
- fi
-
-}
-
-src_install () {
- local mydoc
-
- # determine what to do with documentation
- if use doc; then
- mydoc="html"
- if use tetex; then
- mydoc="${mydoc} ps"
- fi
- else
- mydoc=""
- # needed to prevent haddock from being called
- echo NO_HADDOCK_DOCS=YES >> mk/build.mk
- fi
- echo SGMLDocWays="${mydoc}" >> mk/build.mk
-
- make install install-docs \
- prefix="${D}/usr" \
- datadir="${D}/usr/share/doc/${PF}" \
- infodir="${D}/usr/share/info" \
- mandir="${D}/usr/share/man" || die
-
- #need to remove ${D} from ghcprof script
- cd ${D}/usr/bin
- mv ghcprof ghcprof-orig
- sed -e 's:$FPTOOLS_TOP_ABS:#$FPTOOLS_TOP_ABS:' ghcprof-orig > ghcprof
- chmod a+x ghcprof
- rm -f ghcprof-orig
-
- cd ${S}/ghc
- dodoc README ANNOUNCE LICENSE VERSION
-}
-
-
-pkg_postinst () {
- einfo "If you have dev-lang/ghc-bin installed, you might"
- einfo "want to unmerge it again. It is no longer needed."
-}
diff --git a/dev-lang/ghc/ghc-6.2.1-r1.ebuild b/dev-lang/ghc/ghc-6.2.1-r1.ebuild
index 059fe3739bbd..7de8e347d9c6 100644
--- a/dev-lang/ghc/ghc-6.2.1-r1.ebuild
+++ b/dev-lang/ghc/ghc-6.2.1-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-6.2.1-r1.ebuild,v 1.4 2004/10/18 16:47:48 usata Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-6.2.1-r1.ebuild,v 1.5 2004/10/18 17:20:50 kosmikus Exp $
#Some explanation of bootstrap logic:
#
@@ -23,7 +23,7 @@
#There is only one issue: ghci will be successfully built only if ghc is bootstrapped from the same version.
#Thus we need to detect presently installed one and bootstrap in one or two stages..
-inherit base
+inherit base flag-o-matic eutils
IUSE="doc tetex opengl"
@@ -67,17 +67,40 @@ RDEPEND="virtual/libc
# extend path to /opt/ghc/bin to guarantee that ghc-bin is found
GHCPATH="${PATH}:/opt/ghc/bin"
+SUPPORTED_CFLAGS=""
+
+# Setup supported CFLAGS.
+setup_cflag() {
+ OLD_CFLAGS="${CFLAGS}"
+ CFLAGS="${CFLAGS} $1"
+ strip-unsupported-flags
+
+ if [ "${OLD_CFLAGS}" != "${CFLAGS}" ];
+ then
+ SUPPORTED_CFLAGS="$1 ${SUPPORTED_CFLAGS}"
+ fi
+}
+
+setup_cflags() {
+ setup_cflag "-fno-pic"
+ setup_cflag "-fno-stack-protector"
+}
+
src_unpack() {
base_src_unpack
# hardened-gcc needs to be disabled, because the
# mangler doesn't accept its output; yes, the 6.2 version
# should do ...
- cd ${S}
- bzcat ${FILESDIR}/ghc-6.2.hardened.patch.bz2 | patch -p1
- pushd ghc/compiler/ghci
- bzcat ${FILESDIR}/ghc-6.2.1-linker.patch.bz2 | patch -p0
+ cd ${S}/ghc
+ pushd driver
+ setup_cflags
+ epatch ${FILESDIR}/${PN}-6.2.hardened.patch
+ sed -i -e "s|@GHC_CFLAGS@|${SUPPORTED_CFLAGS//-f/-optc-f}|" ghc/ghc.sh
+ sed -i -e "s|@GHC_CFLAGS@|${SUPPORTED_CFLAGS//-f/-optc-f}|" ghci/ghci.sh
popd
+ cd compiler/ghci
+ bzcat ${FILESDIR}/ghc-6.2.1-linker.patch.bz2 | patch -p0
}
src_compile() {
@@ -91,8 +114,9 @@ src_compile() {
# (this is still necessary, even though we have the patch, because
# we might be bootstrapping from a version that didn't have the
# patch included)
- echo "SRC_CC_OPTS+=-fno-pic -fno-stack-protector" >> mk/build.mk
- echo "SRC_HC_OPTS+=-optc-fno-pic -optc-fno-stack-protector" >> mk/build.mk
+ setup_cflags
+ echo "SRC_CC_OPTS+=${SUPPORTED_CFLAGS}" >> mk/build.mk
+ echo "SRC_HC_OPTS+=${SUPPORTED_CFLAGS//-f/-optc-f}" >> mk/build.mk
# force the config variable ArSupportsInput to be unset;
# ar in binutils >= 2.14.90.0.8-r1 seems to be classified
diff --git a/dev-lang/ghc/ghc-6.2.1.ebuild b/dev-lang/ghc/ghc-6.2.2.ebuild
index 719a9dcbbc1e..c380f9f3319d 100644
--- a/dev-lang/ghc/ghc-6.2.1.ebuild
+++ b/dev-lang/ghc/ghc-6.2.2.ebuild
@@ -1,29 +1,20 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-6.2.1.ebuild,v 1.9 2004/10/18 16:47:48 usata Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-6.2.2.ebuild,v 1.1 2004/10/18 17:20:50 kosmikus Exp $
-#Some explanation of bootstrap logic:
+# Brief explanation of the bootstrap logic:
#
-#After thinking through the best way to bootstrap ghc I decided to split it into
-#ghc and ghc-bin and make ghc depend on ghc-bin.
-# The ebuild has been revamped and greatly simplified. Bootstrap off old 4x hc files no longer works on x86.
-#Not sure what happens with old scheme on sparc, as I did not see any test reports.
+# ghc requires ghc-bin to bootstrap.
+# Therefore,
+# (1) both ghc-bin and ghc provide virtual/ghc
+# (2) virtual/ghc *must* default to ghc-bin
+# (3) ghc depends on virtual/ghc
#
-#The considerations:
-#Making ghc unpack binary build first (under ${WORKDIR}) and bootstrapping from that will effectively force
-#ghc-bin reinstall every time ghc is rebuilt or upgraded. What is worse it will likely force download of binary image
-#at upgrade, which is not nice (in fact quite bad for modem users - 16+ MB).
-#
-#The best results are achieved if ghc-bin is left alone after ghc installation -
-#Both ebuilds install in the same place, thus space penalty is minimal. In fact only the docs exist in double
-#(considering that ghc is not installing much docs at present this looks more like an advantage).
-#When the upgrade time comes, if you still have ghc-bin around, portage will happily bootstrap off
-#your existing ghc (or ghc-bin, whichever was merged last), without attempting to ruin anything...
-#
-#There is only one issue: ghci will be successfully built only if ghc is bootstrapped from the same version.
-#Thus we need to detect presently installed one and bootstrap in one or two stages..
+# This solution has the advantage that the binary distribution
+# can be removed once an forall after the first succesful install
+# of ghc.
-inherit base
+inherit base flag-o-matic eutils
IUSE="doc tetex opengl"
@@ -34,7 +25,7 @@ SRC_URI="http://www.haskell.org/ghc/dist/${PV}/ghc-${PV}-src.tar.bz2"
LICENSE="as-is"
SLOT="0"
-KEYWORDS="~x86 ~ppc -alpha"
+KEYWORDS="~x86 -alpha"
PROVIDE="virtual/ghc"
@@ -67,14 +58,38 @@ RDEPEND="virtual/libc
# extend path to /opt/ghc/bin to guarantee that ghc-bin is found
GHCPATH="${PATH}:/opt/ghc/bin"
+SUPPORTED_CFLAGS=""
+
+# Setup supported CFLAGS.
+setup_cflag() {
+ OLD_CFLAGS="${CFLAGS}"
+ CFLAGS="${CFLAGS} $1"
+ strip-unsupported-flags
+
+ if [ "${OLD_CFLAGS}" != "${CFLAGS}" ];
+ then
+ SUPPORTED_CFLAGS="$1 ${SUPPORTED_CFLAGS}"
+ fi
+}
+
+setup_cflags() {
+ setup_cflag "-fno-pic"
+ setup_cflag "-fno-stack-protector"
+}
+
src_unpack() {
base_src_unpack
# hardened-gcc needs to be disabled, because the
# mangler doesn't accept its output; yes, the 6.2 version
# should do ...
- cd ${S}
- bzcat ${FILESDIR}/ghc-6.2.hardened.patch.bz2 | patch -p1
+ cd ${S}/ghc
+ pushd driver
+ setup_cflags
+ epatch ${FILESDIR}/${PN}-6.2.hardened.patch
+ sed -i -e "s|@GHC_CFLAGS@|${SUPPORTED_CFLAGS//-f/-optc-f}|" ghc/ghc.sh
+ sed -i -e "s|@GHC_CFLAGS@|${SUPPORTED_CFLAGS//-f/-optc-f}|" ghci/ghci.sh
+ popd
}
src_compile() {
@@ -88,8 +103,9 @@ src_compile() {
# (this is still necessary, even though we have the patch, because
# we might be bootstrapping from a version that didn't have the
# patch included)
- echo "SRC_CC_OPTS+=-fno-pic -fno-stack-protector" >> mk/build.mk
- echo "SRC_HC_OPTS+=-optc-fno-pic -optc-fno-stack-protector" >> mk/build.mk
+ setup_cflags
+ echo "SRC_CC_OPTS+=${SUPPORTED_CFLAGS}" >> mk/build.mk
+ echo "SRC_HC_OPTS+=${SUPPORTED_CFLAGS//-f/-optc-f}" >> mk/build.mk
# force the config variable ArSupportsInput to be unset;
# ar in binutils >= 2.14.90.0.8-r1 seems to be classified
@@ -97,7 +113,7 @@ src_compile() {
echo "ArSupportsInput:=" >> mk/build.mk
# Required under ppc to work around some obscure linker problem.
- if ( use ppc )
+ if use ppc;
then
echo "SplitObjs=NO" >> mk/build.mk
fi
@@ -110,13 +126,13 @@ src_compile() {
# the build does not seem to work all that
# well with parallel make
- make || die "make failed"
+ emake -j1 || die "make failed"
# if documentation has been requested, build documentation ...
if use doc; then
- make html || die "make html failed"
+ emake -j1 html || die "make html failed"
if use tetex; then
- make ps || die "make ps failed"
+ emake -j1 ps || die "make ps failed"
fi
fi
@@ -142,11 +158,12 @@ src_install () {
fi
echo SGMLDocWays="${mydoc}" >> mk/build.mk
- make ${insttarget} \
+ emake -j1 ${insttarget} \
prefix="${D}/usr" \
datadir="${D}/usr/share/doc/${PF}" \
infodir="${D}/usr/share/info" \
- mandir="${D}/usr/share/man" || die
+ mandir="${D}/usr/share/man" \
+ || die "make ${insttarget} failed"
#need to remove ${D} from ghcprof script
cd ${D}/usr/bin