[ghc-rpm-macros/f12/master] backport 0.7.1 adding ghc_bin_build, ghc_bin_install, ghc_lib_build, ghc_lib_install to ghc-6.10

Jens Petersen petersen at fedoraproject.org
Sat Jul 31 04:47:39 UTC 2010


commit 70e5acf6e49d28e4b3c9e2a5038e1f1389733356
Author: Jens Petersen <petersen at redhat.com>
Date:   Sat Jul 31 14:44:43 2010 +1000

    backport 0.7.1 adding ghc_bin_build, ghc_bin_install, ghc_lib_build, ghc_lib_install to ghc-6.10
    
    - add ghc_strip_dynlinked, ghcdocbasedir
    - drop unused cabal_makefile
    - ghc_reindex_haddock uses ghcdocbasedir
    - ghc_package_devel, ghc_package_doc, and ghc_package_prof helper macros
    
    Notes:
    - no shared libraries in ghc-6.10.4 so shared and dynmic are not supported
    - no name-ver override to maintain compatibility with optional pkg_name
      in current released f12 binlib packages
    - for same reason ghcdocdir, ghcpkgdir, ghc_gen_filelists do not take
      optional name arg

 ghc-rpm-macros.ghc  |  161 +++++++++++++++++++++++++++++++++++++++++++++++----
 ghc-rpm-macros.spec |   15 +++++-
 2 files changed, 163 insertions(+), 13 deletions(-)
---
diff --git a/ghc-rpm-macros.ghc b/ghc-rpm-macros.ghc
index ee26dc4..6dcb648 100644
--- a/ghc-rpm-macros.ghc
+++ b/ghc-rpm-macros.ghc
@@ -1,18 +1,23 @@
+# "cabal"
 %cabal %{_bindir}/runghc Setup
 
+# configure
 %cabal_configure \
 %cabal configure --prefix=%{_prefix} --libdir=%{_libdir} --docdir=%{_docdir}/%{name}-%{version} --htmldir=%{ghcdocdir} --libsubdir='$compiler/$pkgid'
 
-%cabal_makefile \
-%cabal makefile -f cabal-rpm.mk \
-make -f cabal-rpm.mk %{_smp_mflags} \
-%{nil}
-
+# install
 %cabal_install %cabal copy --destdir=${RPM_BUILD_ROOT} -v
 
-%ghcdocdir %{_docdir}/ghc/libraries/%{?pkg_name}%{!?pkg_name:%{name}}
-%ghcpkgdir %{_libdir}/ghc-%{ghc_version}/%{?pkg_name}%{!?pkg_name:%name}-%{version}
+# root dir for ghc docs
+%ghcdocbasedir %{_docdir}/ghc
+# ghcdocdir [pkgname]
+%ghcdocdir %{ghcdocbasedir}/libraries/%{?pkg_name}%{!?pkg_name:%{name}}
+# top library dir
+%ghcpkgbasedir %{_libdir}/ghc-%{ghc_version}
+# ghcpkgdir [pkgname]
+%ghcpkgdir %{ghcpkgbasedir}/%{?pkg_name}%{!?pkg_name:%name}-%{version}
 
+# ghc_gen_filelists [pkgname]
 %ghc_gen_filelists() \
 rm -f %1-devel.files %1-prof.files %1-doc.files \
 echo '%defattr(-,root,root,-)' > %1-devel.files \
@@ -33,22 +38,154 @@ echo '%{ghcdocdir}' >> %1-doc.files \
 
 %ghc_unregister_pkg %{ghcpkgdir}/unregister.sh >/dev/null || :
 
-%ghc_reindex_haddock ( cd %{_docdir}/ghc/libraries && [ -x "./gen_contents_index" ] && ./gen_contents_index ) || :
-
+# compiler version
 %ghc_version %{!?ghc_version_override:%(ghc --numeric-version)}%{?ghc_version_override}
 
 %ghc_pkg_ver() %(ghc-pkg list --global --simple-output %1|sed -e "s/.*%1-//")
 
+# devel pkg basic requires
 %ghc_requires Requires:       ghc = %{ghc_version}\
 Requires(post): ghc = %{ghc_version}\
 Requires(preun): ghc = %{ghc_version}\
-%if %{with shared}\
-Requires:       ghc-%{?pkg_name}%{!?pkg_name:%name} = %{version}-%{release}\
-%endif
+%{nil}
 
+# doc pkg basic requires
 %ghc_doc_requires Requires:       ghc-doc = %{ghc_version}\
 Requires(post): ghc-doc = %{ghc_version}\
 Requires(postun): ghc-doc = %{ghc_version}
 
+# prof pkg basic requires
 %ghc_prof_requires Requires:       ghc-prof = %{ghc_version}\
 Requires:       ghc-%{?pkg_name}%{!?pkg_name:%name}-devel = %{version}-%{release}
+
+# ghc_lib_package [-c cdepslist] [-h pkgdepslist]
+%ghc_lib_package(c:h:)\
+%define ghc_pkg_name ghc-%{?pkg_name}%{!?pkg_name:%name}\
+\
+%ghc_package_devel\
+\
+%ghc_package_doc\
+\
+%ghc_package_prof\
+%{nil}
+
+# ghc_binlib_package [-c cdepslist] [-h pkgdepslist] [-l licensetag]
+%ghc_binlib_package(c:h:l:)\
+%define local_pkg_name %{?pkg_name}%{!?pkg_name:%name}\
+%define ghc_pkg_name ghc-%{local_pkg_name}\
+\
+%ghc_lib_package\
+%{nil}
+
+# ghc_package_devel [-c cdepslist] [-h pkgdepslist] [-l licensetag]
+%ghc_package_devel(c:h:l:)\
+%define local_pkg_name %{?pkg_name}%{!?pkg_name:%name}\
+%define ghc_pkg_name ghc-%{local_pkg_name}\
+%package -n %{ghc_pkg_name}-devel\
+Summary:        %{?common_summary}%{!?common_summary:%{local_pkg_name} library} development files\
+Group:          Development/Libraries\
+%{-l:License:        %{-l*}}\
+%{?ghc_requires}\
+%{!-h:%{?ghc_pkg_deps:Requires:       %{ghc_pkg_deps}}}\
+%{-h:Requires:       %{-h*}}\
+%{!-c:%{?ghc_pkg_c_deps:Requires:       %{ghc_pkg_c_deps}}}\
+%{-c:Requires:       %{-c*}}\
+\
+%description -n %{ghc_pkg_name}-devel\
+%{?common_description}%{!?common_description:Haskell %{local_pkg_name} library.}\
+\
+This package contains the development files.\
+\
+%post -n %{ghc_pkg_name}-devel\
+%ghc_register_pkg\
+\
+%preun -n %{ghc_pkg_name}-devel\
+%ghc_unregister_pkg\
+\
+%files -n %{ghc_pkg_name}-devel -f %{ghc_pkg_name}-devel.files\
+%defattr(-,root,root,-)\
+%{nil}
+
+# for docs post and postun
+# re-index haddock
+%ghc_reindex_haddock ( cd %{ghcdocbasedir}/libraries && [ -x "./gen_contents_index" ] && ./gen_contents_index ) || :
+
+# ghc_package_doc [-h pkgdepslist] [-l licensetag]
+%ghc_package_doc(h:l:)\
+%define local_pkg_name %{?pkg_name}%{!?pkg_name:%name}\
+%define ghc_pkg_name ghc-%{local_pkg_name}\
+%package -n %{ghc_pkg_name}-doc\
+Summary:        Documentation for %{?common_summary}%{!?common_summary:%{local_pkg_name} library}\
+Group:          Development/Libraries\
+%{-l:License:        %{-l*}}\
+%{?ghc_doc_requires}\
+%{!-h:%{?ghc_pkg_deps:Requires:       %(echo %{ghc_pkg_deps} | sed -e "s/\\(ghc-[^, ]*\\)-devel/\\1-doc/g")}}\
+%{-h:Requires:       %(echo %{-h*} | sed -e "s/\\(ghc-[^, ]*\\)-devel/\\1-doc/g")}\
+\
+%description -n %{ghc_pkg_name}-doc\
+%{?common_description}%{!?common_description:Haskell %{local_pkg_name} library.}\
+\
+This package contains development documentation files.\
+\
+%post -n %{ghc_pkg_name}-doc\
+%ghc_reindex_haddock\
+\
+%postun -n %{ghc_pkg_name}-doc\
+if [ "$1" -eq 0 ] ; then\
+  %ghc_reindex_haddock\
+fi\
+\
+%files -n %{ghc_pkg_name}-doc -f %{ghc_pkg_name}-doc.files\
+%defattr(-,root,root,-)\
+%{nil}
+
+# ghc_package_prof [-c cdepslist] [-h pkgdepslist] [-l licensetag]
+%ghc_package_prof(h:l:)\
+%define local_pkg_name %{?pkg_name}%{!?pkg_name:%name}\
+%define ghc_pkg_name ghc-%{local_pkg_name}\
+%package -n %{ghc_pkg_name}-prof\
+Summary:        Profiling libraries for %{?common_summary}%{!?common_summary:%{local_pkg_name}}\
+Group:          Development/Libraries\
+%{-l:License:        %{-l*}}\
+%{?ghc_prof_requires}\
+%{!-h:%{?ghc_pkg_deps:Requires:       %(echo %{ghc_pkg_deps} | sed -e "s/\\(ghc-[^, ]*\\)-devel/\\1-prof/g")}}\
+%{-h:Requires:       %(echo %{-h*} | sed -e "s/\\(ghc-[^, ]*\\)-devel/\\1-prof/g")}\
+\
+%description -n %{ghc_pkg_name}-prof\
+%{?common_description}%{!?common_description:Haskell %{local_pkg_name} library.}\
+\
+This package contains the profiling library.\
+\
+%files -n %{ghc_pkg_name}-prof -f %{ghc_pkg_name}-prof.files\
+%defattr(-,root,root,-)\
+%{nil}
+
+# ghc_strip_dynlinked
+%ghc_strip_dynlinked\
+%if 0%{!?__debug_package:1}\
+find $RPM_BUILD_ROOT -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \\; -print | xargs strip\
+%endif
+
+# ghc_bin_build
+%ghc_bin_build\
+%cabal_configure --ghc\
+%cabal build
+
+# ghc_lib_build
+%ghc_lib_build\
+%cabal_configure --ghc -p\
+%cabal build\
+%cabal haddock
+
+# ghc_bin_install
+%ghc_bin_install\
+%cabal_install\
+%ghc_strip_dynlinked
+
+# ghc_lib_install
+%ghc_lib_install\
+%cabal_install\
+%ghc_gen_scripts\
+%ghc_install_scripts\
+%ghc_gen_filelists ghc-%{?pkg_name}%{!?pkg_name:%name}\
+%ghc_strip_dynlinked
diff --git a/ghc-rpm-macros.spec b/ghc-rpm-macros.spec
index 64268e2..9ce39a0 100644
--- a/ghc-rpm-macros.spec
+++ b/ghc-rpm-macros.spec
@@ -1,5 +1,5 @@
 Name:		ghc-rpm-macros
-Version:	0.2.6
+Version:	0.7.0.610.1
 Release:	1%{?dist}
 Summary:	Macros for building packages for GHC
 
@@ -48,6 +48,19 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %changelog
+* Sat Jul 31 2010 Jens Petersen <petersen at redhat.com> - 0.7.0.610.1-1
+- backport 0.7.1 to ghc-6.10:
+- add ghc_bin_build, ghc_bin_install, ghc_lib_build, ghc_lib_install,
+  ghc_strip_dynlinked, ghcdocbasedir, and drop unused cabal_makefile
+- ghc_reindex_haddock uses ghcdocbasedir
+- ghc_package_devel, ghc_package_doc, and ghc_package_prof helper macros
+- Notes:
+- no shared libraries in ghc-6.10.4 so shared and dynmic are not supported
+- no name-ver override to maintain compatibility with optional pkg_name
+  in current released f12 binlib packages
+- for same reason ghcdocdir, ghcpkgdir, ghc_gen_filelists do not take
+  optional name arg
+
 * Thu Dec 24 2009 Jens Petersen <petersen at redhat.com> - 0.2.6-1
 - backport:
   - add ghc_requires, ghc_doc_requires, ghc_prof_requires


More information about the scm-commits mailing list