How can I create a PPA with a source package recipe to build a patched Linux kernel that tracks the mainline Ubuntu kernel?
I'm struggling to even figure out which Launchpad project to build from.
lp:linux
has only a master
branch so I'm not sure how to build the code for a given Ubuntu release. (It seems to be identical to lp:ubuntu/+source/linux
, but is it?) Compare to lp:ubuntu/+source/linux-meta
which has branches like applied/ubuntu/focal-security
.
There is lp:~ubuntu-kernel/ubuntu/+source/linux/+git/focal
whose master-prep
branch has tags that correspond with the package versions I see in the apt repositories, but I doubt I can construct a source package recipe that looks for new tags. (Also, the current tag is ahead of the latest released package version in the apt repos.)
However, the simplest recipe that uses this branch would be:
# git-build-recipe format 0.4 deb-version {debupstream}-0~{revtime}
lp:~ubuntu-kernel/ubuntu/+source/linux/+git/focal master-prep
It fails because the repository doesn't contain a debian/control
file:
RUN ['git-build-recipe', '--safe', '--no-build', '--manifest', '/home/buildd/build-RECIPEBRANCHBUILD-3556697/chroot-autobuild/home/buildd/work/tree/manifest', '--distribution', 'focal', '--allow-fallback-to-native', '--append-version', '~ubuntu20.04.1', '/home/buildd/build-RECIPEBRANCHBUILD-3556697/chroot-autobuild/home/buildd/work/recipe', '/home/buildd/build-RECIPEBRANCHBUILD-3556697/chroot-autobuild/home/buildd/work/tree']
...
git-build-recipe: error: No control file to take the package name from, and --package not specified.
When building manually, according to the Ubuntu wiki, you need to run LANG=C fakeroot debian/rules clean
to generate debian/control
. But Launchpad won't let me use the run
command in my recipe to invoke this.