aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/servers/gerbera/default.nix
blob: c3f36a75923e5028412cbc421954b508b42785c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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.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 [ 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;
  };
}