Packaging a Patched Kernel
Hi, there. I'm not an official Debian maintainer, but I'm building a custom
Debian kernel based on the bcache fork by Kent Overstreet
(http://bcache.evilpiepirate.org/). I've read through the
relevant-seeming part
of the Debian Kernel Handbook and I think I have a build process in place.
This isn't quite as simple as dropping a new patch file in because I
want to be
able to produce a package for the latest Debian Linux kernel with the latest
bcache changes patched in. So I've written a script that (1) gets the latest
kernel source via apt-get source linux, (2) generates a bcache patch
using the
bcache git repo, (3) drops the patch into the Debian kernel sources
using quilt,
and (4) builds the kernel. bcache changes the kernel ABI and I don't want to
have to linearize a versioning scheme for that, so I'm using an ABI
number based
on the bcache git repo timestamps (prefixed, of course, with "bcache").
So my first question is: is there a better, more sane way to do this? I
don't
view this as a single fork from the official Debian kernels as much as I
do a
patch to each of them. It just seems that there should be a simpler way
to have
Debian build a patched kernel for me. (I know that Section 4.2.2 of the
Kernel
Handbook describes a way to test patches, but I was looking for
something a bit
more distributable than that.)
My second question revolves around distribution. I might want to throw these
packages into a Debian repository of my very own to save other people the
effort. Should I be marking my kernel packages as experimental in the
changelog?
I doubt I'm supposed to use "UNDISTRIBUTED", but I can't seem to find
anywhere
that talks about which distributions should be used by third-party
repository
maintainers. If I do mark them experimental, is there a good way to version
them? Using the required versioning scheme for experimental package
names, I'd
have to use a version like "3.7.1-1~experimental", but I'm not sure if
it's okay
to use a version number like that with my packages. (I *will* be using
an ABI
number like "bcache-2013.01.11", so it won't collide with existing
packages; I
just want to know if that version number is okay.)
Thanks much for reading. I'm sort of diving into this head-first. I
don't expect
that my packages will ever be mainline (or as polished or nice as the
mainline
packages are), but I wanted to throw together a solution for using
bcache until
it is merged into the mainline Linux kernel (if it ever is). And now
that I've
gone to this much effort, I sort of feel like amortizing that cost. :)
Reply to: