python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / applications / video / entangle / default.nix
blobb163fc2aa60b87da0d5d18ac1545f563447ea8d9
1 { lib
2 , stdenv
3 , fetchFromGitLab
4 , fetchpatch
5 , itstool
6 , libxml2
7 , meson
8 , ninja
9 , perl
10 , python3
11 , pkgconf
12 , wrapGAppsHook
13 , at-spi2-core
14 , dbus
15 , elfutils
16 , libepoxy
17 , gexiv2
18 , glib
19 , gobject-introspection
20 , gst-plugins-base
21 , gstreamer
22 , gtk3
23 , lcms2
24 , libdatrie
25 , libgphoto2
26 , libgudev
27 , libpeas
28 , libraw
29 , libselinux
30 , libsepol
31 , libthai
32 , libunwind
33 , libxkbcommon
34 , orc
35 , pcre
36 , pcre2
37 , udev
38 , util-linux
39 , xorg
40 , zstd
43 stdenv.mkDerivation rec {
44   pname = "entangle";
45   version = "3.0";
47   src = fetchFromGitLab {
48     owner = "entangle";
49     repo = "entangle";
50     rev = "v${version}";
51     sha256 = "hz2WSDOjriQSavFlDT+35x1X5MeInq80ZrSP1WR/td0=";
52   };
54   patches = [
55     # Fix build with meson 0.61, can be removed on next update
56     # https://gitlab.com/entangle/entangle/-/issues/67
57     (fetchpatch {
58       url = "https://gitlab.com/entangle/entangle/-/commit/54795d275a93e94331a614c8712740fcedbdd4f0.patch";
59       sha256 = "iEgqGjKa0xwSdctwvNdEV361l9nx+bz53xn3fuDgtzY=";
60     })
61   ];
63   nativeBuildInputs = [
64     itstool
65     glib
66     libxml2 # for xmllint
67     meson
68     ninja
69     perl # for pod2man and build scripts
70     python3 # for build scripts
71     pkgconf
72     wrapGAppsHook
73   ];
75   buildInputs = [
76     at-spi2-core
77     dbus
78     libepoxy
79     elfutils
80     gexiv2
81     glib
82     gobject-introspection
83     gst-plugins-base
84     gstreamer
85     gtk3
86     lcms2
87     libdatrie
88     libgphoto2
89     libgudev
90     libpeas
91     libraw
92     libselinux
93     libsepol
94     libthai
95     libunwind
96     libxkbcommon
97     orc
98     pcre # required by libselinux before we USE_PCRE2
99     pcre2 # required by glib-2.0
100     udev
101     util-linux
102     zstd
103   ] ++ (with xorg; [
104     libXdmcp
105     libXtst
106   ]);
108   # Disable building of doc/reference since it requires network connection to render XML to HTML
109   # Patch build script shebangs
110   postPatch = ''
111     sed -i "/subdir('reference')/d" "docs/meson.build"
112     patchShebangs --build build-aux meson_post_install.py
113     sed -i meson_post_install.py \
114       -e "/print('Update icon cache...')/d" \
115       -e "/gtk-update-icon-cache/d"
116   '';
118   postInstall = ''
119     substituteInPlace "$out/share/applications/org.entangle_photo.Manager.desktop" \
120       --replace "Exec=entangle" "Exec=$out/bin/entangle"
121   '';
123   meta = with lib; {
124     description = "Tethered camera control and capture";
125     longDescription = ''
126       Entangle uses GTK and libgphoto2 to provide a graphical interface
127       for tethered photography with digital cameras.
128       It includes control over camera shooting and configuration settings
129       and 'hands off' shooting directly from the controlling computer.
130       This app can also serve as a camera app for mobile devices.
131     '';
132     homepage = "https://gitlab.com/entangle/entangle";
133     license = licenses.gpl3Plus;
134     platforms = platforms.all;
135     maintainers = with maintainers; [ ShamrockLee ];
136   };