<body>
I discovered what is wrong with the perl files that dows not uses shebangs. <br>The perl file postprocess/rebase.pl is a valid executable script, but it does not uses shebang.<br><br>I took /usr/share/file/magic and there it is a mention for that kind of "magic" sign:<br>...<br>&nbsp;# commands:&nbsp; file(1) magic for various shells and interpreters<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shell archive or script for antique kernel text<br>...<br><br>And tried to execute on command line this file. It is properly executed. So it is a valid script to run.<br><br>I have managed to grep the /usr/share/file/magic and the string "\ script" (with space) will manage to sort out just the executable ones.<br><br>So I changed my script to search for "\ script" using "grep" and "file" commands and no more file type (extensions) exclusion patterns.<br><br>It was tested here&nbsp; and attached on this email. <br><br>Francisco Kem Iti Saito
<br><br>&lt; #Use test as argument to find the files that are not executable for file command but have the execution bit set<br>&lt; #The use of "\ script" was based on /usr/share/file/magic which is used by "file" command.<br>---<br>&gt; # Set the exclusion pattern (e.g. not all perl files - pl - are detected as executable by file command because they use evaland there is no shebang)<br>&gt;<br>&gt; EXCLUSIONS="*.pl$|*.excludeme$"<br>12a14,15<br>&gt;<br>&gt; #Use test as argument to find the files that are not executable for file command but have the execution bit set<br>16c19<br>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; find . -perm /u+x -type f -print0 |xargs&nbsp; -0 -n1 file|grep -v "\ script" |cut -d: -f1<br>---<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; find . -perm /u+x -type f -print0 |xargs&nbsp; -0 -n1 file|grep -v executable|cut -d: -f1|grep -E&nbsp; -v ''$EXCLUSIONS''<br>22c25<br>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; find . -perm /u+x -type f&nbsp; |xargs&nbsp;&nbsp; -n1 file |grep -v "\ script"|cut -d: -f1|xargs chmod -x<br>---<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; find . -perm /u+x -type f&nbsp; |xargs&nbsp;&nbsp; -n1 file |grep -v executable|cut -d: -f1|grep -E&nbsp; -v ''$EXCLUSIONS''|xargs chmod -x<br><br>and the output of grep "\ script" on my Debian machine: <br><br>$ grep "\ script" /usr/share/file/magic<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shell archive or script for antique kernel text<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /bin/sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bourne shell script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /bin/csh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C shell script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /bin/ksh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Korn shell script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /bin/tcsh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tenex C shell script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/local/tcsh&nbsp;&nbsp;&nbsp;&nbsp; Tenex C shell script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/local/bin/tcsh Tenex C shell script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /bin/zsh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Paul Falstad's zsh script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/bin/zsh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Paul Falstad's zsh script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/local/bin/zsh&nbsp; Paul Falstad's zsh script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/local/bin/ash&nbsp; Neil Brown's ash script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/local/bin/ae&nbsp;&nbsp; Neil Brown's ae script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /bin/nawk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new awk script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/bin/nawk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new awk script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/local/bin/nawk new awk script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /bin/gawk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GNU awk script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/bin/gawk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GNU awk script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/local/bin/gawk GNU awk script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /bin/awk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; awk script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/bin/awk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; awk script text executable<br>#0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; regex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BEGIN[[:space:]]*[{]&nbsp;&nbsp;&nbsp; awk script text<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /bin/rc&nbsp;&nbsp;&nbsp;&nbsp; Plan 9 rc shell script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /bin/bash&nbsp;&nbsp; Bourne-Again shell script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/local/bin/bash Bourne-Again shell script text executable<br>&gt;15&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;\0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %s script text executable<br>&gt;16&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;\0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %s script text executable<br># PHP scripts<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&lt;?php&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PHP script text<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&lt;?\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PHP script text<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&lt;?\r&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PHP script text<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/local/bin/php&nbsp; PHP script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/bin/php&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PHP script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Zend\x00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PHP script Zend Optimizer data<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp; WNGZWZSC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Wingz compiled script<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /bin/perl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perl script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval\ "exec\ /bin/perl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perl script text<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/bin/perl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perl script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval\ "exec\ /usr/bin/perl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perl script text<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #!\ /usr/local/bin/perl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perl script text<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval\ "exec\ /usr/local/bin/perl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perl script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval\ '(exit\ $?0)'\ &amp;&amp;\ eval\ 'exec&nbsp;&nbsp;&nbsp; perl script text<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; """&nbsp;&nbsp;&nbsp;&nbsp; a python script text executable<br>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string/b&nbsp; #!\ /usr/bin/python&nbsp;&nbsp; python script text executable<br># varied.script:&nbsp; file(1) magic for various interpreter scripts<br>&gt;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;\0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %s script text executable<br>&gt;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;\0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %s script text executable<br>&gt;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;\0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %s script text executable<br><br><br>Em 24/03/2011 ās 03:07 horas, "Tor Lillqvist" &lt;tlillqvist@novell.com&gt; escreveu:<blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><pre>&gt; Note: The exclusion pattern was needed because I have noted that some perl <br>&gt; files are not using shebang, so the "file command"  cannot detect it as <br>&gt; executable.<br><br>But if a Perl (or some other) script doesn't start with a #!, then it isn't executable. It can't be run as a command just by itself, the kernel (or Cygwin) doesn't know what interpreter to use. It has to be passed on the command-line as a parameter to the intended interpreter. So, such files should not have the executable bit set. Presumably they are run from the makefiles using an explicit Perl interpreter.<br><br>Now, another question is then whether we should add a suitable #! line to such scripts, and change the makefilery where necessary to just run them as commands? There probably are various complications here that won't show up on most systems/platforms, but will show up on some.<br><br>&gt; Can you send me the git-hook pre-commit so I can try to modify it to make <br>&gt; this tests automatically?<br><br>I am no git expert, but it should be in your git clone, surely?<br><br>--tml<br><br><br>_______________________________________________<br>LibreOffice mailing list<br>LibreOffice@lists.freedesktop.org<br><a href="http://lists.freedesktop.org/mailman/listinfo/libreoffice" target="_blank">lists.freedesktop.org/mailman/listinfo/libreoffice</a>
</pre></blockquote>
</body>