Before requesting a sync
Syncs (like uploads) cannot be reversed or undone. ALWAYS thoroughly check a package before asking for a sync. In particular, if there are Ubuntu changes in the current package, you must ensure the Ubuntu changes have been merged or are no longer relevant.
Sometimes the sponsor requires a build log of the Debian package compiled in the Ubuntu release as proof that the new Debian version still compiles in Ubuntu. The build log has to be attached to the sync request.
You should always sync a package rather than upload the unmodified source by hand, as it is safer and more accurate. If you know you will upload modified source immediately, modify the package and make an -<n>ubuntu<n> upload rather than requesting a sync. However, be sure to always use the exact same .orig.tar.gz as Debian (or whomever).
After DebianImportFreeze, it's a good idea to review the Debian changes to make sure that the fixes will improve Ubuntu: some changes (maintainer change, new uploader, NMU acknowledgement with no additional fixes, etc.) may be better left for the next cycle.
Packages can be synced from any Debian-format package archive, i.e. something with a Sources file.
If the version in Ubuntu is a -0ubuntu* version, i.e. it introduces a new upstream that Debian doesn't have it is important to 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 then you risk problems where the source package cannot be unpacked, or where it is not even valid in the first place. If it does not match then you will have to do a "manual sync."
An explicit sync is not necessary, when
- our version of the package has no Ubuntu changes
- and the Debian package is in sid
Content of a sync request
When requesting a 'sync', please include the following information:
- Source package name
- Source package version number to sync
- Where to sync from (e.g. 'Debian sid main', 'Debian experimental non-free')
If there are Ubuntu changes apart from debian/changelog or if FeatureFreeze 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 is fine, but copies of debian/changelog aren't)
- a brief explanation of why each one may 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
Submitting your request
To request a sync, file a bug in Launchpad with the above information. Once the bug is complete and correct, if you are not an Ubuntu developer, subscribe (NOT assign) ubuntu-main-sponsors for packages in Main/Restricted and ubuntu-universe-sponsors for packages in Universe/Multiverse. They will review the request and subscribe ubuntu-archive. Ubuntu developers should subscribe (NOT assign) the ubuntu-archive team to the bug directly. This team will process the request and close the bug when it is complete. Please only subscribe ubuntu-archive to a bug once you have a clear action for the archive team to perform. Do not ask ubuntu-archive to help you decide what to do.
Do not change the Status of the bug or put i back to New as package sponsors and the archive administrators use this field. Do track the status of the sync. You will be notified via bug mail when the package has been published. Once you see (in Launchpad) that the updated packaged has been successfully built, if the archive admin has not, then you may mark the bug Status as 'Fix Released' (primarily for Universe/Multiverse).
Martin Pitt and Steve Kowalik have written requestsync, a script to file sync requests which is available in the ubuntu-dev-tools package.
requestsync looks at the versions of the source package in Debian and Ubuntu, prompts for an explanation of why the Ubuntu changes (if there are any) should be dropped, downloads the changelog entry from packages.debian.org, and then prompts for your GPG passphrase so it can sign the mail and send it off, which files a sync request in the form of a bug report in Launchpad.
Before the first use of requestsync you have to create credentials which are used to access launchpad via the API. This is done by running the following command:
manage-credentials create -c ubuntu-dev-tools -l 2
You have to grant permissions to Change non-private data.
The syntax to call requestsync is:
requestsync [-d distro|-h|-n|-k <keyid>|--lp] <source package> <target release> [base version]
Override the Debian distribution (by default, unstable)
Print the help
Specifies that the package is a new package, and requestsync should not attempt to look it up in Ubuntu since it will not exist.
Override the keyid used to sign the email (only used when submitting the bug by mail)
Use python-launchpad-bugs instead of email to submit the sync request.
This is the source package that you would like to be synced from Debian.
This is the release that you would like the source package to be synced into. This should always be the latest development release of Ubuntu.
In some cases, the base version (where the Ubuntu package started differing from the Debian package) can not be automatically determined. Specify this option in this case.
sync bug list
Before submitting a sync request, please check that a similar request has not been filed already. You can see all bugs to which the archive-admins have been subscribed here.