1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
{ stdenv
, lib
, fetchurl
, fetchpatch
, meson
, ninja
, gettext
, gst_all_1
, python3Packages
, shared-mime-info
, pkg-config
, gtk3
, glib
, gobject-introspection
, totem-pl-parser
, wrapGAppsHook
, itstool
, libxml2
, vala
, gnome
, grilo
, grilo-plugins
, libpeas
, libportal-gtk3
, libhandy
, adwaita-icon-theme
, gnome-desktop
, gsettings-desktop-schemas
, gdk-pixbuf
, xvfb-run
}:
stdenv.mkDerivation rec {
pname = "totem";
version = "43.0";
src = fetchurl {
url = "mirror://gnome/sources/totem/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "s202VZKLWJZGKk05+Dtq1m0328nJnc6wLqii43OUpB4=";
};
patches = [
# Lower X11 dependency version since we do not have it.
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/totem/-/commit/140d9eea70c3101ef3234abb4de5974cb84b13db.patch";
sha256 = "ohppxqMiH8Ksc9B2e3AXighfM6KVN+RNXYL+fLELSN8=";
revert = true;
})
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/totem/-/commit/2610b4536f73493587e4a5a38e01c9961fcabb96.patch";
sha256 = "nPfzS+LQuAlyQOz67hCdtx93w2frhgWlg1KGX5bEU38=";
revert = true;
})
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/totem/-/commit/5b871aee5292f25bbf39dca18045732e979e7a68.patch";
sha256 = "LqQLdgyZkIVc+/hQ5sdBLqhtjCVIMDSs9tjVXwMFodg=";
revert = true;
})
];
nativeBuildInputs = [
meson
ninja
vala
pkg-config
gettext
python3Packages.python
itstool
gobject-introspection
wrapGAppsHook
];
buildInputs = [
gtk3
glib
grilo
totem-pl-parser
grilo-plugins
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
(gst_all_1.gst-plugins-good.override { gtkSupport = true; })
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-ugly
gst_all_1.gst-libav
libpeas
libportal-gtk3
libhandy
shared-mime-info
gdk-pixbuf
libxml2
adwaita-icon-theme
gnome-desktop
gsettings-desktop-schemas
python3Packages.pygobject3
];
nativeCheckInputs = [
xvfb-run
];
mesonFlags = [
# TODO: https://github.com/NixOS/nixpkgs/issues/36468
"-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
];
# Tests do not work with GStreamer 1.18.
# https://gitlab.gnome.org/GNOME/totem/-/issues/450
doCheck = false;
postPatch = ''
chmod +x meson_compile_python.py # patchShebangs requires executable file
patchShebangs \
./meson_compile_python.py
'';
checkPhase = ''
runHook preCheck
xvfb-run -s '-screen 0 800x600x24' \
ninja test
runHook postCheck
'';
passthru = {
updateScript = gnome.updateScript {
packageName = "totem";
attrPath = "gnome.totem";
};
};
meta = with lib; {
homepage = "https://apps.gnome.org/Totem/";
description = "Movie player for the GNOME desktop based on GStreamer";
maintainers = teams.gnome.members;
license = licenses.gpl2Plus; # with exception to allow use of non-GPL compatible plug-ins
platforms = platforms.linux;
};
}
|