blog: add Copr post

Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
Matej Focko 2023-08-02 23:08:19 +02:00
parent 3db5b21033
commit ad9e964c4b
Signed by: mfocko
GPG key ID: 7C47D46246790496

113
blog/2023-08-02-copr.md Normal file
View file

@ -0,0 +1,113 @@
---
title: How can Copr help with broken dependencies
description: Copr comes to save you when maintainer doesn't care.
date: 2023-08-02
authors: mf
tags:
- 🏭
- red-hat
- copr
- admin
- vps
---
When you decide to run Fedora on your VPS, you might get screwed over by using
random repositories…
<!--truncate-->
When I “reserved” my VPS[^1] 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 thing[^2],
**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](https://github.com/rspamd/rspamd) that had CentOS support, but someone
had a [Copr](https://copr.fedorainfracloud.org/) 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](https://help.ubuntu.com/community/PPA).
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.
:::tip 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 :smile:
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](https://github.com/rspamd/rspamd/blob/master/rpm/rspamd.spec) 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](https://copr.fedorainfracloud.org/coprs/mfocko/rspamd/build/5046567/)
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](https://packit.dev). 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.
[^1]: [vpsFree.cz](https://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…