Unverified Commit 662ae2a0 authored by Lily Foster's avatar Lily Foster Committed by GitHub
Browse files

Merge pull request #305665 from hacker1024/update/gst-plugins-rs

gst_all_1.gst-plugins-rs: 0.11.0+fixup -> 0.12.4
parents 321ca9eb ac947d31
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
, MediaToolbox
, OpenGL
, Security
, SystemConfiguration
, VideoToolbox
, ipu6ep-camera-hal
, ipu6epmtl-camera-hal
@@ -32,7 +33,7 @@

  gst-plugins-viperfx = callPackage ./viperfx { };

  gst-plugins-rs = callPackage ./rs { inherit Security; };
  gst-plugins-rs = callPackage ./rs { inherit Security SystemConfiguration; };

  gst-rtsp-server = callPackage ./rtsp-server { };

+2009 −1195

File changed.

Preview size limit exceeded, changes collapsed.

+30 −25
Original line number Diff line number Diff line
{ lib
, stdenv
, fetchFromGitLab
, fetchFromGitHub
, fetchpatch
, rustPlatform
, meson
@@ -23,6 +24,7 @@
, openssl
, pango
, Security
, SystemConfiguration
, gst-plugins-good
, nix-update-script
# specifies a limited subset of plugins to build (the default `null` means all plugins supported on the stdenv platform)
@@ -60,8 +62,8 @@ let
    raptorq = [ ];
    reqwest = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
    rtp = [ ];
    webrtc = [ gst-plugins-bad openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
    webrtchttp = [ gst-plugins-bad openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
    webrtc = [ gst-plugins-bad openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
    webrtchttp = [ gst-plugins-bad openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];

    # text
    textahead = [ ];
@@ -79,7 +81,19 @@ let
    # video
    cdg = [ ];
    closedcaption = [ pango ];
    dav1d = [ dav1d ];
    dav1d = [
      # Only dav1d < 1.3 is supported for now.
      # https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1393
      (dav1d.overrideAttrs rec {
        version = "1.2.1";
        src = fetchFromGitHub {
          owner = "videolan";
          repo = "dav1d";
          rev = version;
          hash = "sha256-RrEim3HXXjx2RUU7K3wPH3QbhNTRN9ZX/oAcyE9aV8I=";
        };
      })
    ];
    ffv1 = [ ];
    gif = [ ];
    gtk4 = [ gtk4 ];
@@ -126,9 +140,9 @@ in
  assert lib.assertMsg (invalidPlugins == [])
    "Invalid gst-plugins-rs plugin${lib.optionalString (lib.length invalidPlugins > 1) "s"}: ${lib.concatStringsSep ", " invalidPlugins}";

stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
  pname = "gst-plugins-rs";
  version = "0.11.0+fixup";
  version = "0.12.4";

  outputs = [ "out" "dev" ];

@@ -136,8 +150,8 @@ stdenv.mkDerivation rec {
    domain = "gitlab.freedesktop.org";
    owner = "gstreamer";
    repo = "gst-plugins-rs";
    rev = version;
    hash = "sha256-nvDvcY/WyVhcxitcoqgEUT8A1synZqxG2e51ct7Fgss=";
    rev = finalAttrs.version;
    hash = "sha256-Qnp+e1Vww2kWjDG0x2tcigwDdG67I4xnm8+QrBI+o08=";
    # TODO: temporary workaround for case-insensitivity problems with color-name crate - https://github.com/annymosse/color-name/pull/2
    postFetch = ''
      sedSearch="$(cat <<\EOF | sed -ze 's/\n/\\n/g'
@@ -162,12 +176,12 @@ stdenv.mkDerivation rec {
  cargoDeps = rustPlatform.importCargoLock {
    lockFile = ./Cargo.lock;
    outputHashes = {
      "cairo-rs-0.18.1" = "sha256-k+YIAZXxejbxPQqbUU91qbx2AR98gTrseknLHtNZDEE=";
      "cairo-rs-0.19.3" = "sha256-TjVXdnlYEfPLbUx1pC84rCC2MlNecECMK2Yo9XKwz9M=";
      "color-name-1.1.0" = "sha256-RfMStbe2wX5qjPARHIFHlSDKjzx8DwJ+RjzyltM5K7A=";
      "ffv1-0.0.0" = "sha256-af2VD00tMf/hkfvrtGrHTjVJqbl+VVpLaR0Ry+2niJE=";
      "flavors-0.2.0" = "sha256-zBa0X75lXnASDBam9Kk6w7K7xuH9fP6rmjWZBUB5hxk=";
      "gdk4-0.7.1" = "sha256-UMGmZivVdvmKRAjIGlj6pjDxwfNJyz8/6C0eYH1OOw4=";
      "gstreamer-0.21.0" = "sha256-2uilK8wYG8e59fdL3q+kmixc1zw+EBwqvGs/EgfCGhk=";
      "gdk4-0.8.1" = "sha256-VPmegFZ/bC8x1vkl3YU208jQ8FCEKLwe6ZDatz4mIvM=";
      "gstreamer-0.22.4" = "sha256-r5+wOEhTVztDMEu6t47yJ9HIlbXyjdvswUND4l7kPl8=";
    };
  };

@@ -202,36 +216,26 @@ stdenv.mkDerivation rec {
    map (plugin: lib.mesonEnable plugin true) selectedPlugins
  ) ++ [
    (lib.mesonOption "sodium-source" "system")
    (lib.mesonEnable "tests" finalAttrs.finalPackage.doCheck)
    (lib.mesonEnable "doc" enableDocumentation)
  ];

  # turn off all auto plugins since we use a list of plugins we generate
  mesonAutoFeatures = "disabled";

  doCheck = true;
  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;

  # csound lib dir must be manually specified for it to build
  # webrtc and webrtchttp plugins are the only that need gstreamer-webrtc (from gst-plugins-bad, a heavy set)
  preConfigure = ''
    export CARGO_BUILD_JOBS=$NIX_BUILD_CORES

    patchShebangs dependencies.py
  '' + lib.optionalString (lib.elem "csound" selectedPlugins) ''
    export CSOUND_LIB_DIR=${lib.getLib csound}/lib
  '' + lib.optionalString (lib.mutuallyExclusive [ "webrtc" "webrtchttp" ] selectedPlugins) ''
    sed -i "/\['gstreamer-webrtc-1\.0', 'gst-plugins-bad', 'gstwebrtc_dep', 'gstwebrtc'\]/d" meson.build
  '' + lib.optionalString (!gst-plugins-base.glEnabled) ''
    sed -i "/\['gstreamer-gl-1\.0', 'gst-plugins-base', 'gst_gl_dep', 'gstgl'\]/d" meson.build
  '';

  # run tests ourselves to avoid meson timing out by default
  checkPhase = ''
    runHook preCheck

    meson test --no-rebuild --verbose --timeout-multiplier 12

    runHook postCheck
  '';
  # give meson longer before timing out for tests
  mesonCheckFlags = [ "--verbose" "--timeout-multiplier" "12" ];

  doInstallCheck = (lib.elem "webp" selectedPlugins) && !stdenv.hostPlatform.isStatic &&
    stdenv.hostPlatform.isElf;
@@ -243,6 +247,7 @@ stdenv.mkDerivation rec {

  passthru.updateScript = nix-update-script {
    # use numbered releases rather than gstreamer-* releases
    # this matches upstream's recommendation: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/470#note_2202772
    extraArgs = [ "--version-regex" "([0-9.]+)" ];
  };

@@ -254,4 +259,4 @@ stdenv.mkDerivation rec {
    platforms = platforms.unix;
    maintainers = with maintainers; [ lilyinstarlight ];
  };
}
})
+1 −1
Original line number Diff line number Diff line
@@ -21244,7 +21244,7 @@ with pkgs;
  gst_all_1 = recurseIntoAttrs(callPackage ../development/libraries/gstreamer {
    callPackage = newScope (gst_all_1 // { libav = pkgs.ffmpeg-headless; });
    inherit (darwin.apple_sdk.frameworks) AudioToolbox AVFoundation Cocoa CoreFoundation CoreMedia CoreServices CoreVideo DiskArbitration Foundation IOKit MediaToolbox OpenGL Security VideoToolbox;
    inherit (darwin.apple_sdk.frameworks) AudioToolbox AVFoundation Cocoa CoreFoundation CoreMedia CoreServices CoreVideo DiskArbitration Foundation IOKit MediaToolbox OpenGL Security SystemConfiguration VideoToolbox;
  });
  gusb = callPackage ../development/libraries/gusb { };