python312Packages.types-aiobotocore: 2.15.2 -> 2.15.2.post3 (#361801)
[NixPkgs.git] / pkgs / by-name / wa / warpinator / package.nix
blobc01cb066490ef74abe6d9fdf24ef6816d41a5c5f
1 { stdenv
2 , fetchFromGitHub
3 , lib
4 , gobject-introspection
5 , meson
6 , ninja
7 , python3
8 , gtk3
9 , gdk-pixbuf
10 , xapp
11 , wrapGAppsHook3
12 , gettext
13 , polkit
14 , glib
15 , gitUpdater
16 , bubblewrap
19 let
20   pythonEnv = python3.withPackages (pp: with pp; [
21     grpcio-tools
22     protobuf
23     pygobject3
24     setproctitle
25     python-xapp
26     zeroconf
27     grpcio
28     setuptools
29     cryptography
30     pynacl
31     netifaces
32     netaddr
33     ifaddr
34     qrcode
35   ]);
37 stdenv.mkDerivation rec {
38   pname = "warpinator";
39   version = "1.8.6";
41   src = fetchFromGitHub {
42     owner = "linuxmint";
43     repo = pname;
44     rev = version;
45     hash = "sha256-GJp2iRB3F42pSfYd2FLpmDTZ1zqt8thdRPAHu9/ns5E=";
46   };
48   nativeBuildInputs = [
49     meson
50     ninja
51     gobject-introspection
52     wrapGAppsHook3
53     gettext
54     polkit # for its gettext
55   ];
57   buildInputs = [
58     glib
59     gtk3
60     gdk-pixbuf
61     pythonEnv
62     xapp
63   ];
65   mesonFlags = [
66     "-Dbundle-grpc=false"
67     "-Dbundle-zeroconf=false"
68   ];
70   postPatch = ''
71     chmod +x install-scripts/*
72     patchShebangs .
74     find . -type f -exec sed -i \
75       -e s,/usr/libexec/warpinator,$out/libexec/warpinator,g \
76       {} +
78     # We make bubblewrap mode always available since
79     # landlock mode is not supported in old kernels.
80     substituteInPlace src/warpinator-launch.py \
81       --replace-fail '"/usr/bin/python3"' '"${pythonEnv.interpreter}"' \
82       --replace-fail "/usr/bin/bwrap" "${bubblewrap}/bin/bwrap" \
83       --replace-fail 'GLib.find_program_in_path("bwrap")' "True"
84   '';
86   passthru.updateScript = gitUpdater {
87     ignoredVersions = "^master.*";
88   };
90   meta = with lib; {
91     homepage = "https://github.com/linuxmint/warpinator";
92     description = "Share files across the LAN";
93     license = licenses.gpl3Plus;
94     platforms = platforms.linux;
95     maintainers = teams.cinnamon.members;
96   };