Skip to main content

How can Copr help with broken dependencies

· 4 min read
Matej Focko

When you decide to run Fedora on your VPS, you might get screwed over by using random repositories…

When I “reserved” my VPS1 back in June '20, I slapped Fedora on it without thinking. I bet 99% of people would say that I'm crazy for doing such thing2, BUT I've been using Fedora on my PCs for some time already and it felt very stable and natural to just use, even for VPS.

One of the first things I've done was setting up a mail server. You may guess what's the fun part about having a mail server… Yes, it's all the spam you receive and only then you realize how much “crap” gets filtered on free mail services. To battle this problem I chose to use rspamd that had CentOS support, but someone had a Copr repository that I used to install it.

How does Copr repositories work?

If you have ever used Ubuntu, you might be familiar with the concept since it is very close to PPAs.

tl;dr of the whole process consists of

  1. enabling the Copr repository, and
  2. installing the desired package.

So in shell you would do

# dnf copr enable ‹copr-repository›
# dnf install ‹package-from-the-repository›

And… that's it! Nothing else needed! Simple, right? And literally same process as you would do for the PPA.

AUR

On the other hand, if you are familiar with the archLinux, you definitely know AUR and what it can do for you. Copr repository is pretty similar, but the packages are prebuilt in Copr and Copr repositories can carry the required dependencies for said packages, which simplifies the distribution, and can even help with installing singular packages (when you just need the dependency, not everything).

My issue

Now you might wonder how would I use it on my VPS. It's rather simple, once in 6 months a new Fedora release comes out. And you need to upgrade to newer release… You don't need to do it right away and for such setup it probably isn't even recommended.

tip

Fedora releases are supported for a year, i.e. they live 6 months till the next release and then another 6 months till another release.

Some people prefer to run one version “behind”. If you ever decide to run it on your home server or in a similar setup, it might be a pretty good idea to follow. I'm using the “latest greatest”, cause why not 😄

One way or another, you still need to bump the release every six months, unless you'd bump 2 releases at once every year, which would be a decision, since, at least I, cannot see any benefits in it… You don't go for “stability”, cause once a year you switch to the latest release and then, before you bump, you use one year old software, so you're not even using the latest.

Fast-forward 2 years in the future, new Fedora release came out (October '22) and I was doing an upgrade. Dependencies of the rspamd have been updated and rspamd builds in Copr have failed and no one fixed it. Cool, so now I can upgrade, but can either ignore the dependencies or uninstall the rspamd…

How can Copr help?

I have managed to find specfile for the rspamd package that they use for CentOS. There were some files apart from the specfile, so I had to make an SRPM locally and then… I just uploaded the SRPM to the Copr to build an RPM.

I have switched the previous Copr repository for rspamd with my own and happily proceeded with the upgrade.

Conclusion

Copr is heavily used for testing builds on the upstream with Packit. However, as you can see, it is possible to use it very well for packaging your own stuff and avoiding issues (such as the one I have described above), if need be.

Footnotes

  1. vpsFree.cz

  2. Even though I've been running archLinux on some Raspberry Pi's and also on one of my “home servers”, before getting the VPS. You could say I like to live on the edge…