File libcanberra.spec of Package libcanberra

#
# spec file for package libcanberra
#
# 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 debug_package_requires libcanberra0 = %{version}-%{release}
Name:           libcanberra
Version:        0.30
Release:        0
Summary:        Portable sound event library
License:        LGPL-2.0+
Group:          System/Libraries
Url:            http://0pointer.de/lennart/projects/libcanberra
Source:         http://0pointer.de/lennart/projects/libcanberra/%{name}-%{version}.tar.xz
Source1:        libcanberra-gtk-module.sh
Source99:       baselibs.conf
# PATCH-FIX-UPSTREAM libcanberra-multi-backend.patch boo#753243 fdo#51662 dimstar@opensuse.org -- Set the multi backend as default and allow it actually to work.
Patch0:         libcanberra-multi-backend.patch
# PATCH-FIX-UPSTREAM libcanberra-broadway-fix.patch boo#789066 michael.meeks@suse.com
Patch1:         libcanberra-broadway-fix.patch
BuildRequires:  gtk-doc
BuildRequires:  libltdl-devel
BuildRequires:  pkgconfig
BuildRequires:  update-desktop-files
BuildRequires:  pkgconfig(alsa)
BuildRequires:  pkgconfig(glib-2.0) >= 2.32
BuildRequires:  pkgconfig(gtk+-2.0)
BuildRequires:  pkgconfig(gtk+-3.0)
BuildRequires:  pkgconfig(libpulse) >= 0.9.11
BuildRequires:  pkgconfig(vorbisfile)
BuildRequires:  pkgconfig(x11)

%description
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops, such
as GNOME. It comes with several backends (ALSA, PulseAudio, null)
and is designed to be portable.

%package -n libcanberra0
Summary:        Portable sound event library
Group:          System/Libraries
Requires:       libpulse0 >= 0.9.11

%description -n libcanberra0
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops, such
as GNOME. It comes with several backends (ALSA, PulseAudio, null)
and is designed to be portable.

This package contains the main library.

%package        gtk0
Summary:        Portable sound event library -- GTK+ 2 Library
Group:          System/Libraries

%description gtk0
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops, such
as GNOME. It comes with several backends (ALSA, PulseAudio, null)
and is designed to be portable.

This package contains a library to make it easier to use
libcanberra from GTK+ 2 applications.

%package gtk3-0
Summary:        Portable sound event library -- GTK+ 3 Library
Group:          System/Libraries

%description gtk3-0
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops, such
as GNOME. It comes with several backends (ALSA, PulseAudio, null)
and is designed to be portable.

This package contains a library to make it easier to use
libcanberra from GTK+ 3 applications.

%package gtk-module-common
Summary:        Portable sound event library -- Common Files for GTK+ Modules
Group:          System/Libraries
Recommends:     %{name}-gtk2-module
Recommends:     %{name}-gtk3-module

%description gtk-module-common
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops, such
as GNOME. It comes with several backends (ALSA, PulseAudio, null)
and is designed to be portable.

This package contains files common to both the GTK+ 2 and GTK+ 3
modules.

%package gtk2-module
Summary:        Portable sound event library -- GTK+ 2 Module
Group:          System/Libraries
Requires:       %{name}-gtk-module-common = %{version}
Supplements:    packageand(libcanberra0:gtk2)

%description gtk2-module
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops, such
as GNOME. It comes with several backends (ALSA, PulseAudio, null)
and is designed to be portable.

This package contains a GTK+ 2 module that triggers input feedback
event sounds.

%package gtk3-module
Summary:        Portable sound event library -- GTK+ 3 Module
Group:          System/Libraries
Requires:       %{name}-gtk-module-common = %{version}
Supplements:    packageand(libcanberra0:gtk3)

%description gtk3-module
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops, such
as GNOME. It comes with several backends (ALSA, PulseAudio, null)
and is designed to be portable.

This package contains a GTK+ 3 module that triggers input feedback
event sounds.

%package -n canberra-gtk-play
Summary:        Portable sound event library -- Utility
Group:          System/Libraries
Provides:       %{name}-gtk = %{version}
Obsoletes:      %{name}-gtk < %{version}

%description -n canberra-gtk-play
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops, such
as GNOME. It comes with several backends (ALSA, PulseAudio, null)
and is designed to be portable.

This package provides the canberra-gtk-play utility.

%package -n canberra-gtk-play-gnome
Summary:        Portable sound event library -- Utility
# Disable supplements as we do not want it installed by default.
# This package contains a ready sound for gdm
#Supplements:    gdm
# This package contains login/logout sound for GNOME.
#Supplements:    gnome-session
Group:          System/Libraries
Provides:       %{name}-gtk-gnome = %{version}
Obsoletes:      %{name}-gtk-gnome < %{version}

%description -n canberra-gtk-play-gnome
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops, such
as GNOME. It comes with several backends (ALSA, PulseAudio, null)
and is designed to be portable.

This package provides the canberra-gtk-play .desktop files for the
gnome-desktop and gdm.
Currently there are no desktop-login, desktop-logout or
session-ready sounds in the freedesktop sound theme, so installing
this will require a different sound-theme for it to be operational.

%package devel
Summary:        Portable sound event library -- Development files
Group:          Development/Libraries/C and C++
Requires:       libcanberra0 = %{version}

%description devel
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops, such
as GNOME. It comes with several backends (ALSA, PulseAudio, null)
and is designed to be portable.

This package provides the development files for libcanberra.

%package -n libcanberra-gtk3-devel
Summary:        Portable sound event library -- Development files
Group:          Development/Libraries/C and C++
Requires:       libcanberra-devel
Requires:       libcanberra-gtk3-0 = %{version}
Requires:       libcanberra0 = %{version}

%description -n libcanberra-gtk3-devel
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops, such
as GNOME. It comes with several backends (ALSA, PulseAudio, null)
and is designed to be portable.

This package provides the development files for libcanberra-gtk3.

%package -n libcanberra-gtk-devel
Summary:        Portable sound event library -- Development files
Group:          Development/Libraries/C and C++
Requires:       libcanberra-devel
Requires:       libcanberra-gtk0 = %{version}
Requires:       libcanberra0 = %{version}

%description -n libcanberra-gtk-devel
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops, such
as GNOME. It comes with several backends (ALSA, PulseAudio, null)
and is designed to be portable.

This package provides the development files for libcanberra-gtk2.

%prep
%setup -q
%patch0 -p1
%patch1 -p1
cp %{SOURCE1} libcanberra-gtk-module.sh

%build
%configure \
  --disable-static   \
  --enable-pulse     \
  --enable-alsa      \
  --enable-null      \
  --with-builtin=dso
make %{?_smp_mflags} V=1

%install
%make_install
install -Dpm 0755 libcanberra-gtk-module.sh \
  %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/libcanberra-gtk-module.sh
rm %{buildroot}%{_datadir}/doc/libcanberra/README

%suse_update_desktop_file %{buildroot}%{_datadir}/gnome/autostart/libcanberra-login-sound.desktop
%suse_update_desktop_file %{buildroot}%{_datadir}/gdm/autostart/LoginWindow/libcanberra-ready-sound.desktop

find %{buildroot} -type f -name "*.la" -delete -print

%post -n libcanberra0 -p /sbin/ldconfig

%postun -n libcanberra0 -p /sbin/ldconfig

%post gtk0 -p /sbin/ldconfig

%postun gtk0 -p /sbin/ldconfig

%post gtk3-0 -p /sbin/ldconfig

%postun gtk3-0 -p /sbin/ldconfig

%files -n libcanberra0
%defattr(-,root,root)
%doc README LGPL
%{_libdir}/libcanberra.so.*
%dir %{_libdir}/libcanberra-%{version}/
%{_libdir}/libcanberra-%{version}/libcanberra-alsa.so
%{_libdir}/libcanberra-%{version}/libcanberra-multi.so
%{_libdir}/libcanberra-%{version}/libcanberra-null.so
%{_libdir}/libcanberra-%{version}/libcanberra-oss.so
%{_libdir}/libcanberra-%{version}/libcanberra-pulse.so

%files gtk0
%defattr(-,root,root)
%{_libdir}/libcanberra-gtk.so.*

%files gtk3-0
%defattr(-,root,root)
%{_libdir}/libcanberra-gtk3.so.*

%files gtk-module-common
%defattr(-,root,root)
%dir %{_sysconfdir}/X11/xinit/
%dir %{_sysconfdir}/X11/xinit/xinitrc.d/
%{_sysconfdir}/X11/xinit/xinitrc.d/libcanberra-gtk-module.sh
%dir %{_libdir}/gnome-settings-daemon-3.0/
%dir %{_libdir}/gnome-settings-daemon-3.0/gtk-modules/
%{_libdir}/gnome-settings-daemon-3.0/gtk-modules/canberra-gtk-module.desktop

%files gtk2-module
%defattr(-,root,root)
%{_libdir}/gtk-2.0/modules/libcanberra-gtk-module.so

%files gtk3-module
%defattr(-,root,root)
%{_libdir}/gtk-3.0/modules/libcanberra-gtk*-module.so

%files -n canberra-gtk-play
%defattr(-,root,root)
%{_bindir}/canberra-gtk-play

%files -n canberra-gtk-play-gnome
%defattr(-,root,root)
%dir %{_datadir}/gnome/
%dir %{_datadir}/gnome/autostart/
%{_datadir}/gnome/autostart/libcanberra-login-sound.desktop
%dir %{_datadir}/gnome/shutdown/
%{_datadir}/gnome/shutdown/libcanberra-logout-sound.sh
%dir %{_datadir}/gdm/
%dir %{_datadir}/gdm/autostart/
%dir %{_datadir}/gdm/autostart/LoginWindow/
%{_datadir}/gdm/autostart/LoginWindow/libcanberra-ready-sound.desktop

%files -n libcanberra-gtk-devel
%defattr(-,root,root)
%{_libdir}/libcanberra-gtk.so
%{_libdir}/pkgconfig/libcanberra-gtk.pc

%files -n libcanberra-gtk3-devel
%defattr(-,root,root)
%{_libdir}/libcanberra-gtk3.so
%{_libdir}/pkgconfig/libcanberra-gtk3.pc

%files devel
%defattr(-,root,root)
%doc %{_datadir}/gtk-doc/html/libcanberra/
%{_includedir}/canberra.h
%{_includedir}/canberra-gtk.h
%{_libdir}/libcanberra.so
%{_libdir}/pkgconfig/libcanberra.pc
%dir %{_datadir}/vala/
%dir %{_datadir}/vala/vapi/
%{_datadir}/vala/vapi/*.vapi

%changelog