Bug#858579: /usr/share/man/man5/deb-changelog.5.gz: please support a comment syntax for Debian changelog files

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Bug#858579: /usr/share/man/man5/deb-changelog.5.gz: please support a comment syntax for Debian changelog files

G. Branden Robinson
Package: dpkg-dev
Version: 1.18.23
Severity: wishlist
File: /usr/share/man/man5/deb-changelog.5.gz

I believe that, as a general rule, all human-readable, human-editable,
machine-parseable file formats should support a comment syntax.

Debian changelogs meet these criteria.  My use case is simply this, at
the end of the file:

# vim:set ai et sw=2 ts=2 tw=78:

Fans of other editors can do similarly (and probably already do, outside
the spec just like me).

-- System Information:
Debian Release: 9.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 4.9.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages dpkg-dev depends on:
ii  binutils      2.27.90.20170124-2
ii  bzip2         1.0.6-8.1
ii  libdpkg-perl  1.18.23
ii  make          4.1-9.1
ii  patch         2.7.5-1+b2
pn  perl:any      <none>
ii  tar           1.29b-1.1
ii  xz-utils      5.2.2-1.2+b1

Versions of packages dpkg-dev recommends:
ii  build-essential          12.3
ii  fakeroot                 1.21-3.1
ii  gcc [c-compiler]         4:6.3.0-1
ii  gcc-6 [c-compiler]       6.3.0-6
ii  gnupg                    2.1.18-6
ii  gpgv                     2.1.18-6
ii  libalgorithm-merge-perl  0.08-3

Versions of packages dpkg-dev suggests:
ii  debian-keyring  2017.01.20

-- no debconf information

Reply | Threaded
Open this post in threaded view
|

Bug#858579: /usr/share/man/man5/deb-changelog.5.gz: please support a comment syntax for Debian changelog files

Guillem Jover
Hi!

On Thu, 2017-03-23 at 20:30:54 -0400, Branden Robinson wrote:
> Package: dpkg-dev
> Version: 1.18.23
> Severity: wishlist
> File: /usr/share/man/man5/deb-changelog.5.gz

> I believe that, as a general rule, all human-readable, human-editable,
> machine-parseable file formats should support a comment syntax.
>
> Debian changelogs meet these criteria.  My use case is simply this, at
> the end of the file:
>
> # vim:set ai et sw=2 ts=2 tw=78:
>
> Fans of other editors can do similarly (and probably already do, outside
> the spec just like me).

The implementation in dpkg-dev already supports all of this
(see man Dpkg::Changelog::Debian), including:

,--- debian/changelog ---
# whatever
source (1.0) release; urgency=normal

# stuff
  * Entry.
# comment

 -- Name <[hidden email]>  Sat, 25 Mar 2017 15:01:01 +0100

vim:set ai et sw=2 ts=2 tw=78:

Anything after the vim modeline will be ignored.
`---

So I guess your request would be to officialize (at least the proper
comment markers ‘#’) as supported, in the spec. I'll probably mention
this on the debian-policy mailing list, but I guess I should just do
it (perhaps all the currently accepted syntax) because if someone wants
to code an alternative implementation, they will have to replicate the
logic, or it will be unable to parse existing changelogs.

Also because dpkg can always be more lax than policy, and this is the
case right here.

Thanks,
Guillem

Reply | Threaded
Open this post in threaded view
|

Bug#858579: /usr/share/man/man5/deb-changelog.5.gz: please support a comment syntax for Debian changelog files

G. Branden Robinson
On Sat, Mar 25, 2017 at 03:07:32PM +0100, Guillem Jover wrote:
> The implementation in dpkg-dev already supports all of this
> (see man Dpkg::Changelog::Debian), including:

Section 3 manpages for Perl modules?  Will wonders never cease?  ;-)

Thanks--I was utterly unaware of this.

> So I guess your request would be to officialize (at least the proper
> comment markers ‘#’) as supported, in the spec. I'll probably mention
> this on the debian-policy mailing list, but I guess I should just do
> it (perhaps all the currently accepted syntax) because if someone wants
> to code an alternative implementation, they will have to replicate the
> logic, or it will be unable to parse existing changelogs.
>
> Also because dpkg can always be more lax than policy, and this is the
> case right here.

Yes, that's precisely what I'm shooting for.

I urge you to go ahead and do it; it's obviously not a breaking change.

My longer-term objective here is to write (or persuade someone to write)
a Vim syntax highlighter for Debian copyright files, and for that it
would be helpful to have an implementation-independent spec for the file
format.  I was looking to the existing highlighting for deb-control and
deb-changelog files, when I noticed that Vim was highlighting my
existing comment line in xtrs's debian/changelog with ugly white-on-red.

It'll be easier to get that fixed if I can point to it being part of the
sepc, though in the meantime I'm happy to appeal to your authority.  ;-)

--
Regards,
Branden

Reply | Threaded
Open this post in threaded view
|

Bug#858579: /usr/share/man/man5/deb-changelog.5.gz: please support a comment syntax for Debian changelog files

Guillem Jover
Hi!

On Sat, 2017-03-25 at 19:27:55 -0400, G. Branden Robinson wrote:
> On Sat, Mar 25, 2017 at 03:07:32PM +0100, Guillem Jover wrote:
> > The implementation in dpkg-dev already supports all of this
> > (see man Dpkg::Changelog::Debian), including:
>
> Section 3 manpages for Perl modules?  Will wonders never cease?  ;-)

I'm not sure if the wonder is becuse there's documentation at all for
those, or because secion is 3 instead of say 3perl. In any case, this
prompted me to check and fix the latter, so I've queued a patch for
1.19.x. :)

> Thanks--I was utterly unaware of this.

No problem!

> > So I guess your request would be to officialize (at least the proper
> > comment markers ‘#’) as supported, in the spec. I'll probably mention
> > this on the debian-policy mailing list, but I guess I should just do
> > it (perhaps all the currently accepted syntax) because if someone wants
> > to code an alternative implementation, they will have to replicate the
> > logic, or it will be unable to parse existing changelogs.
> >
> > Also because dpkg can always be more lax than policy, and this is the
> > case right here.
>
> Yes, that's precisely what I'm shooting for.
>
> I urge you to go ahead and do it; it's obviously not a breaking change.
Ok, what about the attached patch, which I've queued for 1.19.x? I'm
not documenting the ancient formats, because I feel that might induce
people to use them, while this should be IMO pretty much just an
implementation detail.

Thanks,
Guillem

0001-man-Document-currently-accepted-syntax-for-changelog.patch (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Bug#858579: /usr/share/man/man5/deb-changelog.5.gz: please support a comment syntax for Debian changelog files

G. Branden Robinson
At 2017-04-09T03:57:01+0200, Guillem Jover wrote:

> Hi!
>
> On Sat, 2017-03-25 at 19:27:55 -0400, G. Branden Robinson wrote:
> > On Sat, Mar 25, 2017 at 03:07:32PM +0100, Guillem Jover wrote:
> > > The implementation in dpkg-dev already supports all of this
> > > (see man Dpkg::Changelog::Debian), including:
> >
> > Section 3 manpages for Perl modules?  Will wonders never cease?  ;-)
>
> I'm not sure if the wonder is becuse there's documentation at all for
> those, or because secion is 3 instead of say 3perl. In any case, this
> prompted me to check and fix the latter, so I've queued a patch for
> 1.19.x. :)
The former.  You'll never see a C library interface manpage with
double-colons in the name, and C++ programmers never write manpages
because their programming language is completely intuitive. >cough<

> Ok, what about the attached patch, which I've queued for 1.19.x? I'm
> not documenting the ancient formats, because I feel that might induce
> people to use them, while this should be IMO pretty much just an
> implementation detail.

It looks good to me.  I see no actual problems; I will make a few
observations that boil down to style, preference, and/or judgement.

1.  The abbreviation "i.e." should always be followed by a comma.  See,
    e.g., man-pages(7).
2.  I prefer to use "an" (man) macros for font changes, as they
    integrate better with lexical highlighters and spell checkers, and
    hide some grotty[1] syntax from those reading or writing the manpage
    source.  Most such people do not bother to learn what *roff syntax
    really is, and I can't blame them.  This does mean adding linebreaks
    in the manpage sources, but filled paragraphs in *roff sources are
    usually a bug, not a feature.[2] *roff is not Markdown, and
    definitely not plaintext.  There's only one place that you can't
    escape using font escapes, and that's if you need three different
    fonts in the tag of a tagged paragraph (.TP)[3].

So instead of \fB#\fP, you can have
.B #
and similarly
.B /* */

3.  Vim and Emacs should be capitalized when referred to in prose as
    editing systems, rather than by their command-line invocation names.
4.  "CVS keywords" are more properly referred to as "RCS keywords", or
    maybe even "ident(1) strings".  RCS is the system that introduced
    them[4].  CVS and Subversion followed the syntax.  ident(1) is also
    somewhat likely to be installed on the user's system, so a broader
    audience will have ready access to the manpage to learn more about
    what they are.  See the rcs package description (last paragraph).

I know that's a lot of nitpicking. :-O

Regards,
Branden

[1] pun intended
[2] See man-pages(7), "Conventions for source file layout" and groff(7),
    "Control Characters", ".".
[3] This annoys me so much that I'm trying to learn enough *roff to
    write a fix or a replacement macro that people can use instead, that
    we may banish the use of font escapes in manpages forever. :-|
[4] SCCS had keywords, but they were more primitive than RCS's and
    infeasible to pattern-match once expanded; see <
    https://docs.oracle.com/cd/E19504-01/802-5880/6i9k05dht/index.html#sccs-15316
    >.

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Bug#858579: /usr/share/man/man5/deb-changelog.5.gz: please support a comment syntax for Debian changelog files

Guillem Jover
On Wed, 2017-04-12 at 11:00:20 -0400, G. Branden Robinson wrote:

> At 2017-04-09T03:57:01+0200, Guillem Jover wrote:
> > On Sat, 2017-03-25 at 19:27:55 -0400, G. Branden Robinson wrote:
> > > Section 3 manpages for Perl modules?  Will wonders never cease?  ;-)
> >
> > I'm not sure if the wonder is becuse there's documentation at all for
> > those, or because secion is 3 instead of say 3perl. In any case, this
> > prompted me to check and fix the latter, so I've queued a patch for
> > 1.19.x. :)
>
> The former.  You'll never see a C library interface manpage with
> double-colons in the name, and C++ programmers never write manpages
> because their programming language is completely intuitive. >cough<
Well, within the perl world, I'd go as far as considering missing
documentation as malpractice. :)

> > Ok, what about the attached patch, which I've queued for 1.19.x? I'm
> > not documenting the ancient formats, because I feel that might induce
> > people to use them, while this should be IMO pretty much just an
> > implementation detail.
>
> It looks good to me.  I see no actual problems; I will make a few
> observations that boil down to style, preference, and/or judgement.
>
> 1.  The abbreviation "i.e." should always be followed by a comma.  See,
>     e.g., man-pages(7).
Indeed, missed that one.

> 2.  I prefer to use "an" (man) macros for font changes, as they
>     integrate better with lexical highlighters and spell checkers, and
>     hide some grotty[1] syntax from those reading or writing the manpage
>     source.  Most such people do not bother to learn what *roff syntax
>     really is, and I can't blame them.  This does mean adding linebreaks
>     in the manpage sources, but filled paragraphs in *roff sources are
>     usually a bug, not a feature.[2] *roff is not Markdown, and
>     definitely not plaintext.  There's only one place that you can't
>     escape using font escapes, and that's if you need three different
>     fonts in the tag of a tagged paragraph (.TP)[3].
>
> So instead of \fB#\fP, you can have
> .B #
> and similarly
> .B /* */
Right, although given that the current markup is already mixed, and
that I'm planning anyway to switch all man pages to use POD as source,
because the unreadability of troff also affects translators, among
other issues, this does not matter much, and in fact makes the
conversion easier, so I've left it as is. :)

  <https://lists.debian.org/debian-dpkg/2016/09/msg00008.html>

> 3.  Vim and Emacs should be capitalized when referred to in prose as
>     editing systems, rather than by their command-line invocation names.

Fixed, thanks.

> 4.  "CVS keywords" are more properly referred to as "RCS keywords", or
>     maybe even "ident(1) strings".  RCS is the system that introduced
>     them[4].  CVS and Subversion followed the syntax.  ident(1) is also
>     somewhat likely to be installed on the user's system, so a broader
>     audience will have ready access to the manpage to learn more about
>     what they are.  See the rcs package description (last paragraph).

Right, I tend to use «RCS keyword», but I guess the «CVS comment» thing
messed my brain too much. :)

> I know that's a lot of nitpicking. :-O

Nah, adequate; IMO, there's never enough nitpicking! ;)

Attached a revised patch.

Thanks,
Guillem

0001-man-Document-currently-accepted-syntax-for-changelog.patch (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Bug#858579: /usr/share/man/man5/deb-changelog.5.gz: please support a comment syntax for Debian changelog files

G. Branden Robinson
At 2017-04-20T09:39:42+0200, Guillem Jover wrote:
> On Wed, 2017-04-12 at 11:00:20 -0400, G. Branden Robinson wrote:
> > The former.  You'll never see a C library interface manpage with
> > double-colons in the name, and C++ programmers never write manpages
> > because their programming language is completely intuitive. >cough<
>
> Well, within the perl world, I'd go as far as considering missing
> documentation as malpractice. :)

Yes.  Unfortunately, POD is too, at least the last time I looked at it.

> Right, although given that the current markup is already mixed, and
> that I'm planning anyway to switch all man pages to use POD as source,

D'oh!

> because the unreadability of troff also affects translators, among
> other issues, this does not matter much, and in fact makes the
> conversion easier, so I've left it as is. :)

There is a subset of troff with the an macros that should be as easy for
translators as POD is.

>   <https://lists.debian.org/debian-dpkg/2016/09/msg00008.html>

The list of reservations you have with pod2man here seems pretty
serious.

> Nah, adequate; IMO, there's never enough nitpicking! ;)

:-D

> Attached a revised patch.

Thanks!

> +Any line that consists entirely (i.e., no leading whitespace) of \fB#\fP
> +or \fB/* */\fP style comments, RCS keywords, Vim modelines or Emacs local
> +variables should be ignored.

I'll reiterate that that the an macro B would be better here, if I
persuade you to block out the siren song of POD. :P

One felicity that I just learned about today is that the only
actively-maintained alternative troff implementation, "Heirloom Troff",
has been extended to support a lot of groff's own extensions.  Of
particular interest:

    Most groff extensions, like long names for requests, strings, and
    number registers, are supported. A special groff compatibility mode
    is also provided.[1]

An essential part of that long-name support is the vastly superior
syntax for character escapes, even for traditional short escape names.

So if you need "shaped" quotation marks, you can say:

 \[oq], \[cq], \[lq], \[rq]

instead of

 \(oq, \(cq, \(lq, \(rq.

This is far easier on the eye--especially so with lexical highlighting
that puts a nice bright color on closing brackets, and perhaps more
importantly, it makes the words immediately abutting these symbols
recognizable by spell checkers.  Vim's spell checker, for instance,
flags "lqprotected" in "\(lqprotected\(rq" as an unrecognized word.
(The spell checker still griefs you on the names of the escapes
themselves, of course, but there are relatively few of those that one
would want to use in a man page, and they can be disregarded, or put
onto an internal or external word list much more easily.)

What sort of help do you need to lower the *roff manpage burden enough
that you'll keep it?  I'm here for you. :)

Regards,
Branden

[1] http://heirloom.sourceforge.net/doctools.html

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Processed: Bug#858579 in package dpkg marked as pending

Debian Bug Tracking System
In reply to this post by G. Branden Robinson
Processing control commands:

> tag 858579 pending
Bug #858579 [dpkg-dev] /usr/share/man/man5/deb-changelog.5.gz: please support a comment syntax for Debian changelog files
Added tag(s) pending.

--
858579: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=858579
Debian Bug Tracking System
Contact [hidden email] with problems

Reply | Threaded
Open this post in threaded view
|

Bug#858579: marked as done (/usr/share/man/man5/deb-changelog.5.gz: please support a comment syntax for Debian changelog files)

Debian Bug Tracking System
In reply to this post by G. Branden Robinson
Your message dated Tue, 17 Oct 2017 01:33:48 +0000
with message-id <[hidden email]>
and subject line Bug#858579: fixed in dpkg 1.19.0
has caused the Debian Bug report #858579,
regarding /usr/share/man/man5/deb-changelog.5.gz: please support a comment syntax for Debian changelog files
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [hidden email]
immediately.)


--
858579: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=858579
Debian Bug Tracking System
Contact [hidden email] with problems

Package: dpkg-dev
Version: 1.18.23
Severity: wishlist
File: /usr/share/man/man5/deb-changelog.5.gz

I believe that, as a general rule, all human-readable, human-editable,
machine-parseable file formats should support a comment syntax.

Debian changelogs meet these criteria.  My use case is simply this, at
the end of the file:

# vim:set ai et sw=2 ts=2 tw=78:

Fans of other editors can do similarly (and probably already do, outside
the spec just like me).

-- System Information:
Debian Release: 9.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 4.9.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages dpkg-dev depends on:
ii  binutils      2.27.90.20170124-2
ii  bzip2         1.0.6-8.1
ii  libdpkg-perl  1.18.23
ii  make          4.1-9.1
ii  patch         2.7.5-1+b2
pn  perl:any      <none>
ii  tar           1.29b-1.1
ii  xz-utils      5.2.2-1.2+b1

Versions of packages dpkg-dev recommends:
ii  build-essential          12.3
ii  fakeroot                 1.21-3.1
ii  gcc [c-compiler]         4:6.3.0-1
ii  gcc-6 [c-compiler]       6.3.0-6
ii  gnupg                    2.1.18-6
ii  gpgv                     2.1.18-6
ii  libalgorithm-merge-perl  0.08-3

Versions of packages dpkg-dev suggests:
ii  debian-keyring  2017.01.20

-- no debconf information

Source: dpkg
Source-Version: 1.19.0

We believe that the bug you reported is fixed in the latest version of
dpkg, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [hidden email],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Guillem Jover <[hidden email]> (supplier of updated dpkg package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [hidden email])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Tue, 17 Oct 2017 01:51:16 +0200
Source: dpkg
Binary: dpkg libdpkg-dev dpkg-dev libdpkg-perl dselect
Architecture: source
Version: 1.19.0
Distribution: unstable
Urgency: medium
Maintainer: Dpkg Developers <[hidden email]>
Changed-By: Guillem Jover <[hidden email]>
Description:
 dpkg       - Debian package management system
 dpkg-dev   - Debian package development tools
 dselect    - Debian package management front-end
 libdpkg-dev - Debian package management static library
 libdpkg-perl - Dpkg perl modules
Closes: 291320 555743 846405 856396 856547 857852 858579 862924 864509 864882 867133 867327 868356 868800 869236 870221 872309 873937 877521 877688 877929
Changes:
 dpkg (1.19.0) unstable; urgency=medium
 .
   [ Guillem Jover ]
   * Remove an unused variable in dpkg-shlibdeps.
     Thanks to Niels Thykier <[hidden email]>.
   * Parse start-stop-daemon usernames and groupnames starting with digits in
     -u and -c correctly. Reported by Bodo Eggert <[hidden email]>.
   * Cache the result of «dpkg-query --control-path» calls in dpkg-shlibdeps.
     Based on a patch by Niels Thykier <[hidden email]>. Closes: #846405
   * Always use the binary version for the .buildinfo filename in
     dpkg-genbuildinfo. Reported by Raphaël Hertzog <[hidden email]>.
     Closes: #869236
   * Fix integer overflow in deb(5) format version parser.
     Closes: #868356
   * Re-enable upstream tar signatures when building source format 1.0.
   * Make dpkg-deb --build sanity check the config maintainer script file type
     and permissions.
   * Add support to dpkg-deb for rootless builds, by setting the owner and
     group for the control.tar entries to root:root, and making it possible to
     do the same for the data.tar entries via the new --root-owner-group option.
     Based on a patch by Niels Thykier <[hidden email]>. Closes: #291320
   * Make dpkg-buildpackage error out if --as-root is passed without
     --rules-target.
   * Add support for rootless builds in dpkg-buildpackage by honoring the
     Rules-Requires-Root (R³) field.
   * Add new dpkg-buildflags --query command, which is like --status but in
     deb822 format.
   * Remove long obsolete dselect floppy method.
   * Remove traces of non-US support from dselect methods.
   * Add support for a new Build-Kernel-Version field in .buildinfo files,
     that can be emitted with a new dpkg-genbuildinfo --always-include-kernel
     option. Closes: #873937
   * Make dpkg-genchanges honor substvars in .changes Description field.
     Closes: #856547
   * Add support for source package Description and substvars. This new
     field in the debian/control source stanza will be copied into the .dsc
     file, and will also be used to initialize the new source:Synopsis and
     source:Extended-Description substvars that will be available when
     generating the DEBIAN/control and .changes files. Closes: #555743
   * Add new “future” feature area in dpkg-buildflags:
     - Add new «lfs» feature, to be used instead of the getconf(1) interface
       which cannot support cross-building.
   * Add new buildtools.mk make fragment to support build tools variable
     setup, for both TOOL and TOOL_FOR_BUILD variables. Not included by
     default from default.mk.
   * Make --uniform-compression the new default dpkg-deb behavior. Add support
     for negating the option via --no-uniform-compression.
   * Clarify subprocess error message by shuffling words around.
   * Print the package name on maintainter script errors. Closes: #877521
   * Fix capitalization of Debian in dpkg-deb output messages.
   * Add a policikit file for running update-alternatives via pkexec.
     Propose by Boyuan Yang <[hidden email]>.
   * Perl modules:
     - Switch from Dpkg::Util to List::Util, now that the module in the
       new required Perl contains the needed functions.
     - Add a new "unique_tuple_key" option to Dpkg::Index set_options() to
       set better default "get_key_func" options, which will become the default
       behavior in 1.20.x. Prompted by Johannes Schauer <[hidden email]>.
     - Mark ppc64 and powerpc as having gcc builtin PIE in Dpkg::Vendor::Debian.
     - Make the Dpkg::Substvars warnings output deterministic.
       Thanks to Chris Lamb <[hidden email]>. Closes: #870221
     - Remove unused POSIX module imports.
     - Use Errno module instead of the slow to import POSIX.
     - Remove unused Dpkg::Path from Dpkg::Vendor::Ubuntu.
     - Only load POSIX from Dpkg::Compression::FileHandle if we are going to
       use signal definitions, reducing the load time of many other modules.
     - Only load Dpkg::BuildOptions and Dpkg::Arch from Dpkg::Vendor-specific
       modules if we are going to use them, reducing the load time of many
       other modules.
     - Only load Term::ANSIColor from Dpkg::ErrorHandling if we are going to
       use colors, reducing the load time of many other modules.
     - Move color setup into report_pretty in Dpkg::ErrorHandling.
     - Move printforhelp initialization into usageerr() in Dpkg::ErrorHandling.
     - Avoid many function arguments in Dpkg::Shlibs::SymbolFile parse().
     - Avoid many function arguments in Dselect::Ftp do_connect().
     - Add new Dpkg::Interface::Storable option to disable compression support,
       so that we can load Dpkg::Compression::FileHandle only when enabled.
     - Disable decompression support for Dpkg::Vendor origin files.
     - Move file_lock() function into a new Dpkg::Lock module, to reduce the
       module load chain for several Dpkg modules.
     - Add support for new DPKG_NLS environment variable in Dpkg::Gettext,
       that when set to 0 will disable NLS (i18n) support in the Dpkg modules,
       and reduce the load chain.
     - Disable compression when using the default file in
       Dpkg::Changelog::Parse.
     - Mark all missing CTRL_INDEX_SRC and CTRL_INDEX_PKG fields as allowed
       in Dpkg::Control::FieldsCore.
     - Complete field order for CTRL_PKG_DEB and CTRL_FILE_STATUS types in
       Dpkg::Control::FieldsCore.
     - Switch to use lowercase field names for all internal field name
       handling in Dpkg::Control::FieldsCore, giving a significant speed up.
     - Remove dependency on Dpkg::Checksums from Dpkg::Control::FieldsCore.
     - Do not execute code when importing Dpkg::Control::FieldsCore.
     - Use substr instead of a regex to match the first line characters in
       when parsing control files in Dpkg::Control::HashCore.
     - Merge build flag methods into a single _add_build_flags private method
       in Dpkg::Vendor::Debian.
     - Do not use an intermediate variable in Dpkg::Control::HashCore::Tie
       STORE method.
     - Expect deb822 stanza delimiters more often than OpenPGP Armor Headers
       in Dpkg::Control::HashCore parse method.
     - Optimize trailing space matching on Dpkg::Control::HashCore parse
       method, by trimming it just once at the beginning of the iteration.
     - Optimize trailing space trimming on Dpkg::Control::HashCore parse
       method, by requiring that at least one whitespace is present.
     - Optimize first character matching in Dpkg::Control::HashCore parse
       method, by storing the first character in a variable.
     - Optimize field/value parsing in Dpkg::Control::HashCore parse method,
       by switching from a capturing regex to split() plus a checking regex.
     - Auto-convert binary signatures to OpenPGP ASCII Armor in
       Dpkg::Source::Package when building source packages.
     - Switch Dpkg::Source::Package::V3 modules to use find_command() instead
       of ad-hoc code.
     - Call source format prerequisites Dpkg::Source::Package method if
       present. Addresses: #877688
     - Unify Dpkg::ErrorHandling subprocess errors with the ones from libdpkg.
     - Do not emit a perl warning if gcc or dpkg is not found from Dpkg::Arch,
       the code already handles the commands not being present.
     - Do not unnecessarily require setting the host_arch in Dpkg::Deps.
       Closes: #856396
     - Do not normalize args past a passthrough stop word in Dpkg::Getopt.
       Some commands pass some arguments through to another command, and
       those must not be normalized as that might break their invocation.
       Reported by Helmut Grohne <[hidden email]>.
   * Documentation:
     - Document currently accepted syntax for changelogs in deb-changelog(5).
       Closes: #858579
     - Mark source:Version substvar in bold in deb-substvars(5).
     - Clarify behavior for dpkg-maintscript-helper. Closes: #857852
     - Use <command-string> instead of <command> for -c argument value in
       dpkg-architecture(1). Reported by Johannes Schauer <[hidden email]>.
     - Itemize the CTRL_* constants in the Dpkg::Index POD.
     - Update buildinfo information in dpkg-buildpackage man page to match
       the current implementation.
     - Add all source files to POTFILES.in files.
     - Move deb-version man page to section 7.
     - Remove reference to obsolete dpkg-cross(1).
     - Sort control field export markers by tool order in deb-src-control(5).
     - Document Package-Type and Enhances fields in deb-control(5).
     - Write the actual glyphs used to delimit dependency restrictions in
       deb-src-control(5).
     - Move Package-Type description just after the Package field in
       deb-src-control(5).
     - Move udeb-specific fields to the end of the list of fields in
       deb-src-control(5), and mention these are really udeb-specific.
     - Document that dependency fields in binary stanza can have restrictions
       in deb-src-control(5).
     - Clarify that the Testsuite field is comma-separarted.
     - Fix update-alternatives man page section in alternatives/README file
       reference. Closes: #872309
     - Use correct name for archname validator value in dpkg(1) man page.
       Reported by Niels Thykier <[hidden email].
     - Add new deb-src-rules(5) man page.
     - Document that trailing commas are valid in debian/control dependency
       fields, which get stripped when generating output files.
       Prompted by Mattia Rizzolo <[hidden email]>.
     - Clarify that sanitize options should not be used for production builds.
     - Remove recommendation to use Pre-Depends for trigger directives from
       deb-triggers(5). Closes: #864882
     - Add new rootless build experimental draft specification.
       Initial proposal by Niels Thykier <[hidden email]>, wording fixes
       and spec clarifications by Guillem Jover <[hidden email]>.
     - Fix several function signature documentation.
   * Code internals:
     - Switch perl code to use -> operator for function variables.
     - Switch perl code from split() with /\s+/ to ' '.
   * Build system:
     - Require Perl 5.20.2, the version in Debian oldstable (jessie).
     - Use new gcc-7 -Wrestrict and -Wshift-negative-value warnings if
       available.
     - Do not override the default DEPENDENCIES for libdpkg, extend it instead.
     - Install perl man pages in section 3perl.
   * Packaging:
     - Remove preinst maintainer scripts for dselect and dpkg-dev, for an
       ancient /usr/share/doc symlink to directory switch. Closes: #867327
     - Remove now unused libio-string-perl Build-Depends, and versioned
       dpkg-dev as we do not use build profiles any more.
     - Set Rules-Requires-Root field to no.
     - Do not set redundant source compression to xz.
     - Bump Standards-Version to 4.1.0 (no changes needed).
     - Switch to debhelper compatibility level 10.
     - Split alternatives logrotate into its own configuration file to help
       downstreams and derivatives.
     - Remove ancient code recompressing the alternatives database backups
       from xz to gzip in the dpkg daily cron job.
     - Remove Replaces and Breaks for ancient transitions.
     - Remove workaround for ancient gcc lacking stackprotectorstrong support.
     - Remove maintainer script code to handle downgrades to pre-triggers and
       pre-multiarch dpkg versions.
     - Remove alternative logs when purging dpkg (!?).
     - Add support for DPKG_ROOT in dpkg maintainer scripts.
     - Add git and bzr to libdpkg-perl Suggests. Closes: #877688
   * Test suite:
     - Enable perlcritic Documentation::RequirePodSections and
       Miscellanea::ProhibitTies.
     - Disable perlcritic ValuesAndExpressions::ProhibitEscapedCharacter.
     - Add a new all_perl_modules function to Test::Dpkg.
     - Add a new module-version unit test to check that module $VERSION
       matches the newest entry in the CHANGES section.
     - Use Module::Metadata instead of grepping for $VERSION in pod-coverage.
     - Avoid many function arguments in Dpkg_Changelog.t check_options().
     - Add a new unit test for Dpkg::Control::FieldsCore.
     - Switch from IO::String to native open() scalar support.
     - Use UTC0 when setting TZ.
 .
   [ Updated programs translations ]
   * German (Sven Joachim).
   * Italian (Pietro Battiston). Closes: #864509
   * Portuguese (Miguel Figueiredo). Closes: #868800
   * Simplified Chinese (Zhou Mo, Boyuan Yang). Closes: #867133, #877929
 .
   [ Updated scripts translations ]
   * German (Helge Kreutzmann).
 .
   [ Updated man pages translations ]
   * Dutch (Frans Spiesschaert). Closes: #862924
   * German (Helge Kreutzmann).
Checksums-Sha1:
 d1062ea0f1e559037f4f83d73a73256bdc790e51 1969 dpkg_1.19.0.dsc
 b48c64c1203dd2f8582c3ceaedd1be2ff26f03ac 4557880 dpkg_1.19.0.tar.xz
 295163cf4170d72c6a3c1106e71648e134720d16 7210 dpkg_1.19.0_amd64.buildinfo
Checksums-Sha256:
 e4d98966ea4d38ef5e1f84a2ffda0e49391fc6a34d4def22c249a726ab6ec662 1969 dpkg_1.19.0.dsc
 3e08b8b7889fdaf7c9ee4e794950a07e1734a3b460694ca9e2aed1ff3653df44 4557880 dpkg_1.19.0.tar.xz
 2232ae18fddd526844b46316311d9ca76104639282d5cb06f912c2a784e82aeb 7210 dpkg_1.19.0_amd64.buildinfo
Files:
 3703cfde8fae1a3788371b35d7c61593 1969 admin required dpkg_1.19.0.dsc
 5ba6ed74d3554605910df8e60ab36e1a 4557880 admin required dpkg_1.19.0.tar.xz
 bf3802b85045097e3fe25ee9fe922d09 7210 admin required dpkg_1.19.0_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEETz509DYFDBD1aWV0uXK/PqSuV6MFAlnlVO0ACgkQuXK/PqSu
V6MLSQ/9Efd8U2nJLsU+OmSQNhban8lm7MyO4Bty9a+PEvbfMiN/lNOb3LY09Pvg
9wjpgueQWFS3V7QDEtMM1SaHPqC4W/ImJ93uLLck9L+o0Gq+ix2LP+tm2GW96wO3
O9rwMyP1WkoWGoLlb6CGO8VkiQyf8FBCoi4fqEJ7FVvKo2l4gmfVm5NWzbO2fd9A
AAugAdV1XAOVIBJy6c3N/IFf8mlZpB/s0+Vyb6KGuRVGPXTSqVS7ME7bK5C6VaDH
U7L7Yb8h8d21xapZO0Xwv9Yc4Wa/hSXTwFIpFoAdrDy3rB1nx6WLzUQp1dQ28KCg
3jp2J59FO3bFWhsaEasdFNvcDXrTOqs8GmwZQyf1PsKTWZE9Hg6EjnRCXHMlkjMp
czoeLts5KNKhjon678tiZQ8RpLpMmHTq8t0tQBf0eYphVpV5Km2Ky+Ki2o2CgnU6
lBBQZfxvEQLO9L/tkq22noR5d4llySqApo2SFEsnuXn92Cbb78PEz5V2vnfth1rY
ft0al8IJWQqwohJmYsmMxEJ9tl33WURJOaC8WaD80XsG8XpI/mAiUuMrehdrp23u
r4Rp+lkvOccYLw1PrEpbhS9NRfBAssYWYH4SQmcilQUk3p3xEnYARYT+6yawWVR9
WFghmOwqnMFW16JszAvjOTuXpvqYeW11cP9KkAq5tSC7CeZo8cw=
=XynH
-----END PGP SIGNATURE-----