biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / video / pitivi / default.nix
blob616cce1a3898766b4d3f2f67f695034dba1c923f
1 { lib
2 , fetchurl
3 , pkg-config
4 , gettext
5 , itstool
6 , python3
7 , wrapGAppsHook3
8 , gst_all_1
9 , gtk3
10 , gobject-introspection
11 , libpeas
12 , librsvg
13 , gnome
14 , libnotify
15 , gsound
16 , meson
17 , ninja
18 , gsettings-desktop-schemas
19 , hicolor-icon-theme
22 python3.pkgs.buildPythonApplication rec {
23   pname = "pitivi";
24   version = "2023.03";
26   format = "other";
28   src = fetchurl {
29     url = "mirror://gnome/sources/pitivi/${lib.versions.major version}/${pname}-${version}.tar.xz";
30     sha256 = "PX1OFEeavqMPvF613BKgxwErxqW2huw6mQxo8YpBS/M=";
31   };
33   patches = [
34     # By default, the build picks up environment variables like PYTHONPATH
35     # and saves them to the generated binary. This would make the build-time
36     # dependencies part of the closure so we remove it.
37     ./prevent-closure-contamination.patch
38   ];
40   nativeBuildInputs = [
41     meson
42     ninja
43     pkg-config
44     gettext
45     itstool
46     python3
47     wrapGAppsHook3
48     gobject-introspection
49   ];
51   buildInputs = [
52     gtk3
53     libpeas
54     librsvg
55     gsound
56     gsettings-desktop-schemas
57     libnotify
58   ] ++ (with gst_all_1; [
59     gstreamer
60     gst-editing-services
61     gst-plugins-base
62     (gst-plugins-good.override { gtkSupport = true; })
63     gst-plugins-bad
64     gst-plugins-ugly
65     gst-libav
66     gst-devtools
67   ]);
69   pythonPath = with python3.pkgs; [
70     pygobject3
71     gst-python
72     numpy
73     pycairo
74     matplotlib
75     librosa
76   ];
78   preFixup = ''
79     gappsWrapperArgs+=(
80       # The icon theme is hardcoded.
81       --prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share"
82     )
83   '';
85   postPatch = ''
86     patchShebangs ./getenvvar.py
87   '';
89   passthru = {
90     updateScript = gnome.updateScript {
91       packageName = "pitivi";
92       versionPolicy = "none"; # we are using dev version, since the stable one is too old
93     };
94   };
96   meta = with lib; {
97     description = "Non-Linear video editor utilizing the power of GStreamer";
98     homepage = "http://pitivi.org/";
99     longDescription = ''
100       Pitivi is a video editor built upon the GStreamer Editing Services.
101       It aims to be an intuitive and flexible application
102       that can appeal to newbies and professionals alike.
103     '';
104     license = licenses.lgpl21Plus;
105     maintainers = with maintainers; [ aleksana ];
106     platforms = platforms.linux;
107     mainProgram = "pitivi";
108   };