Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 python3Packages,
4 fetchFromGitHub,
5 aria2,
6 meson,
7 ninja,
8 pkg-config,
9 gobject-introspection,
10 wrapGAppsHook4,
11 desktop-file-utils,
12 libadwaita,
13 ffmpeg,
14}:
15
16python3Packages.buildPythonApplication rec {
17 pname = "varia";
18 version = "2025.7.19";
19 pyproject = false;
20
21 src = fetchFromGitHub {
22 owner = "giantpinkrobots";
23 repo = "varia";
24 tag = "v${version}";
25 hash = "sha256-/u6Eb9Se/Lt8Hisv24zfOgNE9ZxC3AJXbZHmukVLSRA=";
26 };
27
28 nativeBuildInputs = [
29 meson
30 ninja
31 pkg-config
32 gobject-introspection
33 wrapGAppsHook4
34 desktop-file-utils
35 ];
36
37 buildInputs = [
38 libadwaita
39 ];
40
41 dependencies = with python3Packages; [
42 pygobject3
43 aria2p
44 yt-dlp
45 ];
46
47 postInstall = ''
48 rm $out/bin/varia
49 mv $out/bin/varia-py.py $out/bin/varia
50 '';
51
52 dontWrapGApps = true;
53
54 # This replaces original varia wrapper
55 preFixup = ''
56 makeWrapperArgs+=(
57 "''${gappsWrapperArgs[@]}"
58 --add-flag "${lib.getExe aria2}"
59 --add-flag "${lib.getExe ffmpeg}"
60 --add-flag "NOSNAP"
61 )
62 '';
63
64 meta = {
65 description = "Simple download manager based on aria2 and libadwaita";
66 homepage = "https://giantpinkrobots.github.io/varia";
67 license = lib.licenses.mpl20;
68 mainProgram = "varia";
69 maintainers = with lib.maintainers; [ aleksana ];
70 platforms = lib.platforms.linux;
71 };
72}