summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/qemu.scm92
-rw-r--r--gnu/system/vm.scm2
2 files changed, 34 insertions, 60 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)))))
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 3dae35d776..83c9c7d01a 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -44,7 +44,7 @@
                                              #:key
                                              (linux linux-libre)
                                              (initrd qemu-initrd)
-                                             (qemu qemu-kvm/smb-shares)
+                                             (qemu qemu/smb-shares)
                                              (env-vars '())
                                              (modules '())
                                              (guile-for-build