78 lines
2.4 KiB
Nix
78 lines
2.4 KiB
Nix
{ lib, stdenv, fetchFromGitHub
|
|
, cmake, pkg-config
|
|
# required
|
|
, libupnp, libuuid, pugixml, libiconv, sqlite, zlib, spdlog, fmt
|
|
# options
|
|
, enableDuktape ? true, duktape
|
|
, enableCurl ? true, curl
|
|
, enableTaglib ? true, taglib
|
|
, enableLibmagic ? true, file
|
|
, enableLibmatroska ? true, libmatroska, libebml
|
|
, enableAvcodec ? false, ffmpeg
|
|
, enableLibexif ? true, libexif
|
|
, enableExiv2 ? false, exiv2
|
|
, enableFFmpegThumbnailer ? false, ffmpegthumbnailer
|
|
, enableInotifyTools ? true, inotify-tools
|
|
}:
|
|
|
|
with lib;
|
|
let
|
|
optionOnOff = option: if option then "on" else "off";
|
|
in stdenv.mkDerivation rec {
|
|
pname = "gerbera";
|
|
version = "1.6.4";
|
|
|
|
src = fetchFromGitHub {
|
|
repo = "gerbera";
|
|
owner = "gerbera";
|
|
rev = "v${version}";
|
|
sha256 = "0vkgbw2ibvfr0zffnmmws7389msyqsiw8anfad6awvkda3z3rxjm";
|
|
};
|
|
|
|
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 [ duktape ]
|
|
++ optionals enableCurl [ curl ]
|
|
++ optionals enableTaglib [ taglib ]
|
|
++ optionals enableLibmagic [ file ]
|
|
++ optionals enableLibmatroska [ libmatroska libebml ]
|
|
++ optionals enableAvcodec [ ffmpeg.dev ]
|
|
++ optionals enableLibexif [ libexif ]
|
|
++ optionals enableExiv2 [ exiv2 ]
|
|
++ optionals enableInotifyTools [ inotify-tools ]
|
|
++ optionals enableFFmpegThumbnailer [ ffmpegthumbnailer ];
|
|
|
|
|
|
meta = with 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;
|
|
};
|
|
}
|