<html><body>
<h3>Barak Korren created OVIRT-1772:</h3>
<pre>   Summary: s390x build support for oVirt infra
       Key: OVIRT-1772
       URL: https://ovirt-jira.atlassian.net/browse/OVIRT-1772
   Project: oVirt - virtualization made easy
Issue Type: Improvement
Components: oVirt CI
  Reporter: Barak Korren
  Assignee: infra</pre>
<p>There has been some recent interest in the community lately in building oVirt node components for the s390x architecture.</p>
<p>Here is a list of things we would  need in order to enable s390x builds:</p>
<ul><li><p>Bring up some s390x Jenkins slave VMs, this implies:</p></li></ul>
<p><strong>* Getting s390x VMs up and running <strong></strong> Getting an operating system for these VMs *</strong> Getting Java running on these VMs, in order to run the Jenkins agent.</p>
<ul><li><p>Enable &lsquo;{{mock_runner.sh}}&rsquo; to create s390x build environments.</p></li>
<li><p>Create &lsquo;{{build-artifacts}}&rsquo; jobs for s390x</p></li></ul>
<p>The easiest way get s390x slave VMs would be if we could get our hands on some real s390x machines, just like the ppc64le machines we currently have. But this does not seem to be likely to happen. An alternative would be to use some kind of s390x emulation. This kind of emulation seems to be used by the Fedora project for their s390x builds. A version of qemu that supports s390x is available in EPEL in the &lsquo;{{qemu-system-s390x}}&rsquo; package. Once installed, the package adds the following libvirt capabilities structure:</p>
<p>{code}</p>
<pre>&lt;guest&gt;
  &lt;os_type&gt;hvm&lt;/os_type&gt;
  &lt;arch name='s390x'&gt;
    &lt;wordsize&gt;64&lt;/wordsize&gt;
    &lt;emulator&gt;/usr/bin/qemu-system-s390x&lt;/emulator&gt;
    &lt;machine maxCpus='255'&gt;s390-virtio&lt;/machine&gt;
    &lt;machine canonical='s390-virtio' maxCpus='255'&gt;s390&lt;/machine&gt;
    &lt;machine maxCpus='255'&gt;s390-ccw-virtio&lt;/machine&gt;
    &lt;machine canonical='s390-ccw-virtio' maxCpus='255'&gt;s390-ccw&lt;/machine&gt;
    &lt;domain type='qemu'/&gt;
  &lt;/arch&gt;
  &lt;features&gt;
    &lt;cpuselection/&gt;
    &lt;deviceboot/&gt;
    &lt;disksnapshot default='on' toggle='no'/&gt;
  &lt;/features&gt;
&lt;/guest&gt;</pre>
<p>{code}</p>
<p>So it seems we can get s390x VMs running on our x86_64 hardware. The next issue to tackle would be to get an OS running on these VMs. The seems to be a Fedora s390x release but not a CentOS one. Neither of these projects release an s390x cloud image, so we have end up having to make our own using &lsquo;{{virt-install}}&rsquo; or try to convince [Richard Jones|<a href="mailto:rjones@redhat.com">rjones@redhat.com</a>] to make such images available in &lsquo;{{virt-builder}}&rsquo;.</p>
<p>Once we have VMs up, we need to turn them into Jenkins slaves, hopefully the s390x Fedora build includes Java, so this me be trivial.</p>
<p>To get &lsquo;{{mock_runner.sh}}&rsquo; support we would need an appropriates &lsquo;{{mock}}&rsquo; configuration files. Suitable files for Fedora on s390x package seems to already be shipped with the &lsquo;{{mock}}&rsquo; package, so there is not much to do there besides copying the file into our &lsquo;{{jenkins}}&rsquo; repo and making the usual adjustments we typically make to enable proxy and mirrors support.</p>
<p>Once we have all of that up and running, adding s390x &lsquo;{{build-artifacts}}&rsquo; jobs would be trivial, we'll just have to add the right tags in the JJB YAML.</p>
<p>&mdash; This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100071)</p>

<img src="https://u4043402.ct.sendgrid.net/wf/open?upn=i5TMWGV99amJbNxJpSp2-2BCmpYLyzYS3r1Q939T2sgz0GT7aHeHjvYnVHodi5ddI8u0p48CMAkuQTHIuirLgpnSbSojACsAtCevJdqKKRlXhzT1F2g0h0QuEjdRPM5O9OCjXNM57cTg9oOQAxJycr6e6uu4RXoOZr4GS-2BU7YDzwSCqKg3oarloaFCgkvGZininH54wQZXoKs-2FkzwlcrAYpw-3D-3D" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;"/>
</body></html>