What are the differences and/or similarities between tito, rpmbuild and fedpkg tools for packaging a modern fedora desktop app?

  1. The official Fedora Packaging guidelines are here: Fedora Packaging Guidelines :: Fedora Docs

  2. There are so many tools because people have different ideas of how to improve things, and since it’s open source, they go and make them. In specific for the ones you’ve asked about:

  • rpmbuild is the low-level tool that’s part of rpm itself for constructing packages.

  • fedpkg is our official helper tool which wraps rpmbuild plus a bunch of other tools in a handy suite useful for maintaining an official Fedora package

  • tito is a newer tool to do basically the same thing, in slightly different ways.

    You probably should have a basic understanding of rpmbuild, but in practice as a Fedora maintainer, you don’t need to touch it directly very often (similarly, koji and bodhi command line tools exist, but they’re generally not necessary to worry much about).

    Another emerging tool that takes a slightly different approach is PackIt, which is meant for building software directly from your upstream source repository (on Gitlab or Github or whereever). It also wraps the standard Fedora build process, but in a different way, which you may find easier if

    • you’re also the developer of the software and owner of the upstream source repository, and/or if you are
    • you’re someone who grew up (or grew into being) more comfortable with git than with extracting and managing tar.gz files.
  1. See:
6 Likes