diff --git a/community/pulseaudio/300a1a96fa43ee456512843c671bdf1f9c75ca24.patch b/community/pulseaudio/300a1a96fa43ee456512843c671bdf1f9c75ca24.patch
new file mode 100644
index 0000000000000000000000000000000000000000..aff2f4cfc6670a819a52aa5cfcc98977e0d6b63d
--- /dev/null
+++ b/community/pulseaudio/300a1a96fa43ee456512843c671bdf1f9c75ca24.patch
@@ -0,0 +1,24 @@
+From: Felipe Sateler <fsateler@debian.org>
+Date: Tue, 15 Jan 2019 21:52:31 -0300
+Subject: Don't compile with -ffast-math
+
+This flag results in calls to (at least) isfinite() and isnan() becoming
+skipped, and a constant false returned. This causes test failures.
+See https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/619
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index c9c414f..3165b9a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -182,7 +182,7 @@ AX_CHECK_COMPILE_FLAG([-std=gnu11],
+    [-pedantic -Werror])
+ 
+ AX_APPEND_COMPILE_FLAGS(
+-    [-Wall -W -Wextra -pipe -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -ffast-math -fno-common -fdiagnostics-show-option -fdiagnostics-color=auto],
++    [-Wall -W -Wextra -pipe -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -fno-common -fdiagnostics-show-option -fdiagnostics-color=auto],
+     [], [-pedantic -Werror])
+ 
+ AS_CASE([" $CFLAGS "], [*" -O0 "*], [], [
diff --git a/community/pulseaudio/APKBUILD b/community/pulseaudio/APKBUILD
index 43781f0fd293caf51a550e9c6323df6bd7e2fdad..8ea3118f10444e5bb5707cffe794f1cf6e25d741 100644
--- a/community/pulseaudio/APKBUILD
+++ b/community/pulseaudio/APKBUILD
@@ -5,7 +5,7 @@
 # Maintainer: Leo <thinkabit.ukim@gmail.com>
 pkgname=pulseaudio
 pkgver=12.2
-pkgrel=2
+pkgrel=3
 pkgdesc="A featureful, general-purpose sound server"
 url="http://www.freedesktop.org/wiki/Software/PulseAudio"
 arch="all !s390x"
@@ -22,13 +22,16 @@ install="pulseaudio.post-install"
 source="https://freedesktop.org/software/pulseaudio/releases/pulseaudio-$pkgver.tar.xz
 	$pkgname.initd
 	$pkgname.confd
-	disable-desktop.patch"
+	disable-desktop.patch
+	b89d33bb182c42db5ad3987b0e91b7bf62f421e8.patch
+	300a1a96fa43ee456512843c671bdf1f9c75ca24.patch"
 
-options="!check" # The volume-test may fail for unknown reasons
+options="!check" # Tests try to access nls stuff, which we disable
 
 prepare() {
-	NOCONFIGURE=1 ./bootstrap.sh
 	default_prepare
+	autopoint --force
+	AUTOPOINT='intltoolize --automake --copy --force' autoreconf -if
 }
 
 build() {
@@ -39,6 +42,7 @@ build() {
 		--sysconfdir=/etc \
 		--mandir=/usr/share/man \
 		--localstatedir=/var \
+		--datadir=/usr/share \
 		--enable-bluez5 \
 		--disable-bluez4 \
 		--disable-nls \
@@ -53,16 +57,19 @@ build() {
 		--disable-rpath \
 		--disable-esound \
 		--disable-hal-compat \
-		--enable-x11 \
-		DATADIRNAME=share
+		--enable-x11
 
 	sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
 
 	make
 }
 
+check() {
+	make check
+}
+
 package() {
-	make -j1 DESTDIR="$pkgdir" install
+	make DESTDIR="$pkgdir" install
 }
 
 openrc() {
@@ -149,4 +156,6 @@ zshcomp() {
 sha512sums="877754c1838b3cb042dbc18a5f1cc3cf313ffcaee7a64703330406d1f86279c34f1107634ac3083b158365e6757fbacf5ec406bc3c5788d291de67b77a561a4e  pulseaudio-12.2.tar.xz
 34fe54ece5df60ce63a7955cd828a2716670fef71f40960698ae5518fdaf9cd599f4d8f8852e2c88d715600a9ad06a38984415e5eb320071012e5eb6e5c1b8b1  pulseaudio.initd
 75b54581591519d63a3362b155c0f9b0501a60763ab394693a456c44d0216138cf3a40bdd0f7442028663bc045e9ffee286f8f8eaf2ee3bb17379b43615fee0e  pulseaudio.confd
-11aaa7a1f015ae2b99c2a74f1d2646b51df4a2243c0d44795abbfb9892b9c34ceb37902f0eefa206790d375bd3945cfefaa381e00f4e846cd325b9344328282b  disable-desktop.patch"
+11aaa7a1f015ae2b99c2a74f1d2646b51df4a2243c0d44795abbfb9892b9c34ceb37902f0eefa206790d375bd3945cfefaa381e00f4e846cd325b9344328282b  disable-desktop.patch
+bd5f34363076b655070add1e1f6fa526766e69c9ba75d7e6aad7e13782ecbd183a0837aa5fc20679c54d3939871497f0c63d3d6dd8a985105263b62dd0aaa3c7  b89d33bb182c42db5ad3987b0e91b7bf62f421e8.patch
+fe1f4c4b112b2e756c0cd56dd7990865165e8cfc92a9cd3e14a8e4ac4c359f3d501a24a44fd8bd26258b49ca52cfdd84581ad7509274fbd79a211b60dd9faf7f  300a1a96fa43ee456512843c671bdf1f9c75ca24.patch"
diff --git a/community/pulseaudio/b89d33bb182c42db5ad3987b0e91b7bf62f421e8.patch b/community/pulseaudio/b89d33bb182c42db5ad3987b0e91b7bf62f421e8.patch
new file mode 100644
index 0000000000000000000000000000000000000000..671ef3cc83210210435390149ea80c69a3b1d45e
--- /dev/null
+++ b/community/pulseaudio/b89d33bb182c42db5ad3987b0e91b7bf62f421e8.patch
@@ -0,0 +1,45 @@
+From b89d33bb182c42db5ad3987b0e91b7bf62f421e8 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Sun, 21 Apr 2019 11:59:30 +0200
+Subject: [PATCH] alsa: Fix inclusion of use-case.h
+
+The recent change in ALSA upstream stripped -I$include/alsa path from
+pkgconfig.  We already fixed for this change in some places but still
+the code for UCM was overlooked, and this resulted in the unresolved
+symbols in alsa card module. Fix them as well.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+---
+ configure.ac                | 2 +-
+ src/modules/alsa/alsa-ucm.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index c004bd70d..b44ed1595 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -826,7 +826,7 @@ AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
+ AS_IF([test "x$HAVE_ALSA" = "x1"],
+     [
+         save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS"
+-        AC_CHECK_HEADERS([use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
++        AC_CHECK_HEADERS([alsa/use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
+         CPPFLAGS="$save_CPPFLAGS"
+     ],
+     HAVE_ALSA_UCM=0)
+diff --git a/src/modules/alsa/alsa-ucm.h b/src/modules/alsa/alsa-ucm.h
+index 53abf3f90..c926f3cc3 100644
+--- a/src/modules/alsa/alsa-ucm.h
++++ b/src/modules/alsa/alsa-ucm.h
+@@ -23,7 +23,7 @@
+ ***/
+ 
+ #ifdef HAVE_ALSA_UCM
+-#include <use-case.h>
++#include <alsa/use-case.h>
+ #else
+ typedef void snd_use_case_mgr_t;
+ #endif
+-- 
+2.18.1
+