Hello community, here is the log from the commit of package build checked in at Wed Oct 22 15:31:50 CEST 2008. -------- --- build/build.changes 2008-08-14 16:20:55.000000000 +0200 +++ /mounts/work_src_done/STABLE/build/build.changes 2008-10-22 01:09:57.000000000 +0200 @@ -1,0 +2,33 @@ +Tue Oct 21 13:25:50 CEST 2008 - jblunck@suse.de + +- Generate debuginfo packages for baselibs (bnc #396196) + +------------------------------------------------------------------- +Mon Oct 20 17:56:20 CEST 2008 - ro@suse.de + +- update to svn trunk of today: +- init_buildsystem: check for some left space before calling rpmbuild + - create dev/shm as directory +- baselibs_global.conf: update to current internal revision + - add ia32 stuff for x86 binaries on ppc + - add ldconfig for all non-devel baselibs packages +- changed: to function also with emulators better use fakeroot-tcp + for debian build +- fixed: changed basis for memory calculation to assume also a stack + which can be swapped well. gcc often needs much memory here +- recognize SLES10 +- fix boolification in && and || +- re-preinstall critical packages on update +- fix creation of buildenv to do it the same time with and without VM. +- fixes installation-images build for ppc +- fixed #406596: don't ignore BuildRequires in subpackages +- print finished message +- set BUILD_USER depending on the suse_version like it is done in + old autobuild +- added documentation for specfile control comments for build(1) +- add --incarnation +- add --create-build-binaries +- support badarch (aka excludearch) +- add support for Requires(pre) or (post) semantic + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- build-2008.08.11.tar.bz2 New: ---- build-2008.10.21.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ build.spec ++++++ --- /var/tmp/diff_new_pack.Bg2623/_old 2008-10-22 15:31:42.000000000 +0200 +++ /var/tmp/diff_new_pack.Bg2623/_new 2008-10-22 15:31:42.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package build (Version 2008.08.11) +# spec file for package build (Version 2008.10.21) # # Copyright (c) 2008 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: 2008.08.11 +Version: 2008.10.21 Release: 1 Source: build-%{version}.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -38,8 +38,9 @@ %prep %setup +%build + %install -rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/usr/{bin,lib/build,lib/build/configs,lib/build/Build,share/man/man1} cp -a unrpm $RPM_BUILD_ROOT/usr/bin cp -a Build.pm build createrpmdeps order getbinaryid expanddeps extractbuild getmacros getoptflags init_buildsystem substitutedeps $RPM_BUILD_ROOT/usr/lib/build/ @@ -56,9 +57,36 @@ /usr/bin/build /usr/bin/unrpm /usr/lib/build -%{_mandir}/man1/build.1.* +%{_mandir}/man1/build.1* %changelog +* Tue Oct 21 2008 jblunck@suse.de +- Generate debuginfo packages for baselibs (bnc #396196) +* Mon Oct 20 2008 ro@suse.de +- update to svn trunk of today: +- init_buildsystem: check for some left space before calling rpmbuild + - create dev/shm as directory +- baselibs_global.conf: update to current internal revision + - add ia32 stuff for x86 binaries on ppc + - add ldconfig for all non-devel baselibs packages +- changed: to function also with emulators better use fakeroot-tcp + for debian build +- fixed: changed basis for memory calculation to assume also a stack + which can be swapped well. gcc often needs much memory here +- recognize SLES10 +- fix boolification in && and || +- re-preinstall critical packages on update +- fix creation of buildenv to do it the same time with and without VM. +- fixes installation-images build for ppc +- fixed #406596: don't ignore BuildRequires in subpackages +- print finished message +- set BUILD_USER depending on the suse_version like it is done in + old autobuild +- added documentation for specfile control comments for build(1) +- add --incarnation +- add --create-build-binaries +- support badarch (aka excludearch) +- add support for Requires(pre) or (post) semantic * Mon Aug 11 2008 adrian@suse.de Update from current svn trunk: - Improved XEN support (XEN call only once per build) ++++++ build-2008.08.11.tar.bz2 -> build-2008.10.21.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/build-2008.08.11/baselibs_global.conf new/build-2008.10.21/baselibs_global.conf --- old/build-2008.08.11/baselibs_global.conf 2008-08-11 16:11:04.000000000 +0200 +++ new/build-2008.10.21/baselibs_global.conf 2008-10-22 00:51:14.000000000 +0200 @@ -1,14 +1,18 @@ -arch i586 targets x86_64:32bit ia64:x86 -arch i686 targets x86_64:32bit ia64:x86 +arch i586 targets x86_64:32bit ia64:x86 ppc:ia32 +arch i686 targets x86_64:32bit ia64:x86 ppc:ia32 arch s390 targets s390x:32bit arch ppc targets ppc64:32bit arch ppc64 targets ppc:64bit -targettype x86 prefix /emul/ia32-linux configdir /usr/lib/baselibs-<targettype>/bin + +targettype x86 prefix /emul/ia32-linux +targettype ia32 prefix /emul/ia32-linux + targettype x86 extension -x86 targettype 32bit extension 32 targettype 64bit extension 64 +targettype ia32 extension -x86 targetname <name>-<targettype> @@ -17,6 +21,7 @@ targettype 64bit -^(/usr)?/lib/lib targettype 32bit -/lib64/ targettype x86 -/lib64/ +targettype ia32 -/lib64/ config +.*bin.*-config$ config -/kde-config$ @@ -24,7 +29,16 @@ targettype x86 requires "ia32el" targettype x86 prereq "glibc-x86" +package /.(?> $BUILD_ROOT/.build/build.data echo "REASON='${REASON//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "CHANGELOG='${CHANGELOG//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data + echo "INCARNATION='${INCARNATION//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data # FIXME: this depends on the kernel and vm. # could be hda2, sda2 for xen or hdb/sdb for qemu test -n "$VM_SWAP" && echo "VM_SWAP='${VM_SWAPDEV:-/dev/hda2}'" >> $BUILD_ROOT/.build/build.data @@ -1036,7 +1042,15 @@ fi if test "$DO_INIT" = true ; then - set -- init_buildsystem "${definesnstuff[@]}" "${repos[@]}" $CLEAN_BUILD $USEUSEDFORBUILD $RPMLIST "$MYSRCDIR/$SPECFILE" $ADDITIONAL_PACKS + # + # create legacy .buildenv file + # + test -z "$INCARNATION" && INCARNATION=0 + echo "BUILD_INCARNATION=$INCARNATION" > $BUILD_ROOT/.buildenv + + CREATE_BUILD_BINARIES= + egrep '^#[ ]*needsbinariesforbuild[ ]*$' >/dev/null <$MYSRCDIR/$SPECFILE && CREATE_BUILD_BINARIES=--create-build-binaries + set -- init_buildsystem "${definesnstuff[@]}" "${repos[@]}" $CLEAN_BUILD $USEUSEDFORBUILD $CREATE_BUILD_BINARIES $RPMLIST "$MYSRCDIR/$SPECFILE" $ADDITIONAL_PACKS echo "$* ..." "$@" || cleanup_and_exit 1 mount -n -tproc none $BUILD_ROOT/proc || true @@ -1069,7 +1083,13 @@ # # check if we want to build with the abuild user # - BUILD_USER=root + BUILD_USER=abuild + if test -x $BUILD_ROOT/bin/rpm ; then + SUSE_VERSION=`chroot $BUILD_ROOT /bin/rpm --eval '%{?suse_version}' 2>/dev/null` + if test -n "$SUSE_VERSION" -a "$SUSE_VERSION" -le 1020 ; then + BUILD_USER=root + fi + fi if test "$BUILD_USER" = abuild ; then egrep '^#[ ]*needsrootforbuild[ ]*$' >/dev/null <$SPECFILE && BUILD_USER=root else @@ -1105,6 +1125,7 @@ setupccache # nasty hack to prevent rpath on known paths + # FIXME: do this only for suse echo "export SUSE_IGNORED_RPATHS=/etc/ld.so.conf" > "$BUILD_ROOT"/etc/profile.d/buildsystem.sh # @@ -1231,7 +1252,7 @@ chmod 755 $BUILD_ROOT/.build.command chroot $BUILD_ROOT su -c /.build.command - $BUILD_USER < /dev/null && BUILD_SUCCEDED=true else - chroot $BUILD_ROOT su -c "cd $TOPDIR/BUILD && dpkg-buildpackage -us -uc -rfakeroot" - $BUILD_USER < /dev/null && BUILD_SUCCEDED=true + chroot $BUILD_ROOT su -c "cd $TOPDIR/BUILD && dpkg-buildpackage -us -uc -rfakeroot-tcp" - $BUILD_USER < /dev/null && BUILD_SUCCEDED=true mkdir -p $BUILD_ROOT/$TOPDIR/DEBS for DEB in $BUILD_ROOT/$TOPDIR/*.deb ; do test -e "$DEB" && mv "$DEB" "$BUILD_ROOT/$TOPDIR/DEBS" @@ -1268,7 +1289,7 @@ test -f "$SRPM" && PNAME=`rpm --nodigest --nosignature -qp --qf "%{NAME}" $SRPM` done for CHECKSCRIPT in $BUILD_ROOT/usr/lib/build/checks/* ; do - echo running `basename $CHECKSCRIPT` + echo "... running `basename $CHECKSCRIPT`" $CHECKSCRIPT || cleanup_and_exit 1 done umount -n $BUILD_ROOT/proc 2> /dev/null @@ -1296,9 +1317,10 @@ fi if test -n "$RUNNING_IN_VM" -a -n "$VM_SWAP"; then - echo "saving built packages..." + echo "... saving built packages" swapoff "$VM_SWAP" $BUILD_DIR/extractbuild "$VM_SWAP" || cleanup_and_exit 1 fi +echo "... build is finished" cleanup_and_exit 0 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/build-2008.08.11/Build/Rpm.pm new/build-2008.10.21/Build/Rpm.pm --- old/build-2008.08.11/Build/Rpm.pm 2008-08-11 16:11:04.000000000 +0200 +++ new/build-2008.10.21/Build/Rpm.pm 2008-10-20 17:59:14.000000000 +0200 @@ -43,11 +43,19 @@ return ($v, $expr) if $lev > 1; ($v2, $expr) = expr(substr($expr, 2), 1); return undef unless defined $v2; + $v = 0 if $v && $v eq '\"\"'; + $v =~ s/^0+/0/; + $v2 = 0 if $v2 && $v2 eq '\"\"'; + $v2 =~ s/^0+/0/; $v &&= $v2; } elsif ($expr =~ /^\|\|/) { return ($v, $expr) if $lev > 1; ($v2, $expr) = expr(substr($expr, 2), 1); return undef unless defined $v2; + $v = 0 if $v && $v eq '\"\"'; + $v =~ s/^0+/0/; + $v2 = 0 if $v2 && $v2 eq '\"\"'; + $v2 =~ s/^0+/0/; $v ||= $v2; } elsif ($expr =~ /^>=/) { return ($v, $expr) if $lev > 2; @@ -110,6 +118,7 @@ my $packvers; my $packrel; my $exclarch; + my $badarch; my @subpacks; my @packdeps; my @prereqs; @@ -313,7 +322,11 @@ $exclarch ||= []; push @$exclarch, split(' ', $1); } - if ($line =~ /^PreReq\s*:\s*(\S.*)$/i) { + if ($main_preamble && ($line =~ /^ExcludeArch\s*:\s*(.*)/i)) { + $badarch ||= []; + push @$badarch, split(' ', $1); + } + if ($line =~ /^(?:Require\(pre\)|Require\(post\)|PreReq)\s*:\s*(\S.*)$/i) { my $deps = $1; my @deps = $deps =~ /([^\s\[,]+)(\s+[<=>]+\s+[^\s\[,]+)?(\s+\[[^\]]+\])?[\s,]*/g; while (@deps) { @@ -390,9 +403,10 @@ push @subpacks, "$packname-$2" if defined $packname; } $preamble = 1; + $main_preamble = 0; } - if ($line =~ /^\s*%(package|prep|build|install|check|clean|preun|postun|pretrans|posttrans|pre|post|files|changelog|description|triggerpostun|triggerun|triggerin|trigger|verifyscript)/) { + if ($line =~ /^\s*%(prep|build|install|check|clean|preun|postun|pretrans|posttrans|pre|post|files|changelog|description|triggerpostun|triggerun|triggerin|trigger|verifyscript)/) { $main_preamble = 0; $preamble = 0; } @@ -416,6 +430,7 @@ $ret->{'release'} = $packrel if defined $packrel; $ret->{'subpacks'} = \@subpacks; $ret->{'exclarch'} = $exclarch if defined $exclarch; + $ret->{'badarch'} = $badarch if defined $badarch; $ret->{'deps'} = \@packdeps; $ret->{'prereqs'} = \@prereqs if @prereqs; $ret->{'configdependent'} = 1 if $ifdeps; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/build-2008.08.11/build.1 new/build-2008.10.21/build.1 --- old/build-2008.08.11/build.1 2008-08-11 16:11:04.000000000 +0200 +++ new/build-2008.10.21/build.1 2008-10-20 17:59:15.000000000 +0200 @@ -1,4 +1,10 @@ -.TH build 1 "(c) 1997-2005 SuSE Linux AG Nuernberg, Germany" +.de TQ \"follow a TP item with several TQ items to define several +. \"entities with one shared description. +.br +.ns +.TP \\$1 +.. +.TH build 1 "(c) 1997-2008 SuSE Linux AG Nuernberg, Germany" .SH NAME build \- build SuSE Linux RPMs in a chroot environment .SH SYNOPSIS @@ -43,6 +49,7 @@ If neither is given, .B build will use all the specfiles in the current directory. +.P .SH OPTIONS .TP .B --clean @@ -70,18 +77,52 @@ Specifies where the build system is set up. Overrides the BUILD_ROOT enviroment variable. .TP -.B "\-\-useusedforbuild" +.B --useusedforbuild Tell build not to do dependency expansion, but to extract the -list of packages to install from "usedforbuild" lines or, if none -are found, from all "BuildRequires" lines. This option is useful +list of packages to install from "# usedforbuild" lines or, if none +are found, from all "BuildRequires" lines. This option is useful if you want to re-build a package from a srcrpm with exactly the same packages used for the srcrpm build. .TP +.B --norootforbuild + +.TP .B --help Print a short help text. .TP .B --verify verify the files in an existing build system. + +.SH .spec FILE OPTIONS +The +.B build +command interprets some special control comments in the specfile: +.TP +.B # norootforbuild +.TQ +.B # needsrootforbuild +.B build +uses either user +.I root +or user +.I abuild +in the build system to do the build. For non-SUSE distros as well as +since SUSE 10.2, the default build user is +.I abuild. +For 10.2 and before, the default build user is +.I root. +These two flags in the spec file allow to deviate from the defaults +and force-set the build user to +.I abuild +and +.I root +.RI "(for " "#\ norootforbuild" " and " "#\ needsrootforbuild" " respectively." +.TP +.B # needsbinariesforbuild +provide the binary rpms that have been used to set up the build root +in +.I /.build.binaries +within the build root. .SH ENVIRONMENT .TP .B BUILD_ROOT @@ -104,3 +145,9 @@ .TP .BR "Maximum RPM": .I http://www.rpm.org/max-rpm/ +.TP +.BR "cross distribution packaging": +.I http://en.opensuse.org/Build_Service/cross_distribution_package_how_to +.TP +.BR "SUSE packaging standards and guidelines": +.I http://en.opensuse.org/Packaging diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/build-2008.08.11/expanddeps new/build-2008.10.21/expanddeps --- old/build-2008.08.11/expanddeps 2008-08-11 16:11:04.000000000 +0200 +++ new/build-2008.10.21/expanddeps 2008-10-20 17:59:15.000000000 +0200 @@ -151,6 +151,8 @@ $dist = "ul1-$rpmdista"; } elsif ($rpmdist =~ /suse sles_(\d+)/) { $dist = "sles$1-$rpmdista"; + } elsif ($rpmdist =~ /suse linux enterprise (\d+)/) { + $dist = "sles$1-$rpmdista"; } elsif ($rpmdist =~ /suse linux (\d+)\.(\d+)\.[4-9]\d/) { # alpha version $dist = "$1.".($2 + 1)."-$rpmdista"; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/build-2008.08.11/init_buildsystem new/build-2008.10.21/init_buildsystem --- old/build-2008.08.11/init_buildsystem 2008-08-11 16:11:04.000000000 +0200 +++ new/build-2008.10.21/init_buildsystem 2008-10-20 17:59:15.000000000 +0200 @@ -36,6 +36,7 @@ LIST_STATE= RPMLIST= CLEAN_BUILD= +CREATE_BUILD_BINARIES= while test -n "$1" ; do case "$1" in @@ -43,6 +44,10 @@ shift PREPARE_XEN=true ;; + --create-build-binaries) + shift + CREATE_BUILD_BINARIES=true + ;; --useusedforbuild) shift USEUSEDFORBUILD=--useusedforbuild @@ -203,6 +208,8 @@ local com file mode arg mkdir -m 755 -p $BUILD_ROOT/dev/pts + test -f $BUILD_ROOT/dev/shm && rm -f $BUILD_ROOT/dev/shm + mkdir -m 755 -p $BUILD_ROOT/dev/shm while read com file mode arg ; do rm -f $BUILD_ROOT/dev/$file if test $com = ln ; then @@ -481,6 +488,22 @@ mount -n -tdevpts none $BUILD_ROOT/dev/pts 2>/dev/null || true # +# create .build.binaries directory if requested +# +rm -rf $BUILD_ROOT/.build.binaries +if test -n "$CREATE_BUILD_BINARIES" ; then + echo "creating .build.binaries directory..." + mkdir -p "$BUILD_ROOT/.build.binaries" + for PKG in $PACKAGES_TO_INSTALL ; do + test -L "$BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF" || continue + LPKG=`readlink -f "$BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF"` + ln "$LPKG" "$BUILD_ROOT/.build.binaries/$PKG.$PSUF" 2>/dev/null + test -f "$BUILD_ROOT/.build.binaries/$PKG.$PSUF" && continue + cp "$LPKG" "$BUILD_ROOT/.build.binaries/$PKG.$PSUF" + done +fi + +# # get list and ids of already installed rpms # mkdir -p $BUILD_ROOT/.init_b_cache/alreadyinstalled @@ -523,6 +546,12 @@ done rm -rf $BUILD_ROOT/.init_b_cache/todelete +rm -rf $BUILD_ROOT/.init_b_cache/preinstalls +mkdir -p $BUILD_ROOT/.init_b_cache/preinstalls +for PKG in $PACKAGES_TO_PREINSTALL ; do + touch "$BUILD_ROOT/.init_b_cache/preinstalls/$PKG" +done + rm -rf $BUILD_ROOT/installed-pkg mkdir -p $BUILD_ROOT/installed-pkg @@ -594,6 +623,10 @@ echo "$PKGID" > $BUILD_ROOT/installed-pkg/$PKG continue fi + if test -e "$BUILD_ROOT/.init_b_cache/preinstalls/$PKG" ; then + preinstall "$PKG" + test rpm = "$PKG" && chroot $BUILD_ROOT rpm --rebuilddb + fi fi export ADDITIONAL_PARAMS= if test "$USE_FORCE" = true ; then @@ -761,4 +794,11 @@ rm -f $TMPFILE +F=`df -h $BUILD_ROOT | grep "100%"` +if test -n "$F" ; then + df -h $BUILD_ROOT + echo "build does not work on a completely full filesystem" + cleanup_and_exit 1 +fi + cleanup_and_exit 0 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/build-2008.08.11/mkbaselibs new/build-2008.10.21/mkbaselibs --- old/build-2008.08.11/mkbaselibs 2008-08-11 16:11:04.000000000 +0200 +++ new/build-2008.10.21/mkbaselibs 2008-10-22 00:52:27.000000000 +0200 @@ -408,6 +408,7 @@ my $pm = $1; $pkgmatches = $pkgname =~ /$pm/; $match1 = $1 if defined $1; + $pkghasmatched |= $pkgmatches; next; } if (/^package\s+(.*?)$/) { @@ -496,6 +497,9 @@ $rpmn =~ s/-[^-]+-[^-]+\.[^\.]+\.rpm$/\.rpm/; $rpmn =~ s/\.rpm$//; push @rpms, $rpm if $goodpkgs{$rpmn}; + if ($rpmn =~ s/-debuginfo$//) { + push @rpms, $rpm if $goodpkgs{$rpmn}; + } } for (@rpms) { die("$_: need absolute path to rpm\n") unless /^\//; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org