diff --git a/ghc-deps.sh b/ghc-deps.sh index 0ad905b..add9b9f 100755 --- a/ghc-deps.sh +++ b/ghc-deps.sh @@ -11,6 +11,13 @@ MODE=$1 PKGBASEDIR=$2 PKGCONFDIR=$PKGBASEDIR/package.conf.d +GHC_VER=$(basename $PKGBASEDIR | sed -e s/ghc-//) + +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 case $MODE in --provides) FIELD=id ;; @@ -45,7 +52,7 @@ for i in $files; do 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: \+//") + 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/" ;; @@ -53,7 +60,7 @@ for i in $files; do esac done if [ "$MODE" = "--requires" -a "$SELF" ]; then - HASHS=$(ghc-pkg -f $PKGCONFDIR field $PKGVER id | sed -e "s/^id: \+//") + 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 @@ -64,7 +71,7 @@ for i in $files; do 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: \+//") + HASH=$(${GHC_PKG} --global field $p id | sed -e "s/^id: \+//") echo $HASH | sed -e "s/\(.*\)-\(.*\)/ghc(\1) = \2/" done fi diff --git a/ghc-rpm-macros.ghc b/ghc-rpm-macros.ghc index 970c6eb..98cda6c 100644 --- a/ghc-rpm-macros.ghc +++ b/ghc-rpm-macros.ghc @@ -221,7 +221,9 @@ find %{buildroot} -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \ %global ghc_without_dynamic 1\ %global without_prof 1\ %global without_haddock 1\ -%global without_manual 1 +%global without_manual 1\ +# needs to be set also in ghc.spec\ +%global ghc_bootstrapping 1 # skip prof libs, and documentation # - without_hscolour needs to be set locally in the spec file diff --git a/ghc-rpm-macros.spec b/ghc-rpm-macros.spec index 08e9daf..457a63a 100644 --- a/ghc-rpm-macros.spec +++ b/ghc-rpm-macros.spec @@ -3,7 +3,7 @@ %global macros_file %{_sysconfdir}/rpm/macros.ghc Name: ghc-rpm-macros -Version: 0.13.12 +Version: 0.13.13 Release: 1%{?dist} Summary: Macros for building packages for GHC @@ -60,6 +60,10 @@ EOF %changelog +* Mon Oct 17 2011 Jens Petersen - 0.13.13-1 +- add ghc_bootstrapping to ghc_bootstrap for packages other than ghc +- make ghc-deps.sh also work when bootstrapping a new ghc version + * Sat Oct 15 2011 Jens Petersen - 0.13.12-1 - add ghc_exclude_docdir to exclude docdir from filelists