Updating packages from 1.6.x to 1.8.x

The update of packages from the 1.6.x series to the 1.8.x is shown here at the example of the mate-desktop package:

Basic changes

  1. Add new upstream changelog entry

  2. Update debian/watch: The tarball source we use has changed for MATE 1.8. Check this example for a MATE component that contains non-DFSG files. For packages that do not require repacking of the upstream tarball, simply omit the opts= line.

  3. Drop dh-autoreconf build mechanism. Switch to using autogen.sh

Now try to build the package in a clean chroot (with pbuilder, sbuild). The next step is: Get the package to build again.

Check DSFSG compliance

  1. If your package's upstream version contains "+dfsg", please check if repacking is still necessary. Check debian/rules's get-orig-source. What files/folders get removed to make the tarball DFSG-clean. Do these rules still apply to the latest upstream release.
  2. If your package's upstream version does not contain "+dfsg", please check if the new upstream release has added files, that are not appropriate for being shipped in Debian main. (e.g. GFDL licensed files, as found in mate-desktop/user-guide.

A good resource about repacking techniques is Dmitry Smirnov's get-orig-source wiki page on this site.

  1. Adapt debian/copyright to new MATE upstream component version. See this example.

The work on debian/copyright is normally quite an effort. And a well written debian/copyrights file is often the crucial point when uploading NEW packages to Debian. Most REJECTs by the ftpmaster team are related to wrong/incomplete/bad copyright files. Thus, it is good to take writing copyright files as a serious business.

Update symbols files for library packages

If new symbols have been added to a shared library, these new symbols should go into the libraries debian/<sharedlib>.symbols file.

During a package build, the tool dpkg-genchanges is run. It generates a patch for all not-up-to-date symbols files in a src:package.

Apply this match and remove Debian revisions from the version string of those new symbols manually after applying the patch.

See this URL for an example.

Lintian

After test buids of a package, you can use the lintian tool to test the src:package's and bin:packages' integrity:

$ lintian -iIE --pedantic --show-overrides --color auto <package>_<architecture>.changes

The basic rule is, get the build result of the package as lintian-clean as possible.

Lintian overrides

Ask yourself the following:

  1. Do I have lintian overrides that are not used any more? If so, drop them.
  2. Is there a lintian issue that is intentionally there? If so, add a new override.

Debug packages

Some MATE packages still bundle all debugging information in one separate package.

  1. Split up the single <package>-dbg package into several -dbg packages (one per bin:package)