sync with latest f29/rawhide 8.2.2-70 package

This commit is contained in:
Jens Petersen 2018-10-18 00:16:04 +09:00
parent 501e639f6b
commit bb50afba02
7 changed files with 663 additions and 84 deletions

View File

@ -1,10 +1,8 @@
Forwarded to https://ghc.haskell.org/trac/ghc/ticket/10424 Forwarded to https://ghc.haskell.org/trac/ghc/ticket/10424
Index: ghc-7.10.1/compiler/iface/MkIface.hs --- a/compiler/iface/MkIface.hs
=================================================================== +++ b/compiler/iface/MkIface.hs
--- ghc-7.10.1.orig/compiler/iface/MkIface.hs 2015-05-17 20:34:02.808643844 +0200 @@ -681,7 +681,7 @@ addFingerprints hsc_env mb_old_fingerpri
+++ ghc-7.10.1/compiler/iface/MkIface.hs 2015-05-17 20:34:02.804643799 +0200
@@ -611,7 +611,7 @@
iface_hash <- computeFingerprint putNameLiterally iface_hash <- computeFingerprint putNameLiterally
(mod_hash, (mod_hash,
ann_fn (mkVarOcc "module"), -- See mkIfaceAnnCache ann_fn (mkVarOcc "module"), -- See mkIfaceAnnCache
@ -13,7 +11,7 @@ Index: ghc-7.10.1/compiler/iface/MkIface.hs
sorted_deps, sorted_deps,
mi_hpc iface0) mi_hpc iface0)
@@ -644,6 +644,9 @@ @@ -714,6 +714,9 @@ addFingerprints hsc_env mb_old_fingerpri
(non_orph_fis, orph_fis) = mkOrphMap ifFamInstOrph (mi_fam_insts iface0) (non_orph_fis, orph_fis) = mkOrphMap ifFamInstOrph (mi_fam_insts iface0)
fix_fn = mi_fix_fn iface0 fix_fn = mi_fix_fn iface0
ann_fn = mkIfaceAnnCache (mi_anns iface0) ann_fn = mkIfaceAnnCache (mi_anns iface0)
@ -21,5 +19,5 @@ Index: ghc-7.10.1/compiler/iface/MkIface.hs
+ usages = [ case u of UsageFile _ fp -> UsageFile "" fp; _ -> u | u <- mi_usages iface0 ] + usages = [ case u of UsageFile _ fp -> UsageFile "" fp; _ -> u | u <- mi_usages iface0 ]
+ +
getOrphanHashes :: HscEnv -> [Module] -> IO [Fingerprint] -- | Retrieve the orphan hashes 'mi_orphan_hash' for a list of modules
getOrphanHashes hsc_env mods = do -- (in particular, the orphan modules which are transitively imported by the

View File

@ -0,0 +1,11 @@
--- ghc-8.2.2/configure.ac~ 2017-11-21 05:22:42.000000000 +0900
+++ ghc-8.2.2/configure.ac 2018-05-28 12:37:35.296728423 +0900
@@ -745,7 +745,7 @@
AC_CACHE_CHECK([for version of sphinx-build], fp_cv_sphinx_version,
changequote(, )dnl
[if test -n "$SPHINXBUILD"; then
- fp_cv_sphinx_version=`"$SPHINXBUILD" --version 2>&1 | sed 's/Sphinx\( (sphinx-build)\)\? v\?\([0-9]\.[0-9]\.[0-9]\)/\2/' | head -n1`;
+ fp_cv_sphinx_version=`"$SPHINXBUILD" --version 2>&1 | sed 's/.* v\?\([0-9]\.[0-9]\.[0-9]\)/\1/' | head -n1`;
fi;
changequote([, ])dnl
])

228
ghc-pkg.man Normal file
View File

@ -0,0 +1,228 @@
.TH ghc-pkg 1 "2010-01-27"
.SH NAME
ghc-pkg \- GHC Haskell Cabal package manager
.SH SYNOPSIS
.B ghc-pkg
.I action
.RI [ OPTION ]...
.SH DESCRIPTION
A package is a library of Haskell modules known to the compiler. The
.B ghc-pkg
tool allows adding or removing them from a package database. By
default, the system-wide package database is modified, but
alternatively the user's local package database or another specified
file can be used.
.PP
To make a package available for
.BR ghc ,
.B ghc-pkg
can be used to register it. Unregistering it removes it from the
database. Also, packages can be hidden, to make
.B ghc
ignore the package by default, without uninstalling it. Exposing a
package makes a hidden package available. Additionally,
.B ghc-pkg
has various commands to query the package database.
.PP
Where a package name is required, the package can be named in full
including the version number (e.g.
.BR network-1.0 ),
or without the version number. Naming a package without the version
number matches all versions of the package; the specified action will
be applied to all the matching packages. A package specifier that
matches all version of the package can also be written
.BR pkg-* ,
to make it clearer that multiple packages are being matched.
.SH ACTIONS
.TP
\fBregister\fP \fIfilename\fP|\fB-\fP
Register the package using the specified installed package
description.
.TP
\fBupdate\fP \fIfilename\fP|\fB-\fP
Register the package, overwriting any other package with the same
name.
.TP
\fBunregister\fP \fIpkg-id\fP
Unregister the specified package.
.TP
\fBexpose\fP \fIpkg-id\fP
Expose the specified package.
.TP
\fBhide\fP \fIpkg-id\fP
Hide the specified package
.TP
\fBlist\fP \fR[\fIpkg\fR]...\fP
List registered packages in the global database, and also the user
database if
.B --user
is given. If a package name is given all the registered versions will
be listed in ascending order. Accepts the
.B --simple-output
flag.
.TP
.B dot
Generate a graph of the package dependencies in a form suitable for
input for the graphviz tools. For example, to generate a PDF of the
dependency graph:
.br
\fB dot \| tred \| dot -Tpdf >pkgs.pdf\fP
.TP
\fBfind-module\fP \fImodule\fP
List registered packages exposing module
.I module
in the global database, and also the user database if
.B --user
is given. All the registered versions will be listed in ascending
order. Accepts the
.B --simple-output
flag.
.TP
\fBlatest\fP \fIpkg-id\fP
Prints the highest registered version of a package.
.TP
.B check
Check the consistency of package dependencies and list broken
packages. Accepts the
.B --simple-output
flag.
.TP
\fBdescribe\fP \fIpkg\fP
Give the registered description for the
specified package. The description is returned in precisely the syntax
required by ghc-pkg register.
.TP
\fBfield\fP \fIpkg field\fP
Extract the specified field of the package description for the
specified package. Accepts comma-separated multiple fields.
.TP
.B dump
Dump the registered description for every package. This is like
.BR ghc-pkg\ describe\ '*' ,
expect that it is intended to be used by tools that parse the results,
rather than humans.
.TP
.B recache
Regenerate the package database cache. This command should only be
necessary if you added a package to the database by dropping a file
into the database directory manyally. By default, the global DB is
recached; to recache a different DB use
.B --user
or
.B --package-conf
as appropriate.
.SH OPTIONS
When asked to modify a database
.RB ( register ,\ unregister ,\ update ,\ hide ,\ expose ,\ and\ also\ check ),
.B ghc-pkg
modifies the global database by
default. Specifying
.B --user
causes it to act on the user database,
or
.B --package-conf
can be used to act on another database
entirely. When multiple of these options are given, the rightmost
one is used as the database to act upon.
.PP
Commands that query the package database
.RB ( list ,\ latest ,\ describe ,\ field )
operate on the list of databases specified by the flags
.BR --user ,\ --global ,
and
.BR --package-conf .
If none of these flags are
given, the default is
.BR --global\ --user .
.TP
.B --user
Use the current user's package database.
.TP
.B --global
Use the global package database.
.TP
\fB-f\fP \fIFILE\fP, \fB--package-conf=\fIFILE\fP
Use the specified package config file.
.TP
.BI --global-conf= FILE
Location of the global package config.
.TP
.B --force
Ignore missing dependencies, directories, and libraries.
.TP
.B --force-files
Ignore missing directories and libraries only.
.TP
.BR -g ,\ --auto-ghc-libs
Automatically build libs for GHCi (with register).
.TP
.BR -? ,\ --help
Display a help message and exit.
.TP
.BR -V ,\ --version
Output version information and exit.
.TP
.B --simple-output
Print output in easy-to-parse format for some commands.
.TP
.B --names-only
Only print package names, not versions; can only be used with
.BR list\ --simple-output .
.TP
.B --ignore-case
Ignore case for substring matching.
.SH ENVIRONMENT VARIABLES
.TP
.B GHC_PACKAGE_PATH
The
.B GHC_PACKAGE_PATH
environment variable may be set to a
.BR : -separated
list of files containing package databases. This list of package
databases is used by
.B ghc
and
.BR ghc-pkg ,
with earlier databases in the list overriding later ones. This order
was chosen to match the behaviour of the
.B PATH
environment variable; think of it as a list of package databases that
are searched left-to-right for packages.
If
.B GHC_PACKAGE_PATH
ends in a separator, then the default user and system package
databases are appended, in that order. e.g. to augment the usual set
of packages with a database of your own, you could say:
.br
\fB export GHC_PACKAGE_PATH=$HOME/.my-ghc-packages.conf:\fP
.br
To check whether your
.B GHC_PACKAGE_PATH
setting is doing the right thing,
.B ghc-pkg list
will list all the databases in use, in the reverse order they are
searched.
.SH FILES
Both of these locations are changed for Debian. Upstream still keeps
these under
.IR /usr .
Some programs may refer to that, but look in
.I /var
instead.
.TP
.I /var/lib/ghc/package.conf
Global package.conf file.
.TP
.I /var/lib/ghc/package.conf.d/
Directory for library specific package.conf files. These are added to
the global registry.
.SH "SEE ALSO"
.BR ghc (1),
.BR runghc (1),
.BR hugs (1).
.SH AUTHOR
This manual page was written by Kari Pahula <kaol@debian.org>, for the
Debian project (and may be used by others).

View File

@ -0,0 +1,12 @@
--- ghc-8.4.3/mk/warnings.mk~ 2018-02-04 02:30:11.000000000 +0900
+++ ghc-8.4.3/mk/warnings.mk 2018-09-29 14:33:37.607884921 +0900
@@ -1,6 +1,6 @@
# See Note [Order of warning flags].
-SRC_CC_OPTS += -Wall $(WERROR)
+#SRC_CC_OPTS += -Wall $(WERROR)
SRC_HC_OPTS += -Wall
# Don't add -Werror to SRC_HC_OPTS_STAGE0 (or SRC_HC_OPTS), because otherwise
# validate may unnecessarily fail when booting with an older compiler.
# It would be better to only exclude certain warnings from becoming errors
Diff finished. Sat Sep 29 14:35:43 2018

206
ghc.spec
View File

@ -1,20 +1,35 @@
# perf production build (disable for quick build) # disable prof, docs, perf build
%bcond_without perf_build # NB This SHOULD be disabled 'bcond_with' for all koji production builds
%bcond_with quickbuild
# to handle RCs
%global ghc_release %{version}
# make sure ghc libraries' ABI hashes unchanged # make sure ghc libraries' ABI hashes unchanged
%bcond_without abicheck %bcond_without abicheck
# run testsuite # skip testsuite (takes time and not really being used)
%bcond_without testsuite %bcond_with testsuite
# build profiling libraries
%bcond_without prof
# build manual
%bcond_without manual
# build library documentation
%bcond_without haddock
# to handle RCs # build profiling libraries
%global ghc_release %{version} # build docs (haddock and manuals)
# - combined since disabling haddock seems to cause no manuals built
# - <https://ghc.haskell.org/trac/ghc/ticket/15190>
# perf production build (disable for quick build)
%if %{with quickbuild}
%bcond_with prof
%bcond_with docs
%bcond_with perf_build
%else
%bcond_without prof
%bcond_without docs
%bcond_without perf_build
%endif
# 8.2 needs llvm-3.9
%global llvm_major 3.9
%global ghc_llvm_archs armv7hl aarch64
Name: ghc Name: ghc
# ghc must be rebuilt after a version bump to avoid ABI change problems # ghc must be rebuilt after a version bump to avoid ABI change problems
@ -23,7 +38,7 @@ Version: 8.2.2
# - 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: 67%{?dist} Release: 70%{?dist}
Summary: Glasgow Haskell Compiler Summary: Glasgow Haskell Compiler
License: BSD and HaskellReport License: BSD and HaskellReport
@ -34,6 +49,9 @@ Source1: https://downloads.haskell.org/~ghc/%{ghc_release}/ghc-%{version}-testsu
%endif %endif
Source3: ghc-doc-index.cron Source3: ghc-doc-index.cron
Source4: ghc-doc-index Source4: ghc-doc-index
Source5: ghc-pkg.man
Source6: haddock.man
Source7: runghc.man
# absolute haddock path (was for html/libraries -> libraries) # absolute haddock path (was for html/libraries -> libraries)
Patch1: ghc-gen_contents_index-haddock-path.patch Patch1: ghc-gen_contents_index-haddock-path.patch
Patch2: ghc-Cabal-install-PATH-warning.patch Patch2: ghc-Cabal-install-PATH-warning.patch
@ -41,28 +59,30 @@ Patch2: ghc-Cabal-install-PATH-warning.patch
# https://ghc.haskell.org/trac/ghc/ticket/14381 # https://ghc.haskell.org/trac/ghc/ticket/14381
# https://phabricator.haskell.org/D4159 # https://phabricator.haskell.org/D4159
Patch4: D4159.patch Patch4: D4159.patch
# https://github.com/ghc/ghc/pull/143
Patch5: ghc-configure-fix-sphinx-version-check.patch
Patch12: ghc-armv7-VFPv3D16--NEON.patch Patch12: ghc-armv7-VFPv3D16--NEON.patch
# for s390x
# https://ghc.haskell.org/trac/ghc/ticket/15689
Patch15: ghc-warnings.mk-CC-Wall.patch
# Debian patches: # Debian patches:
# doesn't apply to 8.2 Patch24: ghc-Debian-buildpath-abi-stability.patch
#Patch24: ghc-Debian-buildpath-abi-stability.patch
Patch26: ghc-Debian-no-missing-haddock-file-warning.patch Patch26: ghc-Debian-no-missing-haddock-file-warning.patch
Patch27: ghc-Debian-reproducible-tmp-names.patch Patch27: ghc-Debian-reproducible-tmp-names.patch
Patch28: ghc-Debian-x32-use-native-x86_64-insn.patch Patch28: ghc-Debian-x32-use-native-x86_64-insn.patch
# 8.2 needs llvm-3.9
%global llvm_major 3.9
# fedora ghc has been bootstrapped on # fedora ghc has been bootstrapped on
# %%{ix86} x86_64 ppc ppc64 armv7hl s390 s390x ppc64le aarch64 # %%{ix86} x86_64 ppc ppc64 armv7hl s390 s390x ppc64le aarch64
# and retired arches: alpha sparcv9 armv5tel # and retired arches: alpha sparcv9 armv5tel
# see also deprecated ghc_arches defined in /etc/rpm/macros.ghc-srpm by redhat-rpm-macros # see also deprecated ghc_arches defined in /etc/rpm/macros.ghc-srpm by redhat-rpm-macros
%if %{with abicheck} BuildRequires: ghc-compiler
BuildRequires: ghc-compiler = %{version}
# for ABI hash checking # for ABI hash checking
BuildRequires: ghc = %{version} %if %{with abicheck}
BuildRequires: ghc
%endif %endif
BuildRequires: ghc-rpm-macros-extra >= 1.8 BuildRequires: ghc-rpm-macros-extra >= 1.8
BuildRequires: ghc-binary-devel BuildRequires: ghc-binary-devel
@ -80,23 +100,25 @@ BuildRequires: perl-interpreter
%if %{with testsuite} %if %{with testsuite}
BuildRequires: python3 BuildRequires: python3
%endif %endif
%if %{with manual} %if %{with docs}
BuildRequires: python3-sphinx BuildRequires: python3-sphinx
%endif %endif
%ifarch armv7hl aarch64 %ifarch %{ghc_llvm_archs}
BuildRequires: llvm%{llvm_major} BuildRequires: llvm%{llvm_major}
%endif %endif
# patch5
BuildRequires: autoconf
%ifarch armv7hl %ifarch armv7hl
# patch12 # patch12
BuildRequires: autoconf, automake BuildRequires: autoconf, automake
%endif %endif
Requires: ghc-compiler = %{version}-%{release} Requires: ghc-compiler = %{version}-%{release}
%if %{with haddock} %if %{with docs}
Requires: ghc-doc-cron = %{version}-%{release} Requires: ghc-doc-cron = %{version}-%{release}
%endif %endif
Requires: ghc-ghc-devel = %{version}-%{release} Requires: ghc-ghc-devel = %{version}-%{release}
Requires: ghc-libraries = %{version}-%{release} Requires: ghc-libraries = %{version}-%{release}
%if %{with manual} %if %{with docs}
Requires: ghc-manual = %{version}-%{release} Requires: ghc-manual = %{version}-%{release}
%endif %endif
@ -129,16 +151,16 @@ License: BSD
Requires: gcc%{?_isa} Requires: gcc%{?_isa}
Requires: ghc-base-devel%{?_isa} Requires: ghc-base-devel%{?_isa}
# for alternatives # for alternatives
Requires(post): chkconfig Requires(post): %{_sbindir}/update-alternatives
Requires(postun): chkconfig Requires(postun): %{_sbindir}/update-alternatives
# added in f14 # added in f14
Obsoletes: ghc-doc < 6.12.3-4 Obsoletes: ghc-doc < 6.12.3-4
%if %{without haddock} %if %{without docs}
Obsoletes: ghc-doc-cron < %{version}-%{release} Obsoletes: ghc-doc-cron < %{version}-%{release}
# added in f28 # added in f28
Obsoletes: ghc-doc-index < %{version}-%{release} Obsoletes: ghc-doc-index < %{version}-%{release}
%endif %endif
%ifarch armv7hl aarch64 %ifarch %{ghc_llvm_archs}
Requires: llvm%{llvm_major} Requires: llvm%{llvm_major}
%endif %endif
@ -150,7 +172,7 @@ To install all of ghc (including the ghc library),
install the main ghc package. install the main ghc package.
%if %{with haddock} %if %{with docs}
%package doc-cron %package doc-cron
Summary: GHC library documentation indexing cronjob Summary: GHC library documentation indexing cronjob
License: BSD License: BSD
@ -166,7 +188,7 @@ documention.
%endif %endif
%if %{with manual} %if %{with docs}
%package manual %package manual
Summary: GHC manual Summary: GHC manual
License: BSD License: BSD
@ -221,7 +243,7 @@ This package provides the User Guide and Haddock manual.
%ghc_lib_subpackage -d -l BSD time-1.8.0.2 %ghc_lib_subpackage -d -l BSD time-1.8.0.2
%ghc_lib_subpackage -d -l BSD transformers-0.5.2.0 %ghc_lib_subpackage -d -l BSD transformers-0.5.2.0
%ghc_lib_subpackage -d -l BSD unix-2.7.2.2 %ghc_lib_subpackage -d -l BSD unix-2.7.2.2
%if %{with haddock} %if %{with docs}
%ghc_lib_subpackage -d -l BSD xhtml-3000.2.2 %ghc_lib_subpackage -d -l BSD xhtml-3000.2.2
%endif %endif
%endif %endif
@ -252,6 +274,7 @@ except the ghc library, which is installed by the toplevel ghc metapackage.
%patch2 -p1 -b .orig %patch2 -p1 -b .orig
%patch4 -p1 -b .orig %patch4 -p1 -b .orig
%patch5 -p1 -b .orig
%if 0%{?fedora} || 0%{?rhel} > 6 %if 0%{?fedora} || 0%{?rhel} > 6
rm -r libffi-tarballs rm -r libffi-tarballs
@ -261,48 +284,48 @@ rm -r libffi-tarballs
%patch12 -p1 -b .orig %patch12 -p1 -b .orig
%endif %endif
#%%patch24 -p1 -b .orig %ifarch s390x
%patch15 -p1 -b .orig
%endif
%patch24 -p1 -b .orig
%patch26 -p1 -b .orig %patch26 -p1 -b .orig
%patch27 -p1 -b .orig %patch27 -p1 -b .orig
%patch28 -p1 -b .orig %patch28 -p1 -b .orig
%global gen_contents_index gen_contents_index.orig %global gen_contents_index gen_contents_index.orig
%if %{with haddock} %if %{with docs}
if [ ! -f "libraries/%{gen_contents_index}" ]; then if [ ! -f "libraries/%{gen_contents_index}" ]; then
echo "Missing libraries/%{gen_contents_index}, needed at end of %%install!" echo "Missing libraries/%{gen_contents_index}, needed at end of %%install!"
exit 1 exit 1
fi fi
%endif %endif
# http://ghc.haskell.org/trac/ghc/wiki/Platforms
%build
# http://hackage.haskell.org/trac/ghc/wiki/Platforms
# cf https://github.com/gentoo-haskell/gentoo-haskell/tree/master/dev-lang/ghc
cat > mk/build.mk << EOF cat > mk/build.mk << EOF
%if %{with perf_build} %if %{with perf_build}
%ifarch armv7hl aarch64 %ifarch %{ghc_llvm_archs}
BuildFlavour = perf-llvm BuildFlavour = perf-llvm
%else %else
BuildFlavour = perf BuildFlavour = perf
%endif %endif
%else %else
%ifarch armv7hl aarch64 %ifarch %{ghc_llvm_archs}
BuildFlavour = quick-llvm BuildFlavour = quick-llvm
%else %else
BuildFlavour = quick BuildFlavour = quick
%endif %endif
%endif %endif
GhcLibWays = v dyn %{?with_prof:p} GhcLibWays = v dyn %{?with_prof:p}
%if %{without haddock} %if %{with docs}
HADDOCK_DOCS = YES
BUILD_MAN = YES
%else
HADDOCK_DOCS = NO HADDOCK_DOCS = NO
BUILD_MAN = NO
%endif %endif
EXTRA_HADDOCK_OPTS += --hyperlinked-source EXTRA_HADDOCK_OPTS += --hyperlinked-source
%if %{with manual} BUILD_SPHINX_PDF = NO
BUILD_MAN = yes
%else
BUILD_MAN = no
%endif
BUILD_SPHINX_PDF=no
EOF EOF
## for verbose build output ## for verbose build output
#GhcStage1HcOpts=-v4 #GhcStage1HcOpts=-v4
@ -310,23 +333,19 @@ EOF
## (http://ghc.haskell.org/trac/ghc/wiki/Debugging/RuntimeSystem) ## (http://ghc.haskell.org/trac/ghc/wiki/Debugging/RuntimeSystem)
#EXTRA_HC_OPTS=-debug #EXTRA_HC_OPTS=-debug
%build
# for patch12
%ifarch armv7hl %ifarch armv7hl
autoreconf autoreconf
%else
# for patch5
autoconf
%endif %endif
%if 0%{?fedora} > 28 # replace later with ghc_set_gcc_flags
%ghc_set_cflags export CFLAGS="${CFLAGS:-%optflags}"
%else
# -Wunused-label is extremely noisy
%ifarch aarch64 s390x
CFLAGS="${CFLAGS:-$(echo %optflags | sed -e 's/-Wall -Werror=format-security //')}"
%else
CFLAGS="${CFLAGS:-%optflags}"
%endif
export CFLAGS
%endif
export LDFLAGS="${LDFLAGS:-%{?__global_ldflags}}" export LDFLAGS="${LDFLAGS:-%{?__global_ldflags}}"
# for ghc-8.2 # for ghc >= 8.2
export CC=%{_bindir}/gcc export CC=%{_bindir}/gcc
# * %%configure induces cross-build due to different target/host/build platform names # * %%configure induces cross-build due to different target/host/build platform names
./configure --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \ ./configure --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \
@ -349,14 +368,15 @@ make %{?_smp_mflags}
%install %install
make DESTDIR=%{buildroot} install make DESTDIR=%{buildroot} install
%if %{defined _ghcdynlibdir}
mv %{buildroot}%{ghclibdir}/*/libHS*ghc%{ghc_version}.so %{buildroot}%{_libdir}/ mv %{buildroot}%{ghclibdir}/*/libHS*ghc%{ghc_version}.so %{buildroot}%{_libdir}/
for i in $(find %{buildroot} -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \; -print); do for i in $(find %{buildroot} -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \; -print); do
chrpath -d $i chrpath -d $i
done done
for i in %{buildroot}%{ghclibdir}/package.conf.d/*.conf; do for i in %{buildroot}%{ghclibdir}/package.conf.d/*.conf; do
sed -i -e 's!^dynamic-library-dirs: .*!dynamic-library-dirs: %{_libdir}!' $i sed -i -e 's!^dynamic-library-dirs: .*!dynamic-library-dirs: %{_libdir}!' $i
done done
%endif
for i in %{ghc_packages_list}; do for i in %{ghc_packages_list}; do
name=$(echo $i | sed -e "s/\(.*\)-.*/\1/") name=$(echo $i | sed -e "s/\(.*\)-.*/\1/")
@ -369,8 +389,7 @@ echo "%%license libraries/$name/LICENSE" >> ghc-$name.files
%endif %endif
done done
# ghc-base should own ghclibdir echo "%%dir %{ghclibdir}" >> ghc-base%{?_ghcdynlibdir:-devel}.files
echo "%%dir %{ghclibdir}" >> ghc-base-devel.files
%ghc_gen_filelists ghc-boot %{ghc_version_override} %ghc_gen_filelists ghc-boot %{ghc_version_override}
%ghc_gen_filelists ghc %{ghc_version_override} %ghc_gen_filelists ghc %{ghc_version_override}
@ -392,21 +411,26 @@ echo "%%license libraries/LICENSE.%1" >> ghc-%2.files\
%merge_filelist ghc-prim base %merge_filelist ghc-prim base
# add rts libs # add rts libs
%if %{defined _ghcdynlibdir}
echo "%{ghclibdir}/rts" >> ghc-base-devel.files echo "%{ghclibdir}/rts" >> ghc-base-devel.files
ls %{buildroot}%{_libdir}/libHSrts*.so >> ghc-base.files %else
echo "%%dir %{ghclibdir}/rts" >> ghc-base.files
ls -d %{buildroot}%{ghclibdir}/rts/lib*.a >> ghc-base-devel.files
%endif
ls %{buildroot}%{?_ghcdynlibdir}%{!?_ghcdynlibdir:%{ghclibdir}/rts}/libHSrts*.so >> ghc-base.files
%if 0%{?rhel} && 0%{?rhel} < 7 %if 0%{?rhel} && 0%{?rhel} < 7
ls %{buildroot}%{ghclibdir}/rts/libffi.so.* >> ghc-base.files ls %{buildroot}%{ghclibdir}/rts/libffi.so.* >> ghc-base.files
%endif %endif
%if %{defined _ghcdynlibdir}
sed -i -e 's!^library-dirs: %{ghclibdir}/rts!&\ndynamic-library-dirs: %{_libdir}!' %{buildroot}%{ghclibdir}/package.conf.d/rts.conf sed -i -e 's!^library-dirs: %{ghclibdir}/rts!&\ndynamic-library-dirs: %{_libdir}!' %{buildroot}%{ghclibdir}/package.conf.d/rts.conf
%endif
sed -i -e "s|^%{buildroot}||g" ghc-base.files
ls -d %{buildroot}%{ghclibdir}/package.conf.d/rts.conf %{buildroot}%{ghclibdir}/include >> ghc-base-devel.files ls -d %{buildroot}%{ghclibdir}/package.conf.d/rts.conf %{buildroot}%{ghclibdir}/include >> ghc-base-devel.files
%if 0%{?rhel} && 0%{?rhel} < 7 %if 0%{?rhel} && 0%{?rhel} < 7
ls %{buildroot}%{ghclibdir}/rts/libffi.so >> ghc-base-devel.files ls %{buildroot}%{ghclibdir}/rts/libffi.so >> ghc-base-devel.files
%endif %endif
sed -i -e "s|^%{buildroot}||g" ghc-base-devel.files sed -i -e "s|^%{buildroot}||g" ghc-base*.files
# these are handled as alternatives # these are handled as alternatives
for i in hsc2hs runhaskell; do for i in hsc2hs runhaskell; do
@ -420,7 +444,7 @@ done
%ghc_strip_dynlinked %ghc_strip_dynlinked
%if %{with haddock} %if %{with docs}
mkdir -p %{buildroot}%{_sysconfdir}/cron.hourly 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
@ -436,6 +460,10 @@ cd ..
# we package the library license files separately # we package the library license files separately
find %{buildroot}%{ghc_html_libraries_dir} -name LICENSE -exec rm '{}' ';' find %{buildroot}%{ghc_html_libraries_dir} -name LICENSE -exec rm '{}' ';'
mkdir -p %{buildroot}%{_mandir}/man1
install -p -m 0644 %{SOURCE5} %{buildroot}%{_mandir}/man1/ghc-pkg.1
install -p -m 0644 %{SOURCE6} %{buildroot}%{_mandir}/man1/haddock.1
install -p -m 0644 %{SOURCE7} %{buildroot}%{_mandir}/man1/runghc.1
%check %check
export LANG=en_US.utf8 export LANG=en_US.utf8
@ -482,6 +510,8 @@ if [ "%{version}" = "$(ghc --numeric-version)" ]; then
echo "ghc ABI hash change: aborting build!" >&2 echo "ghc ABI hash change: aborting build!" >&2
exit 1 exit 1
fi fi
else
echo "ABI hash checks skipped: GHC changed from $(ghc --numeric-version) to %{version}"
fi fi
%endif %endif
@ -559,16 +589,19 @@ fi
%{ghclibdir}/template-hsc.h %{ghclibdir}/template-hsc.h
%dir %{_docdir}/ghc %dir %{_docdir}/ghc
%dir %{ghc_html_dir} %dir %{ghc_html_dir}
%if %{with haddock} %{_mandir}/man1/ghc-pkg.1*
%{_mandir}/man1/haddock.1*
%{_mandir}/man1/runghc.1*
%if %{with docs}
%{_bindir}/ghc-doc-index %{_bindir}/ghc-doc-index
%{_bindir}/haddock %{_bindir}/haddock
%{_bindir}/haddock-ghc-%{version} %{_bindir}/haddock-ghc-%{version}
%{ghclibdir}/bin/haddock %{ghclibdir}/bin/haddock
%{ghclibdir}/html %{ghclibdir}/html
%{ghclibdir}/latex %{ghclibdir}/latex
%if %{with manual} %if %{with docs}
# https://ghc.haskell.org/trac/ghc/ticket/12939 %{_mandir}/man1/ghc.1*
#%%{_mandir}/man1/ghc.*
%endif %endif
%dir %{ghc_html_dir}/libraries %dir %{ghc_html_dir}/libraries
%{ghc_html_dir}/libraries/gen_contents_index %{ghc_html_dir}/libraries/gen_contents_index
@ -586,7 +619,7 @@ fi
%ghost %{_localstatedir}/lib/ghc/pkg-dir.cache.new %ghost %{_localstatedir}/lib/ghc/pkg-dir.cache.new
%endif %endif
%if %{with haddock} %if %{with docs}
%files doc-cron %files doc-cron
%config(noreplace) %{_sysconfdir}/cron.hourly/ghc-doc-index %config(noreplace) %{_sysconfdir}/cron.hourly/ghc-doc-index
%endif %endif
@ -594,20 +627,41 @@ fi
%files libraries %files libraries
%if %{with manual} %if %{with docs}
%files manual %files manual
## needs pandoc ## needs pandoc
#%%{ghc_html_dir}/Cabal #%%{ghc_html_dir}/Cabal
%if %{with docs}
%{ghc_html_dir}/haddock %{ghc_html_dir}/haddock
%endif
%{ghc_html_dir}/index.html %{ghc_html_dir}/index.html
%{ghc_html_dir}/users_guide %{ghc_html_dir}/users_guide
%endif %endif
%changelog %changelog
* Thu May 24 2018 Jens Petersen <petersen@redhat.com> - 8.2.2-67 * Wed Oct 17 2018 Jens Petersen <petersen@redhat.com> - 8.2.2-70
- move manuals to ghc-manual.noarch - backport quickbuild config from 8.4 module and extend to perf_build
- rename ghc-doc-index to ghc-doc-cron.noarch - disable -Wall on s390x like in 8.4 module to silence warning flood
and simplify setting of CFLAGS
- enable buildpath-abi-stability.patch (from Debian)
- setup build.mk in setup section, taken from copr and module
* Tue Oct 16 2018 Peter Robinson <pbrobinson@fedoraproject.org>
- Update alternatives dependencies
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 8.2.2-69
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon May 28 2018 Jens Petersen <petersen@redhat.com> - 8.2.2-68
- fix sphinx-build version detection
- merge bcond for haddock and manual
- disable the testsuite to speed up builds
- version bootstrap and packaging fixes and tweaks
* Mon May 28 2018 Jens Petersen <petersen@redhat.com> - 8.2.2-67
- move manuals to new ghc-manual (noarch)
- rename ghc-doc-index to ghc-doc-cron (noarch)
- ghost the ghc-doc-index local state files - ghost the ghc-doc-index local state files
- ghost some newer libraries index files - ghost some newer libraries index files
- simplify and extend bcond for build configuration - simplify and extend bcond for build configuration

231
haddock.man Normal file
View File

@ -0,0 +1,231 @@
.TH HADDOCK 1 "July 2010" "Haddock, version 2.6.1" "Haddock documentation generator"
.SH NAME
haddock \- documentation tool for annotated Haskell source code
.SH SYNOPSIS
.B haddock
.RI [ options ] " file" ...
.SH DESCRIPTION
This manual page documents briefly the
.B haddock
command.
Extensive documentation is available in various other formats including DVI,
PostScript and HTML; see below.
.PP
.I file
is a filename containing a Haskell source module.
All the modules specified on the command line will be processed together.
When one module refers to an entity in another module being processed, the
documentation will link directly to that entity.
Entities that cannot be found, for example because they are in a module that
is not being processed as part of the current batch, simply will not be
hyperlinked in the generated documentation.
.B haddock
will emit warnings listing all the identifiers it could not resolve.
The modules should not be mutually recursive, as
.B haddock
does not like swimming in circles.
.SH OPTIONS
The programs follow the usual GNU command line syntax, with long
options starting with two dashes (`--').
A summary of options is included below.
For a complete description, see the other documentation.
.TP
\fB\-o \fIDIR\fP, \-\-odir=\fIDIR\fP
directory in which to put the output files
.TP
\fB\-i \fIFILE\fP, \-\-read-interface=\fIFILE\fP
read an interface from
.IR FILE .
.TP
\fB\-D \fIFILE\fP, \-\-dump\-interface=\fIFILE\fP
dump an interface for these modules in
.IR FILE .
.TP
\fB\-l \fIDIR\fP, \-\-lib=\fIDIR\fP
location of Haddock's auxiliary files
.TP
.BR \-h ", " \-\-html
Generate documentation in HTML format.
Several files will be generated into the current directory (or the specified
directory if the
.B \-o
option is given), including the following:
.RS
.TP
.I index.html
The top level page of the documentation:
lists the modules available, using indentation to represent the hierarchy if
the modules are hierarchical.
.TP
.I haddock.css
The stylesheet used by the generated HTML.
Feel free to modify this to change the colors or layout, or even specify
your own stylesheet using the
.B \-\-css
option.
.TP
.I module.html
An HTML page for each module.
.TP
.IR doc-index.html ", " doc-index-XX.html
The index, split into two (functions/constructors and types/classes, as per
Haskell namespaces) and further split alphabetically.
.RE
.TP
.B \-\-hoogle
output for Hoogle
.TP
\fB\-\-html\-help=\fIformat
produce index and table of contents in mshelp, mshelp2 or devhelp format
(with \fI\-h\fP)
.TP
\fB\-\-source\-base=\fPURL
Include links to the source files in the generated documentation, where URL
is the base URL where the source files can be found.
.TP
\fB\-s \fPURL, \fB\-\-source\-module=\fPURL
Include links to the source files in the generated documentation, where URL
is a source code link for each module (using the %{FILE} or %{MODULE} vars).
.TP
\fB\-\-source\-entity=\fPURL
Include links to the source files in the generated documentation, where URL
is a source code link for each entity (using the %{FILE}, %{MODULE} or %{NAME} vars).
.TP
\fB\-\-comments\-base=\fPURL
URL for a comments link on the contents and index pages.
.TP
\fB\-\-comments\-module=\fPURL
URL for a comments link for each module (using the %{MODULE} var).
.TP
\fB\-\-comments\-entity=\fPURL
URL for a comments link for each entity (using the %{FILE}, %{MODULE} or %{NAME} vars).
.TP
.BI \-\-css= FILE
Use the CSS
.I FILE
instead of the default stylesheet that comes with
.B haddock
for HTML output. It should specify certain classes: see the default stylesheet for details.
.TP
\fB\-p \fIFILE\fP, \-\-prologue=\fIFILE\fP
Specify a file containing prologue text.
.TP
\fB\-t \fITITLE\fP, \-\-title=\fITITLE\fP
Use \fITITLE\fP as the page heading for each page in the documentation.
This will normally be the name of the library being documented.
The title should be a plain string (no markup please!).
.TP
\fB\-k \fINAME\fP, \-\-package=\fINAME\fP
Specify the package name (optional).
.TP
.BR \-n ", " \-\-no\-implicit\-prelude
do not assume Prelude is imported
.TP
.BR \-d ", " \-\-debug
Enable extra debugging output.
.TP
.BR \-? ", " \-\-help
Display help.
.TP
.BR \-V ", " \-\-version
Display version.
.TP
.BR \-v ", " \-\-verbose
Verbose status reporting.
.TP
\fB\-\-use\-contents=\fPURL
Use a separately-generated HTML contents page.
.TP
.B \-\-gen\-contents
Generate an HTML contents from specified interfaces.
.TP
\fB\-\-use\-index=\fPURL
Use a separately-generated HTML index.
.TP
.B \-\-gen\-index
Generate an HTML index from specified interfaces.
.TP
.B \-\-ignore\-all\-exports
Behave as if all modules have the ignore-exports atribute
.TP
\fB\-\-hide=\fIMODULE
Behave as if \fIMODULE\fP has the hide attribute.
.TP
\fB\-\-use\-package=\fIPACKAGE
The modules being processed depend on \fIPACKAGE\fP.
.SH FILES
.I /usr/bin/haddock
.br
.I /usr/share/haddock-2.6.1/html/plus.gif
.br
.I /usr/share/haddock-2.6.1/html/minus.gif
.br
.I /usr/share/haddock-2.6.1/html/haskell_icon.gif
.br
.I /usr/share/haddock-2.6.1/html/haddock.js
.br
.I /usr/share/haddock-2.6.1/html/haddock.css
.br
.I /usr/share/haddock-2.6.1/html/haddock-DEBUG.css
.SH SEE ALSO
.IR /usr/share/doc/haddock/ ,
.br
the Haddock homepage
.UR http://haskell.org/haddock/
(http://haskell.org/haddock/)
.UE
.SH COPYRIGHT
Haddock version 2.6.1
Copyright 2006-2010 Simon Marlow <simonmar@microsoft.com>, Dawid Waern <david.waern@gmail.com>.
All rights reserved.
.SH AUTHOR
This manual page was written by Michael Weber <michaelw@debian.org>
for the Debian GNU/Linux system (but may be used by others).
.\" Local variables:
.\" mode: nroff
.\" End:

45
runghc.man Normal file
View File

@ -0,0 +1,45 @@
.TH RUNGHC 1 "28 NOVEMBER 2007"
.SH NAME
runghc \- program to run Haskell programs without first having to compile them.
.SH SYNOPSIS
.B runghc
.RI
[runghc|flags] [GHC|flags] module [program|flags]...
.br
.SH DESCRIPTION
.B runghc
is considered a non-interactive interpreter and part of The Glasgow Haskell Compiler.
.B runghc
is a compiler that automatically runs its results at the end.
.PP
.SH OPTIONS
.TP
the flags are:
.TP
.B \-f
it tells runghc which GHC to use to run the program. If it is not given then runghc will search for GHC in the directories in the system search path. runghc -f /path/to/ghc
.TP
.B \--
runghc will try to work out where the boundaries between [runghc flags] and [GHC flags], and [GHC flags] and module are, but you can use a -- flag if it doesn't get it right. For example, runghc -- -fglasgow-exts Foo
means runghc won't try to use glasgow-exts as the path to GHC, but instead will pass the flag to GHC.
.SH EXAMPLES
.TP
.B runghc foo
.PP
.B runghc -f /path/to/ghc foo
.TP
.B runghc -- -fglasgow-exts Foo
.SH SEE ALSO
.BR ghc (1),
.BR ghci (1).
.br
.SH COPYRIGHT
Copyright 2002, The University Court of the University of Glasgow. All rights reserved.
.SH AUTHOR
This manual page was written by Efrain Valles Pulgar <effie.jayx@gmail.com>. This is free documentation; see the GNU
General Public Licence version 2 or later for copying conditions. There is NO WARRANTY.