diff --git a/sound/mpd/Makefile b/sound/mpd/Makefile new file mode 100644 index 0000000000..f1e3ff5faa --- /dev/null +++ b/sound/mpd/Makefile @@ -0,0 +1,211 @@ +# +# Copyright (C) 2007-2011 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=mpd +PKG_VERSION:=0.16.8 +PKG_RELEASE:=2 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=http://www.musicpd.org/download/mpd/0.16/ +PKG_MD5SUM:=b412a9d0b3457bea1bb87904a8f80c04 + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) +PKG_BUILD_PARALLEL:=1 + +PKG_CONFIG_DEPENDS:= \ + CONFIG_IPV6 \ + +PKG_INSTALL:=1 + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/nls.mk + +define Package/mpd/Default + SECTION:=sound + CATEGORY:=Sound + TITLE:=Music Player Daemon + URL:=http://www.musicpd.org/ + DEPENDS:= +glib2 +libcurl +libpthread \ + +libflac +BUILD_PATENTED:libmad +libvorbisidec +endef + +define Package/mpd/Default/description + Music Player Daemon (MPD) is a flexible, powerful, server-side + application for playing music. It is typically controlled over a + network using one of it's many clients including mpc (console), + gmpc (gnome), phpmp (php), etc... +endef + + +define Package/mpd-full +$(call Package/mpd/Default) + TITLE+= (full) + DEPENDS+= \ + +AUDIO_SUPPORT:alsa-lib \ + +libaudiofile +BUILD_PATENTED:libfaad2 +libffmpeg +libid3tag \ + +libmms +libogg +libshout +libsndfile +libvorbis + PROVIDES:=mpd + VARIANT:=full +endef + +define Package/mpd-full/description +$(call Package/mpd/Default/description) + . + This package contains a full-blown Music Player Daemon. +endef + +define Package/mpd-full/conffiles +/etc/avahi/services/mpd.service +/etc/mpd.conf +endef + + +define Package/mpd-mini +$(call Package/mpd/Default) + TITLE+= (mini) + PROVIDES:=mpd + VARIANT:=mini +endef + +define Package/mpd-mini/description +$(call Package/mpd/Default/description) + . + This package contains a minimal Music Player Daemon, with support for + only Flac, MP3 & OGG media types & only file: & http: protocols. +endef + +define Package/mpd-mini/conffiles +/etc/mpd.conf +endef + + +CONFIGURE_ARGS += \ + $(call autoconf_bool,CONFIG_IPV6,ipv6) \ + --disable-debug \ + --disable-documentation \ + --disable-gprof \ + --disable-test \ + --disable-werror \ + \ + --disable-ao \ + --disable-bzip2 \ + --disable-cue \ + --disable-ffado \ + --disable-fluidsynth \ + --disable-gme \ + --disable-inotify \ + --disable-iso9660 \ + --disable-jack \ + --disable-lame-encoder \ + --disable-libwrap \ + --disable-lsr \ + --disable-mikmod \ + --disable-modplug \ + --disable-mpc \ + --disable-mpg123 \ + --disable-mvp \ + --disable-openal \ + --disable-pulse \ + --disable-sidplay \ + --disable-solaris-output \ + --disable-sqlite \ + --disable-twolame-encoder \ + --disable-wave-encoder \ + --disable-wavpack \ + --disable-wildmidi \ + --disable-zzip \ + --with-zeroconf=no \ + \ + --enable-curl \ + --enable-flac \ + --enable-httpd-output \ + $(call autoconf_bool,CONFIG_BUILD_PATENTED,mad) \ + $(call autoconf_bool,CONFIG_AUDIO_SUPPORT,oss) \ + --enable-tcp \ + --enable-un \ + +CONFIGURE_VARS += \ + FLAC_CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/FLAC" \ + FLAC_LIBS="$(TARGET_LDFLAGS) -lFLAC" \ + $(if $(CONFIG_BUILD_PATENTED),MAD_CFLAGS="$(TARGET_CFLAGS)") \ + $(if $(CONFIG_BUILD_PATENTED),MAD_LIBS="$(TARGET_LDFLAGS) -lmad") \ + +TARGET_CFLAGS += -std=gnu99 +TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib + +# use gcc instead of g++ to avoid unnecessary linking against libstdc++ +TARGET_CXX:=$(TARGET_CC) + +ifeq ($(BUILD_VARIANT),full) + + CONFIGURE_ARGS += \ + $(call autoconf_bool,CONFIG_BUILD_PATENTED,aac) \ + $(call autoconf_bool,CONFIG_AUDIO_SUPPORT,alsa) \ + --enable-audiofile \ + --enable-fifo \ + --enable-ffmpeg \ + --enable-id3 \ + --enable-lastfm \ + --enable-mms \ + --enable-oggflac \ + --enable-pipe-output \ + --enable-recorder-output \ + --enable-shout \ + --enable-sndfile \ + --enable-vorbis \ + --enable-vorbis-encoder \ + --with-faad="$(STAGING_DIR)/usr" \ + --with-tremor=no \ + +endif + +ifeq ($(BUILD_VARIANT),mini) + + # oggflac is not compatible with tremor + CONFIGURE_ARGS += \ + --disable-aac \ + --disable-alsa \ + --disable-audiofile \ + --disable-fifo \ + --disable-ffmpeg \ + --disable-id3 \ + --disable-lastfm \ + --disable-mms \ + --disable-oggflac \ + --disable-pipe-output \ + --disable-recorder-output \ + --disable-shout \ + --disable-sndfile \ + --disable-vorbis \ + --disable-vorbis-encoder \ + --with-tremor=yes \ + +endif + +define Package/mpd/install + $(INSTALL_DIR) $(1)/usr/bin + $(CP) $(PKG_INSTALL_DIR)/usr/bin/mpd $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/etc + $(CP) $(PKG_BUILD_DIR)/doc/mpdconf.example $(1)/etc/mpd.conf + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/mpd.init $(1)/etc/init.d/mpd +endef + +define Package/mpd-full/install +$(call Package/mpd/install,$1) + $(INSTALL_DIR) $(1)/etc/avahi/services + $(INSTALL_DATA) ./files/mpd.service $(1)/etc/avahi/services/ +endef + +define Package/mpd-mini/install +$(call Package/mpd/install,$1) +endef + +$(eval $(call BuildPackage,mpd-full)) +$(eval $(call BuildPackage,mpd-mini)) diff --git a/sound/mpd/files/mpd.init b/sound/mpd/files/mpd.init new file mode 100644 index 0000000000..707564bbce --- /dev/null +++ b/sound/mpd/files/mpd.init @@ -0,0 +1,28 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2007-2011 OpenWrt.org + +START=93 + +start() { + #create mpd directories + pld=`grep ^playlist_directory /etc/mpd.conf | cut -d "\"" -f 2 | sed "s/~/\/root/g"` + if [ ! -d $pld ]; then + mkdir -m 0755 -p $pld + fi + + # Set the initial volume to something manageable + [ -x /usr/bin/amixer ] && /usr/bin/amixer set PCM 40 + + if [ -x /bin/nice ]; then + # This has real-time constraints, so let's at least tell the OS + # that this should have higher priority to avoid skipping + # when doing other things in the background. + nice -n -10 + fi + + service_start /usr/bin/mpd +} + +stop() { + service_stop /usr/bin/mpd +} diff --git a/sound/mpd/files/mpd.service b/sound/mpd/files/mpd.service new file mode 100644 index 0000000000..086a2bb3fc --- /dev/null +++ b/sound/mpd/files/mpd.service @@ -0,0 +1,9 @@ + + + + Music Player Daemon on %h + + _mpd._tcp + 6600 + + diff --git a/sound/mpd/patches/100-compile-fixes.patch b/sound/mpd/patches/100-compile-fixes.patch new file mode 100644 index 0000000000..60b8b01bfa --- /dev/null +++ b/sound/mpd/patches/100-compile-fixes.patch @@ -0,0 +1,23 @@ +--- a/configure ++++ b/configure +@@ -8803,6 +8803,7 @@ fi + # Check whether --with-faad was given. + if test "${with_faad+set}" = set; then : + withval=$with_faad; ++ faad_prefix=$with_faad; + else + faad_prefix="" + fi +--- a/src/input/file_input_plugin.c ++++ b/src/input/file_input_plugin.c +@@ -79,10 +79,6 @@ input_file_open(const char *filename, GE + return false; + } + +-#ifdef POSIX_FADV_SEQUENTIAL +- posix_fadvise(fd, (off_t)0, st.st_size, POSIX_FADV_SEQUENTIAL); +-#endif +- + fis = g_new(struct file_input_stream, 1); + input_stream_init(&fis->base, &input_plugin_file, filename); +