1 |
commit: b152b819616a1174bdd133aa5d7dbba64dc262c1 |
2 |
Author: Andrew Savchenko <bircoph <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Sep 22 20:44:06 2018 +0000 |
4 |
Commit: Andrew Savchenko <bircoph <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Sep 22 20:53:22 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b152b819 |
7 |
|
8 |
media-sound/apulse: add SDK mode |
9 |
|
10 |
Add SDK mode where apulse acts as drop-in replacement for |
11 |
pulseaudio: headers and pkg-config files are provided, libraries |
12 |
are installed in standard path. |
13 |
|
14 |
Signed-off-by: Andrew Savchenko <bircoph <AT> gentoo.org> |
15 |
Package-Manager: Portage-2.3.49, Repoman-2.3.10 |
16 |
|
17 |
media-sound/apulse/apulse-0.1.12-r1.ebuild | 57 +++++++++++++++++++ |
18 |
media-sound/apulse/files/sdk.patch | 90 ++++++++++++++++++++++++++++++ |
19 |
media-sound/apulse/metadata.xml | 2 + |
20 |
3 files changed, 149 insertions(+) |
21 |
|
22 |
diff --git a/media-sound/apulse/apulse-0.1.12-r1.ebuild b/media-sound/apulse/apulse-0.1.12-r1.ebuild |
23 |
new file mode 100644 |
24 |
index 00000000000..c4fd6706ff2 |
25 |
--- /dev/null |
26 |
+++ b/media-sound/apulse/apulse-0.1.12-r1.ebuild |
27 |
@@ -0,0 +1,57 @@ |
28 |
+# Copyright 1999-2018 Gentoo Foundation |
29 |
+# Distributed under the terms of the GNU General Public License v2 |
30 |
+ |
31 |
+EAPI=6 |
32 |
+ |
33 |
+inherit multilib cmake-multilib |
34 |
+ |
35 |
+DESCRIPTION="PulseAudio emulation for ALSA" |
36 |
+HOMEPAGE="https://github.com/i-rinat/apulse" |
37 |
+SRC_URI="https://github.com/i-rinat/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" |
38 |
+ |
39 |
+LICENSE="MIT LGPL-2.1" |
40 |
+SLOT="0" |
41 |
+KEYWORDS="~amd64 ~x86" |
42 |
+ |
43 |
+IUSE="debug sdk test" |
44 |
+ |
45 |
+DEPEND="dev-libs/glib:2[${MULTILIB_USEDEP}] |
46 |
+ media-libs/alsa-lib[${MULTILIB_USEDEP}] |
47 |
+ sdk? ( !media-sound/pulseaudio ) " |
48 |
+RDEPEND="${DEPEND} |
49 |
+ !!media-plugins/alsa-plugins[pulseaudio]" |
50 |
+ |
51 |
+MULTILIB_CHOST_TOOLS=( /usr/bin/apulse ) |
52 |
+ |
53 |
+PATCHES=( "${FILESDIR}/sdk.patch" ) |
54 |
+ |
55 |
+src_prepare() { |
56 |
+ cmake-utils_src_prepare |
57 |
+ |
58 |
+ if ! use sdk; then |
59 |
+ # Ensure all relevant libdirs are added, to support all ABIs |
60 |
+ DIRS= |
61 |
+ _add_dir() { DIRS="${EPREFIX}/usr/$(get_libdir)/apulse${DIRS:+:${DIRS}}"; } |
62 |
+ multilib_foreach_abi _add_dir |
63 |
+ sed -e "s#@@DIRS@@#${DIRS}#g" "${FILESDIR}"/apulse > "${T}"/apulse || die |
64 |
+ fi |
65 |
+} |
66 |
+ |
67 |
+multilib_src_configure() { |
68 |
+ local mycmakeargs=( |
69 |
+ "-DINSTALL_SDK=$(usex sdk)" |
70 |
+ "-DLOG_TO_STDERR=$(usex debug)" |
71 |
+ "-DWITH_TRACE=$(usex debug)" |
72 |
+ ) |
73 |
+ cmake-utils_src_configure |
74 |
+} |
75 |
+ |
76 |
+multilib_src_test() { |
77 |
+ emake check |
78 |
+} |
79 |
+ |
80 |
+multilib_src_install_all() { |
81 |
+ cmake-utils_src_install |
82 |
+ einstalldocs |
83 |
+ use sdk || dobin "${T}"/apulse |
84 |
+} |
85 |
|
86 |
diff --git a/media-sound/apulse/files/sdk.patch b/media-sound/apulse/files/sdk.patch |
87 |
new file mode 100644 |
88 |
index 00000000000..145194f289c |
89 |
--- /dev/null |
90 |
+++ b/media-sound/apulse/files/sdk.patch |
91 |
@@ -0,0 +1,90 @@ |
92 |
+diff --git a/CMakeLists.txt b/CMakeLists.txt |
93 |
+index 072f3b1..eff028d 100644 |
94 |
+--- a/CMakeLists.txt |
95 |
++++ b/CMakeLists.txt |
96 |
+@@ -28,6 +28,8 @@ else() |
97 |
+ include_directories(${PA_INCLUDE_DIRECTORIES}) |
98 |
+ endif() |
99 |
+ |
100 |
++set(INSTALL_SDK 0 CACHE BOOLEAN "Install SDK files to build applications with apulse (Pulse Audio headers and pkg-config files) instead of system ones") |
101 |
++ |
102 |
+ link_directories(${REQ_LIBRARY_DIRS}) |
103 |
+ |
104 |
+ add_library(trace-helper STATIC |
105 |
+@@ -72,12 +74,30 @@ target_link_libraries(pulse-simple ${SYMBOLMAP} trace-helper ${REQ_LIBRARIES}) |
106 |
+ |
107 |
+ add_subdirectory(tests) |
108 |
+ |
109 |
+-set(APULSEPATH "${CMAKE_INSTALL_PREFIX}/lib/apulse" CACHE PATH "library installation directory") |
110 |
++if (${INSTALL_SDK}) |
111 |
++ set(APULSEPATH "${CMAKE_INSTALL_LIBDIR}" CACHE PATH "library installation directory") |
112 |
++else() |
113 |
++ set(APULSEPATH "${CMAKE_INSTALL_LIBDIR}/apulse" CACHE PATH "library installation directory") |
114 |
++endif() |
115 |
++ |
116 |
+ set(APULSE_SEARCH_PATHS "${APULSEPATH}" CACHE PATH "directory list for LD_LIBRARY_PATH") |
117 |
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/apulse.template" |
118 |
+ "${CMAKE_CURRENT_BINARY_DIR}/apulse" @ONLY) |
119 |
++if (${INSTALL_SDK}) |
120 |
++ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/libpulse.pc.in" |
121 |
++ "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/libpulse.pc" @ONLY) |
122 |
++ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/libpulse-simple.pc.in" |
123 |
++ "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/libpulse-simple.pc" @ONLY) |
124 |
++ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/libpulse-mainloop-glib.pc.in" |
125 |
++ "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/libpulse-mainloop-glib.pc" @ONLY) |
126 |
++endif() |
127 |
+ |
128 |
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/apulse" DESTINATION bin |
129 |
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) |
130 |
+ install(TARGETS pulse-simple pulse pulse-mainloop-glib DESTINATION "${APULSEPATH}") |
131 |
+ install(FILES "${CMAKE_SOURCE_DIR}/man/apulse.1" DESTINATION share/man/man1) |
132 |
++ |
133 |
++if (${INSTALL_SDK}) |
134 |
++ install(DIRECTORY "${CMAKE_SOURCE_DIR}/3rdparty/pulseaudio-headers/pulse" DESTINATION include) |
135 |
++ install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig" DESTINATION "${CMAKE_INSTALL_LIBDIR}") |
136 |
++endif() |
137 |
+diff --git a/pkgconfig/libpulse-mainloop-glib.pc.in b/pkgconfig/libpulse-mainloop-glib.pc.in |
138 |
+new file mode 100644 |
139 |
+index 0000000..957e3b2 |
140 |
+--- /dev/null |
141 |
++++ b/pkgconfig/libpulse-mainloop-glib.pc.in |
142 |
+@@ -0,0 +1,9 @@ |
143 |
++libdir=@CMAKE_INSTALL_FULL_LIBDIR@ |
144 |
++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ |
145 |
++ |
146 |
++Name: libpulse-mainloop-glib |
147 |
++Description: PulseAudio GLib 2.0 Main Loop Wrapper (apulse) |
148 |
++Version: 5.0 |
149 |
++Libs: -L${libdir} -lpulse-mainloop-glib -pthread |
150 |
++Cflags: -I${includedir} |
151 |
++Requires: glib-2.0 |
152 |
+diff --git a/pkgconfig/libpulse-simple.pc.in b/pkgconfig/libpulse-simple.pc.in |
153 |
+new file mode 100644 |
154 |
+index 0000000..3809d50 |
155 |
+--- /dev/null |
156 |
++++ b/pkgconfig/libpulse-simple.pc.in |
157 |
+@@ -0,0 +1,9 @@ |
158 |
++libdir=@CMAKE_INSTALL_FULL__LIBDIR@ |
159 |
++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ |
160 |
++ |
161 |
++Name: libpulse-simple |
162 |
++Description: PulseAudio Simplified Synchronous Client Interface (apulse) |
163 |
++Version: 5.0 |
164 |
++Libs: -L${libdir} -lpulse-simple -pthread |
165 |
++Cflags: -I${includedir} |
166 |
++Requires: glib-2.0 |
167 |
+diff --git a/pkgconfig/libpulse.pc.in b/pkgconfig/libpulse.pc.in |
168 |
+new file mode 100644 |
169 |
+index 0000000..edcbbd8 |
170 |
+--- /dev/null |
171 |
++++ b/pkgconfig/libpulse.pc.in |
172 |
+@@ -0,0 +1,9 @@ |
173 |
++libdir=@CMAKE_INSTALL_FULL_LIBDIR@ |
174 |
++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ |
175 |
++ |
176 |
++Name: libpulse |
177 |
++Description: PulseAudio Client Interface (apulse) |
178 |
++Version: 5.0 |
179 |
++Libs: -L${libdir} -lpulse -pthread |
180 |
++Cflags: -I${includedir} |
181 |
++Requires: glib-2.0 alsa |
182 |
|
183 |
diff --git a/media-sound/apulse/metadata.xml b/media-sound/apulse/metadata.xml |
184 |
index 738e7433246..c51682e2af5 100644 |
185 |
--- a/media-sound/apulse/metadata.xml |
186 |
+++ b/media-sound/apulse/metadata.xml |
187 |
@@ -7,6 +7,8 @@ |
188 |
</maintainer> |
189 |
<use> |
190 |
<flag name="pa-headers">Install PulseAudio headers</flag> |
191 |
+ <flag name="sdk">Install PulseAudio headers and pkg-config files. Be aware apulse is not |
192 |
+ a full PulseAudio replacement by design and some functionality may be missing.</flag> |
193 |
</use> |
194 |
<upstream> |
195 |
<remote-id type="github">i-rinat/apulse</remote-id> |