{ lib, stdenv, fetchFromGitLab, fetchpatch, itstool, libxml2, meson, ninja, perl, python3, pkg-config, wrapGAppsHook3, at-spi2-core, dbus, elfutils, libepoxy, gexiv2, glib, gobject-introspection, gst_all_1, gtk3, lcms2, libdatrie, libgphoto2, libgudev, libpeas, libraw, libselinux, libsepol, lerc, libthai, libunwind, libxkbcommon, orc, udev, util-linux, xorg, zstd, }: stdenv.mkDerivation (finalAttrs: { pname = "entangle"; version = "3.0"; src = fetchFromGitLab { owner = "entangle"; repo = "entangle"; rev = "refs/tags/v${finalAttrs.version}"; sha256 = "hz2WSDOjriQSavFlDT+35x1X5MeInq80ZrSP1WR/td0="; }; patches = [ # Fix build with meson 0.61, can be removed on next update # https://gitlab.com/entangle/entangle/-/issues/67 (fetchpatch { url = "https://gitlab.com/entangle/entangle/-/commit/54795d275a93e94331a614c8712740fcedbdd4f0.patch"; sha256 = "iEgqGjKa0xwSdctwvNdEV361l9nx+bz53xn3fuDgtzY="; }) # Fix implicit dependency # https://github.com/NixOS/nixpkgs/issues/36468 # https://gitlab.com/entangle/entangle/-/merge_requests/61 ./0001-build-Add-missing-gio-unix-2.0-dependency.patch ]; nativeBuildInputs = [ itstool glib libxml2 # for xmllint meson ninja perl # for pod2man and build scripts python3 # for build scripts pkg-config wrapGAppsHook3 gobject-introspection ]; buildInputs = [ at-spi2-core dbus libepoxy elfutils gexiv2 glib lerc gst_all_1.gst-plugins-base gst_all_1.gstreamer gtk3 lcms2 libdatrie libgphoto2 libgudev libpeas libraw libselinux libsepol libthai libunwind libxkbcommon orc udev util-linux zstd ] ++ (with xorg; [ libXdmcp libXtst ]); # Disable building of doc/reference since it requires network connection to render XML to HTML # Patch build script shebangs postPatch = '' sed -i "/subdir('reference')/d" "docs/meson.build" patchShebangs --build build-aux meson_post_install.py sed -i meson_post_install.py \ -e "/print('Update icon cache...')/d" \ -e "/gtk-update-icon-cache/d" ''; meta = { description = "Tethered camera control and capture"; longDescription = '' Entangle uses GTK and libgphoto2 to provide a graphical interface for tethered photography with digital cameras. It includes control over camera shooting and configuration settings and 'hands off' shooting directly from the controlling computer. This app can also serve as a camera app for mobile devices. ''; homepage = "https://gitlab.com/entangle/entangle"; license = lib.licenses.gpl3Plus; platforms = lib.platforms.all; maintainers = with lib.maintainers; [ ShamrockLee ]; mainProgram = "entangle"; }; })