All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH OSSTEST v6 0/9] XSM test case for OSSTest
@ 2015-02-04 16:29 Wei Liu
  2015-02-04 16:29 ` [PATCH OSSTEST v6 1/9] overlay: update overlay/etc/grub.d/20_linux_xen Wei Liu
                   ` (8 more replies)
  0 siblings, 9 replies; 14+ messages in thread
From: Wei Liu @ 2015-02-04 16:29 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, Wei Liu, ian.campbell

Hi all

This patch series attempts to duplicate some Debian test cases for XSM. This
is version 6 of this series, rebased on top of OSSTest pretest branch.

Tests duplicated for xen-unstable branch:
  build-{i386,amd64,armhf}-xsm
  test-amd64-{i386,amd64}-{xl,libvirt}-xsm
  test-armhf-armhf-{xl,libvirt}-xsm
  test-amd64-{i386,amd64}-xl-qemuu-debianhvm-amd64-xsm
  test-amd64-(i386,amd64}-xl-qemut-debianhvm-amd64-xsm

Changes in v6 can be found in individual patch. Only the last patch needs an
ack.

See below for output of
  ./standalone-generate-dump-flight-runvars > origin # master
  ./standalone-generate-dump-flight-runvars > xsm # this series applied
  diff -ub ../origin xsm  | grep '-xen-unstable' | sed  's/[ \t]*$//' # nothing
  diff -ub ../origin xsm  | grep '+xen-unstable' | sed  's/[ \t]*$//'

+xen-unstable               build-amd64                                   enable_xsm                  false
+xen-unstable               build-amd64-xsm                               arch                        amd64
+xen-unstable               build-amd64-xsm                               build_lvextend_max          50
+xen-unstable               build-amd64-xsm                               enable_ovmf                 true
+xen-unstable               build-amd64-xsm                               enable_xend                 false
+xen-unstable               build-amd64-xsm                               enable_xsm                  true
+xen-unstable               build-amd64-xsm                               host_hostflags              share-build-wheezy-amd64,arch-amd64,suite-wheezy,purpose-build
+xen-unstable               build-amd64-xsm                               revision_ovmf
+xen-unstable               build-amd64-xsm                               revision_qemu
+xen-unstable               build-amd64-xsm                               revision_qemuu              0d37748342e29854db7c9f6c47d7f58c6cfba6b2
+xen-unstable               build-amd64-xsm                               revision_seabios
+xen-unstable               build-amd64-xsm                               revision_xen                c58ba78c84eecf4b7ed5e68d744c555112f8ad14
+xen-unstable               build-amd64-xsm                               tree_ovmf
+xen-unstable               build-amd64-xsm                               tree_qemu                   git://xenbits.xen.org/staging/qemu-xen-unstable.git
+xen-unstable               build-amd64-xsm                               tree_qemuu                  git://xenbits.xen.org/staging/qemu-upstream-unstable.git
+xen-unstable               build-amd64-xsm                               tree_seabios
+xen-unstable               build-amd64-xsm                               tree_xen                    git://xenbits.xen.org/xen.git
+xen-unstable               build-armhf                                   enable_xsm                  false
+xen-unstable               build-armhf-xsm                               arch                        armhf
+xen-unstable               build-armhf-xsm                               build_lvextend_max          50
+xen-unstable               build-armhf-xsm                               enable_ovmf                 true
+xen-unstable               build-armhf-xsm                               enable_xend                 false
+xen-unstable               build-armhf-xsm                               enable_xsm                  true
+xen-unstable               build-armhf-xsm                               host_hostflags              share-build-wheezy-armhf,arch-armhf,suite-wheezy,purpose-build
+xen-unstable               build-armhf-xsm                               revision_ovmf
+xen-unstable               build-armhf-xsm                               revision_qemu
+xen-unstable               build-armhf-xsm                               revision_qemuu              0d37748342e29854db7c9f6c47d7f58c6cfba6b2
+xen-unstable               build-armhf-xsm                               revision_seabios
+xen-unstable               build-armhf-xsm                               revision_xen                c58ba78c84eecf4b7ed5e68d744c555112f8ad14
+xen-unstable               build-armhf-xsm                               tree_ovmf
+xen-unstable               build-armhf-xsm                               tree_qemu                   git://xenbits.xen.org/staging/qemu-xen-unstable.git
+xen-unstable               build-armhf-xsm                               tree_qemuu                  git://xenbits.xen.org/staging/qemu-upstream-unstable.git
+xen-unstable               build-armhf-xsm                               tree_seabios
+xen-unstable               build-armhf-xsm                               tree_xen                    git://xenbits.xen.org/xen.git
+xen-unstable               build-i386                                    enable_xsm                  false
+xen-unstable               build-i386-xsm                                arch                        i386
+xen-unstable               build-i386-xsm                                build_lvextend_max          50
+xen-unstable               build-i386-xsm                                enable_ovmf                 true
+xen-unstable               build-i386-xsm                                enable_xend                 false
+xen-unstable               build-i386-xsm                                enable_xsm                  true
+xen-unstable               build-i386-xsm                                host_hostflags              share-build-wheezy-i386,arch-i386,suite-wheezy,purpose-build
+xen-unstable               build-i386-xsm                                revision_ovmf
+xen-unstable               build-i386-xsm                                revision_qemu
+xen-unstable               build-i386-xsm                                revision_qemuu              0d37748342e29854db7c9f6c47d7f58c6cfba6b2
+xen-unstable               build-i386-xsm                                revision_seabios
+xen-unstable               build-i386-xsm                                revision_xen                c58ba78c84eecf4b7ed5e68d744c555112f8ad14
+xen-unstable               build-i386-xsm                                tree_ovmf
+xen-unstable               build-i386-xsm                                tree_qemu                   git://xenbits.xen.org/staging/qemu-xen-unstable.git
+xen-unstable               build-i386-xsm                                tree_qemuu                  git://xenbits.xen.org/staging/qemu-upstream-unstable.git
+xen-unstable               build-i386-xsm                                tree_seabios
+xen-unstable               build-i386-xsm                                tree_xen                    git://xenbits.xen.org/xen.git
+xen-unstable               test-amd64-amd64-libvirt                      enable_xsm                  false
+xen-unstable               test-amd64-amd64-libvirt-xsm                  all_hostflags               arch-amd64,arch-xen-amd64,suite-wheezy,purpose-test
+xen-unstable               test-amd64-amd64-libvirt-xsm                  arch                        amd64
+xen-unstable               test-amd64-amd64-libvirt-xsm                  buildjob                    build-amd64-xsm
+xen-unstable               test-amd64-amd64-libvirt-xsm                  debian_arch                 amd64
+xen-unstable               test-amd64-amd64-libvirt-xsm                  debian_kernkind             pvops
+xen-unstable               test-amd64-amd64-libvirt-xsm                  enable_xsm                  true
+xen-unstable               test-amd64-amd64-libvirt-xsm                  kernbuildjob                build-amd64-pvops
+xen-unstable               test-amd64-amd64-libvirt-xsm                  kernkind                    pvops
+xen-unstable               test-amd64-amd64-libvirt-xsm                  libvirtbuildjob             build-amd64-xsm-libvirt
+xen-unstable               test-amd64-amd64-libvirt-xsm                  toolstack                   libvirt
+xen-unstable               test-amd64-amd64-libvirt-xsm                  xenbuildjob                 build-amd64-xsm
+xen-unstable               test-amd64-amd64-xl                           enable_xsm                  false
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64     enable_xsm                  false
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm all_hostflags               arch-amd64,arch-xen-amd64,suite-wheezy,purpose-test,hvm
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm arch                        amd64
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm bios                        rombios
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm buildjob                    build-amd64-xsm
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm debianhvm_image             debian-7.2.0-amd64-CD-1.iso
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm device_model_version        qemu-xen-traditional
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm enable_xsm                  true
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm kernbuildjob                build-amd64-pvops
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm kernkind                    pvops
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm toolstack                   xl
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm xenbuildjob                 build-amd64-xsm
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64     enable_xsm                  false
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm all_hostflags               arch-amd64,arch-xen-amd64,suite-wheezy,purpose-test,hvm
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm arch                        amd64
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm bios                        seabios
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm buildjob                    build-amd64-xsm
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm debianhvm_image             debian-7.2.0-amd64-CD-1.iso
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm device_model_version        qemu-xen
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm enable_xsm                  true
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm kernbuildjob                build-amd64-pvops
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm kernkind                    pvops
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm toolstack                   xl
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm xenbuildjob                 build-amd64-xsm
+xen-unstable               test-amd64-amd64-xl-qemuu-ovmf-amd64          enable_xsm                  false
+xen-unstable               test-amd64-amd64-xl-xsm                       all_hostflags               arch-amd64,arch-xen-amd64,suite-wheezy,purpose-test
+xen-unstable               test-amd64-amd64-xl-xsm                       arch                        amd64
+xen-unstable               test-amd64-amd64-xl-xsm                       buildjob                    build-amd64-xsm
+xen-unstable               test-amd64-amd64-xl-xsm                       debian_arch                 amd64
+xen-unstable               test-amd64-amd64-xl-xsm                       debian_kernkind             pvops
+xen-unstable               test-amd64-amd64-xl-xsm                       enable_xsm                  true
+xen-unstable               test-amd64-amd64-xl-xsm                       kernbuildjob                build-amd64-pvops
+xen-unstable               test-amd64-amd64-xl-xsm                       kernkind                    pvops
+xen-unstable               test-amd64-amd64-xl-xsm                       toolstack                   xl
+xen-unstable               test-amd64-amd64-xl-xsm                       xenbuildjob                 build-amd64-xsm
+xen-unstable               test-amd64-i386-libvirt                       enable_xsm                  false
+xen-unstable               test-amd64-i386-libvirt-xsm                   all_hostflags               arch-i386,arch-xen-amd64,suite-wheezy,purpose-test
+xen-unstable               test-amd64-i386-libvirt-xsm                   arch                        i386
+xen-unstable               test-amd64-i386-libvirt-xsm                   buildjob                    build-i386-xsm
+xen-unstable               test-amd64-i386-libvirt-xsm                   debian_arch                 i386
+xen-unstable               test-amd64-i386-libvirt-xsm                   debian_kernkind             pvops
+xen-unstable               test-amd64-i386-libvirt-xsm                   enable_xsm                  true
+xen-unstable               test-amd64-i386-libvirt-xsm                   kernbuildjob                build-i386-pvops
+xen-unstable               test-amd64-i386-libvirt-xsm                   kernkind                    pvops
+xen-unstable               test-amd64-i386-libvirt-xsm                   libvirtbuildjob             build-i386-xsm-libvirt
+xen-unstable               test-amd64-i386-libvirt-xsm                   toolstack                   libvirt
+xen-unstable               test-amd64-i386-libvirt-xsm                   xenbuildjob                 build-amd64-xsm
+xen-unstable               test-amd64-i386-xl                            enable_xsm                  false
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64      enable_xsm                  false
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  all_hostflags               arch-i386,arch-xen-amd64,suite-wheezy,purpose-test,hvm
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  arch                        i386
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  bios                        rombios
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  buildjob                    build-i386-xsm
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  debianhvm_image             debian-7.2.0-amd64-CD-1.iso
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  device_model_version        qemu-xen-traditional
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  enable_xsm                  true
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  kernbuildjob                build-i386-pvops
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  kernkind                    pvops
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  toolstack                   xl
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  xenbuildjob                 build-amd64-xsm
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64      enable_xsm                  false
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  all_hostflags               arch-i386,arch-xen-amd64,suite-wheezy,purpose-test,hvm
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  arch                        i386
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  bios                        seabios
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  buildjob                    build-i386-xsm
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  debianhvm_image             debian-7.2.0-amd64-CD-1.iso
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  device_model_version        qemu-xen
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  enable_xsm                  true
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  kernbuildjob                build-i386-pvops
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  kernkind                    pvops
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  toolstack                   xl
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  xenbuildjob                 build-amd64-xsm
+xen-unstable               test-amd64-i386-xl-qemuu-ovmf-amd64           enable_xsm                  false
+xen-unstable               test-amd64-i386-xl-xsm                        all_hostflags               arch-i386,arch-xen-amd64,suite-wheezy,purpose-test
+xen-unstable               test-amd64-i386-xl-xsm                        arch                        i386
+xen-unstable               test-amd64-i386-xl-xsm                        buildjob                    build-i386-xsm
+xen-unstable               test-amd64-i386-xl-xsm                        debian_arch                 i386
+xen-unstable               test-amd64-i386-xl-xsm                        debian_kernkind             pvops
+xen-unstable               test-amd64-i386-xl-xsm                        enable_xsm                  true
+xen-unstable               test-amd64-i386-xl-xsm                        kernbuildjob                build-i386-pvops
+xen-unstable               test-amd64-i386-xl-xsm                        kernkind                    pvops
+xen-unstable               test-amd64-i386-xl-xsm                        toolstack                   xl
+xen-unstable               test-amd64-i386-xl-xsm                        xenbuildjob                 build-amd64-xsm
+xen-unstable               test-armhf-armhf-libvirt                      enable_xsm                  false
+xen-unstable               test-armhf-armhf-libvirt-xsm                  all_hostflags               arch-armhf,arch-xen-armhf,suite-wheezy,purpose-test
+xen-unstable               test-armhf-armhf-libvirt-xsm                  arch                        armhf
+xen-unstable               test-armhf-armhf-libvirt-xsm                  buildjob                    build-armhf-xsm
+xen-unstable               test-armhf-armhf-libvirt-xsm                  debian_arch                 armhf
+xen-unstable               test-armhf-armhf-libvirt-xsm                  debian_kernkind             pvops
+xen-unstable               test-armhf-armhf-libvirt-xsm                  enable_xsm                  true
+xen-unstable               test-armhf-armhf-libvirt-xsm                  kernbuildjob                build-armhf-pvops
+xen-unstable               test-armhf-armhf-libvirt-xsm                  kernkind                    pvops
+xen-unstable               test-armhf-armhf-libvirt-xsm                  libvirtbuildjob             build-armhf-xsm-libvirt
+xen-unstable               test-armhf-armhf-libvirt-xsm                  toolstack                   libvirt
+xen-unstable               test-armhf-armhf-libvirt-xsm                  xenbuildjob                 build-armhf-xsm
+xen-unstable               test-armhf-armhf-xl-arndale                   enable_xsm                  false
+xen-unstable               test-armhf-armhf-xl-cubietruck                enable_xsm                  false
+xen-unstable               test-armhf-armhf-xl                           enable_xsm                  false
+xen-unstable               test-armhf-armhf-xl-midway                    enable_xsm                  false
+xen-unstable               test-armhf-armhf-xl-xsm                       all_hostflags               arch-armhf,arch-xen-armhf,suite-wheezy,purpose-test
+xen-unstable               test-armhf-armhf-xl-xsm                       arch                        armhf
+xen-unstable               test-armhf-armhf-xl-xsm                       buildjob                    build-armhf-xsm
+xen-unstable               test-armhf-armhf-xl-xsm                       debian_arch                 armhf
+xen-unstable               test-armhf-armhf-xl-xsm                       debian_kernkind             pvops
+xen-unstable               test-armhf-armhf-xl-xsm                       enable_xsm                  true
+xen-unstable               test-armhf-armhf-xl-xsm                       kernbuildjob                build-armhf-pvops
+xen-unstable               test-armhf-armhf-xl-xsm                       kernkind                    pvops
+xen-unstable               test-armhf-armhf-xl-xsm                       toolstack                   xl
+xen-unstable               test-armhf-armhf-xl-xsm                       xenbuildjob                 build-armhf-xsm

Wei.

Wei Liu (9):
  overlay: update overlay/etc/grub.d/20_linux_xen
  ts-xen-build-prep: install checkpolicy
  ts-xen-build: build with XSM support if requested
  mfi-common: create build-$arch-xsm job
  Debian.pm: pass in XSM configuration to bootloader setup routines
  Debian.pm: load flask policy in uboot
  ts-xen-install: install Xen with XSM support if requested
  make-flight: factor out do_pv_debian_tests
  mfi-common, make-flight: create XSM test jobs

 Osstest/Debian.pm               |  61 +++++++++++++++++----
 make-flight                     |  57 +++++++++++++++-----
 mfi-common                      |  35 ++++++++++--
 overlay/etc/grub.d/20_linux_xen | 117 +++++++++++++++++++++++++++++++---------
 ts-xen-build                    |  14 +++++
 ts-xen-build-prep               |   2 +-
 ts-xen-install                  |   5 +-
 7 files changed, 237 insertions(+), 54 deletions(-)

-- 
1.9.1

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

* [PATCH OSSTEST v6 1/9] overlay: update overlay/etc/grub.d/20_linux_xen
  2015-02-04 16:29 [PATCH OSSTEST v6 0/9] XSM test case for OSSTest Wei Liu
@ 2015-02-04 16:29 ` Wei Liu
  2015-02-04 16:29 ` [PATCH OSSTEST v6 2/9] ts-xen-build-prep: install checkpolicy Wei Liu
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Wei Liu @ 2015-02-04 16:29 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, Wei Liu, ian.campbell

This file was originally created to work around Debian bug #633127
("/etc/grub/20_linux does not recognise some old Xen kernels").

According to Debian bug tracker [0], #633127 bug is fixed in Wheezy. As
we're now using Wheezy in OSSTest we can safely remove the old overlay
file if there's no further bugs discovered.

However we have another bug #690538 ("grub-common: Please make submenu
creation optional or at least allow users to disable it easily") that
would break OSSTest.  We're now using Wheezy in production. There's no
way to disable submenu in Wheezy. And submenu breaks OSSTest's grub menu
parser.

So update this overlay file to the one in Wheezy's grub-common
1.99-27+deb7u2 and take care of Debian bug #690538 by removing the lines
to generate submenu.

Also work around GRUB bug #43420 ("20_linux_xen doesn't support Xen XSM
policy file") by applying a small patch proposed in [2].

Add a note to reference #633127 and #690538 above grub2 setup function.

0: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633127
1: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690538
2: https://savannah.gnu.org/bugs/?43420

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
---
 Osstest/Debian.pm               |   5 ++
 overlay/etc/grub.d/20_linux_xen | 117 +++++++++++++++++++++++++++++++---------
 2 files changed, 98 insertions(+), 24 deletions(-)

diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
index e3e1c90..640f195 100644
--- a/Osstest/Debian.pm
+++ b/Osstest/Debian.pm
@@ -350,6 +350,11 @@ sub setupboot_grub1 ($$$) {
     return $bl;
 }
 
+# Note on running OSSTest on Squeeze with old Xen kernel: check out
+# Debian bug #633127 "/etc/grub/20_linux does not recognise some old
+# Xen kernels"
+# Currently setupboot_grub2 relies on Grub menu not having submenu.
+# Check Debian bug #690538.
 sub setupboot_grub2 ($$$) {
     my ($ho,$want_kernver,$xenhopt,$xenkopt) = @_;
     my $bl= { };
diff --git a/overlay/etc/grub.d/20_linux_xen b/overlay/etc/grub.d/20_linux_xen
index 99854d2..f5a8b81 100755
--- a/overlay/etc/grub.d/20_linux_xen
+++ b/overlay/etc/grub.d/20_linux_xen
@@ -1,7 +1,7 @@
 #! /bin/sh
 
-# Copied from the identically named file in grub-common 1.98+20100804-14
-# i386.  This version fixes #633127 (and has the patch I proposed there).
+# Copied from the identically named file in grub-common 1.99-27+deb7u2.
+# This version fixed Debian bug #690538 and GRUB bug #43420.
 
 set -e
 
@@ -21,14 +21,14 @@ set -e
 # You should have received a copy of the GNU General Public License
 # along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
 
-prefix=/usr
-exec_prefix=${prefix}
-bindir=${exec_prefix}/bin
-libdir=${exec_prefix}/lib
-. ${libdir}/grub/grub-mkconfig_lib
+prefix="/usr"
+exec_prefix="${prefix}"
+datarootdir="${prefix}/share"
+
+. "${datarootdir}/grub/grub-mkconfig_lib"
 
 export TEXTDOMAIN=grub
-export TEXTDOMAINDIR=${prefix}/share/locale
+export TEXTDOMAINDIR="${datarootdir}/locale"
 
 CLASS="--class gnu-linux --class gnu --class os --class xen"
 
@@ -36,7 +36,7 @@ if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
   OS=GNU/Linux
 else
   OS="${GRUB_DISTRIBUTOR} GNU/Linux"
-  CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' | cut -d' ' -f1) ${CLASS}"
+  CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}"
 fi
 
 # loop-AES arranges things so that /dev/loop/X can be our root device, but
@@ -44,6 +44,11 @@ fi
 case ${GRUB_DEVICE} in
   /dev/loop/*|/dev/loop[0-9])
     GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
+    # We can't cope with devices loop-mounted from files here.
+    case ${GRUB_DEVICE} in
+      /dev/*) ;;
+      *) exit 0 ;;
+    esac
   ;;
 esac
 
@@ -55,6 +60,23 @@ else
   LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
 fi
 
+# Allow overriding GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT.
+if [ "${GRUB_CMDLINE_LINUX_XEN_REPLACE}" ]; then
+  GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX_XEN_REPLACE}"
+fi
+if [ "${GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT}" ]; then
+  GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT}"
+fi
+
+if [ "x`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2>/dev/null || true`" = xbtrfs ] \
+    || [ "x`stat -f --printf=%T /`" = xbtrfs ]; then
+  rootsubvol="`make_system_path_relative_to_its_root /`"
+  rootsubvol="${rootsubvol#/}"
+  if [ "x${rootsubvol}" != x ]; then
+    GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
+  fi
+fi
+
 linux_entry ()
 {
   os="$1"
@@ -63,22 +85,43 @@ linux_entry ()
   recovery="$4"
   args="$5"
   xen_args="$6"
-  if ${recovery} ; then
-    title="$(gettext_quoted "%s, with Linux %s and XEN %s (recovery mode)")"
+  xsm="$7"
+  # If user wants to enable XSM support, make sure there's
+  # corresponding policy file.
+  if ${xsm} ; then
+      xenpolicy=`echo xenpolicy-$xen_version`
+      if test ! -e "${xen_dirname}/${xenpolicy}" ; then
+	  return
+      fi
+      xen_args=`echo $xen_args flask_enabled=1 flask_enforcing=1`
+      if ${recovery} ; then
+	  title="$(gettext_quoted "%s, with Xen %s (XSM enabled) and Linux %s (recovery mode)")"
+      else
+	  title="$(gettext_quoted "%s, with Xen %s (XSM enabled) and Linux %s")"
+      fi
   else
-    title="$(gettext_quoted "%s, with Linux %s and XEN %s")"
+      xenpolicy=""
+      if ${recovery} ; then
+	  title="$(gettext_quoted "%s, with Xen %s and Linux %s (recovery mode)")"
+      else
+	  title="$(gettext_quoted "%s, with Xen %s and Linux %s")"
+      fi
+  fi
+  printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${xen_version}" "${version}"
+  if ! ${recovery} ; then
+      save_default_entry | sed -e "s/^/\t/"
   fi
-  printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}" "${xen_version}"
-  save_default_entry | sed -e "s/^/\t/"
 
   if [ -z "${prepare_boot_cache}" ]; then
     prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")"
   fi
   printf '%s\n' "${prepare_boot_cache}"
-  message="$(gettext_printf "Loading Linux %s ..." ${version})"
+  xmessage="$(gettext_printf "Loading Xen %s ..." ${xen_version})"
+  lmessage="$(gettext_printf "Loading Linux %s ..." ${version})"
   cat << EOF
-	echo	'$message'
+	echo	'$xmessage'
 	multiboot	${rel_xen_dirname}/${xen_basename} placeholder ${xen_args}
+	echo	'$lmessage'
 	module	${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
 EOF
   if test -n "${initrd}" ; then
@@ -88,17 +131,37 @@ EOF
 	module	${rel_dirname}/${initrd}
 EOF
   fi
+  if test -n "${xenpolicy}" ; then
+    message="$(gettext_printf "Loading XSM policy ...")"
+    cat << EOF
+	echo	'$message'
+	module	${rel_dirname}/${xenpolicy}
+EOF
+  fi
   cat << EOF
 }
 EOF
 }
 
-linux_list=`for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* ; do
+linux_list=`for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* /boot/kernel-*; do
+    if grub_file_is_not_garbage "$i"; then
     	basename=$(basename $i)
 	version=$(echo $basename | sed -e "s,^[^0-9]*-,,g")
-        if grub_file_is_not_garbage "$i" && grep -qx 'CONFIG_XEN_\(DOM0\|PRIVILEGED_GUEST\)=y' /boot/config-${version} 2> /dev/null ; then echo -n "$i " ; fi
-      done`
-xen_list=`for i in /boot/xen*; do
+	dirname=$(dirname $i)
+	config=
+	for j in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
+	    if test -e "${j}" ; then
+		config="${j}"
+		break
+	    fi
+	done
+        if (grep -qx "CONFIG_XEN_DOM0=y" "${config}" 2> /dev/null || grep -qx "CONFIG_XEN_PRIVILEGED_GUEST=y" "${config}" 2> /dev/null); then echo -n "$i " ; fi
+    fi
+    done`
+if [ "x${linux_list}" = "x" ] ; then
+    exit 0
+fi
+xen_list=`for i in /boot/xen[-.]*; do
         if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
       done`
 prepare_boot_cache=
@@ -123,7 +186,9 @@ while [ "x${xen_list}" != "x" ] ; do
 	initrd=
 	for i in "initrd.img-${version}" "initrd-${version}.img" \
 	    "initrd-${version}" "initrd.img-${alt_version}" \
-	    "initrd-${alt_version}.img" "initrd-${alt_version}"; do
+	    "initrd-${alt_version}.img" "initrd-${alt_version}" \
+	    "initramfs-genkernel-${version}" \
+	    "initramfs-genkernel-${alt_version}" ; do
 	    if test -e "${dirname}/${i}" ; then
 		initrd="$i"
 		break
@@ -137,10 +202,14 @@ while [ "x${xen_list}" != "x" ] ; do
 	fi
 
 	linux_entry "${OS}" "${version}" "${xen_version}" false \
-	    "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}"
-	if [ "x${GRUB_DISABLE_LINUX_RECOVERY}" != "xtrue" ]; then
+	    "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" false
+	linux_entry "${OS}" "${version}" "${xen_version}" false \
+	    "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" true
+	if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
+	    linux_entry "${OS}" "${version}" "${xen_version}" true \
+		"single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}" false
 	    linux_entry "${OS}" "${version}" "${xen_version}" true \
-		"single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}"
+		"single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}" true
 	fi
 
 	list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
-- 
1.9.1

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

* [PATCH OSSTEST v6 2/9] ts-xen-build-prep: install checkpolicy
  2015-02-04 16:29 [PATCH OSSTEST v6 0/9] XSM test case for OSSTest Wei Liu
  2015-02-04 16:29 ` [PATCH OSSTEST v6 1/9] overlay: update overlay/etc/grub.d/20_linux_xen Wei Liu
@ 2015-02-04 16:29 ` Wei Liu
  2015-02-04 16:29 ` [PATCH OSSTEST v6 3/9] ts-xen-build: build with XSM support if requested Wei Liu
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Wei Liu @ 2015-02-04 16:29 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, Wei Liu, ian.campbell

This is used to complie Flask policy.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 ts-xen-build-prep | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ts-xen-build-prep b/ts-xen-build-prep
index 24a8b25..3684c0a 100755
--- a/ts-xen-build-prep
+++ b/ts-xen-build-prep
@@ -178,7 +178,7 @@ sub prep () {
                                autoconf automake libtool xsltproc
                                libxml2-utils libxml2-dev libnl-dev
                                libdevmapper-dev w3c-dtd-xhtml libxml-xpath-perl
-                               ccache nasm));
+                               ccache nasm checkpolicy));
 
     target_cmd_root($ho, "chmod -R a+r /usr/share/git-core/templates");
     # workaround for Debian #595728
-- 
1.9.1

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

* [PATCH OSSTEST v6 3/9] ts-xen-build: build with XSM support if requested
  2015-02-04 16:29 [PATCH OSSTEST v6 0/9] XSM test case for OSSTest Wei Liu
  2015-02-04 16:29 ` [PATCH OSSTEST v6 1/9] overlay: update overlay/etc/grub.d/20_linux_xen Wei Liu
  2015-02-04 16:29 ` [PATCH OSSTEST v6 2/9] ts-xen-build-prep: install checkpolicy Wei Liu
@ 2015-02-04 16:29 ` Wei Liu
  2015-02-04 16:29 ` [PATCH OSSTEST v6 4/9] mfi-common: create build-$arch-xsm job Wei Liu
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Wei Liu @ 2015-02-04 16:29 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, Wei Liu, ian.campbell

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
Changes in v5:
1. Only set XSM_ENABLE when runvar is defined.
2. Fix inconsistent whitespace.

Changes in v4:
1. Use "true" instead of "y"
---
 ts-xen-build | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/ts-xen-build b/ts-xen-build
index 370bfbc..b1f29c6 100755
--- a/ts-xen-build
+++ b/ts-xen-build
@@ -27,6 +27,8 @@ tsreadconfig();
 selectbuildhost(\@ARGV);
 # remaining arguments are passed as targets to "make"
 builddirsprops();
+
+my $enable_xsm = $r{enable_xsm} =~ m/true/ ? 1 : 0;
     
 sub checkout () {
     prepbuilddirs();
@@ -34,6 +36,7 @@ sub checkout () {
     build_clone($ho, 'xen', $builddir, 'xen');
 
     my $debug_build = $r{xen_build_debug} || 'y';
+    my $build_xsm = $enable_xsm ? 'y' : 'n';
 
     # Do not set this unless you know what you are doing. This arm
     # option makes the build specific to a particular type of
@@ -52,6 +55,9 @@ sub checkout () {
 	echo >>.config QEMU_REMOTE='$r{tree_qemu}'
 	echo >>.config KERNELS=''
 END
+               (nonempty($r{enable_xsm}) ? <<END : '').
+	echo >>.config XSM_ENABLE='${build_xsm}'
+END
                (nonempty($r{revision_qemu}) ? <<END : '').
 	echo >>.config QEMU_TAG='$r{revision_qemu}'
 END
@@ -120,6 +126,14 @@ END
     buildcmd_stamped_logged(9000, 'build', '',<<END,'');
             $make_prefix make $makeflags @ARGV
 END
+
+    if ($enable_xsm) {
+	my $xen_version = target_cmd_output_root($ho, <<END, 30);
+	    cd $builddir/xen
+	    $make_prefix make xenversion
+END
+	store_runvar("flaskpolicy", "xenpolicy-" . $xen_version);
+    }
 }
 
 sub collectversions () {
-- 
1.9.1

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

* [PATCH OSSTEST v6 4/9] mfi-common: create build-$arch-xsm job
  2015-02-04 16:29 [PATCH OSSTEST v6 0/9] XSM test case for OSSTest Wei Liu
                   ` (2 preceding siblings ...)
  2015-02-04 16:29 ` [PATCH OSSTEST v6 3/9] ts-xen-build: build with XSM support if requested Wei Liu
@ 2015-02-04 16:29 ` Wei Liu
  2015-02-04 16:29 ` [PATCH OSSTEST v6 5/9] Debian.pm: pass in XSM configuration to bootloader setup routines Wei Liu
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Wei Liu @ 2015-02-04 16:29 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, Wei Liu, ian.campbell

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
---
Changes in v4:
1. Use "true" and "false" instead of "y" and "n".
2. Rename xenbranch_wants_xsm_tests to xenbranch_xsm_variants.
---
 mfi-common | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/mfi-common b/mfi-common
index 44b6752..ee4e635 100644
--- a/mfi-common
+++ b/mfi-common
@@ -41,6 +41,19 @@ branch_wants_rumpkernel_tests () {
   esac
 }
 
+xenbranch_xsm_variants () {
+    # Test XSM from 4.5 onwards
+    case "$xenbranch" in
+    xen-3.*-testing) echo "false";;
+    xen-4.0-testing) echo "false";;
+    xen-4.1-testing) echo "false";;
+    xen-4.2-testing) echo "false";;
+    xen-4.3-testing) echo "false";;
+    xen-4.4-testing) echo "false";;
+    *) echo "false true";
+    esac
+}
+
 create_build_jobs () {
 
   local arch
@@ -141,8 +154,15 @@ create_build_jobs () {
 
     build_hostflags=share-build-$suite-$arch,arch-$arch,suite-$suite,purpose-build
 
-    ./cs-job-create $flight build-$arch build                                \
+    for enable_xsm in $(xenbranch_xsm_variants) ; do
+      if [ x$enable_xsm = xtrue ] ; then
+        xsm_suffix="-xsm"
+      else
+        xsm_suffix=""
+      fi
+      ./cs-job-create $flight build-$arch$xsm_suffix build                   \
                 arch=$arch enable_xend=$build_defxend enable_ovmf=$enable_ovmf\
+                enable_xsm=$enable_xsm                                       \
         tree_qemu=$TREE_QEMU                                                 \
         tree_qemuu=$TREE_QEMU_UPSTREAM                                       \
         tree_xen=$TREE_XEN                                                   \
@@ -156,6 +176,7 @@ create_build_jobs () {
                 revision_qemuu=$REVISION_QEMU_UPSTREAM                       \
                 revision_seabios=$REVISION_SEABIOS                           \
                 revision_ovmf=$REVISION_OVMF
+    done
 
     if [ $build_extraxend = "true" ] ; then
     ./cs-job-create $flight build-$arch-xend build                           \
-- 
1.9.1

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

* [PATCH OSSTEST v6 5/9] Debian.pm: pass in XSM configuration to bootloader setup routines
  2015-02-04 16:29 [PATCH OSSTEST v6 0/9] XSM test case for OSSTest Wei Liu
                   ` (3 preceding siblings ...)
  2015-02-04 16:29 ` [PATCH OSSTEST v6 4/9] mfi-common: create build-$arch-xsm job Wei Liu
@ 2015-02-04 16:29 ` Wei Liu
  2015-02-04 16:29 ` [PATCH OSSTEST v6 6/9] Debian.pm: load flask policy in uboot Wei Liu
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Wei Liu @ 2015-02-04 16:29 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, Wei Liu, ian.campbell

Change to Uboot will come in another patch. GRUB 1 is ignored, as
currently OSSTest only has Wheezy which has GRUB 2.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
Changes in v6:
1. Wrap some overly long lines.

Changes in v4:
1. Modify callsite of debian_boot_setup to avoid regression.
---
 Osstest/Debian.pm | 36 +++++++++++++++++++++++++-----------
 ts-xen-install    |  2 +-
 2 files changed, 26 insertions(+), 12 deletions(-)

diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
index 640f195..8efc89e 100644
--- a/Osstest/Debian.pm
+++ b/Osstest/Debian.pm
@@ -47,9 +47,9 @@ BEGIN {
 
 #---------- manipulation of Debian bootloader setup ----------
 
-sub debian_boot_setup ($$$$;$) {
+sub debian_boot_setup ($$$$$;$) {
     # $xenhopt==undef => is actually a guest, do not set up a hypervisor
-    my ($ho, $want_kernver, $xenhopt, $distpath, $hooks) = @_;
+    my ($ho, $want_kernver, $want_xsm, $xenhopt, $distpath, $hooks) = @_;
 
     target_kernkind_check($ho);
     target_kernkind_console_inittab($ho,$ho,"/");
@@ -74,11 +74,14 @@ sub debian_boot_setup ($$$$;$) {
 
     my $bootloader;
     if ( $ho->{Flags}{'need-uboot-bootscr'} ) {
-	$bootloader= setupboot_uboot($ho, $want_kernver, $xenhopt, $kopt);
+        $bootloader= setupboot_uboot($ho, $want_kernver,
+                                     $want_xsm, $xenhopt, $kopt);
     } elsif ($ho->{Suite} =~ m/lenny/) {
-        $bootloader= setupboot_grub1($ho, $want_kernver, $xenhopt, $kopt);
+        $bootloader= setupboot_grub1($ho, $want_kernver,
+                                     $want_xsm, $xenhopt, $kopt);
     } else {
-        $bootloader= setupboot_grub2($ho, $want_kernver, $xenhopt, $kopt);
+        $bootloader= setupboot_grub2($ho, $want_kernver,
+                                     $want_xsm, $xenhopt, $kopt);
     }
 
     $bootloader->{UpdateConfig}($ho);
@@ -138,8 +141,9 @@ if test -z "\${fdt_addr}" && test -n "\${fdtfile}" ; then
 fi
 END
 }
-sub setupboot_uboot ($$$) {
-    my ($ho,$want_kernver,$xenhopt,$xenkopt) = @_;
+
+sub setupboot_uboot ($$$$) {
+    my ($ho,$want_kernver,$want_xsm,$xenhopt,$xenkopt) = @_;
     my $bl= { };
 
     $bl->{UpdateConfig}= sub {
@@ -270,13 +274,17 @@ END
     return $bl;
 }
 
-sub setupboot_grub1 ($$$) {
-    my ($ho,$want_kernver,$xenhopt,$xenkopt) = @_;
+sub setupboot_grub1 ($$$$) {
+    my ($ho,$want_kernver,$want_xsm,$xenhopt,$xenkopt) = @_;
     my $bl= { };
 
     my $rmenu= "/boot/grub/menu.lst";
     my $lmenu= "$stash/$ho->{Name}--menu.lst.out";
 
+    if ($want_xsm) {
+	die "Enabling XSM with GRUB is not supported";
+    }
+
     target_editfile_root($ho, $rmenu, sub {
         while (<::EI>) {
             if (m/^## ## Start Default/ ..
@@ -355,8 +363,8 @@ sub setupboot_grub1 ($$$) {
 # Xen kernels"
 # Currently setupboot_grub2 relies on Grub menu not having submenu.
 # Check Debian bug #690538.
-sub setupboot_grub2 ($$$) {
-    my ($ho,$want_kernver,$xenhopt,$xenkopt) = @_;
+sub setupboot_grub2 ($$$$) {
+    my ($ho,$want_kernver,$want_xsm,$xenhopt,$xenkopt) = @_;
     my $bl= { };
 
     my $rmenu= '/boot/grub/grub.cfg';
@@ -383,6 +391,9 @@ sub setupboot_grub2 ($$$) {
 			 $entry->{KernVer} ne $want_kernver) {
 		    logm("(skipping entry at $entry->{StartLine};".
 			 " kernel $entry->{KernVer}, not $want_kernver)");
+		} elsif ($want_xsm && !defined $entry->{Xenpolicy}) {
+		    logm("(skipping entry at $entry->{StartLine};".
+			 " XSM policy file not present)");
 		} else {
 		    # yes!
 		    last;
@@ -415,6 +426,9 @@ sub setupboot_grub2 ($$$) {
             if (m/^\s*module\s*\/(initrd\S+)/) {
                 $entry->{Initrd}= $1;
             }
+	    if (m/^\s*module\s*\/(xenpolicy\S+)/) {
+                $entry->{Xenpolicy}= $1;
+            }
         }
         die 'grub 2 bootloader entry not found' unless $entry;
 
diff --git a/ts-xen-install b/ts-xen-install
index 7cfe344..829c3e9 100755
--- a/ts-xen-install
+++ b/ts-xen-install
@@ -171,7 +171,7 @@ sub setupboot () {
     }
 
     my $want_kernver = get_runvar('kernel_ver',$r{'kernbuildjob'});
-    debian_boot_setup($ho, $want_kernver, $xenhopt, \%distpath, \@hooks);
+    debian_boot_setup($ho, $want_kernver, 0, $xenhopt, \%distpath, \@hooks);
 
     logm("ready to boot Xen");
 }
-- 
1.9.1

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

* [PATCH OSSTEST v6 6/9] Debian.pm: load flask policy in uboot
  2015-02-04 16:29 [PATCH OSSTEST v6 0/9] XSM test case for OSSTest Wei Liu
                   ` (4 preceding siblings ...)
  2015-02-04 16:29 ` [PATCH OSSTEST v6 5/9] Debian.pm: pass in XSM configuration to bootloader setup routines Wei Liu
@ 2015-02-04 16:29 ` Wei Liu
  2015-02-04 16:29 ` [PATCH OSSTEST v6 7/9] ts-xen-install: install Xen with XSM support if requested Wei Liu
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Wei Liu @ 2015-02-04 16:29 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, Wei Liu, ian.campbell

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/Debian.pm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
index 8efc89e..5c5ce7a 100644
--- a/Osstest/Debian.pm
+++ b/Osstest/Debian.pm
@@ -153,6 +153,24 @@ sub setupboot_uboot ($$$$) {
 	my $kern = "vmlinuz-$want_kernver";
 	my $initrd = "initrd.img-$want_kernver";
 
+	my $flask_commands = "";
+	if ($want_xsm) {
+	    my $flaskpolicy = $r{flaskpolicy};
+	    $flask_commands = <<END;
+
+setenv flask_policy_addr_r 0x1200000
+flaskpolicy=`readlink /boot/$flaskpolicy`
+ext2load scsi 0 \\\${flask_policy_addr_r} \$flaskpolicy
+fdt mknod /chosen module\@2
+fdt set /chosen/module\@2 compatible "xen,xsm-policy"
+fdt set /chosen/module\@2 reg <\\\${flask_policy_addr_r} \\\${filesize}>
+echo Loaded $flaskpolicy to \\\${flask_policy_addr_r} (\\\${filesize})
+
+END
+	}
+
+	my $root= target_guest_lv_name($ho,"root");
+
 	logm("Xen options: $xenhopt");
 
 	# Common kernel options
@@ -241,6 +259,8 @@ fdt set /chosen/module\@1 compatible "xen,linux-initrd" "xen,multiboot-module"
 fdt set /chosen/module\@1 reg <\\\${ramdisk_addr_r} ${size_hex_prefix}\\\${filesize}>
 echo Loaded $initrd to \\\${ramdisk_addr_r} (\\\${filesize})
 
+${flask_commands}
+
 fdt print /chosen
 
 echo Booting \\\${xen_addr_r} - \\\${fdt_addr}
-- 
1.9.1

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

* [PATCH OSSTEST v6 7/9] ts-xen-install: install Xen with XSM support if requested
  2015-02-04 16:29 [PATCH OSSTEST v6 0/9] XSM test case for OSSTest Wei Liu
                   ` (5 preceding siblings ...)
  2015-02-04 16:29 ` [PATCH OSSTEST v6 6/9] Debian.pm: load flask policy in uboot Wei Liu
@ 2015-02-04 16:29 ` Wei Liu
  2015-02-04 16:29 ` [PATCH OSSTEST v6 8/9] make-flight: factor out do_pv_debian_tests Wei Liu
  2015-02-04 16:29 ` [PATCH OSSTEST v6 9/9] mfi-common, make-flight: create XSM test jobs Wei Liu
  8 siblings, 0 replies; 14+ messages in thread
From: Wei Liu @ 2015-02-04 16:29 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, Wei Liu, ian.campbell

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
---
Changes in v4:
1. Use "true" instead of "y"
---
 ts-xen-install | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ts-xen-install b/ts-xen-install
index 829c3e9..de4324a 100755
--- a/ts-xen-install
+++ b/ts-xen-install
@@ -46,6 +46,8 @@ if (@ARGV and $ARGV[0] eq '--check') {
 
 our $ho;
 
+my $enable_xsm = $r{enable_xsm} =~ m/true/ ? 1 : 0;
+
 my %distpath;
 
 sub packages () {
@@ -171,7 +173,8 @@ sub setupboot () {
     }
 
     my $want_kernver = get_runvar('kernel_ver',$r{'kernbuildjob'});
-    debian_boot_setup($ho, $want_kernver, 0, $xenhopt, \%distpath, \@hooks);
+    debian_boot_setup($ho, $want_kernver, $enable_xsm, $xenhopt,
+                      \%distpath, \@hooks);
 
     logm("ready to boot Xen");
 }
-- 
1.9.1

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

* [PATCH OSSTEST v6 8/9] make-flight: factor out do_pv_debian_tests
  2015-02-04 16:29 [PATCH OSSTEST v6 0/9] XSM test case for OSSTest Wei Liu
                   ` (6 preceding siblings ...)
  2015-02-04 16:29 ` [PATCH OSSTEST v6 7/9] ts-xen-install: install Xen with XSM support if requested Wei Liu
@ 2015-02-04 16:29 ` Wei Liu
  2015-02-04 16:29 ` [PATCH OSSTEST v6 9/9] mfi-common, make-flight: create XSM test jobs Wei Liu
  8 siblings, 0 replies; 14+ messages in thread
From: Wei Liu @ 2015-02-04 16:29 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, Wei Liu, ian.campbell

Pure code motion. No effect on job generation.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 make-flight | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/make-flight b/make-flight
index 63b14f5..0cb9b98 100755
--- a/make-flight
+++ b/make-flight
@@ -298,8 +298,7 @@ do_passthrough_tests () {
   done
 }
 
-test_matrix_do_one () {
-
+do_pv_debian_tests () {
   # Basic PV Linux test with xl
   for platform in '' `getplatforms $xenarch` ; do
     suffix=${platform:+-$platform}
@@ -313,6 +312,11 @@ test_matrix_do_one () {
   job_create_test test-$xenarch$kern-$dom0arch-libvirt test-debian libvirt \
             $xenarch $dom0arch                                       \
             $debian_runvars all_hostflags=$most_hostflags
+}
+
+test_matrix_do_one () {
+
+  do_pv_debian_tests
 
   do_multivcpu_tests
   do_sedf_tests
-- 
1.9.1

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

* [PATCH OSSTEST v6 9/9] mfi-common, make-flight: create XSM test jobs
  2015-02-04 16:29 [PATCH OSSTEST v6 0/9] XSM test case for OSSTest Wei Liu
                   ` (7 preceding siblings ...)
  2015-02-04 16:29 ` [PATCH OSSTEST v6 8/9] make-flight: factor out do_pv_debian_tests Wei Liu
@ 2015-02-04 16:29 ` Wei Liu
  2015-02-04 16:47   ` Ian Jackson
  8 siblings, 1 reply; 14+ messages in thread
From: Wei Liu @ 2015-02-04 16:29 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, Wei Liu, ian.campbell

Duplicate Debian PV and HVM test jobs for XSM testing.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
---
Changes in v6:
1. Skip generating xsm job for different platforms.
2. Use "xsms".
3. Reformat some long lines.
---
 make-flight | 53 +++++++++++++++++++++++++++++++++++++++--------------
 mfi-common  | 12 ++++++++++--
 2 files changed, 49 insertions(+), 16 deletions(-)

diff --git a/make-flight b/make-flight
index 0cb9b98..8ac3a87 100755
--- a/make-flight
+++ b/make-flight
@@ -207,27 +207,36 @@ do_hvm_win7_x64_tests () {
 do_hvm_debian_test_one () {
   testname=$1
   bios=$2
+  xsm=$3
+
   job_create_test test-$xenarch$kern-$dom0arch-xl$qemuu_suffix-$testname-amd64\
     test-debianhvm xl $xenarch $dom0arch $qemuu_runvar \
+    enable_xsm=$xsm                             \
     debianhvm_image=debian-7.2.0-amd64-CD-1.iso \
     bios=$bios \
     all_hostflags=$most_hostflags,hvm
 }
 
 do_hvm_debian_tests() {
+  xsms=$(xenbranch_xsm_variants)
+
   if [ $xenarch != amd64 ]; then
     return
   fi
 
   # QEMU upstream supports ovmf and seabios
   if [ "x$qemuu_suffix" == "x-qemuu" ]; then
-    do_hvm_debian_test_one ovmf ovmf
-    do_hvm_debian_test_one debianhvm seabios
+    do_hvm_debian_test_one ovmf ovmf false
+    for xsm in $xsms ; do
+      do_hvm_debian_test_one debianhvm seabios $xsm
+    done
   fi
 
   # QEMU traditional supports rombios
   if [ "x$qemuu_suffix" == "x-qemut" ]; then
-    do_hvm_debian_test_one debianhvm rombios
+    for xsm in $xsms ; do
+      do_hvm_debian_test_one debianhvm rombios $xsm
+    done
   fi
 }
 
@@ -299,19 +308,35 @@ do_passthrough_tests () {
 }
 
 do_pv_debian_tests () {
-  # Basic PV Linux test with xl
-  for platform in '' `getplatforms $xenarch` ; do
-    suffix=${platform:+-$platform}
-    hostflags=${most_hostflags}${platform:+,platform-$platform}
-
-    job_create_test test-$xenarch$kern-$dom0arch-xl$suffix test-debian xl \
-            $xenarch $dom0arch                                   \
-            $debian_runvars all_hostflags=$hostflags
+  xsms=$(xenbranch_xsm_variants)
+
+  for xsm in $xsms ; do
+    # Basic PV Linux test with xl
+    for platform in '' `getplatforms $xenarch` ; do
+
+      # xsm test is not platform specific
+      if [ x$xsm = xtrue -a x$platform != x ]; then
+          continue
+      fi
+
+      suffix=${platform:+-$platform}
+      hostflags=${most_hostflags}${platform:+,platform-$platform}
+
+      job_create_test test-$xenarch$kern-$dom0arch-xl$suffix   \
+                      test-debian xl                           \
+                      $xenarch $dom0arch                       \
+                      enable_xsm=$xsm                          \
+                      $debian_runvars all_hostflags=$hostflags
+    done
   done
 
-  job_create_test test-$xenarch$kern-$dom0arch-libvirt test-debian libvirt \
-            $xenarch $dom0arch                                       \
-            $debian_runvars all_hostflags=$most_hostflags
+  for xsm in $xsms ; do
+    job_create_test test-$xenarch$kern-$dom0arch-libvirt         \
+                    test-debian libvirt                          \
+                    $xenarch $dom0arch                           \
+                    enable_xsm=$xsm                              \
+                    $debian_runvars all_hostflags=$most_hostflags
+  done
 }
 
 test_matrix_do_one () {
diff --git a/mfi-common b/mfi-common
index ee4e635..b99cc14 100644
--- a/mfi-common
+++ b/mfi-common
@@ -271,8 +271,16 @@ job_create_test () {
   local xenarch=$1; shift
   local dom0arch=$1; shift
 
-  xenbuildjob="${bfi}build-$xenarch"
-  buildjob="${bfi}build-$dom0arch"
+  xsm_suffix=""
+  for rv in $@ ; do
+      case $rv in
+          enable_xsm=true) xsm_suffix="-xsm";;
+      esac
+  done
+
+  job="$job$xsm_suffix"
+  xenbuildjob="${bfi}build-$xenarch$xsm_suffix"
+  buildjob="${bfi}build-$dom0arch$xsm_suffix"
   tsbuildjob=
 
   case "$xenbranch:$toolstack" in
-- 
1.9.1

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

* Re: [PATCH OSSTEST v6 9/9] mfi-common, make-flight: create XSM test jobs
  2015-02-04 16:29 ` [PATCH OSSTEST v6 9/9] mfi-common, make-flight: create XSM test jobs Wei Liu
@ 2015-02-04 16:47   ` Ian Jackson
  2015-02-04 17:02     ` Wei Liu
  0 siblings, 1 reply; 14+ messages in thread
From: Ian Jackson @ 2015-02-04 16:47 UTC (permalink / raw)
  To: Wei Liu; +Cc: ian.campbell, xen-devel

Wei Liu writes ("[PATCH OSSTEST v6 9/9] mfi-common, make-flight: create XSM test jobs"):
> Duplicate Debian PV and HVM test jobs for XSM testing.

This looks pretty good.  I have one minor comment:

> +  xsm_suffix=""
> +  for rv in $@ ; do
> +      case $rv in
> +          enable_xsm=true) xsm_suffix="-xsm";;
> +      esac
> +  done

You could write this as

   case " $* " in
   *" enable_xsm=true "*) xsm_suffix="-xsm";;
   esac

since we don't cope with runvar settings with spaces in anyway.

(If we did you'd have to write   "$@"   not just  $@   .)

Ian.

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

* Re: [PATCH OSSTEST v6 9/9] mfi-common, make-flight: create XSM test jobs
  2015-02-04 16:47   ` Ian Jackson
@ 2015-02-04 17:02     ` Wei Liu
  2015-02-05 11:08       ` Ian Jackson
  2015-02-11 14:38       ` Ian Jackson
  0 siblings, 2 replies; 14+ messages in thread
From: Wei Liu @ 2015-02-04 17:02 UTC (permalink / raw)
  To: Ian Jackson; +Cc: Wei Liu, ian.campbell, xen-devel

On Wed, Feb 04, 2015 at 04:47:51PM +0000, Ian Jackson wrote:
> Wei Liu writes ("[PATCH OSSTEST v6 9/9] mfi-common, make-flight: create XSM test jobs"):
> > Duplicate Debian PV and HVM test jobs for XSM testing.
> 
> This looks pretty good.  I have one minor comment:
> 
> > +  xsm_suffix=""
> > +  for rv in $@ ; do
> > +      case $rv in
> > +          enable_xsm=true) xsm_suffix="-xsm";;
> > +      esac
> > +  done
> 
> You could write this as
> 
>    case " $* " in
>    *" enable_xsm=true "*) xsm_suffix="-xsm";;
>    esac
> 
> since we don't cope with runvar settings with spaces in anyway.
> 
> (If we did you'd have to write   "$@"   not just  $@   .)
> 
> Ian.

Here is the updated version:

---8<---
>From 5b40b06a62ef51ad511e36bf6eb12f3e9e88a647 Mon Sep 17 00:00:00 2001
From: Wei Liu <wei.liu2@citrix.com>
Date: Mon, 2 Feb 2015 19:57:13 +0000
Subject: [PATCH OSSTEST v6] mfi-common, make-flight: create XSM test jobs
Cc: ian.campbell@citrix.com, ian.jackson@eu.citrix.com

Duplicate Debian PV and HVM test jobs for XSM testing.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
---
Changes in v6:
1. Skip generating xsm job for different platforms.
2. Use "xsms".
3. Reformat some long lines.
---
 make-flight | 53 +++++++++++++++++++++++++++++++++++++++--------------
 mfi-common  | 10 ++++++++--
 2 files changed, 47 insertions(+), 16 deletions(-)

diff --git a/make-flight b/make-flight
index 0cb9b98..8ac3a87 100755
--- a/make-flight
+++ b/make-flight
@@ -207,27 +207,36 @@ do_hvm_win7_x64_tests () {
 do_hvm_debian_test_one () {
   testname=$1
   bios=$2
+  xsm=$3
+
   job_create_test test-$xenarch$kern-$dom0arch-xl$qemuu_suffix-$testname-amd64\
     test-debianhvm xl $xenarch $dom0arch $qemuu_runvar \
+    enable_xsm=$xsm                             \
     debianhvm_image=debian-7.2.0-amd64-CD-1.iso \
     bios=$bios \
     all_hostflags=$most_hostflags,hvm
 }
 
 do_hvm_debian_tests() {
+  xsms=$(xenbranch_xsm_variants)
+
   if [ $xenarch != amd64 ]; then
     return
   fi
 
   # QEMU upstream supports ovmf and seabios
   if [ "x$qemuu_suffix" == "x-qemuu" ]; then
-    do_hvm_debian_test_one ovmf ovmf
-    do_hvm_debian_test_one debianhvm seabios
+    do_hvm_debian_test_one ovmf ovmf false
+    for xsm in $xsms ; do
+      do_hvm_debian_test_one debianhvm seabios $xsm
+    done
   fi
 
   # QEMU traditional supports rombios
   if [ "x$qemuu_suffix" == "x-qemut" ]; then
-    do_hvm_debian_test_one debianhvm rombios
+    for xsm in $xsms ; do
+      do_hvm_debian_test_one debianhvm rombios $xsm
+    done
   fi
 }
 
@@ -299,19 +308,35 @@ do_passthrough_tests () {
 }
 
 do_pv_debian_tests () {
-  # Basic PV Linux test with xl
-  for platform in '' `getplatforms $xenarch` ; do
-    suffix=${platform:+-$platform}
-    hostflags=${most_hostflags}${platform:+,platform-$platform}
-
-    job_create_test test-$xenarch$kern-$dom0arch-xl$suffix test-debian xl \
-            $xenarch $dom0arch                                   \
-            $debian_runvars all_hostflags=$hostflags
+  xsms=$(xenbranch_xsm_variants)
+
+  for xsm in $xsms ; do
+    # Basic PV Linux test with xl
+    for platform in '' `getplatforms $xenarch` ; do
+
+      # xsm test is not platform specific
+      if [ x$xsm = xtrue -a x$platform != x ]; then
+          continue
+      fi
+
+      suffix=${platform:+-$platform}
+      hostflags=${most_hostflags}${platform:+,platform-$platform}
+
+      job_create_test test-$xenarch$kern-$dom0arch-xl$suffix   \
+                      test-debian xl                           \
+                      $xenarch $dom0arch                       \
+                      enable_xsm=$xsm                          \
+                      $debian_runvars all_hostflags=$hostflags
+    done
   done
 
-  job_create_test test-$xenarch$kern-$dom0arch-libvirt test-debian libvirt \
-            $xenarch $dom0arch                                       \
-            $debian_runvars all_hostflags=$most_hostflags
+  for xsm in $xsms ; do
+    job_create_test test-$xenarch$kern-$dom0arch-libvirt         \
+                    test-debian libvirt                          \
+                    $xenarch $dom0arch                           \
+                    enable_xsm=$xsm                              \
+                    $debian_runvars all_hostflags=$most_hostflags
+  done
 }
 
 test_matrix_do_one () {
diff --git a/mfi-common b/mfi-common
index ee4e635..a0603a2 100644
--- a/mfi-common
+++ b/mfi-common
@@ -271,8 +271,14 @@ job_create_test () {
   local xenarch=$1; shift
   local dom0arch=$1; shift
 
-  xenbuildjob="${bfi}build-$xenarch"
-  buildjob="${bfi}build-$dom0arch"
+  xsm_suffix=""
+  case " $* " in
+    *" enable_xsm=true "*) xsm_suffix="-xsm";
+  esac
+
+  job="$job$xsm_suffix"
+  xenbuildjob="${bfi}build-$xenarch$xsm_suffix"
+  buildjob="${bfi}build-$dom0arch$xsm_suffix"
   tsbuildjob=
 
   case "$xenbranch:$toolstack" in
-- 
1.9.1

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

* Re: [PATCH OSSTEST v6 9/9] mfi-common, make-flight: create XSM test jobs
  2015-02-04 17:02     ` Wei Liu
@ 2015-02-05 11:08       ` Ian Jackson
  2015-02-11 14:38       ` Ian Jackson
  1 sibling, 0 replies; 14+ messages in thread
From: Ian Jackson @ 2015-02-05 11:08 UTC (permalink / raw)
  To: Wei Liu; +Cc: ian.campbell, xen-devel

Wei Liu writes ("Re: [PATCH OSSTEST v6 9/9] mfi-common, make-flight: create XSM test jobs"):
> Here is the updated version:
> ---8<---
> >From 5b40b06a62ef51ad511e36bf6eb12f3e9e88a647 Mon Sep 17 00:00:00 2001
> From: Wei Liu <wei.liu2@citrix.com>
> Date: Mon, 2 Feb 2015 19:57:13 +0000
> Subject: [PATCH OSSTEST v6] mfi-common, make-flight: create XSM test jobs
> Cc: ian.campbell@citrix.com, ian.jackson@eu.citrix.com
> 
> Duplicate Debian PV and HVM test jobs for XSM testing.

Thanks,

Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>

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

* Re: [PATCH OSSTEST v6 9/9] mfi-common, make-flight: create XSM test jobs
  2015-02-04 17:02     ` Wei Liu
  2015-02-05 11:08       ` Ian Jackson
@ 2015-02-11 14:38       ` Ian Jackson
  1 sibling, 0 replies; 14+ messages in thread
From: Ian Jackson @ 2015-02-11 14:38 UTC (permalink / raw)
  To: Wei Liu; +Cc: ian.campbell, xen-devel

Wei Liu writes ("Re: [PATCH OSSTEST v6 9/9] mfi-common, make-flight: create XSM test jobs"):
> Here is the updated version:
...
> Duplicate Debian PV and HVM test jobs for XSM testing.

Thanks.  This series (v7, then) is currently in the osstest
self-push-gate.

Ian.

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

end of thread, other threads:[~2015-02-11 14:38 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-04 16:29 [PATCH OSSTEST v6 0/9] XSM test case for OSSTest Wei Liu
2015-02-04 16:29 ` [PATCH OSSTEST v6 1/9] overlay: update overlay/etc/grub.d/20_linux_xen Wei Liu
2015-02-04 16:29 ` [PATCH OSSTEST v6 2/9] ts-xen-build-prep: install checkpolicy Wei Liu
2015-02-04 16:29 ` [PATCH OSSTEST v6 3/9] ts-xen-build: build with XSM support if requested Wei Liu
2015-02-04 16:29 ` [PATCH OSSTEST v6 4/9] mfi-common: create build-$arch-xsm job Wei Liu
2015-02-04 16:29 ` [PATCH OSSTEST v6 5/9] Debian.pm: pass in XSM configuration to bootloader setup routines Wei Liu
2015-02-04 16:29 ` [PATCH OSSTEST v6 6/9] Debian.pm: load flask policy in uboot Wei Liu
2015-02-04 16:29 ` [PATCH OSSTEST v6 7/9] ts-xen-install: install Xen with XSM support if requested Wei Liu
2015-02-04 16:29 ` [PATCH OSSTEST v6 8/9] make-flight: factor out do_pv_debian_tests Wei Liu
2015-02-04 16:29 ` [PATCH OSSTEST v6 9/9] mfi-common, make-flight: create XSM test jobs Wei Liu
2015-02-04 16:47   ` Ian Jackson
2015-02-04 17:02     ` Wei Liu
2015-02-05 11:08       ` Ian Jackson
2015-02-11 14:38       ` Ian Jackson

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.