# # spec file for package alsa # # Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define package_version 1.1.0 %if 0%{?suse_version} > 1200 %define _udevdir %(pkg-config --variable=udevdir udev) %else %define _udevdir /lib/udev %endif Name: alsa Version: 1.1.0 Release: 0 # Summary: Advanced Linux Sound Architecture License: LGPL-2.1+ Group: System/Libraries Url: http://www.alsa-project.org/ Source: ftp://ftp.alsa-project.org/pub/lib/alsa-lib-%{package_version}.tar.bz2 Source2: baselibs.conf Source8: 40-alsa.rules Source9: 42-hd-audio-pm.rules Source11: alsasound Source12: sysconfig.sound Source13: joystick Source14: sysconfig.joystick Source16: set_default_volume Source17: test.wav Source21: README.testwav Source30: all_notes_off Source31: all_notes_off.bin Source32: all_notes_off.mid Source34: alsa-init.sh Source40: 50-alsa.conf Source41: install-snd-module # Patch: alsa-lib-git-fixes.diff # upstream fixes Patch1: 0001-topology-Add-missing-include-sys-stat.h.patch Patch2: 0002-pcm-simple-Fix-asserts.patch Patch3: 0003-topology-open-topology-files-with-O_TRUNC.patch Patch4: 0004-topology-Remove-unused-function-write_data_block.patch Patch5: 0005-topology-Remove-unused-variables.patch Patch6: 0006-topology-Fix-comparison-of-unsigned-expression-0.patch Patch7: 0007-topology-Not-compare-a-for-loop-iterator-with-ABI-__.patch Patch8: 0008-topology-Quit-and-show-error-message-on-big-endian-m.patch Patch9: 0009-config-files-do-not-include-ucm-topology-configurati.patch Patch10: 0010-control-add-missing-asserts-to-ctl_elem_set-function.patch Patch11: 0011-pcm_hw-fix-possible-memory-leak-coverity.patch Patch12: 0012-coverity-fixes.patch Patch13: 0013-topology-fix-debug-output-to-print-correct-max-value.patch # rest suse patches Patch99: alsa-lib-doxygen-avoid-crash-for-11.3.diff # suppress timestamp in documents Patch100: alsa-docs-suppress-timestamp.patch BuildRequires: doxygen BuildRequires: libtool BuildRequires: pkg-config Requires: alsa-utils # FIXME: use proper Requires(pre/post/preun/...) PreReq: %fillup_prereq PreReq: %insserv_prereq Recommends: alsa-oss Recommends: alsa-plugins BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} > 1200 BuildRequires: pkgconfig(udev) %else BuildRequires: udev %endif # bug437293 %ifarch ppc64 Obsoletes: alsa-64bit %endif %description ALSA stands for Advanced Linux Sound Architecture. It supports many PCI, ISA PnP and USB sound cards. This package contains the ALSA init scripts to start the sound system on your Linux box. To set it up, run yast2 or alsaconf. %package devel Summary: Include Files and Libraries mandatory for Development License: LGPL-2.1+ Group: Development/Libraries/C and C++ Requires: glibc-devel Requires: libasound2 = %{version} Obsoletes: alsadev Provides: alsa-lib-devel Provides: alsadev %description devel This package contains all necessary include files and libraries needed to develop applications that require these. %package docs Summary: Additional Package Documentation License: GPL-2.0+ Group: Documentation/Other %if 0%{?suse_version} > 1110 BuildArch: noarch %endif %description docs This package contains optional documentation provided in addition to this package's base documentation. %package -n libasound2 Summary: Advanced Linux Sound Architecture Library License: LGPL-2.1+ Group: System/Libraries Provides: alsa-lib %description -n libasound2 This package contains the library for ALSA, Advanced Linux Sound Architecture. %prep %setup -q -n alsa-lib-%{package_version} # %patch -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 %if 0%{?suse_version} == 1130 %patch99 -p1 %endif %patch100 -p1 # hack to fix build on older distros %if 0%{?suse_version} < 1100 %ifarch %{ix86} test -f $RPM_SOURCE_DIR/baselibs.conf && \ sed -i -e'/recommends.*alsa-oss/d' $RPM_SOURCE_DIR/baselibs.conf %endif %endif %build export AUTOMAKE_JOBS="%{?_smp_mflags}" # build alsa-lib autoreconf -fi %configure \ --disable-static \ --enable-symbolic-functions \ --disable-aload \ --disable-alisp \ --disable-python make V=1 %{?_smp_mflags} # run doxygen make -C doc doc %{?_smp_mflags} %install # install shared library make DESTDIR=%{buildroot} install %{?_smp_mflags} # clean up unneeded files rm -f %{buildroot}%{_libdir}/*.*a rm -f %{buildroot}%{_libdir}/alsa-lib/smixer/*.*a rm -f %{buildroot}%{_bindir}/aserver # # install helper scripts mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_sbindir} install -c -m 0755 %{SOURCE16} %{buildroot}%{_bindir} install -c -m 0755 %{SOURCE34} %{buildroot}%{_sbindir}/alsa-init %if 0%{?suse_version} < 1140 sed -i -e 's@%{_localstatedir}/lib/alsa/asound.state@%{_sysconfdir}/asound.state@g' %{buildroot}%{_bindir}/set_default_volume sed -i -e 's@%{_localstatedir}/lib/alsa/asound.state@%{_sysconfdir}/asound.state@g' %{buildroot}%{_sbindir}/alsa-init %endif # install test wave file mkdir -p %{buildroot}%{_datadir}/sounds/alsa install -c -m 0644 %{SOURCE17} %{buildroot}%{_datadir}/sounds/alsa/test.wav # install all_notes_off stuff install -c -m 0755 %{SOURCE30} %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_prefix}/lib install -c -m 0644 %{SOURCE31} %{buildroot}%{_prefix}/lib install -c -m 0644 %{SOURCE32} %{buildroot}%{_prefix}/lib %if 0%{?suse_version} <= 1310 # # install init scripts # mkdir -p %{buildroot}%{_sysconfdir}/init.d install -c -m 0755 %{SOURCE11} %{buildroot}%{_sysconfdir}/init.d install -c -m 0755 %{SOURCE13} %{buildroot}%{_sysconfdir}/init.d %if 0%{?suse_version} < 1140 sed -i -e 's@%{_localstatedir}/lib/alsa/asound.state@%{_sysconfdir}/asound.state@g' %{buildroot}%{_initddir}/alsasound %endif rm -f %{buildroot}%{_sbindir}/rcalsasound ln -s ../..%{_initddir}/alsasound %{buildroot}%{_sbindir}/rcalsasound rm -f %{buildroot}%{_sbindir}/rcjoystick ln -s ../..%{_initddir}/joystick %{buildroot}%{_sbindir}/rcjoystick %endif # # udev rules (only for non-systemd) # mkdir -p %{buildroot}%{_udevdir}/rules.d %if 0%{?suse_version} < 1140 install -c -m 0644 %{SOURCE8} %{buildroot}%{_udevdir}/rules.d %endif install -c -m 0644 %{SOURCE9} %{buildroot}%{_udevdir}/rules.d # # modprobe config and the module install script for loading OSS-emulation # and sequencer modules automatically %if 0%{?suse_version} > 1220 mkdir -p %{buildroot}%{_sysconfdir}/modprobe.d install -c -m 0644 %{SOURCE40} %{buildroot}%{_sysconfdir}/modprobe.d mkdir -p %{buildroot}/sbin install -c -m 0755 %{SOURCE41} %{buildroot}/sbin %endif # # install template to update rc.config and sysconfig files: # (updating the actual files is done in the %post-script) # mkdir -p -m 755 %{buildroot}%{_localstatedir}/adm/fillup-templates mkdir -p -m 755 %{buildroot}%{_sysconfdir}/sysconfig install -m 644 $RPM_SOURCE_DIR/sysconfig.sound %{buildroot}%{_localstatedir}/adm/fillup-templates %if 0%{?suse_version} <= 1310 install -m 644 $RPM_SOURCE_DIR/sysconfig.joystick %{buildroot}%{_localstatedir}/adm/fillup-templates %endif # # documents # mkdir -p %{buildroot}%{_docdir}/%{name} cp $RPM_SOURCE_DIR/README* %{buildroot}%{_docdir}/%{name} mkdir -p %{buildroot}%{_docdir}/%{name}/alsa-lib cp COPYING ChangeLog INSTALL TODO MEMORY-LEAK %{buildroot}%{_docdir}/%{name}/alsa-lib cp doc/asoundrc.txt %{buildroot}%{_docdir}/%{name}/alsa-lib %post %if 0%{?suse_version} > 1310 %{fillup_only -n sound} %else %{fillup_and_insserv -ny sound alsasound} %{fillup_and_insserv -n joystick joystick} %endif exit 0 %if 0%{?suse_version} <= 1310 %preun %stop_on_removal alsasound joystick exit 0 %postun %restart_on_update alsasound joystick %insserv_cleanup exit 0 %endif %post -n libasound2 -p /sbin/ldconfig %postun -n libasound2 -p /sbin/ldconfig %files %defattr(-, root, root) %doc %{_docdir}/%{name} %if 0%{?suse_version} <= 1310 %{_initddir}/* %endif %if 0%{?suse_version} > 1220 %{_sysconfdir}/modprobe.d /sbin/* %endif %{_sbindir}/* %{_bindir}/* %{_prefix}/lib/all_notes_off.* %{_datadir}/sounds/alsa %{_localstatedir}/adm/fillup-templates/* %{_udevdir}/rules.d/* %files devel %defattr(-, root, root) %{_libdir}/libasound.so %{_includedir}/sys/* %{_includedir}/alsa %{_datadir}/aclocal/*.m4 %{_libdir}/pkgconfig/*.pc %files docs %defattr(-, root, root) %doc doc/doxygen/html/* %files -n libasound2 %defattr(-, root, root) %{_libdir}/libasound.so.* %{_libdir}/alsa-lib %{_datadir}/alsa %changelog