Hello community, here is the log from the commit of package build for openSUSE:Factory checked in at 2015-03-23 12:12:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/build (Old) and /work/SRC/openSUSE:Factory/.build.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "build" Changes: -------- --- /work/SRC/openSUSE:Factory/build/build.changes 2015-02-08 11:41:38.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.build.new/build.changes 2015-03-23 12:12:03.000000000 +0100 @@ -1,0 +2,12 @@ +Tue Mar 17 07:20:36 UTC 2015 - [email protected] + +- workaround initrd breakage when using initrd for systemd with older systems +- fixes for building in LXC containers +- avoid emulator for arm on aarch64 +- Fixing UTC symlink resolving when setting localtime +- ppc64le can build ppc64 with KVM +- build-vm-kvm: Switch armv7 to virt machine +- Fix --no-checks with older rpmbuild +- documenation updates + +------------------------------------------------------------------- Old: ---- obs-build-20150115.tar.gz New: ---- obs-build-20150317.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ build.spec ++++++ --- /var/tmp/diff_new_pack.Icpcjy/_old 2015-03-23 12:12:04.000000000 +0100 +++ /var/tmp/diff_new_pack.Icpcjy/_new 2015-03-23 12:12:04.000000000 +0100 @@ -22,7 +22,7 @@ Summary: A Script to Build SUSE Linux RPMs License: GPL-2.0+ and GPL-2.0 Group: Development/Tools/Building -Version: 20150115 +Version: 20150317 Release: 0 Source: obs-build-%{version}.tar.gz #!BuildIgnore: build-mkbaselibs ++++++ PKGBUILD ++++++ --- /var/tmp/diff_new_pack.Icpcjy/_old 2015-03-23 12:12:04.000000000 +0100 +++ /var/tmp/diff_new_pack.Icpcjy/_new 2015-03-23 12:12:04.000000000 +0100 @@ -1,5 +1,5 @@ pkgname=build -pkgver=20150115 +pkgver=20150317 pkgrel=0 pkgdesc="Build packages in sandbox" arch=('i686' 'x86_64') @@ -8,7 +8,7 @@ groups=('base-devel') depends=('perl') source=(obs-build-${pkgver}.tar.gz) -md5sums=('913a174848d39df902df09dedc0e1aa2') +md5sums=('deaeff7a854cb1668560813f55980587') package() { msg "Installing build ..." ++++++ build.dsc ++++++ --- /var/tmp/diff_new_pack.Icpcjy/_old 2015-03-23 12:12:04.000000000 +0100 +++ /var/tmp/diff_new_pack.Icpcjy/_new 2015-03-23 12:12:04.000000000 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: build -Version: 20150115 +Version: 20150317 Binary: build Maintainer: Adrian Schroeter <[email protected]> Architecture: all ++++++ debian.changelog ++++++ --- /var/tmp/diff_new_pack.Icpcjy/_old 2015-03-23 12:12:04.000000000 +0100 +++ /var/tmp/diff_new_pack.Icpcjy/_new 2015-03-23 12:12:04.000000000 +0100 @@ -1,4 +1,4 @@ -build (20150115) unstable; urgency=low +build (20150317) unstable; urgency=low * Update to current git trunk - add sles11sp2 build config and adapt autodetection ++++++ obs-build-20150115.tar.gz -> obs-build-20150317.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20150115/HOWTO.add_another_format new/obs-build-20150317/HOWTO.add_another_format --- old/obs-build-20150115/HOWTO.add_another_format 1970-01-01 01:00:00.000000000 +0100 +++ new/obs-build-20150317/HOWTO.add_another_format 2015-03-17 08:20:24.000000000 +0100 @@ -0,0 +1,99 @@ + +How to add another build format +=============================== + +To support yet another package format to be used with standalone build +script and Open Build Service you need to follow these steps: + +Let's call the new format "XYZ" here. + +General notes about the implementations. There are two areas: + +SAFE implementations: + Some code runs outside of protected environments like KVM. Therefore +this code must be implemented with security in mind. Special crafted +build descriptions or binary files must not be able to exploit this code. +What makes it even more interessting is that this code can also run +on all kind of old or obscure systems. So any external dependency should +be avoided as well. +This means in short: + - code must be as simple as possible. + - code must not allow to execute random commands or to access random files. + - avoid external dependencies. When you look for a simple XML parser + check the kiwi support for this. + - code must stay compatible for all versions + +Build code running inside of environment. + - using any tool is fine here. However, the tool must be installed + somehow into the build system. In best case via some dependency. + - Incompatible changes can be implemented inside of these packages + pulled into the build environment. + - network is not possible here. + + +1) Implement the parse() function into Build/XYZ.pm + + parse() extracts the build dependecies from the build specification. + For RPM this would be the <package>.spec file for example. + + Must be a SAFE implementation. + +2) Add a query() function to Build/XYZ.pm + + query() extracts information from built packages. In the rpm world + these are the .rpm files. + query returns a hash containing: + name, epoch, version, release, arch, description, + provides, requires, hdrmd5 + + hdrmd5 is some unique identifier of the package built, it might be + just a md5 over the entire file. + + Must be a SAFE implementation. + +3) Add a queryhdrmd5() function + + this functions is a specialized version of query(), it just returns + the hdrmd5 + + Must be a SAFE implementation. + +4) Add a verscmp() function + + verscmp() compares two package version strings. For rpms, a version has + the form [epoch:]version-release + + Must be a SAFE implementation. + +5) Implement build-pkg-xyz functions + + Those functions are used to setup the build environment. I.e. they + need to install/unpack the packages + + Must be a SAFE implementation for the pre-installation part. Afterwards + it is fine to use any tool to install the packages (like rpm itself). + +6) Implement build-recipe-xyz functions + + This functions are called to create the build result + +7) For standalone build support (actually not needed for OBS integration, but + it makes development easier) we need a "createxyzdeps" helper script. + For xyz://<...> repos it needs to download the repository metadata + and convert it to build's representation. See createyastdeps and createrepomddeps. + + +Special notes for non-OSS systems +================================= + +Systems like MS-Windows, MacOSX or SunOS could be support as well. However, these +systems can not be installed by packages from scratch. So using preinstallimages +would be mandatory here. Support for that exists in general already inside of +the code. + +Special notes for image formats +=============================== + +Image formats can usually skip 2) 3) and 4) from the items above. At least as long +as they do not want to build new images based on former created ones. + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20150115/build new/obs-build-20150317/build --- old/obs-build-20150115/build 2015-01-30 08:24:54.000000000 +0100 +++ new/obs-build-20150317/build 2015-03-17 08:20:24.000000000 +0100 @@ -980,7 +980,10 @@ fi if test -z "$VM_IMAGE" -a -z "$LOGFILE" ; then - LOGFILE="$BUILD_ROOT/.build.log" + # lxc is special case: virtual machine shares logfile with host + if test -z "$RUNNING_IN_VM" -o "$VM_TYPE" != lxc; then + LOGFILE="$BUILD_ROOT/.build.log" + fi fi if test -n "$LOGFILE" -a -z "$RUN_SHELL" ; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20150115/build-vm-kvm new/obs-build-20150317/build-vm-kvm --- old/obs-build-20150115/build-vm-kvm 2015-01-30 08:24:54.000000000 +0100 +++ new/obs-build-20150317/build-vm-kvm 2015-03-17 08:20:24.000000000 +0100 @@ -64,7 +64,7 @@ armv7l) kvm_bin="/usr/bin/qemu-system-arm" kvm_console=ttyAMA0 - kvm_options="-enable-kvm -M vexpress-a15 -dtb /boot/a15-guest.dtb -cpu cortex-a15" + kvm_options="-enable-kvm -M virt -cpu host" vm_kernel=/boot/zImage vm_initrd=/boot/initrd # prefer the guest kernel/initrd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20150115/build-vm-lxc new/obs-build-20150317/build-vm-lxc --- old/obs-build-20150115/build-vm-lxc 2015-01-30 08:24:54.000000000 +0100 +++ new/obs-build-20150317/build-vm-lxc 2015-03-17 08:20:24.000000000 +0100 @@ -21,22 +21,36 @@ # ################################################################ +lxc_get_id() { + LXCID="obsbuild:${BUILD_ROOT##*/}" +} + vm_verify_options_lxc() { VM_IMAGE= VM_SWAP= } vm_startup_lxc() { + lxc_get_id + LXCDIR="`lxc-config lxc.lxcpath`/$LXCID" + LXCROOTFS="$LXCDIR/rootfs" + LXCHOOK="$LXCDIR/pre-mount.hook" LXCCONF="$BUILD_ROOT/.build.lxc.conf" rm -f "$LXCCONF" cat $BUILD_DIR/lxc.conf > "$LXCCONF" cat >> "$LXCCONF" <<-EOF - lxc.rootfs = $BUILD_ROOT + lxc.rootfs = $LXCROOTFS + lxc.hook.pre-mount = $LXCHOOK EOF # XXX: do this always instead of leaking the hosts' one? echo "rootfs / rootfs rw 0 0" > $BUILD_ROOT/etc/mtab - LXCID=${BUILD_ROOT##*/} lxc-destroy -n "$LXCID" >/dev/null 2>&1 || true + mkdir -p "$LXCROOTFS" + cat > "$LXCHOOK" <<-EOF + #!/bin/sh + mount --bind "$BUILD_ROOT" "$LXCROOTFS" + EOF + chmod a+x "$LXCHOOK" lxc-create -n "$LXCID" -f "$LXCCONF" || cleanup_and_exit 1 lxc-start -n "$LXCID" "$vm_init_script" BUILDSTATUS="$?" @@ -45,9 +59,8 @@ } vm_kill_lxc() { - LXCID=${BUILD_ROOT##*/} + lxc_get_id lxc-stop -n "$LXCID" || true - lxc-destroy -n "$LXCID" } vm_fixup_lxc() { @@ -71,6 +84,9 @@ } vm_cleanup_lxc() { - : + if test $$ -ne 1 && test $$ -ne 2 ; then + lxc_get_id + lxc-destroy -n "$LXCID" + fi } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20150115/common_functions new/obs-build-20150317/common_functions --- old/obs-build-20150115/common_functions 2015-01-30 08:24:54.000000000 +0100 +++ new/obs-build-20150317/common_functions 2015-03-17 08:20:24.000000000 +0100 @@ -29,6 +29,7 @@ extend_build_arch() { case $BUILD_ARCH in + aarch64) BUILD_ARCH="aarch64:armv7hl:armv7l:armv6hl:armv6l:armv5tel" ;; armv7hl) BUILD_ARCH="armv7hl:armv7l:armv6hl:armv6l:armv5tel" ;; armv7l) BUILD_ARCH="armv7l:armv6l:armv5tel" ;; armv6hl) BUILD_ARCH="armv6hl:armv6l:armv5tel" ;; @@ -39,7 +40,7 @@ i486) BUILD_ARCH="i486:i386" ;; i386) BUILD_ARCH="i386" ;; ppc64) BUILD_ARCH="ppc64:ppc" ;; - ppc64le) BUILD_ARCH="ppc64le" ;; + ppc64le) BUILD_ARCH="ppc64le:ppc64" ;; sparc64v) BUILD_ARCH="sparc64v:sparc64:sparcv9v:sparcv9:sparcv8:sparc" ;; sparc64) BUILD_ARCH="sparc64:sparcv9:sparcv8:sparc" ;; sparcv9v) BUILD_ARCH="sparcv9v:sparcv9:sparcv8:sparc" ;; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20150115/init_buildsystem new/obs-build-20150317/init_buildsystem --- old/obs-build-20150115/init_buildsystem 2015-01-30 08:24:54.000000000 +0100 +++ new/obs-build-20150317/init_buildsystem 2015-03-17 08:20:24.000000000 +0100 @@ -851,6 +851,13 @@ test -x $BUILD_ROOT/sbin/ldconfig && chroot $BUILD_ROOT /sbin/ldconfig 2>&1 +# hack around a initrd incompability +# initrd's prepared by dracut for systemd remove this directory +if test -L $BUILD_ROOT/var/run -a ! -e $BUILD_ROOT/var/run; then + rm $BUILD_ROOT/var/run + mkdir $BUILD_ROOT/var/run +fi + MAIN_LIST="$PACKAGES_TO_INSTALL" progress_setup MAIN_LIST for PKG in $MAIN_LIST ; do @@ -1014,7 +1021,7 @@ if test -e $BUILD_ROOT/usr/share/zoneinfo/UTC ; then for PROG in /usr/sbin/zic /usr/bin/zic /bin/zic /sbin/zic ; do - test -x $BUILD_ROOT/$PROG && chroot $BUILD_ROOT bash -c "$PROG -l $(readlink -f /usr/share/zoneinfo/UTC)" + test -x $BUILD_ROOT/$PROG && chroot $BUILD_ROOT bash -c "$PROG -l \$(readlink -f /usr/share/zoneinfo/UTC)" done fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20150115/initvm.c new/obs-build-20150317/initvm.c --- old/obs-build-20150115/initvm.c 2015-01-30 08:24:54.000000000 +0100 +++ new/obs-build-20150317/initvm.c 2015-03-17 08:20:24.000000000 +0100 @@ -229,9 +229,11 @@ /* Is an interpreter for this arch already registered? */ snprintf(path, sizeof(path), SYSFS_BINFMT_MISC "/%s", f[name]); ret=access(path, X_OK); - fprintf(stderr, - "interpreter for '%s' is %d\n", - f[name], ret); +#ifdef DEBUG + fprintf(stderr, + "interpreter for '%s' is %d\n", + f[name], ret); +#endif /* DEBUG */ if (ret == 0) { #ifdef DEBUG fprintf(stderr, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20150115/lxc.conf new/obs-build-20150317/lxc.conf --- old/obs-build-20150115/lxc.conf 2015-01-30 08:24:54.000000000 +0100 +++ new/obs-build-20150317/lxc.conf 2015-03-17 08:20:24.000000000 +0100 @@ -13,3 +13,6 @@ lxc.cgroup.devices.allow = c 5:0 rw # ptmx lxc.cgroup.devices.allow = c 5:2 rw +# console +lxc.console = none +lxc.console.logfile = /dev/stdout -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
