73b0bd1
# RPM Macros for packaging Haskell packages with multiple libs  -*-rpm-spec-*-
73b0bd1
f1517cd
# ghc_lib_subpackage [-c cdepslist] [-d] [-l licensetag] [-x] [name-version]
ebdd006
# for backward compat also support: ghc_lib_subpackage name version
f1517cd
%ghc_lib_subpackage(c:dl:x)\
ebdd006
%define pkgname %{?2:%{1}}%{!?2:%{lua:\
8539a71
local pv = rpm.expand("%1")\
09527a5
local _, _, name = string.find(pv, "^([%a%d-]+)-")\
8539a71
print(name)\
ebdd006
}}\
ebdd006
%define pkgver %{?2}%{!?2:%{lua:\
8539a71
local pv = rpm.expand("%1")\
8539a71
print(string.sub(pv, string.find(pv, "[%d.]+$")))\
ebdd006
}}\
7a5198b
%{!-x:%{?1:%global ghc_packages_list %{?ghc_packages_list} %{pkgname}-%{pkgver}}}\
fb48383
%define ghc_prefix %{?ghc_name}%{!?ghc_name:ghc}\
f0f6b55
%define basepkg %{ghc_prefix}-%{pkgname}\
73b0bd1
%package -n %{basepkg}\
6dad230
Summary:        Haskell %{pkgname} library\
7e15be0
%if 0%{?rhel} && 0%{?rhel} < 7\
7e15be0
Group:          System/Libraries\
7e15be0
%endif\
73b0bd1
%{?1:Version:        %{pkgver}}\
73b0bd1
%{-l:License:        %{-l*}}\
48199c8
Url:            http://hackage.haskell.org/package/%{pkgname}\
f0f6b55
%{?ghc_pkg_obsoletes:Obsoletes:      %(echo "%{ghc_pkg_obsoletes}" | sed -e "s/\\(%{ghc_prefix}-[^, ]*\\)-devel/\\1/g")}\
73b0bd1
\
ecaa014
%description -n %{basepkg}\
6dad230
This package provides the Haskell %{pkgname} library.\
73b0bd1
\
73b0bd1
%package -n %{basepkg}-devel\
6dad230
Summary:        Haskell %{pkgname} library development files\
7e15be0
%if 0%{?rhel} && 0%{?rhel} < 7\
7e15be0
Group:          Development/Languages/Other\
7e15be0
%endif\
73b0bd1
%{?1:Version:        %{pkgver}}\
73b0bd1
%{-l:License:        %{-l*}}\
f0f6b55
Requires(post): %{ghc_prefix}-compiler = %{ghc_version}\
f0f6b55
Requires(postun): %{ghc_prefix}-compiler = %{ghc_version}\
f0f6b55
Requires:       %{ghc_prefix}-%{pkgname}%{?_isa} = %{pkgver}-%{release}\
73b0bd1
%{?ghc_pkg_c_deps:Requires:       %{ghc_pkg_c_deps}}\
73b0bd1
%{-c:Requires:       %{-c*}}\
73b0bd1
%{?ghc_pkg_obsoletes:Obsoletes:      %{ghc_pkg_obsoletes}}\
ecaa014
\
73b0bd1
%description -n %{basepkg}-devel\
6dad230
This package provides the Haskell %{pkgname} library development files.\
73b0bd1
\
73b0bd1
%post -n %{basepkg}-devel\
73b0bd1
%ghc_pkg_recache\
73b0bd1
\
73b0bd1
%postun -n %{basepkg}-devel\
ecaa014
%ghc_pkg_recache\
73b0bd1
\
f1517cd
%files -n %{basepkg} -f %{!-d:%{pkgname}-%{pkgver}/}%{basepkg}.files\
7e15be0
%if 0%{?rhel} && 0%{?rhel} < 7\
7e15be0
%defattr(-,root,root,-)\
7e15be0
%endif\
6dad230
%{?base_doc_files:%doc %base_doc_files}\
6dad230
\
f1517cd
%files -n %{basepkg}-devel -f %{!-d:%{pkgname}-%{pkgver}/}%{basepkg}-devel.files\
7e15be0
%if 0%{?rhel} && 0%{?rhel} < 7\
7e15be0
%defattr(-,root,root,-)\
7e15be0
%endif\
ecaa014
%{?devel_doc_files:%doc %devel_doc_files}\
73b0bd1
%{nil}
986f88a
ad5af67
# ghc_libs_build [name-version] ...
40e1493
%ghc_libs_build()\
986f88a
HOME=$PWD\
89fc885
%global ghc_subpackaging 1\
986f88a
for i in %*; do\
96d4e68
name=$(echo $i | sed -e "s/\\(.*\\)-.*/\\1/")\
96d4e68
ver=$(echo $i | sed -e "s/.*-\\(.*\\)/\\1/")\
986f88a
cd $name-$ver\
986f88a
case $name in\
986f88a
haskell-platform)\
986f88a
%ghc_lib_build_without_haddock $name $ver\
986f88a
;;\
986f88a
*)\
986f88a
%ghc_lib_build $name $ver\
986f88a
./Setup register --inplace\
986f88a
;;\
986f88a
esac\
986f88a
cd ..\
986f88a
done\
986f88a
%{nil}
986f88a
ad5af67
# ghc_libs_install [name-version] ...
40e1493
%ghc_libs_install()\
986f88a
HOME=$PWD\
411d61d
args="%*"\
411d61d
for i in $args; do\
411d61d
cd $i\
96d4e68
name=$(echo $i | sed -e "s/\\(.*\\)-.*/\\1/")\
96d4e68
ver=$(echo $i | sed -e "s/.*-\\(.*\\)/\\1/")\
986f88a
%ghc_lib_install $name $ver\
986f88a
cd ..\
986f88a
done\
411d61d
%ghc_fix_rpath $args\
986f88a
%{nil}