From 4b35e53ffda3a94bd30d63829e9e18de86ff4ec8 Mon Sep 17 00:00:00 2001 From: Artur Cygan Date: Thu, 27 Jul 2023 13:32:16 +0200 Subject: [PATCH 1/6] capstone: 4.0.2 -> 5.0.1 --- pkgs/development/libraries/capstone/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/capstone/default.nix b/pkgs/development/libraries/capstone/default.nix index ff33c7bd0979..b78b007bc597 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 [ From 08304db4447b2b5e4dd45d9989438a8067a3918d Mon Sep 17 00:00:00 2001 From: Artur Cygan Date: Thu, 27 Jul 2023 13:32:35 +0200 Subject: [PATCH 2/6] python3Packages.capstone: 4.0.2 -> 5.0.1 --- pkgs/development/python-modules/capstone/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/capstone/default.nix b/pkgs/development/python-modules/capstone/default.nix index 55503c9f6205..6e6532f072cc 100644 --- a/pkgs/development/python-modules/capstone/default.nix +++ b/pkgs/development/python-modules/capstone/default.nix @@ -13,9 +13,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 ''; From b861ecbcd59ae2f1bfe6074cc77f7e0585a139b3 Mon Sep 17 00:00:00 2001 From: Artur Cygan Date: Thu, 27 Jul 2023 13:29:20 +0200 Subject: [PATCH 3/6] capstone_4: init at 4.0.2 --- pkgs/development/libraries/capstone/4.nix | 35 +++++++++++++++++ .../development/python-modules/capstone/4.nix | 38 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + pkgs/top-level/python-packages.nix | 3 ++ 4 files changed, 77 insertions(+) create mode 100644 pkgs/development/libraries/capstone/4.nix create mode 100644 pkgs/development/python-modules/capstone/4.nix diff --git a/pkgs/development/libraries/capstone/4.nix b/pkgs/development/libraries/capstone/4.nix new file mode 100644 index 000000000000..dd31e9feaf62 --- /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/python-modules/capstone/4.nix b/pkgs/development/python-modules/capstone/4.nix new file mode 100644 index 000000000000..3c1898949188 --- /dev/null +++ b/pkgs/development/python-modules/capstone/4.nix @@ -0,0 +1,38 @@ +{ lib +, buildPythonPackage +, capstone_4 +, stdenv +, setuptools +}: + +buildPythonPackage rec { + 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 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5d156a6715ea..3dbc91af9f7a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4616,6 +4616,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 32bbf7295f89..8e59cd5a4eb7 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1837,6 +1837,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 { }; From 96366f6f051969c24382f01e3ef2122ec86fd1f2 Mon Sep 17 00:00:00 2001 From: Artur Cygan Date: Thu, 27 Jul 2023 13:30:00 +0200 Subject: [PATCH 4/6] python3Packages.pyocd: pin capstone to 4.0.2 --- pkgs/development/python-modules/pyocd/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pyocd/default.nix b/pkgs/development/python-modules/pyocd/default.nix index 19980b7c0ca2..1f09ed696da0 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 From 9e015e03345181e6b03c2c998f90a0e1a0b181ed Mon Sep 17 00:00:00 2001 From: Artur Cygan Date: Thu, 27 Jul 2023 14:19:30 +0200 Subject: [PATCH 5/6] edb: pin capstone to 4.0.2 --- pkgs/development/tools/misc/edb/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/edb/default.nix b/pkgs/development/tools/misc/edb/default.nix index 2203863264f3..a84b02971b4d 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. From 4479cc7cff3dfe6b71f5cc4b7f5ee362f0b2cf11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Mon, 8 Apr 2024 09:19:07 +0200 Subject: [PATCH 6/6] python312.pkgs.capstone_4: mark as broken --- pkgs/development/python-modules/capstone/4.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/capstone/4.nix b/pkgs/development/python-modules/capstone/4.nix index 3c1898949188..7c79cfe81942 100644 --- a/pkgs/development/python-modules/capstone/4.nix +++ b/pkgs/development/python-modules/capstone/4.nix @@ -3,9 +3,10 @@ , capstone_4 , stdenv , setuptools +, pythonAtLeast }: -buildPythonPackage rec { +buildPythonPackage { pname = "capstone"; inherit (capstone_4) version src; @@ -34,5 +35,6 @@ buildPythonPackage rec { license = licenses.bsdOriginal; description = "Python bindings for Capstone disassembly engine"; maintainers = with maintainers; [ bennofs ris ]; + broken = pythonAtLeast "3.12"; # uses distutils }; }