ghc/ghc.spec

307 lines
9.6 KiB
RPMSpec
Raw Normal View History

# Copyright (c) 2007-2008 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.8.2
Release: 0
Summary: The Glasgow Haskell Compilation system
Summary(de): Das Glasgow-Haskell-Compilation-System
License: BSD style w/o adv. clause
Group: Development/Languages/Haskell
Packager: Herbert Graeber <herbert@graeber-clan.de>
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
Patch0: ghc-optional-openal.patch
URL: http://haskell.org/ghc/
%if 0%{?suse_version} > 1000
Requires: gmp-devel
%endif
Requires: update-alternatives
%if 0%{?suse_version} >= 1030
Requires: licenses
%endif
BuildRequires: ghc >= 5.0
BuildRequires: happy >= 1.15
BuildRequires: alex >= 2.0
BuildRequires: ncurses-devel
%if 0%{?suse_version} > 1000
BuildRequires: gmp-devel
%else
BuildRequires: gmp
%endif
BuildRequires: readline-devel
BuildRequires: xorg-x11-Mesa-devel
BuildRequires: freeglut-devel
%if 0%{?suse_version} > 1020
BuildRequires: texlive-latex
%else
BuildRequires: te_latex
%endif
BuildRequires: haddock
BuildRequires: libxslt
BuildRequires: sgml-skel
BuildRequires: docbook-xsl-stylesheets
BuildRequires: docbook-utils
%if 0%{?suse_version} >= 1020
BuildRequires: openal
BuildRequires: freealut
%endif
BuildRequires: update-alternatives
%if 0%{?suse_version} >= 1010
%if 0%{?suse_version} <= 1030
BuildRequires: java-1_5_0-sun
%endif
BuildRequires: fop
%endif
BuildRequires: xmltex
%if 0%{?suse_version} <= 1010
BuildRequires: libpng
%endif
%if 0%{?suse_version} >= 1030
BuildRequires: licenses
%endif
Provides: haskell_compiler
BuildRoot: /var/tmp/%{name}-%{version}-root
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 <http://www.haskell.org/>.
%package prof
Summary: Profiling libraries for GHC
Summary(de): Profiling-Libraries für GHC
Group: Development/Libraries/Haskell
Requires: %{name} = %{version}-%{release}
Provides: GHC-prof = %{version}
%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
Summary(de): Dokumentation für GHC
Group: Development/Languages/Haskell
%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
%patch0 -p1
%build
export CFLAGS="$RPM_OPT_FLAGS"
%configure --enable-\
%if 0%{?suse_version} < 1020
--enable-openal=no \
%endif
%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 := %{_docdir}/%{name}-%{version}
htmldir := $(docdir)
dvidir := $(docdir)
pdfdir := $(docdir)
psdir := $(docdir)
EOF
make %{?jobs:-j%jobs} all
make %{?jobs:-j%jobs} html
make %{?jobs:-j%jobs} -C libraries HADDOCK_DOCS=YES
( cd libraries/Cabal && docbook2html doc/Cabal.xml --output doc/Cabal )
%if 0%{?suse_version} >= 1010
make %{?jobs:-j%jobs} -C docs/ext-core ps
make -C docs/storage-mgt ps
%endif
%install
%if 0%{?suse_version} >= 1030
for FILE in LICENSE ; do
MD5SUM=$(md5sum $FILE | sed 's/ .*//')
if test -f /usr/share/doc/licenses/md5/$MD5SUM ; then
ln -sf /usr/share/doc/licenses/md5/$MD5SUM $FILE
fi
done
%endif
make DESTDIR=%{buildroot} docdir=%{_datadir}/doc/packages/%{name} HADDOCK_DOCS=YES install install-docs
mkdir html-docs
cp -a %{buildroot}%{_datadir}/doc/packages/%{name}/{index.html,libraries} html-docs
#mv %{buildroot}%{_prefix}/bin/hsc2hs %{buildroot}%{_prefix}/bin/hsc2hs-ghc
dir=`pwd`
pushd %{buildroot}
libdir=`echo %{prefix}/%{_lib} | sed 's|^/||'`
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
%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
%{_bindir}/ghc
%{_bindir}/ghc-%{version}
%{_bindir}/ghc-pkg
%{_bindir}/ghc-pkg-%{version}
%{_bindir}/ghci
%{_bindir}/ghci-%{version}
%{_bindir}/ghcprof
%{_bindir}/hasktags
%{_bindir}/hp2ps
%{_bindir}/hpc
%{_bindir}/hsc2hs
%{_bindir}/hsc2hs-ghc
%{_bindir}/hsc2hs-ghc-%{version}
%{_bindir}/runghc
%{_mandir}/man1/ghc.1*
%files prof -f rpm-prof-lib-files
%defattr(-,root,root)
%files doc
%defattr(-,root,root)
%doc docs/comm
%doc docs/docbook-cheat-sheet/docbook-cheat-sheet
%doc docs/users_guide/users_guide
%doc libraries/Cabal/doc/Cabal
%doc html-docs/*
%if 0%{?suse_version} >= 1010
%doc docs/ext-core/core.ps
%doc docs/storage-mgt/ldv.ps
%doc docs/storage-mgt/rp.ps
%doc docs/storage-mgt/sm.ps
%endif
%changelog
* Wed Mar 02 2008 Herbert Graeber <herbert@links2linux.de>
- build haddock docs
* Wed Dec 12 2007 Herbert Graeber <herbert@links2linux.de>
- 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 <herbert@links2linux.de>
- Update to 6.8.2 release candidate from 2007-12-06
* Sun Nov 25 2007 Herbert Graeber <herbert@links2linux.de>
- Disable ps docs for SUSE Linux 10.0 and below
* Wed Nov 21 2007 Herbert Graeber <herbert@links2linux.de>
- Fixes for SUSE Linux 10.1 and below
* Sun Nov 11 2007 Herbert Graeber <herbert@links2linux.de>
- 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 <herbert@links2linux.de>
- 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=<yes|no> 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 <herbert@links2linux.de>
- Enable openal and freealut support for openSUSE 10.2
* Mon Oct 16 2006 Herbert Graeber <herbert@links2linux.de>
- Update to version 6.6
* Mon Sep 04 2006 Herbert Graeber <herbert@links2linux.de>
- Use docbook-utils for html documentation
- Require sgml-skel for build
* Tue Aug 29 2006 Herbert Graeber <herbert@links2linux.de>
- Disabled ps documentation (no fop without java)
* Mon Aug 28 2006 Herbert Graeber <herbert@links2linux.de>
- Move to the SUSE Build Service
* Tue Apr 18 2006 Herbert Graeber <herbert@links2linux.de>
- Update to version 6.4.2
- Removed openal/alut support (Does not work with SUSEs openal)
* Wed Apr 12 2006 Herbert Graeber <herbert@links2linux.de>
- SUSE 10.1 needs gmp-devel
- Added patch for gcc 4.1 compatibility on x86_64
* Wed Sep 21 2005 Herbert Graeber <herbert@links2linux.de>
- Update to version 6.4.1
* Tue Apr 19 2005 Herbert Graeber <herbert@links2linux.de>
- Disabled object uplitting and ghci for x86_64
* Sun Mar 13 2005 Herbert Graeber <herbert@links2linux.de>
- Update to version 6.4