Sync process¶
TODO: See: Merges & syncs
Important
The content below this line is ported directly from the UMH sync page and should be blended with the content linked above to avoid duplication.
If any reference anchors from the UMH content are changed please update any pages using them accordingly, to point to the new anchors.
The content about requesting and performing syncs will likely move, please do not bookmark it until all of the content has been moved to the final place and this note is deleted.
If an Ubuntu package is the same as the Debian version, we have an automated mechanism that synchronizes the Debian version to our Ubuntu series.
A delta represents the difference between the Ubuntu and Debian versions of a package. Typically, when we make changes to a package, we merge our delta onto the upstream version. Debian packages can only be synchronized if there is no delta.
However, there can be occasions where Debian or upstream incorporate our logical changes before we merge them, meaning that there is essentially no difference between the Ubuntu and Debian versions. If we were to proceed with our merge, we would be merging an empty commit (i.e., adding a commit where nothing has changed).
In this situation, it is better to sync the new version of the Debian package back to Ubuntu than to manually perform an empty merge.
Asking for a sync¶
The automatic syncing of packages from Debian is active for only some of the Ubuntu release cycle - see Debian Import Freeze for more information.
Let us consider a test case where we have an empty Ubuntu delta before
Debian Import Freeze. You can check the
Release Schedule
for current releases in development. The Debian package is on
testing
, so doing an
explicit sync
is unnecessary.
Simple Case¶
In simple cases, opening a bug with the required information is sufficient.
sass-spec
bug for 25.04 is
a good example.
Ensure the patch or upstream information is included
Provide the patch which has been adopted upstream
Cases like this may be:
Debian adopts the same patch as Ubuntu, possibly with a different name
Upstream has accepted the change, Debian takes upstream, and Ubuntu can drop its delta
Simple here being a single patch; for many patches see below
Complex Case¶
When multiple changes are adopted, and many patches can be dropped, an MP may be helpful for reviewers to understand the change. Also ensure there is an accompanying bug, either a merge bug from the Server team automation, changing it to a sync, or a new sync bug.
Specify that the MP is for a sync request.
Write down how you discovered it is a sync: changelog entries, step in where 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. The text in that new changelog entry should say “build debian version to verify before a sync”.Build the source package and upload to the PPA you’re using in this MP.
An example of this case is presented here.
For other sync situations, see the Ubuntu wiki page. Outside of the server team process, the common way is to request an explicit sync via either filing a Launchpad Bug, or using the requestsync tool.
How to perform a sync¶
If you have the permissions to upload the package to Ubuntu, you can issue a
sync request using the syncpackage tool.
The process is described more fully in the
Ubuntu Wiki page.
To be able to use syncpackage
, the package needs to be known to Launchpad
and there is a slight delay between a Debian upload and the availability in
Launchpad. You can check the Debian publishing history of a package in
https://launchpad.net/debian/+source/<name_of_the_package>/+publishinghistory
like in this example for
freeipmi
.
For our example case of freeipmi
, the sync was done in this way:
syncpackage -r impish-proposed -d unstable -v freeipmi --force
What’s next?¶
You can check the status of the build as with any other upload, from its
“Overview” page (in the format
https://launchpad.net/ubuntu/+source/<name_of_the_package>
).
Checking the build log:
In the main part of that page you can see the list of built packages for every Ubuntu series. You can click on a package’s “version” to get to the builds for a specific architecture and see the build log – e.g. the
freeipmi
amd64 build log.Visiting the publishing history of the package (in the format
https://launchpad.net/ubuntu/+source/<name_of_the_package>/+publishinghistory
): a link at the top right of the “Overview page” – e.g. forfreeipmi
.