diff options
author | Jörg Thalheim <Mic92@users.noreply.github.com> | 2024-04-08 09:45:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-08 09:45:05 +0200 |
commit | 72a365b6172c9eae4fc1e0ea405715c8b0a90c19 (patch) | |
tree | 349b9aec7bac0a7d9a3ac921c6a8685d30d2a998 | |
parent | c740c98fc17401d49fbd9bae474d0919f212ea0a (diff) | |
parent | 4479cc7cff3dfe6b71f5cc4b7f5ee362f0b2cf11 (diff) |
Merge pull request #245527 from arcz/capstone-5.0
capstone: 4.0.2 -> 5.0.1
-rw-r--r-- | pkgs/development/libraries/capstone/4.nix | 35 | ||||
-rw-r--r-- | pkgs/development/libraries/capstone/default.nix | 8 | ||||
-rw-r--r-- | pkgs/development/python-modules/capstone/4.nix | 40 | ||||
-rw-r--r-- | pkgs/development/python-modules/capstone/default.nix | 4 | ||||
-rw-r--r-- | pkgs/development/python-modules/pyocd/default.nix | 4 | ||||
-rw-r--r-- | pkgs/development/tools/misc/edb/default.nix | 4 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 1 | ||||
-rw-r--r-- | pkgs/top-level/python-packages.nix | 3 |
8 files changed, 91 insertions, 8 deletions
diff --git a/pkgs/development/libraries/capstone/4.nix b/pkgs/development/libraries/capstone/4.nix new file mode 100644 index 0000000000000..dd31e9feaf621 --- /dev/null +++ b/pkgs/development/libraries/capstone/4.nix @@ -0,0 +1,35 @@ +{ lib +, stdenv +, cmake +, fetchFromGitHub +, fixDarwinDylibNames +}: + +stdenv.mkDerivation rec { + pname = "capstone"; + version = "4.0.2"; + + src = fetchFromGitHub { + owner = "capstone-engine"; + repo = "capstone"; + rev = version; + sha256 = "sha256-XMwQ7UaPC8YYu4yxsE4bbR3leYPfBHu5iixSLz05r3g="; + }; + + nativeBuildInputs = [ + cmake + ] ++ lib.optionals stdenv.isDarwin [ + fixDarwinDylibNames + ]; + + doCheck = true; + + meta = { + description = "Advanced disassembly library"; + homepage = "http://www.capstone-engine.org"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ thoughtpolice ris ]; + mainProgram = "cstool"; + platforms = lib.platforms.unix; + }; +} diff --git a/pkgs/development/libraries/capstone/default.nix b/pkgs/development/libraries/capstone/default.nix index ff33c7bd0979d..b78b007bc5978 100644 --- a/pkgs/development/libraries/capstone/default.nix +++ b/pkgs/development/libraries/capstone/default.nix @@ -7,15 +7,17 @@ stdenv.mkDerivation rec { pname = "capstone"; - version = "4.0.2"; + version = "5.0.1"; src = fetchFromGitHub { - owner = "aquynh"; + owner = "capstone-engine"; repo = "capstone"; rev = version; - sha256 = "sha256-XMwQ7UaPC8YYu4yxsE4bbR3leYPfBHu5iixSLz05r3g="; + sha256 = "sha256-kKmL5sae9ruWGu1gas1mel9qM52qQOD+zLj8cRE3isg="; }; + cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; + nativeBuildInputs = [ cmake ] ++ lib.optionals stdenv.isDarwin [ diff --git a/pkgs/development/python-modules/capstone/4.nix b/pkgs/development/python-modules/capstone/4.nix new file mode 100644 index 0000000000000..7c79cfe819428 --- /dev/null +++ b/pkgs/development/python-modules/capstone/4.nix @@ -0,0 +1,40 @@ +{ lib +, buildPythonPackage +, capstone_4 +, stdenv +, setuptools +, pythonAtLeast +}: + +buildPythonPackage { + pname = "capstone"; + inherit (capstone_4) version src; + + sourceRoot = "source/bindings/python"; + + postPatch = '' + ln -s ${capstone_4}/lib/libcapstone${stdenv.targetPlatform.extensions.sharedLibrary} prebuilt/ + ln -s ${capstone_4}/lib/libcapstone${stdenv.targetPlatform.extensions.staticLibrary} prebuilt/ + substituteInPlace setup.py --replace manylinux1 manylinux2014 + ''; + + # aarch64 only available from MacOS SDK 11 onwards, so fix the version tag. + # otherwise, bdist_wheel may detect "macosx_10_6_arm64" which doesn't make sense. + setupPyBuildFlags = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ "--plat-name" "macosx_11_0" ]; + + propagatedBuildInputs = [ setuptools ]; + + checkPhase = '' + mv capstone capstone.hidden + patchShebangs test_* + make check + ''; + + meta = with lib; { + homepage = "http://www.capstone-engine.org/"; + license = licenses.bsdOriginal; + description = "Python bindings for Capstone disassembly engine"; + maintainers = with maintainers; [ bennofs ris ]; + broken = pythonAtLeast "3.12"; # uses distutils + }; +} diff --git a/pkgs/development/python-modules/capstone/default.nix b/pkgs/development/python-modules/capstone/default.nix index be8fa4fba9f46..405dbe767da6c 100644 --- a/pkgs/development/python-modules/capstone/default.nix +++ b/pkgs/development/python-modules/capstone/default.nix @@ -17,9 +17,11 @@ buildPythonPackage rec { src = capstone.src; sourceRoot = "${src.name}/bindings/python"; + # libcapstone.a is not built with BUILD_SHARED_LIBS. For some reason setup.py + # checks if it exists but it is not really needed. Most likely a bug in setup.py. postPatch = '' ln -s ${capstone}/lib/libcapstone${stdenv.targetPlatform.extensions.sharedLibrary} prebuilt/ - ln -s ${capstone}/lib/libcapstone.a prebuilt/ + touch prebuilt/libcapstone${stdenv.targetPlatform.extensions.staticLibrary} substituteInPlace setup.py --replace manylinux1 manylinux2014 ''; diff --git a/pkgs/development/python-modules/pyocd/default.nix b/pkgs/development/python-modules/pyocd/default.nix index 19980b7c0ca21..1f09ed696da04 100644 --- a/pkgs/development/python-modules/pyocd/default.nix +++ b/pkgs/development/python-modules/pyocd/default.nix @@ -2,7 +2,7 @@ , buildPythonPackage , fetchPypi , fetchpatch -, capstone +, capstone_4 , cmsis-pack-manager , colorama , importlib-metadata @@ -54,7 +54,7 @@ buildPythonPackage rec { ]; propagatedBuildInputs = [ - capstone + capstone_4 cmsis-pack-manager colorama importlib-metadata diff --git a/pkgs/development/tools/misc/edb/default.nix b/pkgs/development/tools/misc/edb/default.nix index d6fac75190f6e..a1f9120f314c1 100644 --- a/pkgs/development/tools/misc/edb/default.nix +++ b/pkgs/development/tools/misc/edb/default.nix @@ -1,4 +1,4 @@ -{ lib, mkDerivation, fetchFromGitHub, cmake, pkg-config, boost, capstone +{ lib, mkDerivation, fetchFromGitHub, cmake, pkg-config, boost, capstone_4 , double-conversion, graphviz, qtxmlpatterns }: mkDerivation rec { @@ -15,7 +15,7 @@ mkDerivation rec { nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ boost.dev capstone double-conversion graphviz qtxmlpatterns ]; + buildInputs = [ boost.dev capstone_4 double-conversion graphviz qtxmlpatterns ]; postPatch = '' # Remove CMAKE_INSTALL_PREFIX from DEFAULT_PLUGIN_PATH otherwise the nix store path will appear twice. diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6f1a508e7625b..8fbc2701b4626 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4553,6 +4553,7 @@ with pkgs; candle = libsForQt5.callPackage ../applications/misc/candle { }; capstone = callPackage ../development/libraries/capstone { }; + capstone_4 = callPackage ../development/libraries/capstone/4.nix { }; keystone = callPackage ../development/libraries/keystone { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 761b4c71721fe..f9a53e944bdf5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1887,6 +1887,9 @@ self: super: with self; { capstone = callPackage ../development/python-modules/capstone { inherit (pkgs) capstone; }; + capstone_4 = callPackage ../development/python-modules/capstone/4.nix { + inherit (pkgs) capstone_4; + }; captcha = callPackage ../development/python-modules/captcha { }; |