2010-09-30 02:21:16 +00:00
#!/bin/sh
# find rpm provides and requires for Haskell GHC libraries
2023-02-11 06:50:57 +00:00
[ $# -lt 3 ] && echo " Usage: $( basename " $0 " ) [--provides|--requires] %{buildroot} %{ghclibdir} [ghc-version] " && exit 1
2010-09-30 02:21:16 +00:00
2023-02-11 06:50:57 +00:00
set +x -e
2013-09-09 14:17:35 +00:00
2019-07-15 16:32:58 +00:00
MODE = $1
2022-06-10 06:36:23 +00:00
BUILDROOT = $2
PKGBASEDIR = $3
if [ -z " $4 " ] ;
2021-12-08 11:29:29 +00:00
then GHCPREFIX = ghc
2022-06-10 06:36:23 +00:00
else GHCPREFIX = $4
2021-12-08 11:29:29 +00:00
fi
2022-06-11 04:29:26 +00:00
if [ -d " $BUILDROOT $PKGBASEDIR /lib " ] ;
2021-12-19 17:21:45 +00:00
then PKGBASELIB = $PKGBASEDIR /lib
else PKGBASELIB = $PKGBASEDIR
fi
PKGCONFDIR = $PKGBASELIB /package.conf.d
2010-09-30 02:21:16 +00:00
2022-06-10 06:36:23 +00:00
GHC_PKG = " /usr/lib/rpm/ghc-pkg-wrapper $BUILDROOT $PKGBASEDIR "
2016-10-12 10:22:07 +00:00
2019-07-15 16:32:58 +00:00
case $MODE in
2017-02-08 06:26:07 +00:00
--provides) field = id ; ;
--requires) field = depends ; ;
2022-06-11 04:29:26 +00:00
*) echo " $( basename " $0 " ) : Need --provides or --requires "
2018-05-25 09:03:11 +00:00
exit 1
; ;
2010-11-23 13:48:16 +00:00
esac
2010-09-30 02:21:16 +00:00
files = $( cat)
2022-06-11 04:29:26 +00:00
(
2011-01-23 05:05:38 +00:00
for i in $files ; do
2015-03-02 04:21:32 +00:00
case $i in
2019-07-31 08:05:32 +00:00
# exclude rts.conf
2022-06-10 06:36:23 +00:00
$BUILDROOT $PKGCONFDIR /*-*.conf)
2023-02-11 06:51:32 +00:00
name = $( grep "^name: " " $i " | sed -e "s/name: *//" )
2022-06-11 04:29:26 +00:00
ids = $( $GHC_PKG field " $name " " $field " | sed -e " s/\(^\| \)rts\( \| $\)/ / " )
2019-07-31 08:05:32 +00:00
for d in $ids ; do
case $d in
2020-05-10 13:49:27 +00:00
*-*-internal) ; ;
2021-12-08 11:29:29 +00:00
*-*) echo " $GHCPREFIX -devel( $d ) " ; ;
2019-07-31 08:05:32 +00:00
*) ; ;
esac
done
2018-05-25 09:03:11 +00:00
; ;
2019-07-31 08:05:32 +00:00
*/libHS*_p.a)
2023-08-06 10:15:54 +00:00
pkgver = $( basename " $( dirname " $i " ) " )
if [ -e " $BUILDROOT $PKGCONFDIR / $pkgver .conf " ] ; then
ids = $( $GHC_PKG field " $pkgver " " $field " | sed -e " s/\(^\| \)rts\( \| $\)/ / " -e "s/bin-package-db-[^ ]\+//" )
else
conf = $( basename " $i " | sed -e " s%libHS% $BUILDROOT $PKGCONFDIR /% " -e 's%_p.a%.conf%' )
name = $( grep "^name: " " $conf " | sed -e "s/name: *//" )
ids = $( $GHC_PKG field " $name " " $field " | sed -e " s/\(^\| \)rts\( \| $\)/ / " -e "s/bin-package-db-[^ ]\+//" )
fi
2019-07-31 08:05:32 +00:00
for d in $ids ; do
case $d in
2020-05-10 13:49:27 +00:00
*-*-internal) ; ;
2019-08-10 20:43:05 +00:00
*-*)
case $field in
id)
2021-12-08 11:29:29 +00:00
echo " $GHCPREFIX -prof( $d ) "
2019-08-10 20:43:05 +00:00
; ;
*)
2023-08-06 10:16:11 +00:00
for f in " $PKGBASELIB " /*/libHS" ${ d } " _p.a " $BUILDROOT $PKGBASELIB " /*/libHS" ${ d } " _p.a " $PKGBASELIB " /*/*/libHS" ${ d } " _p.a " $BUILDROOT $PKGBASELIB " /*/*/libHS" ${ d } " _p.a; do
if [ -f $f ] ; then
echo " $GHCPREFIX -prof( $d ) "
break
fi
done
2019-08-10 20:43:05 +00:00
; ;
esac
; ;
2019-07-31 08:05:32 +00:00
esac
done
2015-03-02 04:21:32 +00:00
; ;
esac
2011-01-23 05:05:38 +00:00
done
2022-06-11 04:29:26 +00:00
) | sort | uniq