diff options
Diffstat (limited to 'meta/recipes-multimedia/pulseaudio/pulseaudio.inc')
-rw-r--r-- | meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc new file mode 100644 index 0000000000..99cad76186 --- /dev/null +++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc | |||
@@ -0,0 +1,151 @@ | |||
1 | SUMMARY = "Sound server for Linux and Unix-like operating systems" | ||
2 | HOMEPAGE = "http://www.pulseaudio.org" | ||
3 | AUTHOR = "Lennart Poettering" | ||
4 | SECTION = "libs/multimedia" | ||
5 | LICENSE = "GPLv2+ & LGPLv2.1" | ||
6 | LIC_FILES_CHKSUM = "file://GPL;md5=4325afd396febcb659c36b49533135d4 \ | ||
7 | file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ | ||
8 | file://src/pulsecore/resampler.h;beginline=4;endline=23;md5=c3d539b93f8c82a1780bfa3cfa544a95" | ||
9 | |||
10 | DEPENDS = "libatomics-ops liboil libsamplerate0 libsndfile1 libtool" | ||
11 | # optional | ||
12 | DEPENDS += "udev alsa-lib glib-2.0 dbus gconf" | ||
13 | DEPENDS += "json-c gdbm speex libxml-parser-perl-native libcap" | ||
14 | |||
15 | inherit autotools pkgconfig useradd gettext perlnative | ||
16 | |||
17 | # *.desktop rules wont be generated during configure and build will fail | ||
18 | # if using --disable-nls | ||
19 | USE_NLS = "yes" | ||
20 | |||
21 | EXTRA_OECONF = "\ | ||
22 | --disable-hal-compat \ | ||
23 | --disable-orc \ | ||
24 | --enable-tcpwrap=no \ | ||
25 | --with-access-group=audio \ | ||
26 | --disable-openssl \ | ||
27 | --disable-xen \ | ||
28 | --with-database=simple \ | ||
29 | --without-fftw \ | ||
30 | --with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d \ | ||
31 | ac_cv_header_valgrind_memcheck_h=no \ | ||
32 | " | ||
33 | |||
34 | PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez4', '', d)} \ | ||
35 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \ | ||
36 | ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \ | ||
37 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" | ||
38 | PACKAGECONFIG[bluez4] = "--enable-bluez4,--disable-bluez4,bluez4 sbc" | ||
39 | PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5 sbc" | ||
40 | PACKAGECONFIG[gtk] = "--enable-gtk3,--disable-gtk3,gtk+3" | ||
41 | PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd" | ||
42 | PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxtst libice libsm libxcb" | ||
43 | PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi" | ||
44 | PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" | ||
45 | |||
46 | EXTRA_OECONF_append_arm = "${@bb.utils.contains("TUNE_FEATURES", "neon", "", " --enable-neon-opt=no", d)}" | ||
47 | EXTRA_OECONF_append_armeb = "${@bb.utils.contains("TUNE_FEATURES", "neon", "", " --enable-neon-opt=no", d)}" | ||
48 | |||
49 | |||
50 | export TARGET_PFPU = "${TARGET_FPU}" | ||
51 | |||
52 | # TODO: Use more fine granular version | ||
53 | #OE_LT_RPATH_ALLOW=":${libdir}/pulse-0.9:" | ||
54 | OE_LT_RPATH_ALLOW = "any" | ||
55 | OE_LT_RPATH_ALLOW[export]="1" | ||
56 | |||
57 | do_install_append() { | ||
58 | install -d ${D}${sysconfdir}/default/volatiles | ||
59 | install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/volatiles.04_pulse | ||
60 | |||
61 | if [ "x${TARGET_PFPU}" = "xsoft" ] ; then | ||
62 | sed -i -e s:\;\ resample-method\ =\ sinc-fastest:resample-method\ =\ trivial: ${D}${sysconfdir}/pulse/daemon.conf | ||
63 | fi | ||
64 | } | ||
65 | |||
66 | USERADD_PACKAGES = "pulseaudio-server" | ||
67 | GROUPADD_PARAM_pulseaudio-server = "pulse" | ||
68 | USERADD_PARAM_pulseaudio-server = "--system --home /var/run/pulse \ | ||
69 | --no-create-home --shell /bin/false \ | ||
70 | --groups audio,pulse --gid pulse pulse" | ||
71 | |||
72 | # The console-kit module is included here explicitly so bitbake can map to the | ||
73 | # RDEPENDS we define for it in this recipe, and thereby ensure that when | ||
74 | # adding the console-kit module to an image, we also get the necessary | ||
75 | # consolekit package produced. | ||
76 | PACKAGES =+ "libpulsecore libpulsecommon libpulse libpulse-simple libpulse-mainloop-glib \ | ||
77 | pulseaudio-server pulseaudio-misc ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'pulseaudio-module-console-kit', '', d)}" | ||
78 | |||
79 | #upgrade path: | ||
80 | RREPLACES_pulseaudio-server = "libpulse-bin libpulse-conf" | ||
81 | |||
82 | PACKAGES_DYNAMIC += "^pulseaudio-lib-.* ^pulseaudio-module-.*" | ||
83 | |||
84 | FILES_libpulsecore = "${libdir}/libpulsecore*.so" | ||
85 | FILES_libpulsecommon = "${libdir}/pulseaudio/libpulsecommon*.so" | ||
86 | FILES_libpulse = "${libdir}/libpulse.so.*" | ||
87 | FILES_libpulse-simple = "${libdir}/libpulse-simple.so.*" | ||
88 | FILES_libpulse-mainloop-glib = "${libdir}/libpulse-mainloop-glib.so.*" | ||
89 | |||
90 | FILES_${PN}-dbg += "${libexecdir}/pulse/.debug \ | ||
91 | ${libdir}/pulse-${PV}/modules/.debug" | ||
92 | FILES_${PN}-dev += "${libdir}/pulse-${PV}/modules/*.la ${datadir}/vala ${libdir}/cmake" | ||
93 | FILES_${PN}-conf = "${sysconfdir}" | ||
94 | FILES_${PN}-bin += "${sysconfdir}/default/volatiles/volatiles.04_pulse" | ||
95 | FILES_${PN}-server = "${bindir}/pulseaudio ${bindir}/start-* ${sysconfdir} ${bindir}/pactl */udev/rules.d/*.rules" | ||
96 | FILES_${PN}-misc = "${bindir}/* ${libdir}/pulseaudio/libpulsedsp.so" | ||
97 | |||
98 | # Allow the pulseaudio package to be created empty as a placeholder (-dbg and -dev depend on it) | ||
99 | ALLOW_EMPTY_${PN} = "1" | ||
100 | |||
101 | CONFFILES_pulseaudio-server = "\ | ||
102 | ${sysconfdir}/pulse/default.pa \ | ||
103 | ${sysconfdir}/pulse/daemon.conf \ | ||
104 | ${sysconfdir}/pulse/client.conf \ | ||
105 | " | ||
106 | |||
107 | pkg_postinst_${PN}-server() { | ||
108 | if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ] ; then | ||
109 | ${sysconfdir}/init.d/populate-volatile.sh update | ||
110 | fi | ||
111 | } | ||
112 | |||
113 | python populate_packages_prepend() { | ||
114 | #d.setVar('PKG_pulseaudio', 'pulseaudio') | ||
115 | |||
116 | plugindir = d.expand('${libdir}/pulse-${PV}/modules/') | ||
117 | do_split_packages(d, plugindir, '^module-(.*)\.so$', 'pulseaudio-module-%s', 'PulseAudio module for %s', extra_depends='', prepend=True) | ||
118 | do_split_packages(d, plugindir, '^lib(.*)\.so$', 'pulseaudio-lib-%s', 'PulseAudio library for %s', extra_depends='', prepend=True) | ||
119 | } | ||
120 | |||
121 | RDEPENDS_pulseaudio-server = " \ | ||
122 | pulseaudio-module-filter-apply \ | ||
123 | pulseaudio-module-filter-heuristics \ | ||
124 | pulseaudio-module-udev-detect \ | ||
125 | pulseaudio-module-null-sink \ | ||
126 | pulseaudio-module-device-restore \ | ||
127 | pulseaudio-module-stream-restore \ | ||
128 | pulseaudio-module-card-restore \ | ||
129 | pulseaudio-module-augment-properties \ | ||
130 | pulseaudio-module-detect \ | ||
131 | pulseaudio-module-alsa-sink \ | ||
132 | pulseaudio-module-alsa-source \ | ||
133 | pulseaudio-module-alsa-card \ | ||
134 | pulseaudio-module-native-protocol-unix \ | ||
135 | pulseaudio-module-default-device-restore \ | ||
136 | pulseaudio-module-intended-roles \ | ||
137 | pulseaudio-module-rescue-streams \ | ||
138 | pulseaudio-module-always-sink \ | ||
139 | pulseaudio-module-suspend-on-idle \ | ||
140 | pulseaudio-module-position-event-sounds \ | ||
141 | pulseaudio-module-role-cork \ | ||
142 | pulseaudio-module-switch-on-port-available" | ||
143 | |||
144 | RDEPENDS_pulseaudio-module-console-kit =+ "consolekit" | ||
145 | RDEPENDS_pulseaudio-misc += "pulseaudio-module-cli-protocol-unix" | ||
146 | |||
147 | FILES_pulseaudio-module-gconf += "${libexecdir}/pulse/gconf-helper" | ||
148 | FILES_pulseaudio-module-alsa-card += "${datadir}/pulseaudio/alsa-mixer" | ||
149 | |||
150 | RDEPENDS_pulseaudio-server += "\ | ||
151 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'pulseaudio-module-console-kit', '', d)}" | ||