summary refs log tree commit diff
diff options
context:
space:
mode:
authorTimo Kaufmann <timokau@zoho.com>2020-10-07 11:35:25 +0200
committerGitHub <noreply@github.com>2020-10-07 11:35:25 +0200
commit3b0886c9af7fadcb46fc04c28cf5b79280d38371 (patch)
treeba83e5d5331a5b56d995ba94135444963e108580
parent0504b01100c6a00e7c133ea8817806c80dca6388 (diff)
parentdc19e3be0c38b4531d56f9e3e203375483e81369 (diff)
downloadnixpkgs-3b0886c9af7fadcb46fc04c28cf5b79280d38371.tar
nixpkgs-3b0886c9af7fadcb46fc04c28cf5b79280d38371.tar.gz
nixpkgs-3b0886c9af7fadcb46fc04c28cf5b79280d38371.tar.bz2
nixpkgs-3b0886c9af7fadcb46fc04c28cf5b79280d38371.tar.lz
nixpkgs-3b0886c9af7fadcb46fc04c28cf5b79280d38371.tar.xz
nixpkgs-3b0886c9af7fadcb46fc04c28cf5b79280d38371.tar.zst
nixpkgs-3b0886c9af7fadcb46fc04c28cf5b79280d38371.zip
Merge pull request #93226 from ardumont/gerbera-init
gerbera: init at 1.6.1
-rw-r--r--pkgs/servers/gerbera/default.nix78
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 80 insertions, 0 deletions
diff --git a/pkgs/servers/gerbera/default.nix b/pkgs/servers/gerbera/default.nix
new file mode 100644
index 00000000000..93bd7778d08
--- /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 1d198778dce..28544314acc 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 { };