summaryrefslogtreecommitdiffstats
path: root/krebs
diff options
context:
space:
mode:
Diffstat (limited to 'krebs')
-rw-r--r--krebs/3modules/hidden-ssh.nix3
-rw-r--r--krebs/5pkgs/untilport/default.nix18
-rw-r--r--krebs/5pkgs/weechat/default.nix80
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;
+ };
+}