at master 1.4 kB view raw
1{ 2 lib, 3 stdenv, 4 bitstring, 5 buildPythonPackage, 6 buildPackages, 7 cffi, 8 fetchPypi, 9 pycparser, 10 pythonOlder, 11 setuptools, 12}: 13 14buildPythonPackage rec { 15 pname = "pyvex"; 16 version = "9.2.154"; 17 pyproject = true; 18 19 disabled = pythonOlder "3.11"; 20 21 src = fetchPypi { 22 inherit pname version; 23 hash = "sha256-a3ei2w66v18QKAofpPvDUoM42zHRHPrNQic+FE+rLKY="; 24 }; 25 26 build-system = [ setuptools ]; 27 28 dependencies = [ 29 bitstring 30 cffi 31 pycparser 32 ]; 33 34 depsBuildBuild = [ buildPackages.stdenv.cc ]; 35 36 nativeBuildInputs = [ cffi ]; 37 38 postPatch = lib.optionalString stdenv.hostPlatform.isDarwin '' 39 substituteInPlace vex/Makefile-gcc \ 40 --replace-fail '/usr/bin/ar' 'ar' 41 ''; 42 43 setupPyBuildFlags = lib.optionals stdenv.hostPlatform.isLinux [ 44 "--plat-name" 45 "linux" 46 ]; 47 48 preBuild = '' 49 export CC=${stdenv.cc.targetPrefix}cc 50 substituteInPlace pyvex_c/Makefile \ 51 --replace-fail 'AR=ar' 'AR=${stdenv.cc.targetPrefix}ar' 52 ''; 53 54 # No tests are available on PyPI, GitHub release has tests 55 # Switch to GitHub release after all angr parts are present 56 doCheck = false; 57 58 pythonImportsCheck = [ "pyvex" ]; 59 60 meta = with lib; { 61 description = "Python interface to libVEX and VEX IR"; 62 homepage = "https://github.com/angr/pyvex"; 63 license = with licenses; [ 64 bsd2 65 gpl3Plus 66 lgpl3Plus 67 ]; 68 maintainers = with maintainers; [ fab ]; 69 }; 70}