Blob Blame History Raw
#
# spec file for package gsequencer
#
# Copyright (c) 2021 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/
#


%define libagssonumber 3
%define libgsequencersonumber 0
# The condition is run functional tests; defaulted off and needs to be
# activated with --with run_functional_tests command line switch.
%bcond_with run_functional_tests
Name:           gsequencer
Version:        3.17.5
Release:        0
Summary:        Audio processing engine
License:        AGPL-3.0-or-later AND GPL-3.0-or-later AND GFDL-1.3-only
Group:          Productivity/Multimedia/Sound/Midi
URL:            https://nongnu.org/gsequencer
Source0:        https://download.savannah.gnu.org/releases/gsequencer/3.17.x/%{name}-%{version}.tar.gz
# improve glib-2.0 compatibility to version 2.54
Patch1:         gsequencer.1-improved-glib-compatibility.patch
BuildRequires:  gcc-c++
BuildRequires:  cunit-devel
BuildRequires:  desktop-file-utils
BuildRequires:  docbook-xsl-stylesheets
BuildRequires:  dssi-devel
BuildRequires:  fluid-soundfont-gm
BuildRequires:  gettext-devel >= 0.19.8
BuildRequires:  gstreamer-plugins-base
BuildRequires:  gstreamer-plugins-good
BuildRequires:  gtk-doc
BuildRequires:  hydrogen
BuildRequires:  ladspa-cmt
BuildRequires:  ladspa-devel
BuildRequires:  libtool
BuildRequires:  lv2-devel
BuildRequires:  lv2-swh-plugins
BuildRequires:  pkgconfig
BuildRequires:  pulseaudio
BuildRequires:  xvfb-run
BuildRequires:  pkgconfig(alsa)
BuildRequires:  pkgconfig(fftw3)
BuildRequires:  pkgconfig(gobject-introspection-1.0)
BuildRequires:  pkgconfig(gstreamer-1.0)
BuildRequires:  pkgconfig(gstreamer-app-1.0)
BuildRequires:  pkgconfig(gstreamer-audio-1.0)
BuildRequires:  pkgconfig(gstreamer-pbutils-1.0)
BuildRequires:  pkgconfig(gstreamer-video-1.0)
BuildRequires:  pkgconfig(gtk+-3.0)
BuildRequires:  pkgconfig(jack)
BuildRequires:  pkgconfig(libinstpatch-1.0)
BuildRequires:  pkgconfig(libpulse)
BuildRequires:  pkgconfig(libsoup-2.4)
BuildRequires:  pkgconfig(libxml-2.0)
BuildRequires:  pkgconfig(samplerate)
BuildRequires:  pkgconfig(sndfile)
BuildRequires:  pkgconfig(uuid)
BuildRequires:  pkgconfig(webkit2gtk-4.0)

%description
Advanced Gtk+ Sequencer is an audio
sequencer application supporting the LADPSA, DSSI and Lv2 plugin
formats. It can output to Pulseaudio server, JACK and ALSA.

You may add multiple sinks, mix different sources by producing
sound with different sequencers. Furthermore, it features a pattern
and piano roll and there is an editor to automate ports.

%prep
%setup -q
%patch1 -p0

%build
autoreconf -fi
export LIBAGS_CPPFLAGS='-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security'
export LIBAGS_THREAD_CPPFLAGS='-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security'
export LIBAGS_SERVER_CPPFLAGS='-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security'
#export LIBAGS_VST3_RELEASE_TYPE="-DRELEASE"
#export LIBAGS_VST3_CPPFLAGS='-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security'
#export LIBAGS_VST3_CXXFLAGS="-I/usr/include/vst3sdk"
#export LIBAGS_VST3_LIBS="-L/usr/%{_lib}/vst3sdk"
export LIBAGS_AUDIO_CPPFLAGS='-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security'
export LIBAGS_GUI_CPPFLAGS='-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security'
export LIBGSEQUENCER_CPPFLAGS='-DAGS_CSS_FILENAME=\"'%{_datadir}'/gsequencer/styles/ags.css\" -DAGS_ANIMATION_FILENAME=\"'%{_datadir}'/gsequencer/images/gsequencer-800x450.png\" -DAGS_LOGO_FILENAME=\"'%{_datadir}'/gsequencer/images/ags.png\" -DAGS_LICENSE_FILENAME=\"'%{_datadir}'/licenses/gsequencer/COPYING\" -DAGS_ONLINE_HELP_START_FILENAME=\"file://'%{_docdir}'/gsequencer/html/index.html/\" -DAGS_REDUCE_RT_EVENTS=1 -DAGS_LIBRARY_SUFFIX=\".so\" -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security'
#NOTE:JK: no --enable-vst3 passed to configure
%configure \
%if %{with run_functional_tests}
    --enable-run-functional-tests \
%endif
    HTMLHELP_XSL="/usr/share/xml/docbook/stylesheet/nwalsh/current/htmlhelp/htmlhelp.xsl" --disable-upstream-gtk-doc --enable-introspection --disable-oss --enable-gtk-doc --enable-gtk-doc-html

%make_build all
%make_build html
%make_build fix-local-html

%install
%make_install
%make_install install-compress-changelog
%make_install install-html-mkdir
%make_install install-html-mkdir-links
%make_install install-html
find %{buildroot} -type f -name "*.la" -delete -print
rm -rf %{buildroot}%{_datadir}/doc-base/
mkdir -p %{buildroot}%{_datadir}/doc/packages
mv %{buildroot}%{_datadir}/doc/gsequencer  %{buildroot}%{_docdir}
%find_lang %name

%check
xvfb-run --server-args="-screen 0 1920x1080x24" -a make check
desktop-file-validate %{buildroot}/%{_datadir}/applications/gsequencer.desktop

%files -f %name.lang
%license COPYING
%{_bindir}/gsequencer
%{_bindir}/midi2xml
%{_mandir}/man1/gsequencer.1*
%{_mandir}/man1/midi2xml.1*
%{_datadir}/gsequencer/
%{_datadir}/xml/gsequencer/
%{_docdir}/gsequencer/
%{_datadir}/applications/gsequencer.desktop
%{_datadir}/icons/hicolor/*/apps/gsequencer.png
%{_datadir}/icons/hicolor/scalable/apps/gsequencer.svg
%{_datadir}/metainfo/*
%{_datadir}/mime/packages/*

%package -n libags%{libagssonumber}
Summary:        GSequencer core libraries
Group:          System/Libraries

%description -n libags%{libagssonumber}
Advanced Gtk+ Sequencer is an audio sequencer application.
This subpackage contains part of its library set.

%package -n typelib-1_0-Libags-3_0
Summary:        GSequencer core libraries -- Introspection bindings
Group:          System/Libraries

%description -n typelib-1_0-Libags-3_0
Advanced Gtk+ Sequencer is an audio sequencer application.
This package provides the GObject Introspection bindings for Libags.

%package -n libgsequencer%{libgsequencersonumber}
Summary:        GSequencer core libraries
Group:          System/Libraries

%description -n libgsequencer%{libgsequencersonumber}
Advanced Gtk+ Sequencer is an audio sequencer application.
This subpackage contains part of its library set.

%package devel
Summary:        Advanced Gtk+ Sequencer library development files
Group:          Development/Libraries/C and C++
Requires:       libags%{libagssonumber} = %{version}
Requires:       libgsequencer%{libgsequencersonumber} = %{version}

%description devel
Advanced Gtk+ Sequencer library development files.

%files devel
%{_includedir}/ags/
%{_libdir}/libags.so
%{_libdir}/libags_thread.so
%{_libdir}/libags_server.so
%{_libdir}/libags_gui.so
#%{_libdir}/libags_vst.so
%{_libdir}/libags_audio.so
%{_libdir}/libgsequencer.so
%{_datadir}/gir-1.0/*.gir
%{_libdir}/pkgconfig/libags.pc
%{_libdir}/pkgconfig/libags_audio.pc
%{_libdir}/pkgconfig/libags_gui.pc
%{_libdir}/pkgconfig/libgsequencer.pc

%package -n gsequencer-devel-doc
Summary:        Documentation for Advanced Gtk+ Sequencer
Group:          Documentation/HTML
BuildArch:      noarch

%description -n gsequencer-devel-doc
Advanced Gtk+ Sequencer library development documentation.

%post   -n libags%{libagssonumber} -p /sbin/ldconfig
%postun -n libags%{libagssonumber} -p /sbin/ldconfig
%post   -n libgsequencer%{libgsequencersonumber} -p /sbin/ldconfig
%postun -n libgsequencer%{libgsequencersonumber} -p /sbin/ldconfig

%files -n libags%{libagssonumber}
%defattr(-,root,root)
%{_libdir}/libags.so.%{libagssonumber}*
%{_libdir}/libags_thread.so.%{libagssonumber}*
%{_libdir}/libags_server.so.%{libagssonumber}*
%{_libdir}/libags_gui.so.%{libagssonumber}*
#%{_libdir}/libags_vst.so.%{libagssonumber}*
%{_libdir}/libags_audio.so.%{libagssonumber}*

%files -n typelib-1_0-Libags-3_0
%defattr(-,root,root)
%{_libdir}/girepository-1.0/Ags-3.0.typelib
%{_libdir}/girepository-1.0/AgsGui-3.0.typelib
%{_libdir}/girepository-1.0/AgsAudio-3.0.typelib

%files -n libgsequencer%{libgsequencersonumber}
%defattr(-,root,root)
%{_libdir}/libgsequencer.so.%{libgsequencersonumber}*

%files -n gsequencer-devel-doc
%{_datadir}/gtk-doc/
%{_datadir}/doc/libags-audio-doc/

%changelog