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:
How to request a sync (this article)
- 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 intesting
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:
Checks the versions of the source package in Debian and Ubuntu.
Prompts for an explanation of why the Ubuntu changes (if any) should be dropped.
Downloads the new Debian changelog entries
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 theubuntu1
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:
Simple sync:
sass-spec
bug for 25.04: LP: #2098389.Complex sync:
freeipmi
MP for 21.10: MP: #407014.