1 |
commit: 8d33a3e7342241d33a1d66b086019b391cd61d25 |
2 |
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Jan 1 17:15:45 2022 +0000 |
4 |
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Jan 1 20:41:08 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8d33a3e7 |
7 |
|
8 |
media-libs/cubeb: initial import, 2021-12-13 snapshot |
9 |
|
10 |
Needed to unbundle on pcsx2, also used by some out-of-tree |
11 |
packages like yuzu. |
12 |
|
13 |
rust being optional may be questionable given non-rust pulseaudio |
14 |
backend is deprecated and due for removal -- but most packages |
15 |
that bundle this tend to use the C++ version and it may be useful |
16 |
for testing. Also upstream spoke of releasing a LTS 1.x branch that |
17 |
likely won't remove it anytime soon. |
18 |
|
19 |
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org> |
20 |
|
21 |
media-libs/cubeb/Manifest | 14 +++ |
22 |
media-libs/cubeb/cubeb-0.2_p20211213.ebuild | 110 +++++++++++++++++++++ |
23 |
.../files/cubeb-0.2_p20211213-automagic.patch | 51 ++++++++++ |
24 |
media-libs/cubeb/metadata.xml | 16 +++ |
25 |
4 files changed, 191 insertions(+) |
26 |
|
27 |
diff --git a/media-libs/cubeb/Manifest b/media-libs/cubeb/Manifest |
28 |
new file mode 100644 |
29 |
index 000000000000..3361c26d0708 |
30 |
--- /dev/null |
31 |
+++ b/media-libs/cubeb/Manifest |
32 |
@@ -0,0 +1,14 @@ |
33 |
+DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62 |
34 |
+DIST cache-padded-1.2.0.crate 9125 BLAKE2B d50b506aca9cfad3117be593c33bba4a5240034a838610925f9eac969155f22e0064c91f8d3588333880d1f5b6b936df87c0728530f80cd1062c73d570bfd1e4 SHA512 5b67d06908981d0e1ba01912a973cc5c90ce6612f227b306d12b13500594f5d2376d437a046e10b9cf959b609cb67fa6e24193fc651cb2d84e1f77338c6823fc |
35 |
+DIST cc-1.0.72.crate 57495 BLAKE2B b2057ca53aacafa063a4eaa907bfb65aa32ce01a74a90b9085c8243a87723cee8ce79e4904f9d205f9d451598ee34495f8879d27c189477ca43bd39b88b5ea2e SHA512 e9a5b283b2a1fee1030009068c1f87291ec1dab7584a0892f27cc7e523c8fdfd5d986281d9aec1a00af706af1e61d7e64c245c74be7b39c8c022ae2d4f87de8d |
36 |
+DIST cmake-0.1.46.crate 15119 BLAKE2B 0889436835c16bc47cdc671615f421a50acf6c34a3ba3b6b8b4289e11bf1b803abd15d88a65ae9c1588586151f467524517e9c60d5dcc820e41ff21711f3a536 SHA512 e2749309055c85baa242cef8d0f4a91eb7e694664c5e42339df8ccc6644d1563337b835d3d931f5a0a75351efd299a21fe6eea497941802ea041916d665c7311 |
37 |
+DIST cubeb-0.2_p20211213.tar.gz 220413 BLAKE2B 65cf123351f1d465e15c3822f4ae2890cb62e7b5cec22beffd444ac452650b71c1bbc71e50836da6d0474ae6847fdf57c4ee85975f26a35f6db4e1f7a21fef76 SHA512 33abe2bc426b06c3c6cb557fe1be62725f1dc56776d02ec6651ef8710d3a5d302b1f730ceaefe516ff1974775cdabd3753f24436c705af3c6e98fd5dabb6b015 |
38 |
+DIST cubeb-backend-0.9.0.crate 5871 BLAKE2B ac8cfd9a43eefa336fbad67c7183c3bd2375f7de36dfe17df55aef0003b950cd8eb45c823b51302f60773ebafbe6de8a80f276f5bc4c2fe250be6073fe95ae1c SHA512 e02c4703b630cbecfbe20bf3193fa88a130385885fecc18c2a8d6e464b13f0f395251afb35049cd1371532e372a6a5addc856e959fd2d6da63615f1cfdb20f14 |
39 |
+DIST cubeb-core-0.9.0.crate 10782 BLAKE2B 60feec670c0d0d74f45a2c8ef4d0d564aae3e79f28087b7392f61baf3a0f31822929cdbbf1dd2506ea5d4249765eead516e6adb8d1867fbc2e77eeec9b06eb4a SHA512 2a7b660f6a1c36e6cbdaef4e26589240675d1e553f75d2093b39e4dfc4c82327ce080f68143e7c8383cb198796d7ab764cd4038532010847d9829b98f07f530e |
40 |
+DIST cubeb-pulse-rs-0.2_p20211213.tar.gz 37658 BLAKE2B 82b137df7072a048b6115a17a8f973f1464470094468f19c0e56835db6d8d7355115e712b02f29be3055868435c21915423cfc48c8b55f856e0b008f14802e3b SHA512 1bee7bbeacccf31e51a420cb28c37fb6747ff4b364cbf633e18e507959bbf46d4b706b35c7a200421b68295244289a56b4e8193c63f87c5996ddcdfd7c527054 |
41 |
+DIST cubeb-sys-0.9.1.crate 677935 BLAKE2B a6e10ee95e67ef03e2fa1915007a69227b28c0ade055cdff8e7941634690c6f34de8509e9b10b870097f3b17ca478794577a480232534aa1e593b6813eedbeee SHA512 594e7be07e2558ae81506ca52724bebaf51d2b99158af3808edee827f827dbfef24dc9f1a160bf23e3ac39043b17b920578164697f48a7e0fd544c0196b4f773 |
42 |
+DIST libc-0.2.112.crate 571445 BLAKE2B 3936f4fd08cda0ad5be7b1ff417b6dfc9abad14ea5cf647425d8a2e7306275e958fb5cab4de9eeaab95065176bc295065bafec3846ebadb6e15cba20de495280 SHA512 6c1a027eff21d3ef8078ad19b90b06d90790919a848e95a4c878e8c8b850d2e9be3fca36d8db39b24e472f15e5352ead1182d5491a0b382e06f8c3ead379c45f |
43 |
+DIST pkg-config-0.3.24.crate 16489 BLAKE2B d0bd099bcc39928b6758c22b14291f2dc4f4452c0837aeed8c3ff6086cdcf29518806e4f3f379804c998d752b717a26d5c0054c071c5f4c224a3e03cc6a3ee51 SHA512 be22c609b3d5a9a38bab1d30792cff397cc908f1c53fb2da68a9a7d1258e53ef64c1c5b26d840b0ed1d35b307c98ffb499c82e5796e88be0a6ecc0c6f3b5dbfb |
44 |
+DIST ringbuf-0.2.6.crate 18882 BLAKE2B 048402ee7e0fbe81597fa8450a50f89faaffac8dbe2cba1d1ddb870127e0a85f0e4f7553a806ea94530c00e113ee039a9c5df4d5e458bffdd3d483f09b39fc0a SHA512 e8a038342226f13c88137a91c27f14323b02dbafb8991c369c0332024a421edbb797db665e31ff9b35f40147fd1d71235a059930b574195add9a6613312472d6 |
45 |
+DIST semver-0.9.0.crate 17344 BLAKE2B ae782bc78f29e45577de8574ee58959c70b54bb0b6f45a5a7b09cc4d358d9a0a80bbefc6e0f2a330e2b55adfbbe5c1f64f4ec9bb94c4adf7bb3e4fc9c142db6c SHA512 03a2ea563456f812c301721c3572370fe4934a22db60079da0dd6ffa33fa789e5e2436ef09e62fc35e0b742b06fabc290992c74eed80419a353c9de9449928dc |
46 |
+DIST semver-parser-0.7.0.crate 10268 BLAKE2B e46b7cf9d292f8fc54561fca4df8534dc96f6be920a5c869c405ddb31b9d1a18eab0799207113cf4910a52cc0df5017ab1bc1883a7c3787ebf2d60f09ac0ab4f SHA512 17320468ec6b9862d595f358d70c09ac6e09db7885fe0ead7a1e596f79350a6306e8bfde5bbd6512008a7c5454da1c7ae55fe1e3bc1c1ff02ac9df54c0a6121f |
47 |
|
48 |
diff --git a/media-libs/cubeb/cubeb-0.2_p20211213.ebuild b/media-libs/cubeb/cubeb-0.2_p20211213.ebuild |
49 |
new file mode 100644 |
50 |
index 000000000000..46cafe446b91 |
51 |
--- /dev/null |
52 |
+++ b/media-libs/cubeb/cubeb-0.2_p20211213.ebuild |
53 |
@@ -0,0 +1,110 @@ |
54 |
+# Copyright 2022 Gentoo Authors |
55 |
+# Distributed under the terms of the GNU General Public License v2 |
56 |
+ |
57 |
+EAPI=8 |
58 |
+ |
59 |
+CARGO_OPTIONAL=1 |
60 |
+CRATES=" |
61 |
+ bitflags-1.3.2 |
62 |
+ cache-padded-1.2.0 |
63 |
+ cc-1.0.72 |
64 |
+ cmake-0.1.46 |
65 |
+ cubeb-backend-0.9.0 |
66 |
+ cubeb-core-0.9.0 |
67 |
+ cubeb-sys-0.9.1 |
68 |
+ libc-0.2.112 |
69 |
+ pkg-config-0.3.24 |
70 |
+ ringbuf-0.2.6 |
71 |
+ semver-0.9.0 |
72 |
+ semver-parser-0.7.0" |
73 |
+inherit cargo cmake |
74 |
+ |
75 |
+CUBEB_COMMIT="773f16b7ea308392c05be3e290163d1f636e6024" |
76 |
+PULSERS_COMMIT="f2456201dbfdc467b80f0ff6bbb1b8a6faf7df02" |
77 |
+ |
78 |
+DESCRIPTION="Cross-platform audio library" |
79 |
+HOMEPAGE="https://github.com/mozilla/cubeb/" |
80 |
+SRC_URI=" |
81 |
+ https://github.com/mozilla/cubeb/archive/${CUBEB_COMMIT}.tar.gz -> ${P}.tar.gz |
82 |
+ pulseaudio? ( rust? ( |
83 |
+ https://github.com/mozilla/cubeb-pulse-rs/archive/${PULSERS_COMMIT}.tar.gz -> ${PN}-pulse-rs-${PV}.tar.gz |
84 |
+ $(cargo_crate_uris) |
85 |
+ ) )" |
86 |
+S="${WORKDIR}/${PN}-${CUBEB_COMMIT}" |
87 |
+ |
88 |
+LICENSE="ISC pulseaudio? ( rust? ( || ( Apache-2.0 MIT ) ) )" |
89 |
+SLOT="0" |
90 |
+KEYWORDS="~amd64 ~x86" |
91 |
+IUSE="alsa doc jack pulseaudio +rust sndio test" |
92 |
+RESTRICT="!test? ( test )" |
93 |
+ |
94 |
+RDEPEND=" |
95 |
+ media-libs/speexdsp |
96 |
+ alsa? ( media-libs/alsa-lib ) |
97 |
+ jack? ( virtual/jack ) |
98 |
+ pulseaudio? ( media-sound/pulseaudio ) |
99 |
+ sndio? ( media-sound/sndio:= )" |
100 |
+DEPEND=" |
101 |
+ ${RDEPEND} |
102 |
+ test? ( dev-cpp/gtest )" |
103 |
+BDEPEND=" |
104 |
+ doc? ( app-doc/doxygen ) |
105 |
+ pulseaudio? ( rust? ( ${RUST_DEPEND} ) )" |
106 |
+ |
107 |
+PATCHES=( |
108 |
+ "${FILESDIR}"/${P}-automagic.patch |
109 |
+) |
110 |
+ |
111 |
+src_unpack() { |
112 |
+ use pulseaudio && use rust && cargo_src_unpack || default |
113 |
+} |
114 |
+ |
115 |
+src_prepare() { |
116 |
+ if use pulseaudio && use rust; then |
117 |
+ mv ../${PN}-pulse-rs-${PULSERS_COMMIT} src/${PN}-pulse-rs || die |
118 |
+ fi |
119 |
+ |
120 |
+ cmake_src_prepare |
121 |
+ |
122 |
+ use !debug || sed -i 's|/release/|/debug/|' CMakeLists.txt || die |
123 |
+} |
124 |
+ |
125 |
+src_configure() { |
126 |
+ local mycmakeargs=( |
127 |
+ -DBUILD_RUST_LIBS=$(usex rust) |
128 |
+ -DBUILD_TESTS=$(usex test) |
129 |
+ -DCHECK_ALSA=$(usex alsa) |
130 |
+ -DCHECK_JACK=$(usex jack) |
131 |
+ -DCHECK_PULSE=$(usex pulseaudio) |
132 |
+ -DCHECK_SNDIO=$(usex sndio) |
133 |
+ -DLAZY_LOAD_LIBS=no |
134 |
+ -DUSE_SANITIZERS=no |
135 |
+ $(cmake_use_find_package doc Doxygen) |
136 |
+ ) |
137 |
+ |
138 |
+ use pulseaudio && use rust && |
139 |
+ cargo_src_configure --manifest-path src/${PN}-pulse-rs/Cargo.toml |
140 |
+ |
141 |
+ cmake_src_configure |
142 |
+} |
143 |
+ |
144 |
+src_compile() { |
145 |
+ use pulseaudio && use rust && cargo_src_compile |
146 |
+ |
147 |
+ cmake_src_compile |
148 |
+} |
149 |
+ |
150 |
+src_test() { |
151 |
+ use pulseaudio && use rust && cargo_src_test |
152 |
+ |
153 |
+ # these tests need access to audio devices and no sandbox |
154 |
+ cmake_src_test -E '(audio|callback_ret|device_changed_callback|devices|duplex|latency|record|sanity|tone)' |
155 |
+} |
156 |
+ |
157 |
+src_install() { |
158 |
+ cmake_src_install |
159 |
+ |
160 |
+ use doc && dodoc -r "${BUILD_DIR}"/docs/html |
161 |
+ |
162 |
+ use !test || rm "${ED}"/usr/bin/test_* || die |
163 |
+} |
164 |
|
165 |
diff --git a/media-libs/cubeb/files/cubeb-0.2_p20211213-automagic.patch b/media-libs/cubeb/files/cubeb-0.2_p20211213-automagic.patch |
166 |
new file mode 100644 |
167 |
index 000000000000..5dd4a9553562 |
168 |
--- /dev/null |
169 |
+++ b/media-libs/cubeb/files/cubeb-0.2_p20211213-automagic.patch |
170 |
@@ -0,0 +1,51 @@ |
171 |
+--- a/CMakeLists.txt |
172 |
++++ b/CMakeLists.txt |
173 |
+@@ -175,38 +175,48 @@ |
174 |
+ |
175 |
+ find_package(PkgConfig REQUIRED) |
176 |
+ |
177 |
++ if(CHECK_PULSE) |
178 |
+ pkg_check_modules(libpulse IMPORTED_TARGET libpulse) |
179 |
+ if(libpulse_FOUND) |
180 |
+ set(USE_PULSE ON) |
181 |
+ target_compile_definitions(cubeb PRIVATE DISABLE_LIBPULSE_DLOPEN) |
182 |
+ target_link_libraries(cubeb PRIVATE PkgConfig::libpulse) |
183 |
+ endif() |
184 |
++ endif() |
185 |
+ |
186 |
++ if(CHECK_ALSA) |
187 |
+ pkg_check_modules(alsa IMPORTED_TARGET alsa) |
188 |
+ if(alsa_FOUND) |
189 |
+ set(USE_ALSA ON) |
190 |
+ target_compile_definitions(cubeb PRIVATE DISABLE_LIBASOUND_DLOPEN) |
191 |
+ target_link_libraries(cubeb PRIVATE PkgConfig::alsa) |
192 |
+ endif() |
193 |
++ endif() |
194 |
+ |
195 |
++ if(CHECK_JACK) |
196 |
+ pkg_check_modules(jack IMPORTED_TARGET jack) |
197 |
+ if(jack_FOUND) |
198 |
+ set(USE_JACK ON) |
199 |
+ target_compile_definitions(cubeb PRIVATE DISABLE_LIBJACK_DLOPEN) |
200 |
+ target_link_libraries(cubeb PRIVATE PkgConfig::jack) |
201 |
+ endif() |
202 |
++ endif() |
203 |
+ |
204 |
++ if(CHECK_SNDIO) |
205 |
+ check_include_files(sndio.h USE_SNDIO) |
206 |
+ if(USE_SNDIO) |
207 |
+ target_compile_definitions(cubeb PRIVATE DISABLE_LIBSNDIO_DLOPEN) |
208 |
+ target_link_libraries(cubeb PRIVATE sndio) |
209 |
+ endif() |
210 |
++ endif() |
211 |
+ |
212 |
++ if(CHECK_AAUDIO) |
213 |
+ check_include_files(aaudio/AAudio.h USE_AAUDIO) |
214 |
+ if(USE_AAUDIO) |
215 |
+ target_compile_definitions(cubeb PRIVATE DISABLE_LIBAAUDIO_DLOPEN) |
216 |
+ target_link_libraries(cubeb PRIVATE aaudio) |
217 |
+ endif() |
218 |
++ endif() |
219 |
+ endif() |
220 |
+ |
221 |
+ if(USE_PULSE) |
222 |
|
223 |
diff --git a/media-libs/cubeb/metadata.xml b/media-libs/cubeb/metadata.xml |
224 |
new file mode 100644 |
225 |
index 000000000000..2d8dcbf48bf3 |
226 |
--- /dev/null |
227 |
+++ b/media-libs/cubeb/metadata.xml |
228 |
@@ -0,0 +1,16 @@ |
229 |
+<?xml version="1.0" encoding="UTF-8"?> |
230 |
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> |
231 |
+<pkgmetadata> |
232 |
+ <maintainer type="person"> |
233 |
+ <email>ionen@g.o</email> |
234 |
+ <name>Ionen Wolkens</name> |
235 |
+ </maintainer> |
236 |
+ <use> |
237 |
+ <flag name="rust">Use the newer rust-based audio backends if available</flag> |
238 |
+ <flag name="sndio">Enable support for the <pkg>media-sound/sndio</pkg> backend</flag> |
239 |
+ </use> |
240 |
+ <upstream> |
241 |
+ <remote-id type="github">mozilla/cubeb</remote-id> |
242 |
+ <remote-id type="github">mozilla/cubeb-pulse-rs</remote-id> |
243 |
+ </upstream> |
244 |
+</pkgmetadata> |