@@ -33,6 +33,10 @@
: ${TREEVCS_LINUX:=git}
+: ${TREE_LIBVIRT:=git://libvirt.org/libvirt.git}
+: ${PUSH_TREE_LIBVIRT:=$XENBITS:/home/xen/git/libvirt.git}
+: ${TREEVCS_LIBVIRT:=git}
+
: ${TREE_LINUXFIRMWARE:=git://xenbits.xen.org/osstest/linux-firmware.git}
: ${PUSH_TREE_LINUXFIRMWARE:=$XENBITS:/home/osstest/ext/linux-firmware.git}
: ${UPSTREAM_TREE_LINUXFIRMWARE:=$GIT_KERNEL_ORG/pub/scm/linux/kernel/git/firmware/linux-firmware.git}
@@ -56,6 +60,7 @@ fi
: ${LOCALREV_XEN:=daily-cron.$branch}
: ${LOCALREV_LINUX:=daily-cron.$branch}
+: ${LOCALREV_LIBVIRT:=daily-cron.$branch}
: ${TREEBASE_LINUX_XCP:=http://hg.uk.xensource.com/carbon/trunk/linux-2.6.27}
@@ -69,6 +69,10 @@ linuxfirmware)
repo_tree_rev_fetch_git linuxfirmware \
$UPSTREAM_TREE_LINUXFIRMWARE master daily-cron.$branch
;;
+libvirt)
+ repo_tree_rev_fetch_git libvirt \
+ $TREE_LIBVIRT master $LOCALREV_LIBVIRT
+ ;;
osstest)
if [ "x$OSSTEST_USE_HEAD" != xy ] ; then
git fetch $HOME/testing.git pretest:ap-fetch >&2
@@ -27,6 +27,7 @@ select_xenbranch
: ${BASE_TAG_LINUX2639:=tested/2.6.39.x}
: ${BASE_LOCALREV_LINUX:=daily-cron.$branch.old}
+: ${BASE_LOCALREV_LIBVIRT:=daily-cron.$branch.old}
: ${BASE_TREE_QEMU_UPSTREAM:=${TREE_QEMU_UPSTREAM/\/staging\//\/}}
@@ -73,6 +74,10 @@ linuxfirmware)
repo_tree_rev_fetch_git linuxfirmware \
$TREE_LINUXFIRMWARE master daily-cron-old.$branch
;;
+libvirt)
+ repo_tree_rev_fetch_git libvirt \
+ $TREE_LIBVIRT master $BASE_LOCALREV_LIBVIRT
+ ;;
osstest)
if [ "x$OSSTEST_USE_HEAD" != xy ] ; then
git fetch -f $HOME/testing.git incoming:ap-fetch
@@ -46,6 +46,9 @@ linux-2.6.39)
linuxfirmware)
echo $UPSTREAM_TREE_LINUXFIRMWARE
;;
+libvirt)
+ echo $TREE_LIBVIRT
+ ;;
osstest)
echo none:;
;;
@@ -32,6 +32,7 @@ select_xenbranch
TREE_LINUX=$PUSH_TREE_LINUX
TREE_QEMU_UPSTREAM=$XENBITS:/home/xen/git/qemu-upstream-${xenbranch#xen-}.git
TREE_XEN=$PUSH_TREE_XEN
+TREE_LIBVIRT=$PUSH_TREE_LIBVIRT
if info_linux_tree "$branch"; then
cd $repos/linux
@@ -72,6 +73,10 @@ linux-xen-*)
cd $repos/linux
git push $TREE_LINUX $revision:refs/heads/$branch
;;
+libvirt)
+ cd $repos/libvirt
+ git push $TREE_LIBVIRT $revision:master
+ ;;
osstest)
git push $HOME/testing.git $revision:incoming
git push $XENBITS:/home/xen/git/osstest.git $revision:master
@@ -133,6 +133,10 @@ if [ "x$REVISION_LINUX_ARM" = x ]; then
export REVISION_LINUX_ARM
fi
fi
+if [ "x$REVISION_LIBVIRT" = x ]; then
+ determine_version REVISION_LIBVIRT libvirt
+ export REVISION_LIBVIRT
+fi
if [ "x$REVISION_LINUXFIRMWARE" = x ]; then
determine_version REVISION_LINUXFIRMWARE linuxfirmware
export REVISION_LINUXFIRMWARE
@@ -165,6 +169,10 @@ linuxfirmware)
realtree=linuxfirmware
NEW_REVISION=$REVISION_LINUXFIRMWARE
;;
+libvirt)
+ realtree=libvirt
+ NEW_REVISION=$REVISION_LIBVIRT
+ ;;
*)
NEW_REVISION=''
wantpush=false
@@ -42,6 +42,7 @@ select_xenbranch () {
linux) tree=linux; xenbranch=xen-unstable ;;
linux-*) tree=linux; xenbranch=xen-unstable ;;
linuxfirmware) tree=linuxfirmware; xenbranch=xen-unstable ;;
+ libvirt) tree=libvirt; xenbranch=xen-unstable ;;
osstest) tree=osstest; xenbranch=xen-unstable ;;
esac
if [ "x$tree" = xlinux ]; then
@@ -164,6 +164,16 @@ create_build_jobs () {
tree_linuxfirmware=$TREE_LINUXFIRMWARE \
revision_linuxfirmware=$REVISION_LINUXFIRMWARE
+ ./cs-job-create $flight build-$arch-libvirt build-libvirt \
+ arch=$arch \
+ tree_xen=$TREE_XEN \
+ $RUNVARS $BUILD_RUNVARS $BUILD_LIBVIRT_RUNVARS $arch_runvars \
+ $suite_runvars \
+ host_hostflags=$build_hostflags \
+ buildjob=${bfi}build-$arch \
+ tree_libvirt=$TREE_LIBVIRT revision_libvirt=$REVISION_LIBVIRT\
+ ${TREEVCS_LIBVIRT:+treevcs_libvirt=}${TREEVCS_LIBVIRT}
+
case "$arch" in
armhf|arm64) continue;; # don't do any other kernel builds
esac
@@ -306,6 +306,7 @@ proc test-guest-nomigr {g} {
proc need-hosts/build {} { return BUILD }
proc need-hosts/build-kern {} { return BUILD }
+proc need-hosts/build-libvirt {} { return BUILD }
proc run-job/build {} {
run-ts . = ts-xen-build
@@ -315,6 +316,10 @@ proc run-job/build-kern {} {
run-ts . = ts-kernel-build
}
+proc run-job/build-libvirt {} {
+ run-ts . = ts-libvirt-build
+}
+
proc prepare-build-host {} {
global jobinfo
run-ts broken = ts-hosts-allocate + host
new file mode 100755
@@ -0,0 +1,84 @@
+#!/usr/bin/perl
+# This is part of "osstest", an automated testing framework for Xen.
+# Copyright (C) 2009-2014 Citrix Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use strict qw(vars);
+use DBI;
+use Osstest;
+use Osstest::TestSupport;
+
+tsreadconfig();
+
+our ($whhost) = @ARGV;
+$whhost ||= 'host';
+our $ho= selecthost($whhost);
+
+my $leaf= "build.$flight.$job";
+my $homedir = get_host_property($ho, 'homedir', '/home/osstest');
+my $builddir= "$homedir/$leaf";
+my $xendist= "$builddir/xendist";
+
+my $makeflags= get_host_property($ho, 'build make flags', '-j4');
+
+sub checkout () {
+ target_cmd($ho, "rm -rf $builddir && mkdir $builddir && mkdir $xendist", 600);
+
+ my $path = get_stashed("path_dist", $r{"buildjob"});
+ my $distcopy= "$builddir/dist.tar.gz";
+ target_putfile_root($ho, 300, $path, $distcopy);
+ target_cmd_root($ho, "tar -C $xendist -hzxf $distcopy", 300);
+
+ build_clone($ho, 'libvirt', $builddir, 'libvirt');
+}
+
+sub prep() {
+ target_install_packages($ho, qw(autoconf automake libtool xsltproc
+ libxml2-utils libxml2-dev libnl-dev
+ libdevmapper-dev w3c-dtd-xhtml));
+}
+
+sub config() {
+ target_cmd_build($ho, 1000, $builddir, <<END);
+ cd libvirt
+ CFLAGS="-I$xendist/usr/local/include/" \
+ LDFLAGS="-L$xendist/usr/local/lib/ -Wl,-rpath-link=$xendist/usr/local/lib/" \
+ ./autogen.sh --with-libxl --without-xen --without-xenapi --without-selinux
+END
+}
+
+sub build() {
+ target_cmd_build($ho, 1000, $builddir, <<END);
+ cd libvirt
+ (make $makeflags 2>&1 && touch ../build-ok-stamp) |tee ../log
+ test -f ../build-ok-stamp
+ echo ok.
+END
+}
+
+sub install() {
+ target_cmd_build($ho, 300, $builddir, <<END);
+ mkdir -p dist
+ cd libvirt
+ make $makeflags install DESTDIR=$builddir/dist
+END
+}
+
+prep();
+checkout();
+config();
+build();
+install();
+built_stash($ho, $builddir, 'dist', 'libvirtdist');
The ts-libvirt-build, sg-run-job and mfi-common changes have been tested in standalone mode. The remaining changes are intended to introduce a libvirt push gate and have been tested as far as my limited ability to invoke cr-daily-branch by hand is able, but I am sure they are incomplete in some way or other. Actually installing/running the result is left for another day. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Cc: Jim Fehlig <jfehlig@suse.com> Cc: Dario Faggioli <dario.faggioli@citrix.com> --- ap-common | 5 ++++ ap-fetch-version | 4 +++ ap-fetch-version-old | 5 ++++ ap-print-url | 3 ++ ap-push | 5 ++++ cr-daily-branch | 8 +++++ cri-common | 1 + mfi-common | 10 +++++++ sg-run-job | 5 ++++ ts-libvirt-build | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 10 files changed, 130 insertions(+) create mode 100755 ts-libvirt-build