summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pcr/xbmc-standalone-service/PKGBUILD28
-rw-r--r--pcr/xbmc-standalone-service/readme.install37
-rw-r--r--pcr/xbmc-standalone-service/xbmc.service16
3 files changed, 81 insertions, 0 deletions
diff --git a/pcr/xbmc-standalone-service/PKGBUILD b/pcr/xbmc-standalone-service/PKGBUILD
new file mode 100644
index 000000000..e0bb7537a
--- /dev/null
+++ b/pcr/xbmc-standalone-service/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer (Arch): graysky <graysky AT archlinux DOT us>
+# Contributor (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor (Arch): Brad Fanella <bradfanella@archlinux.us>
+# Contributor (Arch): [vEX] <niechift.dot.vex.at.gmail.dot.com>
+# Contributor (Arch): Zeqadious <zeqadious.at.gmail.dot.com>
+# Contributor (Arch): BlackIkeEagle < ike DOT devolder AT gmail DOT com >
+# Contributor (Arch): Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+# Contributor (Arch): Maxime Gauduin <alucryd@gmail.com>
+# Maintainer : André Silva <emulatorman@parabola.nu>
+
+pkgname=xbmc-standalone-service
+pkgver=1.0
+pkgrel=4
+pkgdesc="Systemd service and user to autostart xbmc at boot"
+arch=('any')
+url="https://wiki.parabolagnulinux.org/index.php/Xbmc#Autostarting_at_boot"
+license=('GPL')
+depends=('xbmc' 'systemd' 'xorg-xinit')
+install=readme.install
+source=(xbmc.service)
+sha256sums=('1a94a7952ef99cd3dd6f4b921630563f72a3b907265e91e0a37b07339081558c')
+
+package() {
+ install -Dm0644 "$srcdir/xbmc.service" "$pkgdir/usr/lib/systemd/system/xbmc.service"
+
+ install -dm 700 "${pkgdir}"/var/lib/xbmc
+ chown 420:420 "${pkgdir}"/var/lib/xbmc
+}
diff --git a/pcr/xbmc-standalone-service/readme.install b/pcr/xbmc-standalone-service/readme.install
new file mode 100644
index 000000000..0f5edbec0
--- /dev/null
+++ b/pcr/xbmc-standalone-service/readme.install
@@ -0,0 +1,37 @@
+post_install() {
+ getent group xbmc > /dev/null || groupadd -g 420 xbmc
+ if ! getent passwd xbmc > /dev/null; then
+ useradd -c 'XBMC user' -u 420 -g xbmc -G audio,video,network,optical -d /var/lib/xbmc -s /sbin/nologin xbmc
+ passwd -l xbmc > /dev/null
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+ if ! getent group xbmc | cut -d: -f3 | grep 420 > /dev/null 2>&1; then
+ groupmod -g 420 xbmc > /dev/null 2>&1
+ fi
+ if ! id -u xbmc | grep 420 > /dev/null 2>&1; then
+ usermod -u 420 xbmc > /dev/null 2>&1
+ if [[ $? -ne 0 ]]; then
+ echo "Changing uid of user xbmc failed"
+ echo "It is recommended that the uid is changed."
+ echo "Stop all processes running under the xbmc user and reinstall xbmc"
+ echo "or change the uid manually. (usermod -u 420 xbmc)"
+ fi
+ chown -R xbmc:xbmc /var/lib/xbmc
+ fi
+}
+
+post_remove() {
+ getent passwd xbmc > /dev/null 2>&1 && userdel xbmc
+ getent group xbmc > /dev/null 2>&1 && groupdel xbmc
+}
+
+post_message() {
+ echo "To autostart xbmc standalone, you must create or modify"
+ echo "/etc/X11/Xwrapper.config to contain the following 2 lines:"
+ echo
+ echo "allowed_users = anybody"
+ echo "needs_root_rights = yes"
+}
diff --git a/pcr/xbmc-standalone-service/xbmc.service b/pcr/xbmc-standalone-service/xbmc.service
new file mode 100644
index 000000000..90119f07d
--- /dev/null
+++ b/pcr/xbmc-standalone-service/xbmc.service
@@ -0,0 +1,16 @@
+[Unit]
+Description = Starts instance of XBMC using xinit
+After = systemd-user-sessions.service network.target
+Conflicts=getty@tty7.service
+
+[Service]
+User = xbmc
+Group = xbmc
+PAMName=login
+Type = simple
+TTYPath=/dev/tty7
+ExecStart = /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session /usr/bin/xbmc-standalone -- :0 -nolisten tcp vt7
+Restart = on-abort
+
+[Install]
+WantedBy = multi-user.target