Commit 5793fb5b authored by squalus's avatar squalus
Browse files

osquery: fix build

Patch toolchain rpath manually instead of using autoPatchelfHook

Workaround for #333710

Fixes #332533
parent 615639f3
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@
, git
, perl
, python3
, stdenv
, stdenvNoCC
, ninja
, autoPatchelfHook
@@ -13,6 +14,7 @@
, jq
, removeReferencesTo
, nixosTests
, file
}:

let
@@ -50,7 +52,7 @@ let
    sha256 = opensslSha256;
  };

  toolchain = import ./toolchain-bin.nix { inherit autoPatchelfHook stdenvNoCC lib fetchzip; };
  toolchain = import ./toolchain-bin.nix { inherit stdenv lib fetchzip file; };

in

+15 −4
Original line number Diff line number Diff line
{ stdenvNoCC, lib, autoPatchelfHook, fetchzip }:
{ stdenv, lib, fetchzip, file }:
let

  version = "1.1.0";
@@ -16,21 +16,32 @@ let

in

stdenvNoCC.mkDerivation {
stdenv.mkDerivation {

  name = "osquery-toolchain-bin";

  inherit version;

  src = fetchzip dist.${stdenvNoCC.hostPlatform.system};
  src = fetchzip dist.${stdenv.hostPlatform.system};

  nativeBuildInputs = [ autoPatchelfHook ];
  nativeBuildInputs = [ file ];

  installPhase = ''
    mkdir $out
    cp -r * $out
  '';

  # autoPatchelfHook cannot be used here because of https://github.com/NixOS/nixpkgs/issues/333710
  postFixup = ''
    read -r interpreter < "$NIX_BINTOOLS"/nix-support/dynamic-linker
    for file in $(find "$out"/usr/bin -type f -executable); do
      if [[ $(file "$file") == *ELF*dynamically* ]]; then
        patchelf --interpreter "$interpreter" "$file"
        patchelf --set-rpath "$out/usr/lib" "$file"
      fi
    done
  '';

  meta = with lib; {
    description = "A LLVM-based toolchain for Linux designed to build a portable osquery";
    homepage = "https://github.com/osquery/osquery-toolchain";