diff --git a/pkgs/applications/networking/p2p/dht/default.nix b/pkgs/applications/networking/p2p/dht/default.nix new file mode 100644 index 00000000000..0088e517914 --- /dev/null +++ b/pkgs/applications/networking/p2p/dht/default.nix @@ -0,0 +1,24 @@ +{ stdenv, lib, fetchFromGitHub, cmake }: + +stdenv.mkDerivation rec { + pname = "dht"; + version = "0.25"; + + src = fetchFromGitHub { + # Use transmission fork from post-0.25-transmission branch + owner = "transmission"; + repo = pname; + rev = "25e12bb39eea3d433602de6390796fec8a8f3620"; + sha256 = "fksi8WBQPydgSlISaZMMnxzt4xN7/Hh7aN6QQ+g/L7s="; + }; + + nativeBuildInputs = [ cmake ]; + + meta = with lib; { + description = "BitTorrent DHT library"; + homepage = "https://github.com/transmission/dht"; + license = licenses.mit; + maintainers = with maintainers; [ angustrau ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/networking/p2p/fragments/default.nix b/pkgs/applications/networking/p2p/fragments/default.nix new file mode 100644 index 00000000000..721f0ca259f --- /dev/null +++ b/pkgs/applications/networking/p2p/fragments/default.nix @@ -0,0 +1,78 @@ +{ lib +, stdenv +, fetchFromGitLab +, meson +, vala +, ninja +, pkg-config +, wrapGAppsHook +, desktop-file-utils +, appstream-glib +, python3 +, glib +, gtk3 +, libhandy +, libtransmission +, libb64 +, libutp +, miniupnpc +, dht +, libnatpmp +, libevent +, curl +, openssl +, zlib +}: + +stdenv.mkDerivation rec { + pname = "fragments"; + version = "1.5"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "World"; + repo = "Fragments"; + rev = version; + sha256 = "0x1kafhlgyi65l4w67c24r8mpvasg3q3c4wlgnjc9sxvp6ki7xbn"; + }; + + patches = [ + # Fix dependency resolution + ./dependency-resolution.patch + ]; + + nativeBuildInputs = [ + meson + vala + ninja + pkg-config + wrapGAppsHook + desktop-file-utils + appstream-glib + python3 + ]; + + buildInputs = [ + glib + gtk3 + libhandy + libtransmission + libb64 + libutp + miniupnpc + dht + libnatpmp + libevent + curl + openssl + zlib + ]; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/World/Fragments"; + description = "A GTK3 BitTorrent Client"; + maintainers = with maintainers; [ angustrau ]; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/networking/p2p/fragments/dependency-resolution.patch b/pkgs/applications/networking/p2p/fragments/dependency-resolution.patch new file mode 100644 index 00000000000..0446bc1390c --- /dev/null +++ b/pkgs/applications/networking/p2p/fragments/dependency-resolution.patch @@ -0,0 +1,25 @@ +diff --git a/meson.build b/meson.build +index 5030d0c..6de7a20 100644 +--- a/meson.build ++++ b/meson.build +@@ -32,10 +32,11 @@ transmission_dep = declare_dependency( + meson.get_compiler('c').find_library('dht'), + meson.get_compiler('c').find_library('natpmp'), + meson.get_compiler('c').find_library('event'), +- meson.get_compiler('c').find_library('libcurl'), +- meson.get_compiler('c').find_library('libcrypto'), ++ meson.get_compiler('c').find_library('curl'), ++ meson.get_compiler('c').find_library('crypto'), ++ meson.get_compiler('c').find_library('ssl'), + meson.get_compiler('c').find_library('libpthread'), +- meson.get_compiler('c').find_library('libz'), ++ meson.get_compiler('c').find_library('z'), + transmission_vapi, + transmission_lib + ]) +@@ -45,4 +46,4 @@ subdir('data') + subdir('po') + subdir('src') + +-meson.add_install_script('build-aux/postinstall.py') ++meson.add_install_script('python3', '../build-aux/postinstall.py') diff --git a/pkgs/applications/networking/p2p/libutp/default.nix b/pkgs/applications/networking/p2p/libutp/default.nix new file mode 100644 index 00000000000..6fba4faf50c --- /dev/null +++ b/pkgs/applications/networking/p2p/libutp/default.nix @@ -0,0 +1,24 @@ +{ stdenv, lib, fetchFromGitHub, cmake }: + +stdenv.mkDerivation rec { + pname = "libutp"; + version = "unstable-2017-01-02"; + + src = fetchFromGitHub { + # Use transmission fork from post-3.3-transmission branch + owner = "transmission"; + repo = pname; + rev = "fda9f4b3db97ccb243fcbed2ce280eb4135d705b"; + sha256 = "CvuZLOBksIl/lS6LaqOIuzNvX3ihlIPjI3Eqwo7YJH0="; + }; + + nativeBuildInputs = [ cmake ]; + + meta = with lib; { + description = "uTorrent Transport Protocol library"; + homepage = "https://github.com/transmission/libutp"; + license = licenses.mit; + maintainers = with maintainers; [ angustrau ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/networking/p2p/transmission/default.nix b/pkgs/applications/networking/p2p/transmission/default.nix index 1efa9ec76da..6e1367a6b4e 100644 --- a/pkgs/applications/networking/p2p/transmission/default.nix +++ b/pkgs/applications/networking/p2p/transmission/default.nix @@ -10,6 +10,11 @@ , systemd , zlib , pcre +, libb64 +, libutp +, miniupnpc +, dht +, libnatpmp # Build options , enableGTK3 ? false , gtk3 @@ -69,6 +74,11 @@ in stdenv.mkDerivation { libevent zlib pcre + libb64 + libutp + miniupnpc + dht + libnatpmp ] ++ lib.optionals enableQt [ qt5.qttools qt5.qtbase ] ++ lib.optionals enableGTK3 [ gtk3 xorg.libpthreadstubs ] @@ -123,7 +133,7 @@ in stdenv.mkDerivation { * Full encryption, DHT, and PEX support ''; homepage = "http://www.transmissionbt.com/"; - license = lib.licenses.gpl2; # parts are under MIT + license = lib.licenses.gpl2Plus; # parts are under MIT maintainers = with lib.maintainers; [ astsmtl vcunat wizeman ]; platforms = lib.platforms.unix; }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5101e5f0970..94dc6acf06a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23055,6 +23055,8 @@ in dfilemanager = libsForQt5.callPackage ../applications/misc/dfilemanager { }; + dht = callPackage ../applications/networking/p2p/dht { }; + dia = callPackage ../applications/graphics/dia { inherit (pkgs.gnome2) libart_lgpl libgnomeui; }; @@ -23738,6 +23740,8 @@ in fractal = callPackage ../applications/networking/instant-messengers/fractal { }; + fragments = callPackage ../applications/networking/p2p/fragments { }; + freecad = libsForQt5.callPackage ../applications/graphics/freecad { inherit (python3Packages) GitPython @@ -24834,6 +24838,8 @@ in libvmi = callPackage ../development/libraries/libvmi { }; + libutp = callPackage ../applications/networking/p2p/libutp { }; + lifelines = callPackage ../applications/misc/lifelines { }; liferea = callPackage ../applications/networking/newsreaders/liferea { };