[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