# Copyright (c) 2007-2009 Herbert Graeber # This file and all modifications and additions to the pristine # package are under the same license as the package itself. # # Please submit bugfixes or comments to herbert@links2linux.de # norootforbuild Name: ghc Version: 6.10.4 Release: 0 Summary: The Glasgow Haskell Compilation system Summary(de): Das Glasgow-Haskell-Compilation-System License: BSD3 Group: Development/Languages/Haskell Source0: http://haskell.org/ghc/dist/%{version}/%{name}-%{version}-src.tar.bz2 Source1: http://haskell.org/ghc/dist/%{version}/%{name}-%{version}-src-extralibs.tar.bz2 Source3: macros.ghc URL: http://haskell.org/ghc/ Provides: haddock = 2.4.2 Obsoletes: haddock <= 2.3.0, haddock-doc <= 2.3.0 PreReq: update-alternatives Requires: gmp-devel Requires: libedit-devel Requires: update-alternatives BuildRequires: ghc >= 5.0 BuildRequires: happy >= 1.15 BuildRequires: alex >= 2.0 BuildRequires: ncurses-devel BuildRequires: gmp-devel BuildRequires: texlive-latex BuildRequires: libxslt BuildRequires: sgml-skel BuildRequires: docbook-xsl-stylesheets BuildRequires: docbook-utils BuildRequires: update-alternatives %if 0%{?suse_version} >= 1100 BuildRequires: java-1_6_0-openjdk %else BuildRequires: java-1_5_0-sun %endif BuildRequires: fop BuildRequires: xmltex %if 0%{?suse_version} >= 1110 BuildRequires: dblatex %endif BuildRequires: fdupes Provides: haskell_compiler Provides: ghc-Cabal-devel = 1.6.0.3 Provides: ghc-HUnit-devel = 1.2.0.3 Provides: ghc-QuickCheck-devel = 1.2.0.0 Provides: ghc-array-devel = 0.2.0.0 Provides: ghc-base-devel = 3.0.3.1 Provides: ghc-base-devel = 4.1.0.0 Provides: ghc-bytestring-devel = 0.9.1.4 Provides: ghc-containers-devel = 0.2.0.1 Provides: ghc-directory-devel = 1.0.0.3 Provides: ghc-dph-base-devel = 0.3 Provides: ghc-dph-par-devel = 0.3 Provides: ghc-dph-prim-interface-devel = 0.3 Provides: ghc-dph-prim-par-devel = 0.3 Provides: ghc-dph-prim-seq-devel = 0.3 Provides: ghc-dph-seq-devel = 0.3 Provides: ghc-extensible-exceptions-devel = 0.1.1.0 Provides: ghc-filepath-devel = 1.1.0.2 Provides: ghc-ghc-prim-devel = 0.1.0.0 Provides: ghc-haddock-devel = 2.4.2 Provides: ghc-haskell-src-devel = 1.0.1.3 Provides: ghc-haskell98-devel = 1.0.1.0 Provides: ghc-hpc-devel = 0.5.0.3 Provides: ghc-hsc2hs-devel = 0.67 Provides: ghc-html-devel = 1.0.1.2 Provides: ghc-integer-devel = 0.1.0.1 Provides: ghc-mtl-devel = 1.1.0.2 Provides: ghc-network-devel = 2.2.1 Provides: ghc-old-locale-devel = 1.0.0.1 Provides: ghc-old-time-devel = 1.0.0.2 Provides: ghc-packedstring-devel = 0.1.0.1 Provides: ghc-parallel-devel = 1.1.0.1 Provides: ghc-parsec-devel = 2.1.0.1 Provides: ghc-pretty-devel = 1.0.1.0 Provides: ghc-process-devel = 1.0.1.1 Provides: ghc-random-devel = 1.0.0.1 Provides: ghc-regex-base-devel = 0.72.0.2 Provides: ghc-regex-compat-devel = 0.71.0.1 Provides: ghc-regex-posix-devel = 0.72.0.3 Provides: ghc-stm-devel = 2.1.1.2 Provides: ghc-syb-devel = 0.1.0.1 Provides: ghc-template-haskell-devel = 2.3.0.1 Provides: ghc-time-devel = 1.1.3 Provides: ghc-unix-devel = 2.3.2.0 Provides: ghc-xhtml-devel = 3000.2.0.1 BuildRoot: %{_tmppath}/%{name}-%{version}-build Prefix: /usr %description Haskell is the standard purely functional programming language; the current language version is Haskell 98, agreed in December 1998. GHC is a state-of-the-art programming suite for Haskell. Included is an optimising compiler generating good code for a variety of platforms, together with an interactive system for convenient, quick development. The distribution includes space and time profiling facilities, a large collection of libraries, and support for various language extensions, including concurrency, exceptions, and foreign language interfaces (C, C++, etc). A wide variety of Haskell related resources (tutorials, libraries, specifications, documentation, compilers, interprbeters, references, contact information, links to research groups) are available from the Haskell home page at . %package prof Summary: Profiling libraries for GHC Group: Development/Libraries/Haskell Requires: ghc = %{version}-%{release} Provides: ghc-prof = %{version} Provides: ghc-Cabal-prof = 1.6.0.3 Provides: ghc-HUnit-prof = 1.2.0.3 Provides: ghc-QuickCheck-prof = 1.2.0.0 Provides: ghc-array-prof = 0.2.0.0 Provides: ghc-base-prof = 3.0.3.1 Provides: ghc-base-prof = 4.1.0.0 Provides: ghc-bytestring-prof = 0.9.1.4 Provides: ghc-containers-prof = 0.2.0.1 Provides: ghc-directory-prof = 1.0.0.3 Provides: ghc-dph-base-prof = 0.3 Provides: ghc-dph-par-prof = 0.3 Provides: ghc-dph-prim-interface-prof = 0.3 Provides: ghc-dph-prim-par-prof = 0.3 Provides: ghc-dph-prim-seq-prof = 0.3 Provides: ghc-dph-seq-prof = 0.3 Provides: ghc-extensible-exceptions-prof = 0.1.1.0 Provides: ghc-filepath-prof = 1.1.0.2 Provides: ghc-ghc-prim-prof = 0.1.0.0 Provides: ghc-haddock-prof = 2.4.2 Provides: ghc-haskell-src-prof = 1.0.1.3 Provides: ghc-haskell98-prof = 1.0.1.0 Provides: ghc-hpc-prof = 0.5.0.3 Provides: ghc-hsc2hs-prof = 0.67 Provides: ghc-html-prof = 1.0.1.2 Provides: ghc-integer-prof = 0.1.0.1 Provides: ghc-mtl-prof = 1.1.0.2 Provides: ghc-network-prof = 2.2.1 Provides: ghc-old-locale-prof = 1.0.0.1 Provides: ghc-old-time-prof = 1.0.0.2 Provides: ghc-packedstring-prof = 0.1.0.1 Provides: ghc-parallel-prof = 1.1.0.1 Provides: ghc-parsec-prof = 2.1.0.1 Provides: ghc-pretty-prof = 1.0.1.0 Provides: ghc-process-prof = 1.0.1.1 Provides: ghc-random-prof = 1.0.0.1 Provides: ghc-regex-base-prof = 0.72.0.2 Provides: ghc-regex-compat-prof = 0.71.0.1 Provides: ghc-regex-posix-prof = 0.72.0.3 Provides: ghc-stm-prof = 2.1.1.2 Provides: ghc-syb-prof = 0.1.0.1 Provides: ghc-template-haskell-prof = 2.3.0.1 Provides: ghc-time-prof = 1.1.3 Provides: ghc-unix-prof = 2.3.2.0 Provides: ghc-xhtml-prof = 3000.2.0.1 %description prof Profiling libraries for Glorious Glasgow Haskell Compilation System (GHC). They should be installed when GHC's profiling subsystem is needed. %package doc Summary: Documentation for GHC Group: Development/Languages/Haskell Requires: ghc = %{version}-%{release} Provides: ghc-Cabal-doc = 1.6.0.3 Provides: ghc-HUnit-doc = 1.2.0.3 Provides: ghc-QuickCheck-doc = 1.2.0.0 Provides: ghc-array-doc = 0.2.0.0 Provides: ghc-base-doc = 3.0.3.1 Provides: ghc-base-doc = 4.1.0.0 Provides: ghc-bytestring-doc = 0.9.1.4 Provides: ghc-containers-doc = 0.2.0.1 Provides: ghc-directory-doc = 1.0.0.3 Provides: ghc-dph-base-doc = 0.3 Provides: ghc-dph-par-doc = 0.3 Provides: ghc-dph-prim-interface-doc = 0.3 Provides: ghc-dph-prim-par-doc = 0.3 Provides: ghc-dph-prim-seq-doc = 0.3 Provides: ghc-dph-seq-doc = 0.3 Provides: ghc-extensible-exceptions-doc = 0.1.1.0 Provides: ghc-filepath-doc = 1.1.0.2 Provides: ghc-ghc-prim-doc = 0.1.0.0 Provides: ghc-haddock-doc = 2.4.2 Provides: ghc-haskell-src-doc = 1.0.1.3 Provides: ghc-haskell98-doc = 1.0.1.0 Provides: ghc-hpc-doc = 0.5.0.3 Provides: ghc-hsc2hs-doc = 0.67 Provides: ghc-html-doc = 1.0.1.2 Provides: ghc-integer-doc = 0.1.0.1 Provides: ghc-mtl-doc = 1.1.0.2 Provides: ghc-network-doc = 2.2.1 Provides: ghc-old-locale-doc = 1.0.0.1 Provides: ghc-old-time-doc = 1.0.0.2 Provides: ghc-packedstring-doc = 0.1.0.1 Provides: ghc-parallel-doc = 1.1.0.1 Provides: ghc-parsec-doc = 2.1.0.1 Provides: ghc-pretty-doc = 1.0.1.0 Provides: ghc-process-doc = 1.0.1.1 Provides: ghc-random-doc = 1.0.0.1 Provides: ghc-regex-base-doc = 0.72.0.2 Provides: ghc-regex-compat-doc = 0.71.0.1 Provides: ghc-regex-posix-doc = 0.72.0.3 Provides: ghc-stm-doc = 2.1.1.2 Provides: ghc-syb-doc = 0.1.0.1 Provides: ghc-template-haskell-doc = 2.3.0.1 Provides: ghc-time-doc = 1.1.3 Provides: ghc-unix-doc = 2.3.2.0 Provides: ghc-xhtml-doc = 3000.2.0.1 %description doc Preformatted documentation for the Glorious Glasgow Haskell Compilation System (GHC) and its libraries. It should be installed if you like to have local access to the documentation in PostScript and HTML format. Alternatively, the documentation is available online at http://haskell.org/ghc/documentation.html # the debuginfo subpackage is currently empty anyway, so don't generate it %define debug_package %{nil} %define __spec_install_post /usr/lib/rpm/brp-compress %prep %setup -q -b 1 %build export CFLAGS="$RPM_OPT_FLAGS" CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \ CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \ FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \ ./configure --host=%{_target_platform} --build=%{_target_platform} --target=%{_target_platform} \ --program-prefix=%{?_program_prefix} --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \ --bindir=%{_bindir} --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} --datadir=%{_datadir} \ --includedir=%{_includedir} --libdir=%{_libdir} --libexecdir=%{_libexecdir} \ --localstatedir=%{_localstatedir} --sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \ --infodir=%{_infodir} \ %ifarch x86_64 amd64 ia32e --enable-libsuffix=64 %endif # Don't install these tools, we'll use update-alternatives below. touch mk/build.mk echo "NO_INSTALL_RUNHASKELL=YES" >>mk/build.mk #echo "NO_INSTALL_HSC2HS=YES" >>mk/build.mk cat <<"EOF" >>mk/build.mk docdir := %{_datadir}/doc/%{name} htmldir := $(docdir) dvidir := $(docdir) pdfdir := $(docdir) psdir := $(docdir) EOF make %{?jobs:-j%jobs} all datadir="${_datadir}/doc/%{name}" make html make -C libraries HADDOCK_DOCS=YES ( cd libraries/Cabal && docbook2html doc/Cabal.xml --output doc/Cabal ) make -C docs/storage-mgt ps %install make DESTDIR=%{buildroot} docdir=%{_datadir}/doc/%{name} HADDOCK_DOCS=YES install install-docs mv %{buildroot}%{_prefix}/bin/hsc2hs %{buildroot}%{_prefix}/bin/hsc2hs-ghc install -D -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/rpm/macros.ghc dir=`pwd` pushd %{buildroot} libdir=`echo %{_libdir}/%{name}-%{version} | sed 's|^/||'` find $libdir -type d -print | \ sed 's|^|%dir /|' > $dir/rpm-noprof-lib-files find $libdir ! -type d ! -name '*.p_hi' ! -name '*_p.a' -print | \ sed 's|^|/|' >> $dir/rpm-noprof-lib-files find $libdir ! -type d \( -name '*.p_hi' -or -name '*_p.a' \) -print | \ sed 's|^|/|' > $dir/rpm-prof-lib-files popd %fdupes $RPM_BUILD_ROOT %post update-alternatives --install %{_bindir}/runhaskell runhaskell \ %{_bindir}/runghc 500 update-alternatives --install %{_bindir}/hsc2hs hsc2hs \ %{_bindir}/hsc2hs-ghc 500 %preun if test "$1" = 0; then update-alternatives --remove runhaskell %{_bindir}/runghc update-alternatives --remove hsc2hs %{_bindir}/hsc2hs-ghc fi %files -f rpm-noprof-lib-files %defattr(-,root,root) %doc ANNOUNCE %doc HACKING %doc LICENSE %doc README %{_sysconfdir}/rpm/macros.ghc %{_bindir}/ghc %{_bindir}/ghc-%{version} %{_bindir}/ghc-pkg %{_bindir}/ghc-pkg-%{version} %{_bindir}/ghci %{_bindir}/ghci-%{version} %{_bindir}/hasktags %{_bindir}/hp2ps %{_bindir}/hpc %{_bindir}/hsc2hs-ghc %{_bindir}/runghc %{_bindir}/runhaskell %{_bindir}/haddock %{_mandir}/man1/ghc.1* %dir %{_libdir}/ghc-%{version} %config(noreplace) %{_libdir}/ghc-%{version}/package.conf %files prof -f rpm-prof-lib-files %defattr(-,root,root) %files doc %defattr(-,root,root) %doc LICENSE %{_datadir}/doc/%{name} %doc docs/comm %doc docs/docbook-cheat-sheet/docbook-cheat-sheet %doc docs/users_guide/users_guide %doc libraries/Cabal/doc/Cabal %doc docs/storage-mgt/ldv.ps %doc docs/storage-mgt/rp.ps %doc docs/storage-mgt/sm.ps %changelog * Sun Jul 26 2009 Herbert Graeber 6.10.4 - update to version 6.10.4 * Fixed a segfault that could occur when calling mkWeakForeignEnv#. * Fixed a crash that could occur when calling unblock inside unsafePerformIO. * Stop primops such as readMutVar# being inlined, which can cause loss of referential transparency. * Fixed a bug that meant ctrl-C was ignored by processes we run with runProcess. * Fixed a bug where gcc processes run by GHC get killed on Mac OS X 10.4.11. * Fixed a bug where processes on Windows could hold file handles open after they had finished, leading to permission denied errors. * GHCi only uses Haskeline if the input is a terminal. * Fixed building with newer versions of MSYS binutils. * Mon May 11 2009 Herbert Graeber 6.10.3 - add provides for libraries contained - dblatex is only available for 11.0 up * Sun May 10 2009 Herbert Graeber 6.10.3 - Update to version 6.10.3 * Control-C now works again in GHCi. In 6.10.2 it was ignored on some platformsr due to the changes in signal handling. * GHCi uses Haskeline, rather than editline, for line editing. This fixes a crash when pressing control-C on some platforms, removes a C library dependency, and provides a better user interface. * It is now possible to build PDF and PS versions of the users guide, using dblatex. * Mon Apr 21 2009 Herbert Graeber 6.10.2 - Fix macros.ghc to use the right doc directory for reindex * Mon Apr 13 2009 Herbert Graeber 6.10.2 - update rpm macros to generate -devel subpackages for libraries * Thu Apr 2 2009 Herbert Graeber 6.10.2 - Update to version 6.10.2 * System.FilePath.dropTrailingPathSeparator "\\" will now return "\\" rather than "". * The compatibility Control.OldException functions now catch new-style exceptions as DynExceptions. * It is now possible to create C finalizers which, unlike Haskell finalizers, are guaranteed to run. * There is now a +RTS -xm
flag, which tells GHC where to try to allocate memory. * There is now a +RTS --machine-readable flag. Currently it only affects the +RTS -t output. * There are now more fields printed by the +RTS --info flag. * ghc-pkg will now complain if told to use a package.conf that doesn't exist. * ghc-pkg check now looks for missing files (including .hi files), and reports all packages that are transitively broken. * The TypeFamilies extension now implies the RelaxedPolyRec extension. * We now ship with haddock 2.4.2 (was 2.3.0). * Several Library updates * Sun Mar 1 2009 Herbert Graeber 6.10.1 - Obsolete external haddock - remove support for openSUSE <= 10.2 - remove provides for library components * Wed Feb 25 2009 herbert Graeber 6.10.1 - fix install of macros rpm * Tue Feb 24 2009 herbert Graeber 6.10.1 - prepare for use of haskell packaging conventions - move library doc files to /usr/share/doc/ghc/libraries * Mon Nov 25 2008 Herbert Graeber 6.10.1 - add some directories to files list * Wed Nov 5 2008 Herbert Graeber 6.10.1 - update to version 6.10.1 * Fri Aug 22 2008 Herbert Graeber 6.8.3 - fix the optional-openal patch - only one job for building documentation * Wed Aug 20 2008 Herbert Graeber 6.8.3 - repackaged tar file usinmg bz2 - changed library provides to match the ones generated by cabal-rpm * Tue Aug 19 2008 Herbert Graeber 6.8.3 - the ghc-doc packages contains the LICENSES files even without docs built * Mon Aug 18 2008 Herbert Graeber 6.8.3 - add provides for all libraries included - create a doc package even when docs cannot be created - remove support for SUSE Linux 10.0 and below - add requirement for readline-devel - do not build docs for ext-core for now - suppress some messages from rpmlint - no man page without docs - build docs only if the ghc version haddock has built with matches the ghc to build - fix ghc-pks doc location - update to version 6.8.3 * Fri Mar 04 2008 Herbert Graeber - ghc cannot use different host and target platforms (i686 and i586) * Wed Mar 02 2008 Herbert Graeber - build haddock docs * Wed Dec 12 2007 Herbert Graeber - Update to 6.8.2 * removed the --dodc-dir option * let standalone deriving declarations respect scope * several extensions to ghci command set * several bug fixes * Sun Dec 9 2007 Herbert Graeber - Update to 6.8.2 release candidate from 2007-12-06 * Sun Nov 25 2007 Herbert Graeber - Disable ps docs for SUSE Linux 10.0 and below * Wed Nov 21 2007 Herbert Graeber - Fixes for SUSE Linux 10.1 and below * Sun Nov 11 2007 Herbert Graeber - Update to version 6.8.1 * Haskell Program Coverage (hpc) support has been added to the compiler * GHCi now includes a debugger * The first phase of the base package split has been done * The code generator now uses pointer tagging (which should mean most code improves by 10-15%, and as a result the compiler is also faster). - Use update-alternatives to enable multiple ghc versions - Build with shared license file - Reenable ps docs * Wed Apr 25 2007 Herbert Graeber - Update to version 6.6.1 * Many, many bugs have been fixed relative to 6.6. Far too many to list here. * GHC can now be used to compile C++ files. * There is an --install-signal-handlers= RTS flag. The main use is to stop GHC installing signal handlers when you are putting your code in a DLL. * Newtypes can now be defined using GADT syntax. * Linear implicit parameters are no longer accepted. * There is a manpage for ghc and ghci. * The building guide has been moved to the wiki. * GHC now comes with the filepath library. * The base, cabal, regex-base, pretty-printer and unix packages have various bug fixes, as well as a couple of interface changes that shouldn't affect most users. The version numbers have been bumped. * There are newer versions of all of the extralibs. * Thu Oct 25 2006 Herbert Graeber - Enable openal and freealut support for openSUSE 10.2 * Mon Oct 16 2006 Herbert Graeber - Update to version 6.6 * Mon Sep 04 2006 Herbert Graeber - Use docbook-utils for html documentation - Require sgml-skel for build * Tue Aug 29 2006 Herbert Graeber - Disabled ps documentation (no fop without java) * Mon Aug 28 2006 Herbert Graeber - Move to the SUSE Build Service * Tue Apr 18 2006 Herbert Graeber - Update to version 6.4.2 - Removed openal/alut support (Does not work with SUSEs openal) * Wed Apr 12 2006 Herbert Graeber - SUSE 10.1 needs gmp-devel - Added patch for gcc 4.1 compatibility on x86_64 * Wed Sep 21 2005 Herbert Graeber - Update to version 6.4.1 * Tue Apr 19 2005 Herbert Graeber - Disabled object uplitting and ghci for x86_64 * Sun Mar 13 2005 Herbert Graeber - Update to version 6.4