How to Adopt a Debian Package via WNPP

Adopting a package in Debian through the Work-Needing and Prospective Packages (WNPP) system allows contributors to take over the maintenance of orphaned or unmaintained software. This guide outlines the essential procedural and technical steps involved in the adoption process, beginning with the initial claim of the package on Debian's bug tracking system and concluding with the upload of the updated package to the official archive.

1. Identify the Package and Bug Report

Unmaintained packages are tracked under Debian's pseudo-package wnpp. A package available for adoption is marked with one of two bug types:

  • O (Orphaned): The previous maintainer has abandoned the package, and it is temporarily maintained by the Debian QA team.
  • RFA (Request for Adoption): The current maintainer wishes to step down but continues to maintain the package until a successor steps forward.

2. Declare an Intent to Adopt (ITA)

To signal to the community that you are taking over maintenance and to avoid duplicate efforts, you must retitle the existing WNPP bug:

  • Send a control message to Debian's Bug Tracking System (BTS) at control@bugs.debian.org.
  • Retitle the bug from O: package-name -- short description or RFA: package-name -- short description to ITA: package-name -- short description.
  • Set yourself as the owner of the bug by issuing the owner <bug-number> ! command (or specifying your email address).

3. Retrieve and Inspect the Source Code

Obtain the latest packaging source code from the Debian archive or the team repository (such as Salsa, Debian's GitLab instance):

  • Check open bugs listed in the BTS against the package to understand existing issues.
  • Review the current packaging files in the debian/ directory to evaluate required modernizations, such as updating the debhelper-compat level or fixing lintian warnings.

4. Update the Packaging Files

Edit the necessary files in the debian/ directory to formally transfer maintenance:

  • debian/control: Replace the existing entry in the Maintainer: field with your full name and email address. If the package was orphaned, remove it from the QA team. Update the Vcs-* fields to point to your new packaging repository if applicable.
  • debian/changelog: Add a new changelog entry. The entry must explicitly mention the change of ownership and reference the WNPP bug number using the format * New maintainer (Closes: #<bug-number>).

5. Address Pending Issues and Test

Before preparing the package for release:

  • Fix any outstanding Release-Critical (RC) bugs or long-standing defects where feasible.
  • Update debian/control to reflect the latest Standards-Version after verifying compliance with the Debian Policy Manual.
  • Build the package cleanly in an isolated environment using tools like sbuild or pbuilder.
  • Run lintian on the generated .changes file to check for packaging errors or warnings.

6. Upload the Package

The final step depends on your status within the Debian project:

  • Debian Developers (DD) or Debian Maintainers (DM) with upload permissions: Upload the signed package directly to the Debian incoming queue using dput or dupload.
  • Non-DD/DM Contributors: Seek a sponsor by uploading the package to mentors.debian.net and filing a Request for Sponsorship (RFS) bug against the sponsorship-requests pseudo-package. Once a sponsor reviews and approves the changes, they will sign and upload the package to the archive on your behalf.

Once the package is processed into the Debian archive, the BTS automatically closes the ITA bug, completing the adoption process.