aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <thierry.vignaud@gmail.com>2021-10-19 10:29:05 +0200
committerThierry Vignaud <thierry.vignaud@gmail.com>2021-10-19 10:29:05 +0200
commit3fac0be4adab0ee63b6473d613982b418cc7ab92 (patch)
tree577237ddadd3c733691ca087b2392b2a45711b0a
parent9160156f8b0243336de989df5ea94432958e9679 (diff)
downloadperl-URPM-3fac0be4adab0ee63b6473d613982b418cc7ab92.tar
perl-URPM-3fac0be4adab0ee63b6473d613982b418cc7ab92.tar.gz
perl-URPM-3fac0be4adab0ee63b6473d613982b418cc7ab92.tar.bz2
perl-URPM-3fac0be4adab0ee63b6473d613982b418cc7ab92.tar.xz
perl-URPM-3fac0be4adab0ee63b6473d613982b418cc7ab92.zip
Prevent SRPM to conflicts with its own build deps
Aka gdb.src would be conflicting with gdb-minimal which is required by debugedit: "The following packages have to be removed for others to be upgraded: debugedit-5.0-3.mga9.x86_64 (due to missing gdb-minimal) gdb-minimal-10.2-2.mga9.x86_64 (due to conflicts with gdb-headless[> 10.2-2.mga9]) rpm-build-4.17.0-2.mga9.x86_64 (due to unsatisfied debugedit >= 0.3)" Which happen because of this deps chain: rpm-build -> debugedit -> gdb-minimal Where gdb-minimal conflicts with: $ rpm -q --conflicts gdb-minimal gdb-headless < 10.2-2.mga9 gdb-headless > 10.2-2.mga9 Which of course conflicts if urpmi considers the *new* gdb... SRPM... Sigh... Extract of urpmi --debug log ala iurt: selecting gdb-11.1-1.mga9.src requiring bison,dejagnu,expat-devel,flex,fpc,gcc-gfortran,gcc-objc,gcc-plugins,guile3.0-devel,libbabeltrace-devel,libipt-devel,mpfr-devel,python3-devel,readline-devel[>= 6.2-4],rpm-devel,rust,sharutils,source-highlight-devel,texinfo,texinfo-tex,texlive,xxhash-devel for gdb-11.1-1.mga9.src chosen lib64rpm-devel-4.17.0-2.mga9.x86_64 for rpm-devel selecting lib64rpm-devel-4.17.0-2.mga9.x86_64 requiring devel(libcap(64bit)),devel(liblua-5.4(64bit)),devel(libmagic(64bit)),devel(libsqlite3(64bit)),lib64rpm9[== 1:4.17.0-2.mga9],lib64rpmbuild9[== 1:4.17.0-2.mga9],lib64rpmsign9[== 1:4.17.0-2.mga9],rpm[== 1:4.17.0-2.mga9] for lib64rpm-devel-4.17.0-2.mga9.x86_64 (...) chosen lib64rpmbuild9-4.17.0-2.mga9.x86_64 for lib64rpmbuild9[== 1:4.17.0-2.mga9] selecting lib64rpmbuild9-4.17.0-2.mga9.x86_64 set_rejected: lib64rpmbuild9-4.16.1.2-5.mga9.x86_64 (...) installed rpm-build-4.16.1.2-5.mga9.x86_64 is conflicting because of unsatisfied lib64rpmbuild9[== 1:4.16.1.2] promoting rpm-build-4.17.0-2.mga9.x86_64 because of conflict above selecting rpm-build-4.17.0-2.mga9.x86_64 set_rejected: rpm-build-4.16.1.2-5.mga9.x86_64 requiring debugedit[>= 0.3] for rpm-build-4.17.0-2.mga9.x86_64 chosen debugedit-5.0-3.mga9.x86_64 for debugedit[>= 0.3] selecting debugedit-5.0-3.mga9.x86_64 requiring gdb-minimal for debugedit-5.0-3.mga9.x86_64 gdb-minimal-10.2-2.mga9.x86_64 conflicts with already selected package gdb-11.1-1.mga9.src Because it considered: $VAR1 = [ 'gdb-10.2-2.mga9.x86_64', 'gdb-10.2-2.mga9.i586', 'gdb-11.1-1.mga9.src' ];
-rw-r--r--Changes2
-rw-r--r--URPM/Resolve.pm1
2 files changed, 3 insertions, 0 deletions
diff --git a/Changes b/Changes
index 1c002e8..d57f3b6 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,5 @@
+- Prevent SRPM to conflicts with its own build deps
+
Version 5.123 - 4 November 2020
- Fix file descriptor leak in rpm transactions
diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm
index c799dff..24c283b 100644
--- a/URPM/Resolve.pm
+++ b/URPM/Resolve.pm
@@ -1307,6 +1307,7 @@ sub _handle_conflicts_with_selected {
if (my $n = property2name($_)) {
foreach my $p ($urpm->packages_providing($n)) {
$pkg == $p and next;
+ $p->arch eq 'src' and next;
$p->provides_overlap($_) or next;
if (exists $state->{selected}{$p->id}) {
$urpm->{debug_URPM}($pkg->fullname . " conflicts with already selected package " . $p->fullname) if $urpm->{debug_URPM};