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 , config
, pkgconfig, python3, gst-plugins-base, orc , pkgconfig
, python3
, gst-plugins-base
, orc
, gobject-introspection , gobject-introspection
, enableZbar ? true , enableZbar ? true
, faacSupport ? false, faac ? null , faacSupport ? false
, faad2, libass, libkate, libmms, librdf, ladspaH , faac ? null
, libnice, webrtc-audio-processing, lilv, lv2, serd, sord, sratom , faad2
, libbs2b, libmodplug, mpeg2dec , libass
, openjpeg, libopus, librsvg , libkate
, libmms
, librdf
, ladspaH
, libnice
, webrtc-audio-processing
, lilv
, lv2
, serd
, sord
, sratom
, libbs2b
, libmodplug
, mpeg2dec
, openjpeg
, libopus
, librsvg
, bluez , bluez
, chromaprint , chromaprint
, curl , curl
, darwin
, directfb , directfb
, fdk_aac , fdk_aac
, flite , flite
@ -27,7 +51,7 @@
, libusb1 , libusb1
, neon , neon
, openal , openal
, opencv3 , opencv4
, openexr , openexr
, openh264 , openh264
, pango , pango
@ -38,10 +62,20 @@
, srtp , srtp
, zbar , zbar
, wayland-protocols , wayland-protocols
, wildmidi, fluidsynth, libvdpau, wayland , wildmidi
, libwebp, xvidcore, gnutls, mjpegtools , fluidsynth
, libGLU_combined, libintl, libgme , libvdpau
, openssl, x265, libxml2 , wayland
, libwebp
, xvidcore
, gnutls
, mjpegtools
, libGLU_combined
, libintl
, libgme
, openssl
, x265
, libxml2
, srt , srt
}: }:
@ -49,113 +83,127 @@ assert faacSupport -> faac != null;
let let
inherit (stdenv.lib) optional optionals; inherit (stdenv.lib) optional optionals;
in in stdenv.mkDerivation rec {
stdenv.mkDerivation rec {
pname = "gst-plugins-bad"; pname = "gst-plugins-bad";
version = "1.16.0"; version = "1.16.1";
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";
};
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "1dddqacxgp77f3nl153x5a6139wdphc9phds2fpqb2cv6faiqj2n";
};
patches = [
./fix_pkgconfig_includedir.patch
];
nativeBuildInputs = [ nativeBuildInputs = [
meson ninja pkgconfig python3 gettext gobject-introspection meson
] ninja
++ optionals stdenv.isLinux [ pkgconfig
python3
gettext
gobject-introspection
] ++ optionals stdenv.isLinux [
wayland-protocols wayland-protocols
]; ];
buildInputs = [ buildInputs = [
gst-plugins-base orc gst-plugins-base
faad2 libass libkate libmms orc
libnice webrtc-audio-processing # webrtc faad2
libass
libkate
libmms
webrtc-audio-processing # webrtc
libbs2b libbs2b
ladspaH librdf # ladspa plug-in libmodplug
lilv lv2 serd sord sratom # lv2 plug-in mpeg2dec
libmodplug mpeg2dec openjpeg
openjpeg libopus librsvg libopus
bluez librsvg
chromaprint
curl.dev curl.dev
directfb
fdk_aac fdk_aac
flite
gsm gsm
libaom libaom
libdc1394 libdc1394
libde265 libde265
libdrm
libdvdnav libdvdnav
libdvdread libdvdread
libgudev
libofa
libsndfile libsndfile
libusb1 libusb1
mjpegtools
neon neon
openal openal
opencv3 opencv4
openexr openexr
openh264 openh264
rtmpdump rtmpdump
pango pango
sbc
soundtouch soundtouch
spandsp
srtp srtp
fluidsynth libvdpau fluidsynth
libwebp xvidcore gnutls libGLU_combined libvdpau
libgme openssl x265 libxml2 libwebp
xvidcore
gnutls
libGLU_combined
libgme
openssl
x265
libxml2
libintl libintl
srt srt
] ] ++ optionals enableZbar [
++ optional enableZbar zbar zbar
++ optional faacSupport faac ] ++ optionals faacSupport [
++ optional stdenv.isLinux wayland faac
] ++ optionals stdenv.isLinux [
bluez
wayland
] ++ optionals (!stdenv.isDarwin) [
# wildmidi requires apple's OpenAL # wildmidi requires apple's OpenAL
# TODO: package apple's OpenAL, fix wildmidi, include on Darwin # 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 # 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 = [ 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 "-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" "-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 # see https://github.com/NixOS/nixpkgs/issues/54395
"-Dnvdec=disabled" "-Dnvdec=disabled"
"-Dnvenc=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 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 { stdenv
, pkgconfig, meson, ninja, gettext, gobject-introspection , fetchurl
, python3, gstreamer, orc, pango, libtheora , lib
, libintl, libopus , pkgconfig
, meson
, ninja
, gettext
, gobject-introspection
, python3
, gstreamer
, orc
, pango
, libtheora
, libintl
, libopus
, isocodes , isocodes
, libjpeg , libjpeg
, libpng
, libvisual , libvisual
, tremor # provides 'virbisidec' , tremor # provides 'virbisidec'
, libGL , libGL
, gtk-doc, docbook_xsl, docbook_xml_dtd_412 , gtk-doc
, enableX11 ? stdenv.isLinux, libXv , docbook_xsl
, enableWayland ? stdenv.isLinux, wayland , docbook_xml_dtd_43
, enableAlsa ? stdenv.isLinux, alsaLib , enableX11 ? stdenv.isLinux
, enableCocoa ? false, darwin , libXv
, enableCdparanoia ? (!stdenv.isDarwin), cdparanoia }: , 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 { stdenv.mkDerivation rec {
pname = "gst-plugins-base"; pname = "gst-plugins-base";
version = "1.16.0"; version = "1.16.1";
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";
};
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "0aybbwnzm15074smdk2bamj3ssck3hjvmilvgh49f19xjf4w8g2w";
};
patches = [
./fix_pkgconfig_includedir.patch
];
nativeBuildInputs = [ nativeBuildInputs = [
pkgconfig python3 gettext gobject-introspection meson
ninja
pkgconfig
python3
gettext
gobject-introspection
# docs
gtk-doc gtk-doc
# Without these, enabling the 'gtk_doc' gives us `FAILED: meson-install` docbook_xsl
docbook_xsl docbook_xml_dtd_412 docbook_xml_dtd_43
] ];
# 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 ];
# On Darwin, we currently use autoconf, on all other systems Meson buildInputs = [
# TODO Switch to Meson on Darwin as well orc
libtheora
# TODO How to pass these to Meson? libintl
configureFlags = lib.optionals stdenv.isDarwin [ libopus
"--enable-x11=${if enableX11 then "yes" else "no"}" isocodes
"--enable-wayland=${if enableWayland then "yes" else "no"}" libpng
"--enable-cocoa=${if enableCocoa then "yes" else "no"}" libjpeg
] tremor
# Introspection fails on my MacBook currently libGL
++ lib.optional stdenv.isDarwin "--disable-introspection"; ] ++ lib.optional (!stdenv.isDarwin) [
libvisual
mesonFlags = lib.optionals (!stdenv.isDarwin) [ ] ++ lib.optionals stdenv.isDarwin [
# Enables all features, so that we know when new dependencies are necessary. pango
"-Dauto_features=enabled" darwin.apple_sdk.frameworks.OpenGL
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users ] ++ lib.optional enableAlsa alsaLib
"-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
++ lib.optionals enableX11 [ libXv pango ] ++ lib.optionals enableX11 [ libXv pango ]
++ lib.optional enableWayland wayland ++ lib.optional enableWayland wayland
++ lib.optional enableCocoa darwin.apple_sdk.frameworks.Cocoa ++ lib.optional enableCocoa darwin.apple_sdk.frameworks.Cocoa
++ lib.optional enableCdparanoia cdparanoia; ++ 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 = '' 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 doCheck = false; # fails, wants DRI access for OpenGL
patches = [ passthru = {
./fix_pkgconfig_includedir.patch # 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 { stdenv
, pkgconfig, gettext, gobject-introspection , fetchurl
, bison, flex, python3, glib, makeWrapper , fetchpatch
, libcap,libunwind, darwin , meson
, ninja
, pkgconfig
, gettext
, gobject-introspection
, bison
, flex
, python3
, glib
, makeWrapper
, libcap
, libunwind
, darwin
, elfutils # for libdw , elfutils # for libdw
, bash-completion , bash-completion
, docbook_xsl, docbook_xml_dtd_412 , docbook_xsl
, docbook_xml_dtd_43
, gtk-doc , gtk-doc
, lib , lib
, CoreServices , CoreServices
@ -12,50 +25,66 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gstreamer"; pname = "gstreamer";
version = "1.16.0"; version = "1.16.1";
meta = with lib ;{ outputs = [ "out" "dev" "devdoc" ];
description = "Open source multimedia framework"; outputBin = "dev";
homepage = https://gstreamer.freedesktop.org;
license = licenses.lgpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ ttuegel matthewbauer ];
};
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gstreamer/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "003wy1p1in85p9sr5jsyhbnwqaiwz069flwkhyx7qhxy31qjz3hf"; sha256 = "0z9pyhf6zm1r0spw6zym80bvbyx6h8xg9h6535csbnn48ws1q882";
}; };
patches = [ patches = [
./fix_pkgconfig_includedir.patch ./fix_pkgconfig_includedir.patch
]; ];
outputs = [ "out" "dev" ];
outputBin = "dev";
nativeBuildInputs = [ nativeBuildInputs = [
meson ninja pkgconfig gettext bison flex python3 makeWrapper gobject-introspection meson
ninja
pkgconfig
gettext
bison
flex
python3
makeWrapper
gobject-introspection
bash-completion bash-completion
# documentation
gtk-doc gtk-doc
# Without these, enabling the 'gtk_doc' gives us `FAILED: meson-install` docbook_xsl
docbook_xsl docbook_xml_dtd_412 docbook_xml_dtd_43
]; ];
buildInputs = buildInputs = lib.optionals stdenv.isLinux [
lib.optionals stdenv.isLinux [ libcap libunwind elfutils ] libcap
++ lib.optional stdenv.isDarwin CoreServices; libunwind
elfutils
] ++ lib.optionals stdenv.isDarwin [
CoreServices
];
propagatedBuildInputs = [ glib ]; propagatedBuildInputs = [
glib
];
mesonFlags = [ 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 "-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
] ] ++ 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.
++ 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 = '' postInstall = ''
for prog in "$dev/bin/"*; do for prog in "$dev/bin/"*; do
@ -64,21 +93,17 @@ stdenv.mkDerivation rec {
done 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 = '' preFixup = ''
moveToOutput "share/bash-completion" "$dev" moveToOutput "share/bash-completion" "$dev"
''; '';
setupHook = ./setup-hook.sh; 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 { stdenv
, pkgconfig, python, gst-plugins-base, libxml2 , fetchurl
, flex, perl, gettext, gobject-introspection , fetchpatch
, meson
, ninja
, pkgconfig
, python
, gst-plugins-base
, libxml2
, flex
, perl
, gettext
, gobject-introspection
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gstreamer-editing-services"; pname = "gstreamer-editing-services";
version = "1.16.0"; version = "1.16.1";
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";
};
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = [ meson ninja pkgconfig gettext gobject-introspection python flex perl ]; src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
propagatedBuildInputs = [ gst-plugins-base libxml2 ]; sha256 = "10375z5mc3bwfs07mhmfx943sbp55z8m8ihp9xpcknkdks7qg168";
};
mesonFlags = [
"-Dgtk_doc=disabled"
];
patches = [ patches = [
./fix_pkgconfig_includedir.patch ./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 = '' 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 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 { stdenv
, gst-plugins-base, orc, bzip2, gettext , fetchurl
, libv4l, libdv, libavc1394, libiec61883 , meson
, libvpx, speex, flac, taglib, libshout , ninja
, cairo, gdk-pixbuf, aalib, libcaca , pkgconfig
, libsoup, libpulseaudio, libintl , python
, darwin, lame, mpg123, twolame , 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 , gtkSupport ? false, gtk3 ? null
# As of writing, jack2 incurs a Qt dependency (big!) via `ffado`. # As of writing, jack2 incurs a Qt dependency (big!) via `ffado`.
# In the fuure we should probably split `ffado`. # In the future we should probably split `ffado`.
, enableJack ? false , enableJack ? false, jack2
, libXdamage , libXdamage
, libXext , libXext
, libXfixes , libXfixes
@ -16,7 +39,6 @@
, xorg , xorg
, libgudev , libgudev
, wavpack , wavpack
, jack2
}: }:
assert gtkSupport -> gtk3 != null; assert gtkSupport -> gtk3 != null;
@ -26,39 +48,44 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-plugins-good"; pname = "gst-plugins-good";
version = "1.16.0"; version = "1.16.1";
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";
};
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl {
url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "07wgz9anf4ram2snp8n1wv6l0q3pd00iaw8bvw3wgklg05lvxflz";
};
patches = [ ./fix_pkgconfig_includedir.patch ]; patches = [ ./fix_pkgconfig_includedir.patch ];
nativeBuildInputs = [ pkgconfig python meson ninja gettext ]; nativeBuildInputs = [
pkgconfig
NIX_LDFLAGS = "-lncurses"; python
meson
ninja
gettext
];
buildInputs = [ buildInputs = [
gst-plugins-base orc bzip2 gst-plugins-base
libdv libvpx speex flac taglib orc
cairo gdk-pixbuf aalib libcaca bzip2
libsoup libshout lame mpg123 twolame libintl libdv
libvpx
speex
flac
taglib
cairo
gdk-pixbuf
aalib
libcaca
libsoup
libshout
lame
mpg123
twolame
libintl
libXdamage libXdamage
libXext libXext
libXfixes libXfixes
@ -66,29 +93,59 @@ stdenv.mkDerivation rec {
xorg.libXfixes xorg.libXfixes
xorg.libXdamage xorg.libXdamage
wavpack wavpack
] ] ++ optional gtkSupport [
++ optional gtkSupport gtk3 # for gtksink # for gtksink
++ optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ] gtk3
++ optionals stdenv.isLinux [ libv4l libpulseaudio libavc1394 libiec61883 libgudev ] ] ++ optionals stdenv.isDarwin [
++ optionals (stdenv.isLinux && enableJack) [ darwin.apple_sdk.frameworks.Cocoa
] ++ optionals stdenv.isLinux [
libv4l
libpulseaudio
libavc1394
libiec61883
libgudev
] ++ optionals (stdenv.isLinux && enableJack) [
jack2 jack2
]; ];
mesonFlags = [ 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 "-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 "-Dqt5=disabled" # not clear as of writing how to correctly pass in the required qt5 deps
] ] ++ optionals (!gtkSupport) [
++ optional (!gtkSupport) "-Dgtk3=disabled" "-Dgtk3=disabled"
++ optionals (!stdenv.isLinux || !enableJack) [ ] ++ optionals (!stdenv.isLinux || !enableJack) [
"-Djack=disabled" # unclear whether Jack works on Darwin "-Djack=disabled" # unclear whether Jack works on Darwin
] ] ++ optionals (!stdenv.isLinux) [
++ optionals (!stdenv.isLinux) [ "-Ddv1394=disabled" # Linux only
"-Dv4l2-gudev=disabled" "-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 ''" # fails 1 tests with "Unexpected critical/warning: g_object_set_is_valid_property: object class 'GstRtpStorage' has no property named ''"
doCheck = false; 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 { stdenv
, python, yasm, gst-plugins-base, orc, bzip2 , lib
, gettext, withSystemLibav ? true, libav ? null , fetchurl
, meson
, ninja
, pkgconfig
, python3
, gst-plugins-base
, gettext
, libav
}: }:
# Note that since gst-libav-1.6, libav is actually ffmpeg. See # Note that since gst-libav-1.6, libav is actually ffmpeg. See
# https://gstreamer.freedesktop.org/releases/1.6/ for more info. # https://gstreamer.freedesktop.org/releases/1.6/ for more info.
assert withSystemLibav -> libav != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-libav"; pname = "gst-libav";
version = "1.16.0"; version = "1.16.1";
meta = {
homepage = https://gstreamer.freedesktop.org;
license = stdenv.lib.licenses.lgpl2Plus;
platforms = stdenv.lib.platforms.unix;
};
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gst-libav/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "16ixqpfrr7plaaz14n3vagr2q5xbfkv7gpmcsyndrkx98f813b6z"; sha256 = "1i31ra0l77cfahb6k5xpx45zwvpskzm848aijsbbx9x4x65799g8";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = with stdenv.lib; nativeBuildInputs = [
[ meson ninja gettext pkgconfig python ] meson
++ optional (!withSystemLibav) yasm ninja
; gettext
pkgconfig
buildInputs = with stdenv.lib; python3
[ gst-plugins-base orc bzip2 ]
++ optional withSystemLibav libav
;
mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
]; ];
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 { stdenv
, gettext, gobject-introspection , fetchurl
, meson
, ninja
, pkgconfig
, gettext
, gobject-introspection
, gst-plugins-base , gst-plugins-base
, gst-plugins-bad , gst-plugins-bad
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-rtsp-server"; pname = "gst-rtsp-server";
version = "1.16.0"; version = "1.16.1";
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 ];
};
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gst-rtsp-server/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "069zy159izy50blci9fli1i2r8jh91qkmgrz1n0xqciy3bn9x3hr"; sha256 = "0i01f1nr0921z6z4nrh8icz76s2n7i228aqxg1ihvxl65ynsraxh";
}; };
outputs = [ "out" "dev" ]; 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 = [ 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 "-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 { stdenv
, gst-plugins-base, orc, gettext , fetchurl
, a52dec, libcdio, libdvdread , meson
, libmad, libmpeg2, x264, libintl, lib , ninja
, pkgconfig
, python
, gst-plugins-base
, orc
, gettext
, a52dec
, libcdio
, libdvdread
, libmad
, libmpeg2
, x264
, libintl
, lib
, opencore-amr , opencore-amr
, darwin , darwin
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-plugins-ugly"; 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; { meta = with lib; {
description = "Gstreamer Ugly Plugins"; description = "Gstreamer Ugly Plugins";
homepage = "https://gstreamer.freedesktop.org"; homepage = "https://gstreamer.freedesktop.org";
longDescription = '' longDescription = ''
a set of plug-ins that have good quality and correct functionality, a set of plug-ins that have good quality and correct functionality,
but distributing them might pose problems. The license on either but distributing them might pose problems. The license on either
the plug-ins or the supporting libraries might not be how we'd the plug-ins or the supporting libraries might not be how we'd
like. The code might be widely known to present patent problems. like. The code might be widely known to present patent problems.
''; '';
license = licenses.lgpl2Plus; license = licenses.lgpl2Plus;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ matthewbauer ]; 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 { stdenv
, libdrm, udev, xorg, libGLU_combined, gstreamer, gst-plugins-bad, nasm , fetchurl
, libvpx, python, fetchpatch , meson
, ninja
, pkgconfig
, gst-plugins-base
, bzip2
, libva
, wayland
, libdrm
, udev
, xorg
, libGLU_combined
, gstreamer
, gst-plugins-bad
, nasm
, libvpx
, python
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-vaapi"; pname = "gstreamer-vaapi";
version = "1.16.0"; version = "1.16.1";
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "07qpynamiz0lniqajcaijh3n7ixs4lfk9a5mfk50sng0dricwzsf"; 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" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = [ meson ninja pkgconfig bzip2 ]; nativeBuildInputs = [
meson
buildInputs = [ ninja
gstreamer gst-plugins-base gst-plugins-bad libva wayland libdrm udev pkgconfig
xorg.libX11 xorg.libXext xorg.libXv xorg.libXrandr xorg.libSM bzip2
xorg.libICE libGLU_combined nasm libvpx python
]; ];
preConfigure = '' buildInputs = [
export GST_PLUGIN_PATH_1_0=$out/lib/gstreamer-1.0 gstreamer
mkdir -p $GST_PLUGIN_PATH_1_0 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 = [ 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
]; ];
meta = { meta = with stdenv.lib; {
homepage = https://gstreamer.freedesktop.org; description = "Set of VAAPI GStreamer Plug-ins";
license = stdenv.lib.licenses.lgpl21Plus; homepage = "https://gstreamer.freedesktop.org";
platforms = stdenv.lib.platforms.linux; license = licenses.lgpl21Plus;
maintainers = with stdenv.lib.maintainers; [ tstrobel ]; maintainers = with maintainers; [ tstrobel ];
platforms = platforms.linux;
}; };
} }

View File

@ -1,39 +1,43 @@
{ stdenv, fetchurl, pkgconfig, gstreamer, gst-plugins-base { stdenv
, python, gobject-introspection, json-glib , fetchurl
, pkgconfig
, gstreamer
, gst-plugins-base
, python
, gobject-introspection
, json-glib
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gst-validate"; pname = "gst-validate";
version = "1.16.0"; version = "1.16.1";
meta = {
description = "Integration testing infrastructure for the GStreamer framework";
homepage = https://gstreamer.freedesktop.org;
license = stdenv.lib.licenses.lgpl2Plus;
platforms = stdenv.lib.platforms.unix;
};
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gst-validate/${pname}-${version}.tar.xz"; url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
sha256 = "1jfnd0g9hmdbqfxsx96yc9vpf1w6m33hqwrr6lj4i83kl54awcck"; sha256 = "1698arvmpb0cvyi8ll1brvs51vs7i3f3fw19iswh8xhj5adrn1vz";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = [ nativeBuildInputs = [
pkgconfig gobject-introspection pkgconfig
gobject-introspection
]; ];
buildInputs = [ buildInputs = [
python json-glib python
json-glib
]; ];
propagatedBuildInputs = [ gstreamer gst-plugins-base ]; propagatedBuildInputs = [
gstreamer
enableParallelBuilding = true; gst-plugins-base
mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
]; ];
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 { stdenv.mkDerivation rec {
name = "libnice-0.1.16"; name = "libnice-0.1.16";
@ -21,27 +36,40 @@ stdenv.mkDerivation rec {
]; ];
nativeBuildInputs = [ nativeBuildInputs = [
meson ninja pkgconfig python3 gobject-introspection meson
ninja
pkgconfig
python3
gobject-introspection
# documentation
gtk-doc gtk-doc
# Without these, enabling the 'gtk_doc' gives us `FAILED: meson-install` docbook_xsl
docbook_xsl docbook_xml_dtd_412 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 = [ 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 "-Dgtk_doc=enabled" # Disabled by default as of libnice-0.1.15
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
]; ];
# TODO; see #53293 etc. # Tests are flaky
#doCheck = true; # see https://github.com/NixOS/nixpkgs/pull/53293#issuecomment-453739295
doCheck = false;
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://nice.freedesktop.org/wiki/; description = "GLib ICE implementation";
description = "The GLib ICE implementation";
longDescription = '' longDescription = ''
Libnice is an implementation of the IETF's Interactice Connectivity Libnice is an implementation of the IETF's Interactice Connectivity
Establishment (ICE) standard (RFC 5245) and the Session Traversal 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, It provides a GLib-based library, libnice and a Glib-free library,
libstun as well as GStreamer elements.''; libstun as well as GStreamer elements.'';
homepage = "https://nice.freedesktop.org/wiki/";
platforms = platforms.linux; platforms = platforms.linux;
license = with licenses; [ lgpl21 mpl11 ]; license = with licenses; [ lgpl21 mpl11 ];
}; };

View File

@ -1,5 +1,16 @@
{ stdenv, fetchurl, autoreconfHook, docbook_xsl, docbook_xml_dtd_43, gtk-doc, lzip { stdenv
, libidn2, libunistring, libxslt, pkgconfig, python3, valgrind , fetchurl
, autoreconfHook
, docbook_xsl
, docbook_xml_dtd_43
, gtk-doc
, lzip
, libidn2
, libunistring
, libxslt
, pkgconfig
, python3
, valgrind
, publicsuffix-list , publicsuffix-list
}: }:
@ -12,9 +23,26 @@ stdenv.mkDerivation rec {
sha256 = "183hadbira0d2zvv8272lspy31dgm9x26z35c61s5axcd5wd9g9i"; sha256 = "183hadbira0d2zvv8272lspy31dgm9x26z35c61s5axcd5wd9g9i";
}; };
nativeBuildInputs = [ autoreconfHook docbook_xsl docbook_xml_dtd_43 gtk-doc lzip pkgconfig python3 valgrind ]; nativeBuildInputs = [
buildInputs = [ libidn2 libunistring libxslt ]; autoreconfHook
propagatedBuildInputs = [ publicsuffix-list ]; docbook_xsl
docbook_xml_dtd_43
gtk-doc
lzip
pkgconfig
python3
valgrind
];
buildInputs = [
libidn2
libunistring
libxslt
];
propagatedBuildInputs = [
publicsuffix-list
];
postPatch = '' postPatch = ''
patchShebangs src/psl-make-dafsa patchShebangs src/psl-make-dafsa
@ -25,7 +53,7 @@ stdenv.mkDerivation rec {
''; '';
configureFlags = [ configureFlags = [
# "--enable-gtk-doc" # "--enable-gtk-doc"
"--enable-man" "--enable-man"
"--enable-valgrind-tests" "--enable-valgrind-tests"
"--with-psl-distfile=${publicsuffix-list}/share/publicsuffix/public_suffix_list.dat" "--with-psl-distfile=${publicsuffix-list}/share/publicsuffix/public_suffix_list.dat"
@ -35,7 +63,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
doCheck = true; doCheck = !stdenv.isDarwin;
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "C library for the Publix Suffix List"; 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 let
# See https://mesonbuild.com/Reference-tables.html#cpu-families # See https://mesonbuild.com/Reference-tables.html#cpu-families
@ -62,6 +69,15 @@ python3Packages.buildPythonApplication rec {
# https://github.com/mesonbuild/meson/issues/4784 # https://github.com/mesonbuild/meson/issues/4784
# Should be fixed in 0.52 # Should be fixed in 0.52
./fix-objc-linking.patch ./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; setupHook = ./setup-hook.sh;