File 0001-split-wrong-script-interpreter-into-env-script-inter.patch of Package rpmlint.30705

From a4618650898aece5c4838e71853310b54f6e29fa Mon Sep 17 00:00:00 2001
From: Dirk Mueller <dirk@dmllr.de>
Date: Sun, 1 Oct 2017 22:08:20 +0200
Subject: [PATCH] split wrong-script-interpreter into env-script-interpreter

For mere mortals, details message for wrong-script-interpreter
does not explain why the env as shebang is an issue. Splitting
that case into a separate diagnostic allows a more detailed
info message alongside that gives a better rationale.
---
 FilesCheck.py | 32 ++++++++++++++++++++++++++------
 1 file changed, 26 insertions(+), 6 deletions(-)

Index: rpmlint-rpmlint-1.10/FilesCheck.py
===================================================================
--- rpmlint-rpmlint-1.10.orig/FilesCheck.py
+++ rpmlint-rpmlint-1.10/FilesCheck.py
@@ -863,12 +863,15 @@ class FilesCheck(AbstractCheck.AbstractC
                     elif interpreter or mode_is_exec or script_regex.search(f):
                         if interpreter:
                             res = interpreter_regex.search(interpreter)
-                            is_wrong_interpreter = (not res or (res and
-                                                    res.group(1) == 'env'))
-                            if ((mode_is_exec or script_regex.search(f)) and
-                                    is_wrong_interpreter):
-                                printError(pkg, 'wrong-script-interpreter',
-                                           f, interpreter, interpreter_args)
+                            if (mode_is_exec or script_regex.search(f)):
+                                if res and res.group(1) == 'env':
+                                    printError(pkg, 'env-script-interpreter',
+                                               f, interpreter,
+                                               interpreter_args)
+                                elif not res:
+                                    printError(pkg, 'wrong-script-interpreter',
+                                               f, interpreter,
+                                               interpreter_args)
                         elif not nonexec_file and not \
                                 (lib_path_regex.search(f) and
                                  f.endswith('.la')):
@@ -1303,6 +1306,22 @@ Alternatively, if the file isn't suppose
 it is not marked as being executable.
 ''',
 
+'env-script-interpreter',
+'''This script uses 'env' as an interpreter.
+For the rpm runtime dependency detection to work, the shebang
+#!/usr/bin/env python
+
+needs to be patched into
+#!/usr/bin/python
+
+otherwise the package dependency generator merely adds a dependency
+on /usr/bin/env rather than the actual interpreter /usr/bin/python.
+
+Alternatively, if the file should not be executed, then ensure that
+it is not marked as executable or don't install it in a path that
+is reserved for executables.
+''',
+
 'non-executable-script',
 '''This text file contains a shebang or is located in a path dedicated for
 executables, but lacks the executable bits and cannot thus be executed.  If
openSUSE Build Service is sponsored by