diff options
Diffstat (limited to 'pkgs/applications/networking/p2p')
33 files changed, 494 insertions, 387 deletions
diff --git a/pkgs/applications/networking/p2p/deluge/1/default.nix b/pkgs/applications/networking/p2p/deluge/1.nix index cafba65c788..4171efb7ce2 100644 --- a/pkgs/applications/networking/p2p/deluge/1/default.nix +++ b/pkgs/applications/networking/p2p/deluge/1.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchpatch, intltool, libtorrentRasterbar, pythonPackages }: +{ lib, stdenv, fetchurl, fetchpatch, intltool, libtorrent-rasterbar, pythonPackages }: pythonPackages.buildPythonPackage rec { pname = "deluge"; @@ -19,7 +19,7 @@ pythonPackages.buildPythonPackage rec { propagatedBuildInputs = with pythonPackages; [ pyGtkGlade twisted Mako chardet pyxdg pyopenssl service-identity - libtorrentRasterbar.dev libtorrentRasterbar.python setuptools + libtorrent-rasterbar.dev libtorrent-rasterbar.python setuptools ]; nativeBuildInputs = [ intltool ]; @@ -31,11 +31,12 @@ pythonPackages.buildPythonPackage rec { cp deluge/data/share/applications/deluge.desktop $out/share/applications ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://deluge-torrent.org"; description = "Torrent client"; license = licenses.gpl3Plus; maintainers = with maintainers; [ domenkozar ebzzry ]; + broken = stdenv.isDarwin; platforms = platforms.all; }; } diff --git a/pkgs/applications/networking/p2p/deluge/2/default.nix b/pkgs/applications/networking/p2p/deluge/2/default.nix deleted file mode 100644 index 2e9f08ce98a..00000000000 --- a/pkgs/applications/networking/p2p/deluge/2/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ stdenv, fetchurl, intltool, libtorrentRasterbar, pythonPackages -, gtk3, glib, gobject-introspection, librsvg, wrapGAppsHook }: - -pythonPackages.buildPythonPackage rec { - pname = "deluge"; - version = "2.0.3"; - - src = fetchurl { - url = "http://download.deluge-torrent.org/source/2.0/${pname}-${version}.tar.xz"; - sha256 = "14d8kn2pvr1qv8mwqrxmj85jycr73vwfqz12hzag0ararbkfhyky"; - }; - - propagatedBuildInputs = with pythonPackages; [ - twisted Mako chardet pyxdg pyopenssl service-identity - libtorrentRasterbar.dev libtorrentRasterbar.python setuptools - setproctitle pillow rencode six zope_interface - dbus-python pygobject3 pycairo - gtk3 gobject-introspection librsvg - ]; - - nativeBuildInputs = [ intltool wrapGAppsHook glib ]; - - checkInputs = with pythonPackages; [ - pytest /* pytest-twisted */ pytestcov mock - mccabe pylint - ]; - - doCheck = false; # until pytest-twisted is packaged - - postInstall = '' - mkdir -p $out/share/applications - cp -R deluge/ui/data/pixmaps $out/share/ - cp -R deluge/ui/data/icons $out/share/ - cp deluge/ui/data/share/applications/deluge.desktop $out/share/applications - ''; - - meta = with stdenv.lib; { - homepage = "https://deluge-torrent.org"; - description = "Torrent client"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ domenkozar ebzzry ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/applications/networking/p2p/deluge/default.nix b/pkgs/applications/networking/p2p/deluge/default.nix new file mode 100644 index 00000000000..2bd3cd739e6 --- /dev/null +++ b/pkgs/applications/networking/p2p/deluge/default.nix @@ -0,0 +1,86 @@ +{ lib +, fetchurl +, fetchpatch +, intltool +, libtorrent-rasterbar +, pythonPackages +, gtk3 +, glib +, gobject-introspection +, librsvg +, wrapGAppsHook +}: + +pythonPackages.buildPythonPackage rec { + pname = "deluge"; + version = "2.0.3"; + + src = fetchurl { + url = "http://download.deluge-torrent.org/source/2.0/${pname}-${version}.tar.xz"; + sha256 = "14d8kn2pvr1qv8mwqrxmj85jycr73vwfqz12hzag0ararbkfhyky"; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/deluge-torrent/deluge/commit/d6c96d629183e8bab2167ef56457f994017e7c85.patch"; + sha256 = "sha256-slGMt2bgp36pjDztJUXFeZNbzdJsus0s9ARRD6IpNUw="; + name = "fix_ngettext_warning.patch"; + }) + + (fetchpatch { + url = "https://github.com/deluge-torrent/deluge/commit/351664ec071daa04161577c6a1c949ed0f2c3206.patch"; + sha256 = "sha256-ry1LFgMe9lys66xAvATcPqIa3rzBPWVnsf8FL1dXkHo="; + name = "fix_logging_on_py38.patch"; + }) + ]; + + propagatedBuildInputs = with pythonPackages; [ + twisted + Mako + chardet + pyxdg + pyopenssl + service-identity + libtorrent-rasterbar.dev + libtorrent-rasterbar.python + setuptools + setproctitle + pillow + rencode + six + zope_interface + dbus-python + pygobject3 + pycairo + gtk3 + gobject-introspection + librsvg + ]; + + nativeBuildInputs = [ intltool wrapGAppsHook glib ]; + + checkInputs = with pythonPackages; [ + pytestCheckHook + pytest-twisted + pytest-cov + mock + mccabe + pylint + ]; + + doCheck = false; # until pytest-twisted is packaged + + postInstall = '' + mkdir -p $out/share + cp -R deluge/ui/data/{icons,pixmaps} $out/share/ + install -Dm444 -t $out/share/applications deluge/ui/data/share/applications/deluge.desktop + ''; + + meta = with lib; { + homepage = "https://deluge-torrent.org"; + description = "Torrent client"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ domenkozar ebzzry ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix b/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix index 9355bfa5b8d..f86eefe668f 100644 --- a/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix +++ b/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix @@ -1,62 +1,49 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, qt4, boost, bzip2, libX11 -, fetchpatch, libiconv, pcre-cpp, libidn, lua5, miniupnpc, aspell, gettext }: +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, bzip2, libX11 +, mkDerivation, qtbase, qttools, qtmultimedia, qtscript +, libiconv, pcre-cpp, libidn, lua5, miniupnpc, aspell, gettext, perl }: -stdenv.mkDerivation rec { +mkDerivation rec { pname = "eiskaltdcpp"; - version = "2.2.10"; + version = "2.4.2"; src = fetchFromGitHub { owner = "eiskaltdcpp"; repo = "eiskaltdcpp"; rev = "v${version}"; - sha256 = "1mqz0g69njmlghcra3izarjxbxi1jrhiwn4ww94b8jv8xb9cv682"; + sha256 = "sha256-JmAopXFS6MkxW0wDQ1bC/ibRmWgOpzU0971hcqAehLU="; }; - nativeBuildInputs = [ cmake pkgconfig ]; - buildInputs = [ qt4 boost bzip2 libX11 pcre-cpp libidn lua5 miniupnpc aspell gettext ] - ++ stdenv.lib.optional stdenv.isDarwin libiconv; - - patches = [ - (fetchpatch { - url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/3b7b56bd7060b426b1f1bfded392ae6853644e2e.patch"; - sha256 = "1rqjdsvirn3ks9w9qn893fb73mz84xm04wl13fvsvj8p42i5cjas"; - }) - (fetchpatch { - url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/bb9eb364a943fe2a67b3ea52ec6a3f9e911f07dc.patch"; - sha256 = "1hjhf9a9j4z8v24g5qh5mcg3n0540lbn85y7kvxsh3khc5v3cywx"; - }) - (fetchpatch { - url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/ef4426f1f9a8255e335b0862234e6cc28befef5e.patch"; - sha256 = "13j018c499n4b5as2n39ws64yj0cf4fskxbqab309vmnjkirxv6x"; - }) - (fetchpatch { - url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/a9c136c8707280d0eeb66be6b289d9718287c55c.patch"; - sha256 = "0w8v4mbrzk7pmzc475ff96mzzwlh8a0p62kk7p829m5yqdwj4sc9"; - }) - (fetchpatch { - url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/3b9c502ff5c98856d4f8fdb7ed3c6ef34448bfb7.patch"; - sha256 = "0fjwaq0wd9a164k5ysdjy89hx0ixnxc6q7cvyn1ba28snm0pgxb8"; - }) - ]; + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ qtbase qttools qtmultimedia qtscript bzip2 libX11 pcre-cpp libidn lua5 miniupnpc aspell gettext + (perl.withPackages (p: with p; [ + GetoptLong + TermShellUI + ])) ] + ++ lib.optional stdenv.isDarwin libiconv; cmakeFlags = [ - "-DUSE_ASPELL=ON" - "-DUSE_QT_QML=ON" + "-DDBUS_NOTIFY=ON" "-DFREE_SPACE_BAR_C=ON" + "-DLUA_SCRIPT=ON" + "-DPERL_REGEX=ON" + "-DUSE_ASPELL=ON" + "-DUSE_CLI_JSONRPC=ON" "-DUSE_MINIUPNP=ON" - "-DLOCAL_MINIUPNP=ON" - "-DDBUS_NOTIFY=ON" "-DUSE_JS=ON" - "-DPERL_REGEX=ON" - "-DUSE_CLI_XMLRPC=ON" - "-DWITH_SOUNDS=ON" - "-DLUA_SCRIPT=ON" "-DWITH_LUASCRIPTS=ON" + "-DWITH_SOUNDS=ON" ]; - enableParallelBuilding = true; + postInstall = '' + ln -s $out/bin/$pname-qt $out/bin/$pname + ''; + + preFixup = '' + substituteInPlace $out/bin/eiskaltdcpp-cli-jsonrpc \ + --replace "/usr/local" "$out" + ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A cross-platform program that uses the Direct Connect and ADC protocols"; homepage = "https://github.com/eiskaltdcpp/eiskaltdcpp"; license = licenses.gpl3Plus; diff --git a/pkgs/applications/networking/p2p/freenet/default.nix b/pkgs/applications/networking/p2p/freenet/default.nix index 017f059ff6c..83cc191f1b3 100644 --- a/pkgs/applications/networking/p2p/freenet/default.nix +++ b/pkgs/applications/networking/p2p/freenet/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchFromGitHub, ant, jdk, bash, coreutils, substituteAll }: +{ lib, stdenv, fetchurl, fetchFromGitHub, ant, jdk, bash, coreutils, substituteAll }: let freenet_ext = fetchurl { @@ -73,8 +73,8 @@ in stdenv.mkDerivation { meta = { description = "Decentralised and censorship-resistant network"; homepage = "https://freenetproject.org/"; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = [ stdenv.lib.maintainers.doublec ]; - platforms = with stdenv.lib.platforms; linux; + license = lib.licenses.gpl2Plus; + maintainers = [ ]; + platforms = with lib.platforms; linux; }; } diff --git a/pkgs/applications/networking/p2p/frostwire/default.nix b/pkgs/applications/networking/p2p/frostwire/default.nix index 65e2165f64e..b3b277bf130 100644 --- a/pkgs/applications/networking/p2p/frostwire/default.nix +++ b/pkgs/applications/networking/p2p/frostwire/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, gradle, perl, jre, makeWrapper, makeDesktopItem, mplayer }: +{ lib, stdenv, fetchFromGitHub, gradle_6, perl, jre, makeWrapper, makeDesktopItem, mplayer }: let version = "6.6.7-build-529"; @@ -25,7 +25,7 @@ let deps = stdenv.mkDerivation { name = "${name}-deps"; inherit src; - buildInputs = [ gradle perl ]; + buildInputs = [ gradle_6 perl ]; buildPhase = '' export GRADLE_USER_HOME=$(mktemp -d) ( cd desktop @@ -47,7 +47,7 @@ in stdenv.mkDerivation { inherit name src; nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ gradle ]; + buildInputs = [ gradle_6 ]; buildPhase = '' export GRADLE_USER_HOME=$(mktemp -d) @@ -84,7 +84,7 @@ in stdenv.mkDerivation { --add-flags "-Djava.library.path=$out/lib -jar $out/share/java/frostwire.jar" ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://www.frostwire.com/"; description = "BitTorrent Client and Cloud File Downloader"; license = licenses.gpl2; diff --git a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix index d38e9dc7336..2991550defc 100644 --- a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix +++ b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix @@ -1,14 +1,14 @@ -{ stdenv, fetchurl, jre, makeWrapper }: +{ lib, stdenv, fetchurl, jre, makeWrapper }: -with stdenv.lib; +with lib; stdenv.mkDerivation rec { - version = "6.8.5"; + version = "6.8.9"; pname = "frostwire"; src = fetchurl { url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz"; - sha256 = "1zdas93w1yqg9yx8wlk7pxpdmwvg4ykg54ai7iyq9ir1zha8fyif"; + sha256 = "0f5vyliwncryj6hj5xx0dycxycxddsn28n6zixjrn56jajijyl6q"; }; nativeBuildInputs = [ makeWrapper ]; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { --prefix PATH : ${jre}/bin/ ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://www.frostwire.com/"; description = "BitTorrent Client and Cloud File Downloader"; license = licenses.gpl2; diff --git a/pkgs/applications/networking/p2p/gnunet/default.nix b/pkgs/applications/networking/p2p/gnunet/default.nix index 618ca074912..c1ba42a5e6d 100644 --- a/pkgs/applications/networking/p2p/gnunet/default.nix +++ b/pkgs/applications/networking/p2p/gnunet/default.nix @@ -1,25 +1,27 @@ -{ stdenv, fetchurl, adns, curl, gettext, gmp, gnutls, libextractor +{ lib, stdenv, fetchurl, adns, curl, gettext, gmp, gnutls, libextractor , libgcrypt, libgnurl, libidn, libmicrohttpd, libtool, libunistring -, makeWrapper, ncurses, pkgconfig, libxml2, sqlite, zlib -, libpulseaudio, libopus, libogg, jansson, libsodium }: +, makeWrapper, ncurses, pkg-config, libxml2, sqlite, zlib +, libpulseaudio, libopus, libogg, jansson, libsodium + +, postgresqlSupport ? false, postgresql }: stdenv.mkDerivation rec { pname = "gnunet"; - version = "0.13.2"; + version = "0.14.1"; src = fetchurl { url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz"; - sha256 = "0b4a6bxwhpmj274d281vhny7i5rwydrdmab76xk6ji8vf0p705dn"; + sha256 = "1hhqv994akymf4s593mc1wpsjy6hccd0zbdim3qmc1y3f32hacja"; }; enableParallelBuilding = true; - nativeBuildInputs = [ pkgconfig libtool makeWrapper ]; + nativeBuildInputs = [ pkg-config libtool makeWrapper ]; buildInputs = [ adns curl gmp gnutls libextractor libgcrypt libgnurl libidn libmicrohttpd libunistring libxml2 ncurses gettext libsodium sqlite zlib libpulseaudio libopus libogg jansson - ]; + ] ++ lib.optional postgresqlSupport postgresql; preConfigure = '' # Brute force: since nix-worker chroots don't provide @@ -46,7 +48,7 @@ stdenv.mkDerivation rec { make -k check ''; - meta = with stdenv.lib; { + meta = with lib; { description = "GNU's decentralized anonymous and censorship-resistant P2P framework"; longDescription = '' diff --git a/pkgs/applications/networking/p2p/gnunet/git.nix b/pkgs/applications/networking/p2p/gnunet/git.nix deleted file mode 100644 index b3d455599bf..00000000000 --- a/pkgs/applications/networking/p2p/gnunet/git.nix +++ /dev/null @@ -1,92 +0,0 @@ -{ stdenv, fetchgit, libextractor, libmicrohttpd, libgcrypt -, zlib, gmp, curl, libtool, adns, sqlite, pkgconfig -, libxml2, ncurses, gettext, libunistring, libidn -, makeWrapper, autoconf, automake, texinfo, which -, withVerbose ? false }: - -let - rev = "ce2864cfaa27e55096b480bf35db5f8cee2a5e7e"; -in -stdenv.mkDerivation { - name = "gnunet-git-${rev}"; - - src = fetchgit { - url = "https://gnunet.org/git/gnunet.git"; - inherit rev; - sha256 = "0gbw920m9v4b3425c0d1h7drgl2m1fni1bwjn4fwqnyz7kdqzsgl"; - }; - - buildInputs = [ - libextractor libmicrohttpd libgcrypt gmp curl libtool - zlib adns sqlite libxml2 ncurses libidn - pkgconfig gettext libunistring makeWrapper - autoconf automake texinfo which - ]; - - configureFlags = stdenv.lib.optional withVerbose "--enable-logging=verbose "; - - preConfigure = '' - # Brute force: since nix-worker chroots don't provide - # /etc/{resolv.conf,hosts}, replace all references to `localhost' - # by their IPv4 equivalent. - for i in $(find . \( -name \*.c -or -name \*.conf \) \ - -exec grep -l '\<localhost\>' {} \;) - do - echo "$i: substituting \`127.0.0.1' to \`localhost'..." - sed -i "$i" -e's/\<localhost\>/127.0.0.1/g' - done - - # Make sure the tests don't rely on `/tmp', for the sake of chroot - # builds. - for i in $(find . \( -iname \*test\*.c -or -name \*.conf \) \ - -exec grep -l /tmp {} \;) - do - echo "$i: replacing references to \`/tmp' by \`$TMPDIR'..." - substituteInPlace "$i" --replace "/tmp" "$TMPDIR" - done - - # Ensure NSS installation works fine - configureFlags="$configureFlags --with-nssdir=$out/lib" - - sh contrib/pogen.sh - sh bootstrap - ''; - - doCheck = false; - - /* FIXME: Tests must be run this way, but there are still a couple of - failures. - - postInstall = - '' export GNUNET_PREFIX="$out" - export PATH="$out/bin:$PATH" - make -k check - ''; - */ - - meta = with stdenv.lib; { - description = "GNUnet, GNU's decentralized anonymous and censorship-resistant P2P framework"; - - longDescription = '' - GNUnet is a framework for secure peer-to-peer networking that - does not use any centralized or otherwise trusted services. A - first service implemented on top of the networking layer - allows anonymous censorship-resistant file-sharing. Anonymity - is provided by making messages originating from a peer - indistinguishable from messages that the peer is routing. All - peers act as routers and use link-encrypted connections with - stable bandwidth utilization to communicate with each other. - GNUnet uses a simple, excess-based economic model to allocate - resources. Peers in GNUnet monitor each others behavior with - respect to resource usage; peers that contribute to the - network are rewarded with better service. - ''; - - homepage = "https://gnunet.org/"; - - license = licenses.agpl3Plus; - - maintainers = with stdenv.lib.maintainers; [ ]; - platforms = platforms.gnu ++ platforms.linux; - }; -} diff --git a/pkgs/applications/networking/p2p/gnunet/gtk.nix b/pkgs/applications/networking/p2p/gnunet/gtk.nix index 4090814b3da..3711d5a3c1e 100644 --- a/pkgs/applications/networking/p2p/gnunet/gtk.nix +++ b/pkgs/applications/networking/p2p/gnunet/gtk.nix @@ -1,10 +1,11 @@ { stdenv, fetchurl -, gnome3 +, glade , gnunet , gnutls , gtk3 , libextractor , libgcrypt +, libsodium , libxml2 , pkg-config , wrapGAppsHook @@ -12,11 +13,11 @@ stdenv.mkDerivation rec { pname = "gnunet-gtk"; - version = "0.13.1"; + version = "0.14.0"; src = fetchurl { url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz"; - sha256 = "1zdzgq16h77w6ybwg3lqjsjr965np6iqvncqvkbj07glqd4wss0j"; + sha256 = "18rc7mb45y17d5nrlpf2p4ixp7ir67gcgjf4hlj4r95ic5zi54wa"; }; nativeBuildInputs= [ @@ -25,15 +26,18 @@ stdenv.mkDerivation rec { ]; buildInputs = [ - gnome3.glade + glade gnunet gnutls gtk3 libextractor libgcrypt + libsodium libxml2 ]; + configureFlags = [ "--with-gnunet=${gnunet}" ]; + patchPhase = "patchShebangs pixmaps/icon-theme-installer"; meta = gnunet.meta // { diff --git a/pkgs/applications/networking/p2p/ktorrent/default.nix b/pkgs/applications/networking/p2p/ktorrent/default.nix index 19be24bd1b1..94a4642b2de 100644 --- a/pkgs/applications/networking/p2p/ktorrent/default.nix +++ b/pkgs/applications/networking/p2p/ktorrent/default.nix @@ -22,8 +22,6 @@ mkDerivation rec { libktorrent taglib libgcrypt kplotting ]; - enableParallelBuilding = true; - meta = with lib; { description = "KDE integrated BtTorrent client"; homepage = "https://www.kde.org/applications/internet/ktorrent/"; diff --git a/pkgs/applications/networking/p2p/magnetico/default.nix b/pkgs/applications/networking/p2p/magnetico/default.nix index b8c1991c88f..124e3492c8c 100644 --- a/pkgs/applications/networking/p2p/magnetico/default.nix +++ b/pkgs/applications/networking/p2p/magnetico/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "magnetico"; - version = "0.11.0"; + version = "0.12.0"; src = fetchFromGitHub { owner = "boramalper"; repo = "magnetico"; rev = "v${version}"; - sha256 = "1622xcl5v67lrnkjwbg7g5b5ikrawx7p91jxbj3ixc1za2f3a3fn"; + sha256 = "1avqnfn4llmc9xmpsjfc9ivki0cfvd8sljfzd9yac94xcj581s83"; }; - vendorSha256 = "0g4m0jnpy0q64xnflphyc0lmhni0q9448h7grbbr7f1s9lpqsjml"; + vendorSha256 = "087kikj6sjhjxqymnj7bpxawfmwckihi6mbmi39w0bn2040aflx5"; nativeBuildInputs = [ go-bindata ]; buildPhase = '' @@ -23,7 +23,7 @@ buildGoModule rec { ''; meta = with lib; { - description = "Autonomous (self-hosted) BitTorrent DHT search engine suite."; + description = "Autonomous (self-hosted) BitTorrent DHT search engine suite"; homepage = "https://github.com/boramalper/magnetico"; license = licenses.agpl3; badPlatforms = platforms.darwin; diff --git a/pkgs/applications/networking/p2p/mldonkey/default.nix b/pkgs/applications/networking/p2p/mldonkey/default.nix index 786ba434b92..41b8a7d0b6c 100644 --- a/pkgs/applications/networking/p2p/mldonkey/default.nix +++ b/pkgs/applications/networking/p2p/mldonkey/default.nix @@ -1,37 +1,31 @@ -{ stdenv, fetchurl, ocamlPackages, zlib, bzip2, ncurses, file, gd, libpng, libjpeg }: +{ lib, stdenv, fetchurl, ocamlPackages, zlib }: -stdenv.mkDerivation ({ - name = "mldonkey-3.1.6"; +stdenv.mkDerivation rec { + pname = "mldonkey"; + version = "3.1.7-2"; src = fetchurl { - url = "https://github.com/ygrek/mldonkey/releases/download/release-3-1-6/mldonkey-3.1.6.tar.bz2"; - sha256 = "0g84islkj72ymp0zzppcj9n4r21h0vlghnq87hv2wg580mybadhv"; + url = "https://ygrek.org/p/release/mldonkey/mldonkey-${version}.tar.bz2"; + sha256 = "b926e7aa3de4b4525af73c88f1724d576b4add56ef070f025941dd51cb24a794"; }; - preConfigure = stdenv.lib.optionalString (ocamlPackages.camlp4 != null) '' + preConfigure = '' substituteInPlace Makefile --replace '+camlp4' \ '${ocamlPackages.camlp4}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/camlp4' ''; - buildInputs = [ zlib ncurses bzip2 file gd libpng libjpeg ] ++ - (with ocamlPackages; [ ocaml camlp4 ]); - configureFlags = [ "--disable-gui" ]; + buildInputs = (with ocamlPackages; [ + ocaml + camlp4 + num + ]) ++ [ + zlib + ]; meta = { description = "Client for many p2p networks, with multiple frontends"; homepage = "http://mldonkey.sourceforge.net/"; - license = stdenv.lib.licenses.gpl2; - platforms = stdenv.lib.platforms.unix; + license = lib.licenses.gpl2Only; + platforms = lib.platforms.unix; }; -} // (if !ocamlPackages.ocaml.nativeCompilers then -{ - # Byte code compilation (the ocaml opt compiler is not supported in some platforms) - buildPhase = "make mlnet.byte"; - installPhase = '' - mkdir -p $out/bin - cp mlnet.byte $out/bin/mlnet - ''; - - # ocaml bytecode selfcontained binaries loose the bytecode if stripped - dontStrip = true; -} else {})) +} diff --git a/pkgs/applications/networking/p2p/ncdc/default.nix b/pkgs/applications/networking/p2p/ncdc/default.nix index c956f26b116..dd7f4a7bb60 100644 --- a/pkgs/applications/networking/p2p/ncdc/default.nix +++ b/pkgs/applications/networking/p2p/ncdc/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, ncurses, zlib, bzip2, sqlite, pkgconfig, glib, gnutls }: +{ lib, stdenv, fetchurl, ncurses, zlib, bzip2, sqlite, pkg-config, glib, gnutls }: stdenv.mkDerivation rec { pname = "ncdc"; @@ -9,10 +9,10 @@ stdenv.mkDerivation rec { sha256 = "1bdgqd07f026qk6vpbxqsin536znd33931m3b4z44prlm9wd6pyi"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ ncurses zlib bzip2 sqlite glib gnutls ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Modern and lightweight direct connect client with a friendly ncurses interface"; homepage = "https://dev.yorhel.nl/ncdc"; license = licenses.mit; diff --git a/pkgs/applications/networking/p2p/opentracker/default.nix b/pkgs/applications/networking/p2p/opentracker/default.nix index ed44ff24fec..f08e5c42e1d 100644 --- a/pkgs/applications/networking/p2p/opentracker/default.nix +++ b/pkgs/applications/networking/p2p/opentracker/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, libowfat, zlib }: +{ lib, stdenv, fetchgit, libowfat, zlib, nixosTests }: stdenv.mkDerivation { name = "opentracker-2018-05-26"; @@ -11,6 +11,11 @@ stdenv.mkDerivation { buildInputs = [ libowfat zlib ]; + makeFlags = [ + "LIBOWFAT_HEADERS=${libowfat}/include/libowfat" + "LIBOWFAT_LIBRARY=${libowfat}/lib" + ]; + installPhase = '' runHook preInstall install -D opentracker $out/bin/opentracker @@ -18,11 +23,15 @@ stdenv.mkDerivation { runHook postInstall ''; - meta = with stdenv.lib; { + passthru.tests = { + bittorrent-integration = nixosTests.bittorrent; + }; + + meta = with lib; { homepage = "https://erdgeist.org/arts/software/opentracker/"; license = licenses.beerware; platforms = platforms.linux; - description = "Bittorrent tracker project which aims for minimal resource usage and is intended to run at your wlan router."; + description = "Bittorrent tracker project which aims for minimal resource usage and is intended to run at your wlan router"; maintainers = with maintainers; [ makefu ]; }; } diff --git a/pkgs/applications/networking/p2p/qbittorrent/default.nix b/pkgs/applications/networking/p2p/qbittorrent/default.nix index 964752f3b85..bd4fafed111 100644 --- a/pkgs/applications/networking/p2p/qbittorrent/default.nix +++ b/pkgs/applications/networking/p2p/qbittorrent/default.nix @@ -1,29 +1,34 @@ -{ mkDerivation, lib, fetchFromGitHub, pkgconfig -, boost, libtorrentRasterbar, qtbase, qttools, qtsvg -, debugSupport ? false # Debugging +{ mkDerivation, lib, fetchFromGitHub, makeWrapper, pkg-config +, boost, libtorrent-rasterbar, qtbase, qttools, qtsvg +, debugSupport ? false , guiSupport ? true, dbus ? null # GUI (disable to run headless) , webuiSupport ? true # WebUI +, trackerSearch ? true, python3 ? null }: assert guiSupport -> (dbus != null); -with lib; +assert trackerSearch -> (python3 != null); +with lib; mkDerivation rec { pname = "qbittorrent"; - version = "4.2.5"; + version = "4.3.5"; src = fetchFromGitHub { owner = "qbittorrent"; - repo = "qbittorrent"; + repo = "qBittorrent"; rev = "release-${version}"; - sha256 = "1n613ylg6i9gisgk0dbr2kpfasyizrkdjff1r8smd4vri2qrdksn"; + sha256 = "1vdk42f8rxffyfydjk5cgzg5gl88ng2pynlyxw5ajh08wvkkjzgy"; }; + enableParallelBuilding = true; + # NOTE: 2018-05-31: CMake is working but it is not officially supported - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ makeWrapper pkg-config ]; - buildInputs = [ boost libtorrentRasterbar qtbase qttools qtsvg ] - ++ optional guiSupport dbus; # D(esktop)-Bus depends on GUI support + buildInputs = [ boost libtorrent-rasterbar qtbase qttools qtsvg ] + ++ optional guiSupport dbus # D(esktop)-Bus depends on GUI support + ++ optional trackerSearch python3; # Otherwise qm_gen.pri assumes lrelease-qt5, which does not exist. QMAKE_LRELEASE = "lrelease"; @@ -35,12 +40,17 @@ mkDerivation rec { ++ optional (!webuiSupport) "--disable-webui" ++ optional debugSupport "--enable-debug"; - enableParallelBuilding = true; + postInstall = "wrapProgram $out/bin/${ + if guiSupport + then "qbittorrent" + else "qbittorrent-nox" + } --prefix PATH : ${makeBinPath [ python3 ]}"; meta = { description = "Featureful free software BitTorrent client"; homepage = "https://www.qbittorrent.org/"; - license = licenses.gpl2; + changelog = "https://github.com/qbittorrent/qBittorrent/blob/release-${version}/Changelog"; + license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = with maintainers; [ Anton-Latukha ]; }; diff --git a/pkgs/applications/networking/p2p/retroshare/default.nix b/pkgs/applications/networking/p2p/retroshare/default.nix index a6a0ab27287..e69155d4c2f 100644 --- a/pkgs/applications/networking/p2p/retroshare/default.nix +++ b/pkgs/applications/networking/p2p/retroshare/default.nix @@ -1,59 +1,53 @@ -{ stdenv, fetchFromGitHub, libupnp, gpgme, gnome3, glib, libssh, pkgconfig, protobuf, bzip2 -, libXScrnSaver, speex, curl, libxml2, libxslt, sqlcipher, libmicrohttpd, opencv, qmake, ffmpeg_3 -, qtmultimedia, qtx11extras, qttools }: +{ lib, mkDerivation, fetchFromGitHub, qmake, cmake, pkg-config, miniupnpc, bzip2 +, speex, libmicrohttpd, libxml2, libxslt, sqlcipher, rapidjson, libXScrnSaver +, qtbase, qtx11extras, qtmultimedia, libgnome-keyring3 +}: -stdenv.mkDerivation rec { +mkDerivation rec { pname = "retroshare"; - version = "0.6.2"; + version = "0.6.6"; src = fetchFromGitHub { owner = "RetroShare"; repo = "RetroShare"; rev = "v${version}"; - sha256 = "0hly2x87wdvqzzwf3wjzi7092bj8fk4xs6302rkm8gp9bkkmiiw8"; + sha256 = "1hsymbhsfgycj39mdkrdp2hgq8irmvxa4a6jx2gg339m1fgf2xmh"; + fetchSubmodules = true; }; - # NIX_CFLAGS_COMPILE = [ "-I${glib.dev}/include/glib-2.0" "-I${glib.dev}/lib/glib-2.0/include" "-I${libxml2.dev}/include/libxml2" "-I${sqlcipher}/include/sqlcipher" ]; - - patchPhase = '' - # Fix build error - sed -i 's/UpnpString_get_String(es_event->PublisherUrl)/es_event->PublisherUrl/' \ - libretroshare/src/upnp/UPnPBase.cpp - ''; + patches = [ + # The build normally tries to get git sub-modules during build + # but we already have them checked out + ./no-submodules.patch + ]; - nativeBuildInputs = [ pkgconfig qmake ]; + nativeBuildInputs = [ pkg-config qmake cmake ]; buildInputs = [ - speex libupnp gpgme gnome3.libgnome-keyring glib libssh qtmultimedia qtx11extras qttools - protobuf bzip2 libXScrnSaver curl libxml2 libxslt sqlcipher libmicrohttpd opencv ffmpeg_3 + speex miniupnpc qtmultimedia qtx11extras qtbase libgnome-keyring3 + bzip2 libXScrnSaver libxml2 libxslt sqlcipher libmicrohttpd rapidjson ]; - preConfigure = '' - qmakeFlags="$qmakeFlags DESTDIR=$out" - ''; + qmakeFlags = [ + # Upnp library autodetection doesn't work + "RS_UPNP_LIB=miniupnpc" - # gui/settings/PluginsPage.h:25:28: fatal error: ui_PluginsPage.h: No such file or directory - enableParallelBuilding = false; + # These values are normally found from the .git folder + "RS_MAJOR_VERSION=${lib.versions.major version}" + "RS_MINOR_VERSION=${lib.versions.minor version}" + "RS_MINI_VERSION=${lib.versions.patch version}" + "RS_EXTRA_VERSION=" + ]; postInstall = '' - mkdir -p $out/bin - mv $out/RetroShare06-nogui $out/bin/RetroShare-nogui - mv $out/RetroShare06 $out/bin/Retroshare - ln -s $out/bin/RetroShare-nogui $out/bin/retroshare-nogui - - # plugins - mkdir -p $out/share/retroshare - mv $out/lib* $out/share/retroshare - # BT DHT bootstrap cp libbitdht/src/bitdht/bdboot.txt $out/share/retroshare ''; - meta = with stdenv.lib; { - description = ""; + meta = with lib; { + description = "Decentralized peer to peer chat application."; homepage = "http://retroshare.sourceforge.net/"; license = licenses.gpl2Plus; platforms = platforms.linux; - maintainers = [ maintainers.domenkozar ]; - broken = true; # broken by libupnp: 1.6.21 -> 1.8.3 (#41684) + maintainers = with maintainers; [ StijnDW ]; }; } diff --git a/pkgs/applications/networking/p2p/retroshare/no-submodules.patch b/pkgs/applications/networking/p2p/retroshare/no-submodules.patch new file mode 100644 index 00000000000..d4726800309 --- /dev/null +++ b/pkgs/applications/networking/p2p/retroshare/no-submodules.patch @@ -0,0 +1,62 @@ +diff --git a/libretroshare/src/libretroshare.pro b/libretroshare/src/libretroshare.pro +index 84d18944e..71aeb67d2 100644 +--- a/libretroshare/src/libretroshare.pro ++++ b/libretroshare/src/libretroshare.pro +@@ -870,20 +870,14 @@ rs_jsonapi { + genrestbedlib.variable_out = PRE_TARGETDEPS + win32-g++:isEmpty(QMAKE_SH) { + genrestbedlib.commands = \ +- cd /D $$shell_path($${RS_SRC_PATH}) && git submodule update --init supportlibs/restbed || cd . $$escape_expand(\\n\\t) \ +- cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/asio || cd . $$escape_expand(\\n\\t) \ +- cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/catch || cd . $$escape_expand(\\n\\t )\ +- cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/kashmir || cd . $$escape_expand(\\n\\t) \ ++ cd /D $$shell_path($${RS_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \ ++ cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \ ++ cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t )\ ++ cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \ + $(CHK_DIR_EXISTS) $$shell_path($$UDP_DISCOVERY_BUILD_PATH) $(MKDIR) $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) $$escape_expand(\\n\\t) + } else { + genrestbedlib.commands = \ +- cd $${RS_SRC_PATH} && ( \ +- git submodule update --init supportlibs/restbed ; \ +- cd $${RESTBED_SRC_PATH} ; \ +- git submodule update --init dependency/asio ; \ +- git submodule update --init dependency/catch ; \ +- git submodule update --init dependency/kashmir ; \ +- true ) && \ ++ cd $${RS_SRC_PATH} && \ + mkdir -p $${RESTBED_BUILD_PATH} && + } + genrestbedlib.commands += \ +@@ -991,14 +985,9 @@ rs_broadcast_discovery { + udpdiscoverycpplib.variable_out = PRE_TARGETDEPS + win32-g++:isEmpty(QMAKE_SH) { + udpdiscoverycpplib.commands = \ +- cd /D $$shell_path($${RS_SRC_PATH}) && git submodule update --init supportlibs/udp-discovery-cpp || cd . $$escape_expand(\\n\\t) \ + $(CHK_DIR_EXISTS) $$shell_path($$UDP_DISCOVERY_BUILD_PATH) $(MKDIR) $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) $$escape_expand(\\n\\t) + } else { +- udpdiscoverycpplib.commands = \ +- cd $${RS_SRC_PATH} && ( \ +- git submodule update --init supportlibs/udp-discovery-cpp || \ +- true ) && \ +- mkdir -p $${UDP_DISCOVERY_BUILD_PATH} && ++ udpdiscoverycpplib.commands = mkdir -p $${UDP_DISCOVERY_BUILD_PATH} && + } + udpdiscoverycpplib.commands += \ + cd $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) && \ +diff --git a/retroshare-gui/src/retroshare-gui.pro b/retroshare-gui/src/retroshare-gui.pro +index 654efd170..06cba9ba3 100644 +--- a/retroshare-gui/src/retroshare-gui.pro ++++ b/retroshare-gui/src/retroshare-gui.pro +@@ -66,10 +66,7 @@ rs_gui_cmark { + gencmarklib.CONFIG += target_predeps combine + gencmarklib.variable_out = PRE_TARGETDEPS + gencmarklib.commands = \ +- cd $${RS_SRC_PATH} && ( \ +- git submodule update --init supportlibs/cmark ; \ +- cd $${CMARK_SRC_PATH} ; \ +- true ) && \ ++ cd $${RS_SRC_PATH} && \ + mkdir -p $${CMARK_BUILD_PATH} && cd $${CMARK_BUILD_PATH} && \ + cmake \ + -DCMAKE_CXX_COMPILER=$$QMAKE_CXX \ diff --git a/pkgs/applications/networking/p2p/soulseekqt/default.nix b/pkgs/applications/networking/p2p/soulseekqt/default.nix index 2a8a0622713..0d2fc0fd833 100644 --- a/pkgs/applications/networking/p2p/soulseekqt/default.nix +++ b/pkgs/applications/networking/p2p/soulseekqt/default.nix @@ -23,7 +23,7 @@ mkDerivation rec { dontBuild = true; dontConfigure = true; - + nativeBuildInputs = [ imagemagick autoPatchelfHook desktop-file-utils ]; buildInputs = [ qtmultimedia stdenv.cc.cc ]; @@ -53,7 +53,7 @@ mkDerivation rec { description = "Official Qt SoulSeek client"; homepage = "https://www.slsknet.org"; license = licenses.unfree; - maintainers = [ maintainers.genesis ]; + maintainers = [ ]; platforms = [ "x86_64-linux" ]; }; } diff --git a/pkgs/applications/networking/p2p/stig/default.nix b/pkgs/applications/networking/p2p/stig/default.nix index 276cabfa2aa..6c09043a65b 100644 --- a/pkgs/applications/networking/p2p/stig/default.nix +++ b/pkgs/applications/networking/p2p/stig/default.nix @@ -1,4 +1,4 @@ -{ lib +{ lib, stdenv , fetchFromGitHub , python3Packages }: @@ -54,6 +54,9 @@ python3Packages.buildPythonApplication rec { "--deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second" # TestScrollBarWithScrollable.test_wrapping_bug fails "--deselect=tests/tui_test/scroll_test.py::TestScrollBarWithScrollable::test_wrapping_bug" + ] ++ lib.optionals stdenv.isDarwin [ + "--deselect=tests/client_test/aiotransmission_test/api_torrent_test.py" + "--deselect=tests/client_test/aiotransmission_test/rpc_test.py" ]; meta = with lib; { diff --git a/pkgs/applications/networking/p2p/synapse-bt/default.nix b/pkgs/applications/networking/p2p/synapse-bt/default.nix index e2847d88f8a..c7104d9011d 100644 --- a/pkgs/applications/networking/p2p/synapse-bt/default.nix +++ b/pkgs/applications/networking/p2p/synapse-bt/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, CoreServices, Security }: +{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, CoreServices, Security }: rustPlatform.buildRustPackage rec { pname = "synapse-bt"; @@ -11,15 +11,15 @@ rustPlatform.buildRustPackage rec { sha256 = "01npv3zwia5d534zdwisd9xfng507adv4qkljf8z0zm0khqqn71a"; }; - cargoSha256 = "0lhhdzq4sadnp2pnbq309d1mb7ggbf24k5ivlchrjhllbim1wmdz"; + cargoSha256 = "0sy0vlpkj967g9lyyh7ska8cpw5xh0g04kj071a32idrqc3dcjb1"; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ] - ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices Security ]; + ++ lib.optionals stdenv.isDarwin [ CoreServices Security ]; cargoBuildFlags = [ "--all" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Flexible and fast BitTorrent daemon"; homepage = "https://synapse-bt.org/"; license = licenses.isc; diff --git a/pkgs/applications/networking/p2p/tixati/default.nix b/pkgs/applications/networking/p2p/tixati/default.nix index 2e14bd0eb0f..d80165c4405 100644 --- a/pkgs/applications/networking/p2p/tixati/default.nix +++ b/pkgs/applications/networking/p2p/tixati/default.nix @@ -1,17 +1,17 @@ -{ stdenv, fetchurl, glib, zlib, dbus, dbus-glib, gtk2, gdk-pixbuf, cairo, pango }: +{ lib, stdenv, fetchurl, glib, zlib, dbus, dbus-glib, gtk2, gdk-pixbuf, cairo, pango }: stdenv.mkDerivation rec { pname = "tixati"; - version = "2.73"; + version = "2.81"; src = fetchurl { url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz"; - sha256 = "1ncrfc4wgf02la2h3zpdcz07b980n9232lg5f62q7ab79fjrcrfr"; + sha256 = "sha256-qwKxlmE59V+rXtuYWBMwD1O7OO4gb36lN8syFyQ6uLc="; }; installPhase = '' patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath ${stdenv.lib.makeLibraryPath [ glib zlib dbus dbus-glib gtk2 gdk-pixbuf cairo pango ]} \ + --set-rpath ${lib.makeLibraryPath [ glib zlib dbus dbus-glib gtk2 gdk-pixbuf cairo pango ]} \ tixati install -D tixati $out/bin/tixati install -D tixati.desktop $out/share/applications/tixati.desktop @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { dontStrip = true; - meta = with stdenv.lib; { + meta = with lib; { description = "Torrent client"; homepage = "http://www.tixati.com"; license = licenses.unfree; diff --git a/pkgs/applications/networking/p2p/torrential/default.nix b/pkgs/applications/networking/p2p/torrential/default.nix index d62e3b3b5a3..cbeb6afa408 100644 --- a/pkgs/applications/networking/p2p/torrential/default.nix +++ b/pkgs/applications/networking/p2p/torrential/default.nix @@ -1,8 +1,8 @@ -{ stdenv +{ lib, stdenv , fetchFromGitHub , nix-update-script , cmake -, pkgconfig +, pkg-config , vala_0_40 , pantheon , curl @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake vala_0_40 # https://github.com/davidmhewitt/torrential/issues/135 - pkgconfig + pkg-config wrapGAppsHook ]; @@ -57,7 +57,7 @@ stdenv.mkDerivation rec { }; }; - meta = with stdenv.lib; { + meta = with lib; { description = "Download torrents in style with this speedy, minimalist torrent client for elementary OS"; homepage = "https://github.com/davidmhewitt/torrential"; maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers; diff --git a/pkgs/applications/networking/p2p/transgui/default.nix b/pkgs/applications/networking/p2p/transgui/default.nix index dbe3bb50e6d..0a2f90ecb71 100644 --- a/pkgs/applications/networking/p2p/transgui/default.nix +++ b/pkgs/applications/networking/p2p/transgui/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, pkgconfig, makeDesktopItem, unzip, fpc, lazarus, +{ lib, stdenv, fetchFromGitHub, pkg-config, makeDesktopItem, unzip, fpc, lazarus, libX11, glib, gtk2, gdk-pixbuf, pango, atk, cairo, openssl }: stdenv.mkDerivation rec { @@ -12,9 +12,9 @@ stdenv.mkDerivation rec { sha256 = "1dyx778756zhvz5sxgdvy49p2c0x44w4nmcfd90wqrmgfknncnf5"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config unzip ]; buildInputs = [ - unzip fpc lazarus stdenv.cc + fpc lazarus stdenv.cc libX11 glib gtk2 gdk-pixbuf pango atk cairo openssl ]; @@ -29,6 +29,7 @@ stdenv.mkDerivation rec { ''; preBuild = '' + FPCDIR=${fpc}/lib/fpc/${fpc.version} fpcmake -w lazbuild -B transgui.lpr --lazarusdir=${lazarus}/share/lazarus ''; @@ -48,11 +49,11 @@ stdenv.mkDerivation rec { comment = meta.description; desktopName = "Transmission Remote GUI"; genericName = "BitTorrent Client"; - categories = stdenv.lib.concatStringsSep ";" [ + categories = lib.concatStringsSep ";" [ "Application" "Network" "FileTransfer" "P2P" "GTK" ]; startupNotify = "true"; - mimeType = stdenv.lib.concatStringsSep ";" [ + mimeType = lib.concatStringsSep ";" [ "application/x-bittorrent" "x-scheme-handler/magnet" ]; }; @@ -69,8 +70,8 @@ stdenv.mkDerivation rec { meta = { description = "A cross platform front-end for the Transmission Bit-Torrent client"; homepage = "https://sourceforge.net/p/transgui"; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = with stdenv.lib.maintainers; [ ramkromberg ]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ ramkromberg ]; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/applications/networking/p2p/transmission-remote-cli/default.nix b/pkgs/applications/networking/p2p/transmission-remote-cli/default.nix deleted file mode 100644 index 7c6e35752a0..00000000000 --- a/pkgs/applications/networking/p2p/transmission-remote-cli/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ stdenv, fetchurl, pythonPackages }: - -stdenv.mkDerivation rec { - pname = "transmission-remote-cli"; - version = "1.7.1"; - - src = fetchurl { - url = "https://github.com/fagga/transmission-remote-cli/archive/v${version}.tar.gz"; - sha256 = "1y0hkpcjf6jw9xig8yf484hbhy63nip0pkchx401yxj81m25l4z9"; - }; - - buildInputs = with pythonPackages; [ python wrapPython ]; - - installPhase = '' - install -D transmission-remote-cli $out/bin/transmission-remote-cli - install -D transmission-remote-cli.1 $out/share/man/man1/transmission-remote-cli.1 - wrapPythonPrograms - ''; - - meta = { - description = "Curses interface for the Transmission BitTorrent daemon"; - homepage = "https://github.com/fagga/transmission-remote-cli"; - license = stdenv.lib.licenses.gpl3Plus; - platforms = stdenv.lib.platforms.unix; - }; -} diff --git a/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix b/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix index 8e74b82b69d..c89e5397706 100644 --- a/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix +++ b/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix @@ -1,4 +1,4 @@ -{ stdenv, autoconf, automake, libtool, wrapGAppsHook, fetchFromGitHub, pkgconfig +{ lib, stdenv, autoconf, automake, libtool, wrapGAppsHook, fetchFromGitHub, pkg-config , intltool, gtk3, json-glib, curl, glib, autoconf-archive, appstream-glib, fetchpatch }: @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { nativeBuildInputs= [ autoconf automake libtool wrapGAppsHook - pkgconfig intltool autoconf-archive + pkg-config intltool autoconf-archive appstream-glib ]; @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { doCheck = false; # fails with style validation error - meta = with stdenv.lib; { + meta = with lib; { description = "GTK remote control for the Transmission BitTorrent client"; homepage = "https://github.com/ajf8/transmission-remote-gtk"; license = licenses.gpl2; diff --git a/pkgs/applications/networking/p2p/transmission/default.nix b/pkgs/applications/networking/p2p/transmission/default.nix index ab4fc0908ba..1efa9ec76da 100644 --- a/pkgs/applications/networking/p2p/transmission/default.nix +++ b/pkgs/applications/networking/p2p/transmission/default.nix @@ -2,7 +2,7 @@ , lib , fetchFromGitHub , cmake -, pkgconfig +, pkg-config , openssl , curl , libevent @@ -12,14 +12,17 @@ , pcre # Build options , enableGTK3 ? false -, gnome3 +, gtk3 , xorg , wrapGAppsHook , enableQt ? false , qt5 +, nixosTests , enableSystemd ? stdenv.isLinux , enableDaemon ? true , enableCli ? true +, installLib ? false +, apparmorRulesFromClosure }: let @@ -37,6 +40,8 @@ in stdenv.mkDerivation { fetchSubmodules = true; }; + outputs = [ "out" "apparmor" ]; + cmakeFlags = let mkFlag = opt: if opt then "ON" else "OFF"; @@ -47,10 +52,11 @@ in stdenv.mkDerivation { "-DENABLE_QT=${mkFlag enableQt}" "-DENABLE_DAEMON=${mkFlag enableDaemon}" "-DENABLE_CLI=${mkFlag enableCli}" + "-DINSTALL_LIB=${mkFlag installLib}" ]; nativeBuildInputs = [ - pkgconfig + pkg-config cmake ] ++ lib.optionals enableGTK3 [ wrapGAppsHook ] @@ -65,13 +71,44 @@ in stdenv.mkDerivation { pcre ] ++ lib.optionals enableQt [ qt5.qttools qt5.qtbase ] - ++ lib.optionals enableGTK3 [ gnome3.gtk xorg.libpthreadstubs ] + ++ lib.optionals enableGTK3 [ gtk3 xorg.libpthreadstubs ] ++ lib.optionals enableSystemd [ systemd ] ++ lib.optionals stdenv.isLinux [ inotify-tools ] ; NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework CoreFoundation"; + postInstall = '' + mkdir $apparmor + cat >$apparmor/bin.transmission-daemon <<EOF + include <tunables/global> + $out/bin/transmission-daemon { + include <abstractions/base> + include <abstractions/nameservice> + include <abstractions/ssl_certs> + include "${apparmorRulesFromClosure { name = "transmission-daemon"; } ([ + curl libevent openssl pcre zlib + ] ++ lib.optionals enableSystemd [ systemd ] + ++ lib.optionals stdenv.isLinux [ inotify-tools ] + )}" + r @{PROC}/sys/kernel/random/uuid, + r @{PROC}/sys/vm/overcommit_memory, + r @{PROC}/@{pid}/environ, + r @{PROC}/@{pid}/mounts, + rwk /tmp/tr_session_id_*, + r /run/systemd/resolve/stub-resolv.conf, + + r $out/share/transmission/web/**, + + include <local/bin.transmission-daemon> + } + EOF + ''; + + passthru.tests = { + smoke-test = nixosTests.bittorrent; + }; + meta = { description = "A fast, easy and free BitTorrent client"; longDescription = '' diff --git a/pkgs/applications/networking/p2p/tremc/default.nix b/pkgs/applications/networking/p2p/tremc/default.nix new file mode 100644 index 00000000000..dfbe66ac856 --- /dev/null +++ b/pkgs/applications/networking/p2p/tremc/default.nix @@ -0,0 +1,49 @@ +{ lib, stdenv, fetchFromGitHub, python3Packages +, x11Support ? !stdenv.isDarwin +, xclip ? null +, pbcopy ? null +, useGeoIP ? false # Require /var/lib/geoip-databases/GeoIP.dat +}: +let + wrapperPath = with lib; makeBinPath ( + optional x11Support xclip ++ + optional stdenv.isDarwin pbcopy + ); +in +python3Packages.buildPythonApplication rec { + pname = "tremc"; + version = "0.9.2"; + + src = fetchFromGitHub { + owner = "tremc"; + repo = pname; + rev = version; + sha256 = "1fqspp2ckafplahgba54xmx0sjidx1pdzyjaqjhz0ivh98dkx2n5"; + }; + + buildInputs = with python3Packages; [ + python + wrapPython + ]; + + pythonPath = with python3Packages; [ + ipy + pyperclip + ] ++ + lib.optional useGeoIP GeoIP; + + phases = [ "unpackPhase" "installPhase" ]; + + makeWrapperArgs = ["--prefix PATH : ${wrapperPath}"]; + + installPhase = '' + make DESTDIR=$out install + wrapPythonPrograms + ''; + + meta = with lib; { + description = "Curses interface for transmission"; + homepage = "https://github.com/tremc/tremc"; + license = licenses.gpl3Plus; + }; +} diff --git a/pkgs/applications/networking/p2p/tribler/default.nix b/pkgs/applications/networking/p2p/tribler/default.nix index ed1129b238a..3aa5b4a8da8 100644 --- a/pkgs/applications/networking/p2p/tribler/default.nix +++ b/pkgs/applications/networking/p2p/tribler/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchurl, pkgs, python3Packages, makeWrapper -, enablePlayer ? true, vlc ? null, qt5, lib }: +{ stdenv, fetchurl, python3Packages, makeWrapper +, enablePlayer ? true, libvlc, qt5, lib }: stdenv.mkDerivation rec { pname = "tribler"; @@ -19,40 +19,41 @@ stdenv.mkDerivation rec { python3Packages.python ]; - pythonPath = [ - python3Packages.libtorrentRasterbar - python3Packages.twisted - python3Packages.netifaces - python3Packages.pycrypto - python3Packages.pyasn1 - python3Packages.requests - python3Packages.m2crypto - python3Packages.pyqt5 - python3Packages.chardet - python3Packages.cherrypy - python3Packages.cryptography - python3Packages.libnacl - python3Packages.configobj - python3Packages.decorator - python3Packages.feedparser - python3Packages.service-identity - python3Packages.psutil - python3Packages.pillow - python3Packages.networkx - python3Packages.pony - python3Packages.lz4 - python3Packages.pyqtgraph + pythonPath = with python3Packages; [ + libtorrent-rasterbar + twisted + netifaces + pycrypto + pyasn1 + requests + m2crypto + pyqt5 + chardet + cherrypy + cryptography + libnacl + configobj + decorator + feedparser + service-identity + psutil + pillow + networkx + pony + lz4 + pyqtgraph # there is a BTC feature, but it requires some unclear version of # bitcoinlib, so this doesn't work right now. - # python3Packages.bitcoinlib + # bitcoinlib ]; postPatch = '' - ${stdenv.lib.optionalString enablePlayer '' - substituteInPlace "./TriblerGUI/vlc.py" --replace "ctypes.CDLL(p)" "ctypes.CDLL('${vlc}/lib/libvlc.so')" - substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" --replace "if vlc and vlc.plugin_path" "if vlc" - substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" --replace "os.environ['VLC_PLUGIN_PATH'] = vlc.plugin_path" "os.environ['VLC_PLUGIN_PATH'] = '${vlc}/lib/vlc/plugins'" + ${lib.optionalString enablePlayer '' + substituteInPlace "./TriblerGUI/vlc.py" --replace "ctypes.CDLL(p)" "ctypes.CDLL('${libvlc}/lib/libvlc.so')" + substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" \ + --replace "if vlc and vlc.plugin_path" "if vlc" \ + --replace "os.environ['VLC_PLUGIN_PATH'] = vlc.plugin_path" "os.environ['VLC_PLUGIN_PATH'] = '${libvlc}/lib/vlc/plugins'" ''} ''; @@ -68,8 +69,8 @@ stdenv.mkDerivation rec { --set NO_AT_BRIDGE 1 \ --run 'cd $_TRIBLERPATH' \ --add-flags "-O $out/run_tribler.py" \ - ${stdenv.lib.optionalString enablePlayer '' - --prefix LD_LIBRARY_PATH : ${vlc}/lib + ${lib.optionalString enablePlayer '' + --prefix LD_LIBRARY_PATH : ${libvlc}/lib ''} mkdir -p $out/share/applications $out/share/icons $out/share/man/man1 @@ -78,11 +79,12 @@ stdenv.mkDerivation rec { cp $out/Tribler/Main/Build/Ubuntu/tribler.1 $out/share/man/man1/tribler.1 ''; - meta = with stdenv.lib; { + meta = with lib; { maintainers = with maintainers; [ xvapx ]; homepage = "https://www.tribler.org/"; description = "A completely decentralised P2P filesharing client based on the Bittorrent protocol"; license = licenses.lgpl21; platforms = platforms.linux; + broken = true; # 2021-03-17 see https://github.com/NixOS/nixpkgs/issues/93053 }; } diff --git a/pkgs/applications/networking/p2p/twister/default.nix b/pkgs/applications/networking/p2p/twister/default.nix index 03cb381f5eb..1d05cafef83 100644 --- a/pkgs/applications/networking/p2p/twister/default.nix +++ b/pkgs/applications/networking/p2p/twister/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, fetchpatch, autoconf, automake, libtool, pkgconfig, python2 +{ lib, stdenv, fetchFromGitHub, fetchpatch, autoconf, automake, libtool, pkg-config, python2 , boost, db, openssl, geoip, libiconv, miniupnpc , srcOnly, fetchgit }: @@ -35,7 +35,7 @@ in stdenv.mkDerivation rec { "--with-boost-libdir=${boostPython.out}/lib" ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ autoconf automake libtool python2 boostPython db openssl geoip miniupnpc libiconv @@ -61,7 +61,7 @@ in stdenv.mkDerivation rec { meta = { homepage = "http://www.twister.net.co/"; description = "Peer-to-peer microblogging"; - license = stdenv.lib.licenses.mit; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.mit; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/applications/networking/p2p/vuze/default.nix b/pkgs/applications/networking/p2p/vuze/default.nix index be2421ef4d2..fe8743ee1cd 100644 --- a/pkgs/applications/networking/p2p/vuze/default.nix +++ b/pkgs/applications/networking/p2p/vuze/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchsvn, jdk, jre, ant, swt, makeWrapper }: +{ lib, stdenv, fetchsvn, jdk, jre, ant, swt, makeWrapper }: stdenv.mkDerivation rec { pname = "vuze"; @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "07w6ipyiy8hi88d6yxbbf3vkv26mj7dcz9yr8141hb2ig03v0h0p"; }; - buildInputs = [ makeWrapper jdk ant ]; + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ jdk ant ]; buildPhase = "ant"; @@ -19,7 +20,7 @@ stdenv.mkDerivation rec { --add-flags "-Xmx256m -Djava.library.path=${swt}/lib -cp $out/share/java/Vuze_${version}-00.jar:${swt}/jars/swt.jar org.gudy.azureus2.ui.swt.Main" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Torrent client"; homepage = "http://www.vuze.com"; license = licenses.unfree; diff --git a/pkgs/applications/networking/p2p/xd/default.nix b/pkgs/applications/networking/p2p/xd/default.nix new file mode 100644 index 00000000000..54581a6070b --- /dev/null +++ b/pkgs/applications/networking/p2p/xd/default.nix @@ -0,0 +1,29 @@ +{ pkgs, buildGoModule, fetchFromGitHub, lib, perl }: + +buildGoModule rec { + pname = "XD"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "majestrate"; + repo = "XD"; + rev = "v${version}"; + sha256 = "sha256-fXENoqhR04TYS/kAJUqsqa0+j+KyzdsMlXIZ2GMPMhc="; + }; + + vendorSha256 = "1wg3cym2rwrhjsqlgd38l8mdq5alccz808465117n3vyga9m35lq"; + + checkInputs = [ perl ]; + + postInstall = '' + ln -s $out/bin/XD $out/bin/XD-CLI + ''; + + meta = with lib; { + description = "i2p bittorrent client"; + homepage = "https://xd-torrent.github.io"; + maintainers = with maintainers; [ nixbitcoin ]; + license = licenses.mit; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/networking/p2p/zeronet/default.nix b/pkgs/applications/networking/p2p/zeronet/default.nix index ce5a99b1e5f..19da740938c 100644 --- a/pkgs/applications/networking/p2p/zeronet/default.nix +++ b/pkgs/applications/networking/p2p/zeronet/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, python3Packages }: +{ lib, fetchFromGitHub, python3Packages }: python3Packages.buildPythonApplication rec { pname = "zeronet"; @@ -13,7 +13,7 @@ python3Packages.buildPythonApplication rec { }; propagatedBuildInputs = with python3Packages; [ - gevent msgpack base58 merkletools rsa pysocks pyasn1 websocket_client + gevent msgpack base58 merkletools rsa pysocks pyasn1 websocket-client gevent-websocket rencode bitcoinlib maxminddb pyopenssl ]; @@ -32,7 +32,7 @@ python3Packages.buildPythonApplication rec { --set PATH ${python3Packages.python}/bin ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Decentralized websites using Bitcoin crypto and BitTorrent network"; homepage = "https://zeronet.io/"; license = licenses.gpl2; |