--- deejayd-0.9.0.orig/debian/deejayd.manpages +++ deejayd-0.9.0/debian/deejayd.manpages @@ -0,0 +1,2 @@ +man/deejayd.1 +man/deejayd.conf.5 --- deejayd-0.9.0.orig/debian/changelog +++ deejayd-0.9.0/debian/changelog @@ -0,0 +1,248 @@ +deejayd (0.9.0-2ubuntu1) lucid; urgency=low + + * Build test. + + -- Bhavani Shankar Sun, 15 Nov 2009 11:12:12 +0530 + +deejayd (0.9.0-2) unstable; urgency=low + + * Xorg related scripts : fix auth files created in / by passing -t to mktemp. + * Fix another bashism in /etc/init.d/deejayd. + * Really fix build with python2.6 by applying patch from Kumar Appaiah + (Closes: #547815). + + -- Alexandre Rossi Tue, 13 Oct 2009 20:48:47 +0200 + +deejayd (0.9.0-1) unstable; urgency=low + + * New upstream version. + + -- Alexandre Rossi Tue, 22 Sep 2009 07:58:33 +0200 + +deejayd (0.8.3-2) unstable; urgency=low + + * Xorg connection scripts : + - do not force mktemp to use /tmp. + - fix possible bashisms in related scripts. + - ensure required variables have default values. + - change [ -r $filepath ] to [ -r "$filepath" ] in scripts to ensure proper + behaviour. + - when using the provided Xorg initscript, ensure the X server is ready to + accept connections before trying to launch the X clients. + * Update to policy 3.8.3 (nothing to do). + + -- Alexandre Rossi Wed, 26 Aug 2009 22:05:34 +0200 + +deejayd (0.8.3-1) UNRELEASED; urgency=low + + * New upstream release ensuring compatility with Firefox/Iceweasel >= 3.5 . + * Improve how Deejayd can connect to Xorg, see README.Debian and comments + in /etc/default/deejayd . + * Update to policy 3.8.2 (nothing to do). + + -- Alexandre Rossi Mon, 06 Jul 2009 07:25:10 +0200 + +deejayd (0.8.2-1) UNRELEASED; urgency=low + + * New upstream version fixing playback of albums lacking album art. + + -- Alexandre Rossi Sun, 24 May 2009 10:30:52 +0200 + +deejayd (0.8.1-1) UNRELEASED; urgency=low + + * New upstream version. + * Add new deejayd-webui-extension binary package. + * Remove the djc binary package and include the djc script in the + deejayd-client binary package. + * Improve debian/rules clean target by making it remove all .pyc files. + * Bump standards version to 3.8.1 : + - Ensure the start action of the init script does not start the daemon + again. + * Fixed default file (/etc/default/deejayd). + * Do not process the deejayd-webui-extension packages with dh_pycentral. + * Added NEWS to installed doc. + * Update Vcs-Browser field. + * Simplify clean rule thanks to upstream improvements (Closes: #535374). + * Add upstream tarball embbedded JQuery copy licence information to + debian/copyright. + * Fix build with Python 2.6 as distutils file locations change from + site-packages to dist-packages, for public modules (LP: #351626). + + -- Alexandre Rossi Thu, 21 May 2009 15:09:11 +0200 + +deejayd (0.7.2-2) unstable; urgency=low + + * Update to policy 3.8.0 (nothing to do). + * Add a README.Debian files for configuration information. + * Allow whitespace characters in activated_modes configuration variable. + * Upstream provided fixes for Firefox 3 in the XUL webui (search box and + others). + * Remove Debian specific manpages which have been included upstream (and + backport build system into this version). + * Some cleanups in debian/rules clean target. + + -- Alexandre Rossi Wed, 23 Jul 2008 00:06:48 +0200 + +deejayd (0.7.2-1) unstable; urgency=low + + * New upstream release. + * Added replaygain scanning script to installed files (in docs). + + -- Alexandre Rossi Thu, 15 May 2008 21:20:56 +0200 + +deejayd (0.7.1-3) unstable; urgency=low + + * Fix medialist sql request. + + -- Alexandre Rossi Mon, 05 May 2008 20:17:38 +0200 + +deejayd (0.7.1-2) unstable; urgency=low + + * Handle permission denied on rdf dir for webui. + * Put back bind_adresses comment in config file. + * Ensure that what is out of the sqlite db is utf-8, which prevents crashing + of at least the add-to-playlist command when used with non-ascii characters. + + -- Alexandre Rossi Sat, 03 May 2008 11:35:17 +0200 + +deejayd (0.7.1-1) unstable; urgency=low + + * New upstream release. + * Add missing build indep dep on gettext. + * Ensure binary packages versions consistency. + * Minor fix to short description. + * Make deps compatible with python (>= 2.5) with celementtree and ctypes in + the standard library. + + -- Alexandre Rossi Wed, 16 Apr 2008 21:59:42 +0200 + +deejayd (0.7.0-1) unstable; urgency=low + + * New upstream release. + * Do not declare a useless virtual package deejayd-mediabackend + (Closes: #472451). + * Fix log rotation using new log reopen on SIGHUP feature. + * Add upstream NEWS to docs. + * Fix watch file. + + -- Alexandre Rossi Sat, 29 Mar 2008 19:22:16 +0100 + +deejayd (0.6.3-6) unstable; urgency=low + + * Initial upload to Debian (Closes: #463973). + * Fix debian/copyright to state that some uptream files are GPL v2 only. + * pycentral Bug 452227 is fixed so removed related workaround in + debian/rules. + + -- Alexandre Rossi Tue, 18 Mar 2008 07:55:11 +0100 + +deejayd (0.6.3-5) unstable; urgency=low + + * Remove useless mediadb dir in default config. + * Make audio/video drivers default to auto. + * Logrotate support. + * Listen on localhost by default. + + -- Alexandre Rossi Mon, 10 Mar 2008 23:13:40 +0100 + +deejayd (0.6.3-4) unstable; urgency=low + + * Backported upstream patches : + - [webui] do not make tagless media files crash the javascript + - [mediadb] asf support + - do not fail to start if webui is not installed + - [webui] fix title + - [djc] fix audio_search args order to be consistent with doc + - [deejayd] add Flac support + * Remove useless tests.py file in debian diff. + * Point VCS browser link directly to src/ dir. + + -- Alexandre Rossi Sat, 08 Mar 2008 12:54:21 +0100 + +deejayd (0.6.3-3) unstable; urgency=low + + * Fixes thanks to comments from Steve Greenland : + - Remove duplicate debian/debian content. + - Use a GNU Make pattern rule to build manpages in debian/rules. + + -- Alexandre Rossi Thu, 06 Mar 2008 07:35:18 +0100 + +deejayd (0.6.3-2) unstable; urgency=low + + * Fixes thanks to comments from nijel@d.o (LSB, Build-Depends-Indep). + + -- Alexandre Rossi Thu, 28 Feb 2008 19:01:14 +0100 + +deejayd (0.6.3-1) unstable; urgency=low + + * New upstream release. + + -- Alexandre Rossi Sun, 10 Feb 2008 22:12:45 +0100 + +deejayd (0.6.2-1) UNRELEASED; urgency=low + + * 0.6.2 Release. + * Changes since 0.6.1 + * fix in xine backend + * correctly hide cursor + * fix xine event callback + * fix in mediadb (skip file with bad caracter) + + -- Mickael Royer Sun, 03 Feb 2008 09:47:15 +0100 + +deejayd (0.6.1-1) UNRELEASED; urgency=low + + * 0.6.1 Release. + * Changes since 0.6.0 + * fix important bug in xine backend + * fix symlinks support in audio/video library + + -- Mickael Royer Mon, 28 Jan 2008 23:08:19 +0100 + +deejayd (0.6.0-1) UNRELEASED; urgency=low + + * 0.6.0 Release. + * Changes since 0.5.0 + * rewrite xine backend to use ctypes + * xine : add gapless support + * improve video mode + * add signaling support + * add inotify support to update audio/video library + * improve webui performance + * add i18n support (only french translation is available for now) + * A lot of cleanups and bugfixes + + -- Mickael Royer Sat, 26 Jan 2008 17:22:49 +0100 + +deejayd (0.5.0-1) UNRELEASED; urgency=low + + * 0.5.0 Release. + * Changes since 0.4.1 + * xine backend : close stream when no media has been played + * integrate webui in deejayd. Ajaxdj is useless now + * support all commands in library client and djc + * A lot of cleanups and bugfixes + + -- Mickael Royer Wed, 26 Dec 2007 10:42:18 +0100 + +deejayd (0.4.1-1) UNRELEASED; urgency=low + + * 0.4.1 Release. + * Changes since 0.4 + * Fix bugs in mediadb and video source + * Fix documentation generation and update it + + -- Mickael Royer Sat, 10 Nov 2007 23:57:08 +0100 + +deejayd (0.4-1) UNRELEASED; urgency=low + + * 0.4 Release. + * Changes since 0.2 + * Add dvd support + * Add a python library client + * Add a command line client : djc + * Improve performance and memory usage with the use of celementtree module + * A lot of cleanups and bugfixes + + -- Mickael Royer Sun, 4 Nov 2007 18:32:31 +0100 + --- deejayd-0.9.0.orig/debian/deejayd-webui.install +++ deejayd-0.9.0/debian/deejayd-webui.install @@ -0,0 +1,2 @@ +usr/lib/python*/*-packages/deejayd/webui/*.py +usr/share/deejayd/htdocs/* --- deejayd-0.9.0.orig/debian/deejayd.docs +++ deejayd-0.9.0/debian/deejayd.docs @@ -0,0 +1,2 @@ +debian/tmp/usr/share/doc/deejayd/* +NEWS --- deejayd-0.9.0.orig/debian/deejayd-webui-extension.links +++ deejayd-0.9.0/debian/deejayd-webui-extension.links @@ -0,0 +1 @@ +/usr/share/mozilla-extensions/deejayd-webui /usr/lib/iceweasel/extensions/webui@deejayd.net --- deejayd-0.9.0.orig/debian/deejayd-xine.install +++ deejayd-0.9.0/debian/deejayd-xine.install @@ -0,0 +1,2 @@ +usr/lib/python*/*-packages/deejayd/player/xine.py +usr/lib/python*/*-packages/pytyxi/*.py --- deejayd-0.9.0.orig/debian/deejayd.default +++ deejayd-0.9.0/debian/deejayd.default @@ -0,0 +1,49 @@ +# Defaults for deejayd initscripts + +# Additional options that are passed to the Daemon. +DEEJAYD_DAEMON_OPTS="" + +# Because Deejayd supports video, it makes sense for it to connect to an X +# server, even when it runs as a daemon with the privileges of a dedicated +# user. The following methods are available : +# +# - "off" (default) +# Do not try to connect deejayd to a X server. +# +# - "standalone" +# A dedicated X server is launched for the deejayd user. +# +# Please note that in order to setup this mode, you : +# - can edit /etc/deejayd.xinitrc in order to setup X clients to hold +# the X session. +# - must allow users not logged into a console to start the X server. This +# is done using the following command : +# +# # dpkg-reconfigure x11-common +# +# Also note that in this mode, a X cookie is available for users that +# are in the 'video' group in $DEEJAYD_XAUTHORITY (see below for path). +# Therefore, accessing the Deejayd dedicated X server for other users +# than the deejayd user is just a matter of adding the following lines to +# your shell startup script (e.g. ~/.bashrc) : +# +# XAUTHORITY=/var/lib/deejayd/Xauthority +# export XAUTHORITY +# +# - "reuse" +# An existing X session is reused by making the X Cookie available to +# the Deejayd daemon at X session startup. This is done in +# /etc/X11/Xsession.d/50deejayd_steal-session and therefore your session +# needs to be restarted for this setting to be taken into account. +# +#DEEJAYD_XSERVER_METHOD=off +# +# "standalone" and "reuse" mode specific options +# +DEEJAYD_DISPLAYNAME=:0 +DEEJAYD_XAUTHORITY=/var/lib/deejayd/Xauthority +# +# "standalone" mode specific options +# +DEEJAYD_XINITRC=/etc/deejayd.xinitrc +DEEJAYD_XORG_DAEMON_OPTS="-nolisten tcp" --- deejayd-0.9.0.orig/debian/watch +++ deejayd-0.9.0/debian/watch @@ -0,0 +1,4 @@ +# Compulsory line, this is a version 3 file +version=3 + +http://mroy31.dyndns.org/~roy/archives/deejayd/ deejayd-([\d\.]*)\.tar\.gz --- deejayd-0.9.0.orig/debian/50deejayd_steal-session +++ deejayd-0.9.0/debian/50deejayd_steal-session @@ -0,0 +1,35 @@ +# This file is sourced by Xsession(5), not executed. + +# Steal X session for the deejayd user if that is configured to do so + +if [ -r /etc/default/deejayd ]; then + . /etc/default/deejayd + if [ "$DEEJAYD_XSERVER_METHOD" = "reuse" ]; then + # If we have an auth cookie matching the Deejayd configured DISPLAY, + # add it to the Deejayd auth cookie file. Also cleanup old auth cookies + # matching the same display. + DEEJAYD_DISPLAYNAME=${DEEJAYD_DISPLAYNAME:=:0.0} + if [ ! -z "$XAUTHORITY" ] && [ -r "$XAUTHORITY" ]; then + authcookie=`xauth list "$DEEJAYD_DISPLAYNAME" 2> /dev/null\ + | sed -n "s/.*$DEEJAYD_DISPLAYNAME[[:space:]*].*[[:space:]*]//p"` 2>/dev/null; + if [ -r "$DEEJAYD_XAUTHORITY" ]; then + # To change the $DEEJAYD_XAUTHORITY file, we must use a + # temporary file because xauth uses one of its own in the + # same directory, and we do not have write permission in this + # directory. + tmpauthfile=`mktemp -t deejayd-reuse.XXXXXX` + cp $DEEJAYD_XAUTHORITY $tmpauthfile + xauth -f $tmpauthfile remove $DEEJAYD_DISPLAYNAME + if [ "z${authcookie}" != "z" ]; then + xauth -f $tmpauthfile << EOF +add $DEEJAYD_DISPLAYNAME . $authcookie +EOF + fi + cp $tmpauthfile $DEEJAYD_XAUTHORITY + rm $tmpauthfile + fi + fi + fi +fi + +# vim:set ai et sts=2 sw=2 tw=80: --- deejayd-0.9.0.orig/debian/deejayd.postinst +++ deejayd-0.9.0/debian/deejayd.postinst @@ -0,0 +1,24 @@ +#!/bin/sh -e +DEEJAYD_USER=deejayd + +if ! getent passwd $DEEJAYD_USER >/dev/null; then + adduser --quiet --ingroup audio --system --no-create-home \ + --home /var/lib/deejayd $DEEJAYD_USER +fi + +# add deejayd to required groups +for group in audio video cdrom; do + if groups $DEEJAYD_USER | grep -w -q -v $group; then + adduser $DEEJAYD_USER $group + fi +done + +for i in /var/log/deejayd.log /var/lib/deejayd; +do + if ! dpkg-statoverride --list --quiet "$i" >/dev/null; then + dpkg-statoverride --force --quiet --update \ + --add deejayd audio 0755 "$i" + fi +done + +#DEBHELPER# --- deejayd-0.9.0.orig/debian/deejayd.init +++ deejayd-0.9.0/debian/deejayd.init @@ -0,0 +1,183 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: deejayd +# Required-Start: $local_fs $remote_fs +# Required-Stop: $local_fs $remote_fs +# Should-Start: alsa-utils +# Should-Stop: alsa-utils +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Launch deejayd media player daemon. +# Description: Prepare environement and launch the deejayd music player +# daemon. +### END INIT INFO + +# Author: Alexandre Rossi + +# Do NOT "set -e" + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="Deejayd media player daemon" +NAME=deejayd +DAEMON=/usr/bin/$NAME +DAEMON_USER=$NAME +HOME=/var/lib/$DAEMON_USER +PIDFILE=/var/run/$NAME.pid +LOGFILE=/var/log/$NAME.log +WEBUI_LOGFILE=/var/log/$NAME-webui.log +SCRIPTNAME=/etc/init.d/$NAME + + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +DAEMON_ARGS="-u $DAEMON_USER -g audio,cdrom,video -p $PIDFILE -l $LOGFILE -w $WEBUI_LOGFILE $DEEJAYD_DAEMON_OPTS" + +# Create logfiles if they do not exist +for FILE in "$LOGFILE" "$WEBUI_LOGFILE" +do + if [ ! -r "$FILE" ] + then + touch $FILE + chown deejayd:adm $FILE + fi +done + +# If X method is managed by Deejayd scripts (not "off"), create, if it does not +# exist, a dummy auth file with appropriate permissions: +# - for the user that starts X to be able to load auth cookies in it in +# "reuse" mode, +# - and for users in the 'video' group to be able to contact the X server +# in "standalone" mode. +if [ ! -z "$DEEJAYD_XSERVER_METHOD" ] &&\ + [ "$DEEJAYD_XSERVER_METHOD" != "off" ]; then + export XAUTHORITY=$DEEJAYD_XAUTHORITY + if [ ! -e "$DEEJAYD_XAUTHORITY" ]; then + # Just create a dummy auth file to make it have to appropriate file + # permissions. + touch $DEEJAYD_XAUTHORITY + chgrp video $DEEJAYD_XAUTHORITY && chmod 640 $DEEJAYD_XAUTHORITY + if [ "$DEEJAYD_XSERVER_METHOD" = "reuse" ]; then + chmod g+w $DEEJAYD_XAUTHORITY + fi + fi +fi + +# Load the VERBOSE setting and other rcS variables +. /lib/init/vars.sh + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. +. /lib/lsb/init-functions + +do_start() +{ + # Return + # 0 if daemon has been started + # 2 if daemon could not be started + is_alive && return 0 + start-stop-daemon --start --pidfile $PIDFILE --exec $DAEMON -- \ + $DAEMON_ARGS \ + || return 2 +} + +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + start-stop-daemon --user $DAEMON_USER --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + start-stop-daemon --user $DAEMON_USER --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + rm -f $PIDFILE + return "$RETVAL" +} + +do_reload() { + # + # If the daemon can reload its configuration without + # restarting (for example, when it is sent a SIGHUP), + # then implement that here. + # + start-stop-daemon --user $DAEMON_USER --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME + return 0 +} + +is_alive () { + ret=1 + if [ -r $PIDFILE ] ; then + pid=`cat $PIDFILE` + if [ -e /proc/$pid ] ; then + procname=`/bin/ps h -p $pid -C $NAME` + [ -n "$procname" ] && ret=0 + fi + fi + return $ret +} + + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + reload|force-reload) + log_daemon_msg "Reloading $DESC" "$NAME" + do_reload + log_end_msg $? + ;; + restart) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + status) + echo -n "Status of $DESC: " + if is_alive ; then + echo "alive." + else + echo "dead." + exit 1 + fi + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" >&2 + exit 3 + ;; +esac + +: +# vim: ts=4 sw=4 expandtab --- deejayd-0.9.0.orig/debian/README.Debian +++ deejayd-0.9.0/debian/README.Debian @@ -0,0 +1,37 @@ += Deejayd for Debian = + +== Daemon Configuration == + +All of the configuration for the daemon is kept in /etc/deejayd.conf . As for +many daemons, for the changes in the configuration file to be taken into +account, the daemon must be restarted. +$ sudo invoke-rc.d deejayd restart + +The default configuration for deejayd is pretty minimal and you'll probably +want to change the following items from their default value : +- in the 'general' section, maybe enable more modes using the activated_modes + variable. The default does not enable video related modes. + activated_modes = playlist,webradio,video,dvd,panel + (this is new in version 0.7.0) +- in the 'webui' section, enable it using the 'enabled' configuration variable. +- you may want the daemon to be controllable from machines other than the one it + is running on. In the 'net' and 'webui' sections, you may want to change the + 'bind_adresses' configuration variable to something other than 'localhost'. + 'all' or the IP addresses of an interface you want to listen on should do the + trick. +- in the 'mediadb' section, you want to change the 'music_directory' and the + 'video_directory' configuration variables to point to where those are on your + machine, though symlinks in the default directories would also work. + +== Connection to an X server for video support == + +Deejayd supports video. But it will not try to establish a connection to a +X server until it is asked to play a video and if the 'video' mode is enabled. + +The Debian packaging provides two modes of operation in that regard: +- 'standalone': Deejayd launches its own dedicated X server, +- 'reuse': Deejayd connects to an existing X session (e.g. launched by + (x|g|k)dm). + +Configuration should be easy enough, and details are available in the comments +in /etc/default/deejayd . --- deejayd-0.9.0.orig/debian/compat +++ deejayd-0.9.0/debian/compat @@ -0,0 +1 @@ +5 --- deejayd-0.9.0.orig/debian/deejayd-client.install +++ deejayd-0.9.0/debian/deejayd-client.install @@ -0,0 +1,9 @@ +usr/lib/python*/*-packages/deejayd/__init__.py +usr/lib/python*/*-packages/deejayd/interfaces.py +usr/lib/python*/*-packages/deejayd/mediafilters.py +usr/lib/python*/*-packages/deejayd/rpc/__init__.py +usr/lib/python*/*-packages/deejayd/rpc/jsonbuilders.py +usr/lib/python*/*-packages/deejayd/rpc/jsonparsers.py +usr/lib/python*/*-packages/deejayd/net/client.py +usr/lib/python*/*-packages/deejayd/net/__init__.py +usr/bin/djc --- deejayd-0.9.0.orig/debian/control +++ deejayd-0.9.0/debian/control @@ -0,0 +1,79 @@ +Source: deejayd +Section: sound +Priority: extra +Maintainer: Alexandre Rossi +Build-Depends: debhelper (>= 5.0.38), python +Build-Depends-Indep: python-central (>= 0.5.6), gettext, xsltproc, docbook-xsl +Standards-Version: 3.8.3 +XS-Python-Version: current, >= 2.4 +Homepage: http://mroy31.dyndns.org/~roy/projects/deejayd +Vcs-Darcs: http://mroy31.dyndns.org/~roy/repository/deejayd +Vcs-Browser: http://mroy31.dyndns.org/~roy/darcsweb/darcsweb.cgi?r=deejayd;a=tree + +Package: deejayd +Architecture: all +Depends: ${python:Depends}, lsb-base (>= 3.0-6), logrotate, adduser, + deejayd-client (= ${binary:Version}), + deejayd-xine (= ${binary:Version}) | deejayd-gstreamer (= ${binary:Version}), + python-twisted, + python-pysqlite2 | python-mysqldb, + python-lxml, python-mutagen, python-kaa-metadata (>= 0.7.3) +Recommends: python-pyinotify (>= 0.6.0) +Suggests: deejayd-webui, xserver-xorg, xauth, x11-utils +Breaks: deejayd-client (<< 0.8.4) +XB-Python-Version: ${python:Versions} +Description: Network controllable media player daemon + Deejayd is a multi purpose media player that can be completely controlled + through the network using XML messages. + It suppports playlists, searching, many media tags. It can playback many + music and video formats using either its xine (recommended) or its GStreamer + backend. + +Package: deejayd-webui +Architecture: all +Depends: ${python:Depends}, deejayd (= ${binary:Version}), logrotate, + python-twisted-web, libjs-jquery +XB-Python-Version: ${python:Versions} +Description: Web interface for deejayd + This package provides, in order to control your deejayd server: + - a XUL web interface and, + - a pure HTML and AJAX web interface optimized for small screens. + . + The required webserver is embedded in the deejayd daemon. + +Package: deejayd-client +Architecture: all +Depends: ${python:Depends}, python-simplejson | python (>= 2.6) +Conflicts: djc +XB-Python-Version: ${python:Versions} +Description: Client library and command line tool to access the deejayd server + This package provides easy to use classes to manipulate the deejayd server, + abstracting XML message processing and network operations. It fully implements + the set of features exploitable from the server. + . + It also includes djc, which provides a subset of deejayd commands for your + deejayd server to be reachable from the command line. + +Package: deejayd-xine +Architecture: all +Depends: ${python:Depends}, + python-ctypes (>= 1.0.0) | python (>= 2.5), + libxine1, libx11-6, libxext6 +XB-Python-Version: ${python:Versions} +Description: Deejayd XINE backend + The deejayd media backend using the XINE library. + +Package: deejayd-gstreamer +Architecture: all +Depends: ${python:Depends}, gstreamer0.10-plugins-base, python-gst0.10 +Recommends: gstreamer0.10-gnomevfs, lsdvd +XB-Python-Version: ${python:Versions} +Description: Deejayd GStreamer backend + The deejayd media backend using the GStreamer library. + +Package: deejayd-webui-extension +Architecture: all +Depends: iceweasel +Description: Deejayd web user interface Iceweasel extension + The Deejayd Iceweasel browser extension provides a richer user interface to + use as a client to the Deejayd server. --- deejayd-0.9.0.orig/debian/deejayd-client.manpages +++ deejayd-0.9.0/debian/deejayd-client.manpages @@ -0,0 +1 @@ +man/djc.1 --- deejayd-0.9.0.orig/debian/deejayd-webui-extension.install +++ deejayd-0.9.0/debian/deejayd-webui-extension.install @@ -0,0 +1,4 @@ +../../extensions/deejayd-webui/chrome /usr/share/mozilla-extensions/deejayd-webui/ +../../extensions/deejayd-webui/chrome.manifest /usr/share/mozilla-extensions/deejayd-webui/ +../../extensions/deejayd-webui/defaults /usr/share/mozilla-extensions/deejayd-webui/ +../../extensions/deejayd-webui/install.rdf /usr/share/mozilla-extensions/deejayd-webui/ --- deejayd-0.9.0.orig/debian/deejayd.dirs +++ deejayd-0.9.0/debian/deejayd.dirs @@ -0,0 +1 @@ +var/lib/deejayd --- deejayd-0.9.0.orig/debian/copyright +++ deejayd-0.9.0/debian/copyright @@ -0,0 +1,43 @@ +This package was debianized by Alexandre Rossi . + +It was downloaded from + +Upstream Authors: + + Mickaël Royer + Alexandre Rossi + +Copyright: + + Copyright © 2006-2009 Mickaël Royer + +License: + + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + +The Debian packaging is © 2007-2009, +Alexandre Rossi and is licensed under the GPL, +see above. + +The Gentoo packaging, which is part of the upstream tarball, is licensed under +the GPL v2. This consists of the files located under the gentoo/ directory. +On Debian systems, the complete text of the GNU General Public +License can be found in `/usr/share/common-licenses/GPL-2'. + +The upstream tarball contains an embedded copy of JQuery, which is © 2008 John +Resig (jquery.com), and is dual licensed under the MIT and GPL v2 licenses. --- deejayd-0.9.0.orig/debian/deejayd.logrotate +++ deejayd-0.9.0/debian/deejayd.logrotate @@ -0,0 +1,14 @@ +/var/log/deejayd.log /var/log/deejayd.*.log { + rotate 4 + weekly + compress + copytruncate + missingok + notifempty + sharedscripts + postrotate + if invoke-rc.d --quiet deejayd status > /dev/null; then + invoke-rc.d --quiet deejayd reload > /dev/null + fi + endscript +} --- deejayd-0.9.0.orig/debian/deejayd-webui.links +++ deejayd-0.9.0/debian/deejayd-webui.links @@ -0,0 +1 @@ +/usr/share/javascript/jquery/jquery.js /usr/share/deejayd/htdocs/js/lib/jquery.js --- deejayd-0.9.0.orig/debian/dirs +++ deejayd-0.9.0/debian/dirs @@ -0,0 +1 @@ +usr/bin --- deejayd-0.9.0.orig/debian/deejayd-gstreamer.install +++ deejayd-0.9.0/debian/deejayd-gstreamer.install @@ -0,0 +1 @@ +usr/lib/python*/*-packages/deejayd/player/gstreamer.py --- deejayd-0.9.0.orig/debian/deejayd.xinitrc +++ deejayd-0.9.0/debian/deejayd.xinitrc @@ -0,0 +1,15 @@ +# The following lines require the appropiate tool to be installed. + +# Change the default resolution. +#xrandr -s 1920x1200 + +# Set a background picture. +#xloadimage -onroot -quiet -fullscreen /path/to/bg.jpg + +# Allocate some keyboard shortcuts. +#xbindkeys -f /etc/deejayd.xbindkeys + +# The last line can contain an X client that will hold the session. It +# ususally is a window manager, but in our case, as we do not need window +# borders for deejayd with a standalone X server, it can be a simple clock. +#exec xdaliclock -24 -noseconds -transparent -fg black -geometry +1400+850 --- deejayd-0.9.0.orig/debian/rules +++ deejayd-0.9.0/debian/rules @@ -0,0 +1,76 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# This has to be exported to make some magic below work. +export DH_OPTIONS + +PYVERS=$(shell pyversions -vr) + +build: $(PYVERS:%=build-python%) + +build-python%: + touch $@ + +install: build $(PYVERS:%=install-python%) + +install-python%: + dh_clean -k -i + dh_clean -k -s + python$* setup.py install --no-compile\ + --root $(CURDIR)/debian/tmp --install-layout=deb + + # Fixing example conffile location + mkdir -p $(CURDIR)/debian/tmp/etc/X11/Xsession.d + cp -a $(CURDIR)/deejayd/ui/defaults.conf\ + $(CURDIR)/debian/tmp/etc/deejayd.conf + cp -a $(CURDIR)/debian/deejayd.xinitrc\ + $(CURDIR)/debian/tmp/etc/deejayd.xinitrc + cp -a $(CURDIR)/debian/50deejayd_steal-session\ + $(CURDIR)/debian/tmp/etc/X11/Xsession.d + + # Removing jquery embedded copy, see debian/deejayd-webui.links + rm $(CURDIR)/debian/tmp/usr/share/deejayd/htdocs/js/lib/jquery.js + + dh_install --sourcedir=$(CURDIR)/debian/tmp + dh_installdirs + +clean: $(PYVERS:%=clean-python%) + +clean-python%: + dh_testdir + dh_testroot + + rm -f build-python* + python$* setup.py clean --all + find $(CURDIR) -name '*pyc' -exec rm -f {} \; + + dh_clean + +binary-indep: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_pycentral -Ndeejayd-webui-extension + dh_installlogrotate + # Inspired by mpd packaging, so that ALSA scripts can run first + dh_installinit -u"defaults 30 15" + # Inspired by gdm packaging + dh_installinit --name=deejayd-xserver -u"defaults 30 01" + dh_installman + dh_link + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +binary-arch: build install + +binary: binary-arch binary-indep + +.PHONY: build clean binary-indep binary-arch binary install --- deejayd-0.9.0.orig/debian/deejayd.install +++ deejayd-0.9.0/debian/deejayd.install @@ -0,0 +1,19 @@ +usr/bin/deejayd +usr/lib/python*/*-packages/deejayd/core.py +usr/lib/python*/*-packages/deejayd/component.py +usr/lib/python*/*-packages/deejayd/utils.py +usr/lib/python*/*-packages/deejayd/xmlobject.py +usr/lib/python*/*-packages/deejayd/rpc/protocol.py +usr/lib/python*/*-packages/deejayd/rpc/rdfbuilder.py +usr/lib/python*/*-packages/deejayd/rpc/jsonrpc.py +usr/lib/python*/*-packages/deejayd/net/protocol.py +usr/lib/python*/*-packages/deejayd/mediadb/* +usr/lib/python*/*-packages/deejayd/player/__init__.py +usr/lib/python*/*-packages/deejayd/player/_base.py +usr/lib/python*/*-packages/deejayd/sources/*.py +usr/lib/python*/*-packages/deejayd/ui/* +usr/lib/python*/*-packages/deejayd/database/* +usr/share/locale/*/LC_MESSAGES/deejayd.mo +etc/deejayd.conf +etc/deejayd.xinitrc +etc/X11/Xsession.d/50deejayd_steal-session --- deejayd-0.9.0.orig/debian/deejayd-webui.logrotate +++ deejayd-0.9.0/debian/deejayd-webui.logrotate @@ -0,0 +1,14 @@ +/var/log/deejayd-webui.log /var/log/deejayd-webui.*.log { + rotate 4 + weekly + compress + copytruncate + missingok + notifempty + sharedscripts + postrotate + if invoke-rc.d --quiet deejayd status > /dev/null; then + invoke-rc.d --quiet deejayd reload > /dev/null + fi + endscript +} --- deejayd-0.9.0.orig/debian/deejayd.deejayd-xserver.init +++ deejayd-0.9.0/debian/deejayd.deejayd-xserver.init @@ -0,0 +1,260 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: deejayd-xserver +# Required-Start: $local_fs $remote_fs +# Required-Stop: $local_fs $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Launch the deejayd dedicated X server. +# Description: Prepare environement and launch a minimalistic X session. +### END INIT INFO + +# Author: Alexandre Rossi + +# Do NOT "set -e" + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="Deejayd media player daemon dedicated X server" +NAME=deejayd-xserver +DAEMON=/usr/bin/X +DAEMON_USER=deejayd +HOME=/var/lib/$DAEMON_USER +PIDFILE=/var/run/$NAME.pid +AUTHFILE=/var/run/$NAME.authfile +XCLIENTS_PIDFILE=/var/run/$NAME-xclients.pid +LOGFILE=/var/log/$NAME.log +SCRIPTNAME=/etc/init.d/$NAME + + +# Exit if xorg is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/deejayd ] && . /etc/default/deejayd + +# Exit if this method of starting Xorg for deejayd is disabled +[ "$DEEJAYD_XSERVER_METHOD" = "standalone" ] || exit 0 + +# Load the VERBOSE setting and other rcS variables +. /lib/init/vars.sh + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. +. /lib/lsb/init-functions + +DEEJAYD_DISPLAYNAME=${DEEJAYD_DISPLAYNAME:=:0.0} +DEEJAYD_XAUTHORITY=${DEEJAYD_XAUTHORITY:=/var/lib/deejayd/Xauthority} + +XAUTHORITY=$DEEJAYD_XAUTHORITY +DISPLAY=$DEEJAYD_DISPLAYNAME +export DISPLAY XAUTHORITY + +# check for GNU hostname +if hostname --version > /dev/null 2>&1; then + if [ -z "`hostname --version 2>&1 | grep GNU`" ]; then + hostname=`hostname -f` + fi +fi +if [ -z "$hostname" ]; then + hostname=`hostname` +fi +authdisplay=${DEEJAYD_DISPLAYNAME:-:0} +authdisplaynet=$hostname$authdisplay + +# Generate a MIT MAGIC COOKIE for authentification with the X server. This +# is stolen from /usr/bin/startx . +gen_auth_cookie() +{ + # set up default Xauth info for this machine + + mcookie=`/usr/bin/mcookie` + + if test x"$mcookie" = x; then + echo "Couldn't create cookie" + exit 1 + fi + dummy=0 + + # create a file with auth information for the server. ':0' is a dummy. + xserverauthfile=`mktemp -t serverauth.XXXXXXXXXX` + + xauth -q -f $xserverauthfile << EOF +add :$dummy . $mcookie +EOF + echo $xserverauthfile > $AUTHFILE + + # 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 $authdisplaynet; do + authcookie=`xauth list "$displayname" 2> /dev/null\ + | sed -n "s/.*$displayname[[:space:]*].*[[:space:]*]//p"` 2>/dev/null; + if [ "z${authcookie}" = "z" ] ; then + xauth -q 2> /dev/null << EOF +add $displayname . $mcookie +EOF + else + dummy=$(($dummy+1)); + xauth -q -f $xserverauthfile 2> /dev/null << EOF +add :$dummy . $authcookie +EOF + fi + done + + for authfile in $DEEJAYD_XAUTHORITY $xserverauthfile; do + chgrp video $authfile && chmod g+r $authfile + done +} + +do_start() +{ + gen_auth_cookie + DAEMON_ARGS="$DEEJAYD_DISPLAYNAME $DEEJAYD_XORG_DAEMON_OPTS -auth $xserverauthfile" + # Return + # 0 if daemon has been started + # 2 if daemon could not be started + is_alive && return 0 + start-stop-daemon --start --pidfile $PIDFILE --make-pidfile\ + --exec $DAEMON\ + -b -c $DAEMON_USER -- $DAEMON_ARGS \ + || return 2 + + # Wait for the X server to accept X connections. + maxtries=40 + tries=0 + while [ "`xorg_ping`" != "pong" ] && [ $tries -lt $maxtries ] + do + tries=`expr $tries + 1` + sleep 0.5 + done +} + +do_start_xclients() +{ + # Start the X init script also as a daemon. + start-stop-daemon --start --pidfile $XCLIENTS_PIDFILE --make-pidfile\ + --exec /bin/sh\ + -b -c $DAEMON_USER -- $DEEJAYD_XINITRC\ + || return 2 +} + +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + # Xorg is suid so no user filter for start-stop-daemon + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + + rm -f $PIDFILE + + xauth remove $authdisplay $authdisplaynet + if [ -e $AUTHFILE ]; then + xserverauthfile=`cat $AUTHFILE` + rm -f $xserverauthfile + rm -f $AUTHFILE + fi + + return "$RETVAL" +} + +do_stop_xclients() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + start-stop-daemon --user $DAEMON_USER --stop --quiet --retry=TERM/30/KILL/5 --pidfile $XCLIENTS_PIDFILE + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + + rm -f $XCLIENTS_PIDFILE + + return "$RETVAL" +} + +is_alive () { + ret=1 + if [ -r "$PIDFILE" ] ; then + pid=`cat $PIDFILE` + if [ -e /proc/$pid ] ; then + procname=`/bin/ps h -p $pid -C $NAME` + [ -n "$procname" ] && ret=0 + fi + fi + return $ret +} + +xorg_ping () { + # This function checks if a basic X client can probe the X server. + /usr/bin/xprop -root -display $authdisplay > /dev/null 2> /dev/null + case "$?" in + 0) echo "pong" && return 0;; + *) echo "fail" && return 1;; + esac +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + [ "$VERBOSE" != no ] && log_daemon_msg "xclients" + do_start_xclients + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop_xclients + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + [ "$VERBOSE" != no ] && log_daemon_msg "xclients" + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop_xclients + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + do_start_xclients + ;; + status) + echo -n "Status of $DESC: " + if is_alive ; then + echo "alive." + else + echo "dead." + exit 1 + fi + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2 + exit 3 + ;; +esac + +: +# vim: ts=4 sw=4 expandtab