Mystro256 9cbea8d
%global commit 9caa5b113a2a4faef8bd31894fc2d762b884a5cf
Mystro256 9cbea8d
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Mystro256 9cbea8d
%global gitdate 20200409
Mystro256 9cbea8d
%global fgittag %{gitdate}.git%{shortcommit}
Mystro256 9cbea8d
Mystro256 9cbea8d
%global sanitizerscommit aab6948fa863bc1cbe5d0850bc46b9ef02ed4c1a
Mystro256 9cbea8d
%global sanitizersshortcommit %(c=%{sanitizerscommit}; echo ${c:0:7})
Mystro256 9cbea8d
Mystro256 9cbea8d
Name:           cubeb
Mystro256 9cbea8d
Version:        0.2
96a713a
Release:        6%{?fgittag:.%{fgittag}}%{?dist}
Mystro256 9cbea8d
Summary:        A cross platform audio library
Mystro256 9cbea8d
Mystro256 9cbea8d
#cubeb is ISC, sanitizers-cmake is MIT
Mystro256 9cbea8d
#excluding the following files which are BSD 3-clause:
Mystro256 9cbea8d
#/src/speex/arch.h
Mystro256 9cbea8d
#/src/speex/fixed_generic.h
Mystro256 9cbea8d
#/src/speex/resample.c
Mystro256 9cbea8d
#/src/speex/resample_neon.h
Mystro256 9cbea8d
#/src/speex/resample_sse.h
Mystro256 9cbea8d
#/src/speex/speex_resampler.h
Mystro256 9cbea8d
#/src/speex/stack_alloc.h
Mystro256 9cbea8d
License:        ISC and BSD and MIT
Mystro256 9cbea8d
URL:            https://github.com/kinetiknz/cubeb
Mystro256 9cbea8d
Source0:        https://github.com/kinetiknz/%{name}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz
Mystro256 9cbea8d
#github doesn't support downloading gitsubmodules:
Mystro256 9cbea8d
Source1:        https://github.com/arsenm/sanitizers-cmake/archive/%{sanitizerscommit}/sanitizers-cmake-%{sanitizersshortcommit}.tar.gz
Mystro256 9cbea8d
Mystro256 9cbea8d
BuildRequires:  alsa-lib-devel
Mystro256 9cbea8d
BuildRequires:  cmake
Mystro256 9cbea8d
BuildRequires:  doxygen
Mystro256 9cbea8d
BuildRequires:  gcc
Mystro256 9cbea8d
BuildRequires:  gcc-c++
Mystro256 9cbea8d
BuildRequires:  jack-audio-connection-kit-devel
Mystro256 9cbea8d
BuildRequires:  pulseaudio-libs-devel
Mystro256 9cbea8d
Mystro256 9cbea8d
#Taken from the mozilla blog:
Mystro256 9cbea8d
#https://blog.mozilla.org/webrtc/firefoxs-audio-backend/
Mystro256 9cbea8d
#Which is licensed CC-BY-SA 3.0
Mystro256 9cbea8d
%description
Mystro256 9cbea8d
Cubeb is a cross-platform library, written in C/C++, that was created and has
Mystro256 9cbea8d
been maintained by the Firefox Media Team.
Mystro256 9cbea8d
The role of the library is to communicate with audio devices and to provide
Mystro256 9cbea8d
audio input and/or output.
Mystro256 9cbea8d
Mystro256 9cbea8d
%package devel
Mystro256 9cbea8d
Summary:        Development files for cubeb
Mystro256 9cbea8d
Requires:       %{name}%{?_isa} = %{version}-%{release}
Mystro256 9cbea8d
Mystro256 9cbea8d
%description devel
Mystro256 9cbea8d
Development files for cubeb
Mystro256 9cbea8d
Mystro256 9cbea8d
%prep
Mystro256 9cbea8d
%autosetup -p1 -n %{name}-%{commit} -a 1
Mystro256 9cbea8d
#Clean up Android files
Mystro256 9cbea8d
rm -rf src/android
Mystro256 9cbea8d
Mystro256 9cbea8d
#Link the sanitizer cmake files into the expected location
Mystro256 9cbea8d
ln -s ../../sanitizers-cmake-%{sanitizerscommit}/cmake cmake/sanitizers-cmake
Mystro256 9cbea8d
Mystro256 9cbea8d
#Clean up the README.md, we don't need building information:
Mystro256 9cbea8d
sed -i -e "/^\[!/d" -e "/INSTALL.md/d" README.md
Mystro256 9cbea8d
Mystro256 9cbea8d
#Upstream aims to distribute statically, so it doesn't set a SONAME
Mystro256 9cbea8d
#We can define it ourselves to allow dynamic linking:
Mystro256 9cbea8d
echo "set_target_properties(%{name} PROPERTIES SOVERSION 0)" >> CMakeLists.txt
Mystro256 9cbea8d
Mystro256 9cbea8d
%build
Mystro256 9cbea8d
%cmake . -DBUILD_TESTS=OFF
Mystro256 a8f290c
%cmake_build
Mystro256 9cbea8d
Mystro256 9cbea8d
%install
Mystro256 a8f290c
%cmake_install
Mystro256 9cbea8d
Mystro256 9cbea8d
%files
Mystro256 9cbea8d
%doc README.md
Mystro256 9cbea8d
%license LICENSE
Mystro256 9cbea8d
%{_libdir}/libcubeb.so.*
Mystro256 9cbea8d
Mystro256 9cbea8d
%files devel
Mystro256 9cbea8d
%{_libdir}/libcubeb.so
Mystro256 9cbea8d
%{_bindir}/%{name}-test
Mystro256 9cbea8d
%{_includedir}/%{name}
Mystro256 9cbea8d
%{_libdir}/cmake/%{name}
Mystro256 9cbea8d
Mystro256 9cbea8d
%changelog
96a713a
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.2-6.20200409.git9caa5b1
96a713a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
96a713a
c25ae93
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.2-5.20200409.git9caa5b1
c25ae93
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
c25ae93
74ede85
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.2-4.20200409.git9caa5b1
74ede85
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
74ede85
bcfdf44
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.2-3.20200409.git9caa5b1
bcfdf44
- Second attempt - Rebuilt for
bcfdf44
  https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
bcfdf44
f4899d0
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.2-2.20200409.git9caa5b1
f4899d0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
f4899d0
Mystro256 9cbea8d
* Mon Apr 20 2020 Jeremy Newton <alexjnewt AT hotmail DOT com>
Mystro256 9cbea8d
- Add breakdown for a few BSD-licensed files
Mystro256 9cbea8d
- Clean up android files
Mystro256 9cbea8d
Mystro256 9cbea8d
* Mon Apr 20 2020 Jeremy Newton <alexjnewt AT hotmail DOT com> - 0.2-1.20200409.git9caa5b1
Mystro256 9cbea8d
- Initial Package