On Thu, Apr 01, 2021 at 12:33:48AM +0200, Kalev Lember wrote:
On Thu, Apr 1, 2021 at 12:18 AM Zbigniew Jędrzejewski-Szmek <
zbyszek(a)in.waw.pl> wrote:
> On Wed, Mar 31, 2021 at 11:45:54PM +0200, Miro Hrončok wrote:
> > On 31. 03. 21 21:52, Ben Cotton wrote:
> > >* Strict checking for unpackaged content in builds
> > > ...
> > >* Many existing packages will fail to build due to the stricter
> > >buildroot content checking. Fixing this in the packaging is always
> > >backwards compatible. We could temporarily set
> > >`%_unpackaged_files_terminate_build 0` in rawhide to alleviate initial
> > >impact if necessary.
> >
> > This is my main concern with this update.
> >
> > tl;dr If you %exclude something and there is no other subpackage to
> > own the files, the build fails:
>
> Whaaat? What is the point of %exclude if not to exclude files from the
> list? Why would rpm upstream want to break this? Seems like a completely
> backwards change that will make packaging harder instead of easier.
>
%exclude can be used for splitting up packages, so you can do
%files foo
%exclude bar.so
*.so
%files bar
bar.so
If my understanding is right, the above is what rpm upstream considers
correct use for %exclude.
Thank you for the explanation.
I believe the motivation for that change is brp scripts that would
still
see the files that are %excluded in files and possibly do wrong things.
Using rm in install doesn't have that problem.
That sounds like a plausible concern. But is this something that
actually caused real problems, or just a theoretical issue?
For just not packaging some files, rm at the end of %install usually
works
just fine (but people have also been using %exclude for that and this
change would break a bunch of packages that do this. I'm unsure if it's a
good thing or not).
If the system was designed like this initially, that'd be fine.
But this pattern is widely used and up-to-now there was no indication
in the packaging guidelines or rpm output that this is not the recommended
pattern. In fact, I know some people preferred the (declarative) %exclude
over the (imperative) rm.
And Miro raises another issue upthread: there might be packages which
require files in %check, and %exclude them. This change would require
removing those files at the end of %check, which is rather ugly.
Right we have ~1000 packages which will break. There is also an
unknown number of non-distro packages which may be affected.
I'm not happy about how rpm is changing in a backwards incompatible way.
E.g. this means that suddenly ~5% of F33 will not rebuild on F35. I think
we should have a strong justification for such a change.
Zbyszek