[ghc-rpm-macros/f14] move dependency generator setup from ghc_package_devel to ghc_lib_install

Jens Petersen petersen at fedoraproject.org
Tue Sep 13 03:01:43 UTC 2011


commit 1347477ddf233635b8159c9f87e24098d5735d3e
Author: Jens Petersen <petersen at redhat.com>
Date:   Tue Sep 13 11:59:45 2011 +0900

    move dependency generator setup from ghc_package_devel to ghc_lib_install
    
    also backport bootstrapping improvements:
    - do not setup ghc-deps.sh when ghc_bootstrapping
    - add ghc_test build config
    - drop redundant defattr from filelists
    - ghc_bootstrap is now a macro providing bootstrap config
    - add ghc_check_bootstrap

 ghc-rpm-macros.ghc  |   40 ++++++++++++++++++++++++++++++++++------
 ghc-rpm-macros.spec |   10 +++++++++-
 2 files changed, 43 insertions(+), 7 deletions(-)
---
diff --git a/ghc-rpm-macros.ghc b/ghc-rpm-macros.ghc
index ede1bf3..df61aca 100644
--- a/ghc-rpm-macros.ghc
+++ b/ghc-rpm-macros.ghc
@@ -5,8 +5,22 @@
 %cabal [ -x Setup ] || ghc --make %{!?ghc_without_shared:%{!?ghc_without_dynamic:-dynamic}} Setup\
 ./Setup
 
+# check ghc version was rebuilt against self
+%ghc_check_bootstrap\
+if [ ! "$(ghc --info | grep \\"Booter\\ version\\",\\"%{ghc_version}\\")" ]; then\
+  echo "Warning: this ghc build is not self-bootstrapped."\
+%if %{undefined ghc_bootstrapping}\
+  echo "The ghc package should be rebuilt against its current version before\
+proceeding, to avoid dependency ABI breakage from a future ghc rebuild."\
+  echo "To override set ghc_bootstrapping."\
+  echo "Aborting."\
+  exit 1\
+%endif\
+fi
+
 # configure
 %cabal_configure\
+%ghc_check_bootstrap\
 %cabal configure --prefix=%{_prefix} --libdir=%{_libdir} --docdir=%{_docdir}/%{name}-%{version} %{?pkg_name:--htmldir=%{ghclibdocdir}/%{pkg_name}-%{version}} --libsubdir='$compiler/$pkgid' --ghc %{!?ghc_without_shared:--enable-shared} %{?cabal_configure_options}
 
 # install
@@ -29,13 +43,11 @@
 %define docdir %{ghclibdocdir}/%{pkgnamever}\
 rm -f %{basepkg}.files %{basepkg}-devel.files\
 %if %{undefined ghc_without_shared}\
-echo "%defattr(-,root,root,-)" > %{basepkg}.files\
 if [ -d "%{buildroot}%{pkgdir}" ]; then\
 echo "%dir %{pkgdir}" >> %{basepkg}.files\
 echo "%attr(755,root,root) %{pkgdir}/libHS%{pkgnamever}-ghc%{ghc_version}.so" >> %{basepkg}.files\
 fi\
 %endif\
-echo "%defattr(-,root,root,-)" > %{basepkg}-devel.files\
 %if 0%{!?1:1}\
 if [ -d "%{buildroot}%{_docdir}/%{name}-%{version}" ]; then\
   echo "%{_docdir}/%{name}-%{version}" >> %{basepkg}%{?ghc_without_shared:-devel}.files\
@@ -87,7 +99,6 @@ Requires:       ghc-%{?pkg_name}%{!?pkg_name:%{pkgname}} = %{?pkgver}%{!?pkgver:
 %define basepkg ghc-%{pkgname}\
 %if %{undefined ghc_without_shared}\
 %files -n %{basepkg} -f %{basepkg}.files\
-%defattr(-,root,root,-)\
 %endif\
 \
 %ghc_package_devel\
@@ -127,8 +138,6 @@ This package provides the shared library.\
 %define pkgver %{?2}%{!?2:%{version}}\
 %define pkgnamever %{pkgname}-%{pkgver}\
 %define basepkg ghc-%{pkgname}\
-%global _use_internal_dependency_generator 0\
-%global __find_requires %{_rpmconfigdir}/ghc-deps.sh --requires %{buildroot}%{ghclibdir}\
 %package -n %{basepkg}-devel\
 Summary:        %{?common_summary}%{!?common_summary:Haskell %{pkgname} library} development files\
 Group:          Development/Libraries\
@@ -159,7 +168,6 @@ This package contains the development files.\
 %ghc_reindex_haddock\
 \
 %files -n %{basepkg}-devel -f %{basepkg}-devel.files\
-%defattr(-,root,root,-)\
 %{nil}
 
 # ghc_strip_dynlinked
@@ -191,6 +199,10 @@ find %{buildroot} -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \
 
 # ghc_lib_install [name] [version]
 %ghc_lib_install()\
+%if %{undefined ghc_bootstrapping}\
+%global _use_internal_dependency_generator 0\
+%global __find_requires %{_rpmconfigdir}/ghc-deps.sh --requires %{buildroot}%{ghclibdir}\
+%endif\
 %{?1:cd %1-%2}\
 %cabal_install\
 %cabal_pkg_conf\
@@ -198,3 +210,19 @@ find %{buildroot} -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \
 %ghc_gen_filelists\
 %{!?1:%ghc_strip_dynlinked}\
 %{nil}
+
+# skip shared and prof libs, documentation, and testsuite
+# - without_hscolour needs to be set locally in the spec file
+%ghc_bootstrap\
+%global ghc_without_shared 1\
+%global ghc_without_dynamic 1\
+%global without_prof 1\
+%global without_haddock 1\
+%global without_manual 1
+
+# skip prof libs, and documentation
+# - without_hscolour needs to be set locally in the spec file
+%ghc_test\
+%global without_prof 1\
+%global without_haddock 1\
+%global without_manual 1
diff --git a/ghc-rpm-macros.spec b/ghc-rpm-macros.spec
index c207035..e7e4216 100644
--- a/ghc-rpm-macros.spec
+++ b/ghc-rpm-macros.spec
@@ -3,7 +3,7 @@
 %global macros_file %{_sysconfdir}/rpm/macros.ghc
 
 Name:           ghc-rpm-macros
-Version:        0.10.58
+Version:        0.10.59
 Release:        1%{?dist}
 Summary:        Macros for building packages for GHC
 
@@ -60,6 +60,14 @@ EOF
 
 
 %changelog
+* Tue Sep 13 2011 Jens Petersen <petersen at redhat.com> - 0.10.59-1
+- do not setup ghc-deps.sh when ghc_bootstrapping
+- add ghc_test build config
+- drop redundant defattr from filelists
+- move dependency generator setup from ghc_package_devel to ghc_lib_install
+- ghc_bootstrap is now a macro providing bootstrap config
+- add ghc_check_bootstrap
+
 * Mon Jun 27 2011 Jens Petersen <petersen at redhat.com> - 0.10.58-1
 - add requires for redhat-rpm-config for ghc_arches
 


More information about the scm-commits mailing list