diff options
Diffstat (limited to 'krebs')
-rw-r--r-- | krebs/3modules/hidden-ssh.nix | 3 | ||||
-rw-r--r-- | krebs/5pkgs/untilport/default.nix | 18 | ||||
-rw-r--r-- | krebs/5pkgs/weechat/default.nix | 80 |
3 files changed, 100 insertions, 1 deletions
diff --git a/krebs/3modules/hidden-ssh.nix b/krebs/3modules/hidden-ssh.nix index 3930dbf42..304049b4e 100644 --- a/krebs/3modules/hidden-ssh.nix +++ b/krebs/3modules/hidden-ssh.nix @@ -38,7 +38,8 @@ let echo "still waiting for ${hiddenServiceDir}/hostname" sleep 1 done - ${pkgs.irc-announce}/bin/irc-announce \ + ${pkgs.untilport}/bin/untilport irc.freenode.org 6667 && \ + ${pkgs.irc-announce}/bin/irc-announce \ irc.freenode.org 6667 ${config.krebs.build.host.name}-ssh \ \#krebs-announce \ "SSH Hidden Service at $(cat ${hiddenServiceDir}/hostname)" diff --git a/krebs/5pkgs/untilport/default.nix b/krebs/5pkgs/untilport/default.nix new file mode 100644 index 000000000..61bcc2b89 --- /dev/null +++ b/krebs/5pkgs/untilport/default.nix @@ -0,0 +1,18 @@ +{ pkgs, ... }: + +pkgs.writeDashBin "untilport" '' + set -euf + + usage() { + echo 'untiport $target $port' + echo 'Sleeps until the destinated port is reachable.' + echo 'ex: untilport google.de 80 && echo "google is now reachable"' + } + + + if [ $# -ne 2 ]; then + usage + else + until ${pkgs.netcat-openbsd}/bin/nc -z "$@"; do sleep 1; done + fi +'' diff --git a/krebs/5pkgs/weechat/default.nix b/krebs/5pkgs/weechat/default.nix new file mode 100644 index 000000000..f5dc6a8d4 --- /dev/null +++ b/krebs/5pkgs/weechat/default.nix @@ -0,0 +1,80 @@ +{ stdenv, fetchurl, ncurses, openssl, aspell, gnutls +, zlib, curl , pkgconfig, libgcrypt +, cmake, makeWrapper, libiconv +, asciidoctor # manpages +, guileSupport ? true, guile +, luaSupport ? true, lua5 +, perlSupport ? true, perl +, pythonPackages +, rubySupport ? true, ruby +, tclSupport ? true, tcl +, extraBuildInputs ? [] }: + +assert guileSupport -> guile != null; +assert luaSupport -> lua5 != null; +assert perlSupport -> perl != null; +assert rubySupport -> ruby != null; +assert tclSupport -> tcl != null; + +let + inherit (pythonPackages) python pycrypto pync; +in + +stdenv.mkDerivation rec { + version = "1.7.1"; + name = "weechat-${version}"; + + src = fetchurl { + url = "http://weechat.org/files/src/weechat-${version}.tar.bz2"; + sha256 = "1020m1lsm8lg9n0dlxgp2wbn9b0r11g8r0namnzi2x6gvxn7iyf0"; + }; + + outputs = [ "out" "doc" ]; + + enableParallelBuilding = true; + cmakeFlags = with stdenv.lib; [ + "-DENABLE_MAN=ON" + "-DENABLE_DOC=ON" + ] + ++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib" "-DCMAKE_FIND_FRAMEWORK=LAST"] + ++ optional (!guileSupport) "-DENABLE_GUILE=OFF" + ++ optional (!luaSupport) "-DENABLE_LUA=OFF" + ++ optional (!perlSupport) "-DENABLE_PERL=OFF" + ++ optional (!rubySupport) "-DENABLE_RUBY=OFF" + ++ optional (!tclSupport) "-DENABLE_TCL=OFF" + ; + + buildInputs = with stdenv.lib; [ + ncurses python openssl aspell gnutls zlib curl pkgconfig + libgcrypt pycrypto makeWrapper + cmake + asciidoctor + ] + ++ optional guileSupport guile + ++ optional luaSupport lua5 + ++ optional perlSupport perl + ++ optional rubySupport ruby + ++ optional tclSupport tcl + ++ 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; '' + NIX_PYTHONPATH="$out/lib/${python.libPrefix}/site-packages" + wrapProgram "$out/bin/weechat" \ + ${optionalString perlSupport "--prefix PATH : ${perl}/bin"} \ + --prefix PATH : ${pythonPackages.python}/bin \ + --prefix PYTHONPATH : "$PYTHONPATH" \ + --prefix PYTHONPATH : "$NIX_PYTHONPATH" + ''; + + meta = { + homepage = http://www.weechat.org/; + description = "A fast, light and extensible chat client"; + license = stdenv.lib.licenses.gpl3; + maintainers = with stdenv.lib.maintainers; [ lovek323 garbas the-kenny ]; + platforms = stdenv.lib.platforms.unix; + }; +} |