How to request a sync

When an Ubuntu package carries a delta, but it is no longer needed (because it has been merged in Debian or upstream), request a manual sync. This article describes how to request a sync.

Sponsorship series

The article series provides guidance on requesting sponsorship and sponsoring.

Overview:
For contributors:
For sponsors:

Before submitting a sync request, check the sponsorship queue (all review requests with the ubuntu-sponsors subscribed) that a similar request has not been filed already.

Important

A sync cannot be reversed. Check the package thoroughly before requesting a sync. If there are Ubuntu changes in the current package, ensure the Ubuntu changes have been merged or are no longer relevant. If the Ubuntu changes are still relevant, the package should be merged from Debian, not synced.

Special considerations

Freezes and exceptions

The automatic syncing of packages from Debian is only active for some of the Ubuntu release cycle - see Debian Import Freeze for more information. To request a sync after the freeze, you need a Freeze exceptions.

Before seeking an exception, review the Debian changes to make sure the fixes would improve Ubuntu; some changes (maintainer change, new uploader, NMU (Non-Maintainer Upload) acknowledgement with no additional fixes, etc.) are better left for the next cycle.

Fakesync

If the version in Ubuntu is a -0ubuntu* version, i.e. it introduces a new upstream that Debian doesn’t have, check that the md5sum of the .orig.tar.gz in the Ubuntu archive matches the md5sum of the tarball in the Debian archive (or wherever the sync is from).

If it does not match, there’s a possibility the source package cannot be unpacked, or it is not valid. If it does not match, request a “fakesync”.

Sync not necessary

An explicit sync is not necessary when all of the following is true:

  • It’s before Debian Import Freeze (check the Ubuntu release schedule).

  • The Ubuntu version of the package has no Ubuntu changes.

  • The Debian package is in Debian unstable (SID) (or in testing for LTS releases of Ubuntu).

Use the requestsync tool

requestsync is a tool (from the ubuntu-dev-tools package) that automates the bureaucratic part of the sync-request process.

requestsync performs the following actions:

  1. Checks the versions of the source package in Debian and Ubuntu.

  2. Prompts for an explanation of why the Ubuntu changes (if any) should be dropped.

  3. Downloads the new Debian changelog entries

  4. Files a request-sync bug in Launchpad.

For details on using the tool, see the requestsync(1) manual page.

Request a sync manually

When there’s only a single patch, open a bug with the required information. Cases like this include:

  • Debian adopts the same patch as Ubuntu, possibly with a different name.

  • Upstream has accepted the change, Debian includes upstream, and Ubuntu can drop its delta.

When multiple changes are adopted, and many patches can be dropped, submit a merge proposal, so the reviewers can understand the change. Ensure there is an accompanying bug (either change an automatic merge bug to a sync, or file a new sync bug).

Sync-request bug
  • Bug Summary must include:

  • Source package name.

  • Source package version number to sync.

  • Where to sync from (e.g. “Debian sid main”).

  • Bug Description must include:

  • If there are Ubuntu changes apart from debian/changelog, or if Feature Freeze is in effect:

    • A copy of the entries from debian/changelog corresponding to the changes relative to the current version in Ubuntu.

  • If there are Ubuntu changes:

    • A description of each of the Ubuntu changes (a bullet point list, not copies of debian/changelog).

    • A brief explanation of why each change can be dropped (e.g., it’s been merged into Debian, is no longer appropriate, etc.).

    • An explicit confirmation that the Ubuntu changes should be overridden.

  • Include the patch that has been adopted upstream.

  • Subscribe (not assign) the ubuntu-sponsors team.

  • Don’t change the status of the bug or put it back to New; package sponsors use this field.

Sync-request merge proposal
  • Specify that the MP is for a sync request.

  • Explain how you discovered it is a sync:

    • changelog entries

    • step in which the empty commit message appeared

    • point to upstream Git repository

    • etc.

  • Change the changelog using dch -i to get a new version with the ubuntu1 suffix and check the Ubuntu series for which the package is to be built. Include the following in the new changelog entry:

    Build Debian version to verify before a sync
    
  • Build the source package and upload to the PPA you’re using in this MP.

Useful examples:

Further reading