Hi, I would like to contribute to an Ubuntu package but I can’t understand how to do it.
I reported a bug on the platform and an upstream fix is available. I would like to hence cherry-pick such fix and propose the package for upload on focal. However, it is not clear to me how to do that.
First, the code is not hosted on Launchpad itself but on GitHub, so I’m not sure how should I use Bazar to clone and reupload the package.
Second, how do I then ask the maintainers if it’s possible to upload to Focal.
Third, I think I should also tag the bug with some launchpad-bug-tags but the documentation doesn’t provide all of them.
I think in general the whole process is quite convoluted and the documentation is sparse and often outdated. Do you have some suggestion on where to look at?
I added the SRU template to the description, provided the debdiff and subscribed the Ubuntu Sponsors Team. Should I contact anyone personally or just wait for somebody to appear?
Ok… I thought you would simply apply commit ed00ae61 on top of version 31-1. Now I see that you chose to propose a backport of 38-2 instead. That may be fine too, provided that the changes are bug fix ones and don’t include additional features.
The restrictiveness when SRUing is of course due to preventing regressions. In this case you could argue that it’s already broken, and can’t be much worse… That’s how I argued myself recently when helping with bug #1875498, and that was accepted by the SRU team.
Please note that you will need to add an extra entry at the top of debian/changelog. Something along these lines:
gnome-shell-extension-dash-to-panel (38-2~ubuntu20.04.1) focal; urgency=medium
* Backport from groovy as an SRU (LP: #1892245)
-- <your-real-name> <<your-email>> Mon, 31 Aug 2020 21:00:00 +0200
I would strongly advise you to contact someone personally. In an ideal world you wouldn’t need to, but we don’t live in an ideal world…
Thank you very much, I reuploaded the patch, with the updated changelog and signed with my PGP key. I sent a message to Andy Whitcroft for review, I hope he’s still and SRU member. It was a bit complicated to figure out who to contact and by which mean
Yeah, the procedure is not so easy to grasp for a first-timer (which was the reason why you started this topic in the first place, right?).
Actually there are multiple steps. First the package needs to simply be uploaded to focal. That can anybody with upload rights do, i.e. anbody who is a MOTU or Core Development Team member. So you could have asked anyone in those teams.
Once uploaded, the package is placed in a queue awaiting that someone in the SRU team will review and approve it. That’s a true queue (unlike the sponsorship queue nowadays), i.e. the SRU team is committed to handle all packages in the queue.
Anyway, hopefully Andy will help with the initial upload. A reminder on IRC might help. If he wouldn’t in due time, please let me know and I can ask someone else.
But since this is a backport of a higher version, Mattia prefers a minimal patch based on the 38-2 source. I think this is what he would like to see:
diff -ru dash-to-panel-38.orig/debian/changelog dash-to-panel-38/debian/changelog
--- dash-to-panel-38.orig/debian/changelog 2020-08-19 11:51:57.000000000 +0200
+++ dash-to-panel-38/debian/changelog 2020-09-04 20:38:09.095773732 +0200
@@ -1,3 +1,10 @@
+gnome-shell-extension-dash-to-panel (38-2~ubuntu20.04.1) focal; urgency=medium
+
+ * Backport from groovy as an SRU (LP: #1892245)
+ * debian/control: Change debhelper-compat to 12
+
+ -- Fabio Colella <fcole90@gmail.com> Wed, 02 Sep 2020 16:19:21 +0300
+
gnome-shell-extension-dash-to-panel (38-2) unstable; urgency=medium
* Apply patch to fix overview bug (Closes: #968613)
diff -ru dash-to-panel-38.orig/debian/control dash-to-panel-38/debian/control
--- dash-to-panel-38.orig/debian/control 2020-07-15 12:22:31.000000000 +0200
+++ dash-to-panel-38/debian/control 2020-09-04 20:36:34.255297198 +0200
@@ -1,8 +1,9 @@
Source: gnome-shell-extension-dash-to-panel
Section: gnome
Priority: optional
-Maintainer: Jonathan Carter <jcc@debian.org>
-Build-Depends: debhelper-compat (= 13), libglib2.0-bin, zip
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Jonathan Carter <jcc@debian.org>
+Build-Depends: debhelper-compat (= 12), libglib2.0-bin, zip
Standards-Version: 4.5.0
Rules-Requires-Root: no
Homepage: https://github.com/jderose9/dash-to-panel
One detail is that the version string must be lower than the groovy version. The ~ character fixes that.
And, as you realized, debhelper-compat (=13) doesn’t work on focal. It’s appropriate to mention that change in debian/changelog. I also changed the maintainer, but that kind of change is usually not mentioned in debian/changelog.
So if you agree, I would suggest that you attach this minimal patch to the bug report (but keep the other patch too, since it contains all the differences compared to the current focal source, and that’s useful for those who will review it).
@ian-weisser: This topic isn’t placed in an optimal category. Can you please move it to the documentation -> contribute category, where it probably fits better.
I created this patch with quilt and then manually added DEP-3 headers. However when I try to make debuild -S it fails. However, quilt understands the diff without complaining.
$ debuild -S
dpkg-buildpackage -us -uc -ui -S
dpkg-buildpackage: info: source package gnome-shell-extension-dash-to-panel
dpkg-buildpackage: info: source version 31-1~ubuntu20.04.1
dpkg-buildpackage: info: source distribution focal
dpkg-buildpackage: info: source changed by Fabio Colella <fcole90@gmail.com>
dpkg-source --before-build .
debian/rules clean
dh clean
dh_auto_clean
make -j12 clean
make[1]: Entering directory '/home/fabio/tmp/dash-to-panel-cherry-fix/patched/gnome-shell-extension-dash-to-panel-31'
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
rm -f ./schemas/gschemas.compiled
make[1]: Leaving directory '/home/fabio/tmp/dash-to-panel-cherry-fix/patched/gnome-shell-extension-dash-to-panel-31'
dh_clean
dpkg-source -b .
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building gnome-shell-extension-dash-to-panel using existing ./gnome-shell-extension-dash-to-panel_31.orig.tar.gz
dpkg-source: info: using patch list from debian/patches/series
patching file panelManager.js
Hunk #2 FAILED at 731.
1 out of 2 hunks FAILED
dpkg-source: info: the patch has fuzz which is not allowed, or is malformed
dpkg-source: info: if patch 'dash-to-panel-focal-fix.diff' is correctly applied by quilt, use 'quilt refresh' to update it
dpkg-source: error: LC_ALL=C patch -t -F 0 -N -p1 -u -V never -E -b -B .pc/dash-to-panel-focal-fix.diff/ --reject-file=- < gnome-shell-extension-dash-to-panel-31.orig.dpODoo/debian/patches/dash-to-panel-focal-fix.diff subprocess returned exit status 1
dpkg-buildpackage: error: dpkg-source -b . subprocess returned exit status 2
debuild: fatal error at line 1182:
dpkg-buildpackage -us -uc -ui -S failed
$ quilt refresh
Patch debian/patches/dash-to-panel-focal-fix.diff is unchanged
$ quilt push -a
File series fully applied, ends at patch debian/patches/dash-to-panel-focal-fix.diff
Can you give me some hints? Line is 731 close to the end of the file, as you can see at the end of the diff
Oh, thanks, so it wants that every non-consecutive change is in that form, does it? It’s weird, as the diff was produced by quilt, so I expected it would have produced well-formed diffs
BTW, I made the change because I thought it mattered, as I got warnings about it
dpkg-source: warning: file gnome-shell-extension-dash-to-panel-31/panelManager.js has no final newline (either original or modified version)
The ~ character is there to denote a lower version according to the dpkg --compare-versions logic than the part of the string preceding it. So yes, it’s typically used for backports.