/usr/bin/dpkg-parsechangelog is in dpkg-dev 1.16.18.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | #!/usr/bin/perl
#
# dpkg-parsechangelog
#
# Copyright © 1996 Ian Jackson
# Copyright © 2001 Wichert Akkerman
# Copyright © 2006-2012 Guillem Jover <guillem@debian.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
use strict;
use warnings;
use Dpkg;
use Dpkg::Gettext;
use Dpkg::ErrorHandling;
use Dpkg::Changelog::Parse;
textdomain("dpkg-dev");
my %options;
sub version {
printf _g("Debian %s version %s.\n"), $progname, $version;
printf _g("
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
");
}
sub usage {
printf _g(
"Usage: %s [<option>...]")
. "\n\n" . _g(
"Options:
-l<changelog-file> get per-version info from this file.
-F<changelog-format> force changelog format.
-L<libdir> look for changelog parsers in <libdir>.
-?, --help show this help message.
--version show the version.")
. "\n\n" . _g(
"Parser options:
--format <output-format> see man page for list of available
output formats, defaults to 'dpkg'
for compatibility with dpkg-dev
--since <version>, include all changes later than version
-s<version>, -v<version>
--until <version>, include all changes earlier than version
-u<version>
--from <version>, include all changes equal or later
-f<version> than version
--to <version>, -t<version> include all changes up to or equal
than version
--count <number>, include <number> entries from the top
-c<number>, -n<number> (or the tail if <number> is lower than 0)
--offset <number>, change the starting point for --count,
-o<number> counted from the top (or the tail if
<number> is lower than 0)
--all include all changes
"), $progname;
}
while (@ARGV) {
last unless $ARGV[0] =~ m/^-/;
$_ = shift(@ARGV);
if (m/^-L(.+)$/) {
$options{"libdir"} = $1;
} elsif (m/^-F([0-9a-z]+)$/) {
$options{"changelogformat"} = $1;
} elsif (m/^-l(.+)$/) {
$options{"file"} = $1;
} elsif (m/^--$/) {
last;
} elsif (m/^-([cfnostuv])(.*)$/) {
if (($1 eq "c") or ($1 eq "n")) {
$options{"count"} = $2;
} elsif ($1 eq "f") {
$options{"from"} = $2;
} elsif ($1 eq "o") {
$options{"offset"} = $2;
} elsif (($1 eq "s") or ($1 eq "v")) {
$options{"since"} = $2;
} elsif ($1 eq "t") {
$options{"to"} = $2;
} elsif ($1 eq "u") {
$options{"until"} = $2;
}
} elsif (m/^--(count|file|format|from|offset|since|to|until)(.*)$/) {
if ($2) {
$options{$1} = $2;
} else {
$options{$1} = shift(@ARGV);
}
} elsif (m/^--all$/) {
$options{"all"} = undef;
} elsif (m/^-(\?|-help)$/) {
usage(); exit(0);
} elsif (m/^--version$/) {
version(); exit(0);
} else {
usageerr(_g("unknown option \`%s'"), $_);
}
}
@ARGV && usageerr(_g("takes no non-option arguments"));
my $count = 0;
my @fields = changelog_parse(%options);
foreach my $f (@fields) {
print "\n" if $count++;
print $f->output();
}
|