mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-22 05:33:23 +00:00
ebaa226853
* elk7: 7.11.1 -> 7.16.1 * nixosTests.elk: Improve reliability and compatibility with ELK 7.x - Use comparisons in jq instead of grepping - Match for `.hits.total.value` if version >= 7, otherwise it always passes - Make curl fail if requests fails * nixos/filebeat: Add initial module and test Filebeat is an open source file harvester, mostly used to fetch logs files and feed them into logstash. This module can be used instead of journalbeat if used with `filebeat7` and configured with the `journald` input. * python3Packages.parsedmarc.tests: Fix breakage - Don't use the deprecated elasticsearch7-oss package - Improve jq query robustness and add tracing * rl-2205: Note the addition of the filebeat service * elk6: 6.8.3 -> 6.8.21 The latest version includes a fix for CVE-2021-44228. * nixos/journalbeat: Add a loose dependency on elasticsearch Avoid unnecssary back-off when elasticsearch is running on the same host.
74 lines
2.1 KiB
Nix
74 lines
2.1 KiB
Nix
{ elk6Version
|
|
, enableUnfree ? true
|
|
, lib, stdenv
|
|
, fetchurl
|
|
, makeWrapper
|
|
, jre_headless
|
|
, util-linux, gnugrep, coreutils
|
|
, autoPatchelfHook
|
|
, zlib
|
|
}:
|
|
|
|
with lib;
|
|
|
|
stdenv.mkDerivation (rec {
|
|
version = elk6Version;
|
|
pname = "elasticsearch${optionalString (!enableUnfree) "-oss"}";
|
|
|
|
src = fetchurl {
|
|
url = "https://artifacts.elastic.co/downloads/elasticsearch/${pname}-${version}.tar.gz";
|
|
sha256 =
|
|
if enableUnfree
|
|
then "1hkcgqsrnnx3zjpgar4424mxfaxrx0zbrp7n7n0dlbhphshwnkmd"
|
|
else "1pglg60aigy31xmpfchnxcc04nd18zwc3av4m0kyp00yk5mnlyqm";
|
|
};
|
|
|
|
patches = [ ./es-home-6.x.patch ];
|
|
|
|
postPatch = ''
|
|
substituteInPlace bin/elasticsearch-env --replace \
|
|
"ES_CLASSPATH=\"\$ES_HOME/lib/*\"" \
|
|
"ES_CLASSPATH=\"$out/lib/*\""
|
|
|
|
substituteInPlace bin/elasticsearch-cli --replace \
|
|
"ES_CLASSPATH=\"\$ES_CLASSPATH:\$ES_HOME/\$additional_classpath_directory/*\"" \
|
|
"ES_CLASSPATH=\"\$ES_CLASSPATH:$out/\$additional_classpath_directory/*\""
|
|
'';
|
|
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
buildInputs = [ jre_headless util-linux ]
|
|
++ optional enableUnfree zlib;
|
|
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
cp -R bin config lib modules plugins $out
|
|
|
|
chmod -x $out/bin/*.*
|
|
|
|
wrapProgram $out/bin/elasticsearch \
|
|
--prefix PATH : "${makeBinPath [ util-linux gnugrep coreutils ]}" \
|
|
--set JAVA_HOME "${jre_headless}"
|
|
|
|
wrapProgram $out/bin/elasticsearch-plugin --set JAVA_HOME "${jre_headless}"
|
|
'';
|
|
|
|
passthru = { inherit enableUnfree; };
|
|
|
|
meta = {
|
|
description = "Open Source, Distributed, RESTful Search Engine";
|
|
license = if enableUnfree then licenses.elastic else licenses.asl20;
|
|
platforms = platforms.unix;
|
|
maintainers = with maintainers; [ apeschar basvandijk ];
|
|
};
|
|
} // optionalAttrs enableUnfree {
|
|
dontPatchELF = true;
|
|
nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
|
|
runtimeDependencies = [ zlib ];
|
|
postFixup = ''
|
|
for exe in $(find $out/modules/x-pack-ml/platform/linux-x86_64/bin -executable -type f); do
|
|
echo "patching $exe..."
|
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$exe"
|
|
done
|
|
'';
|
|
})
|