diff --git a/pkgs/tools/system/rsyslog/default.nix b/pkgs/tools/system/rsyslog/default.nix index d18c2737854a..e253a4ef00e1 100644 --- a/pkgs/tools/system/rsyslog/default.nix +++ b/pkgs/tools/system/rsyslog/default.nix @@ -1,23 +1,102 @@ -{stdenv, fetchurl, eventlog, pkgconfig, libestr, libee, json_c, libuuid, zlib, gnutls, libgcrypt, systemd, liblogging}: +{ stdenv, fetchurl, pkgconfig, libestr, json_c, zlib, pythonPackages +, krb5 ? null, systemd ? null, jemalloc ? null, mysql ? null, postgresql ? null +, libdbi ? null, net_snmp ? null, libuuid ? null, curl ? null, gnutls ? null +, libgcrypt ? null, liblognorm ? null, openssl ? null, librelp ? null +, libgt ? null, liblogging ? null, libnet ? null, hadoop ? null, rdkafka ? null +, libmongo-client ? null, czmq ? null, rabbitmq-c ? null, hiredis ? null +}: -stdenv.mkDerivation { - name = "rsyslog-7.6.3"; +with stdenv.lib; +let + mkFlag = cond: name: if cond then "--enable-${name}" else "--disable-${name}"; +in +stdenv.mkDerivation rec { + name = "rsyslog-8.8.0"; src = fetchurl { - url = http://www.rsyslog.com/files/download/rsyslog/rsyslog-7.6.3.tar.gz; - sha256 = "1v7mi2jjyn3awrfxqvd3mg64m5r027dgpbzd511mlvlbbw1mjcq1"; + url = "http://www.rsyslog.com/files/download/rsyslog/${name}.tar.gz"; + sha256 = "1sx0j5icp172rzcpybjpfw53aj34w8j7k3f1ga0pmbv58r3pwyhl"; }; - buildInputs = [pkgconfig libestr libee json_c libuuid zlib gnutls libgcrypt systemd liblogging]; + buildInputs = [ + pkgconfig libestr json_c zlib pythonPackages.docutils + krb5 systemd jemalloc mysql postgresql libdbi net_snmp libuuid curl gnutls + libgcrypt liblognorm openssl librelp libgt liblogging libnet hadoop rdkafka + libmongo-client czmq rabbitmq-c hiredis + ]; - preConfigure = '' - export configureFlags="$configureFlags --enable-gnutls --enable-cached-man-pages --enable-imjournal --with-systemdsystemunitdir=$out/etc/systemd/system" - ''; + configureFlags = [ + "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-systemdsystemunitdir=\${out}/etc/systemd/system" + (mkFlag true "largefile") + (mkFlag true "regexp") + (mkFlag (krb5 != null) "gssapi-krb5") + (mkFlag true "klog") + (mkFlag true "kmsg") + (mkFlag (systemd != null) "imjournal") + (mkFlag true "inet") + (mkFlag (jemalloc != null) "jemalloc") + (mkFlag true "unlimited-select") + (mkFlag true "usertools") + (mkFlag (mysql != null) "mysql") + (mkFlag (postgresql != null) "pgsql") + (mkFlag (libdbi != null) "libdbi") + (mkFlag (net_snmp != null) "snmp") + (mkFlag (libuuid != null) "uuid") + (mkFlag (curl != null) "elasticsearch") + (mkFlag (gnutls != null) "gnutls") + (mkFlag (libgcrypt != null) "libgcrypt") + (mkFlag true "rsyslogrt") + (mkFlag true "rsyslogd") + (mkFlag true "mail") + (mkFlag (liblognorm != null) "mmnormalize") + (mkFlag true "mmjsonparse") + (mkFlag true "mmaudit") + (mkFlag true "mmanon") + (mkFlag true "mmutf8fix") + (mkFlag true "mmcount") + (mkFlag true "mmsequence") + (mkFlag true "mmfields") + (mkFlag true "mmpstrucdata") + (mkFlag (openssl != null) "mmrfc5424addhmac") + (mkFlag (librelp != null) "relp") + (mkFlag (libgt != null) "guardtime") + (mkFlag (liblogging != null) "liblogging-stdlog") + (mkFlag (liblogging != null) "rfc3195") + (mkFlag true "imfile") + (mkFlag false "imsolaris") + (mkFlag true "imptcp") + (mkFlag true "impstats") + (mkFlag true "omprog") + (mkFlag (libnet != null) "omudpspoof") + (mkFlag true "omstdout") + (mkFlag (systemd != null) "omjournal") + (mkFlag true "pmlastmsg") + (mkFlag true "pmcisconames") + (mkFlag true "pmciscoios") + (mkFlag true "pmaixforwardedfrom") + (mkFlag true "pmsnare") + (mkFlag true "omruleset") + (mkFlag true "omuxsock") + (mkFlag true "mmsnmptrapd") + (mkFlag (hadoop != null) "omhdfs") + (mkFlag (rdkafka != null) "omkafka") + (mkFlag (libmongo-client != null) "ommongodb") + (mkFlag (czmq != null) "imzmq3") + (mkFlag (czmq != null) "imczmq") + (mkFlag (czmq != null) "omzmq3") + (mkFlag (czmq != null) "omczmq") + (mkFlag (rabbitmq-c != null) "omrabbitmq") + (mkFlag (hiredis != null) "omhiredis") + (mkFlag true "generate-man-pages") + ]; meta = { homepage = "http://www.rsyslog.com/"; description = "Enhanced syslog implementation"; - license = stdenv.lib.licenses.gpl3; - platforms = stdenv.lib.platforms.linux; + license = licenses.gpl3; + platforms = platforms.all; + maintainers = with maintainers; [ wkennington ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e88f4ecfdfef..818a3db8b230 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -779,7 +779,11 @@ let syslogng_incubator = callPackage ../tools/system/syslog-ng-incubator { }; - rsyslog = callPackage ../tools/system/rsyslog { }; + rsyslog = callPackage ../tools/system/rsyslog { + libgcrypt = libgcrypt_1_6; + czmq = null; # Currently Broken + hadoop = null; # Currently Broken + }; mcrypt = callPackage ../tools/misc/mcrypt { };