summaryrefslogtreecommitdiff
path: root/src/stage4/patches/pulseaudio-breakdeps.patch
blob: 2e22df131b6bd059809d91c26c8a563b3f4266bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
diff -rupN a/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch b/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch
--- a/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch	1970-01-01 01:00:00.000000000 +0100
+++ b/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch	2018-04-10 20:28:26.088548654 +0200
@@ -0,0 +1,63 @@
+From 01239c23f57e74ec40c92144d22fe153ee65f4ff Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanuk@iki.fi>
+Date: Wed, 24 Jan 2018 03:51:49 +0200
+Subject: [PATCH] memfd-wrappers: only define memfd_create() if not already
+ defined
+
+glibc 2.27 is to be released soon, and it will provide memfd_create().
+If glibc provides the function, we must not define it ourselves,
+otherwise building fails due to conflict between the two implementations
+of the same function.
+
+BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=104733
+---
+ configure.ac                   | 3 +++
+ src/pulsecore/memfd-wrappers.h | 7 ++++---
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 013918f1a..1095ae8cb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -607,6 +607,9 @@ AS_IF([test "x$enable_memfd" = "xyes" && test "x$HAVE_MEMFD" = "x0"],
+     [AC_MSG_ERROR([*** Your Linux kernel does not support memfd shared memory.
+                   *** Use linux v3.17 or higher for such a feature.])])
+ 
++AS_IF([test "x$HAVE_MEMFD" = "x1"],
++    AC_CHECK_FUNCS([memfd_create]))
++
+ AC_SUBST(HAVE_MEMFD)
+ AM_CONDITIONAL([HAVE_MEMFD], [test "x$HAVE_MEMFD" = x1])
+ AS_IF([test "x$HAVE_MEMFD" = "x1"], AC_DEFINE([HAVE_MEMFD], 1, [Have memfd shared memory.]))
+diff --git a/src/pulsecore/memfd-wrappers.h b/src/pulsecore/memfd-wrappers.h
+index 3bed9b2b1..c7aadfd3c 100644
+--- a/src/pulsecore/memfd-wrappers.h
++++ b/src/pulsecore/memfd-wrappers.h
+@@ -20,13 +20,14 @@
+   License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
+ ***/
+ 
+-#ifdef HAVE_MEMFD
++#if defined(HAVE_MEMFD) && !defined(HAVE_MEMFD_CREATE)
+ 
+ #include <sys/syscall.h>
+ #include <fcntl.h>
+ 
+ /*
+- * No glibc wrappers exist for memfd_create(2), so provide our own.
++ * Before glibc version 2.27 there was no wrapper for memfd_create(2),
++ * so we have to provide our own.
+  *
+  * Also define memfd fcntl sealing macros. While they are already
+  * defined in the kernel header file <linux/fcntl.h>, that file as
+@@ -63,6 +64,6 @@ static inline int memfd_create(const char *name, unsigned int flags) {
+ #define F_SEAL_WRITE    0x0008  /* prevent writes */
+ #endif
+ 
+-#endif /* HAVE_MEMFD */
++#endif /* HAVE_MEMFD && !HAVE_MEMFD_CREATE */
+ 
+ #endif
+-- 
+2.15.1
+
diff -rupN a/PKGBUILD b/PKGBUILD
--- a/PKGBUILD	2018-04-10 21:02:36.891354284 +0200
+++ b/PKGBUILD	2018-04-10 21:29:58.366198709 +0200
@@ -5,7 +5,7 @@
 # Contributor: William Rea <sillywilly@gmail.com>
 
 pkgbase=pulseaudio
-pkgname=(pulseaudio libpulse pulseaudio-{gconf,zeroconf,lirc,jack,bluetooth,equalizer})
+pkgname=(pulseaudio libpulse pulseaudio-{gconf,zeroconf,lirc,bluetooth,equalizer})
 pkgdesc="A featureful, general-purpose sound server"
 pkgver=11.1
 pkgrel=1
@@ -13,13 +13,15 @@ arch=(i686 x86_64)
 url="https://www.freedesktop.org/wiki/Software/PulseAudio/"
 license=(GPL)
 makedepends=(libasyncns libcap attr libxtst libsm libsndfile libtool rtkit libsoxr
-             speexdsp tdb systemd dbus avahi bluez bluez-libs gconf intltool jack2-dbus sbc
-             lirc openssl fftw orc gtk3 webrtc-audio-processing
+             speexdsp tdb systemd dbus bluez bluez-libs gconf intltool sbc
+             lirc openssl fftw orc webrtc-audio-processing
              check autoconf-archive git)
 options=(!emptydirs)
 _commit=f93e372b0b2cb960df04de3f0a8fbea683bb8229  # tags/v11.1^0
-source=("git+https://anongit.freedesktop.org/git/pulseaudio/pulseaudio#commit=$_commit")
-sha256sums=('SKIP')
+source=("git+https://anongit.freedesktop.org/git/pulseaudio/pulseaudio#commit=$_commit"
+        "0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch")
+sha256sums=('SKIP'
+            'c7e75566cf198ecf09c01b606eb9618ff06528d3a2b3980615684db30f7e5a06')
 
 pkgver() {
   cd pulseaudio
@@ -29,6 +31,7 @@ pkgver() {
 prepare() {
   cd pulseaudio
   NOCONFIGURE=1 ./bootstrap.sh
+  patch -Np1 -i ../0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch
 }
 
 build() {
@@ -125,7 +128,7 @@ package_pulseaudio() {
 
 ### Split modules
 
-  mkdir -p "$srcdir"/{gconf,zeroconf,lirc,jack,bluetooth,equalizer}/usr/lib/pulse-$_pulsever/modules \
+  mkdir -p "$srcdir"/{gconf,zeroconf,lirc,bluetooth,equalizer}/usr/lib/pulse-$_pulsever/modules \
            "$srcdir"/{gconf/usr/lib/pulse,equalizer/usr/bin}
 
   mv usr/lib/pulse-$_pulsever/modules/module-gconf.so \
@@ -133,15 +136,9 @@ package_pulseaudio() {
   mv usr/lib/pulse/gconf-helper \
      "$srcdir/gconf/usr/lib/pulse"
 
-  mv usr/lib/pulse-$_pulsever/modules/{libavahi-wrap,module-{zeroconf-{publish,discover},raop-discover}}.so \
-     "$srcdir/zeroconf/usr/lib/pulse-$_pulsever/modules"
-
   mv usr/lib/pulse-$_pulsever/modules/module-lirc.so \
      "$srcdir/lirc/usr/lib/pulse-$_pulsever/modules"
 
-  mv usr/lib/pulse-$_pulsever/modules/module-jack{-sink,-source,dbus-detect}.so \
-     "$srcdir/jack/usr/lib/pulse-$_pulsever/modules"
-
   mv usr/lib/pulse-$_pulsever/modules/{libbluez5-util,module-{bluetooth-{discover,policy},bluez5-{discover,device}}}.so \
      "$srcdir/bluetooth/usr/lib/pulse-$_pulsever/modules"