Dpkg Roadmap
The “merge back” development series 1.15.x
Multiarch support .
Optimization work .
- Faster and smaller!
Support xz compression .
- Transition the lzma read/write support to xz.
- Deprecate lzma write support.
Generate new source formats by default :
- Blocked on ftp-master accepting them.
Most of the reported bugs be fixed (Projects/DebSrc3.0).
- Package building infrastructure fixes:
- Find an acceptable way to provide default values to build flags (CFLAGS and al.), given the last discussion it's probably by implementing a new dpkg-buildflags tool.
Related to: 489771
Allow usage of build-arch/build-indep rules for the few packages that would really benefit from it. Tracked in: 229357
Updates for the format of .changes files. 138409 65699 The latter is less likely if we switch to rebuild on all architectures (and hence scratch the maintainer uploaded .deb).
- Find an acceptable way to provide default values to build flags (CFLAGS and al.), given the last discussion it's probably by implementing a new dpkg-buildflags tool.
- Make dpkg.deb contain only sh and C programs (to help embedded distros,
to make it possible to remove perl-base from essential) :
Move install-info to its own package built from src:info.
Rewrite mksplit in C (or merge it into dpkg-split). #refactor-deb
Rewrite dpkg-statoverride in C.
- Rewrite dpkg-divert in C.
- Rewrite u-a in C.
New dpkg shared library :
- Library API cleanup and general code refactoring.
- Try not to inflict setjmp on users by default (provide callbacks).
- Provide pluggable allocators to avoid leaking through nfmalloc.
- No printing from the library for non-fatal errors, will have to change to return error codes.
- Try to make as much as possible reentrant.
- Switch to link with shared libraries instead of statically.
- New libdpkg0, libdpkg0-dbg and libdpkg-dev packages.
New perl modules package :
- Move Dpkg.pm to libdpkg-perl (c-rewrite not a blocker, need to depend on dpkg anyway).
Review of all APIs, cleanup, etc (?Teams/Dpkg/PerlAPICleanup).
- Document perl modules.
- New libdpkg-perl package.
- Merge back apt's apt-deb/deb/ and apt-inst/deb/:
Refactor .deb generation. .
Provide a public interface to access .deb files. #libdpkg.
- Switch apt to use libdpkg.
- Merge back debconf support:
- Merge back apt-exttracttemplates.
Finish to draft the spec for the debconf integration (?DpkgDebconfIntegration):
- Implement invoke hooks.
- Implement db control-path printing.
- Implement --reconfigure??
- Extend conffile support, merge back ucf:
Store conffiles at install time (?Teams/Dpkg/Proposals/ConffileDatabase).
- Support registering configuration files.
- Add a new dpkg-conffile to handle conffiles (view, diff, rm, restore, etc).
- Merge back debsums:
- Generate checksums at build and install time.
- Store metadata from .deb at install time.
- Add a new dpkg-foo to verify, restore, etc metadata.
- Merge back localepurge:
Mostly finishing and merging the filters branch .
- After that localepurge can be considered obsolete or just a way to provide config files.
- Merge back dlocate:
Speed up file searches «dpkg-query -S» #optimize.
- Merge back functionality from dpkg-sig, debsigs-verify, etc:
Refactor .deb generation. .
- Draft a new spec for the signature support inside .deb.
- Write a dpkg-sig (or similarly named program) in C.
Merge back dpkg-cross #mulitarch:
- Need a spec for cross multiarch support.
- Implement cross multiarch support (if needed).
Translation deb support :
Clarify the draft (had some discussions about that with the i18n team at DebConf).
Depending on the discussions might need either #refactor-deb or #filters, or other stuff.
- Clean up dpkg namespace:
Rename dpkg-ftp as dselect-ftp.
Rename dpkg-multicd as dselect-multicd.
Consider changes to local dpkg-scanpackages in dpkg-multicd.
- Eventual move of the method directories to /usr/lib/dselect/.
- Better integration with front-ends:
- Discuss and decide about dpkg knowledge of repository information.
- Either push out the available file handling to the front-ends, or take full responsibility of repository package availability.
- A way for front-ends to store additional information for each package.
- Other stuff, would need to ask front-end developers.
- Discuss and decide about dpkg knowledge of repository information.
- Move back relevant documentation from policy into dpkg.
- Russ has mentioned this at some points, should discuss with the policy team.