From 0bc190e97e7268c095fb5c494b6746d974cd959f Mon Sep 17 00:00:00 2001 From: Taloth Saldono Date: Sun, 22 Nov 2020 17:10:29 +0100 Subject: [PATCH] Fixed binary execute permissions for osx and Radarr --- src/NzbDrone.Common/Disk/DiskProviderBase.cs | 1 + src/NzbDrone.Common/Disk/IDiskProvider.cs | 1 + src/NzbDrone.Mono/Disk/DiskProvider.cs | 16 ++++++++++++++-- .../UpdateEngine/InstallUpdateService.cs | 2 +- src/NzbDrone.Windows/Disk/DiskProvider.cs | 5 +++++ 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/NzbDrone.Common/Disk/DiskProviderBase.cs b/src/NzbDrone.Common/Disk/DiskProviderBase.cs index 79176480f..1f91a9654 100644 --- a/src/NzbDrone.Common/Disk/DiskProviderBase.cs +++ b/src/NzbDrone.Common/Disk/DiskProviderBase.cs @@ -32,6 +32,7 @@ namespace NzbDrone.Common.Disk public abstract long? GetAvailableSpace(string path); public abstract void InheritFolderPermissions(string filename); public abstract void SetEveryonePermissions(string filename); + public abstract void SetFilePermissions(string path, string mask, string group); public abstract void SetPermissions(string path, string mask, string group); public abstract void CopyPermissions(string sourcePath, string targetPath); public abstract long? GetTotalSize(string path); diff --git a/src/NzbDrone.Common/Disk/IDiskProvider.cs b/src/NzbDrone.Common/Disk/IDiskProvider.cs index efe0d70f6..ec8e3225b 100644 --- a/src/NzbDrone.Common/Disk/IDiskProvider.cs +++ b/src/NzbDrone.Common/Disk/IDiskProvider.cs @@ -11,6 +11,7 @@ namespace NzbDrone.Common.Disk long? GetAvailableSpace(string path); void InheritFolderPermissions(string filename); void SetEveryonePermissions(string filename); + void SetFilePermissions(string path, string mask, string group); void SetPermissions(string path, string mask, string group); void CopyPermissions(string sourcePath, string targetPath); long? GetTotalSize(string path); diff --git a/src/NzbDrone.Mono/Disk/DiskProvider.cs b/src/NzbDrone.Mono/Disk/DiskProvider.cs index f185ac1a0..afe3ced3f 100644 --- a/src/NzbDrone.Mono/Disk/DiskProvider.cs +++ b/src/NzbDrone.Mono/Disk/DiskProvider.cs @@ -66,10 +66,15 @@ namespace NzbDrone.Mono.Disk } - public override void SetPermissions(string path, string mask, string group) + public override void SetFilePermissions(string path, string mask, string group) { - Logger.Debug("Setting permissions: {0} on {1}", mask, path); + var permissions = NativeConvert.FromOctalPermissionString(mask); + SetPermissions(path, mask, group, permissions); + } + + public override void SetPermissions(string path, string mask, string group) + { var permissions = NativeConvert.FromOctalPermissionString(mask); if (File.Exists(path)) @@ -77,6 +82,13 @@ namespace NzbDrone.Mono.Disk permissions = GetFilePermissions(permissions); } + SetPermissions(path, mask, group, permissions); + } + + protected void SetPermissions(string path, string mask, string group, FilePermissions permissions) + { + Logger.Debug("Setting permissions: {0} on {1}", mask, path); + // Preserve non-access permissions if (Syscall.stat(path, out var curStat) < 0) { diff --git a/src/NzbDrone.Update/UpdateEngine/InstallUpdateService.cs b/src/NzbDrone.Update/UpdateEngine/InstallUpdateService.cs index eb96d4084..c5dc7c746 100644 --- a/src/NzbDrone.Update/UpdateEngine/InstallUpdateService.cs +++ b/src/NzbDrone.Update/UpdateEngine/InstallUpdateService.cs @@ -135,7 +135,7 @@ namespace NzbDrone.Update.UpdateEngine { // Old MacOS App stores Sonarr binaries in MacOS together with shell script // Make shim executable - _diskProvider.SetPermissions(shimPath, "755", null); + _diskProvider.SetFilePermissions(shimPath, "755", null); } } } diff --git a/src/NzbDrone.Windows/Disk/DiskProvider.cs b/src/NzbDrone.Windows/Disk/DiskProvider.cs index 05c58262f..14aa624fb 100644 --- a/src/NzbDrone.Windows/Disk/DiskProvider.cs +++ b/src/NzbDrone.Windows/Disk/DiskProvider.cs @@ -88,6 +88,11 @@ namespace NzbDrone.Windows.Disk } + public override void SetFilePermissions(string path, string mask, string group) + { + + } + public override void SetPermissions(string path, string mask, string group) {