Files could not be expanded: conflict in file clamav.spec

Antivirus Toolkit

Edit Package clamav

Clam AntiVirus is an open source (GPL) anti-virus toolkit for UNIX,
designed especially for e-mail scanning on mail gateways. It provides a
number of utilities including a flexible and scalable multi-threaded
daemon, a command line scanner and advanced tool for automatic database
updates. The core of the package is an anti-virus engine available in a
form of shared library.

Here is a list of the main features:

* command-line scanner

* fast, multi-threaded daemon with support for on-access scanning

* milter interface for sendmail

* advanced database updater with support for scripted updates and
digital signatures

* virus scanner C library

* on-access scanning (Linux® and FreeBSD®)

* virus database updated multiple times per day (see home page for
total number of signatures)

* built-in support for various archive formats, including Zip, RAR,
Tar, Gzip, Bzip2, OLE2, Cabinet, CHM, BinHex, SIS and others

* built-in support for almost all mail file formats

* built-in support for ELF executables and Portable Executable files
compressed with UPX, FSG, Petite, NsPack, wwpack32, MEW, Upack
and obfuscated with SUE, Y0da Cryptor and others

* built-in support for popular document formats including MS Office and
MacOffice files, HTML, RTF and PDF

Refresh
Refresh
Source Files

Sources could not be expanded: conflict in file clamav.spec

Show unmerged sources

Comments 8


Arjen de Korte's avatar

The changelog has become quite a mess. The entry for the update to clamav 0.103.4 is duplicated now. And also note that the addition of * obsoletes clamav-disable-timestamps.patch to the changelog entry for 0.103.2 is wrong: this patch was already removed to releases earlier.


Reinhard Max's avatar

Thanks for the hint. That happened when I merged your submission to a half-done SLE-15 sync that I had still laying in my osc working area. Fixed now.


Eric Schirra's avatar

I think the last change has some mistakes. The changefile ist not right. And the pakage can no more build in Leap:

unresolvable: have choice for rust+cargo >= 1.61.0: cargo cargo1.61 cargo1.62 cargo1.63 cargo1.64 cargo1.65 cargo1.66 cargo1.67 cargo1.68 cargo1.69 cargo1.70 cargo1.71 cargo1.72 cargo1.73 cargo1.74 cargo1.75 cargo1.76, have choice for rust+rustc >= 1.61.0: rust1.61 rust1.62 rust1.63 rust1.64 rust1.65 rust1.66 rust1.67 rust1.68 rust1.69 rust1.70 rust1.71 rust1.72 rust1.73 rust1.74 rust1.75 rust1.76, have choice for cmake-implementation = 3.17.0 needed by cmake3: cmake3-full cmake3-mini

Please fix your last change. Thank you.


Gregor Dschung's avatar

I don't think the issue is the spec file, but the projects configuration.

In <code>home:chkpnt:mailserver</code>, I'm using

Prefer: cargo
Prefer: cmake3-mini

# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
Ignore: cmake3-mini:this-is-only-for-build-envs

so the build knows which package is prefered if there are multiple packages that could be chosen to satisfy the dependencies. At least for Leap 15.5, the build now succeeds.


Eric Schirra's avatar

I find that extremely unpleasant.

I myself only need Prefer: cargo Prefer: cmake3-mini in the config to build Leap 15.5.

Leap 15.6 still does not build. So I still stick to the fact that a mistake happened during the last update.


Gregor Dschung's avatar

Yes, I can confirm that. And I've found the cause: rust > 1.71 is built with and requires gcc-12, so gcc-12 is installed in addition to gcc-11, which is used by clamav. One of the ctests (Test #2: libclamav_rust) is trying to link with gcc-12 instead of gcc-11. But as gcc12-c++ isn't installed in the build environment, this results in a linker error.

My work around is now to use the following prjconf:

# clamav is compiled with gcc-11, but rust > 1.71 requires gcc-12.
# This leads to a failing ctest of clamav as "Test #2: libclamav_rust" is trying to link with gcc-12, which fails as gcc12-c++ isn't installed.
Prefer: cargo1.71 cargo1.70 cargo1.69
Prefer: cmake3-mini

%if 0%{?sle_version} == 150400 && 0%{?is_opensuse}
# Don't know why, but otherwise on Leap 15.4 (for which I have to include devel:languages:rust), rust1.77 is used together with cargo1.71
Ignore: rust
Required: rust1.71
%endif

# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
Ignore: cmake3-mini:this-is-only-for-build-envs

I guess the spec-file should specify the same gcc version that is used by rust.


Eric Schirra's avatar

with your first comment "Prefer: cargo Prefer: cmake3-mini" Leap 15.5 and Leqap 15.6 does not build version 1.3.0

With "Prefer: cargo1.71 cargo1.70 cargo1.69 Prefer: cmake3-mini" Leap 15.5 and Leap 15.6 are build now. (My previous comment was wrong)

openSUSE Build Service is sponsored by