Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package product-builder for openSUSE:Factory checked in at 2021-09-06 13:42:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/product-builder (Old) and /work/SRC/openSUSE:Factory/.product-builder.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "product-builder" Mon Sep 6 13:42:34 2021 rev:39 rq:917081 version:1.4.2 Changes: -------- --- /work/SRC/openSUSE:Factory/product-builder/product-builder.changes 2021-09-04 22:32:16.323906394 +0200 +++ /work/SRC/openSUSE:Factory/.product-builder.new.1899/product-builder.changes 2021-09-06 13:42:35.413844516 +0200 @@ -1,0 +2,7 @@ +Mon Sep 6 11:03:58 UTC 2021 - Adrian Schr??ter <adr...@suse.de> + +- 1.4.2 + * support newest rpm version mode (no repository priority) + * helpful error message when exact version is required + +------------------------------------------------------------------- Old: ---- product-builder-1.3.4.obscpio New: ---- product-builder-1.4.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ product-builder.spec ++++++ --- /var/tmp/diff_new_pack.XIqdqQ/_old 2021-09-06 13:42:35.961845202 +0200 +++ /var/tmp/diff_new_pack.XIqdqQ/_new 2021-09-06 13:42:35.965845207 +0200 @@ -23,7 +23,7 @@ Name: product-builder Conflicts: kiwi Conflicts: kiwi-instsource -Version: 1.3.4 +Version: 1.4.2 Release: 0 Provides: kiwi-schema = 6.2 Source: product-builder-%version.tar.xz @@ -42,7 +42,12 @@ Provides: kiwi-packagemanager:instsource Provides: system-packages:kiwi-product +%if 0%{?suse_version} Requires: build +%else +Requires: obs-build +%global debug_package %{nil} +%endif Requires: checkmedia Requires: inst-source-utils Requires: mkisofs ++++++ _service ++++++ --- /var/tmp/diff_new_pack.XIqdqQ/_old 2021-09-06 13:42:35.989845237 +0200 +++ /var/tmp/diff_new_pack.XIqdqQ/_new 2021-09-06 13:42:35.989845237 +0200 @@ -1,8 +1,8 @@ <services> <service name="obs_scm" mode="manual"> <param name="url">https://github.com/openSUSE/product-builder.git</param> - <param name="revision">1.3.4</param> - <param name="version">1.3.4</param> + <param name="revision">1.4.2</param> + <param name="version">1.4.2</param> <param name="scm">git</param> <param name="extract">rpm/product-builder.spec</param> </service> ++++++ product-builder-1.3.4.obscpio -> product-builder-1.4.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/product-builder-1.3.4/modules/KIWICollect.pm new/product-builder-1.4.2/modules/KIWICollect.pm --- old/product-builder-1.3.4/modules/KIWICollect.pm 2021-06-28 10:44:13.000000000 +0200 +++ new/product-builder-1.4.2/modules/KIWICollect.pm 2021-09-06 13:21:32.000000000 +0200 @@ -899,7 +899,7 @@ }; } $this->{m_debugPacks}->{$packname}->{'requireVersion'}-> - { "$packPointer->{'version'}-$packPointer->{'release'}" } = 1; + { "$packPointer->{'version'}-$packPointer->{'release'}" } = $packname; return; } @@ -942,6 +942,9 @@ my $count_packs = 0; my $num_packs = keys %{$usedPackages}; my @missingPackages = (); + + my $use_newest_package = defined($this->{m_proddata}->getOpt("USE_NEWEST_PACKAGE")); + PACK: for my $packName(keys(%{$usedPackages})) { if ($packName eq "_name") { @@ -999,14 +1002,20 @@ } my %require_version = %{$packOptions->{requireVersion} || {}}; my $fb_available = 0; + my @sorted_keys; + if ($use_newest_package) { + @sorted_keys = sort {verscmp($poolPackages->{$a}, $poolPackages->{$b})} keys(%{$poolPackages}); + } else { + @sorted_keys = sort { + $poolPackages->{$a}->{priority} + <=> $poolPackages->{$b}->{priority} + || indexOfArray($poolPackages->{$a}->{arch}, \@fallbacklist) + <=> indexOfArray($poolPackages->{$b}->{arch}, \@fallbacklist) + } keys(%{$poolPackages}); + } + PACKKEY: - for my $packKey( sort { - $poolPackages->{$a}->{priority} - <=> $poolPackages->{$b}->{priority} - || indexOfArray($poolPackages->{$a}->{arch}, \@fallbacklist) - <=> indexOfArray($poolPackages->{$b}->{arch}, \@fallbacklist) - } keys(%{$poolPackages}) - ) { + for my $packKey(@sorted_keys) { if ($this->{m_debug} >= 5) { $this->logMsg('I', " check $packKey "); } @@ -1134,7 +1143,7 @@ } # get version-release string $packPointer->{sourcepackage} =~ m/.*-([^-]*-[^-]*)\.[^\.]*\.rpm/; - $this->{m_sourcePacks}->{$srcname}->{'requireVersion'}->{$1} = 1; + $this->{m_sourcePacks}->{$srcname}->{'requireVersion'}->{$1} = $packName; } if ( $this->{m_debugmedium} > 0 ) { # Add debug packages, we do not know, @@ -1163,13 +1172,12 @@ # package processed, jump to the next request arch or package next ARCH unless %require_version; - } # /FARCH - if ($this->{m_debug} >= 1) { - my $msg = " => package $packName not available for " - . "$requestedArch nor its fallbacks"; - $this->logMsg('W', $msg); - } - push @missingPackages, $packName; + } # /PACKKEY + my $msg = "$packName not available for " + . "$requestedArch nor its fallbacks"; + $msg .= " in version ".(keys(%require_version))[0]." by package ".(values(%require_version))[0] if %require_version; + $this->logMsg('W', " => package $msg") if $this->{m_debug} >= 1; + push @missingPackages, $msg; } # /ARCH } # /PACK # Ignore missing packages on debug media, they may really not exist @@ -1748,6 +1756,13 @@ } } +sub verscmp { + my ($candidate, $current) = @_; + + return verscmp_part($current->{'epoch'}, $candidate->{'epoch'}) || + verscmp_part($current->{'version'}, $candidate->{'version'}) || + verscmp_part($current->{'release'}, $candidate->{'release'}); +} #========================================== # lookUpAllPackages @@ -1874,16 +1889,7 @@ if ( $packPool->{$name}->{$repokey} ) { # we have it already in same repo # is this one newer? - my $is_newer = verscmp_part($package->{'epoch'}, $packPool->{$name}->{$repokey}->{'epoch'}); - next if $is_newer < 0; - if ($is_newer eq 0) { - $is_newer = verscmp_part($package->{'version'}, $packPool->{$name}->{$repokey}->{'version'}); - next if $is_newer < 0; - if ($is_newer eq 0) { - $is_newer = verscmp_part($package->{'release'}, $packPool->{$name}->{$repokey}->{'release'}); - next if $is_newer <= 0; - } - } + next if verscmp($packPool->{$name}->{$repokey}, $package) > 0; } # collect data for connected source rpm if( $flags{'SOURCERPM'} ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/product-builder-1.3.4/rpm/product-builder.spec new/product-builder-1.4.2/rpm/product-builder.spec --- old/product-builder-1.3.4/rpm/product-builder.spec 2021-06-28 10:44:13.000000000 +0200 +++ new/product-builder-1.4.2/rpm/product-builder.spec 2021-09-06 13:21:32.000000000 +0200 @@ -23,7 +23,7 @@ Name: product-builder Conflicts: kiwi Conflicts: kiwi-instsource -Version: 1.2.3a +Version: 1.4.1 Release: 0 Provides: kiwi-schema = 6.2 Source: product-builder-%version.tar.xz @@ -42,7 +42,12 @@ Provides: kiwi-packagemanager:instsource Provides: system-packages:kiwi-product +%if 0%{?suse_version} Requires: build +%else +Requires: obs-build +%global debug_package %{nil} +%endif Requires: checkmedia Requires: inst-source-utils Requires: mkisofs ++++++ product-builder.obsinfo ++++++ --- /var/tmp/diff_new_pack.XIqdqQ/_old 2021-09-06 13:42:36.165845458 +0200 +++ /var/tmp/diff_new_pack.XIqdqQ/_new 2021-09-06 13:42:36.165845458 +0200 @@ -1,5 +1,5 @@ name: product-builder -version: 1.3.4 -mtime: 1624869853 -commit: 78fdc0f5a15e81a788aa1b142d4507cb6a8845bd +version: 1.4.2 +mtime: 1630927292 +commit: fbf7f3f959e688bb5c23b78c47d38358e39cd2b0