xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] osstest: add native FreeBSD build tests
@ 2014-08-14 14:08 Roger Pau Monne
  2014-08-14 14:08 ` [PATCH v2 1/5] osstest: add routine to execute ssh with password Roger Pau Monne
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Roger Pau Monne @ 2014-08-14 14:08 UTC (permalink / raw)
  To: xen-devel, Ian.Jackson

This series add support for bootstrapping a bare metal FreeBSD install 
using OSS Test and compiling Xen on it.

The first patch adds support for executing commands on remote boxes 
using ssh with password, which is needed in order to login into the 
installer. The rest of the patches focus on installing FreeBSD, the 
Xen build dependencies, and finally compiling the Xen kernel and 
tools.

I've been manually running the tests using the following runes:

OSSTEST_FLIGHT=standalone OSSTEST_JOB=build-amd64-freebsd OSSTEST_HOST=kodo4 ./ts-freebsd-host-install host=kodo4
OSSTEST_FLIGHT=standalone OSSTEST_JOB=build-amd64-freebsd OSSTEST_HOST=kodo4 ./ts-xen-build-prep-freebsd host=kodo4
OSSTEST_FLIGHT=standalone OSSTEST_JOB=build-amd64-freebsd OSSTEST_HOST=kodo4 ./ts-xen-build host=kodo4

Thanks, Roger.

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

* [PATCH v2 1/5] osstest: add routine to execute ssh with password
  2014-08-14 14:08 [PATCH v2 0/5] osstest: add native FreeBSD build tests Roger Pau Monne
@ 2014-08-14 14:08 ` Roger Pau Monne
  2014-08-14 14:08 ` [PATCH v2 2/5] osstest: add support for installing bare metal FreeBSD Roger Pau Monne
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Roger Pau Monne @ 2014-08-14 14:08 UTC (permalink / raw)
  To: xen-devel, Ian.Jackson; +Cc: Roger Pau Monne

This is needed when bootstrapping FreeBSD, since the installer has ssh
enabled with the root password set to 'root' by default.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
Changes since RFC:
 - Place the temp filename in a local variable.
 - Add error checks.
---
 Osstest/TestSupport.pm |   43 ++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 38 insertions(+), 5 deletions(-)

diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index fea54d5..1a6aec5 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -60,6 +60,7 @@ BEGIN {
                       target_install_packages target_install_packages_norec
                       target_jobdir target_extract_jobdistpath_subdir
                       target_extract_jobdistpath target_guest_lv_name
+                      target_cmd_root_with_password
 
                       poll_loop tcpconnect await_tcp
                       contents_make_cpio file_simple_write_contents
@@ -313,12 +314,11 @@ END
 #---------- running commands eg on targets ----------
 
 sub cmd {
-    my ($timeout,$stdout,@cmd) = @_;
+    my ($timeout,$child_sub,@cmd) = @_;
     my $child= fork;  die $! unless defined $child;
     if (!$child) {
-        if (defined $stdout) {
-            open STDOUT, '>&', $stdout
-                or die "STDOUT $stdout $cmd[0] $!";
+        if (defined $child_sub) {
+            $child_sub->();
         }
         exec @cmd;
         die "$cmd[0]: $!";
@@ -573,9 +573,42 @@ sub tcmd { # $tcmd will be put between '' but not escaped
 sub target_cmd ($$;$) { tcmd(undef,'osstest',@_); }
 sub target_cmd_root ($$;$) { tcmd(undef,'root',@_); }
 
+sub target_cmd_root_with_password {
+    my ($ho,$tcmd,$timeout,$password) = @_;
+    my $temp_name = "tmp/t.ssh-password-helper.$flight.$job";
+
+    open(my $temp_fh, '>', $temp_name)
+      or die "Cannot open $temp_name: $!";
+    print $temp_fh "#!/bin/sh\n\necho \"$password\"\n"
+      or die "Cannot write to $temp_name: $!";
+    chmod 0755, $temp_name
+      or die "Cannot chmod $temp_name: $!";
+    close $temp_fh
+      or die "Cannot close $temp_name: $!";
+
+    my $child_sub = sub {
+                           $ENV{DISPLAY} = ":0";
+                           $ENV{SSH_ASKPASS} = "tmp/t.ssh-password-helper.$flight.$job";
+                           setsid or die "Can't start a new session: $!";
+                        };
+
+    my $ssh_opts = [qw(-o BatchMode=no
+                       -o PasswordAuthentication=yes
+                       -o ChallengeResponseAuthentication=yes),
+                    @{ sshopts() }];
+
+    tcmdex($timeout,$child_sub,
+           'ssh', $ssh_opts,
+           sshuho("root",$ho), $tcmd);
+
+    unlink $temp_fh;
+}
+
 sub tcmdout {
     my $stdout= IO::File::new_tmpfile();
-    tcmd($stdout,@_);
+    my $stdout_sub = sub { open STDOUT, '>&', $stdout
+                              or die "STDOUT $stdout $!"; };
+    tcmd($stdout_sub,@_);
     $stdout->seek(0,0) or die "$stdout $!";
     my $r;
     { local ($/) = undef;
-- 
1.7.7.5 (Apple Git-26)


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

* [PATCH v2 2/5] osstest: add support for installing bare metal FreeBSD
  2014-08-14 14:08 [PATCH v2 0/5] osstest: add native FreeBSD build tests Roger Pau Monne
  2014-08-14 14:08 ` [PATCH v2 1/5] osstest: add routine to execute ssh with password Roger Pau Monne
@ 2014-08-14 14:08 ` Roger Pau Monne
  2014-08-14 14:08 ` [PATCH v2 3/5] osstest: prepare FreeBSD host for Xen build Roger Pau Monne
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Roger Pau Monne @ 2014-08-14 14:08 UTC (permalink / raw)
  To: xen-devel, Ian.Jackson; +Cc: Roger Pau Monne

This is done using mfsBSD, which can be booted from pxelinux and
contains a script to automatically install FreeBSD using ZFS on root.
After the install the host is set to boot from the local disk.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
Changes since RFC:
 - Set the bridge to use the MAC from the first added interface
   instead of generating a random one.
 - Launch DHCP on the bridge instead of the nic.
 - Add a list of FreeBSD ftp mirrors and iterate over them in order to
   find a working one.
 - Add support for finding the primary disk and nic automatically.
 - Switch shell to sh (instead of the default csh), and use set -e in
   order to exit if a command fails.
 - Replace echo "-Dh" with printf "%s" "-Dh".
 - Copy installer keys into the installed system in order to prevent
   it from generating new keys on the first boot.
---
 ts-freebsd-host-install |  235 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 235 insertions(+), 0 deletions(-)
 create mode 100755 ts-freebsd-host-install

diff --git a/ts-freebsd-host-install b/ts-freebsd-host-install
new file mode 100755
index 0000000..06caeaa
--- /dev/null
+++ b/ts-freebsd-host-install
@@ -0,0 +1,235 @@
+#!/usr/bin/perl -w
+# 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 POSIX;
+
+use Osstest;
+use Osstest::TestSupport;
+use Osstest::Logtailer;
+
+tsreadconfig();
+
+our ($whhost) = @ARGV;
+$whhost ||= 'host';
+our $ho= selecthost($whhost);
+exit 0 if $ho->{Flags}{'no-reinstall'};
+exit 0 if $ho->{SharedReady};
+
+our %timeout= qw(ReadPreseed  350
+                 Sshd        2400);
+
+# TODO: this should be runvars
+our $version = '10.0-RELEASE';
+
+# List of FreeBSD mirrors, obtained from:
+# http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/mirrors-ftp.html
+# 13/08/2014
+our @ftp_hosts = qw(ftp.freebsd.org ftp1.freebsd.org ftp2.freebsd.org
+                    ftp3.freebsd.org ftp4.freebsd.org ftp5.freebsd.org
+                    ftp6.freebsd.org ftp7.freebsd.org ftp10.freebsd.org
+                    ftp11.freebsd.org ftp13.freebsd.org ftp14.freebsd.org
+                    ftp1.am.freebsd.org ftp.au.freebsd.org ftp2.au.freebsd.org
+                    ftp3.au.freebsd.org ftp.at.freebsd.org ftp2.br.freebsd.org
+                    ftp3.br.freebsd.org ftp4.br.freebsd.org ftp.ca.freebsd.org
+                    ftp2.ca.freebsd.org ftp.cn.freebsd.org ftp.cz.freebsd.org
+                    ftp2.cz.freebsd.org ftp.dk.freebsd.org ftp.ee.freebsd.org
+                    ftp.fi.freebsd.org ftp.fr.freebsd.org ftp1.fr.freebsd.org
+                    ftp3.fr.freebsd.org ftp5.fr.freebsd.org ftp6.fr.freebsd.org
+                    ftp7.fr.freebsd.org ftp8.fr.freebsd.org ftp.de.freebsd.org
+                    ftp1.de.freebsd.org ftp2.de.freebsd.org ftp4.de.freebsd.org
+                    ftp5.de.freebsd.org ftp7.de.freebsd.org ftp8.de.freebsd.org
+                    ftp.gr.freebsd.org ftp2.gr.freebsd.org ftp.hk.freebsd.org
+                    ftp3.ie.freebsd.org ftp.jp.freebsd.org ftp2.jp.freebsd.org
+                    ftp3.jp.freebsd.org ftp4.jp.freebsd.org ftp5.jp.freebsd.org
+                    ftp6.jp.freebsd.org ftp7.jp.freebsd.org ftp8.jp.freebsd.org
+                    ftp9.jp.freebsd.org ftp.kr.freebsd.org ftp2.kr.freebsd.org
+                    ftp.nl.freebsd.org ftp2.nl.freebsd.org ftp.nz.freebsd.org
+                    ftp.no.freebsd.org ftp.pl.freebsd.org ftp.ru.freebsd.org
+                    ftp2.ru.freebsd.org ftp4.ru.freebsd.org ftp5.ru.freebsd.org
+                    ftp6.ru.freebsd.org ftp.si.freebsd.org ftp.za.freebsd.org
+                    ftp2.za.freebsd.org ftp4.za.freebsd.org ftp.es.freebsd.org
+                    ftp3.es.freebsd.org ftp.se.freebsd.org ftp2.se.freebsd.org
+                    ftp.ch.freebsd.org ftp.tw.freebsd.org ftp2.tw.freebsd.org
+                    ftp4.tw.freebsd.org ftp5.tw.freebsd.org ftp.ua.freebsd.org
+                    ftp6.ua.freebsd.org ftp7.ua.freebsd.org ftp.uk.freebsd.org
+                    ftp2.uk.freebsd.org ftp3.uk.freebsd.org ftp4.uk.freebsd.org
+                    ftp5.uk.freebsd.org ftp1.us.freebsd.org ftp2.us.freebsd.org
+                    ftp3.us.freebsd.org ftp4.us.freebsd.org ftp5.us.freebsd.org);
+
+# TODO: this has to be set on a per-host basis.
+# It should probably come from $ho?
+our @disk_names = qw(ada0 da0 ad0);
+
+sub install () {
+    my $authkeys= authorized_keys();
+    my $disk = "";
+    my $nic = "";
+    my $ftp = "";
+
+    power_state($ho, 0);
+
+    setup_pxeboot_firstboot();
+
+    logm('Booting into mfsBSD');
+
+    sleep(power_cycle_time($ho));
+
+    power_state($ho, 1);
+
+    logm('Waiting for host to boot');
+    await_tcp(get_timeout($ho,'boot',$timeout{Sshd}), 22, $ho);
+
+    logm('Setting host to boot from local disk on next boot');
+    setup_pxeboot_local($ho);
+
+    logm('Switching root shell to /bin/sh');
+    target_cmd_root_with_password($ho, 'chsh -s /bin/sh', 900, "root");
+
+    logm('Setting up ssh keys for remote access');
+    target_cmd_root_with_password($ho, <<END, 900, "root");
+        set -e
+        mkdir -p ~/.ssh
+        cat <<ENDKEYS >~/.ssh/authorized_keys
+$authkeys
+ENDKEYS
+END
+
+    foreach my $test_disk (@disk_names) {
+        logm("Probing for $test_disk existence");
+        my $output = target_cmd_output_root($ho,
+            'test -c /dev/'.$test_disk.' >/dev/null 2>&1 && echo "yes" || echo "no"',
+            200);
+        if ($output eq "yes") {
+            logm("Found a valid disk device: $test_disk");
+            $disk = $test_disk;
+            last;
+        }
+    }
+    length($disk) or die "Unable to find a valid disk, exiting";
+
+    logm("Searching for a mirror");
+    foreach my $test_ftp (@ftp_hosts) {
+        logm("Probing mirror $test_ftp");
+        # Test from the target system.
+        my $output = target_cmd_output_root($ho,
+            'nc -zw 10 '.$test_ftp.' 21 >/dev/null 2>&1 && echo "yes" || echo "no"',
+            200);
+        if ($output eq "yes") {
+            logm("Found a valid mirror: $test_ftp");
+            $ftp = $test_ftp;
+            last;
+        }
+    }
+    length($ftp) or die "Unable to find a valid ftp mirror, exiting";
+
+    logm('Install of base system using ZFS on root');
+    target_cmd_root($ho, <<END,2400);
+            set -e
+            gpart destroy -F $disk
+            zfsinstall -d $disk -u ftp://$ftp/pub/FreeBSD/releases/$r{arch}/$version -s 4g
+END
+
+    logm('Setting up ssh and keys for the installed system');
+    target_cmd_root($ho, <<END, 900);
+            set -e
+            echo 'sshd_enable="YES"' >> /mnt/etc/rc.conf
+            echo 'PermitRootLogin yes' >> /mnt/etc/ssh/sshd_config
+            mkdir -p /mnt/root/.ssh
+            cat <<ENDKEYS >/mnt/root/.ssh/authorized_keys
+$authkeys
+ENDKEYS
+END
+
+    logm('Setting up serial console');
+    target_cmd_root($ho, <<END, 900);
+            set -e
+            printf "%s" "-Dh" >> /mnt/boot.config
+            cat <<ENDB >>/mnt/boot/loader.conf
+boot_multicons="YES"
+boot_serial="YES"
+comconsole_speed="$c{Baud}"
+console="comconsole,vidconsole"
+boot_verbose="YES"
+ENDB
+END
+
+    logm("Trying to figure out primary nic device name");
+    $nic = target_cmd_output_root($ho,
+            'ifconfig | grep -B3 '.$ho->{Ip}.' | head -n1 | awk \'{print $1}\'|sed s/://',
+            200);
+    length($nic) or die "Unable to find primary network interface";
+
+    logm("Using $nic as primary nic interface");
+
+    logm('Setting up network');
+    target_cmd_root($ho, <<END, 900);
+            set -e
+            echo "net.link.bridge.inherit_mac=1" >> /mnt/boot/loader.conf
+            echo 'cloned_interfaces="bridge0"' >> /mnt/etc/rc.conf
+            echo 'ifconfig_bridge0="addm $nic SYNCDHCP"' >> /mnt/etc/rc.conf
+            echo 'ifconfig_$nic="up"' >> /mnt/etc/rc.conf
+END
+
+    logm('Setting up miscellaneous settings');
+    target_cmd_root($ho, <<END, 900);
+            set -e
+            cp /mnt/usr/share/zoneinfo/Europe/London /mnt/etc/localtime
+            echo 'sendmail_enable="NONE"' >> /mnt/etc/rc.conf
+END
+
+    logm('Copying installer keys into the system');
+    target_cmd_root($ho, 'cp /etc/ssh/*_key* /mnt/etc/ssh/', 900);
+
+    logm('Rebooting into the installed system');
+    target_reboot($ho);
+
+    logm('Setting root shell to /bin/sh');
+    target_cmd_root($ho, 'chsh -s /bin/sh', 900);
+    logm('Adding osstest user');
+    target_cmd_root($ho, 'pw useradd osstest -m', 900);
+    target_cmd_root($ho, <<END, 900);
+            set -e
+            chsh -s /bin/sh osstest
+            mkdir -p /home/osstest/.ssh
+            cat <<ENDKEYS >/home/osstest/.ssh/authorized_keys
+$authkeys
+ENDKEYS
+END
+
+    logm('OK: install completed');
+}
+
+sub setup_pxeboot_firstboot() {
+    my $mfs= 'freebsd/'.$version.'/'.$r{arch}.'/'.'mfsbsd-'.$version.'-'.$r{arch}.'.img';
+
+    logm('Using mfsBSD image: ' . $mfs);
+
+    setup_pxeboot($ho, <<END);
+serial 0 $c{Baud}
+timeout 5
+label overwrite
+	menu label ^Overwrite
+	menu default
+	kernel memdisk
+	append initrd=$mfs
+default overwrite
+END
+}
+
+install();
-- 
1.7.7.5 (Apple Git-26)


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

* [PATCH v2 3/5] osstest: prepare FreeBSD host for Xen build
  2014-08-14 14:08 [PATCH v2 0/5] osstest: add native FreeBSD build tests Roger Pau Monne
  2014-08-14 14:08 ` [PATCH v2 1/5] osstest: add routine to execute ssh with password Roger Pau Monne
  2014-08-14 14:08 ` [PATCH v2 2/5] osstest: add support for installing bare metal FreeBSD Roger Pau Monne
@ 2014-08-14 14:08 ` Roger Pau Monne
  2014-08-14 14:08 ` [PATCH v2 4/5] osstest: create a new job called build-<arch>-freebsd Roger Pau Monne
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Roger Pau Monne @ 2014-08-14 14:08 UTC (permalink / raw)
  To: xen-devel, Ian.Jackson; +Cc: Roger Pau Monne

Install pkg (the binary package management tool) and the dependencies
needed to build Xen.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
Changes since RFC:
 - Add the tools necessary in order to build the man pages and
   markdown documents.
---
 ts-xen-build-prep-freebsd |   48 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 48 insertions(+), 0 deletions(-)
 create mode 100755 ts-xen-build-prep-freebsd

diff --git a/ts-xen-build-prep-freebsd b/ts-xen-build-prep-freebsd
new file mode 100755
index 0000000..7a15b03
--- /dev/null
+++ b/ts-xen-build-prep-freebsd
@@ -0,0 +1,48 @@
+#!/usr/bin/perl -w
+# 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 POSIX;
+
+use Osstest;
+use Osstest::TestSupport;
+use Osstest::Logtailer;
+
+tsreadconfig();
+
+our ($whhost) = @ARGV;
+$whhost ||= 'host';
+our $ho= selecthost($whhost);
+exit 0 if $ho->{SharedReady};
+
+#TODO: should be a runvar
+our $compiler = 'gcc47';
+our $deps = "mercurial git bash python bcc glib pkgconf yajl gmake pixman ".
+            "perl5 markdown bison gettext gawk $compiler";
+
+sub install_depends () {
+    logm('Installing Xen build dependencies');
+    target_cmd_root($ho, <<END, 2400);
+        set -e
+        export ASSUME_ALWAYS_YES="YES"
+        pkg install -y $deps
+        ln -s /usr/local/bin/$compiler /usr/local/bin/gcc
+END
+}
+
+install_depends();
-- 
1.7.7.5 (Apple Git-26)


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

* [PATCH v2 4/5] osstest: create a new job called build-<arch>-freebsd
  2014-08-14 14:08 [PATCH v2 0/5] osstest: add native FreeBSD build tests Roger Pau Monne
                   ` (2 preceding siblings ...)
  2014-08-14 14:08 ` [PATCH v2 3/5] osstest: prepare FreeBSD host for Xen build Roger Pau Monne
@ 2014-08-14 14:08 ` Roger Pau Monne
  2014-08-14 14:08 ` [PATCH v2 5/5] osstest: make ts-xen-build work on FreeBSD Roger Pau Monne
  2014-09-15 10:12 ` [PATCH v2 0/5] osstest: add native FreeBSD build tests Roger Pau Monné
  5 siblings, 0 replies; 7+ messages in thread
From: Roger Pau Monne @ 2014-08-14 14:08 UTC (permalink / raw)
  To: xen-devel, Ian.Jackson; +Cc: Roger Pau Monne

This job is very similar to build-<arch> but it doesn't enable ovmf
because it doesn't compile on FreeBSD yet.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
 mfi-common |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/mfi-common b/mfi-common
index afb6239..174cecd 100644
--- a/mfi-common
+++ b/mfi-common
@@ -154,6 +154,20 @@ create_build_jobs () {
                 revision_qemuu=$REVISION_QEMU_UPSTREAM                       \
                 revision_seabios=$REVISION_SEABIOS
 
+    ./cs-job-create $flight build-$arch-freebsd build                        \
+                arch=$arch enable_xend=false enable_ovmf=false               \
+        tree_qemu=$TREE_QEMU                                                 \
+        tree_qemuu=$TREE_QEMU_UPSTREAM                                       \
+        tree_xen=$TREE_XEN                                                   \
+        tree_seabios=$TREE_SEABIOS                                           \
+                $RUNVARS $BUILD_RUNVARS $BUILD_XEN_RUNVARS $arch_runvars     \
+                $suite_runvars                                               \
+                host_hostflags=$build_hostflags                              \
+                revision_xen=$REVISION_XEN                                   \
+                revision_qemu=$REVISION_QEMU                                 \
+                revision_qemuu=$REVISION_QEMU_UPSTREAM                       \
+                revision_seabios=$REVISION_SEABIOS
+
     if [ $build_extraxend = "true" ] ; then
     ./cs-job-create $flight build-$arch-xend build                           \
                 arch=$arch enable_xend=true enable_ovmf=$enable_ovmf         \
-- 
1.7.7.5 (Apple Git-26)


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

* [PATCH v2 5/5] osstest: make ts-xen-build work on FreeBSD
  2014-08-14 14:08 [PATCH v2 0/5] osstest: add native FreeBSD build tests Roger Pau Monne
                   ` (3 preceding siblings ...)
  2014-08-14 14:08 ` [PATCH v2 4/5] osstest: create a new job called build-<arch>-freebsd Roger Pau Monne
@ 2014-08-14 14:08 ` Roger Pau Monne
  2014-09-15 10:12 ` [PATCH v2 0/5] osstest: add native FreeBSD build tests Roger Pau Monné
  5 siblings, 0 replies; 7+ messages in thread
From: Roger Pau Monne @ 2014-08-14 14:08 UTC (permalink / raw)
  To: xen-devel, Ian.Jackson; +Cc: Roger Pau Monne

This patch contains a new subroutine that guesses the right make
command to use (gmake on BSDs, make otherwise).

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
 ts-xen-build |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/ts-xen-build b/ts-xen-build
index 661f186..d800396 100755
--- a/ts-xen-build
+++ b/ts-xen-build
@@ -28,6 +28,16 @@ selectbuildhost(\@ARGV);
 # remaining arguments are passed as targets to "make"
 builddirsprops();
     
+sub get_make_cmd() {
+    my $uname = target_cmd_output_root($ho, 'uname -a', 200);
+
+    if ($uname =~ m/BSD/) {
+        return "gmake";
+    } else {
+        return "make";
+    }
+}
+
 sub checkout () {
     prepbuilddirs();
 
@@ -91,6 +101,7 @@ END
 }
 
 sub build () {
+    my $make_cmd = get_make_cmd();
     my $xend_opt= $r{enable_xend} =~ m/true/ ? "--enable-xend" : "--disable-xend";
     my $ovmf_opt= $r{enable_ovmf} =~ m/true/ ? "--enable-ovmf" : "--disable-ovmf";
 
@@ -112,7 +123,7 @@ END
 END
 #/;
     buildcmd_stamped_logged(9000, 'build', '',<<END,'');
-            $make_prefix make $makeflags @ARGV
+            $make_prefix $make_cmd $makeflags @ARGV
 END
 }
 
-- 
1.7.7.5 (Apple Git-26)


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

* Re: [PATCH v2 0/5] osstest: add native FreeBSD build tests
  2014-08-14 14:08 [PATCH v2 0/5] osstest: add native FreeBSD build tests Roger Pau Monne
                   ` (4 preceding siblings ...)
  2014-08-14 14:08 ` [PATCH v2 5/5] osstest: make ts-xen-build work on FreeBSD Roger Pau Monne
@ 2014-09-15 10:12 ` Roger Pau Monné
  5 siblings, 0 replies; 7+ messages in thread
From: Roger Pau Monné @ 2014-09-15 10:12 UTC (permalink / raw)
  To: xen-devel, Ian.Jackson

El 14/08/14 a les 16.08, Roger Pau Monne ha escrit:
> This series add support for bootstrapping a bare metal FreeBSD install 
> using OSS Test and compiling Xen on it.
> 
> The first patch adds support for executing commands on remote boxes 
> using ssh with password, which is needed in order to login into the 
> installer. The rest of the patches focus on installing FreeBSD, the 
> Xen build dependencies, and finally compiling the Xen kernel and 
> tools.
> 
> I've been manually running the tests using the following runes:
> 
> OSSTEST_FLIGHT=standalone OSSTEST_JOB=build-amd64-freebsd OSSTEST_HOST=kodo4 ./ts-freebsd-host-install host=kodo4
> OSSTEST_FLIGHT=standalone OSSTEST_JOB=build-amd64-freebsd OSSTEST_HOST=kodo4 ./ts-xen-build-prep-freebsd host=kodo4
> OSSTEST_FLIGHT=standalone OSSTEST_JOB=build-amd64-freebsd OSSTEST_HOST=kodo4 ./ts-xen-build host=kodo4


Hello,

It's been some time since I've posted those patches, but got no feedback
so far. Should I repost them?

Thanks, Roger.

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

end of thread, other threads:[~2014-09-15 10:13 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-14 14:08 [PATCH v2 0/5] osstest: add native FreeBSD build tests Roger Pau Monne
2014-08-14 14:08 ` [PATCH v2 1/5] osstest: add routine to execute ssh with password Roger Pau Monne
2014-08-14 14:08 ` [PATCH v2 2/5] osstest: add support for installing bare metal FreeBSD Roger Pau Monne
2014-08-14 14:08 ` [PATCH v2 3/5] osstest: prepare FreeBSD host for Xen build Roger Pau Monne
2014-08-14 14:08 ` [PATCH v2 4/5] osstest: create a new job called build-<arch>-freebsd Roger Pau Monne
2014-08-14 14:08 ` [PATCH v2 5/5] osstest: make ts-xen-build work on FreeBSD Roger Pau Monne
2014-09-15 10:12 ` [PATCH v2 0/5] osstest: add native FreeBSD build tests Roger Pau Monné

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).