File surge-xt-release.spec of Package surge-xt-release
#
# spec file for package surge-xt-release
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2024 Konstantin Voinov konstantin.voinov@gmail.com
#
# 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 surgename surge-xt
%define packagesuffix release
%define conflictsuffix nightly
Name: %{surgename}-%{packagesuffix}
Version: 1.3.1
Release: 0
Summary: Subtractive hybrid synthesizer virtual instrument
License: GPL-3.0-only
Group: Productivity/Multimedia/Sound/Midi
URL: https://surge-synth-team.org/
Source0: https://github.com/surge-synthesizer/releases-xt/releases/download/%{version}/surge-src-%{version}.tar.gz
BuildRequires: cmake >= 3.22
BuildRequires: pkgconfig
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(fftw3f)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xrandr)
Requires: %{name}-standalone = %{version}
Requires: %{surgename}-fx-%{packagesuffix}-standalone = %{version}
Requires: clap-%{name} = %{version}
Requires: clap-%{surgename}-fx-%{packagesuffix} = %{version}
Requires: lv2-%{name} = %{version}
Requires: lv2-%{surgename}-fx-%{packagesuffix} = %{version}
Requires: vst3-%{name} = %{version}
Requires: vst3-%{surgename}-fx-%{packagesuffix} = %{version}
Conflicts: %{surgename}-%{conflictsuffix}
%if 0%{?is_opensuse} && 0%{?suse_version} <= 1600
BuildRequires: gcc12
BuildRequires: gcc12-c++
%else
BuildRequires: gcc-c++
%endif
%if %{defined fedora}
BuildRequires: jack-audio-connection-kit-devel
%else
BuildRequires: libjack-devel
%endif
%description
Subtractive hybrid synthesizer virtual instrument.
Surge XT includes CLAP/LV2/VST3 instrument formats for use in compatible hosts and a standalone executable
This is a full installer meta-package, providing rpms of all Surge XT binaries (or each can be installed separately):
surge-xt-release-standalone
surge-xt-fx-release-standalone
clap-surge-xt-release
lv2-surge-xt-release
vst3-surge-xt-release
clap-surge-xt-fx-release
lv2-surge-xt-fx-release
vst3-surge-xt-fx-release
%package standalone
Summary: Subtractive hybrid synthesizer virtual instrument (Standalone JACK/ALSA)
Requires: %{name}-common
Conflicts: %{surgename}-%{conflictsuffix}-standalone
%description standalone
Subtractive hybrid synthesizer virtual instrument.
Surge XT includes CLAP/LV2/VST3 instrument formats for use in compatible hosts and a standalone executable
%package common
Summary: Common files for surge-xt
Conflicts: %{surgename}-%{conflictsuffix}-common
BuildArch: noarch
%description common
Data files for surge-xt (Presets, Skins, Wavetables)
%package -n vst3-%{name}
Summary: Subtractive hybrid synthesizer virtual instrument (VST3)
Requires: %{name}-common
Conflicts: vst3-%{surgename}-%{conflictsuffix}
%description -n vst3-%{name}
Subtractive hybrid synthesizer virtual instrument.
Surge XT includes CLAP/LV2/VST3 instrument formats for use in compatible hosts and a standalone executable
%package -n clap-%{name}
Summary: Subtractive hybrid synthesizer virtual instrument (CLAP)
Requires: %{name}-common
Conflicts: clap-%{surgename}-%{conflictsuffix}
%description -n clap-%{name}
Subtractive hybrid synthesizer virtual instrument.
Surge XT includes CLAP/LV2/VST3 instrument formats for use in compatible hosts and a standalone executable
%package -n lv2-%{name}
Summary: Subtractive hybrid synthesizer virtual instrument (LV2)
Requires: %{name}-common
Conflicts: lv2-%{surgename}-%{conflictsuffix}
%description -n lv2-%{name}
Subtractive hybrid synthesizer virtual instrument.
Surge XT includes CLAP/LV2/VST3 instrument formats for use in compatible hosts and a standalone executable
%package -n %{surgename}-fx-%{packagesuffix}-standalone
Summary: Surge XT Effects Plugin (Standalone JACK/ALSA)
Requires: %{name}-common
Conflicts: %{surgename}-fx-%{conflictsuffix}-standalone
%description -n %{surgename}-fx-%{packagesuffix}-standalone
Surge XT Effects Plugin
%package -n vst3-%{surgename}-fx-%{packagesuffix}
Summary: Surge XT Effects Plugin (VST3)
Requires: %{name}-common
Conflicts: vst3-%{surgename}-fx-%{conflictsuffix}
%description -n vst3-%{surgename}-fx-%{packagesuffix}
Surge XT Effects VST3 Plugin
%package -n clap-%{surgename}-fx-%{packagesuffix}
Summary: Surge XT Effects Plugin (CLAP)
Requires: %{name}-common
Conflicts: clap-%{surgename}-fx-%{conflictsuffix}
%description -n clap-%{surgename}-fx-%{packagesuffix}
Surge XT Effects CLAP Plugin
%package -n lv2-%{surgename}-fx-%{packagesuffix}
Summary: Surge XT Effects Plugin (LV2)
Requires: %{name}-common
Conflicts: lv2-%{surgename}-fx-%{conflictsuffix}
%description -n lv2-%{surgename}-fx-%{packagesuffix}
Surge XT Effects LV2 Plugin
%prep
%setup -q -n surge
%autopatch -p1
# too many errors with -Werror and -Wall both
sed -i -e "/Werror=/d" CMakeLists.txt
sed -i -e "/:-Werror/d" CMakeLists.txt
%build
%cmake -DBUILD_SHARED_LIBS:BOOL=OFF \
-DSURGE_BUILD_LV2=TRUE \
%if 0%{?is_opensuse} && 0%{?suse_version} <= 1600
-DCMAKE_CXX_COMPILER=g++-12
%endif
%cmake_build
%install
%cmake_install
# Readme for main meta-package.
install -m 755 -d %{buildroot}%{_docdir}/%{name}
cat > %{buildroot}%{_docdir}/%{name}/%{name}.txt <<EOF
This is a full installer meta-package, providing rpms of all Surge XT binaries (or each can be installed separately):
surge-xt-release-standalone
surge-xt-fx-release-standalone
clap-surge-xt-release
lv2-surge-xt-release
vst3-surge-xt-release
clap-surge-xt-fx-release
lv2-surge-xt-fx-release
vst3-surge-xt-fx-release
EOF
%files
%dir %{_docdir}/%{name}
%{_docdir}/%{name}/%{name}.txt
%files standalone
"%{_bindir}/Surge XT"
%{_bindir}/surge-xt-cli
%files -n %{surgename}-fx-%{packagesuffix}-standalone
%license LICENSE
"%{_bindir}/Surge XT Effects"
%files common
%doc README.md AUTHORS
%license LICENSE
%exclude %{_docdir}/%{name}/%{name}.txt
%dir %{_datadir}/%{surgename}
%{_datadir}/%{surgename}/*
%files -n vst3-%{name}
%license LICENSE
%dir %{_libdir}/vst3
"%{_libdir}/vst3/Surge XT.vst3"
%files -n clap-%{name}
%license LICENSE
%dir %{_libdir}/clap
"%{_libdir}/clap/Surge XT.clap"
%files -n lv2-%{name}
%license LICENSE
%dir %{_libdir}/lv2
"%{_libdir}/lv2/Surge XT.lv2"
%files -n vst3-%{surgename}-fx-%{packagesuffix}
%license LICENSE
%dir %{_libdir}/vst3
"%{_libdir}/vst3/Surge XT Effects.vst3"
%files -n clap-%{surgename}-fx-%{packagesuffix}
%license LICENSE
%dir %{_libdir}/clap
"%{_libdir}/clap/Surge XT Effects.clap"
%files -n lv2-%{surgename}-fx-%{packagesuffix}
%license LICENSE
%dir %{_libdir}/lv2
"%{_libdir}/lv2/Surge XT Effects.lv2"
%changelog