File stk.spec of Package stk

#
# spec file for package stk
#
# Copyright (c) 2022 SUSE LLC
#
# 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 https://bugs.opensuse.org/
#


# Upstream chose to update the soname with each version
# https://github.com/thestk/stk/issues/89
%define soname %{version}
Name:           stk
Version:        4.6.2
Release:        0
Summary:        Synthesis ToolKit in C++
License:        MIT
Group:          Development/Libraries/C and C++
URL:            https://ccrma.stanford.edu/software/stk/
Source0:        %{name}-%{version}.tar.xz
Source99:       stk-rpmlintrc
# PATCH-FIX-UPSTREAM -- Don't ignore provided compiler flags
Patch0:         0001-Don-t-ignore-supplied-CXXFLAGS.patch
# PATCH-FIX-UPSTREAM
Patch1:         0002-Fix-the-library-soname.patch
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  doxygen
BuildRequires:  gcc-c++
BuildRequires:  pkgconfig
BuildRequires:  pkgconfig(alsa)
BuildRequires:  pkgconfig(jack)

%description
The Synthesis ToolKit in C++ (STK) is a set of audio signal
processing and algorithmic synthesis classes. STK facilitates
development of music synthesis and audio processing software,
focusing on realtime control and example code. STK is
user-extensible.

%package -n libstk%{soname}
Summary:        Synthesis ToolKit in C++
Group:          System/Libraries
Requires:       %{name}-data

%description -n libstk%{soname}
The Synthesis ToolKit in C++ (STK) is a set of audio signal
processing and algorithmic synthesis classes. STK facilitates
development of music synthesis and audio processing software,
focusing on realtime control and example code. STK is
user-extensible.

%package data
Summary:        Data files for STK, a music synthesis library
BuildArch:      noarch
# data were split to a subpackage before the 4.6.2 update
Conflicts:      libstk4 < 4.6.2

%description data
Data files for STK.

%package devel
Summary:        Development files for STK, a music synthesis library
Group:          Development/Libraries/C and C++
Requires:       libstk%{soname} = %{version}
Provides:       libstk-devel = %{version}-%{release}
Obsoletes:      libstk-devel < %{version}-%{release}

%description devel
The libstk-devel package contains libraries and header files for
developing applications that use stk.

%prep
%autosetup -p1

%build
autoreconf -fiv

%configure \
  --disable-static \
  --enable-shared \
  --with-jack \
  --with-alsa \
  RAWWAVE_PATH=%{_datadir}/stk/rawwaves/

%make_build

pushd doc/doxygen
doxygen
popd

%install
%make_install

# E: shared-library-not-executable
chmod +x %{buildroot}%{_libdir}/libstk-%{soname}.so

mkdir -p %{buildroot}%{_datadir}/stk/rawwaves/
cp -p rawwaves/*.raw %{buildroot}%{_datadir}/stk/rawwaves/

%post -n libstk%{soname} -p /sbin/ldconfig

%postun -n libstk%{soname} -p /sbin/ldconfig

%files -n libstk%{soname}
%doc README.md %doc doc/{README-Linux,ReleaseNotes,SKINI}.txt
%license LICENSE
%{_libdir}/libstk-%{soname}.so

%files data
%{_datadir}/stk

%files devel
%doc doc/hierarchy.txt doc/html
%{_libdir}/libstk.so
%{_includedir}/stk/

%changelog
openSUSE Build Service is sponsored by