Compare commits

..

No commits in common. "f690335d83b8f846cb6c866da86876219457cb29" and "bbc1e9899e4a15fca808ad0e726d5079b24edc29" have entirely different histories.

4 changed files with 28 additions and 27 deletions

View file

@ -7,9 +7,7 @@
outputs = { self, nixpkgs, flake-utils }:
{
overlays.default = final: prev: {
rizin-unwrapped = prev.rizin.overrideAttrs (o: {
mesonFlags = o.mesonFlags ++ [ "-Dportable=true" ];
});
rizin-unwrapped = prev.rizin;
rizin = self.packages.${prev.system}.rizin;
rizinPlugins = {
rz-ghidra = self.packages.${prev.system}.rz-ghidra;
@ -28,7 +26,6 @@
in
rec {
packages = flake-utils.lib.flattenTree {
rizin-unwrapped = pkgs.rizin-unwrapped;
rizin = pkgs.callPackage ./rizin-with-plugin-support.nix { };
rz-ghidra = pkgs.callPackage ./rz-ghidra.nix { };
jsdec = pkgs.callPackage ./jsdec.nix { };

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, meson, pkg-config, cmake, ninja, openssl, rizin-unwrapped }: stdenv.mkDerivation {
{ lib, stdenv, fetchFromGitHub, meson, pkg-config, cmake, ninja, openssl, rizin }: stdenv.mkDerivation {
name = "jsdec";
src = fetchFromGitHub {
owner = "rizinorg";
@ -10,6 +10,6 @@
cd p
'';
mesonFlags = [ "-Djsc_folder=/build/source/" ];
buildInputs = [ rizin-unwrapped openssl ];
buildInputs = [ rizin openssl ];
nativeBuildInputs = [ meson pkg-config ninja ];
}

View file

@ -1,23 +1,27 @@
{ rizin-unwrapped, rizinPlugins, symlinkJoin }:
{ rizin-unwrapped, rizinPlugins, makeWrapper, symlinkJoin }:
let
makeRizinPackageWithPlugins = plugins:
symlinkJoin
{
let
plugins_path = symlinkJoin {
name = "rizin-plugins";
paths = plugins;
};
in
symlinkJoin {
name = "rizin";
paths = [ rizin-unwrapped ] ++ plugins;
paths = [ rizin-unwrapped ];
buildInputs = [makeWrapper];
postBuild = ''
cd $out/bin/
for file in ./*; do
# Rizin loads plugins from a path relative to /proc/self/exe.
# /proc/self/exe resolves symlinks so we need to copy the resulting binary.
# This is obviously not ideal, but the binaries weight only a few kibibytes
# and nix can replace the copy with a hardlink automatically, via nix store optimize
cp --remove-destination "$(readlink "$file")" "$file"
wrapProgramArgs=()
for plugin in ${plugins_path}/lib/rizin/plugins/*; do
wrapProgramArgs+=("--add-flags")
wrapProgramArgs+=("-l")
wrapProgramArgs+=("--add-flags")
wrapProgramArgs+=("$plugin")
done
wrapProgram $out/bin/rizin ''${wrapProgramArgs[*]}
'';
} // {
withPlugins = p: makeRizinPackageWithPlugins (plugins ++ (p rizinPlugins));
};
in
makeRizinPackageWithPlugins [ ]
in makeRizinPackageWithPlugins []

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchgit, pkg-config, cmake, openssl, rizin-unwrapped }: stdenv.mkDerivation {
{ lib, stdenv, fetchgit, pkg-config, cmake, openssl, rizin }: stdenv.mkDerivation {
name = "rz-ghidra";
src = fetchgit {
url = "https://github.com/rizinorg/rz-ghidra.git";
@ -7,6 +7,6 @@
fetchSubmodules = true;
};
mesonFlags = [ "-Djsc_folder=.." ];
buildInputs = [ rizin-unwrapped cmake openssl ];
buildInputs = [ rizin cmake openssl ];
nativeBuildInputs = [ pkg-config ];
}