grap: fix build (#350401)

This commit is contained in:
Aleksana
2024-10-29 11:11:09 +08:00
committed by GitHub
3 changed files with 83 additions and 53 deletions
+83
View File
@@ -0,0 +1,83 @@
{
lib,
stdenv,
fetchFromGitHub,
boost,
libseccomp,
flex,
swig,
bison,
cmake,
python3Packages,
makeShellWrapper,
}:
python3Packages.buildPythonApplication rec {
pname = "grap";
version = "1.3.1";
pyproject = false;
src = fetchFromGitHub {
owner = "QuoSecGmbH";
repo = "grap";
rev = "refs/tags/v${version}";
hash = "sha256-zLIKoNOdrmTyZkQGRogeKfIRk4kpG0hmeN0519SJbbo=";
};
dependencies = with python3Packages; [
setuptools
capstone
];
nativeBuildInputs = [
bison
cmake
flex
swig
makeShellWrapper
];
buildInputs = [
boost.all
libseccomp
];
strictDeps = true;
cmakeFlags = [
"-DPYTHON_SITE_DIR=${placeholder "out"}/${python3Packages.python.sitePackages}"
"../src"
];
postPatch = ''
substituteInPlace src/tools/grap-match/CMakeLists.txt --replace-fail "/usr/local/bin" "$out/bin"
substituteInPlace src/tools/grap/CMakeLists.txt --replace-fail "/usr/local/bin" "$out/bin"
substituteInPlace src/bindings/python/CMakeLists.txt --replace-fail "distutils" "setuptools._distutils"
substituteInPlace src/tools/setup.py --replace-fail "distutils.core" "setuptools"
'';
postInstall = ''
cd $out/${python3Packages.python.sitePackages}
mv pygrap.so _pygrap.so
substituteInPlace pygrap.py \
--replace-fail "import imp" "import importlib" \
--replace-fail "imp." "importlib."
'';
meta = {
description = "Define and match graph patterns within binaries";
longDescription = ''
grap takes patterns and binary files, uses a Casptone-based disassembler to obtain the control flow graphs from the binaries, then matches the patterns against them.
Patterns are user-defined graphs with instruction conditions ("opcode is xor and arg1 is eax") and repetition conditions (3 identical instructions, basic blocks...).
'';
homepage = "https://github.com/QuoSecGmbH/grap/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ s1341 ];
platforms = lib.platforms.linux;
mainProgram = "grap";
};
}
-51
View File
@@ -1,51 +0,0 @@
{ lib, stdenv, fetchFromGitHub, boost, libseccomp, flex, swig, bison, cmake, python3 }:
stdenv.mkDerivation rec {
pname = "grap";
version = "1.3.1";
src = fetchFromGitHub {
owner = "QuoSecGmbH";
repo = "grap";
rev = "v${version}";
sha256 = "1fkdi7adfffxg1k4h6r9i69i3wi93s44c1j4cvr69blxsfh0mcnc";
};
nativeBuildInputs = [
bison
cmake
flex
python3
swig
];
buildInputs = [
boost.all
libseccomp
];
strictDeps = true;
cmakeFlags = [
"-DPYTHON_SITE_DIR=$out/${python3.sitePackages}"
"../src"
];
postPatch = ''
substituteInPlace src/tools/grap-match/CMakeLists.txt --replace "/usr/local/bin" "$out/bin"
substituteInPlace src/tools/grap/CMakeLists.txt --replace "/usr/local/bin" "$out/bin"
'';
meta = with lib; {
description = "Define and match graph patterns within binaries";
longDescription = ''
grap takes patterns and binary files, uses a Casptone-based disassembler to obtain the control flow graphs from the binaries, then matches the patterns against them.
Patterns are user-defined graphs with instruction conditions ("opcode is xor and arg1 is eax") and repetition conditions (3 identical instructions, basic blocks...).
'';
homepage = "https://github.com/QuoSecGmbH/grap/";
license = licenses.mit;
maintainers = [ maintainers.s1341 ];
platforms = platforms.linux;
};
}
-2
View File
@@ -36586,8 +36586,6 @@ with pkgs;
gplates = libsForQt5.callPackage ../applications/science/misc/gplates { };
grap = callPackage ../tools/security/grap { };
gravit = callPackage ../applications/science/astronomy/gravit { };
golly = callPackage ../applications/science/misc/golly {