summaryrefslogtreecommitdiffstats
path: root/package/mpd
diff options
context:
space:
mode:
Diffstat (limited to 'package/mpd')
-rw-r--r--package/mpd/Config.in187
-rw-r--r--package/mpd/S95mpd30
-rw-r--r--package/mpd/mpd.conf32
-rw-r--r--package/mpd/mpd.mk140
4 files changed, 389 insertions, 0 deletions
diff --git a/package/mpd/Config.in b/package/mpd/Config.in
new file mode 100644
index 0000000000..2ca55cc3cf
--- /dev/null
+++ b/package/mpd/Config.in
@@ -0,0 +1,187 @@
+menuconfig BR2_PACKAGE_MPD
+ bool "mpd"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_USE_WCHAR # libglib2
+ depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+ select BR2_PACKAGE_LIBGLIB2
+ select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
+ select BR2_PACKAGE_MPD_TREMOR if !(BR2_PACKAGE_MPD_MAD || BR2_PACKAGE_MPD_MPG123 || BR2_PACKAGE_MPD_VORBIS || BR2_PACKAGE_MPD_WAVPACK || BR2_PACKAGE_MPD_FLAC || BR2_PACKAGE_MPD_MUSEPACK || BR2_PACKAGE_MPD_FFMPEG)
+ help
+ MPD is a flexible, powerful, server-side application
+ for playing music. Through plugins and libraries
+ it can play a variety of sound files while being
+ controlled by its network protocol.
+
+ http://www.musicpd.org
+
+if BR2_PACKAGE_MPD
+
+config BR2_PACKAGE_MPD_ALSA
+ bool "alsa"
+ default y
+ select BR2_PACKAGE_ALSA_LIB
+ select BR2_PACKAGE_ALSA_LIB_PCM
+ select BR2_PACKAGE_ALSA_LIB_MIXER
+ depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib
+ help
+ Enable alsa output support.
+
+config BR2_PACKAGE_MPD_AO
+ bool "ao"
+ select BR2_PACKAGE_LIBAO
+ help
+ Enable libao output support.
+
+config BR2_PACKAGE_MPD_AUDIOFILE
+ bool "audiofile"
+ select BR2_PACKAGE_AUDIOFILE
+ help
+ Enable audiofile input/streaming support.
+ Select this if you want to play back WAV files.
+
+config BR2_PACKAGE_MPD_PULSEAUDIO
+ bool "pulseaudio"
+ depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
+ depends on BR2_LARGEFILE # pulseaudio -> libsndfile
+ select BR2_PACKAGE_PULSEAUDIO
+ help
+ Enable pulseaudio output support.
+
+config BR2_PACKAGE_MPD_BZIP2
+ bool "bzip2"
+ select BR2_PACKAGE_BZIP2
+ help
+ Enable bzip2 archive support.
+
+config BR2_PACKAGE_MPD_CURL
+ bool "curl"
+ select BR2_PACKAGE_LIBCURL
+ help
+ Enable curl streaming (http) support.
+
+config BR2_PACKAGE_MPD_FAAD2
+ bool "faad2"
+ select BR2_PACKAGE_FAAD2
+ help
+ Enable faad2 input support.
+ Select this if you want to play back MP4/AAC files.
+
+config BR2_PACKAGE_MPD_FLAC
+ bool "flac"
+ select BR2_PACKAGE_FLAC
+ help
+ Enable flac input/streaming support.
+ Select this if you want to play back FLAC files.
+
+config BR2_PACKAGE_MPD_FFMPEG
+ bool "ffmpeg"
+ select BR2_PACKAGE_FFMPEG
+ depends on BR2_LARGEFILE
+ depends on BR2_INET_IPV6
+ help
+ Enable ffmpeg input support.
+ Select this if you want to play back files supported by ffmpeg.
+
+comment "ffmpeg support requires a toolchain with LARGEFILE and IPV6 support"
+ depends on !(BR2_LARGEFILE && BR2_INET_IPV6)
+
+config BR2_PACKAGE_MPD_LAME
+ bool "lame"
+ select BR2_PACKAGE_LAME
+ help
+ Enable lame (mp3) encoding support.
+
+config BR2_PACKAGE_MPD_LIBCUE
+ bool "libcue"
+ select BR2_PACKAGE_LIBCUE
+ help
+ Enable cue file support.
+
+config BR2_PACKAGE_MPD_LIBSAMPLERATE
+ bool "libsamplerate"
+ select BR2_PACKAGE_LIBSAMPLERATE
+ help
+ Enable libsamplerate input support.
+ Select this for software sample rate conversion.
+
+config BR2_PACKAGE_MPD_LIBSNDFILE
+ bool "libsndfile"
+ select BR2_PACKAGE_LIBSNDFILE
+ depends on BR2_LARGEFILE
+ help
+ Enable libsndfile input/streaming support.
+ Select this if you want to play back WAV files.
+
+comment "mpd-libsndfile requires a toolchain with LARGEFILE support"
+ depends on !BR2_LARGEFILE
+
+config BR2_PACKAGE_MPD_MAD
+ bool "mad"
+ default y
+ select BR2_PACKAGE_LIBID3TAG
+ select BR2_PACKAGE_LIBMAD
+ help
+ Enable mad input support.
+ Select this if you want to play back MP3 files.
+
+config BR2_PACKAGE_MPD_MPG123
+ bool "mpg123"
+ select BR2_PACKAGE_LIBID3TAG
+ select BR2_PACKAGE_MPG123
+ help
+ Enable mpg123 input support.
+ Select this if you want to play back MP3 files.
+
+config BR2_PACKAGE_MPD_MUSEPACK
+ bool "musepack"
+ select BR2_PACKAGE_LIBCUEFILE
+ select BR2_PACKAGE_LIBREPLAYGAIN
+ select BR2_PACKAGE_MUSEPACK
+ help
+ Enable musepack input support.
+ Select this if you want to play back MPC files.
+
+config BR2_PACKAGE_MPD_SQLITE
+ bool "sqlite"
+ select BR2_PACKAGE_SQLITE
+ help
+ Enable sqlite database support.
+ If you don't use sqlite it will use an ASCII database.
+
+config BR2_PACKAGE_MPD_TCP
+ bool "tcp sockets"
+ default y
+ help
+ Enable mpd to listen on tcp sockets.
+
+ You want this on if mpd and the client(s) work
+ on different machines (the usual scenario).
+
+config BR2_PACKAGE_MPD_TREMOR
+ bool "tremor"
+ select BR2_PACKAGE_LIBOGG
+ select BR2_PACKAGE_TREMOR
+ help
+ Enable vorbis input support.
+ Select this if you want to play back OGG files on softfloat targets.
+
+config BR2_PACKAGE_MPD_VORBIS
+ bool "vorbis"
+ select BR2_PACKAGE_LIBOGG
+ select BR2_PACKAGE_LIBVORBIS
+ help
+ Enable vorbis input/streaming support.
+ Select this if you want to play back OGG files on hardfloat targets.
+
+config BR2_PACKAGE_MPD_WAVPACK
+ bool "wavpack"
+ select BR2_PACKAGE_WAVPACK
+ help
+ Enable wavpack input support.
+ Select this if you want to play back WV files.
+
+endif
+
+comment "mpd requires a toolchain with C++, threading and WCHAR support"
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
+ !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/mpd/S95mpd b/package/mpd/S95mpd
new file mode 100644
index 0000000000..a4f1271cea
--- /dev/null
+++ b/package/mpd/S95mpd
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+start() {
+ echo -n "Starting mpd: "
+ start-stop-daemon --start --quiet --background --exec /usr/bin/mpd
+ echo "OK"
+}
+
+stop() {
+ echo -n "Stopping mpd: "
+ start-stop-daemon --stop --quiet --pidfile /var/run/mpd.pid
+ echo "OK"
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart|reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+esac
diff --git a/package/mpd/mpd.conf b/package/mpd/mpd.conf
new file mode 100644
index 0000000000..5956b75e24
--- /dev/null
+++ b/package/mpd/mpd.conf
@@ -0,0 +1,32 @@
+#
+# Sample configuration file for mpd
+# This is a minimal configuration, see the manpage for more options
+#
+
+# Directory where the music is stored
+music_directory "/var/lib/mpd/music"
+
+# Directory where user-made playlists are stored (RW)
+playlist_directory "/var/lib/mpd/playlists"
+
+# Database file (RW)
+db_file "/var/lib/mpd/database"
+
+# Log file (RW)
+log_file "/var/log/mpd.log"
+
+# Process ID file (RW)
+pid_file "/var/run/mpd.pid"
+
+# State file (RW)
+state_file "/var/lib/mpd/state"
+
+# User id to run the daemon as
+#user "nobody"
+
+# TCP socket binding
+bind_to_address "any"
+#bind_to_address "localhost"
+
+# Unix socket to listen on
+bind_to_address "/var/lib/mpd/socket"
diff --git a/package/mpd/mpd.mk b/package/mpd/mpd.mk
new file mode 100644
index 0000000000..95e18f7d53
--- /dev/null
+++ b/package/mpd/mpd.mk
@@ -0,0 +1,140 @@
+################################################################################
+#
+# mpd
+#
+################################################################################
+
+MPD_VERSION = 0.17.5
+MPD_SITE = http://www.musicpd.org/download/mpd/stable
+MPD_DEPENDENCIES = host-pkgconf libglib2
+MPD_LICENSE = GPLv2
+MPD_LICENSE_FILES = COPYING
+
+# Some options need an explicit --disable or --enable
+
+ifeq ($(BR2_PACKAGE_MPD_ALSA),y)
+MPD_DEPENDENCIES += alsa-lib
+else
+MPD_CONF_OPT += --disable-alsa
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_AO),y)
+MPD_DEPENDENCIES += libao
+MPD_CONF_OPT += --enable-ao
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_AUDIOFILE),y)
+MPD_DEPENDENCIES += audiofile
+MPD_CONF_OPT += --enable-audiofile
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_PULSEAUDIO),y)
+MPD_DEPENDENCIES += pulseaudio
+MPD_CONF_OPT += --enable-pulse
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_BZIP2),y)
+MPD_DEPENDENCIES += bzip2
+MPD_CONF_OPT += --enable-bzip2
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_FAAD2),y)
+MPD_DEPENDENCIES += faad2
+else
+MPD_CONF_OPT += --disable-faad2
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_FLAC),y)
+MPD_DEPENDENCIES += flac
+else
+MPD_CONF_OPT += --without-flac --disable-oggflac
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_CURL),y)
+MPD_DEPENDENCIES += libcurl
+else
+MPD_CONF_OPT += --disable-curl
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_LAME),y)
+MPD_DEPENDENCIES += lame
+else
+MPD_CONF_OPT += --disable-lame-encoder
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_LIBCUE),y)
+MPD_DEPENDENCIES += libcue
+else
+MPD_CONF_OPT += --disable-cue
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_LIBSAMPLERATE),y)
+MPD_DEPENDENCIES += libsamplerate
+else
+MPD_CONF_OPT += --disable-lsr
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_LIBSNDFILE),y)
+MPD_DEPENDENCIES += libsndfile
+else
+MPD_CONF_OPT += --disable-sndfile
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_VORBIS),y)
+MPD_DEPENDENCIES += libvorbis
+else
+MPD_CONF_OPT += --disable-vorbis
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_MPG123),y)
+MPD_DEPENDENCIES += libid3tag mpg123
+else
+MPD_CONF_OPT += --disable-mpg123
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_MUSEPACK),y)
+MPD_DEPENDENCIES += musepack
+else
+MPD_CONF_OPT += --disable-mpc
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_SQLITE),y)
+MPD_DEPENDENCIES += sqlite
+else
+MPD_CONF_OPT += --disable-sqlite
+endif
+
+ifneq ($(BR2_PACKAGE_MPD_TCP),y)
+MPD_CONF_OPT += --disable-tcp
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_TREMOR),y)
+MPD_DEPENDENCIES += tremor
+MPD_CONF_OPT += --with-tremor
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_WAVPACK),y)
+MPD_DEPENDENCIES += wavpack
+else
+MPD_CONF_OPT += --disable-wavpack
+endif
+
+ifeq ($(BR2_PACKAGE_MPD_FFMPEG),y)
+MPD_DEPENDENCIES += ffmpeg
+MPD_CONF_OPT += --enable-ffmpeg
+else
+MPD_CONF_OPT += --disable-ffmpeg
+endif
+
+define MPD_INSTALL_EXTRA_FILES
+ @if [ ! -f $(TARGET_DIR)/etc/mpd.conf ]; then \
+ $(INSTALL) -D package/multimedia/mpd/mpd.conf \
+ $(TARGET_DIR)/etc/mpd.conf; \
+ fi
+ $(INSTALL) -m 0755 -D package/multimedia/mpd/S95mpd \
+ $(TARGET_DIR)/etc/init.d/S95mpd
+endef
+
+MPD_POST_INSTALL_TARGET_HOOKS += MPD_INSTALL_EXTRA_FILES
+
+$(eval $(autotools-package))
OpenPOWER on IntegriCloud