rpm.org 4.16.x is coming to Th

Jan Rękorajski baggins at pld-linux.org
Sun Jan 31 20:57:13 CET 2021


On Sun, 31 Jan 2021, Neal Gompa wrote:

> On Sun, Jan 31, 2021 at 4:16 AM Jan Rękorajski <baggins at pld-linux.org> wrote:
> >
> > On Mon, 11 Jan 2021, Neal Gompa wrote:
> >
> > > On Mon, Jan 11, 2021 at 10:09 AM Elan Ruusamäe <glen at pld-linux.org> wrote:
> > > >
> > > >
> > > > On 11.01.2021 10:38, Jan Rękorajski wrote:
> > > > > If you think there is still something that is blocking the change please
> > > > > speak*now*.
> > > >
> > > > are these pld introduced noauto* macros and files supported in 4.16 build?
> > > >
> > > >
> > > > %define         _noautoprovfiles        %{_libdir}/%{name}
> > >
> > > No, you need to use the standard filtering mechanism:
> > > https://docs.fedoraproject.org/en-US/packaging-guidelines/AutoProvidesAndRequiresFiltering/
> >
> > And, sadly, this mechanism is again a piece of crap, and another thing that was
> > solved 20 years ago in PLD.
> >
> > rpm5 supports multiple lines with multiple regexps each. rpmfcExpandRegexps.
> >
> 
> In the years I've been involved in rpm.org upstream, literally nobody
> has ever asked for this to be made better, much less submitted
> patches. Complaining about it being "crap" and "solved 20 years ago in
> PLD" is unhelpful when as far as I know, nobody from PLD talked to
> rpm.org rpm upstream in at least the past decade, even before PLD
> switched to rpm5.org rpm back in 2012.

Sorry, but it was working AFAIR before the split without any special
patching. There was no rpm5 20 years ago :)

And how would I know that rpm.org does not have something that was there
so long ago?

> > rpm.org rpm can only do a single regexp in a single macro, so no things
> > like we have:
> >
> > %__noautoreq            %(sed -e s'/#.*//' /etc/rpm/noautoreq) \
> >         %{?_noautoreq: %{_noautoreq}} \
> >         %{?_noautoreq_java: %{__noauto_regexp_helper -p java %{_noautoreq_java}}} \
> >         %{?_noautoreq_mono: %{__noauto_regexp_helper -p mono %{_noautoreq_mono}}} \
> >         %{?_noautoreq_pear: %{__noauto_regexp_helper -p pear %{_noautoreq_pear}}} \
> >         %{?_noautoreq_perl: %{__noauto_regexp_helper -p perl %{_noautoreq_perl}}} \
> >         %{?_noautoreq_pyegg: %{__noauto_regexp_helper -p pythonegg %{_noautoreq_pyegg}}} \
> >         %{?_noautoreq_py3egg: %{__noauto_regexp_helper -p python3egg %{_noautoreq_py3egg}}} \
> >
> 
> That's technically a single definition, isn't it?

Unfortunately not for the regexp(3) :(
It's a multiline blob that's far from being a valid regexp as such.

> > or, in a spec file
> >
> > %define _noautoreq libFoo.so.1 libBar.so.1
> >
> > I'll see if I can fix this...
> >
> 
> You could make a macro wrapper that generates the RPM native one. Or
> submit a patch to rpm.org rpm to support multiple regexps in the
> current stuff.

Wrapper it is. TBH adding a wrapper is more straightforward than
figuring out hacky rpm5 code and adapting it for rpm.org.

-- 
Jan Rękorajski                    | PLD/Linux
SysAdm | baggins<at>pld-linux.org | http://www.pld-linux.org/


More information about the pld-devel-en mailing list