commit: 105f4270e09468b3a97675619385523d2df217c7 Author: Craig Andrews <candrews <AT> gentoo <DOT> org> AuthorDate: Fri Jul 8 21:11:40 2022 +0000 Commit: Craig Andrews <candrews <AT> gentoo <DOT> org> CommitDate: Sun Jul 10 18:25:54 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=105f4270
www-apps/jellyfin: puts you in control of streaming media. Closes: https://bugs.gentoo.org/693090 Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Craig Andrews <candrews <AT> gentoo.org> www-apps/jellyfin/Manifest | 2 ++ www-apps/jellyfin/files/jellyfin.init | 14 +++++++++ www-apps/jellyfin/files/jellyfin.service | 38 +++++++++++++++++++++++++ www-apps/jellyfin/jellyfin-10.8.1.ebuild | 49 ++++++++++++++++++++++++++++++++ www-apps/jellyfin/metadata.xml | 20 +++++++++++++ 5 files changed, 123 insertions(+) diff --git a/www-apps/jellyfin/Manifest b/www-apps/jellyfin/Manifest new file mode 100644 index 000000000000..6a6ad79f795f --- /dev/null +++ b/www-apps/jellyfin/Manifest @@ -0,0 +1,2 @@ +DIST jellyfin_10.8.1_amd64.tar.gz 99055788 BLAKE2B 1e4be154cfa4982e4f2a9f33b17e23dae3ed888b49c993a0f9dded2267904e41195c0dd0d9b2a47ac8bc10d7d4f45a52141d922e8a1b3348e29cba7e60a9d64c SHA512 ac755137c1859b7b322ff2369d92ebe98757a53c58fa49b9fd178a0b703d829d6c254f4e94a27a7b36b44b92e8b003d86a97cf55e620cd58008f89775f7e4cb4 +DIST jellyfin_10.8.1_arm64.tar.gz 95977557 BLAKE2B ecaee96df0e8f01cb31b08b7e3c55d4d906e9dbdada28353ea6653d1f365fa41d68ccc87e26b528d6b25c60b9ae3fc1a31823f7b6f661d12609c7e01bac8eff7 SHA512 4ed2748d5efd9fc18a2a4a0c4da24c24e33eb7962441c2864117d31ac1a952639dcc7968f3ff492015f7f1d9d054e93716f745527ca48778f6fdf91cef79e95f diff --git a/www-apps/jellyfin/files/jellyfin.init b/www-apps/jellyfin/files/jellyfin.init new file mode 100644 index 000000000000..c4bdacd7c6d1 --- /dev/null +++ b/www-apps/jellyfin/files/jellyfin.init @@ -0,0 +1,14 @@ +#!/sbin/openrc-run + +pidfile="/run/${RC_SVCNAME}.pid" +command="/opt/jellyfin/jellyfin" +command_args="--logdir /var/log/jellyfin --cachedir /var/cache/jellyfin --configdir /etc/jellyfin --datadir /var/lib/jellyfin" +command_user="${RC_SVCNAME}:${RC_SVCNAME}" +command_background=true + +start_pre() { + # (Commands necessary to prepare to start the service) + # Ensure that our dirs are correct + checkpath --directory --owner jellyfin:jellyfin --mode 0775 \ + /var/cache/jellyfin +} diff --git a/www-apps/jellyfin/files/jellyfin.service b/www-apps/jellyfin/files/jellyfin.service new file mode 100644 index 000000000000..f20bfeb3e352 --- /dev/null +++ b/www-apps/jellyfin/files/jellyfin.service @@ -0,0 +1,38 @@ +[Unit] +Description = Jellyfin Media Server +After=syslog.target network.target + +[Service] +User=jellyfin +Group=jellyfin + +Type=simple +StateDirectory=jellyfin +CacheDirectory=jellyfin +LogsDirectory=jellyfin +ConfigurationDirectory=jellyfin +ExecStart=/opt/jellyfin/jellyfin --logdir "$LOGS_DIRECTORY" --cachedir "$CACHE_DIRECTORY" --configdir "$CONFIGURATION_DIRECTORY" --datadir "$STATE_DIRECTORY" +TimeoutStopSec=20 +KillMode=process +Restart=always + +PrivateTmp=yes +PrivateMounts=yes +ProtectHome=yes +ProtectSystem=full +NoNewPrivileges=yes +ProtectHostname=yes +ProtectClock=yes +ProtectKernelTunables=yes +ProtectKernelModules=yes +ProtectKernelLogs=yes +ProtectControlGroups=yes +RemoveIPC=true +RestrictRealtime=yes +DeviceAllow=char-drm rw +DeviceAllow=char-nvidia-frontend rw +DeviceAllow=char-nvidia-uvm rw + +[Install] +WantedBy=multi-user.target + diff --git a/www-apps/jellyfin/jellyfin-10.8.1.ebuild b/www-apps/jellyfin/jellyfin-10.8.1.ebuild new file mode 100644 index 000000000000..561fafc14add --- /dev/null +++ b/www-apps/jellyfin/jellyfin-10.8.1.ebuild @@ -0,0 +1,49 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit systemd + +DESCRIPTION="Jellyfin puts you in control of managing and streaming your media" +HOMEPAGE="https://jellyfin.readthedocs.io/en/latest/" + +SRC_URI=" + arm64? ( + https://repo.jellyfin.org/releases/server/linux/stable/combined/${PN}_${PV}_arm64.tar.gz + https://repo.jellyfin.org/archive/linux/stable/${PV}/combined/${PN}_${PV}_arm64.tar.gz + ) + amd64? ( + https://repo.jellyfin.org/releases/server/linux/stable/combined/${PN}_${PV}_amd64.tar.gz + https://repo.jellyfin.org/archive/linux/stable/${PV}/combined/${PN}_${PV}_amd64.tar.gz + )" + +RESTRICT="mirror test" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" +DEPEND="acct-user/jellyfin" +RDEPEND="${DEPEND} + dev-util/lttng-ust:0 + media-video/ffmpeg[vpx,x264]" +BDEPEND="acct-user/jellyfin" +INST_DIR="/opt/${PN}" +QA_PREBUILT="${INST_DIR#/}/*.so ${INST_DIR#/}/jellyfin ${INST_DIR#/}/createdump" + +src_unpack() { + unpack ${A} + mv ${PN}_${PV} ${P} || die +} + +src_install() { + keepdir /var/log/jellyfin + fowners jellyfin:jellyfin /var/log/jellyfin + keepdir /etc/jellyfin + fowners jellyfin:jellyfin /etc/jellyfin + insinto ${INST_DIR} + dodir ${INST_DIR} + doins -r "${S}"/* + chmod 755 "${D}${INST_DIR}/jellyfin" + newinitd "${FILESDIR}/${PN}.init" "${PN}" + systemd_dounit "${FILESDIR}/${PN}.service" +} diff --git a/www-apps/jellyfin/metadata.xml b/www-apps/jellyfin/metadata.xml new file mode 100644 index 000000000000..9a547e28ad43 --- /dev/null +++ b/www-apps/jellyfin/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>[email protected]</email> + <name>Fredrik Eriksson</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>[email protected]</email> + <name>Proxy Maintainers</name> + </maintainer> + <maintainer type="person"> + <email>[email protected]</email> + <name>Craig Andrews</name> + </maintainer> + <upstream> + <remote-id type="github">jellyfin/jellyfin</remote-id> + <bugs-to>https://github.com/jellyfin/jellyfin/issues</bugs-to> + </upstream> +</pkgmetadata>
