Where do I begin?

Fedora/RPMs build process is all contained in a spec-file.

Where do I find these spec-files?

Depending on the projects you are interested in, you can find spec-files under:

Fedora sources are found in src.fedoraproject.org, under rpms/*, for example rpms/bash.

_images/downstream_0.png

Hint

Trouble finding the link? Sometimes the source spec/rpm (what is in the src.fedoraproject.org) is differently named to the binary rpms (what you install with dnf install).

You can find the original source from dnf info or packages.fedoraproject.org.

$ dnf info atuin-all-users
Name            : atuin-all-users
Epoch           : 0
Version         : 18.6.1
Release         : 5.fc43
Architecture    : noarch
Installed size  : 777.0   B
Source          : atuin-18.6.1-5.fc43.src.rpm

A single copr project can build multiple packages, which in turn can have multiple builds (updates) for multiple chroots (distro bases), which in turn ultimately provide the rpms.

What you need to navigate to here is a build which you want to investigate.

Upstream projects can also have their own spec file. One thing to be conscious about though is whether the project’s sources are alongside the spec file or not. The latter case is called a dist-git, the same as with “Fedora source”.

_images/upstream_0.png

Dist-git-like repo

_images/upstream_1.png

Upstream source repo

Note

Building rpms with upstream sources is a more involved process requiring quite some automation. This will be covered in the Upstream packaging section