79 lines
2.3 KiB
Nix
79 lines
2.3 KiB
Nix
|
{ stdenv, fetchFromGitHub
|
||
|
, cmake, pkg-config
|
||
|
# required
|
||
|
, libupnp, libuuid, pugixml, libiconv, sqlite, zlib, spdlog, fmt
|
||
|
, pkgs
|
||
|
# options
|
||
|
, enableDuktape ? true
|
||
|
, enableCurl ? true
|
||
|
, enableTaglib ? true
|
||
|
, enableLibmagic ? true
|
||
|
, enableLibmatroska ? true
|
||
|
, enableAvcodec ? false
|
||
|
, enableLibexif ? true
|
||
|
, enableExiv2 ? false
|
||
|
, enableFFmpegThumbnailer ? false
|
||
|
, enableInotifyTools ? true
|
||
|
}:
|
||
|
|
||
|
with stdenv.lib;
|
||
|
let
|
||
|
optionOnOff = option: if option then "on" else "off";
|
||
|
in stdenv.mkDerivation rec {
|
||
|
pname = "gerbera";
|
||
|
version = "1.6.1";
|
||
|
|
||
|
src = fetchFromGitHub {
|
||
|
repo = "gerbera";
|
||
|
owner = "gerbera";
|
||
|
rev = "v${version}";
|
||
|
sha256 = "sha256:05ca27r9sidbl7xns9hcdan8wgjrpg26n1wq1vp247c9bqhpyql8";
|
||
|
};
|
||
|
|
||
|
cmakeFlags = [
|
||
|
"-DWITH_JS=${optionOnOff enableDuktape}"
|
||
|
"-DWITH_CURL=${optionOnOff enableCurl}"
|
||
|
"-DWITH_TAGLIB=${optionOnOff enableTaglib}"
|
||
|
"-DWITH_MAGIC=${optionOnOff enableLibmagic}"
|
||
|
"-DWITH_MATROSKA=${optionOnOff enableLibmatroska}"
|
||
|
"-DWITH_AVCODEC=${optionOnOff enableAvcodec}"
|
||
|
"-DWITH_EXIF=${optionOnOff enableLibexif}"
|
||
|
"-DWITH_EXIV2=${optionOnOff enableExiv2}"
|
||
|
"-DWITH_FFMPEGTHUMBNAILER=${optionOnOff enableFFmpegThumbnailer}"
|
||
|
"-DWITH_INOTIFY=${optionOnOff enableInotifyTools}"
|
||
|
# systemd service will be generated alongside the service
|
||
|
"-DWITH_SYSTEMD=OFF"
|
||
|
];
|
||
|
|
||
|
nativeBuildInputs = [ cmake pkg-config ];
|
||
|
|
||
|
buildInputs = [
|
||
|
libupnp libuuid pugixml libiconv sqlite zlib fmt.dev
|
||
|
spdlog
|
||
|
]
|
||
|
++ optionals enableDuktape [ pkgs.duktape ]
|
||
|
++ optionals enableCurl [ pkgs.curl ]
|
||
|
++ optionals enableTaglib [ pkgs.taglib ]
|
||
|
++ optionals enableLibmagic [ pkgs.file ]
|
||
|
++ optionals enableLibmatroska [ pkgs.libmatroska pkgs.libebml ]
|
||
|
++ optionals enableAvcodec [ pkgs.libav.dev ]
|
||
|
++ optionals enableLibexif [ pkgs.libexif ]
|
||
|
++ optionals enableExiv2 [ pkgs.exiv2 ]
|
||
|
++ optionals enableInotifyTools [ pkgs.inotify-tools ]
|
||
|
++ optionals enableFFmpegThumbnailer [ pkgs.ffmpegthumbnailer ];
|
||
|
|
||
|
|
||
|
meta = with stdenv.lib; {
|
||
|
homepage = https://docs.gerbera.io/;
|
||
|
description = "UPnP Media Server for 2020";
|
||
|
longDescription = ''
|
||
|
Gerbera is a Mediatomb fork.
|
||
|
It allows to stream your digital media through your home network and consume it on all kinds
|
||
|
of UPnP supporting devices.
|
||
|
'';
|
||
|
license = licenses.gpl2;
|
||
|
maintainers = [ maintainers.ardumont ];
|
||
|
platforms = platforms.linux;
|
||
|
};
|
||
|
}
|