gstreamer: 1.14.4 -> 1.15.1, and extended gst-plugins-bad.
During the 1.14 -> 1.15 upgrade, lots of stuff stopped working because gstreamer changed what features are enabled by default and which ones are automatically turned on/off via pkgconfig dependency detection. This resulted in the `gstreamer` ("core" attribute in nixpkgs) package to have only 15 of its previous 163 build targets enabled, and downstream packages breaking correspondingly. To ease maintainability and to ensure users will find the expected features available (and when not, will see in the nix file why not), we now pass the `-Dauto_features=enabled` Meson build flag to all gstreamer builds, which sets all `auto` dependencies to `enabled`, and we explicitly disable those that we can't build. This means in particular that `gst-plugins-bad` now has vastly more integrations (namely all for which nixpkgs has libraries available).
This commit is contained in:
parent
025fcad11a
commit
1a6e572529
12 changed files with 240 additions and 57 deletions
|
@ -1,10 +1,40 @@
|
||||||
{ stdenv, fetchurl, fetchpatch, meson, ninja, gettext
|
{ stdenv, fetchurl, fetchpatch, meson, ninja, gettext
|
||||||
|
, config
|
||||||
, pkgconfig, python3, gst-plugins-base, orc
|
, pkgconfig, python3, gst-plugins-base, orc
|
||||||
|
, gobject-introspection
|
||||||
, faacSupport ? false, faac ? null
|
, faacSupport ? false, faac ? null
|
||||||
, faad2, libass, libkate, libmms, librdf, ladspaH
|
, faad2, libass, libkate, libmms, librdf, ladspaH
|
||||||
, libnice, webrtc-audio-processing, lilv, lv2, serd, sord, sratom
|
, libnice, webrtc-audio-processing, lilv, lv2, serd, sord, sratom
|
||||||
, libbs2b, libmodplug, mpeg2dec
|
, libbs2b, libmodplug, mpeg2dec
|
||||||
, openjpeg, libopus, librsvg
|
, openjpeg, libopus, librsvg
|
||||||
|
, bluez
|
||||||
|
, chromaprint
|
||||||
|
, curl
|
||||||
|
, directfb
|
||||||
|
, fdk_aac
|
||||||
|
, flite
|
||||||
|
, libaom
|
||||||
|
, libdc1394
|
||||||
|
, libde265
|
||||||
|
, libdrm
|
||||||
|
, libdvdnav
|
||||||
|
, libdvdread
|
||||||
|
, libgudev
|
||||||
|
, libofa
|
||||||
|
, libsndfile
|
||||||
|
, libusb1
|
||||||
|
, neon
|
||||||
|
, openal
|
||||||
|
, opencv3
|
||||||
|
, openexr
|
||||||
|
, openh264
|
||||||
|
, pango
|
||||||
|
, sbc
|
||||||
|
, soundtouch
|
||||||
|
, spandsp
|
||||||
|
, srtp
|
||||||
|
, zbar
|
||||||
|
, wayland-protocols
|
||||||
, wildmidi, fluidsynth, libvdpau, wayland
|
, wildmidi, fluidsynth, libvdpau, wayland
|
||||||
, libwebp, xvidcore, gnutls, mjpegtools
|
, libwebp, xvidcore, gnutls, mjpegtools
|
||||||
, libGLU_combined, libintl, libgme
|
, libGLU_combined, libintl, libgme
|
||||||
|
@ -15,11 +45,11 @@
|
||||||
assert faacSupport -> faac != null;
|
assert faacSupport -> faac != null;
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (stdenv.lib) optional;
|
inherit (stdenv.lib) optional optionals;
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gst-plugins-bad-${version}";
|
name = "gst-plugins-bad-${version}";
|
||||||
version = "1.14.4";
|
version = "1.15.1";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Gstreamer Bad Plugins";
|
description = "Gstreamer Bad Plugins";
|
||||||
|
@ -40,27 +70,22 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
(fetchpatch {
|
|
||||||
url = "https://bug794856.bugzilla-attachments.gnome.org/attachment.cgi?id=370409";
|
|
||||||
sha256 = "0hy0rcn35alq65yqwri4fqjz2hf3nyyg5c7rnndk51msmqjxpprk";
|
|
||||||
})
|
|
||||||
./fix_pkgconfig_includedir.patch
|
./fix_pkgconfig_includedir.patch
|
||||||
# Enable bs2b compilation
|
|
||||||
# https://bugzilla.gnome.org/show_bug.cgi?id=794346
|
|
||||||
(fetchurl {
|
|
||||||
url = https://bugzilla.gnome.org/attachment.cgi?id=369724;
|
|
||||||
sha256 = "1716mp0h2866ab33w607isvfhv1zwyj71qb4jrkx5v0h276v1pwr";
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/src/gst-plugins-bad/${name}.tar.xz";
|
url = "${meta.homepage}/src/gst-plugins-bad/${name}.tar.xz";
|
||||||
sha256 = "1r8dma3x127rbx42yab7kwq7q1bhkmvz2ykn0rnqnzl95q74w2wi";
|
sha256 = "0dpky8a0pbwwkc5r8hawi5yizdqk65j9liwvhxkjwbnpv53n5y10";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ meson ninja pkgconfig python3 gettext ];
|
nativeBuildInputs = [
|
||||||
|
meson ninja pkgconfig python3 gettext gobject-introspection
|
||||||
|
]
|
||||||
|
++ optionals stdenv.isLinux [
|
||||||
|
wayland-protocols
|
||||||
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
gst-plugins-base orc
|
gst-plugins-base orc
|
||||||
|
@ -71,6 +96,33 @@ stdenv.mkDerivation rec {
|
||||||
lilv lv2 serd sord sratom # lv2 plug-in
|
lilv lv2 serd sord sratom # lv2 plug-in
|
||||||
libmodplug mpeg2dec
|
libmodplug mpeg2dec
|
||||||
openjpeg libopus librsvg
|
openjpeg libopus librsvg
|
||||||
|
bluez
|
||||||
|
chromaprint
|
||||||
|
curl.dev
|
||||||
|
directfb
|
||||||
|
fdk_aac
|
||||||
|
flite
|
||||||
|
libaom
|
||||||
|
libdc1394
|
||||||
|
libde265
|
||||||
|
libdrm
|
||||||
|
libdvdnav
|
||||||
|
libdvdread
|
||||||
|
libgudev
|
||||||
|
libofa
|
||||||
|
libsndfile
|
||||||
|
libusb1
|
||||||
|
neon
|
||||||
|
openal
|
||||||
|
opencv3
|
||||||
|
openexr
|
||||||
|
openh264
|
||||||
|
pango
|
||||||
|
sbc
|
||||||
|
soundtouch
|
||||||
|
spandsp
|
||||||
|
srtp
|
||||||
|
zbar
|
||||||
fluidsynth libvdpau
|
fluidsynth libvdpau
|
||||||
libwebp xvidcore gnutls libGLU_combined
|
libwebp xvidcore gnutls libGLU_combined
|
||||||
libgme openssl x265 libxml2
|
libgme openssl x265 libxml2
|
||||||
|
@ -85,6 +137,48 @@ stdenv.mkDerivation rec {
|
||||||
# TODO: mjpegtools uint64_t is not compatible with guint64 on Darwin
|
# TODO: mjpegtools uint64_t is not compatible with guint64 on Darwin
|
||||||
++ optional (!stdenv.isDarwin) mjpegtools;
|
++ optional (!stdenv.isDarwin) mjpegtools;
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
# Enables all features, so that we know when new dependencies are necessary.
|
||||||
|
"-Dauto_features=enabled"
|
||||||
|
|
||||||
|
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
|
||||||
|
|
||||||
|
"-Ddts=disabled" # required `libdca` library not packaged in nixpkgs as of writing, and marked as "BIG FAT WARNING: libdca is still in early development"
|
||||||
|
"-Dfaac=${if faacSupport then "enabled" else "disabled"}"
|
||||||
|
"-Dgsm=disabled" # as of writing, with `gsm` in `buildInputs` we get "GSM plugin is enabled: found libgsm but no headers"; gsm packaging problem?
|
||||||
|
"-Diqa=disabled" # required `dssim` library not packaging 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"
|
||||||
|
# This is likely because nixpkgs has the header in libmpc/mpcdec.h
|
||||||
|
# instead of mpc/mpcdec.h, like Arch does. The situation is not trivial.
|
||||||
|
# There are apparently 2 things called `libmpcdec` from the same author:
|
||||||
|
# * http://svn.musepack.net/libmpcdec/trunk/src/
|
||||||
|
# * http://svn.musepack.net/libmpc/trunk/include/mpc/
|
||||||
|
# Fixing it likely requires to first figure out with upstream which one
|
||||||
|
# is needed, and then patching upstream to find it (though it probably
|
||||||
|
# already works on Arch?).
|
||||||
|
"-Dmusepack=disabled"
|
||||||
|
"-Dopenmpt=disabled" # `libopenmpt` 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
|
||||||
|
"-Drtmp=disabled" # `librtmp` not packaged in nixpkgs as of writing
|
||||||
|
"-Dsctp=disabled" # required `usrsctp` 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
|
||||||
|
"-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"
|
||||||
|
];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
doCheck = false; # fails 20 out of 58 tests, expensive
|
doCheck = false; # fails 20 out of 58 tests, expensive
|
||||||
|
|
|
@ -2,6 +2,11 @@
|
||||||
, pkgconfig, meson, ninja, gettext, gobject-introspection
|
, pkgconfig, meson, ninja, gettext, gobject-introspection
|
||||||
, python3, gstreamer, orc, pango, libtheora
|
, python3, gstreamer, orc, pango, libtheora
|
||||||
, libintl, libopus
|
, libintl, libopus
|
||||||
|
, isocodes
|
||||||
|
, libjpeg
|
||||||
|
, libvisual
|
||||||
|
, tremor # provides 'virbisidec'
|
||||||
|
, gtk-doc, docbook_xsl, docbook_xml_dtd_412
|
||||||
, enableX11 ? stdenv.isLinux, libXv
|
, enableX11 ? stdenv.isLinux, libXv
|
||||||
, enableWayland ? stdenv.isLinux, wayland
|
, enableWayland ? stdenv.isLinux, wayland
|
||||||
, enableAlsa ? stdenv.isLinux, alsaLib
|
, enableAlsa ? stdenv.isLinux, alsaLib
|
||||||
|
@ -10,7 +15,7 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gst-plugins-base-${version}";
|
name = "gst-plugins-base-${version}";
|
||||||
version = "1.14.4";
|
version = "1.15.1";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Base plugins and helper libraries";
|
description = "Base plugins and helper libraries";
|
||||||
|
@ -22,28 +27,48 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/src/gst-plugins-base/${name}.tar.xz";
|
url = "${meta.homepage}/src/gst-plugins-base/${name}.tar.xz";
|
||||||
sha256 = "0qbllw4kphchwhy4p7ivdysigx69i97gyw6q0rvkx1j81r4kjqfa";
|
sha256 = "0qvyx9gs7z2ryhdxxzynn9r1gphfk4xfkhd6dma02sbda9c5jckf";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig python3 gettext gobject-introspection ]
|
nativeBuildInputs = [
|
||||||
|
pkgconfig python3 gettext gobject-introspection
|
||||||
|
gtk-doc
|
||||||
|
# Without these, enabling the 'gtk_doc' gives us `FAILED: meson-install`
|
||||||
|
docbook_xsl docbook_xml_dtd_412
|
||||||
|
]
|
||||||
# Broken meson with Darwin. Should hopefully be fixed soon. Tracking
|
# Broken meson with Darwin. Should hopefully be fixed soon. Tracking
|
||||||
# in https://bugzilla.gnome.org/show_bug.cgi?id=781148.
|
# in https://bugzilla.gnome.org/show_bug.cgi?id=781148.
|
||||||
++ lib.optionals (!stdenv.isDarwin) [ meson ninja ];
|
++ lib.optionals (!stdenv.isDarwin) [ meson ninja ];
|
||||||
|
|
||||||
|
# On Darwin, we currently use autoconf, on all other systems Meson
|
||||||
|
# TODO Switch to Meson on Darwin as well
|
||||||
|
|
||||||
# TODO How to pass these to Meson?
|
# TODO How to pass these to Meson?
|
||||||
configureFlags = [
|
configureFlags = lib.optionals stdenv.isDarwin [
|
||||||
"--enable-x11=${if enableX11 then "yes" else "no"}"
|
"--enable-x11=${if enableX11 then "yes" else "no"}"
|
||||||
"--enable-wayland=${if enableWayland then "yes" else "no"}"
|
"--enable-wayland=${if enableWayland then "yes" else "no"}"
|
||||||
"--enable-cocoa=${if enableCocoa then "yes" else "no"}"
|
"--enable-cocoa=${if enableCocoa then "yes" else "no"}"
|
||||||
]
|
]
|
||||||
|
|
||||||
# Introspection fails on my MacBook currently
|
# Introspection fails on my MacBook currently
|
||||||
++ lib.optional stdenv.isDarwin "--disable-introspection";
|
++ lib.optional stdenv.isDarwin "--disable-introspection";
|
||||||
|
|
||||||
buildInputs = [ orc libtheora libintl libopus ]
|
mesonFlags = lib.optionals (!stdenv.isDarwin) [
|
||||||
|
# Enables all features, so that we know when new dependencies are necessary.
|
||||||
|
"-Dauto_features=enabled"
|
||||||
|
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
|
||||||
|
"-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")}]"
|
||||||
|
]
|
||||||
|
++ lib.optional (!enableX11) "-Dx11=disabled"
|
||||||
|
# TODO How to disable Wayland?
|
||||||
|
++ lib.optional (!enableAlsa) "-Dalsa=disabled"
|
||||||
|
++ lib.optional (!enableCdparanoia) "-Dcdparanoia=disabled"
|
||||||
|
;
|
||||||
|
|
||||||
|
buildInputs = [ orc libtheora libintl libopus isocodes libjpeg libvisual tremor ]
|
||||||
++ lib.optional enableAlsa alsaLib
|
++ lib.optional enableAlsa alsaLib
|
||||||
++ lib.optionals enableX11 [ libXv pango ]
|
++ lib.optionals enableX11 [ libXv pango ]
|
||||||
++ lib.optional enableWayland wayland
|
++ lib.optional enableWayland wayland
|
||||||
|
@ -61,10 +86,6 @@ stdenv.mkDerivation rec {
|
||||||
doCheck = false; # fails, wants DRI access for OpenGL
|
doCheck = false; # fails, wants DRI access for OpenGL
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
(fetchpatch {
|
|
||||||
url = "https://bug794856.bugzilla-attachments.gnome.org/attachment.cgi?id=370414";
|
|
||||||
sha256 = "07x43xis0sr0hfchf36ap0cibx0lkfpqyszb3r3w9dzz301fk04z";
|
|
||||||
})
|
|
||||||
./fix_pkgconfig_includedir.patch
|
./fix_pkgconfig_includedir.patch
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,12 +2,16 @@
|
||||||
, pkgconfig, gettext, gobject-introspection
|
, pkgconfig, gettext, gobject-introspection
|
||||||
, bison, flex, python3, glib, makeWrapper
|
, bison, flex, python3, glib, makeWrapper
|
||||||
, libcap,libunwind, darwin
|
, libcap,libunwind, darwin
|
||||||
|
, elfutils # for libdw
|
||||||
|
, bash-completion
|
||||||
|
, docbook_xsl, docbook_xml_dtd_412
|
||||||
|
, gtk-doc
|
||||||
, lib
|
, lib
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gstreamer-${version}";
|
name = "gstreamer-${version}";
|
||||||
version = "1.14.4";
|
version = "1.15.1";
|
||||||
|
|
||||||
meta = with lib ;{
|
meta = with lib ;{
|
||||||
description = "Open source multimedia framework";
|
description = "Open source multimedia framework";
|
||||||
|
@ -19,14 +23,10 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/src/gstreamer/${name}.tar.xz";
|
url = "${meta.homepage}/src/gstreamer/${name}.tar.xz";
|
||||||
sha256 = "1izzhnlsy83rgr4zl3jcl1sryxqbbigrrqw3j4x3nnphqnb6ckzr";
|
sha256 = "05ri9y37qkgvkb2xjywf32c3k9479b0af0m6cjigx04pgwsf42kq";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
(fetchpatch {
|
|
||||||
url = "https://bug794856.bugzilla-attachments.gnome.org/attachment.cgi?id=370411";
|
|
||||||
sha256 = "16plzzmkk906k4892zq68j3c9z8vdma5nxzlviq20jfv04ykhmk2";
|
|
||||||
})
|
|
||||||
./fix_pkgconfig_includedir.patch
|
./fix_pkgconfig_includedir.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -35,13 +35,24 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
meson ninja pkgconfig gettext bison flex python3 makeWrapper gobject-introspection
|
meson ninja pkgconfig gettext bison flex python3 makeWrapper gobject-introspection
|
||||||
|
bash-completion
|
||||||
|
gtk-doc
|
||||||
|
# Without these, enabling the 'gtk_doc' gives us `FAILED: meson-install`
|
||||||
|
docbook_xsl docbook_xml_dtd_412
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
lib.optionals stdenv.isLinux [ libcap libunwind ]
|
lib.optionals stdenv.isLinux [ libcap libunwind elfutils ]
|
||||||
++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.CoreServices;
|
++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.CoreServices;
|
||||||
|
|
||||||
propagatedBuildInputs = [ glib ];
|
propagatedBuildInputs = [ glib ];
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
# Enables all features, so that we know when new dependencies are necessary.
|
||||||
|
"-Dauto_features=enabled"
|
||||||
|
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
|
||||||
|
];
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
for prog in "$dev/bin/"*; do
|
for prog in "$dev/bin/"*; do
|
||||||
# We can't use --suffix here due to quoting so we craft the export command by hand
|
# We can't use --suffix here due to quoting so we craft the export command by hand
|
||||||
|
|
|
@ -13,7 +13,7 @@ rec {
|
||||||
|
|
||||||
gst-plugins-ugly = callPackage ./ugly { inherit gst-plugins-base; };
|
gst-plugins-ugly = callPackage ./ugly { inherit gst-plugins-base; };
|
||||||
|
|
||||||
gst-rtsp-server = callPackage ./rtsp-server { inherit gst-plugins-base; };
|
gst-rtsp-server = callPackage ./rtsp-server { inherit gst-plugins-base gst-plugins-bad; };
|
||||||
|
|
||||||
gst-libav = callPackage ./libav { inherit gst-plugins-base; };
|
gst-libav = callPackage ./libav { inherit gst-plugins-base; };
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,10 @@
|
||||||
, libXext
|
, libXext
|
||||||
, libXfixes
|
, libXfixes
|
||||||
, ncurses
|
, ncurses
|
||||||
|
, xorg
|
||||||
|
, libgudev
|
||||||
|
, wavpack
|
||||||
|
, jack2
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert gtkSupport -> gtk3 != null;
|
assert gtkSupport -> gtk3 != null;
|
||||||
|
@ -19,7 +23,7 @@ let
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gst-plugins-good-${version}";
|
name = "gst-plugins-good-${version}";
|
||||||
version = "1.14.4";
|
version = "1.15.1";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Gstreamer Good Plugins";
|
description = "Gstreamer Good Plugins";
|
||||||
|
@ -36,7 +40,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/src/gst-plugins-good/${name}.tar.xz";
|
url = "${meta.homepage}/src/gst-plugins-good/${name}.tar.xz";
|
||||||
sha256 = "0y89qynb4b6fry3h43z1r99qslmi3m8xhlq0i5baq2nbc0r5b2sz";
|
sha256 = "15f6klr7wg6jlcyx0qspi13s8wmc9fij1bx1bbvy90a9a72v97rb";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
@ -58,10 +62,27 @@ stdenv.mkDerivation rec {
|
||||||
libXext # present feature but undeclared in meson_options.txt, see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/553
|
libXext # present feature but undeclared in meson_options.txt, see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/553
|
||||||
libXfixes # present feature but undeclared in meson_options.txt, see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/553
|
libXfixes # present feature but undeclared in meson_options.txt, see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/553
|
||||||
ncurses
|
ncurses
|
||||||
|
xorg.libXfixes # present feature but undeclared in meson_options.txt, see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/553
|
||||||
|
xorg.libXdamage # present feature but undeclared in meson_options.txt, see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/553
|
||||||
|
wavpack
|
||||||
]
|
]
|
||||||
++ optional gtkSupport gtk3 # for gtksink
|
++ optional gtkSupport gtk3 # for gtksink
|
||||||
++ optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ]
|
++ optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ]
|
||||||
++ optionals stdenv.isLinux [ libv4l libpulseaudio libavc1394 libiec61883 ];
|
++ optionals stdenv.isLinux [ libv4l libpulseaudio libavc1394 libiec61883 libgudev jack2 ];
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
# Enables all features, so that we know when new dependencies are necessary.
|
||||||
|
"-Dauto_features=enabled"
|
||||||
|
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
|
||||||
|
"-Dqt5=disabled" # not clear as of writing how to correctly pass in the required qt5 deps
|
||||||
|
]
|
||||||
|
++ optional (!gtkSupport) "-Dgtk3=disabled"
|
||||||
|
++ optionals (!stdenv.isLinux) [
|
||||||
|
"-Djack=disabled" # unclear whether Jack works on Darwin
|
||||||
|
]
|
||||||
|
++ optionals (!stdenv.isLinux) [
|
||||||
|
"-Dv4l2-gudev=disabled"
|
||||||
|
];
|
||||||
|
|
||||||
# fails 1 tests with "Unexpected critical/warning: g_object_set_is_valid_property: object class 'GstRtpStorage' has no property named ''"
|
# fails 1 tests with "Unexpected critical/warning: g_object_set_is_valid_property: object class 'GstRtpStorage' has no property named ''"
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
|
@ -10,7 +10,7 @@ assert withSystemLibav -> libav != null;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gst-libav-${version}";
|
name = "gst-libav-${version}";
|
||||||
version = "1.14.4";
|
version = "1.15.1";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = https://gstreamer.freedesktop.org;
|
homepage = https://gstreamer.freedesktop.org;
|
||||||
|
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/src/gst-libav/${name}.tar.xz";
|
url = "${meta.homepage}/src/gst-libav/${name}.tar.xz";
|
||||||
sha256 = "1nk5g24z2xx5kaw5cg8dv8skdc516inahmkymcz8bxqxj28qbmyz";
|
sha256 = "0hq5y8zg6a3fliwip7k85hg6s6amsmbqgrjl6axzrr3y6akcvslk";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
@ -34,4 +34,10 @@ stdenv.mkDerivation rec {
|
||||||
[ gst-plugins-base orc bzip2 ]
|
[ gst-plugins-base orc bzip2 ]
|
||||||
++ optional withSystemLibav libav
|
++ optional withSystemLibav libav
|
||||||
;
|
;
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
# Enables all features, so that we know when new dependencies are necessary.
|
||||||
|
"-Dauto_features=enabled"
|
||||||
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
{ stdenv, fetchurl, meson, ninja, pkgconfig
|
{ stdenv, fetchurl, meson, ninja, pkgconfig
|
||||||
, gst-plugins-base, gettext, gobject-introspection
|
, gettext, gobject-introspection
|
||||||
|
, gst-plugins-base
|
||||||
|
, gst-plugins-bad
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gst-rtsp-server-${version}";
|
name = "gst-rtsp-server-${version}";
|
||||||
version = "1.14.4";
|
version = "1.15.1";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Gstreamer RTSP server";
|
description = "Gstreamer RTSP server";
|
||||||
|
@ -19,12 +21,18 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/src/gst-rtsp-server/${name}.tar.xz";
|
url = "${meta.homepage}/src/gst-rtsp-server/${name}.tar.xz";
|
||||||
sha256 = "1wc4d0y57hpfvv9sykjg8mxj86dw60mf696fbqbiqq6dzlmcw3ix";
|
sha256 = "0d0jaf7ir40dxpxs41wyb7m7riyl7wsqcb5qvd4vhwpz0dwxhpvl";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ meson ninja gettext gobject-introspection pkgconfig ];
|
nativeBuildInputs = [ meson ninja gettext gobject-introspection pkgconfig ];
|
||||||
|
|
||||||
buildInputs = [ gst-plugins-base ];
|
buildInputs = [ gst-plugins-base gst-plugins-bad ];
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
# Enables all features, so that we know when new dependencies are necessary.
|
||||||
|
"-Dauto_features=enabled"
|
||||||
|
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,12 +2,13 @@
|
||||||
, gst-plugins-base, orc, gettext
|
, gst-plugins-base, orc, gettext
|
||||||
, a52dec, libcdio, libdvdread
|
, a52dec, libcdio, libdvdread
|
||||||
, libmad, libmpeg2, x264, libintl, lib
|
, libmad, libmpeg2, x264, libintl, lib
|
||||||
|
, opencore-amr
|
||||||
, darwin
|
, darwin
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gst-plugins-ugly-${version}";
|
name = "gst-plugins-ugly-${version}";
|
||||||
version = "1.14.4";
|
version = "1.15.1";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Gstreamer Ugly Plugins";
|
description = "Gstreamer Ugly Plugins";
|
||||||
|
@ -25,7 +26,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.xz";
|
url = "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.xz";
|
||||||
sha256 = "08vd1xgwmapnviah47zv5h2r02qdd20y4f07rvv5zhv6y4vxh0mc";
|
sha256 = "17p9x30ywanz1lbk061kzd8bypcv5hkin6iyaqffp8alrwiak3qp";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
@ -37,8 +38,16 @@ stdenv.mkDerivation rec {
|
||||||
a52dec libcdio libdvdread
|
a52dec libcdio libdvdread
|
||||||
libmad libmpeg2 x264
|
libmad libmpeg2 x264
|
||||||
libintl
|
libintl
|
||||||
|
opencore-amr
|
||||||
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks;
|
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks;
|
||||||
[ IOKit CoreFoundation DiskArbitration ]);
|
[ IOKit CoreFoundation DiskArbitration ]);
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
# Enables all features, so that we know when new dependencies are necessary.
|
||||||
|
"-Dauto_features=enabled"
|
||||||
|
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
|
||||||
|
"-Dsidplay=disabled" # sidplay / sidplay/player.h isn't packaged in nixpkgs as of writing
|
||||||
|
];
|
||||||
|
|
||||||
NIX_LDFLAGS = [ "-lm" ];
|
NIX_LDFLAGS = [ "-lm" ];
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,11 +5,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gst-vaapi-${version}";
|
name = "gst-vaapi-${version}";
|
||||||
version = "1.14.4";
|
version = "1.15.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/src/gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz";
|
url = "${meta.homepage}/src/gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz";
|
||||||
sha256 = "18yha6119v7mwz47idv2vykzfssqfmh6hc824wqqsshwjvzdn66f";
|
sha256 = "1aazan6r6p5aabb671znjkh8kmpxkz68wvaickqwzb1bz0ijcivc";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
@ -27,6 +27,12 @@ stdenv.mkDerivation rec {
|
||||||
mkdir -p $GST_PLUGIN_PATH_1_0
|
mkdir -p $GST_PLUGIN_PATH_1_0
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
# Enables all features, so that we know when new dependencies are necessary.
|
||||||
|
"-Dauto_features=enabled"
|
||||||
|
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
|
||||||
|
];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = https://gstreamer.freedesktop.org;
|
homepage = https://gstreamer.freedesktop.org;
|
||||||
license = stdenv.lib.licenses.lgpl21Plus;
|
license = stdenv.lib.licenses.lgpl21Plus;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gst-validate-${version}";
|
name = "gst-validate-${version}";
|
||||||
version = "1.14.4";
|
version = "1.15.1";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Integration testing infrastructure for the GStreamer framework";
|
description = "Integration testing infrastructure for the GStreamer framework";
|
||||||
|
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/src/gst-validate/${name}.tar.xz";
|
url = "${meta.homepage}/src/gst-validate/${name}.tar.xz";
|
||||||
sha256 = "1ismv4i7ldi04swq76pcpd5apxqd52yify5hvlyan2yw9flwrp0q";
|
sha256 = "195hwblagfsnq1xn858al3f32jn5nynr4j5x395dpg3vl3c4k5v4";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
@ -31,4 +31,9 @@ stdenv.mkDerivation rec {
|
||||||
propagatedBuildInputs = [ gstreamer gst-plugins-base ];
|
propagatedBuildInputs = [ gstreamer gst-plugins-base ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
# Enables all features, so that we know when new dependencies are necessary.
|
||||||
|
"-Dauto_features=enabled"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,18 +20,20 @@ stdenv.mkDerivation rec {
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ meson ninja pkgconfig python3 gobject-introspection gtk-doc docbook_xsl docbook_xml_dtd_412 ];
|
nativeBuildInputs = [
|
||||||
|
meson ninja pkgconfig python3 gobject-introspection
|
||||||
|
gtk-doc
|
||||||
|
# Without these, enabling the 'gtk_doc' gives us `FAILED: meson-install`
|
||||||
|
docbook_xsl docbook_xml_dtd_412
|
||||||
|
];
|
||||||
buildInputs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base gnutls ];
|
buildInputs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base gnutls ];
|
||||||
propagatedBuildInputs = [ glib gupnp-igd ];
|
propagatedBuildInputs = [ glib gupnp-igd ];
|
||||||
|
|
||||||
mesonFlags = [
|
mesonFlags = [
|
||||||
"-Dgupnp=enabled"
|
# Enables all features, so that we know when new dependencies are necessary.
|
||||||
"-Dgstreamer=enabled"
|
"-Dauto_features=enabled"
|
||||||
"-Dignored-network-interface-prefix=enabled"
|
"-Dgtk_doc=enabled" # Disabled by default as of libnice-0.1.15
|
||||||
"-Dexamples=enabled"
|
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
|
||||||
"-Dtests=enabled"
|
|
||||||
"-Dgtk_doc=enabled"
|
|
||||||
"-Dintrospection=enabled"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# TODO; see #53293 etc.
|
# TODO; see #53293 etc.
|
||||||
|
|
|
@ -10670,7 +10670,7 @@ in
|
||||||
gsettings-qt = libsForQt5.callPackage ../development/libraries/gsettings-qt { };
|
gsettings-qt = libsForQt5.callPackage ../development/libraries/gsettings-qt { };
|
||||||
|
|
||||||
gst_all_1 = recurseIntoAttrs(callPackage ../development/libraries/gstreamer {
|
gst_all_1 = recurseIntoAttrs(callPackage ../development/libraries/gstreamer {
|
||||||
callPackage = newScope { libav = pkgs.ffmpeg; };
|
callPackage = newScope { libav = pkgs.ffmpeg_4; };
|
||||||
});
|
});
|
||||||
|
|
||||||
gstreamer = callPackage ../development/libraries/gstreamer/legacy/gstreamer { };
|
gstreamer = callPackage ../development/libraries/gstreamer/legacy/gstreamer { };
|
||||||
|
|
Loading…
Reference in a new issue