summary refs log tree commit diff
diff options
context:
space:
mode:
authorOliver Matthews <oliver@codersoffortune.net>2015-04-06 15:31:40 +0000
committerOliver Matthews <oliver@codersoffortune.net>2015-04-06 15:31:40 +0000
commit0539ed477151a3adfff5012cabff0527a9a8c0bb (patch)
tree01a1bce66f4b7b3fa5816666bf9875e05c29a40b
parent16730fa87aea11333933202637233c530fc182fc (diff)
downloadnixlib-0539ed477151a3adfff5012cabff0527a9a8c0bb.tar
nixlib-0539ed477151a3adfff5012cabff0527a9a8c0bb.tar.gz
nixlib-0539ed477151a3adfff5012cabff0527a9a8c0bb.tar.bz2
nixlib-0539ed477151a3adfff5012cabff0527a9a8c0bb.tar.lz
nixlib-0539ed477151a3adfff5012cabff0527a9a8c0bb.tar.xz
nixlib-0539ed477151a3adfff5012cabff0527a9a8c0bb.tar.zst
nixlib-0539ed477151a3adfff5012cabff0527a9a8c0bb.zip
Add support for btsync 2.x branch
-rw-r--r--lib/maintainers.nix1
-rw-r--r--nixos/modules/services/networking/btsync.nix27
-rw-r--r--pkgs/applications/networking/bittorrentsync/1.4.x.nix (renamed from pkgs/applications/networking/bittorrentsync/default.nix)0
-rw-r--r--pkgs/applications/networking/bittorrentsync/2.0.x.nix42
-rw-r--r--pkgs/top-level/all-packages.nix4
5 files changed, 70 insertions, 4 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index fcc78723f4b3..98a792104373 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -54,6 +54,7 @@
   copumpkin = "Dan Peebles <pumpkingod@gmail.com>";
   coroa = "Jonas Hörsch <jonas@chaoflow.net>";
   cstrahan = "Charles Strahan <charles.c.strahan@gmail.com>";
+  cwoac = "Oliver Matthews <oliver@codersoffortune.net>";
   DamienCassou = "Damien Cassou <damien.cassou@gmail.com>";
   davidrusu = "David Rusu <davidrusu.me@gmail.com>";
   dbohdan = "Danyil Bohdan <danyil.bohdan@gmail.com>";
diff --git a/nixos/modules/services/networking/btsync.nix b/nixos/modules/services/networking/btsync.nix
index 34bddf908731..0bfd3b74348f 100644
--- a/nixos/modules/services/networking/btsync.nix
+++ b/nixos/modules/services/networking/btsync.nix
@@ -4,6 +4,9 @@ with lib;
 
 let
   cfg = config.services.btsync;
+
+  bittorrentSync = cfg.package;
+
   listenAddr = cfg.httpListenAddr + ":" + (toString cfg.httpListenPort);
 
   boolStr = x: if x then "true" else "false";
@@ -57,7 +60,7 @@ let
     ''
       {
         "device_name":     "${cfg.deviceName}",
-        "storage_path":    "/var/lib/btsync/",
+        "storage_path":    "${cfg.storagePath}",
         "listening_port":  ${toString cfg.listeningPort},
         "use_gui":         false,
 
@@ -195,6 +198,24 @@ in
           '';
       };
 
+      package = mkOption {
+        type = types.package;
+        default = pkgs.bittorrentSync14;
+        example = literalExample "pkgs.bittorrentSync20";
+        description = ''
+          Branch of bittorrent sync to use.
+        '';
+      };
+
+      storagePath = mkOption {
+        type = types.path;
+        default = "/var/lib/btsync";
+        example = "/var/lib/btsync";
+        description = ''
+          Where to store the bittorrent sync files.
+        '';
+      };
+
       apiKey = mkOption {
         type = types.str;
         default = "";
@@ -258,7 +279,7 @@ in
 
     users.extraUsers.btsync = {
       description     = "Bittorrent Sync Service user";
-      home            = "/var/lib/btsync";
+      home            = cfg.storagePath;
       createHome      = true;
       uid             = config.ids.uids.btsync;
       group           = "btsync";
@@ -292,6 +313,6 @@ in
       };
     };
 
-    environment.systemPackages = [ pkgs.bittorrentSync ];
+    environment.systemPackages = [ cfg.package ];
   };
 }
diff --git a/pkgs/applications/networking/bittorrentsync/default.nix b/pkgs/applications/networking/bittorrentsync/1.4.x.nix
index 1b439daa853e..1b439daa853e 100644
--- a/pkgs/applications/networking/bittorrentsync/default.nix
+++ b/pkgs/applications/networking/bittorrentsync/1.4.x.nix
diff --git a/pkgs/applications/networking/bittorrentsync/2.0.x.nix b/pkgs/applications/networking/bittorrentsync/2.0.x.nix
new file mode 100644
index 000000000000..9a7c07c322ed
--- /dev/null
+++ b/pkgs/applications/networking/bittorrentsync/2.0.x.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, patchelf }:
+
+let
+  arch = if stdenv.system == "x86_64-linux" then "x64"
+    else if stdenv.system == "i686-linux" then "i386"
+    else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
+
+  sha256 = if stdenv.system == "x86_64-linux" then "cbce76f73f47c23d9073644504fa454976629450d008354bd8faef1bddf368fd"
+    else if stdenv.system == "i686-linux" then "d3e8583c8a54cbeb34ea3621daf0498316a959d944b30f24aa4e518a851ecdeb"
+    else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
+
+  libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.libc ];
+in
+stdenv.mkDerivation rec {
+  name = "btsync-${version}";
+  version = "2.0.93";
+
+  src  = fetchurl {
+    url  = "http://syncapp.bittorrent.com/${version}/btsync_${arch}-${version}.tar.gz";
+    inherit sha256;
+  };
+
+  dontStrip   = true; # Don't strip, otherwise patching the rpaths breaks
+  sourceRoot  = ".";
+  buildInputs = [ patchelf ];
+
+  installPhase = ''
+    mkdir -p "$out/bin/"
+    cp -r "btsync" "$out/bin/"
+
+    patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath ${libPath} "$out/bin/btsync"
+  '';
+
+  meta = {
+    description = "Automatically sync files via secure, distributed technology";
+    homepage    = "http://www.bittorrent.com/sync";
+    license     = stdenv.lib.licenses.unfreeRedistributable;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ iElectric thoughtpolice cwoac ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c8ada7f2f27c..0a42b11c8507 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -11743,7 +11743,9 @@ let
 
   sxiv = callPackage ../applications/graphics/sxiv { };
 
-  bittorrentSync = callPackage ../applications/networking/bittorrentsync { };
+  bittorrentSync = bittorrentSync14;
+  bittorrentSync14 = callPackage ../applications/networking/bittorrentsync/1.4.x.nix { };
+  bittorrentSync20 = callPackage ../applications/networking/bittorrentsync/2.0.x.nix { };
 
   copy-com = callPackage ../applications/networking/copy-com { };