Le mar. 7 avr. 2020 à 12:08, Thierry Vignaud <thierry.vign...@gmail.com> a
écrit :

> > So soon you say? Well, its almost a year since 4.15 alpha and annual
>
>> > release schedule isn't *that* fast. More like trying to get back on
>> > track with this release stuff after some erratic years.
>> >
>> > Anyway, here goes. The two major themes here are: preparing to finally
>> > kick Berkeley DB out, and (conditional) macro expressions. If you ever
>> > thought %{?foo:bar} is too limited, this one is for you.
>>
>> So this is what I get for trying to cut a release on Monday: the
>> originally linked rpm-4.15.90-git14970 snapshot has a buggy rpm.pc file
>> which prevents using it for linking. Since an important aspect of alpha
>> testing is testing other software... duh.
>>
>> Just pushed a new snapshot (rpm-4.15.90-git14971) to fix that and
>> updated the download links + hashes, but if you were eager enough to
>> have grabbed the first snapshot then you'll want to update.
>>
>> >
>> > Highlights include:
>> > - Powerful macro and %if expressions including ternary operator
>> > - New sqlite and read-only BDB backends, NDB promoted to stable
>> > - Automatic SSD detection and optimization on Linux
>>
>> Seems I also forgotten some highlights as well:
>>
>> - Support for dependency generation with parametric macros
>> - Support for dependency generation based on MIME types
>>
>> The details and download info still at
>>
>>         https://rpm.org/wiki/Releases/4.16.0
>>
>
> I kept procrastining for 2 weeks but, as usual ( :-) ), there's a
> regression caught by urpmi's testsuite.
> The nice thing is that there's only one regression this time.
>
> t/superuser--srpm-bootstrapping.t fails:
>
> t/superuser--srpm-bootstrapping.t                             (Wstat: 1536
> Tests: 21 Failed: 6)
>   Failed tests:  4, 9-10, 14, 19-20
>   Non-zero exit status: 6
>
> The "interesting" part is that:
> 1) if I skip t/02create_pkgs.t (building rpms from test spec files) and
> keep the rpms generated with rpm-4.15.1, it passes
> 1) Similarly if I skip t/02create_pkgs.t and keep the rpms generated with
> rpm-4.16.0a, running the testsuite with rpm-4.15 fails
>
> I'ven't dig further, whether it's a bug in rpm or a change in rpm showing
> a bogus expectation in urpmi.
> And since I don't have much time, let's report the issue.
> At least, there's one change:
> $ rpmdiff
> ./media.4.15/SRPMS-srpm-bootstrapping/srpm-bootstrapping-1-1.src.rpm
> ./media.4.16/media/SRPMS-srpm-bootstrapping/srpm-bootstrapping-1-1.src.rpm
> added       PROVIDES srpm-bootstrapping = 1-1
>
> (which is expected)
>

Eventually, it's that new provides that makes URPM resolver to derail…
It's a 2 lines changes in URPM::Resolve
This is because of"Add NEVR provides for all packages that would be built
into source rpms"
commit 75ec16e660e784d7897b37cac1a2b9b135825f25

This broke expectations in URPM/urpmi when processing SRPMs…
From baf3fa111904e59a6b46e8e32e31234ddd161cb6 Mon Sep 17 00:00:00 2001
From: Thierry Vignaud <thierry.vign...@gmail.com>
Date: Tue, 7 Apr 2020 16:12:01 +0200
Subject: [PATCH] workaround rpm-4.16 adding provides to SRPMs

rationale:
rpm-4.16 adds provides for all generated RPMS to SRPMs, which breaks
urpmi's testsuite (t/superuser--srpm-bootstrapping.t)

See rpm's commit 75ec16e660e784d7897b37cac1a2b9b135825f25
---
 URPM/Resolve.pm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm
index 33504b5..c799dff 100644
--- a/URPM/Resolve.pm
+++ b/URPM/Resolve.pm
@@ -641,11 +641,12 @@ sub unsatisfied_requires {
 	    #- check on the selected package if a provide is satisfying the resolution (need to do the ops).
 	    foreach (grep { exists $state->{selected}{$_} } keys %{$urpm->{provides}{$n} || {}}) {
 		my $p = $urpm->{depslist}[$_];
+		next if $p->arch eq 'src'; # ignore provides from SRPM (new in rpm-4.16)
 		!$urpm->{provides}{$n}{$_} || $p->provides_overlap($prop) and next REQUIRES;
 	    }
 
 	    #- check if the package itself provides what is necessary.
-	    $pkg->provides_overlap($prop) and next REQUIRES;
+	    $pkg->arch ne 'src' and $pkg->provides_overlap($prop) and next REQUIRES;
 
 	    #- check on installed system if a package which is not obsoleted is satisfying the require.
 	    my $satisfied = 0;
-- 
2.26.0

_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to