gstreamer 1.16.1 (#70690)

gstreamer 1.16.1
This commit is contained in:
Jan Tojnar 2019-11-14 21:33:25 +01:00 committed by GitHub
commit c846ede763
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 812 additions and 426 deletions

View File

@ -1,16 +1,40 @@
{ stdenv, fetchurl, fetchpatch, meson, ninja, gettext
{ stdenv
, fetchurl
, meson
, ninja
, gettext
, config
, pkgconfig, python3, gst-plugins-base, orc
, pkgconfig
, python3
, gst-plugins-base
, orc
, gobject-introspection
, enableZbar ? true
, faacSupport ? false, faac ? null
, faad2, libass, libkate, libmms, librdf, ladspaH
, libnice, webrtc-audio-processing, lilv, lv2, serd, sord, sratom
, libbs2b, libmodplug, mpeg2dec
, openjpeg, libopus, librsvg
, faacSupport ? false
, faac ? null
, faad2
, libass
, libkate
, libmms
, librdf
, ladspaH
, libnice
, webrtc-audio-processing
, lilv
, lv2
, serd
, sord
, sratom
, libbs2b
, libmodplug
, mpeg2dec
, openjpeg
, libopus
, librsvg
, bluez
, chromaprint
, curl
, darwin
, directfb
, fdk_aac
, flite
@ -27,7 +51,7 @@
, libusb1
, neon
, openal
, opencv3
, opencv4
, openexr
, openh264
, pango
@ -38,10 +62,20 @@
, srtp
, zbar
, wayland-protocols
, wildmidi, fluidsynth, libvdpau, wayland
, libwebp, xvidcore, gnutls, mjpegtools
, libGLU_combined, libintl, libgme
, openssl, x265, libxml2
, wildmidi
, fluidsynth
, libvdpau
, wayland
, libwebp
, xvidcore
, gnutls
, mjpegtools
, libGLU_combined
, libintl
, libgme
, openssl
, x265
, libxml2
, srt
}:
@ -49,113 +83,127 @@ assert faacSupport -> faac != null;
let
inherit (stdenv.lib) optional optionals;
in
stdenv.mkDerivation rec {
in stdenv.mkDerivation rec {
pname = "gst-plugins-bad";
version = "1.16.0";
meta = with stdenv.lib; {
description = "Gstreamer Bad Plugins";
homepage = "https://gstreamer.freedesktop.org";
longDescription = ''
a set of plug-ins that aren't up to par compared to the
rest. They might be close to being good quality, but they're missing
something - be it a good code review, some documentation, a set of tests,
a real live maintainer, or some actual wide use.
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ matthewbauer ];
};
preConfigure = ''
patchShebangs .
'';
patches = [
./fix_pkgconfig_includedir.patch
# Remove when https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/312 is merged and available to us
(fetchpatch {
url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/99790eaad9083cce5ab2b1646489e1a1c0faad1e.patch";
sha256 = "11bqy4sl05qq5mj4bx5s09rq106s3j0vnpjl4np058im32j69lr3";
})
# Remove when https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/312 is merged and available to us
(fetchpatch {
url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/1872da81c48d3a719bd39955fd97deac7d037d74.patch";
sha256 = "11zwrr5ggflmvr0qfssj7dmhgd3ybiadmy79b4zh24022zgw3xpz";
})
];
src = fetchurl {
url = "${meta.homepage}/src/gst-plugins-bad/${pname}-${version}.tar.xz";
sha256 = "019b0yqjrcg6jmfd4cc336h1bz5p4wxl58yz1c4sdb96avirs4r2";
};
version = "1.16.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "1dddqacxgp77f3nl153x5a6139wdphc9phds2fpqb2cv6faiqj2n";
};
patches = [
./fix_pkgconfig_includedir.patch
];
nativeBuildInputs = [
meson ninja pkgconfig python3 gettext gobject-introspection
]
++ optionals stdenv.isLinux [
meson
ninja
pkgconfig
python3
gettext
gobject-introspection
] ++ optionals stdenv.isLinux [
wayland-protocols
];
buildInputs = [
gst-plugins-base orc
faad2 libass libkate libmms
libnice webrtc-audio-processing # webrtc
gst-plugins-base
orc
faad2
libass
libkate
libmms
webrtc-audio-processing # webrtc
libbs2b
ladspaH librdf # ladspa plug-in
lilv lv2 serd sord sratom # lv2 plug-in
libmodplug mpeg2dec
openjpeg libopus librsvg
bluez
chromaprint
libmodplug
mpeg2dec
openjpeg
libopus
librsvg
curl.dev
directfb
fdk_aac
flite
gsm
libaom
libdc1394
libde265
libdrm
libdvdnav
libdvdread
libgudev
libofa
libsndfile
libusb1
mjpegtools
neon
openal
opencv3
opencv4
openexr
openh264
rtmpdump
pango
sbc
soundtouch
spandsp
srtp
fluidsynth libvdpau
libwebp xvidcore gnutls libGLU_combined
libgme openssl x265 libxml2
fluidsynth
libvdpau
libwebp
xvidcore
gnutls
libGLU_combined
libgme
openssl
x265
libxml2
libintl
srt
]
++ optional enableZbar zbar
++ optional faacSupport faac
++ optional stdenv.isLinux wayland
] ++ optionals enableZbar [
zbar
] ++ optionals faacSupport [
faac
] ++ optionals stdenv.isLinux [
bluez
wayland
] ++ optionals (!stdenv.isDarwin) [
# wildmidi requires apple's OpenAL
# TODO: package apple's OpenAL, fix wildmidi, include on Darwin
++ optional (!stdenv.isDarwin) wildmidi
wildmidi
# TODO: mjpegtools uint64_t is not compatible with guint64 on Darwin
++ optional (!stdenv.isDarwin) mjpegtools;
mjpegtools
chromaprint
directfb
flite
libdrm
libgudev
libnice
libofa
librdf
sbc
spandsp
# ladspa plug-in
ladspaH
librdf # TODO: make build on Darwin
# lv2 plug-in
lilv
lv2
serd
sord
sratom
] ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
# For unknown reasons the order is important, e.g. if
# VideoToolbox is last, we get:
# fatal error: 'VideoToolbox/VideoToolbox.h' file not found
VideoToolbox
AudioToolbox
AVFoundation
CoreMedia
CoreVideo
Foundation
MediaToolbox
]);
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"
@ -191,10 +239,50 @@ stdenv.mkDerivation rec {
# see https://github.com/NixOS/nixpkgs/issues/54395
"-Dnvdec=disabled"
"-Dnvenc=disabled"
]
++ optionals stdenv.isDarwin [
"-Dbluez=disabled"
"-Dchromaprint=disabled"
"-Ddirectfb=disabled"
"-Dflite=disabled"
"-Dkms=disabled" # renders to libdrm output
"-Dofa=disabled"
"-Dlv2=disabled"
"-Dsbc=disabled"
"-Dspandsp=disabled"
"-Ddvb=disabled"
"-Dfbdev=disabled"
"-Duvch264=disabled" # requires gudev
"-Dladspa=disabled" # requires lrdf
"-Dwebrtc=disabled" # requires libnice, which as of writing doesn't work on Darwin in nixpkgs
"-Dwildmidi=disabled" # see dependencies above
] ++ optionals (!gst-plugins-base.glEnabled) [
"-Dgl=disabled"]
++ optionals (!gst-plugins-base.waylandEnabled) [
"-Dwayland=disabled"
] ++ optionals (!gst-plugins-base.glEnabled) [
# `applemedia/videotexturecache.h` requires `gst/gl/gl.h`,
# but its meson build system does not declare the dependency.
"-Dapplemedia=disabled"
];
enableParallelBuilding = true;
# This package has some `_("string literal")` string formats
# that trip up clang with format security enabled.
hardeningDisable = [ "format" ];
doCheck = false; # fails 20 out of 58 tests, expensive
meta = with stdenv.lib; {
description = "GStreamer Bad Plugins";
homepage = "https://gstreamer.freedesktop.org";
longDescription = ''
a set of plug-ins that aren't up to par compared to the
rest. They might be close to being good quality, but they're missing
something - be it a good code review, some documentation, a set of tests,
a real live maintainer, or some actual wide use.
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ matthewbauer ];
};
}

View File

@ -1,100 +1,153 @@
{ stdenv, fetchurl, fetchpatch, lib
, pkgconfig, meson, ninja, gettext, gobject-introspection
, python3, gstreamer, orc, pango, libtheora
, libintl, libopus
{ stdenv
, fetchurl
, lib
, pkgconfig
, meson
, ninja
, gettext
, gobject-introspection
, python3
, gstreamer
, orc
, pango
, libtheora
, libintl
, libopus
, isocodes
, libjpeg
, libpng
, libvisual
, tremor # provides 'virbisidec'
, libGL
, gtk-doc, docbook_xsl, docbook_xml_dtd_412
, enableX11 ? stdenv.isLinux, libXv
, enableWayland ? stdenv.isLinux, wayland
, enableAlsa ? stdenv.isLinux, alsaLib
, enableCocoa ? false, darwin
, enableCdparanoia ? (!stdenv.isDarwin), cdparanoia }:
, gtk-doc
, docbook_xsl
, docbook_xml_dtd_43
, enableX11 ? stdenv.isLinux
, libXv
, enableWayland ? stdenv.isLinux
, wayland
, enableAlsa ? stdenv.isLinux
, alsaLib
# Enabling Cocoa seems to currently not work, giving compile
# errors. Suspected is that a newer version than clang
# is needed than 5.0 but it is not clear.
, enableCocoa ? false
, darwin
, enableGl ? (enableX11 || enableWayland || enableCocoa)
, enableCdparanoia ? (!stdenv.isDarwin)
, cdparanoia
}:
stdenv.mkDerivation rec {
pname = "gst-plugins-base";
version = "1.16.0";
meta = with lib; {
description = "Base plugins and helper libraries";
homepage = https://gstreamer.freedesktop.org;
license = licenses.lgpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ matthewbauer ];
};
src = fetchurl {
url = "${meta.homepage}/src/gst-plugins-base/${pname}-${version}.tar.xz";
sha256 = "1bmmdwbyy89ayb85xc48y217f6wdmpz96f30zm6v53z2a5xsm4s0";
};
version = "1.16.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "0aybbwnzm15074smdk2bamj3ssck3hjvmilvgh49f19xjf4w8g2w";
};
patches = [
./fix_pkgconfig_includedir.patch
];
nativeBuildInputs = [
pkgconfig python3 gettext gobject-introspection
meson
ninja
pkgconfig
python3
gettext
gobject-introspection
# docs
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
# in https://bugzilla.gnome.org/show_bug.cgi?id=781148.
++ lib.optionals (!stdenv.isDarwin) [ meson ninja ];
docbook_xsl
docbook_xml_dtd_43
];
# 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?
configureFlags = lib.optionals stdenv.isDarwin [
"--enable-x11=${if enableX11 then "yes" else "no"}"
"--enable-wayland=${if enableWayland then "yes" else "no"}"
"--enable-cocoa=${if enableCocoa then "yes" else "no"}"
]
# Introspection fails on my MacBook currently
++ lib.optional stdenv.isDarwin "--disable-introspection";
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")}]"
# We must currently disable gtk_doc API docs generation,
# because it is not compatible with some features being disabled.
# See for example
# https://gitlab.gnome.org/GNOME/gnome-build-meta/issues/38
# for it failing because some Wayland symbols are missing.
# This problem appeared between 1.15.1 and 1.16.0.
"-Dgtk_doc=disabled"
]
++ 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 tremor libGL ]
++ lib.optional (!stdenv.isDarwin) libvisual
++ lib.optional enableAlsa alsaLib
buildInputs = [
orc
libtheora
libintl
libopus
isocodes
libpng
libjpeg
tremor
libGL
] ++ lib.optional (!stdenv.isDarwin) [
libvisual
] ++ lib.optionals stdenv.isDarwin [
pango
darwin.apple_sdk.frameworks.OpenGL
] ++ lib.optional enableAlsa alsaLib
++ lib.optionals enableX11 [ libXv pango ]
++ lib.optional enableWayland wayland
++ lib.optional enableCocoa darwin.apple_sdk.frameworks.Cocoa
++ lib.optional enableCdparanoia cdparanoia;
propagatedBuildInputs = [ gstreamer ];
propagatedBuildInputs = [
gstreamer
];
mesonFlags = [
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
"-Dgl-graphene=disabled" # not packaged in nixpkgs as of writing
"-Dgl_platform=[${lib.optionalString (enableX11 || enableWayland || enableCocoa) "auto"}]"
# 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?
++ lib.optional (!enableGl) "-Dgl=disabled"
++ lib.optional (!enableAlsa) "-Dalsa=disabled"
++ lib.optional (!enableCdparanoia) "-Dcdparanoia=disabled"
++ lib.optionals stdenv.isDarwin [
"-Dlibvisual=disabled"
];
postPatch = ''
patchShebangs .
patchShebangs common/scangobj-merge.py
'';
enableParallelBuilding = true;
# This package has some `_("string literal")` string formats
# that trip up clang with format security enabled.
hardeningDisable = [ "format" ];
doCheck = false; # fails, wants DRI access for OpenGL
patches = [
./fix_pkgconfig_includedir.patch
];
passthru = {
# Downstream `gst-*` packages depending on `gst-plugins-base`
# have meson build options like 'gl' etc. that depend
# on these features being built in `-base`.
# If they are not built here, then the downstream builds
# will fail, as they, too, use `-Dauto_features=enabled`
# which would enable these options unconditionally.
# That means we must communicate to these downstream packages
# if the `-base` enabled these options or not, so that
# the can enable/disable those features accordingly.
# The naming `*Enabled` vs `enable*` is intentional to
# distinguish inputs from outputs (what is to be built
# vs what was built) and to make them easier to search for.
glEnabled = enableGl;
waylandEnabled = enableWayland;
};
meta = with lib; {
description = "Base GStreamer plug-ins and helper libraries";
homepage = "https://gstreamer.freedesktop.org";
license = licenses.lgpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ matthewbauer ];
};
}

View File

@ -1,10 +1,23 @@
{ stdenv, fetchurl, fetchpatch, meson, ninja
, pkgconfig, gettext, gobject-introspection
, bison, flex, python3, glib, makeWrapper
, libcap,libunwind, darwin
{ stdenv
, fetchurl
, fetchpatch
, meson
, ninja
, pkgconfig
, gettext
, gobject-introspection
, bison
, flex
, python3
, glib
, makeWrapper
, libcap
, libunwind
, darwin
, elfutils # for libdw
, bash-completion
, docbook_xsl, docbook_xml_dtd_412
, docbook_xsl
, docbook_xml_dtd_43
, gtk-doc
, lib
, CoreServices
@ -12,50 +25,66 @@
stdenv.mkDerivation rec {
pname = "gstreamer";
version = "1.16.0";
version = "1.16.1";
meta = with lib ;{
description = "Open source multimedia framework";
homepage = https://gstreamer.freedesktop.org;
license = licenses.lgpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ ttuegel matthewbauer ];
};
outputs = [ "out" "dev" "devdoc" ];
outputBin = "dev";
src = fetchurl {
url = "${meta.homepage}/src/gstreamer/${pname}-${version}.tar.xz";
sha256 = "003wy1p1in85p9sr5jsyhbnwqaiwz069flwkhyx7qhxy31qjz3hf";
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "0z9pyhf6zm1r0spw6zym80bvbyx6h8xg9h6535csbnn48ws1q882";
};
patches = [
./fix_pkgconfig_includedir.patch
];
outputs = [ "out" "dev" ];
outputBin = "dev";
nativeBuildInputs = [
meson ninja pkgconfig gettext bison flex python3 makeWrapper gobject-introspection
meson
ninja
pkgconfig
gettext
bison
flex
python3
makeWrapper
gobject-introspection
bash-completion
# documentation
gtk-doc
# Without these, enabling the 'gtk_doc' gives us `FAILED: meson-install`
docbook_xsl docbook_xml_dtd_412
docbook_xsl
docbook_xml_dtd_43
];
buildInputs =
lib.optionals stdenv.isLinux [ libcap libunwind elfutils ]
++ lib.optional stdenv.isDarwin CoreServices;
buildInputs = lib.optionals stdenv.isLinux [
libcap
libunwind
elfutils
] ++ lib.optionals stdenv.isDarwin [
CoreServices
];
propagatedBuildInputs = [ glib ];
propagatedBuildInputs = [
glib
];
mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
"-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
]
] ++ lib.optionals stdenv.isDarwin [
# darwin.libunwind doesn't have pkgconfig definitions so meson doesn't detect it.
++ stdenv.lib.optionals stdenv.isDarwin [ "-Dlibunwind=disabled" "-Dlibdw=disabled" ];
"-Dlibunwind=disabled"
"-Dlibdw=disabled"
];
postPatch = ''
patchShebangs \
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
'';
postInstall = ''
for prog in "$dev/bin/"*; do
@ -64,21 +93,17 @@ stdenv.mkDerivation rec {
done
'';
preConfigure=
# These files are not executable upstream, so we need to
# make them executable for `patchShebangs` to pick them up.
# Can be removed when this is merged and available:
# https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/141
''
chmod +x gst/parse/get_flex_version.py
'' +
''
patchShebangs .
'';
preFixup = ''
moveToOutput "share/bash-completion" "$dev"
'';
setupHook = ./setup-hook.sh;
meta = with lib ;{
description = "Open source multimedia framework";
homepage = "https://gstreamer.freedesktop.org";
license = licenses.lgpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ ttuegel matthewbauer ];
};
}

View File

@ -1,39 +1,66 @@
{ stdenv, fetchurl, fetchpatch, meson, ninja
, pkgconfig, python, gst-plugins-base, libxml2
, flex, perl, gettext, gobject-introspection
{ stdenv
, fetchurl
, fetchpatch
, meson
, ninja
, pkgconfig
, python
, gst-plugins-base
, libxml2
, flex
, perl
, gettext
, gobject-introspection
}:
stdenv.mkDerivation rec {
pname = "gstreamer-editing-services";
version = "1.16.0";
meta = with stdenv.lib; {
description = "Library for creation of audio/video non-linear editors";
homepage = "https://gstreamer.freedesktop.org";
license = licenses.lgpl2Plus;
platforms = platforms.unix;
};
src = fetchurl {
url = "${meta.homepage}/src/gstreamer-editing-services/${pname}-${version}.tar.xz";
sha256 = "1las94jkx83sxmzi5w6b0xm89dqqwzpdsb6h9w9ixndhnbpzm8w2";
};
version = "1.16.1";
outputs = [ "out" "dev" ];
nativeBuildInputs = [ meson ninja pkgconfig gettext gobject-introspection python flex perl ];
propagatedBuildInputs = [ gst-plugins-base libxml2 ];
mesonFlags = [
"-Dgtk_doc=disabled"
];
src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "10375z5mc3bwfs07mhmfx943sbp55z8m8ihp9xpcknkdks7qg168";
};
patches = [
./fix_pkgconfig_includedir.patch
];
nativeBuildInputs = [
meson
ninja
pkgconfig
gettext
gobject-introspection
python
flex
perl
];
buildInputs = [
libxml2
];
propagatedBuildInputs = [
gst-plugins-base
];
mesonFlags = [
"-Dgtk_doc=disabled"
];
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
'';
meta = with stdenv.lib; {
description = "Library for creation of audio/video non-linear editors";
homepage = "https://gstreamer.freedesktop.org";
license = licenses.lgpl2Plus;
platforms = platforms.unix;
};
}

View File

@ -1,14 +1,37 @@
{ stdenv, fetchurl, meson, ninja, pkgconfig, python
, gst-plugins-base, orc, bzip2, gettext
, libv4l, libdv, libavc1394, libiec61883
, libvpx, speex, flac, taglib, libshout
, cairo, gdk-pixbuf, aalib, libcaca
, libsoup, libpulseaudio, libintl
, darwin, lame, mpg123, twolame
{ stdenv
, fetchurl
, meson
, ninja
, pkgconfig
, python
, gst-plugins-base
, orc
, bzip2
, gettext
, libv4l
, libdv
, libavc1394
, libiec61883
, libvpx
, speex
, flac
, taglib
, libshout
, cairo
, gdk-pixbuf
, aalib
, libcaca
, libsoup
, libpulseaudio
, libintl
, darwin
, lame
, mpg123
, twolame
, gtkSupport ? false, gtk3 ? null
# As of writing, jack2 incurs a Qt dependency (big!) via `ffado`.
# In the fuure we should probably split `ffado`.
, enableJack ? false
# As of writing, jack2 incurs a Qt dependency (big!) via `ffado`.
# In the future we should probably split `ffado`.
, enableJack ? false, jack2
, libXdamage
, libXext
, libXfixes
@ -16,7 +39,6 @@
, xorg
, libgudev
, wavpack
, jack2
}:
assert gtkSupport -> gtk3 != null;
@ -26,39 +48,44 @@ let
in
stdenv.mkDerivation rec {
pname = "gst-plugins-good";
version = "1.16.0";
meta = with stdenv.lib; {
description = "Gstreamer Good Plugins";
homepage = "https://gstreamer.freedesktop.org";
longDescription = ''
a set of plug-ins that we consider to have good quality code,
correct functionality, our preferred license (LGPL for the plug-in
code, LGPL or LGPL-compatible for the supporting library).
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ matthewbauer ];
};
src = fetchurl {
url = "${meta.homepage}/src/gst-plugins-good/${pname}-${version}.tar.xz";
sha256 = "1zdhif1mhf0ihkjpjyrh65g2iz2cawkjjb3h5w8h9ml06grxwjk5";
};
version = "1.16.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "07wgz9anf4ram2snp8n1wv6l0q3pd00iaw8bvw3wgklg05lvxflz";
};
patches = [ ./fix_pkgconfig_includedir.patch ];
nativeBuildInputs = [ pkgconfig python meson ninja gettext ];
NIX_LDFLAGS = "-lncurses";
nativeBuildInputs = [
pkgconfig
python
meson
ninja
gettext
];
buildInputs = [
gst-plugins-base orc bzip2
libdv libvpx speex flac taglib
cairo gdk-pixbuf aalib libcaca
libsoup libshout lame mpg123 twolame libintl
gst-plugins-base
orc
bzip2
libdv
libvpx
speex
flac
taglib
cairo
gdk-pixbuf
aalib
libcaca
libsoup
libshout
lame
mpg123
twolame
libintl
libXdamage
libXext
libXfixes
@ -66,29 +93,59 @@ stdenv.mkDerivation rec {
xorg.libXfixes
xorg.libXdamage
wavpack
]
++ optional gtkSupport gtk3 # for gtksink
++ optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ]
++ optionals stdenv.isLinux [ libv4l libpulseaudio libavc1394 libiec61883 libgudev ]
++ optionals (stdenv.isLinux && enableJack) [
] ++ optional gtkSupport [
# for gtksink
gtk3
] ++ optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Cocoa
] ++ optionals stdenv.isLinux [
libv4l
libpulseaudio
libavc1394
libiec61883
libgudev
] ++ optionals (stdenv.isLinux && enableJack) [
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 || !enableJack) [
] ++ optionals (!gtkSupport) [
"-Dgtk3=disabled"
] ++ optionals (!stdenv.isLinux || !enableJack) [
"-Djack=disabled" # unclear whether Jack works on Darwin
]
++ optionals (!stdenv.isLinux) [
"-Dv4l2-gudev=disabled"
] ++ optionals (!stdenv.isLinux) [
"-Ddv1394=disabled" # Linux only
"-Doss4=disabled" # Linux only
"-Doss=disabled" # Linux only
"-Dpulse=disabled" # TODO check if we can keep this enabled
"-Dv4l2-gudev=disabled" # Linux-only
"-Dv4l2=disabled" # Linux-only
"-Dximagesrc=disabled" # Linux-only
"-Dpulse=disabled" # TODO check if we can keep this enabled
];
NIX_LDFLAGS = [
# linking error on Darwin
# https://github.com/NixOS/nixpkgs/pull/70690#issuecomment-553694896
"-lncurses"
];
# fails 1 tests with "Unexpected critical/warning: g_object_set_is_valid_property: object class 'GstRtpStorage' has no property named ''"
doCheck = false;
meta = with stdenv.lib; {
description = "GStreamer Good Plugins";
homepage = "https://gstreamer.freedesktop.org";
longDescription = ''
a set of plug-ins that we consider to have good quality code,
correct functionality, our preferred license (LGPL for the plug-in
code, LGPL or LGPL-compatible for the supporting library).
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ matthewbauer ];
};
}

View File

@ -1,43 +1,46 @@
{ stdenv, fetchurl, meson, ninja, pkgconfig
, python, yasm, gst-plugins-base, orc, bzip2
, gettext, withSystemLibav ? true, libav ? null
{ stdenv
, lib
, fetchurl
, meson
, ninja
, pkgconfig
, python3
, gst-plugins-base
, gettext
, libav
}:
# Note that since gst-libav-1.6, libav is actually ffmpeg. See
# https://gstreamer.freedesktop.org/releases/1.6/ for more info.
assert withSystemLibav -> libav != null;
stdenv.mkDerivation rec {
pname = "gst-libav";
version = "1.16.0";
meta = {
homepage = https://gstreamer.freedesktop.org;
license = stdenv.lib.licenses.lgpl2Plus;
platforms = stdenv.lib.platforms.unix;
};
version = "1.16.1";
src = fetchurl {
url = "${meta.homepage}/src/gst-libav/${pname}-${version}.tar.xz";
sha256 = "16ixqpfrr7plaaz14n3vagr2q5xbfkv7gpmcsyndrkx98f813b6z";
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "1i31ra0l77cfahb6k5xpx45zwvpskzm848aijsbbx9x4x65799g8";
};
outputs = [ "out" "dev" ];
nativeBuildInputs = with stdenv.lib;
[ meson ninja gettext pkgconfig python ]
++ optional (!withSystemLibav) yasm
;
buildInputs = with stdenv.lib;
[ gst-plugins-base orc bzip2 ]
++ optional withSystemLibav libav
;
mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
nativeBuildInputs = [
meson
ninja
gettext
pkgconfig
python3
];
buildInputs = [
gst-plugins-base
libav
];
meta = with lib; {
description = "FFmpeg/libav plugin for GStreamer";
homepage = "https://gstreamer.freedesktop.org";
license = licenses.lgpl2Plus;
platforms = platforms.unix;
};
}

View File

@ -1,38 +1,50 @@
{ stdenv, fetchurl, meson, ninja, pkgconfig
, gettext, gobject-introspection
{ stdenv
, fetchurl
, meson
, ninja
, pkgconfig
, gettext
, gobject-introspection
, gst-plugins-base
, gst-plugins-bad
}:
stdenv.mkDerivation rec {
pname = "gst-rtsp-server";
version = "1.16.0";
meta = with stdenv.lib; {
description = "Gstreamer RTSP server";
homepage = "https://gstreamer.freedesktop.org";
longDescription = ''
a library on top of GStreamer for building an RTSP server.
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ bkchr ];
};
version = "1.16.1";
src = fetchurl {
url = "${meta.homepage}/src/gst-rtsp-server/${pname}-${version}.tar.xz";
sha256 = "069zy159izy50blci9fli1i2r8jh91qkmgrz1n0xqciy3bn9x3hr";
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "0i01f1nr0921z6z4nrh8icz76s2n7i228aqxg1ihvxl65ynsraxh";
};
outputs = [ "out" "dev" ];
nativeBuildInputs = [ meson ninja gettext gobject-introspection pkgconfig ];
nativeBuildInputs = [
meson
ninja
gettext
gobject-introspection
pkgconfig
];
buildInputs = [ gst-plugins-base gst-plugins-bad ];
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
];
meta = with stdenv.lib; {
description = "GStreamer RTSP server";
homepage = "https://gstreamer.freedesktop.org";
longDescription = ''
A library on top of GStreamer for building an RTSP server.
'';
license = licenses.lgpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ bkchr ];
};
}

View File

@ -1,53 +1,76 @@
{ stdenv, fetchurl, meson, ninja, pkgconfig, python
, gst-plugins-base, orc, gettext
, a52dec, libcdio, libdvdread
, libmad, libmpeg2, x264, libintl, lib
{ stdenv
, fetchurl
, meson
, ninja
, pkgconfig
, python
, gst-plugins-base
, orc
, gettext
, a52dec
, libcdio
, libdvdread
, libmad
, libmpeg2
, x264
, libintl
, lib
, opencore-amr
, darwin
}:
stdenv.mkDerivation rec {
pname = "gst-plugins-ugly";
version = "1.16.0";
version = "1.16.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "07cajqjs8pqchpf2sm87hljx4ibwvkiavqxmacxsr5airar17yab";
};
nativeBuildInputs = [
meson
ninja
gettext
pkgconfig
python
];
buildInputs = [
gst-plugins-base
orc
a52dec
libcdio
libdvdread
libmad
libmpeg2
x264
libintl
opencore-amr
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
IOKit
CoreFoundation
DiskArbitration
]);
mesonFlags = [
"-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
];
meta = with lib; {
description = "Gstreamer Ugly Plugins";
homepage = "https://gstreamer.freedesktop.org";
homepage = "https://gstreamer.freedesktop.org";
longDescription = ''
a set of plug-ins that have good quality and correct functionality,
but distributing them might pose problems. The license on either
the plug-ins or the supporting libraries might not be how we'd
like. The code might be widely known to present patent problems.
'';
license = licenses.lgpl2Plus;
platforms = platforms.unix;
license = licenses.lgpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ matthewbauer ];
};
src = fetchurl {
url = "${meta.homepage}/src/gst-plugins-ugly/${pname}-${version}.tar.xz";
sha256 = "1hm46c1fy9vl1wfwipsj41zp79cm7in1fpmjw24j5hriy32n82g3";
};
outputs = [ "out" "dev" ];
nativeBuildInputs = [ meson ninja gettext pkgconfig python ];
buildInputs = [
gst-plugins-base orc
a52dec libcdio libdvdread
libmad libmpeg2 x264
libintl
opencore-amr
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks;
[ 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" ];
}

View File

@ -1,49 +1,70 @@
{ stdenv, fetchurl, meson, ninja, pkgconfig, gst-plugins-base, bzip2, libva, wayland
, libdrm, udev, xorg, libGLU_combined, gstreamer, gst-plugins-bad, nasm
, libvpx, python, fetchpatch
{ stdenv
, fetchurl
, meson
, ninja
, pkgconfig
, gst-plugins-base
, bzip2
, libva
, wayland
, libdrm
, udev
, xorg
, libGLU_combined
, gstreamer
, gst-plugins-bad
, nasm
, libvpx
, python
}:
stdenv.mkDerivation rec {
pname = "gst-vaapi";
version = "1.16.0";
pname = "gstreamer-vaapi";
version = "1.16.1";
src = fetchurl {
url = "${meta.homepage}/src/gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz";
sha256 = "07qpynamiz0lniqajcaijh3n7ixs4lfk9a5mfk50sng0dricwzsf";
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "0fk0nymvbfc04fv63fj2r6q9vvi431svhkrwpr7kdjvq3rphymyb";
};
patches = [
# See: https://mail.gnome.org/archives/distributor-list/2019-September/msg00000.html
# Note that the patch has now been actually accepted upstream.
(fetchpatch {
url = "https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/commit/a90daabb84f983d2fa05ff3159f7ad59aa648b55.patch";
sha256 = "0p2qygq6b5h6nxjdfnlzbsyih43hjq5c94ag8sbyyb8pmnids9rb";
})
];
outputs = [ "out" "dev" ];
nativeBuildInputs = [ meson ninja pkgconfig bzip2 ];
buildInputs = [
gstreamer gst-plugins-base gst-plugins-bad libva wayland libdrm udev
xorg.libX11 xorg.libXext xorg.libXv xorg.libXrandr xorg.libSM
xorg.libICE libGLU_combined nasm libvpx python
nativeBuildInputs = [
meson
ninja
pkgconfig
bzip2
];
preConfigure = ''
export GST_PLUGIN_PATH_1_0=$out/lib/gstreamer-1.0
mkdir -p $GST_PLUGIN_PATH_1_0
'';
buildInputs = [
gstreamer
gst-plugins-base
gst-plugins-bad
libva
wayland
libdrm
udev
xorg.libX11
xorg.libXext
xorg.libXv
xorg.libXrandr
xorg.libSM
xorg.libICE
libGLU_combined
nasm
libvpx
python
];
mesonFlags = [
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
];
meta = {
homepage = https://gstreamer.freedesktop.org;
license = stdenv.lib.licenses.lgpl21Plus;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ tstrobel ];
meta = with stdenv.lib; {
description = "Set of VAAPI GStreamer Plug-ins";
homepage = "https://gstreamer.freedesktop.org";
license = licenses.lgpl21Plus;
maintainers = with maintainers; [ tstrobel ];
platforms = platforms.linux;
};
}

View File

@ -1,39 +1,43 @@
{ stdenv, fetchurl, pkgconfig, gstreamer, gst-plugins-base
, python, gobject-introspection, json-glib
{ stdenv
, fetchurl
, pkgconfig
, gstreamer
, gst-plugins-base
, python
, gobject-introspection
, json-glib
}:
stdenv.mkDerivation rec {
pname = "gst-validate";
version = "1.16.0";
meta = {
description = "Integration testing infrastructure for the GStreamer framework";
homepage = https://gstreamer.freedesktop.org;
license = stdenv.lib.licenses.lgpl2Plus;
platforms = stdenv.lib.platforms.unix;
};
version = "1.16.1";
src = fetchurl {
url = "${meta.homepage}/src/gst-validate/${pname}-${version}.tar.xz";
sha256 = "1jfnd0g9hmdbqfxsx96yc9vpf1w6m33hqwrr6lj4i83kl54awcck";
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "1698arvmpb0cvyi8ll1brvs51vs7i3f3fw19iswh8xhj5adrn1vz";
};
outputs = [ "out" "dev" ];
nativeBuildInputs = [
pkgconfig gobject-introspection
pkgconfig
gobject-introspection
];
buildInputs = [
python json-glib
python
json-glib
];
propagatedBuildInputs = [ gstreamer gst-plugins-base ];
enableParallelBuilding = true;
mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
propagatedBuildInputs = [
gstreamer
gst-plugins-base
];
meta = with stdenv.lib; {
description = "Integration testing infrastructure for the GStreamer framework";
homepage = "https://gstreamer.freedesktop.org";
license = licenses.lgpl2Plus;
platforms = platforms.unix;
};
}

View File

@ -1,4 +1,19 @@
{ stdenv, fetchurl, fetchpatch, meson, ninja, pkgconfig, python3, gobject-introspection, gtk-doc, docbook_xsl, docbook_xml_dtd_412, glib, gupnp-igd, gst_all_1, gnutls }:
{ stdenv
, fetchurl
, fetchpatch
, meson
, ninja
, pkgconfig
, python3
, gobject-introspection
, gtk-doc
, docbook_xsl
, docbook_xml_dtd_412
, glib
, gupnp-igd
, gst_all_1
, gnutls
}:
stdenv.mkDerivation rec {
name = "libnice-0.1.16";
@ -21,27 +36,40 @@ stdenv.mkDerivation rec {
];
nativeBuildInputs = [
meson ninja pkgconfig python3 gobject-introspection
meson
ninja
pkgconfig
python3
gobject-introspection
# documentation
gtk-doc
# Without these, enabling the 'gtk_doc' gives us `FAILED: meson-install`
docbook_xsl docbook_xml_dtd_412
docbook_xsl
docbook_xml_dtd_412
];
buildInputs = [
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gnutls
gupnp-igd
];
propagatedBuildInputs = [
glib
];
buildInputs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base gnutls ];
propagatedBuildInputs = [ glib gupnp-igd ];
mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
"-Dgtk_doc=enabled" # Disabled by default as of libnice-0.1.15
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
];
# TODO; see #53293 etc.
#doCheck = true;
# Tests are flaky
# see https://github.com/NixOS/nixpkgs/pull/53293#issuecomment-453739295
doCheck = false;
meta = with stdenv.lib; {
homepage = https://nice.freedesktop.org/wiki/;
description = "The GLib ICE implementation";
description = "GLib ICE implementation";
longDescription = ''
Libnice is an implementation of the IETF's Interactice Connectivity
Establishment (ICE) standard (RFC 5245) and the Session Traversal
@ -49,6 +77,7 @@ stdenv.mkDerivation rec {
It provides a GLib-based library, libnice and a Glib-free library,
libstun as well as GStreamer elements.'';
homepage = "https://nice.freedesktop.org/wiki/";
platforms = platforms.linux;
license = with licenses; [ lgpl21 mpl11 ];
};

View File

@ -1,5 +1,16 @@
{ stdenv, fetchurl, autoreconfHook, docbook_xsl, docbook_xml_dtd_43, gtk-doc, lzip
, libidn2, libunistring, libxslt, pkgconfig, python3, valgrind
{ stdenv
, fetchurl
, autoreconfHook
, docbook_xsl
, docbook_xml_dtd_43
, gtk-doc
, lzip
, libidn2
, libunistring
, libxslt
, pkgconfig
, python3
, valgrind
, publicsuffix-list
}:
@ -12,9 +23,26 @@ stdenv.mkDerivation rec {
sha256 = "183hadbira0d2zvv8272lspy31dgm9x26z35c61s5axcd5wd9g9i";
};
nativeBuildInputs = [ autoreconfHook docbook_xsl docbook_xml_dtd_43 gtk-doc lzip pkgconfig python3 valgrind ];
buildInputs = [ libidn2 libunistring libxslt ];
propagatedBuildInputs = [ publicsuffix-list ];
nativeBuildInputs = [
autoreconfHook
docbook_xsl
docbook_xml_dtd_43
gtk-doc
lzip
pkgconfig
python3
valgrind
];
buildInputs = [
libidn2
libunistring
libxslt
];
propagatedBuildInputs = [
publicsuffix-list
];
postPatch = ''
patchShebangs src/psl-make-dafsa
@ -25,7 +53,7 @@ stdenv.mkDerivation rec {
'';
configureFlags = [
# "--enable-gtk-doc"
# "--enable-gtk-doc"
"--enable-man"
"--enable-valgrind-tests"
"--with-psl-distfile=${publicsuffix-list}/share/publicsuffix/public_suffix_list.dat"
@ -35,7 +63,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
doCheck = true;
doCheck = !stdenv.isDarwin;
meta = with stdenv.lib; {
description = "C library for the Publix Suffix List";

View File

@ -1,4 +1,11 @@
{ lib, python3Packages, stdenv, writeTextDir, substituteAll, targetPackages }:
{ lib
, python3Packages
, fetchpatch
, stdenv
, writeTextDir
, substituteAll
, targetPackages
}:
let
# See https://mesonbuild.com/Reference-tables.html#cpu-families
@ -62,6 +69,15 @@ python3Packages.buildPythonApplication rec {
# https://github.com/mesonbuild/meson/issues/4784
# Should be fixed in 0.52
./fix-objc-linking.patch
# Fixes error finding some frameworks
# https://github.com/NixOS/nixpkgs/pull/70690#issuecomment-553704175
# https://github.com/mesonbuild/meson/pull/5980
# Should be fixed in 0.52
(fetchpatch {
url = "https://github.com/mesonbuild/meson/pull/5980.patch";
sha256 = "0g95gl662mribnnz5jcyn1jaaw8w7r1vgbg2jbm91dcrr5zji5ng";
})
];
setupHook = ./setup-hook.sh;