File muse.spec of Package muse

#
# spec file for package muse
#
# Copyright (c) 2020 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 version_short 4.2
%{?sle15_python_module_pythons}
Name:           muse
Version:        4.2.1
Release:        0
Summary:        MIDI Music Editor
License:        GPL-2.0-or-later
Group:          Productivity/Multimedia/Sound/Midi
URL:            https://muse-sequencer.github.io/
#Source:         https://github.com/muse-sequencer/muse/archive/muse_%%{sversion}/%%{name}-%%{version}.tar.gz
Source:         https://github.com/muse-sequencer/muse/archive/%{version}/%{name}-%{version}.tar.gz
BuildRequires:  gcc
BuildRequires:  automake
BuildRequires:  dos2unix
BuildRequires:  cmake >= 2.4
BuildRequires:  extra-cmake-modules
BuildRequires:  cpp
BuildRequires:  doxygen
BuildRequires:  fdupes
BuildRequires:  fluidsynth-dssi
BuildRequires:  gtk2-devel
BuildRequires:  gtk2-tools
BuildRequires:  lash-devel >= 0.2
BuildRequires:  liblo-devel >= 0.29
BuildRequires:  libtool
BuildRequires:  pkgconfig
BuildRequires:  %{python_module base >= 3.8}
BuildRequires:  %{python_module qt5}
BuildRequires:  %{python_module Pyro5}
BuildRequires:  pkgconfig(Qt5Core) >= 5.1.0
BuildRequires:  pkgconfig(Qt5UiTools) >= 5.1.0
BuildRequires:  pkgconfig(Qt5Widgets) >= 5.1.0
BuildRequires:  pkgconfig(Qt5Svg)
BuildRequires:  pkgconfig(alsa) >= 1.1.3
BuildRequires:  pkgconfig(dssi) >= 1.1.1
BuildRequires:  pkgconfig(fluidsynth) >= 1.1.9
BuildRequires:  pkgconfig(gtkmm-2.4)
BuildRequires:  pkgconfig(jack) >= 0.125
BuildRequires:  pkgconfig(libccaudio2)
BuildRequires:  pkgconfig(libinstpatch-1.0)
BuildRequires:  pkgconfig(lilv-0) >= 0.24.0
BuildRequires:  pkgconfig(lv2) >= 1.18.0
BuildRequires:  pkgconfig(rtaudio) >= 5.0.0
BuildRequires:  pkgconfig(samplerate) >= 0.1.9
BuildRequires:  pkgconfig(sndfile) >= 1.0.28
BuildRequires:  pkgconfig(sord-0) >= 0.16.0
BuildRequires:  pkgconfig(uuid) >= 0.0.1
BuildRequires:  pkgconfig(lrdf) >= 0.5
BuildRequires:  pkgconfig(rubberband) >= 1.8.1
Requires:       alsa
Requires:       alsa-plugins-jack
Requires:       dssi
Requires:       fluidsynth
Requires:       fluidsynth-dssi
Requires:       jack
Requires:       lash
Requires:       %{python_flavor}-Pyro5
Recommends:     qjackctl

%description
MusE is a MIDI/Audio sequencer with recording and editing capabilities written originally by Werner Schweer
now developed and maintained by the MusE development team. MusE aims to be a complete multitrack virtual
studio for Linux, it is published under the GNU General Public License.

MusE features include:

Midi sequencing

    Realtime record/playback
    Midi file import/export
    Midi part, as used in the arranger, import/export
    Input filter
    Midi editing with:
      Piano roll
      Drum editor
      List view
      Score editor
    Internal synth plugins including:
      Fluidsynth soundfont (sf2) capable softsynth
      Deicsonze FM synth emulating DX11
    Standardized synth plugin formats: DSSI, VST
    External synth support both hardware and software
    Scriptable editing interface
    Experimental python automation interface

Audio sequencing
  Realtime Record/Playback several mono/stereo inputs/outputs.
    Graphical editing of automation
    Several types of audio tracks
      Audio inputs
      Audio outputs
      Wave tracks
      Group tracks
      Aux outputs
    Standardized plugin formats: LADSPA, DSSI, VST, LV2
    Drag and drop import and arranging of:
      Plugins and plugin presets
      Parts
      Midi files
      Audio files
      Aux outputs

%prep
%setup -q -n %{name}-%{version}
# rpmlintrc
find src/share/scripts -type f -exec sed -i -e 's|\/usr\/bin\/env python3|\/usr\/bin\/python%{python_bin_suffix}|g' {} \;
rm -rf src/README.win32
%if 0%{?suse_version} > 1500
sed -i -e 's|-Wno-error|-Wno-error `pkgconf --cflags atkmm-1.6`|' src/muse/lv2Gtk2Support/CMakeLists.txt
%endif


%build
export CFLAGS="%{optflags} -fPIE"
export CXXFLAGS="%{optflags} -fPIE"
export LDFLAGS="-pie"
mkdir src/build
cd src/build
# FIXME: you should use %%cmake macros
cmake .. -DCMAKE_BUILD_TYPE=release \
         -DCMAKE_INSTALL_PREFIX=%{_prefix} \
         -DCMAKE_INSTALL_LIBDIR=%{_libdir} \
         -DMusE_DOC_DIR=%{_defaultdocdir}/%{name} \
         %if 0%{?suse_version} > 1500
         -DMODULES_BUILD_STATIC=ON \
         %endif
         -DENABLE_PYTHON=ON
make %{?_smp_mflags}


%install
cd src/build
%make_install
cd ..
%fdupes %{buildroot}%{_datadir}


%files
%license LICENSE src/share/scoreglyphs/LICENSE src/COPYING src/libdivide_LICENSE
%doc README.md src/README* src/SECURITY
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/*
%dir %{_datadir}/icons/hicolor/*/apps/
%dir %{_datadir}/metainfo
%dir %{_libdir}/%{name}-%{version_short}
%{_bindir}/*
%{_libdir}/%{name}-%{version_short}/*
%{_datadir}/%{name}-%{version_short}
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*/apps/muse.png
%{_docdir}/%{name}
%{_mandir}/man1/grepmidi.1%{?ext_man}
%{_mandir}/man1/muse4.1%{?ext_man}
%{_datadir}/mime/packages/muse.xml
%{_datadir}/metainfo/io.github.muse_sequencer.Muse.appdata.xml

%changelog
openSUSE Build Service is sponsored by