All of lore.kernel.org
 help / color / mirror / Atom feed
* [xen-unstable test] 33083: regressions - FAIL
@ 2015-01-04  9:42 xen.org
  2015-01-05 10:17 ` Ian Campbell
  0 siblings, 1 reply; 7+ messages in thread
From: xen.org @ 2015-01-04  9:42 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson

flight 33083 xen-unstable real [real]
http://www.chiark.greenend.org.uk/~xensrcts/logs/33083/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-armhf-libvirt           5 libvirt-build             fail REGR. vs. 32877
 build-amd64-libvirt           5 libvirt-build             fail REGR. vs. 32877
 build-i386-libvirt            5 libvirt-build             fail REGR. vs. 32877

Regressions which are regarded as allowable (not blocking):
 test-amd64-i386-pair        17 guest-migrate/src_host/dst_host fail like 33038

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl          10 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-pvh-amd   9 guest-start                  fail   never pass
 test-amd64-amd64-xl-pvh-intel  9 guest-start                  fail  never pass
 test-amd64-amd64-xl-pcipt-intel  9 guest-start                 fail never pass
 test-amd64-i386-libvirt       1 build-check(1)               blocked  n/a
 test-amd64-i386-xl-qemuu-win7-amd64 14 guest-stop              fail never pass
 test-amd64-i386-xl-qemut-winxpsp3 14 guest-stop                fail never pass
 test-amd64-i386-xl-qemuu-winxpsp3 14 guest-stop                fail never pass
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1 14 guest-stop         fail never pass
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 14 guest-stop         fail never pass
 test-amd64-amd64-xl-winxpsp3 14 guest-stop                   fail   never pass
 test-amd64-amd64-xl-win7-amd64 14 guest-stop                   fail never pass
 test-amd64-i386-xl-qemut-win7-amd64 14 guest-stop              fail never pass
 test-amd64-i386-xl-win7-amd64 14 guest-stop                   fail  never pass
 test-amd64-i386-xl-winxpsp3-vcpus1 14 guest-stop               fail never pass
 test-amd64-amd64-xl-qemut-winxpsp3 14 guest-stop               fail never pass
 test-amd64-i386-xl-winxpsp3  14 guest-stop                   fail   never pass
 test-amd64-amd64-xl-qemut-win7-amd64 14 guest-stop             fail never pass
 test-amd64-amd64-xl-qemuu-win7-amd64 14 guest-stop             fail never pass
 test-amd64-amd64-xl-qemuu-winxpsp3 14 guest-stop               fail never pass

version targeted for testing:
 xen                  36174af3fbeb1b662c0eadbfa193e77f68cc955b
baseline version:
 xen                  36174af3fbeb1b662c0eadbfa193e77f68cc955b

jobs:
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          fail    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           fail    
 build-amd64-oldkern                                          pass    
 build-i386-oldkern                                           pass    
 build-amd64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 build-amd64-rumpuserxen                                      pass    
 build-i386-rumpuserxen                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-amd64-xl-pvh-amd                                  fail    
 test-amd64-i386-rhel6hvm-amd                                 pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-rumpuserxen-amd64                           pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-win7-amd64                               fail    
 test-amd64-i386-xl-win7-amd64                                fail    
 test-amd64-i386-xl-credit2                                   pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-i386-rumpuserxen-i386                             pass    
 test-amd64-amd64-xl-pcipt-intel                              fail    
 test-amd64-amd64-xl-pvh-intel                                fail    
 test-amd64-i386-rhel6hvm-intel                               pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-i386-libvirt                                      blocked 
 test-amd64-i386-xl-multivcpu                                 pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         fail    
 test-amd64-amd64-xl-sedf-pin                                 pass    
 test-amd64-amd64-xl-sedf                                     pass    
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1                     fail    
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1                     fail    
 test-amd64-i386-xl-winxpsp3-vcpus1                           fail    
 test-amd64-amd64-xl-qemut-winxpsp3                           fail    
 test-amd64-i386-xl-qemut-winxpsp3                            fail    
 test-amd64-amd64-xl-qemuu-winxpsp3                           fail    
 test-amd64-i386-xl-qemuu-winxpsp3                            fail    
 test-amd64-amd64-xl-winxpsp3                                 fail    
 test-amd64-i386-xl-winxpsp3                                  fail    


------------------------------------------------------------
sg-report-flight on osstest.cam.xci-test.com
logs: /home/xc_osstest/logs
images: /home/xc_osstest/images

Logs, config files, etc. are available at
    http://www.chiark.greenend.org.uk/~xensrcts/logs

Test harness code can be found at
    http://xenbits.xensource.com/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [xen-unstable test] 33083: regressions - FAIL
  2015-01-04  9:42 [xen-unstable test] 33083: regressions - FAIL xen.org
@ 2015-01-05 10:17 ` Ian Campbell
  2015-01-05 13:03   ` [PATCH OSSTEST] ts-libvirt-build: use Osstest::BuildSupport::submodulefixup Ian Campbell
                     ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Ian Campbell @ 2015-01-05 10:17 UTC (permalink / raw)
  To: xen.org; +Cc: xen-devel

On Sun, 2015-01-04 at 09:42 +0000, xen.org wrote:
> flight 33083 xen-unstable real [real]
> http://www.chiark.greenend.org.uk/~xensrcts/logs/33083/
> 
> Regressions :-(
> 
> Tests which did not succeed and are blocking,
> including tests which could not be run:
>  build-armhf-libvirt           5 libvirt-build             fail REGR. vs. 32877
>  build-amd64-libvirt           5 libvirt-build             fail REGR. vs. 32877
>  build-i386-libvirt            5 libvirt-build             fail REGR. vs. 32877

1 out of 2 hunks FAILED -- saving rejects to file /tmp/glk81Xud/ssize_t.m4.rej
/home/osstest/build.32902.build-amd64-libvirt/gnulib-libvirt/gnulib-tool: *** patch file gnulib/local/m4/ssize_t.m4.diff didn't apply cleanly
/home/osstest/build.32902.build-amd64-libvirt/gnulib-libvirt/gnulib-tool: *** Stop.
sed: can't read gnulib/tests/gnulib.mk: No such file or directory

This seems to be due to a bug in osstest relating to how we handle
the .gnulib submodule -- we always take the latest upstream gnulib
version instead of following the version encoded into libvirt.git's
submodule metadata.

In this case libvirt.git currently points to 3914f3153576 which predates
the problematic commit (see all the bisect logs) b9bfe78424b8. That
commit updates all the copyright years in gnulib which breaks applying
the patches which libvirt carries locally (which is why it's important
to use the declared version).

I'll have to have a think about what change we need to make to osstest
here...

Ian.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH OSSTEST] ts-libvirt-build: use Osstest::BuildSupport::submodulefixup
  2015-01-05 10:17 ` Ian Campbell
@ 2015-01-05 13:03   ` Ian Campbell
  2015-01-05 15:08   ` [PATCH OSSTEST v2] " Ian Campbell
  2015-01-05 15:36   ` [PATCH OSSTEST v3] " Ian Campbell
  2 siblings, 0 replies; 7+ messages in thread
From: Ian Campbell @ 2015-01-05 13:03 UTC (permalink / raw)
  To: ian.jackson; +Cc: Ian Campbell, xen-devel

Instead of cloning gnulib manually which can break if upstream gnulib
gets ahead of libvirt.git (which applies patches on the fly etc). By
using submodulefixup we automatically DTRT and use the version of
gnulib specified by the libvirt.git submodule metadata, but with a
runvar override if necessary.

This also removes a whole bunch of faffing in ap-*, cr-daily-branch
and mfi-common to get the version of gnulib to use, which was always a
bit of a wart (ungated for one thing...).

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
 ap-common            |  3 ---
 ap-fetch-version     |  4 ----
 ap-fetch-version-old |  4 ----
 ap-print-url         |  3 ---
 ap-push              |  5 -----
 cr-daily-branch      |  4 ----
 mfi-common           |  1 -
 ts-libvirt-build     | 15 ++++-----------
 8 files changed, 4 insertions(+), 35 deletions(-)

diff --git a/ap-common b/ap-common
index ff50754..96cbd14 100644
--- a/ap-common
+++ b/ap-common
@@ -37,8 +37,6 @@
 : ${PUSH_TREE_LIBVIRT:=$XENBITS:/home/xen/git/libvirt.git}
 : ${BASE_TREE_LIBVIRT:=git://xenbits.xen.org/libvirt.git}
 
-: ${TREE_GNULIB_LIBVIRT:=$(besteffort_repo git://git.sv.gnu.org/gnulib.git)}
-
 : ${TREE_RUMPUSERXEN:=https://github.com/rumpkernel/rumprun-xen}
 : ${TREEVCS_RUMPUSERXEN:=git}
 : ${BASE_TREE_RUMPUSERXEN:=git://xenbits.xen.org/rumpuser-xen.git}
@@ -77,7 +75,6 @@ fi
 : ${LOCALREV_XEN:=daily-cron.$branch}
 : ${LOCALREV_LINUX:=daily-cron.$branch}
 : ${LOCALREV_LIBVIRT:=daily-cron.$branch}
-: ${LOCALREV_GNULIB_LIBVIRT:=daily-cron.$branch}
 : ${LOCALREV_RUMPUSERXEN:=daily-cron.$branch}
 : ${LOCALREV_SEABIOS:=daily-cron.$branch}
 
diff --git a/ap-fetch-version b/ap-fetch-version
index 9c189b4..f6c65d8 100755
--- a/ap-fetch-version
+++ b/ap-fetch-version
@@ -77,10 +77,6 @@ libvirt)
 	repo_tree_rev_fetch_git libvirt \
 		$TREE_LIBVIRT master $LOCALREV_LIBVIRT
 	;;
-gnulib-libvirt)
-	repo_tree_rev_fetch_git gnulib-libvirt \
-		$TREE_GNULIB_LIBVIRT master $LOCALREV_GNULIB_LIBVIRT
-	;;
 rumpuserxen)
 	repo_tree_rev_fetch_git rumpuserxen \
 		$TREE_RUMPUSERXEN master $LOCALREV_RUMPUSERXEN
diff --git a/ap-fetch-version-old b/ap-fetch-version-old
index f3cf339..43c997c 100755
--- a/ap-fetch-version-old
+++ b/ap-fetch-version-old
@@ -88,10 +88,6 @@ rumpuserxen)
 	repo_tree_rev_fetch_git rumpuserxen \
 		$BASE_TREE_RUMPUSERXEN xen-tested-master $BASE_LOCALREV_RUMPUSERXEN
 	;;
-gnulib-libvirt)
-	# No push gate, same as ap-fetch-version
-	./ap-fetch-version $branch
-	;;
 seabios)
 	repo_tree_rev_fetch_git seabios \
 		$BASE_TREE_SEABIOS xen-tested-master $BASE_LOCALREV_SEABIOS
diff --git a/ap-print-url b/ap-print-url
index a14d2a6..7b27e1e 100755
--- a/ap-print-url
+++ b/ap-print-url
@@ -52,9 +52,6 @@ linuxfirmware)
 libvirt)
 	echo $TREE_LIBVIRT
 	;;
-gnulib-libvirt)
-	echo $TREE_GNULIB_LIBVIRT
-	;;
 rumpuserxen)
 	echo $TREE_RUMPUSERXEN
 	;;
diff --git a/ap-push b/ap-push
index 9df900a..a2aa747 100755
--- a/ap-push
+++ b/ap-push
@@ -88,11 +88,6 @@ rumpuserxen)
 	cd $repos/rumpuserxen
 	git push $TREE_RUMPUSERXEN $revision:xen-tested-master
 	;;
-gnulib-libvirt)
-	# No gate
-	echo "gnulib-libvirt has not push gate, refusing to push" >&2
-	exit 1
-	;;
 seabios)
 	cd $repos/seabios
 	git push $TREE_SEABIOS $revision:refs/heads/xen-tested-master
diff --git a/cr-daily-branch b/cr-daily-branch
index 17bb2c9..fc663ce 100755
--- a/cr-daily-branch
+++ b/cr-daily-branch
@@ -150,10 +150,6 @@ if [ "x$REVISION_LIBVIRT" = x ]; then
 	determine_version REVISION_LIBVIRT libvirt LIBVIRT
 	export REVISION_LIBVIRT
 fi
-if [ "x$REVISION_GNULIB_LIBVIRT" = x ]; then
-	determine_version REVISION_GNULIB_LIBVIRT gnulib-libvirt GNULIB_LIBVIRT
-	export REVISION_GNULIB_LIBVIRT
-fi
 if [ "x$REVISION_RUMPUSERXEN" = x ]; then
 	determine_version REVISION_RUMPUSERXEN rumpuserxen RUMPUSERXEN
 	export REVISION_RUMPUSERXEN
diff --git a/mfi-common b/mfi-common
index 5c4f5d5..e167606 100644
--- a/mfi-common
+++ b/mfi-common
@@ -187,7 +187,6 @@ create_build_jobs () {
                 host_hostflags=$build_hostflags                              \
                 buildjob=${bfi}build-$arch                                   \
                 tree_libvirt=$TREE_LIBVIRT revision_libvirt=$REVISION_LIBVIRT\
-                tree_gnulib_libvirt=$TREE_GNULIB_LIBVIRT revision_gnulib_libvirt=$REVISION_GNULIB_LIBVIRT\
 
     fi
 
diff --git a/ts-libvirt-build b/ts-libvirt-build
index 940c034..1e7d0ad 100755
--- a/ts-libvirt-build
+++ b/ts-libvirt-build
@@ -25,6 +25,8 @@ tsreadconfig();
 selectbuildhost(\@ARGV);
 builddirsprops();
 
+our %submodmap = qw(gnulib gnulib);
+
 sub libvirtd_init ();
 
 sub checkout () {
@@ -32,7 +34,7 @@ sub checkout () {
     xendist();
 
     build_clone($ho, 'libvirt', $builddir, 'libvirt');
-    build_clone($ho, 'gnulib_libvirt', $builddir, 'gnulib-libvirt');
+    my $submodules = submodulefixup($ho, 'libvirt', 'libvirt', \%submodmap);
 }
 
 sub config() {
@@ -45,15 +47,11 @@ sub config() {
     }
     die "no xen prefix" unless $xenprefix;
 
-    # Uses $GNULIB_SRCDIR because ./autogen.sh doesn't propagate
-    # --gnulib-srcdir to ./bootstap.
     target_cmd_build($ho, 3600, $builddir, <<END);
         cd libvirt
         CFLAGS="-I$xenprefix/include/" \\
         LDFLAGS="-L$xenprefix/lib/ -Wl,-rpath-link=$xenprefix/lib/" \\
-	GNULIB_SRCDIR=$builddir/gnulib-libvirt \\
-            ./autogen.sh --no-git \\
-                         --with-libxl --without-xen --without-xenapi --without-selinux \\
+            ./autogen.sh --with-libxl --without-xen --without-xenapi --without-selinux \\
                          --without-lxc --without-vbox --without-uml \\
                          --sysconfdir=/etc --localstatedir=/var #/
 END
@@ -83,15 +81,10 @@ END
 END
 }
 
-sub collectversion_gnulib () {
-    store_revision($ho, 'gnulib_libvirt', "$builddir/gnulib-libvirt", 1);
-}
-
 checkout();
 config();
 build();
 install();
-collectversion_gnulib();
 built_stash($ho, $builddir, 'dist', 'libvirtdist');
 
 sub libvirtd_init () {
-- 
2.1.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH OSSTEST v2] ts-libvirt-build: use Osstest::BuildSupport::submodulefixup
  2015-01-05 10:17 ` Ian Campbell
  2015-01-05 13:03   ` [PATCH OSSTEST] ts-libvirt-build: use Osstest::BuildSupport::submodulefixup Ian Campbell
@ 2015-01-05 15:08   ` Ian Campbell
  2015-01-05 15:36   ` [PATCH OSSTEST v3] " Ian Campbell
  2 siblings, 0 replies; 7+ messages in thread
From: Ian Campbell @ 2015-01-05 15:08 UTC (permalink / raw)
  To: ian.jackson; +Cc: Ian Campbell, xen-devel

Instead of cloning gnulib manually which can break if upstream gnulib
gets ahead of libvirt.git (which applies patches on the fly etc). By
using submodulefixup we automatically DTRT and use the version of
gnulib specified by the libvirt.git submodule metadata, but with a
runvar override if necessary.

This also removes a whole bunch of faffing in ap-*, cr-daily-branch
and mfi-common to get the version of gnulib to use, which was always a
bit of a wart (ungated for one thing...).

We continue to use --no-git and GNULIB_SRCDIR because otherwise
autogen.sh (via bootstrap) will force its own version, overwriting
what submodulefixup has done. For this we need a way to get the hash
representing the module, so introduce submodule_find (and rework
submodule_have in terms of it).

Tested in standalone mode with build-amd64-libvirt and
build-amd64-rumpuserxen (because I touched submodule_have, AFAICT the
bodges were not run). The libvirt build was tested both with the
automatic revisions and with:
    revision_libvirt=2360fe5d24175835d3f5fd1c7e8e6e13addab629
    revision_libvirt_gnulib=16518d9ed8f25d3e53931dd1aa343072933e4604
(used in successful libvirt flight 32648), in both cases confirming
that the build used the desired versions.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
v2: Honour revision_libvirt_gnulib.
---
 Osstest/BuildSupport.pm | 13 ++++++++++---
 ap-common               |  3 ---
 ap-fetch-version        |  4 ----
 ap-fetch-version-old    |  4 ----
 ap-print-url            |  3 ---
 ap-push                 |  5 -----
 cr-daily-branch         |  4 ----
 mfi-common              |  1 -
 ts-libvirt-build        | 20 +++++++++++---------
 9 files changed, 21 insertions(+), 36 deletions(-)

diff --git a/Osstest/BuildSupport.pm b/Osstest/BuildSupport.pm
index 874e27e..c323162 100644
--- a/Osstest/BuildSupport.pm
+++ b/Osstest/BuildSupport.pm
@@ -43,7 +43,7 @@ BEGIN {
                       xendist
                       $xendist
 
-                      submodulefixup submodule_have
+                      submodulefixup submodule_have submodule_find
 
                       );
     %EXPORT_TAGS = ( );
@@ -145,9 +145,16 @@ sub submodulefixup ($$$$) {
     return \@submodules;
 }
 
-sub submodule_have ($$) {
+sub submodule_find ($$) {
     my ($submodules, $ourname) = @_;
-    return !!grep { $_->{OurName} eq $ourname } @$submodules;
+    my @submods = grep { $_->{OurName} eq $ourname } @$submodules;
+    return undef unless @submods;
+    die "more than one $ourname?" if @submods ne 1;
+    return $submods[0];
+}
+
+sub submodule_have ($$) {
+    return defined(&submodule_find);
 }
 
 1;
diff --git a/ap-common b/ap-common
index ff50754..96cbd14 100644
--- a/ap-common
+++ b/ap-common
@@ -37,8 +37,6 @@
 : ${PUSH_TREE_LIBVIRT:=$XENBITS:/home/xen/git/libvirt.git}
 : ${BASE_TREE_LIBVIRT:=git://xenbits.xen.org/libvirt.git}
 
-: ${TREE_GNULIB_LIBVIRT:=$(besteffort_repo git://git.sv.gnu.org/gnulib.git)}
-
 : ${TREE_RUMPUSERXEN:=https://github.com/rumpkernel/rumprun-xen}
 : ${TREEVCS_RUMPUSERXEN:=git}
 : ${BASE_TREE_RUMPUSERXEN:=git://xenbits.xen.org/rumpuser-xen.git}
@@ -77,7 +75,6 @@ fi
 : ${LOCALREV_XEN:=daily-cron.$branch}
 : ${LOCALREV_LINUX:=daily-cron.$branch}
 : ${LOCALREV_LIBVIRT:=daily-cron.$branch}
-: ${LOCALREV_GNULIB_LIBVIRT:=daily-cron.$branch}
 : ${LOCALREV_RUMPUSERXEN:=daily-cron.$branch}
 : ${LOCALREV_SEABIOS:=daily-cron.$branch}
 
diff --git a/ap-fetch-version b/ap-fetch-version
index 9c189b4..f6c65d8 100755
--- a/ap-fetch-version
+++ b/ap-fetch-version
@@ -77,10 +77,6 @@ libvirt)
 	repo_tree_rev_fetch_git libvirt \
 		$TREE_LIBVIRT master $LOCALREV_LIBVIRT
 	;;
-gnulib-libvirt)
-	repo_tree_rev_fetch_git gnulib-libvirt \
-		$TREE_GNULIB_LIBVIRT master $LOCALREV_GNULIB_LIBVIRT
-	;;
 rumpuserxen)
 	repo_tree_rev_fetch_git rumpuserxen \
 		$TREE_RUMPUSERXEN master $LOCALREV_RUMPUSERXEN
diff --git a/ap-fetch-version-old b/ap-fetch-version-old
index f3cf339..43c997c 100755
--- a/ap-fetch-version-old
+++ b/ap-fetch-version-old
@@ -88,10 +88,6 @@ rumpuserxen)
 	repo_tree_rev_fetch_git rumpuserxen \
 		$BASE_TREE_RUMPUSERXEN xen-tested-master $BASE_LOCALREV_RUMPUSERXEN
 	;;
-gnulib-libvirt)
-	# No push gate, same as ap-fetch-version
-	./ap-fetch-version $branch
-	;;
 seabios)
 	repo_tree_rev_fetch_git seabios \
 		$BASE_TREE_SEABIOS xen-tested-master $BASE_LOCALREV_SEABIOS
diff --git a/ap-print-url b/ap-print-url
index a14d2a6..7b27e1e 100755
--- a/ap-print-url
+++ b/ap-print-url
@@ -52,9 +52,6 @@ linuxfirmware)
 libvirt)
 	echo $TREE_LIBVIRT
 	;;
-gnulib-libvirt)
-	echo $TREE_GNULIB_LIBVIRT
-	;;
 rumpuserxen)
 	echo $TREE_RUMPUSERXEN
 	;;
diff --git a/ap-push b/ap-push
index 9df900a..a2aa747 100755
--- a/ap-push
+++ b/ap-push
@@ -88,11 +88,6 @@ rumpuserxen)
 	cd $repos/rumpuserxen
 	git push $TREE_RUMPUSERXEN $revision:xen-tested-master
 	;;
-gnulib-libvirt)
-	# No gate
-	echo "gnulib-libvirt has not push gate, refusing to push" >&2
-	exit 1
-	;;
 seabios)
 	cd $repos/seabios
 	git push $TREE_SEABIOS $revision:refs/heads/xen-tested-master
diff --git a/cr-daily-branch b/cr-daily-branch
index 17bb2c9..fc663ce 100755
--- a/cr-daily-branch
+++ b/cr-daily-branch
@@ -150,10 +150,6 @@ if [ "x$REVISION_LIBVIRT" = x ]; then
 	determine_version REVISION_LIBVIRT libvirt LIBVIRT
 	export REVISION_LIBVIRT
 fi
-if [ "x$REVISION_GNULIB_LIBVIRT" = x ]; then
-	determine_version REVISION_GNULIB_LIBVIRT gnulib-libvirt GNULIB_LIBVIRT
-	export REVISION_GNULIB_LIBVIRT
-fi
 if [ "x$REVISION_RUMPUSERXEN" = x ]; then
 	determine_version REVISION_RUMPUSERXEN rumpuserxen RUMPUSERXEN
 	export REVISION_RUMPUSERXEN
diff --git a/mfi-common b/mfi-common
index 5c4f5d5..e167606 100644
--- a/mfi-common
+++ b/mfi-common
@@ -187,7 +187,6 @@ create_build_jobs () {
                 host_hostflags=$build_hostflags                              \
                 buildjob=${bfi}build-$arch                                   \
                 tree_libvirt=$TREE_LIBVIRT revision_libvirt=$REVISION_LIBVIRT\
-                tree_gnulib_libvirt=$TREE_GNULIB_LIBVIRT revision_gnulib_libvirt=$REVISION_GNULIB_LIBVIRT\
 
     fi
 
diff --git a/ts-libvirt-build b/ts-libvirt-build
index 940c034..8c5d1fc 100755
--- a/ts-libvirt-build
+++ b/ts-libvirt-build
@@ -25,6 +25,9 @@ tsreadconfig();
 selectbuildhost(\@ARGV);
 builddirsprops();
 
+our %submodmap = qw(gnulib gnulib);
+our $submodules;
+
 sub libvirtd_init ();
 
 sub checkout () {
@@ -32,7 +35,7 @@ sub checkout () {
     xendist();
 
     build_clone($ho, 'libvirt', $builddir, 'libvirt');
-    build_clone($ho, 'gnulib_libvirt', $builddir, 'gnulib-libvirt');
+    $submodules = submodulefixup($ho, 'libvirt', 'libvirt', \%submodmap);
 }
 
 sub config() {
@@ -45,13 +48,17 @@ sub config() {
     }
     die "no xen prefix" unless $xenprefix;
 
-    # Uses $GNULIB_SRCDIR because ./autogen.sh doesn't propagate
-    # --gnulib-srcdir to ./bootstap.
+    # Uses --no-git because otherwise autogen.sh will undo
+    # submodulefixup's attempts to honour
+    # revision_libvirt_gnulib. This in turn requires that we specify
+    # --gnulib-srcdir, but ./autogen.sh doesn't propagate
+    # --gnulib-srcdir to ./bootstap so we use GNULIB_SRCDIR directly.
+    my $gnulib = submodule_find($submodules, "gnulib");
     target_cmd_build($ho, 3600, $builddir, <<END);
         cd libvirt
         CFLAGS="-I$xenprefix/include/" \\
         LDFLAGS="-L$xenprefix/lib/ -Wl,-rpath-link=$xenprefix/lib/" \\
-	GNULIB_SRCDIR=$builddir/gnulib-libvirt \\
+        GNULIB_SRCDIR=$builddir/libvirt/$gnulib->{Path} \\
             ./autogen.sh --no-git \\
                          --with-libxl --without-xen --without-xenapi --without-selinux \\
                          --without-lxc --without-vbox --without-uml \\
@@ -83,15 +90,10 @@ END
 END
 }
 
-sub collectversion_gnulib () {
-    store_revision($ho, 'gnulib_libvirt', "$builddir/gnulib-libvirt", 1);
-}
-
 checkout();
 config();
 build();
 install();
-collectversion_gnulib();
 built_stash($ho, $builddir, 'dist', 'libvirtdist');
 
 sub libvirtd_init () {
-- 
2.1.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH OSSTEST v3] ts-libvirt-build: use Osstest::BuildSupport::submodulefixup
  2015-01-05 10:17 ` Ian Campbell
  2015-01-05 13:03   ` [PATCH OSSTEST] ts-libvirt-build: use Osstest::BuildSupport::submodulefixup Ian Campbell
  2015-01-05 15:08   ` [PATCH OSSTEST v2] " Ian Campbell
@ 2015-01-05 15:36   ` Ian Campbell
  2015-01-05 15:53     ` Ian Campbell
  2 siblings, 1 reply; 7+ messages in thread
From: Ian Campbell @ 2015-01-05 15:36 UTC (permalink / raw)
  To: ian.jackson; +Cc: Ian Campbell, xen-devel

Instead of cloning gnulib manually which can break if upstream gnulib
gets ahead of libvirt.git (which applies patches on the fly etc). By
using submodulefixup we automatically DTRT and use the version of
gnulib specified by the libvirt.git submodule metadata, but with a
runvar override if necessary.

This also removes a whole bunch of faffing in ap-*, cr-daily-branch
and mfi-common to get the version of gnulib to use, which was always a
bit of a wart (ungated for one thing...).

We continue to use --no-git and GNULIB_SRCDIR because otherwise
autogen.sh (via bootstrap) will force its own version, overwriting
what submodulefixup has done. For this we need a way to get the hash
representing the module, so introduce submodule_find (and rework
submodule_have in terms of it).

Tested in standalone mode with build-amd64-libvirt and
build-amd64-rumpuserxen (because I touched submodule_have, AFAICT the
bodges were not run). The libvirt build was tested both with the
automatic revisions and with:
    revision_libvirt=2360fe5d24175835d3f5fd1c7e8e6e13addab629
    revision_libvirt_gnulib=16518d9ed8f25d3e53931dd1aa343072933e4604
(used in successful libvirt flight 32648), in both cases confirming
that the build used the desired versions.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
v2: Honour revision_libvirt_gnulib.
v3: Fix submodule_have, defined(&sub) is always true because defined
    is special wrt &sub.
---
 Osstest/BuildSupport.pm | 13 ++++++++++---
 ap-common               |  3 ---
 ap-fetch-version        |  4 ----
 ap-fetch-version-old    |  4 ----
 ap-print-url            |  3 ---
 ap-push                 |  5 -----
 cr-daily-branch         |  4 ----
 mfi-common              |  1 -
 ts-libvirt-build        | 20 +++++++++++---------
 9 files changed, 21 insertions(+), 36 deletions(-)

diff --git a/Osstest/BuildSupport.pm b/Osstest/BuildSupport.pm
index 874e27e..933f6e1 100644
--- a/Osstest/BuildSupport.pm
+++ b/Osstest/BuildSupport.pm
@@ -43,7 +43,7 @@ BEGIN {
                       xendist
                       $xendist
 
-                      submodulefixup submodule_have
+                      submodulefixup submodule_have submodule_find
 
                       );
     %EXPORT_TAGS = ( );
@@ -145,9 +145,16 @@ sub submodulefixup ($$$$) {
     return \@submodules;
 }
 
-sub submodule_have ($$) {
+sub submodule_find ($$) {
     my ($submodules, $ourname) = @_;
-    return !!grep { $_->{OurName} eq $ourname } @$submodules;
+    my @submods = grep { $_->{OurName} eq $ourname } @$submodules;
+    return undef unless @submods;
+    die "more than one $ourname?" if @submods ne 1;
+    return $submods[0];
+}
+
+sub submodule_have ($$) {
+    return !!&submodule_find;
 }
 
 1;
diff --git a/ap-common b/ap-common
index ff50754..96cbd14 100644
--- a/ap-common
+++ b/ap-common
@@ -37,8 +37,6 @@
 : ${PUSH_TREE_LIBVIRT:=$XENBITS:/home/xen/git/libvirt.git}
 : ${BASE_TREE_LIBVIRT:=git://xenbits.xen.org/libvirt.git}
 
-: ${TREE_GNULIB_LIBVIRT:=$(besteffort_repo git://git.sv.gnu.org/gnulib.git)}
-
 : ${TREE_RUMPUSERXEN:=https://github.com/rumpkernel/rumprun-xen}
 : ${TREEVCS_RUMPUSERXEN:=git}
 : ${BASE_TREE_RUMPUSERXEN:=git://xenbits.xen.org/rumpuser-xen.git}
@@ -77,7 +75,6 @@ fi
 : ${LOCALREV_XEN:=daily-cron.$branch}
 : ${LOCALREV_LINUX:=daily-cron.$branch}
 : ${LOCALREV_LIBVIRT:=daily-cron.$branch}
-: ${LOCALREV_GNULIB_LIBVIRT:=daily-cron.$branch}
 : ${LOCALREV_RUMPUSERXEN:=daily-cron.$branch}
 : ${LOCALREV_SEABIOS:=daily-cron.$branch}
 
diff --git a/ap-fetch-version b/ap-fetch-version
index 9c189b4..f6c65d8 100755
--- a/ap-fetch-version
+++ b/ap-fetch-version
@@ -77,10 +77,6 @@ libvirt)
 	repo_tree_rev_fetch_git libvirt \
 		$TREE_LIBVIRT master $LOCALREV_LIBVIRT
 	;;
-gnulib-libvirt)
-	repo_tree_rev_fetch_git gnulib-libvirt \
-		$TREE_GNULIB_LIBVIRT master $LOCALREV_GNULIB_LIBVIRT
-	;;
 rumpuserxen)
 	repo_tree_rev_fetch_git rumpuserxen \
 		$TREE_RUMPUSERXEN master $LOCALREV_RUMPUSERXEN
diff --git a/ap-fetch-version-old b/ap-fetch-version-old
index f3cf339..43c997c 100755
--- a/ap-fetch-version-old
+++ b/ap-fetch-version-old
@@ -88,10 +88,6 @@ rumpuserxen)
 	repo_tree_rev_fetch_git rumpuserxen \
 		$BASE_TREE_RUMPUSERXEN xen-tested-master $BASE_LOCALREV_RUMPUSERXEN
 	;;
-gnulib-libvirt)
-	# No push gate, same as ap-fetch-version
-	./ap-fetch-version $branch
-	;;
 seabios)
 	repo_tree_rev_fetch_git seabios \
 		$BASE_TREE_SEABIOS xen-tested-master $BASE_LOCALREV_SEABIOS
diff --git a/ap-print-url b/ap-print-url
index a14d2a6..7b27e1e 100755
--- a/ap-print-url
+++ b/ap-print-url
@@ -52,9 +52,6 @@ linuxfirmware)
 libvirt)
 	echo $TREE_LIBVIRT
 	;;
-gnulib-libvirt)
-	echo $TREE_GNULIB_LIBVIRT
-	;;
 rumpuserxen)
 	echo $TREE_RUMPUSERXEN
 	;;
diff --git a/ap-push b/ap-push
index 9df900a..a2aa747 100755
--- a/ap-push
+++ b/ap-push
@@ -88,11 +88,6 @@ rumpuserxen)
 	cd $repos/rumpuserxen
 	git push $TREE_RUMPUSERXEN $revision:xen-tested-master
 	;;
-gnulib-libvirt)
-	# No gate
-	echo "gnulib-libvirt has not push gate, refusing to push" >&2
-	exit 1
-	;;
 seabios)
 	cd $repos/seabios
 	git push $TREE_SEABIOS $revision:refs/heads/xen-tested-master
diff --git a/cr-daily-branch b/cr-daily-branch
index 17bb2c9..fc663ce 100755
--- a/cr-daily-branch
+++ b/cr-daily-branch
@@ -150,10 +150,6 @@ if [ "x$REVISION_LIBVIRT" = x ]; then
 	determine_version REVISION_LIBVIRT libvirt LIBVIRT
 	export REVISION_LIBVIRT
 fi
-if [ "x$REVISION_GNULIB_LIBVIRT" = x ]; then
-	determine_version REVISION_GNULIB_LIBVIRT gnulib-libvirt GNULIB_LIBVIRT
-	export REVISION_GNULIB_LIBVIRT
-fi
 if [ "x$REVISION_RUMPUSERXEN" = x ]; then
 	determine_version REVISION_RUMPUSERXEN rumpuserxen RUMPUSERXEN
 	export REVISION_RUMPUSERXEN
diff --git a/mfi-common b/mfi-common
index 5c4f5d5..e167606 100644
--- a/mfi-common
+++ b/mfi-common
@@ -187,7 +187,6 @@ create_build_jobs () {
                 host_hostflags=$build_hostflags                              \
                 buildjob=${bfi}build-$arch                                   \
                 tree_libvirt=$TREE_LIBVIRT revision_libvirt=$REVISION_LIBVIRT\
-                tree_gnulib_libvirt=$TREE_GNULIB_LIBVIRT revision_gnulib_libvirt=$REVISION_GNULIB_LIBVIRT\
 
     fi
 
diff --git a/ts-libvirt-build b/ts-libvirt-build
index 940c034..8c5d1fc 100755
--- a/ts-libvirt-build
+++ b/ts-libvirt-build
@@ -25,6 +25,9 @@ tsreadconfig();
 selectbuildhost(\@ARGV);
 builddirsprops();
 
+our %submodmap = qw(gnulib gnulib);
+our $submodules;
+
 sub libvirtd_init ();
 
 sub checkout () {
@@ -32,7 +35,7 @@ sub checkout () {
     xendist();
 
     build_clone($ho, 'libvirt', $builddir, 'libvirt');
-    build_clone($ho, 'gnulib_libvirt', $builddir, 'gnulib-libvirt');
+    $submodules = submodulefixup($ho, 'libvirt', 'libvirt', \%submodmap);
 }
 
 sub config() {
@@ -45,13 +48,17 @@ sub config() {
     }
     die "no xen prefix" unless $xenprefix;
 
-    # Uses $GNULIB_SRCDIR because ./autogen.sh doesn't propagate
-    # --gnulib-srcdir to ./bootstap.
+    # Uses --no-git because otherwise autogen.sh will undo
+    # submodulefixup's attempts to honour
+    # revision_libvirt_gnulib. This in turn requires that we specify
+    # --gnulib-srcdir, but ./autogen.sh doesn't propagate
+    # --gnulib-srcdir to ./bootstap so we use GNULIB_SRCDIR directly.
+    my $gnulib = submodule_find($submodules, "gnulib");
     target_cmd_build($ho, 3600, $builddir, <<END);
         cd libvirt
         CFLAGS="-I$xenprefix/include/" \\
         LDFLAGS="-L$xenprefix/lib/ -Wl,-rpath-link=$xenprefix/lib/" \\
-	GNULIB_SRCDIR=$builddir/gnulib-libvirt \\
+        GNULIB_SRCDIR=$builddir/libvirt/$gnulib->{Path} \\
             ./autogen.sh --no-git \\
                          --with-libxl --without-xen --without-xenapi --without-selinux \\
                          --without-lxc --without-vbox --without-uml \\
@@ -83,15 +90,10 @@ END
 END
 }
 
-sub collectversion_gnulib () {
-    store_revision($ho, 'gnulib_libvirt', "$builddir/gnulib-libvirt", 1);
-}
-
 checkout();
 config();
 build();
 install();
-collectversion_gnulib();
 built_stash($ho, $builddir, 'dist', 'libvirtdist');
 
 sub libvirtd_init () {
-- 
2.1.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH OSSTEST v3] ts-libvirt-build: use Osstest::BuildSupport::submodulefixup
  2015-01-05 15:36   ` [PATCH OSSTEST v3] " Ian Campbell
@ 2015-01-05 15:53     ` Ian Campbell
  2015-01-06 13:54       ` Ian Campbell
  0 siblings, 1 reply; 7+ messages in thread
From: Ian Campbell @ 2015-01-05 15:53 UTC (permalink / raw)
  To: ian.jackson; +Cc: xen-devel

On Mon, 2015-01-05 at 15:36 +0000, Ian Campbell wrote:
> Instead of cloning gnulib manually which can break if upstream gnulib
> gets ahead of libvirt.git (which applies patches on the fly etc). By
> using submodulefixup we automatically DTRT and use the version of
> gnulib specified by the libvirt.git submodule metadata, but with a
> runvar override if necessary.
> 
> This also removes a whole bunch of faffing in ap-*, cr-daily-branch
> and mfi-common to get the version of gnulib to use, which was always a
> bit of a wart (ungated for one thing...).
> 
> We continue to use --no-git and GNULIB_SRCDIR because otherwise
> autogen.sh (via bootstrap) will force its own version, overwriting
> what submodulefixup has done. For this we need a way to get the hash
> representing the module, so introduce submodule_find (and rework
> submodule_have in terms of it).
> 
> Tested in standalone mode with build-amd64-libvirt and
> build-amd64-rumpuserxen (because I touched submodule_have, AFAICT the
> bodges were not run). The libvirt build was tested both with the
> automatic revisions and with:
>     revision_libvirt=2360fe5d24175835d3f5fd1c7e8e6e13addab629
>     revision_libvirt_gnulib=16518d9ed8f25d3e53931dd1aa343072933e4604
> (used in successful libvirt flight 32648), in both cases confirming
> that the build used the desired versions.
> 
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>

Ian J acked on IRC so I have pushed to osstests' pretest branch.

Ian.

> ---
> v2: Honour revision_libvirt_gnulib.
> v3: Fix submodule_have, defined(&sub) is always true because defined
>     is special wrt &sub.
> ---
>  Osstest/BuildSupport.pm | 13 ++++++++++---
>  ap-common               |  3 ---
>  ap-fetch-version        |  4 ----
>  ap-fetch-version-old    |  4 ----
>  ap-print-url            |  3 ---
>  ap-push                 |  5 -----
>  cr-daily-branch         |  4 ----
>  mfi-common              |  1 -
>  ts-libvirt-build        | 20 +++++++++++---------
>  9 files changed, 21 insertions(+), 36 deletions(-)
> 
> diff --git a/Osstest/BuildSupport.pm b/Osstest/BuildSupport.pm
> index 874e27e..933f6e1 100644
> --- a/Osstest/BuildSupport.pm
> +++ b/Osstest/BuildSupport.pm
> @@ -43,7 +43,7 @@ BEGIN {
>                        xendist
>                        $xendist
>  
> -                      submodulefixup submodule_have
> +                      submodulefixup submodule_have submodule_find
>  
>                        );
>      %EXPORT_TAGS = ( );
> @@ -145,9 +145,16 @@ sub submodulefixup ($$$$) {
>      return \@submodules;
>  }
>  
> -sub submodule_have ($$) {
> +sub submodule_find ($$) {
>      my ($submodules, $ourname) = @_;
> -    return !!grep { $_->{OurName} eq $ourname } @$submodules;
> +    my @submods = grep { $_->{OurName} eq $ourname } @$submodules;
> +    return undef unless @submods;
> +    die "more than one $ourname?" if @submods ne 1;
> +    return $submods[0];
> +}
> +
> +sub submodule_have ($$) {
> +    return !!&submodule_find;
>  }
>  
>  1;
> diff --git a/ap-common b/ap-common
> index ff50754..96cbd14 100644
> --- a/ap-common
> +++ b/ap-common
> @@ -37,8 +37,6 @@
>  : ${PUSH_TREE_LIBVIRT:=$XENBITS:/home/xen/git/libvirt.git}
>  : ${BASE_TREE_LIBVIRT:=git://xenbits.xen.org/libvirt.git}
>  
> -: ${TREE_GNULIB_LIBVIRT:=$(besteffort_repo git://git.sv.gnu.org/gnulib.git)}
> -
>  : ${TREE_RUMPUSERXEN:=https://github.com/rumpkernel/rumprun-xen}
>  : ${TREEVCS_RUMPUSERXEN:=git}
>  : ${BASE_TREE_RUMPUSERXEN:=git://xenbits.xen.org/rumpuser-xen.git}
> @@ -77,7 +75,6 @@ fi
>  : ${LOCALREV_XEN:=daily-cron.$branch}
>  : ${LOCALREV_LINUX:=daily-cron.$branch}
>  : ${LOCALREV_LIBVIRT:=daily-cron.$branch}
> -: ${LOCALREV_GNULIB_LIBVIRT:=daily-cron.$branch}
>  : ${LOCALREV_RUMPUSERXEN:=daily-cron.$branch}
>  : ${LOCALREV_SEABIOS:=daily-cron.$branch}
>  
> diff --git a/ap-fetch-version b/ap-fetch-version
> index 9c189b4..f6c65d8 100755
> --- a/ap-fetch-version
> +++ b/ap-fetch-version
> @@ -77,10 +77,6 @@ libvirt)
>  	repo_tree_rev_fetch_git libvirt \
>  		$TREE_LIBVIRT master $LOCALREV_LIBVIRT
>  	;;
> -gnulib-libvirt)
> -	repo_tree_rev_fetch_git gnulib-libvirt \
> -		$TREE_GNULIB_LIBVIRT master $LOCALREV_GNULIB_LIBVIRT
> -	;;
>  rumpuserxen)
>  	repo_tree_rev_fetch_git rumpuserxen \
>  		$TREE_RUMPUSERXEN master $LOCALREV_RUMPUSERXEN
> diff --git a/ap-fetch-version-old b/ap-fetch-version-old
> index f3cf339..43c997c 100755
> --- a/ap-fetch-version-old
> +++ b/ap-fetch-version-old
> @@ -88,10 +88,6 @@ rumpuserxen)
>  	repo_tree_rev_fetch_git rumpuserxen \
>  		$BASE_TREE_RUMPUSERXEN xen-tested-master $BASE_LOCALREV_RUMPUSERXEN
>  	;;
> -gnulib-libvirt)
> -	# No push gate, same as ap-fetch-version
> -	./ap-fetch-version $branch
> -	;;
>  seabios)
>  	repo_tree_rev_fetch_git seabios \
>  		$BASE_TREE_SEABIOS xen-tested-master $BASE_LOCALREV_SEABIOS
> diff --git a/ap-print-url b/ap-print-url
> index a14d2a6..7b27e1e 100755
> --- a/ap-print-url
> +++ b/ap-print-url
> @@ -52,9 +52,6 @@ linuxfirmware)
>  libvirt)
>  	echo $TREE_LIBVIRT
>  	;;
> -gnulib-libvirt)
> -	echo $TREE_GNULIB_LIBVIRT
> -	;;
>  rumpuserxen)
>  	echo $TREE_RUMPUSERXEN
>  	;;
> diff --git a/ap-push b/ap-push
> index 9df900a..a2aa747 100755
> --- a/ap-push
> +++ b/ap-push
> @@ -88,11 +88,6 @@ rumpuserxen)
>  	cd $repos/rumpuserxen
>  	git push $TREE_RUMPUSERXEN $revision:xen-tested-master
>  	;;
> -gnulib-libvirt)
> -	# No gate
> -	echo "gnulib-libvirt has not push gate, refusing to push" >&2
> -	exit 1
> -	;;
>  seabios)
>  	cd $repos/seabios
>  	git push $TREE_SEABIOS $revision:refs/heads/xen-tested-master
> diff --git a/cr-daily-branch b/cr-daily-branch
> index 17bb2c9..fc663ce 100755
> --- a/cr-daily-branch
> +++ b/cr-daily-branch
> @@ -150,10 +150,6 @@ if [ "x$REVISION_LIBVIRT" = x ]; then
>  	determine_version REVISION_LIBVIRT libvirt LIBVIRT
>  	export REVISION_LIBVIRT
>  fi
> -if [ "x$REVISION_GNULIB_LIBVIRT" = x ]; then
> -	determine_version REVISION_GNULIB_LIBVIRT gnulib-libvirt GNULIB_LIBVIRT
> -	export REVISION_GNULIB_LIBVIRT
> -fi
>  if [ "x$REVISION_RUMPUSERXEN" = x ]; then
>  	determine_version REVISION_RUMPUSERXEN rumpuserxen RUMPUSERXEN
>  	export REVISION_RUMPUSERXEN
> diff --git a/mfi-common b/mfi-common
> index 5c4f5d5..e167606 100644
> --- a/mfi-common
> +++ b/mfi-common
> @@ -187,7 +187,6 @@ create_build_jobs () {
>                  host_hostflags=$build_hostflags                              \
>                  buildjob=${bfi}build-$arch                                   \
>                  tree_libvirt=$TREE_LIBVIRT revision_libvirt=$REVISION_LIBVIRT\
> -                tree_gnulib_libvirt=$TREE_GNULIB_LIBVIRT revision_gnulib_libvirt=$REVISION_GNULIB_LIBVIRT\
>  
>      fi
>  
> diff --git a/ts-libvirt-build b/ts-libvirt-build
> index 940c034..8c5d1fc 100755
> --- a/ts-libvirt-build
> +++ b/ts-libvirt-build
> @@ -25,6 +25,9 @@ tsreadconfig();
>  selectbuildhost(\@ARGV);
>  builddirsprops();
>  
> +our %submodmap = qw(gnulib gnulib);
> +our $submodules;
> +
>  sub libvirtd_init ();
>  
>  sub checkout () {
> @@ -32,7 +35,7 @@ sub checkout () {
>      xendist();
>  
>      build_clone($ho, 'libvirt', $builddir, 'libvirt');
> -    build_clone($ho, 'gnulib_libvirt', $builddir, 'gnulib-libvirt');
> +    $submodules = submodulefixup($ho, 'libvirt', 'libvirt', \%submodmap);
>  }
>  
>  sub config() {
> @@ -45,13 +48,17 @@ sub config() {
>      }
>      die "no xen prefix" unless $xenprefix;
>  
> -    # Uses $GNULIB_SRCDIR because ./autogen.sh doesn't propagate
> -    # --gnulib-srcdir to ./bootstap.
> +    # Uses --no-git because otherwise autogen.sh will undo
> +    # submodulefixup's attempts to honour
> +    # revision_libvirt_gnulib. This in turn requires that we specify
> +    # --gnulib-srcdir, but ./autogen.sh doesn't propagate
> +    # --gnulib-srcdir to ./bootstap so we use GNULIB_SRCDIR directly.
> +    my $gnulib = submodule_find($submodules, "gnulib");
>      target_cmd_build($ho, 3600, $builddir, <<END);
>          cd libvirt
>          CFLAGS="-I$xenprefix/include/" \\
>          LDFLAGS="-L$xenprefix/lib/ -Wl,-rpath-link=$xenprefix/lib/" \\
> -	GNULIB_SRCDIR=$builddir/gnulib-libvirt \\
> +        GNULIB_SRCDIR=$builddir/libvirt/$gnulib->{Path} \\
>              ./autogen.sh --no-git \\
>                           --with-libxl --without-xen --without-xenapi --without-selinux \\
>                           --without-lxc --without-vbox --without-uml \\
> @@ -83,15 +90,10 @@ END
>  END
>  }
>  
> -sub collectversion_gnulib () {
> -    store_revision($ho, 'gnulib_libvirt', "$builddir/gnulib-libvirt", 1);
> -}
> -
>  checkout();
>  config();
>  build();
>  install();
> -collectversion_gnulib();
>  built_stash($ho, $builddir, 'dist', 'libvirtdist');
>  
>  sub libvirtd_init () {

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH OSSTEST v3] ts-libvirt-build: use Osstest::BuildSupport::submodulefixup
  2015-01-05 15:53     ` Ian Campbell
@ 2015-01-06 13:54       ` Ian Campbell
  0 siblings, 0 replies; 7+ messages in thread
From: Ian Campbell @ 2015-01-06 13:54 UTC (permalink / raw)
  To: ian.jackson, Konrad Rzeszutek Wilk; +Cc: xen-devel

On Mon, 2015-01-05 at 15:53 +0000, Ian Campbell wrote:
> On Mon, 2015-01-05 at 15:36 +0000, Ian Campbell wrote:
> > Instead of cloning gnulib manually which can break if upstream gnulib
> > gets ahead of libvirt.git (which applies patches on the fly etc). By
> > using submodulefixup we automatically DTRT and use the version of
> > gnulib specified by the libvirt.git submodule metadata, but with a
> > runvar override if necessary.
> > 
> > This also removes a whole bunch of faffing in ap-*, cr-daily-branch
> > and mfi-common to get the version of gnulib to use, which was always a
> > bit of a wart (ungated for one thing...).
> > 
> > We continue to use --no-git and GNULIB_SRCDIR because otherwise
> > autogen.sh (via bootstrap) will force its own version, overwriting
> > what submodulefixup has done. For this we need a way to get the hash
> > representing the module, so introduce submodule_find (and rework
> > submodule_have in terms of it).
> > 
> > Tested in standalone mode with build-amd64-libvirt and
> > build-amd64-rumpuserxen (because I touched submodule_have, AFAICT the
> > bodges were not run). The libvirt build was tested both with the
> > automatic revisions and with:
> >     revision_libvirt=2360fe5d24175835d3f5fd1c7e8e6e13addab629
> >     revision_libvirt_gnulib=16518d9ed8f25d3e53931dd1aa343072933e4604
> > (used in successful libvirt flight 32648), in both cases confirming
> > that the build used the desired versions.
> > 
> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> 
> Ian J acked on IRC so I have pushed to osstests' pretest branch.

The flight which tested this had a couple of fails, but everything
related to this change passed, so after consulting with Ian J I force
pushed this changeset and killed all the inprogress jobs (none of which
could have passed). Any new flights have a chance of passing again now.

Ian.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-01-06 13:54 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-04  9:42 [xen-unstable test] 33083: regressions - FAIL xen.org
2015-01-05 10:17 ` Ian Campbell
2015-01-05 13:03   ` [PATCH OSSTEST] ts-libvirt-build: use Osstest::BuildSupport::submodulefixup Ian Campbell
2015-01-05 15:08   ` [PATCH OSSTEST v2] " Ian Campbell
2015-01-05 15:36   ` [PATCH OSSTEST v3] " Ian Campbell
2015-01-05 15:53     ` Ian Campbell
2015-01-06 13:54       ` Ian Campbell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.