Sunday 17 November 2019

Re: Question about backporting a fix for a Guake bug to Bionic

On 11/16/19 5:25 PM, Robert Matusewicz wrote:
> Hi,
>
> I'm new in Ubuntu world and I need advice on how to proceed with a bugfix
> for Guake package. There is a bug #1760621 [1]. It's about Guake freezing
> when libutemper is not installed on the system and user tries to close a
> tab. From what I see, the bug is present in only one supported release:
> Bionic - in later releases that issue was fixed in a package that is
> provided with that release.

Welcome =).

Looks like there is a fix for when libutemper is not installed:

https://github.com/Guake/guake/commit/f8699b4be6c058fd58a33a1d783cd404e9076b0e

Would that be the fix you would to be applied go guake package ?

I have also read comments talking about backporting entire versions to
Bionic because in those versions the issue is already fixed. We usually
don't do that per SRU guidelines
(https://wiki.ubuntu.com/StableReleaseUpdates).

> I want to backport a fix from upstream (I mean Guake repository, not
> Debian) into Bionic because I think it's a big issue for Guake users on
> Bionic. My questions are:

Alright, if the fix/patch is not introducing any new features and fixing
a tangible issue (that we can reproduce and make sure its fixed) then
the next step if for you to provide a debdiff attached to the public
bug, change bug description for the SRU template
(https://wiki.ubuntu.com/StableReleaseUpdates#SRU_Bug_Template) and
subscribe Ubuntu Sponsors to the case.

Since the best patch to provide is a debdiff you can do something like:

$ pull-lp-source guake bionic
pull-lp-source: Downloading guake version 3.0.5-1
pull-lp-source: Downloading guake_3.0.5.orig.tar.gz from
archive.ubuntu.com (0.311 MiB)
pull-lp-source: Downloading guake_3.0.5-1.debian.tar.xz from
archive.ubuntu.com (0.007 MiB)
dpkg-source: info: extracting guake in guake-3.0.5                
dpkg-source: info: unpacking guake_3.0.5.orig.tar.gz
dpkg-source: info: unpacking guake_3.0.5-1.debian.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying 02_use_correct_data_path.diff

$ cd guake-3.0.5

$ apt-get build-dep .

$ quilt push -a

<make your changes, possibly with patch -p1 < PATCH>

$ dpkg-source --commit (make sure to fulfill the DEP3 header for the patch):

Description: Patch Subject
Author: Patch Author
Origin: upstream, http://<some-where-you-got-a-git-commit>
Bug: Upstream Bug Link
Bug-Ubuntu: Ubuntu Bug Link
Forwarded: If you forwarded the patch (not needed in your case)
Reviewed-by: You
Last-Update: YYYY-MM-DD

(More information: https://dep-team.pages.debian.net/deps/dep3/)

Enter the desired patch name: lpXXXX-patch-upstream-subject.patch

$ dch -i (will add a new entry in debian/changelog)

"""
guake (3.0.5-1ubuntu1) bionic; urgency=medium
 
  * Fixes X Y Z (LP: #00000000):
    - debian/patches/lpXXXX-patch-upstream-subject.patch

 -- Your Name <email@domain>  Sun, 17 Nov 2019 21:14:04 -0300
"""

$ dpkg-buildpackage -b -us -uc

<make sure the package with the new version is built>

$ dpkg-buildpackage -S -us -uc

<check if your new source package was also generated>

Now you will have 2 .dsc files, the old version and the new one, just
generated.

You can do:

$ debdiff guake_3.0.5-1.dsc guake_3.0.5-1ubuntu1.dsc >
lpXXXXXX-sru-bionic.debdiff

And you will have a file called "lpXXXXXX-sru-bionic.debdiff" which you
can attach to the case as being the fix for that particular issue.

Because the Ubuntu Sponsors team will be subscribed to your bug, a
sponsor will merge your debdiff to the current package and upload it. As
soon as a SRU team member approves it it gets into -proposed.

After that you have sometime to "verify" the package (from -proposed)
and change the tag in the bug, from verification-bionic-needed (or just
verification-needed) to verification-bionic-done (or just
verification-done). Package will only be migrated to -updates after it
is verified.

> 1. is it worth to start SRU procedure for a bugfix that fixes that freeze?
> As I never worked on any bugfixes in Ubuntu, I'm not sure what are the
> procedures and criteria to accept such bugfix
Usually SRUs as cherry-picks or backports (usually in small number) from
upstream code being applied to the current package. Usually those
patches are fixing a specific issue, from that bug, without adding or
removing existing features. That is the *main* acceptance criteria for a
SRU (you can read the SRU wiki page for more information).

> 2. Should that bugfix be forwarded to Debian first, and then Ubuntu?

In your case, you said the bug is already fixed in newer versions of
Ubuntu. With that said, it is very very likely that Debian already has
that code already since we are almost always syncing and/or merging from
Debian packages.

You can check that by running:

$ rmadison -a source -u debian guake
guake      | 3.4.0-1       | stable       | source
guake      | 3.6.3-2       | testing      | source
guake      | 3.6.3-2       | unstable     | source

$ rmadison -a source -u ubuntu guake
...
 guake | 3.0.5-1        | bionic/universe  | source
 guake | 3.4.0-1        | disco/universe   | source
 guake | 3.6.3-1        | eoan/universe    | source
 guake | 3.6.3-2        | focal/universe   | source

So, our last Ubuntu development released is synced with Debian unstable
and already fixed. It is likely that Debian stable is already fixed as
well so no further step is needed. Now, lets say Debian stable needed
the same fix. You could use "submittodebian" tool (ubuntu-dev-tools) to
submit the same patch to Debian, after opening a bug with the package in
question.
> 3. In upstream, the bug was fixed in 3.0.6 release and that release
> contained only that one fix. Is it fine to copy the 3.0.6 tag and then
> prepare a package guake_3.0.6-1ubuntu1? Or, it still should be
> guake_3.0.5-1ubuntu1?
Already answered previously.
>
> Sorry if those question are too obvious or were answered somewhere on the
> wiki. I searched, but the amount of information is a bit overwhelming and
> it's hard to filter through all the data!
I hope the summary serves your as a small guide, together with the
documents, for you to be able to submit your patch.

Good luck!
>
> Best regards,
> Robert Matusewicz
>
> [1] https://bugs.laaunchpad.net/ubuntu/+source/guake/+bug/1760621
> [2] http://packaging.ubuntu.com/html/fixing-a-bug.html


--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel