aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.dockerignore2
-rw-r--r--CONTRIBUTORS.md3
-rw-r--r--Dockerfile.arm10
-rw-r--r--Dockerfile.arm6433
-rw-r--r--Emby.Server.Implementations/Diagnostics/CommonProcess.cs18
-rw-r--r--MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs6
-rw-r--r--MediaBrowser.Api/Playback/StreamState.cs2
-rw-r--r--MediaBrowser.Api/Subtitles/SubtitleService.cs9
-rw-r--r--MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs4
m---------MediaBrowser.WebDashboard/jellyfin-web0
-rw-r--r--SharedVersion.cs4
-rwxr-xr-xbuild23
-rwxr-xr-xbump_version22
-rw-r--r--deployment/debian-package-x64/pkg-src/changelog83
-rw-r--r--deployment/fedora-package-x64/pkg-src/jellyfin.spec83
15 files changed, 263 insertions, 39 deletions
diff --git a/.dockerignore b/.dockerignore
index 54b0aa3a7..45e543525 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,6 +1,8 @@
.git
.dockerignore
Dockerfile
+Dockerfile.arm
+Dockerfile.arm64
CONTRIBUTORS.md
README.md
deployment/*/dist
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 17df49f30..8ae6c81a8 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -14,7 +14,8 @@
- [grafixeyehero](https://github.com/grafixeyehero)
- [cvium](https://github.com/cvium)
- [wtayl0r](https://github.com/wtayl0r)
-
+ - [TtheCreator](https://github.com/Tthecreator)
+
# Emby Contributors
- [LukePulverenti](https://github.com/LukePulverenti)
diff --git a/Dockerfile.arm b/Dockerfile.arm
index a0b3d0e1d..cf062f38a 100644
--- a/Dockerfile.arm
+++ b/Dockerfile.arm
@@ -1,18 +1,20 @@
ARG DOTNET_VERSION=3.0
-FROM microsoft/dotnet:${DOTNET_VERSION}-sdk as builder
+
+FROM microsoft/dotnet:${DOTNET_VERSION}-sdk-stretch-arm32v7 as builder
WORKDIR /repo
COPY . .
#TODO Remove or update the sed line when we update dotnet version.
RUN export DOTNET_CLI_TELEMETRY_OPTOUT=1 \
- && find . -type f -exec sed -i 's/netcoreapp2.1/netcoreapp3.0/g' {} \; \
- && dotnet clean \
+ && dotnet clean -maxcpucount:1 \
&& dotnet publish \
+ -maxcpucount:1 \
--configuration release \
--output /jellyfin \
Jellyfin.Server
-FROM microsoft/dotnet:${DOTNET_VERSION}-runtime
+
+FROM microsoft/dotnet:${DOTNET_VERSION}-runtime-stretch-slim-arm32v7
COPY --from=builder /jellyfin /jellyfin
EXPOSE 8096
RUN apt-get update \
diff --git a/Dockerfile.arm64 b/Dockerfile.arm64
new file mode 100644
index 000000000..6d7aa2118
--- /dev/null
+++ b/Dockerfile.arm64
@@ -0,0 +1,33 @@
+# Requires binfm_misc registration for aarch64
+# https://github.com/multiarch/qemu-user-static#binfmt_misc-register
+ARG DOTNET_VERSION=3.0
+
+
+FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu
+FROM alpine as qemu_extract
+COPY --from=qemu /usr/bin qemu_user_static.tgz
+RUN tar -xzvf qemu_user_static.tgz
+
+
+FROM microsoft/dotnet:${DOTNET_VERSION}-sdk-stretch-arm64v8 as builder
+COPY --from=qemu_extract qemu-* /usr/bin
+WORKDIR /repo
+COPY . .
+#TODO Remove or update the sed line when we update dotnet version.
+RUN export DOTNET_CLI_TELEMETRY_OPTOUT=1 \
+ && find . -type f -exec sed -i 's/netcoreapp2.1/netcoreapp3.0/g' {} \; \
+ && dotnet clean \
+ && dotnet publish \
+ --configuration release \
+ --output /jellyfin \
+ Jellyfin.Server
+
+
+FROM microsoft/dotnet:${DOTNET_VERSION}-runtime-stretch-slim-arm64v8
+COPY --from=qemu_extract qemu-* /usr/bin
+COPY --from=builder /jellyfin /jellyfin
+EXPOSE 8096
+RUN apt-get update \
+ && apt-get install -y ffmpeg
+VOLUME /config /media
+ENTRYPOINT dotnet /jellyfin/jellyfin.dll -programdata /config
diff --git a/Emby.Server.Implementations/Diagnostics/CommonProcess.cs b/Emby.Server.Implementations/Diagnostics/CommonProcess.cs
index d8a798c46..55539eafc 100644
--- a/Emby.Server.Implementations/Diagnostics/CommonProcess.cs
+++ b/Emby.Server.Implementations/Diagnostics/CommonProcess.cs
@@ -105,26 +105,22 @@ namespace Emby.Server.Implementations.Diagnostics
{
return _process.WaitForExit(timeMs);
}
-
+
public Task<bool> WaitForExitAsync(int timeMs)
{
- //if (_process.WaitForExit(100))
- //{
- // return Task.FromResult(true);
- //}
+ //Note: For this function to work correctly, the option EnableRisingEvents needs to be set to true.
+
+ if (HasExited)
+ {
+ return Task.FromResult(true);
+ }
- //timeMs -= 100;
timeMs = Math.Max(0, timeMs);
var tcs = new TaskCompletionSource<bool>();
var cancellationToken = new CancellationTokenSource(timeMs).Token;
- if (HasExited)
- {
- return Task.FromResult(true);
- }
-
_process.Exited += (sender, args) => tcs.TrySetResult(true);
cancellationToken.Register(() => tcs.TrySetResult(HasExited));
diff --git a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
index a488576da..b3099e17e 100644
--- a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
@@ -936,10 +936,10 @@ namespace MediaBrowser.Api.Playback.Hls
var timeDeltaParam = string.Empty;
- if (isEncoding && state.TargetFramerate > 0)
+ if (isEncoding && startNumber > 0)
{
- float startTime = 1 / (state.TargetFramerate.Value * 2);
- timeDeltaParam = string.Format("-segment_time_delta {0}", Math.Round(startTime, 3));
+ var startTime = state.SegmentLength * startNumber;
+ timeDeltaParam = string.Format("-segment_time_delta -{0}", startTime);
}
var segmentFormat = GetSegmentFileExtension(state.Request).TrimStart('.');
diff --git a/MediaBrowser.Api/Playback/StreamState.cs b/MediaBrowser.Api/Playback/StreamState.cs
index 96dc4ab4c..8d4b0cb3d 100644
--- a/MediaBrowser.Api/Playback/StreamState.cs
+++ b/MediaBrowser.Api/Playback/StreamState.cs
@@ -167,7 +167,7 @@ namespace MediaBrowser.Api.Playback
public DeviceProfile DeviceProfile { get; set; }
public TranscodingJob TranscodingJob;
- public void ReportTranscodingProgress(TimeSpan? transcodingPosition, float? framerate, double? percentComplete, long? bytesTranscoded, int? bitRate)
+ public override void ReportTranscodingProgress(TimeSpan? transcodingPosition, float framerate, double? percentComplete, long bytesTranscoded, int? bitRate)
{
ApiEntryPoint.Instance.ReportTranscodingProgress(TranscodingJob, this, transcodingPosition, framerate, percentComplete, bytesTranscoded, bitRate);
}
diff --git a/MediaBrowser.Api/Subtitles/SubtitleService.cs b/MediaBrowser.Api/Subtitles/SubtitleService.cs
index 0552fbbd8..08aa540a5 100644
--- a/MediaBrowser.Api/Subtitles/SubtitleService.cs
+++ b/MediaBrowser.Api/Subtitles/SubtitleService.cs
@@ -156,14 +156,19 @@ namespace MediaBrowser.Api.Subtitles
throw new ArgumentException("HLS Subtitles are not supported for this media.");
}
+ var segmentLengthTicks = TimeSpan.FromSeconds(request.SegmentLength).Ticks;
+ if (segmentLengthTicks <= 0)
+ {
+ throw new ArgumentException("segmentLength was not given, or it was given incorrectly. (It should be bigger than 0)");
+ }
+
builder.AppendLine("#EXTM3U");
builder.AppendLine("#EXT-X-TARGETDURATION:" + request.SegmentLength.ToString(CultureInfo.InvariantCulture));
builder.AppendLine("#EXT-X-VERSION:3");
builder.AppendLine("#EXT-X-MEDIA-SEQUENCE:0");
builder.AppendLine("#EXT-X-PLAYLIST-TYPE:VOD");
- long positionTicks = 0;
- var segmentLengthTicks = TimeSpan.FromSeconds(request.SegmentLength).Ticks;
+ long positionTicks = 0;
var accessToken = _authContext.GetAuthorizationInfo(Request).Token;
diff --git a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs
index 59a624433..2f9eb98ea 100644
--- a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs
+++ b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs
@@ -437,7 +437,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
UseShellExecute = false,
FileName = _mediaEncoder.EncoderPath,
Arguments = string.Format("{0} -i \"{1}\" -c:s srt \"{2}\"", encodingParam, inputPath, outputPath),
-
+ EnableRaisingEvents = true,
IsHidden = true,
ErrorDialog = false
});
@@ -574,7 +574,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
{
CreateNoWindow = true,
UseShellExecute = false,
-
+ EnableRaisingEvents = true,
FileName = _mediaEncoder.EncoderPath,
Arguments = processArgs,
IsHidden = true,
diff --git a/MediaBrowser.WebDashboard/jellyfin-web b/MediaBrowser.WebDashboard/jellyfin-web
-Subproject 4678528d0028685b45c7c6daa2e24b72a363535
+Subproject 094c1deae91c51b8bbf8ebb16a55758af110f04
diff --git a/SharedVersion.cs b/SharedVersion.cs
index a29381f63..70c309674 100644
--- a/SharedVersion.cs
+++ b/SharedVersion.cs
@@ -1,4 +1,4 @@
using System.Reflection;
-[assembly: AssemblyVersion("10.0.2")]
-[assembly: AssemblyFileVersion("10.0.2")]
+[assembly: AssemblyVersion("10.1.0")]
+[assembly: AssemblyFileVersion("10.1.0")]
diff --git a/build b/build
index c2daddd84..7d49db72a 100755
--- a/build
+++ b/build
@@ -10,7 +10,7 @@ declare -a actions=( 'build' 'package' 'sign' 'publish' )
# The list of possible platforms, based on directories under 'deployment/'
declare -a platforms=( $(
- find deployment/ -maxdepth 1 -mindepth 1 -type d | sed 's/deployment\///' | sort
+ find deployment/ -maxdepth 1 -mindepth 1 -type d -exec basename {} \; | sort
) )
# The list of standard dependencies required by all build scripts; individual
@@ -171,16 +171,27 @@ if ! git diff-index --quiet HEAD --; then
fi
git fetch --all
-git checkout origin/${web_branch} || {
- echo "ERROR: 'jellyfin-web' branch ${web_branch} is invalid."
- exit 1
-}
+# If this is an official branch name, fetch it from origin
+official_branches_regex="^master$|^dev$|^release-.*$|^hotfix-.*$"
+if [[ ${web_branch} =~ ${official_branches_regex} ]]; then
+ git checkout origin/${web_branch} || {
+ echo "ERROR: 'jellyfin-web' branch 'origin/${web_branch}' is invalid."
+ exit 1
+ }
+# Otherwise, just check out the local branch (for testing, etc.)
+else
+ git checkout ${web_branch} || {
+ echo "ERROR: 'jellyfin-web' branch '${web_branch}' is invalid."
+ exit 1
+ }
+fi
popd
# Execute each platform and action in order, if said action is enabled
pushd deployment/
for target_platform in ${platform[@]}; do
echo -e "> Processing platform ${target_platform}"
+ date_start=$( date +%s )
pushd ${target_platform}
for target_action in ${action[@]}; do
echo -e ">> Processing action ${target_action}"
@@ -199,6 +210,8 @@ for target_platform in ${platform[@]}; do
./clean.sh
fi
fi
+ date_end=$( date +%s )
+ echo -e "> Completed platform ${target_platform} in $( expr ${date_end} - ${date_start} ) seconds."
popd
done
popd
diff --git a/bump_version b/bump_version
index 06a690e19..c3f1a78d5 100755
--- a/bump_version
+++ b/bump_version
@@ -47,10 +47,20 @@ if ! git diff-index --quiet HEAD --; then
fi
git fetch --all
-git checkout origin/${web_branch} || {
- echo "ERROR: 'jellyfin-web' branch ${web_branch} is invalid."
- exit 1
-}
+# If this is an official branch name, fetch it from origin
+official_branches_regex="^master$|^dev$|^release-.*$|^hotfix-.*$"
+if [[ ${web_branch} =~ ${official_branches_regex} ]]; then
+ git checkout origin/${web_branch} || {
+ echo "ERROR: 'jellyfin-web' branch 'origin/${web_branch}' is invalid."
+ exit 1
+ }
+# Otherwise, just check out the local branch (for testing, etc.)
+else
+ git checkout ${web_branch} || {
+ echo "ERROR: 'jellyfin-web' branch '${web_branch}' is invalid."
+ exit 1
+ }
+fi
popd
new_version="$1"
@@ -94,7 +104,7 @@ for repo in ./ MediaBrowser.WebDashboard/jellyfin-web/; do
pushd ${repo}
# Find the last release commit, so we know what's happened since
- last_master_branch="master-${old_version}" # TODO: Set to `release-` for next release, so we can properly parse both repos with the new branch standard
+ last_master_branch="release-${old_version}"
last_master_merge_commit="$(
git log --merges --pretty=oneline \
| grep -F "${last_master_branch}" \
@@ -150,7 +160,7 @@ echo -e "### DEBIAN PACKAGE CHANGELOG: Verify this file looks correct or edit ac
jellyfin (${new_version}-1) unstable; urgency=medium
${changelog_string_deb}
--- Jellyfin Packaging Team <packaging@jellyfin.org> $( date --rfc-2822 )
+ -- Jellyfin Packaging Team <packaging@jellyfin.org> $( date --rfc-2822 )
" >> ${debian_changelog_temp}
cat ${debian_changelog_file} >> ${debian_changelog_temp}
# Edit the file to verify
diff --git a/deployment/debian-package-x64/pkg-src/changelog b/deployment/debian-package-x64/pkg-src/changelog
index 825412d89..7f3f12b00 100644
--- a/deployment/debian-package-x64/pkg-src/changelog
+++ b/deployment/debian-package-x64/pkg-src/changelog
@@ -1,3 +1,86 @@
+jellyfin (10.1.0-1) unstable; urgency=medium
+
+ * jellyfin:
+ * PR335 Build scripts and build system consolidation.
+ * PR424 add jellyfin-web as submodule
+ * PR455 Cleanup some small things
+ * PR458 Clean up several minor issues and add TODOs
+ * PR506 Removing tabs and trailing whitespace
+ * PR508 Update internal versioning and user agents.
+ * PR516 Remove useless properties from IEnvironmentInfo
+ * PR520 Fix potential bug where aspect ratio would be incorrectly calculated
+ * PR534 Add linux-arm and linux-arm64 native NuGet dependency.
+ * PR540 Update Emby API keys to our own
+ * PR541 Change ItemId to Guid in ProviderManager
+ * PR556 Fix "Password Reset by PIN" page
+ * PR562 Fix error with uppercase photo extension and fix typo in a log line
+ * PR563 Update dev from master
+ * PR566 Avoid printing stacktrace when bind to port 1900 fails
+ * PR567 Shutdown gracefully when recieving a termination signal
+ * PR571 Add more NuGet metadata properties
+ * PR575 Reformat all C# server code to conform with code standards
+ * PR576 Add code analysers for debug builds
+ * PR580 Fix Docker build
+ * PR582 Replace custom image parser with Skia
+ * PR587 Add nuget info to Emby.Naming
+ * PR589 Ensure config and log folders exist
+ * PR596 Fix indentation for xml files
+ * PR598 Remove MediaBrowser.Text for license violations and hackiness
+ * PR606 Slim down docker image
+ * PR613 Update MediaEncoding
+ * PR616 Add Swagger documentation
+ * PR619 Really slim down Docker container
+ * PR621 Minor improvements to library scan code
+ * PR622 Add unified build script and bump_version script
+ * PR623 Replaced injections of ILogger with ILoggerFactory
+ * PR625 Update taglib-sharp
+ * PR626 Fix extra type name in parameter, add out keyword
+ * PR627 Use string for ApplicationVersion
+ * PR628 Update Product Name (User-Agent)
+ * PR629 Fix subtitle converter misinterpreting 0 valued endTimeTicks
+ * PR631 Cleanup ImageProcessor and SkiaEncoder
+ * PR634 Replace our TVDB key with @drakus72's which is V1
+ * PR636 Allow subtitle extraction and conversion in direct streaming
+ * PR637 Remove unused font
+ * PR638 Removed XmlTv testfiles and nuget install
+ * PR646: Fix infinite loop bug on subtitle.m3u8 request
+ * PR655: Support trying local branches in submodule
+ * PR661: Fix NullRef from progress report
+ * PR666: Add cross-platform build for arm64
+ * jellyfin-web:
+ * PR1: Change webcomponents to non-minified version
+ * PR4: Fix user profile regression
+ * PR6: Make icon into proper ico and large PNG
+ * PR7: Fix firefox failing to set password for users with no password set
+ * PR8: Remove premiere stuff and fix crashes caused by earlier removals
+ * PR12: Fix return from PIN reset to index.html
+ * PR13: Send android clients to select server before login
+ * PR14: Reimplement page to add server
+ * PR16: Fix spinning circle at the end of config wizard
+ * PR17: Fix directorybrower not resetting scroll
+ * PR19: Set union merge for CONTRIBUTORS.md
+ * PR20: Show album thumbnail and artist image in page itemdetail
+ * PR26: Make the card titles clickable
+ * PR27: Stop pagination and adding a library from being able to trigger multiple times
+ * PR28: Add transparent nav bar to BlueRadiance theme CSS
+ * PR29: Clean up imageuploader
+ * PR30: Remove iap and simplify registrationservices
+ * PR36: Open videos in fullscreen on android devices
+ * PR37: Remove broken features from web interface
+ * PR38: Fix inconsistent UI coloring around settings drawer
+ * PR39: Remove back button from dashboard and metadata manager
+ * PR42: Fix Home backdrop not loading
+ * PR43: Filter videos by audio stream language
+ * PR44: Remove filter from library collection type options
+ * PR45: Fix data-backbutton logic
+ * PR46: Minor changes to navbar elements
+ * PR48: Remove Sync code
+ * PR52: Fix progress color
+ * PR53: Fix user tabs color
+ * PR54: Add back button to server dashboard
+
+ -- Jellyfin Packaging Team <packaging@jellyfin.org> Sun, 20 Jan 2019 23:19:46 -0500
+
jellyfin (10.0.2-1) unstable; urgency=medium
* Hotfix release
diff --git a/deployment/fedora-package-x64/pkg-src/jellyfin.spec b/deployment/fedora-package-x64/pkg-src/jellyfin.spec
index e304fe442..6a4a5870b 100644
--- a/deployment/fedora-package-x64/pkg-src/jellyfin.spec
+++ b/deployment/fedora-package-x64/pkg-src/jellyfin.spec
@@ -1,13 +1,13 @@
%global debug_package %{nil}
# jellyfin tag to package
-%global gittag v10.0.2
+%global gittag v10.1.0
# Taglib-sharp commit of the submodule since github archive doesn't include submodules
%global taglib_commit ee5ab21742b71fd1b87ee24895582327e9e04776
%global taglib_shortcommit %(c=%{taglib_commit}; echo ${c:0:7})
AutoReq: no
Name: jellyfin
-Version: 10.0.2
+Version: 10.1.0
Release: 1%{?dist}
Summary: The Free Software Media Browser
License: GPLv2
@@ -135,5 +135,84 @@ fi
%systemd_postun_with_restart jellyfin.service
%changelog
+* Sun Jan 20 2019 Jellyfin Packaging Team <packaging@jellyfin.org>
+- jellyfin:
+- PR335 Build scripts and build system consolidation.
+- PR424 add jellyfin-web as submodule
+- PR455 Cleanup some small things
+- PR458 Clean up several minor issues and add TODOs
+- PR506 Removing tabs and trailing whitespace
+- PR508 Update internal versioning and user agents.
+- PR516 Remove useless properties from IEnvironmentInfo
+- PR520 Fix potential bug where aspect ratio would be incorrectly calculated
+- PR534 Add linux-arm and linux-arm64 native NuGet dependency.
+- PR540 Update Emby API keys to our own
+- PR541 Change ItemId to Guid in ProviderManager
+- PR556 Fix "Password Reset by PIN" page
+- PR562 Fix error with uppercase photo extension and fix typo in a log line
+- PR563 Update dev from master
+- PR566 Avoid printing stacktrace when bind to port 1900 fails
+- PR567 Shutdown gracefully when recieving a termination signal
+- PR571 Add more NuGet metadata properties
+- PR575 Reformat all C# server code to conform with code standards
+- PR576 Add code analysers for debug builds
+- PR580 Fix Docker build
+- PR582 Replace custom image parser with Skia
+- PR587 Add nuget info to Emby.Naming
+- PR589 Ensure config and log folders exist
+- PR596 Fix indentation for xml files
+- PR598 Remove MediaBrowser.Text for license violations and hackiness
+- PR606 Slim down docker image
+- PR613 Update MediaEncoding
+- PR616 Add Swagger documentation
+- PR619 Really slim down Docker container
+- PR621 Minor improvements to library scan code
+- PR622 Add unified build script and bump_version script
+- PR623 Replaced injections of ILogger with ILoggerFactory
+- PR625 Update taglib-sharp
+- PR626 Fix extra type name in parameter, add out keyword
+- PR627 Use string for ApplicationVersion
+- PR628 Update Product Name (User-Agent)
+- PR629 Fix subtitle converter misinterpreting 0 valued endTimeTicks
+- PR631 Cleanup ImageProcessor and SkiaEncoder
+- PR634 Replace our TVDB key with @drakus72's which is V1
+- PR636 Allow subtitle extraction and conversion in direct streaming
+- PR637 Remove unused font
+- PR638 Removed XmlTv testfiles and nuget install
+- PR646: Fix infinite loop bug on subtitle.m3u8 request
+- PR655: Support trying local branches in submodule
+- PR661: Fix NullRef from progress report
+- PR666: Add cross-platform build for arm64
+- jellyfin-web:
+- PR1: Change webcomponents to non-minified version
+- PR4: Fix user profile regression
+- PR6: Make icon into proper ico and large PNG
+- PR7: Fix firefox failing to set password for users with no password set
+- PR8: Remove premiere stuff and fix crashes caused by earlier removals
+- PR12: Fix return from PIN reset to index.html
+- PR13: Send android clients to select server before login
+- PR14: Reimplement page to add server
+- PR16: Fix spinning circle at the end of config wizard
+- PR17: Fix directorybrower not resetting scroll
+- PR19: Set union merge for CONTRIBUTORS.md
+- PR20: Show album thumbnail and artist image in page itemdetail
+- PR26: Make the card titles clickable
+- PR27: Stop pagination and adding a library from being able to trigger multiple times
+- PR28: Add transparent nav bar to BlueRadiance theme CSS
+- PR29: Clean up imageuploader
+- PR30: Remove iap and simplify registrationservices
+- PR36: Open videos in fullscreen on android devices
+- PR37: Remove broken features from web interface
+- PR38: Fix inconsistent UI coloring around settings drawer
+- PR39: Remove back button from dashboard and metadata manager
+- PR42: Fix Home backdrop not loading
+- PR43: Filter videos by audio stream language
+- PR44: Remove filter from library collection type options
+- PR45: Fix data-backbutton logic
+- PR46: Minor changes to navbar elements
+- PR48: Remove Sync code
+- PR52: Fix progress color
+- PR53: Fix user tabs color
+- PR54: Add back button to server dashboard
* Fri Jan 11 2019 Thomas Büttner <thomas@vergesslicher.tech> - 10.0.2-1
- TODO Changelog for 10.0.2