SPECS: ghc.spec - some progress with bootstrap, but pkg check failures now ...

glen glen at pld-linux.org
Thu Mar 19 11:32:34 CET 2009


Author: glen                         Date: Thu Mar 19 10:32:34 2009 GMT
Module: SPECS                         Tag: HEAD
---- Log message:
- some progress with bootstrap, but pkg check failures now
- added extralibs bcond

---- Files affected:
SPECS:
   ghc.spec (1.82 -> 1.83) 

---- Diffs:

================================================================
Index: SPECS/ghc.spec
diff -u SPECS/ghc.spec:1.82 SPECS/ghc.spec:1.83
--- SPECS/ghc.spec:1.82	Tue Mar  3 16:38:01 2009
+++ SPECS/ghc.spec	Thu Mar 19 11:32:28 2009
@@ -1,5 +1,14 @@
 # $Revision$, $Date$
 # TODO
+# - system gmp/gmp-4.2.1.tar.gz
+# - system libffi/libffi-3.0.4.tar.gz
+# - ghc-pkg is called with invalid args for 6.10 (-l, --show-package), and the .m4 are not distributed (present only in aclocal.m4 (mv to acinclude.m4?)
+# - related old gcc bug for __DISCARD__: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20359
+# - http://www.archivum.info/glasgow-haskell-users@haskell.org/2008-07/msg00060.html
+# - http://bugs.gentoo.org/212307
+# - http://bugs.gentoo.org/show_bug.cgi?id=145466
+# - $* is no longer supported at /usr/lib64/ghc-6.6.1/ghc-asm line 515., that's why with pld ghc building fails (the __DISCARD__ filtering)
+#   - Use of $* is deprecated in modern Perl, supplanted by the "/s" and "/m" modifiers on pattern matching.
 # - fails (gcc-4.2.3-1.x86_64)
 #../../compat/libghccompat.a(InstalledPackageInfo.o): In function `s7A4_6_alt':
 #ghc29245_0.hc:(.text+0x1b84d): undefined reference to `__DISCARD__'
@@ -8,12 +17,23 @@
 #ghc29245_0.hc:(.text+0x1b896): undefined reference to `__DISCARD__'
 #../../compat/libghccompat.a(InstalledPackageInfo.o):ghc29245_0.hc:(.text+0x1b8c5): more undefined references to `__DISCARD__' follow
 #collect2: ld returned 1 exit status
+# - after using official binary tarballs, some dep errors occour:
+#Configuring ghc-6.10.1...
+#cabal-bin: At least the following dependencies are missing:
+#Cabal -any,
+#base <3,
+#filepath >=1 && <1.2,
+#haskell98 -any,
+#hpc -any,
+#template-haskell -any,
+#unix -any
+#make[2]: *** [boot.stage.2] Error 1
 #
 # Conditional build:
-%bcond_with	bootstrap	# use foreign (non-rpm) ghc to bootstrap
-# due to http://hackage.haskell.org/trac/ghc/ticket/1427 (fixed by gcc42 patch)
-%bcond_with	unregistered	# non-registerised interpreter
+%bcond_with	bootstrap	# use foreign (non-rpm) ghc to bootstrap (extra 140MB to download)
+%bcond_with	unregistered	# non-registerised interpreter (use for build problems/new arches)
 %bcond_without	doc		# don't build documentation (requires haddock)
+%bcond_without	extralibs		# don't build extra libs
 #
 Summary:	Glasgow Haskell Compilation system
 Summary(pl.UTF-8):	System kompilacji Glasgow Haskell
@@ -26,6 +46,14 @@
 # Source0-md5:	54c676a632b3d73cf526b06347522c32
 Source1:	http://haskell.org/ghc/dist/%{version}/%{name}-%{version}-src-extralibs.tar.bz2
 # Source1-md5:	4ff4590f1002ae1ff608874da8643c67
+%if %{with bootstrap}
+Source3:	http://haskell.org/ghc/dist/%{version}/%{name}-%{version}-i386-unknown-linux.tar.bz2
+# NoSource3-md5:	1895a81c7788604579b5bbd01a566303
+NoSource:	3
+Source4:	http://haskell.org/ghc/dist/%{version}/%{name}-%{version}-x86_64-unknown-linux.tar.bz2
+# NoSource4-md5:	efe7ce579a482b6bd87ed80ddf6e1f5c
+NoSource:	4
+%endif
 URL:		http://haskell.org/ghc/
 BuildRequires:	OpenAL-devel
 BuildRequires:	OpenGL-GLU-devel
@@ -43,20 +71,25 @@
 BuildRequires:	docbook-dtd42-xml
 BuildRequires:	docbook-style-xsl
 BuildRequires:	haddock
+BuildRequires:	libxml2-progs
 BuildRequires:	libxslt-progs
 BuildRequires:	tetex
 BuildRequires:	tetex-dvips
 BuildRequires:	tetex-latex-bibtex
 #For generating documentation in PDF: fop or xmltex
 %endif
-Provides:	haskell
 # there is no more ghc ports in PLD
+Provides:	haskell
 # th-ppc removed:
 #error: ghc: no such package
 #error: haddock: no such package
 ExclusiveArch:	%{ix86} %{x8664}
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%if %{with bootstrap}
+#%%define		specflags	-O2 -pipe
+%endif
+
 %description
 Haskell is the standard lazy purely functional programming language.
 The current language version is Haskell 98, agreed in December 1998,
@@ -73,30 +106,7 @@
 A wide variety of Haskell related resources (tutorials, libraries,
 specifications, documentation, compilers, interpreters, references,
 contact information, links to research groups) are available from the
-Haskell home page at http://haskell.org/.
-
-Authors:
---------
-    Krasimir Angelov <ka2_mail at yahoo.com>
-    Manuel Chakravarty <chak at cse.unsw.edu.au>
-    Koen Claessen <koen at cs.chalmers.se>
-    Robert Ennals <Robert.Ennals at cl.cam.ac.uk>
-    Sigbjorn Finne <sof at galconn.com>
-    Gabrielle Keller <keller at cvs.haskell.org>
-    Marcin Kowalczyk <qrczak at knm.org.pl>
-    Jeff Lewis <jeff at galconn.com>
-    Ian Lynagh <igloo at earth.li>
-    Simon Marlow <simonmar at microsoft.com>
-    Sven Panne <sven.panne at aedion.de>
-    Ross Paterson <ross at soi.city.ac.uk>
-    Simon Peyton Jones <simonpj at microsoft.com>
-    Don Stewart <dons at cse.unsw.edu.au>
-    Volker Stolz <stolz at i2.informatik.rwth-aachen.de>
-    Wolfgang Thaller <wolfgang.thaller at gmx.net>
-    Andrew Tolmach <apt at cs.pdx.edu>
-    Keith Wansbrough <Keith.Wansbrough at cl.cam.ac.uk>
-    Michael Weber <michael.weber at post.rwth-aachen.de>
-    plus a dozen helping hands...
+Haskell home page at <http://haskell.org/>.
 
 %description -l pl.UTF-8
 Haskell to standardowy leniwy i czysto funkcyjny język programowania.
@@ -105,39 +115,16 @@
 
 GHC to dojrzałe i nowoczesne środowisko do programowania w Haskellu.
 Zawiera optymalizujący kompilator generujący dobry kod dla różnych
-platform, wraz z interakcyjnym systemem do wygodnego eksperymentowania.
-Dystrybucja zawiera narzędzia do profilowania zużycia pamięci i czasu,
-sporą kolekcję bibliotek i wsparcie dla różnych rozszerzeń języka,
-w tym współbieżności, wyjątków i łączenia z innymi językami (np. C
-albo C++).
+platform, wraz z interakcyjnym systemem do wygodnego
+eksperymentowania. Dystrybucja zawiera narzędzia do profilowania
+zużycia pamięci i czasu, sporą kolekcję bibliotek i wsparcie dla
+różnych rozszerzeń języka, w tym współbieżności, wyjątków i łączenia z
+innymi językami (np. C albo C++).
 
 Różnorodne zasoby związane z Haskellem (podręczniki, biblioteki,
 specyfikacje, dokumentacja, kompilatory, interpretery, literatura,
-informacje kontaktowe, odsyłacze do grup naukowo-badawczych)
-są dostępne ze strony domowej Haskella pod http://haskell.org/.
-
-Autorzy:
---------
-    Krasimir Angelov <ka2_mail at yahoo.com>
-    Manuel Chakravarty <chak at cse.unsw.edu.au>
-    Koen Claessen <koen at cs.chalmers.se>
-    Robert Ennals <Robert.Ennals at cl.cam.ac.uk>
-    Sigbjorn Finne <sof at galconn.com>
-    Gabrielle Keller <keller at cvs.haskell.org>
-    Marcin Kowalczyk <qrczak at knm.org.pl>
-    Jeff Lewis <jeff at galconn.com>
-    Ian Lynagh <igloo at earth.li>
-    Simon Marlow <simonmar at microsoft.com>
-    Sven Panne <sven.panne at aedion.de>
-    Ross Paterson <ross at soi.city.ac.uk>
-    Simon Peyton Jones <simonpj at microsoft.com>
-    Don Stewart <dons at cse.unsw.edu.au>
-    Volker Stolz <stolz at i2.informatik.rwth-aachen.de>
-    Wolfgang Thaller <wolfgang.thaller at gmx.net>
-    Andrew Tolmach <apt at cs.pdx.edu>
-    Keith Wansbrough <Keith.Wansbrough at cl.cam.ac.uk>
-    Michael Weber <michael.weber at post.rwth-aachen.de>
-    oraz wiele pomocnych dłoni...
+informacje kontaktowe, odsyłacze do grup naukowo-badawczych) są
+dostępne ze strony domowej Haskella pod <http://haskell.org/>.
 
 %package prof
 Summary:	Profiling libraries for GHC
@@ -155,24 +142,82 @@
 potrzebujemy systemu profilującego z GHC.
 
 %prep
-%setup -q -b1
+%setup -q %{?with_extralibs:-b1}
+%if %{with bootstrap}
+%ifarch %{ix86}
+%{__tar} -xjf %{SOURCE3}
+%endif
+%ifarch %{x8664}
+%{__tar} -xjf %{SOURCE4}
+%endif
+mv %{name}-%{version} binsrc
+%endif
+
+# 0.10.1 ghc-pkg -l is not supported
+sed -i -e 's,fp_ghc_pkg_guess" -l,fp_ghc_pkg_guess" list,' configure
+
+%build
+cat <<'EOF' > mk/build.mk
+# http://darcs.haskell.org/ghc/mk/build.mk.sample
+#SRC_HC_OPTS	 = -O2 -H64m -fasm
+#GhcStage1HcOpts = -O0 -fasm -Wall
+#GhcStage2HcOpts = -O0 -fasm -Wall
+#GhcHcOpts	   = -Rghc-timing
+#GhcLibHcOpts	= -O2 -XGenerics
+#GhcLibWays	  = p
+#SplitObjs	   = YES
+#SplitObjs	   = No
+#GhcBootLibs	 = %{!?with_extralibs:NO}%{?with_extralibs:YES}
+#%{?without_doc:HADDOCK_DOCS = NO}
+EOF
 
 %if %{with unregistered}
 cat << 'EOF' >> mk/build.mk
+# http://hackage.haskell.org/trac/ghc/wiki/Building/Unregisterised
 GhcUnregisterised=YES
 GhcWithNativeCodeGen=NO
+GhcWithInterpreter=NO
 SplitObjs=NO
 EOF
 %endif
 
-%build
-%{?with_bootstrap:PATH=$PATH:/usr/local/bin}
+top=$(pwd)
+%if %{with bootstrap}
+# we need to first install the tarball somewhere, as seems the programs don't
+# work out of the path otherwise
+if [ ! -f .bindist.install.mark ]; then
+	top=$(pwd)
+	cd binsrc
+	./configure \
+		--prefix=$top/bindist
+	%{__make} install \
+		LATEX_DOCS=NO \
+		HADDOCK_DOCS=NO
+	cd ..
+
+	touch .bindist.install.mark
+fi
+%endif
+
+%{?with_bootstrap:PATH=$top/bindist/bin:$PATH:%{_prefix}/local/bin}
 
 %configure \
 	--prefix=%{_prefix} \
-	--with-gcc="%{__cc}"
+	--with-gcc="%{__cc}" \
+%if %{with bootstrap}
+	GhcPkgCmd=$top/bindist/bin/ghc-pkg \
+%endif
+%if %{with bootstrap2}
+	--with-ghc=$top/bindist/bin/ghc \
+%endif
+%if %{with bootstrap1}
+	--with-hc=$PWD/bindist/bin/ghc \
+	--with-ghc=$PWD/bindist/ghc/dist-stage2/build/ghc/ghc \
+	--with-hc=$PWD/bindist/ghc/dist-stage2/build/ghc/ghc \
+%endif
 
 %{__make}
+
 %if %{with doc}
 %{__make} html
 # broken
@@ -248,6 +293,10 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.83  2009/03/19 10:32:28  glen
+- some progress with bootstrap, but pkg check failures now
+- added extralibs bcond
+
 Revision 1.82  2009/03/03 15:38:01  baggins
 - removed outdated patch (archs not supported)
 - removed automagic (no longer needed)
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SPECS/ghc.spec?r1=1.82&r2=1.83&f=u



More information about the pld-cvs-commit mailing list