aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Emby.Server.Implementations/ApplicationHost.cs10
-rw-r--r--Emby.Server.Implementations/Updates/InstallationManager.cs40
-rw-r--r--SharedVersion.cs4
-rw-r--r--deployment/debian-package-x64/pkg-src/changelog100
-rw-r--r--deployment/fedora-package-x64/pkg-src/jellyfin.spec100
-rwxr-xr-xdeployment/win-x64/package.sh3
6 files changed, 222 insertions, 35 deletions
diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs
index bb475eb2c..353824406 100644
--- a/Emby.Server.Implementations/ApplicationHost.cs
+++ b/Emby.Server.Implementations/ApplicationHost.cs
@@ -564,7 +564,7 @@ namespace Emby.Server.Implementations
{
try
{
- var assembly = Assembly.Load(File.ReadAllBytes(file));
+ var assembly = Assembly.LoadFrom(file);
return new Tuple<Assembly, string>(assembly, file);
}
@@ -777,12 +777,12 @@ namespace Emby.Server.Implementations
SocketFactory = new SocketFactory();
RegisterSingleInstance(SocketFactory);
- InstallationManager = new InstallationManager(LoggerFactory, this, ApplicationPaths, HttpClient, JsonSerializer, ServerConfigurationManager, FileSystemManager, CryptographyProvider, PackageRuntime);
- RegisterSingleInstance(InstallationManager);
-
ZipClient = new ZipClient(FileSystemManager);
RegisterSingleInstance(ZipClient);
+ InstallationManager = new InstallationManager(LoggerFactory, this, ApplicationPaths, HttpClient, JsonSerializer, ServerConfigurationManager, FileSystemManager, CryptographyProvider, ZipClient, PackageRuntime);
+ RegisterSingleInstance(InstallationManager);
+
HttpResultFactory = new HttpResultFactory(LoggerFactory, FileSystemManager, JsonSerializer, CreateBrotliCompressor());
RegisterSingleInstance(HttpResultFactory);
@@ -1603,7 +1603,7 @@ namespace Emby.Server.Implementations
{
try
{
- return FilterAssembliesToLoad(Directory.EnumerateFiles(path, "*.dll", SearchOption.TopDirectoryOnly))
+ return FilterAssembliesToLoad(Directory.EnumerateFiles(path, "*.dll", SearchOption.AllDirectories))
.Select(LoadAssembly)
.Where(a => a != null)
.ToList();
diff --git a/Emby.Server.Implementations/Updates/InstallationManager.cs b/Emby.Server.Implementations/Updates/InstallationManager.cs
index dc7f57f27..301802b8a 100644
--- a/Emby.Server.Implementations/Updates/InstallationManager.cs
+++ b/Emby.Server.Implementations/Updates/InstallationManager.cs
@@ -116,6 +116,7 @@ namespace Emby.Server.Implementations.Updates
private readonly IApplicationHost _applicationHost;
private readonly ICryptoProvider _cryptographyProvider;
+ private readonly IZipClient _zipClient;
// netframework or netcore
private readonly string _packageRuntime;
@@ -129,6 +130,7 @@ namespace Emby.Server.Implementations.Updates
IServerConfigurationManager config,
IFileSystem fileSystem,
ICryptoProvider cryptographyProvider,
+ IZipClient zipClient,
string packageRuntime)
{
if (loggerFactory == null)
@@ -146,6 +148,7 @@ namespace Emby.Server.Implementations.Updates
_config = config;
_fileSystem = fileSystem;
_cryptographyProvider = cryptographyProvider;
+ _zipClient = zipClient;
_packageRuntime = packageRuntime;
_logger = loggerFactory.CreateLogger(nameof(InstallationManager));
}
@@ -526,14 +529,18 @@ namespace Emby.Server.Implementations.Updates
private async Task PerformPackageInstallation(IProgress<double> progress, string target, PackageVersionInfo package, CancellationToken cancellationToken)
{
- // Target based on if it is an archive or single assembly
- // zip archives are assumed to contain directory structures relative to our ProgramDataPath
var extension = Path.GetExtension(package.targetFilename);
- var isArchive = string.Equals(extension, ".zip", StringComparison.OrdinalIgnoreCase) || string.Equals(extension, ".rar", StringComparison.OrdinalIgnoreCase) || string.Equals(extension, ".7z", StringComparison.OrdinalIgnoreCase);
+ var isArchive = string.Equals(extension, ".zip", StringComparison.OrdinalIgnoreCase);
+
+ if (!isArchive)
+ {
+ _logger.LogError("Only zip packages are supported. {Filename} is not a zip archive.", package.targetFilename);
+ return;
+ }
if (target == null)
{
- target = Path.Combine(isArchive ? _appPaths.TempUpdatePath : _appPaths.PluginsPath, package.targetFilename);
+ target = Path.Combine(_appPaths.PluginsPath, Path.GetFileNameWithoutExtension(package.targetFilename));
}
// Download to temporary file so that, if interrupted, it won't destroy the existing installation
@@ -547,36 +554,19 @@ namespace Emby.Server.Implementations.Updates
cancellationToken.ThrowIfCancellationRequested();
- // Validate with a checksum
- var packageChecksum = string.IsNullOrWhiteSpace(package.checksum) ? Guid.Empty : new Guid(package.checksum);
- if (!packageChecksum.Equals(Guid.Empty)) // support for legacy uploads for now
- {
- using (var stream = File.OpenRead(tempFile))
- {
- var check = Guid.Parse(BitConverter.ToString(_cryptographyProvider.ComputeMD5(stream)).Replace("-", string.Empty));
- if (check != packageChecksum)
- {
- throw new Exception(string.Format("Download validation failed for {0}. Probably corrupted during transfer.", package.name));
- }
- }
- }
-
- cancellationToken.ThrowIfCancellationRequested();
+ // TODO: Validate with a checksum, *properly*
// Success - move it to the real target
try
{
- Directory.CreateDirectory(Path.GetDirectoryName(target));
- File.Copy(tempFile, target, true);
- //If it is an archive - write out a version file so we know what it is
- if (isArchive)
+ using (var stream = File.OpenRead(tempFile))
{
- File.WriteAllText(target + ".ver", package.versionStr);
+ _zipClient.ExtractAllFromZip(stream, target, true);
}
}
catch (IOException ex)
{
- _logger.LogError(ex, "Error attempting to move file from {TempFile} to {TargetFile}", tempFile, target);
+ _logger.LogError(ex, "Error attempting to extract {TempFile} to {TargetFile}", tempFile, target);
throw;
}
diff --git a/SharedVersion.cs b/SharedVersion.cs
index 70c309674..294748b77 100644
--- a/SharedVersion.cs
+++ b/SharedVersion.cs
@@ -1,4 +1,4 @@
using System.Reflection;
-[assembly: AssemblyVersion("10.1.0")]
-[assembly: AssemblyFileVersion("10.1.0")]
+[assembly: AssemblyVersion("10.2.0")]
+[assembly: AssemblyFileVersion("10.2.0")]
diff --git a/deployment/debian-package-x64/pkg-src/changelog b/deployment/debian-package-x64/pkg-src/changelog
index 7f3f12b00..d5872e4a7 100644
--- a/deployment/debian-package-x64/pkg-src/changelog
+++ b/deployment/debian-package-x64/pkg-src/changelog
@@ -1,3 +1,103 @@
+jellyfin (10.2.0~rc1) unstable; urgency=medium
+
+ * jellyfin:
+ * PR452 Use EF Core for Activity database
+ * PR535 Clean up streambuilder
+ * PR651 Release 10.1.0
+ * PR655 Support trying local branches in submodule
+ * PR656 Do some logging in MediaInfoService
+ * PR657 Remove conditions that are always true/false
+ * PR661 Fix NullRef from progress report
+ * PR663 Use TagLibSharp Nuget package
+ * PR664 Revert "Fix segment_time_delta for ffmpeg 4.1"
+ * PR666 Add cross-platform build for arm64
+ * PR668 Return Audio objects from MusicAlbum.Tracks
+ * PR671 Set EnableRaisingEvents correctly
+ * PR672 Remove unconditional caching, modified since header and use ETags
+ * PR677 Fix arm32 Docker
+ * PR681 Fix Windows build script errors + pin ffmpeg to 4.0
+ * PR686 Disable some StyleCop warnings
+ * PR687 Fix some analyzer warnings
+ * PR689 Fix RPM package build for fedora
+ * PR702 Fix debug build on windows
+ * PR706 Make another docker layer reusable
+ * PR709 Fix always null expressions
+ * PR710 Fix a spelling mistake
+ * PR711 Remove remnants of system events
+ * PR713 Fix empty statement in DidlBuilder.cs
+ * PR716 Remove more compile time warnings
+ * PR721 Change image dimentions from double to int
+ * PR723 Minor improvements to db code
+ * PR724 Move Skia back into it's own project
+ * PR726 Clean up IFileSystem wrappers around stdlib.
+ * PR727 Change default aspect ratio to 2/3 from 0
+ * PR728 Use ffmpeg from jrottenberg/ffmpeg
+ * PR732 Reworked LocalizationManager to load data async
+ * PR733 Remove unused function
+ * PR734 Fix more analyzer warnings
+ * PR736 Start startup tasks async
+ * PR737 Add AssemblyInfo for Jellyfin.Drawing.Skia
+ * PR739 Change multi version logic for movies
+ * PR740 Remove code for pre-installed plugins & properly check if file exists
+ * PR756 Make cache dir configurable
+ * PR757 Fix default aspect ratio
+ * PR758 Add password field to initial setup
+ * PR764 Remove dead code, made some functions properly async
+ * PR769 Fix conditions where the ! was swallowed in #726
+ * PR774 reimplement support for plugin repository
+ * PR782 Remove commented file MediaBrowser.LocalMetadata.Savers.PersonXmlSaver
+ * PR783 Update builds to use #749 and #756
+ * PR788 Fix more warnings
+ * PR794 Remove MoreLINQ
+ * PR797 Fix all warnings
+ * PR798 Cleanup around the api endpoints
+ * PR800 Add CentOS and update rpm spec for the cachedir option
+ * PR802 Fix build error
+ * PR804 Handle new option parser properly
+ * PR805 Add weblate translation status to README
+ * PR807 Fix restart script in OS packages
+ * PR810 Fix loading of rating files
+ * PR812 Fix up the explicit docs links in the README
+ * PR819 Some small changes in Device.cs and DidlBuilder.cs
+ * PR822 Complete rename ImageSize -> ImageDimensions
+ * PR824 Improved Docker pkgbuild
+ * PR831 Move some arrays to generics
+ * PR833 Add await to GetCountries in LocalizationService
+ * PR834 Add donation badge and reorganize badges
+ * PR838 Quick style fix
+ * PR840 Fix more warnings
+ * PR841 Fix OC badge to all and add forum badge
+ * PR842 Use VAAPI-enabled ffmpeg
+ * PR852 Use SQLitePCL.pretty.netstandard on NuGet
+ * PR853 Fix poor handling of cache directories
+ * PR8 rebase to latest master
+ * jellyfin-web:
+ * PR24 Add Master codeowners
+ * PR34 Revert "Add Master codeowners"
+ * PR49 Release 10.1.0
+ * PR51 remove more code for sync and camera roll
+ * PR56 Use English for fallback translations and clean up language files
+ * PR58 Css slider fixes
+ * PR62 remove BOM markers
+ * PR65 Fix profile image not being shown on profile page
+ * PR73 Dev sync
+ * PR74 Add download menu option to media items
+ * PR75 User profile fixes
+ * PR76 Fix syntax error caused by deminification
+ * PR79 Remove unused Connect related from the frontend
+ * PR80 Remove games
+ * PR92 Added frontend support for a password field on setup
+ * PR94 Update british strings
+ * PR95 add display language option back
+ * PR112 Removed seasonal theme support
+ * PR116 Consolidate all strings into a single file per language
+ * PR118 Enable and fix PiP for Safari
+ * PR119 Make the toggle track visible on all themes
+ * PR121 Fix syntax error in site.js
+ * PR127 Change sharedcomponents module to core
+
+ -- Jellyfin Packaging Team <packaging@jellyfin.org> Sun, 10 Feb 2019 01:18:23 -0500
+
jellyfin (10.1.0-1) unstable; urgency=medium
* jellyfin:
diff --git a/deployment/fedora-package-x64/pkg-src/jellyfin.spec b/deployment/fedora-package-x64/pkg-src/jellyfin.spec
index 851c40044..343d23e91 100644
--- a/deployment/fedora-package-x64/pkg-src/jellyfin.spec
+++ b/deployment/fedora-package-x64/pkg-src/jellyfin.spec
@@ -7,8 +7,8 @@
%endif
Name: jellyfin
-Version: 10.1.0
-Release: 1%{?dist}
+Version: 10.2.0
+Release: rc1%{?dist}
Summary: The Free Software Media Browser
License: GPLv2
URL: https://jellyfin.media
@@ -140,6 +140,102 @@ fi
%systemd_postun_with_restart jellyfin.service
%changelog
+* Sun Feb 10 2019 Jellyfin Packaging Team <packaging@jellyfin.org>
+- jellyfin:
+- PR452 Use EF Core for Activity database
+- PR535 Clean up streambuilder
+- PR651 Release 10.1.0
+- PR655 Support trying local branches in submodule
+- PR656 Do some logging in MediaInfoService
+- PR657 Remove conditions that are always true/false
+- PR661 Fix NullRef from progress report
+- PR663 Use TagLibSharp Nuget package
+- PR664 Revert "Fix segment_time_delta for ffmpeg 4.1"
+- PR666 Add cross-platform build for arm64
+- PR668 Return Audio objects from MusicAlbum.Tracks
+- PR671 Set EnableRaisingEvents correctly
+- PR672 Remove unconditional caching, modified since header and use ETags
+- PR677 Fix arm32 Docker
+- PR681 Fix Windows build script errors + pin ffmpeg to 4.0
+- PR686 Disable some StyleCop warnings
+- PR687 Fix some analyzer warnings
+- PR689 Fix RPM package build for fedora
+- PR702 Fix debug build on windows
+- PR706 Make another docker layer reusable
+- PR709 Fix always null expressions
+- PR710 Fix a spelling mistake
+- PR711 Remove remnants of system events
+- PR713 Fix empty statement in DidlBuilder.cs
+- PR716 Remove more compile time warnings
+- PR721 Change image dimentions from double to int
+- PR723 Minor improvements to db code
+- PR724 Move Skia back into it's own project
+- PR726 Clean up IFileSystem wrappers around stdlib.
+- PR727 Change default aspect ratio to 2/3 from 0
+- PR728 Use ffmpeg from jrottenberg/ffmpeg
+- PR732 Reworked LocalizationManager to load data async
+- PR733 Remove unused function
+- PR734 Fix more analyzer warnings
+- PR736 Start startup tasks async
+- PR737 Add AssemblyInfo for Jellyfin.Drawing.Skia
+- PR739 Change multi version logic for movies
+- PR740 Remove code for pre-installed plugins & properly check if file exists
+- PR756 Make cache dir configurable
+- PR757 Fix default aspect ratio
+- PR758 Add password field to initial setup
+- PR764 Remove dead code, made some functions properly async
+- PR769 Fix conditions where the ! was swallowed in #726
+- PR774 reimplement support for plugin repository
+- PR782 Remove commented file MediaBrowser.LocalMetadata.Savers.PersonXmlSaver
+- PR783 Update builds to use #749 and #756
+- PR788 Fix more warnings
+- PR794 Remove MoreLINQ
+- PR797 Fix all warnings
+- PR798 Cleanup around the api endpoints
+- PR800 Add CentOS and update rpm spec for the cachedir option
+- PR802 Fix build error
+- PR804 Handle new option parser properly
+- PR805 Add weblate translation status to README
+- PR807 Fix restart script in OS packages
+- PR810 Fix loading of rating files
+- PR812 Fix up the explicit docs links in the README
+- PR819 Some small changes in Device.cs and DidlBuilder.cs
+- PR822 Complete rename ImageSize -> ImageDimensions
+- PR824 Improved Docker pkgbuild
+- PR831 Move some arrays to generics
+- PR833 Add await to GetCountries in LocalizationService
+- PR834 Add donation badge and reorganize badges
+- PR838 Quick style fix
+- PR840 Fix more warnings
+- PR841 Fix OC badge to all and add forum badge
+- PR842 Use VAAPI-enabled ffmpeg
+- PR852 Use SQLitePCL.pretty.netstandard on NuGet
+- PR853 Fix poor handling of cache directories
+- PR8 rebase to latest master
+- jellyfin-web:
+- PR24 Add Master codeowners
+- PR34 Revert "Add Master codeowners"
+- PR49 Release 10.1.0
+- PR51 remove more code for sync and camera roll
+- PR56 Use English for fallback translations and clean up language files
+- PR58 Css slider fixes
+- PR62 remove BOM markers
+- PR65 Fix profile image not being shown on profile page
+- PR73 Dev sync
+- PR74 Add download menu option to media items
+- PR75 User profile fixes
+- PR76 Fix syntax error caused by deminification
+- PR79 Remove unused Connect related from the frontend
+- PR80 Remove games
+- PR92 Added frontend support for a password field on setup
+- PR94 Update british strings
+- PR95 add display language option back
+- PR112 Removed seasonal theme support
+- PR116 Consolidate all strings into a single file per language
+- PR118 Enable and fix PiP for Safari
+- PR119 Make the toggle track visible on all themes
+- PR121 Fix syntax error in site.js
+- PR127 Change sharedcomponents module to core
* Sun Jan 20 2019 Jellyfin Packaging Team <packaging@jellyfin.org>
- jellyfin:
- PR335 Build scripts and build system consolidation.
diff --git a/deployment/win-x64/package.sh b/deployment/win-x64/package.sh
index befddb2e7..d21e3b532 100755
--- a/deployment/win-x64/package.sh
+++ b/deployment/win-x64/package.sh
@@ -1,4 +1,5 @@
#!/usr/bin/env bash
+set -x
package_win64() (
local NSSM_VERSION="nssm-2.24-101-g897c7ad"
local NSSM_URL="https://nssm.cc/ci/${NSSM_VERSION}.zip"
@@ -15,7 +16,7 @@ package_win64() (
wget ${NSSM_URL} -O ${TEMP_DIR}/nssm.zip
wget ${FFMPEG_URL} -O ${TEMP_DIR}/ffmpeg.zip
unzip ${TEMP_DIR}/nssm.zip -d $TEMP_DIR
- cp ${TEMP_DIR}/${NSSM_VERSION}}/win64/nssm.exe ${OUTPUT_DIR}/nssm.exe
+ cp ${TEMP_DIR}/${NSSM_VERSION}/win64/nssm.exe ${OUTPUT_DIR}/nssm.exe
unzip ${TEMP_DIR}/ffmpeg.zip -d $TEMP_DIR
cp ${TEMP_DIR}/${FFMPEG_VERSION}/bin/ffmpeg.exe ${OUTPUT_DIR}/ffmpeg.exe
cp ${TEMP_DIR}/${FFMPEG_VERSION}/bin/ffprobe.exe ${OUTPUT_DIR}/ffprobe.exe