Packaging: why does the RPM spec have both Provides & Obsoletes for the same packages?

Dridi Boukelmoune dridi at
Tue Aug 24 16:36:36 UTC 2021

Hey Geoff,

On Tue, Aug 24, 2021 at 2:40 PM Geoff Simmons <geoff at> wrote:
> Hello,
> The spec file for RPM packages:
> ... has this passage:
> Provides:  varnish-libs%{?_isa} = %{version}-%{release}
> Provides:  varnish-libs = %{version}-%{release}
> Obsoletes: varnish-libs
> Provides:  varnish-docs = %{version}-%{release}
> Obsoletes: varnish-docs
> Provides:  varnish-debuginfo%{?_isa} = %{version}-%{release}
> Provides:  varnish-debuginfo = %{version}-%{release}
> Obsoletes: varnish-debuginfo
> This may be an RPM technique that I'm not familiar with, but why does it
> have both Provides and Obsoletes for -libs, -docs and -debuginfo?
> Since the Obsoletes don't specify a version, my best guess is that it's
> something about updating to newer versions. But wouldn't newer versions
> (newer version and RPM release number) be enough for that?

They should ideally provide a version, but since we have packaging
that could compete with first party packages we can't really predict
what version we would go against.

Keeping Provides doesn't break an installation of -docs for example,
because ultimately the package containing the docs is going to be
installed thanks to the Provides.

> Asking because I'm building a custom RPM package for which I'd also like
> to have the debuginfo. Creating the debuginfo RPM is easy enough, by
> removing this line from the spec:
> %global debug_package %{nil}
> But then when you try to run debuginfo-install, it says that the
> debuginfo package is obsoleted by the Varnish package.
> I can get the debuginfo to install by removing the Obsoletes line for
> varnish-debuginfo, and rebuilding the RPMs. But I'm confused about why
> it was there in the first place, and concerned that I may have broken
> something else by doing so.

I think the reason why we didn't want the traditional separation
debuginfo package was the poor quality of panic backtraces. Once
split, installing the separate debuginfo wouldn't improve the

I think this specific point was a result of:

It's been a while, I don't remember the details.


More information about the varnish-dev mailing list