diff options
Diffstat (limited to 'pkgs/servers')
-rw-r--r-- | pkgs/servers/dns/knot-resolver/default.nix | 94 | ||||
-rw-r--r-- | pkgs/servers/foswiki/default.nix | 44 | ||||
-rw-r--r-- | pkgs/servers/mautrix-whatsapp/default.nix | 6 | ||||
-rw-r--r-- | pkgs/servers/mautrix-whatsapp/deps.nix | 82 | ||||
-rw-r--r-- | pkgs/servers/monitoring/zabbix/2.0.nix | 92 | ||||
-rw-r--r-- | pkgs/servers/monitoring/zabbix/2.2.nix | 104 | ||||
-rw-r--r-- | pkgs/servers/monitoring/zabbix/3.4.nix | 41 | ||||
-rw-r--r-- | pkgs/servers/monitoring/zabbix/agent.nix | 38 | ||||
-rw-r--r-- | pkgs/servers/monitoring/zabbix/default.nix | 75 | ||||
-rw-r--r-- | pkgs/servers/monitoring/zabbix/proxy.nix | 79 | ||||
-rw-r--r-- | pkgs/servers/monitoring/zabbix/server.nix | 86 | ||||
-rw-r--r-- | pkgs/servers/monitoring/zabbix/versions.nix | 16 | ||||
-rw-r--r-- | pkgs/servers/monitoring/zabbix/web.nix | 32 | ||||
-rw-r--r-- | pkgs/servers/routinator/default.nix | 23 |
14 files changed, 371 insertions, 441 deletions
diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix index ce84bb7cb417b..34791cfdd71de 100644 --- a/pkgs/servers/dns/knot-resolver/default.nix +++ b/pkgs/servers/dns/knot-resolver/default.nix @@ -1,76 +1,77 @@ -{ stdenv, fetchurl, fetchpatch, runCommand, pkgconfig, hexdump, which -, knot-dns, luajit, libuv, lmdb, gnutls, nettle -, cmocka, systemd, dns-root-data, makeWrapper +{ stdenv, fetchurl +# native deps. +, runCommand, pkgconfig, meson, ninja, makeWrapper +# build+runtime deps. +, knot-dns, luajitPackages, libuv, gnutls, lmdb, systemd, dns-root-data +# test-only deps. +, cmocka, which, cacert , extraFeatures ? false /* catch-all if defaults aren't enough */ -, luajitPackages }: let # un-indented, over the whole file result = if extraFeatures then wrapped-full else unwrapped; -inherit (stdenv.lib) optional; +inherit (stdenv.lib) optional optionals concatStringsSep; +lua = luajitPackages; + +# FIXME: remove these usages once resolving +# https://github.com/NixOS/nixpkgs/pull/63108#issuecomment-508670438 +exportLuaPathsFor = luaPkgs: '' + export LUA_PATH='${ concatStringsSep ";" (map lua.getLuaPath luaPkgs)}' + export LUA_CPATH='${concatStringsSep ";" (map lua.getLuaCPath luaPkgs)}' +''; unwrapped = stdenv.mkDerivation rec { name = "knot-resolver-${version}"; - version = "3.2.1"; + version = "4.1.0"; src = fetchurl { url = "https://secure.nic.cz/files/knot-resolver/${name}.tar.xz"; - sha256 = "d1396888ec3a63f19dccdf2b7dbcb0d16a5d8642766824b47f4c21be90ce362b"; + sha256 = "2fe470f9bb1007667cdd448f758087244b7195a0234c2b100a9beeed0a2d3e68"; }; - patches = [ - (fetchpatch { - name = "support-libzscanner-2.8.diff"; - url = "https://gitlab.labs.nic.cz/knot/knot-resolver/commit/186f263.diff"; - sha256 = "19zqigvc7m2a4j6bk9whx7gj0v009568rz5qwk052z7pzfikr8mk"; - }) - ]; - - # Short-lived cross fix, as upstream is migrating to meson anyway. - postPatch = '' - substituteInPlace platform.mk --replace "objdump" "$OBJDUMP" - ''; - outputs = [ "out" "dev" ]; - configurePhase = "patchShebangs scripts/"; + preConfigure = '' + patchShebangs scripts/ + '' + + stdenv.lib.optionalString doInstallCheck (exportLuaPathsFor [ lua.cqueues lua.basexx ]); - nativeBuildInputs = [ pkgconfig which hexdump ]; + nativeBuildInputs = [ pkgconfig meson ninja ]; # http://knot-resolver.readthedocs.io/en/latest/build.html#requirements - buildInputs = [ knot-dns luajit libuv gnutls nettle lmdb ] - ++ optional stdenv.isLinux systemd # sd_notify + buildInputs = [ knot-dns lua.lua libuv gnutls lmdb ] + ++ optional stdenv.isLinux systemd # passing sockets, sd_notify ## optional dependencies; TODO: libedit, dnstap ; - checkInputs = [ cmocka ]; - - makeFlags = [ - "PREFIX=$(out)" - "ROOTHINTS=${dns-root-data}/root.hints" - "KEYFILE_DEFAULT=${dns-root-data}/root.ds" - ]; - CFLAGS = [ "-O2" "-DNDEBUG" ]; + mesonFlags = [ + "-Dkeyfile_default=${dns-root-data}/root.ds" + "-Droot_hints=${dns-root-data}/root.hints" + "-Dinstall_kresd_conf=disabled" # not really useful; examples are inside share/doc/ + "--default-library=static" # not used by anyone + ] + ++ optional doInstallCheck "-Dunit_tests=enabled" + ++ optional (doInstallCheck && !stdenv.isDarwin) "-Dconfig_tests=enabled" + #"-Dextra_tests=enabled" # not suitable as in-distro tests; many deps, too. + ; - enableParallelBuilding = true; - - doCheck = true; - doInstallCheck = false; # FIXME - preInstallCheck = '' - patchShebangs tests/config/runtest.sh + postInstall = '' + rm "$out"/lib/libkres.a ''; - postInstall = '' - rm "$out"/etc/knot-resolver/root.hints # using system-wide instead + # aarch64: see https://github.com/wahern/cqueues/issues/223 + doInstallCheck = with stdenv; hostPlatform == buildPlatform && !hostPlatform.isAarch64; + installCheckInputs = [ cmocka which cacert ]; + installCheckPhase = '' + meson test --print-errorlogs ''; meta = with stdenv.lib; { description = "Caching validating DNS resolver, from .cz domain registry"; homepage = https://knot-resolver.cz; license = licenses.gpl3Plus; - # Platforms using negative pointers for stack won't work ATM due to LuaJIT impl. - platforms = filter (p: p != "aarch64-linux") platforms.unix; + platforms = platforms.unix; maintainers = [ maintainers.vcunat /* upstream developer */ ]; }; }; @@ -93,11 +94,12 @@ wrapped-full = preferLocalBuild = true; allowSubstitutes = false; } - '' + (exportLuaPathsFor luaPkgs + + '' mkdir -p "$out"/{bin,share} makeWrapper '${unwrapped}/bin/kresd' "$out"/bin/kresd \ - --set LUA_PATH '${concatStringsSep ";" (map getLuaPath luaPkgs)}' \ - --set LUA_CPATH '${concatStringsSep ";" (map getLuaCPath luaPkgs)}' + --set LUA_PATH "$LUA_PATH" \ + --set LUA_CPATH "$LUA_CPATH" ln -sr '${unwrapped}/share/man' "$out"/share/ ln -sr "$out"/{bin,sbin} @@ -105,6 +107,6 @@ wrapped-full = echo "Checking that 'http' module loads, i.e. lua search paths work:" echo "modules.load('http')" > test-http.lua echo -e 'quit()' | env -i "$out"/bin/kresd -a 127.0.0.1#53535 -c test-http.lua - ''; + ''); in result diff --git a/pkgs/servers/foswiki/default.nix b/pkgs/servers/foswiki/default.nix deleted file mode 100644 index 67d460809e152..0000000000000 --- a/pkgs/servers/foswiki/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ stdenv, fetchurl, perlPackages }: - -perlPackages.buildPerlPackage rec { - pname = "foswiki"; - version = "2.1.0"; - - src = fetchurl { - url = "mirror://sourceforge/foswiki/${version}/Foswiki-${version}.tgz"; - sha256 = "03286pb966h99zgickm2f20rgnqwp9wga5wfkdvirv084kjdh8vp"; - }; - - outputs = [ "out" ]; - - buildInputs = with perlPackages; [ - # minimum requirements from INSTALL.html#System_Requirements - AlgorithmDiff ArchiveTar AuthenSASL CGI CGISession CryptPasswdMD5 - EmailMIME Encode Error FileCopyRecursive HTMLParser HTMLTree - IOSocketSSL JSON - LocaleMaketextLexicon LocaleMsgfmt - LWP URI perlPackages.Version - /*# optional dependencies - libapreq2 DBI DBDmysql DBDPg DBDSQLite FCGI FCGIProcManager - CryptSMIME CryptX509 ConvertPEM - */ - ]; - - preConfigure = '' - touch Makefile.PL - patchShebangs . - ''; - configureScript = "bin/configure"; - - # there's even no makefile - doCheck = false; - installPhase = ''cp -r . "$out" ''; - - meta = with stdenv.lib; { - description = "An open, programmable collaboration platform"; - homepage = http://foswiki.org; - license = licenses.gpl2Plus; - platforms = platforms.linux; - }; -} - diff --git a/pkgs/servers/mautrix-whatsapp/default.nix b/pkgs/servers/mautrix-whatsapp/default.nix index f6526ab1f715e..824f8ea202592 100644 --- a/pkgs/servers/mautrix-whatsapp/default.nix +++ b/pkgs/servers/mautrix-whatsapp/default.nix @@ -2,15 +2,15 @@ buildGoPackage rec { name = "mautrix-unstable-${version}"; - version = "2019-02-24"; + version = "2019-07-04"; goPackagePath = "maunium.net/go/mautrix-whatsapp"; src = fetchFromGitHub { owner = "tulir"; repo = "mautrix-whatsapp"; - rev = "485acf6de654b8fb70007876c074fb004eb9717b"; - sha256 = "1v7h3s8h0aiq6g06h9j1sidw8y5aiw24sgdh9knr1c90pvvc7pmv"; + rev = "29f5ae45c4b22f463003b23e355b951831f08b3e"; + sha256 = "12209m3x01i7bnnkg57ag1ivsk6n6pqaqfin7y02irgi3i3rm31r"; }; goDeps = ./deps.nix; diff --git a/pkgs/servers/mautrix-whatsapp/deps.nix b/pkgs/servers/mautrix-whatsapp/deps.nix index 8624889e3468f..2dd35846bf5da 100644 --- a/pkgs/servers/mautrix-whatsapp/deps.nix +++ b/pkgs/servers/mautrix-whatsapp/deps.nix @@ -1,21 +1,22 @@ +# NOTE: this file isn't entirely generated, while performing the bump +# from 2019-02-24 to 2019-06-01, a lot of stuff broke during `vgo2nix` as the +# tool is unable to parse `replace` statements atm. +# +# The following sources were altered manually: +# * github.com/Rhymen/go-whatsapp -> github.com/tulir/go-whatsapp (at 36ed380bdc18) +# * github.com/golang/protobuf: v1.2.0 -> v1.3.1 +# * maunium.net/go/mautrix: v0.1.0-alpha3 -> ca5d9535b6cc +# * maunium.net/go/mautrix-appservice: v0.1.0-alpha3 -> 6e6c9bb47548 + # file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) [ { - goPackagePath = "github.com/Baozisoftware/qrcode-terminal-go"; - fetch = { - type = "git"; - url = "https://github.com/Baozisoftware/qrcode-terminal-go"; - rev = "c0650d8dff0f"; - sha256 = "166h9zy9y7ygayhybg7d080hpdcf1mvkf3rwnq5lqg8i3cg71s7b"; - }; - } - { goPackagePath = "github.com/Rhymen/go-whatsapp"; fetch = { type = "git"; - url = "https://github.com/Rhymen/go-whatsapp"; - rev = "c1173899de99"; - sha256 = "1f46zpbfgv3k38lgdrcwqf4cm34dgqxlfs9qzg380in61460lcri"; + url = "https://github.com/tulir/go-whatsapp"; + rev = "36ed380bdc188e35fe804d6dd4809ee170136670"; + sha256 = "1ida4j5hgqc5djwfsaqp8g6iynn150rwj42kqk9q2srwz5075n4p"; }; } { @@ -32,8 +33,8 @@ fetch = { type = "git"; url = "https://github.com/golang/protobuf"; - rev = "v1.2.0"; - sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab"; + rev = "v1.3.1"; + sha256 = "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"; }; } { @@ -41,8 +42,8 @@ fetch = { type = "git"; url = "https://github.com/gorilla/mux"; - rev = "v1.7.0"; - sha256 = "09cn5v1gxrrrydzyllp1asbhgm5xsawb92as7cg9jqg6iyqajvlc"; + rev = "v1.6.2"; + sha256 = "0pvzm23hklxysspnz52mih6h1q74vfrdhjfm1l3sa9r8hhqmmld2"; }; } { @@ -55,12 +56,21 @@ }; } { + goPackagePath = "github.com/lib/pq"; + fetch = { + type = "git"; + url = "https://github.com/lib/pq"; + rev = "v1.1.1"; + sha256 = "0g64wlg1l1ybq4x44idksl4pgm055s58jxc6r6x4qhqm5q76h0km"; + }; + } + { goPackagePath = "github.com/mattn/go-colorable"; fetch = { type = "git"; url = "https://github.com/mattn/go-colorable"; - rev = "v0.1.1"; - sha256 = "0l640974j804c1yyjfgyxqlsivz0yrzmbql4mhcw2azryigkp08p"; + rev = "v0.0.9"; + sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx"; }; } { @@ -68,8 +78,8 @@ fetch = { type = "git"; url = "https://github.com/mattn/go-isatty"; - rev = "v0.0.5"; - sha256 = "114d5xm8rfxplzd7nxz97gfngb4bhqy102szl084d1afcxsvm4aa"; + rev = "v0.0.4"; + sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"; }; } { @@ -82,7 +92,16 @@ }; } { - goPackagePath = "github.com/russross/blackfriday"; + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "v0.8.1"; + sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1"; + }; + } + { + goPackagePath = "gopkg.in/russross/blackfriday.v2"; fetch = { type = "git"; url = "https://github.com/russross/blackfriday"; @@ -113,8 +132,8 @@ fetch = { type = "git"; url = "https://go.googlesource.com/crypto"; - rev = "ffb98f73852f"; - sha256 = "0hil543q2zq8wxsz6ljrfnrhhxg5j0mrjfwskf2x6q0ppqizsa4h"; + rev = "b8fe1690c613"; + sha256 = "1mbfpbrirsz8fsdkibm9l4sccpm774p9201mpmfh4hxshz3girq3"; }; } { @@ -136,15 +155,6 @@ }; } { - goPackagePath = "golang.org/x/sys"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/sys"; - rev = "cd391775e71e"; - sha256 = "12wk5ylx0jjajipr68yn50wcd0c9shzhq9y4an40ldnv4bsdp2rj"; - }; - } - { goPackagePath = "gopkg.in/check.v1"; fetch = { type = "git"; @@ -185,8 +195,8 @@ fetch = { type = "git"; url = "https://github.com/tulir/mautrix-go.git"; - rev = "v0.1.0-alpha.3"; - sha256 = "12nlyij57ss2a5d1f1k1vsmjjvxp1fannlrbnp2jsj6rrsq0d2wr"; + rev = "ca5d9535b6ccee8fdf473f9cc935932ef3e53ae7"; + sha256 = "1qrh77c8vh2k6ffwf0cymjmhcp7d0rdad1ixqx5r1xig27f7v0qg"; }; } { @@ -194,8 +204,8 @@ fetch = { type = "git"; url = "https://github.com/tulir/mautrix-appservice-go.git"; - rev = "v0.1.0-alpha.3"; - sha256 = "17y11wgqbrafbq6bnn4rp2lzd50fjz9d6f8j3382jsara7ps95vr"; + rev = "6e6c9bb4754849443cb3c64d9510f8d2eb3e668d"; + sha256 = "1zwsfvgxs2zbc6yvgnk16w2wkh891kihrzar3qzz9cvsgjznlyvy"; }; } ] diff --git a/pkgs/servers/monitoring/zabbix/2.0.nix b/pkgs/servers/monitoring/zabbix/2.0.nix deleted file mode 100644 index ce660fa6e88be..0000000000000 --- a/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/pkgs/servers/monitoring/zabbix/2.2.nix b/pkgs/servers/monitoring/zabbix/2.2.nix deleted file mode 100644 index ac0e6bb81f8b9..0000000000000 --- a/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/pkgs/servers/monitoring/zabbix/3.4.nix b/pkgs/servers/monitoring/zabbix/3.4.nix deleted file mode 100644 index 72e6fa55b003d..0000000000000 --- a/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/pkgs/servers/monitoring/zabbix/agent.nix b/pkgs/servers/monitoring/zabbix/agent.nix new file mode 100644 index 0000000000000..09f43c755f168 --- /dev/null +++ b/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/pkgs/servers/monitoring/zabbix/default.nix b/pkgs/servers/monitoring/zabbix/default.nix deleted file mode 100644 index 4b6bd5e0b2508..0000000000000 --- a/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/pkgs/servers/monitoring/zabbix/proxy.nix b/pkgs/servers/monitoring/zabbix/proxy.nix new file mode 100644 index 0000000000000..2062dc6659f84 --- /dev/null +++ b/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/pkgs/servers/monitoring/zabbix/server.nix b/pkgs/servers/monitoring/zabbix/server.nix new file mode 100644 index 0000000000000..51ca38e8cfc89 --- /dev/null +++ b/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/pkgs/servers/monitoring/zabbix/versions.nix b/pkgs/servers/monitoring/zabbix/versions.nix new file mode 100644 index 0000000000000..7b6b5d8fcccb0 --- /dev/null +++ b/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/pkgs/servers/monitoring/zabbix/web.nix b/pkgs/servers/monitoring/zabbix/web.nix new file mode 100644 index 0000000000000..c4cf5d044dae0 --- /dev/null +++ b/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; + }; + }) diff --git a/pkgs/servers/routinator/default.nix b/pkgs/servers/routinator/default.nix new file mode 100644 index 0000000000000..76e469fe6e015 --- /dev/null +++ b/pkgs/servers/routinator/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchFromGitHub, rustPlatform }: + +rustPlatform.buildRustPackage rec { + pname = "routinator"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "NLnetLabs"; + repo = pname; + rev = "v${version}"; + sha256 = "0ldnak1jszfkwya0aci7ns3293y45jp7iirilnqypklsmmm108r4"; + }; + + cargoSha256 = "0yx5sanblalh5q06cn0mrf5bc5518y1awmvyi5yhh55cz6bg6h1m"; + + meta = with stdenv.lib; { + description = "An RPKI Validator written in Rust"; + homepage = "https://github.com/NLnetLabs/routinator"; + license = licenses.bsd3; + maintainers = [ maintainers."0x4A6F" ]; + platforms = platforms.linux; + }; +} |