@ -2,10 +2,11 @@
# (disabled for other archs in ghc-rpm-macros)
# (disabled for other archs in ghc-rpm-macros)
# To bootstrap build a new version of ghc, uncomment the following:
# To bootstrap build a new version of ghc, uncomment the following:
#%%global ghc_bootstrapping 1
%global ghc_bootstrapping 1
#%%{?ghc_bootstrap}
%{?ghc_bootstrap}
#%%global without_testsuite 1
%global without_testsuite 1
#%%global without_haddock 1
# uncomment to generate haddocks
#%%undefine without_haddock
# To do a test build instead with shared libs, uncomment the following:
# To do a test build instead with shared libs, uncomment the following:
#%%global ghc_bootstrapping 1
#%%global ghc_bootstrapping 1
@ -29,7 +30,7 @@ Version: 7.6.3
# - release can only be reset if *all* library versions get bumped simultaneously
# - release can only be reset if *all* library versions get bumped simultaneously
# (sometimes after a major release)
# (sometimes after a major release)
# - minor release numbers for a branch should be incremented monotonically
# - minor release numbers for a branch should be incremented monotonically
Release: 18 %{?dist}
Release: 19 %{?dist}
Summary: Glasgow Haskell Compiler
Summary: Glasgow Haskell Compiler
License: %BSDHaskellReport
License: %BSDHaskellReport
@ -54,6 +55,10 @@ Patch12: ghc-7.4.2-Cabal-disable-ghci-libs.patch
Patch13: ghc-llvmCodeGen-empty-array.patch
Patch13: ghc-llvmCodeGen-empty-array.patch
# stop warnings about unsupported version of llvm
# stop warnings about unsupported version of llvm
Patch14: ghc-7.6.3-LlvmCodeGen-no-3.3-warning.patch
Patch14: ghc-7.6.3-LlvmCodeGen-no-3.3-warning.patch
# fix hang on ppc64 and s390x
Patch15: ghc-64bit-bigendian-rts-hang-989593.patch
# unversion library html docdirs
Patch16: ghc-cabal-unversion-docdir.patch
# fedora ghc has been bootstrapped on
# fedora ghc has been bootstrapped on
# %{ix86} x86_64 ppc alpha sparcv9 ppc64 armv7hl armv5tel s390 s390x
# %{ix86} x86_64 ppc alpha sparcv9 ppc64 armv7hl armv5tel s390 s390x
@ -133,8 +138,9 @@ Requires: llvm >= 3.0
%description compiler
%description compiler
The package contains the GHC compiler, tools and utilities.
The package contains the GHC compiler, tools and utilities.
The ghc libraries are provided by ghc-devel.
The ghc libraries are provided by ghc-libraries.
To install all of ghc, install the ghc base package.
To install all of ghc (including the ghc library),
install the main ghc package.
%if %{undefined without_haddock}
%if %{undefined without_haddock}
%package doc-index
%package doc-index
@ -234,6 +240,21 @@ ln -s $(pkg-config --variable=includedir libffi)/*.h rts/dist/build
%patch14 -p1 -b .orig
%patch14 -p1 -b .orig
%endif
%endif
# #FIXME: apply to all archs from next version bootstrap
%ifarch ppc64 s390x
%patch15 -p1 -b .orig
%endif
%patch16 -p1 -b .orig
%global gen_contents_index gen_contents_index.orig
%if %{undefined without_haddock}
if [ ! -f "libraries/%{gen_contents_index}" ]; then
echo "Missing libraries/%{gen_contents_index}, needed at end of %%install!"
exit 1
fi
%endif
%build
%build
# http://hackage.haskell.org/trac/ghc/wiki/Platforms
# http://hackage.haskell.org/trac/ghc/wiki/Platforms
@ -253,6 +274,8 @@ HADDOCK_DOCS = NO
%if %{defined without_manual}
%if %{defined without_manual}
BUILD_DOCBOOK_HTML = NO
BUILD_DOCBOOK_HTML = NO
%endif
%endif
# for verbose build output
#GhcStage1HcOpts=-v4
EOF
EOF
export CFLAGS="${CFLAGS:-%optflags}"
export CFLAGS="${CFLAGS:-%optflags}"
@ -264,7 +287,8 @@ export CFLAGS="${CFLAGS:-%optflags}"
--sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
--sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
--with-gcc=%{_bindir}/gcc
--with-gcc=%{_bindir}/gcc
make %{?_smp_mflags}
# utf8 is needed when building with verbose output
LANG=en_US.utf8 make %{?_smp_mflags}
%install
%install
@ -320,6 +344,11 @@ mkdir -p %{buildroot}%{_sysconfdir}/cron.hourly
install -p --mode=0755 %SOURCE3 %{buildroot}%{_sysconfdir}/cron.hourly/ghc-doc-index
install -p --mode=0755 %SOURCE3 %{buildroot}%{_sysconfdir}/cron.hourly/ghc-doc-index
mkdir -p %{buildroot}%{_localstatedir}/lib/ghc
mkdir -p %{buildroot}%{_localstatedir}/lib/ghc
install -p --mode=0755 %SOURCE4 %{buildroot}%{_bindir}/ghc-doc-index
install -p --mode=0755 %SOURCE4 %{buildroot}%{_bindir}/ghc-doc-index
# generate initial lib doc index
cd libraries
sh %{gen_contents_index} --intree --verbose
cd ..
%endif
%endif
@ -446,6 +475,14 @@ fi
%changelog
%changelog
* Tue Oct 29 2013 Jens Petersen <petersen@redhat.com> - 7.6.3-19
- fix rts hang on 64bit bigendian archs (patch by Gustavo Luiz Duarte, #989593)
- generate and ship library doc index for ghc bundled libraries
- build with utf8 encoding (needed for verbose ghc output
and makes better sense anyway)
- change ghc-cabal to make library html docdirs unversioned
- bootstrap build
* Sat Jul 27 2013 Jóhann B. Guðmundsson <johannbg@fedoraproject.org> - 7.6.3-18
* Sat Jul 27 2013 Jóhann B. Guðmundsson <johannbg@fedoraproject.org> - 7.6.3-18
- ghc-doc-index requires crontabs and mark cron file config noreplace
- ghc-doc-index requires crontabs and mark cron file config noreplace
(http://fedoraproject.org/wiki/Packaging:CronFiles)
(http://fedoraproject.org/wiki/Packaging:CronFiles)