Using kickstart in 2025 : Documentation, tools, and information

Hello,

I have been trying to explore building custom live images, in order to configure defaults to french language, customize installed packages and provide gnome extensions. My goal is to provide a live usb for my friends and family to try fedora in french, to help them get confidence in taking a leap away from windows.

So far, I have found the following documentation, and I assumed it was accurate and up to date:

The issues I have encountered are:

  • The spin-kickstarts package seem to not exist anymore in the f42 package repository, I have found the following git repo and it seems that it is the way to go nowadays in order to get up-to-date kickstart files (on branch f42) :
  • The system-config-kickstart package seems also absent from f42 repository, so Editing the ks file by hand is my only solution, a bit difficult as I was unable to find reference documentation for the kickstart file format. I am still trying to explore, by looking at other ks files in the repository.

My last issue is that, after flattening a kickstart file and have it modified with language, the output of my sudo livecd-creator -v -c FEDORA.ks ends in an error :

Using title 'Livecd Fedora' and product 'Livecd Fedora'
Traceback (most recent call last):
  File "/usr/bin/livecd-creator", line 265, in <module>
    sys.exit(main())
             ~~~~^^
  File "/usr/bin/livecd-creator", line 195, in main
    ks = imgcreate.read_kickstart(options.kscfg)
  File "/usr/lib/python3.13/site-packages/imgcreate/kickstart.py", line 54, in read_kickstart
    ksfile = urlgrabber.urlgrab(path, filename=tmpks)
  File "/usr/lib/python3.13/site-packages/urlgrabber/grabber.py", line 808, in urlgrab
    return default_grabber.urlgrab(url, filename, **kwargs)
           ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/urlgrabber/grabber.py", line 1205, in urlgrab
    (url,parts) = opts.urlparser.parse(url, opts)
                  ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/urlgrabber/grabber.py", line 873, in parse
    pathname = pathname2url(url)
  File "/usr/lib64/python3.13/urllib/request.py", line 1679, in pathname2url
    return quote(pathname, encoding=encoding, errors=errors)
  File "/usr/lib64/python3.13/urllib/parse.py", line 924, in quote
    raise TypeError("quote() doesn't support 'encoding' for bytes")
TypeError: quote() doesn't support 'encoding' for bytes

(I have also tried to build using unmodified, flattened ks files and the error is the same, so my guess is that it is an issue within livecd-creator)

To be honest, right now I am back at square one and I am not sure this workflow is the way to go in order to build custom live images. Could you confirm I am headed in the right direction or give me advice in order to achieve that ?

Thanks again, have a great day.

Yes - see Python error on Fedora 40 and 41 when trying to run livecd-creator · Issue #279 · livecd-tools/livecd-tools · GitHub

There’s a workaround suggested there, if you have the appetite for it - i.e. download a fixed version of kickstart.py and copy it to the appropriate location.

Issue tracking in Red Hat Bugzilla: 2334009 – livecd-creator fails after upgrades installed on 2024-12-22, which included python3.x86_64 3.13.1-2.fc41