[ghc-rpm-macros/f18] add ghc_clear_execstack to ghc_bin_install and ghc_lib_install; ghc_without_shared cleanup

Jens Petersen petersen at fedoraproject.org
Thu Jul 11 02:03:52 UTC 2013


commit b9fd393c2a2919cada83b23d16e6e50aea1cd02e
Author: Jens Petersen <petersen at redhat.com>
Date:   Thu Jul 11 11:03:32 2013 +0900

    add ghc_clear_execstack to ghc_bin_install and ghc_lib_install; ghc_without_shared cleanup
    
    - require prelink for execstack
    - create lib base package also when ghc_without_shared is set (#983137)

 ghc-rpm-macros.ghc  |   33 ++++++++++++++++++---------------
 ghc-rpm-macros.spec |   12 ++++++++++--
 2 files changed, 28 insertions(+), 17 deletions(-)
---
diff --git a/ghc-rpm-macros.ghc b/ghc-rpm-macros.ghc
index 37feda4..68fe33f 100644
--- a/ghc-rpm-macros.ghc
+++ b/ghc-rpm-macros.ghc
@@ -65,7 +65,7 @@ done\
 
 %ghc_add_basepkg_file()\
 %define basepkg ghc-%{pkg_name}\
-echo "%*" >> %{basepkg}%{?ghc_without_shared:-devel}.files
+echo "%*" >> %{basepkg}.files
 
 # compiler version
 %ghc_version %{!?ghc_version_override:%(ghc --numeric-version)}%{?ghc_version_override}
@@ -85,15 +85,13 @@ install --mode=0644 %{pkgnamever}.conf %{buildroot}%{ghclibdir}/package.conf.d\
 %ghc_devel_requires Requires:       ghc-compiler = %{ghc_version}\
 Requires(post): ghc-compiler = %{ghc_version}\
 Requires(postun): ghc-compiler = %{ghc_version}\
-%if %{undefined ghc_without_shared} && 0%{!?-m:1}\
+%if 0%{!?-m:1}\
 Requires:       ghc-%{?pkg_name}%{!?pkg_name:%{pkgname}} = %{?pkgver}%{!?pkgver:%{version}}-%{release}\
 %endif
 
 %ghc_shared_files\
-%if %{undefined ghc_without_shared}\
 %files -n %{basepkg} -f %{basepkg}.files\
 %{?base_doc_files:%doc %base_doc_files}\
-%endif\
 %{nil}
 
 # ghc_lib_package [-c cdepslist] [-h pkgdepslist]
@@ -141,16 +139,11 @@ This package provides the shared library.\
 %ghc_lib_package\
 %{nil}
 
-%ghc_pkg_recache %{_bindir}/ghc-pkg recache --no-user-package-conf || :
-
 # (deprecated) for docs post and postun
 %ghc_reindex_haddock :
 
 %ghc_devel_files\
 %files -n %{basepkg}-devel -f %{basepkg}-devel.files\
-%if %{defined ghc_without_shared}\
-%{?base_doc_files:%doc %base_doc_files}\
-%endif\
 %{?devel_doc_files:%doc %devel_doc_files}\
 %{nil}
 
@@ -218,12 +211,6 @@ This package contains the development files.
 %ghc_devel_files\
 %{nil}
 
-# ghc_strip_dynlinked
-%ghc_strip_dynlinked\
-%if %{undefined __debug_package}\
-find %{buildroot} -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \\; -exec strip "{}" \\;\
-%endif
-
 # ghc_bin_build
 %ghc_bin_build\
 %global debug_package %{nil}\
@@ -245,12 +232,25 @@ find %{buildroot} -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \
 %endif\
 %{nil}
 
+# ghc_strip_dynlinked
+%ghc_strip_dynlinked\
+%if %{undefined __debug_package}\
+find %{buildroot} -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \\; -exec strip "{}" \\;\
+%endif
+
+# ghc_clear_execstack
+%ghc_clear_execstack\
+if [ -d "%{buildroot}%{_bindir}" ]; then\
+find %{buildroot}%{_bindir} -type f -exec sh -c "file {} | grep -q ' ELF '" \\; -exec execstack -c "{}" \\;\
+fi
+
 # install bin package
 %ghc_bin_install()\
 %global _use_internal_dependency_generator 0\
 %global __find_requires %{_rpmconfigdir}/ghc-deps.sh --requires %{buildroot}%{ghclibdir}\
 %cabal_install\
 %{!?1:%ghc_strip_dynlinked}\
+%{!?1:%ghc_clear_execstack}\
 %{nil}
 
 # ghc_lib_install [name] [version]
@@ -262,6 +262,7 @@ find %{buildroot} -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \
 %cabal_pkg_conf\
 %ghc_gen_filelists\
 %{!?1:%ghc_strip_dynlinked}\
+%{!?1:%ghc_clear_execstack}\
 %{nil}
 
 # ghc_fix_dynamic_rpath prog ...
@@ -281,6 +282,8 @@ done\
 %endif\
 %{nil}
 
+%ghc_pkg_recache %{_bindir}/ghc-pkg recache --no-user-package-conf || :
+
 # - without_hscolour, without_testsuite, and ghc_bootstrapping
 #   need to be set locally in the spec file
 
diff --git a/ghc-rpm-macros.spec b/ghc-rpm-macros.spec
index d14b1e5..9bebfce 100644
--- a/ghc-rpm-macros.spec
+++ b/ghc-rpm-macros.spec
@@ -6,9 +6,9 @@
 #%%global without_hscolour 1
 
 Name:           ghc-rpm-macros
-Version:        0.95.11
+Version:        0.95.12
 Release:        1%{?dist}
-Summary:        Macros for building packages for GHC
+Summary:        RPM macros for building packages for GHC
 
 License:        GPLv3
 URL:            https://fedoraproject.org/wiki/Packaging:Haskell
@@ -29,6 +29,8 @@ BuildRequires:  redhat-rpm-config
 ExclusiveArch:  %{ghc_arches}
 Requires:       hscolour
 %endif
+# for execstack
+Requires:       prelink
 
 %description
 A set of macros for building GHC packages following the Haskell Guidelines
@@ -74,6 +76,12 @@ EOF
 
 
 %changelog
+* Thu Jul 11 2013 Jens Petersen <petersen at redhat.com> - 0.95.12-1
+- add new ghc_clear_execstack to ghc_bin_install and ghc_lib_install (#973512)
+  and require prelink for execstack
+- create lib base package also when ghc_without_shared is set (#983137)
+  and other ghc_without_shared cleanup
+
 * Fri Jun 21 2013 Jens Petersen <petersen at redhat.com> - 0.95.11-1
 - ghc_fix_dynamic_rpath: do not assume first RPATH
 - packaging for without_shared is now done the same way as shared


More information about the scm-commits mailing list