Gentoo Archives: gentoo-commits

From: Andrew Savchenko <bircoph@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/apulse/, media-sound/apulse/files/
Date: Sat, 22 Sep 2018 20:53:39
Message-Id: 1537649602.b152b819616a1174bdd133aa5d7dbba64dc262c1.bircoph@gentoo
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>