3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix

95 lines
2.2 KiB
Nix
Raw Normal View History

2020-05-23 18:46:17 +01:00
{ stdenv
, lib
, fetchFromGitHub
, cmake
, pkg-config
2020-05-23 18:46:17 +01:00
, openssl
, curl
, libevent
, inotify-tools
, systemd
, zlib
, pcre
# Build options
, enableGTK3 ? false
, gtk3
2020-05-23 18:46:17 +01:00
, xorg
, wrapGAppsHook
, enableQt ? false
, qt5
, enableSystemd ? stdenv.isLinux
2017-01-05 23:27:16 +00:00
, enableDaemon ? true
2017-01-05 23:26:51 +00:00
, enableCli ? true
}:
2020-05-23 18:46:17 +01:00
let
version = "3.00";
2020-05-23 18:46:17 +01:00
in stdenv.mkDerivation {
pname = "transmission";
inherit version;
2020-05-23 18:46:17 +01:00
src = fetchFromGitHub {
owner = "transmission";
repo = "transmission";
rev = version;
sha256 = "0ccg0km54f700x9p0jsnncnwvfnxfnxf7kcm7pcx1cj0vw78924z";
fetchSubmodules = true;
};
2020-05-23 18:46:17 +01:00
cmakeFlags =
let
mkFlag = opt: if opt then "ON" else "OFF";
in
[
"-DENABLE_MAC=OFF" # requires xcodebuild
"-DENABLE_GTK=${mkFlag enableGTK3}"
"-DENABLE_QT=${mkFlag enableQt}"
"-DENABLE_DAEMON=${mkFlag enableDaemon}"
"-DENABLE_CLI=${mkFlag enableCli}"
];
nativeBuildInputs = [
pkg-config
2020-05-23 18:46:17 +01:00
cmake
]
++ lib.optionals enableGTK3 [ wrapGAppsHook ]
++ lib.optionals enableQt [ qt5.wrapQtAppsHook ]
;
buildInputs = [
openssl
curl
libevent
zlib
pcre
]
++ lib.optionals enableQt [ qt5.qttools qt5.qtbase ]
++ lib.optionals enableGTK3 [ gtk3 xorg.libpthreadstubs ]
2020-05-23 18:46:17 +01:00
++ lib.optionals enableSystemd [ systemd ]
++ lib.optionals stdenv.isLinux [ inotify-tools ]
;
NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework CoreFoundation";
meta = {
description = "A fast, easy and free BitTorrent client";
longDescription = ''
Transmission is a BitTorrent client which features a simple interface
on top of a cross-platform back-end.
Feature spotlight:
* Uses fewer resources than other clients
* Native Mac, GTK and Qt GUI clients
* Daemon ideal for servers, embedded systems, and headless use
* All these can be remote controlled by Web and Terminal clients
* Bluetack (PeerGuardian) blocklists with automatic updates
* Full encryption, DHT, and PEX support
'';
homepage = "http://www.transmissionbt.com/";
2020-05-23 18:46:17 +01:00
license = lib.licenses.gpl2; # parts are under MIT
maintainers = with lib.maintainers; [ astsmtl vcunat wizeman ];
platforms = lib.platforms.unix;
};
2020-05-23 18:46:17 +01:00
}