From cfd6ace6bfcff94a0be8cabb37d719039384c81b Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Thu, 20 Sep 2018 06:35:51 -0400 Subject: [PATCH 1/9] nixos/emby: ensure plugins are writeable (cherry picked from commit a16c6d85a1291beede624cdc14833247610eb706) --- nixos/modules/services/misc/emby.nix | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/nixos/modules/services/misc/emby.nix b/nixos/modules/services/misc/emby.nix index 64cc9c610ac3..ff68b850cd91 100644 --- a/nixos/modules/services/misc/emby.nix +++ b/nixos/modules/services/misc/emby.nix @@ -36,11 +36,18 @@ in after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; preStart = '' - test -d ${cfg.dataDir} || { - echo "Creating initial Emby data directory in ${cfg.dataDir}" - mkdir -p ${cfg.dataDir} - chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir} - } + if [ -d ${cfg.dataDir} ] + then + for plugin in ${cfg.dataDir}/plugins/* + do + echo "Correcting permissions of plugin: $plugin" + chmod u+w $plugin + done + else + echo "Creating initial Emby data directory in ${cfg.dataDir}" + mkdir -p ${cfg.dataDir} + chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir} + fi ''; serviceConfig = { From c2638ddfc9b48f6ea7a91300c1a8d84766007dd2 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Mon, 17 Sep 2018 09:41:16 -0400 Subject: [PATCH 2/9] emby: 3.4.1.0 -> 3.5.2.0 (cherry picked from commit bd02b3352ae45cf0890d63409e7796894b75c44c) --- pkgs/servers/emby/default.nix | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/pkgs/servers/emby/default.nix b/pkgs/servers/emby/default.nix index baeefc7ff9c8..11cb914bfd80 100644 --- a/pkgs/servers/emby/default.nix +++ b/pkgs/servers/emby/default.nix @@ -1,23 +1,32 @@ -{ stdenv, fetchurl, pkgs, unzip, sqlite, makeWrapper, mono54, ffmpeg, ... }: +{ stdenv, fetchurl, unzip, sqlite, makeWrapper, mono54, ffmpeg }: stdenv.mkDerivation rec { name = "emby-${version}"; - version = "3.4.1.0"; + version = "3.5.2.0"; + # We are fetching a binary here, however, a source build is possible. + # See -> https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=emby-server-git#n43 + # Though in my attempt it failed with this error repeatedly + # The type 'Attribute' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. + # This may also need msbuild (instead of xbuild) which isn't in nixpkgs + # See -> https://github.com/NixOS/nixpkgs/issues/29817 src = fetchurl { - url = "https://github.com/MediaBrowser/Emby/releases/download/${version}/Emby.Mono.zip"; - sha256 = "08jr6v8xhmiwbby0lfvpjrlma280inwh5qp6v4p93lzd07fjynh5"; + url = "https://github.com/MediaBrowser/Emby.Releases/releases/download/${version}/embyserver-mono_${version}.zip"; + sha256 = "12f9skvnr9qxnrvr3q014yggfwvkpjk0ynbgf0fwk56h4kal7fx8"; }; - buildInputs = with pkgs; [ + buildInputs = [ unzip makeWrapper ]; - propagatedBuildInputs = with pkgs; [ + + propagatedBuildInputs = [ mono54 sqlite ]; + preferLocalBuild = true; + # Need to set sourceRoot as unpacker will complain about multiple directory output sourceRoot = "."; @@ -27,18 +36,18 @@ stdenv.mkDerivation rec { ''; installPhase = '' - mkdir -p $out/bin - cp -r * $out/bin + mkdir -p "$out/bin" + cp -r * "$out/bin" makeWrapper "${mono54}/bin/mono" $out/bin/MediaBrowser.Server.Mono \ --add-flags "$out/bin/MediaBrowser.Server.Mono.exe -ffmpeg ${ffmpeg}/bin/ffmpeg -ffprobe ${ffmpeg}/bin/ffprobe" ''; - meta = { + meta = with stdenv.lib; { description = "MediaBrowser - Bring together your videos, music, photos, and live television"; homepage = https://emby.media/; - license = stdenv.lib.licenses.gpl2; - maintainers = [ stdenv.lib.maintainers.fadenb ]; - platforms = stdenv.lib.platforms.all; + license = licenses.gpl2; + maintainers = with maintainers; [ fadenb ]; + platforms = platforms.all; }; } From ef311d5c7609cca49562be70dabe8bdc5c67da09 Mon Sep 17 00:00:00 2001 From: nyanloutre Date: Tue, 2 Oct 2018 12:13:53 +0200 Subject: [PATCH 3/9] WIP emby: 3.5.2.0 -> 3.5.3.0 (cherry picked from commit 6e8da1ddf0be2d511e82f8a7f40236f3aa03ad3b) --- pkgs/servers/emby/default.nix | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/pkgs/servers/emby/default.nix b/pkgs/servers/emby/default.nix index 11cb914bfd80..ab2d5fa08c27 100644 --- a/pkgs/servers/emby/default.nix +++ b/pkgs/servers/emby/default.nix @@ -1,8 +1,8 @@ -{ stdenv, fetchurl, unzip, sqlite, makeWrapper, mono54, ffmpeg }: +{ stdenv, fetchurl, unzip, sqlite, makeWrapper, dotnet-sdk, ffmpeg }: stdenv.mkDerivation rec { name = "emby-${version}"; - version = "3.5.2.0"; + version = "3.5.3.0"; # We are fetching a binary here, however, a source build is possible. # See -> https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=emby-server-git#n43 @@ -11,8 +11,8 @@ stdenv.mkDerivation rec { # This may also need msbuild (instead of xbuild) which isn't in nixpkgs # See -> https://github.com/NixOS/nixpkgs/issues/29817 src = fetchurl { - url = "https://github.com/MediaBrowser/Emby.Releases/releases/download/${version}/embyserver-mono_${version}.zip"; - sha256 = "12f9skvnr9qxnrvr3q014yggfwvkpjk0ynbgf0fwk56h4kal7fx8"; + url = "https://github.com/MediaBrowser/Emby.Releases/releases/download/${version}/embyserver-netcore_${version}.zip"; + sha256 = "0311af3q813cx0ykbdk9vkmnyqi2l8rx66jnvdkw927q6invnnpj"; }; buildInputs = [ @@ -21,26 +21,22 @@ stdenv.mkDerivation rec { ]; propagatedBuildInputs = [ - mono54 + dotnet-sdk sqlite ]; preferLocalBuild = true; - # Need to set sourceRoot as unpacker will complain about multiple directory output - sourceRoot = "."; - buildPhase = '' - substituteInPlace SQLitePCLRaw.provider.sqlite3.dll.config --replace libsqlite3.so ${sqlite.out}/lib/libsqlite3.so - substituteInPlace MediaBrowser.Server.Mono.exe.config --replace ProgramData-Server "/var/lib/emby/ProgramData-Server" + rm -rf {electron,runtimes} ''; installPhase = '' - mkdir -p "$out/bin" - cp -r * "$out/bin" + install -dm 755 "$out/usr/lib/emby-server" + cp -r * "$out/usr/lib/emby-server" - makeWrapper "${mono54}/bin/mono" $out/bin/MediaBrowser.Server.Mono \ - --add-flags "$out/bin/MediaBrowser.Server.Mono.exe -ffmpeg ${ffmpeg}/bin/ffmpeg -ffprobe ${ffmpeg}/bin/ffprobe" + makeWrapper "${dotnet-sdk}/bin/dotnet" $out/bin/emby \ + --add-flags "$out/usr/lib/emby-server/EmbyServer.dll -programdata /var/lib/emby/ProgramData-Server -ffmpeg ${ffmpeg}/bin/ffmpeg -ffprobe ${ffmpeg}/bin/ffprobe" ''; meta = with stdenv.lib; { From 04d75db258f73825124e1f4342f847bb8d5b66a7 Mon Sep 17 00:00:00 2001 From: nyanloutre Date: Tue, 2 Oct 2018 12:37:34 +0200 Subject: [PATCH 4/9] emby: add sqlite to wrapper (cherry picked from commit f7a2e2025f0194389e5a77ff15149c72a6262cac) --- pkgs/servers/emby/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/servers/emby/default.nix b/pkgs/servers/emby/default.nix index ab2d5fa08c27..61f4ab721309 100644 --- a/pkgs/servers/emby/default.nix +++ b/pkgs/servers/emby/default.nix @@ -36,6 +36,9 @@ stdenv.mkDerivation rec { cp -r * "$out/usr/lib/emby-server" makeWrapper "${dotnet-sdk}/bin/dotnet" $out/bin/emby \ + --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ + sqlite + ]}" \ --add-flags "$out/usr/lib/emby-server/EmbyServer.dll -programdata /var/lib/emby/ProgramData-Server -ffmpeg ${ffmpeg}/bin/ffmpeg -ffprobe ${ffmpeg}/bin/ffprobe" ''; From 36f064d3414c4f4e7a473b0c786c6410174dbdcd Mon Sep 17 00:00:00 2001 From: nyanloutre Date: Wed, 3 Oct 2018 09:44:53 +0200 Subject: [PATCH 5/9] emby: move usr/lib to lib (cherry picked from commit 9ec17c6318451c92c8878d9b9a6f72d148832c79) --- pkgs/servers/emby/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/emby/default.nix b/pkgs/servers/emby/default.nix index 61f4ab721309..1382e6ecdf2d 100644 --- a/pkgs/servers/emby/default.nix +++ b/pkgs/servers/emby/default.nix @@ -32,14 +32,14 @@ stdenv.mkDerivation rec { ''; installPhase = '' - install -dm 755 "$out/usr/lib/emby-server" - cp -r * "$out/usr/lib/emby-server" + install -dm 755 "$out/lib/emby-server" + cp -r * "$out/lib/emby-server" makeWrapper "${dotnet-sdk}/bin/dotnet" $out/bin/emby \ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ sqlite ]}" \ - --add-flags "$out/usr/lib/emby-server/EmbyServer.dll -programdata /var/lib/emby/ProgramData-Server -ffmpeg ${ffmpeg}/bin/ffmpeg -ffprobe ${ffmpeg}/bin/ffprobe" + --add-flags "$out/lib/emby-server/EmbyServer.dll -programdata /var/lib/emby/ProgramData-Server -ffmpeg ${ffmpeg}/bin/ffmpeg -ffprobe ${ffmpeg}/bin/ffprobe" ''; meta = with stdenv.lib; { From 3f8c202c46d083bcd730cbbbad745e6df616edc6 Mon Sep 17 00:00:00 2001 From: nyanloutre Date: Thu, 4 Oct 2018 10:12:57 +0200 Subject: [PATCH 6/9] emby: move lib to opt (cherry picked from commit c2e269ea05df3b427202ab3b3548226942a4694d) --- pkgs/servers/emby/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/emby/default.nix b/pkgs/servers/emby/default.nix index 1382e6ecdf2d..932d070577e6 100644 --- a/pkgs/servers/emby/default.nix +++ b/pkgs/servers/emby/default.nix @@ -32,14 +32,14 @@ stdenv.mkDerivation rec { ''; installPhase = '' - install -dm 755 "$out/lib/emby-server" - cp -r * "$out/lib/emby-server" + install -dm 755 "$out/opt/emby-server" + cp -r * "$out/opt/emby-server" makeWrapper "${dotnet-sdk}/bin/dotnet" $out/bin/emby \ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ sqlite ]}" \ - --add-flags "$out/lib/emby-server/EmbyServer.dll -programdata /var/lib/emby/ProgramData-Server -ffmpeg ${ffmpeg}/bin/ffmpeg -ffprobe ${ffmpeg}/bin/ffprobe" + --add-flags "$out/opt/emby-server/EmbyServer.dll -programdata /var/lib/emby/ProgramData-Server -ffmpeg ${ffmpeg}/bin/ffmpeg -ffprobe ${ffmpeg}/bin/ffprobe" ''; meta = with stdenv.lib; { From ca20a042cdff6bf365318160e696feecbc2a85ad Mon Sep 17 00:00:00 2001 From: nyanloutre Date: Fri, 5 Oct 2018 09:25:39 +0200 Subject: [PATCH 7/9] nixos/emby: fixes binary name change introduced by #47659 (cherry picked from commit bb06b5b442c132a4cd3db41ab615cd49e5ee21b7) --- nixos/modules/services/misc/emby.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/misc/emby.nix b/nixos/modules/services/misc/emby.nix index ff68b850cd91..151edd0e761a 100644 --- a/nixos/modules/services/misc/emby.nix +++ b/nixos/modules/services/misc/emby.nix @@ -55,7 +55,7 @@ in User = cfg.user; Group = cfg.group; PermissionsStartOnly = "true"; - ExecStart = "${pkgs.emby}/bin/MediaBrowser.Server.Mono"; + ExecStart = "${pkgs.emby}/bin/emby"; Restart = "on-failure"; }; }; From ec61247898d377f74fc62df2d6a141f32aaa6b6e Mon Sep 17 00:00:00 2001 From: Victor SENE Date: Mon, 8 Oct 2018 14:10:00 +0200 Subject: [PATCH 8/9] nixos/emby : use the dataDir option (cherry picked from commit 7d43e2a86144d1834019e4917aad60a35d1e68ca) --- nixos/modules/services/misc/emby.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/misc/emby.nix b/nixos/modules/services/misc/emby.nix index 151edd0e761a..0ad4a3f7376f 100644 --- a/nixos/modules/services/misc/emby.nix +++ b/nixos/modules/services/misc/emby.nix @@ -55,7 +55,7 @@ in User = cfg.user; Group = cfg.group; PermissionsStartOnly = "true"; - ExecStart = "${pkgs.emby}/bin/emby"; + ExecStart = "${pkgs.emby}/bin/emby -programdata ${cfg.dataDir}"; Restart = "on-failure"; }; }; From 2c5f94b83671bcaa85bc96fb6411a1aec6224471 Mon Sep 17 00:00:00 2001 From: Victor SENE Date: Mon, 8 Oct 2018 14:51:49 +0200 Subject: [PATCH 9/9] nixos/emby : delete programData hardcode in pkg (cherry picked from commit 751c64754fd289a6bef611979de671519d4745d0) --- pkgs/servers/emby/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/servers/emby/default.nix b/pkgs/servers/emby/default.nix index 932d070577e6..12b0dde0c9b4 100644 --- a/pkgs/servers/emby/default.nix +++ b/pkgs/servers/emby/default.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation rec { --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ sqlite ]}" \ - --add-flags "$out/opt/emby-server/EmbyServer.dll -programdata /var/lib/emby/ProgramData-Server -ffmpeg ${ffmpeg}/bin/ffmpeg -ffprobe ${ffmpeg}/bin/ffprobe" + --add-flags "$out/opt/emby-server/EmbyServer.dll -ffmpeg ${ffmpeg}/bin/ffmpeg -ffprobe ${ffmpeg}/bin/ffprobe" ''; meta = with stdenv.lib; {