transmission: unify versions to the newest, use gtk3

Also introduce transmission_gtk attribute and signify gtk client support
in the name (so newbies using package names can see there's a gui version).
This commit is contained in:
Vladimír Čunát 2013-10-04 20:31:02 +02:00
parent e5ebb59e1d
commit ae60edca0e
3 changed files with 26 additions and 60 deletions

View file

@ -1,41 +0,0 @@
{ stdenv, fetchurl, pkgconfig, openssl, curl, intltool, libevent,
file, inotifyTools, gtk ? null }:
stdenv.mkDerivation rec {
name = "transmission-2.60"; # transmission >= 2.61 requires gtk3
src = fetchurl {
url = "http://download.transmissionbt.com/files/${name}.tar.xz";
sha256 = "1ramdliyy8j7qqpkxg643lda11ynxwfhq6qcs31fr3h9x72l0rg4";
};
buildInputs = [ pkgconfig openssl curl intltool libevent
file inotifyTools gtk ];
preConfigure = ''
sed -i -e 's|/usr/bin/file|${file}/bin/file|g' configure
'';
postInstall = ''
rm -f $out/share/icons/hicolor/icon-theme.cache
'';
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/;
license = [ "GPLv2" ];
maintainers = [ stdenv.lib.maintainers.astsmtl ];
platforms = stdenv.lib.platforms.linux;
};
}

View file

@ -1,32 +1,40 @@
{ stdenv, fetchurl, pkgconfig, openssl, curl, intltool, libevent
, file, inotifyTools
, enableGtk ? false, gtk ? null }:
{ stdenv, fetchurl, pkgconfig, intltool, file, makeWrapper
, openssl, curl, libevent, inotifyTools
, enableGTK3 ? false, gtk3
}:
assert enableGtk -> gtk != null;
let
version = "2.82";
in
with { inherit (stdenv.lib) optional optionals optionalString; };
stdenv.mkDerivation rec {
name = "transmission-2.77"; # transmission >= 2.61 requires gtk3
name = "transmission-" + optionalString enableGTK3 "gtk-" + version;
src = fetchurl {
url = "http://download.transmissionbt.com/files/${name}.tar.xz";
sha256 = "1phzhj4wds6r2ziclva1b5l6l9xjsx5ji7s3m4xia44aq4znbcam";
url = "http://download.transmissionbt.com/files/transmission-${version}.tar.xz";
sha256 = "08imy28hpjxwdzgvhm66hkfyzp8qnnqr4jhv3rgshryzhw86b5ir";
};
buildInputs = [ pkgconfig openssl curl intltool libevent
file inotifyTools ]
++ stdenv.lib.optional enableGtk gtk;
buildInputs = [ pkgconfig intltool file openssl curl libevent inotifyTools ]
++ optionals enableGTK3 [ gtk3 makeWrapper ];
preConfigure = ''
sed -i -e 's|/usr/bin/file|${file}/bin/file|g' configure
'';
configureFlags = stdenv.lib.optionalString enableGtk "--with-gtk";
configureFlags = [ "--with-systemd-daemon" ]
++ optional enableGTK3 "--with-gtk";
postInstall = ''
rm -f $out/share/icons/hicolor/icon-theme.cache
rm "$out/share/icons/hicolor/icon-theme.cache"
'' + optionalString enableGTK3 /* gsettings schemas for file dialogues */ ''
wrapProgram "$out/bin/transmission-gtk" \
--prefix XDG_DATA_DIRS : "${gtk3}/share"
'';
meta = {
meta = with stdenv.lib; {
description = "A fast, easy and free BitTorrent client";
longDescription = ''
Transmission is a BitTorrent client which features a simple interface
@ -40,8 +48,9 @@ stdenv.mkDerivation rec {
* Full encryption, DHT, and PEX support
'';
homepage = http://www.transmissionbt.com/;
license = [ "GPLv2" ];
maintainers = [ stdenv.lib.maintainers.astsmtl ];
platforms = stdenv.lib.platforms.linux;
license = licenses.gpl2; # parts are under MIT
maintainers = with maintainers; [ astsmtl vcunat ];
platforms = platforms.linux;
};
}

View file

@ -8701,10 +8701,8 @@ let
wrapPython = pythonPackages.wrapPython;
};
# This builds the gtk client
transmission_260 = callPackage ../applications/networking/p2p/transmission/2.60.nix { };
transmission = callPackage ../applications/networking/p2p/transmission { };
transmission_gtk = transmission.override { enableGTK3 = true; };
transmission_remote_gtk = callPackage ../applications/networking/p2p/transmission-remote-gtk {};