1dpkg-parsechangelog(1) dpkg suite dpkg-parsechangelog(1)
2
3
4
6 dpkg-parsechangelog - parse Debian changelog files
7
9 dpkg-parsechangelog [option...]
10
12 dpkg-parsechangelog reads and parses the changelog of an unpacked
13 Debian source tree and outputs the information in it to standard output
14 in a machine-readable form.
15
17 -l, --file changelog-file
18 Specifies the changelog file to read information from. A ‘-’
19 can be used to specify reading from standard input. The default
20 is debian/changelog.
21
22 -F changelog-format
23 Specifies the format of the changelog. By default the format is
24 read from a special line near the bottom of the changelog or
25 failing that defaults to the debian standard format. See also
26 CHANGELOG FORMATS.
27
28 -L libdir
29 Obsolete option without effect (since dpkg 1.18.8). Setting the
30 perl environment variables PERL5LIB or PERLLIB has a similar
31 effect when looking for the parser perl modules.
32
33 -S, --show-field field
34 Specifies the name of the field to show (since dpkg 1.17.0).
35 The field name is not printed, only its value.
36
37 -?, --help
38 Show the usage message and exit.
39
40 --version
41 Show the version and exit.
42
43 Parser Options
44 The following options can be used to influence the output of the
45 changelog parser, e.g. the range of entries or the format of the
46 output.
47
48 --format output-format
49 Set the output format. Currently supported values are dpkg and
50 rfc822. dpkg is the classic output format (from before this
51 option existed) and the default. It consists of one paragraph in
52 Debian control format (see deb-control(5)). If more than one
53 entry is requested, then most fields are taken from the most
54 recent entry, except otherwise stated:
55
56 Source: pkg-name
57
58 Version: version
59
60 Distribution: target-distribution
61
62 Urgency: urgency
63 The highest urgency of all included entries is used,
64 followed by the concatenated (space-separated) comments
65 from all the versions requested.
66
67 Maintainer: author
68
69 Date: date
70 The date of the entry as a string, as it appears in the
71 changelog. With a strptime(3) format "%a, %d %b %Y %T
72 %z", but where the day of the week might not actually
73 correspond to the real day obtained from the rest of the
74 date string. If you need a more accurate representation
75 of the date, use the Timestamp field, but take into
76 account it might not be possible to map it back to the
77 exact value in this field.
78
79 Timestamp: timestamp
80 The date of the entry as a timestamp in seconds since the
81 epoch (since dpkg 1.18.8).
82
83 Closes: bug-number
84 The Closes fields of all included entries are merged.
85
86 Changes: changelog-entries
87 The text of all changelog entries is concatenated. To
88 make this field a valid Debian control format multiline
89 field empty lines are replaced with a single full stop
90 and all lines is intended by one space character. The
91 exact content depends on the changelog format.
92
93 The Version, Distribution, Urgency, Maintainer and Changes
94 fields are mandatory.
95
96 There might be additional user-defined fields present.
97
98 The rfc822 format uses the same fields but outputs a separate
99 paragraph for each changelog entry so that all metadata for each
100 entry is preserved.
101
102 --all Include all changes. Note: other options have no effect when
103 this is in use.
104
105 -s, --since version
106 -v version
107 Include all changes later than version.
108
109 -u, --until version
110 Include all changes earlier than version.
111
112 -f, --from version
113 Include all changes equal or later than version.
114
115 -t, --to version
116 Include all changes up to or equal than version.
117
118 -c, --count number
119 -n number
120 Include number entries from the top (or the tail if number is
121 lower than 0).
122
123 -o, --offset number
124 Change the starting point for --count, counted from the top (or
125 the tail if number is lower than 0).
126
128 It is possible to use a different format to the standard one, by
129 providing a parser for that alternative format.
130
131 In order to have dpkg-parsechangelog run the new parser, a line must be
132 included within the last 40 lines of the changelog file, matching the
133 Perl regular expression: “\schangelog-format:\s+([0-9a-z]+)\W”. The
134 part in parentheses should be the name of the format. For example:
135
136 @@@ changelog-format: otherformat @@@
137
138 Changelog format names are non-empty strings of alphanumerics.
139
140 If such a line exists then dpkg-parsechangelog will look for the parser
141 as a Dpkg::Changelog::Otherformat perl module; it is an error for it
142 not being present. The parser name in the perl module will be
143 automatically capitalized. The default changelog format is debian, and
144 a parser for it is provided by default.
145
146 The parser should be derived from the Dpkg::Changelog class and
147 implement the required documented interface.
148
149 If the changelog format which is being parsed always or almost always
150 leaves a blank line between individual change notes, these blank lines
151 should be stripped out, so as to make the resulting output compact.
152
153 If the changelog format does not contain date or package name
154 information this information should be omitted from the output. The
155 parser should not attempt to synthesize it or find it from other
156 sources.
157
158 If the changelog does not have the expected format the parser should
159 error out, rather than trying to muddle through and possibly generating
160 incorrect output.
161
162 A changelog parser may not interact with the user at all.
163
165 All Parser Options except for -v are only supported since dpkg 1.14.16.
166
167 Short option parsing with non-bundled values available only since dpkg
168 1.18.0.
169
171 debian/changelog
172 The changelog file, used to obtain version-dependent information
173 about the source package, such as the urgency and distribution
174 of an upload, the changes made since a particular release, and
175 the source version number itself.
176
178 deb-changelog(5).
179
180
181
1821.18.25 2018-06-26 dpkg-parsechangelog(1)