btsync: 1.2.91 -> 1.3.77

This also does some various cleanup on the build process. In particular,
patchelf was not properly setting the rpath so e.g. librt and libm did
not point into glibc inside the Nix store on my Ubuntu system. This
properly sets the library paths on installation.

Also, the download URL for BitTorrent Sync changed, which is incredibly
annoying, because the URL doesn't encode version information. So maybe
this will fail later. :(

(A final note: this also changes the package name from 'btsync-bin' to
just 'btsync', and cleans up some meta attributes.)

Signed-off-by: Austin Seipp <aseipp@pobox.com>
This commit is contained in:
Austin Seipp 2014-04-01 03:47:27 -05:00
parent 51e449aabb
commit 010688a763

View file

@ -1,47 +1,43 @@
{ stdenv, fetchurl, patchelf }:
# this package contains the daemon version of bittorrent sync
# it's unfortunately closed source.
let
# TODO: arm, ppc, osx
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!";
interpreter = if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2"
else if stdenv.system == "i686-linux" then "ld-linux.so.2"
sha256 = if stdenv.system == "x86_64-linux" then "1x95pag8ncjx3svm4424fjk5nmbdg8m87fsxy9sc63ba3qs9645j"
else if stdenv.system == "i686-linux" then "0l8d85ib6kbpz5sh9v0qga03i4xph61iiy9xlhazm9h30d5a6l8v"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
version = "1.2.91";
sha256 = if stdenv.system == "x86_64-linux" then "1rx5mmk3ffkh6dbm0m33nyx6spsxqjw9djclcf9x9bs3zfyzgmnd"
else if stdenv.system == "i686-linux" then "1566mp01149gsb57dv87420w1vq2f3adp6g1c90xdxjxzd67yqpw"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
libPath = stdenv.lib.makeLibraryPath [ stdenv.gcc.libc ];
in
stdenv.mkDerivation rec {
name = "btsync-${version}";
version = "1.3.77";
in stdenv.mkDerivation {
name = "btsync-bin-${version}";
src = fetchurl {
url = "http://syncapp.bittorrent.com/${version}/btsync_${arch}-${version}.tar.gz";
url = "http://download-lb.utorrent.com/endpoint/btsync/os/linux-${arch}/track/stable";
name = "btsync-${arch}-${version}.tar.gz";
inherit sha256;
};
dontStrip = true; # Don't strip, otherwise patching the rpaths breaks
sourceRoot = ".";
buildInputs = [ patchelf ];
installPhase = ''
ensureDir "$out/bin/"
cp -r "btsync" "$out/bin/"
patchelf --set-interpreter ${stdenv.glibc}/lib/${interpreter} \
"$out/bin/btsync"
patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
--set-rpath ${libPath} "$out/bin/btsync"
'';
buildInputs = [ patchelf ];
meta = {
homepage = "http://labs.bittorrent.com/experiments/sync.html";
description = "Automatically sync files via secure, distributed technology";
license = stdenv.lib.licenses.unfree;
maintainers = [ stdenv.lib.maintainers.iElectric ];
homepage = "http://www.bittorrent.com/sync";
license = stdenv.lib.licenses.unfreeRedistributable;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ iElectric thoughtpolice ];
};
}