= Updating packages from 1.6.x to 1.8.x = <> == Status == An overview on the status of MATE in Debian is given [[http://wiki.mate-desktop.org/status:debian|here]] == Basic changes == 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: 1. [[http://anonscm.debian.org/gitweb/?p=pkg-mate/mate-desktop.git;a=commitdiff;h=a887b9cd36b8d9ab5f855600cae31fbfe2d2b03e|Add new upstream changelog entry]] 1. Update debian/watch: The tarball source we use has changed for MATE 1.8. Check this [[http://anonscm.debian.org/gitweb/?p=pkg-mate/mate-desktop.git;a=blob;f=debian/watch;h=c7764450ced33ab1ff4f4559b478a69ab46f18a0;hb=b8b8587a4805f4a2fd9d9027b46592899c49c5ae|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. 1. Drop dh-autoreconf build mechanism. [[http://anonscm.debian.org/gitweb/?p=pkg-mate/mate-desktop.git;a=commitdiff;h=265349abb534bd68a116328dca1a519868dc4955|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 DFSG 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. 1. 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 [[onlyjob/get-orig-source|get-orig-source wiki page on this site]]. == Update copyright file == 1. Adapt debian/copyright to new MATE upstream component version. See this [[http://anonscm.debian.org/gitweb/?p=pkg-mate/mate-desktop.git;a=commitdiff;h=c2b8f665ef1f5e2bf9b0a524d0e274af31f0e49b|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/.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 [[http://anonscm.debian.org/gitweb/?p=pkg-mate/mate-desktop.git;a=commitdiff;h=4772eeb02ddd4c80134f90df319fe0bf6d5d9ab3|URL]] for an example. == Lintian == After test builds 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 _.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. 1. 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 -dbg package into several -dbg packages (one per bin:package)