diff --git a/pkgs/by-name/ag/agrep/package.nix b/pkgs/by-name/ag/agrep/package.nix index 229f7860441b..eab2450765a7 100644 --- a/pkgs/by-name/ag/agrep/package.nix +++ b/pkgs/by-name/ag/agrep/package.nix @@ -1,7 +1,8 @@ { lib, - stdenv, fetchFromGitHub, + fetchpatch, + stdenv, }: let # This repository has numbered versions, but not Git tags. @@ -18,6 +19,29 @@ stdenv.mkDerivation { hash = "sha256-2J4bw5BVZgTEcIn9IuD5Q8/L+8tldDbToDefuxDf85g="; }; + patches = [ + # Implicit declaration of functions & implicit int + # https://github.com/Wikinaut/agrep/pull/31 + (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/Wikinaut/agrep/pull/31.patch"; + hash = "sha256-9ik2RANq12T/1vCUYTBNomzw+aJVa/LU2RsZovu3r3E="; + }) + ]; + + postPatch = '' + # agrep only doesn't includes for Linux + # Starting from gcc14, this is a compiler error + substituteInPlace checkfil.c recursiv.c \ + --replace-fail '#ifdef __APPLE__ + #include + #endif' '#include ' + + substituteInPlace newmgrep.c \ + --replace-fail '#if defined(_WIN32) || defined(__APPLE__) + #include + #endif' '#include ' + ''; + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-std=c89";