#
-# TODO:
-# - not sure where %{_bindir}/openal-info should go, correct this or remove TODO
-#
# Conditional build:
-#
-%bcond_without alsa # without ALSA support
-%bcond_without portaudio # without PortAudio support
-#
+%bcond_without alsa # ALSA backend
+%bcond_without jack # JACK backend
+%bcond_without pipewire # PipeWire backend
+%bcond_without portaudio # PortAudio backend
+%bcond_without pulseaudio # PulseAudio backend
+%bcond_without rtkit # RTKit support
+%bcond_with sdl # SDL2 backend
+%bcond_with sse2 # force use of SSE2 instructions (x86)
+%bcond_without gui # alsoft-config GUI
+
+%ifarch pentium4 x32 %{x8664}
+%define with_sse2 1
+%endif
Summary: Open Audio Library
Summary(pl.UTF-8): Otwarta Biblioteka Dźwięku
Name: OpenAL
-Version: 1.8.466
+Version: 1.23.1
Release: 1
-License: LGPL
+License: LGPL v2+
Group: Libraries
-Source0: http://kcat.strangesoft.net/openal-releases/openal-soft-%{version}.tar.bz2
-# Source0-md5: 28d500e0a6b0a7a824b509ad9eaba7be
-#URL: http://kcat.strangesoft.net/openal.html
+Source0: https://openal-soft.org/openal-releases/openal-soft-%{version}.tar.bz2
+# Source0-md5: 58a73698288d2787451b61f8f4431513
+Patch0: %{name}-nosse.patch
URL: http://www.openal.org/
+%{?with_sdl:BuildRequires: SDL2-devel >= 2}
%{?with_alsa:BuildRequires: alsa-lib-devel}
-BuildRequires: cmake
+BuildRequires: cmake >= 3.0.2
+%{?with_rtkit:BuildRequires: dbus-devel}
+%{?with_jack:BuildRequires: jack-audio-connection-kit-devel}
+BuildRequires: libmysofa-devel
+BuildRequires: libstdc++-devel >= 6:5
+%{?with_pipewire:BuildRequires: pipewire-devel >= 0.3.23}
+BuildRequires: pkgconfig
%{?with_portaudio:BuildRequires: portaudio-devel}
+%{?with_pulseaudio:BuildRequires: pulseaudio-devel}
+BuildRequires: rpmbuild(macros) >= 1.742
+%if %{with gui}
+BuildRequires: Qt5Core-devel >= 5
+BuildRequires: Qt5Gui-devel >= 5
+BuildRequires: Qt5Widgets-devel >= 5
+BuildRequires: qt5-build >= 5
+%endif
+%{?with_sse2:Requires: cpuinfo(sse2)}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Pliki nagłówkowe potrzebne przy budowaniu programów opartych na
OpenAL.
+%package gui
+Summary: OpenAL configuration GUI
+Summary(pl.UTF-8): Graficzny interfejs do konfiguracji biblioteki OpenAL
+Group: X11/Applications/Sound
+Requires: %{name} = %{version}-%{release}
+Requires: Qt5Core >= 5
+Requires: Qt5Gui >= 5
+Requires: Qt5Widgets >= 5
+
+%description gui
+OpenAL configuration GUI.
+
+%description gui -l pl.UTF-8
+Graficzny interfejs do konfiguracji biblioteki OpenAL.
+
%prep
%setup -q -n openal-soft-%{version}
+%patch0 -p1
%build
-%cmake \
- -DCMAKE_INSTALL_PREFIX=%{_prefix} \
- -DLIB_INSTALL_DIR=%{_lib} \
- .
+cd build
+%cmake .. \
+ %{!?with_alsa:-DALSOFT_BACKEND_ALSA=OFF} \
+ %{!?with_jack:-DALSOFT_BACKEND_JACK=OFF} \
+ %{cmake_on_off pipewire ALSOFT_BACKEND_PIPEWIRE} \
+ %{!?with_portaudio:-DALSOFT_BACKEND_PORTAUDIO=OFF} \
+ %{!?with_pulseaudio:-DALSOFT_BACKEND_PULSEAUDIO=OFF} \
+ %{cmake_on_off rtkit ALSOFT_RTKIT} \
+ %{?with_sdl:-DALSOFT_BACKEND_SDL2=ON} \
+ %{!?with_sse2:-DALSOFT_ENABLE_SSE2_CODEGEN=OFF} \
+ -DALSOFT_EXAMPLES=OFF \
+ %{!?with_gui:-DALSOFT_NO_CONFIG_UTIL=ON} \
+
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/openal
-%{__make} install \
+%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
+install -p alsoftrc.sample $RPM_BUILD_ROOT%{_sysconfdir}/openal/alsoft.conf
+
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/openal
+%attr(755,root,root) %{_bindir}/makemhr
+%attr(755,root,root) %{_bindir}/openal-info
%attr(755,root,root) %{_libdir}/libopenal.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libopenal.so.?
+%attr(755,root,root) %ghost %{_libdir}/libopenal.so.1
+%{_datadir}/openal
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/openal-info
%attr(755,root,root) %{_libdir}/libopenal.so
%{_includedir}/AL
%{_pkgconfigdir}/openal.pc
+%{_libdir}/cmake/OpenAL
+
+%if %{with gui}
+%files gui
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/alsoft-config
+%endif