This is a list of features that are scheduled to be removed from dpkg.

What: fallback of dpkg-source to source format "1.0" without explicit debian/source/format
Status: deprecated
When: 1.17.x
Warning: program and lintian (missing-debian-source-format)
Why:
 With the support of multiple source formats, the user should be explicit
 about the desired source format. The fallback to "1.0" is there only for
 backwards compatibility but will be removed once all packages have the
 debian/source/format file. This is unlikely to happen before 1.17.x.

What --forget-old-unavail (dpkg option)
Status: obsolete
When: 1.16.x
Warning: program
Why:
 Purged packages are properly cleaned up now by dpkg, and old unavailable
 leftovers are automatically cleaned up on database parsing. So there's no
 need anymore for this manual action.

What: --control-path (dpkg-query option)
Status: deprecated
When: 1.18.x
Warning: man page
 This was a semi-public interface now superseded by --control-list and
 --control-show, which are a better interface as they do not rely on any
 specific database layout. Although there might still be cases where it's
 required to avoid hardcoding the database layout, and it will be kept as
 long as there's legitimate uses for it and no viable replacements.

What: -L (dpkg-parsechangelog option)
Status: obsolete
Since: 1.18.8
When: 1.19.x
Warning: program
Why:
 The custom parsers have been switched from programs to perl modules,
 and this option has no use any longer. The caller can set PERL5LIB or
 PERLLIB to specify the perl module search path now.

History of feature removals
~~~~~~~~~~~~~~~~~~~~~~~~~~~

What: cleanup-info (program)
Status: removed
Since: 1.15.0
Why:
 This program was needed long time ago to fixup broken info dir files
 generated by buggy install-info programs. Should not be needed anymore.

What: --largemem, --smallmem (dpkg option)
Status: removed
When: 1.15.1
Why:
 These options have been no-ops for a long time.

What: --force-auto-select (dpkg option)
Status: removed
When: 1.15.1
Why:
 This option has been a no-op for so long, that there's no traces on git
 history of its usage.

What: recommended, contrib, base (priority)
Status: removed
When: 1.15.1
Why:
 These priorities have been superseded by either other fields or values in
 other fields.

What: 822-date (program)
Status: removed
When: 1.15.1
Why:
 Should switch to use 'date -R'.

What: support of custom changelog parsers understanding only -v
Status: removed
Since: 1.15.5
Why:
 The debian changelog parser has been enhanced. It supports new options
 that enable more fine-grained retrieval of information. Those new options
 will be used by scripts (like dpkg-genchanges).
 .
 Custom changelog parsers must be updated to support the new API (see
 dpkg-parsechangelog(1) and README.api).

What: support for environment variable DPKG_NO_TSTP
Status: removed
Since: 1.15.6
Why:
 Having two ways to let the administrator get to a shell on conffile prompt
 is confusing, it also impedes setting up a consistent environment to be
 used by external programs.

What: support for PGP
Status: removed
When: 1.16.4
Warning: program
Why:
 PGP is not part of Debian and GnuPG has been the standard tool for digital
 signatures for several years already. Supporting only GnuPG enables us to
 rely on some of its features.

What: -u, --udeb (dpkg-scanpackages option)
Status: removed
When: 1.16.4
Warning: program
Why:
 This option has been superseded by -tudeb.

What: support for custom changelog parsers as programs
Status: removed
Since: 1.18.8
Why:
 Using programs to implement the custom changelog parsers was very inefficient
 as it required to parse the custom changelog, output deb822 formatted entries
 to then parse that and output again with the desired format.
 .
 These were implemented as programs because at the time the perl code in dpkg
 was not using perl modules, so it was not easy to extend. Using perl modules
 now is cleaner and allows for a faster implementation.
 .
 In addition there's no known users in Debian, so it was deemed safe to remove
 the support without a transition.

What: Source-Version (substvar)
Status: removed
When: 1.18.11
Warning: program, lintian (substvar-source-version-is-deprecated)
Why:
 The semantics of Source-Version were misleading when applied to binNMUs.
 Should switch to use binary:Version or source:Version substvars.
 .
 The code got changed to emit errors.

What: -Zlzma (dpkg-deb option value)
Status: removed
When: 1.18.11
Warning: program
Why:
 LZMA compression has some format deficiencies fixed by XZ, which is what
 upstream has replaced it with, as such there's no point in continuing to
 support compressing new .deb files with that format, although unpacking
 will be kept being supported to handle existing compressed files.

What: -Zbzip2 (dpkg-deb option value)
Status: removed
When: 1.18.11
Warning: program
Why:
 bzip2 compression has been superseded by xz when it comes to size, and
 gzip is still faster, in Debian there's really not many packages using
 that compression, as such there's no point in continuing to support
 compressing new .deb files with that format, although unpacking
 will be kept being supported to handle existing compressed files.

What: --new, --old (dpkg-deb options)
Status: removed
When: 1.18.11
Warning: program
Why:
 These options are not future-proof, and do not give the caller any
 guarantee of what exact format version will be used to produce the
 output file. They were replaced with a new --deb-format option.

What: --print-installation-architecture (dpkg option)
Status: removed
When: 1.18.11
Warning: program
Why:
 Obsoleted long time ago (2005-01-22). Remaining packages should switch to
 use 'dpkg --print-architecture'.

What: GCJ and GCJFLAGS support
Status: removed
When: 1.22.1
Why:
 GCJ has been dead upstream since 2018.
