On Mon, Apr 19, 2021 at 10:33 AM Matthew Miller
<mattdm(a)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. :(
--
真実はいつも一つ!/ Always, there's only one truth!