pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / by-name / po / polari / package.nix
blob75606d7041974e3d6fceb424fd9b3bf1a2144e7e
2   stdenv,
3   lib,
4   itstool,
5   fetchurl,
6   gdk-pixbuf,
7   telepathy-glib,
8   gjs,
9   meson,
10   ninja,
11   gettext,
12   telepathy-idle,
13   libxml2,
14   desktop-file-utils,
15   pkg-config,
16   gtk4,
17   tinysparql,
18   libadwaita,
19   gtk3,
20   glib,
21   libsecret,
22   libsoup_3,
23   webkitgtk_4_1,
24   gobject-introspection,
25   gnome,
26   wrapGAppsHook4,
27   gspell,
28   gsettings-desktop-schemas,
31 stdenv.mkDerivation rec {
32   pname = "polari";
33   version = "46.0";
35   src = fetchurl {
36     url = "mirror://gnome/sources/polari/${lib.versions.major version}/polari-${version}.tar.xz";
37     hash = "sha256-0rFwnjeRiSlPU9TvFfA/i8u76MUvD0FeYvfV8Aw2CjE=";
38   };
40   patches = [
41     # Upstream runs the thumbnailer by passing it to gjs.
42     # If we wrap it in a shell script, gjs can no longer run it.
43     # Let’s change the code to run the script directly by making it executable and having gjs in shebang.
44     ./make-thumbnailer-wrappable.patch
45   ];
47   propagatedUserEnvPkgs = [ telepathy-idle ];
49   nativeBuildInputs = [
50     meson
51     ninja
52     pkg-config
53     itstool
54     gettext
55     wrapGAppsHook4
56     libxml2
57     desktop-file-utils
58     gobject-introspection
59   ];
61   buildInputs = [
62     gtk4
63     tinysparql
64     libadwaita
65     gtk3 # for thumbnailer
66     glib
67     gsettings-desktop-schemas
68     telepathy-glib
69     gjs
70     gspell
71     gdk-pixbuf
72     libsecret
73     libsoup_3
74     webkitgtk_4_1 # for thumbnailer
75   ];
77   postFixup = ''
78     wrapGApp "$out/share/polari/thumbnailer.js"
79   '';
81   passthru = {
82     updateScript = gnome.updateScript { packageName = "polari"; };
83   };
85   meta = with lib; {
86     homepage = "https://apps.gnome.org/Polari/";
87     description = "IRC chat client designed to integrate with the GNOME desktop";
88     mainProgram = "polari";
89     maintainers = teams.gnome.members;
90     license = licenses.gpl2Plus;
91     platforms = platforms.linux;
92   };