Fabio Valentini <decathorpe(a)gmail.com> writes:
On Mon, May 3, 2021 at 11:48 PM Dan Čermák
<dan.cermak(a)cgc-instruments.com> wrote:
>
> FeRD <ferdnyc(a)gmail.com> writes:
>
> > I'd *like* the spec file to indicate that the existing F34 clazy package
> > depends on the clang-11.0.0 package, specifically, and that my updated spec
> > file builds a clazy that "Requires: clang-12.0.0". (Or, really, any
> > clang-12* package.) That way, the clang11 packages will no longer satisfy
> > either of them, and clazy will be properly flagged as requiring a rebuild.
> > ...But without some /usr/lib/rpm/macros.d/ file to provide the necessary
> > version numbering, I'm not super clear on how to go about doing that.
>
> You can query the rpm database during the rpm build, e.g. via:
>
> Requires: clang = %(rpm -q --qf '%%{version}' clang)
>
> Calling rpm from within rpm used to be frowned upon, because it can lead
> to really nasty issues if the "inner" rpm is a different than the outer
> one. But since mock nowadays uses bootstrap mode by default, these
> issues should no longer exist.
Theoretically, yes. However, this make it necessary to rebuild clazy
even for minor + patch releases of clang.
Right, forgot about that.
An RPM macro to indicate the major clang version would be a much
cleaner solution.
Agreed here.
You could also try to use the symlink in %{_libdir}/clang/$MAJOR_VERSION [1]
to require the major version of clang at build time, but not sure if
that's what you want either.
Cheers,
Dan
Footnotes:
[1] see:
https://src.fedoraproject.org/rpms/clang/c/43b5ca7f2bb9459e3c7cd55fffbf94...