Hi,

I have solved the issue for me. I decided to stick to the most conservative approach of one fully fledged source package per kernel flavor and will solve the issue of wasted disk space on both the internal archive host and on the publicly visible download server with offline deduplication on the filesystem level. I think I will use btrfs on the internal archive host and XFS on the download server to get familiar with both methods, albeit similar. Zugschlus' leftover plate ("Resterampe") of packages that noone wants will probably grow by one in this process as I have started the salvaging process for duperemove (which can thankfully both handle XFS and btrfs).

Of the suggestions I received the idea of having a linux-zugschlus-source binary package that the flavor packages could build-depend on the most enticing. I still decided to go a different way since I didn't have so much time to spend. I wrote a python program (> 1000 lines *cough*) that builds the source packages using big parts of what upstream (and Wichert) have in scripts/packages, generating new stuff, including glue code to handle the kernel configuration files, updates, etc, and orchestrates the build of the four source packages and the respective binaries.

I decided against using Debian's src:linux because the packaging is WAY more complicated (and harder to understand) that I'll ever need, and I am usually faster in deploying new stable kernel releases than Debian is.

Build profiles I thankfully didn't need since the upstream packaging already fiddles around with the control file to control the creation of kernel headers, linux-libc6-dev and debug packages. It is an interesting concept but I'd rather take more time to understand it, and first use it the way it was intended to be used.

My original idea of having one orig.tar.gz for more than one source package wouldn't work because that use case is not supposed by dpkg-source: the orig.tar.gz always must have the same base name as the source package (even multiple source tarballs have to share the same prefix), hence I would need multiple, different, but identically named source packages which you can't put in an archive. That was a stupid idea of mine and I shouldn't have bothered you with that.

The most obvious but also time-consuming takeway was that you need to have ARCH and KBUILD_DEBARCH correctly set even for the {old,n,menu}config step or you will end up with a non-working kernel that will miss all parts specific to the target architecture when cross-building.

What I still don't really know is how to handle the linux-libc-dev package which doesn't have its name versioned and will therefore be built non-identically, but identically named, by every flavor, doubling the package name in the archive which doesn't make dak happy. I decided to only build that package from one of my flavors.

With the current results I can work for the time being. I might simplify the packaging at some future time (build profiles might actually help here, making the debian/rules way simpler than the one that comes with the kernel).

Thank you all for trying to help.

Greetings
Marc

--
-----------------------------------------------------------------------------
Marc Haber         | "I don't trust Computers. They | Mailadresse im Header
Leimen, Germany    |  lose things."    Winona Ryder | Fon: *49 6224 1600402
Nordisch by Nature |  How to make an American Quilt | Fax: *49 6224 1600421

Reply via email to