[packages/rpm-build-macros] __spec_install_post_check_shebangs

jajcus jajcus at pld-linux.org
Sun Nov 29 17:35:24 CET 2015


commit 02bc4ed52c77090fc9d6caf35642a2dc11195406
Author: Jacek Konieczny <jajcus at jajcus.net>
Date:   Sun Nov 29 17:31:36 2015 +0100

    __spec_install_post_check_shebangs
    
    Check script shebangs. Currently only for python and a generic
    "#!/usr/bin/env interpreter" check. Checks for other interpreters may
    easily be added.
    
    For Python – check if /usr/bin/python2 or /usr/bin/python3 is used, so
    we don't run Python3-compatible software with Python 2 just because it
    is our /usr/bin/python.
    
    Version: 1.712

 rpm-build-macros.spec |  2 +-
 rpm.macros            | 30 ++++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletion(-)
---
diff --git a/rpm-build-macros.spec b/rpm-build-macros.spec
index e6fe49a..542ca5f 100644
--- a/rpm-build-macros.spec
+++ b/rpm-build-macros.spec
@@ -1,4 +1,4 @@
-%define		rpm_macros_rev	1.711
+%define		rpm_macros_rev	1.712
 %define		find_lang_rev	1.37
 Summary:	PLD Linux RPM build macros
 Summary(pl.UTF-8):	Makra do budowania pakietów RPM dla Linuksa PLD
diff --git a/rpm.macros b/rpm.macros
index 1a3e4c8..e354123 100644
--- a/rpm.macros
+++ b/rpm.macros
@@ -727,6 +727,36 @@ __spec_install_post_check_tmpfiles() { \
 	%{!?no_install_post_check_tmpfiles:return $fail;} \
 }; __spec_install_post_check_tmpfiles }}
 
+#-----------------------------------------------------------------
+# Verify that scripts have reasonable shebangs
+#
+#%no_install_post_check_shebangs 1
+#
+%__spec_install_post_check_shebangs { \
+__spec_install_post_check_shebangs() { \
+%{!?debug:set +x;} \
+	fail=0; \
+	echo "Checking script shebangs..."; \
+	for f in $(find $RPM_BUILD_ROOT -type f -perm -500 -print) ; do \
+		shebang=$(sed -e'1s/#! *\(.*\)/\1/;t;d;q' "$f") ; \
+		f=${f##$RPM_BUILD_ROOT}; \
+		case "$shebang" in \
+			"%{__python}"|"%{__python3}"|"%{__python} "*|"%{__python3} ") \
+				;; \
+			"/usr/bin/env python"*|"/usr/bin/python"|"/usr/bin/python "*) \
+				echo "$f starts with '#!$shebang', should be '#!%{__python}' or '#!%{__python3}'" >&2;\
+				fail=1 ; \
+				;; \
+			"/usr/bin/env "*) \
+				echo "$f starts with '#!$shebang', should be explicit interpreter path" >&2;\
+				fail=1 ; \
+				;; \
+			*) ;;\
+		esac ; \
+	done ; \
+	echo " DONE" ; \
+}; %{!?no_install_post_check_shebangs:__spec_install_post_check_shebangs} }
+
 # Remove common Perl files we don't package
 %__spec_install_post_perl_clean {\
 %{!?no_install_post_perl_clean: \
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/rpm-build-macros.git/commitdiff/02bc4ed52c77090fc9d6caf35642a2dc11195406



More information about the pld-cvs-commit mailing list