~ubuntu-branches/ubuntu/saucy/devscripts/saucy

« back to all changes in this revision

Viewing changes to scripts/checkbashisms.pl

  • Committer: Package Import Robot
  • Author(s): Benjamin Drung, David Prévot, James McCoy, Benjamin Drung, Stefano Rivera, Salvatore Bonaccorso, Raphael Geissert, Kees Cook, Thijs Kinkhorst, Scott Moser, Yaroslav Halchenko, Ivan Borzenkov
  • Date: 2012-05-31 17:50:56 UTC
  • mfrom: (10.9.13 sid)
  • Revision ID: package-import@ubuntu.com-20120531175056-ybzrfssrbk61ba7y
Tags: 2.11.8
[ David Prévot ]
* French translation update.

[ James McCoy ]
* dd-list:
  + Recognize -h argument, as documented.
  + Don't error when given multiple binary packages from the same source.
    (Closes: #672309)
* Also note DEBCHANGE_MAINTTRAILER change in NEWS entry for 2.11.7.
  (Closes: #672973)
* dget:
  + Fix handling of sources.list entries with a port. (Closes: #672460) Still
    can't handle entries at the same domain but different ports until
    #154868 is fixed.
* debcheckout:
  + Document the DEBCHECKOUT_SOURCE configuration variable.
  + Determine the source package name when downloading the source tarball.
    This ensures the downloaded files aren't incorrectly removed after being
    downloaded.
  + Adapt find_repo() to determine the tarball name for native packages.

[ Benjamin Drung ]
* debchange:
  + Add --vendor= and DEBCHANGE_VENDOR to override the distributor ID
    returned by dpkg-vendor.
  + Always perform Vendor check.
  + Fall back to Debian vendor when a Debian-specific command-line option
    has been supplied (--nmu, --qa, --bin-nmu, --bpo).
  + Adjust --security template for Ubuntu.
  + Add -R/--rebuild flag for Ubuntu's no-change rebuilds.
  + Append ubuntu1 to version when incrementing on Ubuntu, unless a
    -U/--upstream option is given.
  + On Ubuntu, don't copy the previous distribution name for a new changelog
    entry. Use the Ubuntu devel release.
  + Don't use NMU versioning for NMUs / Security uploads on Ubuntu.
  + dch --increment changes XbuildY to Xubuntu1 on Ubuntu (LP: #690230).
  + Try to guess the vendor based on the given distribution name (LP: #723715)
  + Prefer UBUMAIL over DEBEMAIL on Ubuntu (LP: #929846).
* Add first tests for licensecheck.
* Add online test for uscan.

[ Stefano Rivera ]
* devscripts.Logger Don't substitute arguments into logged strings unless
  they were provided. (LP: #968129)
* debchange: Use distro-info to determine Ubuntu release names (LP: #997932).
* Incorporate Ubuntu's delta:
  Move debian-keyring, equivs, libcrypt-ssleay-perl, and libsoap-lite-perl
  to Suggests when building on Ubuntu.

[ Salvatore Bonaccorso ]
* bts: When searching for usertags use tag= in the url (followed by
  the options containing users=). (Closes: #675071).

[ Raphael Geissert ]
* dget: ignore duplicate repository URLs. (Closes: #675258)

[ Kees Cook ]
* licensecheck: Catch LGPL more robustly. (Closes: #623283)

[ Thijs Kinkhorst ]
* debdiff: Do not generate warnings when debdiff'ing dpkg source format
  3.0 (git). (Closes: #668372)
* debuild: Do not warn for missing upstream tarball if package is source
  format 3.0 (git). (Closes: #668372)

[ Scott Moser ]
* uscan: Support watch files that reference S3 bucket listings.
  (Closes: #630756, LP: #798293)

[ Yaroslav Halchenko ]
* licensecheck: Check licenses in .m (Octave/Matlab), .tex (LaTeX),
  and .pyx (Python's pyrex) files (Closes: #604529)

[ Ivan Borzenkov ]
* licensecheck: Add detection code for Beerware license. (Closes: #597463)

Show diffs side-by-side

added added

removed removed

Lines of Context:
51
51
my @filenames;
52
52
 
53
53
# Detect if STDIN is a pipe
54
 
if (-p STDIN or -f STDIN) {
55
 
    my ($tmp_fh, $tmp_filename) = tempfile("chkbashisms_tmp.XXXX", TMPDIR => 1, UNLINK => 1);
56
 
    while (my $line = <STDIN>) {
57
 
        print $tmp_fh $line;
58
 
    }
59
 
    close($tmp_fh);
60
 
    push(@ARGV, $tmp_filename);
 
54
if (scalar(@ARGV) == 0 && (-p STDIN or -f STDIN)) {
 
55
    push(@ARGV, '-');
61
56
}
62
57
 
63
58
##
90
85
    my $check_lines_count = -1;
91
86
 
92
87
    my $display_filename = $filename;
93
 
    if ($filename =~ /chkbashisms_tmp\.....$/) {
94
 
        $display_filename = "(stdin)";
 
88
 
 
89
    if ($filename eq '-') {
 
90
        my $tmp_fh;
 
91
        ($tmp_fh, $filename) = tempfile("chkbashisms_tmp.XXXX", TMPDIR => 1, UNLINK => 1);
 
92
        while (my $line = <STDIN>) {
 
93
            print $tmp_fh $line;
 
94
        }
 
95
        close($tmp_fh);
 
96
        $display_filename = "(stdin)";
95
97
    }
96
98
 
97
99
    if (!$opt_force) {
569
571
        $LEADIN . qr'jobs\s' =>  q<jobs>,
570
572
#       $LEADIN . qr'jobs\s+-[^lp]\s' =>  q<'jobs' with option other than -l or -p>,
571
573
        $LEADIN . qr'command\s+-[^p]\s' =>  q<'command' with option other than -p>,
 
574
        $LEADIN . qr'setvar\s' =>  q<setvar 'foo' 'bar' should be eval \$'foo' 'bar'>,
572
575
    );
573
576
 
574
577
    %string_bashisms = (
575
578
        qr'\$\[[^][]+\]' =>              q<'$[' should be '$(('>,
576
 
        qr'\$\{\w+\:\d+(?::\d+)?\}' =>   q<${foo:3[:1]}>,
 
579
        qr'\$\{\w+\:(?:\d+|\$\{?\w+\}?)+(?::(?:\d+|\$\{?\w+\}?)+)?\}' =>   q<${foo:3[:1]}>,
577
580
        qr'\$\{!\w+[\@*]\}' =>           q<${!prefix[*|@]>,
578
581
        qr'\$\{!\w+\}' =>                q<${!name}>,
579
582
        qr'\$\{\w+(/.+?){1,2}\}' =>      q<${parm/?/pat[/str]}>,