about summary refs log tree commit diff
path: root/pkgs/by-name/tr
diff options
context:
space:
mode:
authorJohn Titor <50095635+JohnRTitor@users.noreply.github.com>2024-05-11 10:18:22 +0530
committerJohn Titor <50095635+JohnRTitor@users.noreply.github.com>2024-05-11 10:18:22 +0530
commitf8c1e5bdbb635a904e237e220e61e503694c441e (patch)
treec0479200c0e4f468dc60167a6d7b298de7cd5d57 /pkgs/by-name/tr
parent973251266dcaef09aafa1f0dfaf3fc6fb5bcc170 (diff)
tribler: migrate to pkgs/by-name
Diffstat (limited to 'pkgs/by-name/tr')
-rw-r--r--pkgs/by-name/tr/tribler/package.nix120
1 files changed, 120 insertions, 0 deletions
diff --git a/pkgs/by-name/tr/tribler/package.nix b/pkgs/by-name/tr/tribler/package.nix
new file mode 100644
index 0000000000000..859c47a3e2873
--- /dev/null
+++ b/pkgs/by-name/tr/tribler/package.nix
@@ -0,0 +1,120 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchPypi
+, python3
+, makeWrapper
+, libtorrent-rasterbar-1_2_x
+, qt5
+, nix-update-script
+}:
+
+let
+  libtorrent = (python3.pkgs.toPythonModule (libtorrent-rasterbar-1_2_x)).python;
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "tribler";
+  version = "7.14.0";
+
+  src = fetchurl {
+    url = "https://github.com/Tribler/tribler/releases/download/v${finalAttrs.version}/Tribler-${finalAttrs.version}.tar.xz";
+    hash = "sha256-fQJOs9P4y71De/+svmD7YZ4+tm/bC3rspm7SbOHlSR4=";
+  };
+
+  nativeBuildInputs = [
+    python3.pkgs.wrapPython
+    makeWrapper
+    # we had a "copy" of this in tribler's makeWrapper
+    # but it went out of date and broke, so please just use it directly
+    qt5.wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    python3.pkgs.python
+  ];
+
+  pythonPath = [
+    libtorrent
+  ] ++ (with python3.pkgs; [
+    # requirements-core.txt
+    aiohttp
+    aiohttp-apispec
+    anyio
+    chardet
+    configobj
+    cryptography
+    decorator
+    faker
+    libnacl
+    lz4
+    marshmallow
+    netifaces
+    networkx
+    pony
+    psutil
+    pyasn1
+    pydantic_1
+    pyopenssl
+    pyyaml
+    sentry-sdk
+    service-identity
+    yappi
+    yarl
+    bitarray
+    filelock
+    (pyipv8.overrideAttrs (p: rec {
+      version = "2.10.0";
+      src = fetchPypi {
+        inherit (p) pname;
+        inherit version;
+        hash = "sha256-yxiXBxBiPokequm+vjsHIoG9kQnRnbsOx3mYOd8nmiU=";
+      };
+    }))
+    file-read-backwards
+    brotli
+    human-readable
+    # requirements.txt
+    pillow
+    pyqt5
+    #pyqt5-sip
+    pyqtgraph
+    pyqtwebengine
+  ]);
+
+  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 _TRIBLERPATH "$out/src" \
+        --set PYTHONPATH $out/src/tribler-core:$out/src/tribler-common:$out/src/tribler-gui:$program_PYTHONPATH \
+        --set NO_AT_BRIDGE 1 \
+        --chdir "$out/src" \
+        --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
+    mkdir -p $out/share/copyright/tribler
+    mv $out/LICENSE $out/share/copyright/tribler
+  '';
+
+  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}"
+  '';
+
+  passthru.updateScript = nix-update-script {};
+
+  meta = with lib; {
+    description = "Decentralised P2P filesharing client based on the Bittorrent protocol";
+    mainProgram = "tribler";
+    homepage = "https://www.tribler.org/";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ xvapx viric mkg20001 ];
+    platforms = platforms.linux;
+  };
+})