[Nitpicks] Non-standard Cygwin-only hashbangs in base-files, biber, hg, xlsx2csv, xmlto scripts

Brian Inglis Brian.Inglis@SystematicSw.ab.ca
Thu Jul 27 05:42:00 GMT 2017


Hi folks,

Running file(1) detects non-standard Cygwin-only hashbangs in base-files, biber,
hg, xlsx2csv, xmlto scripts.
If standard paths were used, these would be detected and named in file(1) output
as POSIX shell, Perl, Python, etc. scripts.

The use of /usr/bin/sh instead of standard /bin/sh, /bin/python instead of
/usr/bin/python, and /usr/bin/perl.exe instead of /usr/bin/perl could be a
problem if these scripts were used in cross-build environments, and the exec
function did not fall back to a path search for the interpreter.

It would be nice if these could be cleaned up in the next releases, unless there
are reasons for those non-standard paths to avoid use on non-Cygwin platforms.

Also xmlto works only if the default /bin/sh is bash as it uses declare, echo
-e, and test == -- either the hashbang or the bashisms should be fixed: see
bottom for checkbashisms output.

$ file /etc/preremove/base-files.sh /usr/bin/{biber,hg,xlsx2csv,xmlto}
/etc/preremove/base-files.sh: a /usr/bin/sh script, ASCII text executable
/usr/bin/biber:               a /usr/bin/perl.exe  script, UTF-8 Unicode text
executable
/usr/bin/hg:                  a /bin/python script, ASCII text executable
/usr/bin/xlsx2csv:            a /bin/python script, ASCII text executable
/usr/bin/xmlto:               a /usr/bin/sh script, ASCII text executable
$ head -1 /etc/preremove/base-files.sh /usr/bin/{biber,hg,xlsx2csv,xmlto}
==> /etc/preremove/base-files.sh <==
#!/usr/bin/sh

==> /usr/bin/biber <==
#!/usr/bin/perl.exe

==> /usr/bin/hg <==
#!/bin/python

==> /usr/bin/xlsx2csv <==
#!/bin/python

==> /usr/bin/xmlto <==
#!/usr/bin/sh

$ checkbashisms /usr/bin/xmlto
possible bashism in /usr/bin/xmlto line 134 (declare):
declare -a XSL_MODS
possible bashism in /usr/bin/xmlto line 138 (declare):
declare -a CLEANFILES
possible bashism in /usr/bin/xmlto line 583 (echo -e):
  [ "${VERBOSE}" -ge 1 ] && \
   echo -e >&2 "${XSLTPROC_PATH} ${XSLTOPTS} ${SEARCHPATH_FORMATTED} \\\\\n -o
\"${XSLT_PROCESSED}\" \\\\\n \"${STYLESHEET}\" \\\\\n \"${INPUT_FILE}\""
possible bashism in /usr/bin/xmlto line 590 (should be 'b = a'):
  if [ $? == 4 ]
possible bashism in /usr/bin/xmlto line 595 (echo -e):
        echo -e >&2 "${XSLTPROC_PATH} ${XSLTOPTS} ${SEARCHPATH_FORMATTED}\\\\\n
-o \"${XSLT_PROCESSED}\" \\\\\n \"${STYLESHEET}\" \\\\\n \"${INPUT_FILE}\""

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada



More information about the Cygwin-apps mailing list