nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix

103 lines
2.6 KiB
Nix
Raw Normal View History

2022-02-14 12:05:34 +00:00
{ lib
, stdenv
, fetchurl
, python3
, makeWrapper
, libtorrent-rasterbar-1_2_x
, qt5
}:
let
libtorrent = (python3.pkgs.toPythonModule (
libtorrent-rasterbar-1_2_x.override { python = python3; })).python;
in
2015-07-11 22:09:46 +00:00
stdenv.mkDerivation rec {
pname = "tribler";
version = "7.11.0";
src = fetchurl {
url = "https://github.com/Tribler/tribler/releases/download/v${version}/Tribler-v${version}.tar.xz";
sha256 = "0ffh8chb47iaar8872gvalgm84fjzyxph16nixsxknnprqdxyrkx";
};
nativeBuildInputs = [
python3.pkgs.wrapPython
2015-07-11 22:09:46 +00:00
makeWrapper
];
buildInputs = [
python3.pkgs.python
2015-07-11 22:09:46 +00:00
];
pythonPath = [
libtorrent
] ++ (with python3.pkgs; [
2022-02-14 12:05:34 +00:00
aiohttp
aiohttp-apispec
asynctest
2021-01-03 08:22:27 +00:00
chardet
cherrypy
configobj
2022-02-14 12:05:34 +00:00
cryptography
2021-01-03 08:22:27 +00:00
decorator
2022-02-14 12:05:34 +00:00
faker
2021-01-03 08:22:27 +00:00
feedparser
2022-02-14 12:05:34 +00:00
libnacl
lz4
m2crypto
netifaces
2021-01-03 08:22:27 +00:00
networkx
2022-02-14 12:05:34 +00:00
pillow
2021-01-03 08:22:27 +00:00
pony
2022-02-14 12:05:34 +00:00
psutil
pyasn1
pycrypto
pyqt5
2021-01-03 08:22:27 +00:00
pyqtgraph
pytest-asyncio
pytest-timeout
2022-02-14 12:05:34 +00:00
pyyaml
requests
sentry-sdk
service-identity
twisted
yappi
pydantic
anyio
]);
installPhase = ''
mkdir -pv $out
# Nasty hack; call wrapPythonPrograms to set program_PYTHONPATH.
wrapPythonPrograms
cp -prvd ./* $out/
makeWrapper ${python3.pkgs.python}/bin/python $out/bin/tribler \
--set QT_QPA_PLATFORM_PLUGIN_PATH ${qt5.qtbase.bin}/lib/qt-*/plugins/platforms \
--set QT_PLUGIN_PATH "${qt5.qtsvg.bin}/${qt5.qtbase.qtPluginPrefix}" \
--set _TRIBLERPATH $out/src \
--set PYTHONPATH $out/src/tribler-core:$out/src/tribler-common:$out/src/tribler-gui:$program_PYTHONPATH \
--set NO_AT_BRIDGE 1 \
--run 'cd $_TRIBLERPATH' \
--add-flags "-O $out/src/run_tribler.py"
mkdir -p $out/share/applications $out/share/icons
cp $out/build/debian/tribler/usr/share/applications/org.tribler.Tribler.desktop $out/share/applications/
cp $out/build/debian/tribler/usr/share/pixmaps/tribler_big.xpm $out/share/icons/tribler.xpm
'';
shellHook = ''
wrapPythonPrograms || true
export QT_QPA_PLATFORM_PLUGIN_PATH=$(echo ${qt5.qtbase.bin}/lib/qt-*/plugins/platforms)
export PYTHONPATH=./tribler-core:./tribler-common:./tribler-gui:$program_PYTHONPATH
export QT_PLUGIN_PATH="${qt5.qtsvg.bin}/${qt5.qtbase.qtPluginPrefix}"
'';
meta = with lib; {
2022-02-14 12:05:34 +00:00
description = "Decentralised P2P filesharing client based on the Bittorrent protocol";
2020-03-03 19:29:13 +00:00
homepage = "https://www.tribler.org/";
2022-02-14 12:05:34 +00:00
license = licenses.lgpl21Plus;
maintainers = with maintainers; [ xvapx viric ];
platforms = platforms.linux;
};
}