GPL-3.0-only licensed by Jens Petersen
Maintained by [email protected]
This version can be pinned in stack with:dl-fedora-1.1@sha256:0e960086898afa4326d8b43b0ce245ad05b15533d72220a13a78b99d8689949a,2279

Module documentation for 1.1

There are no documented modules for this package.


Hackage GPL-3 license Stackage Lts Stackage Nightly

A tool for downloading Fedora, ELN, and Centos Stream images. By default it targets the Workstation edition of Fedora.

Usage examples:

dl-fedora rawhide : downloads the latest Fedora Rawhide Workstation Live iso

dl-fedora 40 silverblue : downloads the Fedora Silverblue iso

dl-fedora respin kde : downloads the latest KDE Live respin

dl-fedora 39 server --arch aarch64 : will download the Server iso for armv8

dl-fedora --run 40 : will download Fedora Workstation and boot the Live image with qemu-kvm.

dl-fedora --check respin : checks if there is a newer respin iso image available.

dl-fedora --local rawhide : shows the current locally available image. It can be combined with --run to quickly run the latest local image, without a newer download.

dl-fedora c9s : downloads a Centos Stream 9 net installer.

By default dl-fedora downloads to ~/Downloads/ (correctly the XDG user “DOWNLOADS” directory), but if you create an iso subdirectory there (~/Downloads/iso/) it will use that directory instead.

dl-fedora downloads the latest mirrored image redirected from by default. If you want to ensure getting the very latest image you can use --latest, which will then download from instead if your mirror is not synced yet. (This behavior changed with 0.10.)

If the image is already found to be downloaded it will not be re-downloaded of course. Curl is used to do the downloading: partial downloads will continue.

A symlink to the latest iso is also created: eg for rawhide it might be "Fedora-Workstation-Live-x86_64-Rawhide-latest.iso".

It also tries to check the iso checksum and its gpg signature.


$ dl-fedora --version


$ dl-fedora --help

Fedora iso downloader

Usage: dl-fedora [--version] [-g|--gpg-keys] [--no-checksum | --checksum] 
                 [--debug] [-T|--no-http-timeout] 
                 [(-c|--check) | (-l|--local) | (-R|--replace)] [-n|--dry-run] 
                 [(-L|--latest) | (-d|--dl) | (-k|--koji) | (-m|--mirror URL)] 
                 [--dvd] [--cs-devel | --cs-test] [-a|--arch ARCH] RELEASE 

  Tool for downloading Fedora iso file images.
  RELEASE = release number, respin, rawhide, test (Beta), stage (RC), eln, c9s, c10s
  EDITION = {cloud,container,everything,server,workstation,budgie,cinnamon,i3,
             iot} [default: workstation]
  See <>

Available options:
  -h,--help                Show this help text
  --version                Show version
  -g,--gpg-keys            Import Fedora GPG keys for verifying checksum file
  --no-checksum            Do not check checksum
  --checksum               Do checksum even if already downloaded
  --debug                  Debug output
  -T,--no-http-timeout     Do not timeout for http response
  -c,--check               Check if newer image available
  -l,--local               Show current local image
  -R,--replace             Delete previous snapshot image after downloading
                           latest one
  -n,--dry-run             Don't actually download anything
  -r,--run                 Boot image in QEMU
  -L,--latest              Get latest image either from mirror or dl.fp.o if
  -d,--dl                  Use (dl.fp.o)
  -k,--koji                Use
  -m,--mirror URL          Mirror url for /pub [default
  --dvd                    Download dvd iso instead of boot netinst (for Server,
                           eln, centos)
  --cs-devel               Use centos-stream development compose
  --cs-test                Use centos-stream test compose (default is
  -a,--arch ARCH           Specify arch [default: x86_64]


See,, and also


dl-fedora is distributed under the GPL license version 3 or later.

Please report issues or pull requests at



1.1 (2024-05-23)

  • add c10s and Fedora IoT edition
  • print multiple matches and download latest
  • ‘–dvd’ option to select dvd image rather than boot/netinst iso
  • handle empty mirror directory by falling back to dl.fp.o
  • better debug output
  • improve handling of empty checksum file
  • filename tweaks for Container and Cloud

1.0 (2023-09-15)

  • default to download.fp.o: replace –no-dl with –latest
  • new –check (-c) command mode: checks for newer image
  • –local mode now only derefs symlink to show latest local image
  • help: list ostree editions last
  • add Onyx (F39 Budgie ostree image)
  • allow “sb” as alias for Silverblue
  • offer to fix permissions of a partially downloaded run iso file

0.9.6 (2023-08-18)

  • –no-dl option to avoid dl.fp.o even if newer
  • support c8s and add options for centos-stream channels
  • update eln path
  • downloadFile: add showdestdir to downloading message and curl debug
  • add –debug option

0.9.5 (2023-04-13)

  • add F38 Sericea sway ostree image

0.9.4 (2023-03-23)

  • add new F38 spins: Budgie and Sway
  • change koji target to –koji mirror option
  • if mirror redirect fails then fallback to primary
  • run with qemu -cpu host option

0.9.3 (2022-06-11)

  • show timestamp of image

0.9.2 (2021-10-01)

  • fix test (beta) image selection to be the latest version

0.9.1 (2021-08-30)

  • new Kinoite edition for F35
  • initial Centos Stream “c9s” target for production boot images

0.9 (2021-04-22)

  • edition is now an argument after release, not an option
  • –local –dryrun only accesses local files now for speed
  • add ‘–no-http-timeout’ (mostly for CI)

0.8 (2021-04-07)

  • –local option: print (or –run) current local image instead of newer download
  • improve –dryrun Downloads/ handling for testsuite in CI

0.7.7 (2021-04-06)

  • add the new F34 i3 spin
  • shorten mate_compiz to mate
  • convert tests to Haskell

0.7.6 (2021-01-21)

  • improve help text for releases related for Beta and RCs (#1)
  • if ~/Downloads/iso/ exists then download to it otherwise ~/Downloads/
  • support ELN boot.iso

0.7.5 (2020-09-13)

  • always print download url and already downloaded filename
  • –replace deletes previous symlinked image after downloading new one
  • improved checksum file handling

0.7.4 (2020-03-15)

  • add ‘koji’ release target: downloads latest branched compose from kojipkgs

0.7.3 (2020-02-11)

  • fix CHECKSUM512 detection (for respins)

0.7.2 (2019-10-29)

  • add stage release target (useful just prior to release)

0.7.1 (2019-09-25)

  • print datestamp beside filesize
  • show directory correctly with ~/
  • use a subdirectory for checksum files

0.7 (2019-09-12)

  • add –checksum to always do checksum when possible
  • add –run to run image in qemu-kvm if available
  • rework algorithms
    • check local filesize earlier: don’t even check mirror if already downloaded
    • for partial local file output percentage already downloaded
    • otherwise show filesize
  • show dir for symlink: so one knows location
  • drop the ‘devel’ target (use release version number instead)
  • handle old dangling symlink too (after deleting iso)

0.6 (2019-09-02)

  • major rework to correct the url logic
    • first checks on (master)
    • then tries to download corresponding filepath on
    • or falls back to master mirror
  • new –dl option to download directly from
  • can now find branched development release
  • also compares mirror and master filesizes
  • builds with lts-14

0.5 (2019-07-06)

  • no hardcoding of devel branch, beta, and respins
  • fix Spins and Cloud/Container paths
  • use rawhide for devel if not branched
  • don’t checksum if no file downloaded or new –no-checksum
  • more informative error messages
  • add simple dryrun test script

0.4 (2019-06-03)

  • drop version 30 special case
  • support gpg verification of checksum file

0.3 (2019-04-16)

  • run sha256sum check
  • support fedora Spins


  • fix and improve symlink naming
  • use new http-directory library to check exact filesize


  • initial release