2018-03-31 21:03:18 +00:00
{ stdenv , fetchurl , fetchpatch , meson , ninja , gettext
2019-01-21 01:48:04 +00:00
, config
2018-09-03 21:09:17 +00:00
, pkgconfig , python3 , gst-plugins-base , orc
2019-01-21 01:48:04 +00:00
, gobject-introspection
2014-04-07 13:37:02 +00:00
, faacSupport ? false , faac ? null
2018-07-08 23:17:35 +00:00
, faad2 , libass , libkate , libmms , librdf , ladspaH
, libnice , webrtc-audio-processing , lilv , lv2 , serd , sord , sratom
, libbs2b , libmodplug , mpeg2dec
2013-12-23 15:36:37 +00:00
, openjpeg , libopus , librsvg
2019-01-21 01:48:04 +00:00
, 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
2014-04-29 09:15:10 +00:00
, wildmidi , fluidsynth , libvdpau , wayland
2016-04-21 14:13:05 +00:00
, libwebp , xvidcore , gnutls , mjpegtools
2018-03-14 19:15:06 +00:00
, libGLU_combined , libintl , libgme
2016-09-04 19:44:15 +00:00
, openssl , x265 , libxml2
2019-01-20 17:59:47 +00:00
, srt
2013-12-23 15:36:37 +00:00
} :
2014-04-07 13:37:02 +00:00
assert faacSupport -> faac != null ;
2015-04-09 01:54:51 +00:00
let
2019-01-21 01:48:04 +00:00
inherit ( stdenv . lib ) optional optionals ;
2015-04-09 01:54:51 +00:00
in
2013-12-23 15:36:37 +00:00
stdenv . mkDerivation rec {
2018-08-30 11:30:00 +00:00
name = " g s t - p l u g i n s - b a d - ${ version } " ;
2019-05-01 14:10:36 +00:00
version = " 1 . 1 6 . 0 " ;
2013-12-23 15:36:37 +00:00
2014-03-17 13:31:45 +00:00
meta = with stdenv . lib ; {
description = " G s t r e a m e r B a d P l u g i n s " ;
2017-09-16 19:28:31 +00:00
homepage = " h t t p s : / / g s t r e a m e r . f r e e d e s k t o p . o r g " ;
2014-03-17 13:31:45 +00:00
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 ;
2018-02-23 18:34:26 +00:00
platforms = platforms . linux ++ platforms . darwin ;
2018-04-24 23:35:54 +00:00
maintainers = with maintainers ; [ matthewbauer ] ;
2013-12-23 15:36:37 +00:00
} ;
2018-03-31 21:03:18 +00:00
preConfigure = ''
patchShebangs .
2017-11-20 06:48:40 +00:00
'' ;
2018-03-31 21:03:18 +00:00
patches = [
./fix_pkgconfig_includedir.patch
] ;
2013-12-23 15:36:37 +00:00
src = fetchurl {
url = " ${ meta . homepage } / s r c / g s t - p l u g i n s - b a d / ${ name } . t a r . x z " ;
2019-05-01 14:10:36 +00:00
sha256 = " 0 1 9 b 0 y q j r c g 6 j m f d 4 c c 3 3 6 h 1 b z 5 p 4 w x l 5 8 y z 1 c 4 s d b 9 6 a v i r s 4 r 2 " ;
2013-12-23 15:36:37 +00:00
} ;
2016-08-29 00:30:01 +00:00
outputs = [ " o u t " " d e v " ] ;
2016-04-24 12:39:30 +00:00
2019-01-21 01:48:04 +00:00
nativeBuildInputs = [
meson ninja pkgconfig python3 gettext gobject-introspection
]
++ optionals stdenv . isLinux [
wayland-protocols
] ;
2013-12-23 15:36:37 +00:00
buildInputs = [
gst-plugins-base orc
2018-04-04 15:43:36 +00:00
faad2 libass libkate libmms
2018-07-08 23:17:35 +00:00
libnice webrtc-audio-processing # webrtc
libbs2b
ladspaH librdf # ladspa plug-in
lilv lv2 serd sord sratom # lv2 plug-in
2018-04-04 15:44:23 +00:00
libmodplug mpeg2dec
2013-12-23 15:36:37 +00:00
openjpeg libopus librsvg
2019-01-21 01:48:04 +00:00
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
2015-04-09 01:54:51 +00:00
fluidsynth libvdpau
2018-02-24 13:12:44 +00:00
libwebp xvidcore gnutls libGLU_combined
2018-02-23 18:34:26 +00:00
libgme openssl x265 libxml2
2018-03-14 19:15:06 +00:00
libintl
2019-01-20 17:59:47 +00:00
srt
2015-04-09 01:54:51 +00:00
]
++ optional faacSupport faac
++ optional stdenv . isLinux wayland
# wildmidi requires apple's OpenAL
# TODO: package apple's OpenAL, fix wildmidi, include on Darwin
2018-02-23 18:34:26 +00:00
++ optional ( ! stdenv . isDarwin ) wildmidi
# TODO: mjpegtools uint64_t is not compatible with guint64 on Darwin
++ optional ( ! stdenv . isDarwin ) mjpegtools ;
2015-04-09 01:54:51 +00:00
2019-01-21 01:48:04 +00:00
mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
" - D a u t o _ f e a t u r e s = e n a b l e d "
" - D e x a m p l e s = d i s a b l e d " # requires many dependencies and probably not useful for our users
" - D d t s = d i s a b l e d " # required `libdca` library not packaged in nixpkgs as of writing, and marked as "BIG FAT WARNING: libdca is still in early development"
" - D f a a c = ${ if faacSupport then " e n a b l e d " else " d i s a b l e d " } "
" - D g s m = d i s a b l e d " # as of writing, with `gsm` in `buildInputs` we get "GSM plugin is enabled: found libgsm but no headers"; gsm packaging problem?
" - D i q a = d i s a b l e d " # required `dssim` library not packaging in nixpkgs as of writing
" - D m s d k = d i s a b l e d " # 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?).
" - D m u s e p a c k = d i s a b l e d "
" - D o p e n m p t = d i s a b l e d " # `libopenmpt` not packaged in nixpkgs as of writing
" - D o p e n n i 2 = d i s a b l e d " # not packaged in nixpkgs as of writing
" - D o p e n s l e s = d i s a b l e d " # not packaged in nixpkgs as of writing
" - D r t m p = d i s a b l e d " # `librtmp` not packaged in nixpkgs as of writing
" - D s c t p = d i s a b l e d " # required `usrsctp` library not packaged in nixpkgs as of writing
" - D t e l e t e x t = d i s a b l e d " # required `zvbi` library not packaged in nixpkgs as of writing
" - D t i n y a l s a = d i s a b l e d " # not packaged in nixpkgs as of writing
" - D v o a a c e n c = d i s a b l e d " # required `vo-aacenc` library not packaged in nixpkgs as of writing
" - D v o a m r w b e n c = d i s a b l e d " # required `vo-amrwbenc` library not packaged in nixpkgs as of writing
" - D v u l k a n = d i s a b l e d " # Linux-only, and we haven't figured out yet which of the vulkan nixpkgs it needs
" - D w a s a p i = d i s a b l e d " # not packaged in nixpkgs as of writing / no Windows support
" - D w p e = d i s a b l e d " # 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
" - D n v d e c = d i s a b l e d "
" - D n v e n c = d i s a b l e d "
] ;
2017-12-06 06:54:33 +00:00
enableParallelBuilding = true ;
2018-04-25 03:20:18 +00:00
doCheck = false ; # fails 20 out of 58 tests, expensive
2013-12-23 15:36:37 +00:00
}