fix Hadrian ghc dependency generation

This commit is contained in:
Jens Petersen 2021-12-20 01:21:45 +08:00
parent f5f72c49ec
commit 5136c98a2f
4 changed files with 22 additions and 27 deletions

View File

@ -1,7 +1,7 @@
#!/bin/sh
# find rpm provides and requires for Haskell GHC libraries
[ $# -lt 2 ] && echo "Usage: $(basename $0) [--provides|--requires] %{buildroot}%{ghcliblib} [%{?ghc_name}]" && exit 1
[ $# -lt 2 ] && echo "Usage: $(basename $0) [--provides|--requires] %{buildroot}%{ghclibdir} [%{?ghc_name}]" && exit 1
set +x
@ -11,7 +11,12 @@ if [ -z "$3" ];
then GHCPREFIX=ghc
else GHCPREFIX=$3
fi
PKGCONFDIR=$PKGBASEDIR/package.conf.d
if [ -d $PKGBASEDIR/lib ];
then PKGBASELIB=$PKGBASEDIR/lib
LIB=lib/
else PKGBASELIB=$PKGBASEDIR
fi
PKGCONFDIR=$PKGBASELIB/package.conf.d
GHC_PKG="/usr/lib/rpm/ghc-pkg-wrapper $PKGBASEDIR"
@ -52,7 +57,7 @@ for i in $files; do
echo "$GHCPREFIX-prof($d)"
;;
*)
if [ -f /usr/lib*/ghc-*/*/libHS${d}_p.a -o -f $PKGBASEDIR/*/libHS${d}_p.a ]; then
if [ -f /usr/lib*/ghc-*/$LIB*/libHS${d}_p.a -o -f $PKGBASELIB/*/libHS${d}_p.a ]; then
echo "$GHCPREFIX-prof($d)"
fi
;;

View File

@ -1,34 +1,21 @@
#!/bin/sh
[ $# -lt 1 ] && echo "Usage: `basename $0` %{buildroot}%{ghcliblib} ..." && exit 1
[ $# -lt 1 ] && echo "Usage: `basename $0` %{buildroot}%{ghclibdir} ..." && exit 1
set +x
PKGBASEDIR=$1
shift
PKGCONFDIR=$PKGBASEDIR/package.conf.d
case $(basename "$PKGBASEDIR") in
lib) GHC_VER=$(basename $(dirname $PKGBASEDIR) | sed -e s/ghc-//) ;;
*) GHC_VER=$(basename $PKGBASEDIR | sed -e s/ghc-//) ;;
esac
if [ -d $PKGBASEDIR/lib ];
then PKGCONFDIR=$PKGBASEDIR/lib/package.conf.d
else PKGCONFDIR=$PKGBASEDIR/package.conf.d
fi
# 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
if [ -x "$PKGBASEDIR/bin/ghc-pkg" ]; then
GHC_PKG="env LD_LIBRARY_PATH=$(dirname $PKGBASEDIR) $PKGBASEDIR/bin/ghc-pkg --global-package-db=$PKGCONFDIR"
else
GHC_VER=$(basename $PKGBASEDIR | sed -e s/ghc-//)
GHC_PKG="/usr/bin/ghc-pkg-${GHC_VER} -f $PKGCONFDIR"
fi

View File

@ -7,7 +7,7 @@
%endif
Name: ghc-rpm-macros
Version: 2.3.5
Version: 2.3.6
Release: 1%{?dist}
Summary: RPM macros for building Haskell packages for GHC
@ -184,6 +184,9 @@ EOF
%changelog
* Mon Dec 20 2021 Jens Petersen <petersen@redhat.com> - 2.3.6-1
- fix missing Hadrian ghc dependency generation
* Sun Dec 19 2021 Jens Petersen <petersen@redhat.com> - 2.3.5-1
- Hadrian haddock dirs are not versioned

View File

@ -1,3 +1,3 @@
%__ghc_provides %{_rpmconfigdir}/ghc-deps.sh --provides %{buildroot}%{ghcliblib} %{?ghc_name:ghc-%{ghc_version}}
%__ghc_requires %{_rpmconfigdir}/ghc-deps.sh --requires %{buildroot}%{ghcliblib} %{?ghc_name:ghc-%{ghc_version}}
%__ghc_provides %{_rpmconfigdir}/ghc-deps.sh --provides %{buildroot}%{ghclibdir} %{?ghc_name:ghc-%{ghc_version}}
%__ghc_requires %{_rpmconfigdir}/ghc-deps.sh --requires %{buildroot}%{ghclibdir} %{?ghc_name:ghc-%{ghc_version}}
%__ghc_path ^(%{ghcliblib}/package.conf.d/.*\.conf|%{ghclibplatform}/.*/libHS.*_p\.a)$