Preface
Several weeks ago, I took the time to begin iterating on a solution which would move the generation of the ship-live
apt pool from debian-cd into livecd-rootfs. This would simplify the functionality of debian-cd, moving more to Launchpad builders.
I have been told this is a good idea (and I agree after looking into it,) but I lack the proper documentation or rationale to back that up. If anyone more intimately familiar with the logistics could comment and add those specific details, it would be much appreciated.
For end-users, this should mostly be a no-op. It will slightly affect the size of the final ISO artifacts, but this should be negligible, from what I can tell. For installers, it should be as minor as a configuration change (or worst case scenario, updating a hard-coded value and wrapping it in a conditional statement.)
Laying the foundation
I first began by performing a general packaging cleanup. Using well-tested, self-contained commits, I pushed a few commits which ended up in 25.04.18, including:
- Moving to the new endpoint URL for defining
$EXTRA_PPAS
- debhelper compat 13
- Updated Standards-Version
- Lintian cleanliness
- Add support for multiple pools (/var/lib/{livefs,preinstalled}-pool/) - essentially a no-op
I was surprised to see 25.04.18 uploaded, but I also factored that in as a possibility, and that was quite alright.
Following this, using the Launchpad API, I use a process which I have since documented in an SRU verification to fully build and test the squashfs.
Technical Details
I have proposed a merge proposal here. It will still take some time to get this to properly build, but since I have put this on the backburner in favor of Plucky release work, I figured it was about time to publicize my work in progress, to open it up for general comment.
Anyone with access and deep familiarity may merge my commit and iterate on it, or comment on the merge proposal, whatever seems like the best path forward here. I’m happy to accept any suggestions on how to make it better, or someone to help drive it to the finish line, if they’re motivated.
Specific notes on the code:
- Adds an architecture argument to
expand-task
, for use in finding seed items limited to specific architectures. - Adds a
add_task_pool
Bash function which is basically a duplication of code from elsewhere. It centralizes much of the functionality of adding a pool likeship-live
to a specific location. - The
expand-task
iterations have taken quite a few tries to get right. This being said, it’s still not fully there.
Here are my most recent livefs build logs. Note, if you’re reading this more than a month from now, the link is most likely either obsolete or inaccurate (I’ve moved onto a different project.) Please keep that in mind.
Next Steps
As a recap:
- My code is far from perfect, and still causes an FTBFS.
- It seems to read fairly well from my perspective, but is missing a few bits.
- It needs to be tested once it’s done.
- It needs a +2, I’m not pushing this one on my own.
Let me know what you think!