diff options
| -rw-r--r-- | Dockerfile | 14 | ||||
| -rw-r--r-- | Emby.Drawing.Skia/Emby.Drawing.Skia.csproj | 1 | ||||
| -rw-r--r-- | MediaBrowser.sln | 20 | ||||
| -rw-r--r-- | README.md | 150 | ||||
| -rw-r--r-- | debian/changelog | 6 | ||||
| -rw-r--r-- | debian/control | 8 | ||||
| -rw-r--r-- | debian/preinst | 4 | ||||
| -rwxr-xr-x | debian/rules | 4 |
8 files changed, 80 insertions, 127 deletions
diff --git a/Dockerfile b/Dockerfile index 9c352ef8f..f5e345225 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,18 +3,16 @@ ARG DOTNET_VERSION=2 FROM microsoft/dotnet:${DOTNET_VERSION}-sdk as builder WORKDIR /repo COPY . . -ARG CONFIGURATION=RELEASE RUN export DOTNET_CLI_TELEMETRY_OPTOUT=1 \ && dotnet clean \ - && dotnet build --configuration ${CONFIGURATION} $(pwd)/MediaBrowser.sln \ - && dotnet publish --configuration ${CONFIGURATION} $(pwd)/MediaBrowser.sln --output /jellyfin + && dotnet publish --configuration release --output /jellyfin FROM microsoft/dotnet:${DOTNET_VERSION}-runtime COPY --from=builder /jellyfin /jellyfin -RUN apt update \ - && apt install -y ffmpeg gosu EXPOSE 8096 +RUN apt update \ + && apt install -y ffmpeg VOLUME /config /media -ENV PUID=1000 PGID=1000 -ENTRYPOINT chown $PUID:$PGID /config /media \ - && gosu $PUID:$PGID dotnet /jellyfin/jellyfin.dll -programdata /config +ENTRYPOINT if [ -n "$PUID$PGUID" ]; \ + then echo "PUID/PGID are deprecated. Use Docker user param." >&2; exit 1; \ + else dotnet /jellyfin/jellyfin.dll -programdata /config; fi diff --git a/Emby.Drawing.Skia/Emby.Drawing.Skia.csproj b/Emby.Drawing.Skia/Emby.Drawing.Skia.csproj index 447812458..7d6643d54 100644 --- a/Emby.Drawing.Skia/Emby.Drawing.Skia.csproj +++ b/Emby.Drawing.Skia/Emby.Drawing.Skia.csproj @@ -7,6 +7,7 @@ <ItemGroup> <PackageReference Include="SkiaSharp" Version="1.68.0" /> + <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="1.68.0" /> </ItemGroup> <ItemGroup> diff --git a/MediaBrowser.sln b/MediaBrowser.sln index 1482cdd6f..1f4b01b31 100644 --- a/MediaBrowser.sln +++ b/MediaBrowser.sln @@ -487,6 +487,26 @@ Global {E5AF7B26-2239-4CE0-B477-0AA2018EDAA2}.Release|x64.Build.0 = Release|Any CPU {E5AF7B26-2239-4CE0-B477-0AA2018EDAA2}.Release|x86.ActiveCfg = Release|Any CPU {E5AF7B26-2239-4CE0-B477-0AA2018EDAA2}.Release|x86.Build.0 = Release|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Debug|Win32.ActiveCfg = Debug|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Debug|Win32.Build.0 = Debug|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Debug|x64.ActiveCfg = Debug|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Debug|x64.Build.0 = Debug|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Debug|x86.ActiveCfg = Debug|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Debug|x86.Build.0 = Debug|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Release|Any CPU.Build.0 = Release|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Release|Win32.ActiveCfg = Release|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Release|Win32.Build.0 = Release|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Release|x64.ActiveCfg = Release|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Release|x64.Build.0 = Release|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Release|x86.ActiveCfg = Release|Any CPU + {124E0710-6572-497B-B2A5-696AA08AD8BB}.Release|x86.Build.0 = Release|Any CPU {6EAFA7F0-8A82-49E6-B2FA-086C5CAEA95B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6EAFA7F0-8A82-49E6-B2FA-086C5CAEA95B}.Debug|Any CPU.Build.0 = Debug|Any CPU {6EAFA7F0-8A82-49E6-B2FA-086C5CAEA95B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -1,131 +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. - -### Docker +----- -The Jellyfin Docker image is available on Docker Hub at https://hub.docker.com/r/jellyfin/jellyfin/ +<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> -### Arch +--- -The Jellyfin package is in the AUR at https://aur.archlinux.org/packages/jellyfin-git/ +<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> -### Unraid +For further details, please see [our wiki](https://github.com/jellyfin/jellyfin/wiki). -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. +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). -### Debian/Ubuntu +## About -A package repository is available at https://repo.jellyfin.org. +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. -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. - -#### Clean install - -0. Install the `dotnet-runtime-2.2` package via [Microsoft's repositories](https://dotnet.microsoft.com/download/dotnet-core/2.2). -0. Import the GPG signing key (signed by Joshua): - ``` - wget -O - https://repo.jellyfin.org/debian/jellyfin-signing-key-joshua.gpg.key | sudo apt-key add - - ``` -0. Add an entry to `/etc/apt/sources.list.d/jellyfin.list` (note that Ubuntu will get `buster` in the list file, but this should still work fine): - ``` - echo "deb https://repo.jellyfin.org/debian $( grep -Ewo -m1 --color=none 'jessie|stretch|buster' /etc/os-release || echo buster ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list - ``` -0. Update APT repositories: - ``` - sudo apt update - ``` -0. Install Jellyfin: - ``` - sudo apt install jellyfin - ``` - -#### Upgrade from Emby - -The following procedure should work to upgrade from Emby to Jellyfin on an existing installation: - -0. Upgrade to Emby 3.5.X, preferably 3.5.2, so the database schema is fully up-to-date and consistent. This is somewhat optional but can reduce the risk of obscure bugs later on. -0. Stop the `emby-server` daemon: - ``` - sudo service emby-server stop - ``` -0. Move your existing Emby data directory out of the way: - ``` - sudo mv /var/lib/emby /var/lib/emby.backup - ``` -0. Remove the `emby-server` package: - ``` - sudo apt remove emby-server - ``` -0. Install the `jellyfin` package using the instructions above, verifying that `/var/lib/emby` is a symlink to `/var/lib/jellyfin`. -0. Stop the `jellyfin` daemon: - ``` - sudo service jellyfin stop - ``` -0. Copy over all the data files from the old backup data directory: - ``` - sudo cp -a /var/lib/emby.backup/* /var/lib/jellyfin/ - ``` -0. Correct ownership on the new data directory: - ``` - sudo chown -R jellyfin:jellyfin /var/lib/jellyfin - ``` -0. Start the `jellyfin` daemon: - ``` - sudo service jellyfin start - ``` - -This same general procedure should apply for upgrades on any other platform as well though the specific commands and/or paths may be different. - -## 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. +Jellyfin is descended from Emby 3.5.2, ported to the .NET Core framework, and aims to contain build facilities for every platform. -### Debian/Ubuntu +## Issues and Feature Requests -Debian build facilities are integrated into the repo at `debian/`. -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. +<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> -### Windows (64 bit) -A pre-built windows installer will be available soon. Until then it isn't too hard to install Jellyfin from Source. +## Contributing to Jellyfin -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/) -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 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` +If you're interested in contributing, please see [our wiki for guidelines](https://github.com/jellyfin/jellyfin/wiki/Contributing-to-Jellyfin). diff --git a/debian/changelog b/debian/changelog index 3abd5c9b4..dbd489e8f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +jellyfin (3.5.2-3) unstable; urgency=medium + + * Correct several bugs in 3.5.2-2 packaging + + -- Joshua Boniface <joshua@boniface.me> Sat, 15 Dec 2018 18:17:32 -0500 + jellyfin (3.5.2-2) unstable; urgency=medium * Major code updates related to rebranding and cleanup diff --git a/debian/control b/debian/control index c00988f3e..13c62c806 100644 --- a/debian/control +++ b/debian/control @@ -1,11 +1,13 @@ Source: jellyfin Section: misc Priority: optional -Maintainer: Vasily <just.one.man@yandex.ru> +Maintainer: Jellyfin Team <team@jellyfin.org> Build-Depends: debhelper (>= 9), dotnet-sdk-2.2, libc6-dev, - libcurl4-openssl-dev + libcurl4-openssl-dev, + libfontconfig1-dev, + libfreetype6-dev Standards-Version: 3.9.4 Package: jellyfin @@ -13,6 +15,6 @@ Replaces: mediabrowser, emby, emby-server-beta, jellyfin-dev, emby-server Breaks: mediabrowser, emby, emby-server-beta, jellyfin-dev, emby-server Conflicts: mediabrowser, emby, emby-server-beta, jellyfin-dev, emby-server Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, at, libsqlite3-0, ffmpeg +Depends: at, libsqlite3-0, ffmpeg, libfontconfig1, libfreetype6, libssl1.0.0 | libssl1.0.2 Description: Jellyfin is a home media server. It is built on top of other popular open source technologies such as Service Stack, jQuery, jQuery mobile, and Mono. It features a REST-based api with built-in documentation to facilitate client development. We also have client libraries for our api to enable rapid development. diff --git a/debian/preinst b/debian/preinst index c53260bb0..2ce29a0cf 100644 --- a/debian/preinst +++ b/debian/preinst @@ -53,6 +53,10 @@ case "$1" in [[ -f $PIDFILE ]] && rm $PIDFILE fi fi + + # Clean up old Emby cruft that can break the user's system + [[ -f /etc/sudoers.d/emby ]] && rm -f /etc/sudoers.d/emby + ;; abort-upgrade) ;; diff --git a/debian/rules b/debian/rules index 0b790f2e4..6c915af6f 100755 --- a/debian/rules +++ b/debian/rules @@ -15,8 +15,8 @@ override_dh_auto_test: override_dh_clistrip: override_dh_auto_build: - dotnet publish --configuration $(CONFIG) $(CURDIR)/MediaBrowser.sln --output='$(CURDIR)/usr/lib/jellyfin/bin' --self-contained --runtime linux-x64 + dotnet publish --configuration $(CONFIG) --output='$(CURDIR)/usr/lib/jellyfin/bin' --self-contained --runtime linux-x64 override_dh_auto_clean: - dotnet clean -maxcpucount:1 --configuration $(CONFIG) $(CURDIR)/MediaBrowser.sln || true + dotnet clean -maxcpucount:1 --configuration $(CONFIG) || true rm -rf '$(CURDIR)/usr' |
