1. 06 11月, 2017 2 次提交
    • D
      build: allow automatic git submodule updates to be disabled · f62bbee5
      Daniel P. Berrange 提交于
      Some people building QEMU use VPATH builds where the source directory is on a
      read-only volume. In such a case 'scripts/git-submodules.sh update' will always
      fail and users are required to run it manually themselves on their original
      writable source directory.
      
      While this is already supported, it is nice to give users a command line flag
      to configure to permanently disable automatic submodule updates, as it means
      they won't get hard to diagnose failures from git-submodules.sh at an arbitrary
      later date.
      
      This patch thus introduces a flag '--disable-git-update' which will prevent
      'make' from ever running 'scripts/git-submodules.sh update'. It will still run
      the 'status' command to determine if a submodule update is needed, but when it
      does this it'll simply stop and print a message instructing the developer what
      todo. eg
      
      $ ./configure  --target-list=x86_64-softmmu --disable-git-update
      ...snip...
      
      $ make
        GEN     config-host.h
        GEN     trace/generated-tcg-tracers.h
        GEN     trace/generated-helpers-wrappers.h
        GEN     trace/generated-helpers.h
        GEN     trace/generated-helpers.c
        GEN     module_block.h
      
      GIT submodule checkout is out of date. Please run
        scripts/git-submodule.sh update ui/keycodemapdb
      from the source directory checkout /home/berrange/src/virt/qemu
      
      make: *** [Makefile:31: git-submodule-update] Error 1
      Tested-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      f62bbee5
    • D
      build: allow setting a custom GIT binary for transparent proxying · cc84d63a
      Daniel P. Berrange 提交于
      Some users can't run a bare 'git' command, due to need for a transparent
      proxying solution such as 'tsocks'. This adds an argument to configure to
      let users specify such a thing:
      
        ./configure --with-git="tsocks git"
      
      The submodule script is also updated to give the user a hint about using this
      flag, if we fail to checkout modules.
      Tested-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      cc84d63a
  2. 26 10月, 2017 1 次提交
  3. 19 10月, 2017 1 次提交
    • A
      build: Fix dtc-checkout race condition in Makefile · 00525864
      Aaron Lindsay 提交于
      This was introduced by:
          commit aef45d51
          Author: Daniel P. Berrange <berrange@redhat.com>
          Date:   Fri Sep 29 11:11:56 2017 +0100
      
      	build: automatically handle GIT submodule checkout for dtc
      
      On my system, I see the following with a fresh clone:
      
      % ./configure --disable-gtk --target-list=aarch64-softmmu
      % make -j8
        GEN     aarch64-softmmu/config-devices.mak.tmp
        GEN     config-host.h
      mkdir -p dtc/libfdt
        GIT     ui/keycodemapdb dtc
      mkdir -p dtc/tests
        GEN     qemu-options.def
      [snip]
        GEN     migration/trace.h
      make: *** [git-submodule-update] Error 1
      make: *** Waiting for unfinished jobs....
      
      Upon closer inspection, the root cause of the error is:
      
      % git submodule update --init ui/keycodemapdb dtc
      fatal: destination path 'dtc' already exists and is not an empty directory.
      Clone of 'git://git.qemu-project.org/dtc.git' into submodule path 'dtc' failed
      
      This patch fixes this race condition by forcing the 'dtc/%' rule which caused
      'dtc' to be non-empty to wait on '.git-submodule-status'.
      Signed-off-by: NAaron Lindsay <alindsay@codeaurora.org>
      Reviewed-by: NDaniel P. Berrange <berrange@redhat.com>
      Acked-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Message-id: 1508352023-28591-1-git-send-email-alindsay@codeaurora.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      00525864
  4. 17 10月, 2017 2 次提交
  5. 16 10月, 2017 4 次提交
    • G
      tools: add qemu-keymap · 6a021536
      Gerd Hoffmann 提交于
      qemu-keymap generates qemu reverse keymaps from xkb keymaps,
      which can be used with the qemu "-k" command line switch.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      Message-id: 20171005153330.19210-2-kraxel@redhat.com
      6a021536
    • D
      ui: convert common input code to keycodemapdb · bcd5ac9b
      Daniel P. Berrange 提交于
      Replace the number_to_qcode, qcode_to_number and linux_to_qcode
      tables with automatically generated tables.
      
      Missing entries in linux_to_qcode now fixed:
      
        KEY_LINEFEED -> Q_KEY_CODE_LF
        KEY_KPEQUAL -> Q_KEY_CODE_KP_EQUALS
        KEY_COMPOSE -> Q_KEY_CODE_COMPOSE
        KEY_AGAIN -> Q_KEY_CODE_AGAIN
        KEY_PROPS -> Q_KEY_CODE_PROPS
        KEY_UNDO -> Q_KEY_CODE_UNDO
        KEY_FRONT -> Q_KEY_CODE_FRONT
        KEY_COPY -> Q_KEY_CODE_COPY
        KEY_OPEN -> Q_KEY_CODE_OPEN
        KEY_PASTE -> Q_KEY_CODE_PASTE
        KEY_CUT -> Q_KEY_CODE_CUT
        KEY_HELP -> Q_KEY_CODE_HELP
        KEY_MEDIA -> Q_KEY_CODE_MEDIASELECT
      
      In addition, some fixes:
      
       - KEY_PLAYPAUSE now maps to Q_KEY_CODE_AUDIOPLAY, instead of
         KEY_PLAYCD. KEY_PLAYPAUSE is defined across almost all scancodes
         sets, while KEY_PLAYCD only appears in AT set1, so the former is
         a more useful mapping.
      
      Missing entries in qcode_to_number now fixed:
      
        Q_KEY_CODE_AGAIN -> 0x85
        Q_KEY_CODE_PROPS -> 0x86
        Q_KEY_CODE_UNDO -> 0x87
        Q_KEY_CODE_FRONT -> 0x8c
        Q_KEY_CODE_COPY -> 0xf8
        Q_KEY_CODE_OPEN -> 0x64
        Q_KEY_CODE_PASTE -> 0x65
        Q_KEY_CODE_CUT -> 0xbc
        Q_KEY_CODE_LF -> 0x5b
        Q_KEY_CODE_HELP -> 0xf5
        Q_KEY_CODE_COMPOSE -> 0xdd
        Q_KEY_CODE_KP_EQUALS -> 0x59
        Q_KEY_CODE_MEDIASELECT -> 0xed
      
      In addition, some fixes:
      
       - Q_KEY_CODE_MENU was incorrectly mapped to the compose
         scancode (0xdd) and is now mapped to 0x9e
       - Q_KEY_CODE_FIND was mapped to 0xe065 (Search) instead
         of to 0xe041 (Find)
       - Q_KEY_CODE_HIRAGANA was mapped to 0x70 (Katakanahiragana)
         instead of of 0x77 (Hirigana)
       - Q_KEY_CODE_PRINT was mapped to 0xb7 which is not a defined
         scan code in AT set 1, it is now mapped to 0x54 (sysrq)
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      Message-id: 20170929101201.21039-5-berrange@redhat.com
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      bcd5ac9b
    • D
      ui: add keycodemapdb repository as a GIT submodule · 92712822
      Daniel P. Berrange 提交于
      The https://gitlab.com/keycodemap/keycodemapdb/ repo contains a
      data file mapping between all the different scancode/keycode/keysym
      sets that are known, and a tool to auto-generate lookup tables for
      different combinations.
      
      It is used by GTK-VNC, SPICE-GTK and libvirt for mapping keys.
      Using it in QEMU will let us replace many hand written lookup
      tables with auto-generated tables from a master data source,
      reducing bugs. Adding new QKeyCodes will now only require the
      master table to be updated, all ~20 other tables will be
      automatically updated to follow.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      Message-id: 20170929101201.21039-4-berrange@redhat.com
      
      [ kraxel: fix build ]
      [ kraxel: switch repo to qemu.git mirror ]
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      92712822
    • D
      build: automatically handle GIT submodule checkout for dtc · aef45d51
      Daniel P. Berrange 提交于
      Currently if DTC is required by configure and not available in the host
      OS install, we exit with an error message telling the user to checkout a
      git submodule or install the library.
      
      This introduces automatic handling of the git submodule checkout process
      and enables it for dtc. This only runs if building from GIT, so users of
      release tarballs still need the system library install. The current state
      of the git checkout is stashed in .git-submodule-status, and a helper
      program is used to determine if this state matches the desired submodule
      state. A dependency against 'Makefile' ensures that the submodule state
      is refreshed at the start of the build process
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      Message-id: 20170929101201.21039-2-berrange@redhat.com
      
      [ kraxel: use /bin/sh not bash for scripts/git-submodule.sh ]
      [ kraxel: fix Makefile dependencies ]
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      
      [fixup] Makefile dep
      aef45d51
  6. 11 10月, 2017 2 次提交
  7. 26 9月, 2017 1 次提交
  8. 23 9月, 2017 2 次提交
    • P
      scsi: add multipath support to qemu-pr-helper · fe8fc5ae
      Paolo Bonzini 提交于
      Proper support of persistent reservation for multipath devices requires
      communication with the multipath daemon, so that the reservation is
      registered and applied when a path comes up.  The device mapper
      utilities provide a library to do so; this patch makes qemu-pr-helper.c
      detect multipath devices and, when one is found, delegate the operation
      to libmpathpersist.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      fe8fc5ae
    • P
      scsi: build qemu-pr-helper · b855f8d1
      Paolo Bonzini 提交于
      Introduce a privileged helper to run persistent reservation commands.
      This lets virtual machines send persistent reservations without using
      CAP_SYS_RAWIO or out-of-tree patches.  The helper uses Unix permissions
      and SCM_RIGHTS to restrict access to processes that can access its socket
      and prove that they have an open file descriptor for a raw SCSI device.
      
      The next patch will also correct the usage of persistent reservations
      with multipath devices.
      
      It would also be possible to support for Linux's IOC_PR_* ioctls in
      the future, to support NVMe devices.  For now, however, only SCSI is
      supported.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      b855f8d1
  9. 22 9月, 2017 1 次提交
  10. 19 9月, 2017 1 次提交
  11. 13 9月, 2017 1 次提交
    • G
      pixman: drop submodule · c12b6d70
      Gerd Hoffmann 提交于
      Drop pixman submodule and support for the "internal" pixman build.
      pixman should be reasonably well established meanwhile so we don't
      need the fallback submodule any more.  While being at it also drop
      some #ifdefs for pixman versions older than what we require in
      configure anyway.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      Message-id: 20170905140116.28181-2-kraxel@redhat.com
      c12b6d70
  12. 04 9月, 2017 9 次提交
  13. 15 8月, 2017 1 次提交
  14. 31 7月, 2017 1 次提交
  15. 20 7月, 2017 1 次提交
  16. 14 7月, 2017 1 次提交
    • C
      pc-bios/s390: add s390-netboot.img · 6c5359e1
      Christian Borntraeger 提交于
      It's already possible to do a network boot of an s390x guest with an
      external netboot image based on a Linux installation, but it would
      be much more convenient if the s390-ccw firmware supported network
      booting right out of the box, without the need to assemble such an
      external image first.
      
      This is an s390-netboot.img that can be used for network booting.
      You can download a combined kernel + initrd image via TFTP
      by starting QEMU for example with:
      
       qemu-system-s390x ... -device virtio-net,netdev=n1,bootindex=1 \
             -netdev user,id=n1,tftp=/path/to/tftp,bootfile=kernel.img
      
      Note that this version does not support downloading via config
      files (i.e. pxelinux config files or .INS config files) yet. This
      will be added later.
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      6c5359e1
  17. 15 6月, 2017 4 次提交
    • F
      vhost-user-scsi: Introduce a vhost-user-scsi sample application · 49cc0340
      Felipe Franciosi 提交于
      This commit introduces a vhost-user-scsi backend sample application. It
      must be linked with libiscsi and libvhost-user.
      
      To use it, compile with:
        $ make vhost-user-scsi
      
      And run as follows:
        $ ./vhost-user-scsi -u vus.sock -i iscsi://uri_to_target/
        $ qemu-system-x86_64 --enable-kvm -m 512 \
            -object memory-backend-file,id=mem,size=512m,share=on,mem-path=guestmem \
            -numa node,memdev=mem \
            -chardev socket,id=vhost-user-scsi,path=vus.sock \
            -device vhost-user-scsi-pci,chardev=vhost-user-scsi \
      
      The application is currently limited at one LUN only and it processes
      requests synchronously (therefore only achieving QD1). The purpose of
      the code is to show how a backend can be implemented and to test the
      vhost-user-scsi Qemu implementation.
      
      If a different instance of this vhost-user-scsi application is executed
      at a remote host, a VM can be live migrated to such a host.
      Signed-off-by: NFelipe Franciosi <felipe@nutanix.com>
      Message-Id: <1488479153-21203-5-git-send-email-felipe@nutanix.com>
      49cc0340
    • P
      qemu-doc: include version number · 44cb280d
      Paolo Bonzini 提交于
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      44cb280d
    • P
      docs: create interop/ subdirectory · d59157ea
      Paolo Bonzini 提交于
      This is for the future interoperability & management guide.  It includes
      the QAPI docs, including the automatically generated ones, other socket
      protocols (vhost-user, VNC), and the qcow2 file format.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      d59157ea
    • T
      Makefile: Do not generate files if "configure" has not been run yet · 428952cf
      Thomas Huth 提交于
      When doing a "make -j10" in the vanilla QEMU source tree (without
      running "configure" first), the Makefile currently generates two
      files already, qemu-version.h and qemu-options.def. This should not
      happen, so let's only build the generated files if config-host.mak
      is available (i.e. "configure" has been run already).
      Signed-off-by: NThomas Huth <thuth@redhat.com>
      Message-Id: <1496926799-13040-1-git-send-email-thuth@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      428952cf
  18. 11 5月, 2017 1 次提交
  19. 21 4月, 2017 1 次提交
    • X
      trace: Put all trace.o into libqemuutil.a · 3d1baccb
      Xu, Anthony 提交于
      Currently all trace.o are linked into qemu-system, qemu-img,
      qemu-nbd, qemu-io etc., even the corresponding components
      are not included.
      Put all trace.o into libqemuutil.a that the linker would only pull in .o
      files containing symbols that are actually referenced by the
      program.
      
      Signed-off -by: Anthony Xu <anthony.xu@intel.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      3d1baccb
  20. 21 3月, 2017 1 次提交
  21. 19 3月, 2017 1 次提交
  22. 16 3月, 2017 1 次提交
    • M
      qapi: Clean up build of generated documentation · bd7f9747
      Markus Armbruster 提交于
      Rename intermediate qemu-qapi.texi to qemu-qmp-qapi.texi to match its
      user qemu-qmp-ref.texi, just like qemu-ga-qapi.texi matches
      qemu-ga-ref.texi.
      
      Build the intermediate .texi next to the sources and the final output
      in docs/ instead of dumping them into the build root.
      
      Fix version.texi dependencies so that only the targets that actually
      need it depend on it.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Message-Id: <1489582656-31133-8-git-send-email-armbru@redhat.com>
      bd7f9747