From a49565640c8fbfa08486f3471744888c1b1db369 Mon Sep 17 00:00:00 2001 From: Peter Wagner Date: Mon, 16 Jun 2014 11:46:58 +0200 Subject: [PATCH] pulseaudio: import from packages Signed-off-by: Peter Wagner --- sound/pulseaudio/Makefile | 270 ++++++++++++++++++ sound/pulseaudio/files/pulseaudio.init | 31 ++ .../patches/001-no_default_64mb_alloc.patch | 11 + 3 files changed, 312 insertions(+) create mode 100644 sound/pulseaudio/Makefile create mode 100644 sound/pulseaudio/files/pulseaudio.init create mode 100644 sound/pulseaudio/patches/001-no_default_64mb_alloc.patch diff --git a/sound/pulseaudio/Makefile b/sound/pulseaudio/Makefile new file mode 100644 index 0000000000..24ac2db506 --- /dev/null +++ b/sound/pulseaudio/Makefile @@ -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 + 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 index 0000000000..336f3716ab --- /dev/null +++ b/sound/pulseaudio/files/pulseaudio.init @@ -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 index 0000000000..00a2274167 --- /dev/null +++ b/sound/pulseaudio/patches/001-no_default_64mb_alloc.patch @@ -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 +