summary refs log tree commit diff
path: root/gnu/packages/qemu.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-08-16 23:55:51 +0200
committerLudovic Courtès <ludo@gnu.org>2013-08-16 23:55:51 +0200
commit50731c51a4642e723829da7b76d1333e2a225151 (patch)
treedf2d1fc585d720e23f50672f59aacaee4870ac08 /gnu/packages/qemu.scm
parente928da09c99fab6c2b9b7ed869f073bc8b03085f (diff)
downloadguix-50731c51a4642e723829da7b76d1333e2a225151.tar.gz
gnu: Remove QEMU-KVM, which is no longer needed.
* gnu/packages/qemu.scm (qemu-kvm): Remove.
  (qemu): Incorporate parts of QEMU-KVM that used to be inherited.
  (qemu-kvm/smb-shares): Rename to...
  (qemu/smb-shares): ... this.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Adjust
  accordingly.
Diffstat (limited to 'gnu/packages/qemu.scm')
-rw-r--r--gnu/packages/qemu.scm92
1 files changed, 33 insertions, 59 deletions
diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm
index 1bb95840f0..60cbc8fcfb 100644
--- a/gnu/packages/qemu.scm
+++ b/gnu/packages/qemu.scm
@@ -37,17 +37,18 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages perl))
 
-(define-public qemu-kvm
+(define-public qemu
+  ;; Since QEMU 1.3, it incorporates KVM support formerly found in QEMU-KVM.
   (package
-    (name "qemu-kvm")
-    (version "1.2.0")
+    (name "qemu")
+    (version "1.5.1")
     (source (origin
              (method url-fetch)
-             (uri (string-append "mirror://sourceforge/kvm/qemu-kvm/"
-                                 version "/qemu-kvm-" version ".tar.gz"))
+             (uri (string-append "http://wiki.qemu-project.org/download/qemu-"
+                                 version ".tar.bz2"))
              (sha256
               (base32
-               "018vb5nmk2fsm143bs2bl2wirhasd4b10d7jchl32zik4inbk2p9"))))
+               "1s7316pgizpayr472la8p8a4vhv7ymmzd5qlbkmq6y9q5zpa25ac"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (alist-replace
@@ -59,6 +60,10 @@
                          (samba (assoc-ref inputs "samba")))
                      (setenv "SHELL" (which "bash"))
 
+                     ;; While we're at it, patch for tests.
+                     (substitute* "tests/libqtest.c"
+                       (("/bin/sh") (which "sh")))
+
                      ;; The binaries need to be linked against -lrt.
                      (setenv "LDFLAGS" "-lrt")
                      (zero?
@@ -68,6 +73,7 @@
                                (string-append "--smbd=" samba
                                               "/sbin/smbd")))))
                  %standard-phases)))
+
     (inputs                                       ; TODO: Add optional inputs.
      `(;; ("mesa" ,mesa)
        ;; ("libaio" ,libaio)
@@ -86,66 +92,34 @@
        ("zlib" ,zlib)
        ("attr" ,attr)
        ("samba" ,samba)))                         ; an optional dependency
-    (home-page "http://www.linux-kvm.org/")
-    (synopsis
-     "Virtualization for Linux on x86 hardware containing virtualization extensions")
-    (description
-     "KVM (for Kernel-based Virtual Machine) is a full virtualization solution
-for Linux on x86 hardware containing virtualization extensions (Intel VT or
-AMD-V).  It consists of a loadable kernel module, kvm.ko, that provides the
-core virtualization infrastructure and a processor specific module,
-kvm-intel.ko or kvm-amd.ko. KVM also requires a modified QEMU although work is
-underway to get the required changes upstream.")
-
-    ;; Many files are GPLv2+, but some are GPLv2-only---e.g., `memory.c'.
-    (license gpl2)))
-
-(define-public qemu-kvm/smb-shares
-  ;; A patched QEMU-KVM where `-net smb' yields two shares instead of one: one
-  ;; for the store, and another one for exchanges with the host.
-  (package (inherit qemu-kvm)
-    (name "qemu-kvm-with-multiple-smb-shares")
-    (inputs `(,@(package-inputs qemu-kvm)
-              ("patch/smb-shares"
-               ,(search-patch "qemu-multiple-smb-shares.patch"))))
-    (arguments
-     `(#:patches (list (assoc-ref %build-inputs "patch/smb-shares"))
-       ,@(package-arguments qemu-kvm)))))
-
-(define-public qemu
-  ;; The real one, with a complete target list.
-  (package (inherit qemu-kvm)
-    (name "qemu")
-    (version "1.5.1")
-    (location (source-properties->location (current-source-location)))
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "http://wiki.qemu-project.org/download/qemu-"
-                                 version ".tar.bz2"))
-             (sha256
-              (base32
-               "1s7316pgizpayr472la8p8a4vhv7ymmzd5qlbkmq6y9q5zpa25ac"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments qemu-kvm)
-       ((#:phases phases)
-        `(alist-cons-before
-          'build 'pre-build
-          (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "tests/libqtest.c"
-              (("/bin/sh") (which "sh"))))
-          ,phases))))
     (native-inputs `(("perl" ,perl)))
+
     (home-page "http://www.qemu-project.org")
+    (synopsis "Machine emulator and virtualizer")
     (description
-     "QEMU is a generic and open source machine emulator and virtualizer.
+     "QEMU is a generic machine emulator and virtualizer.
 
 When used as a machine emulator, QEMU can run OSes and programs made for one
-machine (e.g. an ARM board) on a different machine
-(e.g. your own PC).  By using dynamic translation, it achieves very good
-performance.
+machine (e.g. an ARM board) on a different machine---e.g., your own PC.  By
+using dynamic translation, it achieves very good performance.
 
 When used as a virtualizer, QEMU achieves near native performances by
 executing the guest code directly on the host CPU.  QEMU supports
 virtualization when executing under the Xen hypervisor or using
 the KVM kernel module in Linux.  When using KVM, QEMU can virtualize x86,
-server and embedded PowerPC, and S390 guests.")))
+server and embedded PowerPC, and S390 guests.")
+
+    ;; Many files are GPLv2+, but some are GPLv2-only---e.g., `memory.c'.
+    (license gpl2)))
+
+(define-public qemu/smb-shares
+  ;; A patched QEMU where `-net smb' yields two shares instead of one: one for
+  ;; the store, and another one for exchanges with the host.
+  (package (inherit qemu)
+    (name "qemu-with-multiple-smb-shares")
+    (inputs `(,@(package-inputs qemu)
+              ("patch/smb-shares"
+               ,(search-patch "qemu-multiple-smb-shares.patch"))))
+    (arguments
+     `(#:patches (list (assoc-ref %build-inputs "patch/smb-shares"))
+       ,@(package-arguments qemu)))))