[UNSTABLE][PATCH 0/2] Switch to 3.0 dpkg source format with verified orig tarball

Dimitri John Ledkov dimitri.ledkov at canonical.com
Wed Feb 7 02:02:37 UTC 2024


This is a subset of changes proposed by Masahiro during the hackathon,
and implemented slightly differently as a smaller change.

This updates -rc kernel releases to 3.0 native format (no orig
tarball), and released kernel versions to 3.0 quilt format (with orig
tarball) and many options to ensure this new format works with our
existing workflows. Specifically, git delta is automatically generated
into a single patch added to the quilt series.

Immediate benefit to the kernel team is much smaller source tarballs
and thus amount of data to dput, as xz compression is used.

Separately for end-users unpacking source tarball, it is obvious what
the delta to the source tree is. Also it makes it trivial to add any
git format-patch to debian/patches/ and rebuild the kernel, just like
any other Ubuntu source package.

The addition of the watch file and upstream signing key, allows one to
retrieve upstream published source tarball, and verify its
authenticity. This should work for any of our kernels irrespective
where and how they are published.

    $ uscan --download-current-version 
    uscan: Newest version of linux on remote site is 6.7.0, specified download version is 6.7.0
    gpgv: Signature made Mon Jan  8 05:47:49 2024 GMT
    gpgv:                using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
    gpgv: Good signature from "Greg Kroah-Hartman <gregkh at linuxfoundation.org>"
    gpgv:                 aka "Greg Kroah-Hartman <gregkh at kernel.org>"
    gpgv:                 aka "Greg Kroah-Hartman (Linux kernel stable release signing key) <greg at kroah.com>"
    Successfully symlinked ../linux-6.7.tar.xz to ../linux_6.7.0.orig.tar.xz.

You can see unstable (6.8 rc) "3.0 (native)" and released (6.7) "3.0
(quilt)" source package builds in this ppa (note slightly earlier
version of this patch, and the tree was not clean in those builds):

https://launchpad.net/~yolo4k/+archive/ubuntu/format-3

One can fetch the .dsc directly with:

    dget https://ppa.launchpadcontent.net/yolo4k/format-3/ubuntu/pool/main/l/linux/linux_6.7.0-3.3.dsc
    dget https://ppa.launchpadcontent.net/yolo4k/format-3/ubuntu/pool/main/l/linux-unstable/linux-unstable_6.8.0-5.5.dsc

orig tarball goes down in size from 215MB to 135MB, and diff.gz goes
down from 3.9MB to 2.2MB.

Once this is applied consistently to all our kernels we can start work
on further improvements - for example moving debian.* directories to
be subdirs of debian/, reducing our reconstruct script (if not
eliminating it), and allowing additional tarball components for any
other additional source code we may ever need, etc. Some of which was
already previously proposed by the Masahiro patchset.

Dimitri John Ledkov (2):
  UBUNTU: [Packaging] Switch to 3.0 dpkg source formats
  UBUNTU: [Packaging] add uscan watch file with GPG verification

 debian/rules.d/1-maintainer.mk  |  2 +
 debian/source/format            |  2 +-
 debian/source/local-options     | 12 +++++
 debian/upstream/signing-key.asc | 78 +++++++++++++++++++++++++++++++++
 debian/watch                    |  3 ++
 5 files changed, 96 insertions(+), 1 deletion(-)
 create mode 100644 debian/.gitignore
 create mode 100644 debian/source/local-options
 create mode 100644 debian/upstream/signing-key.asc
 create mode 100644 debian/watch

-- 
2.34.1




More information about the kernel-team mailing list