* [PATCH v8 0/2] OSSTEST: introduce a raisin build test
@ 2015-07-23 16:51 Stefano Stabellini
2015-07-23 16:52 ` [PATCH v8 1/2] " Stefano Stabellini
2015-07-23 16:52 ` [PATCH v8 2/2] OSSTest: push successful raisin builds Stefano Stabellini
0 siblings, 2 replies; 30+ messages in thread
From: Stefano Stabellini @ 2015-07-23 16:51 UTC (permalink / raw)
To: xen-devel; +Cc: wei.liu2, ian.jackson, ian.campbell, stefano.stabellini
Hi all,
the first patch introduces a Raisin build job, meant to test Raisin
itself. The second patch push-gates Raisin on successful builds.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Changes in v8:
- update commit message
- do not install-builddep in ts-raisin-build, rely on ts-xen-build-dep
- add raisin to BRANCHES at the top of cr-for-branches
- do not run jobs on the raisin flight
- switch to the common staging/master branch names
Changes in v7:
- update raisin git url after http://marc.info/?l=xen-devel&m=143472251602803
- add a patch to push-gate raisin
Changes in v6:
- move divide to Osstest/BuildSupport.pm and rename it to
divide_xen_build; use divide_xen_build in ts-raisin-build and
ts-xen-build.
Changes in v5:
- remove setting DEFAULT_REVISION_RAISIN to master
- disable raisin when branch is not xen*
- do not overwrite raisin default variables unless both revision_* and
tree_* are set of a given component
Changes in v4:
- introduce enable_raisin in mfi-common: only build raisin when building
xen-unstable
- start off from the default raisin config, then append osstest config
options to it
- do not write variable to the raisin config if the conrresponding
runvar is not set
- remove TREE_OVMF and TREE_SEABIOS
Changes in v3:
- use $raisindir throughout ts-raisin-build
- do not specify ENABLED_COMPONENTS so that empty REVISION variables can
be used to disable building a raisin component
Changes in v2:
- set revision_* variables in mfi-common;
- in ts-raisin-build set the *_REVISION config options based on the
revision_* variables;
- in ts-raisin-build, call store_revision appropriately;
- divide the output in an hypervisor and a tools tarball.
Stefano Stabellini (2):
OSSTEST: introduce a raisin build test
OSSTest: push successful raisin builds
Osstest/BuildSupport.pm | 48 ++++++++++++++++++
ap-common | 5 ++
ap-fetch-version | 3 ++
ap-fetch-version-old | 5 ++
ap-print-url | 3 ++
ap-push | 5 ++
cr-daily-branch | 8 +++
cr-for-branches | 2 +-
cri-common | 1 +
make-flight | 3 ++
mfi-common | 41 +++++++++++++++
sg-run-job | 5 ++
ts-raisin-build | 128 +++++++++++++++++++++++++++++++++++++++++++++++
ts-xen-build | 44 +---------------
14 files changed, 258 insertions(+), 43 deletions(-)
create mode 100755 ts-raisin-build
^ permalink raw reply [flat|nested] 30+ messages in thread* [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-07-23 16:51 [PATCH v8 0/2] OSSTEST: introduce a raisin build test Stefano Stabellini @ 2015-07-23 16:52 ` Stefano Stabellini 2015-07-31 15:53 ` Ian Jackson ` (4 more replies) 2015-07-23 16:52 ` [PATCH v8 2/2] OSSTest: push successful raisin builds Stefano Stabellini 1 sibling, 5 replies; 30+ messages in thread From: Stefano Stabellini @ 2015-07-23 16:52 UTC (permalink / raw) To: xen-devel; +Cc: wei.liu2, ian.jackson, ian.campbell, stefano.stabellini Introduce a raisin build test to OSSTest. The build is meant to test Raisin itself. Enable the raisin build just for xen-unstable. Disable it for all the older Xen branches and for all the non-Xen branches. The components built by the raisin job are static; the list is written by ts-raisin-build. Don't automatically generate the list as the component names are not regular. The versions of the components and their git tree urls are passed by mfi-common to ts-raisin-build. mfi-common passes the same TREE_ and REVISION_ variables used with the other jobs. ts-raisin-build writes them to the raisin config file, overwriting the defaults, only if both the tree and revision variables for a component are set, to avoid inconsistencies. For example mfi-common can pass a revision only present in a specific git tree, but not the corresponding git tree. Make divide_xen_build common between ts-raisin-build and ts-xen-build. It is used to split the build output in two archives: one with the hypervisor binary and another with the userspace tools. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> --- Changes in v8: - update commit message - do not install-builddep in ts-raisin-build, rely on ts-xen-build-dep Changes in v7: - update raisin git url after http://marc.info/?l=xen-devel&m=143472251602803 Changes in v6: - move divide to Osstest/BuildSupport.pm and rename it to divide_xen_build; use divide_xen_build in ts-raisin-build and ts-xen-build. Changes in v5: - remove setting DEFAULT_REVISION_RAISIN to master - disable raisin when branch is not xen* - do not overwrite raisin default variables unless both revision_* and tree_* are set of a given component Changes in v4: - introduce enable_raisin in mfi-common: only build raisin when building xen-unstable - start off from the default raisin config, then append osstest config options to it - do not write variable to the raisin config if the conrresponding runvar is not set - remove TREE_OVMF and TREE_SEABIOS Changes in v3: - use $raisindir throughout ts-raisin-build - do not specify ENABLED_COMPONENTS so that empty REVISION variables can be used to disable building a raisin component Changes in v2: - set revision_* variables in mfi-common; - in ts-raisin-build set the *_REVISION config options based on the revision_* variables; - in ts-raisin-build, call store_revision appropriately; - divide the output in an hypervisor and a tools tarball. --- Osstest/BuildSupport.pm | 48 ++++++++++++++++++ ap-common | 2 + mfi-common | 41 +++++++++++++++ sg-run-job | 5 ++ ts-raisin-build | 128 +++++++++++++++++++++++++++++++++++++++++++++++ ts-xen-build | 44 +--------------- 6 files changed, 226 insertions(+), 42 deletions(-) create mode 100755 ts-raisin-build diff --git a/Osstest/BuildSupport.pm b/Osstest/BuildSupport.pm index 933f6e1..76a3feb 100644 --- a/Osstest/BuildSupport.pm +++ b/Osstest/BuildSupport.pm @@ -43,6 +43,10 @@ BEGIN { xendist $xendist + divide_xen_build + trapping + die_if_fail + submodulefixup submodule_have submodule_find ); @@ -84,6 +88,50 @@ sub xendist () { ($ho, 'xendist', '', $r{"buildjob"}); } +sub divide_xen_build ($$) { + my ($subdir, $postfix) = @_; + # Only move hv to xeninstall, so that we can have + # xenpolicy in tools tarball. + # + # The files inside boot/ after `make dist' are + # xen-$XEN_VERSION: Xen binary + # xen.gz/xen: symlink to xen-$XEN_VERSION + # xen-$MAJOR: symlink to xen-$XEN_VERSION + # xen-$MAJOR.$MINOR: symlink to xen-$XEN_VERSION + # xen-sym-$XEN_VERSION: Xen symbol + # xenpolicy-$XEN_VERSION: flask policy binary if xsm is enabled + # + # So the following snippet will leave xenpolicy* in + # install/boot and get packaged to tools tarball. + target_cmd_build($ho, 100, $builddir, <<END); + cd $subdir + mkdir xen$postfix + for f in *$postfix; do + mkdir -p \$f/lib + done + if test -d $postfix/boot; then + if test -f $postfix/boot/xen.gz || test -f $postfix/boot/xen; then + mkdir xen$postfix/boot + mvfiles=`find $postfix/boot -name 'xen[a-z]*' -prune -o -name 'xen*' -print` + mv \$mvfiles xen$postfix/boot/. + fi + fi +END +} + +our @probs; + +sub trapping ($) { + my ($sub) = @_; + my $tok= eval { $sub->(); 1; }; + if (!$tok) { push @probs, $@; print STDERR "failure (trapped): $@\n"; } +} + +sub die_if_fail () { + die "*** something failed:\n\n".(join "\n\n",@probs)."\n** something failed" + if @probs; +} + #----- submodules ----- sub submodulefixup ($$$$) { diff --git a/ap-common b/ap-common index 64749e3..6e1c472 100644 --- a/ap-common +++ b/ap-common @@ -47,6 +47,8 @@ # rumpsrc-related runvars needed only for old rumpuser-xen # (ie ones which need $bodges=1 in ts-rumpuserxen-build) +: ${TREE_RAISIN:=git://xenbits.xen.org/raisin.git} + : ${TREE_SEABIOS_UPSTREAM:=git://git.seabios.org/seabios.git} : ${PUSH_TREE_SEABIOS:=$XENBITS:/home/xen/git/osstest/seabios.git} : ${BASE_TREE_SEABIOS:=git://xenbits.xen.org/osstest/seabios.git} diff --git a/mfi-common b/mfi-common index 16fc8c5..d75823d 100644 --- a/mfi-common +++ b/mfi-common @@ -148,6 +148,22 @@ create_build_jobs () { *) enable_ovmf=true; esac + case "$xenbranch" in + xen-3.*-testing) enable_raisin=false;; + xen-4.0-testing) enable_raisin=false;; + xen-4.1-testing) enable_raisin=false;; + xen-4.2-testing) enable_raisin=false;; + xen-4.3-testing) enable_raisin=false;; + xen-4.4-testing) enable_raisin=false;; + xen-4.5-testing) enable_raisin=false;; + *) enable_raisin=true; + esac + case "$branch" in + xen*) ;; + *) enable_raisin=false;; + esac + + eval " arch_runvars=\"\$ARCH_RUNVARS_$arch\" " @@ -215,6 +231,31 @@ create_build_jobs () { fi + if [ "x$REVISION_RAISIN" != xdisable ] && [ "$enable_raisin" = "true" ]; then + + ./cs-job-create $flight build-$arch-raisin build-raisin \ + arch=$arch \ + tree_xen=$TREE_XEN \ + $RUNVARS $BUILD_RUNVARS $BUILD_RAISIN_RUNVARS $arch_runvars \ + $suite_runvars \ + host_hostflags=$build_hostflags \ + buildjob=${bfi}build-$arch \ + tree_raisin=$TREE_RAISIN \ + tree_qemuu=$TREE_QEMU_UPSTREAM \ + tree_qemu=$TREE_QEMU \ + tree_seabios=$TREE_SEABIOS \ + tree_libvirt=$TREE_LIBVIRT \ + tree_ovmf=$TREE_OVMF \ + revision_xen=$REVISION_XEN \ + revision_qemu=$REVISION_QEMU \ + revision_qemuu=$REVISION_QEMU_UPSTREAM \ + revision_seabios=$REVISION_SEABIOS \ + revision_ovmf=$REVISION_OVMF \ + revision_libvirt=$REVISION_LIBVIRT \ + revision_raisin=${REVISION_RAISIN:-${DEFAULT_REVISION_RAISIN}}\ + + fi + if branch_wants_rumpkernel_tests; then case $arch in diff --git a/sg-run-job b/sg-run-job index eae159d..449118d 100755 --- a/sg-run-job +++ b/sg-run-job @@ -346,6 +346,7 @@ proc need-hosts/build {} { return BUILD } proc need-hosts/build-kern {} { return BUILD } proc need-hosts/build-libvirt {} { return BUILD } proc need-hosts/build-rumpuserxen {} { return BUILD } +proc need-hosts/build-raisin {} { return BUILD } proc run-job/build {} { run-ts . = ts-xen-build @@ -364,6 +365,10 @@ proc run-job/build-rumpuserxen {} { run-ts . = ts-xen-build + host tools } +proc run-job/build-raisin {} { + run-ts . = ts-raisin-build +} + proc prepare-build-host {} { global jobinfo run-ts broken = ts-hosts-allocate + host diff --git a/ts-raisin-build b/ts-raisin-build new file mode 100755 index 0000000..85f12d4 --- /dev/null +++ b/ts-raisin-build @@ -0,0 +1,128 @@ +#!/usr/bin/perl -w +# This is part of "osstest", an automated testing framework for Xen. +# Copyright (C) 2009-2013 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 File::Path; +use POSIX; +use Osstest::TestSupport; +use Osstest::BuildSupport; + +tsreadconfig(); +selectbuildhost(\@ARGV); +# remaining arguments are passed as targets to "make" +builddirsprops(); + +my $raisindir="$builddir/raisin"; + +sub checkout () { + prepbuilddirs(); + build_clone($ho, 'raisin', $builddir, 'raisin'); + + target_cmd_build($ho, 100, $builddir, <<END. + cd $raisindir + cp defconfig config + >>config + + echo >>config MAKE=\\"make $makeflags\\" + echo >>config PREFIX=\\"/usr\\" + echo >>config DESTDIR=dist + echo >>config ENABLED_COMPONENTS=\\"seabios ovmf xen qemu qemu_traditional libvirt\\" +END + (nonempty($r{tree_xen}) && nonempty($r{revision_xen}) ? <<END : ''). + echo >>config XEN_URL=\\"$r{tree_xen}\\" + echo >>config XEN_REVISION=\\"$r{revision_xen}\\" +END + (nonempty($r{tree_qemuu}) && nonempty($r{revision_qemuu}) ? <<END : ''). + echo >>config QEMU_URL=\\"$r{tree_qemuu}\\" + echo >>config QEMU_REVISION=\\"$r{revision_qemuu}\\" +END + (nonempty($r{tree_qemu}) && nonempty($r{revision_qemu}) ? <<END : ''). + echo >>config QEMU_TRADITIONAL_URL=\\"$r{tree_qemu}\\" + echo >>config QEMU_TRADITIONAL_REVISION=\\"$r{revision_qemu}\\" +END + (nonempty($r{tree_seabios}) && nonempty($r{revision_seabios}) ? <<END : ''). + echo >>config SEABIOS_URL=\\"$r{tree_seabios}\\" + echo >>config SEABIOS_REVISION=\\"$r{revision_seabios}\\" +END + (nonempty($r{tree_libvirt}) && nonempty($r{revision_libvirt}) ? <<END : ''). + echo >>config LIBVIRT_URL=\\"$r{tree_libvirt}\\" + echo >>config LIBVIRT_REVISION=\\"$r{revision_libvirt}\\" +END + (nonempty($r{tree_ovmf}) && nonempty($r{revision_ovmf}) ? <<END : '') + echo >>config OVMF_URL=\\"$r{tree_ovmf}\\" + echo >>config OVMF_REVISION=\\"$r{revision_ovmf}\\" +END + ); +} + +sub build () { + target_cmd_build($ho, 9000, $builddir, <<END); + cd $raisindir + ./raise -n build +END +#/; +} + +sub checkoutput () { + target_cmd_build($ho, 100, $builddir, <<END); + cd $raisindir/dist + ls boot/xen.gz + ls usr/sbin/xenstored + ls usr/sbin/xenconsoled + ls usr/lib/libxenlight.so + ls usr/sbin/xl + ls usr/lib/xen/boot/hvmloader + ls usr/lib/xen/bin/qemu-dm + ls usr/lib/xen/bin/qemu-system-i386 + ls usr/sbin/libvirtd +END +#/; +} + +sub collectversions () { + store_revision($ho, 'xen', "$raisindir/xen-dir", 1); + store_revision($ho, 'qemu', "$raisindir/qemu-traditional-dir", 1); + store_revision($ho, 'qemuu', "$raisindir/qemu-dir", 1); + store_revision($ho, 'seabios', "$raisindir/seabios-dir", 1); + store_revision($ho, 'ovmf', "$raisindir/ovmf-dir", 1); + store_revision($ho, 'libvirt', "$raisindir/libvirt-dir", 1); +} + +sub stash () { + foreach my $part ('', 'xen') { + built_stash($ho, $builddir, + "raisin/${part}dist", + "${part}dist"); + } + built_stash_file($ho, $builddir, "xen-syms", "raisin/xen-dir/xen/xen-syms", 1); + built_stash_file($ho, $builddir, "raisin-config", "raisin/config", 1); + built_stash_file($ho, $builddir, "seabios-config", + "raisin/seabios-dir/.config", 1); + built_compress_stashed("xen-syms"); +} + + +checkout(); +trapping(\&build); +trapping(\&checkoutput); +trapping(\&collectversions); +divide_xen_build('raisin', 'dist'); +stash(); +die_if_fail(); + diff --git a/ts-xen-build b/ts-xen-build index e757f68..10fc95b 100755 --- a/ts-xen-build +++ b/ts-xen-build @@ -145,36 +145,6 @@ sub collectversions () { store_revision($ho, 'ovmf', "$tools/firmware/ovmf-dir", 1); } -sub divide () { - # Only move hv to xeninstall, so that we can have - # xenpolicy in tools tarball. - # - # The files inside boot/ after `make dist' are - # xen-$XEN_VERSION: Xen binary - # xen.gz/xen: symlink to xen-$XEN_VERSION - # xen-$MAJOR: symlink to xen-$XEN_VERSION - # xen-$MAJOR.$MINOR: symlink to xen-$XEN_VERSION - # xen-sym-$XEN_VERSION: Xen symbol - # xenpolicy-$XEN_VERSION: flask policy binary if xsm is enabled - # - # So the following snippet will leave xenpolicy* in - # install/boot and get packaged to tools tarball. - target_cmd_build($ho, 100, $builddir, <<END); - cd xen/dist - mkdir xeninstall - for f in *install; do - mkdir -p \$f/lib - done - if test -d install/boot; then - if test -f install/boot/xen.gz || test -f install/boot/xen; then - mkdir xeninstall/boot - mvfiles=`find install/boot -name 'xen[a-z]*' -prune -o -name 'xen*' -print` - mv \$mvfiles xeninstall/boot/. - fi - fi -END -} - sub stash () { foreach my $part ('', 'xen') { built_stash($ho, $builddir, @@ -212,22 +182,12 @@ END $chk->finish(); } -our @probs; - -sub trapping ($) { - my ($sub) = @_; - my $tok= eval { $sub->(); 1; }; - if (!$tok) { push @probs, $@; print STDERR "failure (trapped): $@\n"; } -} - checkout(); trapping(\&build); trapping(\&collectversions); +die_if_fail(); -die "*** something failed:\n\n".(join "\n\n",@probs)."\n** something failed" - if @probs; - -divide(); +divide_xen_build('xen/dist', 'install'); stash(); checkversions(); -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-07-23 16:52 ` [PATCH v8 1/2] " Stefano Stabellini @ 2015-07-31 15:53 ` Ian Jackson 2015-07-31 15:54 ` Ian Jackson 2015-07-31 16:01 ` Ian Jackson ` (3 subsequent siblings) 4 siblings, 1 reply; 30+ messages in thread From: Ian Jackson @ 2015-07-31 15:53 UTC (permalink / raw) To: Stefano Stabellini; +Cc: wei.liu2, ian.jackson, ian.campbell, xen-devel Stefano Stabellini writes ("[PATCH v8 1/2] OSSTEST: introduce a raisin build test"): > Make divide_xen_build common between ts-raisin-build and ts-xen-build. > It is used to split the build output in two archives: one with the > hypervisor binary and another with the userspace tools. This refactoring should be in its own patch. > Introduce a raisin build test to OSSTest. The build is meant to test > Raisin itself. > > Enable the raisin build just for xen-unstable. Disable it for all the > older Xen branches and for all the non-Xen branches. > > The components built by the raisin job are static; the list is written > by ts-raisin-build. Don't automatically generate the list as the > component names are not regular. The versions of the components and > their git tree urls are passed by mfi-common to ts-raisin-build. > mfi-common passes the same TREE_ and REVISION_ variables used with the > other jobs. ts-raisin-build writes them to the raisin config file, > overwriting the defaults, only if both the tree and revision variables > for a component are set, to avoid inconsistencies. For example > mfi-common can pass a revision only present in a specific git tree, but > not the corresponding git tree. > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > > --- > > Changes in v8: > - update commit message > - do not install-builddep in ts-raisin-build, rely on ts-xen-build-dep > > Changes in v7: > - update raisin git url after http://marc.info/?l=xen-devel&m=143472251602803 > > Changes in v6: > - move divide to Osstest/BuildSupport.pm and rename it to > divide_xen_build; use divide_xen_build in ts-raisin-build and > ts-xen-build. > > Changes in v5: > - remove setting DEFAULT_REVISION_RAISIN to master > - disable raisin when branch is not xen* > - do not overwrite raisin default variables unless both revision_* and > tree_* are set of a given component > > Changes in v4: > - introduce enable_raisin in mfi-common: only build raisin when building > xen-unstable > - start off from the default raisin config, then append osstest config > options to it > - do not write variable to the raisin config if the conrresponding > runvar is not set > - remove TREE_OVMF and TREE_SEABIOS > > Changes in v3: > - use $raisindir throughout ts-raisin-build > - do not specify ENABLED_COMPONENTS so that empty REVISION variables can > be used to disable building a raisin component > > Changes in v2: > - set revision_* variables in mfi-common; > - in ts-raisin-build set the *_REVISION config options based on the > revision_* variables; > - in ts-raisin-build, call store_revision appropriately; > - divide the output in an hypervisor and a tools tarball. > --- > Osstest/BuildSupport.pm | 48 ++++++++++++++++++ > ap-common | 2 + > mfi-common | 41 +++++++++++++++ > sg-run-job | 5 ++ > ts-raisin-build | 128 +++++++++++++++++++++++++++++++++++++++++++++++ > ts-xen-build | 44 +--------------- > 6 files changed, 226 insertions(+), 42 deletions(-) > create mode 100755 ts-raisin-build > > diff --git a/Osstest/BuildSupport.pm b/Osstest/BuildSupport.pm > index 933f6e1..76a3feb 100644 > --- a/Osstest/BuildSupport.pm > +++ b/Osstest/BuildSupport.pm > @@ -43,6 +43,10 @@ BEGIN { > xendist > $xendist > > + divide_xen_build > + trapping > + die_if_fail > + > submodulefixup submodule_have submodule_find > > ); > @@ -84,6 +88,50 @@ sub xendist () { > ($ho, 'xendist', '', $r{"buildjob"}); > } > > +sub divide_xen_build ($$) { > + my ($subdir, $postfix) = @_; > + # Only move hv to xeninstall, so that we can have > + # xenpolicy in tools tarball. > + # > + # The files inside boot/ after `make dist' are > + # xen-$XEN_VERSION: Xen binary > + # xen.gz/xen: symlink to xen-$XEN_VERSION > + # xen-$MAJOR: symlink to xen-$XEN_VERSION > + # xen-$MAJOR.$MINOR: symlink to xen-$XEN_VERSION > + # xen-sym-$XEN_VERSION: Xen symbol > + # xenpolicy-$XEN_VERSION: flask policy binary if xsm is enabled > + # > + # So the following snippet will leave xenpolicy* in > + # install/boot and get packaged to tools tarball. > + target_cmd_build($ho, 100, $builddir, <<END); > + cd $subdir > + mkdir xen$postfix > + for f in *$postfix; do > + mkdir -p \$f/lib > + done > + if test -d $postfix/boot; then > + if test -f $postfix/boot/xen.gz || test -f $postfix/boot/xen; then > + mkdir xen$postfix/boot > + mvfiles=`find $postfix/boot -name 'xen[a-z]*' -prune -o -name 'xen*' -print` > + mv \$mvfiles xen$postfix/boot/. > + fi > + fi > +END > +} > + > +our @probs; > + > +sub trapping ($) { > + my ($sub) = @_; > + my $tok= eval { $sub->(); 1; }; > + if (!$tok) { push @probs, $@; print STDERR "failure (trapped): $@\n"; } > +} > + > +sub die_if_fail () { > + die "*** something failed:\n\n".(join "\n\n",@probs)."\n** something failed" > + if @probs; > +} > + > #----- submodules ----- > > sub submodulefixup ($$$$) { > diff --git a/ap-common b/ap-common > index 64749e3..6e1c472 100644 > --- a/ap-common > +++ b/ap-common > @@ -47,6 +47,8 @@ > # rumpsrc-related runvars needed only for old rumpuser-xen > # (ie ones which need $bodges=1 in ts-rumpuserxen-build) > > +: ${TREE_RAISIN:=git://xenbits.xen.org/raisin.git} > + > : ${TREE_SEABIOS_UPSTREAM:=git://git.seabios.org/seabios.git} > : ${PUSH_TREE_SEABIOS:=$XENBITS:/home/xen/git/osstest/seabios.git} > : ${BASE_TREE_SEABIOS:=git://xenbits.xen.org/osstest/seabios.git} > diff --git a/mfi-common b/mfi-common > index 16fc8c5..d75823d 100644 > --- a/mfi-common > +++ b/mfi-common > @@ -148,6 +148,22 @@ create_build_jobs () { > *) enable_ovmf=true; > esac > > + case "$xenbranch" in > + xen-3.*-testing) enable_raisin=false;; > + xen-4.0-testing) enable_raisin=false;; > + xen-4.1-testing) enable_raisin=false;; > + xen-4.2-testing) enable_raisin=false;; > + xen-4.3-testing) enable_raisin=false;; > + xen-4.4-testing) enable_raisin=false;; > + xen-4.5-testing) enable_raisin=false;; How about > + xen-4.[0-5]-testing) enable_raisin=false;; ? > @@ -215,6 +231,31 @@ create_build_jobs () { > > fi > > + if [ "x$REVISION_RAISIN" != xdisable ] && [ "$enable_raisin" = "true" ]; then > + > + ./cs-job-create $flight build-$arch-raisin build-raisin \ > + arch=$arch \ > + tree_xen=$TREE_XEN \ > + $RUNVARS $BUILD_RUNVARS $BUILD_RAISIN_RUNVARS $arch_runvars \ > + $suite_runvars \ > + host_hostflags=$build_hostflags \ > + buildjob=${bfi}build-$arch \ > + tree_raisin=$TREE_RAISIN \ > + tree_qemuu=$TREE_QEMU_UPSTREAM \ > + tree_qemu=$TREE_QEMU \ > + tree_seabios=$TREE_SEABIOS \ > + tree_libvirt=$TREE_LIBVIRT \ > + tree_ovmf=$TREE_OVMF \ > + revision_xen=$REVISION_XEN \ > + revision_qemu=$REVISION_QEMU \ > + revision_qemuu=$REVISION_QEMU_UPSTREAM \ > + revision_seabios=$REVISION_SEABIOS \ > + revision_ovmf=$REVISION_OVMF \ > + revision_libvirt=$REVISION_LIBVIRT \ > + revision_raisin=${REVISION_RAISIN:-${DEFAULT_REVISION_RAISIN}}\ > + > + fi > + > if branch_wants_rumpkernel_tests; then > > case $arch in > diff --git a/sg-run-job b/sg-run-job > index eae159d..449118d 100755 > --- a/sg-run-job > +++ b/sg-run-job > @@ -346,6 +346,7 @@ proc need-hosts/build {} { return BUILD } > proc need-hosts/build-kern {} { return BUILD } > proc need-hosts/build-libvirt {} { return BUILD } > proc need-hosts/build-rumpuserxen {} { return BUILD } > +proc need-hosts/build-raisin {} { return BUILD } > > proc run-job/build {} { > run-ts . = ts-xen-build > @@ -364,6 +365,10 @@ proc run-job/build-rumpuserxen {} { > run-ts . = ts-xen-build + host tools > } > > +proc run-job/build-raisin {} { > + run-ts . = ts-raisin-build > +} > + > proc prepare-build-host {} { > global jobinfo > run-ts broken = ts-hosts-allocate + host > diff --git a/ts-raisin-build b/ts-raisin-build > new file mode 100755 > index 0000000..85f12d4 > --- /dev/null > +++ b/ts-raisin-build > @@ -0,0 +1,128 @@ > +#!/usr/bin/perl -w > +# This is part of "osstest", an automated testing framework for Xen. > +# Copyright (C) 2009-2013 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 File::Path; > +use POSIX; > +use Osstest::TestSupport; > +use Osstest::BuildSupport; > + > +tsreadconfig(); > +selectbuildhost(\@ARGV); > +# remaining arguments are passed as targets to "make" > +builddirsprops(); > + > +my $raisindir="$builddir/raisin"; > + > +sub checkout () { > + prepbuilddirs(); > + build_clone($ho, 'raisin', $builddir, 'raisin'); > + > + target_cmd_build($ho, 100, $builddir, <<END. > + cd $raisindir > + cp defconfig config > + >>config > + > + echo >>config MAKE=\\"make $makeflags\\" > + echo >>config PREFIX=\\"/usr\\" > + echo >>config DESTDIR=dist > + echo >>config ENABLED_COMPONENTS=\\"seabios ovmf xen qemu qemu_traditional libvirt\\" > +END > + (nonempty($r{tree_xen}) && nonempty($r{revision_xen}) ? <<END : ''). > + echo >>config XEN_URL=\\"$r{tree_xen}\\" > + echo >>config XEN_REVISION=\\"$r{revision_xen}\\" > +END > + (nonempty($r{tree_qemuu}) && nonempty($r{revision_qemuu}) ? <<END : ''). > + echo >>config QEMU_URL=\\"$r{tree_qemuu}\\" > + echo >>config QEMU_REVISION=\\"$r{revision_qemuu}\\" > +END > + (nonempty($r{tree_qemu}) && nonempty($r{revision_qemu}) ? <<END : ''). > + echo >>config QEMU_TRADITIONAL_URL=\\"$r{tree_qemu}\\" > + echo >>config QEMU_TRADITIONAL_REVISION=\\"$r{revision_qemu}\\" > +END > + (nonempty($r{tree_seabios}) && nonempty($r{revision_seabios}) ? <<END : ''). > + echo >>config SEABIOS_URL=\\"$r{tree_seabios}\\" > + echo >>config SEABIOS_REVISION=\\"$r{revision_seabios}\\" > +END > + (nonempty($r{tree_libvirt}) && nonempty($r{revision_libvirt}) ? <<END : ''). > + echo >>config LIBVIRT_URL=\\"$r{tree_libvirt}\\" > + echo >>config LIBVIRT_REVISION=\\"$r{revision_libvirt}\\" > +END > + (nonempty($r{tree_ovmf}) && nonempty($r{revision_ovmf}) ? <<END : '') > + echo >>config OVMF_URL=\\"$r{tree_ovmf}\\" > + echo >>config OVMF_REVISION=\\"$r{revision_ovmf}\\" > +END > + ); > +} > + > +sub build () { > + target_cmd_build($ho, 9000, $builddir, <<END); > + cd $raisindir > + ./raise -n build > +END > +#/; > +} > + > +sub checkoutput () { > + target_cmd_build($ho, 100, $builddir, <<END); > + cd $raisindir/dist > + ls boot/xen.gz > + ls usr/sbin/xenstored > + ls usr/sbin/xenconsoled > + ls usr/lib/libxenlight.so > + ls usr/sbin/xl > + ls usr/lib/xen/boot/hvmloader > + ls usr/lib/xen/bin/qemu-dm > + ls usr/lib/xen/bin/qemu-system-i386 > + ls usr/sbin/libvirtd > +END > +#/; > +} > + > +sub collectversions () { > + store_revision($ho, 'xen', "$raisindir/xen-dir", 1); > + store_revision($ho, 'qemu', "$raisindir/qemu-traditional-dir", 1); > + store_revision($ho, 'qemuu', "$raisindir/qemu-dir", 1); > + store_revision($ho, 'seabios', "$raisindir/seabios-dir", 1); > + store_revision($ho, 'ovmf', "$raisindir/ovmf-dir", 1); > + store_revision($ho, 'libvirt', "$raisindir/libvirt-dir", 1); > +} > + > +sub stash () { > + foreach my $part ('', 'xen') { > + built_stash($ho, $builddir, > + "raisin/${part}dist", > + "${part}dist"); > + } > + built_stash_file($ho, $builddir, "xen-syms", "raisin/xen-dir/xen/xen-syms", 1); > + built_stash_file($ho, $builddir, "raisin-config", "raisin/config", 1); > + built_stash_file($ho, $builddir, "seabios-config", > + "raisin/seabios-dir/.config", 1); > + built_compress_stashed("xen-syms"); > +} > + > + > +checkout(); > +trapping(\&build); > +trapping(\&checkoutput); > +trapping(\&collectversions); > +divide_xen_build('raisin', 'dist'); > +stash(); > +die_if_fail(); > + > diff --git a/ts-xen-build b/ts-xen-build > index e757f68..10fc95b 100755 > --- a/ts-xen-build > +++ b/ts-xen-build > @@ -145,36 +145,6 @@ sub collectversions () { > store_revision($ho, 'ovmf', "$tools/firmware/ovmf-dir", 1); > } > > -sub divide () { > - # Only move hv to xeninstall, so that we can have > - # xenpolicy in tools tarball. > - # > - # The files inside boot/ after `make dist' are > - # xen-$XEN_VERSION: Xen binary > - # xen.gz/xen: symlink to xen-$XEN_VERSION > - # xen-$MAJOR: symlink to xen-$XEN_VERSION > - # xen-$MAJOR.$MINOR: symlink to xen-$XEN_VERSION > - # xen-sym-$XEN_VERSION: Xen symbol > - # xenpolicy-$XEN_VERSION: flask policy binary if xsm is enabled > - # > - # So the following snippet will leave xenpolicy* in > - # install/boot and get packaged to tools tarball. > - target_cmd_build($ho, 100, $builddir, <<END); > - cd xen/dist > - mkdir xeninstall > - for f in *install; do > - mkdir -p \$f/lib > - done > - if test -d install/boot; then > - if test -f install/boot/xen.gz || test -f install/boot/xen; then > - mkdir xeninstall/boot > - mvfiles=`find install/boot -name 'xen[a-z]*' -prune -o -name 'xen*' -print` > - mv \$mvfiles xeninstall/boot/. > - fi > - fi > -END > -} > - > sub stash () { > foreach my $part ('', 'xen') { > built_stash($ho, $builddir, > @@ -212,22 +182,12 @@ END > $chk->finish(); > } > > -our @probs; > - > -sub trapping ($) { > - my ($sub) = @_; > - my $tok= eval { $sub->(); 1; }; > - if (!$tok) { push @probs, $@; print STDERR "failure (trapped): $@\n"; } > -} > - > checkout(); > > trapping(\&build); > trapping(\&collectversions); > +die_if_fail(); > > -die "*** something failed:\n\n".(join "\n\n",@probs)."\n** something failed" > - if @probs; > - > -divide(); > +divide_xen_build('xen/dist', 'install'); > stash(); > checkversions(); > -- > 1.7.10.4 > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-07-31 15:53 ` Ian Jackson @ 2015-07-31 15:54 ` Ian Jackson 0 siblings, 0 replies; 30+ messages in thread From: Ian Jackson @ 2015-07-31 15:54 UTC (permalink / raw) To: Stefano Stabellini, xen-devel, ian.campbell, wei.liu2 Ian Jackson writes ("Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test"): > Stefano Stabellini writes ("[PATCH v8 1/2] OSSTEST: introduce a raisin build test"): > > Make divide_xen_build common between ts-raisin-build and ts-xen-build. > > It is used to split the build output in two archives: one with the > > hypervisor binary and another with the userspace tools. > > This refactoring should be in its own patch. Sorry, I sent that mail before it was finished. I'll send a followup. Ian. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-07-23 16:52 ` [PATCH v8 1/2] " Stefano Stabellini 2015-07-31 15:53 ` Ian Jackson @ 2015-07-31 16:01 ` Ian Jackson 2015-08-03 16:59 ` Stefano Stabellini 2015-08-04 8:35 ` [PATCH v8 1/2] OSSTEST: introduce a raisin build test Ian Campbell ` (2 subsequent siblings) 4 siblings, 1 reply; 30+ messages in thread From: Ian Jackson @ 2015-07-31 16:01 UTC (permalink / raw) To: Stefano Stabellini; +Cc: wei.liu2, ian.campbell, xen-devel (Please disregard my previous incomplete mail about this patch. This reply has all of my comments. Thanks.) Stefano Stabellini writes ("[PATCH v8 1/2] OSSTEST: introduce a raisin build test"): > Make divide_xen_build common between ts-raisin-build and ts-xen-build. > It is used to split the build output in two archives: one with the > hypervisor binary and another with the userspace tools. This refactoring should be in its own patch. > + case "$xenbranch" in > + xen-3.*-testing) enable_raisin=false;; > + xen-4.0-testing) enable_raisin=false;; > + xen-4.1-testing) enable_raisin=false;; > + xen-4.2-testing) enable_raisin=false;; > + xen-4.3-testing) enable_raisin=false;; > + xen-4.4-testing) enable_raisin=false;; > + xen-4.5-testing) enable_raisin=false;; How about > + xen-4.[0-5]-testing) enable_raisin=false;; ? > + echo >>config ENABLED_COMPONENTS=\\"seabios ovmf xen qemu qemu_traditional libvirt\\" > +END > + (nonempty($r{tree_xen}) && nonempty($r{revision_xen}) ? <<END : ''). > + echo >>config XEN_URL=\\"$r{tree_xen}\\" > + echo >>config XEN_REVISION=\\"$r{revision_xen}\\" > +END This URL/REVISION setting is too repetetive. If you improved it you could combine it with your setting of ENABLED_COMPONENTS. It's true that qemuu/QEMU_URL and qemu/QEMU_TRADITIONAL_URL etc. need special handling but their specialness should be minimised. Maybe an anonymous subref for generating each stanza, which you call with matching arguments in a loop for most components, and explicitly with nonmatching arguments for the two qemus. > +sub checkoutput () { > + target_cmd_build($ho, 100, $builddir, <<END); > + cd $raisindir/dist > + ls boot/xen.gz > + ls usr/sbin/xenstored > + ls usr/sbin/xenconsoled > + ls usr/lib/libxenlight.so > + ls usr/sbin/xl > + ls usr/lib/xen/boot/hvmloader > + ls usr/lib/xen/bin/qemu-dm > + ls usr/lib/xen/bin/qemu-system-i386 > + ls usr/sbin/libvirtd > +END I'm not sure why not `ls -l'. > +sub collectversions () { > + store_revision($ho, 'xen', "$raisindir/xen-dir", 1); > + store_revision($ho, 'qemu', "$raisindir/qemu-traditional-dir", 1); > + store_revision($ho, 'qemuu', "$raisindir/qemu-dir", 1); > + store_revision($ho, 'seabios', "$raisindir/seabios-dir", 1); > + store_revision($ho, 'ovmf', "$raisindir/ovmf-dir", 1); > + store_revision($ho, 'libvirt', "$raisindir/libvirt-dir", 1); This list of revisions should come from the same place as the list of config settings, above. Thanks, Ian. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-07-31 16:01 ` Ian Jackson @ 2015-08-03 16:59 ` Stefano Stabellini 2015-08-04 10:55 ` Ian Campbell 0 siblings, 1 reply; 30+ messages in thread From: Stefano Stabellini @ 2015-08-03 16:59 UTC (permalink / raw) To: Ian Jackson; +Cc: xen-devel, wei.liu2, ian.campbell, Stefano Stabellini On Fri, 31 Jul 2015, Ian Jackson wrote: > (Please disregard my previous incomplete mail about this patch. This > reply has all of my comments. Thanks.) > > Stefano Stabellini writes ("[PATCH v8 1/2] OSSTEST: introduce a raisin build test"): > > Make divide_xen_build common between ts-raisin-build and ts-xen-build. > > It is used to split the build output in two archives: one with the > > hypervisor binary and another with the userspace tools. > > This refactoring should be in its own patch. OK > > + case "$xenbranch" in > > + xen-3.*-testing) enable_raisin=false;; > > + xen-4.0-testing) enable_raisin=false;; > > + xen-4.1-testing) enable_raisin=false;; > > + xen-4.2-testing) enable_raisin=false;; > > + xen-4.3-testing) enable_raisin=false;; > > + xen-4.4-testing) enable_raisin=false;; > > + xen-4.5-testing) enable_raisin=false;; > > How about > > > + xen-4.[0-5]-testing) enable_raisin=false;; > > ? OK > > + echo >>config ENABLED_COMPONENTS=\\"seabios ovmf xen qemu qemu_traditional libvirt\\" > > +END > > + (nonempty($r{tree_xen}) && nonempty($r{revision_xen}) ? <<END : ''). > > + echo >>config XEN_URL=\\"$r{tree_xen}\\" > > + echo >>config XEN_REVISION=\\"$r{revision_xen}\\" > > +END > > This URL/REVISION setting is too repetetive. If you improved it you > could combine it with your setting of ENABLED_COMPONENTS. > > It's true that qemuu/QEMU_URL and qemu/QEMU_TRADITIONAL_URL etc. need > special handling but their specialness should be minimised. Maybe an > anonymous subref for generating each stanza, which you call with > matching arguments in a loop for most components, and explicitly with > nonmatching arguments for the two qemus. I disagree on this: some things are not worth optimizing. Nonetheless I would make the changes you are requesting, but as explained in the past, what you are asking is beyond my knowledge of the language. Furthermore the snippet of code that was provided to me on the 13th of May did not actually work. In conclusion, given that this is v8, I'll leave this code as is. Feel free to change it the way you think is best. > > +sub checkoutput () { > > + target_cmd_build($ho, 100, $builddir, <<END); > > + cd $raisindir/dist > > + ls boot/xen.gz > > + ls usr/sbin/xenstored > > + ls usr/sbin/xenconsoled > > + ls usr/lib/libxenlight.so > > + ls usr/sbin/xl > > + ls usr/lib/xen/boot/hvmloader > > + ls usr/lib/xen/bin/qemu-dm > > + ls usr/lib/xen/bin/qemu-system-i386 > > + ls usr/sbin/libvirtd > > +END > > I'm not sure why not `ls -l'. OK > > +sub collectversions () { > > + store_revision($ho, 'xen', "$raisindir/xen-dir", 1); > > + store_revision($ho, 'qemu', "$raisindir/qemu-traditional-dir", 1); > > + store_revision($ho, 'qemuu', "$raisindir/qemu-dir", 1); > > + store_revision($ho, 'seabios', "$raisindir/seabios-dir", 1); > > + store_revision($ho, 'ovmf', "$raisindir/ovmf-dir", 1); > > + store_revision($ho, 'libvirt', "$raisindir/libvirt-dir", 1); > > This list of revisions should come from the same place as the list of > config settings, above. I guess you mean the list of revisions to store? As in xen, qemu, qemuu, seabios, ovmf, libvirt? The list is currently hardcoded and names of the corresponding repositories are not regular, so for similar reasons as above I would prefer to keep it as is. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-08-03 16:59 ` Stefano Stabellini @ 2015-08-04 10:55 ` Ian Campbell 2015-08-04 13:02 ` [PATCH 1/2] ts-raisin-build: consolidate open coded iterations over enabled components Ian Campbell 2015-08-04 13:02 ` [PATCH 2/2] ts-raisin-build: Use git_massage_url Ian Campbell 0 siblings, 2 replies; 30+ messages in thread From: Ian Campbell @ 2015-08-04 10:55 UTC (permalink / raw) To: Stefano Stabellini, Ian Jackson; +Cc: wei.liu2, xen-devel On Mon, 2015-08-03 at 17:59 +0100, Stefano Stabellini wrote: > > > > + echo >>config ENABLED_COMPONENTS=\\"seabios ovmf xen qemu > > > qemu_traditional libvirt\\" > > > +END > > > + (nonempty($r{tree_xen}) && nonempty($r{revision_xen}) > > > ? <<END : ''). > > > + echo >>config XEN_URL=\\"$r{tree_xen}\\" > > > + echo >>config XEN_REVISION=\\"$r{revision_xen}\\" > > > +END > > > > This URL/REVISION setting is too repetetive. If you improved it you > > could combine it with your setting of ENABLED_COMPONENTS. > > > > It's true that qemuu/QEMU_URL and qemu/QEMU_TRADITIONAL_URL etc. need > > special handling but their specialness should be minimised. Maybe an > > anonymous subref for generating each stanza, which you call with > > matching arguments in a loop for most components, and explicitly with > > nonmatching arguments for the two qemus. > > I disagree on this: some things are not worth optimizing. This is not an optimisation, it is a maintainability improvement, having multiple places which operate in an open coded way on a list of things which are all supposed to remain in sync just means they will get out of sync. > Nonetheless I would make the changes you are requesting, but as > explained in the past, what you are asking is beyond my knowledge of the > language. Furthermore the snippet of code that was provided to me on the > 13th of May did not actually work. Perl is really not _so_ obscure or hard that this is much of an excuse, even if you don't want to write it in a Perl-ish way you could get this done just using constructs common to most languages, i.e. hashes, arrays and loops. Nevertheless, since this seems to be going nowhere I'll take your series and fix this up for you. > In conclusion, given that this is v8, I'll leave this code as is. Feel > free to change it the way you think is best. The fact we have made it to v8 without a piece of review commentary being implemented is not a reason to continue to ignore it, nor to just accept the patch as is IMHO. > > > +sub collectversions () { > > > + store_revision($ho, 'xen', "$raisindir/xen-dir", 1); > > > + store_revision($ho, 'qemu', "$raisindir/qemu-traditional-dir", > > > 1); > > > + store_revision($ho, 'qemuu', "$raisindir/qemu-dir", 1); > > > + store_revision($ho, 'seabios', "$raisindir/seabios-dir", 1); > > > + store_revision($ho, 'ovmf', "$raisindir/ovmf-dir", 1); > > > + store_revision($ho, 'libvirt', "$raisindir/libvirt-dir", 1); > > > > This list of revisions should come from the same place as the list of > > config settings, above. > > I guess you mean the list of revisions to store? As in xen, qemu, qemuu, > seabios, ovmf, libvirt? The list is currently hardcoded and names of the > corresponding repositories are not regular, so for similar reasons as > above I would prefer to keep it as is. As above, I'll fix it. Ian. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 1/2] ts-raisin-build: consolidate open coded iterations over enabled components 2015-08-04 10:55 ` Ian Campbell @ 2015-08-04 13:02 ` Ian Campbell 2015-08-05 7:50 ` Ian Campbell 2015-08-04 13:02 ` [PATCH 2/2] ts-raisin-build: Use git_massage_url Ian Campbell 1 sibling, 1 reply; 30+ messages in thread From: Ian Campbell @ 2015-08-04 13:02 UTC (permalink / raw) To: ian.jackson, xen-devel; +Cc: wei.liu2, Ian Campbell, stefano.stabellini This removes the possibility of the various bits (ENABLED_COMPONENTS, TREE/REVISION_* and store_revision) getting out of sync. Use a hash table to store overrides where the Raising and runvar names for a component differ. Also switch to using a shell heredoc to populate config, this was necessary as part of how the TREE/REVISION setup was rewritten and we may as well pull the other settings into that too (reduces the amount of quoting too). Also add a comment to config to indicate where the osstest overrides start. The config file produced here is identical to before except for the added command and an extra trailing newline. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> --- It would probably be best to fold this into the base patch rather than doing it seperately, maybe after Ian has had a chance to comment on the incremental patch? The use of $treerev_override{$_}//$_ could be simplified by doing something like: $treerev_override{$_} //= $_ foreach @components; at some point after the hash is declared but before it is used. I'm not sure if that would be preferable or not. --- ts-raisin-build | 75 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/ts-raisin-build b/ts-raisin-build index 137ee37..2f3d4eb 100755 --- a/ts-raisin-build +++ b/ts-raisin-build @@ -30,45 +30,46 @@ builddirsprops(); my $raisindir="$builddir/raisin"; +# Components to enable, using the Raisin naming scheme +my @components = qw(seabios ovmf xen qemu qemu_traditional libvirt); +# Where they differ, map raisin component names to the osstest runvar names +my %treerev_override = ( + qemu => 'qemuu', + qemu_traditional => 'qemu' + ); + sub checkout () { prepbuilddirs(); build_clone($ho, 'raisin', $builddir, 'raisin'); - target_cmd_build($ho, 100, $builddir, <<END. + my $enabled = join(" ", @components); + my $treerevs; + foreach (@components) { + my $treerev = $treerev_override{$_}//$_; + logm("Mapping component $_ to runvar $treerev"); + # We require both a tree and revision + next unless nonempty($r{"tree_$treerev"}); + next unless nonempty($r{"revision_$treerev"}); + + my $url = $r{"tree_$treerev"}; + my $rev = $r{"revision_$treerev"}; + $treerevs .= uc($_)."_URL=\"$url\"\n"; + $treerevs .= uc($_)."_REVISION=\"$rev\"\n"; + } + + target_cmd_build($ho, 100, $builddir, <<END); cd $raisindir cp defconfig config - >>config + cat >>config <<EOF - echo >>config MAKE=\\"make $makeflags\\" - echo >>config PREFIX=\\"/usr\\" - echo >>config DESTDIR=dist - echo >>config ENABLED_COMPONENTS=\\"seabios ovmf xen qemu qemu_traditional libvirt\\" -END - (nonempty($r{tree_xen}) && nonempty($r{revision_xen}) ? <<END : ''). - echo >>config XEN_URL=\\"$r{tree_xen}\\" - echo >>config XEN_REVISION=\\"$r{revision_xen}\\" +# osstest overrides +MAKE=\"make $makeflags\" +PREFIX=\"/usr\" +DESTDIR=dist +ENABLED_COMPONENTS=\"$enabled\" +$treerevs +EOF END - (nonempty($r{tree_qemuu}) && nonempty($r{revision_qemuu}) ? <<END : ''). - echo >>config QEMU_URL=\\"$r{tree_qemuu}\\" - echo >>config QEMU_REVISION=\\"$r{revision_qemuu}\\" -END - (nonempty($r{tree_qemu}) && nonempty($r{revision_qemu}) ? <<END : ''). - echo >>config QEMU_TRADITIONAL_URL=\\"$r{tree_qemu}\\" - echo >>config QEMU_TRADITIONAL_REVISION=\\"$r{revision_qemu}\\" -END - (nonempty($r{tree_seabios}) && nonempty($r{revision_seabios}) ? <<END : ''). - echo >>config SEABIOS_URL=\\"$r{tree_seabios}\\" - echo >>config SEABIOS_REVISION=\\"$r{revision_seabios}\\" -END - (nonempty($r{tree_libvirt}) && nonempty($r{revision_libvirt}) ? <<END : ''). - echo >>config LIBVIRT_URL=\\"$r{tree_libvirt}\\" - echo >>config LIBVIRT_REVISION=\\"$r{revision_libvirt}\\" -END - (nonempty($r{tree_ovmf}) && nonempty($r{revision_ovmf}) ? <<END : '') - echo >>config OVMF_URL=\\"$r{tree_ovmf}\\" - echo >>config OVMF_REVISION=\\"$r{revision_ovmf}\\" -END - ); } sub build () { @@ -96,12 +97,12 @@ END } sub collectversions () { - store_revision($ho, 'xen', "$raisindir/xen-dir", 1); - store_revision($ho, 'qemu', "$raisindir/qemu-traditional-dir", 1); - store_revision($ho, 'qemuu', "$raisindir/qemu-dir", 1); - store_revision($ho, 'seabios', "$raisindir/seabios-dir", 1); - store_revision($ho, 'ovmf', "$raisindir/ovmf-dir", 1); - store_revision($ho, 'libvirt', "$raisindir/libvirt-dir", 1); + foreach ( @components ) { + my $tree = $treerev_override{$_}//$_; + # raisin uses - in dir names, not _ as in component names + tr/_/-/; + store_revision($ho, $tree, "$raisindir/$_-dir", 1); + } } sub stash () { -- 2.1.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH 1/2] ts-raisin-build: consolidate open coded iterations over enabled components 2015-08-04 13:02 ` [PATCH 1/2] ts-raisin-build: consolidate open coded iterations over enabled components Ian Campbell @ 2015-08-05 7:50 ` Ian Campbell 0 siblings, 0 replies; 30+ messages in thread From: Ian Campbell @ 2015-08-05 7:50 UTC (permalink / raw) To: ian.jackson, xen-devel; +Cc: wei.liu2, stefano.stabellini On Tue, 2015-08-04 at 14:02 +0100, Ian Campbell wrote: > +my %treerev_override = ( This is a kindofcrappy name actually. Maybe %comp2runvar or %raisin2osstest or (perhaps going too far) just %r2o? Ian. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 2/2] ts-raisin-build: Use git_massage_url 2015-08-04 10:55 ` Ian Campbell 2015-08-04 13:02 ` [PATCH 1/2] ts-raisin-build: consolidate open coded iterations over enabled components Ian Campbell @ 2015-08-04 13:02 ` Ian Campbell 1 sibling, 0 replies; 30+ messages in thread From: Ian Campbell @ 2015-08-04 13:02 UTC (permalink / raw) To: ian.jackson, xen-devel; +Cc: wei.liu2, Ian Campbell, stefano.stabellini Sends clones via any configured proxy. XXX this only affects URLs explicitly configured by osstest, so not any implicit ones. Perhaps there is a better Raisin way to achieve this? Signed-off-by: Ian Campbell <ian.campbell@citrix.com> --- ts-raisin-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ts-raisin-build b/ts-raisin-build index 2f3d4eb..63519c6 100755 --- a/ts-raisin-build +++ b/ts-raisin-build @@ -51,7 +51,7 @@ sub checkout () { next unless nonempty($r{"tree_$treerev"}); next unless nonempty($r{"revision_$treerev"}); - my $url = $r{"tree_$treerev"}; + my $url = git_massage_url($r{"tree_$treerev"}); my $rev = $r{"revision_$treerev"}; $treerevs .= uc($_)."_URL=\"$url\"\n"; $treerevs .= uc($_)."_REVISION=\"$rev\"\n"; -- 2.1.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-07-23 16:52 ` [PATCH v8 1/2] " Stefano Stabellini 2015-07-31 15:53 ` Ian Jackson 2015-07-31 16:01 ` Ian Jackson @ 2015-08-04 8:35 ` Ian Campbell 2015-08-04 8:39 ` Ian Campbell 2015-08-04 9:37 ` Ian Campbell 2015-08-04 11:04 ` Ian Campbell 4 siblings, 1 reply; 30+ messages in thread From: Ian Campbell @ 2015-08-04 8:35 UTC (permalink / raw) To: Stefano Stabellini, xen-devel; +Cc: wei.liu2, ian.jackson On Thu, 2015-07-23 at 17:52 +0100, Stefano Stabellini wrote: > diff --git a/ts-xen-build b/ts-xen-build > index e757f68..10fc95b 100755 > --- a/ts-xen-build > +++ b/ts-xen-build > @@ -145,36 +145,6 @@ sub collectversions () { > store_revision($ho, 'ovmf', "$tools/firmware/ovmf-dir", 1); > } > > -sub divide () { FYI this needs rebasing over "Collect xen.efi into xendist and install in appropriate place". > - # Only move hv to xeninstall, so that we can have > - # xenpolicy in tools tarball. > - # > - # The files inside boot/ after `make dist' are > - # xen-$XEN_VERSION: Xen binary > - # xen.gz/xen: symlink to xen-$XEN_VERSION > - # xen-$MAJOR: symlink to xen-$XEN_VERSION > - # xen-$MAJOR.$MINOR: symlink to xen-$XEN_VERSION > - # xen-sym-$XEN_VERSION: Xen symbol > - # xenpolicy-$XEN_VERSION: flask policy binary if xsm is enabled > - # > - # So the following snippet will leave xenpolicy* in > - # install/boot and get packaged to tools tarball. > - target_cmd_build($ho, 100, $builddir, <<END); > - cd xen/dist > - mkdir xeninstall > - for f in *install; do > - mkdir -p \$f/lib > - done > - if test -d install/boot; then > - if test -f install/boot/xen.gz || test -f install/boot/xen; > then > - mkdir xeninstall/boot > - mvfiles=`find install/boot -name 'xen[a-z]*' -prune -o > -name 'xen*' -print` > - mv \$mvfiles xeninstall/boot/. > - fi > - fi > -END > -} > - ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-08-04 8:35 ` [PATCH v8 1/2] OSSTEST: introduce a raisin build test Ian Campbell @ 2015-08-04 8:39 ` Ian Campbell 0 siblings, 0 replies; 30+ messages in thread From: Ian Campbell @ 2015-08-04 8:39 UTC (permalink / raw) To: Stefano Stabellini, xen-devel; +Cc: wei.liu2, ian.jackson On Tue, 2015-08-04 at 09:35 +0100, Ian Campbell wrote: > On Thu, 2015-07-23 at 17:52 +0100, Stefano Stabellini wrote: > > diff --git a/ts-xen-build b/ts-xen-build > > index e757f68..10fc95b 100755 > > --- a/ts-xen-build > > +++ b/ts-xen-build > > @@ -145,36 +145,6 @@ sub collectversions () { > > store_revision($ho, 'ovmf', "$tools/firmware/ovmf-dir", 1); > > } > > > > -sub divide () { > > FYI this needs rebasing over "Collect xen.efi into xendist and install in > appropriate place". The right hunk to the moved function is, I think: @@ -116,6 +116,13 @@ sub divide_xen_build ($$) { mv \$mvfiles xen$postfix/boot/. fi fi + if test -d $postfix/usr/lib64/efi/; then + if test -f $postfix/usr/lib64/efi/xen.efi; then + mkdir -p xen$postfix/usr/lib64/efi + mvfiles=`find $postfix/usr/lib64/efi -name 'xen[a-z]*' -prune -o -name 'xen*' -print` + mv \$mvfiles xen$postfix/usr/lib64/efi/. + fi + fi END } ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-07-23 16:52 ` [PATCH v8 1/2] " Stefano Stabellini ` (2 preceding siblings ...) 2015-08-04 8:35 ` [PATCH v8 1/2] OSSTEST: introduce a raisin build test Ian Campbell @ 2015-08-04 9:37 ` Ian Campbell 2015-08-04 13:26 ` Stefano Stabellini 2015-08-04 11:04 ` Ian Campbell 4 siblings, 1 reply; 30+ messages in thread From: Ian Campbell @ 2015-08-04 9:37 UTC (permalink / raw) To: Stefano Stabellini, xen-devel; +Cc: wei.liu2, ian.jackson On Thu, 2015-07-23 at 17:52 +0100, Stefano Stabellini wrote: > > + ./cs-job-create $flight build-$arch-raisin build-raisin \ > + arch=$arch \ > + tree_xen=$TREE_XEN \ > + $RUNVARS $BUILD_RUNVARS $BUILD_RAISIN_RUNVARS $arch_runvars \ > + $suite_runvars \ > + host_hostflags=$build_hostflags \ > + buildjob=${bfi}build-$arch \ This line means you can't run the build-$arch-raisin job unless the build -$arch job is complete. Is that intentional? I can see an argument for not testing raisin if the underlying Xen tree doesn't build, it's a bit annoying in standalone mode is all... ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-08-04 9:37 ` Ian Campbell @ 2015-08-04 13:26 ` Stefano Stabellini 0 siblings, 0 replies; 30+ messages in thread From: Stefano Stabellini @ 2015-08-04 13:26 UTC (permalink / raw) To: Ian Campbell; +Cc: wei.liu2, xen-devel, ian.jackson, Stefano Stabellini On Tue, 4 Aug 2015, Ian Campbell wrote: > On Thu, 2015-07-23 at 17:52 +0100, Stefano Stabellini wrote: > > > > + ./cs-job-create $flight build-$arch-raisin build-raisin \ > > + arch=$arch \ > > + tree_xen=$TREE_XEN \ > > + $RUNVARS $BUILD_RUNVARS $BUILD_RAISIN_RUNVARS $arch_runvars \ > > + $suite_runvars \ > > + host_hostflags=$build_hostflags \ > > + buildjob=${bfi}build-$arch \ > > This line means you can't run the build-$arch-raisin job unless the build > -$arch job is complete. Is that intentional? > > I can see an argument for not testing raisin if the underlying Xen tree > doesn't build, it's a bit annoying in standalone mode is all... Fair enough. I can remove the buildjob=${bfi}build-$arch line. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-07-23 16:52 ` [PATCH v8 1/2] " Stefano Stabellini ` (3 preceding siblings ...) 2015-08-04 9:37 ` Ian Campbell @ 2015-08-04 11:04 ` Ian Campbell 2015-08-04 11:18 ` Stefano Stabellini 4 siblings, 1 reply; 30+ messages in thread From: Ian Campbell @ 2015-08-04 11:04 UTC (permalink / raw) To: Stefano Stabellini, xen-devel; +Cc: wei.liu2, ian.jackson On Thu, 2015-07-23 at 17:52 +0100, Stefano Stabellini wrote: > +sub build () { > + target_cmd_build($ho, 9000, $builddir, <<END); > + cd $raisindir > + ./raise -n build > +END > +#/; Running this is pretty quiet it seems, which is normally good but I think for automated test we likely want to crank up the verbosity somewhat. Is that possible? Or else if this is being captured into some logfile somewhere we should capture that. It also said: [raisin] Missing packages: pciutils-dev which I guess is something which needs to be added to ts-xen-build-prep? It hasn't actually failed though, is that normal? It also said [raisin] Raisin requires sudo to install build dependencies for you. [raisin] You can only build without it. but I think that is desirable/expected. Not installing sudo on osstest build hosts (as we do) seems like a good safety catch to maintain to me. Ian. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-08-04 11:04 ` Ian Campbell @ 2015-08-04 11:18 ` Stefano Stabellini 2015-08-04 11:37 ` Ian Campbell 0 siblings, 1 reply; 30+ messages in thread From: Stefano Stabellini @ 2015-08-04 11:18 UTC (permalink / raw) To: Ian Campbell; +Cc: wei.liu2, xen-devel, ian.jackson, Stefano Stabellini On Tue, 4 Aug 2015, Ian Campbell wrote: > On Thu, 2015-07-23 at 17:52 +0100, Stefano Stabellini wrote: > > +sub build () { > > + target_cmd_build($ho, 9000, $builddir, <<END); > > + cd $raisindir > > + ./raise -n build > > +END > > +#/; > > Running this is pretty quiet it seems, which is normally good but I think > for automated test we likely want to crank up the verbosity somewhat. Is > that possible? -v for verbose ./raise -v -n build > Or else if this is being captured into some logfile somewhere we should > capture that. > > It also said: > [raisin] Missing packages: pciutils-dev > which I guess is something which needs to be added to ts-xen-build-prep? This is a mismatch between raisin's build dependency list and osstest's. I thought that OSSTest might not want to add pciutils-dev as a dependency, this is why I didn't add it. On the other hand I would like to keep it in Raisin as it is required for passthrough. > It hasn't actually failed though, is that normal? It is an "optional" dependency, without it passthrough is disabled in qemu-traditional. Passing -n tell raisin to "shut up, do nothing and continue", so at the end the build still succeed.. > It also said > [raisin] Raisin requires sudo to install build dependencies for you. > [raisin] You can only build without it. > but I think that is desirable/expected. Not installing sudo on osstest > build hosts (as we do) seems like a good safety catch to maintain to me. Yes, I agree. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-08-04 11:18 ` Stefano Stabellini @ 2015-08-04 11:37 ` Ian Campbell 2015-08-04 13:18 ` Stefano Stabellini 0 siblings, 1 reply; 30+ messages in thread From: Ian Campbell @ 2015-08-04 11:37 UTC (permalink / raw) To: Stefano Stabellini; +Cc: wei.liu2, ian.jackson, xen-devel On Tue, 2015-08-04 at 12:18 +0100, Stefano Stabellini wrote: > On Tue, 4 Aug 2015, Ian Campbell wrote: > > On Thu, 2015-07-23 at 17:52 +0100, Stefano Stabellini wrote: > > > +sub build () { > > > + target_cmd_build($ho, 9000, $builddir, <<END); > > > + cd $raisindir > > > + ./raise -n build > > > +END > > > +#/; > > > > Running this is pretty quiet it seems, which is normally good but I > > think > > for automated test we likely want to crank up the verbosity somewhat. > > Is > > that possible? > > -v for verbose > > ./raise -v -n build > > > > Or else if this is being captured into some logfile somewhere we should > > capture that. > > > > It also said: > > [raisin] Missing packages: pciutils-dev > > which I guess is something which needs to be added to ts-xen-build > > -prep? > > This is a mismatch between raisin's build dependency list and osstest's. > I thought that OSSTest might not want to add pciutils-dev as a > dependency, this is why I didn't add it. On the contrary I think we probably do want it, especially if without it passthrough doesn't work, we should be at least build testing that! > > It hasn't actually failed though, is that normal? > > It is an "optional" dependency, without it passthrough is disabled in > qemu-traditional. Passing -n tell raisin to "shut up, do nothing and > continue", so at the end the build still succeed. What other sorts of things are optional? I think there could be an argument for osstest insisting on as much stuff as possible being enabled and therefore for asking raisin to be pedantic about optional deps. Ian ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-08-04 11:37 ` Ian Campbell @ 2015-08-04 13:18 ` Stefano Stabellini 2015-08-04 13:41 ` Ian Campbell 0 siblings, 1 reply; 30+ messages in thread From: Stefano Stabellini @ 2015-08-04 13:18 UTC (permalink / raw) To: Ian Campbell; +Cc: wei.liu2, xen-devel, ian.jackson, Stefano Stabellini On Tue, 4 Aug 2015, Ian Campbell wrote: > On Tue, 2015-08-04 at 12:18 +0100, Stefano Stabellini wrote: > > On Tue, 4 Aug 2015, Ian Campbell wrote: > > > On Thu, 2015-07-23 at 17:52 +0100, Stefano Stabellini wrote: > > > > +sub build () { > > > > + target_cmd_build($ho, 9000, $builddir, <<END); > > > > + cd $raisindir > > > > + ./raise -n build > > > > +END > > > > +#/; > > > > > > Running this is pretty quiet it seems, which is normally good but I > > > think > > > for automated test we likely want to crank up the verbosity somewhat. > > > Is > > > that possible? > > > > -v for verbose > > > > ./raise -v -n build > > > > > > > Or else if this is being captured into some logfile somewhere we should > > > capture that. > > > > > > It also said: > > > [raisin] Missing packages: pciutils-dev > > > which I guess is something which needs to be added to ts-xen-build > > > -prep? > > > > This is a mismatch between raisin's build dependency list and osstest's. > > I thought that OSSTest might not want to add pciutils-dev as a > > dependency, this is why I didn't add it. > > On the contrary I think we probably do want it, especially if without it > passthrough doesn't work, we should be at least build testing that! fair enough, I can add them > > > It hasn't actually failed though, is that normal? > > > > It is an "optional" dependency, without it passthrough is disabled in > > qemu-traditional. Passing -n tell raisin to "shut up, do nothing and > > continue", so at the end the build still succeed. > > What other sorts of things are optional? There isn't really a distinction between mandatory dependencies and optional dependencies in raisin. This is what raisin is currently complaining about: bridge-utils pciutils-dev libnl-3-dev libnl-route-3-dev bridge-utils is actually a run time dependency for Xen, while libnl-3-dev and libnl-route-3-dev are build time dependencies for libvirt. I think they are needed for vlan support. Should I add them too? > I think there could be an argument > for osstest insisting on as much stuff as possible being enabled and > therefore for asking raisin to be pedantic about optional deps. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-08-04 13:18 ` Stefano Stabellini @ 2015-08-04 13:41 ` Ian Campbell 2015-08-04 13:47 ` Stefano Stabellini 2015-08-04 13:47 ` Roger Pau Monné 0 siblings, 2 replies; 30+ messages in thread From: Ian Campbell @ 2015-08-04 13:41 UTC (permalink / raw) To: Stefano Stabellini, Roger Pau Monne; +Cc: wei.liu2, ian.jackson, xen-devel On Tue, 2015-08-04 at 14:18 +0100, Stefano Stabellini wrote: > On Tue, 4 Aug 2015, Ian Campbell wrote: > > On Tue, 2015-08-04 at 12:18 +0100, Stefano Stabellini wrote: > > > > It hasn't actually failed though, is that normal? > > > > > > It is an "optional" dependency, without it passthrough is disabled in > > > qemu-traditional. Passing -n tell raisin to "shut up, do nothing and > > > continue", so at the end the build still succeed. > > > > What other sorts of things are optional? > > There isn't really a distinction between mandatory dependencies and > optional dependencies in raisin. This is what raisin is currently > complaining about: > > bridge-utils pciutils-dev libnl-3-dev libnl-route-3-dev > > bridge-utils is actually a run time dependency for Xen, while > libnl-3-dev and libnl-route-3-dev are build time dependencies for > libvirt. I think they are needed for vlan support. Should I add them > too? I think so, I have a feeling Remus might use them too? cf "[PATCH] osstest: install libnl3 packages" from Roger. Ian. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-08-04 13:41 ` Ian Campbell @ 2015-08-04 13:47 ` Stefano Stabellini 2015-08-04 14:01 ` Ian Campbell 2015-08-04 13:47 ` Roger Pau Monné 1 sibling, 1 reply; 30+ messages in thread From: Stefano Stabellini @ 2015-08-04 13:47 UTC (permalink / raw) To: Ian Campbell Cc: ian.jackson, Roger Pau Monne, xen-devel, wei.liu2, Stefano Stabellini On Tue, 4 Aug 2015, Ian Campbell wrote: > On Tue, 2015-08-04 at 14:18 +0100, Stefano Stabellini wrote: > > On Tue, 4 Aug 2015, Ian Campbell wrote: > > > On Tue, 2015-08-04 at 12:18 +0100, Stefano Stabellini wrote: > > > > > It hasn't actually failed though, is that normal? > > > > > > > > It is an "optional" dependency, without it passthrough is disabled in > > > > qemu-traditional. Passing -n tell raisin to "shut up, do nothing and > > > > continue", so at the end the build still succeed. > > > > > > What other sorts of things are optional? > > > > There isn't really a distinction between mandatory dependencies and > > optional dependencies in raisin. This is what raisin is currently > > complaining about: > > > > bridge-utils pciutils-dev libnl-3-dev libnl-route-3-dev > > > > bridge-utils is actually a run time dependency for Xen, while > > libnl-3-dev and libnl-route-3-dev are build time dependencies for > > libvirt. I think they are needed for vlan support. Should I add them > > too? > > I think so, I have a feeling Remus might use them too? cf "[PATCH] osstest: > install libnl3 packages" from Roger. Actually this is why I cannot remove the buildjob=${bfi}build-$arch line: otherwise the build deps don't get installed, right? ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-08-04 13:47 ` Stefano Stabellini @ 2015-08-04 14:01 ` Ian Campbell 0 siblings, 0 replies; 30+ messages in thread From: Ian Campbell @ 2015-08-04 14:01 UTC (permalink / raw) To: Stefano Stabellini; +Cc: wei.liu2, xen-devel, ian.jackson, Roger Pau Monne On Tue, 2015-08-04 at 14:47 +0100, Stefano Stabellini wrote: > On Tue, 4 Aug 2015, Ian Campbell wrote: > > On Tue, 2015-08-04 at 14:18 +0100, Stefano Stabellini wrote: > > > On Tue, 4 Aug 2015, Ian Campbell wrote: > > > > On Tue, 2015-08-04 at 12:18 +0100, Stefano Stabellini wrote: > > > > > > It hasn't actually failed though, is that normal? > > > > > > > > > > It is an "optional" dependency, without it passthrough is > > > > > disabled in > > > > > qemu-traditional. Passing -n tell raisin to "shut up, do nothing > > > > > and > > > > > continue", so at the end the build still succeed. > > > > > > > > What other sorts of things are optional? > > > > > > There isn't really a distinction between mandatory dependencies and > > > optional dependencies in raisin. This is what raisin is currently > > > complaining about: > > > > > > bridge-utils pciutils-dev libnl-3-dev libnl-route-3-dev > > > > > > bridge-utils is actually a run time dependency for Xen, while > > > libnl-3-dev and libnl-route-3-dev are build time dependencies for > > > libvirt. I think they are needed for vlan support. Should I add them > > > too? > > > > I think so, I have a feeling Remus might use them too? cf "[PATCH] > > osstest: > > install libnl3 packages" from Roger. > > Actually this is why I cannot remove the buildjob=${bfi}build-$arch > line: otherwise the build deps don't get installed, right? I don't think so, ts-xen-build-prep is badly named and is run for any build job (formally I think anything in sg-run-job where need-hosts/FOO returns BUILD). Ian. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-08-04 13:41 ` Ian Campbell 2015-08-04 13:47 ` Stefano Stabellini @ 2015-08-04 13:47 ` Roger Pau Monné 2015-08-04 13:51 ` Ian Campbell 1 sibling, 1 reply; 30+ messages in thread From: Roger Pau Monné @ 2015-08-04 13:47 UTC (permalink / raw) To: Ian Campbell, Stefano Stabellini; +Cc: wei.liu2, ian.jackson, xen-devel El 04/08/15 a les 15.41, Ian Campbell ha escrit: > On Tue, 2015-08-04 at 14:18 +0100, Stefano Stabellini wrote: >> On Tue, 4 Aug 2015, Ian Campbell wrote: >>> On Tue, 2015-08-04 at 12:18 +0100, Stefano Stabellini wrote: >>>>> It hasn't actually failed though, is that normal? >>>> >>>> It is an "optional" dependency, without it passthrough is disabled in >>>> qemu-traditional. Passing -n tell raisin to "shut up, do nothing and >>>> continue", so at the end the build still succeed. >>> >>> What other sorts of things are optional? >> >> There isn't really a distinction between mandatory dependencies and >> optional dependencies in raisin. This is what raisin is currently >> complaining about: >> >> bridge-utils pciutils-dev libnl-3-dev libnl-route-3-dev >> >> bridge-utils is actually a run time dependency for Xen, while >> libnl-3-dev and libnl-route-3-dev are build time dependencies for >> libvirt. I think they are needed for vlan support. Should I add them >> too? > > I think so, I have a feeling Remus might use them too? cf "[PATCH] osstest: > install libnl3 packages" from Roger. Yes, Remus needs libnl-3-dev and libnl-route-3-dev. They are available since Wheezy, but only the ones on Squeeze are new enough for the Remus code. Feel free to pick that patch, it only needs a comment in the description to mention that support for anything older than Wheezy is dropped. Roger. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 1/2] OSSTEST: introduce a raisin build test 2015-08-04 13:47 ` Roger Pau Monné @ 2015-08-04 13:51 ` Ian Campbell 0 siblings, 0 replies; 30+ messages in thread From: Ian Campbell @ 2015-08-04 13:51 UTC (permalink / raw) To: Roger Pau Monné, Stefano Stabellini; +Cc: wei.liu2, ian.jackson, xen-devel On Tue, 2015-08-04 at 15:47 +0200, Roger Pau Monné wrote: > El 04/08/15 a les 15.41, Ian Campbell ha escrit: > > On Tue, 2015-08-04 at 14:18 +0100, Stefano Stabellini wrote: > > > On Tue, 4 Aug 2015, Ian Campbell wrote: > > > > On Tue, 2015-08-04 at 12:18 +0100, Stefano Stabellini wrote: > > > > > > It hasn't actually failed though, is that normal? > > > > > > > > > > It is an "optional" dependency, without it passthrough is > > > > > disabled in > > > > > qemu-traditional. Passing -n tell raisin to "shut up, do nothing > > > > > and > > > > > continue", so at the end the build still succeed. > > > > > > > > What other sorts of things are optional? > > > > > > There isn't really a distinction between mandatory dependencies and > > > optional dependencies in raisin. This is what raisin is currently > > > complaining about: > > > > > > bridge-utils pciutils-dev libnl-3-dev libnl-route-3-dev > > > > > > bridge-utils is actually a run time dependency for Xen, while > > > libnl-3-dev and libnl-route-3-dev are build time dependencies for > > > libvirt. I think they are needed for vlan support. Should I add them > > > too? > > > > I think so, I have a feeling Remus might use them too? cf "[PATCH] > > osstest: > > install libnl3 packages" from Roger. > > Yes, Remus needs libnl-3-dev and libnl-route-3-dev. They are available > since Wheezy, but only the ones on Squeeze are new enough for the Remus > code. Squeeze was before Wheezy. I think you meant s/Squeeze/Jessie/? > Feel free to pick that patch, it only needs a comment in the > description to mention that support for anything older than Wheezy is > dropped. Right, I think Ian was expecting a resend with that adding. I was considering picking it up and doing that myself as I applied, but I'm currently waiting for osstest to settle down a bit and for Wei's libvirt changes to go through the push gate. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v8 2/2] OSSTest: push successful raisin builds 2015-07-23 16:51 [PATCH v8 0/2] OSSTEST: introduce a raisin build test Stefano Stabellini 2015-07-23 16:52 ` [PATCH v8 1/2] " Stefano Stabellini @ 2015-07-23 16:52 ` Stefano Stabellini 2015-07-31 16:03 ` Ian Jackson 2015-08-04 12:56 ` Ian Campbell 1 sibling, 2 replies; 30+ messages in thread From: Stefano Stabellini @ 2015-07-23 16:52 UTC (permalink / raw) To: xen-devel; +Cc: wei.liu2, ian.jackson, ian.campbell, stefano.stabellini Determine the most recent raisin revision that needs to be tested, by comparing the staging with the master branches. Push to raisin.git:master when the build is successful. Do not run any jobs on the raisin flight. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> --- Changes in v8: - add raisin to BRANCHES at the top of cr-for-branches - do not run jobs on the raisin flight - switch to the common staging/master branch names --- ap-common | 3 +++ ap-fetch-version | 3 +++ ap-fetch-version-old | 5 +++++ ap-print-url | 3 +++ ap-push | 5 +++++ cr-daily-branch | 8 ++++++++ cr-for-branches | 2 +- cri-common | 1 + make-flight | 3 +++ 9 files changed, 32 insertions(+), 1 deletion(-) diff --git a/ap-common b/ap-common index 6e1c472..34613bf 100644 --- a/ap-common +++ b/ap-common @@ -48,6 +48,8 @@ # (ie ones which need $bodges=1 in ts-rumpuserxen-build) : ${TREE_RAISIN:=git://xenbits.xen.org/raisin.git} +: ${PUSH_TREE_RAISIN:=$XENBITS:/home/xen/git/raisin.git} +: ${BASE_TREE_RAISIN:=$TREE_RAISIN} : ${TREE_SEABIOS_UPSTREAM:=git://git.seabios.org/seabios.git} : ${PUSH_TREE_SEABIOS:=$XENBITS:/home/xen/git/osstest/seabios.git} @@ -84,6 +86,7 @@ fi : ${LOCALREV_RUMPUSERXEN:=daily-cron.$branch} : ${LOCALREV_SEABIOS:=daily-cron.$branch} : ${LOCALREV_OVMF:=daily-cron.$branch} +: ${LOCALREV_RAISIN:=daily-cron.$branch} : ${TREEBASE_LINUX_XCP:=http://hg.uk.xensource.com/carbon/trunk/linux-2.6.27} diff --git a/ap-fetch-version b/ap-fetch-version index 33aaf00..2788d9f 100755 --- a/ap-fetch-version +++ b/ap-fetch-version @@ -80,6 +80,9 @@ libvirt) rumpuserxen) repo_tree_rev_fetch_git rumpuserxen \ $TREE_RUMPUSERXEN master $LOCALREV_RUMPUSERXEN +raisin) + repo_tree_rev_fetch_git raisin \ + $TREE_RAISIN staging $LOCALREV_RAISIN ;; seabios) repo_tree_rev_fetch_git seabios \ diff --git a/ap-fetch-version-old b/ap-fetch-version-old index 0b4739b..f0c9b7e 100755 --- a/ap-fetch-version-old +++ b/ap-fetch-version-old @@ -29,6 +29,7 @@ select_xenbranch : ${BASE_LOCALREV_LINUX:=daily-cron.$branch.old} : ${BASE_LOCALREV_LIBVIRT:=daily-cron.$branch.old} : ${BASE_LOCALREV_RUMPUSERXEN:=daily-cron.$branch.old} +: ${BASE_LOCALREV_RAISIN:=daily-cron.$branch.old} : ${BASE_LOCALREV_SEABIOS:=daily-cron.$branch.old} : ${BASE_LOCALREV_OVMF:=daily-cron.$branch.old} @@ -89,6 +90,10 @@ rumpuserxen) repo_tree_rev_fetch_git rumpuserxen \ $BASE_TREE_RUMPUSERXEN xen-tested-master $BASE_LOCALREV_RUMPUSERXEN ;; +raisin) + repo_tree_rev_fetch_git raisin \ + $BASE_TREE_RAISIN master $BASE_LOCALREV_RAISIN + ;; 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 3db2375..e999b65 100755 --- a/ap-print-url +++ b/ap-print-url @@ -55,6 +55,9 @@ libvirt) rumpuserxen) echo $TREE_RUMPUSERXEN ;; +raisin) + echo $TREE_RAISIN + ;; seabios) echo $TREE_SEABIOS_UPSTREAM ;; diff --git a/ap-push b/ap-push index c141464..2cc3287 100755 --- a/ap-push +++ b/ap-push @@ -37,6 +37,7 @@ TREE_LIBVIRT=$PUSH_TREE_LIBVIRT TREE_RUMPUSERXEN=$PUSH_TREE_RUMPUSERXEN TREE_SEABIOS=$PUSH_TREE_SEABIOS TREE_OVMF=$PUSH_TREE_OVMF +TREE_RAISIN=$PUSH_TREE_RAISIN if info_linux_tree "$branch"; then cd $repos/linux @@ -89,6 +90,10 @@ rumpuserxen) cd $repos/rumpuserxen git push $TREE_RUMPUSERXEN $revision:xen-tested-master ;; +raisin) + cd $repos/raisin + git push $TREE_RAISIN $revision:master + ;; 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 c7d1071..0b7bb78 100755 --- a/cr-daily-branch +++ b/cr-daily-branch @@ -164,6 +164,10 @@ if [ "x$REVISION_RUMPUSERXEN" = x ]; then determine_version REVISION_RUMPUSERXEN rumpuserxen RUMPUSERXEN export REVISION_RUMPUSERXEN fi +if [ "x$REVISION_RAISIN" = x ]; then + determine_version REVISION_RAISIN raisin RAISIN + export REVISION_RAISIN +fi if [ "x$REVISION_LINUXFIRMWARE" = x ]; then determine_version REVISION_LINUXFIRMWARE linuxfirmware LINUXFIRMWARE export REVISION_LINUXFIRMWARE @@ -209,6 +213,10 @@ rumpuserxen) export REVISION_LINUX_OLD=disable export REVISION_LIBVIRT=disable ;; +raisin) + realtree=raisin + NEW_REVISION=$REVISION_RAISIN + ;; seabios) realtree=seabios NEW_REVISION=$REVISION_SEABIOS diff --git a/cr-for-branches b/cr-for-branches index 7a93a62..37b37b9 100755 --- a/cr-for-branches +++ b/cr-for-branches @@ -31,7 +31,7 @@ scriptoptions="$1"; shift LOGFILE=tmp/cr-for-branches.log export LOGFILE -: ${BRANCHES:=osstest xen-4.0-testing xen-4.1-testing xen-4.2-testing xen-4.3-testing xen-4.4-testing xen-4.5-testing xen-unstable qemu-mainline qemu-upstream-unstable qemu-upstream-4.2-testing qemu-upstream-4.3-testing qemu-upstream-4.4-testing qemu-upstream-4.5-testing linux-3.16 linux-3.14 linux-3.10 linux-3.4 linux-arm-xen seabios ovmf ${EXTRA_BRANCHES}} +: ${BRANCHES:=osstest xen-4.0-testing xen-4.1-testing xen-4.2-testing xen-4.3-testing xen-4.4-testing xen-4.5-testing xen-unstable qemu-mainline qemu-upstream-unstable qemu-upstream-4.2-testing qemu-upstream-4.3-testing qemu-upstream-4.4-testing qemu-upstream-4.5-testing linux-3.16 linux-3.14 linux-3.10 linux-3.4 linux-arm-xen seabios ovmf raisin ${EXTRA_BRANCHES}} export BRANCHES fetchwlem=$wlem diff --git a/cri-common b/cri-common index ad44546..c091622 100644 --- a/cri-common +++ b/cri-common @@ -70,6 +70,7 @@ select_xenbranch () { linuxfirmware) tree=linuxfirmware; xenbranch=xen-unstable ;; libvirt) tree=libvirt; xenbranch=xen-unstable ;; rumpuserxen) tree=rumpuserxen; xenbranch=xen-unstable ;; + raisin) tree=raisin; xenbranch=xen-unstable ;; seabios) tree=seabios; xenbranch=xen-unstable ;; ovmf) tree=ovmf; xenbranch=xen-unstable ;; osstest) tree=osstest; xenbranch=xen-unstable ;; diff --git a/make-flight b/make-flight index cc8ecdb..bd4052d 100755 --- a/make-flight +++ b/make-flight @@ -89,6 +89,9 @@ job_create_test_filter_callback () { *) return 1;; esac ;; + raisin) + # no tests jobs with raisin yet + return 1;; *) case "$job" in *-qemuu-*) -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH v8 2/2] OSSTest: push successful raisin builds 2015-07-23 16:52 ` [PATCH v8 2/2] OSSTest: push successful raisin builds Stefano Stabellini @ 2015-07-31 16:03 ` Ian Jackson 2015-08-03 17:09 ` Stefano Stabellini 2015-08-04 12:56 ` Ian Campbell 1 sibling, 1 reply; 30+ messages in thread From: Ian Jackson @ 2015-07-31 16:03 UTC (permalink / raw) To: Stefano Stabellini; +Cc: wei.liu2, ian.campbell, xen-devel Stefano Stabellini writes ("[PATCH v8 2/2] OSSTest: push successful raisin builds"): > Determine the most recent raisin revision that needs to be tested, > by comparing the staging with the master branches. Push to > raisin.git:master when the build is successful. > > Do not run any jobs on the raisin flight. The raisin flight should probably lack most of the other build jobs, too ? Ian. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 2/2] OSSTest: push successful raisin builds 2015-07-31 16:03 ` Ian Jackson @ 2015-08-03 17:09 ` Stefano Stabellini 2015-08-04 8:23 ` Ian Campbell 2015-08-04 10:50 ` Ian Campbell 0 siblings, 2 replies; 30+ messages in thread From: Stefano Stabellini @ 2015-08-03 17:09 UTC (permalink / raw) To: Ian Jackson; +Cc: xen-devel, wei.liu2, ian.campbell, Stefano Stabellini On Fri, 31 Jul 2015, Ian Jackson wrote: > Stefano Stabellini writes ("[PATCH v8 2/2] OSSTest: push successful raisin builds"): > > Determine the most recent raisin revision that needs to be tested, > > by comparing the staging with the master branches. Push to > > raisin.git:master when the build is successful. > > > > Do not run any jobs on the raisin flight. > > The raisin flight should probably lack most of the other build jobs, > too ? Yes, that's right. I think that the following, part of the first patch, should already take care of that? diff --git a/mfi-common b/mfi-common index 16fc8c5..8d6ab3e 100644 --- a/mfi-common +++ b/mfi-common @@ -148,6 +148,17 @@ create_build_jobs () { *) enable_ovmf=true; esac + case "$xenbranch" in + xen-3.*-testing) enable_raisin=false;; + xen-4.[0-5]-testing) enable_raisin=false;; + *) enable_raisin=true; + esac + case "$branch" in + xen*) ;; + *) enable_raisin=false;; + esac + + eval " arch_runvars=\"\$ARCH_RUNVARS_$arch\" " ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH v8 2/2] OSSTest: push successful raisin builds 2015-08-03 17:09 ` Stefano Stabellini @ 2015-08-04 8:23 ` Ian Campbell 2015-08-04 10:50 ` Ian Campbell 1 sibling, 0 replies; 30+ messages in thread From: Ian Campbell @ 2015-08-04 8:23 UTC (permalink / raw) To: Stefano Stabellini, Ian Jackson; +Cc: wei.liu2, xen-devel On Mon, 2015-08-03 at 18:09 +0100, Stefano Stabellini wrote: > On Fri, 31 Jul 2015, Ian Jackson wrote: > > Stefano Stabellini writes ("[PATCH v8 2/2] OSSTest: push successful > > raisin builds"): > > > Determine the most recent raisin revision that needs to be tested, > > > by comparing the staging with the master branches. Push to > > > raisin.git:master when the build is successful. > > > > > > Do not run any jobs on the raisin flight. > > > > The raisin flight should probably lack most of the other build jobs, > > too ? > > Yes, that's right. I think that the following, part of the first patch, > should already take care of that? That enables raisin builds, but doesn't (AFAICT) disable the other builds. In the latest osstest you can use make -flight:job_create_build_filter_callback to remove non raisin builds, something like: if [ "$branch" = "raisin" ] then case " $* " in *" enable_raisin=false "*) return 1;; esac fi (look for the usage in make-distros-flight for an example, also job_create_test_filter_callback has similar constructs) Ian. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 2/2] OSSTest: push successful raisin builds 2015-08-03 17:09 ` Stefano Stabellini 2015-08-04 8:23 ` Ian Campbell @ 2015-08-04 10:50 ` Ian Campbell 1 sibling, 0 replies; 30+ messages in thread From: Ian Campbell @ 2015-08-04 10:50 UTC (permalink / raw) To: Stefano Stabellini, Ian Jackson; +Cc: wei.liu2, xen-devel On Mon, 2015-08-03 at 18:09 +0100, Stefano Stabellini wrote: > + case "$branch" in > + xen*) ;; > + *) enable_raisin=false;; > + esac BTW, this doesn't actually enable raisin for builds on the raisin branch... Ian. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 2/2] OSSTest: push successful raisin builds 2015-07-23 16:52 ` [PATCH v8 2/2] OSSTest: push successful raisin builds Stefano Stabellini 2015-07-31 16:03 ` Ian Jackson @ 2015-08-04 12:56 ` Ian Campbell 2015-08-04 13:11 ` Ian Campbell 1 sibling, 1 reply; 30+ messages in thread From: Ian Campbell @ 2015-08-04 12:56 UTC (permalink / raw) To: Stefano Stabellini, xen-devel; +Cc: wei.liu2, ian.jackson On Thu, 2015-07-23 at 17:52 +0100, Stefano Stabellini wrote: > diff --git a/ap-fetch-version b/ap-fetch-version > index 33aaf00..2788d9f 100755 > --- a/ap-fetch-version > +++ b/ap-fetch-version > @@ -80,6 +80,9 @@ libvirt) > rumpuserxen) > repo_tree_rev_fetch_git rumpuserxen \ > $TREE_RUMPUSERXEN master $LOCALREV_RUMPUSERXEN Missing ";;" here. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v8 2/2] OSSTest: push successful raisin builds 2015-08-04 12:56 ` Ian Campbell @ 2015-08-04 13:11 ` Ian Campbell 0 siblings, 0 replies; 30+ messages in thread From: Ian Campbell @ 2015-08-04 13:11 UTC (permalink / raw) To: Stefano Stabellini, xen-devel; +Cc: ian.jackson, wei.liu2 On Tue, 2015-08-04 at 13:56 +0100, Ian Campbell wrote: > On Thu, 2015-07-23 at 17:52 +0100, Stefano Stabellini wrote: > > diff --git a/ap-fetch-version b/ap-fetch-version > > index 33aaf00..2788d9f 100755 > > --- a/ap-fetch-version > > +++ b/ap-fetch-version > > @@ -80,6 +80,9 @@ libvirt) > > rumpuserxen) > > repo_tree_rev_fetch_git rumpuserxen \ > > $TREE_RUMPUSERXEN master $LOCALREV_RUMPUSERXEN > > Missing ";;" here. If you are looking to test the ap-* stuff in a more realistic (i.e. closer to how production would call it) environment then you can do: For a flight named "raisin" testing the raisin branch: $ ./standalone make-flight -f raisin raisin For a flight named "standalone" (the default) testing xen-unstable: $ ./standalone make-flight xen-unstable You can then examine the contents of those two with mg-show-flight-runvars. You may need some options in your ~/.xen-osstest/config which you didn't before. The main one is Repos which should point to a scratch directory to use for cloning trees while determining revisions to use. Ian. ^ permalink raw reply [flat|nested] 30+ messages in thread
end of thread, other threads:[~2015-08-05 7:50 UTC | newest] Thread overview: 30+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-07-23 16:51 [PATCH v8 0/2] OSSTEST: introduce a raisin build test Stefano Stabellini 2015-07-23 16:52 ` [PATCH v8 1/2] " Stefano Stabellini 2015-07-31 15:53 ` Ian Jackson 2015-07-31 15:54 ` Ian Jackson 2015-07-31 16:01 ` Ian Jackson 2015-08-03 16:59 ` Stefano Stabellini 2015-08-04 10:55 ` Ian Campbell 2015-08-04 13:02 ` [PATCH 1/2] ts-raisin-build: consolidate open coded iterations over enabled components Ian Campbell 2015-08-05 7:50 ` Ian Campbell 2015-08-04 13:02 ` [PATCH 2/2] ts-raisin-build: Use git_massage_url Ian Campbell 2015-08-04 8:35 ` [PATCH v8 1/2] OSSTEST: introduce a raisin build test Ian Campbell 2015-08-04 8:39 ` Ian Campbell 2015-08-04 9:37 ` Ian Campbell 2015-08-04 13:26 ` Stefano Stabellini 2015-08-04 11:04 ` Ian Campbell 2015-08-04 11:18 ` Stefano Stabellini 2015-08-04 11:37 ` Ian Campbell 2015-08-04 13:18 ` Stefano Stabellini 2015-08-04 13:41 ` Ian Campbell 2015-08-04 13:47 ` Stefano Stabellini 2015-08-04 14:01 ` Ian Campbell 2015-08-04 13:47 ` Roger Pau Monné 2015-08-04 13:51 ` Ian Campbell 2015-07-23 16:52 ` [PATCH v8 2/2] OSSTest: push successful raisin builds Stefano Stabellini 2015-07-31 16:03 ` Ian Jackson 2015-08-03 17:09 ` Stefano Stabellini 2015-08-04 8:23 ` Ian Campbell 2015-08-04 10:50 ` Ian Campbell 2015-08-04 12:56 ` Ian Campbell 2015-08-04 13:11 ` 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.