zabbix.agent2: init at 5.0.5

This commit is contained in:
Aaron Andersen 2021-01-04 16:14:36 -05:00 committed by tomberek
parent b722e3ff4c
commit debbd84333
2 changed files with 67 additions and 0 deletions

View file

@ -0,0 +1,66 @@
{ lib, buildGoModule, fetchurl, autoreconfHook, pkg-config, libiconv, openssl, pcre, zlib }:
import ./versions.nix ({ version, sha256 }:
buildGoModule {
pname = "zabbix-agent2";
inherit version;
src = fetchurl {
url = "https://cdn.zabbix.com/zabbix/sources/stable/${lib.versions.majorMinor version}/zabbix-${version}.tar.gz";
inherit sha256;
};
vendorSha256 = "1kb3lc9jjv0cpzq93k1b9y496i95fcnwhb03j0gwlyqmgsa6yn81";
nativeBuildInputs = [ autoreconfHook pkg-config];
buildInputs = [ libiconv openssl pcre zlib ];
inherit (buildGoModule.go) GOOS GOARCH;
# need to provide GO* env variables & patch for reproducibility
postPatch = ''
substituteInPlace src/go/Makefile.am \
--replace '`go env GOOS`' "$GOOS" \
--replace '`go env GOARCH`' "$GOARCH" \
--replace '`date +%H:%M:%S`' "00:00:00" \
--replace '`date +"%b %_d %Y"`' "Jan 1 1970"
'';
# manually configure the c dependencies
preConfigure = ''
./configure \
--prefix=${placeholder "out"} \
--enable-agent2 \
--with-iconv \
--with-libpcre \
--with-openssl=${openssl.dev}
'';
# zabbix build process is complex to get right in nix...
# we need to manipulate a number of things for their build
# system to properly work
buildPhase = ''
cp -r vendor src/go/vendor
make
'';
installPhase = ''
install -Dm0644 src/go/conf/zabbix_agent2.conf $out/etc/zabbix_agent2.conf
install -Dm0755 src/go/bin/zabbix_agent2 $out/bin/zabbix_agent2
'';
# run `go mod vendor` from the correct directory
overrideModAttrs = (_oldAttrs : {
preConfigure = ''
cd src/go
'';
});
meta = with lib; {
description = "An enterprise-class open source distributed monitoring solution (client-side agent)";
homepage = "https://www.zabbix.com/";
license = licenses.gpl2Plus;
maintainers = [ maintainers.aanderse ];
platforms = platforms.linux;
};
})

View file

@ -19076,6 +19076,7 @@ in
zabbixFor = version: rec {
agent = (callPackages ../servers/monitoring/zabbix/agent.nix {}).${version};
agent2 = (callPackages ../servers/monitoring/zabbix/agent2.nix {}).${version};
proxy-mysql = (callPackages ../servers/monitoring/zabbix/proxy.nix { mysqlSupport = true; }).${version};
proxy-pgsql = (callPackages ../servers/monitoring/zabbix/proxy.nix { postgresqlSupport = true; }).${version};
proxy-sqlite = (callPackages ../servers/monitoring/zabbix/proxy.nix { sqliteSupport = true; }).${version};