diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/sync')
13 files changed, 737 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix b/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix new file mode 100644 index 000000000000..e4ba29d3a9f8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchFromGitHub, buildPythonApplication, fuse +, appdirs, colorama, dateutil, requests, requests_toolbelt +, fusepy, sqlalchemy }: + +buildPythonApplication rec { + name = pname + "-" + version; + pname = "acd_cli"; + version = "0.3.2"; + + doCheck = false; + + src = fetchFromGitHub { + owner = "yadayada"; + repo = pname; + rev = version; + sha256 = "0a0fr632l24a3jmgla3b1vcm50ayfa9hdbp677ch1chwj5dq4zfp"; + }; + + propagatedBuildInputs = [ appdirs colorama dateutil fusepy requests + requests_toolbelt sqlalchemy ]; + + makeWrapperArgs = [ "--prefix LIBFUSE_PATH : ${fuse}/lib/libfuse.so" ]; + + postFixup = '' + function lnOverBin() { + rm -f $out/bin/{$2,.$2-wrapped} + ln -s $out/bin/$1 $out/bin/$2 + } + lnOverBin acd_cli.py acd-cli + lnOverBin acd_cli.py acd_cli + lnOverBin acd_cli.py acdcli + ''; + + meta = with stdenv.lib; { + description = "A command line interface and FUSE filesystem for Amazon Cloud Drive"; + homepage = https://github.com/yadayada/acd_cli; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ edwtjo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix b/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix new file mode 100644 index 000000000000..fae838a7d5f8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix @@ -0,0 +1,46 @@ +{stdenv, fetchFromGitHub, makeWrapper, gettext, python3Packages, rsync, cron, openssh, sshfs-fuse, encfs }: + +let + inherit (python3Packages) python dbus-python keyring; +in stdenv.mkDerivation rec { + version = "1.1.24"; + + name = "backintime-common-${version}"; + + src = fetchFromGitHub { + owner = "bit-team"; + repo = "backintime"; + rev = "v${version}"; + sha256 = "0g6gabnr60ns8854hijdddbanks7319q4n3fj5l6rc4xsq0qck18"; + }; + + buildInputs = [ makeWrapper gettext python dbus-python keyring openssh cron rsync sshfs-fuse encfs ]; + + installFlags = [ "DEST=$(out)" ]; + + preConfigure = "cd common"; + + dontAddPrefix = true; + + preFixup = + '' + substituteInPlace "$out/bin/backintime" \ + --replace "=\"/usr/share" "=\"$prefix/share" + wrapProgram "$out/bin/backintime" \ + --prefix PYTHONPATH : "$PYTHONPATH" \ + --prefix PATH : "$prefix/bin:$PATH" + ''; + + meta = { + homepage = https://github.com/bit-team/backintime; + description = "Simple backup tool for Linux"; + license = stdenv.lib.licenses.gpl2; + maintainers = [ ]; + platforms = stdenv.lib.platforms.all; + longDescription = '' + Back In Time is a simple backup tool (on top of rsync) for Linux + inspired from “flyback project” and “TimeVault”. The backup is + done by taking snapshots of a specified set of directories. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/backintime/qt4.nix b/nixpkgs/pkgs/applications/networking/sync/backintime/qt4.nix new file mode 100644 index 000000000000..26288f9f6e65 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/backintime/qt4.nix @@ -0,0 +1,28 @@ +{stdenv, makeWrapper, gettext, backintime-common, python3, python3Packages }: + +stdenv.mkDerivation rec { + inherit (backintime-common) version src installFlags; + + name = "backintime-qt4-${version}"; + + buildInputs = [ makeWrapper gettext python3 python3Packages.pyqt4 backintime-common python3 ]; + + preConfigure = "cd qt4"; + configureFlags = [ ]; + + dontAddPrefix = true; + + preFixup = + '' + substituteInPlace "$out/bin/backintime-qt4" \ + --replace "=\"/usr/share" "=\"$prefix/share" + + wrapProgram "$out/bin/backintime-qt4" \ + --prefix PYTHONPATH : "${backintime-common}/share/backintime/common:$PYTHONPATH" \ + --prefix PATH : "${backintime-common}/bin:$PATH" + ''; + + meta = with stdenv.lib; { + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/casync/default.nix b/nixpkgs/pkgs/applications/networking/sync/casync/default.nix new file mode 100644 index 000000000000..8d9b941e26e4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/casync/default.nix @@ -0,0 +1,52 @@ +{ stdenv, fetchFromGitHub +, meson, ninja, pkgconfig, python3, sphinx +, acl, curl, fuse, libselinux, udev, xz, zstd +, fuseSupport ? true +, selinuxSupport ? true +, udevSupport ? true +, glibcLocales, rsync +}: + +stdenv.mkDerivation rec { + name = "casync-${version}"; + version = "2-152-ge4a3c5e"; + + src = fetchFromGitHub { + owner = "systemd"; + repo = "casync"; + rev = "e4a3c5efc8f11e0e99f8cc97bd417665d92b40a9"; + sha256 = "0zx6zvj5a6rr3w9s207rvpfw7gwssiqmp1p3c75bsirmz4nmsdf0"; + }; + + buildInputs = [ acl curl xz zstd ] + ++ stdenv.lib.optionals (fuseSupport) [ fuse ] + ++ stdenv.lib.optionals (selinuxSupport) [ libselinux ] + ++ stdenv.lib.optionals (udevSupport) [ udev ]; + nativeBuildInputs = [ meson ninja pkgconfig python3 sphinx ]; + checkInputs = [ glibcLocales rsync ]; + + postPatch = '' + for f in test/test-*.sh.in; do + patchShebangs $f + done + patchShebangs test/http-server.py + ''; + + PKG_CONFIG_UDEV_UDEVDIR = "lib/udev"; + mesonFlags = stdenv.lib.optionals (!fuseSupport) [ "-Dfuse=false" ] + ++ stdenv.lib.optionals (!udevSupport) [ "-Dudev=false" ] + ++ stdenv.lib.optionals (!selinuxSupport) [ "-Dselinux=false" ]; + + doCheck = true; + preCheck = '' + export LC_ALL="en_US.utf-8" + ''; + + meta = with stdenv.lib; { + description = "Content-Addressable Data Synchronizer"; + homepage = https://github.com/systemd/casync; + license = licenses.lgpl21; + platforms = platforms.linux; + maintainers = with maintainers; [ flokli ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/desync/default.nix b/nixpkgs/pkgs/applications/networking/sync/desync/default.nix new file mode 100644 index 000000000000..6dcd451533ae --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/desync/default.nix @@ -0,0 +1,27 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + name = "desync-${version}"; + version = "0.4.0"; + rev = "v${version}"; + + goPackagePath = "github.com/folbricht/desync"; + + src = fetchFromGitHub { + inherit rev; + owner = "folbricht"; + repo = "desync"; + sha256 = "17qh0g1paa7212j761q9z246k10a3xrwd8fgiizw3lr9adn50kdk"; + }; + + goDeps = ./deps.nix; + + meta = with stdenv.lib; { + description = "Content-addressed binary distribution system"; + longDescription = "An alternate implementation of the casync protocol and storage mechanism with a focus on production-readiness"; + homepage = https://github.com/folbricht/desync; + license = licenses.bsd3; + platforms = platforms.unix; # *may* work on Windows, but varies between releases. + maintainers = [ maintainers.chaduffy ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/desync/deps.nix b/nixpkgs/pkgs/applications/networking/sync/desync/deps.nix new file mode 100644 index 000000000000..7f5f3251d162 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/desync/deps.nix @@ -0,0 +1,312 @@ +[ + + { + goPackagePath = "github.com/datadog/zstd"; + fetch = { + type = "git"; + url = "https://github.com/datadog/zstd"; + rev = "v1.3.4"; + sha256 = "06wphl43ji23c0cmmm6fd3wszbwq36mdp1jarak2a6hmxl6yf0b8"; + }; + } + + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "v1.1.1"; + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; + }; + } + + { + goPackagePath = "github.com/dchest/siphash"; + fetch = { + type = "git"; + url = "https://github.com/dchest/siphash"; + rev = "v1.2.0"; + sha256 = "01qhv9zd9l6p7pwf1fj022mp9s5496rk4lnm3yvpjsiwp6k4af8c"; + }; + } + + { + goPackagePath = "github.com/fatih/color"; + fetch = { + type = "git"; + url = "https://github.com/fatih/color"; + rev = "v1.7.0"; + sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv"; + }; + } + + { + goPackagePath = "github.com/folbricht/tempfile"; + fetch = { + type = "git"; + url = "https://github.com/folbricht/tempfile"; + rev = "v0.0.1"; + sha256 = "0vz08qvbniqxc24vhmcbq5ncnz97ncp4jbxgcf0hziazxfp114z3"; + }; + } + + { + goPackagePath = "github.com/go-ini/ini"; + fetch = { + type = "git"; + url = "https://github.com/go-ini/ini"; + rev = "v1.38.2"; + sha256 = "0xbnw1nd22q6k863n5gs0nxld15w0p8qxbhfky85akcb5rk1vwi9"; + }; + } + + { + goPackagePath = "github.com/gopherjs/gopherjs"; + fetch = { + type = "git"; + url = "https://github.com/gopherjs/gopherjs"; + rev = "0210a2f0f73c"; + sha256 = "1n80xjfc1dkxs8h8mkpw83n89wi5n7hzc3rxhwjs76rkxpq3rc9j"; + }; + } + + { + goPackagePath = "github.com/hanwen/go-fuse"; + fetch = { + type = "git"; + url = "https://github.com/hanwen/go-fuse"; + rev = "1d35017e9701"; + sha256 = "11rggvkd6lc5lcpsfvc9iip4z9cingzpkpshaskv2cirbxdynyi8"; + }; + } + + { + goPackagePath = "github.com/inconshreveable/mousetrap"; + fetch = { + type = "git"; + url = "https://github.com/inconshreveable/mousetrap"; + rev = "v1.0.0"; + sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152"; + }; + } + + { + goPackagePath = "github.com/jtolds/gls"; + fetch = { + type = "git"; + url = "https://github.com/jtolds/gls"; + rev = "v4.2.1"; + sha256 = "1vm37pvn0k4r6d3m620swwgama63laz8hhj3pyisdhxwam4m2g1h"; + }; + } + + { + goPackagePath = "github.com/kr/fs"; + fetch = { + type = "git"; + url = "https://github.com/kr/fs"; + rev = "v0.1.0"; + sha256 = "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"; + }; + } + + { + goPackagePath = "github.com/mattn/go-colorable"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-colorable"; + rev = "v0.0.9"; + sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx"; + }; + } + + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "v0.0.4"; + sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"; + }; + } + + { + goPackagePath = "github.com/mattn/go-runewidth"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-runewidth"; + rev = "v0.0.3"; + sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g"; + }; + } + + { + goPackagePath = "github.com/minio/minio-go"; + fetch = { + type = "git"; + url = "https://github.com/minio/minio-go"; + rev = "v6.0.6"; + sha256 = "0bgivqw1n1189lksp85djw1rqcan2axyh4jv9q54iclrjkpbab37"; + }; + } + + { + goPackagePath = "github.com/mitchellh/go-homedir"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-homedir"; + rev = "v1.0.0"; + sha256 = "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq"; + }; + } + + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "v0.8.0"; + sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5"; + }; + } + + { + goPackagePath = "github.com/pkg/sftp"; + fetch = { + type = "git"; + url = "https://github.com/pkg/sftp"; + rev = "v1.8.2"; + sha256 = "040flbir6sv213xzs75vkd5fd7bmm3fqxfcnsx8fr77zkn52hm4m"; + }; + } + + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "v1.0.0"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + + { + goPackagePath = "github.com/smartystreets/assertions"; + fetch = { + type = "git"; + url = "https://github.com/smartystreets/assertions"; + rev = "7c9eb446e3cf"; + sha256 = "1dix6qgaj6kw38hicy3zs3lvacl1kn0n267b3xw0vvdkqf1v0395"; + }; + } + + { + goPackagePath = "github.com/smartystreets/goconvey"; + fetch = { + type = "git"; + url = "https://github.com/smartystreets/goconvey"; + rev = "ef6db91d284a"; + sha256 = "16znlpsms8z2qc3airawyhzvrzcp70p9bx375i19bg489hgchxb7"; + }; + } + + { + goPackagePath = "github.com/spf13/cobra"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cobra"; + rev = "v0.0.3"; + sha256 = "1q1nsx05svyv9fv3fy6xv6gs9ffimkyzsfm49flvl3wnvf1ncrkd"; + }; + } + + { + goPackagePath = "github.com/spf13/pflag"; + fetch = { + type = "git"; + url = "https://github.com/spf13/pflag"; + rev = "v1.0.2"; + sha256 = "005598piihl3l83a71ahj10cpq9pbhjck4xishx1b4dzc02r9xr2"; + }; + } + + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "v1.2.2"; + sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs"; + }; + } + + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "0709b304e793"; + sha256 = "0i05s09y5pavmfh71fgih7syxg58x7a4krgd8am6d3mnahnmab5c"; + }; + } + + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "161cd47e91fd"; + sha256 = "0254ld010iijygbzykib2vags1dc0wlmcmhgh4jl8iny159lhbcv"; + }; + } + + { + goPackagePath = "golang.org/x/sync"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sync"; + rev = "1d60e4601c6f"; + sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6"; + }; + } + + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "49385e6e1522"; + sha256 = "0spbldahns09fdxkxflb1x24f8k2awdlnr6k5i7ci4fqd19r1dv4"; + }; + } + + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "v0.3.0"; + sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19"; + }; + } + + { + goPackagePath = "gopkg.in/cheggaaa/pb.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/cheggaaa/pb.v1"; + rev = "v1.0.25"; + sha256 = "0vxqiw6f3xyv0zy3g4lksf8za0z8i0hvfpw92hqimsy84f79j3dp"; + }; + } + + { + goPackagePath = "gopkg.in/ini.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/ini.v1"; + rev = "v1.38.2"; + sha256 = "0xbnw1nd22q6k863n5gs0nxld15w0p8qxbhfky85akcb5rk1vwi9"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix b/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix new file mode 100644 index 000000000000..b0315ee3477d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchFromGitHub, fetchpatch, cmake, lua, pkgconfig, rsync, + asciidoc, libxml2, docbook_xml_dtd_45, docbook_xsl, libxslt }: + +stdenv.mkDerivation rec { + name = "lsyncd-${version}"; + version = "2.2.3"; + + src = fetchFromGitHub { + owner = "axkibe"; + repo = "lsyncd"; + rev = "release-${version}"; + sha256 = "1hbsih5hfq9lhgnxm0wb5mrj6xmlk2l0i9a79wzd5f6cnjil9l3x"; + }; + + patches = [ + (fetchpatch { + sha256 = "0b0h2qxh73l502p7phf6qgl8576nf6fvqqp2x5wy3nz7sc9qb1z8"; + name = "fix-non-versioned-lua-not-search-in-cmake.patch"; + url = "https://github.com/axkibe/lsyncd/pull/500/commits/0af99d8d5ba35118e8799684a2d4a8ea4b0c6957.patch"; + }) + ]; + + postPatch = '' + substituteInPlace default-rsync.lua \ + --replace "/usr/bin/rsync" "${rsync}/bin/rsync" + ''; + + dontUseCmakeBuildDir = true; + + buildInputs = [ + rsync + cmake lua pkgconfig + asciidoc libxml2 docbook_xml_dtd_45 docbook_xsl libxslt + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/axkibe/lsyncd; + description = "A utility that synchronizes local directories with remote targets"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ bobvanderlinden ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix new file mode 100644 index 000000000000..4325c8ea88ae --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchFromGitHub, cmake, qtbase }: + +stdenv.mkDerivation rec { + name = "rclone-browser-${version}"; + version = "1.2"; + + src = fetchFromGitHub { + owner = "mmozeiko"; + repo = "RcloneBrowser"; + rev = version; + sha256 = "1ldradd5c606mfkh46y4mhcvf9kbjhamw0gahksp9w43h5dh3ir7"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ qtbase ]; + + meta = with stdenv.lib; { + inherit (src.meta) homepage; + description = "Graphical Frontend to Rclone written in Qt"; + license = licenses.unlicense; + platforms = platforms.linux; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix new file mode 100644 index 000000000000..13d55bcf476d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix @@ -0,0 +1,31 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "rclone"; + version = "1.48.0"; + + src = fetchFromGitHub { + owner = "ncw"; + repo = pname; + rev = "v${version}"; + sha256 = "0wxsn3ynkwh2np12sxdmy435nclg2ry7cw26brz11xc0ri4x9azg"; + }; + + modSha256 = "0bbpny7xcwsvhmdypgbbr0gqc5pa40m71qhbps6k0v09rsgqhpn3"; + + subPackages = [ "." ]; + + outputs = [ "out" "man" ]; + + postInstall = '' + install -D -m644 $src/rclone.1 $man/share/man/man1/rclone.1 + ''; + + meta = with stdenv.lib; { + description = "Command line program to sync files and directories to and from major cloud storage"; + homepage = https://rclone.org; + license = licenses.mit; + maintainers = with maintainers; [ danielfullmer ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix new file mode 100644 index 000000000000..fc4bc6c0671e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl }: + +rec { + version = "3.1.3"; + src = fetchurl { + # signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5 + url = "mirror://samba/rsync/src/rsync-${version}.tar.gz"; + sha256 = "1h0011dj6jgqpgribir4anljjv7bbrdcs8g91pbsmzf5zr75bk2m"; + }; + upstreamPatchTarball = fetchurl { + # signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5 + url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz"; + sha256 = "167vk463bb3xl9c4gsbxms111dk1ip7pq8y361xc0xfa427q9hhd"; + }; + + meta = with stdenv.lib; { + description = "Fast incremental file transfer utility"; + homepage = https://rsync.samba.org/; + license = licenses.gpl3Plus; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix new file mode 100644 index 000000000000..4045c1f0fc51 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, perl, libiconv, zlib, popt +, enableACLs ? !(stdenv.isDarwin || stdenv.isSunOS || stdenv.isFreeBSD), acl ? null +, enableCopyDevicesPatch ? false +}: + +assert enableACLs -> acl != null; + +let + base = import ./base.nix { inherit stdenv fetchurl; }; +in +stdenv.mkDerivation rec { + name = "rsync-${base.version}"; + + mainSrc = base.src; + + patchesSrc = base.upstreamPatchTarball; + + srcs = [mainSrc] ++ stdenv.lib.optional enableCopyDevicesPatch patchesSrc; + patches = stdenv.lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff"; + + buildInputs = [libiconv zlib popt] ++ stdenv.lib.optional enableACLs acl; + nativeBuildInputs = [perl]; + + configureFlags = ["--with-nobody-group=nogroup"]; + + meta = base.meta // { + description = "A fast incremental file transfer utility"; + maintainers = with stdenv.lib.maintainers; [ peti ehmry kampfschlaefer ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix new file mode 100644 index 000000000000..12f992d44a5a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, perl, rsync }: + +let + base = import ./base.nix { inherit stdenv fetchurl; }; +in +stdenv.mkDerivation rec { + name = "rrsync-${base.version}"; + + src = base.src; + + buildInputs = [ rsync ]; + nativeBuildInputs = [perl]; + + # Skip configure and build phases. + # We just want something from the support directory + dontConfigure = true; + dontBuild = true; + + postPatch = '' + substituteInPlace support/rrsync --replace /usr/bin/rsync ${rsync}/bin/rsync + ''; + + installPhase = '' + mkdir -p $out/bin + cp support/rrsync $out/bin + chmod a+x $out/bin/rrsync + ''; + + meta = base.meta // { + description = "A helper to run rsync-only environments from ssh-logins"; + maintainers = [ stdenv.lib.maintainers.kampfschlaefer ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/unison/default.nix b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix new file mode 100644 index 000000000000..ad5a35eb251f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix @@ -0,0 +1,47 @@ +{stdenv, fetchFromGitHub, ocaml, lablgtk, fontschumachermisc, xset, makeWrapper, ncurses +, enableX11 ? true}: + +stdenv.mkDerivation (rec { + + name = "unison-${version}"; + version = "2.51.2"; + src = fetchFromGitHub { + owner = "bcpierce00"; + repo = "unison"; + rev = "v${version}"; + sha256 = "1bykiyc0dc5pkw8x370qkg2kygq9pq7yqzsgczd3y13b6ivm4sdq"; + }; + + buildInputs = [ ocaml makeWrapper ncurses ]; + + preBuild = (if enableX11 then '' + sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)|" src/Makefile.OCaml + '' else "") + '' + echo -e '\ninstall:\n\tcp $(FSMONITOR)$(EXEC_EXT) $(INSTALLDIR)' >> src/fsmonitor/linux/Makefile + ''; + + makeFlags = [ + "INSTALLDIR=$(out)/bin/" + "UISTYLE=${if enableX11 then "gtk2" else "text"}" + ] ++ stdenv.lib.optional (!ocaml.nativeCompilers) "NATIVE=false"; + + preInstall = "mkdir -p $out/bin"; + + postInstall = if enableX11 then '' + for i in $(cd $out/bin && ls); do + wrapProgram $out/bin/$i \ + --run "[ -n \"\$DISPLAY\" ] && (${xset}/bin/xset q | grep -q \"${fontschumachermisc}\" || ${xset}/bin/xset +fp \"${fontschumachermisc}/lib/X11/fonts/misc\")" + done + '' else ""; + + dontStrip = !ocaml.nativeCompilers; + + meta = { + homepage = http://www.cis.upenn.edu/~bcpierce/unison/; + description = "Bidirectional file synchronizer"; + license = stdenv.lib.licenses.gpl3Plus; + maintainers = with stdenv.lib.maintainers; [viric]; + platforms = with stdenv.lib.platforms; unix; + }; + +}) |