Hello community, here is the log from the commit of package build for openSUSE:Factory checked in at Fri Mar 19 10:37:18 CET 2010. -------- --- build/build.changes 2010-03-08 13:07:37.000000000 +0100 +++ /mounts/work_src_done/STABLE/build/build.changes 2010-03-10 14:35:10.000000000 +0100 @@ -1,0 +2,6 @@ +Wed Mar 10 13:34:45 UTC 2010 - adrian@suse.de + +- update to current git + * Kiwi exclude arch handling + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- build-2010.03.08.tar.gz New: ---- build-2010.03.10.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ build.spec ++++++ --- /var/tmp/diff_new_pack.lmwssL/_old 2010-03-19 10:36:19.000000000 +0100 +++ /var/tmp/diff_new_pack.lmwssL/_new 2010-03-19 10:36:19.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package build (Version 2010.03.08) +# spec file for package build (Version 2010.03.10) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -23,7 +23,7 @@ Group: Development/Tools/Building AutoReqProv: on Summary: A Script to Build SUSE Linux RPMs -Version: 2010.03.08 +Version: 2010.03.10 Release: 1 # osc rm build-*tar.bz2 # REVISION=$(svn info https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice/src/build | sed -ne "/Revision: /s///p") @@ -64,10 +64,10 @@ %install make DESTDIR=$RPM_BUILD_ROOT install cd $RPM_BUILD_ROOT/usr/lib/build/configs/ -%if 0%sles_version +%if 0%{?sles_version} ln -s sles%{sles_version}.conf default.conf %else -%if 0%suse_version +%if 0%{?suse_version} V=%suse_version ln -s sl${V:0:2}.${V:2:1}.conf default.conf %endif ++++++ build-2010.03.08.tar.gz -> build-2010.03.10.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/build-2010.03.08/Build/Kiwi.pm new/build-2010.03.10/Build/Kiwi.pm --- old/build-2010.03.08/Build/Kiwi.pm 2010-02-20 11:47:37.000000000 +0100 +++ new/build-2010.03.10/Build/Kiwi.pm 2010-03-10 14:33:27.000000000 +0100 @@ -145,16 +145,6 @@ die("bad instsource path: $kiwisource->{'path'}\n") unless $kiwisource->{'path'} =~ /^obs:///?([^/]+)/([^/]+)/?$/; push @repos, "$1/$2"; } - for my $repopackages (@{$instsource->{'repopackages'} || []}) { - for my $repopackage (@{$repopackages->{'repopackage'} || []}) { - push @packages, $repopackage->{'name'}; - } - } - if ($instsource->{'metadata'}) { - for my $repopackage (@{$instsource->{'metadata'}->[0]->{'repopackage'} || []}) { - push @packages, $repopackage->{'name'}; - } - } if ($instsource->{'productoptions'}) { my $productoptions = $instsource->{'productoptions'}->[0] || {}; for my $po (@{$productoptions->{'productvar'} || []}) { @@ -169,33 +159,53 @@ } } + my @repositories = sort {$a->{'priority'} <=> $b->{'priority'}} @{$kiwi->{'repository'} || []}; if ($preferences->{'packagemanager'}->[0]->{'_content'} eq 'smart') { - foreach my $repository(sort {$b->{priority} <=> $a->{priority}} @{$kiwi->{'repository'} || []}) { - my $kiwisource = ($repository->{'source'} || [])->[0]; - next if $kiwisource->{'path'} eq '/var/lib/empty'; # grr - die("bad path: $kiwisource->{'path'}\n") unless $kiwisource->{'path'} =~ /^obs:///?([^/]+)/([^/]+)/?$/; - push @repos, "$1/$2"; - } - }else{ - foreach my $repository(sort {$a->{priority} <=> $b->{priority}} @{$kiwi->{'repository'} || []}) { - my $kiwisource = ($repository->{'source'} || [])->[0]; - next if $kiwisource->{'path'} eq '/var/lib/empty'; # grr - die("bad path: $kiwisource->{'path'}\n") unless $kiwisource->{'path'} =~ /^obs:///?([^/]+)/([^/]+)/?$/; - push @repos, "$1/$2"; - } + @repositories = reverse @repositories; + } + for my $repository (@repositories) { + my $kiwisource = ($repository->{'source'} || [])->[0]; + next if $kiwisource->{'path'} eq '/var/lib/empty'; # grr + die("bad path: $kiwisource->{'path'}\n") unless $kiwisource->{'path'} =~ /^obs:///?([^/]+)/([^/]+)/?$/; + push @repos, "$1/$2"; + } + + # Find packages and possible additional required architectures + my @additionalarchs; + my @pkgs; + push @pkgs, @{$kiwi->{'packages'}->[0]->{'package'}} if $kiwi->{'packages'}; + if ($instsource) { + push @pkgs, @{$instsource->{'metadata'}->[0]->{'repopackage'} || []} if $instsource->{'metadata'}; + push @pkgs, @{$instsource->{'repopackages'}->[0]->{'repopackage'} || []} if $instsource->{'repopackages'}; } - for my $packagegroup (@{$kiwi->{'packages'} || []}) { - for my $package (@{$packagegroup->{'package'} || []}) { - if ($package->{'arch'}) { - my $ma = $arch; - $ma =~ s/i[456]86/i386/; - my $pa = $package->{'arch'}; - $pa =~ s/i[456]86/i386/; - next if $ma ne $pa; + @pkgs = unify(@pkgs); + for my $package (@pkgs) { + # filter packages, which are not targeted for the wanted plattform + if ($package->{'arch'}) { + if (@requiredarch) { + # this is a product + next unless grep {$_ eq $package->{'arch'}} @requiredarch; + } else { + # live appliance + my $ma = $arch; + $ma =~ s/i[456]86/i386/; + my $pa = $package->{'arch'}; + $pa =~ s/i[456]86/i386/; + next if $ma ne $pa; } - push @packages, $package->{'name'}; } + + # not nice, but optimizes our build dependencies + next if $package->{'onlyarch'} && $package->{'onlyarch'} eq "skipit"; + + # we need this package + push @packages, $package->{'name'}; + + # find the maximal superset of possible required architectures + push @additionalarchs, split(',', $package->{'addarch'}) if $package->{'addarch'}; + push @additionalarchs, split(',', $package->{'onlyarch'}) if $package->{'onlyarch'}; } + @requiredarch = unify(@requiredarch, @additionalarchs); if (!$instsource) { my $packman = $preferences->{'packagemanager'}->[0]->{'_content'}; ++++++ build.dsc ++++++ --- /var/tmp/diff_new_pack.lmwssL/_old 2010-03-19 10:36:19.000000000 +0100 +++ /var/tmp/diff_new_pack.lmwssL/_new 2010-03-19 10:36:19.000000000 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: build -Version: 2010.03.08 +Version: 2010.03.10 Binary: build Maintainer: Adrian Schroeter <adrian@suse.de> Architecture: all ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org