rspamd/rspamd.com

Download instructions have been broken for a while for Fedora

Closed this issue · 6 comments

The Fedora package download instructions are blended in with CentOS 7/8 instructions. It's not clear what should be done for Fedora, presumably adding the CentOS 8 repo, which is what I did as Fedora itself does not package rspamd.

The yum instructions are likewise probably meant to be dnf for Fedora now. I see via git blame that these instructions have not been updated for years. How valid / reliable are they?

$ docker run --rm -it fedora:37 bash
$ curl https://rspamd.com/rpm-stable/centos-8/rspamd.repo > /etc/yum.repos.d/rspamd.repo
$ rpm --import https://rspamd.com/rpm-stable/gpg.key
$ dnf update


$ dnf install rspamd

Last metadata expiration check: 0:01:12 ago on Mon Feb  6 21:43:04 2023.
Error: 
 Problem: conflicting requests
  - nothing provides libicudata.so.60()(64bit) needed by rspamd-3.4-1.x86_64
  - nothing provides libicui18n.so.60()(64bit) needed by rspamd-3.4-1.x86_64
  - nothing provides libicuio.so.60()(64bit) needed by rspamd-3.4-1.x86_64
  - nothing provides libicuuc.so.60()(64bit) needed by rspamd-3.4-1.x86_64
(try to add '--skip-broken' to skip uninstallable packages)


$ dnf install libicu

Last metadata expiration check: 0:02:38 ago on Mon Feb  6 21:43:04 2023.
Dependencies resolved.
==========================================================================================================================
 Package                    Architecture               Version                           Repository                  Size
==========================================================================================================================
Installing:
 libicu                     x86_64                     71.1-2.fc37                       fedora                      10 M

The package depends on .so.60, while current Fedora release has a much higher version:

$ ls -1 /usr/lib64/libicu*

/usr/lib64/libicudata.so.71
/usr/lib64/libicudata.so.71.1
/usr/lib64/libicui18n.so.71
/usr/lib64/libicui18n.so.71.1
/usr/lib64/libicuio.so.71
/usr/lib64/libicuio.so.71.1
/usr/lib64/libicutest.so.71
/usr/lib64/libicutest.so.71.1
/usr/lib64/libicutu.so.71
/usr/lib64/libicutu.so.71.1
/usr/lib64/libicuuc.so.71
/usr/lib64/libicuuc.so.71.1

This has been a problem for a while, see this Sep 2022 report for Fedora 36. Is Fedora still supported? Are the install instructions outdated for Fedora support?

I have not checked, but it would be good to know if aarch64 is also supported on Fedora.

Fedora 28 has the expected libicu version:

$ dnf install libicu

Last metadata expiration check: 0:02:36 ago on Mon Feb  6 23:51:39 2023.
Dependencies resolved.
==========================================================================================================================
 Package                      Arch                      Version                          Repository                  Size
==========================================================================================================================
Installing:
 libicu                       x86_64                    60.2-2.fc28                      fedora                     8.8 M
Installing dependencies:
 libstdc++                    x86_64                    8.3.1-2.fc28                     updates                    496 k

Transaction Summary
==========================================================================================================================
Install  2 Packages

Total download size: 9.3 M
Installed size: 33 M


$ dnf install rspamd

Importing GPG key 0xBF21E25E:
 Userid     : "Rspamd Nightly Builds (Rspamd Nightly Builds) <vsevolod@highsecure.ru>"
 Fingerprint: 3FA3 47D5 E599 BE45 95CA 2576 FFA2 32ED BF21 E25E
 From       : http://rspamd.com/rpm/gpg.key
Is this ok [y/N]: y
Rspamd stable repository                                                                  5.3 kB/s | 9.2 kB     00:01    
Last metadata expiration check: 0:00:00 ago on Mon Feb  6 23:51:39 2023.
Error: 
 Problem: conflicting requests
  - nothing provides libcrypto.so.1.1(OPENSSL_1_1_1)(64bit) needed by rspamd-3.4-1.x86_64


$ find . -name 'libcrypto*'

./usr/lib64/libcrypto.so.1.1
./usr/lib64/libcrypto.so.1.1.0i

libcrypto.so.1.1 seems to be installed (package openssl-1:1.1.0i-1.fc28.x86_64), but for whatever reason rspamd isn't aware of it 🤔


Fedora 29, then provides libicu 62.2, which is too new, while Fedora 27 provides libicu 57.1 which is too old.

Here's the CentOS7 repo instead, more outdated package issues, that are naturally much older:

$  dnf install rspamd

Last metadata expiration check: 0:00:48 ago on Tue Feb  7 00:05:55 2023.
Error: 
 Problem: conflicting requests
  - nothing provides libcrypto.so.10()(64bit) needed by rspamd-3.4-1.x86_64
  - nothing provides libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit) needed by rspamd-3.4-1.x86_64
  - nothing provides libcrypto.so.10(libcrypto.so.10)(64bit) needed by rspamd-3.4-1.x86_64
  - nothing provides libicudata.so.50()(64bit) needed by rspamd-3.4-1.x86_64
  - nothing provides libicui18n.so.50()(64bit) needed by rspamd-3.4-1.x86_64
  - nothing provides libicuio.so.50()(64bit) needed by rspamd-3.4-1.x86_64
  - nothing provides libicuuc.so.50()(64bit) needed by rspamd-3.4-1.x86_64
  - nothing provides libssl.so.10()(64bit) needed by rspamd-3.4-1.x86_64
  - nothing provides libssl.so.10(libssl.so.10)(64bit) needed by rspamd-3.4-1.x86_64

If neither of the CentOS repo's are meant to be used with Fedora (which is what the docs seem to have implied), then the rspamd support is broken:

$ docker run --rm -it fedora:37 bash
$ dnf update
$ dnf install rspamd

Last metadata expiration check: 0:00:39 ago on Tue Feb  7 00:09:27 2023.
No match for argument: rspamd
Error: Unable to find a match: rspamd

This was the case from Fedora releases 27 to 37. So I'm doubtful the docs are accurately describing what should be done? Perhaps at one point it worked with Fedora when the docs were written? But since packages update, only Fedora 28 seems suitable (but even then fails to recognize the OpenSSL dependency).

It would be nice to have valid Fedora instructions, or remove the documentation claiming it is supported?

So this support has potentially been broken for 5 years, or at least 4?

Maintainers are revising how packages are built, this may be resolved by activity shared in rspamd/rspamd#4390

One should have been using something like fedora-22 rather than centos-8.

Fedora is these days not a platform that packages are produced for, please consider using Rspamd in Docker/Podman.

One should have been using something like fedora-22 rather than centos-8.

I don't think it'd have mattered. The same issues would occur IIRC.

please consider using Rspamd in Docker/Podman

The interest was in using rspamd in a docker container but a fedora base image.

Around the time of my last activity here I was working on a revised container build system workflow that produced fedora packages + images. If I ever need it, I can look into resuming that work and trying to upstream it to you in future 👍

The interest was in using rspamd in a docker container but a fedora base image.
Around the time of my last activity here I was working on a revised container build system workflow that produced fedora packages + images. If I ever need it, I can look into resuming that work and trying to upstream it to you in future 👍

I'm not keen on carrying more variants of this image; we have release/nightly builds for AMD64/ARM64 in ASAN/release flavours - so 8 images from one distribution.