Hello everyone,
I'm Andreas and currently working with a group of volunteers on making Fedora run on handheld devices, mainly the Pine64 PinePhone. Currently we have a bootable image (and some people already daily-drive it), but it is made entirely by hand (and some shell-scripts).
Today I searched the wiki on guidelines to "implement" Anaconda and found out that it's probably easiest for the moment if we label our effort a Remix of Fedora.
Currently I'm looking for guidance on how to create Remixes. I have read through the Anaconda docs and searched the wiki already. So far I can tell that Anaconda works based on images that it installs to a host. Now I wonder how to create the images, because the Wiki mentions a plethora of tools for the job: livecd-tools, pungi, livemedia-creator and lorax. I also found a lot of mentions of kickstart everywhere...
Could someone kindly recommend which of these tools to further look into? Or is there something like an example step-by-step guide that I can follow to get a grasp of how to create the images or even a whole Remix (possibly including how to fulfill legal requirements around fedora-logos etc.)?
I've never done anything like this before, and I'm pretty new to contributing to Fedora in general. However I'd really like it if we could produce a handheld-Remix with an installer and such.
I'm thankful for any help or advice!
All the best, Andreas
On Sun, Apr 18, 2021 at 08:24:57AM +0200, Andreas Hartmann wrote:
Currently I'm looking for guidance on how to create Remixes. I have read through the Anaconda docs and searched the wiki already. So far I can tell that Anaconda works based on images that it installs to a host. Now I wonder how to create the images, because the Wiki mentions a plethora of tools for the job: livecd-tools, pungi, livemedia-creator and lorax. I also found a lot of mentions of kickstart everywhere...
The new hotness is OSBuild -- called "Image Builder" in RHEL. See https://www.osbuild.org/documentation/.
That said, it's so new I'm not sure that we have examples of using it for this use case. So there may be some things that we need to improve so that Remixes can be easily used. I'd be happy to make sure any such issues come to the attention of the team that works on it.
Could someone kindly recommend which of these tools to further look into? Or is there something like an example step-by-step guide that I can follow to get a grasp of how to create the images or even a whole Remix (possibly including how to fulfill legal requirements around fedora-logos etc.)?
You'll want to replace fedora-logos with generic-logos, and fedora-release with generic-release. We've tried to concentrate the legal requirements in these packages to make it easy for you.
On Mon, Apr 19, 2021 at 10:33 AM Matthew Miller mattdm@fedoraproject.org wrote:
On Sun, Apr 18, 2021 at 08:24:57AM +0200, Andreas Hartmann wrote:
Currently I'm looking for guidance on how to create Remixes. I have read through the Anaconda docs and searched the wiki already. So far I can tell that Anaconda works based on images that it installs to a host. Now I wonder how to create the images, because the Wiki mentions a plethora of tools for the job: livecd-tools, pungi, livemedia-creator and lorax. I also found a lot of mentions of kickstart everywhere...
The new hotness is OSBuild -- called "Image Builder" in RHEL. See https://www.osbuild.org/documentation/.
That said, it's so new I'm not sure that we have examples of using it for this use case. So there may be some things that we need to improve so that Remixes can be easily used. I'd be happy to make sure any such issues come to the attention of the team that works on it.
It is currently not technically possible to do the things required for building a remix using OSBuild. You will need to use either lorax[1], imagefactory[2], or appliance-tools[3].
The easiest of the three to use is appliance-tools, but the official Fedora images are built using imagefactory.
[1]: https://weldr.io/lorax/ [2]: https://imgfac.org/ [3]: https://pagure.io/appliance-tools
Could someone kindly recommend which of these tools to further look into? Or is there something like an example step-by-step guide that I can follow to get a grasp of how to create the images or even a whole Remix (possibly including how to fulfill legal requirements around fedora-logos etc.)?
You'll want to replace fedora-logos with generic-logos, and fedora-release with generic-release. We've tried to concentrate the legal requirements in these packages to make it easy for you.
There are four branding packages:
* fedora-release * fedora-logos * fedora-bookmarks * fedora-repos
Of those four, two are mandatory to replace in a remix case:
* fedora-release * fedora-logos
When making a full derivative, you need to replace *at least* these three:
* fedora-release * fedora-logos * fedora-bookmarks
If you want your derivative to not use the Fedora mirror network for Fedora packages, you'll want to replace fedora-repos too.
Fedora's images are composed using kickstarts, of which all of them are present here: https://pagure.io/fedora-kickstarts
(Ignore the spin-kickstarts package, it hasn't been updated in years and is basically broken)
If you're using imagefactory or lorax, you'll want to look at the fedora-disk-* kickstart files as examples.
If you're using appliance-tools, you'll want to look at the fedora-arm-* kickstart files as examples, but those are present only in the f33 branch: https://pagure.io/fedora-kickstarts/tree/f33
I primarily work with appliance-tools, so for that one, the steps more or less go like this:
Prep steps (only need to be done the first time):
sudo dnf install pykickstart mock sudo usermod -a -G mock $USER newgrp mock
Image creation steps (should be done each time):
git clone --branch f33 https://pagure.io/fedora-kickstarts ksflatten -v, --config fedora-arm-workstation.ks -o ./flat-f33-workstation.ks --version f33 mock --root fedora-33-armhfp --install appliance-tools mock --root fedora-33-armhfp --copyin ./flat-f33-workstation.ks / mock --root fedora-33-armhfp --isolation=simple --chroot "/usr/bin/appliance-creator -c /flat-f33-workstation.ks -d -v --logfile appliance.log --cache /tmp/koji-appliance -o /app-output --format raw --name Fedora-Workstation-armhfp-33 --version 33 --release 1" mock --root fedora-33-armhfp --copyout /app-output/Fedora-Workstation-* .
Someone else more familiar with creating disk images with the other tools can probably help with those. Unfortunately, I've never had any real success myself with the others. :(
Greetings,
----- Original Message -----
(Ignore the spin-kickstarts package, it hasn't been updated in years and is basically broken)
Actually the fedora-kickstarts package is the one that contains all of the .ks files and the spin-kickstarts package just has a tiny bit of documentation. Is the fedora-kickstarts package broken for years? If so, and one is a packager (I'm not), maybe... I don't know... fix it?
If you were working on x86_64, the Fedora Respins SIG could provide assistance (#fedora-respins on the Freenode IRC network), but I don't think any of us have experience with ARM.
TYL,
On Mon, Apr 19, 2021 at 11:58 AM Scott Dowdle dowdle@montanalinux.org wrote:
Greetings,
----- Original Message -----
(Ignore the spin-kickstarts package, it hasn't been updated in years and is basically broken)
Actually the fedora-kickstarts package is the one that contains all of the .ks files and the spin-kickstarts package just has a tiny bit of documentation. Is the fedora-kickstarts package broken for years? If so, and one is a packager (I'm not), maybe... I don't know... fix it?
The fedora-kickstarts package is a subpackage from that one. I can certainly fix it, but because we no longer block releases on making sure that content is synced at GA, they're basically busted most of the time by release time.
If you were working on x86_64, the Fedora Respins SIG could provide assistance (#fedora-respins on the Freenode IRC network), but I don't think any of us have experience with ARM.
I have some experience with ARM only with appliance-tools. I have no idea how to work with the rest of them.
On Mon, 2021-04-19 at 10:33 -0400, Matthew Miller wrote:
The new hotness is OSBuild -- called "Image Builder" in RHEL. See https://www.osbuild.org/documentation/.
That said, it's so new I'm not sure that we have examples of using it for this use case. So there may be some things that we need to improve so that Remixes can be easily used. I'd be happy to make sure any such issues come to the attention of the team that works on it.
Thanks for the tip!
Having spent some time looking into this, it seems to me that osbuild is somewhat overly verbose with respect to adding new packages...
And if I understood correctly it can only build images for the same arch it is executing on, so I guess I'd need QEMU to produce aarch64 images from an x86_64 host ... ?
Lorax on the other hand keeps erroring on me because it can't find certain packages. But that may well be an issue of my attempts to supply it with fixed mirrors.
At this point I wonder though: In essence all I'd like to do is remove/modify/add packages on top of a Workstation Fedora image (or possibly rawhide). Would possibly writing a custom kickstart file and using livemedia- creator (https://weldr.io/lorax/livemedia-creator.html) with the widely available workstation images be enough to achieve this?
You'll want to replace fedora-logos with generic-logos, and fedora- release with generic-release. We've tried to concentrate the legal requirements in these packages to make it easy for you.
How very kind of the fedora project. :-) Thank you!
Andreas
remixes@lists.fedoraproject.org