summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicola Hinssen2017-10-22 19:04:16 +0200
committerNicola Hinssen2017-10-22 19:04:16 +0200
commitbc1beb3844c63c455d7853609c321cbbb61aeec9 (patch)
treebce9b361d3e3ddd63de0dba72e35d11861c4012d
downloadaur-bc1beb3844c63c455d7853609c321cbbb61aeec9.tar.gz
Initial
-rw-r--r--.SRCINFO32
-rw-r--r--PKGBUILD62
-rw-r--r--emby-migrate-database56
-rw-r--r--emby-server3
-rw-r--r--emby-server.conf4
-rw-r--r--emby-server.install18
-rw-r--r--emby-server.service16
7 files changed, 191 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..ed1f114f61f0
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,32 @@
+pkgbase = emby-server-dev-unlocked
+ pkgdesc = Emby Server compiled with a patch to unlock Emby Premiere features
+ pkgver = 3.2.33.12
+ pkgrel = 1
+ url = https://github.com/nicolahinssen/emby-dev-unlocked
+ install = emby-server.install
+ arch = i686
+ arch = x86_64
+ license = GPL2
+ depends = ffmpeg
+ depends = imagemagick
+ depends = mono
+ depends = referenceassemblies-pcl
+ depends = sqlite
+ provides = emby-server
+ conflicts = emby-server
+ backup = etc/conf.d/emby-server
+ source = emby-server-3.2.33.12.tar.gz::https://github.com/MediaBrowser/Emby/archive/3.2.33.12.tar.gz
+ source = emby-dev-unlocked-3.2.33.12.tar.gz::https://github.com/nicolahinssen/emby-dev-unlocked/archive/3.2.33.12.tar.gz
+ source = emby-server
+ source = emby-migrate-database
+ source = emby-server.conf
+ source = emby-server.service
+ sha256sums = f90b92f5248a31907e9e5e0e0e9519770ad391ce4ec4cda32111971a248834df
+ sha256sums = a37316c15fd1ede805f75b3c1f27a0f151b4ebd2d40bd6ad167463b13957b9df
+ sha256sums = 7b1974f7bba8ac4b76e51ef7fe1257d165c7c4abbd0915e192391336048a3d74
+ sha256sums = b25bf83a0ab371aff3b13b82f7af71b51bfe6d7e51eb8a8a3dd8f0774ffce6a5
+ sha256sums = c9ad78f3e2f0ffcb4ee66bb3e99249fcd283dc9fee17895b9265dc733288b953
+ sha256sums = 8a91ea49a1699c820c4a180710072cba1d6d5c10e45df97477ff6a898f4e1d70
+
+pkgname = emby-server-dev-unlocked
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..8ce0f7fd4d1f
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,62 @@
+# Contributor: Nicola Hinssen <nicola.hinssen@gmail.com>
+# Contributor: Andrew Rabert <draje@nullsum.net>
+
+pkgname=emby-server-dev-unlocked
+pkgver=3.2.33.12
+pkgrel=1
+pkgdesc='Emby Server compiled with a patch to unlock Emby Premiere features'
+arch=('i686' 'x86_64')
+url='https://github.com/nicolahinssen/emby-dev-unlocked'
+license=('GPL2')
+depends=('ffmpeg' 'imagemagick' 'mono' 'referenceassemblies-pcl' 'sqlite')
+install='emby-server.install'
+provides=('emby-server')
+conflicts=('emby-server')
+source=("emby-server-${pkgver}.tar.gz::https://github.com/MediaBrowser/Emby/archive/${pkgver}.tar.gz"
+ "emby-dev-unlocked-${pkgver}.tar.gz::https://github.com/nicolahinssen/emby-dev-unlocked/archive/${pkgver}.tar.gz"
+ 'emby-server'
+ 'emby-migrate-database'
+ 'emby-server.conf'
+ 'emby-server.service')
+backup=('etc/conf.d/emby-server')
+sha256sums=('f90b92f5248a31907e9e5e0e0e9519770ad391ce4ec4cda32111971a248834df'
+ 'a37316c15fd1ede805f75b3c1f27a0f151b4ebd2d40bd6ad167463b13957b9df'
+ '7b1974f7bba8ac4b76e51ef7fe1257d165c7c4abbd0915e192391336048a3d74'
+ 'b25bf83a0ab371aff3b13b82f7af71b51bfe6d7e51eb8a8a3dd8f0774ffce6a5'
+ 'c9ad78f3e2f0ffcb4ee66bb3e99249fcd283dc9fee17895b9265dc733288b953'
+ '8a91ea49a1699c820c4a180710072cba1d6d5c10e45df97477ff6a898f4e1d70')
+
+prepare() {
+ cd Emby-${pkgver}
+
+ sed 's/libMagickWand-6.Q8.so/libMagickWand-6.Q16HDRI.so/' -i MediaBrowser.Server.Mono/ImageMagickSharp.dll.config
+}
+
+build() {
+ cd Emby-${pkgver}
+
+ patch -N -p1 -r - Emby.Server.Implementations/Security/PluginSecurityManager.cs < \
+ ../emby-dev-unlocked-${pkgver}/patches/PluginSecurityManager.cs.patch
+
+ xbuild \
+ /p:Configuration='Release Mono' \
+ /p:Platform='Any CPU' \
+ /p:OutputPath="${srcdir}/build" \
+ /t:build MediaBrowser.sln
+ mono --aot='full' -O='all' ../build/MediaBrowser.Server.Mono.exe
+
+ cp ../emby-dev-unlocked-${pkgver}/replacements/connectionmanager.js ../build/dashboard-ui/bower_components/emby-apiclient
+}
+
+package() {
+ install -dm 755 "${pkgdir}"/{etc/conf.d,usr/{bin,lib/systemd/system}}
+ cp -dr --no-preserve='ownership' build "${pkgdir}"/usr/lib/emby-server
+ find "${pkgdir}" -type f -name *.dylib -delete
+ install -m 755 emby-server "${pkgdir}"/usr/bin/
+ install -m 755 emby-migrate-database "${pkgdir}"/usr/bin/
+ install -m 644 emby-server.service "${pkgdir}"/usr/lib/systemd/system/
+ install -m 644 emby-server.conf "${pkgdir}"/etc/conf.d/emby-server
+
+ install -dm 755 "${pkgdir}"/var/lib/emby
+ chown 422:422 -R "${pkgdir}"/var/lib/emby
+}
diff --git a/emby-migrate-database b/emby-migrate-database
new file mode 100644
index 000000000000..3e102124a9c2
--- /dev/null
+++ b/emby-migrate-database
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+USER='emby'
+GROUP='emby'
+
+usage() {
+ echo 'Usage: emby-migrate-database {-u user} {-g group} old_path_full new_path_full'
+ echo 'Default user: emby'
+ echo 'Default group: emby'
+}
+
+migrate() {
+ if [[ $1 && $2 ]]; then
+ if [[ -f $1/data/library.db ]]; then
+ if [[ ! -e $2 ]]; then
+ mkdir -p $2
+ fi
+ if [[ -d $2 ]]; then
+ if [[ -z $(ls $2) ]]; then
+ cp -r $1/* $2/
+ sqlite3 $2/data/library.db "UPDATE TypedBaseItems SET data = CAST(REPLACE(CAST(data AS TEXT), '$1', '$2') AS BLOB);"
+ chown $USER:$GROUP -R $2
+ echo "Migration complete. You can now delete $1."
+ else
+ echo "$2 is not empty. Aborting."
+ fi
+ else
+ echo "$2 is not a directory. Aborting."
+ fi
+ else
+ echo "$1 does not contain an emby database. Aborting."
+ fi
+ else
+ usage
+ fi
+}
+
+if [[ $1 == '--help' ]]; then
+ usage
+else
+ while getopts 'u:g:' opt; do
+ case $opt in
+ u)
+ USER=$OPTARG
+ ;;
+ g)
+ GROUP=$OPTARG
+ ;;
+ \?)
+ usage
+ ;;
+ esac
+ done
+ shift $((OPTIND-1))
+ migrate $@
+fi
diff --git a/emby-server b/emby-server
new file mode 100644
index 000000000000..31461d269dcf
--- /dev/null
+++ b/emby-server
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec $MONO /usr/lib/emby-server/MediaBrowser.Server.Mono.exe -programdata $PROGRAM_DATA -ffmpeg $FFMPEG -ffprobe $FFPROBE
diff --git a/emby-server.conf b/emby-server.conf
new file mode 100644
index 000000000000..cbf376e727cc
--- /dev/null
+++ b/emby-server.conf
@@ -0,0 +1,4 @@
+MONO=/usr/bin/mono
+FFMPEG=/usr/bin/ffmpeg
+FFPROBE=/usr/bin/ffprobe
+PROGRAM_DATA=/var/lib/emby
diff --git a/emby-server.install b/emby-server.install
new file mode 100644
index 000000000000..e443a6f4118b
--- /dev/null
+++ b/emby-server.install
@@ -0,0 +1,18 @@
+post_install() {
+ getent group emby > /dev/null 2>&1 || groupadd -g 422 emby
+ getent passwd emby > /dev/null 2>&1 || useradd -c 'Emby Media Server' -u 422 -g emby -d /var/lib/emby -s /usr/bin/nologin emby
+ passwd -l emby > /dev/null
+
+cat <<EOF
+
+Emby is not compatible with the 10-bit versionof libx264. Please stick to the
+8-bit version if you plan on using emby's transcoding features.
+
+EOF
+}
+
+post_upgrade() {
+ post_install
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/emby-server.service b/emby-server.service
new file mode 100644
index 000000000000..aaf35b161a4d
--- /dev/null
+++ b/emby-server.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Emby brings together your videos, music, photos, and live television.
+
+[Service]
+EnvironmentFile=/etc/conf.d/emby-server
+WorkingDirectory=/usr/lib/emby-server
+ExecStart=/usr/bin/emby-server
+User=emby
+Group=emby
+Restart=always
+
+[Unit]
+After=network.target
+
+[Install]
+WantedBy=multi-user.target