diff options
author | wattazoum <wattazoum@svn> | 2009-11-26 23:05:33 +0000 |
---|---|---|
committer | wattazoum <wattazoum@svn> | 2009-11-26 23:05:33 +0000 |
commit | 1cefa6dde4b026af6b2528f7c1b6d580cdba61b9 (patch) | |
tree | 9a9f34861f3230f9e03f2c8a925f07b841307764 /tools/Linux | |
parent | 55b1b575a15270a9a89481409dd3980e6dd05dcd (diff) |
[packaging] move debian folder to allow other type of packaging to put their script
git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk@25077 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
Diffstat (limited to 'tools/Linux')
-rw-r--r-- | tools/Linux/debian/xbmc-live.postinst | 119 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/README.Debian (renamed from tools/Linux/debian/README.Debian) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/README.source (renamed from tools/Linux/debian/README.source) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/changelog (renamed from tools/Linux/debian/changelog) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/compat (renamed from tools/Linux/debian/compat) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/control (renamed from tools/Linux/debian/control) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/copyright (renamed from tools/Linux/debian/copyright) | 0 | ||||
-rwxr-xr-x | tools/Linux/packaging/debian/rules (renamed from tools/Linux/debian/rules) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/source/format (renamed from tools/Linux/debian/source/format) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/watch (renamed from tools/Linux/debian/watch) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-bin.install (renamed from tools/Linux/debian/xbmc-bin.install) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-data.docs (renamed from tools/Linux/debian/xbmc-data.docs) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-data.install (renamed from tools/Linux/debian/xbmc-data.install) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-data.manpages (renamed from tools/Linux/debian/xbmc-data.manpages) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-data.menu (renamed from tools/Linux/debian/xbmc-data.menu) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-eventclients-common.install (renamed from tools/Linux/debian/xbmc-eventclients-common.install) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-eventclients-dev.examples (renamed from tools/Linux/debian/xbmc-eventclients-dev.examples) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-eventclients-dev.install (renamed from tools/Linux/debian/xbmc-eventclients-dev.install) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-eventclients-j2me.install (renamed from tools/Linux/debian/xbmc-eventclients-j2me.install) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-eventclients-j2me.manpages (renamed from tools/Linux/debian/xbmc-eventclients-j2me.manpages) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-eventclients-ps3.install (renamed from tools/Linux/debian/xbmc-eventclients-ps3.install) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-eventclients-ps3.manpages (renamed from tools/Linux/debian/xbmc-eventclients-ps3.manpages) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-eventclients-wiiremote.install (renamed from tools/Linux/debian/xbmc-eventclients-wiiremote.install) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-eventclients-wiiremote.manpages (renamed from tools/Linux/debian/xbmc-eventclients-wiiremote.manpages) | 0 | ||||
-rwxr-xr-x | tools/Linux/packaging/debian/xbmc-get-orig-source (renamed from tools/Linux/debian/xbmc-get-orig-source) | 0 | ||||
-rwxr-xr-x | tools/Linux/packaging/debian/xbmc-live.init | 169 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-live.install (renamed from tools/Linux/debian/xbmc-live.install) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-live.manpages (renamed from tools/Linux/debian/xbmc-live.manpages) | 0 | ||||
-rwxr-xr-x | tools/Linux/packaging/debian/xbmc-live.postinst | 147 | ||||
-rwxr-xr-x | tools/Linux/packaging/debian/xbmc-live.postrm | 76 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-scripts-example.install (renamed from tools/Linux/debian/xbmc-scripts-example.install) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-skin-confluence.install (renamed from tools/Linux/debian/xbmc-skin-confluence.install) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-skin-pm3-hd.install (renamed from tools/Linux/debian/xbmc-skin-pm3-hd.install) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-skin-pm3-hd.links (renamed from tools/Linux/debian/xbmc-skin-pm3-hd.links) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-standalone.install (renamed from tools/Linux/debian/xbmc-standalone.install) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-standalone.manpages (renamed from tools/Linux/debian/xbmc-standalone.manpages) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc-web-pm3.install (renamed from tools/Linux/debian/xbmc-web-pm3.install) | 0 | ||||
-rw-r--r-- | tools/Linux/packaging/debian/xbmc.lintian-overrides (renamed from tools/Linux/debian/xbmc.lintian-overrides) | 0 |
38 files changed, 392 insertions, 119 deletions
diff --git a/tools/Linux/debian/xbmc-live.postinst b/tools/Linux/debian/xbmc-live.postinst deleted file mode 100644 index 2a59f13a31..0000000000 --- a/tools/Linux/debian/xbmc-live.postinst +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/sh - -set -e - -case "$1" in - configure) - # TODO: What's the purpose of this line? As I see it, if 'xbmc' can't - # get a console session going, we're in trouble anyway. ceros - sed -i.bak-xbmc-live s/allowed_users=console/allowed_users=anybody/ /etc/X11/Xwrapper.config - - # Add the 'xbmc' user - if ! getent passwd xbmc >/dev/null; then - adduser \ - --gecos "XBMC Live User" \ - --disabled-password \ - xbmc >/dev/null - fi - # Add 'xbmc' user to the appropriate groups - # TODO: this probably isn't necessary anymore as PolicyKit is now being - # used - # For reading system logs (still not sure why xbmc needs this though) - if ! getent group adm | grep xbmc > /dev/null; then - adduser xbmc adm || true - fi - # For optical disc drive access - if ! getent group cdrom | grep xbmc > /dev/null; then - adduser xbmc cdrom || true - fi - # For floppy drive access - if ! getent group floppy | grep xbmc > /dev/null; then - adduser xbmc floppy || true - fi - # For audio device access - if ! getent group audio | grep xbmc > /dev/null; then - adduser xbmc audio || true - fi - # For video device access - if ! getent group video | grep xbmc > /dev/null; then - adduser xbmc video || true - fi - # To enable automatic notifications of new devices - if ! getent group plugdev | grep xbmc > /dev/null; then - adduser xbmc plugdev || true - fi - # For managing network connections via NetworkManager - if ! getent group netdev | grep xbmc > /dev/null; then - adduser xbmc netdev || true - fi - # To be able to hibernate/suspend - if ! getent group powerdev | grep xbmc > /dev/null; then - adduser xbmc powerdev || true - fi - # To be able to mount filesystems as normal user - if ! getent group fuse | grep xbmc > /dev/null; then - adduser xbmc fuse || true - fi - - # Our set of PolicyKit actions - - # This is a list of actions that the 'xbmc' user should be allowed to - # do. If we missed one, or we have one that's not necessary, please - # submit a bug report. - POLKIT_ACTIONS="org.freedesktop.hal.dockstation.undock - org.freedesktop.hal.wol.enabled - org.freedesktop.hal.wol.enable - org.freedesktop.hal.wol.supported - org.freedesktop.hal.leds.brightness - org.freedesktop.hal.device-access.audio-player - org.freedesktop.hal.device-access.camera - org.freedesktop.hal.device-access.cdrom - org.freedesktop.hal.device-access.dvb - org.freedesktop.hal.device-access.fingerprint-reader - org.freedesktop.hal.device-access.floppy - org.freedesktop.hal.device-access.ieee1394-avc - org.freedesktop.hal.device-access.ieee1394-iidc - org.freedesktop.hal.device-access.joystick - org.freedesktop.hal.device-access.mouse - org.freedesktop.hal.device-access.obex - org.freedesktop.hal.device-access.pda - org.freedesktop.hal.device-access.printer - org.freedesktop.hal.device-access.scanner - org.freedesktop.hal.device-access.sound - org.freedesktop.hal.device-access.video - org.freedesktop.hal.device-access.video4linux - org.freedesktop.hal.lock - org.freedesktop.hal.killswitch.bluetooth - org.freedesktop.hal.killswitch.wlan - org.freedesktop.hal.killswitch.wwan - org.freedesktop.hal.storage.mount-removable - org.freedesktop.hal.storage.eject - org.freedesktop.hal.storage.crypto-setup-removable - org.freedesktop.hal.power-management.shutdown - org.freedesktop.hal.power-management.reboot - org.freedesktop.hal.power-management.set-powersave - org.freedesktop.hal.power-management.suspend - org.freedesktop.hal.power-management.hibernate - org.freedesktop.hal.power-management.cpufreq - org.freedesktop.hal.power-management.lcd-panel - org.freedesktop.hal.power-management.light-sensor - org.freedesktop.hal.power-management.keyboard-backlight" - - # Grant the 'xbmc' user each action from the list - for ACTION in $POLKIT_ACTIONS; do - polkit-auth --user xbmc --grant $ACTION || true - done - ;; - - abort-upgrade|abort-remove|abort-deconfigure) - ;; - - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -#DEBHELPER# - -exit 0 diff --git a/tools/Linux/debian/README.Debian b/tools/Linux/packaging/debian/README.Debian index 9b390d62e7..9b390d62e7 100644 --- a/tools/Linux/debian/README.Debian +++ b/tools/Linux/packaging/debian/README.Debian diff --git a/tools/Linux/debian/README.source b/tools/Linux/packaging/debian/README.source index f67c0d6d95..f67c0d6d95 100644 --- a/tools/Linux/debian/README.source +++ b/tools/Linux/packaging/debian/README.source diff --git a/tools/Linux/debian/changelog b/tools/Linux/packaging/debian/changelog index 4776cd9e0e..4776cd9e0e 100644 --- a/tools/Linux/debian/changelog +++ b/tools/Linux/packaging/debian/changelog diff --git a/tools/Linux/debian/compat b/tools/Linux/packaging/debian/compat index 7f8f011eb7..7f8f011eb7 100644 --- a/tools/Linux/debian/compat +++ b/tools/Linux/packaging/debian/compat diff --git a/tools/Linux/debian/control b/tools/Linux/packaging/debian/control index a7eb2f9be8..a7eb2f9be8 100644 --- a/tools/Linux/debian/control +++ b/tools/Linux/packaging/debian/control diff --git a/tools/Linux/debian/copyright b/tools/Linux/packaging/debian/copyright index d05eb995e5..d05eb995e5 100644 --- a/tools/Linux/debian/copyright +++ b/tools/Linux/packaging/debian/copyright diff --git a/tools/Linux/debian/rules b/tools/Linux/packaging/debian/rules index 6366eb64de..6366eb64de 100755 --- a/tools/Linux/debian/rules +++ b/tools/Linux/packaging/debian/rules diff --git a/tools/Linux/debian/source/format b/tools/Linux/packaging/debian/source/format index 163aaf8d82..163aaf8d82 100644 --- a/tools/Linux/debian/source/format +++ b/tools/Linux/packaging/debian/source/format diff --git a/tools/Linux/debian/watch b/tools/Linux/packaging/debian/watch index e46e9aadc9..e46e9aadc9 100644 --- a/tools/Linux/debian/watch +++ b/tools/Linux/packaging/debian/watch diff --git a/tools/Linux/debian/xbmc-bin.install b/tools/Linux/packaging/debian/xbmc-bin.install index cddb90a986..cddb90a986 100644 --- a/tools/Linux/debian/xbmc-bin.install +++ b/tools/Linux/packaging/debian/xbmc-bin.install diff --git a/tools/Linux/debian/xbmc-data.docs b/tools/Linux/packaging/debian/xbmc-data.docs index 30a66981fe..30a66981fe 100644 --- a/tools/Linux/debian/xbmc-data.docs +++ b/tools/Linux/packaging/debian/xbmc-data.docs diff --git a/tools/Linux/debian/xbmc-data.install b/tools/Linux/packaging/debian/xbmc-data.install index 5638aba061..5638aba061 100644 --- a/tools/Linux/debian/xbmc-data.install +++ b/tools/Linux/packaging/debian/xbmc-data.install diff --git a/tools/Linux/debian/xbmc-data.manpages b/tools/Linux/packaging/debian/xbmc-data.manpages index be7b114687..be7b114687 100644 --- a/tools/Linux/debian/xbmc-data.manpages +++ b/tools/Linux/packaging/debian/xbmc-data.manpages diff --git a/tools/Linux/debian/xbmc-data.menu b/tools/Linux/packaging/debian/xbmc-data.menu index 50e05291bf..50e05291bf 100644 --- a/tools/Linux/debian/xbmc-data.menu +++ b/tools/Linux/packaging/debian/xbmc-data.menu diff --git a/tools/Linux/debian/xbmc-eventclients-common.install b/tools/Linux/packaging/debian/xbmc-eventclients-common.install index 4dbb5060a5..4dbb5060a5 100644 --- a/tools/Linux/debian/xbmc-eventclients-common.install +++ b/tools/Linux/packaging/debian/xbmc-eventclients-common.install diff --git a/tools/Linux/debian/xbmc-eventclients-dev.examples b/tools/Linux/packaging/debian/xbmc-eventclients-dev.examples index abcee3c87f..abcee3c87f 100644 --- a/tools/Linux/debian/xbmc-eventclients-dev.examples +++ b/tools/Linux/packaging/debian/xbmc-eventclients-dev.examples diff --git a/tools/Linux/debian/xbmc-eventclients-dev.install b/tools/Linux/packaging/debian/xbmc-eventclients-dev.install index 23114c9124..23114c9124 100644 --- a/tools/Linux/debian/xbmc-eventclients-dev.install +++ b/tools/Linux/packaging/debian/xbmc-eventclients-dev.install diff --git a/tools/Linux/debian/xbmc-eventclients-j2me.install b/tools/Linux/packaging/debian/xbmc-eventclients-j2me.install index 0a3631dcfb..0a3631dcfb 100644 --- a/tools/Linux/debian/xbmc-eventclients-j2me.install +++ b/tools/Linux/packaging/debian/xbmc-eventclients-j2me.install diff --git a/tools/Linux/debian/xbmc-eventclients-j2me.manpages b/tools/Linux/packaging/debian/xbmc-eventclients-j2me.manpages index 0dec8f02d5..0dec8f02d5 100644 --- a/tools/Linux/debian/xbmc-eventclients-j2me.manpages +++ b/tools/Linux/packaging/debian/xbmc-eventclients-j2me.manpages diff --git a/tools/Linux/debian/xbmc-eventclients-ps3.install b/tools/Linux/packaging/debian/xbmc-eventclients-ps3.install index c761b710d8..c761b710d8 100644 --- a/tools/Linux/debian/xbmc-eventclients-ps3.install +++ b/tools/Linux/packaging/debian/xbmc-eventclients-ps3.install diff --git a/tools/Linux/debian/xbmc-eventclients-ps3.manpages b/tools/Linux/packaging/debian/xbmc-eventclients-ps3.manpages index 17b0424795..17b0424795 100644 --- a/tools/Linux/debian/xbmc-eventclients-ps3.manpages +++ b/tools/Linux/packaging/debian/xbmc-eventclients-ps3.manpages diff --git a/tools/Linux/debian/xbmc-eventclients-wiiremote.install b/tools/Linux/packaging/debian/xbmc-eventclients-wiiremote.install index f6f7193ee0..f6f7193ee0 100644 --- a/tools/Linux/debian/xbmc-eventclients-wiiremote.install +++ b/tools/Linux/packaging/debian/xbmc-eventclients-wiiremote.install diff --git a/tools/Linux/debian/xbmc-eventclients-wiiremote.manpages b/tools/Linux/packaging/debian/xbmc-eventclients-wiiremote.manpages index 88aff207ea..88aff207ea 100644 --- a/tools/Linux/debian/xbmc-eventclients-wiiremote.manpages +++ b/tools/Linux/packaging/debian/xbmc-eventclients-wiiremote.manpages diff --git a/tools/Linux/debian/xbmc-get-orig-source b/tools/Linux/packaging/debian/xbmc-get-orig-source index b14295b724..b14295b724 100755 --- a/tools/Linux/debian/xbmc-get-orig-source +++ b/tools/Linux/packaging/debian/xbmc-get-orig-source diff --git a/tools/Linux/packaging/debian/xbmc-live.init b/tools/Linux/packaging/debian/xbmc-live.init new file mode 100755 index 0000000000..9163ef5574 --- /dev/null +++ b/tools/Linux/packaging/debian/xbmc-live.init @@ -0,0 +1,169 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: xbmc-live +# Required-Start: $local_fs $network $remote_fs +# Required-Stop: $local_fs $network $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: start and stop XBMC Live +# Description: XBMC Live is the XBMC media center software bundled with an +# embedded operating-system, for that set-top-box feeling. +### END INIT INFO + +# Do NOT "set -e" + +#/etc/init.d/xbmc + +. /lib/lsb/init-functions + +get_opt() { + echo "$@" | cut -d "=" -f 2 +} + +CMDLINE=$(cat /proc/cmdline) + +do_start() +{ + log_action_begin_msg "Configuring system and starting XBMC" + + #Process command line options + XBMC_PARAMS="" + for i in ${CMDLINE}; do + case "${i}" in + xbmc\=*) + XBMC_PARAMS=$(get_opt $i) + ;; + esac + done + + # Relies on init scripts to mount boot device on a specified directory + # TODO hardcode the already mounted directories (speed) + # XBMC Live V2 + BOOTMEDIADIRECTORY="image" + BOOTMEDIAMOUNTPOINT="$(mount | grep $BOOTMEDIADIRECTORY | cut -f 3 -d ' ')" + if [ ! -n "$BOOTMEDIAMOUNTPOINT" ]; then + # XBMC Live V1 + BOOTMEDIADIRECTORY="bootMedia" + BOOTMEDIAMOUNTPOINT="$(mount | grep $BOOTMEDIADIRECTORY | cut -f 3 -d ' ')" + fi + + # copy xorg.conf from "Config" directory + if [ -n "$BOOTMEDIAMOUNTPOINT" ]; then + if [ -f $BOOTMEDIAMNTPOINT/config/xorg.conf ]; then + cp $BOOTMEDIAMNTPOINT/config/xorg.conf /etc/X11 + fi + fi + + INSTALL="$( echo $XBMC_PARAMS | grep install)" + if [ -n "$INSTALL" ]; then + # if usplash is runing, make sure to stop it now, yes "start" kills it. + if pidof usplash > /dev/null; then + DO_NOT_SWITCH_VT=yes /etc/init.d/usplash start + fi + su -c "/usr/bin/installXBMC" -l + else + # Generates valid xorg.conf for proprietary drivers if missing + XBMC_NOGENXCONF="$( echo $XBMC_PARAMS | grep nogenxconf )" + if [ ! -e /etc/X11/xorg.conf ] && [ ! -n "$XBMC_NOGENXCONF" ]; then + NVIDIA="$(lspci -nn | grep 0300 | grep 10de)" + if [ ! -n "$NVIDIA" ]; then + AMD="$(lspci -nn | grep 0300 | grep 1002)" + if [ -n "$AMD" ]; then + # run aticonfig + log_warning_msg "Generating xorg.conf for ATI..." + /usr/bin/aticonfig --initial --sync-vsync=on -f + fi + else + # run nvidia-xconfig + log_warning_msg "Generating xorg.conf for NVIDIA..." + /usr/bin/nvidia-xconfig -s --no-logo --force-generate + fi + fi + + RUNX="$(echo $CMDLINE | grep splash)" + if [ ! -n "$RUNX" ]; then + log_warning_msg "Not starting X." + + if [ -f /home/xbmc/.xsession ]; then + rm /home/xbmc/.xsession + fi + else + BOOTFROMCD="$(mount | grep iso9660)" + if [ ! -n "$BOOTFROMCD" ]; then + NOREDIR="$(echo $XBMC_PARAMS | grep noredir)" + if [ ! -n "$NOREDIR" ]; then + if [ -n "$BOOTMEDIAMOUNTPOINT" ]; then + log_warning_msg "Redirect XBMC home folder and logfile to usb flash..." + if [ ! -d $BOOTMEDIAMOUNTPOINT/dotXBMC ]; then + mkdir $BOOTMEDIAMOUNTPOINT/dotXBMC + fi + + if [ -d /home/xbmc/.xbmc ]; then + if [ -L /home/xbmc/.xbmc ]; then + rm .xbmc + else + mv /home/xbmc/.xbmc /home/xbmc/.xbmc.previous + fi + fi + ln -s $BOOTMEDIAMOUNTPOINT/dotXBMC /home/xbmc/.xbmc + fi + fi + fi + + /usr/bin/runXBMC & + + XBMC_SETVOLUME="$(echo $XBMC_PARAMS | grep setvolume)" + if [ -n "$XBMC_SETVOLUME" ]; then + log_warning_msg "Increasing ALSA volumes..." + /usr/bin/setAlsaVolumes & + fi + + NOMOUNT="$(echo $XBMC_PARAMS | grep nodiskmount)" + if [ ! -n "$NOMOUNT" ]; then + log_warning_msg "Mounting local disks..." + /usr/bin/diskmounter & + fi + + # if usplash is running, make sure to stop it now, yes "start" kills it. + if pidof usplash > /dev/null; then + DO_NOT_SWITCH_VT=yes /etc/init.d/usplash start + fi + fi + fi + log_action_end_msg 0 +} + +do_stop() { + touch /tmp/noRestartXBMC + if [ -f /home/xbmc/.xsession ]; then + rm /home/xbmc/.xsession + fi + + if [ "$(pidof xbmc.bin)" ] ; then + killall xbmc.bin + sleep 1 + fi + + if [ -f /tmp/noRestartXBMC ]; then + rm /tmp/noRestartXBMC + fi +} + +case "$1" in +start) + do_start + ;; +stop) + do_stop + ;; +restart|force-reload) + do_stop + do_start + ;; +*) + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 + exit 3 + ;; +esac + +exit 0 diff --git a/tools/Linux/debian/xbmc-live.install b/tools/Linux/packaging/debian/xbmc-live.install index 2732055d9c..2732055d9c 100644 --- a/tools/Linux/debian/xbmc-live.install +++ b/tools/Linux/packaging/debian/xbmc-live.install diff --git a/tools/Linux/debian/xbmc-live.manpages b/tools/Linux/packaging/debian/xbmc-live.manpages index 4785b88a73..4785b88a73 100644 --- a/tools/Linux/debian/xbmc-live.manpages +++ b/tools/Linux/packaging/debian/xbmc-live.manpages diff --git a/tools/Linux/packaging/debian/xbmc-live.postinst b/tools/Linux/packaging/debian/xbmc-live.postinst new file mode 100755 index 0000000000..24643ff99c --- /dev/null +++ b/tools/Linux/packaging/debian/xbmc-live.postinst @@ -0,0 +1,147 @@ +#!/bin/sh + +set -e + +case "$1" in + configure) + sed -i.bak-xbmc-live s/allowed_users=console/allowed_users=anybody/ /etc/X11/Xwrapper.config + + # Add the 'xbmc' user if the primary one is missing + xbmcUser=$(getent passwd 1000 | sed -e 's/\:.*//') + if [ ! -n "$xbmcUser" ]; then + adduser --gecos "XBMC Live User" xbmc + xbmcUser=xbmc + fi + + # Add 'xbmcUser' user to the appropriate groups + # Below is a listing of groups and their purpose + # adm - For reading system logs (minimal systems may have this user only) + # sudo - allow optional passwordless sudo (with trivial intervention on /etc/sudoers) + # cdrom - optical disc drive access + # floppy - floppy drive access + # audio - audio device access + # video - video device access + # plugdev - enable automatic notifications of new devices + # netdev - managing network connections via NetworkManager + # powerdev - to be able to hibernate/suspend + # fuse - to be able to mount filesystems as normal user + GROUPS="adm + sudo + cdrom + floppy + audio + video + plugdev + netdev + powerdev + fuse" + + # TODO: this probably isn't necessary anymore as PolicyKit is now being + # used + for GROUP in $GROUPS; do + if getent group $GROUP >/dev/null && \ + ! getent group $GROUP | grep -q $xbmcUser; then + adduser $xbmcUser $GROUP + fi + done + + # Add xbmc to the sudoers file (if not already done) + if ! grep -i -q XBMC-specific /etc/sudoers ; then + echo "" >> /etc/sudoers + echo "# XBMC" >> /etc/sudoers + echo "# XBMC-specific configuration" >> /etc/sudoers + echo "# XBMC" >> /etc/sudoers + echo "Cmnd_Alias SHUTDOWN_CMDS = /sbin/shutdown, /sbin/reboot, /sbin/halt # XBMC" >> /etc/sudoers + echo "Cmnd_Alias MOUNT_CMDS = /bin/mount, /bin/umount # XBMC" >> /etc/sudoers + echo "$xbmcUser ALL=(ALL) ALL" >> /etc/sudoers + echo "$xbmcUser ALL=NOPASSWD: SHUTDOWN_CMDS, MOUNT_CMDS # XBMC" >> /etc/sudoers + fi + + # Our set of PolicyKit actions + + # This is a list of actions that the 'xbmc' user should be allowed to + # do. If we missed one, or we have one that's not necessary, please + # submit a bug report. + POLKIT_ACTIONS="org.freedesktop.hal.dockstation.undock + org.freedesktop.hal.wol.enabled + org.freedesktop.hal.wol.enable + org.freedesktop.hal.wol.supported + org.freedesktop.hal.leds.brightness + org.freedesktop.hal.device-access.audio-player + org.freedesktop.hal.device-access.camera + org.freedesktop.hal.device-access.cdrom + org.freedesktop.hal.device-access.dvb + org.freedesktop.hal.device-access.fingerprint-reader + org.freedesktop.hal.device-access.floppy + org.freedesktop.hal.device-access.ieee1394-avc + org.freedesktop.hal.device-access.ieee1394-iidc + org.freedesktop.hal.device-access.joystick + org.freedesktop.hal.device-access.mouse + org.freedesktop.hal.device-access.obex + org.freedesktop.hal.device-access.pda + org.freedesktop.hal.device-access.printer + org.freedesktop.hal.device-access.scanner + org.freedesktop.hal.device-access.sound + org.freedesktop.hal.device-access.video + org.freedesktop.hal.device-access.video4linux + org.freedesktop.hal.lock + org.freedesktop.hal.killswitch.bluetooth + org.freedesktop.hal.killswitch.wlan + org.freedesktop.hal.killswitch.wwan + org.freedesktop.hal.storage.mount-removable + org.freedesktop.hal.storage.eject + org.freedesktop.hal.storage.crypto-setup-removable + org.freedesktop.hal.power-management.shutdown + org.freedesktop.hal.power-management.reboot + org.freedesktop.hal.power-management.set-powersave + org.freedesktop.hal.power-management.suspend + org.freedesktop.hal.power-management.hibernate + org.freedesktop.hal.power-management.cpufreq + org.freedesktop.hal.power-management.lcd-panel + org.freedesktop.hal.power-management.light-sensor + org.freedesktop.hal.power-management.keyboard-backlight" + + # Grant the 'xbmc' user each action from the list if not done already + for ACTION in $POLKIT_ACTIONS; do + if polkit-auth --user $xbmcUser --show-obtainable | \ + grep -q $ACTION; then + polkit-auth --user $xbmcUser --grant $ACTION + fi + done + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# Upstart scripts tested on karmic only and not backward compatible ATM +if [ "$(lsb_release -c | grep karmic)" ]; then + if [ -f "/etc/init.d/xbmc-live" ]; then + rm /etc/init.d/xbmc-live >/dev/null + update-rc.d -f xbmc-live remove >/dev/null + fi + + ln -s /lib/init/upstart-job /etc/init.d/xbmc-live +else + if [ -f "/etc/init/xbmc-live.conf" ]; then + rm /etc/init/xbmc-live.conf >/dev/null + fi + if [ -f "/etc/init/xbmc-live-install" ]; then + rm /etc/init/xbmc-live-install.conf >/dev/null + fi + + if [ -x "/etc/init.d/xbmc-live" ]; then + update-rc.d xbmc-live defaults >/dev/null + if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + invoke-rc.d xbmc-live start || exit $? + else + /etc/init.d/xbmc-live start || exit $? + fi + fi +fi +exit 0 diff --git a/tools/Linux/packaging/debian/xbmc-live.postrm b/tools/Linux/packaging/debian/xbmc-live.postrm new file mode 100755 index 0000000000..209173aefc --- /dev/null +++ b/tools/Linux/packaging/debian/xbmc-live.postrm @@ -0,0 +1,76 @@ +#!/bin/sh + +set -e +if [ "$1" = "purge" ] +then + sed -i -e "/XBMC/d" /etc/sudoers + + POLKIT_ACTIONS="org.freedesktop.hal.dockstation.undock + org.freedesktop.hal.wol.enabled + org.freedesktop.hal.wol.enable + org.freedesktop.hal.wol.supported + org.freedesktop.hal.leds.brightness + org.freedesktop.hal.device-access.audio-player + org.freedesktop.hal.device-access.camera + org.freedesktop.hal.device-access.cdrom + org.freedesktop.hal.device-access.dvb + org.freedesktop.hal.device-access.fingerprint-reader + org.freedesktop.hal.device-access.floppy + org.freedesktop.hal.device-access.ieee1394-avc + org.freedesktop.hal.device-access.ieee1394-iidc + org.freedesktop.hal.device-access.joystick + org.freedesktop.hal.device-access.mouse + org.freedesktop.hal.device-access.obex + org.freedesktop.hal.device-access.pda + org.freedesktop.hal.device-access.printer + org.freedesktop.hal.device-access.scanner + org.freedesktop.hal.device-access.sound + org.freedesktop.hal.device-access.video + org.freedesktop.hal.device-access.video4linux + org.freedesktop.hal.lock + org.freedesktop.hal.killswitch.bluetooth + org.freedesktop.hal.killswitch.wlan + org.freedesktop.hal.killswitch.wwan + org.freedesktop.hal.storage.mount-removable + org.freedesktop.hal.storage.eject + org.freedesktop.hal.storage.crypto-setup-removable + org.freedesktop.hal.power-management.shutdown + org.freedesktop.hal.power-management.reboot + org.freedesktop.hal.power-management.set-powersave + org.freedesktop.hal.power-management.suspend + org.freedesktop.hal.power-management.hibernate + org.freedesktop.hal.power-management.cpufreq + org.freedesktop.hal.power-management.lcd-panel + org.freedesktop.hal.power-management.light-sensor + org.freedesktop.hal.power-management.keyboard-backlight" + + # Grant the 'xbmc' user each action from the list if not done already + for ACTION in $POLKIT_ACTIONS; do + if polkit-auth --user xbmc --show-obtainable | \ + grep -q $ACTION; then + polkit-auth --user xbmc --revoke $ACTION + fi + done + + sed -i s/allowed_users=anybody/allowed_users=console/ /etc/X11/Xwrapper.config + if [ -f "/etc/X11/Xwrapper.config.bak-xbmc-live" ]; then + rm /etc/X11/Xwrapper.config.bak-xbmc-live > /dev/null + fi + + deluser xbmc + + if [ -f "/etc/init.d/xbmc-live" ]; then + rm /etc/init.d/xbmc-live >/dev/null + fi + if [ -f "/etc/init/xbmc-live.conf" ]; then + rm /etc/init/xbmc-live.conf >/dev/null + fi + if [ -f "/etc/init/xbmc-live-install" ]; then + rm /etc/init/xbmc-live-install.conf >/dev/null + fi +fi + +update-rc.d -f xbmc-live remove >/dev/null + +exit 0 + diff --git a/tools/Linux/debian/xbmc-scripts-example.install b/tools/Linux/packaging/debian/xbmc-scripts-example.install index a8d3ff846d..a8d3ff846d 100644 --- a/tools/Linux/debian/xbmc-scripts-example.install +++ b/tools/Linux/packaging/debian/xbmc-scripts-example.install diff --git a/tools/Linux/debian/xbmc-skin-confluence.install b/tools/Linux/packaging/debian/xbmc-skin-confluence.install index 3700d539a1..3700d539a1 100644 --- a/tools/Linux/debian/xbmc-skin-confluence.install +++ b/tools/Linux/packaging/debian/xbmc-skin-confluence.install diff --git a/tools/Linux/debian/xbmc-skin-pm3-hd.install b/tools/Linux/packaging/debian/xbmc-skin-pm3-hd.install index 5b8c81ed6c..5b8c81ed6c 100644 --- a/tools/Linux/debian/xbmc-skin-pm3-hd.install +++ b/tools/Linux/packaging/debian/xbmc-skin-pm3-hd.install diff --git a/tools/Linux/debian/xbmc-skin-pm3-hd.links b/tools/Linux/packaging/debian/xbmc-skin-pm3-hd.links index c3b7e2cd06..c3b7e2cd06 100644 --- a/tools/Linux/debian/xbmc-skin-pm3-hd.links +++ b/tools/Linux/packaging/debian/xbmc-skin-pm3-hd.links diff --git a/tools/Linux/debian/xbmc-standalone.install b/tools/Linux/packaging/debian/xbmc-standalone.install index 67465525c9..67465525c9 100644 --- a/tools/Linux/debian/xbmc-standalone.install +++ b/tools/Linux/packaging/debian/xbmc-standalone.install diff --git a/tools/Linux/debian/xbmc-standalone.manpages b/tools/Linux/packaging/debian/xbmc-standalone.manpages index 3508af7ca7..3508af7ca7 100644 --- a/tools/Linux/debian/xbmc-standalone.manpages +++ b/tools/Linux/packaging/debian/xbmc-standalone.manpages diff --git a/tools/Linux/debian/xbmc-web-pm3.install b/tools/Linux/packaging/debian/xbmc-web-pm3.install index 08f41ed565..08f41ed565 100644 --- a/tools/Linux/debian/xbmc-web-pm3.install +++ b/tools/Linux/packaging/debian/xbmc-web-pm3.install diff --git a/tools/Linux/debian/xbmc.lintian-overrides b/tools/Linux/packaging/debian/xbmc.lintian-overrides index 0043e1c5b6..0043e1c5b6 100644 --- a/tools/Linux/debian/xbmc.lintian-overrides +++ b/tools/Linux/packaging/debian/xbmc.lintian-overrides |