about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLassulus <github@lassul.us>2024-02-05 14:09:04 +0700
committerGitHub <noreply@github.com>2024-02-05 14:09:04 +0700
commitc3c03f17ee9b9cdc823d7c1251ff3f60ccdd75f7 (patch)
tree6a672677a5aca0263c085809b5b0627fea49c890
parente1439dcd8acac8026436c36d6709e2f85e7150b5 (diff)
parent11749a4e25e609832eaad35da94a0467469627d1 (diff)
downloadnixlib-c3c03f17ee9b9cdc823d7c1251ff3f60ccdd75f7.tar
nixlib-c3c03f17ee9b9cdc823d7c1251ff3f60ccdd75f7.tar.gz
nixlib-c3c03f17ee9b9cdc823d7c1251ff3f60ccdd75f7.tar.bz2
nixlib-c3c03f17ee9b9cdc823d7c1251ff3f60ccdd75f7.tar.lz
nixlib-c3c03f17ee9b9cdc823d7c1251ff3f60ccdd75f7.tar.xz
nixlib-c3c03f17ee9b9cdc823d7c1251ff3f60ccdd75f7.tar.zst
nixlib-c3c03f17ee9b9cdc823d7c1251ff3f60ccdd75f7.zip
Merge pull request #285760 from DavHau/add-qemu-python
python3Packages.qemu: init at 0.6.1.0a1
-rw-r--r--maintainers/maintainer-list.nix6
-rw-r--r--pkgs/development/python-modules/qemu/default.nix63
-rw-r--r--pkgs/top-level/all-packages.nix7
-rw-r--r--pkgs/top-level/python-packages.nix12
4 files changed, 86 insertions, 2 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 72218bf38f7d..f6933978eca4 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -4657,6 +4657,12 @@
     githubId = 30475873;
     name = "Andrei Hava";
   };
+  devplayer0 = {
+    email = "dev@nul.ie";
+    github = "devplayer0";
+    githubId = 1427254;
+    name = "Jack O'Sullivan";
+  };
   devusb = {
     email = "mhelton@devusb.us";
     github = "devusb";
diff --git a/pkgs/development/python-modules/qemu/default.nix b/pkgs/development/python-modules/qemu/default.nix
new file mode 100644
index 000000000000..ba730548bca8
--- /dev/null
+++ b/pkgs/development/python-modules/qemu/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, qemu
+, setuptools
+, fuseSupport ? false, fusepy
+, tuiSupport ? false, urwid, urwid-readline, pygments
+}:
+
+buildPythonPackage {
+  pname = "qemu";
+  version = "0.6.1.0a1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.6";
+
+  src = qemu.src;
+
+  prePatch = ''
+    cd python
+  '';
+
+  # ensure the version matches qemu-xxx/python/VERSION
+  preConfigure = ''
+    if [ "$version" != "$(cat ./VERSION)" ]; then
+      echo "The nix package version attribute is not in sync with the QEMU source version" > /dev/stderr
+      echo "Please update the version attribute in the nix expression of python3Packages.qemu to '$version'" > /dev/stderr
+      exit 1
+    fi
+  '';
+
+  buildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [ ]
+    ++ lib.optionals fuseSupport [ fusepy ]
+    ++ lib.optionals tuiSupport [ urwid urwid-readline pygments ];
+
+  # Project requires avocado-framework for testing, therefore replacing check phase
+  checkPhase = ''
+    for bin in $out/bin/*; do
+      $bin --help
+    done
+  '';
+
+  pythonImportsCheck = [ "qemu" ];
+
+  preFixup =
+    (lib.optionalString (! tuiSupport) ''
+      rm $out/bin/qmp-tui
+    '')
+    + (lib.optionalString (! fuseSupport) ''
+      rm $out/bin/qom-fuse
+    '');
+
+  meta = with lib; {
+    homepage = "http://www.qemu.org/";
+    description = "Python tooling used by the QEMU project to build, configure, and test QEMU";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ devplayer0 davhau ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4a76ca2721f1..c4c173ccab16 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -34736,6 +34736,13 @@ with pkgs;
     inherit (darwin) sigtool;
   };
 
+  qemu-python-utils = python3Packages.toPythonApplication (
+    python3Packages.qemu.override {
+      fuseSupport = true;
+      tuiSupport = true;
+    }
+  );
+
   qemu-utils = qemu.override {
     toolsOnly = true;
   };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 45683f15df3e..ea3544c6d20b 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2389,7 +2389,9 @@ self: super: with self; {
 
   cose = callPackage ../development/python-modules/cose { };
 
-  cot = callPackage ../development/python-modules/cot { };
+  cot = callPackage ../development/python-modules/cot {
+    qemu = pkgs.qemu;
+  };
 
   cov-core = callPackage ../development/python-modules/cov-core { };
 
@@ -5008,7 +5010,9 @@ self: super: with self; {
 
   guessit = callPackage ../development/python-modules/guessit { };
 
-  guestfs = callPackage ../development/python-modules/guestfs { };
+  guestfs = callPackage ../development/python-modules/guestfs {
+    qemu = pkgs.qemu;
+  };
 
   gudhi = callPackage ../development/python-modules/gudhi { };
 
@@ -12284,6 +12288,10 @@ self: super: with self; {
 
   qgrid = callPackage ../development/python-modules/qgrid { };
 
+  qemu = callPackage ../development/python-modules/qemu {
+    qemu = pkgs.qemu;
+  };
+
   qiling = callPackage ../development/python-modules/qiling { };
 
   qimage2ndarray = callPackage ../development/python-modules/qimage2ndarray { };