pulseaudio: import from packages
authorPeter Wagner <tripolar@gmx.at>
Mon, 16 Jun 2014 09:46:58 +0000 (11:46 +0200)
committerPeter Wagner <tripolar@gmx.at>
Mon, 16 Jun 2014 09:54:42 +0000 (11:54 +0200)
Signed-off-by: Peter Wagner <tripolar@gmx.at>
sound/pulseaudio/Makefile [new file with mode: 0644]
sound/pulseaudio/files/pulseaudio.init [new file with mode: 0644]
sound/pulseaudio/patches/001-no_default_64mb_alloc.patch [new file with mode: 0644]

diff --git a/sound/pulseaudio/Makefile b/sound/pulseaudio/Makefile
new file mode 100644 (file)
index 0000000..24ac2db
--- /dev/null
@@ -0,0 +1,270 @@
+#
+# Copyright (C) 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:=pulseaudio
+PKG_VERSION:=5.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=http://freedesktop.org/software/pulseaudio/releases/
+PKG_MD5SUM:=c43749838612f4860465e83ed62ca38e
+
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_BUILD_DEPENDS:=intltool/host
+
+PKG_FIXUP:=autoreconf
+PKG_USE_MIPS16:=0
+
+PKG_INSTALL = 1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+
+#TODO: split pulse into executable and library (or even better into several libraries since they're used as loadable modules, so not linked into)
+define Package/pulseaudio/Default
+  SECTION:=sound
+  CATEGORY:=Sound
+  DEPENDS:=+libspeexdsp +libsndfile +libltdl +libpthread \
+       +librt +alsa-lib +libjson +libopenssl +libwrap +libcap $(ICONV_DEPENDS) $(INTL_DEPENDS)
+  TITLE:=Network sound server
+  MAINTAINER:=Peter Wagner <tripolar@gmx.at>
+  URL:=http://www.pulseaudio.org
+  PROVIDES:=pulseaudio
+endef
+
+define Package/pulseaudio-daemon
+  $(call Package/pulseaudio/Default)
+  VARIANT:=noavahi
+endef
+
+define Package/pulseaudio-daemon-avahi
+  $(call Package/pulseaudio/Default)
+  DEPENDS+=+dbus +libavahi-client +avahi-daemon
+  TITLE+= (avahi)
+  VARIANT:=avahi
+endef
+
+define Package/pulseaudio/Default/description
+  PulseAudio (formerly Polypaudio) is a cross-platform, networked sound server.
+endef
+
+define Package/pulseaudio-daemon/description
+  $(call Package/pulseaudio/Default/description)
+endef
+
+define Package/pulseaudio-daemon-avahi/description
+  $(call Package/pulseaudio/Default/description)
+  This package is compiled against dbus and avahi.
+endef
+
+define Package/pulseaudio-daemon/conffiles
+/etc/pulse/client.conf
+/etc/pulse/daemon.conf
+/etc/pulse/default.pa
+/etc/pulse/system.pa
+endef
+
+define Package/pulseaudio-daemon-avahi/conffiles
+/etc/pulse/client.conf
+/etc/pulse/daemon.conf
+/etc/pulse/default.pa
+/etc/pulse/system.pa
+endef
+
+define Package/pulseaudio-tools
+  SECTION:=sound
+  CATEGORY:=Sound
+  DEPENDS:=+libsndfile pulseaudio
+  TITLE:=Tools for Pulseaudio
+  URL:=http://www.pulseaudio.org
+  VARIANT:=noavahi
+endef
+
+define Package/pulseaudio-profiles
+  SECTION:=sound
+  CATEGORY:=Sound
+  DEPENDS:=pulseaudio
+  TITLE:=Profiles for Pulseaudio
+  URL:=http://www.pulseaudio.org
+endef
+
+CONFIGURE_ARGS += \
+       --with-system-user=pulse \
+       --with-system-group=pulse \
+       --with-access-group=audio \
+       --with-database=simple \
+       --enable-alsa \
+       --disable-hal \
+       --disable-gconf \
+       --disable-nls \
+       --disable-manpages \
+       --enable-oss-output \
+       --disable-oss-wrapper \
+       --disable-samplerate \
+       --disable-per-user-esound-socket \
+       --disable-solaris \
+       --disable-gtk2 \
+       --disable-glib2 \
+       --disable-jack \
+       --disable-asyncns \
+       --disable-lirc \
+       --disable-bluez \
+       --disable-udev \
+       --without-fftw
+
+ifeq ($(BUILD_VARIANT),avahi)
+CONFIGURE_ARGS += \
+       --enable-avahi \
+       --enable-dbus
+endif
+
+ifeq ($(BUILD_VARIANT),noavahi)
+CONFIGURE_ARGS += \
+       --disable-avahi \
+       --disable-dbus
+endif
+
+CONFIGURE_VARS += \
+       PKG_CONFIG_LIBDIR="$(STAGING_DIR)/usr/lib/pkgconfig"
+
+#SUPP_LIBS:=-L$(INTL_PREFIX)/lib -L$(ICONV_PREFIX)/lib
+TARGET_CFLAGS += -std=gnu99
+
+define Build/InstallDev
+       $(INSTALL_DIR) \
+               $(1)/usr/lib/pkgconfig \
+               $(1)/usr/include/pulse \
+               $(1)/usr/lib \
+               $(1)/usr/lib/pulseaudio
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/include/pulse/* \
+               $(1)/usr/include/pulse
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc \
+               $(1)/usr/lib/pkgconfig
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/*.so* \
+               $(1)/usr/lib/
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/pulseaudio/* \
+               $(1)/usr/lib/pulseaudio/
+endef
+
+define Package/pulseaudio-daemon/install
+       $(INSTALL_DIR) \
+               $(1)/etc/pulse \
+               $(1)/etc/init.d \
+               $(1)/usr/bin \
+               $(1)/usr/lib \
+               $(1)/usr/lib/pulseaudio \
+               $(1)/usr/lib/pulse-$(PKG_VERSION)/modules
+
+       $(INSTALL_BIN) \
+               $(PKG_INSTALL_DIR)/usr/bin/pulseaudio \
+               $(1)/usr/bin/pulseaudio
+
+       $(INSTALL_BIN) \
+               ./files/pulseaudio.init \
+               $(1)/etc/init.d/pulseaudio
+
+       $(INSTALL_CONF) \
+               $(PKG_INSTALL_DIR)/etc/pulse/* \
+               $(1)/etc/pulse
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/*.so* \
+               $(1)/usr/lib/
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/pulseaudio/* \
+               $(1)/usr/lib/pulseaudio/
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/pulse-$(PKG_VERSION)/modules/lib*.so \
+               $(1)/usr/lib/
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/pulse-$(PKG_VERSION)/modules/module*.so \
+               $(1)/usr/lib/pulse-$(PKG_VERSION)/modules/
+
+       chmod -R 0644 $(1)/etc/pulse/*
+endef
+
+define Package/pulseaudio-daemon-avahi/install
+       $(INSTALL_DIR) \
+               $(1)/etc/pulse \
+               $(1)/etc/init.d \
+               $(1)/usr/bin \
+               $(1)/usr/lib \
+               $(1)/usr/lib/pulseaudio \
+               $(1)/usr/lib/pulse-$(PKG_VERSION)/modules \
+               $(1)/etc/dbus-1/system.d
+
+       $(INSTALL_BIN) \
+               $(PKG_INSTALL_DIR)/usr/bin/pulseaudio \
+               $(1)/usr/bin/pulseaudio
+
+       $(INSTALL_BIN) \
+               ./files/pulseaudio.init \
+               $(1)/etc/init.d/pulseaudio
+
+       $(INSTALL_CONF) \
+               $(PKG_INSTALL_DIR)/etc/pulse/* \
+               $(1)/etc/pulse
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/*.so* \
+               $(1)/usr/lib/
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/pulseaudio/* \
+               $(1)/usr/lib/pulseaudio/
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/pulse-$(PKG_VERSION)/modules/lib*.so \
+               $(1)/usr/lib/
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/pulse-$(PKG_VERSION)/modules/module*.so \
+               $(1)/usr/lib/pulse-$(PKG_VERSION)/modules/
+
+       $(INSTALL_CONF) \
+               $(PKG_INSTALL_DIR)/etc/dbus-1/system.d/pulseaudio-system.conf \
+               $(1)/etc/dbus-1/system.d/pulseaudio-system.conf
+
+       chmod -R 0644 $(1)/etc/pulse/* $(1)/etc/dbus-1/system.d/pulseaudio-system.conf
+endef
+
+define Package/pulseaudio-tools/install
+       $(INSTALL_DIR) \
+               $(1)/usr/bin
+
+       $(INSTALL_BIN) \
+               $(PKG_INSTALL_DIR)/usr/bin/pa* \
+               $(1)/usr/bin/
+endef
+
+define Package/pulseaudio-profiles/install
+       $(INSTALL_DIR) \
+               $(1)/usr/share/pulseaudio/alsa-mixer/paths \
+               $(1)/usr/share/pulseaudio/alsa-mixer/profile-sets
+
+       $(INSTALL_CONF) \
+               $(PKG_INSTALL_DIR)/usr/share/pulseaudio/alsa-mixer/paths/* \
+               $(1)/usr/share/pulseaudio/alsa-mixer/paths
+
+       $(INSTALL_CONF) \
+               $(PKG_INSTALL_DIR)/usr/share/pulseaudio/alsa-mixer/profile-sets/* \
+               $(1)/usr/share/pulseaudio/alsa-mixer/profile-sets
+endef
+
+$(eval $(call BuildPackage,pulseaudio-daemon))
+$(eval $(call BuildPackage,pulseaudio-daemon-avahi))
+$(eval $(call BuildPackage,pulseaudio-tools))
+$(eval $(call BuildPackage,pulseaudio-profiles))
diff --git a/sound/pulseaudio/files/pulseaudio.init b/sound/pulseaudio/files/pulseaudio.init
new file mode 100644 (file)
index 0000000..336f371
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2011 OpenWrt.org
+
+START=65
+STOP=65
+
+USE_PROCD=1
+PROG=/usr/bin/pulseaudio
+
+start_service() {
+       user_exists pulse 51 || user_add pulse 51
+       group_exists pulse 51 || group_add pulse 51
+       [ -d /var/run/pulse ] || {
+               mkdir -m 0755 -p /var/run/pulse
+               chmod 0750 /var/run/pulse
+               chown pulse:pulse /var/run/pulse
+       }
+       [ -d /var/lib/pulse ] || {
+               mkdir -m 0755 -p /var/lib/pulse
+               chmod 0750 /var/lib/pulse
+               chown pulse:pulse /var/lib/pulse
+       }
+
+       chown root:pulse /dev/snd/* /dev/mixer /dev/dsp
+       chmod 664 /dev/snd/* /dev/mixer /dev/dsp
+
+       procd_open_instance
+       procd_set_param command $PROG --system --disallow-exit --disallow-module-loading --disable-shm --exit-idle-time=-1 --realtime=false
+       procd_close_instance
+}
+
diff --git a/sound/pulseaudio/patches/001-no_default_64mb_alloc.patch b/sound/pulseaudio/patches/001-no_default_64mb_alloc.patch
new file mode 100644 (file)
index 0000000..00a2274
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/src/pulsecore/memblock.c
++++ b/src/pulsecore/memblock.c
+@@ -57,7 +57,7 @@
+  * stored in SHM and our OS does not commit the memory before we use
+  * it for the first time. */
+ #define PA_MEMPOOL_SLOTS_MAX 1024
+-#define PA_MEMPOOL_SLOT_SIZE (64*1024)
++#define PA_MEMPOOL_SLOT_SIZE 64
+ #define PA_MEMEXPORT_SLOTS_MAX 128