diff --git a/cabal-bin-template.spec.in b/cabal-bin-template.spec.in index acb26b0..a69f081 100644 --- a/cabal-bin-template.spec.in +++ b/cabal-bin-template.spec.in @@ -25,7 +25,7 @@ BuildRequires: ghc %build %cabal_configure -%cabal_build +%cabal build %install diff --git a/cabal-binlib-template.spec.in b/cabal-binlib-template.spec.in index d35d42c..a91531c 100644 --- a/cabal-binlib-template.spec.in +++ b/cabal-binlib-template.spec.in @@ -48,6 +48,7 @@ Haskell %{name} library for ghc-%{ghc_version}. *FIXME* %package prof Summary: Profiling libraries for ghc-%{name} Group: Development/Libraries +Requires: ghc-%{name} = %{version}-%{release} Requires: ghc-prof = %{ghc_version} %description prof @@ -66,9 +67,9 @@ This package contains profiling libraries for ghc %{ghc_version}. %else %{nil} %endif -%cabal_build +%cabal build %if %{build_doc} -%cabal_haddock +%cabal haddock %endif %ghc_gen_scripts @@ -85,14 +86,16 @@ rm -rf $RPM_BUILD_ROOT %post -%ghc_postinst_script +%ghc_register_pkg %if %{build_doc} %ghc_reindex_haddock %endif %preun -%ghc_preun_script +if [ "$1" -eq 0 ] ; then + %ghc_unregister_pkg +fi %postun diff --git a/cabal-lib-template.spec.in b/cabal-lib-template.spec.in index 4d4f58e..9c587a2 100644 --- a/cabal-lib-template.spec.in +++ b/cabal-lib-template.spec.in @@ -40,6 +40,7 @@ Haskell %{pkg_name} library for ghc-%{ghc_version}. *FIXME* %package prof Summary: Profiling libraries for %{name} Group: Development/Libraries +Requires: %{name} = %{version}-%{release} Requires: ghc-prof = %{ghc_version} %description prof @@ -58,9 +59,9 @@ This package contains profiling libraries for ghc %{ghc_version}. %else %{nil} %endif -%cabal_build +%cabal build %if %{build_doc} -%cabal_haddock +%cabal haddock %endif %ghc_gen_scripts @@ -77,14 +78,16 @@ rm -rf $RPM_BUILD_ROOT %post -%ghc_postinst_script +%ghc_register_pkg %if %{build_doc} %ghc_reindex_haddock %endif %preun -%ghc_preun_script +if [ "$1" -eq 0 ] ; then + %ghc_unregister_pkg +fi %postun diff --git a/ghc-rpm-macros.ghc b/ghc-rpm-macros.ghc index 8391596..75cf2ef 100644 --- a/ghc-rpm-macros.ghc +++ b/ghc-rpm-macros.ghc @@ -1,58 +1,31 @@ -%cabal %{_bindir}/runhaskell Setup +%cabal %{_bindir}/runghc Setup %cabal_configure \ %cabal configure --prefix=%{_prefix} --libdir=%{_libdir} --docdir=%{_docdir}/%{name}-%{version} --htmldir=%{pkg_docdir} --libsubdir='$compiler/$pkgid' -%cabal_build \ -%cabal build \ -%{nil} - %cabal_makefile \ %cabal makefile -f cabal-rpm.mk \ make -f cabal-rpm.mk %{_smp_mflags} \ %{nil} -%cabal_haddock \ -%cabal haddock \ -%{nil} - -%cabal_install \ -%cabal copy --destdir=${RPM_BUILD_ROOT} -v \ -%{nil} +%cabal_install %cabal copy --destdir=${RPM_BUILD_ROOT} -v %ghc_gen_filelists() \ rm -f %1.files %1-prof.files \ -echo '%defattr(-,root,root,-)' > %1-prof.files \ -find ${RPM_BUILD_ROOT}%{pkg_libdir} \\( -name '*_p.a' -o -name '*.p_hi' \\) >> %1-prof.files \ echo '%defattr(-,root,root,-)' > %1.files \ find ${RPM_BUILD_ROOT}%{pkg_libdir} -type d | sed 's/^/%dir /' >> %1.files \ find ${RPM_BUILD_ROOT}%{pkg_libdir} ! \\( -type d -o -name '*_p.a' -o -name '*.p_hi' \\) >> %1.files \ +echo '%defattr(-,root,root,-)' > %1-prof.files \ +find ${RPM_BUILD_ROOT}%{pkg_libdir} \\( -name '*_p.a' -o -name '*.p_hi' \\) >> %1-prof.files \ sed -i -e "s!${RPM_BUILD_ROOT}!!g" %1.files %1-prof.files \ %{nil} -%ghc_gen_scripts \ -%cabal register --gen-script \ -%cabal unregister --gen-script \ -%{nil} +%ghc_gen_scripts %cabal register --gen-script ; %cabal unregister --gen-script -%ghc_install_scripts \ -install -m 755 register.sh unregister.sh ${RPM_BUILD_ROOT}%{pkg_libdir} \ -%{nil} +%ghc_install_scripts install -m 755 register.sh unregister.sh ${RPM_BUILD_ROOT}%{pkg_libdir} -%ghc_preinst_script \ -%{nil} +%ghc_register_pkg %{pkg_libdir}/register.sh >/dev/null -%ghc_postinst_script \ -%{pkg_libdir}/register.sh >&/dev/null \ -%{nil} +%ghc_unregister_pkg %{pkg_libdir}/unregister.sh >/dev/null -%ghc_preun_script \ -[ "$1" = 0 ] && %{pkg_libdir}/unregister.sh >&/dev/null \ -%{nil} - -%ghc_postun_script \ -%{nil} - -%ghc_reindex_haddock \ -( cd %{_docdir}/ghc/libraries && [ -x "./gen_contents_index" ] && ./gen_contents_index ) || : \ -%{nil} +%ghc_reindex_haddock ( cd %{_docdir}/ghc/libraries && [ -x "./gen_contents_index" ] && ./gen_contents_index ) || : diff --git a/ghc.spec b/ghc.spec index ba02fae..73c885a 100644 --- a/ghc.spec +++ b/ghc.spec @@ -16,7 +16,7 @@ Name: ghc Version: 6.10.1 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Glasgow Haskell Compilation system # See https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=239713 ExcludeArch: alpha ppc64 @@ -150,7 +150,7 @@ sed -i -e "s|\.%{_prefix}|%{_prefix}|" rpm-*.files cat rpm-dir.files rpm-lib.files > rpm-base-filelist %if %{build_prof} -cat rpm-dir.files rpm-prof.files > rpm-prof-filelist +cat rpm-prof.files > rpm-prof-filelist %endif # these are handled as alternatives @@ -229,9 +229,16 @@ fi %endif %changelog -* Fri Nov 28 2008 Jens Petersen +* Mon Dec 1 2008 Jens Petersen - 6.10.1-6 +- update macros.ghc to latest proposed revised packaging guidelines: + - use runghc + - drop trivial cabal_build and cabal_haddock + - ghc_register_pkg and ghc_unregister_pkg replace ghc_preinst_script, + ghc_postinst_script, ghc_preun_script, and ghc_postun_script +- library templates prof subpackage requires main library again - make cabal2spec work on .cabal files too, and - read and check name and version from .cabal + read and check name and version directly from .cabal file +- ghc-prof does not need to own libraries dirs owned by main package * Tue Nov 25 2008 Jens Petersen - 6.10.1-5 - add cabal2spec and template files for easy cabal hackage packaging