Merge pull request #248 from jellyfin/develop

Master 3.5.2-4
pull/1154/head
Andrew Rabert 6 years ago committed by GitHub
commit e163fea9d9

@ -9,10 +9,10 @@ RUN export DOTNET_CLI_TELEMETRY_OPTOUT=1 \
FROM microsoft/dotnet:${DOTNET_VERSION}-runtime FROM microsoft/dotnet:${DOTNET_VERSION}-runtime
COPY --from=builder /jellyfin /jellyfin COPY --from=builder /jellyfin /jellyfin
RUN apt update \
&& apt install -y ffmpeg gosu
EXPOSE 8096 EXPOSE 8096
RUN apt update \
&& apt install -y ffmpeg
VOLUME /config /media VOLUME /config /media
ENV PUID=1000 PGID=1000 ENTRYPOINT if [ -n "$PUID$PGUID" ]; \
ENTRYPOINT chown $PUID:$PGID /config /media \ then echo "PUID/PGID are deprecated. Use Docker user param." >&2; exit 1; \
&& gosu $PUID:$PGID dotnet /jellyfin/jellyfin.dll -programdata /config else dotnet /jellyfin/jellyfin.dll -programdata /config; fi

@ -0,0 +1,17 @@
ARG DOTNET_VERSION=3.0
FROM microsoft/dotnet:${DOTNET_VERSION}-sdk as builder
WORKDIR /repo
COPY . .
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
FROM microsoft/dotnet:${DOTNET_VERSION}-runtime
COPY --from=builder /jellyfin /jellyfin
EXPOSE 8096
RUN apt update \
&& apt install -y ffmpeg
VOLUME /config /media
ENTRYPOINT dotnet /jellyfin/jellyfin.dll -programdata /config

@ -35,7 +35,6 @@ namespace DvdLib.Ifo
private ushort _goupProgramNumber; private ushort _goupProgramNumber;
public readonly ProgramChain Goup; // ?? maybe Group public readonly ProgramChain Goup; // ?? maybe Group
private byte _playbackMode;
public ProgramPlaybackMode PlaybackMode { get; private set; } public ProgramPlaybackMode PlaybackMode { get; private set; }
public uint ProgramCount { get; private set; } public uint ProgramCount { get; private set; }

@ -144,24 +144,17 @@ namespace IsoMounter
return Task.FromResult(false); return Task.FromResult(false);
} }
public async Task<IIsoMount> Mount(string isoPath, CancellationToken cancellationToken) public Task<IIsoMount> Mount(string isoPath, CancellationToken cancellationToken)
{ {
if (MountISO(isoPath, out LinuxMount mountedISO)) {
LinuxMount mountedISO; return Task.FromResult<IIsoMount>(mountedISO);
}
if (MountISO(isoPath, out mountedISO)) { else {
return mountedISO;
}else{
throw new IOException(String.Format( throw new IOException(String.Format(
"An error occurred trying to mount image [$0].", "An error occurred trying to mount image [$0].",
isoPath isoPath
)); ));
} }
} }
#endregion #endregion

@ -1,8 +1,5 @@
using System; using System;
using MediaBrowser.Model.Diagnostics;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.System;
namespace IsoMounter namespace IsoMounter
{ {

@ -109,7 +109,7 @@ namespace Mono.Nat.Pmp
if (attempt == 0) if (attempt == 0)
{ {
Task.Run(() => CreatePortMapListen(udpClient, mapping, cancellationTokenSource.Token)); await Task.Run(() => CreatePortMapListen(udpClient, mapping, cancellationTokenSource.Token));
} }
attempt++; attempt++;

@ -1,76 +1,53 @@
Jellyfin <h1 align="center">Jellyfin</h1>
============ <h3 align="center">The Free Software Media System</h3>
Jellyfin is a personal media server. The Jellyfin project was started as a result of Emby's decision to take their code closed-source, as well as various philosophical differences with the core developers. Jellyfin seeks to be the free software alternative to Emby and Plex to provide media management and streaming from a dedicated server to end-user devices. <p align="center">
Jellyfin is a free software media system that puts you in control of managing and streaming your media.
</p>
Jellyfin is descended from Emby 3.5.2, ported to the .NET Core framework, and aims to contain build facilities for every platform. -----
For further details, please see [our wiki](https://github.com/jellyfin/jellyfin/wiki). To receive the latest project updates feel free to join [our public chat on Matrix/Riot](https://matrix.to/#/#jellyfin:matrix.org) and to subscribe to [our subreddit](https://www.reddit.com/r/jellyfin/).
## Feature Requests
While our first priority is a stable build, we will eventually add features that were missing in Emby or were not well implemented (technically or philosophically).
[Feature Requests](http://feathub.com/jellyfin/jellyfin)
## Contributing to Jellyfin
If you're interested in contributing, please see [our wiki for guidelines](https://github.com/jellyfin/jellyfin/wiki/Contributing-to-Jellyfin).
## Prebuilt Jellyfin packages
Prebuild packages are available for Debian/Ubuntu and Arch, and via Docker Hub. <p align="center">
<strong>Want to get started?</strong> Choose from <a href="https://github.com/jellyfin/jellyfin/wiki/Prebuilt-Packages">Prebuilt Packages</a>, or <a href="https://github.com/jellyfin/jellyfin/wiki/Building-from-Source">Build from Source</a>.
</p>
<p align="center">
<strong>Want to contribute?</strong> Check out <a href="https://github.com/jellyfin/jellyfin/wiki/Contributing-to-Jellyfin">our wiki for guidelines</a>.
</p>
### Docker ---
The Jellyfin Docker image is available on Docker Hub at https://hub.docker.com/r/jellyfin/jellyfin/ <p align="center">
<a href="https://github.com/jellyfin/jellyfin"><img alt="GPL 2.0 License" src="https://img.shields.io/github/license/jellyfin/jellyfin.svg"></a>
<a href="https://cloud.drone.io/jellyfin/jellyfin"><img alt="Build Status" src="https://cloud.drone.io/api/badges/jellyfin/jellyfin/status.svg"></a>
<a href="https://hub.docker.com/r/jellyfin/jellyfin"><img alt="Docker Pull Count" src="https://img.shields.io/docker/pulls/jellyfin/jellyfin.svg"></a>
<a href="https://matrix.to/#/#jellyfin:matrix.org"><img alt="Chat on Matrix" src="https://img.shields.io/matrix/!JXmoIxArWgVvbKKqex/matrix.org.svg?logo=matrix"></a>
<a href="https://www.reddit.com/r/jellyfin/"><img alt="Join our Subreddit" src="https://img.shields.io/badge/reddit-r%2Fjellyfin-%23FF5700.svg"></a>
</p>
### Arch For further details, please see [our wiki](https://github.com/jellyfin/jellyfin/wiki).
The Jellyfin package is in the AUR at https://aur.archlinux.org/packages/jellyfin-git/ To receive the latest updates, please visit [our public chat on Matrix/Riot](https://matrix.to/#/#jellyfin:matrix.org), our [announce chat](https://matrix.to/#/#jellyfin-announce:matrix.org) for release info, and follow us on [Social Media](https://github.com/jellyfin/jellyfin/wiki/Social-Media).
### Unraid ## About
An Unraid Docker template is available. See [this documentation page](https://github.com/jellyfin/jellyfin/blob/master/unRaid/docker-templates/README.md) for details on installing it. The Jellyfin project was started as a result of Emby's decision to take their code closed-source, as well as various philosophical differences with the core developers. Jellyfin seeks to be the free software alternative to Emby and Plex to provide media management and streaming from a dedicated server to end-user devices.
### Debian/Ubuntu Jellyfin is descended from Emby 3.5.2, ported to the .NET Core framework, and aims to contain build facilities for every platform.
A package repository is available at https://repo.jellyfin.org.
NOTE: Ubuntu users may find that the `ffmpeg` dependency package is not present in their release or is simply a rebranded `libav` which is not directly compatible. Please [obtain the ffmpeg package directly from the FFMPEG site](https://ffmpeg.org/download.html#build-linux) to use Jellyfin on Ubuntu.
For instructions on using the repository, please see [our wiki](https://github.com/jellyfin/jellyfin/wiki/Jellyfin-Debian-repository).
## Building Jellyfin packages from source
Jellyfin seeks to integrate build facilities for any desired packaging format. Instructions for the various formats can be found below.
NOTE: When building from source, only cloning the full Git repository is supported, rather than using a `.zip`/`.tar` archive, in order to support submodules.
### Debian/Ubuntu
Debian build facilities are integrated into the repo at `debian/`. ## Issues and Feature Requests
0. Install the `dotnet-sdk-2.2` package via [Microsoft's repositories](https://dotnet.microsoft.com/download/dotnet-core/2.2).
0. Run `dpkg-buildpackage -us -uc`.
0. Install the resulting `jellyfin_*.deb` file on your system.
A huge thanks to Carlos Hernandez who created the original Debian build configuration for Emby 3.1.1.
### Windows (64 bit) <p align="center">
<strong>New idea or improvement?</strong>
<em>Open a <a href="https://github.com/jellyfin/jellyfin/wiki/Feature-Requests">Feature Request</a>.</em>
</p>
<p align="center">
<Strong>Something not working right?</strong>
<em>Open an <a href="https://github.com/jellyfin/jellyfin/wiki/Issue-Guidelines">Issue</a>.</em>
</p>
A pre-built windows installer will be available soon. Until then it isn't too hard to install Jellyfin from Source.
0. Install the dotnet core SDK 2.2 from [Microsoft's Webpage](https://dotnet.microsoft.com/download/dotnet-core/2.2) and [install Git for Windows](https://gitforwindows.org/) ## Contributing to Jellyfin
0. Clone Jellyfin into a directory of your choice.
```
git clone https://github.com/jellyfin/jellyfin.git C:\Jellyfin
```
0. From the Jellyfin directory you can use our Jellyfin build script. Call `Build-Jellyfin.ps1 -InstallFFMPEG` from inside the directory in a powershell window. Make sure you've set your executionpolicy to unrestricted.
Additional flags: If you're interested in contributing, please see [our wiki for guidelines](https://github.com/jellyfin/jellyfin/wiki/Contributing-to-Jellyfin).
* If you want to optimize for your environment you can use the `-WindowsVersion` and `-Architecture` flags to do so; the default is generic Windows x64.
* The `-InstallLocation` flag lets you select where the compiled binaries go; the default is `$Env:AppData\JellyFin-Server\` .
* The `-InstallFFMPEG` flag will automatically pull the stable ffmpeg binaries appropriate to your architecture (x86/x64 only for now) from [Zeranoe](https://ffmpeg.zeranoe.com/builds/) and place them in your Jellyfin directory.
0. (Optional) Use [NSSM](https://nssm.cc/) to configure JellyFin to run as a service
0. Jellyfin is now available in the default directory (or the directory you chose). Assuming you kept the default directory, to start it from a Powershell window, run, `&"$env:APPDATA\Jellyfin-Server\EmbyServer.exe"`. To start it from CMD, run, `%APPDATA%\Jellyfin-Server\EmbyServer.exe`

@ -17,7 +17,6 @@ namespace Rssdp
#region Fields #region Fields
private SsdpRootDevice _Device;
private DateTimeOffset _AsAt; private DateTimeOffset _AsAt;
#endregion #endregion
@ -55,7 +54,6 @@ namespace Rssdp
if (_AsAt != value) if (_AsAt != value)
{ {
_AsAt = value; _AsAt = value;
_Device = null;
} }
} }
} }

@ -124,7 +124,7 @@ namespace Rssdp.Infrastructure
{ {
await SearchAsync(CancellationToken.None).ConfigureAwait(false); await SearchAsync(CancellationToken.None).ConfigureAwait(false);
} }
catch (Exception ex) catch (Exception)
{ {
} }

@ -310,9 +310,14 @@ namespace Rssdp.Infrastructure
try try
{ {
await _CommsServer.SendMessage(System.Text.Encoding.UTF8.GetBytes(message), endPoint, receivedOnlocalIpAddress, cancellationToken).ConfigureAwait(false); await _CommsServer.SendMessage(
System.Text.Encoding.UTF8.GetBytes(message),
endPoint,
receivedOnlocalIpAddress,
cancellationToken)
.ConfigureAwait(false);
} }
catch (Exception ex) catch (Exception)
{ {
} }

@ -1,19 +1,13 @@
using System; using System;
using System.Net; using System.Net;
using System.Security.Principal; using System.Security.Principal;
using MediaBrowser.Model.Cryptography;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Text;
using SocketHttpListener.Net.WebSockets; using SocketHttpListener.Net.WebSockets;
using SocketHttpListener.Primitives;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace SocketHttpListener.Net namespace SocketHttpListener.Net
{ {
public sealed unsafe partial class HttpListenerContext public sealed unsafe partial class HttpListenerContext
{ {
internal HttpListener _listener;
private HttpListenerResponse _response; private HttpListenerResponse _response;
private IPrincipal _user; private IPrincipal _user;

@ -253,7 +253,7 @@ namespace SocketHttpListener.Net
//if (NetEventSource.IsEnabled) //if (NetEventSource.IsEnabled)
// NetEventSource.Error(this, SR.Format(SR.net_log_listener_cant_convert_percent_value, codePoint)); // NetEventSource.Error(this, SR.Format(SR.net_log_listener_cant_convert_percent_value, codePoint));
} }
catch (EncoderFallbackException e) catch (EncoderFallbackException)
{ {
// If utf8Encoding.GetBytes() fails // If utf8Encoding.GetBytes() fails
//if (NetEventSource.IsEnabled) NetEventSource.Error(this, SR.Format(SR.net_log_listener_cant_convert_to_utf8, unicodeString, e.Message)); //if (NetEventSource.IsEnabled) NetEventSource.Error(this, SR.Format(SR.net_log_listener_cant_convert_to_utf8, unicodeString, e.Message));
@ -303,11 +303,11 @@ namespace SocketHttpListener.Net
return true; return true;
} }
catch (DecoderFallbackException e) catch (DecoderFallbackException)
{ {
//if (NetEventSource.IsEnabled) NetEventSource.Error(this, SR.Format(SR.net_log_listener_cant_convert_bytes, GetOctetsAsString(_rawOctets), e.Message)); //if (NetEventSource.IsEnabled) NetEventSource.Error(this, SR.Format(SR.net_log_listener_cant_convert_bytes, GetOctetsAsString(_rawOctets), e.Message));
} }
catch (EncoderFallbackException e) catch (EncoderFallbackException)
{ {
// If utf8Encoding.GetBytes() fails // If utf8Encoding.GetBytes() fails
//if (NetEventSource.IsEnabled) NetEventSource.Error(this, SR.Format(SR.net_log_listener_cant_convert_to_utf8, decodedString, e.Message)); //if (NetEventSource.IsEnabled) NetEventSource.Error(this, SR.Format(SR.net_log_listener_cant_convert_to_utf8, decodedString, e.Message));

@ -299,7 +299,7 @@ namespace SocketHttpListener
} }
OnError.Emit(this, new ErrorEventArgs(message)); OnError.Emit(this, new ErrorEventArgs(message));
} }
catch (Exception ex) catch (Exception)
{ {
} }
} }
@ -310,7 +310,7 @@ namespace SocketHttpListener
{ {
OnError.Emit(this, new ErrorEventArgs(message)); OnError.Emit(this, new ErrorEventArgs(message));
} }
catch (Exception ex) catch (Exception)
{ {
} }
} }
@ -423,8 +423,6 @@ namespace SocketHttpListener
private bool processPingFrame(WebSocketFrame frame) private bool processPingFrame(WebSocketFrame frame)
{ {
var mask = Mask.Unmask;
return true; return true;
} }

6
debian/changelog vendored

@ -1,3 +1,9 @@
jellyfin (3.5.2-4) unstable; urgency=medium
* Correct manifest.json bug and vdpau
-- Joshua Boniface <joshua@boniface.me> Thu, 20 Dec 2018 18:31:43 -0500
jellyfin (3.5.2-3) unstable; urgency=medium jellyfin (3.5.2-3) unstable; urgency=medium
* Correct several bugs in 3.5.2-2 packaging * Correct several bugs in 3.5.2-2 packaging

Loading…
Cancel
Save