On Tue, Feb 27, 2024 at 10:15 AM Dominique Leuenberger <dimstar@opensuse.org> wrote:
On Tue, 2024-02-27 at 16:03 +0100, Martin Wilck via openSUSE Factory wrote:
Extrapolating from the OBS requests I got for the few packages I am maintaining, there must be hundreds SRs floating around to apply this change to almost every spec, just for openSUSE.
Factory has (had) a total of 2088 packages affected by %patchN on Feb 20 2024
This morning, Factory had 1099 packages affected. Progress is pretty good for something that will only break on us in a year (or half a year, should we really get RPM 4.20 that early into Factory) (I think, taking all pending SRs into account, we are like 80% done with this change)
The fact that they considered it makes it worse, not better, in my opinion. They deliberately decided to make their own lives easier and have everybody else deal with it. Yes, it's possible to "adjust" with simple scripting, and no, that doesn't mean it's not a problem.
There are very interesting things on the horizon for RPM/Spec (like dynamic spec generation, doing away with a lot of boilerplate)
Just as an example: https://github.com/rpm-software-management/rpm/issues/1087
To not stay in the way of the future, the past sometimes needs to be forgotten.
We need to get better at incorporating updated stuff then at the lower layers. We're very slow compared to other rolling distributions and non-rolling platforms.
This syntax has been supported for more than 25 years, and while it has always been kind of strange, it's easy to remember and widely used. By deprecating this syntax, they are causing hundreds of maintainers pointless work.
It's a simple automatic find and replace and has been done in the past few days for a couple thousand of packages already. There are far more API changes in various upstream packages which would warrant such a dramatic statement. This one does not.
Sorry if I sound dramatic. You are right, there's a pattern, and this one is not the worst example.
I can't help myself, I find it annoying that people break backward compatibility light-heartedly like this, "because they can". I wish more upstream maintainers took API compatibility as seriously as Linus does.
RIGHT! The kernel is known to not break API /s (the only thing they commit to is user space - but definitively not the kernel API. Ask nVidia :P - or the virtualbox maintainer )
The kernel breaks the userspace API too. It happens, and most of the time nobody cares. The syscall interface is the only thing that's actually protected. Everything else is not. -- 真実はいつも一つ!/ Always, there's only one truth!