64 lines
1.5 KiB
Nix
64 lines
1.5 KiB
Nix
|
{ 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 ];
|
||
|
};
|
||
|
}
|