nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 meson,
6 ninja,
7 pkg-config,
8 python3,
9 qtbase,
10 qttools,
11 radare2,
12 wrapQtAppsHook,
13}:
14
15let
16 pname = "iaito";
17 version = "5.9.9";
18
19 main_src = fetchFromGitHub rec {
20 owner = "radareorg";
21 repo = pname;
22 tag = version;
23 hash = "sha256-y8Mfd7BmnMFJ9mpGKVL3i4VRxrzJ1gXaSsUQIFB9Wd4=";
24 name = repo;
25 };
26
27 translations_src = fetchFromGitHub rec {
28 owner = "radareorg";
29 repo = "iaito-translations";
30 rev = "e66b3a962a7fc7dfd730764180011ecffbb206bf";
31 hash = "sha256-6NRTZ/ydypsB5TwbivvwOH9TEMAff/LH69hCXTvMPp8=";
32 name = repo;
33 };
34in
35stdenv.mkDerivation (finalAttrs: {
36 inherit pname version;
37
38 srcs = [
39 main_src
40 translations_src
41 ];
42 sourceRoot = "${main_src.name}/src";
43
44 postUnpack = ''
45 chmod -R u+w ${translations_src.name}
46 '';
47
48 postPatch = ''
49 substituteInPlace common/ResourcePaths.cpp \
50 --replace "/app/share/iaito/translations" "$out/share/iaito/translations"
51 '';
52
53 nativeBuildInputs = [
54 meson
55 ninja
56 pkg-config
57 python3
58 qttools
59 wrapQtAppsHook
60 ];
61
62 buildInputs = [
63 qtbase
64 radare2
65 ];
66
67 postBuild = ''
68 pushd ../../../${translations_src.name}
69 make build -j$NIX_BUILD_CORES PREFIX=$out
70 popd
71 '';
72
73 installPhase = ''
74 runHook preInstall
75
76 install -m755 -Dt $out/bin iaito
77 install -m644 -Dt $out/share/metainfo ../org.radare.iaito.appdata.xml
78 install -m644 -Dt $out/share/applications ../org.radare.iaito.desktop
79 install -m644 -Dt $out/share/pixmaps ../img/org.radare.iaito.svg
80
81 pushd ../../../${translations_src.name}
82 make install -j$NIX_BUILD_CORES PREFIX=$out
83 popd
84
85 runHook postInstall
86 '';
87
88 meta = with lib; {
89 description = "Official Qt frontend of radare2";
90 longDescription = ''
91 iaito is the official graphical interface for radare2, a libre reverse
92 engineering framework.
93 '';
94 homepage = "https://radare.org/n/iaito.html";
95 changelog = "https://github.com/radareorg/iaito/releases/tag/${finalAttrs.version}";
96 license = licenses.gpl3Only;
97 maintainers = with maintainers; [ azahi ];
98 mainProgram = "iaito";
99 platforms = platforms.linux;
100 };
101})