summary refs log tree commit diff
path: root/pkgs/servers/xmpp
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2016-04-29 20:56:02 +0300
committerNikolay Amiantov <ab@fmap.me>2016-04-30 03:12:31 +0300
commit190eaea73972aee1ce3fd27ef449845fb6ba1bc7 (patch)
treecdaeb6c5bc1d89acea7ea0864318807cf4ee3635 /pkgs/servers/xmpp
parentd2b176ace598042edd3789e8d8d942b080aaf6f7 (diff)
downloadnixpkgs-190eaea73972aee1ce3fd27ef449845fb6ba1bc7.tar
nixpkgs-190eaea73972aee1ce3fd27ef449845fb6ba1bc7.tar.gz
nixpkgs-190eaea73972aee1ce3fd27ef449845fb6ba1bc7.tar.bz2
nixpkgs-190eaea73972aee1ce3fd27ef449845fb6ba1bc7.tar.lz
nixpkgs-190eaea73972aee1ce3fd27ef449845fb6ba1bc7.tar.xz
nixpkgs-190eaea73972aee1ce3fd27ef449845fb6ba1bc7.tar.zst
nixpkgs-190eaea73972aee1ce3fd27ef449845fb6ba1bc7.zip
ejabberd: 16.02 -> 16.04
Diffstat (limited to 'pkgs/servers/xmpp')
-rw-r--r--pkgs/servers/xmpp/ejabberd/default.nix254
1 files changed, 41 insertions, 213 deletions
diff --git a/pkgs/servers/xmpp/ejabberd/default.nix b/pkgs/servers/xmpp/ejabberd/default.nix
index 10658ce4dd2..dd882de723a 100644
--- a/pkgs/servers/xmpp/ejabberd/default.nix
+++ b/pkgs/servers/xmpp/ejabberd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, writeScriptBin, lib, fetchurl, fetchFromGitHub
+{ stdenv, writeScriptBin, lib, fetchurl, fetchFromGitHub, git, cacert
 , erlang, openssl, expat, libyaml, bash, gnused, gnugrep, coreutils, utillinux, procps
 , withMysql ? false
 , withPgsql ? false
@@ -13,8 +13,6 @@
 }:
 
 let
-  ctlpath = lib.makeBinPath [ bash gnused gnugrep coreutils utillinux procps ];
-
   fakegit = writeScriptBin "git" ''
     #! ${stdenv.shell} -e
     if [ "$1" = "describe" ]; then
@@ -22,192 +20,15 @@ let
     fi
   '';
 
-  # These can be extracted from `rebar.config`
-  # Some dependencies are from another packages. Try commenting them out; then during build
-  # you'll get necessary revision information.
-  ejdeps = {
-    lager = fetchFromGitHub {
-      owner = "basho";
-      repo = "lager";
-      rev = "3.0.2";
-      sha256 = "04l40dlqpl2y6ddpbpknmnjf537bjvrmg8r0jnmw1h60dgyb2ydk";
-    };
-    # dependency of lager
-    goldrush = fetchFromGitHub {
-      owner = "DeadZen";
-      repo = "goldrush";
-      rev = "0.1.7";
-      sha256 = "1104j8v86hdavxf08yjyjkpi5vf95rfvsywdx29c69x3z33i4z3m";
-    };
-    p1_utils = fetchFromGitHub {
-      owner = "processone";
-      repo = "p1_utils";
-      rev = "1.0.3";
-      sha256 = "0bw163wx0ji2sz7yb3nzvm1mnnljsdji606xzk33za8c4sgrb4nj";
-    };
-    cache_tab = fetchFromGitHub {
-      owner = "processone";
-      repo = "cache_tab";
-      rev = "1.0.2";
-      sha256 = "1krgn6y95jgc8pc0vkj36p0wcazsb8b6h1x4f0r1936jff2vqk33";
-    };
-    fast_tls = fetchFromGitHub {
-      owner = "processone";
-      repo = "fast_tls";
-      rev = "1.0.1";
-      sha256 = "08lh6935k590hix3z69kjjd75w68vmmjcx7gi4zh8j7li4v9k9l2";
-    };
-    stringprep = fetchFromGitHub {
-      owner = "processone";
-      repo = "stringprep";
-      rev = "1.0.2";
-      sha256 = "1wrisajyll45wf6cz1rb2q70sz83i6nfnfiijsbzhy0xk51436sa";
-    };
-    fast_xml = fetchFromGitHub {
-      owner = "processone";
-      repo = "fast_xml";
-      rev = "1.1.3";
-      sha256 = "1a2k21fqz8rp4laz7wn0hsxy58i1gdwc3qhw3k2kar8lgw4m3wqp";
-    };
-    stun = fetchFromGitHub {
-      owner = "processone";
-      repo = "stun";
-      rev = "1.0.1";
-      sha256 = "0bq0qkc7h3nhqxa6ff2nf6bi4kiax4208716hxfz6l1vxrh7f3p2";
-    };
-    esip = fetchFromGitHub {
-      owner = "processone";
-      repo = "esip";
-      rev = "1.0.2";
-      sha256 = "0ibvb85wkqw81y154bagp0kgf1jmdscmfq8yk73j1k986dmiqfn2";
-    };
-    fast_yaml = fetchFromGitHub {
-      owner = "processone";
-      repo = "fast_yaml";
-      rev = "1.0.2";
-      sha256 = "019imn255bkkvilg4nrcidl8w6dn2jrb2nyrs2nixsgcbmvkdl5k";
-    };
-    jiffy = fetchFromGitHub {
-      owner = "davisp";
-      repo = "jiffy";
-      rev = "0.14.7";
-      sha256 = "1w55vwz4a94v0aajm3lg6nlhpw2w0zdddiw36f2n4sfhbqn0v0jr";
-    };
-    p1_oauth2 = fetchFromGitHub {
-      owner = "processone";
-      repo = "p1_oauth2";
-      rev = "0.6.1";
-      sha256 = "1wvmi3fj05hlbi3sbqpakznq70n76a7nbvbrjhr8k79bmvsh6lyl";
-    };
-    p1_xmlrpc = fetchFromGitHub {
-      owner = "processone";
-      repo = "p1_xmlrpc";
-      rev = "1.15.1";
-      sha256 = "12pfvb3k9alzg7qbph3bc1sw7wk86psm3jrdrfclq90zlpwqa0w3";
-    };
-    luerl = fetchFromGitHub {
-      owner = "rvirding";
-      repo = "luerl";
-      rev = "9524d0309a88b7c62ae93da0b632b185de3ba9db";
-      sha256 = "15yplmv2xybnz3nby940752jw672vj99l1j61rrfy686hgrfnc42";
-    };
-
-    p1_mysql = fetchFromGitHub {
-      owner = "processone";
-      repo = "p1_mysql";
-      rev = "1.0.1";
-      sha256 = "17122xhc420kqfsv4c4g0jcllpdbhg84wdlwd3227w4q729jg6bk";
-    };
-    p1_pgsql = fetchFromGitHub {
-      owner = "processone";
-      repo = "p1_pgsql";
-      rev = "1.0.1";
-      sha256 = "1ca0hhxyfmwjp49zjga1fdhrbaqnxdpmcvs2i6nz6jmapik788nr";
-    };
-    sqlite3 = fetchFromGitHub {
-      owner = "processone";
-      repo = "erlang-sqlite3";
-      rev = "1.1.5";
-      sha256 = "17n4clysg540nx9g8k8mi9l7vkz8wigycgxmzzn0wmgxdf6mhxlb";
-    };
-    p1_pam = fetchFromGitHub {
-      owner = "processone";
-      repo = "epam";
-      rev = "1.0.0";
-      sha256 = "0dlbmfwndhyg855vnhwyccxcjqzf2wcgc7522mjb9q38cva50rpr";
-    };
-    ezlib = fetchFromGitHub {
-      owner = "processone";
-      repo = "ezlib";
-      rev = "1.0.1";
-      sha256 = "1asp7s2q72iql870igc827dvi9iqyd6lhs0q3jbjj2w7xfz4x4kk";
-    };
-    hamcrest = fetchFromGitHub {
-      owner = "hyperthunk";
-      repo = "hamcrest-erlang";
-      rev = "908a24fda4a46776a5135db60ca071e3d783f9f6";
-      sha256 = "0irxidwrb37m0xwls6q9nn2zfs3pyxrgbnjgrhnh7gm35ib51hkj";
-    };
-    riakc = fetchFromGitHub {
-      owner = "basho";
-      repo = "riak-erlang-client";
-      rev = "527722d12d0433b837cdb92a60900c2cb5df8942";
-      sha256 = "13rkwibsjsl2gdysvf11r1hqfrf89hjgpa0x0hz2910f2ryqll3y";
-    };
-    # dependency of riakc
-    riak_pb = fetchFromGitHub {
-      owner = "basho";
-      repo = "riak_pb";
-      rev = "2.1.0.7";
-      sha256 = "1p0qmjq069f7j1m29dv36ayvz8m0pcm94ccsnv5blykfg2c5ja0c";
-    };
-    # dependency of riak_pb
-    protobuffs = fetchFromGitHub {
-      owner = "basho";
-      repo = "erlang_protobuffs";
-      rev = "0.8.2";
-      sha256 = "0w4jmsnc9x2ykqh1q6b12pl8a9973dxdhqk3y0ph17n83q5xz3h7";
-    };
-    elixir = fetchFromGitHub {
-      owner = "elixir-lang";
-      repo = "elixir";
-      rev = "v1.1.0";
-      sha256 = "0r5673x2qdvfbwmvyvj8ddvzgxnkl3cv9jsf1yzsxgdifjbrzwx7";
-    };
-    rebar_elixir_plugin = fetchFromGitHub {
-      owner = "processone";
-      repo = "rebar_elixir_plugin";
-      rev = "0.1.0";
-      sha256 = "0x04ff53mxwd9va8nl4m70dbamp6p4dpxs646c168iqpnpadk3sk";
-    };
-    iconv = fetchFromGitHub {
-      owner = "processone";
-      repo = "iconv";
-      rev = "1.0.0";
-      sha256 = "0dfc23m2lqilj8ixn23wpj5xp1mgajb9b5ch95riigxzxmx97ri9";
-    };
-    meck = fetchFromGitHub {
-      owner = "eproxus";
-      repo = "meck";
-      rev = "0.8.2";
-      sha256 = "0s4qbvryap46cz63awpbv5zzmlcay5pn2lixgmgvcjarqv70cbs7";
-    };
-    eredis = fetchFromGitHub {
-      owner = "wooga";
-      repo = "eredis";
-      rev = "v1.0.8";
-      sha256 = "10fr3kbc2nd2liggsq4y77nfirndzapcxzkjgyp06bpr9cjlvhlm";
-    };
-
-  };
+  ctlpath = lib.makeBinPath [ bash gnused gnugrep coreutils utillinux procps ];
 
 in stdenv.mkDerivation rec {
-  version = "16.02";
+  version = "16.04";
   name = "ejabberd-${version}";
 
   src = fetchurl {
     url = "http://www.process-one.net/downloads/ejabberd/${version}/${name}.tgz";
-    sha256 = "0yiai7zyjdcp0ppc5l5p56bxhg273hwfbv41qlbkg32dhr880f4q";
+    sha256 = "1hrcswk03x5x6f6xy8sac4ihhi6jcmsfp6449k3570j39vklz5ix";
   };
 
   nativeBuildInputs = [ fakegit ];
@@ -222,21 +43,40 @@ in stdenv.mkDerivation rec {
   # Apparently needed for Elixir
   LANG = "en_US.UTF-8";
 
-  depsNames =
-    [ "lager" "goldrush" "p1_utils" "cache_tab" "fast_tls" "stringprep" "fast_xml" "stun" "esip" "fast_yaml"
-      "jiffy" "p1_oauth2" "p1_xmlrpc" "luerl"
-    ]
-    ++ lib.optional withMysql "p1_mysql"
-    ++ lib.optional withPgsql "p1_pgsql"
-    ++ lib.optional withSqlite "sqlite3"
-    ++ lib.optional withPam "p1_pam"
-    ++ lib.optional withZlib "ezlib"
-    ++ lib.optionals withRiak [ "hamcrest" "riakc" "riak_pb" "protobuffs" ]
-    ++ lib.optionals withElixir [ "elixir" "rebar_elixir_plugin" ]
-    ++ lib.optional withIconv "iconv"
-    ++ lib.optional withTools "meck"
-    ++ lib.optional withRedis "eredis"
-  ;
+  deps = stdenv.mkDerivation {
+    name = "ejabberd-deps-${version}";
+
+    inherit src;
+
+    configureFlags = [ "--enable-all" "--with-sqlite3=${sqlite}" ];
+
+    buildInputs = [ git erlang openssl expat libyaml sqlite pam zlib elixir ];
+
+    GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+
+    preBuild = ''
+      patchShebangs .
+    '';
+
+    makeFlags = [ "deps" ];
+
+    installPhase = ''
+      for i in deps/*; do
+        ( cd $i
+          git reset --hard
+          git clean -fdx
+          git describe --always --tags > .rev
+          rm -rf .git
+        )
+      done
+
+      cp -r deps $out
+    '';
+
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+    outputHash = "0kmk22z1r9c23j9hh91975pqh3jkh7z6i1gnmw4qxr8alcnpr75f";
+  };
 
   configureFlags =
     [ (lib.enableFeature withMysql "mysql")
@@ -251,24 +91,11 @@ in stdenv.mkDerivation rec {
       (lib.enableFeature withRedis "redis")
     ] ++ lib.optional withSqlite "--with-sqlite3=${sqlite}";
 
-  depsPaths = map (x: builtins.getAttr x ejdeps) depsNames;
-  depsRevs = map (x: x.rev) depsPaths;
-
   enableParallelBuilding = true;
 
   preBuild = ''
-    mkdir deps
-    depsPathsA=( $depsPaths )
-    depsNamesA=( $depsNames )
-    depsRevsA=( $depsRevs )
-    for i in {0..${toString (builtins.length depsNames - 1)}}; do
-      path="deps/''${depsNamesA[$i]}"
-      cp -R ''${depsPathsA[$i]} "$path"
-      chmod -R +w "$path"
-      echo "''${depsRevsA[$i]}" > "$path/.rev"
-    done
-    touch deps/.got
-    patchShebangs .
+    cp -r $deps deps
+    chmod -R +w deps
 
     for i in deps/*; do
       [ -x "$i/configure" ] && ( cd "$i"; ./configure ) || true
@@ -290,5 +117,6 @@ in stdenv.mkDerivation rec {
     homepage = http://www.ejabberd.im;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.sander lib.maintainers.abbradar ];
+    broken = withElixir;
   };
 }