about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorNiklas Hambüchen <mail@nh2.me>2020-10-29 14:04:16 +0100
committerGitHub <noreply@github.com>2020-10-29 14:04:16 +0100
commite5b345c09d0cfaa11c27125801e4dab7cea493de (patch)
tree66b39b8b235cef11d947c7a78b41d1827309eb3e /pkgs
parent0b32140b34485eaa03a68e51b9d5aebc6bcce1fa (diff)
parent38c52994a6334fb37b9009a638b1e5904ca4cb7f (diff)
Merge pull request #99345 from nh2/gstreamer-1.18.0
gstreamer: 1.16.2 -> 1.18.0
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/networking/instant-messengers/fractal/default.nix2
-rw-r--r--pkgs/applications/video/pitivi/default.nix76
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix41
-rw-r--r--pkgs/development/libraries/gstreamer/bad/opencv-4.3.patch13
-rw-r--r--pkgs/development/libraries/gstreamer/base/default.nix24
-rw-r--r--pkgs/development/libraries/gstreamer/core/default.nix31
-rw-r--r--pkgs/development/libraries/gstreamer/core/fix_pkgconfig_includedir.patch2
-rw-r--r--pkgs/development/libraries/gstreamer/default.nix6
-rw-r--r--pkgs/development/libraries/gstreamer/devtools/default.nix (renamed from pkgs/development/libraries/gstreamer/validate/default.nix)27
-rw-r--r--pkgs/development/libraries/gstreamer/devtools/fix_pkgconfig_includedir.patch (renamed from pkgs/development/libraries/gstreamer/good/fix_pkgconfig_includedir.patch)14
-rw-r--r--pkgs/development/libraries/gstreamer/ges/default.nix29
-rw-r--r--pkgs/development/libraries/gstreamer/good/default.nix20
-rw-r--r--pkgs/development/libraries/gstreamer/libav/default.nix13
-rw-r--r--pkgs/development/libraries/gstreamer/rtsp-server/default.nix21
-rw-r--r--pkgs/development/libraries/gstreamer/ugly/default.nix11
-rw-r--r--pkgs/development/libraries/gstreamer/vaapi/default.nix23
-rw-r--r--pkgs/development/python-modules/gst-python/default.nix30
17 files changed, 187 insertions, 196 deletions
diff --git a/pkgs/applications/networking/instant-messengers/fractal/default.nix b/pkgs/applications/networking/instant-messengers/fractal/default.nix
index 2bcd13744b660..7098bba2de093 100644
--- a/pkgs/applications/networking/instant-messengers/fractal/default.nix
+++ b/pkgs/applications/networking/instant-messengers/fractal/default.nix
@@ -63,7 +63,7 @@ rustPlatform.buildRustPackage rec {
       gtkSupport = true;
     })
     gst_all_1.gstreamer
-    gst_all_1.gst-validate
+    gst_all_1.gst-devtools
     gtk3
     gtksourceview4
     libhandy_0
diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix
index ee07a5c7cc891..535913c6f2b23 100644
--- a/pkgs/applications/video/pitivi/default.nix
+++ b/pkgs/applications/video/pitivi/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , fetchFromGitHub
 , fetchurl
-, fetchpatch
 , pkg-config
 , gettext
 , itstool
@@ -11,6 +10,7 @@
 , gst_all_1
 , gtk3
 , gobject-introspection
+, libpeas
 , librsvg
 , gnome3
 , libnotify
@@ -20,40 +20,15 @@
 , gsettings-desktop-schemas
 }:
 
-let
-  # gst-transcoder was merged with gst-plugins-bad 1.18.
-  # TODO: switch to that once available.
-  gst-transcoder = stdenv.mkDerivation rec {
-    version = "1.14.1";
-    pname = "gst-transcoder";
-    src = fetchFromGitHub {
-      owner = "pitivi";
-      repo = "gst-transcoder";
-      rev = version;
-      sha256 = "16skiz9akavssii529v9nr8zd54w43livc14khdyzv164djg9q8f";
-    };
-    nativeBuildInputs = [
-      pkg-config
-      meson
-      ninja
-      gobject-introspection
-      python3
-    ];
-    buildInputs = with gst_all_1; [
-      gstreamer
-      gst-plugins-base
-    ];
-  };
-
-in python3Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "pitivi";
-  version = "0.999";
+  version = "2020.09.1";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0mxp2p4gg976fp1vj3rb5rmpl5mqfzncm9vw2719irl32f1qlvyb";
+    sha256 = "1by52b56s9c3h23n40iccygkazwlhii2gb28zhnj2xz5805j05y2";
   };
 
   patches = [
@@ -61,42 +36,6 @@ in python3Packages.buildPythonApplication rec {
     # and saves them to the generated binary. This would make the build-time
     # dependencies part of the closure so we remove it.
     ./prevent-closure-contamination.patch
-
-    # Port from intltool to gettext.
-    # Needed for the following patches to apply.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/pitivi/commit/89b1053f2516c594f414c5c67c835471bce44b67.patch";
-      sha256 = "8yhArzAtZC+WjHftcSDrstBlT8j6WlGHffU9Nj+ny+c=";
-      excludes = [ "po/POTFILES.in" ];
-    })
-
-    # Complete switching to gst-transcoder in gst-plugins-bad.
-    # Otherwise there will likely be conflics.
-    # TODO: Apply this patch once we are using gst-transcoder from gst-plugins-bad.
-    # (fetchpatch {
-    #   url = "https://gitlab.gnome.org/GNOME/pitivi/commit/51ae6533ee26ffd47e453eb5f5ad8cd46f57d15e.patch";
-    #   sha256 = "zxJm+E5o+oZ3lW6wYNY/ERo2g4NmCjoY8oV+uScq8j8=";
-    # })
-
-    # Generate renderer.so on macOS instead of dylib.
-    # Needed for the following patch to apply.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/pitivi/commit/bcacadcafabf8911efb0fddc8d57329237d08cd1.patch";
-      sha256 = "2BM5acIwOgdr1L9vhtMMN4trrLuqCg/K6v6ZYtD1Fjw=";
-      postFetch = ''
-        sed -i -e "s/1.90.0.1/0.999/g" "$out"
-      '';
-    })
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/pitivi/commit/0a3cc054a2c20b59f5aaaaa307de3c9af3c0d270.patch";
-      sha256 = "6DhqRlxFWFFdLwGoFem+vPt8x7v732KMVjMF9fypMK4=";
-      postFetch = ''
-        sed "$out" -i \
-          -e "s/1.90.0.1/0.999/g" \
-          -e "s/\(-python_dep.*\)/\1\n /" \
-          -e "s/-1,9 +1,16/-1,10 +1,17/"
-      '';
-    })
   ];
 
   nativeBuildInputs = [
@@ -112,13 +51,13 @@ in python3Packages.buildPythonApplication rec {
   buildInputs = [
     gobject-introspection
     gtk3
+    libpeas
     librsvg
     gnome3.gnome-desktop
     gsound
     gnome3.adwaita-icon-theme
     gsettings-desktop-schemas
     libnotify
-    gst-transcoder
   ] ++ (with gst_all_1; [
     gstreamer
     gst-editing-services
@@ -127,7 +66,7 @@ in python3Packages.buildPythonApplication rec {
     gst-plugins-bad
     gst-plugins-ugly
     gst-libav
-    gst-validate
+    gst-devtools
   ]);
 
   pythonPath = with python3Packages; [
@@ -142,9 +81,6 @@ in python3Packages.buildPythonApplication rec {
 
   postPatch = ''
     patchShebangs ./getenvvar.py
-
-    # fetchpatch does not support renamings
-    mv data/org.pitivi.Pitivi-mime.xml data/org.pitivi.Pitivi-mime.xml.in
   '';
 
   # Fixes error
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index 903ca661486f3..88c9f9a385a16 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -29,6 +29,7 @@
 , libbs2b
 , libmodplug
 , mpeg2dec
+, libmicrodns
 , openjpeg
 , libopus
 , librsvg
@@ -65,6 +66,7 @@
 , wayland-protocols
 , wildmidi
 , fluidsynth
+, libva
 , libvdpau
 , wayland
 , libwebp
@@ -87,25 +89,27 @@ let
   inherit (stdenv.lib) optional optionals;
 in stdenv.mkDerivation rec {
   pname = "gst-plugins-bad";
-  version = "1.16.2";
+  version = "1.18.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0x0y0hm0ga3zqi5q4090hw5sjh59y1ry9ak16qsaascm72i7mjzi";
+    sha256 = "0pqqq5bs9fjwcmbwgsgxs2dx6gznhxs7ii5pmjkslr6xmlfap0pk";
   };
 
   patches = [
-    # Fix build with neon 0.31
-    # https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1165
+    ./fix_pkgconfig_includedir.patch
+    # Fixes srt usage failing with
+    #     Failed to open SRT: failed to set SRTO_LINGER (reason: Operation not supported: Bad parameters)
+    # see https://github.com/Haivision/srt/issues/1374
+    # Remove when https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/84f8dbd932029220ee86154dd85b241911ea3891
+    # is shown as being in a release tag that nixpkgs uses.
     (fetchpatch {
-      url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/f10b424418e448211e3427a76fcd046e157ef0b7.patch";
-      sha256 = "0l1f6kqcl04q7w12a2b4qibcvjz6gqhs0csdv2wbvfd6zndpjm6p";
+      name = "gstreamer-srtobject-typecast-SRTO_LINGER-to-linger.patch";
+      url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/84f8dbd932029220ee86154dd85b241911ea3891.patch";
+      sha256 = "0596lvgi93sj3yn98grgmsrhnqhhq7fnjk91qi4xc6618fpqmp9x";
     })
-    ./fix_pkgconfig_includedir.patch
-    # https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1235
-    ./opencv-4.3.patch
   ];
 
   nativeBuildInputs = [
@@ -130,6 +134,7 @@ in stdenv.mkDerivation rec {
     libbs2b
     libmodplug
     mpeg2dec
+    libmicrodns
     openjpeg
     libopus
     librsvg
@@ -154,6 +159,7 @@ in stdenv.mkDerivation rec {
     soundtouch
     srtp
     fluidsynth
+    libva
     libvdpau
     libwebp
     xvidcore
@@ -215,11 +221,14 @@ in stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
+    "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
 
+    "-Davtp=disabled"
     "-Ddts=disabled" # required `libdca` library not packaged in nixpkgs as of writing, and marked as "BIG FAT WARNING: libdca is still in early development"
     "-Dzbar=${if enableZbar then "enabled" else "disabled"}"
     "-Dfaac=${if faacSupport then "enabled" else "disabled"}"
     "-Diqa=disabled" # required `dssim` library not packaging in nixpkgs as of writing
+    "-Dmagicleap=disabled" # required `ml_audio` library not packaged in nixpkgs as of writing
     "-Dmsdk=disabled" # not packaged in nixpkgs as of writing / no Windows support
     # As of writing, with `libmpcdec` in `buildInputs` we get
     #   "Could not find libmpcdec header files, but Musepack was enabled via options"
@@ -236,19 +245,16 @@ in stdenv.mkDerivation rec {
     "-Dopenni2=disabled" # not packaged in nixpkgs as of writing
     "-Dopensles=disabled" # not packaged in nixpkgs as of writing
     "-Dsctp=disabled" # required `usrsctp` library not packaged in nixpkgs as of writing
+    "-Dsvthevcenc=disabled" # required `SvtHevcEnc` library not packaged in nixpkgs as of writing
     "-Dteletext=disabled" # required `zvbi` library not packaged in nixpkgs as of writing
     "-Dtinyalsa=disabled" # not packaged in nixpkgs as of writing
     "-Dvoaacenc=disabled" # required `vo-aacenc` library not packaged in nixpkgs as of writing
     "-Dvoamrwbenc=disabled" # required `vo-amrwbenc` library not packaged in nixpkgs as of writing
     "-Dvulkan=disabled" # Linux-only, and we haven't figured out yet which of the vulkan nixpkgs it needs
     "-Dwasapi=disabled" # not packaged in nixpkgs as of writing / no Windows support
+    "-Dwasapi2=disabled" # not packaged in nixpkgs as of writing / no Windows support
     "-Dwpe=disabled" # required `wpe-webkit` library not packaged in nixpkgs as of writing
-
-    # Requires CUDA and we haven't figured out how to make Meson find CUDA yet;
-    # it probably searches via pkgconfig, for which we have no .pc files,
-    # see https://github.com/NixOS/nixpkgs/issues/54395
-    "-Dnvdec=disabled"
-    "-Dnvenc=disabled"
+    "-Dzxing=disabled" # required `zxing-cpp` library not packaged in nixpkgs as of writing
   ]
   ++ optionals stdenv.isDarwin [
     "-Dbluez=disabled"
@@ -276,6 +282,11 @@ in stdenv.mkDerivation rec {
     "-Dapplemedia=disabled"
   ];
 
+  postPatch = ''
+    patchShebangs \
+      scripts/extract-release-date-from-doap-file.py
+  '';
+
   # This package has some `_("string literal")` string formats
   # that trip up clang with format security enabled.
   hardeningDisable = [ "format" ];
diff --git a/pkgs/development/libraries/gstreamer/bad/opencv-4.3.patch b/pkgs/development/libraries/gstreamer/bad/opencv-4.3.patch
deleted file mode 100644
index 55155d5c5e775..0000000000000
--- a/pkgs/development/libraries/gstreamer/bad/opencv-4.3.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/ext/opencv/meson.build b/ext/opencv/meson.build
-index f38b55d..05b142e 100644
---- a/ext/opencv/meson.build
-+++ b/ext/opencv/meson.build
-@@ -65,7 +65,7 @@ if opencv_found
-     endif
-   endforeach
- else
--  opencv_dep = dependency('opencv4', version : ['>= 4.0.0', '< 4.2.0'], required : false)
-+  opencv_dep = dependency('opencv4', version : ['>= 4.0.0', '< 4.4.0'], required : false)
-   opencv_found = opencv_dep.found()
-   if opencv_found
-     foreach h : libopencv4_headers
diff --git a/pkgs/development/libraries/gstreamer/base/default.nix b/pkgs/development/libraries/gstreamer/base/default.nix
index 79405e5077e03..00f3ecd449d1b 100644
--- a/pkgs/development/libraries/gstreamer/base/default.nix
+++ b/pkgs/development/libraries/gstreamer/base/default.nix
@@ -19,9 +19,6 @@
 , libvisual
 , tremor # provides 'virbisidec'
 , libGL
-, gtk-doc
-, docbook_xsl
-, docbook_xml_dtd_43
 , enableX11 ? stdenv.isLinux
 , libXv
 , enableWayland ? stdenv.isLinux
@@ -42,13 +39,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-base";
-  version = "1.16.2";
+  version = "1.18.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi";
+    sha256 = "15vqvcy842vhbic3w7l4yvannzazdgwggzv2x8f9m02hm78vsakn";
   };
 
   patches = [
@@ -66,9 +63,7 @@ stdenv.mkDerivation rec {
     gobject-introspection
 
     # docs
-    gtk-doc
-    docbook_xsl
-    docbook_xml_dtd_43
+    # TODO add hotdoc here
   ] ++ lib.optional enableWayland wayland;
 
   buildInputs = [
@@ -103,17 +98,10 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
+    "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
     "-Dgl-graphene=disabled" # not packaged in nixpkgs as of writing
     # See https://github.com/GStreamer/gst-plugins-base/blob/d64a4b7a69c3462851ff4dcfa97cc6f94cd64aef/meson_options.txt#L15 for a list of choices
     "-Dgl_winsys=${lib.concatStringsSep "," (lib.optional enableX11 "x11" ++ lib.optional enableWayland "wayland" ++ lib.optional enableCocoa "cocoa")}"
-    # We must currently disable gtk_doc API docs generation,
-    # because it is not compatible with some features being disabled.
-    # See for example
-    #     https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/564
-    # for it failing because some Wayland symbols are missing.
-    # This problem appeared between 1.15.1 and 1.16.0.
-    # In 1.18 they should switch to hotdoc, which should make this issue irrelevant.
-    "-Dgtk_doc=disabled"
   ]
   ++ lib.optional (!enableX11) "-Dx11=disabled"
   # TODO How to disable Wayland?
@@ -125,7 +113,9 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    patchShebangs common/scangobj-merge.py
+    patchShebangs \
+      common/scangobj-merge.py \
+      scripts/extract-release-date-from-doap-file.py
   '';
 
   # This package has some `_("string literal")` string formats
diff --git a/pkgs/development/libraries/gstreamer/core/default.nix b/pkgs/development/libraries/gstreamer/core/default.nix
index 9c4f3ee0251d5..be4d19f8d0dfb 100644
--- a/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/pkgs/development/libraries/gstreamer/core/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , fetchurl
-, fetchpatch
 , meson
 , ninja
 , pkgconfig
@@ -16,34 +15,30 @@
 , darwin
 , elfutils # for libdw
 , bash-completion
-, docbook_xsl
-, docbook_xml_dtd_43
-, gtk-doc
 , lib
 , CoreServices
 }:
 
 stdenv.mkDerivation rec {
   pname = "gstreamer";
-  version = "1.16.2";
+  version = "1.18.0";
 
-  outputs = [ "out" "dev" "devdoc" ];
+  outputs = [
+    "out"
+    "dev"
+    # "devdoc" # disabled until `hotdoc` is packaged in nixpkgs, see:
+    # - https://github.com/NixOS/nixpkgs/pull/98767
+    # - https://github.com/NixOS/nixpkgs/issues/98769#issuecomment-702296551
+  ];
   outputBin = "dev";
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0kp93622y29pck8asvil1fmzf55s2gx76wv475a6izc3cwj49w73";
+    sha256 = "01bq1k0gj603zyhq975zl09q4zla12mxqvhmk9fyn2kcn12r5w0g";
   };
 
   patches = [
     ./fix_pkgconfig_includedir.patch
-
-    # Fix build with bash-completion 2.10
-    # https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/436
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/gstreamer/gstreamer/commit/dd2ec3681e2d38e13e01477efa36e851650690fb.patch";
-      sha256 = "07hwf67vndsibm1khvs4rfq30sbs9fss8k5vs502xc0kccbi1ih8";
-    })
   ];
 
   nativeBuildInputs = [
@@ -60,9 +55,7 @@ stdenv.mkDerivation rec {
     bash-completion
 
     # documentation
-    gtk-doc
-    docbook_xsl
-    docbook_xml_dtd_43
+    # TODO add hotdoc here
   ];
 
   buildInputs = [
@@ -82,6 +75,7 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Ddbghelp=disabled" # not needed as we already provide libunwind and libdw, and dbghelp is a fallback to those
     "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
+    "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
   ] ++ lib.optionals stdenv.isDarwin [
     # darwin.libunwind doesn't have pkgconfig definitions so meson doesn't detect it.
     "-Dlibunwind=disabled"
@@ -93,7 +87,8 @@ stdenv.mkDerivation rec {
       gst/parse/get_flex_version.py \
       gst/parse/gen_grammar.py.in \
       gst/parse/gen_lex.py.in \
-      libs/gst/helpers/ptp_helper_post_install.sh
+      libs/gst/helpers/ptp_helper_post_install.sh \
+      scripts/extract-release-date-from-doap-file.py
   '';
 
   postInstall = ''
diff --git a/pkgs/development/libraries/gstreamer/core/fix_pkgconfig_includedir.patch b/pkgs/development/libraries/gstreamer/core/fix_pkgconfig_includedir.patch
index c388a82fa2a84..db16842693502 100644
--- a/pkgs/development/libraries/gstreamer/core/fix_pkgconfig_includedir.patch
+++ b/pkgs/development/libraries/gstreamer/core/fix_pkgconfig_includedir.patch
@@ -7,8 +7,10 @@ index edb0586c2..7ed46dfce 100644
  pkgconf.set('prefix', join_paths(get_option('prefix')))
  pkgconf.set('exec_prefix', '${prefix}')
 -pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir')))
+-pkgconf.set('libexecdir', '${prefix}/@0@'.format(get_option('libexecdir')))
 -pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
 +pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir')))
++pkgconf.set('libexecdir', join_paths(get_option('prefix'), get_option('libexecdir')))
 +pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir')))
  pkgconf.set('GST_API_VERSION', apiversion)
  pkgconf.set('VERSION', gst_version)
diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix
index e7e11db612981..1fdd67d836e72 100644
--- a/pkgs/development/libraries/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/default.nix
@@ -17,13 +17,13 @@ rec {
 
   gst-libav = callPackage ./libav { inherit gst-plugins-base; };
 
-  gst-editing-services = callPackage ./ges { inherit gst-plugins-base; };
+  gst-devtools = callPackage ./devtools { inherit gstreamer gst-plugins-base; };
+
+  gst-editing-services = callPackage ./ges { inherit gst-plugins-base gst-plugins-bad gst-devtools; };
 
   gst-vaapi = callPackage ./vaapi {
     inherit gst-plugins-base gstreamer gst-plugins-bad;
   };
 
-  gst-validate = callPackage ./validate { inherit gstreamer gst-plugins-base; };
-
   # note: gst-python is in ./python/default.nix - called under pythonPackages
 }
diff --git a/pkgs/development/libraries/gstreamer/validate/default.nix b/pkgs/development/libraries/gstreamer/devtools/default.nix
index 74e898481634e..f865b3adf26b7 100644
--- a/pkgs/development/libraries/gstreamer/validate/default.nix
+++ b/pkgs/development/libraries/gstreamer/devtools/default.nix
@@ -1,5 +1,7 @@
 { stdenv
 , fetchurl
+, meson
+, ninja
 , pkgconfig
 , gstreamer
 , gst-plugins-base
@@ -9,19 +11,32 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "gst-validate";
-  version = "1.16.2";
+  pname = "gst-devtools";
+  version = "1.18.0";
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1jpfrzg3yc6kp66bgq3jy14xsj3x71mk2zh0k16yf0326awwqqa8";
+    sha256 = "05jzjkkdr5hg01mjihlqdcxqnjfrm4mqk0zp83212kv5nm0p2cw2";
   };
 
-  outputs = [ "out" "dev" ];
+  patches = [
+    ./fix_pkgconfig_includedir.patch
+  ];
+
+  outputs = [
+    "out"
+    "dev"
+    # "devdoc" # disabled until `hotdoc` is packaged in nixpkgs
+  ];
 
   nativeBuildInputs = [
+    meson
+    ninja
     pkgconfig
     gobject-introspection
+
+    # documentation
+    # TODO add hotdoc here
   ];
 
   buildInputs = [
@@ -34,6 +49,10 @@ stdenv.mkDerivation rec {
     gst-plugins-base
   ];
 
+  mesonFlags = [
+    "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
+  ];
+
   meta = with stdenv.lib; {
     description = "Integration testing infrastructure for the GStreamer framework";
     homepage = "https://gstreamer.freedesktop.org";
diff --git a/pkgs/development/libraries/gstreamer/good/fix_pkgconfig_includedir.patch b/pkgs/development/libraries/gstreamer/devtools/fix_pkgconfig_includedir.patch
index f68ad603a37cc..ff19c7cbf6f84 100644
--- a/pkgs/development/libraries/gstreamer/good/fix_pkgconfig_includedir.patch
+++ b/pkgs/development/libraries/gstreamer/devtools/fix_pkgconfig_includedir.patch
@@ -1,15 +1,15 @@
-diff --git a/pkgconfig/meson.build b/pkgconfig/meson.build
-index b3bf0d4d4..3e6e576c0 100644
---- a/pkgconfig/meson.build
-+++ b/pkgconfig/meson.build
+diff --git a/validate/pkgconfig/meson.build b/validate/pkgconfig/meson.build
+index a612b21b..c017eaff 100644
+--- a/validate/pkgconfig/meson.build
++++ b/validate/pkgconfig/meson.build
 @@ -2,8 +2,8 @@ pkgconf = configuration_data()
- 
+
  pkgconf.set('prefix', get_option('prefix'))
  pkgconf.set('exec_prefix', '${prefix}')
 -pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir')))
 -pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
 +pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir')))
 +pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir')))
- pkgconf.set('GST_API_VERSION', api_version)
+ pkgconf.set('GST_API_VERSION', apiversion)
  pkgconf.set('VERSION', gst_version)
- 
+
diff --git a/pkgs/development/libraries/gstreamer/ges/default.nix b/pkgs/development/libraries/gstreamer/ges/default.nix
index af2579d0594bb..ae217c4282578 100644
--- a/pkgs/development/libraries/gstreamer/ges/default.nix
+++ b/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -1,11 +1,13 @@
 { stdenv
 , fetchurl
-, fetchpatch
 , meson
 , ninja
 , pkgconfig
 , python3
+, bash-completion
 , gst-plugins-base
+, gst-plugins-bad
+, gst-devtools
 , libxml2
 , flex
 , gettext
@@ -13,14 +15,18 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "gstreamer-editing-services";
-  version = "1.16.2";
+  pname = "gst-editing-services";
+  version = "1.18.0";
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+    # "devdoc" # disabled until `hotdoc` is packaged in nixpkgs
+  ];
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "05hcf3prna8ajjnqd53221gj9syarrrjbgvjcbhicv0c38csc1hf";
+    sha256 = "1a00f07v0yjqz1hydhgkjjarm4rk99yjicbz5wkfl5alhzag1bjd";
   };
 
   patches = [
@@ -33,26 +39,31 @@ stdenv.mkDerivation rec {
     pkgconfig
     gettext
     gobject-introspection
+    gst-devtools
     python3
     flex
+
+    # documentation
+    # TODO add hotdoc here
   ];
 
   buildInputs = [
+    bash-completion
     libxml2
   ];
 
   propagatedBuildInputs = [
     gst-plugins-base
+    gst-plugins-bad
   ];
 
   mesonFlags = [
-    "-Dgtk_doc=disabled"
+    "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
   ];
 
   postPatch = ''
-    # for some reason, gst-plugins-bad cannot be found
-    # fortunately, they are only used by tests, which we do not run
-    sed -i -r -e 's/p(bad|good) = .*/p\1 = pbase/' tests/check/meson.build
+    patchShebangs \
+      scripts/extract-release-date-from-doap-file.py
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix
index 100d270673fc4..e8c885411bdc8 100644
--- a/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/pkgs/development/libraries/gstreamer/good/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , fetchurl
 , meson
+, nasm
 , ninja
 , pkgconfig
 , python3
@@ -34,6 +35,8 @@
 , libXext
 , libXfixes
 , ncurses
+, wayland
+, wayland-protocols
 , xorg
 , libgudev
 , wavpack
@@ -46,23 +49,24 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gst-plugins-good";
-  version = "1.16.2";
+  version = "1.18.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "068k3cbv1yf3gbllfdzqsg263kzwh21y8dpwr0wvgh15vapkpfs0";
+    sha256 = "1b4b3a6fm2wyqpnx300pg1sz01m9qhfajadk3b7sbzisg8vvqab3";
   };
 
-  patches = [ ./fix_pkgconfig_includedir.patch ];
-
   nativeBuildInputs = [
     pkgconfig
     python3
     meson
     ninja
     gettext
+    nasm
+  ] ++ optionals stdenv.isLinux [
+    wayland-protocols
   ];
 
   buildInputs = [
@@ -102,12 +106,14 @@ stdenv.mkDerivation rec {
     libavc1394
     libiec61883
     libgudev
+    wayland
   ] ++ optionals enableJack [
     libjack2
   ];
 
   mesonFlags = [
     "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
+    "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
     "-Dqt5=disabled" # not clear as of writing how to correctly pass in the required qt5 deps
   ] ++ optionals (!gtkSupport) [
     "-Dgtk3=disabled"
@@ -122,8 +128,14 @@ stdenv.mkDerivation rec {
     "-Dv4l2=disabled" # Linux-only
     "-Dximagesrc=disabled" # Linux-only
     "-Dpulse=disabled" # TODO check if we can keep this enabled
+  ] ++ optionals (!(stdenv.isLinux && stdenv.hostPlatform.isAarch64)) [
+    "-Drpicamsrc=disabled" # only works on Linux aarch64, see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/blob/428c9b60532917c0ac49c9d48b15bdcd00a1370b/sys/rpicamsrc/meson.build#L10
   ];
 
+  postPatch = ''
+    patchShebangs \
+      scripts/extract-release-date-from-doap-file.py
+  '';
 
   NIX_LDFLAGS = [
     # linking error on Darwin
diff --git a/pkgs/development/libraries/gstreamer/libav/default.nix b/pkgs/development/libraries/gstreamer/libav/default.nix
index e36eba3700712..648ee8bab35be 100644
--- a/pkgs/development/libraries/gstreamer/libav/default.nix
+++ b/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-libav";
-  version = "1.16.2";
+  version = "1.18.0";
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1wpfilc98bad9nsv3y1qapxp35dvn2mvwvrmqwrsj58cf09gc967";
+    sha256 = "0sm0sfdlalimpkf7a7rk7whvyvmmfi2kly2z3q2j5z53x5f3zya2";
   };
 
   outputs = [ "out" "dev" ];
@@ -37,6 +37,15 @@ stdenv.mkDerivation rec {
     libav
   ];
 
+  mesonFlags = [
+    "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
+  ];
+
+  postPatch = ''
+    patchShebangs \
+      scripts/extract-release-date-from-doap-file.py
+  '';
+
   meta = with lib; {
     description = "FFmpeg/libav plugin for GStreamer";
     homepage = "https://gstreamer.freedesktop.org";
diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index 92e8a45a4f6fc..e1ee9222cc8ce 100644
--- a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -3,6 +3,7 @@
 , meson
 , ninja
 , pkgconfig
+, python3
 , gettext
 , gobject-introspection
 , gst-plugins-base
@@ -11,14 +12,18 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-rtsp-server";
-  version = "1.16.2";
+  version = "1.18.0";
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0vn23nxwvs96g7gcxw5zbnw23hkhky8a8r42wq68411vgf1s41yy";
+    sha256 = "03y7nyjaagis7mmg8vbhxmnc1v9xf2y3cab2s3q2vgsc0l8r7l9a";
   };
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+    # "devdoc" # disabled until `hotdoc` is packaged in nixpkgs
+  ];
 
   patches = [
     # To use split outputs, we need this so double prefix won't be used in the
@@ -35,6 +40,10 @@ stdenv.mkDerivation rec {
     gettext
     gobject-introspection
     pkgconfig
+    python3
+
+    # documentation
+    # TODO add hotdoc here
   ];
 
   buildInputs = [
@@ -44,8 +53,14 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
+    "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
   ];
 
+  postPatch = ''
+    patchShebangs \
+      scripts/extract-release-date-from-doap-file.py
+  '';
+
   meta = with stdenv.lib; {
     description = "GStreamer RTSP server";
     homepage = "https://gstreamer.freedesktop.org";
diff --git a/pkgs/development/libraries/gstreamer/ugly/default.nix b/pkgs/development/libraries/gstreamer/ugly/default.nix
index d8c36fa40705c..ae1e2dd1b3141 100644
--- a/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-ugly";
-  version = "1.16.2";
+  version = "1.18.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1jpvc32x6q01zjkfgh6gmq6aaikiyfwwnhj7bmvn52syhrdl202m";
+    sha256 = "10p0nyzighvkciaspxnhlr7d7n4acrv96lf483i8l988bvj48rk8";
   };
 
   nativeBuildInputs = [
@@ -56,10 +56,15 @@ stdenv.mkDerivation rec {
   ]);
 
   mesonFlags = [
-    "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
+    "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
     "-Dsidplay=disabled" # sidplay / sidplay/player.h isn't packaged in nixpkgs as of writing
   ];
 
+  postPatch = ''
+    patchShebangs \
+      scripts/extract-release-date-from-doap-file.py
+  '';
+
   meta = with lib; {
     description = "Gstreamer Ugly Plugins";
     homepage = "https://gstreamer.freedesktop.org";
diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix
index cac56f64cc91c..1b2efa630b927 100644
--- a/pkgs/development/libraries/gstreamer/vaapi/default.nix
+++ b/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -16,25 +16,32 @@
 , gst-plugins-bad
 , nasm
 , libvpx
-, python
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "gstreamer-vaapi";
-  version = "1.16.2";
+  version = "1.18.0";
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "00f6sx700qm1ximi1ag2c27m35dywwhhg6awhz85va34mfqff78r";
+    sha256 = "0ccyzv15jzf0pi0ndrmfww016cn4c0y4265bacdvnxbgff6fpvy6";
   };
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+    # "devdoc" # disabled until `hotdoc` is packaged in nixpkgs
+  ];
 
   nativeBuildInputs = [
     meson
     ninja
     pkgconfig
     bzip2
+
+    # documentation
+    # TODO add hotdoc here
   ];
 
   buildInputs = [
@@ -55,13 +62,19 @@ stdenv.mkDerivation rec {
     libGLU
     nasm
     libvpx
-    python
+    python3
   ];
 
   mesonFlags = [
     "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
+    "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
   ];
 
+  postPatch = ''
+    patchShebangs \
+      scripts/extract-release-date-from-doap-file.py
+  '';
+
   meta = with stdenv.lib; {
     description = "Set of VAAPI GStreamer Plug-ins";
     homepage = "https://gstreamer.freedesktop.org";
diff --git a/pkgs/development/python-modules/gst-python/default.nix b/pkgs/development/python-modules/gst-python/default.nix
index 00d05e1891265..c66ceedc3ceef 100644
--- a/pkgs/development/python-modules/gst-python/default.nix
+++ b/pkgs/development/python-modules/gst-python/default.nix
@@ -4,17 +4,16 @@
 , ninja
 , stdenv
 , pkgconfig
-, python
+, python3
 , pygobject3
 , gobject-introspection
 , gst-plugins-base
 , isPy3k
-, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "gst-python";
-  version = "1.16.2";
+  version = "1.18.0";
 
   format = "other";
 
@@ -22,14 +21,17 @@ buildPythonPackage rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-python/${pname}-${version}.tar.xz";
-    sha256 = "1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390";
+    sha256 = "0ifx2s2j24sj2w5jm7cxyg1kinnhbxiz4x0qp3gnsjlwbawfigvn";
   };
 
+  # Python 2.x is not supported.
+  disabled = !isPy3k;
+
   nativeBuildInputs = [
     meson
     ninja
     pkgconfig
-    python
+    python3
     gobject-introspection
     gst-plugins-base
   ];
@@ -39,24 +41,8 @@ buildPythonPackage rec {
     pygobject3
   ];
 
-  patches = stdenv.lib.optionals stdenv.isDarwin [
-    # Fix configure python lib detection in macOS. Remove with the next release
-    (fetchpatch {
-      url = "https://github.com/GStreamer/gst-python/commit/f98c206bdf01529f8ea395a719b10baf2bdf717f.patch";
-      sha256 = "04n4zrnfivgr7iaqw4sjlbd882s8halc2bbbhfxqf0sg2lqwmrxg";
-    })
-  ] ++ [
-    # Fix linking against Python 3.8
-    # https://gitlab.freedesktop.org/gstreamer/gst-python/merge_requests/30
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/gstreamer/gst-python/commit/22f28155d86e27c4134de4ed2861264003fcfd23.patch";
-      sha256 = "Y70qVguHUBmmRVMFBKAP0d6anBQw5W0TKyu2bAwxbQg=";
-    })
-  ];
-
   mesonFlags = [
-    "-Dpython=python${if isPy3k then "3" else "2"}"
-    "-Dpygi-overrides-dir=${placeholder "out"}/${python.sitePackages}/gi/overrides"
+    "-Dpygi-overrides-dir=${placeholder "out"}/${python3.sitePackages}/gi/overrides"
   ];
 
   doCheck = true;