Blob Blame History Raw
# RPM Macros for packaging Haskell packages with multiple libs  -*-rpm-spec-*-

# ghc_lib_subpackage [-c cdepslist] [-l licensetag] [-x] [name] [version]
%ghc_lib_subpackage(c:l:x)\
%define pkgname %{?1}%{!?1:%{pkg_name}}\
%define pkgver %{?2}%{!?2:%{version}}\
%define pkgnamever %{pkgname}-%{pkgver}\
%{!-x:%{?1:%global ghc_packages_list %{?ghc_packages_list} %{pkgnamever}}}\
%define basepkg ghc-%{pkgname}\
%ghc_package\
\
%ghc_description\
\
%ghc_devel_package\
\
%ghc_devel_description\
\
%ghc_devel_post_postun\
\
%ghc_shared_files\
\
%ghc_devel_files\
%{nil}

# ghc_package [-l licensetag] [name] [version]
%ghc_package(l:)\
%define pkgname %{?1}%{!?1:%{pkg_name}}\
%define pkgver %{?2}%{!?2:%{version}}\
%define basepkg ghc-%{pkgname}\
%package -n %{basepkg}\
Summary:        %{?common_summary}%{!?common_summary:Haskell %{pkgname} library}\
%{?1:Version:        %{pkgver}}\
%{-l:License:        %{-l*}}\
Url:            http://hackage.haskell.org/package/%{pkgname}\
%{?ghc_pkg_obsoletes:Obsoletes:      %(echo "%{ghc_pkg_obsoletes}" | sed -e "s/\\(ghc-[^, ]*\\)-devel/\\1/g")}\
%{nil}

# ghc_description [name] [version]
%ghc_description()\
%define pkgname %{?1}%{!?1:%{pkg_name}}\
%define basepkg ghc-%{pkgname}\
%description -n %{basepkg}\
%{?common_description}%{!?common_description:Haskell %{pkgname} library.}\
%if %{defined ghc_version} && %{undefined ghc_without_shared}\
This package provides the shared library.\
%endif\
%{nil}

# ghc_devel_package [-c cdepslist] [-l licensetag] [-m] [name] [version]
#  -m : meta-package
%ghc_devel_package(c:l:m)\
%define pkgname %{?1}%{!?1:%{pkg_name}}\
%define pkgver %{?2}%{!?2:%{version}}\
%define basepkg ghc-%{pkgname}\
%package -n %{basepkg}-devel\
Summary:        %{?common_summary}%{!?common_summary:Haskell %{pkgname} library} development files\
%{?1:Version:        %{pkgver}}\
%{-l:License:        %{-l*}}\
Requires:       ghc-compiler = %{ghc_version}\
Requires(post): ghc-compiler = %{ghc_version}\
Requires(postun): ghc-compiler = %{ghc_version}\
%if 0%{!?-m:1}\
Requires:       ghc-%{?pkg_name}%{!?pkg_name:%{pkgname}} = %{?pkgver}%{!?pkgver:%{version}}-%{release}\
%endif\
%{?ghc_pkg_c_deps:Requires:       %{ghc_pkg_c_deps}}\
%{-c:Requires:       %{-c*}}\
%{?ghc_pkg_obsoletes:Obsoletes:      %{ghc_pkg_obsoletes}}\
%{?ghc_pkg_obsoletes:Obsoletes:      %(echo "%{ghc_pkg_obsoletes}" | sed -e "s/\\(ghc-[^, ]*\\)-devel/\\1-doc/g")}\
Obsoletes:      %{basepkg}-doc < %{pkgver}-%{release}\
Provides:       %{basepkg}-doc = %{pkgver}-%{release}\
Obsoletes:      %{basepkg}-prof < %{pkgver}-%{release}\
%if %{undefined without_prof}\
Provides:       %{basepkg}-prof = %{pkgver}-%{release}\
%endif\
%{nil}

# ghc_devel_description
%ghc_devel_description()\
%define pkgname %{?1}%{!?1:%{pkg_name}}\
%define basepkg ghc-%{pkgname}\
%description -n %{basepkg}-devel\
%{?common_description}%{!?common_description:Haskell %{pkgname} library.}\
\
This package contains the development files.\
%{nil}

# ghc_devel_post_postun
%ghc_devel_post_postun()\
%define pkgname %{?1}%{!?1:%{pkg_name}}\
%define basepkg ghc-%{pkgname}\
%post -n %{basepkg}-devel\
%ghc_pkg_recache\
\
%postun -n %{basepkg}-devel\
%ghc_pkg_recache\
%{nil}

%ghc_files()\
%{?1:%define base_doc_files %*}\
%define basepkg ghc-%{pkg_name}\
%ghc_shared_files\
\
%ghc_devel_files\
%{nil}

%ghc_shared_files\
%files -n %{basepkg} -f %{basepkg}.files\
%{?base_doc_files:%doc %base_doc_files}\
%{nil}

%ghc_devel_files\
%files -n %{basepkg}-devel -f %{basepkg}-devel.files\
%{?devel_doc_files:%doc %devel_doc_files}\
%{nil}