File alsa.spec of Package alsa.8589

# spec file for package alsa
# Copyright (c) 2018 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

#Compat macro for new _fillupdir macro introduced in Nov 2017
%if ! %{defined _fillupdir}
  %define _fillupdir /var/adm/fillup-templates

%define package_version	1.1.5
%if 0%{?suse_version} < 1200
%define _udevrulesdir /lib/udev/rules.d/
Name:           alsa
Version:        1.1.5
Release:        0
Summary:        Advanced Linux Sound Architecture
License:        LGPL-2.1+
Group:          System/Libraries
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
Source40:       50-alsa.conf
Source41:       install-snd-module
# upstream fixes
Patch1:         0001-pcm-route-Fix-use_getput-flag-computation-for-3-byte.patch
Patch3:         0003-conf-ucm-Add-dual-HD-audio-codecs-config-for-Lenovo.patch
Patch4:         0004-conf-ucm-Add-Gigabyte-mobo-UCM-profile-with-dual-HD-.patch
Patch5:         0005-conf-ucm-Add-chtrt5645-mono-speaker-analog-mic-confi.patch
Patch6:         0006-pcm-Return-the-consistent-error-code-for-unexpected-.patch
Patch101:       0101-ucm-adding-the-folder-of-card_long_name-when-finding.patch
Patch102:       0102-conf-ucm-Add-a-UCM-profile-for-Dell-WD15-Dock-USB-au.patch
Patch103:       0103-configure-Fix-forgotten-ucm-entry.patch
# rest suse fixes
Source101:      chtcx2072x.conf
Source102:      chtcx2072x-HiFi.conf
BuildRequires:  doxygen
BuildRequires:  libtool
BuildRequires:  pkgconfig
Requires:       alsa-utils
Requires(post): %fillup_prereq
Recommends:     alsa-oss
Recommends:     alsa-plugins
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} <= 1310
Requires(post): %insserv_prereq
%if 0%{?suse_version} > 1200
BuildRequires:  pkgconfig(udev)
BuildRequires:  udev

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 < %{version}
Provides:       alsa-lib-devel = %{version}
Provides:       alsadev = %{version}

%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

%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

%setup -q -n alsa-lib-%{package_version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1

export AUTOMAKE_JOBS="%{?_smp_mflags}"
# build alsa-lib
autoreconf -fi
%configure \
  --disable-static \
  --enable-symbolic-functions \
  --disable-aload \
  --disable-alisp \
make V=1 %{?_smp_mflags}
# run doxygen
make -C doc doc %{?_smp_mflags}

# install shared library
# additional UCM profiles
mkdir -p %{buildroot}%{_datadir}/alsa/ucm/chtcx2072x
install -c -m 0644 %{S:101} %{buildroot}%{_datadir}/alsa/ucm/chtcx2072x/chtcx2072x.conf
install -c -m 0644 %{S:102} %{buildroot}%{_datadir}/alsa/ucm/chtcx2072x/HiFi.conf
# 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
# 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
rm -f %{buildroot}%{_sbindir}/rcalsasound
ln -s ../..%{_initddir}/alsasound %{buildroot}%{_sbindir}/rcalsasound
rm -f %{buildroot}%{_sbindir}/rcjoystick
ln -s ../..%{_initddir}/joystick %{buildroot}%{_sbindir}/rcjoystick
# udev rules
mkdir -p %{buildroot}%{_udevrulesdir}
%if 0%{?suse_version} < 1140
install -c -m 0644 %{SOURCE8} %{buildroot}%{_udevrulesdir}
install -c -m 0644 %{SOURCE9} %{buildroot}%{_udevrulesdir}
# 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
# install template to update rc.config and sysconfig files:
# (updating the actual files is done in the %post-script)
mkdir -p -m 755 %{buildroot}%{_fillupdir}
mkdir -p -m 755 %{buildroot}%{_sysconfdir}/sysconfig
install -m 644 $RPM_SOURCE_DIR/sysconfig.sound %{buildroot}%{_fillupdir}
%if 0%{?suse_version} <= 1310
install -m 644 $RPM_SOURCE_DIR/sysconfig.joystick %{buildroot}%{_fillupdir}
# 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

%if 0%{?suse_version} > 1310
%{fillup_only -n sound}
%{fillup_and_insserv -ny sound alsasound}
%{fillup_and_insserv -n joystick joystick}
exit 0

%if 0%{?suse_version} <= 1310
%stop_on_removal alsasound joystick
exit 0

%restart_on_update alsasound joystick
exit 0

%post -n libasound2 -p /sbin/ldconfig
%postun -n libasound2 -p /sbin/ldconfig

%defattr(-, root, root)
%doc %{_docdir}/%{name}
%if 0%{?suse_version} <= 1310
%if 0%{?suse_version} > 1220

%files devel
%defattr(-, root, root)

%files docs
%defattr(-, root, root)
%doc doc/doxygen/html/*

%files -n libasound2
%defattr(-, root, root)

openSUSE Build Service is sponsored by