diff --git a/ghc-deps.sh b/ghc-deps.sh index 6441103..9a104b0 100755 --- a/ghc-deps.sh +++ b/ghc-deps.sh @@ -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 ;; diff --git a/ghc-pkg-wrapper b/ghc-pkg-wrapper index df48093..98566a8 100755 --- a/ghc-pkg-wrapper +++ b/ghc-pkg-wrapper @@ -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 diff --git a/ghc-rpm-macros.spec b/ghc-rpm-macros.spec index 99115e9..9665280 100644 --- a/ghc-rpm-macros.spec +++ b/ghc-rpm-macros.spec @@ -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 - 2.3.6-1 +- fix missing Hadrian ghc dependency generation + * Sun Dec 19 2021 Jens Petersen - 2.3.5-1 - Hadrian haddock dirs are not versioned diff --git a/ghc.attr b/ghc.attr index b5f080f..8e62be6 100644 --- a/ghc.attr +++ b/ghc.attr @@ -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)$