Browse Source

Introduce the libdpkg-perl package

Clarify the status of the API in README.api.
Raphaël Hertzog 14 years ago
parent
commit
7fd5e980f7

+ 1 - 0
debian/.gitignore

@@ -1,4 +1,5 @@
 libdpkg-dev
+libdpkg-perl
 dpkg
 dpkg-dev
 dselect

+ 1 - 0
debian/changelog

@@ -59,6 +59,7 @@ dpkg (1.15.6) UNRELEASED; urgency=low
     -i and -I. A new option --extend-diff-ignore is introduced. Those options
     can thus now be used in debian/source/options.
   * Generate manual pages for perl modules.
+  * Introduce the libdpkg-perl package and clarify its status in README.api.
 
   [ Guillem Jover ]
   * Handle argument parsing in dpkg-checkbuilddeps and dpkg-scanpackages

+ 36 - 3
debian/control

@@ -52,9 +52,8 @@ Package: dpkg-dev
 Section: utils
 Priority: optional
 Architecture: all
-Depends: dpkg (>= 1.15.4), perl, bzip2, xz-utils,
- patch (>= 2.2-1), make, binutils, libtimedate-perl,
- base-files (>= 5.0.0), ${misc:Depends}
+Depends: libdpkg-perl (= ${source:Version}), bzip2, xz-utils,
+ patch, make, binutils, base-files (>= 5.0.0), ${misc:Depends}
 Recommends: gcc | c-compiler, build-essential, fakeroot, gnupg, gpgv
 Suggests: debian-keyring
 Conflicts: dpkg-cross (<< 2.0.0), devscripts (<< 2.10.26)
@@ -66,6 +65,40 @@ Description: Debian package development tools
  Most Debian source packages will require additional tools to build;
  for example, most packages need make and the C compiler gcc.
 
+Package: libdpkg-perl
+Section: perl
+Priority: optional
+Architecture: all
+Depends: dpkg (>= 1.15.4), perl, libtimedate-perl, ${misc:Depends}
+Recommends: bzip2, xz-utils
+Suggests: debian-keyring, gnupg, gpgv, binutils, patch
+Conflicts: dpkg-dev (<< 1.15.6)
+Replaces: dpkg-dev (<< 1.15.6)
+Description: Dpkg perl modules
+ This package provides the perl modules used by the scripts
+ in dpkg-dev. They cover a wide range of functionalities. Among them
+ there are the following modules:
+ .
+  - Dpkg::Arch: manipulate Debian architecture information
+  - Dpkg::BuildOptions: parse and manipulate DEB_BUILD_OPTIONS
+  - Dpkg::Changelog: parse Debian changelogs
+  - Dpkg::Checksums: generate and parse checksums
+  - Dpkg::Compression::Process: wrapper around compression tools
+  - Dpkg::Compression::FileHandle: transparently (de)compress files
+  - Dpkg::Control: parse and manipulate Debian control information
+    (.dsc, .changes, Packages/Sources entries, etc.)
+  - Dpkg::Deps: parse and manipulate dependencies
+  - Dpkg::ErrorHandling: common error functions
+  - Dpkg::Index: collections of Dpkg::Control (Packages/Sources files for
+    example)
+  - Dpkg::IPC: spawn sub-processes and feed/retrieve data
+  - Dpkg::Substvars: substitute variables in strings
+  - Dpkg::Vendor: identify current distribution vendor
+  - Dpkg::Version: parse and manipulate Debian package versions
+ .
+ All the packages listed in Suggests or Recommends are used by some of the
+ modules.
+
 Package: dselect
 Priority: optional
 Architecture: any

+ 0 - 4
debian/dpkg-dev.install

@@ -15,8 +15,6 @@ usr/bin/dpkg-scansources
 usr/bin/dpkg-shlibdeps
 usr/bin/dpkg-source
 usr/bin/dpkg-vendor
-usr/lib/dpkg/parsechangelog
-usr/share/locale/*/LC_MESSAGES/dpkg-dev.mo
 usr/share/man/{*/*,*}/deb-control.5
 usr/share/man/{*/*,*}/deb-version.5
 usr/share/man/{*/*,*}/deb-substvars.5
@@ -42,5 +40,3 @@ usr/share/man/{*/*,*}/dpkg-scansources.1
 usr/share/man/{*/*,*}/dpkg-shlibdeps.1
 usr/share/man/{*/*,*}/dpkg-source.1
 usr/share/man/{*/*,*}/dpkg-vendor.1
-usr/share/man/man3/Dpkg*.3
-usr/share/perl5/Dpkg

+ 4 - 0
debian/libdpkg-perl.docs

@@ -0,0 +1,4 @@
+AUTHORS
+THANKS
+doc/README.api
+doc/README.feature-removal-schedule

+ 4 - 0
debian/libdpkg-perl.install

@@ -0,0 +1,4 @@
+usr/lib/dpkg/parsechangelog
+usr/share/locale/*/LC_MESSAGES/dpkg-dev.mo
+usr/share/man/man3/Dpkg*.3
+usr/share/perl5/Dpkg

+ 2 - 0
debian/libdpkg-perl.lintian-overrides

@@ -0,0 +1,2 @@
+libdpkg-perl: redundant-origin-field
+libdpkg-perl: redundant-bugs-field

+ 13 - 5
doc/README.api

@@ -13,17 +13,25 @@ Description:
  then define the C preprocessor macro LIBDPKG_VOLATILE_API in your build
  to acknowledge that fact.
 
-What: Dpkg (perl modules)
-Status: testing
+What: libdpkg-perl (perl modules)
+Status: stable
 Description:
- The API provided by these modules is not yet stable, it's only supposed to
- be used internally by dpkg for now.
+ Among the perl modules provided by libdpkg-perl, you can safely rely on
+ those that have $VERSION set to 1.00 (or higher). Note however that the
+ API is defined by what's documented in the corresponding manual pages and
+ nothing more. You can't assume anything else based on what you read in
+ the source code. If you feel the need for further refinements in the
+ documented API, don't hesitate to file a wishlist bug against
+ libdpkg-perl.
+ .
+ In case of API-breaking changes, the major number in $VERSION will be
+ increased. For API extensions, the minor number will be increased.
 
 What: custom changelog parsers in /usr/lib/dpkg/parsechangelog
 Status: stable
 Version: 2.0
 Description:
- Since dpkg 1.14.16, the set of command-line options that custome
+ Since dpkg 1.14.16, the set of command-line options that custom
  changelog parsers must support has been expanded (see
  dpkg-parsechangelog(1)). For compatibility, changelog parsers supporting
  only the old options are supported in lenny. In lenny+1, that support