Browse Source

Merge pull request #783 from joshuaboniface/use-cache-flag

Update builds to use #749 and #756
Joshua M. Boniface 6 years ago
parent
commit
34da7de47d

+ 11 - 8
deployment/debian-package-x64/pkg-src/conf/jellyfin

@@ -1,4 +1,5 @@
 # Jellyfin default configuration options
+# This is a POSIX shell fragment
 
 # Use this file to override the default configurations; add additional
 # options with JELLYFIN_ADD_OPTS.
@@ -7,10 +8,6 @@
 #  /etc/systemd/system/jellyfin.service.d/jellyfin.service.conf
 # to override the user or this config file's location.
 
-#
-# This is a POSIX shell fragment
-#
-
 #
 # General options
 #
@@ -19,10 +16,16 @@
 JELLYFIN_DATA_DIRECTORY="/var/lib/jellyfin"
 JELLYFIN_CONFIG_DIRECTORY="/etc/jellyfin"
 JELLYFIN_LOG_DIRECTORY="/var/log/jellyfin"
+JELLYFIN_CACHE_DIRECTORY="/var/cache/jellyfin"
+
 # Restart script for in-app server control
-JELLYFIN_RESTART_SCRIPT="/usr/lib/jellyfin/restart.sh"
-# Additional options for the binary
-JELLYFIN_ADD_OPTS=""
+JELLYFIN_RESTART_OPT="--restartpath /usr/lib/jellyfin/restart.sh"
+
+# [OPTIONAL] ffmpeg binary paths
+#JELLYFIN_FFMPEG_OPTS="--ffmpeg /usr/bin/ffmpeg --ffprobe /usr/bin/ffprobe"
+
+# [OPTIONAL] Additional user-defined options for the binary
+#JELLYFIN_ADD_OPTS=""
 
 #
 # SysV init/Upstart options
@@ -31,4 +34,4 @@ JELLYFIN_ADD_OPTS=""
 # Application username
 JELLYFIN_USER="jellyfin"
 # Full application command
-JELLYFIN_ARGS="-programdata $JELLYFIN_DATA_DIRECTORY -configdir $JELLYFIN_CONFIG_DIRECTORY -logdir $JELLYFIN_LOG_DIRECTORY -restartpath $JELLYFIN_RESTART_SCRIPT $JELLYFIN_ADD_OPTS"
+JELLYFIN_ARGS="--datadir $JELLYFIN_DATA_DIRECTORY --configdir $JELLYFIN_CONFIG_DIRECTORY --logdir $JELLYFIN_LOG_DIRECTORY --cachedir $JELLYFIN_CACHE_DIRECTORY $JELLYFIN_RESTART_OPT $JELLYFIN_FFMPEG_OPTS $JELLYFIN_ADD_OPTS"

+ 0 - 0
deployment/debian-package-x64/pkg-src/bin/jellyfin-sudoers → deployment/debian-package-x64/pkg-src/conf/jellyfin-sudoers


+ 1 - 1
deployment/debian-package-x64/pkg-src/install

@@ -2,5 +2,5 @@ usr/lib/jellyfin usr/lib/
 debian/conf/jellyfin etc/default/
 debian/conf/logging.json etc/jellyfin/
 debian/conf/jellyfin.service.conf etc/systemd/system/jellyfin.service.d/
-debian/bin/jellyfin-sudoers etc/sudoers.d/
+debian/conf/jellyfin-sudoers etc/sudoers.d/
 debian/bin/restart.sh usr/lib/jellyfin/

+ 1 - 1
deployment/debian-package-x64/pkg-src/jellyfin.service

@@ -6,7 +6,7 @@ After = network.target
 Type = simple
 EnvironmentFile = /etc/default/jellyfin
 User = jellyfin
-ExecStart = /usr/bin/jellyfin -programdata ${JELLYFIN_DATA_DIRECTORY} -configdir ${JELLYFIN_CONFIG_DIRECTORY} -logdir ${JELLYFIN_LOG_DIRECTORY} -restartpath ${JELLYFIN_RESTART_SCRIPT} ${JELLYFIN_ADD_OPTS}
+ExecStart = /usr/bin/jellyfin --datadir ${JELLYFIN_DATA_DIRECTORY} --configdir ${JELLYFIN_CONFIG_DIRECTORY} --logdir ${JELLYFIN_LOG_DIRECTORY} --cachedir ${JELLYFIN_CACHE_DIRECTORY} ${JELLYFIN_RESTART_OPT} ${JELLYFIN_FFMPEG_OPTS} ${JELLYFIN_ADD_OPTS}
 Restart = on-failure
 TimeoutSec = 15
 

+ 8 - 3
deployment/debian-package-x64/pkg-src/postinst

@@ -13,6 +13,7 @@ fi
 PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
 CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
 LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME}
+CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME}
 
 case "$1" in
   configure)
@@ -37,10 +38,14 @@ case "$1" in
     if [[ ! -d $LOGDATA ]]; then
       mkdir $LOGDATA
     fi
+    # ensure $CACHEDATA exists
+    if [[ ! -d $CACHEDATA ]]; then
+      mkdir $CACHEDATA
+    fi
     # Ensure permissions are correct on all config directories
-    chown -R jellyfin:jellyfin $PROGRAMDATA
-    chown -R jellyfin:jellyfin $CONFIGDATA
-    chown -R jellyfin:jellyfin $LOGDATA
+    chown -R jellyfin $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA
+    chgrp adm $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA
+    chmod 0750 $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA
 
     chmod +x /usr/lib/jellyfin/restart.sh > /dev/null 2>&1 || true
 

+ 7 - 1
deployment/debian-package-x64/pkg-src/postrm

@@ -12,7 +12,8 @@ fi
 # Data directories for program data (cache, db), configs, and logs
 PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
 CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
-LOGDATA=${JELLYFIN_DATA_DIRECTORY-/var/log/$NAME}
+LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME}
+CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME}
 
 # In case this system is running systemd, we make systemd reload the unit files
 # to pick up changes.
@@ -44,6 +45,10 @@ case "$1" in
     if [[ -d $LOGDATA ]]; then
       rm -rf $LOGDATA
     fi
+    # Remove cache dir
+    if [[ -d $CACHEDATA ]]; then
+      rm -rf $CACHEDATA
+    fi
     # Remove program data dir
     if [[ -d $PROGRAMDATA ]]; then
       rm -rf $PROGRAMDATA
@@ -55,6 +60,7 @@ case "$1" in
     # Remove anything at the default locations; catches situations where the user moved the defaults
     [[ -e /etc/jellyfin ]] && rm -rf /etc/jellyfin
     [[ -e /var/log/jellyfin ]] && rm -rf /var/log/jellyfin
+    [[ -e /var/cache/jellyfin ]] && rm -rf /var/cache/jellyfin
     [[ -e /var/lib/jellyfin ]] && rm -rf /var/lib/jellyfin
     ;;
   remove)

+ 6 - 2
deployment/debian-package-x64/pkg-src/preinst

@@ -12,7 +12,8 @@ fi
 # Data directories for program data (cache, db), configs, and logs
 PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
 CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
-LOGDATA=${JELLYFIN_DATA_DIRECTORY-/var/log/$NAME}
+LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME}
+CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME}
 
 # In case this system is running systemd, we make systemd reload the unit files
 # to pick up changes.
@@ -53,13 +54,16 @@ case "$1" in
     # Clean up old Emby cruft that can break the user's system
     [[ -f /etc/sudoers.d/emby ]] && rm -f /etc/sudoers.d/emby
 
-    # If we have existing config or log dirs in /var/lib/jellyfin, move them into the right place
+    # If we have existing config, log, or cache dirs in /var/lib/jellyfin, move them into the right place
     if [[ -d $PROGRAMDATA/config ]]; then
         mv $PROGRAMDATA/config $CONFIGDATA
     fi
     if [[ -d $PROGRAMDATA/logs ]]; then
         mv $PROGRAMDATA/logs $LOGDATA
     fi
+    if [[ -d $PROGRAMDATA/logs ]]; then
+        mv $PROGRAMDATA/cache $CACHEDATA
+    fi
 
     ;;
   abort-upgrade)

+ 2 - 1
deployment/debian-package-x64/pkg-src/prerm

@@ -12,7 +12,8 @@ fi
 # Data directories for program data (cache, db), configs, and logs
 PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
 CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
-LOGDATA=${JELLYFIN_DATA_DIRECTORY-/var/log/$NAME}
+LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME}
+CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME}
 
 case "$1" in
   remove|upgrade|deconfigure)

+ 4 - 3
deployment/fedora-package-x64/pkg-src/jellyfin.env

@@ -15,13 +15,14 @@
 #
 
 # Tell jellyfin wich ffmpeg/ffprobe to use
-# JELLYFIN_FFMPEG="-ffmpeg /usr/bin/ffmpeg -ffprobe /usr/bin/ffprobe"
+# JELLYFIN_FFMPEG="--ffmpeg /usr/bin/ffmpeg --ffprobe /usr/bin/ffprobe"
 
 # Program directories
 JELLYFIN_DATA_DIRECTORY="/var/lib/jellyfin"
 JELLYFIN_CONFIG_DIRECTORY="/etc/jellyfin"
 JELLYFIN_LOG_DIRECTORY="/var/log/jellyfin"
+JELLYFIN_CACHE_DIRECTORY="/var/log/jellyfin"
 # In-App service control
-JELLYFIN_RESTART_OPT="-restartpath /usr/libexec/jellyfin/restart.sh"
+JELLYFIN_RESTART_OPT="--restartpath /usr/libexec/jellyfin/restart.sh"
 # Additional options for the binary
-JELLYFIN_ADD_OPTS=""
+JELLYFIN_ADD_OPTS=""

+ 1 - 1
deployment/fedora-package-x64/pkg-src/jellyfin.service

@@ -5,7 +5,7 @@ Description=Jellyfin is a free software media system that puts you in control of
 [Service]
 EnvironmentFile=/etc/sysconfig/jellyfin
 WorkingDirectory=/var/lib/jellyfin
-ExecStart=/usr/bin/jellyfin -programdata ${JELLYFIN_DATA_DIRECTORY} -configdir ${JELLYFIN_CONFIG_DIRECTORY} -logdir ${JELLYFIN_LOG_DIRECTORY} ${JELLYFIN_RESTART_OPT} ${JELLYFIN_ADD_OPTS} ${JELLYFIN_FFMPEG}
+ExecStart=/usr/bin/jellyfin --datadir ${JELLYFIN_DATA_DIRECTORY} --configdir ${JELLYFIN_CONFIG_DIRECTORY} --logdir ${JELLYFIN_LOG_DIRECTORY} --cachedir ${JELLYFIN_CACHE_DIRECTORY} ${JELLYFIN_RESTART_OPT} ${JELLYFIN_ADD_OPTS} ${JELLYFIN_FFMPEG}
 TimeoutSec=15
 Restart=on-failure
 User=jellyfin

+ 5 - 5
deployment/win-generic/install-jellyfin.ps1

@@ -93,12 +93,12 @@ if($Quiet.IsPresent -or $Quiet -eq $true){
     Copy-Item -Path $PSScriptRoot/* -DestinationPath "$Script:DefaultJellyfinInstallDirectory/" -Force -Recurse
     if($Script:InstallAsService){
         if($Script:InstallServiceAsUser){
-            &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" -programdata `"$Script:JellyfinDataDir`"
+            &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" --datadir `"$Script:JellyfinDataDir`"
             Start-Sleep -Milliseconds 500
             &sc.exe config Jellyfin obj=".\$($Script:UserCredentials.UserName)" password="$($Script:UserCredentials.GetNetworkCredential().Password)"
             &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" set Jellyfin Start SERVICE_DELAYED_AUTO_START 
         }else{
-            &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" -programdata `"$Script:JellyfinDataDir`"
+            &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" --datadir `"$Script:JellyfinDataDir`"
             Start-Sleep -Milliseconds 500
             #&"$Script:DefaultJellyfinInstallDirectory\nssm.exe" set Jellyfin ObjectName $Script:UserCredentials.UserName $Script:UserCredentials.GetNetworkCredential().Password
             #Set-Service -Name Jellyfin -Credential $Script:UserCredentials
@@ -171,13 +171,13 @@ function InstallJellyfin {
     if($Script:InstallAsService){
         if($Script:InstallServiceAsUser){
             Write-Host "Installing Service as user $($Script:UserCredentials.UserName)"
-            &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" -programdata `"$Script:JellyfinDataDir`"
+            &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" --datadir `"$Script:JellyfinDataDir`"
             Start-Sleep -Milliseconds 2000
             &sc.exe config Jellyfin obj=".\$($Script:UserCredentials.UserName)" password="$($Script:UserCredentials.GetNetworkCredential().Password)"
             &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" set Jellyfin Start SERVICE_DELAYED_AUTO_START 
         }else{
             Write-Host "Installing Service as LocalSystem"
-            &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" -programdata `"$Script:JellyfinDataDir`"
+            &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" --datadir `"$Script:JellyfinDataDir`"
             Start-Sleep -Milliseconds 2000
             &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" set Jellyfin Start SERVICE_DELAYED_AUTO_START 
         }
@@ -457,4 +457,4 @@ $StartProgramCheck.Add_CheckedChanged({StartJellyFinBoxCheckChanged})
 #endregion GUI }
 
 
-[void]$InstallForm.ShowDialog()
+[void]$InstallForm.ShowDialog()