commit build for openSUSE:Factory
Hello community, here is the log from the commit of package build for openSUSE:Factory checked in at Mon Jul 27 18:42:42 CEST 2009. -------- --- build/build.changes 2009-06-03 15:05:18.000000000 +0200 +++ build/build.changes 2009-07-27 17:09:11.000000000 +0200 @@ -1,0 +2,19 @@ +Mon Jul 27 17:03:47 CEST 2009 - ro@suse.de + +- update to current svn (r7751) + - support for legacy releasepkg mechanism + - only print parse warnings if $config->{'warnings'} is set + - set warnings for expanddeps/substitutedeps + - use UTC as default timezone + - also consider patches as sources + - do not call depmod until we use also the native kernel, + it can't match otherwise + - return with value 3, if basic file system creation fails. + bs_worker will mark the build host as bad and retries on another one. + - handle files from service correctly and strip their prefix. + - - also add rpmv3 compatibility hack to createrpmdeps + - mount proc filesystem for build compare run + - fix for ccache support from + - add build-ids for debuginfo packages for subpacks + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- build-2009.06.04.tar.gz New: ---- build-2009.07.27.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ build.spec ++++++ --- /var/tmp/diff_new_pack.fY5s5u/_old 2009-07-27 18:41:57.000000000 +0200 +++ /var/tmp/diff_new_pack.fY5s5u/_new 2009-07-27 18:41:57.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package build (Version 2009.06.04) +# spec file for package build (Version 2009.07.27) # # Copyright (c) 2009 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: 2009.06.04 +Version: 2009.07.27 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") ++++++ build-2009.06.04.tar.gz -> build-2009.07.27.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/build-2009.06.04/Build/Rpm.pm new/build-2009.07.27/Build/Rpm.pm --- old/build-2009.06.04/Build/Rpm.pm 2009-06-03 15:07:11.000000000 +0200 +++ new/build-2009.07.27/Build/Rpm.pm 2009-07-20 16:06:38.000000000 +0200 @@ -185,7 +185,7 @@ my $tries = 0; while ($line =~ /^(.*?)%(\{([^\}]+)\}|[\?\!]*[0-9a-zA-Z_]+|%|\()(.*?)$/) { if ($tries++ > 1000) { - print STDERR "Warning: spec file parser ",($lineno?" line $lineno":''),": macro too deeply nested\n"; + print STDERR "Warning: spec file parser ",($lineno?" line $lineno":''),": macro too deeply nested\n" if $config->{'warnings'}; $line = 'MACRO'; last; } @@ -207,7 +207,7 @@ $expandedline .= '%'; next; } elsif ($macname eq '(') { - print STDERR "Warning: spec file parser",($lineno?" line $lineno":''),": can't expand %(...)\n"; + print STDERR "Warning: spec file parser",($lineno?" line $lineno":''),": can't expand %(...)\n" if $config->{'warnings'}; $line = 'MACRO'; last; } elsif ($macname eq 'define' || $macname eq 'global') { @@ -242,7 +242,7 @@ $line = ((exists($macros{$args[0]}) ? 1 : 0) ^ ($macname eq 'undefined' || $macname eq 'without' ? 1 : 0)).$line; } elsif (exists($macros{$macname})) { if (!defined($macros{$macname})) { - print STDERR "Warning: spec file parser",($lineno?" line $lineno":''),": can't expand '$macname'\n"; + print STDERR "Warning: spec file parser",($lineno?" line $lineno":''),": can't expand '$macname'\n" if $config->{'warnings'}; $line = 'MACRO'; last; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/build-2009.06.04/Build.pm new/build-2009.07.27/Build.pm --- old/build-2009.06.04/Build.pm 2009-06-03 13:39:10.000000000 +0200 +++ new/build-2009.07.27/Build.pm 2009-07-20 16:06:39.000000000 +0200 @@ -216,6 +216,8 @@ $config->{'patterntype'} = [ @l ]; } elsif ($l0 eq 'release:') { $config->{'release'} = $l[0]; + } elsif ($l0 eq 'releaseprg:') { + $config->{'releaseprg'} = $l[0]; } elsif ($l0 eq 'changetarget:') { $config->{'changetarget'} = join(' ', @l); } elsif ($l0 !~ /^[#%]/) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/build-2009.06.04/baselibs_global.conf new/build-2009.07.27/baselibs_global.conf --- old/build-2009.06.04/baselibs_global.conf 2009-06-03 11:21:22.000000000 +0200 +++ new/build-2009.07.27/baselibs_global.conf 2009-07-27 16:59:26.000000000 +0200 @@ -36,4 +36,5 @@ package /(.*)-debuginfo$/ +/usr/lib(64)?/debug/.*/lib(64)?/.*\.(so.*|o|a|la)\.debug$ ++/usr/lib(64)?/debug/.build-id/.* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/build-2009.06.04/build new/build-2009.07.27/build --- old/build-2009.06.04/build 2009-06-03 13:39:10.000000000 +0200 +++ new/build-2009.07.27/build 2009-07-23 17:52:28.000000000 +0200 @@ -235,7 +235,7 @@ rm -f $BUILD_ROOT/var/lib/build/ccache/bin/$i test -e $BUILD_ROOT/usr/bin/$i || continue echo '#! /bin/sh' > $BUILD_ROOT/var/lib/build/ccache/bin/$i - echo "test -e /usr/bin/$i || exit 1" > $BUILD_ROOT/var/lib/build/ccache/bin/$i + echo "test -e /usr/bin/$i || exit 1" >> $BUILD_ROOT/var/lib/build/ccache/bin/$i echo 'export PATH=/opt/icecream/bin:/usr/bin:$PATH' >> $BUILD_ROOT/var/lib/build/ccache/bin/$i echo "ccache $i \"\$@\"" >> $BUILD_ROOT/var/lib/build/ccache/bin/$i chmod 755 $BUILD_ROOT/var/lib/build/ccache/bin/$i @@ -758,7 +758,7 @@ if test -n "$LIST_STATE" ; then BUILD_ROOT=`mktemp -d /var/tmp/build-list-state-XXXXXX` - test -d "$BUILD_ROOT" || cleanup_and_exit 1 + test -d "$BUILD_ROOT" || cleanup_and_exit 3 SPECFILE=$SPECFILES # only one specified anyways if test "$SPECFILE" != "${SPECFILE%.src.rpm}" ; then rm -rf $BUILD_ROOT/usr/src/packages @@ -766,7 +766,7 @@ rpm -i --nodigest --nosignature --root $BUILD_ROOT $SPECFILE || { echo "could not install $SPECFILE." 2>&1 rm -rf $BUILD_ROOT - cleanup_and_exit 1 + cleanup_and_exit 3 } for SPECFILE in $BUILD_ROOT/usr/src/packages/SPECS/*.spec ; do : ; done fi @@ -783,22 +783,22 @@ fi if test ! -e "$VM_IMAGE" ; then echo "you need to create a file system on $VM_IMAGE first" - cleanup_and_exit 1 + cleanup_and_exit 3 fi fi if test -n "$VM_IMAGE" ; then if test -n "$CLEAN_BUILD" ; then echo "Creating filesystem on $VM_IMAGE" - $vm_img_mkfs $VM_IMAGE || become_root_or_fail + $vm_img_mkfs $VM_IMAGE || cleanup_and_exit 3 if test -n "$vm_img_tunefs" ; then - $vm_img_tunefs $VM_IMAGE || become_root_or_fail + $vm_img_tunefs $VM_IMAGE || cleanup_and_exit 3 fi fi mkdir_build_root if [ -w /root ]; then - mount -o loop $VM_IMAGE $BUILD_ROOT || cleanup_and_exit 1 + mount -o loop $VM_IMAGE $BUILD_ROOT || cleanup_and_exit 3 else - mount $BUILD_ROOT || become_root_or_fail + mount $BUILD_ROOT || cleanup_and_exit 3 fi else test -w /root || become_root_or_fail @@ -1234,6 +1234,10 @@ cp -p "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ fi test "$MYSRCDIR" = $BUILD_ROOT/.build-srcdir && rm -rf "$MYSRCDIR" + # strip prefix from autogenerated files from OBS. + for i in $BUILD_ROOT$TOPDIR/SOURCES/_service\:*; do + mv "$i" "${i##*:}" + done CHANGELOGARGS= test -n "$CHANGELOG" -a -f "$BUILD_ROOT/.build-changelog" && CHANGELOGARGS="--changelog $BUILD_ROOT/.build-changelog" @@ -1636,7 +1640,7 @@ args="--padstart 512 --padend 512 -v" case "$BUILDTYPE" in spec) - computeblocklists $args $TOPDIR/RPMS/*/*.rpm $TOPDIR/SRPMS/*.rpm > "$VM_SWAP" + computeblocklists $args $TOPDIR/RPMS/*/*.rpm $TOPDIR/SRPMS/* > "$VM_SWAP" ;; dsc) computeblocklists $args $TOPDIR/DEBS/*.deb $TOPDIR/SOURCES.DEB/* > "$VM_SWAP" @@ -1650,7 +1654,9 @@ if test -n "$RPMS" -a -d "$BUILD_ROOT/$TOPDIR/RPMS" -a -d "$BUILD_ROOT/.build.oldpackages" -a -x "$BUILD_ROOT/usr/lib/build/same-build-result.sh" ; then echo "... comparing built packages with the former built" # exit with 2, if packages built successfull, but have no changes to former built packages. + mount -n -tproc none $BUILD_ROOT/proc 2> /dev/null chroot $BUILD_ROOT /usr/lib/build/same-build-result.sh /.build.oldpackages "$TOPDIR/RPMS" "$TOPDIR/SRPMS" && cleanup_and_exit 2 + umount -n $BUILD_ROOT/proc 2> /dev/null fi echo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/build-2009.06.04/createrpmdeps new/build-2009.07.27/createrpmdeps --- old/build-2009.06.04/createrpmdeps 2009-06-03 11:21:22.000000000 +0200 +++ new/build-2009.07.27/createrpmdeps 2009-07-20 16:06:39.000000000 +0200 @@ -97,6 +97,14 @@ $known2path{$known} = $path; } } + # rpm3 compatibility: retrofit missing self provides + my $name = $res{1000}->[0]; + if (!@{$res{1047} || []} || $res{1047}->[-1] !~ /^\Q$name\E =/) { + my $evr = "$res{1001}->[0]-$res{1002}->[0]"; + $evr = "$res{1003}->[0]:$evr" if $res{1003} && $res{1003}->[0]; + push @{$res{1047}}, "$name = $evr"; + } + $newp{$known} = "P:$known: ".join(' ', @{$res{1047} || []}); $newr{$known} = "R:$known: ".join(' ', @{$res{1049} || []}); #$tag{$known} = $res{1000}->[0]."-".$res{1001}->[0]."-".$res{1002}->[0]." ".$res{1007}->[0]."-".$res{1006}->[0]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/build-2009.06.04/expanddeps new/build-2009.07.27/expanddeps --- old/build-2009.06.04/expanddeps 2009-06-03 11:21:22.000000000 +0200 +++ new/build-2009.07.27/expanddeps 2009-07-20 16:06:39.000000000 +0200 @@ -165,6 +165,7 @@ } my $cf = Build::read_config_dist($dist, $archs[0], $configdir); +$cf->{'warnings'} = 1; ####################################################################### diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/build-2009.06.04/init_buildsystem new/build-2009.07.27/init_buildsystem --- old/build-2009.06.04/init_buildsystem 2009-06-03 11:21:22.000000000 +0200 +++ new/build-2009.07.27/init_buildsystem 2009-07-20 16:06:39.000000000 +0200 @@ -820,6 +820,12 @@ chroot $BUILD_ROOT rpm -q --whatprovides rpm >/dev/null 2>&1 fi +# create modules.dep in kvm/xen +# This can not work, until we use the native repository kernel +#if [ $BUILD_ROOT = "/" -a -x /sbin/depmod ]; then +# /sbin/depmod -a +#fi + rm -rf $BUILD_ROOT/.init_b_cache rm -f $BUILD_IS_RUNNING diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/build-2009.06.04/spectool new/build-2009.07.27/spectool --- old/build-2009.06.04/spectool 2009-06-03 11:21:22.000000000 +0200 +++ new/build-2009.07.27/spectool 2009-07-20 16:06:39.000000000 +0200 @@ -272,7 +272,7 @@ my $srcfile = read_sources_digests($files, $spec); if ($opt_download) { for my $t (keys %$parsed) { - next unless ($t =~ /^source\d*/); + next unless ($t =~ /^(?:source|patch)\d*/); my $url = $parsed->{$t}; next unless $url =~ /^(?:http|ftp):\/\//; my $file = $url; @@ -297,7 +297,7 @@ if ($opt_update) { my $changed; for my $t (keys %$parsed) { - next unless ($t =~ /^source\d*/); + next unless ($t =~ /^(?:source|patch)\d*/); my $file = $parsed->{$t}; $file =~ s/.*\///; next unless -B $file; @@ -319,7 +319,7 @@ } } else { for my $t (keys %$parsed) { - next unless ($t =~ /^source\d*/); + next unless ($t =~ /^(?:source|patch)\d*/); my $file = $parsed->{$t}; $file =~ s/.*\///; if (!exists $files->{$file}) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/build-2009.06.04/substitutedeps new/build-2009.07.27/substitutedeps --- old/build-2009.06.04/substitutedeps 2009-06-03 11:21:22.000000000 +0200 +++ new/build-2009.07.27/substitutedeps 2009-07-20 16:06:39.000000000 +0200 @@ -8,9 +8,24 @@ use Build; -my ($dist, $rpmdeps, $archs, $configdir, $release, $changelog); + +sub expand { + my ($config, $str) = @_; + my @xspec; + my %cf = %$config; + $cf{'save_expanded'} = 1; + Build::Rpm::parse(\%cf, [ "$str" ], \@xspec); + return @xspec && ref($xspec[0]) ? $xspec[0]->[1] : ''; +} + +my ($dist, $buildroot, $rpmdeps, $archs, $configdir, $release, $changelog); while (@ARGV) { + if ($ARGV[0] eq '--root') { + shift @ARGV; + $buildroot = shift @ARGV; + next; + } if ($ARGV[0] eq '--dist') { shift @ARGV; $dist = shift @ARGV; @@ -40,9 +55,14 @@ } die("Usage: substitutedeps --dist <dist> --archpath <archpath> [--configdir <configdir>] <specin> <specout>\n") unless @ARGV == 2; my $spec = $ARGV[0]; +my $specdir = $spec; +$specdir =~ s/[^\/]*$//; +$specdir = "./" if $specdir eq ''; + my $newspec = $ARGV[1]; my $cf = Build::read_config_dist($dist, $archs, $configdir); +$cf->{'warnings'} = 1; ####################################################################### @@ -60,6 +80,9 @@ my $used; my $inchangelog = 0; +my $mainpkg = ''; +my $pkg; + for my $l (@$xspec) { $used = 1; if (ref($l)) { @@ -80,8 +103,20 @@ next; } - if ($release) { - if ($l =~ /^Release:/i) { + if ($l =~ /^Name\s*:\s*(\S+)/i) { + $pkg = $mainpkg = $1 unless $mainpkg; + } + if ($l =~ /^\s*%package\s+(-n\s+)?(\S+)/) { + if ($1) { + $pkg = $2; + } else { + $pkg = "$mainpkg-$2"; + } + } + + if ($l =~ /^Release:/i) { + my $oldl = $l; + if ($release) { if (!($l =~ s/<RELEASE\d*>/$release/g)) { if ($l =~ /<(?:CI_CNT|B_CNT)>/) { # XXX: should pass ci_cnt/b_cnt instead @@ -98,6 +133,74 @@ } } } + # this is to be compatible to legacy autobuild. + # you can specify a releaseprg in the project configuration, + # if your package contains this file it is executed and its + # output is used as a release. + # use only if you really must. + if ($cf->{'releaseprg'} && -f "$specdir$cf->{'releaseprg'}") { + my $newl = $l; + $newl =~ s/^Release:\s*//; + $oldl =~ s/^Release:\s*//; + my $project = expand($cf, "%?_project") || 'BUILD_BASENAME'; + my $arch = expand($cf, "%?_target_cpu") || 'noarch'; + $::ENV{'BUILD_OLDRELEASE'} = $oldl; + my @nl; + my $interpreter = "/bin/bash"; + if (open(RP, '<', "$specdir$cf->{'releaseprg'}")) { + @nl = <RP>; + close RP; + if (@nl && $nl[0] =~ /^#!\s*(\S*)/) { + $interpreter = $1; + } + } + if ($buildroot) { + my $sd = $specdir; + $sd =~ s/^\Q$buildroot\E//; + open(RP, "-|", 'chroot', $buildroot, $interpreter, "$sd$cf->{'releaseprg'}", $project, $newl, $pkg, $arch) || die("$cf->{'releaseprg'}: $!\n"); + } else { + open(RP, "-|", $interpreter, "$specdir$cf->{'releaseprg'}", $project, $newl, $pkg, $arch) || die("$cf->{'releaseprg'}: $!\n"); + } + @nl = grep {$_ ne ''} <RP>; + if (!close(RP)) { + warn("$cf->{'releaseprg'} failed: $?\n"); + } + # and another compatibility hack: if the prg returns pkg:<package>, + # the release of the package will be used. yuck... + if (@nl && $nl[0] =~ s/^pkg://) { + my $relpkg = $nl[0]; + chomp $relpkg; + if ($buildroot) { + open(RP, "-|", 'chroot', $buildroot, 'rpm', '-q', '--qf', '%{RELEASE}', $relpkg) || die("rpm: $!\n"); + } else { + open(RP, "-|", 'rpm', '-q', '--qf', '%{RELEASE}', $relpkg) || die("rpm: $!\n"); + } + @nl = grep {$_ ne ''} <RP>; + if (!close(RP)) { + warn("rpm package query of '$relpkg' failed: $?\n"); + } + } + if ($nl[0]) { + chomp $nl[0]; + $l =~ s/^(Release:\s*).*/$1$nl[0]/i; + if ($release) { + if (!($l =~ s/<RELEASE\d*>/$release/g)) { + if ($l =~ /<(?:CI_CNT|B_CNT)>/) { + # XXX: should pass ci_cnt/b_cnt instead + if ($release =~ /(\d+)\.(\d+)$/) { + my ($ci, $b) = ($1, $2); + $l =~ s/<CI_CNT>/$ci/; + $l =~ s/<B_CNT>/$b/; + } elsif ($release =~ /(\d+)$/) { + my $b = $1; + $l =~ s/<B_CNT>/$b/ unless $l =~ s/<CI_CNT>/$b/; + } + } + } + } + } + } + # all compat stuff done. we return to your scheduled program } if (!$used || ($l !~ /^(?:Build)?Requires:/i)) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/build-2009.06.04/vc new/build-2009.07.27/vc --- old/build-2009.06.04/vc 2009-06-03 11:21:22.000000000 +0200 +++ new/build-2009.07.27/vc 2009-07-20 16:06:39.000000000 +0200 @@ -29,7 +29,7 @@ fi EDITOR=${EDITOR:-vim} -date=`LC_ALL=POSIX TZ=Europe/Berlin date` +date=`LC_ALL=POSIX TZ=UTC date` if ! which mktemp > /dev/null 2>&1; then echo "mktemp is required for this script to work" ++++++ build.dsc ++++++ --- /var/tmp/diff_new_pack.fY5s5u/_old 2009-07-27 18:41:57.000000000 +0200 +++ /var/tmp/diff_new_pack.fY5s5u/_new 2009-07-27 18:41:57.000000000 +0200 @@ -1,6 +1,6 @@ Format: 1.0 Source: build -Version: 2009.06.04 +Version: 2009.07.27 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
participants (1)
-
root@Hilbert.suse.de