nixpkgs/pkgs/applications/networking/irc/weechat/default.nix

83 lines
3.2 KiB
Nix
Raw Normal View History

{ stdenv, fetchurl, lib
, ncurses, openssl, aspell, gnutls
, zlib, curl, pkgconfig, libgcrypt
, cmake, makeWrapper, libobjc, libresolv, libiconv
2016-10-14 22:30:38 +01:00
, asciidoctor # manpages
, guileSupport ? true, guile
, luaSupport ? true, lua5
, perlSupport ? true, perl
, pythonSupport ? true, pythonPackages
, rubySupport ? true, ruby
, tclSupport ? true, tcl
, extraBuildInputs ? []
}:
let
inherit (pythonPackages) python;
plugins = [
{ name = "perl"; enabled = perlSupport; cmakeFlag = "ENABLE_PERL"; buildInputs = [ perl ]; }
{ name = "tcl"; enabled = tclSupport; cmakeFlag = "ENABLE_TCL"; buildInputs = [ tcl ]; }
{ name = "ruby"; enabled = rubySupport; cmakeFlag = "ENABLE_RUBY"; buildInputs = [ ruby ]; }
{ name = "guile"; enabled = guileSupport; cmakeFlag = "ENABLE_GUILE"; buildInputs = [ guile ]; }
{ name = "lua"; enabled = luaSupport; cmakeFlag = "ENABLE_LUA"; buildInputs = [ lua5 ]; }
{ name = "python"; enabled = pythonSupport; cmakeFlag = "ENABLE_PYTHON"; buildInputs = [ python ]; }
];
enabledPlugins = builtins.filter (p: p.enabled) plugins;
in
assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
stdenv.mkDerivation rec {
weechat: 2.4 -> 2.5 Changelog [1]: New features - core: use getopt to parse command line arguments - core: add option weechat.look.prefix_same_nick_middle - core: add option weechat.look.buffer_time_same - core: use seconds by default in /repeat interval, allow unit for the interval - core: allow text in addition to a command in command /repeat - core: add option "addreplace" in command /filter - api: return allocated string in hook_info callback and function info_get - api: replace argument "keep_eol" by "flags" in function string_split - api: add function command_options - api: add function string_match_list - irc: add bar items "irc_nick", "irc_host" and "irc_nick_host" - irc: add variable "host" in server structure - relay: add support of UNIX socket - relay: add option relay.weechat.commands - script: use SHA-512 instead of MD5 for script checksum - spell: rename aspell plugin to spell - trigger: add hooks "info" and "info_hashtable" - xfer: rename option xfer.network.speed_limit to xfer.network.speed_limit_send, add option xfer.network.speed_limit_recv Bug fixes - core: don’t execute command scheduled by /repeat and /wait if the buffer does not exist any more - core: set max length to 4096 for /secure passphrase - core: refilter only affected buffers on filter change - fset: fix slow refresh of fset buffer during /reload - irc: fix parsing of MODE command when there are colons after the first mode argument - irc: fix memory leak in infos "irc_server_isupport" and "irc_server_isupport_value" - irc: fix length of string for SHA-512, SHA-256 and SHA-1 in help on ssl_fingerprint option - irc: display an error with /allchan -current or /allpv -current if the current buffer is not an irc buffer - irc: fix update of channels modes with arguments when joining a channel - irc: quote NICK command argument sent to the server - php: fix memory leak in functions string_eval_expression, string_eval_path_home, key_bind, hook_process_hashtable, hook_hsignal_send, info_get_hashtable, hdata_update - relay: fix crash when a weechat relay client reloads the relay plugin with /plugin reload relay - spell: fix detection of nick followed by the nick completer - trigger: fix split of hook arguments Tests - unit: add tests on function util_signal_search Build - core: fix value of libdir in file weechat.pc - core: fix generation of man page weechat-headless with autotools - core: add CMake option "ENABLE_CODE_COVERAGE" to compile with code coverage options (CMake ≥ 3.0 is now required) - core: fix compilation on Mac OS - lua: add detection of Lua 5.3 with autotools - ruby: add detection of Ruby 2.6 - tests: fix compilation of tests on FreeBSD [1] https://weechat.org/files/changelog/ChangeLog-2.5.html#v2.5
2019-06-07 08:56:56 +01:00
version = "2.5";
name = "weechat-${version}";
src = fetchurl {
url = "https://weechat.org/files/src/weechat-${version}.tar.bz2";
weechat: 2.4 -> 2.5 Changelog [1]: New features - core: use getopt to parse command line arguments - core: add option weechat.look.prefix_same_nick_middle - core: add option weechat.look.buffer_time_same - core: use seconds by default in /repeat interval, allow unit for the interval - core: allow text in addition to a command in command /repeat - core: add option "addreplace" in command /filter - api: return allocated string in hook_info callback and function info_get - api: replace argument "keep_eol" by "flags" in function string_split - api: add function command_options - api: add function string_match_list - irc: add bar items "irc_nick", "irc_host" and "irc_nick_host" - irc: add variable "host" in server structure - relay: add support of UNIX socket - relay: add option relay.weechat.commands - script: use SHA-512 instead of MD5 for script checksum - spell: rename aspell plugin to spell - trigger: add hooks "info" and "info_hashtable" - xfer: rename option xfer.network.speed_limit to xfer.network.speed_limit_send, add option xfer.network.speed_limit_recv Bug fixes - core: don’t execute command scheduled by /repeat and /wait if the buffer does not exist any more - core: set max length to 4096 for /secure passphrase - core: refilter only affected buffers on filter change - fset: fix slow refresh of fset buffer during /reload - irc: fix parsing of MODE command when there are colons after the first mode argument - irc: fix memory leak in infos "irc_server_isupport" and "irc_server_isupport_value" - irc: fix length of string for SHA-512, SHA-256 and SHA-1 in help on ssl_fingerprint option - irc: display an error with /allchan -current or /allpv -current if the current buffer is not an irc buffer - irc: fix update of channels modes with arguments when joining a channel - irc: quote NICK command argument sent to the server - php: fix memory leak in functions string_eval_expression, string_eval_path_home, key_bind, hook_process_hashtable, hook_hsignal_send, info_get_hashtable, hdata_update - relay: fix crash when a weechat relay client reloads the relay plugin with /plugin reload relay - spell: fix detection of nick followed by the nick completer - trigger: fix split of hook arguments Tests - unit: add tests on function util_signal_search Build - core: fix value of libdir in file weechat.pc - core: fix generation of man page weechat-headless with autotools - core: add CMake option "ENABLE_CODE_COVERAGE" to compile with code coverage options (CMake ≥ 3.0 is now required) - core: fix compilation on Mac OS - lua: add detection of Lua 5.3 with autotools - ruby: add detection of Ruby 2.6 - tests: fix compilation of tests on FreeBSD [1] https://weechat.org/files/changelog/ChangeLog-2.5.html#v2.5
2019-06-07 08:56:56 +01:00
sha256 = "14giv8j1phmpg3i9whx45nmskan501lwcq352ps9z52rkja2qxsc";
};
outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins;
enableParallelBuilding = true;
cmakeFlags = with stdenv.lib; [
"-DENABLE_MAN=ON"
"-DENABLE_DOC=ON"
2016-10-14 22:30:38 +01:00
]
++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib" "-DCMAKE_FIND_FRAMEWORK=LAST"]
++ map (p: "-D${p.cmakeFlag}=" + (if p.enabled then "ON" else "OFF")) plugins
;
buildInputs = with stdenv.lib; [
ncurses openssl aspell gnutls zlib curl pkgconfig
libgcrypt makeWrapper cmake asciidoctor
]
++ optionals stdenv.isDarwin [ libobjc libresolv ]
++ concatMap (p: p.buildInputs) enabledPlugins
++ extraBuildInputs;
NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix}"
# Fix '_res_9_init: undefined symbol' error
+ (stdenv.lib.optionalString stdenv.isDarwin "-DBIND_8_COMPAT=1 -lresolv");
postInstall = with stdenv.lib; ''
for p in ${concatMapStringsSep " " (p: p.name) enabledPlugins}; do
from=$out/lib/weechat/plugins/$p.so
to=''${!p}/lib/weechat/plugins/$p.so
mkdir -p $(dirname $to)
mv $from $to
done
'';
meta = {
homepage = http://www.weechat.org/;
description = "A fast, light and extensible chat client";
longDescription = ''
You can find more documentation as to how to customize this package
(eg. adding python modules for scripts that would require them, etc.)
on https://nixos.org/nixpkgs/manual/#sec-weechat .
'';
license = stdenv.lib.licenses.gpl3;
maintainers = with stdenv.lib.maintainers; [ lovek323 the-kenny lheckemann ma27 ];
platforms = stdenv.lib.platforms.unix;
};
}