Terra
FAQ

FAQ

Repo Information

What packages does Terra have?

A lot!

Some popular packages include:

You can search packages via dnf search, pkgs.org (opens in a new tab), or Repology (opens in a new tab).

Why YET another repository? Why not RPM Fusion? Why not Copr?

The main principles that guide Terra are:

  • Ease of use, for users, maintainers, distros, and projects.
    • For users, we purposely chose to host the project on a monorepo on GitHub so it's easy to discover, debug, and report issues. In general, we emphasize pragmatism when it improves the user experience.
    • For maintainers, we try to lower the burden required to contribute by:
      • Using common and easily accessible platforms such as GitHub.
      • More lenient guidelines, such as allowing anonymous contributions, online builds, and all packages that are redistributable.
      • Heavily documenting our workflow and RPM packaging in general.
      • Using a custom toolchain and set of packaging helpers/macros, that extend on Fedora's.
    • For distros, we provide a shared infrastructure that allows them to collaborate with other distros.
    • For projects, we give an easy path to distribute their software with minimal downstream modifications, near to immediate updates, and less red tape.
      • For example, Terra and Prism Launcher (opens in a new tab) have worked together in order to automatically build and distrbute nightly versions of Prism Launcher, that allows users to test new changes and discover bugs, before they hit a stable release.
      • Another example is with the Stardust XR (opens in a new tab) project, which was a largely collaborative effort to bring their software to end-users.
  • Automation that tracks, updates, and backports packages, reducing the time between upstream release and distribution to end-users. Additionally, this reduces a significant burden for maintainers, who have lives too ;p.
  • The latest and greatest, which is why Terra offers nightly, preview, and rolling-release versions of packages when needed.

Due to our principles, our goals for Terra are different than the goals of other repositories. Here is a comparison:

  • RPM Fusion (opens in a new tab) is a great repository, but it doesn't have the level of openness and transparency we're aiming for. Additionally, Terra runs on a rolling release model, which Fusion doesn't claim to meet.
    • Of course, these aspects have benefits and trade-offs, rolling release means you get the latest and greatest, but has a level of implied instability. Lowering the bar for contribution allows for more people to contribute more packages, which may be a trade-off in quality. We try to balance these aspects and find a solution we think works best.
  • Copr (opens in a new tab) is great for individuals who want to utilize Fedora infrastructure to maintain and package personal repositories.
    • However, this diverges from a major aspect of Terra, which is our shared infrastructure, maintainers, and community. We belive this allows for a more consistent standard of quality and discoverability of packages.

A much more detailed answer can be found from one of our maintainers: https://github.com/terrapkg/packages/issues/6897#issuecomment-3447981771 (opens in a new tab).

Why do you hate Fedora?

We don't. We maintain a good relationship with the Fedora Project, several maintainers, and other downstreams. Note that Terra does not replace Fedora, it depends on and supplements Fedora. While we may have disagreements of principle with upstream, we still highly value and respect their work, in which Terra would not be possible without. We do market Terra in a way that some may feel provocative, but our intent is not to denegrate the work of others, but rather differentiate ourselves as a project.

Technical details

Where is the file server?

https://repos.fyralabs.com/terrarawhide/ (opens in a new tab)

or for sources

https://repos.fyralabs.com/terrarawhide-source/ (opens in a new tab)

Replace rawhide with your Fedora version release number.

What is your Build Infrastructure?

Andaman (opens in a new tab). x86 packages are built in Github Actions (opens in a new tab), while ARM packages are built using a cluster of Mac Minis owned and operated by Fyra Labs. These builds are then pushed to the repo.

Why Andaman (opens in a new tab)?

Written in rust, it provides an easy and efficient way to manage packages. Ultramarine Linux (opens in a new tab) did use Koji, but the complexity makes it harder for us to maintain packages, which is why we decided to create anda.

Anda is responsible for handling autoupdate and building the output artifacts. It supports both rpmbuild and mock, which couldn't be done using koji.

What is Subatomic (opens in a new tab)?

It manages, uploads, and signs packages.

Where does the package signing key live, and how is it protected?

Subatomic (opens in a new tab) runs on JWT tokens, and only Cappy (one of the maintainers) and the pipeline have them. The secret changes once in a while (and no one has it). The GPG signing key lives separately from the actual repositories.

The repo server is only accessible via HTTPS at https://repos.fyralabs.com/ (opens in a new tab), and is only accessible by system administrators.

Who has direct access to Terra?

See team members of terrapkg (opens in a new tab).

How can I grab the SRPMs?

https://repos.fyralabs.com/terrarawhide-source/ (opens in a new tab)

You should be able to grab them by dnf download --source <pkgname>