gstreamer: 1.16.2 -> 1.18.0

Fixes #98769.

Important changes from https://gstreamer.freedesktop.org/releases/1.18/:

* `gst-validate` was renamed to `gst-devtools` upstream:

    > * the `gst-validate` tarball has been superseded by
    >   the `gst-devtools` tarball for consistency with the git module name.

* `gst-python` is now Python 3 only:

    > * Python 2.x is no longer supported
This commit is contained in:
Niklas Hambüchen 2020-10-02 00:31:58 +02:00
parent e186f0e161
commit 0672de5b89
17 changed files with 173 additions and 128 deletions

View file

@ -63,7 +63,7 @@ rustPlatform.buildRustPackage rec {
gtkSupport = true; gtkSupport = true;
}) })
gst_all_1.gstreamer gst_all_1.gstreamer
gst_all_1.gst-validate gst_all_1.gst-devtools
gtk3 gtk3
gtksourceview4 gtksourceview4
libhandy libhandy

View file

@ -127,7 +127,7 @@ in python3Packages.buildPythonApplication rec {
gst-plugins-bad gst-plugins-bad
gst-plugins-ugly gst-plugins-ugly
gst-libav gst-libav
gst-validate gst-devtools
]); ]);
pythonPath = with python3Packages; [ pythonPath = with python3Packages; [

View file

@ -29,6 +29,7 @@
, libbs2b , libbs2b
, libmodplug , libmodplug
, mpeg2dec , mpeg2dec
, libmicrodns
, openjpeg , openjpeg
, libopus , libopus
, librsvg , librsvg
@ -65,6 +66,7 @@
, wayland-protocols , wayland-protocols
, wildmidi , wildmidi
, fluidsynth , fluidsynth
, libva
, libvdpau , libvdpau
, wayland , wayland
, libwebp , libwebp
@ -87,25 +89,17 @@ let
inherit (stdenv.lib) optional optionals; inherit (stdenv.lib) optional optionals;
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "gst-plugins-bad"; pname = "gst-plugins-bad";
version = "1.16.2"; version = "1.18.0";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "0x0y0hm0ga3zqi5q4090hw5sjh59y1ry9ak16qsaascm72i7mjzi"; sha256 = "0pqqq5bs9fjwcmbwgsgxs2dx6gznhxs7ii5pmjkslr6xmlfap0pk";
}; };
patches = [ patches = [
# Fix build with neon 0.31
# https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1165
(fetchpatch {
url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/f10b424418e448211e3427a76fcd046e157ef0b7.patch";
sha256 = "0l1f6kqcl04q7w12a2b4qibcvjz6gqhs0csdv2wbvfd6zndpjm6p";
})
./fix_pkgconfig_includedir.patch ./fix_pkgconfig_includedir.patch
# https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1235
./opencv-4.3.patch
]; ];
nativeBuildInputs = [ nativeBuildInputs = [
@ -130,6 +124,7 @@ in stdenv.mkDerivation rec {
libbs2b libbs2b
libmodplug libmodplug
mpeg2dec mpeg2dec
libmicrodns
openjpeg openjpeg
libopus libopus
librsvg librsvg
@ -154,6 +149,7 @@ in stdenv.mkDerivation rec {
soundtouch soundtouch
srtp srtp
fluidsynth fluidsynth
libva
libvdpau libvdpau
libwebp libwebp
xvidcore xvidcore
@ -215,11 +211,14 @@ in stdenv.mkDerivation rec {
mesonFlags = [ mesonFlags = [
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users "-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" "-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"}" "-Dzbar=${if enableZbar then "enabled" else "disabled"}"
"-Dfaac=${if faacSupport then "enabled" else "disabled"}" "-Dfaac=${if faacSupport then "enabled" else "disabled"}"
"-Diqa=disabled" # required `dssim` library not packaging in nixpkgs as of writing "-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 "-Dmsdk=disabled" # not packaged in nixpkgs as of writing / no Windows support
# As of writing, with `libmpcdec` in `buildInputs` we get # As of writing, with `libmpcdec` in `buildInputs` we get
# "Could not find libmpcdec header files, but Musepack was enabled via options" # "Could not find libmpcdec header files, but Musepack was enabled via options"
@ -236,19 +235,16 @@ in stdenv.mkDerivation rec {
"-Dopenni2=disabled" # not packaged in nixpkgs as of writing "-Dopenni2=disabled" # not packaged in nixpkgs as of writing
"-Dopensles=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 "-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 "-Dteletext=disabled" # required `zvbi` library not packaged in nixpkgs as of writing
"-Dtinyalsa=disabled" # 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 "-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 "-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 "-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 "-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 "-Dwpe=disabled" # required `wpe-webkit` library not packaged in nixpkgs as of writing
"-Dzxing=disabled" # required `zxing-cpp` 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"
] ]
++ optionals stdenv.isDarwin [ ++ optionals stdenv.isDarwin [
"-Dbluez=disabled" "-Dbluez=disabled"
@ -276,6 +272,11 @@ in stdenv.mkDerivation rec {
"-Dapplemedia=disabled" "-Dapplemedia=disabled"
]; ];
postPatch = ''
patchShebangs \
scripts/extract-release-date-from-doap-file.py
'';
# This package has some `_("string literal")` string formats # This package has some `_("string literal")` string formats
# that trip up clang with format security enabled. # that trip up clang with format security enabled.
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];

View file

@ -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

View file

@ -19,9 +19,6 @@
, libvisual , libvisual
, tremor # provides 'virbisidec' , tremor # provides 'virbisidec'
, libGL , libGL
, gtk-doc
, docbook_xsl
, docbook_xml_dtd_43
, enableX11 ? stdenv.isLinux , enableX11 ? stdenv.isLinux
, libXv , libXv
, enableWayland ? stdenv.isLinux , enableWayland ? stdenv.isLinux
@ -42,13 +39,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-plugins-base"; pname = "gst-plugins-base";
version = "1.16.2"; version = "1.18.0";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi"; sha256 = "15vqvcy842vhbic3w7l4yvannzazdgwggzv2x8f9m02hm78vsakn";
}; };
patches = [ patches = [
@ -66,9 +63,7 @@ stdenv.mkDerivation rec {
gobject-introspection gobject-introspection
# docs # docs
gtk-doc # TODO add hotdoc here
docbook_xsl
docbook_xml_dtd_43
] ++ lib.optional enableWayland wayland; ] ++ lib.optional enableWayland wayland;
buildInputs = [ buildInputs = [
@ -103,17 +98,10 @@ stdenv.mkDerivation rec {
mesonFlags = [ mesonFlags = [
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users "-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 "-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 # 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")}" "-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" ++ lib.optional (!enableX11) "-Dx11=disabled"
# TODO How to disable Wayland? # TODO How to disable Wayland?
@ -125,7 +113,9 @@ stdenv.mkDerivation rec {
]; ];
postPatch = '' 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 # This package has some `_("string literal")` string formats

View file

@ -1,6 +1,5 @@
{ stdenv { stdenv
, fetchurl , fetchurl
, fetchpatch
, meson , meson
, ninja , ninja
, pkgconfig , pkgconfig
@ -16,34 +15,30 @@
, darwin , darwin
, elfutils # for libdw , elfutils # for libdw
, bash-completion , bash-completion
, docbook_xsl
, docbook_xml_dtd_43
, gtk-doc
, lib , lib
, CoreServices , CoreServices
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gstreamer"; 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"; outputBin = "dev";
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "0kp93622y29pck8asvil1fmzf55s2gx76wv475a6izc3cwj49w73"; sha256 = "01bq1k0gj603zyhq975zl09q4zla12mxqvhmk9fyn2kcn12r5w0g";
}; };
patches = [ patches = [
./fix_pkgconfig_includedir.patch ./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 = [ nativeBuildInputs = [
@ -60,9 +55,7 @@ stdenv.mkDerivation rec {
bash-completion bash-completion
# documentation # documentation
gtk-doc # TODO add hotdoc here
docbook_xsl
docbook_xml_dtd_43
]; ];
buildInputs = [ buildInputs = [
@ -82,6 +75,7 @@ stdenv.mkDerivation rec {
mesonFlags = [ mesonFlags = [
"-Ddbghelp=disabled" # not needed as we already provide libunwind and libdw, and dbghelp is a fallback to those "-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 "-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 [ ] ++ lib.optionals stdenv.isDarwin [
# darwin.libunwind doesn't have pkgconfig definitions so meson doesn't detect it. # darwin.libunwind doesn't have pkgconfig definitions so meson doesn't detect it.
"-Dlibunwind=disabled" "-Dlibunwind=disabled"
@ -93,7 +87,8 @@ stdenv.mkDerivation rec {
gst/parse/get_flex_version.py \ gst/parse/get_flex_version.py \
gst/parse/gen_grammar.py.in \ gst/parse/gen_grammar.py.in \
gst/parse/gen_lex.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 = '' postInstall = ''

View file

@ -7,8 +7,10 @@ index edb0586c2..7ed46dfce 100644
pkgconf.set('prefix', join_paths(get_option('prefix'))) pkgconf.set('prefix', join_paths(get_option('prefix')))
pkgconf.set('exec_prefix', '${prefix}') pkgconf.set('exec_prefix', '${prefix}')
-pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir'))) -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('includedir', '${prefix}/@0@'.format(get_option('includedir')))
+pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir'))) +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('includedir', join_paths(get_option('prefix'), get_option('includedir')))
pkgconf.set('GST_API_VERSION', apiversion) pkgconf.set('GST_API_VERSION', apiversion)
pkgconf.set('VERSION', gst_version) pkgconf.set('VERSION', gst_version)

View file

@ -17,13 +17,13 @@ rec {
gst-libav = callPackage ./libav { inherit gst-plugins-base; }; 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 { gst-vaapi = callPackage ./vaapi {
inherit gst-plugins-base gstreamer gst-plugins-bad; 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 # note: gst-python is in ./python/default.nix - called under pythonPackages
} }

View file

@ -1,5 +1,7 @@
{ stdenv { stdenv
, fetchurl , fetchurl
, meson
, ninja
, pkgconfig , pkgconfig
, gstreamer , gstreamer
, gst-plugins-base , gst-plugins-base
@ -9,19 +11,32 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-validate"; pname = "gst-devtools";
version = "1.16.2"; version = "1.18.0";
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; 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 = [ nativeBuildInputs = [
meson
ninja
pkgconfig pkgconfig
gobject-introspection gobject-introspection
# documentation
# TODO add hotdoc here
]; ];
buildInputs = [ buildInputs = [
@ -34,6 +49,10 @@ stdenv.mkDerivation rec {
gst-plugins-base gst-plugins-base
]; ];
mesonFlags = [
"-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Integration testing infrastructure for the GStreamer framework"; description = "Integration testing infrastructure for the GStreamer framework";
homepage = "https://gstreamer.freedesktop.org"; homepage = "https://gstreamer.freedesktop.org";

View file

@ -1,15 +1,15 @@
diff --git a/pkgconfig/meson.build b/pkgconfig/meson.build diff --git a/validate/pkgconfig/meson.build b/validate/pkgconfig/meson.build
index b3bf0d4d4..3e6e576c0 100644 index a612b21b..c017eaff 100644
--- a/pkgconfig/meson.build --- a/validate/pkgconfig/meson.build
+++ b/pkgconfig/meson.build +++ b/validate/pkgconfig/meson.build
@@ -2,8 +2,8 @@ pkgconf = configuration_data() @@ -2,8 +2,8 @@ pkgconf = configuration_data()
pkgconf.set('prefix', get_option('prefix')) pkgconf.set('prefix', get_option('prefix'))
pkgconf.set('exec_prefix', '${prefix}') pkgconf.set('exec_prefix', '${prefix}')
-pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir'))) -pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir')))
-pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir'))) -pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
+pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir'))) +pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir')))
+pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir'))) +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) pkgconf.set('VERSION', gst_version)

View file

@ -1,11 +1,13 @@
{ stdenv { stdenv
, fetchurl , fetchurl
, fetchpatch
, meson , meson
, ninja , ninja
, pkgconfig , pkgconfig
, python3 , python3
, bash-completion
, gst-plugins-base , gst-plugins-base
, gst-plugins-bad
, gst-devtools
, libxml2 , libxml2
, flex , flex
, gettext , gettext
@ -13,14 +15,18 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gstreamer-editing-services"; pname = "gst-editing-services";
version = "1.16.2"; version = "1.18.0";
outputs = [ "out" "dev" ]; outputs = [
"out"
"dev"
# "devdoc" # disabled until `hotdoc` is packaged in nixpkgs
];
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "05hcf3prna8ajjnqd53221gj9syarrrjbgvjcbhicv0c38csc1hf"; sha256 = "1a00f07v0yjqz1hydhgkjjarm4rk99yjicbz5wkfl5alhzag1bjd";
}; };
patches = [ patches = [
@ -33,26 +39,31 @@ stdenv.mkDerivation rec {
pkgconfig pkgconfig
gettext gettext
gobject-introspection gobject-introspection
gst-devtools
python3 python3
flex flex
# documentation
# TODO add hotdoc here
]; ];
buildInputs = [ buildInputs = [
bash-completion
libxml2 libxml2
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
gst-plugins-base gst-plugins-base
gst-plugins-bad
]; ];
mesonFlags = [ mesonFlags = [
"-Dgtk_doc=disabled" "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
]; ];
postPatch = '' postPatch = ''
# for some reason, gst-plugins-bad cannot be found patchShebangs \
# fortunately, they are only used by tests, which we do not run scripts/extract-release-date-from-doap-file.py
sed -i -r -e 's/p(bad|good) = .*/p\1 = pbase/' tests/check/meson.build
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -1,6 +1,7 @@
{ stdenv { stdenv
, fetchurl , fetchurl
, meson , meson
, nasm
, ninja , ninja
, pkgconfig , pkgconfig
, python3 , python3
@ -34,6 +35,8 @@
, libXext , libXext
, libXfixes , libXfixes
, ncurses , ncurses
, wayland
, wayland-protocols
, xorg , xorg
, libgudev , libgudev
, wavpack , wavpack
@ -46,23 +49,24 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-plugins-good"; pname = "gst-plugins-good";
version = "1.16.2"; version = "1.18.0";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "068k3cbv1yf3gbllfdzqsg263kzwh21y8dpwr0wvgh15vapkpfs0"; sha256 = "1b4b3a6fm2wyqpnx300pg1sz01m9qhfajadk3b7sbzisg8vvqab3";
}; };
patches = [ ./fix_pkgconfig_includedir.patch ];
nativeBuildInputs = [ nativeBuildInputs = [
pkgconfig pkgconfig
python3 python3
meson meson
ninja ninja
gettext gettext
nasm
] ++ optionals stdenv.isLinux [
wayland-protocols
]; ];
buildInputs = [ buildInputs = [
@ -102,12 +106,14 @@ stdenv.mkDerivation rec {
libavc1394 libavc1394
libiec61883 libiec61883
libgudev libgudev
wayland
] ++ optionals enableJack [ ] ++ optionals enableJack [
libjack2 libjack2
]; ];
mesonFlags = [ mesonFlags = [
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users "-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 "-Dqt5=disabled" # not clear as of writing how to correctly pass in the required qt5 deps
] ++ optionals (!gtkSupport) [ ] ++ optionals (!gtkSupport) [
"-Dgtk3=disabled" "-Dgtk3=disabled"
@ -122,8 +128,14 @@ stdenv.mkDerivation rec {
"-Dv4l2=disabled" # Linux-only "-Dv4l2=disabled" # Linux-only
"-Dximagesrc=disabled" # Linux-only "-Dximagesrc=disabled" # Linux-only
"-Dpulse=disabled" # TODO check if we can keep this enabled "-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 = [ NIX_LDFLAGS = [
# linking error on Darwin # linking error on Darwin

View file

@ -15,11 +15,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-libav"; pname = "gst-libav";
version = "1.16.2"; version = "1.18.0";
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "1wpfilc98bad9nsv3y1qapxp35dvn2mvwvrmqwrsj58cf09gc967"; sha256 = "0sm0sfdlalimpkf7a7rk7whvyvmmfi2kly2z3q2j5z53x5f3zya2";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
@ -37,6 +37,15 @@ stdenv.mkDerivation rec {
libav 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; { meta = with lib; {
description = "FFmpeg/libav plugin for GStreamer"; description = "FFmpeg/libav plugin for GStreamer";
homepage = "https://gstreamer.freedesktop.org"; homepage = "https://gstreamer.freedesktop.org";

View file

@ -3,6 +3,7 @@
, meson , meson
, ninja , ninja
, pkgconfig , pkgconfig
, python3
, gettext , gettext
, gobject-introspection , gobject-introspection
, gst-plugins-base , gst-plugins-base
@ -11,14 +12,18 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-rtsp-server"; pname = "gst-rtsp-server";
version = "1.16.2"; version = "1.18.0";
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; 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 = [ patches = [
# To use split outputs, we need this so double prefix won't be used in the # To use split outputs, we need this so double prefix won't be used in the
@ -35,6 +40,10 @@ stdenv.mkDerivation rec {
gettext gettext
gobject-introspection gobject-introspection
pkgconfig pkgconfig
python3
# documentation
# TODO add hotdoc here
]; ];
buildInputs = [ buildInputs = [
@ -44,8 +53,14 @@ stdenv.mkDerivation rec {
mesonFlags = [ mesonFlags = [
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users "-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; { meta = with stdenv.lib; {
description = "GStreamer RTSP server"; description = "GStreamer RTSP server";
homepage = "https://gstreamer.freedesktop.org"; homepage = "https://gstreamer.freedesktop.org";

View file

@ -21,13 +21,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-plugins-ugly"; pname = "gst-plugins-ugly";
version = "1.16.2"; version = "1.18.0";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "1jpvc32x6q01zjkfgh6gmq6aaikiyfwwnhj7bmvn52syhrdl202m"; sha256 = "10p0nyzighvkciaspxnhlr7d7n4acrv96lf483i8l988bvj48rk8";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -56,10 +56,15 @@ stdenv.mkDerivation rec {
]); ]);
mesonFlags = [ 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 "-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; { meta = with lib; {
description = "Gstreamer Ugly Plugins"; description = "Gstreamer Ugly Plugins";
homepage = "https://gstreamer.freedesktop.org"; homepage = "https://gstreamer.freedesktop.org";

View file

@ -16,25 +16,32 @@
, gst-plugins-bad , gst-plugins-bad
, nasm , nasm
, libvpx , libvpx
, python , python3
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gstreamer-vaapi"; pname = "gstreamer-vaapi";
version = "1.16.2"; version = "1.18.0";
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; 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 = [ nativeBuildInputs = [
meson meson
ninja ninja
pkgconfig pkgconfig
bzip2 bzip2
# documentation
# TODO add hotdoc here
]; ];
buildInputs = [ buildInputs = [
@ -55,13 +62,19 @@ stdenv.mkDerivation rec {
libGLU libGLU
nasm nasm
libvpx libvpx
python python3
]; ];
mesonFlags = [ mesonFlags = [
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users "-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; { meta = with stdenv.lib; {
description = "Set of VAAPI GStreamer Plug-ins"; description = "Set of VAAPI GStreamer Plug-ins";
homepage = "https://gstreamer.freedesktop.org"; homepage = "https://gstreamer.freedesktop.org";

View file

@ -4,17 +4,16 @@
, ninja , ninja
, stdenv , stdenv
, pkgconfig , pkgconfig
, python , python3
, pygobject3 , pygobject3
, gobject-introspection , gobject-introspection
, gst-plugins-base , gst-plugins-base
, isPy3k , isPy3k
, fetchpatch
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "gst-python"; pname = "gst-python";
version = "1.16.2"; version = "1.18.0";
format = "other"; format = "other";
@ -22,14 +21,17 @@ buildPythonPackage rec {
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gst-python/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/gst-python/${pname}-${version}.tar.xz";
sha256 = "1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390"; sha256 = "0ifx2s2j24sj2w5jm7cxyg1kinnhbxiz4x0qp3gnsjlwbawfigvn";
}; };
# Python 2.x is not supported.
disabled = !isPy3k;
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
ninja ninja
pkgconfig pkgconfig
python python3
gobject-introspection gobject-introspection
gst-plugins-base gst-plugins-base
]; ];
@ -39,24 +41,8 @@ buildPythonPackage rec {
pygobject3 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 = [ mesonFlags = [
"-Dpython=python${if isPy3k then "3" else "2"}" "-Dpygi-overrides-dir=${placeholder "out"}/${python3.sitePackages}/gi/overrides"
"-Dpygi-overrides-dir=${placeholder "out"}/${python.sitePackages}/gi/overrides"
]; ];
doCheck = true; doCheck = true;