diff --git a/pkgs/servers/gerbera/default.nix b/pkgs/servers/gerbera/default.nix new file mode 100644 index 000000000000..93bd7778d08c --- /dev/null +++ b/pkgs/servers/gerbera/default.nix @@ -0,0 +1,78 @@ +{ 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; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1d198778dcea..28544314accf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16507,6 +16507,8 @@ in grafana_reporter = callPackage ../servers/monitoring/grafana-reporter { }; + gerbera = callPackage ../servers/gerbera { }; + gobetween = callPackage ../servers/gobetween { }; h2o = callPackage ../servers/http/h2o { };