diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2014-08-10 18:13:51 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2014-08-10 18:13:51 -0300 |
commit | 48ff6456b73a722ac6d5bd84e7e678646c9ac409 (patch) | |
tree | f51226506cbc82ade351a52b57dee517544d4075 /pcr | |
parent | b8bf5a11ddcb3d3ba3df302c2f5ca635db8fc3f2 (diff) |
xbmc-standalone-service: add new package to [pcr]
Diffstat (limited to 'pcr')
-rw-r--r-- | pcr/xbmc-standalone-service/PKGBUILD | 28 | ||||
-rw-r--r-- | pcr/xbmc-standalone-service/readme.install | 37 | ||||
-rw-r--r-- | pcr/xbmc-standalone-service/xbmc.service | 16 |
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 |