Bug 20096

Summary: Надо тщательнее проверять шебанг.
Product: Sisyphus Reporter: Sir Raorn <raorn>
Component: rpm-buildAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P3 CC: arseny, glebfm, imz, ldv, placeholder, vt
Version: unstable   
Hardware: all   
OS: Linux   

Description Sir Raorn 2009-05-19 00:24:23 MSD
В shebang.req:ShebangReq() надо добавить проверку что $1 - абсолютный путь.
Comment 1 Repository Robot 2010-07-01 21:34:07 MSD
rpm-4.0.4-alt98.37 -> sisyphus:

* Thu Jul 01 2010 Dmitry V. Levin <ldv@altlinux> 4.0.4-alt98.37
- shebang.req (ShebangReq): Ensure that interpreter is specified
  as an absolute pathname (closes: #20096).
- platform.in: Enabled %check in buildreq mode (closes: #23030).
- pkgconfig.req (PkgconfigReqProv): Relaxed version check.
Comment 2 at@altlinux.org 2010-07-05 10:01:54 MSD
Шебанг с неабсолютным путём просто не обрабатывается.
Так что 4.0.4-alt98.36-3-g7b74686 ничего не дает.

line=$(sed -n '1s|^#![[:space:]]*/|/|p;q' "$f")
[ -n "$line" ] || return 0

Ну и потом file(1) не определяет неабсолютный шебанг как "script text executable".  Прежде чем проверять шебанг нужно его определить.  А без абсолютного пути считается что шебанга как бы вообще нет. Так что это просто плохо обдуманный багрепорт и плохо обдуманное изменение.

$ cat test.pl
#!perl
#
$ file test.pl
test.pl: ASCII text
$