Compare commits
304 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
c1326d82af | ||
|
b60ddd4560 | ||
|
b82b10135e | ||
|
e35da2ef75 | ||
|
c3ba9ccbd8 | ||
|
4e2983c83c | ||
|
5b2544a8cc | ||
|
298bd4e3dd | ||
|
59959cc216 | ||
|
153f50041f | ||
|
975f21c108 | ||
|
55f62273c3 | ||
|
6499cbc4e2 | ||
|
e736d6cdbe | ||
|
7de08b499a | ||
|
d190fa9b04 | ||
|
4972b52b10 | ||
|
8bce457cb2 | ||
|
5c4bfea95e | ||
|
95e211cd84 | ||
|
37fe2b4ab7 | ||
|
3124474192 | ||
|
02ff4a6bb7 | ||
|
87df4b821c | ||
|
6e6bc8e4a6 | ||
|
3c4760fac8 | ||
|
4887078b34 | ||
|
cae5ea467c | ||
|
1ffadfb29d | ||
|
ae3cfff251 | ||
|
0a4591897c | ||
|
47ac404ddc | ||
|
ca7fad4882 | ||
|
811c5a99f0 | ||
|
2e2b672417 | ||
|
b058836dae | ||
|
ba39d46794 | ||
|
bd0af716de | ||
|
1306c9a80d | ||
|
5f6ff9c55c | ||
|
bc93aaa088 | ||
|
f2e3e0f014 | ||
|
0d7493589a | ||
|
32c4fa64af | ||
|
b838259f68 | ||
|
f3be8b6bc2 | ||
|
7faec45fdd | ||
|
97922d41b7 | ||
|
3643446b23 | ||
|
272d2b048a | ||
|
ea9bb846fc | ||
|
ff7270f82d | ||
|
b78d93fec3 | ||
|
430e328400 | ||
|
5d5eac137c | ||
|
4c35941d50 | ||
|
0bab6b0296 | ||
|
5969f32695 | ||
|
2cfb9bdb77 | ||
|
195b0fadb8 | ||
|
d6e0ba914f | ||
|
445740902c | ||
|
635a0ea454 | ||
|
38f99a79b3 | ||
|
7855aaa8f1 | ||
|
c17dd21b04 | ||
|
78b7c8e144 | ||
|
7b97799ed4 | ||
|
6ed0be7ab1 | ||
|
195cbddf39 | ||
|
836ded9751 | ||
|
2fb629fb9b | ||
|
b1fc196577 | ||
|
09527a512d | ||
|
473b736053 | ||
|
66fe267a12 | ||
|
df54044203 | ||
|
f1517cd581 | ||
|
89fc8859a1 | ||
|
ae0985a107 | ||
|
5517c1f361 | ||
|
cab483029e | ||
|
3a48002a94 | ||
|
a3ef23ec78 | ||
|
37e9abdf73 | ||
|
ebdd0063dd | ||
|
9c211a6a35 | ||
|
1f50906382 | ||
|
55f359cbaa | ||
|
deba8275bf | ||
|
28274f8b3a | ||
|
46a6bfd423 | ||
|
f279bff6ad | ||
|
b7996800fb | ||
|
e3aad73232 | ||
|
ef1f187fbb | ||
|
ad5af6773a | ||
|
54d5511eb7 | ||
|
a9571f976d | ||
|
e107a783d5 | ||
|
411d61ddf0 | ||
|
83eef9382a | ||
|
d0eef0681b | ||
|
68da07a47a | ||
|
8539a717fc | ||
|
52dc56db34 | ||
|
701fee7294 | ||
|
452a250213 | ||
|
64dfda4d2c | ||
|
c43600a4a0 | ||
|
84a7696ad1 | ||
|
40e1493069 | ||
|
d8c629ddd4 | ||
|
2d136c9538 | ||
|
0592593f31 | ||
|
96d4e688f4 | ||
|
986f88ae73 | ||
|
27b17fb15e | ||
|
2596046682 | ||
|
a1d8cc2ddc | ||
|
84c32ecae9 | ||
|
41e9ee727e | ||
|
d364972a87 | ||
|
7e15be0963 | ||
|
a619695bba | ||
|
5bd7efd601 | ||
|
e7a174af5b | ||
|
124ef72e77 | ||
|
d609014ce9 | ||
|
d5bd4b883e | ||
|
bf5ed29b0f | ||
|
c5902ba33f | ||
|
e5d78dcff4 | ||
|
3bf0b8f083 | ||
|
c112f40782 | ||
|
0c236fe8e5 | ||
|
cfbdfc60ac | ||
|
d1251119aa | ||
|
fb48383d9f | ||
|
f0f6b5560d | ||
|
53322a25a5 | ||
|
ab3cb96b9e | ||
|
3d27a15aad | ||
|
0b6b0198da | ||
|
c2213a0236 | ||
|
a706fe5472 | ||
|
47247e4150 | ||
|
81726e4857 | ||
|
efcc8cce75 | ||
|
9460154623 | ||
|
c13aaea995 | ||
|
d80a2ea958 | ||
|
edf9be1b39 | ||
|
07399a8849 | ||
|
856d8134b6 | ||
|
170e2188e9 | ||
|
1107962ad8 | ||
|
4b3c2433d5 | ||
|
a93d10698f | ||
|
c62456812e | ||
|
e5c8c16492 | ||
|
83e7a4f045 | ||
|
87f872d02b | ||
|
9914f51b1b | ||
|
33502e39eb | ||
|
2da26f9db5 | ||
|
3efe41dd0c | ||
|
19ad5a530b | ||
|
8479b07853 | ||
|
d02dbabc22 | ||
|
7a5198b86b | ||
|
c4f882c42c | ||
|
8598900333 | ||
|
88337f50f5 | ||
|
4ef4fab228 | ||
|
72f890df77 | ||
|
06868afd57 | ||
|
69ab773f59 | ||
|
e91dddece5 | ||
|
e3136771b3 | ||
|
972cb47448 | ||
|
0273f7e1eb | ||
|
e67c7efd4d | ||
|
48199c851a | ||
|
eaa615f948 | ||
|
8f2ef1279a | ||
|
671df91867 | ||
|
f67d26b5d6 | ||
|
98b6135469 | ||
|
e4c93cb77e | ||
|
3ec60c7a31 | ||
|
caadeff016 | ||
|
87a97e89f3 | ||
|
6c6978937a | ||
|
a7b6b974ed | ||
|
649621d68e | ||
|
493f56fc43 | ||
|
585415b5d9 | ||
|
0b2f17698e | ||
|
4d2eb25803 | ||
|
795c0c522b | ||
|
0cd6abba00 | ||
|
db486c2fbb | ||
|
a2f7c2b71a | ||
|
c7830b0a64 | ||
|
8bc7b06720 | ||
|
40a7e828d4 | ||
|
e5c7bca0e8 | ||
|
2e67bb2ce5 | ||
|
49912b0df5 | ||
|
1b79de9a6f | ||
|
f0c10c9f13 | ||
|
e08038a4a4 | ||
|
328fc11463 | ||
|
3790c3a7fb | ||
|
27ddc9ecb2 | ||
|
6dad230ddb | ||
|
54b338816d | ||
|
ecaa01415c | ||
|
80fec1cbd1 | ||
|
aae062eae8 | ||
|
9761c94426 | ||
|
6d8c8e6f0c | ||
|
0dd634c574 | ||
|
1b2339d407 | ||
|
237337a6c6 | ||
|
6910d07de7 | ||
|
73b0bd180f | ||
|
9921428d92 | ||
|
15903c519c | ||
|
f37546310e | ||
|
ff319a0028 | ||
|
7dad4d39bd | ||
|
6153b67702 | ||
|
11c364e456 | ||
|
436bfaf65d | ||
|
59daf96cb2 | ||
|
6af89aa214 | ||
|
4add3928b3 | ||
|
548aff606e | ||
|
44c764437c | ||
|
93b9c369fc | ||
|
8af2ba71ac | ||
|
29279d4a5b | ||
|
ea552a4daf | ||
|
9e0aa2550c | ||
|
bda56fd9b1 | ||
|
4d0b6136b6 | ||
|
82a1405dd8 | ||
|
1433654678 | ||
|
30bb029b38 | ||
|
345bcf3e91 | ||
|
fdb0081a16 | ||
|
b968d18349 | ||
|
2950c5e61e | ||
|
e519a84941 | ||
|
a13d4b8b20 | ||
|
85455e4eb0 | ||
|
880c4fcd5d | ||
|
395cffc7aa | ||
|
c818743e11 | ||
|
20b1088ae2 | ||
|
e0729035a0 | ||
|
798c11607f | ||
|
a32bb68aba | ||
|
73b6ce9c57 | ||
|
4f1f547f24 | ||
|
a8bcd3741f | ||
|
6f947c0328 | ||
|
e399d7ff29 | ||
|
1bb678c64a | ||
|
ca5159471f | ||
|
eb601b5e70 | ||
|
8b059158ba | ||
|
07fccfd9a1 | ||
|
5d116cb4cc | ||
|
a23376405b | ||
|
e330117e14 | ||
|
b95424a06b | ||
|
befa5e103e | ||
|
ae161ab66c | ||
|
1d2eebf689 | ||
|
ac776c377e | ||
|
20cbe43332 | ||
|
59008edb14 | ||
|
1cb0fba5fb | ||
|
7cdea6ff7e | ||
|
bab627bc22 | ||
|
8a8de3a39a | ||
|
8e22621418 | ||
|
1b8536abf1 | ||
|
c013051271 | ||
|
dae8fa2606 | ||
|
fa247e69af | ||
|
bbc5f8f364 | ||
|
8fc16e2daa | ||
|
64b3d676b2 | ||
|
c6d9f1f431 | ||
|
88a603f537 | ||
|
5abcaaca33 | ||
|
89972ec757 | ||
|
8f4190a52c | ||
|
6b6cf52f6d | ||
|
7ffdbdc6d5 |
4
AUTHORS
4
AUTHORS
@ -5,3 +5,7 @@ Initial implementation:
|
||||
Bryan O'Sullivan
|
||||
Jens Petersen
|
||||
Yaakov Nemoy
|
||||
|
||||
Contributions from:
|
||||
Peter Trommler
|
||||
Ondřej Súkup
|
||||
|
34
cabal-tweak-dep-ver
Executable file
34
cabal-tweak-dep-ver
Executable file
@ -0,0 +1,34 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e +x
|
||||
|
||||
USAGE="Usage: $0 dep old new"
|
||||
|
||||
if [ $# -ne 3 ]; then
|
||||
echo "$USAGE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DEP=$1
|
||||
OLD=$(echo $2 | sed -e "s/*/\\\\*/g" -e "s/\./\\\\./g")
|
||||
NEW=$3
|
||||
|
||||
CABALFILE=$(ls *.cabal)
|
||||
|
||||
if [ $(echo $CABALFILE | wc -w) -ne 1 ]; then
|
||||
echo "There needs to be one .cabal file in the current dir!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BREAK=[^[:alnum:]-]
|
||||
|
||||
if ! grep -q "$BREAK$DEP$BREAK[^,]*$OLD" $CABALFILE; then
|
||||
echo "$CABALFILE does not match: $DEP $OLD"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f $CABALFILE.orig ]; then
|
||||
BACKUP=.orig
|
||||
fi
|
||||
|
||||
sed -i$BACKUP -e "s/\($BREAK$DEP$BREAK[^,]*\)$OLD/\1$NEW/g" $CABALFILE
|
30
cabal-tweak-drop-dep
Executable file
30
cabal-tweak-drop-dep
Executable file
@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e +x
|
||||
|
||||
USAGE="Usage: $0 dep"
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "$USAGE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DEP=$1
|
||||
|
||||
CABALFILE=$(ls *.cabal)
|
||||
|
||||
if [ $(echo $CABALFILE | wc -w) -ne 1 ]; then
|
||||
echo "There needs to be one .cabal file in the current dir!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f $CABALFILE.orig ]; then
|
||||
BACKUP=.orig
|
||||
fi
|
||||
|
||||
if grep "$DEP" $CABALFILE | sed -e "s/$DEP//" | grep -q -e "[A-Za-z]"; then
|
||||
echo "$0: deleting whole $DEP lines not safe - try more precise pattern"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sed -i$BACKUP -e "/$DEP/d" $CABALFILE
|
50
cabal-tweak-flag
Executable file
50
cabal-tweak-flag
Executable file
@ -0,0 +1,50 @@
|
||||
#!/bin/sh
|
||||
|
||||
# TODO:
|
||||
# support setting flag when no upstream default
|
||||
|
||||
set -e +x
|
||||
|
||||
USAGE="Usage: $0 FLAG [True|False]"
|
||||
|
||||
if [ $# -ne 2 ]; then
|
||||
echo "$USAGE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FLAG=$1
|
||||
|
||||
NEW=$2
|
||||
case $NEW in
|
||||
True) OLD=False ;;
|
||||
False) OLD=True ;;
|
||||
*) echo "Flag value can only be set to True or False" ; exit 1 ;;
|
||||
esac
|
||||
|
||||
CABALFILE=$(ls *.cabal)
|
||||
|
||||
if [ $(echo $CABALFILE | wc -w) -ne 1 ]; then
|
||||
echo "There needs to be one .cabal file in the current dir!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep -q -i "^flag *$FLAG" $CABALFILE; then
|
||||
echo "$CABALFILE does not have flag $FLAG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep -A3 -i "^flag *$FLAG" $CABALFILE | grep -q -i "default:"; then
|
||||
echo "$CABALFILE: $FLAG flag might not have a default"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep -A3 -i "^flag *$FLAG" $CABALFILE | grep -q -i "default: *$OLD"; then
|
||||
echo "$CABALFILE: $FLAG flag already defaults to $NEW"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f $CABALFILE.orig ]; then
|
||||
BACKUP=.orig
|
||||
fi
|
||||
|
||||
sed -i$BACKUP -e "/[Ff]lag *$FLAG/,/[Dd]efault: *$OLD/ s/\( \+\)\([Dd]efault:[ \t]*\)$OLD/\1\2$NEW\n\1manual: True/" $CABALFILE
|
96
ghc-deps.sh
96
ghc-deps.sh
@ -1,81 +1,43 @@
|
||||
#!/bin/sh
|
||||
# find rpm provides and requires for Haskell GHC libraries
|
||||
|
||||
# To use add the following lines to spec file:
|
||||
# %define _use_internal_dependency_generator 0
|
||||
# %define __find_requires /usr/lib/rpm/ghc-deps.sh --requires %{buildroot}%{ghclibdir}
|
||||
# %define __find_provides /usr/lib/rpm/ghc-deps.sh --provides %{buildroot}%{ghclibdir}
|
||||
[ $# -ne 2 ] && echo "Usage: $(basename $0) [--provides|--requires] %{buildroot}%{ghclibdir}" && exit 1
|
||||
|
||||
[ $# -ne 2 ] && echo "Usage: `basename $0` [--provides|--requires] %{buildroot}%{ghclibdir}" && exit 1
|
||||
set +x
|
||||
|
||||
MODE=$1
|
||||
PKGBASEDIR=$2
|
||||
PKGCONFDIR=$PKGBASEDIR/package.conf.d
|
||||
GHC_VER=$(basename $PKGBASEDIR | sed -e s/ghc-//)
|
||||
mode=$1
|
||||
pkgbasedir=$2
|
||||
pkgconfdir=$pkgbasedir/package.conf.d
|
||||
|
||||
if [ ! -x "/usr/bin/ghc-pkg-${GHC_VER}" -a -x "$PKGBASEDIR/ghc-pkg" ]; then
|
||||
GHC_PKG="$PKGBASEDIR/ghc-pkg --global-conf=$PKGCONFDIR"
|
||||
else
|
||||
GHC_PKG=/usr/bin/ghc-pkg
|
||||
fi
|
||||
ghc_pkg="/usr/lib/rpm/ghc-pkg-wrapper $pkgbasedir"
|
||||
|
||||
case $MODE in
|
||||
--provides) FIELD=id ;;
|
||||
--requires) FIELD=depends ;;
|
||||
*) echo "`basename $0`: Need --provides or --requires" ; exit 1
|
||||
case $mode in
|
||||
--provides) field=id ;;
|
||||
--requires) field=depends ;;
|
||||
*) echo "$(basename $0): Need --provides or --requires"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -d "$PKGBASEDIR" ]; then
|
||||
SHARED=$(find $PKGBASEDIR -type f -name '*.so')
|
||||
fi
|
||||
|
||||
GHCVERSION=$(ghc --numeric-version)
|
||||
ghc_ver=$(basename $pkgbasedir | sed -e s/ghc-//)
|
||||
|
||||
files=$(cat)
|
||||
|
||||
#set -x
|
||||
|
||||
for i in $files; do
|
||||
LIB_FILE=$(echo $i | grep /libHS | egrep -v "$PKGBASEDIR/libHS")
|
||||
if [ "$LIB_FILE" ]; then
|
||||
if [ -d "$PKGCONFDIR" ]; then
|
||||
META=""
|
||||
SELF=""
|
||||
case $LIB_FILE in
|
||||
*.so) META=ghc ;;
|
||||
*_p.a) META=ghc-prof SELF=ghc-devel ;;
|
||||
*.a) META=ghc-devel
|
||||
if [ "$SHARED" ]; then
|
||||
SELF=ghc
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if [ "$META" ]; then
|
||||
PKGVER=$(echo $LIB_FILE | sed -e "s%$PKGBASEDIR/\([^/]\+\)/libHS.*%\1%")
|
||||
HASHS=$(${GHC_PKG} -f $PKGCONFDIR field $PKGVER $FIELD | sed -e "s/^$FIELD: \+//")
|
||||
for i in $HASHS; do
|
||||
case $i in
|
||||
*-*) echo $i | sed -e "s/\(.*\)-\(.*\)/$META(\1) = \2/" ;;
|
||||
*) ;;
|
||||
esac
|
||||
done
|
||||
if [ "$MODE" = "--requires" -a "$SELF" ]; then
|
||||
HASHS=$(${GHC_PKG} -f $PKGCONFDIR field $PKGVER id | sed -e "s/^id: \+//")
|
||||
for i in $HASHS; do
|
||||
echo $i | sed -e "s/\(.*\)-\(.*\)/$SELF(\1) = \2/"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
elif [ "$MODE" = "--requires" ]; then
|
||||
if file $i | grep -q 'executable, .* dynamically linked'; then
|
||||
BIN_DEPS=$(ldd $i | grep libHS | grep -v libHSrts | sed -e "s%^\\tlibHS\(.*\)-ghc${GHCVERSION}.so =.*%\1%")
|
||||
for p in ${BIN_DEPS}; do
|
||||
HASH=$(${GHC_PKG} --global field $p id | sed -e "s/^id: \+//")
|
||||
echo $HASH | sed -e "s/\(.*\)-\(.*\)/ghc(\1) = \2/"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
done
|
||||
case $i in
|
||||
# exclude builtin_rts.conf
|
||||
$pkgconfdir/*-*.conf)
|
||||
name=$(grep "^name: " $i | sed -e "s/name: //")
|
||||
ids=$($ghc_pkg field $name $field | sed -e "s/rts//" -e "s/bin-package-db-[^ ]\+//")
|
||||
|
||||
echo $files | tr [:blank:] '\n' | /usr/lib/rpm/rpmdeps $MODE
|
||||
for d in $ids; do
|
||||
case $d in
|
||||
*-*) echo "ghc-devel($d)" ;;
|
||||
*) ;;
|
||||
esac
|
||||
done
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
32
ghc-pkg-wrapper
Executable file
32
ghc-pkg-wrapper
Executable file
@ -0,0 +1,32 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ $# -lt 1 ] && echo "Usage: `basename $0` %{buildroot}%{ghclibdir} ..." && exit 1
|
||||
|
||||
set +x
|
||||
|
||||
PKGBASEDIR=$1
|
||||
shift
|
||||
PKGCONFDIR=$PKGBASEDIR/package.conf.d
|
||||
GHC_VER=$(basename $PKGBASEDIR | sed -e s/ghc-//)
|
||||
|
||||
# for a ghc build use the new ghc-pkg
|
||||
INPLACE_GHCPKG=$PKGBASEDIR/../../bin/ghc-pkg-$GHC_VER
|
||||
|
||||
if [ -x "$INPLACE_GHCPKG" ]; then
|
||||
case $GHC_VER in
|
||||
7.4.*)
|
||||
GHC_PKG="$PKGBASEDIR/ghc-pkg --global-conf=$PKGCONFDIR"
|
||||
;;
|
||||
7.6.*)
|
||||
GHC_PKG="$PKGBASEDIR/ghc-pkg --global-package-db=$PKGCONFDIR"
|
||||
;;
|
||||
# 7.8 and 7.10
|
||||
*)
|
||||
GHC_PKG="env LD_LIBRARY_PATH=$(dirname $PKGBASEDIR) $PKGBASEDIR/bin/ghc-pkg --global-package-db=$PKGCONFDIR"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
GHC_PKG="/usr/bin/ghc-pkg-${GHC_VER} -f $PKGCONFDIR"
|
||||
fi
|
||||
|
||||
$GHC_PKG -v0 --simple-output $* | uniq
|
@ -1,292 +0,0 @@
|
||||
# RPM Macros for packaging Haskell cabalized packages -*-rpm-spec-*-
|
||||
# see https://fedoraproject.org/wiki/PackagingDrafts/Haskell for more details
|
||||
|
||||
# "cabal"
|
||||
%cabal [ -x Setup ] || ghc --make %{!?ghc_user_conf:-no-user-package-conf} %{!?ghc_without_dynamic:-dynamic} Setup\
|
||||
./Setup
|
||||
|
||||
# check ghc version was rebuilt against self
|
||||
%ghc_check_bootstrap\
|
||||
if [ ! "$(ghc --info | grep \\"Booter\\ version\\",\\"%{ghc_version}\\")" ]; then\
|
||||
echo "Warning: this ghc build is not self-bootstrapped."\
|
||||
%if %{undefined ghc_bootstrapping}\
|
||||
echo "The ghc package should be rebuilt against its current version before\
|
||||
proceeding, to avoid dependency ABI breakage from a future ghc rebuild."\
|
||||
echo "To override set ghc_bootstrapping."\
|
||||
echo "Aborting."\
|
||||
exit 1\
|
||||
%endif\
|
||||
fi
|
||||
|
||||
# configure
|
||||
%cabal_configure\
|
||||
%ghc_check_bootstrap\
|
||||
%cabal configure --prefix=%{_prefix} --libdir=%{_libdir} --docdir=%{_docdir}/%{name}-%{version} %{?pkg_name:--htmldir=%{ghclibdocdir}/%{pkg_name}-%{version}} --libsubdir='$compiler/$pkgid' --ghc %{!?ghc_without_shared:--enable-shared} %{!?ghc_without_dynamic:--enable-executable-dynamic} %{?cabal_configure_options}
|
||||
|
||||
# install
|
||||
%cabal_install %cabal copy --destdir=%{buildroot} -v
|
||||
|
||||
# root dir for ghc docs
|
||||
%ghcdocbasedir %{_docdir}/ghc/html
|
||||
# libraries doc dir
|
||||
%ghclibdocdir %{ghcdocbasedir}/libraries
|
||||
# top library dir
|
||||
%ghclibdir %{_libdir}/ghc-%{ghc_version}
|
||||
|
||||
# ghc_gen_filelists [name] [version]
|
||||
%ghc_gen_filelists()\
|
||||
%define pkgname %{?1}%{!?1:%{pkg_name}}\
|
||||
%define pkgver %{?2}%{!?2:%{version}}\
|
||||
%define pkgnamever %{pkgname}-%{pkgver}\
|
||||
%define basepkg ghc-%{pkgname}\
|
||||
%define pkgdir %{ghclibdir}/%{pkgnamever}\
|
||||
%define docdir %{ghclibdocdir}/%{pkgnamever}\
|
||||
rm -f %{basepkg}.files %{basepkg}-devel.files\
|
||||
%if %{undefined ghc_without_shared}\
|
||||
if [ -d "%{buildroot}%{pkgdir}" ]; then\
|
||||
echo "%dir %{pkgdir}" >> %{basepkg}.files\
|
||||
echo "%attr(755,root,root) %{pkgdir}/libHS%{pkgnamever}-ghc%{ghc_version}.so" >> %{basepkg}.files\
|
||||
fi\
|
||||
%endif\
|
||||
%if 0%{!?1:1} && %{defined ghc_without_shared}\
|
||||
if [ "%{name}" = "ghc-%{pkg_name}" ]; then\
|
||||
if [ -d "%{buildroot}%{_docdir}/%{name}-%{version}" ]; then\
|
||||
mv %{buildroot}%{_docdir}/%{name}-%{version} %{buildroot}%{_docdir}/%{name}-devel-%{version}\
|
||||
%if %{undefined ghc_exclude_docdir}\
|
||||
echo "%{_docdir}/%{name}-devel-%{version}" >> %{basepkg}-devel.files\
|
||||
%endif\
|
||||
fi\
|
||||
fi\
|
||||
%endif\
|
||||
%if 0%{!?1:1} && %{undefined ghc_exclude_docdir}\
|
||||
if [ -d "%{buildroot}%{_docdir}/%{name}-%{version}" ]; then\
|
||||
echo "%{_docdir}/%{name}-%{version}" >> %{basepkg}%{?ghc_without_shared:-devel}.files\
|
||||
elif [ -d "%{buildroot}%{_docdir}/ghc-%{pkgnamever}" ]; then\
|
||||
echo "%{_docdir}/ghc-%{pkgnamever}" >> %{basepkg}%{?ghc_without_shared:-devel}.files\
|
||||
fi\
|
||||
%endif\
|
||||
echo "%{ghclibdir}/package.conf.d/%{pkgnamever}*.conf" >> %{basepkg}-devel.files\
|
||||
if [ -d "%{buildroot}%{pkgdir}" ]; then\
|
||||
find %{buildroot}%{pkgdir} -type d | sed "s/^/%dir /" >> %{basepkg}-devel.files\
|
||||
find %{buildroot}%{pkgdir} ! \\( -type d -o -name "libHS*.so" \\) >> %{basepkg}-devel.files\
|
||||
fi\
|
||||
if [ -d "%{buildroot}%{docdir}" ]; then\
|
||||
echo "%{docdir}" >> %{basepkg}-devel.files\
|
||||
fi\
|
||||
sed -i -e "s!%{buildroot}!!g" %{!?ghc_without_shared:%{basepkg}.files} %{basepkg}-devel.files\
|
||||
%{nil}
|
||||
|
||||
%ghc_add_basepkg_file()\
|
||||
%define basepkg ghc-%{pkg_name}\
|
||||
echo "%*" >> %{basepkg}%{?ghc_without_shared:-devel}.files
|
||||
|
||||
# compiler version
|
||||
%ghc_version %{!?ghc_version_override:%(ghc --numeric-version)}%{?ghc_version_override}
|
||||
|
||||
# create and install package.conf file
|
||||
# cabal_pkg_conf [name] [version]
|
||||
%cabal_pkg_conf()\
|
||||
%define pkgname %{?1}%{!?1:%{pkg_name}}\
|
||||
%define pkgver %{?2}%{!?2:%{version}}\
|
||||
%define pkgnamever %{pkgname}-%{pkgver}\
|
||||
%cabal register --gen-pkg-config\
|
||||
mkdir -p %{buildroot}%{ghclibdir}/package.conf.d\
|
||||
install --mode=0644 %{pkgnamever}.conf %{buildroot}%{ghclibdir}/package.conf.d\
|
||||
%{nil}
|
||||
|
||||
# devel pkg basic requires
|
||||
%ghc_devel_requires Requires: ghc-compiler = %{ghc_version}\
|
||||
Requires(post): ghc-compiler = %{ghc_version}\
|
||||
Requires(postun): ghc-compiler = %{ghc_version}\
|
||||
%if %{undefined ghc_without_shared}\
|
||||
Requires: ghc-%{?pkg_name}%{!?pkg_name:%{pkgname}} = %{?pkgver}%{!?pkgver:%{version}}-%{release}\
|
||||
%endif
|
||||
|
||||
%ghc_shared_files\
|
||||
%if %{undefined ghc_without_shared}\
|
||||
%files -n %{basepkg} -f %{basepkg}.files\
|
||||
%{?base_doc_files:%doc %base_doc_files}\
|
||||
%endif\
|
||||
%{nil}
|
||||
|
||||
# ghc_lib_package [-c cdepslist] [-h pkgdepslist]
|
||||
%ghc_lib_package(c:h:)\
|
||||
%define pkgname %{?1}%{!?1:%{pkg_name}}\
|
||||
%define basepkg ghc-%{pkgname}\
|
||||
%ghc_shared_files\
|
||||
\
|
||||
%ghc_package_devel\
|
||||
%{nil}
|
||||
|
||||
# ghc_package [-l licensetag] [name] [version]
|
||||
%ghc_package(l:)\
|
||||
%define pkgname %{?1}%{!?1:%{pkg_name}}\
|
||||
%define pkgver %{?2}%{!?2:%{version}}\
|
||||
%define basepkg ghc-%{pkgname}\
|
||||
%package -n %{basepkg}\
|
||||
Summary: %{?common_summary}%{!?common_summary:Haskell %{pkgname} library}\
|
||||
Group: System Environment/Libraries\
|
||||
%{?1:Version: %{pkgver}}\
|
||||
%{-l:License: %{-l*}}\
|
||||
%{?ghc_pkg_obsoletes:Obsoletes: %(echo "%{ghc_pkg_obsoletes}" | sed -e "s/\\(ghc-[^, ]*\\)-devel/\\1/g")}
|
||||
|
||||
# ghc_description [name] [version]
|
||||
%ghc_description\
|
||||
%define pkgname %{?1}%{!?1:%{pkg_name}}\
|
||||
%define basepkg ghc-%{pkgname}\
|
||||
%description -n %{basepkg}\
|
||||
%{?common_description}%{!?common_description:Haskell %{pkgname} library.}\
|
||||
%if %{defined ghc_version} && %{undefined ghc_without_shared}\
|
||||
This package provides the shared library.\
|
||||
%endif
|
||||
|
||||
# ghc_binlib_package [-c cdepslist] [-h pkgdepslist] [-l licensetag] [-x] [name] [version]
|
||||
%ghc_binlib_package(c:h:l:x)\
|
||||
%define pkgname %{?1}%{!?1:%{pkg_name}}\
|
||||
%define pkgver %{?2}%{!?2:%{version}}\
|
||||
%define pkgnamever %{pkgname}-%{pkgver}\
|
||||
%{!-x:%{?1:%global ghc_packages_list %{?ghc_packages_list} %{pkgnamever}}}\
|
||||
%define basepkg ghc-%{pkgname}\
|
||||
%ghc_package\
|
||||
\
|
||||
%ghc_description\
|
||||
\
|
||||
%ghc_lib_package\
|
||||
%{nil}
|
||||
|
||||
%ghc_pkg_recache %{_bindir}/ghc-pkg recache --no-user-package-conf || :
|
||||
|
||||
# (deprecated) for docs post and postun
|
||||
%ghc_reindex_haddock :
|
||||
|
||||
%ghc_devel_files\
|
||||
%files -n %{basepkg}-devel -f %{basepkg}-devel.files\
|
||||
%if %{defined ghc_without_shared}\
|
||||
%{?base_doc_files:%doc %base_doc_files}\
|
||||
%endif\
|
||||
%{?devel_doc_files:%doc %devel_doc_files}\
|
||||
%{nil}
|
||||
|
||||
%ghc_files()\
|
||||
%{?1:%define base_doc_files %*}\
|
||||
%define basepkg ghc-%{pkg_name}\
|
||||
%ghc_shared_files\
|
||||
\
|
||||
%ghc_devel_files\
|
||||
%{nil}
|
||||
|
||||
# ghc_devel_package [-c cdepslist] [-h pkgdepslist] [-l licensetag] [name] [version]
|
||||
%ghc_devel_package(c:h:l:)\
|
||||
%define pkgname %{?1}%{!?1:%{pkg_name}}\
|
||||
%define pkgver %{?2}%{!?2:%{version}}\
|
||||
%define basepkg ghc-%{pkgname}\
|
||||
%package -n %{basepkg}-devel\
|
||||
Summary: %{?common_summary}%{!?common_summary:Haskell %{pkgname} library} development files\
|
||||
Group: Development/Libraries\
|
||||
%{?1:Version: %{pkgver}}\
|
||||
%{-l:License: %{-l*}}\
|
||||
%{?ghc_devel_requires}\
|
||||
%{-h:Requires: %{-h*}}\
|
||||
%{?ghc_pkg_c_deps:Requires: %{ghc_pkg_c_deps}}\
|
||||
%{-c:Requires: %{-c*}}\
|
||||
%{?ghc_pkg_obsoletes:Obsoletes: %{ghc_pkg_obsoletes}}\
|
||||
%{?ghc_pkg_obsoletes:Obsoletes: %(echo "%{ghc_pkg_obsoletes}" | sed -e "s/\\(ghc-[^, ]*\\)-devel/\\1-doc/g")}\
|
||||
Obsoletes: %{basepkg}-doc < %{pkgver}-%{release}\
|
||||
Provides: %{basepkg}-doc = %{pkgver}-%{release}\
|
||||
Obsoletes: %{basepkg}-prof < %{pkgver}-%{release}\
|
||||
Provides: %{basepkg}-prof = %{pkgver}-%{release}\
|
||||
|
||||
# ghc_devel_description
|
||||
%ghc_devel_description\
|
||||
%define pkgname %{?1}%{!?1:%{pkg_name}}\
|
||||
%define basepkg ghc-%{pkgname}\
|
||||
%description -n %{basepkg}-devel\
|
||||
%{?common_description}%{!?common_description:Haskell %{pkgname} library.}\
|
||||
\
|
||||
This package contains the development files.
|
||||
|
||||
# ghc_devel_post_postun
|
||||
%ghc_devel_post_postun\
|
||||
%define pkgname %{?1}%{!?1:%{pkg_name}}\
|
||||
%define basepkg ghc-%{pkgname}\
|
||||
%post -n %{basepkg}-devel\
|
||||
%ghc_pkg_recache\
|
||||
\
|
||||
%postun -n %{basepkg}-devel\
|
||||
%ghc_pkg_recache
|
||||
|
||||
# ghc_package_devel [-c cdepslist] [-h pkgdepslist] [-l licensetag] [name] [version]
|
||||
%ghc_package_devel(c:h:l:)\
|
||||
%define pkgname %{?1}%{!?1:%{pkg_name}}\
|
||||
%define basepkg ghc-%{pkgname}\
|
||||
%ghc_devel_package\
|
||||
\
|
||||
%ghc_devel_description\
|
||||
\
|
||||
%ghc_devel_post_postun\
|
||||
\
|
||||
%ghc_devel_files\
|
||||
%{nil}
|
||||
|
||||
# ghc_strip_dynlinked
|
||||
%ghc_strip_dynlinked\
|
||||
%if %{undefined __debug_package}\
|
||||
find %{buildroot} -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \\; -exec strip "{}" \\;\
|
||||
%endif
|
||||
|
||||
# ghc_bin_build
|
||||
%ghc_bin_build\
|
||||
%global debug_package %{nil}\
|
||||
%cabal_configure\
|
||||
%cabal build
|
||||
|
||||
# ghc_lib_build [name] [version]
|
||||
%ghc_lib_build()\
|
||||
%global debug_package %{nil}\
|
||||
%{?1:cd %1-%2}\
|
||||
%cabal_configure %{!?without_prof:-p} %{?1:--docdir=%{_docdir}/ghc-%1-%2 --htmldir=%{ghclibdocdir}/%1-%2}\
|
||||
%cabal build\
|
||||
%if %{undefined without_haddock}\
|
||||
%cabal haddock %{!?without_hscolour:%(if [ -x %{_bindir}/HsColour ]; then echo --hyperlink-source; fi)}\
|
||||
%endif\
|
||||
%{?1:cd -}\
|
||||
%{nil}
|
||||
|
||||
# install bin package
|
||||
%ghc_bin_install\
|
||||
%if %{undefined ghc_bootstrapping}\
|
||||
%global _use_internal_dependency_generator 0\
|
||||
%global __find_requires %{_rpmconfigdir}/ghc-deps.sh --requires %{buildroot}%{ghclibdir}\
|
||||
%endif\
|
||||
%cabal_install\
|
||||
%ghc_strip_dynlinked
|
||||
|
||||
# ghc_lib_install [name] [version]
|
||||
%ghc_lib_install()\
|
||||
%if %{undefined ghc_bootstrapping}\
|
||||
%global _use_internal_dependency_generator 0\
|
||||
%global __find_provides %{_rpmconfigdir}/ghc-deps.sh --provides %{buildroot}%{ghclibdir}\
|
||||
%global __find_requires %{_rpmconfigdir}/ghc-deps.sh --requires %{buildroot}%{ghclibdir}\
|
||||
%endif\
|
||||
%{?1:cd %1-%2}\
|
||||
%cabal_install\
|
||||
%cabal_pkg_conf\
|
||||
%{?1:cd -}\
|
||||
%ghc_gen_filelists\
|
||||
%{!?1:%ghc_strip_dynlinked}\
|
||||
%{nil}
|
||||
|
||||
# - without_hscolour, without_testsuite, and ghc_bootstrapping
|
||||
# need to be set locally in the spec file
|
||||
|
||||
# skip prof libs, and documentation
|
||||
%ghc_test\
|
||||
%global without_prof 1\
|
||||
%global without_haddock 1\
|
||||
%global without_manual 1
|
||||
|
||||
# skip shared and prof libs, documentation, and testsuite
|
||||
%ghc_bootstrap\
|
||||
%global ghc_without_shared 1\
|
||||
%global ghc_without_dynamic 1\
|
||||
%ghc_test
|
@ -1,24 +1,43 @@
|
||||
%global debug_package %{nil}
|
||||
|
||||
%global macros_file %{_sysconfdir}/rpm/macros.ghc
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||
%global macros_dir %{_rpmconfigdir}/macros.d
|
||||
%else
|
||||
%global macros_dir %{_sysconfdir}/rpm
|
||||
%endif
|
||||
|
||||
# uncomment to bootstrap without hscolour
|
||||
#%%global without_hscolour 1
|
||||
|
||||
Name: ghc-rpm-macros
|
||||
Version: 0.15.5
|
||||
Version: 1.9.6
|
||||
Release: 1%{?dist}
|
||||
Summary: Macros for building packages for GHC
|
||||
Summary: RPM macros for building Haskell packages for GHC
|
||||
|
||||
Group: Development/Libraries
|
||||
License: GPLv3
|
||||
URL: https://fedoraproject.org/wiki/Haskell_SIG
|
||||
|
||||
# This is a Fedora maintained package which is specific to
|
||||
# our distribution. Thus the source is only available from
|
||||
# within this srpm.
|
||||
Source0: ghc-rpm-macros.ghc
|
||||
License: GPLv3+
|
||||
URL: https://github.com/fedora-haskell/ghc-rpm-macros
|
||||
# Currently source is only in git but tarballs could be made if it helps
|
||||
Source0: macros.ghc
|
||||
Source1: COPYING
|
||||
Source2: AUTHORS
|
||||
Source3: ghc-deps.sh
|
||||
Source4: cabal-tweak-dep-ver
|
||||
Source5: cabal-tweak-flag
|
||||
Source6: macros.ghc-extra
|
||||
Source7: ghc.attr
|
||||
Source8: ghc-pkg-wrapper
|
||||
Source9: macros.ghc-os
|
||||
Source10: Setup.hs
|
||||
Source11: cabal-tweak-drop-dep
|
||||
Requires: redhat-rpm-config
|
||||
# for ghc_version
|
||||
Requires: ghc-compiler
|
||||
%if %{undefined without_hscolour}
|
||||
Requires: hscolour
|
||||
%endif
|
||||
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
|
||||
BuildArch: noarch
|
||||
%endif
|
||||
|
||||
%description
|
||||
A set of macros for building GHC packages following the Haskell Guidelines
|
||||
@ -26,6 +45,75 @@ of the Fedora Haskell SIG. ghc needs to be installed in order to make use of
|
||||
these macros.
|
||||
|
||||
|
||||
%package extra
|
||||
Summary: Extra RPM macros for building Haskell library subpackages
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: chrpath
|
||||
|
||||
%description extra
|
||||
Extra macros used for subpackaging of Haskell libraries,
|
||||
for example in ghc and haskell-platform.
|
||||
|
||||
|
||||
# ideally packages should be obsoleted by some relevant package
|
||||
# this is a last resort when there is no such appropriate package
|
||||
%package -n ghc-obsoletes
|
||||
Summary: Dummy package to obsolete deprecated Haskell packages
|
||||
%if 0%{?fedora} >= 22
|
||||
# these 3 no longer build with ghc-7.8
|
||||
Obsoletes: ghc-ForSyDe < 3.1.2, ghc-ForSyDe-devel < 3.1.2
|
||||
Obsoletes: ghc-parameterized-data < 0.1.6
|
||||
Obsoletes: ghc-parameterized-data-devel < 0.1.6
|
||||
Obsoletes: ghc-type-level < 0.2.5, ghc-type-level-devel < 0.2.5
|
||||
Obsoletes: leksah < 0.14, ghc-leksah < 0.14, ghc-leksah-devel < 0.14
|
||||
# dropped from HP 2014.2
|
||||
Obsoletes: ghc-cgi < 3001.1.8, ghc-cgi-devel < 3001.1.8
|
||||
%endif
|
||||
%if 0%{?fedora} >= 24
|
||||
Obsoletes: ghc-citeproc-hs < 0.3.10-3, ghc-citeproc-hs-devel < 0.3.10-3
|
||||
Obsoletes: ghc-hakyll < 4.5.4.0-6, ghc-hakyll-devel < 4.5.4.0-6
|
||||
Obsoletes: ghc-leksah-server < 0.14.3.1-4, ghc-leksah-server-devel < 0.14.3.1-4
|
||||
%endif
|
||||
%if 0%{?fedora} >= 25
|
||||
Obsoletes: ghc-cmdtheline <= 0.2.3, ghc-cmdtheline-devel <= 0.2.3
|
||||
Obsoletes: ghc-concrete-typerep <= 0.1.0.2, ghc-concrete-typerep-devel <= 0.1.0.2
|
||||
Obsoletes: ghc-glade <= 0.12.5.0, ghc-glade-devel <= 0.12.5.0
|
||||
Obsoletes: bluetile <= 0.6, bluetile-core <= 0.6
|
||||
Obsoletes: ghc-lambdabot-utils <= 4.2.2, ghc-lambdabot-utils-devel <= 4.2.2
|
||||
Obsoletes: haddock <= 2.14.3, ghc-haddock <= 2.14.3, ghc-haddock-devel <= 2.14.3
|
||||
Obsoletes: ghc-monad-unify <= 0.2.2, ghc-monad-unify-devel <= 0.2.2
|
||||
Obsoletes: idris <= 0.9.9.1
|
||||
Obsoletes: ghc-editline < 0.2.1.1-13, ghc-editline-devel < 0.2.1.1-13
|
||||
Obsoletes: ghc-hashed-storage < 0.5.11-4, ghc-hashed-storage-devel < 0.5.11-4
|
||||
Obsoletes: ghc-nats <= 0.2, ghc-nats-devel <= 0.2
|
||||
Obsoletes: ghc-primes <= 0.2.1.0-11, ghc-primes-devel <= 0.2.1.0-11
|
||||
%endif
|
||||
%if 0%{?fedora} >= 26
|
||||
Obsoletes: ghc-geniplate <= 0.6.0.5, ghc-geniplate-devel <= 0.6.0.5
|
||||
Obsoletes: ghc-sized-types <= 0.3.4.0, ghc-sized-types-devel <= 0.3.4.0
|
||||
# dropped from HP 8.0.2
|
||||
Obsoletes: ghc-cgi < 3001.2.2.2-5, ghc-cgi-devel < 3001.2.2.2-5
|
||||
Obsoletes: ghc-multipart < 0.1.2-5, ghc-multipart-devel < 0.1.2-5
|
||||
%endif
|
||||
%if 0%{?fedora} >= 27
|
||||
Obsoletes: ghc-webkit <= 0.14.2.1, ghc-webkit-devel <= 0.14.2.1
|
||||
%endif
|
||||
%if 0%{?fedora} >= 28
|
||||
Obsoletes: ghc-fail < 4.9.0.0-2, ghc-fail-devel < 4.9.0.0-2
|
||||
Obsoletes: ghc-ltk < 0.16, ghc-ltk-devel < 0.16
|
||||
%endif
|
||||
%if 0%{?fedora} >= 29
|
||||
Obsoletes: ghc-content-store < 0.2.1-3, ghc-content-store-devel < 0.2.1-3
|
||||
Obsoletes: ghc-bdcs < 0.6.1-3, ghc-bdcs-devel < 0.6.1-3
|
||||
Obsoletes: ghc-bdcs-api < 0.1.3-3, ghc-bdcs-api-devel < 0.1.3-3
|
||||
%endif
|
||||
|
||||
%description -n ghc-obsoletes
|
||||
Meta package for obsoleting deprecated Haskell packages.
|
||||
|
||||
This package can safely be removed.
|
||||
|
||||
|
||||
%prep
|
||||
%setup -c -T
|
||||
cp %{SOURCE1} %{SOURCE2} .
|
||||
@ -36,29 +124,714 @@ echo no build stage needed
|
||||
|
||||
|
||||
%install
|
||||
install -p -D -m 0644 %{SOURCE0} ${RPM_BUILD_ROOT}/%{macros_file}
|
||||
install -p -D -m 0644 %{SOURCE0} %{buildroot}/%{macros_dir}/macros.ghc
|
||||
install -p -D -m 0644 %{SOURCE6} %{buildroot}/%{macros_dir}/macros.ghc-extra
|
||||
install -p -D -m 0644 %{SOURCE9} %{buildroot}/%{macros_dir}/macros.ghc-os
|
||||
|
||||
install -p -D -m 0755 %{SOURCE3} %{buildroot}/%{_prefix}/lib/rpm/ghc-deps.sh
|
||||
|
||||
# this is why this package is now arch-dependent:
|
||||
# turn off shared libs and dynamic linking on secondary archs
|
||||
%ifnarch %{ix86} x86_64
|
||||
cat >> %{buildroot}/%{macros_file} <<EOF
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||
install -p -D -m 0644 %{SOURCE7} %{buildroot}/%{_prefix}/lib/rpm/fileattrs/ghc.attr
|
||||
%endif
|
||||
|
||||
# shared libraries are only supported on primary intel archs
|
||||
%%ghc_without_dynamic 1
|
||||
%%ghc_without_shared 1
|
||||
install -p -D -m 0644 %{SOURCE10} %{buildroot}/%{_datadir}/%{name}/Setup.hs
|
||||
|
||||
install -p -D -m 0755 %{SOURCE4} %{buildroot}/%{_bindir}/cabal-tweak-dep-ver
|
||||
install -p -D -m 0755 %{SOURCE5} %{buildroot}/%{_bindir}/cabal-tweak-flag
|
||||
install -p -D -m 0755 %{SOURCE11} %{buildroot}/%{_bindir}/cabal-tweak-drop-dep
|
||||
install -p -D -m 0755 %{SOURCE8} %{buildroot}/%{_prefix}/lib/rpm/ghc-pkg-wrapper
|
||||
|
||||
%if 0%{?rhel} && 0%{?rhel} < 7
|
||||
cat >> %{buildroot}/%{_prefix}/lib/rpm/ghc-deps.sh <<EOF
|
||||
|
||||
echo \$files | tr [:blank:] '\n' | %{_rpmconfigdir}/rpmdeps --requires
|
||||
EOF
|
||||
%endif
|
||||
|
||||
|
||||
%files
|
||||
%doc COPYING AUTHORS
|
||||
%config(noreplace) %{macros_file}
|
||||
%license COPYING
|
||||
%doc AUTHORS
|
||||
%{macros_dir}/macros.ghc
|
||||
%{macros_dir}/macros.ghc-os
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||
%{_prefix}/lib/rpm/fileattrs/ghc.attr
|
||||
%endif
|
||||
%{_prefix}/lib/rpm/ghc-deps.sh
|
||||
%{_prefix}/lib/rpm/ghc-pkg-wrapper
|
||||
%{_bindir}/cabal-tweak-dep-ver
|
||||
%{_bindir}/cabal-tweak-drop-dep
|
||||
%{_bindir}/cabal-tweak-flag
|
||||
%{_datadir}/%{name}/Setup.hs
|
||||
|
||||
|
||||
%files extra
|
||||
%{macros_dir}/macros.ghc-extra
|
||||
|
||||
|
||||
%if 0%{?fedora} >= 22
|
||||
%files -n ghc-obsoletes
|
||||
%endif
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Feb 1 2019 Jens Petersen <petersen@redhat.com> - 1.9.6-1
|
||||
- disable debuginfo by undefining _enable_debug_packages
|
||||
- leave stripping to generic rpm macros
|
||||
- use C.utf8 locale for building instead of en_US.utf8
|
||||
|
||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.5-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Thu Oct 25 2018 Jens Petersen <petersen@redhat.com> - 1.9.5-5
|
||||
- need to disable -Werror=format-security too on s390x
|
||||
|
||||
* Wed Oct 24 2018 Jens Petersen <petersen@redhat.com> - 1.9.5-4
|
||||
- silence C compiler Wunused-label warnings flood on s390x again
|
||||
|
||||
* Tue Oct 23 2018 Jens Petersen <petersen@redhat.com> - 1.9.5-3
|
||||
- f29: obsolete content-store, bdcs, and bdcs-api
|
||||
|
||||
* Sat Oct 6 2018 Jens Petersen <petersen@redhat.com> - 1.9.5-2
|
||||
- fix ghc_set_gcc_flags name
|
||||
|
||||
* Sat Oct 6 2018 Jens Petersen <petersen@redhat.com> - 1.9.5-1
|
||||
- disable hardened ldflags again
|
||||
|
||||
* Fri Oct 5 2018 Jens Petersen <petersen@redhat.com> - 1.9.4-1
|
||||
- cabal_configure now uses ghc_set_gcc_flags
|
||||
|
||||
* Fri Oct 5 2018 Jens Petersen <petersen@redhat.com> - 1.9.3-1
|
||||
- disable dynamic linking of executables for better portability
|
||||
- replace ghc_set_cflags with simplified ghc_set_gcc_flags
|
||||
|
||||
* Tue Jul 31 2018 Jens Petersen <petersen@redhat.com> - 1.9.2-1
|
||||
- inject a Setup.hs if none shipped
|
||||
|
||||
* Tue Jul 24 2018 Jens Petersen <petersen@redhat.com> - 1.9.1-1
|
||||
- remove -Wall and -Werror=format-security separately (on aarch64 and s390x)
|
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Thu May 24 2018 Jens Petersen <petersen@redhat.com> - 1.9.0-1
|
||||
- support Cabal bundled internal libraries (yuck)
|
||||
- ghc_check_bootstrap should be redundant now according to upstream
|
||||
- rename ghc_bootstrap to ghc_quick_build (disables prof and haddock)
|
||||
|
||||
* Mon Apr 30 2018 Jens Petersen <petersen@redhat.com> - 1.8.7-6
|
||||
- obsolete ghc-fail
|
||||
|
||||
* Sat Apr 7 2018 Robert-André Mauchin <zebob.m@gmail.com> - 1.8.7-5
|
||||
- drop hash from pkgdir in ghc_gen_filelists too
|
||||
|
||||
* Thu Apr 5 2018 Jens Petersen <petersen@redhat.com> - 1.8.7-4
|
||||
- configure libexecsubdir (Cabal-2 only) (#1563863)
|
||||
- drop hash from libsubdir
|
||||
|
||||
* Tue Mar 6 2018 Jens Petersen <petersen@redhat.com> - 1.8.7-3
|
||||
- obsolete ghc-ltk
|
||||
|
||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.7-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Sat Feb 3 2018 Jens Petersen <petersen@redhat.com> - 1.8.7-1
|
||||
- no longer need to prune -z defs from LDFLAGS
|
||||
- drop the ldconfig scripts since they are not needed for F28
|
||||
|
||||
* Mon Jan 29 2018 Jens Petersen <petersen@redhat.com> - 1.8.6-1
|
||||
- cabal-tweak-drop-dep: quote grep pattern to allow whitespace
|
||||
|
||||
* Sun Jan 28 2018 Jens Petersen <petersen@redhat.com> - 1.8.5-1
|
||||
- re-enable _ghcdynlibdir (for ghc-8.2)
|
||||
|
||||
* Sun Jan 28 2018 Jens Petersen <petersen@redhat.com> - 1.8.4-1
|
||||
- make the recent dynlib packaging changes conditional on _ghcdynlibdir
|
||||
- temporarily disable _ghcdynlibdir for Rawhide
|
||||
|
||||
* Thu Jan 25 2018 Jens Petersen <petersen@redhat.com> - 1.8.3-1
|
||||
- remove "-z defs" from LDFLAGS since it breaks linking with ghc (see #1535422)
|
||||
|
||||
* Tue Jan 23 2018 Jens Petersen <petersen@redhat.com> - 1.8.1-1
|
||||
- ghc_fix_rpath: remove leading or trailing ':'
|
||||
|
||||
* Mon Jan 22 2018 Jens Petersen <petersen@redhat.com> - 1.8.0-1
|
||||
- add _ghcdynlibdir for Cabal --dynlibdir
|
||||
- dynlibs in _libdir
|
||||
- drop ghc_without_shared
|
||||
- ghc_fix_rpath removes RPATHs for 8.2+
|
||||
- add ldconfig install scripts to ghc_lib_subpackage
|
||||
|
||||
* Mon Dec 4 2017 Jens Petersen <petersen@fedoraproject.org> - 1.6.51-1
|
||||
- add ghc_set_cflags macro
|
||||
|
||||
* Wed Nov 15 2017 Jens Petersen <petersen@redhat.com> - 1.6.50-9
|
||||
- obsolete ghc-webkit (#1375825)
|
||||
|
||||
* Wed Nov 15 2017 Jens Petersen <petersen@redhat.com> - 1.6.50-8
|
||||
- rename macros.ghc-fedora to macros.ghc-os
|
||||
|
||||
* Wed Nov 15 2017 Jens Petersen <petersen@redhat.com> - 1.6.50-7
|
||||
- use shell variable instead of macro to carry licensedir version
|
||||
|
||||
* Tue Nov 14 2017 Jens Petersen <petersen@redhat.com> - 1.6.50-6
|
||||
- make package noarch RHEL > 7
|
||||
- only version license dir for RHEL <= 7
|
||||
|
||||
* Fri Nov 10 2017 Jens Petersen <petersen@redhat.com> - 1.6.50-5
|
||||
- -Werror=format-security fails without -Wall
|
||||
|
||||
* Fri Nov 10 2017 Jens Petersen <petersen@redhat.com> - 1.6.50-4
|
||||
- do not set -Wall on aarch64 and s390x since -Wunused-label is extremely noisy
|
||||
|
||||
* Fri Nov 10 2017 Jens Petersen <petersen@redhat.com> - 1.6.50-3
|
||||
- temporarily set Wall for all archs to see which are noisy
|
||||
|
||||
* Tue Oct 10 2017 Jens Petersen <petersen@redhat.com> - 1.6.50-2
|
||||
- drop the git-annex obsoletes
|
||||
|
||||
* Wed Sep 13 2017 Jens Petersen <petersen@redhat.com> - 1.6.50-1
|
||||
- make some macro call args explicit for rpm-4.14 scope change
|
||||
(this breaks builds with earlier versions of rpm)
|
||||
- fix the package.conf existence check
|
||||
|
||||
* Wed Aug 2 2017 Jens Petersen <petersen@redhat.com>
|
||||
- ghc_gen_filelists: check package.conf exists
|
||||
|
||||
* Sun Jul 30 2017 Jens Petersen <petersen@redhat.com> - 1.6.20-2
|
||||
- make package noarch again for f27
|
||||
|
||||
* Sun Jul 30 2017 Jens Petersen <petersen@redhat.com> - 1.6.20-1
|
||||
- add _ghclicensedir macro
|
||||
- add ghc_smp_mflags macro, since -j4 breaks reproducible-builds.org completely
|
||||
(report by Bernhard Wiedemann)
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.19-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Thu May 11 2017 Jens Petersen <petersen@redhat.com> - 1.6.19-2
|
||||
- obsolete git-annex
|
||||
|
||||
* Fri Mar 24 2017 Jens Petersen <petersen@redhat.com> - 1.6.19-1
|
||||
- fix haddock generation
|
||||
- cabal_configure now outputs Cabal version
|
||||
- fix ghc-deps.sh for ghc-pkg < 8 which does not accept pkg id
|
||||
- fix ghc_fix_rpath for ghc-7.10
|
||||
- Group and defattr are only needed for rhel5
|
||||
|
||||
* Thu Mar 16 2017 Jens Petersen <petersen@redhat.com> - 1.6.18-3
|
||||
- condition obsoletes on fedora version
|
||||
- add f26 obsoletes for cgi and multipart
|
||||
|
||||
* Sun Mar 12 2017 Jens Petersen <petersen@redhat.com> - 1.6.18-2
|
||||
- obsolete geniplate and sized-types for F26
|
||||
|
||||
* Thu Mar 2 2017 Jens Petersen <petersen@redhat.com> - 1.6.18-1
|
||||
- fix ghc_fix_rpath, ghc_gen_filelists, and ghc-deps.sh when pkg-ver already
|
||||
installed
|
||||
- ghc_bin_install and ghc_lib_install now run ghc_fix_rpath on subpkgs
|
||||
|
||||
* Wed Feb 22 2017 Jens Petersen <petersen@redhat.com> - 1.6.17-1
|
||||
- setup --global/--user in cabal_configure
|
||||
- allow subpackage names to contain digits
|
||||
|
||||
* Wed Feb 22 2017 Jens Petersen <petersen@redhat.com> - 1.6.16-1
|
||||
- fix generation of haddock's
|
||||
- fix fixing of rpaths for subpackages
|
||||
|
||||
* Tue Feb 14 2017 Jens Petersen <petersen@redhat.com> - 1.6.15-2
|
||||
- do not set CFLAGS on ppc64 or ppc64le due to -Wunused-label noise
|
||||
|
||||
* Mon Feb 13 2017 Jens Petersen <petersen@redhat.com> - 1.6.15-1
|
||||
- fix handling of ghc's .files with new ghc_lib_subpackage -d option
|
||||
|
||||
* Fri Feb 10 2017 Jens Petersen <petersen@redhat.com> - 1.6.14-1
|
||||
- if ghc_subpackaging set configure with --user otherwise --global
|
||||
|
||||
* Thu Feb 9 2017 Jens Petersen <petersen@redhat.com> - 1.6.13-1
|
||||
- build subpackages inside main package directory
|
||||
|
||||
* Wed Feb 8 2017 Jens Petersen <petersen@redhat.com> - 1.6.12-1
|
||||
- no longer use a topdir for subpackage building
|
||||
- only autopackage license if subpackaging
|
||||
- add new cabal-tweak-drop-dep script for excluding trivial deps
|
||||
- move uniq to ghc-pkg-wrapper
|
||||
- add macros.ghc-fedora for Fedora specific config
|
||||
- replace cabal_verbose with cabal_configure_verbose, cabal_build_verbose,
|
||||
cabal_install_verbose, cabal_haddock_verbose, and cabal_test_verbose
|
||||
- new _ghcdocdir
|
||||
|
||||
* Fri Dec 2 2016 Jens Petersen <petersen@redhat.com> - 1.6.11-2
|
||||
- add more F25 obsoletes for: editline, hashed-storage, nats, primes
|
||||
|
||||
* Fri Nov 25 2016 Jens Petersen <petersen@redhat.com> - 1.6.11-1
|
||||
- re-enable dynlink on armv7hl and aarch64 since binutils was fixed (#1386126)
|
||||
- condition use of _defaultlicensedir
|
||||
- quote some echo'd macros
|
||||
|
||||
* Mon Oct 31 2016 Jens Petersen <petersen@redhat.com> - 1.6.10-2
|
||||
- only disable arm dynlinking for f26 (#1386126)
|
||||
|
||||
* Wed Oct 26 2016 Jens Petersen <petersen@redhat.com> - 1.6.10-1
|
||||
- make ghc_lib_subpackage backward compatible with older 2 args form
|
||||
|
||||
* Mon Oct 17 2016 Jens Petersen <petersen@redhat.com> - 1.6.9-8
|
||||
- disable dynlinking on armv7hl too (#1386126)
|
||||
|
||||
* Mon Oct 17 2016 Jens Petersen <petersen@redhat.com> - 1.6.9-7
|
||||
- set LDFLAGS for aarch64 again
|
||||
- disable dynamic linking for aarch64 since it fails (#1386126)
|
||||
|
||||
* Mon Oct 17 2016 Jens Petersen <petersen@redhat.com> - 1.6.9-6
|
||||
- only pass CFLAGS and LDFLAGS to ghc if set
|
||||
|
||||
* Mon Oct 17 2016 Jens Petersen <petersen@redhat.com> - 1.6.9-5
|
||||
- for aarch64 do not set CFLAGS and LDFLAGS
|
||||
|
||||
* Wed Oct 12 2016 Jens Petersen <petersen@redhat.com> - 1.6.9-4
|
||||
- remove Agda obsoletes
|
||||
|
||||
* Tue Oct 4 2016 Jens Petersen <petersen@redhat.com> - 1.6.9-3
|
||||
- obsolete idris
|
||||
|
||||
* Tue Sep 27 2016 Jens Petersen <petersen@redhat.com> - 1.6.9-2
|
||||
- macros.ghc-extra requires chrpath
|
||||
|
||||
* Tue Sep 27 2016 Jens Petersen <petersen@redhat.com> - 1.6.9-1
|
||||
- new ghc_fix_rpath macro deprecates ghc_fix_dynamic_rpath
|
||||
- ghc-pkg-wrapper: quieter and simple output
|
||||
- ghc_libs_install now runs ghc_fix_rpath to fix subpackage rpaths
|
||||
|
||||
* Tue Sep 6 2016 Jens Petersen <petersen@redhat.com> - 1.6.8-1
|
||||
- set Cabal docdir to licensedir so licenses end up in right place
|
||||
|
||||
* Thu Sep 1 2016 Jens Petersen <petersen@redhat.com> - 1.6.7-1
|
||||
- ghc_lib_subpackage now takes name-version processed with lua
|
||||
|
||||
* Fri Aug 26 2016 Jens Petersen <petersen@redhat.com> - 1.6.6-1
|
||||
- ghc_gen_filelists: support packages with more than one license file
|
||||
- move licenses from docdir to licensedir instead of removing,
|
||||
also for ghc_bin_install
|
||||
|
||||
* Thu Aug 25 2016 Jens Petersen <petersen@redhat.com> - 1.6.5-1
|
||||
- ghc_gen_filelists now handles license files automatically
|
||||
|
||||
* Wed Aug 17 2016 Jens Petersen <petersen@redhat.com> - 1.6.4-1
|
||||
- add ghc_libs_build and ghc_libs_install to ease bundling libraries
|
||||
- drop _smp_mflags for now since it can overwhelm armv7hl
|
||||
|
||||
* Sat Aug 6 2016 Jens Petersen <petersen@redhat.com> - 1.6.3-1
|
||||
- cabal_verbose from github fedora-haskell/ghc-rpm-macros
|
||||
|
||||
* Fri Jul 22 2016 Jens Petersen <petersen@redhat.com> - 1.6.2-4
|
||||
- try obsoleting Agda
|
||||
|
||||
* Wed Jul 20 2016 Jens Petersen <petersen@redhat.com> - 1.6.2-3
|
||||
- obsolete cmdtheline, concrete-typerep, glade, bluetile, lambdabot-utils,
|
||||
haddock, monad-unify
|
||||
|
||||
* Wed Jun 22 2016 Jens Petersen <petersen@redhat.com> - 1.6.2-2
|
||||
- obsoletes for hakyll and leksah-server
|
||||
|
||||
* Mon Jun 13 2016 Jens Petersen <petersen@redhat.com> - 1.6.2-1
|
||||
- ghc_gen_filelists: uniq keyname to prevent build failure for installed version
|
||||
|
||||
* Mon Jun 6 2016 Jens Petersen <petersen@redhat.com> - 1.6.1-1
|
||||
- disable debuginfo again until working
|
||||
|
||||
* Fri Jun 3 2016 Jens Petersen <petersen@redhat.com> - 1.6.0-1
|
||||
- enable debuginfo package
|
||||
- ghc-7.10 support from copr http://github.com/fedora-haskell/ghc-rpm-macros:
|
||||
- ghc_gen_filelists: determine keyname with pkgnamever not just pkgname
|
||||
(fixes building newer version of installed package)
|
||||
- use _rpmconfigdir macro
|
||||
- support el6 (no fileattrs or /usr/lib/rpm/macros.d)
|
||||
- change url to github
|
||||
- add and use ghc-pkg-wrapper script
|
||||
- use ghc-pkg key field (for ghc-7.10)
|
||||
- configure libsubdir using pkgkey like ghc-cabal
|
||||
- handle no ghc-srpm-macros for fedora < 21
|
||||
- fix ghc-pkg path in ghc-deps.sh for ghc-7.10
|
||||
- update ghc_gen_filelists to use new keyed library filepaths
|
||||
and specify libHS*.so more loosely
|
||||
- ghc-dep.sh now just makes versioned devel reqs
|
||||
- rename ghc_lib.attr to ghc.attr and drop ghc_bin.attr
|
||||
|
||||
* Tue Mar 8 2016 Jens Petersen <petersen@redhat.com> - 1.4.15-5
|
||||
- add ghc-citeproc-hs to obsoletes
|
||||
|
||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.15-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Wed Jun 17 2015 Jens Petersen <petersen@redhat.com> - 1.4.15-3
|
||||
- reenable dynamic linking for aarch64 (#1195231)
|
||||
|
||||
* Mon May 25 2015 Jens Petersen <petersen@redhat.com> - 1.4.15-2
|
||||
- add leksah to ghc-obsoletes
|
||||
|
||||
* Thu May 7 2015 Jens Petersen <petersen@redhat.com> - 1.4.15-1
|
||||
- cabal macro now sets utf8 locale
|
||||
- disable dynamic linking on aarch64 as a workaround (#1195231)
|
||||
|
||||
* Thu Apr 2 2015 Jens Petersen <petersen@redhat.com> - 1.4.14-1
|
||||
- add explicit --enable-shared again for arm64
|
||||
|
||||
* Mon Mar 23 2015 Jens Petersen <petersen@redhat.com> - 1.4.13-1
|
||||
- fix ghc-deps.sh for ghc builds:
|
||||
- use .a files again instead of .conf for devel deps
|
||||
- extract pkg-ver from library filename rather than directory
|
||||
(should also work for 7.10)
|
||||
- introduce ghc_pkgdocdir since no _pkgdocdir in RHEL 7 and earlier
|
||||
|
||||
* Sat Mar 7 2015 Jens Petersen <petersen@fedoraproject.org> - 1.4.12-1
|
||||
- version ghc-pkg in ghc_pkg_recache
|
||||
- allow overriding ghc- prefix with ghc_name (for ghc784 etc)
|
||||
|
||||
* Fri Mar 6 2015 Jens Petersen <petersen@redhat.com> - 1.4.11-2
|
||||
- add ghc-obsoletes dummy subpackage for obsoleting deprecated packages
|
||||
- initially: ForSyDe, parameterized-data, type-level, and cgi for F22
|
||||
|
||||
* Mon Mar 2 2015 Jens Petersen <petersen@redhat.com> - 1.4.11-1
|
||||
- fix ghc-deps.sh to handle meta-packages
|
||||
- configure --disable-shared if ghc_without_shared
|
||||
|
||||
* Fri Feb 27 2015 Jens Petersen <petersen@fedoraproject.org> - 1.4.10-1
|
||||
- have to turn off hardening in cabal_configure: set _hardened_ldflags to nil
|
||||
|
||||
* Fri Feb 27 2015 Jens Petersen <petersen@fedoraproject.org> - 1.4.9-1
|
||||
- turn off _hardened_build for libraries since it breaks linking
|
||||
<https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code>
|
||||
|
||||
* Sun Feb 1 2015 Jens Petersen <petersen@redhat.com> - 1.4.8-1
|
||||
- drop cabal_tests_not_working since not all tests failing on ARMv7
|
||||
|
||||
* Sat Jan 31 2015 Jens Petersen <petersen@redhat.com> - 1.4.7-1
|
||||
- fix arch for cabal_tests_not_working
|
||||
- add cabal_test macro which uses it
|
||||
|
||||
* Sat Jan 31 2015 Jens Petersen <petersen@redhat.com> - 1.4.6-1
|
||||
- disable Cabal tests on armv7 since they give an internal error
|
||||
https://ghc.haskell.org/trac/ghc/ticket/10029
|
||||
- fix building of meta packages:
|
||||
- only run cabal haddock for real libraries with modules
|
||||
- make sure basepkg.files is also created for meta packages
|
||||
|
||||
* Sat Jan 31 2015 Jens Petersen <petersen@redhat.com> - 1.4.5-1
|
||||
- fix the R*PATH regexp
|
||||
|
||||
* Sat Jan 31 2015 Jens Petersen <petersen@redhat.com> - 1.4.4-1
|
||||
- ghc_fix_dynamic_rpath: on ARMv7 RPATH is RUNPATH
|
||||
|
||||
* Thu Jan 22 2015 Jens Petersen <petersen@redhat.com> - 1.4.3-1
|
||||
- version ghcpkgdocdir
|
||||
- add new names ghc_html_dir, ghc_html_libraries_dir, and ghc_html_pkg_dir
|
||||
|
||||
* Thu Jan 22 2015 Jens Petersen <petersen@redhat.com> - 1.4.2-1
|
||||
- correct cabal-tweak-flag error message for missing flag (#1184508)
|
||||
|
||||
* Sat Jan 17 2015 Jens Petersen <petersen@redhat.com> - 1.4.1-1
|
||||
- revert to versioned doc htmldirs
|
||||
|
||||
* Sat Jan 17 2015 Jens Petersen <petersen@redhat.com> - 1.4.0-1
|
||||
- enable shared libraries and dynamic linking on all arch's
|
||||
since ghc-7.8 now supports that
|
||||
- disable debuginfo until ghc-7.10 which will support dwarf debugging output
|
||||
(#1138982)
|
||||
|
||||
* Fri Nov 14 2014 Jens Petersen <petersen@redhat.com> - 1.3.10-1
|
||||
- split ghc.attr into ghc_lib.attr and ghc_bin.attr for finer grained handling
|
||||
- require ghc-compiler for ghc_version
|
||||
|
||||
* Mon Oct 27 2014 Jens Petersen <petersen@redhat.com> - 1.3.9-1
|
||||
- macros.ghc: cabal_configure now passes CFLAGS and LDFLAGS to ghc (#1138982)
|
||||
(thanks to Sergei Trofimovich and Ville Skyttä)
|
||||
|
||||
* Thu Oct 23 2014 Jens Petersen <petersen@redhat.com> - 1.3.8-1
|
||||
- ghc-deps.sh: support ghc-pkg for ghc builds <= 7.4.2 as well
|
||||
|
||||
* Thu Oct 16 2014 Jens Petersen <petersen@redhat.com> - 1.3.7-1
|
||||
- ghc.attr needs to handle requires for /usr/bin files too
|
||||
|
||||
* Wed Sep 10 2014 Jens Petersen <petersen@redhat.com> - 1.3.6-1
|
||||
- improve ghc_fix_dynamic_rpath not to assume cwd = pkg_name
|
||||
|
||||
* Fri Aug 29 2014 Jens Petersen <petersen@redhat.com> - 1.3.5-1
|
||||
- no longer disable debuginfo by default:
|
||||
packages now need to explicitly opt out of debuginfo if appropriate
|
||||
|
||||
* Thu Aug 28 2014 Jens Petersen <petersen@redhat.com> - 1.3.4-1
|
||||
- drop -O2 for ghc-7.8: it uses too much build mem
|
||||
|
||||
* Fri Aug 22 2014 Jens Petersen <petersen@redhat.com> - 1.3.3-1
|
||||
- temporarily revert to ghc-7.6 config for shared libs
|
||||
until we move to ghc-7.8
|
||||
|
||||
* Thu Aug 21 2014 Jens Petersen <petersen@redhat.com> - 1.3.2-1
|
||||
- add an rpm .attr file for ghc-deps.sh rather than running it
|
||||
as an external dep generator (#1132275)
|
||||
(see http://rpm.org/wiki/PackagerDocs/DependencyGenerator)
|
||||
|
||||
* Wed Aug 20 2014 Jens Petersen <petersen@redhat.com> - 1.3.1-1
|
||||
- fix warning in macros.ghc-extra about unused pkgnamever
|
||||
|
||||
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Sat Aug 2 2014 Jens Petersen <petersen@redhat.com> - 1.3.0-1
|
||||
- shared libs available for all archs in ghc-7.8
|
||||
- cabal_configure --disable-shared with ghc_without_shared
|
||||
- ghc_clear_execstack no longer needed
|
||||
|
||||
* Fri Jun 27 2014 Jens Petersen <petersen@redhat.com> - 1.2.13-2
|
||||
- ghc-srpm-macros is now a separate source package
|
||||
|
||||
* Fri Jun 6 2014 Jens Petersen <petersen@redhat.com> - 1.2.13-1
|
||||
- add aarch64
|
||||
|
||||
* Sun Jun 1 2014 Jens Petersen <petersen@redhat.com> - 1.2.12-1
|
||||
- add missing ppc64, s390, and s390x to ghc_arches
|
||||
- add new ppc64le to ghc_arches
|
||||
|
||||
* Fri May 30 2014 Jens Petersen <petersen@redhat.com> - 1.2.11-1
|
||||
- condition use of execstack since no prelink on ppc64le or arm64
|
||||
|
||||
* Wed May 21 2014 Dennis Gilmore <dennis@ausil.us> - 1.2.10-2
|
||||
- add %%ghc_arches back to macros.ghc-srpm to maintain compatability with
|
||||
- existing specs
|
||||
|
||||
* Fri May 16 2014 Jens Petersen <petersen@redhat.com> - 1.2.10-1
|
||||
- do bcond cabal configure --enable-tests also for Bin packages
|
||||
|
||||
* Fri May 16 2014 Jens Petersen <petersen@redhat.com> - 1.2.9-1
|
||||
- enable configure bcond check for tests
|
||||
|
||||
* Tue May 13 2014 Jens Petersen <petersen@redhat.com> - 1.2.8-1
|
||||
- use -O2 also for executable (Bin) packages and allow it to be overrided
|
||||
|
||||
* Wed Apr 30 2014 Jens Petersen <petersen@redhat.com> - 1.2.7-1
|
||||
- ghc-rpm-macros requires ghc-srpm-macros
|
||||
- ghc-srpm-macros does not require ghc-rpm-macros
|
||||
- drop ExclusiveArch and make hscolour requires arch conditional
|
||||
- make ghc-srpm-macros subpackage noarch
|
||||
- set Url field when generating subpackages
|
||||
|
||||
* Mon Apr 28 2014 Jens Petersen <petersen@redhat.com> - 1.2.6-1
|
||||
- move macros.ghc-srpm from redhat-rpm-config to new ghc-srpm-macros subpackage:
|
||||
defines ghc_arches_with_ghci and drops no longer used ghc_arches (#1089102)
|
||||
- update license tag to GPLv3+
|
||||
|
||||
* Fri Mar 28 2014 Jens Petersen <petersen@redhat.com> - 1.2.5-1
|
||||
- handle no _pkgdocdir in RHEL7 and docdir path different to F20+
|
||||
|
||||
* Mon Mar 17 2014 Jens Petersen <petersen@redhat.com> - 1.2.4-1
|
||||
- abort ghc_fix_dynamic_rpath if no chrpath
|
||||
|
||||
* Thu Feb 13 2014 Ville Skyttä <ville.skytta@iki.fi> - 1.2.3-2
|
||||
- Install macros to %%{_rpmconfigdir}/macros.d.
|
||||
|
||||
* Mon Feb 10 2014 Jens Petersen <petersen@redhat.com> - 1.2.3-1
|
||||
- set datasubdir in cabal_configure for ghc-7.8
|
||||
|
||||
* Fri Jan 10 2014 Jens Petersen <petersen@redhat.com> - 1.2.2-1
|
||||
- quote the ghc_fix_dynamic_rpath error message
|
||||
|
||||
* Fri Jan 10 2014 Jens Petersen <petersen@redhat.com> - 1.2.1-1
|
||||
- ghc_fix_dynamic_rpath: abort for non-existent executable name
|
||||
- cabal-tweak-flag: add manual field to enforce flag changes
|
||||
|
||||
* Tue Oct 15 2013 Jens Petersen <petersen@redhat.com> - 1.2-1
|
||||
- add ghcpkgdocdir, which like _pkgdocdir allows for unversioned haddock dirs
|
||||
|
||||
* Tue Sep 10 2013 Jens Petersen <petersen@redhat.com> - 1.1.3-1
|
||||
- ghc-deps.sh: fix ghc-pkg path when bootstrapping new ghc version
|
||||
|
||||
* Mon Sep 9 2013 Jens Petersen <petersen@redhat.com> - 1.1.2-1
|
||||
- fix ghc-deps.sh when bootstrapping a new ghc version
|
||||
|
||||
* Mon Sep 9 2013 Jens Petersen <petersen@redhat.com> - 1.1.1-1
|
||||
- use objdump -p instead of ldd to read executable dependencies
|
||||
|
||||
* Sat Sep 7 2013 Jens Petersen <petersen@redhat.com> - 1.1-1
|
||||
- update ghc-deps.sh to handling ghc-7.8 rts
|
||||
|
||||
* Tue Aug 27 2013 Jens Petersen <petersen@redhat.com> - 1.0.8-1
|
||||
- drop ghc_docdir in favor of _pkgdocdir
|
||||
- no longer version package htmldirs
|
||||
|
||||
* Fri Jul 26 2013 Jens Petersen <petersen@redhat.com> - 1.0.7-1
|
||||
- add ghc_docdir for package's docdir since not provided by standard macros
|
||||
|
||||
* Fri Jul 26 2013 Jens Petersen <petersen@redhat.com> - 1.0.6-1
|
||||
- also make %%ghc_lib_build docdir unversioned
|
||||
- require redhat-rpm-config >= 9.1.0-50.fc20 for unversioned docdir
|
||||
|
||||
* Fri Jul 26 2013 Jens Petersen <petersen@redhat.com> - 1.0.5-1
|
||||
- F20 Change: docdir's are now unversioned
|
||||
|
||||
* Thu Jul 11 2013 Jens Petersen <petersen@redhat.com> - 1.0.4-1
|
||||
- check for bindir before looking for executables in ghc_clear_execstack
|
||||
|
||||
* Wed Jul 10 2013 Jens Petersen <petersen@redhat.com> - 1.0.3-1
|
||||
- add ghc_clear_execstack and use it also in ghc_lib_install (#973512)
|
||||
and require prelink for execstack
|
||||
|
||||
* Tue Jul 9 2013 Jens Petersen <petersen@redhat.com> - 1.0.2-1
|
||||
- drop doc and prof obsoletes and provides from ghc_lib_subpackage
|
||||
- clear executable stack flag when installing package executables (#973512)
|
||||
|
||||
* Thu Jun 20 2013 Jens Petersen <petersen@redhat.com> - 1.0.1-1
|
||||
- only configure with --global if not subpackaging libs
|
||||
|
||||
* Thu Jun 20 2013 Jens Petersen <petersen@redhat.com> - 1.0-3
|
||||
- reenable hscolour
|
||||
|
||||
* Thu Jun 20 2013 Jens Petersen <petersen@redhat.com> - 1.0-2
|
||||
- turn off hscolour for bootstrap
|
||||
|
||||
* Wed Jun 19 2013 Jens Petersen <petersen@redhat.com> - 1.0-1
|
||||
- add --global to cabal_configure
|
||||
|
||||
* Mon Jun 17 2013 Jens Petersen <petersen@redhat.com> - 0.99.4-1
|
||||
- merge remaining extra macros into ghc_lib_subpackage
|
||||
|
||||
* Thu Jun 6 2013 Jens Petersen <petersen@redhat.com> - 0.99.3-1
|
||||
- configure builds with ghc -O2 (#880135)
|
||||
|
||||
* Wed Jun 5 2013 Jens Petersen <petersen@redhat.com> - 0.99.2-1
|
||||
- drop -h option from extra macros and make -m work again
|
||||
|
||||
* Fri May 17 2013 Jens Petersen <petersen@redhat.com> - 0.99.1-1
|
||||
- drop new ghc_compiler macro since it is not good for koji
|
||||
- ghc_fix_dynamic_rpath: do not assume first RPATH
|
||||
|
||||
* Tue Apr 23 2013 Jens Petersen <petersen@redhat.com> - 0.99-1
|
||||
- update for simplified revised Haskell Packaging Guidelines
|
||||
(https://fedorahosted.org/fpc/ticket/194)
|
||||
- packaging for without_shared is now done the same way as shared
|
||||
to make non-shared arch packages same as shared ones:
|
||||
so all archs will now have base library binary packages
|
||||
- move spec section metamacros and multiple library packaging macros still
|
||||
needed for ghc and haskell-platform to new extra subpackage
|
||||
- drop ghc_add_basepkg_file macro and ghc_exclude_docdir
|
||||
- for ghc-7.6 --global-package-db replaces --global-conf and
|
||||
--no-user-package-db deprecates --no-user-package-conf
|
||||
|
||||
* Wed Mar 20 2013 Ralf Corsépius <corsepiu@fedoraproject.org> - 0.98.1-4
|
||||
- Remove %%config from %%{_sysconfdir}/rpm/macros.*
|
||||
(https://fedorahosted.org/fpc/ticket/259).
|
||||
|
||||
* Tue Feb 26 2013 Jens Petersen <petersen@redhat.com> - 0.98.1-3
|
||||
- only add lib pkgdir to filelist if it exists
|
||||
to fix haskell-platform build on secondary archs (no shared libs)
|
||||
- add ghc_with_lib_for_ghci which re-enables ghci library .o files
|
||||
(should not normally be necessary since ghci can load .a files)
|
||||
|
||||
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.98.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Tue Jan 22 2013 Jens Petersen <petersen@redhat.com> - 0.98.1-1
|
||||
- simplify cabal-tweak-flag script to take one flag value
|
||||
|
||||
* Mon Jan 21 2013 Jens Petersen <petersen@redhat.com> - 0.98-1
|
||||
- new ghc_fix_dynamic_rpath macro for cleaning up package executables
|
||||
linked against their own libraries
|
||||
|
||||
* Fri Jan 18 2013 Jens Petersen <petersen@redhat.com> - 0.97.6-1
|
||||
- be more careful about library pkgdir ownership (#893777)
|
||||
|
||||
* Mon Dec 3 2012 Jens Petersen <petersen@redhat.com> - 0.97.5-1
|
||||
- add cabal-tweak-flag script for toggling flag default
|
||||
|
||||
* Sat Nov 17 2012 Jens Petersen <petersen@redhat.com> - 0.97.4-1
|
||||
- enable hscolour again
|
||||
|
||||
* Sat Nov 17 2012 Jens Petersen <petersen@redhat.com> - 0.97.3.1-1
|
||||
- bootstrap hscolour
|
||||
|
||||
* Thu Oct 25 2012 Jens Petersen <petersen@redhat.com> - 0.97.3-1
|
||||
- BR redhat-rpm-config instead of ghc-rpm-macros
|
||||
- no longer set without_hscolour in macros.ghc for bootstrapping
|
||||
|
||||
* Tue Oct 9 2012 Jens Petersen <petersen@redhat.com> - 0.97.2-1
|
||||
- "cabal haddock" needs --html option with --hoogle to output html
|
||||
|
||||
* Thu Sep 20 2012 Jens Petersen <petersen@redhat.com> - 0.97.1-2
|
||||
- no need to BR hscolour
|
||||
|
||||
* Wed Sep 19 2012 Jens Petersen <petersen@redhat.com> - 0.97.1-1
|
||||
- fix broken duplicate hash output for haskell-platform binaries buildhack
|
||||
when haskell-platform locally installed
|
||||
|
||||
* Sat Sep 8 2012 Jens Petersen <petersen@redhat.com> - 0.97-1
|
||||
- ghc-rpm-macros now requires hscolour so packages no longer need to BR it
|
||||
- this can be disabled for bootstrapping by setting without_hscolour
|
||||
|
||||
* Fri Aug 24 2012 Jens Petersen <petersen@redhat.com> - 0.96-1
|
||||
- make haddock build hoogle files
|
||||
- Fedora ghc-7.4.2 Cabal will not build ghci lib files by default
|
||||
|
||||
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.95.6-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Mon Jun 25 2012 Jens Petersen <petersen@redhat.com> - 0.95.6-1
|
||||
- provide doc from devel a little longer to silence rpmlint
|
||||
|
||||
* Fri Jun 22 2012 Jens Petersen <petersen@redhat.com> - 0.95.5.1-1
|
||||
- cabal-tweak-dep-ver: be careful only to match complete dep name and
|
||||
do not match beyond ","
|
||||
|
||||
* Fri Jun 22 2012 Jens Petersen <petersen@redhat.com> - 0.95.5-1
|
||||
- some cabal-tweak-dep-ver improvements:
|
||||
- show file name when no match
|
||||
- backslash quote . and * in the match string
|
||||
- create a backup file if none exists
|
||||
|
||||
* Fri Jun 22 2012 Jens Petersen <petersen@redhat.com> - 0.95.4-1
|
||||
- new cabal-tweak-dep-ver script to tweak depends version bounds in .cabal
|
||||
|
||||
* Sat Jun 9 2012 Jens Petersen <petersen@redhat.com> - 0.95.3-1
|
||||
- ghc-dep.sh: only use buildroot package.conf.d if it exists
|
||||
|
||||
* Fri Jun 8 2012 Jens Petersen <petersen@redhat.com> - 0.95.2-1
|
||||
- ghc-deps.sh: look in buildroot package.conf.d for program deps
|
||||
|
||||
* Fri Jun 8 2012 Jens Petersen <petersen@redhat.com> - 0.95.1-1
|
||||
- add a meta-package option to ghc_devel_package and use in ghc_devel_requires
|
||||
|
||||
* Thu Jun 7 2012 Jens Petersen <petersen@redhat.com> - 0.95-1
|
||||
- let ghc_bin_install take an arg to disable implicit stripping for subpackages
|
||||
|
||||
* Thu Jun 7 2012 Jens Petersen <petersen@redhat.com> - 0.94-1
|
||||
- allow ghc_description, ghc_devel_description, ghc_devel_post_postun
|
||||
to take args
|
||||
|
||||
* Thu Jun 7 2012 Jens Petersen <petersen@redhat.com> - 0.93-1
|
||||
- fix doc handling of subpackages for ghc_without_shared
|
||||
|
||||
* Thu Jun 7 2012 Jens Petersen <petersen@redhat.com> - 0.92-1
|
||||
- move --disable-library-for-ghci to ghc_lib_build
|
||||
- revert back to fallback behaviour for common_summary and common_description
|
||||
since it is needed for ghc and haskell-platform subpackaging
|
||||
- without ghc_exclude_docdir include doc dir also for subpackages
|
||||
|
||||
* Tue Jun 5 2012 Jens Petersen <petersen@redhat.com> - 0.91-1
|
||||
- no longer build redundant ghci .o library files
|
||||
- support meta packages like haskell-platform without base lib files
|
||||
- make it possible not to have to use common_summary and common_description
|
||||
- rename ghc_binlib_package to ghc_lib_subpackage
|
||||
- add ghc_lib_build_without_haddock
|
||||
- no longer drop into package dirs when subpackaging with ghc_lib_build and
|
||||
ghc_lib_install
|
||||
- add shell variable cabal_configure_extra_options to cabal_configure for
|
||||
local configuration
|
||||
|
||||
* Mon Mar 19 2012 Jens Petersen <petersen@redhat.com> - 0.90-1
|
||||
- use new rpm metadata hash format for ghc-7.4
|
||||
- drop prof meta hash data
|
||||
- no longer include doc files automatically by default
|
||||
- no longer provide doc subpackage
|
||||
- do not provide prof when without_prof set
|
||||
|
||||
* Thu Feb 23 2012 Jens Petersen <petersen@redhat.com> - 0.15.5-1
|
||||
- fix handling of devel docdir for non-shared builds
|
||||
- simplify ghc_bootstrap
|
||||
|
3
ghc.attr
Normal file
3
ghc.attr
Normal file
@ -0,0 +1,3 @@
|
||||
%__ghc_provides %{_rpmconfigdir}/ghc-deps.sh --provides %{buildroot}%{ghclibdir}
|
||||
%__ghc_requires %{_rpmconfigdir}/ghc-deps.sh --requires %{buildroot}%{ghclibdir}
|
||||
%__ghc_path ^%{ghclibdir}/package.conf.d/.*\.conf$
|
241
macros.ghc
Normal file
241
macros.ghc
Normal file
@ -0,0 +1,241 @@
|
||||
# RPM Macros for packaging Haskell cabalized packages -*-rpm-spec-*-
|
||||
# see https://fedoraproject.org/wiki/Packaging:Haskell for more details
|
||||
|
||||
# "cabal"
|
||||
%cabal [ -x Setup ] || ghc --make %{!?ghc_user_conf:-no-user-package-db} %{!?ghc_static_setup:-dynamic} Setup\
|
||||
LANG=C.utf8\
|
||||
./Setup
|
||||
|
||||
# compiler version
|
||||
%ghc_version %{!?ghc_version_override:%(ghc --numeric-version)}%{?ghc_version_override}
|
||||
|
||||
|
||||
%ghc_set_gcc_flags\
|
||||
# -Wunused-label is extremely noisy\
|
||||
%ifarch s390x\
|
||||
CFLAGS="${CFLAGS:-$(echo %optflags | sed -e 's/-Wall //' -e 's/-Werror=format-security //')}"\
|
||||
%else\
|
||||
CFLAGS="${CFLAGS:-%optflags}"\
|
||||
%endif\
|
||||
export CFLAGS\
|
||||
%global _hardened_ldflags %{nil}\
|
||||
export LDFLAGS="${LDFLAGS:-%{?__global_ldflags}}"\
|
||||
%{nil}
|
||||
|
||||
# configure
|
||||
%cabal_configure\
|
||||
%ghc_set_gcc_flags\
|
||||
if ! [ -f Setup.hs -o -f Setup.lhs ]; then\
|
||||
cp %{_datadir}/ghc-rpm-macros/Setup.hs .\
|
||||
fi\
|
||||
%cabal --version\
|
||||
%cabal configure --prefix=%{_prefix} --libdir=%{_libdir} --docdir=%{_ghcdocdir} --libsubdir='$compiler/$pkgid' --datasubdir='$pkgid' --libexecsubdir='$pkgid' --ghc %{?_ghcdynlibdir:--dynlibdir=%{_ghcdynlibdir}} %{!?ghc_without_dynamic:--enable-executable-dynamic} %{?with_tests:--enable-tests} %{?ghc_subpackaging:--user}%{!?ghc_subpackaging:--global} --ghc-options="${CFLAGS:+$(echo ' '$CFLAGS | sed -e 's/ / -optc/g')} ${LDFLAGS:+$(echo ' '$LDFLAGS | sed -e 's/ / -optl/g')}" --disable-executable-stripping --disable-library-stripping %{?cabal_configure_options} $cabal_configure_extra_options
|
||||
|
||||
# install
|
||||
%cabal_install %cabal copy --destdir=%{buildroot} %{?cabal_install_options}
|
||||
|
||||
# tests
|
||||
%cabal_test\
|
||||
%if %{with tests}\
|
||||
%cabal test %{?cabal_test_options}\
|
||||
%endif
|
||||
|
||||
# no _pkgdocdir in EPEL <= 7
|
||||
%ghc_pkgdocdir %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}}
|
||||
|
||||
# root dir for ghc docs (used by ghc.spec)
|
||||
%ghc_html_dir %{_docdir}/ghc/html
|
||||
# deprecates
|
||||
%ghcdocbasedir %ghc_html_dir
|
||||
|
||||
# libraries doc dir (internal)
|
||||
%ghc_html_libraries_dir %{ghc_html_dir}/libraries
|
||||
# deprecates
|
||||
%ghclibdocdir %ghc_html_libraries_dir
|
||||
|
||||
# pkg doc dir
|
||||
%ghc_html_pkg_dir %{ghc_html_libraries_dir}/%{pkg_name}-%{version}
|
||||
# deprecates
|
||||
%ghcpkgdocdir %ghc_html_pkg_dir
|
||||
|
||||
# top library dir
|
||||
%ghclibdir %{_libdir}/ghc-%{ghc_version}
|
||||
|
||||
%_ghclicensedir %{?_defaultlicensedir}%{!?_defaultlicensedir:%_docdir}
|
||||
|
||||
# ghc_gen_filelists [name] [version]
|
||||
%ghc_gen_filelists()\
|
||||
%define pkgname %{?1}%{!?1:%{pkg_name}}\
|
||||
%define pkgver %{?2}%{!?2:%{version}}\
|
||||
%define pkgnamever %{pkgname}-%{pkgver}\
|
||||
%define basepkg %{?ghc_name}%{!?ghc_name:ghc}-%{pkgname}\
|
||||
%define docdir %{ghclibdocdir}/%{pkgnamever}\
|
||||
if [ -z "$(ls %{buildroot}%{ghclibdir}/package.conf.d/)" ]; then\
|
||||
echo "%{buildroot}%{ghclibdir}/package.conf.d/*.conf not found"\
|
||||
exit 1\
|
||||
fi\
|
||||
rm -f %{basepkg}.files %{basepkg}-devel.files\
|
||||
touch %{basepkg}.files %{basepkg}-devel.files\
|
||||
ls %{buildroot}%{ghclibdir}/package.conf.d/%{pkgnamever}*.conf >> %{basepkg}-devel.files\
|
||||
pkgdir="%{ghclibdir}/%{pkgnamever}"\
|
||||
if [ -d "%{buildroot}${pkgdir}" ]; then\
|
||||
%if %{defined _ghcdynlibdir}\
|
||||
echo "${pkgdir}" >> %{basepkg}-devel.files\
|
||||
%else\
|
||||
echo "%%dir ${pkgdir}" >> %{basepkg}.files\
|
||||
find %{buildroot}${pkgdir} -mindepth 1 -type d | sed "s/^/%dir /" >> %{basepkg}-devel.files\
|
||||
find %{buildroot}${pkgdir} ! \\( -type d -o -name "libHS*.so" \\) >> %{basepkg}-devel.files\
|
||||
%endif\
|
||||
echo "%%attr(755,root,root) %{?_ghcdynlibdir}%{!?_ghcdynlibdir:${pkgdir}}/libHS%{pkgnamever}-*ghc%{ghc_version}.so" >> %{basepkg}.files\
|
||||
fi\
|
||||
if [ -d "%{buildroot}%{docdir}" ]; then\
|
||||
echo "%{docdir}" >> %{basepkg}-devel.files\
|
||||
fi\
|
||||
%if 0%{?1:1}\
|
||||
for i in $(ls %{buildroot}%{_ghclicensedir}/%{!?1:%{name}}%{?1:%{basepkg}}); do\
|
||||
echo "%%license %{?1:%{pkgnamever}/}$i" >> %{basepkg}.files\
|
||||
done\
|
||||
%endif\
|
||||
for i in %{basepkg}.files %{basepkg}-devel.files; do\
|
||||
if [ -f "$i" ]; then\
|
||||
sed -i -e "s!%{buildroot}!!g" $i\
|
||||
fi\
|
||||
done\
|
||||
%{nil}
|
||||
|
||||
# create and install package.conf file
|
||||
# cabal_pkg_conf [name] [version]
|
||||
%cabal_pkg_conf()\
|
||||
%define pkgname %{?1}%{!?1:%{pkg_name}}\
|
||||
%define pkgver %{?2}%{!?2:%{version}}\
|
||||
%define pkgnamever %{pkgname}-%{pkgver}\
|
||||
%cabal register --gen-pkg-config\
|
||||
if [ -d %{pkgnamever}.conf ]; then\
|
||||
for i in $(ls "%{pkgnamever}.conf/"); do\
|
||||
sub=$(echo $i | sed -e "s/^[0-9]\\+-//")\
|
||||
install -D --mode=0644 %{pkgnamever}.conf/${i} %{buildroot}%{ghclibdir}/package.conf.d/${sub}.conf\
|
||||
done\
|
||||
else\
|
||||
install -D --mode=0644 %{pkgnamever}.conf %{buildroot}%{ghclibdir}/package.conf.d/%{pkgnamever}.conf\
|
||||
fi\
|
||||
%{nil}
|
||||
|
||||
# ghc_bin_build
|
||||
%ghc_bin_build\
|
||||
%undefine _enable_debug_packages\
|
||||
%cabal_configure\
|
||||
%cabal build %{?ghc_smp_mflags} %{?cabal_build_options}
|
||||
|
||||
# ghc_lib_build_without_haddock [name] [version]
|
||||
%ghc_lib_build_without_haddock()\
|
||||
%undefine _enable_debug_packages\
|
||||
%if 0%{?rhel} && 0%{?rhel} < 8\
|
||||
licensedirversion=%{?2:-%2}\
|
||||
%endif\
|
||||
%cabal_configure %{!?without_prof:-p} --enable-shared %{?pkg_name:--htmldir=%{ghclibdocdir}/%{pkg_name}-%{version}} %{?1:--docdir=%{_ghclicensedir}/ghc-%1${licensedirversion} --htmldir=%{ghclibdocdir}/%1-%2} %{?ghc_subpackaging:--user}%{!?ghc_subpackaging:--global} %{?ghc_with_lib_for_ghci:--enable-library-for-ghci}\
|
||||
%cabal build %{?ghc_smp_mflags} %{?cabal_build_options}\
|
||||
%{nil}
|
||||
|
||||
# ghc_lib_build [name] [version]
|
||||
%ghc_lib_build()\
|
||||
%ghc_lib_build_without_haddock %{?1} %{?2}\
|
||||
%if %{undefined without_haddock}\
|
||||
%define pkgname %{?1}%{!?1:%{pkg_name}}\
|
||||
%define pkgver %{?2}%{!?2:%{version}}\
|
||||
if [ -n dist/build/libHS%{pkgname}-%{pkgver}*.so ]; then\
|
||||
%cabal haddock --html --hyperlink-source --hoogle %{?cabal_haddock_options}\
|
||||
fi\
|
||||
%endif\
|
||||
%{nil}
|
||||
|
||||
# install bin package
|
||||
%ghc_bin_install()\
|
||||
%{!?_fileattrsdir:%global _use_internal_dependency_generator 0}\
|
||||
%{!?_fileattrsdir:%global __find_requires %{_rpmconfigdir}/ghc-deps.sh %{buildroot}%{ghclibdir}}\
|
||||
%cabal_install\
|
||||
%{?ghc_subpackaging:%ghc_fix_rpath %{subpkgs}}\
|
||||
%{nil}
|
||||
|
||||
# ghc_lib_install [name] [version]
|
||||
%ghc_lib_install()\
|
||||
%{!?_fileattrsdir:%global _use_internal_dependency_generator 0}\
|
||||
%{!?_fileattrsdir:%global __find_provides %{_rpmconfigdir}/rpmdeps --provides}\
|
||||
%{!?_fileattrsdir:%global __find_requires %{_rpmconfigdir}/ghc-deps.sh %{buildroot}%{ghclibdir}}\
|
||||
%cabal_install\
|
||||
%cabal_pkg_conf %{?1} %{?2}\
|
||||
%ghc_gen_filelists %{?1} %{?2}\
|
||||
%{?ghc_subpackaging:%ghc_fix_rpath %{subpkgs}}\
|
||||
%{nil}
|
||||
|
||||
# ghc_fix_rpath lib-ver ...
|
||||
%ghc_fix_rpath()\
|
||||
%if %{undefined ghc_without_dynamic}\
|
||||
if ! type chrpath > /dev/null; then exit 1; fi\
|
||||
for i in $(find %{buildroot} -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \\; -print); do\
|
||||
for lib in %*; do\
|
||||
if [ -x "$i" ]; then\
|
||||
rpath=$(chrpath $i | sed -e "s@^$i: R.*PATH=@@")\
|
||||
case $rpath in\
|
||||
*$PWD/$lib/dist/build*)\
|
||||
case %{ghc_version} in\
|
||||
7.10.*)\
|
||||
pkgid=$(cd %{buildroot}%{ghclibdir}/package.conf.d; ls ${lib}* | sed -e "s/.conf$//")\
|
||||
syspath=$(%{_rpmconfigdir}/ghc-pkg-wrapper %{buildroot}%{ghclibdir} --global --package-db=%{buildroot}%{ghclibdir}/package.conf.d field $pkgid library-dirs) ;;\
|
||||
8.0)\
|
||||
pkgid=$(cd %{buildroot}%{ghclibdir}; echo ${lib}*)\
|
||||
syspath=$(%{_rpmconfigdir}/ghc-pkg-wrapper %{buildroot}%{ghclibdir} --global --package-db=%{buildroot}%{ghclibdir}/package.conf.d field $lib library-dirs | grep $pkgid) ;;\
|
||||
*)\
|
||||
syspath="" ;;\
|
||||
esac\
|
||||
newrpath=$(echo $rpath | sed -e "s@$PWD/$lib/dist/build@${syspath}@g" -e "s/::/:/" -e "s/^://" -e "s/:$//")\
|
||||
chrpath -r $newrpath $i\
|
||||
;;\
|
||||
esac\
|
||||
else\
|
||||
echo "%%ghc_fix_rpath: no $i executable"\
|
||||
exit 1\
|
||||
fi\
|
||||
done\
|
||||
done\
|
||||
%endif\
|
||||
%{nil}
|
||||
|
||||
# Deprecated by ghc_fix_rpath:
|
||||
# ghc_fix_dynamic_rpath prog ...
|
||||
%ghc_fix_dynamic_rpath()\
|
||||
%if %{undefined ghc_without_dynamic}\
|
||||
if ! type chrpath > /dev/null; then exit 1; fi\
|
||||
pdir=$(pwd)\
|
||||
for i in %*; do\
|
||||
case $i in\
|
||||
/*) prog=%{buildroot}$i ;;\
|
||||
*) prog=%{buildroot}%{_bindir}/$i ;;\
|
||||
esac\
|
||||
if [ -x "$prog" ]; then\
|
||||
rpath=$(chrpath $prog | sed -e "s@^$prog: R.*PATH=@@")\
|
||||
case $rpath in\
|
||||
*$pdir*)\
|
||||
newrpath=$(echo $rpath | sed -e "s@$pdir/dist/build@%{ghclibdir}/%{pkg_name}-%{version}@g")\
|
||||
chrpath -r $newrpath $prog\
|
||||
;;\
|
||||
esac\
|
||||
else\
|
||||
echo "%%ghc_fix_dynamic_rpath: no such file $prog"\
|
||||
exit 1\
|
||||
fi\
|
||||
done\
|
||||
%endif\
|
||||
%{nil}
|
||||
|
||||
%ghc_pkg_recache %{_bindir}/ghc-pkg-%{ghc_version} recache --no-user-package-db || :
|
||||
|
||||
# deprecated
|
||||
%ghc_bootstrap\
|
||||
%global without_prof 1\
|
||||
%global without_haddock 1\
|
||||
%global without_manual 1
|
||||
|
||||
# skip prof libs and documentation
|
||||
%ghc_quick_build\
|
||||
%global without_prof 1\
|
||||
%global without_haddock 1
|
100
macros.ghc-extra
Normal file
100
macros.ghc-extra
Normal file
@ -0,0 +1,100 @@
|
||||
# RPM Macros for packaging Haskell packages with multiple libs -*-rpm-spec-*-
|
||||
|
||||
# ghc_lib_subpackage [-c cdepslist] [-d] [-l licensetag] [-x] [name-version]
|
||||
# for backward compat also support: ghc_lib_subpackage name version
|
||||
%ghc_lib_subpackage(c:dl:x)\
|
||||
%define pkgname %{?2:%{1}}%{!?2:%{lua:\
|
||||
local pv = rpm.expand("%1")\
|
||||
local _, _, name = string.find(pv, "^([%a%d-]+)-")\
|
||||
print(name)\
|
||||
}}\
|
||||
%define pkgver %{?2}%{!?2:%{lua:\
|
||||
local pv = rpm.expand("%1")\
|
||||
print(string.sub(pv, string.find(pv, "[%d.]+$")))\
|
||||
}}\
|
||||
%{!-x:%{?1:%global ghc_packages_list %{?ghc_packages_list} %{pkgname}-%{pkgver}}}\
|
||||
%define ghc_prefix %{?ghc_name}%{!?ghc_name:ghc}\
|
||||
%define basepkg %{ghc_prefix}-%{pkgname}\
|
||||
%package -n %{basepkg}\
|
||||
Summary: Haskell %{pkgname} library\
|
||||
%if 0%{?rhel} && 0%{?rhel} < 6\
|
||||
Group: System/Libraries\
|
||||
%endif\
|
||||
%{?1:Version: %{pkgver}}\
|
||||
%{-l:License: %{-l*}}\
|
||||
Url: http://hackage.haskell.org/package/%{pkgname}\
|
||||
%{?ghc_pkg_obsoletes:Obsoletes: %(echo "%{ghc_pkg_obsoletes}" | sed -e "s/\\(%{ghc_prefix}-[^, ]*\\)-devel/\\1/g")}\
|
||||
\
|
||||
%description -n %{basepkg}\
|
||||
This package provides the Haskell %{pkgname} library.\
|
||||
\
|
||||
%package -n %{basepkg}-devel\
|
||||
Summary: Haskell %{pkgname} library development files\
|
||||
%if 0%{?rhel} && 0%{?rhel} < 6\
|
||||
Group: Development/Languages/Other\
|
||||
%endif\
|
||||
%{?1:Version: %{pkgver}}\
|
||||
%{-l:License: %{-l*}}\
|
||||
Requires(post): %{ghc_prefix}-compiler = %{ghc_version}\
|
||||
Requires(postun): %{ghc_prefix}-compiler = %{ghc_version}\
|
||||
Requires: %{ghc_prefix}-%{pkgname}%{?_isa} = %{pkgver}-%{release}\
|
||||
%{?ghc_pkg_c_deps:Requires: %{ghc_pkg_c_deps}}\
|
||||
%{-c:Requires: %{-c*}}\
|
||||
%{?ghc_pkg_obsoletes:Obsoletes: %{ghc_pkg_obsoletes}}\
|
||||
\
|
||||
%description -n %{basepkg}-devel\
|
||||
This package provides the Haskell %{pkgname} library development files.\
|
||||
\
|
||||
%post -n %{basepkg}-devel\
|
||||
%ghc_pkg_recache\
|
||||
\
|
||||
%postun -n %{basepkg}-devel\
|
||||
%ghc_pkg_recache\
|
||||
\
|
||||
%files -n %{basepkg} -f %{!-d:%{pkgname}-%{pkgver}/}%{basepkg}.files\
|
||||
%if 0%{?rhel} && 0%{?rhel} < 6\
|
||||
%defattr(-,root,root,-)\
|
||||
%endif\
|
||||
%{?base_doc_files:%doc %base_doc_files}\
|
||||
\
|
||||
%files -n %{basepkg}-devel -f %{!-d:%{pkgname}-%{pkgver}/}%{basepkg}-devel.files\
|
||||
%if 0%{?rhel} && 0%{?rhel} < 6\
|
||||
%defattr(-,root,root,-)\
|
||||
%endif\
|
||||
%{?devel_doc_files:%doc %devel_doc_files}\
|
||||
%{nil}
|
||||
|
||||
# ghc_libs_build [name-version] ...
|
||||
%ghc_libs_build()\
|
||||
HOME=$PWD\
|
||||
%global ghc_subpackaging 1\
|
||||
for i in %*; do\
|
||||
name=$(echo $i | sed -e "s/\\(.*\\)-.*/\\1/")\
|
||||
ver=$(echo $i | sed -e "s/.*-\\(.*\\)/\\1/")\
|
||||
cd $name-$ver\
|
||||
case $name in\
|
||||
haskell-platform)\
|
||||
%ghc_lib_build_without_haddock $name $ver\
|
||||
;;\
|
||||
*)\
|
||||
%ghc_lib_build $name $ver\
|
||||
./Setup register --inplace\
|
||||
;;\
|
||||
esac\
|
||||
cd ..\
|
||||
done\
|
||||
%{nil}
|
||||
|
||||
# ghc_libs_install [name-version] ...
|
||||
%ghc_libs_install()\
|
||||
HOME=$PWD\
|
||||
args="%*"\
|
||||
for i in $args; do\
|
||||
cd $i\
|
||||
name=$(echo $i | sed -e "s/\\(.*\\)-.*/\\1/")\
|
||||
ver=$(echo $i | sed -e "s/.*-\\(.*\\)/\\1/")\
|
||||
%ghc_lib_install $name $ver\
|
||||
cd ..\
|
||||
done\
|
||||
%ghc_fix_rpath $args\
|
||||
%{nil}
|
9
macros.ghc-os
Normal file
9
macros.ghc-os
Normal file
@ -0,0 +1,9 @@
|
||||
# OS specific settings
|
||||
|
||||
%_ghcdocdir %{_ghclicensedir}/%{name}
|
||||
|
||||
%_ghcdynlibdir %{_libdir}
|
||||
|
||||
%ghc_without_dynamic 1
|
||||
|
||||
%cabal_install_options -v
|
77
tests/test-rebuild.sh
Executable file
77
tests/test-rebuild.sh
Executable file
@ -0,0 +1,77 @@
|
||||
#!/bin/sh
|
||||
|
||||
# for testing updates to ghc-rpm-macros etc
|
||||
# In a pkg dir run
|
||||
# $ ./test-rebuild.sh
|
||||
# or clone a pkg branch:
|
||||
# $ ./test-rebuild.sh [pkg]
|
||||
|
||||
set -e
|
||||
|
||||
PKG=${1:-$(fedpkg gimmespec | sed -e "s/.spec//")}
|
||||
|
||||
[ -d "$PKG" -o -f "$PKG.spec" ] || fedpkg clone -a $PKG
|
||||
|
||||
[ -d "$PKG" ] && cd $PKG
|
||||
|
||||
ARCH=$(arch)
|
||||
|
||||
#if [ -d $ARCH ]; then
|
||||
# echo Please move existing $ARCH/
|
||||
# exit 1
|
||||
#fi
|
||||
|
||||
if [ -f /etc/os-release ]; then
|
||||
eval $(grep VERSION_ID /etc/os-release)
|
||||
if git branch -a | grep -q f$VERSION_ID; then
|
||||
BRANCH=f$VERSION_ID
|
||||
else
|
||||
case $VERSION_ID in
|
||||
7.*) BRANCH=epel7 ;;
|
||||
*) BRANCH=master ;;
|
||||
esac
|
||||
fi
|
||||
else
|
||||
# assume RHEL6
|
||||
BRANCH=el6
|
||||
fi
|
||||
|
||||
if [ "* $BRANCH" != "$(git branch | grep '^*')" ]; then
|
||||
fedpkg switch-branch $BRANCH
|
||||
fi
|
||||
|
||||
if [ "* $BRANCH" != "$(git branch | grep '^*')" ]; then
|
||||
echo "Git branch does not match Fedora installation!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git pull
|
||||
|
||||
if [ "$UID" != "0" ]; then
|
||||
SUDO="sudo"
|
||||
else
|
||||
SUDO=""
|
||||
fi
|
||||
|
||||
echo Running dnf builddep:
|
||||
$SUDO dnf builddep $PKG.spec
|
||||
|
||||
fedpkg local
|
||||
|
||||
VERREL=$(fedpkg verrel | sed -e "s/^$PKG-//")
|
||||
|
||||
TMP=test-tmp
|
||||
|
||||
mkdir -p $TMP/
|
||||
|
||||
PKGS=$(cd $ARCH; rpm -qp $(ls *-$VERREL*.rpm))
|
||||
|
||||
for i in $PKGS; do
|
||||
# FIXME: should check NVR is same before building
|
||||
rpm -q --quiet $i || $SUDO dnf install -q $i
|
||||
for k in list requires provides scripts; do
|
||||
rpm -qp --$k $ARCH/$i.rpm | grep -v rpmlib > $TMP/$i.$k.test || :
|
||||
rpm -q --$k $i | grep -v rpmlib > $TMP/$i.$k.installed || :
|
||||
diff -u $TMP/$i.$k.installed $TMP/$i.$k.test -I /usr/lib/.build-id || :
|
||||
done
|
||||
done
|
Loading…
Reference in New Issue
Block a user