{ lib, stdenv, fetchurl, fetchpatch, cairo, meson, ninja, pkg-config, gstreamer, gst-plugins-base, gst-plugins-bad, gst-rtsp-server, python3, gobject-introspection, rustPlatform, rustc, cargo, json-glib, # Checks meson.is_cross_build(), so even canExecute isn't enough. enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform, hotdoc, directoryListingUpdater, _experimental-update-script-combinators, common-updater-scripts, apple-sdk_gstreamer, }: stdenv.mkDerivation (finalAttrs: { pname = "gst-devtools"; version = "1.26.11"; outputs = [ "out" "dev" ]; src = fetchurl { url = "https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-${finalAttrs.version}.tar.xz"; hash = "sha256-Vl9IU4jJSYr+v3gAQYPN/xATEhEoZBqlbtql6pRBK+I="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) src cargoRoot ; name = "gst-devtools-${finalAttrs.version}"; hash = "sha256-sqN1IBkbrT3pQqUQKU2pr8G1t4kNMKk0NR7NH7dTvAE="; }; depsBuildBuild = [ pkg-config ]; nativeBuildInputs = [ meson ninja pkg-config gobject-introspection rustPlatform.cargoSetupHook rustc cargo ] ++ lib.optionals enableDocumentation [ hotdoc ]; buildInputs = [ cairo python3 json-glib ] ++ lib.optionals (stdenv.hostPlatform.isDarwin) [ apple-sdk_gstreamer ]; propagatedBuildInputs = [ gstreamer gst-plugins-base gst-plugins-bad gst-rtsp-server ]; mesonFlags = [ (lib.mesonEnable "doc" enableDocumentation) ]; cargoRoot = "dots-viewer"; passthru = { updateScript = let updateSource = directoryListingUpdater { }; updateLockfile = { command = [ "sh" "-c" '' PATH=${ lib.makeBinPath [ common-updater-scripts ] } update-source-version gst_all_1.gst-devtools --ignore-same-version --source-key=cargoDeps.vendorStaging > /dev/null '' ]; # Experimental feature: do not copy! supportedFeatures = [ "silent" ]; }; in _experimental-update-script-combinators.sequence [ updateSource updateLockfile ]; }; preFixup = '' moveToOutput "lib/gstreamer-1.0/pkgconfig" "$dev" ''; meta = { description = "Integration testing infrastructure for the GStreamer framework"; homepage = "https://gstreamer.freedesktop.org"; license = lib.licenses.lgpl2Plus; platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ tmarkus ]; }; })