summaryrefslogtreecommitdiff
path: root/app-misc/sabayon-mce
diff options
context:
space:
mode:
Diffstat (limited to 'app-misc/sabayon-mce')
-rw-r--r--app-misc/sabayon-mce/Manifest6
-rw-r--r--app-misc/sabayon-mce/files/1.1/bin/sabayon-mce-session3
-rw-r--r--app-misc/sabayon-mce/files/1.1/bin/sabayon-mce-start18
-rw-r--r--app-misc/sabayon-mce/files/1.1/bin/sabayon-mce-startx171
-rw-r--r--app-misc/sabayon-mce/files/1.1/init.d/sabayon-mce41
-rw-r--r--app-misc/sabayon-mce/files/1.1/xsession/sabayon-mce.desktop8
-rw-r--r--app-misc/sabayon-mce/sabayon-mce-1.1-r1.ebuild56
7 files changed, 303 insertions, 0 deletions
diff --git a/app-misc/sabayon-mce/Manifest b/app-misc/sabayon-mce/Manifest
new file mode 100644
index 00000000..ab0d505a
--- /dev/null
+++ b/app-misc/sabayon-mce/Manifest
@@ -0,0 +1,6 @@
+AUX 1.1/bin/sabayon-mce-session 67 RMD160 ecb8a619ef1b8c24027a8645546aaa8ade67a0c3 SHA1 b47675404b79a106483a7346c5076c3704f6f9b8 SHA256 456a32721da17c42e4cd3ff33a619acbbcba94de3394003a2bc0a747b55c2c10
+AUX 1.1/bin/sabayon-mce-start 528 RMD160 d7456e2a140c4052dd17084c82602fcf484c0126 SHA1 d99ae41ef4b48be71de5e4abd173ed53dfdbe50b SHA256 4dadf0e7a5d6eb5144c40391e181dc16f91c5aa95944248ec69124acf4325983
+AUX 1.1/bin/sabayon-mce-startx 4376 RMD160 1a580f9a7d90888efeea725835314c5ff4667760 SHA1 2a67bde14cb92f244bc16bba22173e4688b4eefe SHA256 4443354db9f8d44ec52c3b76ce46179f666e990fde9f0673d9eebb3bf02424a8
+AUX 1.1/init.d/sabayon-mce 835 RMD160 ef59ade2e9da6219bc31fcd41a0206d2c8d3f635 SHA1 fe42a50c7134e0d5ddf745942c248a7b3a326500 SHA256 bacbc7a42986da1d0de7c889a16d5c8acad39ba2c4f09df453682cf46a3936c8
+AUX 1.1/xsession/sabayon-mce.desktop 171 RMD160 52b8a3457819fa93ff3f14c9ec9ee13935602d41 SHA1 2eb008a480813179fd01a951046faa6f3fe4e6a4 SHA256 28c4770d694038dff9ac3c8d116239491d0ddc95a0deeaa0adf6e6ea0753bb8b
+EBUILD sabayon-mce-1.1-r1.ebuild 1173 RMD160 f5459e2c75c1eba6c5665a1841c7984abf71bcad SHA1 066787eca9d6f68d25b3650f27114d9913079c66 SHA256 5ff266b3c0290390a8e9accc35539a643da34c1283eaef5de36b7d4fca2ddd8b
diff --git a/app-misc/sabayon-mce/files/1.1/bin/sabayon-mce-session b/app-misc/sabayon-mce/files/1.1/bin/sabayon-mce-session
new file mode 100644
index 00000000..66d0ed03
--- /dev/null
+++ b/app-misc/sabayon-mce/files/1.1/bin/sabayon-mce-session
@@ -0,0 +1,3 @@
+#!/bin/sh
+# Start Xbox Media Center
+exec /usr/bin/xbmc --standalone \ No newline at end of file
diff --git a/app-misc/sabayon-mce/files/1.1/bin/sabayon-mce-start b/app-misc/sabayon-mce/files/1.1/bin/sabayon-mce-start
new file mode 100644
index 00000000..ff2f9ee2
--- /dev/null
+++ b/app-misc/sabayon-mce/files/1.1/bin/sabayon-mce-start
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# setup
+myxinitrc="/usr/bin/sabayon-mce-session"
+myuser="sabayonmce"
+mcepid="/var/sabayonmce/.mcepid"
+
+# make sure samba is started
+[[ -f "/etc/init.d/samba" ]] && /etc/init.d/samba start &> /dev/null
+
+# Kill previous instance running since
+# /etc/init.d/xdm does not support PIDFILE for
+# custom DISPLAYMANAGER
+[[ -f "$mcepid" ]] && kill $(cat $mcepid) &> /dev/null
+
+# spawn!
+echo $$ > /var/run/sabayon-mce-start.pid
+su - ${myuser} -c "source /etc/profile && /usr/bin/sabayon-mce-startx ${myxinitrc} &> /dev/null" &
diff --git a/app-misc/sabayon-mce/files/1.1/bin/sabayon-mce-startx b/app-misc/sabayon-mce/files/1.1/bin/sabayon-mce-startx
new file mode 100644
index 00000000..21ca87e8
--- /dev/null
+++ b/app-misc/sabayon-mce/files/1.1/bin/sabayon-mce-startx
@@ -0,0 +1,171 @@
+#!/bin/sh
+
+# $Xorg: startx.cpp,v 1.3 2000/08/17 19:54:29 cpqbld Exp $
+#
+# This is just a sample implementation of a slightly less primitive
+# interface than xinit. It looks for user .xinitrc and .xserverrc
+# files, then system xinitrc and xserverrc files, else lets xinit choose
+# its default. The system xinitrc should probably do things like check
+# for .Xresources files and merge them in, startup up a window manager,
+# and pop a clock and serveral xterms.
+#
+# Site administrators are STRONGLY urged to write nicer versions.
+#
+# $XFree86: xc/programs/xinit/startx.cpp,v 3.16tsi Exp $
+
+
+userclientrc="$1"
+sysclientrc="$1"
+
+pidfilepath="$HOME/.mcepid"
+userserverrc="$HOME/.xserverrc"
+sysserverrc=/etc/X11/xinit/xserverrc
+defaultclientargs=""
+defaultserverargs="-nolisten tcp -br vt07"
+clientargs=""
+serverargs=""
+
+enable_xauth=1
+
+if [ -f $userclientrc ]; then
+ defaultclientargs=$userclientrc
+elif [ -f $sysclientrc ]; then
+ defaultclientargs=$sysclientrc
+fi
+
+if [ x"$display" != x ]; then
+ export DISPLAY=$display
+else
+ export DISPLAY=:0
+fi
+
+
+if [ -f $userserverrc ]; then
+ defaultserverargs=$userserverrc
+elif [ -f $sysserverrc ]; then
+ defaultserverargs=$sysserverrc
+fi
+
+whoseargs="client"
+while [ x"$1" != x ]; do
+ case "$1" in
+ /''*|\.*) if [ "$whoseargs" = "client" ]; then
+ if [ "x$clientargs" = x ]; then
+ clientargs="$1"
+ else
+ clientargs="$clientargs $1"
+ fi
+ else
+ if [ "x$serverargs" = x ]; then
+ serverargs="$1"
+ else
+ serverargs="$serverargs $1"
+ fi
+ fi ;;
+ --) whoseargs="server" ;;
+ *) if [ "$whoseargs" = "client" ]; then
+ if [ "x$clientargs" = x ]; then
+ clientargs="$defaultclientargs $1"
+ else
+ clientargs="$clientargs $1"
+ fi
+ else
+ case "$1" in
+ :[0-9]*) display="$1"; serverargs="$serverargs $1";;
+ *) serverargs="$serverargs $1" ;;
+ esac
+ fi ;;
+ esac
+ shift
+done
+
+if [ x"$clientargs" = x ]; then
+ clientargs="$defaultclientargs"
+fi
+if [ x"$serverargs" = x ]; then
+ serverargs="$defaultserverargs"
+fi
+
+if [ x"$enable_xauth" = x1 ] ; then
+ if [ x"$XAUTHORITY" = x ]; then
+ XAUTHORITY=$HOME/.Xauthority
+ export XAUTHORITY
+ fi
+
+ removelist=
+
+ # set up default Xauth info for this machine
+ case `uname` in
+ Linux*)
+ if [ -z "`hostname --version 2>&1 | grep GNU`" ]; then
+ hostname=`hostname -f`
+ else
+ hostname=`hostname`
+ fi
+ ;;
+ *)
+ hostname=`hostname`
+ ;;
+ esac
+
+ authdisplay=${display:-:0}
+
+ mcookie=`/usr/bin/mcookie`
+
+ dummy=0
+
+ # create a file with auth information for the server. ':0' is a dummy.
+ xserverauthfile=$HOME/.serverauth.$$
+ trap "rm -f $xserverauthfile" HUP INT QUIT ILL TRAP KILL BUS TERM
+ xauth -q -f $xserverauthfile << EOF
+add :$dummy . $mcookie
+EOF
+ serverargs=${serverargs}" -auth "${xserverauthfile}
+
+ # now add the same credentials to the client authority file
+ # if '$displayname' already exists do not overwrite it as another
+ # server man need it. Add them to the '$xserverauthfile' instead.
+ for displayname in $authdisplay $hostname$authdisplay; do
+ authcookie=`xauth list "$displayname" \
+ | sed -n "s/.*$displayname[[:space:]*].*[[:space:]*]//p"` 2>/dev/null;
+ if [ "z${authcookie}" = "z" ] ; then
+ xauth -q << EOF
+add $displayname . $mcookie
+EOF
+ removelist="$displayname $removelist"
+ else
+ dummy=$(($dummy+1));
+ xauth -q -f $xserverauthfile << EOF
+add :$dummy . $authcookie
+EOF
+ fi
+ done
+fi
+
+cleanup() {
+
+ [ -n "$PID" ] && kill $PID > /dev/null 2>&1
+ if [ x"$enable_xauth" = x1 ] ; then
+ if [ x"$removelist" != x ]; then
+ xauth remove $removelist
+ fi
+ if [ x"$xserverauthfile" != x ]; then
+ rm -f $xserverauthfile
+ fi
+ fi
+
+}
+
+
+trap cleanup 0
+
+xinit $clientargs -- $serverargs -deferglyphs 16 &
+
+PID=$!
+
+# Write pid to pid file
+echo $PID > $pidfilepath
+
+wait $PID
+
+unset PID
diff --git a/app-misc/sabayon-mce/files/1.1/init.d/sabayon-mce b/app-misc/sabayon-mce/files/1.1/init.d/sabayon-mce
new file mode 100644
index 00000000..0dba609b
--- /dev/null
+++ b/app-misc/sabayon-mce/files/1.1/init.d/sabayon-mce
@@ -0,0 +1,41 @@
+#!/sbin/runscript
+# Copyright 2012 Sabayon
+
+depend() {
+ # In this way autologin settings are overwritten
+ after mtab sabayonlive
+ before xdm
+ need net
+}
+
+start() {
+
+ SABAYON_USER="sabayonmce"
+ source /sbin/rogentos-functions.sh
+
+ if sabayon_is_mce; then
+
+ ebegin "Sabayon Media Center mode enabled"
+
+ # setup default .dmrc
+ echo "[Desktop]" > /var/sabayonmce/.dmrc
+ echo "Session=sabayon-mce" >> /var/sabayonmce/.dmrc
+ chown sabayonmce /var/sabayonmce/.dmrc
+ if [ -x "/usr/libexec/gdm-set-default-session" ]; then
+ # oh my fucking glorious god, this
+ # is AccountsService bullshit
+ # cross fingers
+ /usr/libexec/gdm-set-default-session sabayon-mce
+ fi
+
+ sabayon_setup_autologin
+
+ elif ! sabayon_is_live && ! sabayon_is_mce; then
+ ebegin "Sabayon Media Center mode disabled"
+ sabayon_disable_autologin
+ fi
+
+ eend 0
+
+}
+
diff --git a/app-misc/sabayon-mce/files/1.1/xsession/sabayon-mce.desktop b/app-misc/sabayon-mce/files/1.1/xsession/sabayon-mce.desktop
new file mode 100644
index 00000000..46d11f10
--- /dev/null
+++ b/app-misc/sabayon-mce/files/1.1/xsession/sabayon-mce.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Sabayon Media Center
+Comment=This session loads Sabayon in Media Center mode
+Exec=/usr/bin/sabayon-mce-session
+Icon=
+Type=Application
+
diff --git a/app-misc/sabayon-mce/sabayon-mce-1.1-r1.ebuild b/app-misc/sabayon-mce/sabayon-mce-1.1-r1.ebuild
new file mode 100644
index 00000000..885bdad8
--- /dev/null
+++ b/app-misc/sabayon-mce/sabayon-mce-1.1-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 2004-2012 Sabayon
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils
+
+DESCRIPTION="Sabayon Linux Media Center Infrastructure"
+HOMEPAGE="http://www.sabayon.org/"
+SRC_URI=""
+
+RESTRICT="nomirror"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+IUSE=""
+
+RDEPEND="media-tv/xbmc
+ >=app-misc/rogentoslive-tools-1.0"
+DEPEND=""
+
+S="${WORKDIR}"
+
+src_unpack() {
+ cp "${FILESDIR}"/${PV}/* "${WORKDIR}"/ -Rp || die "cannot unpack"
+}
+
+src_install () {
+
+ cd "${WORKDIR}"/init.d
+ newinitd sabayon-mce sabayon-mce
+
+ cd "${WORKDIR}"/bin
+ exeinto /usr/bin
+ doexe *
+
+ cd "${WORKDIR}"/xsession
+ dodir /usr/share/xsessions
+ insinto /usr/share/xsessions
+ doins *.desktop
+
+}
+
+pkg_postinst() {
+ # create new user sabayonmce
+ local mygroups="users"
+ for mygroup in lp wheel uucp audio cdrom scanner video cdrw usb plugdev polkituser; do
+ if [[ -n $(egetent group "${mygroup}") ]]; then
+ mygroups+=",${mygroup}"
+ fi
+ done
+ enewuser sabayonmce -1 /bin/sh /var/sabayonmce "${mygroups}"
+
+ elog "For those who are using <=Sabayon-5.1 as Media Center:"
+ elog "PLEASE update DISPLAYMANAGER= in /etc/conf.d/xdm"
+ elog "setting it to gdm or kdm."
+
+}