65 lines
1.8 KiB
Nix
65 lines
1.8 KiB
Nix
|
{ lib
|
||
|
, stdenv
|
||
|
, fetchurl
|
||
|
, fetchpatch
|
||
|
, libintl
|
||
|
, texinfo
|
||
|
, buildPackages
|
||
|
, pkgsStatic
|
||
|
}:
|
||
|
|
||
|
stdenv.mkDerivation rec {
|
||
|
pname = "indent";
|
||
|
version = "2.2.13";
|
||
|
|
||
|
src = fetchurl {
|
||
|
url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
|
||
|
hash = "sha256-nmRjT8TOZ5eyBLy4iXzhT90KtIyldpb3h2fFnK5XgJU=";
|
||
|
};
|
||
|
|
||
|
patches = [
|
||
|
(fetchpatch {
|
||
|
name = "CVE-2023-40305.part-1.patch";
|
||
|
url = "https://git.savannah.gnu.org/cgit/indent.git/patch/?id=df4ab2d19e247d059e0025789ba513418073ab6f";
|
||
|
hash = "sha256-OLXBlYTdEuFK8SIsyC5Xr/hHWlvXiRqY2h79w+H5pGk=";
|
||
|
})
|
||
|
(fetchpatch {
|
||
|
name = "CVE-2023-40305.part-2.patch";
|
||
|
url = "https://git.savannah.gnu.org/cgit/indent.git/patch/?id=2685cc0bef0200733b634932ea7399b6cf91b6d7";
|
||
|
hash = "sha256-t+QF7N1aqQ28J2O8esZ2bc5K042cUuZR4MeMeuWIgPw=";
|
||
|
})
|
||
|
];
|
||
|
|
||
|
# avoid https://savannah.gnu.org/bugs/?64751
|
||
|
postPatch = ''
|
||
|
sed -E -i '/output\/else-comment-2-br(-ce)?.c/d' regression/TEST
|
||
|
sed -E -i 's/else-comment-2-br(-ce)?.c//g' regression/TEST
|
||
|
'';
|
||
|
|
||
|
makeFlags = [ "AR=${stdenv.cc.targetPrefix}ar" ];
|
||
|
|
||
|
strictDeps = true;
|
||
|
nativeBuildInputs = [ texinfo ];
|
||
|
buildInputs = [ libintl ];
|
||
|
depsBuildBuild = [ buildPackages.stdenv.cc ]; # needed when cross-compiling
|
||
|
|
||
|
env.NIX_CFLAGS_COMPILE = toString (
|
||
|
lib.optional stdenv.cc.isClang "-Wno-implicit-function-declaration"
|
||
|
++ lib.optional (stdenv.cc.isClang && lib.versionAtLeast (lib.getVersion stdenv.cc) "13") "-Wno-unused-but-set-variable"
|
||
|
);
|
||
|
|
||
|
hardeningDisable = [ "format" ];
|
||
|
|
||
|
doCheck = true;
|
||
|
|
||
|
passthru.tests.static = pkgsStatic.indent;
|
||
|
meta = {
|
||
|
homepage = "https://www.gnu.org/software/indent/";
|
||
|
description = "A source code reformatter";
|
||
|
mainProgram = "indent";
|
||
|
license = lib.licenses.gpl3Plus;
|
||
|
maintainers = [ lib.maintainers.mmahut ];
|
||
|
platforms = lib.platforms.unix;
|
||
|
};
|
||
|
}
|