diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-08-14 00:20:49 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-08-14 00:23:16 +0000 |
commit | 4999a38db7c5de0ea9f514a12ecd4133cce647f3 (patch) | |
tree | bbb659ab07fda4c9b98053499b7e3f046ac6d5dc /nixpkgs/pkgs/servers/monitoring/zabbix | |
parent | f9abd30e11337cf07034f2cc8ad1691aa4a69386 (diff) | |
parent | 8746c77a383f5c76153c7a181f3616d273acfa2a (diff) | |
download | nixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.tar nixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.tar.gz nixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.tar.bz2 nixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.tar.lz nixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.tar.xz nixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.tar.zst nixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.zip |
Merge commit '8746c77a383f5c76153c7a181f3616d273acfa2a'
Diffstat (limited to 'nixpkgs/pkgs/servers/monitoring/zabbix')
-rw-r--r-- | nixpkgs/pkgs/servers/monitoring/zabbix/2.0.nix | 92 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/monitoring/zabbix/2.2.nix | 104 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/monitoring/zabbix/3.4.nix | 41 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/monitoring/zabbix/agent.nix | 38 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/monitoring/zabbix/default.nix | 75 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/monitoring/zabbix/proxy.nix | 79 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/monitoring/zabbix/server.nix | 86 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix | 16 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/monitoring/zabbix/web.nix | 32 |
9 files changed, 251 insertions, 312 deletions
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/2.0.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/2.0.nix deleted file mode 100644 index ce660fa6e88b..000000000000 --- a/nixpkgs/pkgs/servers/monitoring/zabbix/2.0.nix +++ /dev/null @@ -1,92 +0,0 @@ -{ stdenv, fetchurl, pkgconfig, postgresql, curl, openssl, zlib -, enableJabber ? false, minmay ? null }: - -assert enableJabber -> minmay != null; - -let - - version = "2.0.21"; - branch = "2.0"; - - src = fetchurl { - url = "mirror://sourceforge/zabbix/zabbix-${version}.tar.gz"; - sha256 = "14g22x2zy5xqnh2xg23xy5gjd49d1i8pks7pkidwdwa9acwgfx71"; - }; - - preConfigure = - '' - substituteInPlace ./configure \ - --replace " -static" "" \ - ${stdenv.lib.optionalString (stdenv.cc.libc != null) '' - --replace /usr/include/iconv.h ${stdenv.lib.getDev stdenv.cc.libc}/include/iconv.h - ''} - ''; - -in - -{ - recurseForDerivations = true; - - server = stdenv.mkDerivation { - name = "zabbix-${version}"; - - inherit src preConfigure; - - configureFlags = [ - "--enable-agent" - "--enable-server" - "--with-postgresql" - "--with-libcurl" - "--with-gettext" - ] ++ stdenv.lib.optional enableJabber "--with-jabber=${minmay}"; - - postPatch = '' - sed -i -e 's/iksemel/minmay/g' configure src/libs/zbxmedia/jabber.c - sed -i \ - -e '/^static ikstransport/,/}/d' \ - -e 's/iks_connect_with\(.*\), &zbx_iks_transport/mmay_connect_via\1/' \ - -e 's/iks/mmay/g' -e 's/IKS/MMAY/g' src/libs/zbxmedia/jabber.c - ''; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ postgresql curl openssl zlib ]; - - postInstall = - '' - mkdir -p $out/share/zabbix - cp -prvd frontends/php $out/share/zabbix/php - mkdir -p $out/share/zabbix/db/data - cp -prvd database/postgresql/data.sql $out/share/zabbix/db/data/data.sql - cp -prvd database/postgresql/images.sql $out/share/zabbix/db/data/images_pgsql.sql - mkdir -p $out/share/zabbix/db/schema - cp -prvd database/postgresql/schema.sql $out/share/zabbix/db/schema/postgresql.sql - ''; - - meta = { - inherit branch; - description = "An enterprise-class open source distributed monitoring solution"; - homepage = https://www.zabbix.com/; - license = "GPL"; - maintainers = [ stdenv.lib.maintainers.eelco ]; - platforms = stdenv.lib.platforms.linux; - }; - }; - - agent = stdenv.mkDerivation { - name = "zabbix-agent-${version}"; - - inherit src preConfigure; - - configureFlags = [ "--enable-agent" ]; - - meta = with stdenv.lib; { - inherit branch; - description = "An enterprise-class open source distributed monitoring solution (client-side agent)"; - homepage = https://www.zabbix.com/; - license = licenses.gpl2; - maintainers = [ maintainers.eelco ]; - platforms = platforms.linux; - }; - }; - -} diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/2.2.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/2.2.nix deleted file mode 100644 index ac0e6bb81f8b..000000000000 --- a/nixpkgs/pkgs/servers/monitoring/zabbix/2.2.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ stdenv, fetchurl, pkgconfig, postgresql, curl, openssl, zlib -, net_snmp , libssh2, openldap -, enableJabber ? false, minmay ? null -, enableSnmp ? false -, enableSsh ? false -, enableLdap ? false -}: - -assert enableJabber -> minmay != null; - -let - - version = "2.2.20"; - branch = "2.2"; - - src = fetchurl { - url = "mirror://sourceforge/zabbix/zabbix-${version}.tar.gz"; - sha256 = "00pfpyj3vydwx9dn0bklh1p5j0bp2awi4hvv4kgliyav8l0416hk"; - }; - - preConfigure = - '' - substituteInPlace ./configure \ - --replace " -static" "" \ - ${stdenv.lib.optionalString (stdenv.cc.libc != null) '' - --replace /usr/include/iconv.h ${stdenv.lib.getDev stdenv.cc.libc}/include/iconv.h - ''} - ''; - -in - -{ - recurseForDerivations = true; - - server = stdenv.mkDerivation { - name = "zabbix-${version}"; - - inherit src preConfigure; - - configureFlags = [ - "--enable-agent" - "--enable-server" - "--with-postgresql" - "--with-libcurl" - "--with-gettext" - ] - ++ stdenv.lib.optional enableJabber "--with-jabber=${minmay}" - ++ stdenv.lib.optional enableSnmp "--with-net-snmp" - ++ stdenv.lib.optional enableSsh "--with-ssh2=${libssh2.dev}" - ++ stdenv.lib.optional enableLdap "--with-ldap=${openldap.dev}"; - - postPatch = '' - sed -i -e 's/iksemel/minmay/g' configure src/libs/zbxmedia/jabber.c - sed -i \ - -e '/^static ikstransport/,/}/d' \ - -e 's/iks_connect_with\(.*\), &zbx_iks_transport/mmay_connect_via\1/' \ - -e 's/iks/mmay/g' -e 's/IKS/MMAY/g' src/libs/zbxmedia/jabber.c - ''; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ postgresql curl openssl zlib ] - ++ stdenv.lib.optional enableSnmp net_snmp - ++ stdenv.lib.optional enableSsh libssh2 - ++ stdenv.lib.optional enableLdap openldap; - - postInstall = - '' - mkdir -p $out/share/zabbix - cp -prvd frontends/php $out/share/zabbix/php - mkdir -p $out/share/zabbix/db/data - cp -prvd database/postgresql/data.sql $out/share/zabbix/db/data/data.sql - cp -prvd database/postgresql/images.sql $out/share/zabbix/db/data/images_pgsql.sql - mkdir -p $out/share/zabbix/db/schema - cp -prvd database/postgresql/schema.sql $out/share/zabbix/db/schema/postgresql.sql - ''; - - meta = { - inherit branch; - description = "An enterprise-class open source distributed monitoring solution"; - homepage = https://www.zabbix.com/; - license = "GPL"; - maintainers = [ stdenv.lib.maintainers.eelco ]; - platforms = stdenv.lib.platforms.linux; - }; - }; - - agent = stdenv.mkDerivation { - name = "zabbix-agent-${version}"; - - inherit src preConfigure; - - configureFlags = [ "--enable-agent" ]; - - meta = with stdenv.lib; { - inherit branch; - description = "An enterprise-class open source distributed monitoring solution (client-side agent)"; - homepage = https://www.zabbix.com/; - license = licenses.gpl2; - maintainers = [ maintainers.eelco ]; - platforms = platforms.linux; - }; - }; - -} diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/3.4.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/3.4.nix deleted file mode 100644 index 72e6fa55b003..000000000000 --- a/nixpkgs/pkgs/servers/monitoring/zabbix/3.4.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ stdenv, fetchurl, pcre, libiconv, openssl }: - - -let - - version = "3.4.8"; - branch = "3.4"; - - src = fetchurl { - url = "https://netix.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/${version}/zabbix-${version}.tar.gz"; - sha256 = "cec14993d1ec2c9d8c51f6608c9408620f27174db92edc2347bafa7b841ccc07"; - }; - -in - -{ - agent = stdenv.mkDerivation { - name = "zabbix-agent-${version}"; - - inherit src; - - configureFlags = [ - "--enable-agent" - "--with-libpcre=${pcre.dev}" - "--with-iconv=${libiconv}" - "--with-openssl=${openssl.dev}" - ]; - buildInputs = [ pcre libiconv openssl ]; - - meta = with stdenv.lib; { - inherit branch; - description = "An enterprise-class open source distributed monitoring solution (client-side agent)"; - homepage = https://www.zabbix.com/; - license = licenses.gpl2; - maintainers = [ maintainers.eelco ]; - platforms = platforms.linux; - }; - }; - -} - diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/agent.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/agent.nix new file mode 100644 index 000000000000..09f43c755f16 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/zabbix/agent.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchurl, pkgconfig, libiconv, openssl, pcre }: + +import ./versions.nix ({ version, sha256 }: + stdenv.mkDerivation { + pname = "zabbix-agent"; + inherit version; + + src = fetchurl { + url = "mirror://sourceforge/zabbix/ZABBIX%20Latest%20Stable/${version}/zabbix-${version}.tar.gz"; + inherit sha256; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ + libiconv + openssl + pcre + ]; + + configureFlags = [ + "--enable-agent" + "--with-iconv" + "--with-libpcre" + "--with-openssl=${openssl.dev}" + ]; + + postInstall = '' + cp conf/zabbix_agentd/*.conf $out/etc/zabbix_agentd.conf.d/ + ''; + + meta = with stdenv.lib; { + description = "An enterprise-class open source distributed monitoring solution (client-side agent)"; + homepage = "https://www.zabbix.com/"; + license = licenses.gpl2; + maintainers = with maintainers; [ mmahut psyanticy ]; + platforms = platforms.linux; + }; + }) diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/default.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/default.nix deleted file mode 100644 index 4b6bd5e0b250..000000000000 --- a/nixpkgs/pkgs/servers/monitoring/zabbix/default.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ stdenv, fetchurl, pkgconfig, postgresql, curl, openssl, zlib }: - -let - - version = "1.8.22"; - - src = fetchurl { - url = "mirror://sourceforge/zabbix/zabbix-${version}.tar.gz"; - sha256 = "0cjj3c4j4b9sl3hgh1fck330z9q0gz2k68g227y0paal6k6f54g7"; - }; - - preConfigure = - '' - substituteInPlace ./configure \ - --replace " -static" "" \ - ${stdenv.lib.optionalString (stdenv.cc.libc != null) '' - --replace /usr/include/iconv.h ${stdenv.lib.getDev stdenv.cc.libc}/include/iconv.h - ''} - ''; - -in - -{ - - server = stdenv.mkDerivation { - name = "zabbix-${version}"; - - inherit src preConfigure; - - configureFlags = [ - "--enable-agent" - "--enable-server" - "--with-pgsql" - "--with-libcurl" - ]; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ postgresql curl openssl zlib ]; - - postInstall = - '' - mkdir -p $out/share/zabbix - cp -prvd frontends/php $out/share/zabbix/php - mkdir -p $out/share/zabbix/db/data - cp -prvd create/data/*.sql $out/share/zabbix/db/data - mkdir -p $out/share/zabbix/db/schema - cp -prvd create/schema/*.sql $out/share/zabbix/db/schema - ''; - - meta = { - description = "An enterprise-class open source distributed monitoring solution"; - homepage = https://www.zabbix.com/; - license = "GPL"; - maintainers = [ stdenv.lib.maintainers.eelco ]; - platforms = stdenv.lib.platforms.linux; - }; - }; - - agent = stdenv.mkDerivation { - name = "zabbix-agent-${version}"; - - inherit src preConfigure; - - configureFlags = [ "--enable-agent" ]; - - meta = with stdenv.lib; { - description = "An enterprise-class open source distributed monitoring solution (client-side agent)"; - homepage = https://www.zabbix.com/; - license = licenses.gpl2; - maintainers = [ maintainers.eelco ]; - platforms = platforms.linux; - }; - }; - -} diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/proxy.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/proxy.nix new file mode 100644 index 000000000000..2062dc6659f8 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/zabbix/proxy.nix @@ -0,0 +1,79 @@ +{ stdenv, fetchurl, pkgconfig, libevent, libiconv, openssl, pcre, zlib +, odbcSupport ? true, unixODBC +, snmpSupport ? true, net_snmp +, sshSupport ? true, libssh2 +, sqliteSupport ? false, sqlite +, mysqlSupport ? false, mysql +, postgresqlSupport ? false, postgresql +}: + +# ensure exactly one database type is selected +assert mysqlSupport -> !postgresqlSupport && !sqliteSupport; +assert postgresqlSupport -> !mysqlSupport && !sqliteSupport; +assert sqliteSupport -> !mysqlSupport && !postgresqlSupport; + +let + inherit (stdenv.lib) optional optionalString; +in + import ./versions.nix ({ version, sha256 }: + stdenv.mkDerivation { + pname = "zabbix-proxy"; + inherit version; + + src = fetchurl { + url = "mirror://sourceforge/zabbix/ZABBIX%20Latest%20Stable/${version}/zabbix-${version}.tar.gz"; + inherit sha256; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ + libevent + libiconv + openssl + pcre + zlib + ] + ++ optional odbcSupport unixODBC + ++ optional snmpSupport net_snmp + ++ optional sqliteSupport sqlite + ++ optional sshSupport libssh2 + ++ optional mysqlSupport mysql.connector-c + ++ optional postgresqlSupport postgresql; + + configureFlags = [ + "--enable-proxy" + "--with-iconv" + "--with-libevent" + "--with-libpcre" + "--with-openssl=${openssl.dev}" + "--with-zlib=${zlib}" + ] + ++ optional odbcSupport "--with-unixodbc" + ++ optional snmpSupport "--with-net-snmp" + ++ optional sqliteSupport "--with-sqlite3=${sqlite.dev}" + ++ optional sshSupport "--with-ssh2=${libssh2.dev}" + ++ optional mysqlSupport "--with-mysql" + ++ optional postgresqlSupport "--with-postgresql"; + + prePatch = '' + find database -name data.sql -exec sed -i 's|/usr/bin/||g' {} + + ''; + + postInstall = '' + mkdir -p $out/share/zabbix/database/ + '' + optionalString sqliteSupport '' + mkdir -p $out/share/zabbix/database/sqlite3 + cp -prvd database/sqlite3/*.sql $out/share/zabbix/database/sqlite3/ + '' + optionalString postgresqlSupport '' + mkdir -p $out/share/zabbix/database/postgresql + cp -prvd database/postgresql/schema.sql $out/share/zabbix/database/postgresql/ + ''; + + meta = with stdenv.lib; { + description = "An enterprise-class open source distributed monitoring solution (client-server proxy)"; + homepage = "https://www.zabbix.com/"; + license = licenses.gpl2; + maintainers = [ maintainers.mmahut ]; + platforms = platforms.linux; + }; + }) diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/server.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/server.nix new file mode 100644 index 000000000000..51ca38e8cfc8 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/zabbix/server.nix @@ -0,0 +1,86 @@ +{ stdenv, fetchurl, pkgconfig, curl, libevent, libiconv, libxml2, openssl, pcre, zlib +, jabberSupport ? true, iksemel +, ldapSupport ? true, openldap +, odbcSupport ? true, unixODBC +, snmpSupport ? true, net_snmp +, sshSupport ? true, libssh2 +, mysqlSupport ? false, mysql +, postgresqlSupport ? false, postgresql +}: + +# ensure exactly one primary database type is selected +assert mysqlSupport -> !postgresqlSupport; +assert postgresqlSupport -> !mysqlSupport; + +let + inherit (stdenv.lib) optional optionalString; +in + import ./versions.nix ({ version, sha256 }: + stdenv.mkDerivation { + pname = "zabbix-server"; + inherit version; + + src = fetchurl { + url = "mirror://sourceforge/zabbix/ZABBIX%20Latest%20Stable/${version}/zabbix-${version}.tar.gz"; + inherit sha256; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ + curl + libevent + libiconv + libxml2 + openssl + pcre + zlib + ] + ++ optional odbcSupport unixODBC + ++ optional jabberSupport iksemel + ++ optional ldapSupport openldap + ++ optional snmpSupport net_snmp + ++ optional sshSupport libssh2 + ++ optional mysqlSupport mysql.connector-c + ++ optional postgresqlSupport postgresql; + + configureFlags = [ + "--enable-server" + "--with-iconv" + "--with-libcurl" + "--with-libevent" + "--with-libpcre" + "--with-libxml2" + "--with-openssl=${openssl.dev}" + "--with-zlib=${zlib}" + ] + ++ optional odbcSupport "--with-unixodbc" + ++ optional jabberSupport "--with-jabber" + ++ optional ldapSupport "--with-ldap=${openldap.dev}" + ++ optional snmpSupport "--with-net-snmp" + ++ optional sshSupport "--with-ssh2=${libssh2.dev}" + ++ optional mysqlSupport "--with-mysql" + ++ optional postgresqlSupport "--with-postgresql"; + + prePatch = '' + find database -name data.sql -exec sed -i 's|/usr/bin/||g' {} + + ''; + + postInstall = '' + mkdir -p $out/share/zabbix/database/ + cp -r include $out/ + '' + optionalString mysqlSupport '' + mkdir -p $out/share/zabbix/database/mysql + cp -prvd database/mysql/*.sql $out/share/zabbix/database/mysql/ + '' + optionalString postgresqlSupport '' + mkdir -p $out/share/zabbix/database/postgresql + cp -prvd database/postgresql/*.sql $out/share/zabbix/database/postgresql/ + ''; + + meta = with stdenv.lib; { + description = "An enterprise-class open source distributed monitoring solution"; + homepage = "https://www.zabbix.com/"; + license = licenses.gpl2; + maintainers = with maintainers; [ mmahut psyanticy ]; + platforms = platforms.linux; + }; + }) diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix new file mode 100644 index 000000000000..7b6b5d8fcccb --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix @@ -0,0 +1,16 @@ +generic: { + v42 = generic { + version = "4.2.3"; + sha256 = "0865c1a9vcgg4syhp5133rw9v1h65lp0g1y2f758jb9x9ybrr01s"; + }; + + v40 = generic { + version = "4.0.9"; + sha256 = "1lc4wx3cing5w2qa18yb6232qd70hrfjq7jmnx4ip3nawnswj2xa"; + }; + + v30 = generic { + version = "3.0.28"; + sha256 = "16966danf5ww4lhjg5gx5bnpid8abxh2ymdg6k5mymrman5bcdjj"; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/web.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/web.nix new file mode 100644 index 000000000000..c4cf5d044dae --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/zabbix/web.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, writeText }: + +import ./versions.nix ({ version, sha256 }: + stdenv.mkDerivation rec { + pname = "zabbix-web"; + inherit version; + + src = fetchurl { + url = "mirror://sourceforge/zabbix/ZABBIX%20Latest%20Stable/${version}/zabbix-${version}.tar.gz"; + inherit sha256; + }; + + phpConfig = writeText "zabbix.conf.php" '' + <?php + return require(getenv('ZABBIX_CONFIG')); + ?> + ''; + + installPhase = '' + mkdir -p $out/share/zabbix/ + cp -a frontends/php/. $out/share/zabbix/ + cp ${phpConfig} $out/share/zabbix/conf/zabbix.conf.php + ''; + + meta = with stdenv.lib; { + description = "An enterprise-class open source distributed monitoring solution (web frontend)"; + homepage = "https://www.zabbix.com/"; + license = licenses.gpl2; + maintainers = [ maintainers.mmahut ]; + platforms = platforms.linux; + }; + }) |