alsa/alsa.spec
Ismail Dönmez d42c75a231 Accepting request 335886 from home:tiwai:branches:multimedia:libs
- Backport upsteram fixes: more topology API updates/fixes, misc
  documentation fixes, some logical error fixes in PCM plugins,
  LADSPA plugin segfault fix:
  0050-topology-fix-element-object-type-is-switch.patch
  0051-topology-Add-element-ID-so-we-can-look-up-references.patch
  0052-topology-Add-support-for-writing-manifest-private-da.patch
  0053-topology-update-ABI-to-improve-support-for-different.patch
  0054-topology-Add-ops-support-to-byte-control-objects.patch
  0055-topology-treat-all-DAPM-controls-types-the-same-when.patch
  0056-topology-print-error-prefix-on-error-message.patch
  0057-topology-rename-OBJECT_TYPE_-to-SND_TPLG_TYPE_.patch
  0058-core-add-convenience-macros-to-local.h.patch
  0059-topology-Add-C-templates-structure-for-building-topo.patch
  0060-topology-A-API-calls-to-directly-build-topology-data.patch
  0061-pcm-Fix-doxygen-for-two-enums.patch
  0062-pcm-ioplug-extplug-Fix-logic-errors-in-type-checks.patch
  0063-pcm-route-Remove-bogus-in-snd_config_get_id-checks.patch
  0064-topology-builder-Fix-possibly-uninitialized-variable.patch
  0065-topology-ctl-Fix-access-type-checks.patch
  0066-topology-data-Fix-wrong-size-check-in-tplg_parse_dat.patch
  0067-topology-parser-Add-missing-return-value-to-snd_tplg.patch
  0068-topology-pcm-Remove-unused-variables.patch
  0069-build-Do-not-try-to-detect-cross-compiler.patch
  0070-topology-Add-API-to-set-a-vendor-specific-version-nu.patch
  0071-pcm-ladspa-Fix-segfault-due-to-a-wrong-channel-refer.patch

OBS-URL: https://build.opensuse.org/request/show/335886
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa?expand=0&rev=188
2015-10-02 13:46:00 +00:00

427 lines
14 KiB
RPMSpec

#
# spec file for package alsa
#
# Copyright (c) 2015 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.0.29
%if 0%{?suse_version} > 1200
%define _udevdir %(pkg-config --variable=udevdir udev)
%else
%define _udevdir /lib/udev
%endif
Name: alsa
Version: 1.0.29
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-ucm-document-some-standard-values.patch
Patch2: 0002-conf-ucm-broadwell-rt286-add-ucm-config.patch
Patch3: 0003-conf-ucm-Add-Makefile.am-for-broadwell-rt286-ucm-con.patch
Patch4: 0004-ucm-reformat-snd_use_case_get-doc.patch
Patch5: 0005-ucm-improve-jack-configuration-documentation.patch
Patch6: 0006-USB-audio-Sound-Blaster-HD-iec958-is-on-device-1.patch
Patch7: 0007-Sync-include-sound-asound.h-with-4.1-kernel.patch
Patch8: 0008-conf-ucm-broadwell-rt286-change-to-use-the-correct-j.patch
Patch9: 0009-namehint-Fix-invalid-list-access-in-snd_device_name_.patch
Patch10: 0010-namehint-Fix-the-listing-without-device-number.patch
Patch11: 0011-namehint-Fix-bad-free-with-invalid-iface-name.patch
Patch12: 0012-Allow-hint-for-ctl-hwdep-timer-and-seq.patch
Patch13: 0013-conf-Add-hint-descriptions-to-ctl-hwdep-seq-and-time.patch
Patch14: 0014-conf-ucm-broadwell-rt286-change-to-set-capture-volum.patch
Patch15: 0015-ucm-allow-multiple-devices-in-JackHWMute.patch
Patch16: 0016-pcm-Remove-assert-from-snd_pcm_hw_params_slave.patch
Patch17: 0017-test-pcm-Fix-generated-values-with-float-PCM-format.patch
Patch18: 0018-test-pcm_min-Fix-error-messages.patch
Patch19: 0019-pcm-Don-t-assert-in-_snd_pcm_hw_params_internal.patch
Patch20: 0020-pcm-Fix-snd_pcm_status-for-dmix-co.patch
Patch21: 0021-control-Allow-cset-ing-specific-values-in-the-multi-.patch
Patch22: 0022-PCM-snd_pcm_xxxx_drain-maybe-blocked-after-suspend-a.patch
Patch23: 0023-surround41-50.conf-Use-chmap-syntax-for-better-flexi.patch
Patch24: 0024-ucm-docs-fix-doxygen-exclude-patch-for-UCM-local-hea.patch
Patch25: 0025-ucm-docs-Fix-doxygen-formatting-for-UCM-main-page.patch
Patch26: 0026-docs-Add-UCM-link-to-main-doxygen-page.patch
Patch27: 0027-Replace-unsafe-characters-with-_-in-card-name.patch
Patch28: 0028-pcm-add-helper-functions-to-query-timestamping-capab.patch
Patch29: 0029-pcm-add-support-for-get-set_audio_htstamp_config.patch
Patch30: 0030-pcm-add-support-for-new-STATUS_EXT-ioctl.patch
Patch31: 0031-test-fix-audio_time-with-new-get-set-audio_tstamp_co.patch
Patch32: 0032-test-audio_time-show-report-validity-and-accuracy.patch
Patch33: 0033-pcm-restore-hw-params-on-set-latency-failed.patch
Patch34: 0034-Replace-list.h-with-its-own-version.patch
Patch35: 0035-topology-uapi-Add-UAPI-headers-for-topology-ABI.patch
Patch36: 0036-topology-Add-topology-core-parser.patch
Patch37: 0037-topology-Add-text-section-parser.patch
Patch38: 0038-topology-Add-PCM-parser.patch
Patch39: 0039-topology-Add-operations-parser.patch
Patch40: 0040-topology-Add-private-data-parser.patch
Patch41: 0041-topology-Add-DAPM-object-parser.patch
Patch42: 0042-topology-Add-CTL-parser.patch
Patch43: 0043-topology-Add-Channel-map-parser.patch
Patch44: 0044-topology-Add-binary-file-builder.patch
Patch45: 0045-topology-autotools-Add-build-support-for-topology-co.patch
Patch46: 0046-topology-doxygen-Add-doxygen-support-for-topology-co.patch
Patch47: 0047-conf-topology-Add-topology-file-for-broadwell-audio-.patch
Patch48: 0048-topology-Fix-missing-inclusion-of-ctype.h.patch
Patch49: 0049-topology-Fix-typos.patch
Patch50: 0050-topology-fix-element-object-type-is-switch.patch
Patch51: 0051-topology-Add-element-ID-so-we-can-look-up-references.patch
Patch52: 0052-topology-Add-support-for-writing-manifest-private-da.patch
Patch53: 0053-topology-update-ABI-to-improve-support-for-different.patch
Patch54: 0054-topology-Add-ops-support-to-byte-control-objects.patch
Patch55: 0055-topology-treat-all-DAPM-controls-types-the-same-when.patch
Patch56: 0056-topology-print-error-prefix-on-error-message.patch
Patch57: 0057-topology-rename-OBJECT_TYPE_-to-SND_TPLG_TYPE_.patch
Patch58: 0058-core-add-convenience-macros-to-local.h.patch
Patch59: 0059-topology-Add-C-templates-structure-for-building-topo.patch
Patch60: 0060-topology-A-API-calls-to-directly-build-topology-data.patch
Patch61: 0061-pcm-Fix-doxygen-for-two-enums.patch
Patch62: 0062-pcm-ioplug-extplug-Fix-logic-errors-in-type-checks.patch
Patch63: 0063-pcm-route-Remove-bogus-in-snd_config_get_id-checks.patch
Patch64: 0064-topology-builder-Fix-possibly-uninitialized-variable.patch
Patch65: 0065-topology-ctl-Fix-access-type-checks.patch
Patch66: 0066-topology-data-Fix-wrong-size-check-in-tplg_parse_dat.patch
Patch67: 0067-topology-parser-Add-missing-return-value-to-snd_tplg.patch
Patch68: 0068-topology-pcm-Remove-unused-variables.patch
Patch69: 0069-build-Do-not-try-to-detect-cross-compiler.patch
Patch70: 0070-topology-Add-API-to-set-a-vendor-specific-version-nu.patch
Patch71: 0071-pcm-ladspa-Fix-segfault-due-to-a-wrong-channel-refer.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
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
%patch35 -p1
%patch36 -p1
%patch37 -p1
%patch38 -p1
%patch39 -p1
%patch40 -p1
%patch41 -p1
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch45 -p1
%patch46 -p1
%patch47 -p1
%patch48 -p1
%patch49 -p1
%patch50 -p1
%patch51 -p1
%patch52 -p1
%patch53 -p1
%patch54 -p1
%patch55 -p1
%patch56 -p1
%patch57 -p1
%patch58 -p1
%patch59 -p1
%patch60 -p1
%patch61 -p1
%patch62 -p1
%patch63 -p1
%patch64 -p1
%patch65 -p1
%patch66 -p1
%patch67 -p1
%patch68 -p1
%patch69 -p1
%patch70 -p1
%patch71 -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