8d3212b
# https://github.com/falkTX/Carla/commit/41f81a8af2e9ba11ed6b6aa458da4c2d9c9d4d5f
8d3212b
8d3212b
%global commit0 41f81a8af2e9ba11ed6b6aa458da4c2d9c9d4d5f
d802190
%global shortcommit0 %(c=%{commit0}; echo ${c:0:7})
d802190
%global pname   carla 
8d3212b
%global commitdate 20190501
d802190
d802190
Name:           Carla
d802190
Version:        2.0.0
cd67efb
Release:        0.11.%{commitdate}git%{shortcommit0}%{?dist}
d802190
Summary:        Audio plugin host
d802190
d802190
# The entire source code is GPLv2+ except
d802190
# - BSD
d802190
# source/modules/lilv/lilv-0.24.0/waf
d802190
# source/modules/lilv/serd-0.24.0/waf
d802190
# source/modules/lilv/sord-0.16.0/waf
d802190
# source/modules/lilv/sratom-0.6.0/waf
d802190
# source/modules/audio_decoder/ffcompat.h
d802190
# source/modules/rtaudio/include/soundcard.h
d802190
# - Boost
d802190
# source/modules/hylia/link/asio/*
d802190
# - ISC
d802190
# source/jackbridge/*
d802190
# source/modules/dgl/*
d802190
# source/modules/distrho/*
d802190
# source/modules/lilv/*
d802190
# source/modules/water/buffers/AudioSampleBuffer.h
d802190
# source/modules/water/containers
d802190
# source/modules/water/files/*
d802190
# source/modules/water/maths/*
d802190
# source/modules/water/memory/*
d802190
# source/modules/water/midi/*
d802190
# source/modules/water/misc/*
d802190
# source/modules/water/streams/OutputStream.h
d802190
# source/modules/water/synthesisers/*
d802190
# source/modules/water/text/*
d802190
# source/modules/water/threads/*
d802190
# source/modules/water/xml/*
d802190
# source/utils/CarlaJuceUtils.hpp
d802190
# - MIT/Expat
d802190
# source/modules/rtaudio/RtAudio.cpp
d802190
# source/modules/rtaudio/RtAudio.h
d802190
# source/modules/rtmidi/RtMidi.cpp
d802190
# source/modules/rtmidi/RtMidi.h
d802190
# source/modules/sfzero/LICENSE
d802190
# - zlib
d802190
# source/modules/dgl/src/nanovg/LICENSE.txt
d802190
# source/modules/dgl/src/nanovg/fontstash.h
d802190
# source/modules/dgl/src/nanovg/nanovg.c
d802190
# source/modules/dgl/src/nanovg/nanovg.h
d802190
# source/modules/dgl/src/nanovg/nanovg_gl.h
d802190
# source/modules/dgl/src/nanovg/nanovg_gl_utils.h
d802190
d802190
License:        GPLv2+ and BSD and Boost and ISC and MIT and zlib
d802190
URL:            https://github.com/falkTX/Carla
d802190
Source0:        https://github.com/falkTX/%{name}/archive/%{commit0}/%{name}-%{shortcommit0}.tar.gz
d802190
d802190
BuildRequires:  gcc gcc-c++
7f87514
BuildRequires:  pkgconfig(alsa)
7f87514
BuildRequires:  pkgconfig(libpulse)
7f87514
BuildRequires:  pkgconfig(jack)
7f87514
BuildRequires:  pkgconfig(sndfile)
7f87514
BuildRequires:  pkgconfig(gtk+-2.0)
7f87514
BuildRequires:  pkgconfig(gtk+-3.0)
7f87514
BuildRequires:  pkgconfig(fluidsynth)
7f87514
BuildRequires:  pkgconfig(fftw3)
7f87514
BuildRequires:  pkgconfig(mxml)
7f87514
BuildRequires:  pkgconfig(gl)
d802190
BuildRequires:  non-ntk-fluid
7f87514
BuildRequires:  pkgconfig(ntk)
7f87514
BuildRequires:  pkgconfig(Qt5Core)
d802190
BuildRequires:  python3-qt5-devel
d802190
BuildRequires:  python3-magic
7f87514
BuildRequires:  pkgconfig(liblo)
7f87514
BuildRequires:  pkgconfig(zlib)
2002c42
BuildRequires:  desktop-file-utils
1781799
Requires:       jack-audio-connection-kit
d802190
Requires:       python3-qt5
c333c56
Requires:       python3-pyliblo
d802190
Requires:       hicolor-icon-theme
d802190
Requires:       shared-mime-info
d802190
7f87514
7f87514
# Dont provide or require internal libs. Using new rpm builtin filtering,
7f87514
# see https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering#Private_Libraries
7f87514
%global _privatelibs libjack[.]so.*
7f87514
%global __provides_exclude ^(%{_privatelibs})$
7f87514
%global __requires_exclude ^(%{_privatelibs})$
7f87514
7f87514
d802190
%description
d802190
Carla is a fully-featured audio plugin host, with support for many audio drivers
d802190
and plugin formats.
d802190
It's open source and licensed under the GNU General Public License, version 2 or
d802190
later.
d802190
Features
d802190
d802190
    LADSPA, DSSI, LV2 and VST plugin formats
d802190
    SF2/3 and SFZ sound banks
d802190
    Internal audio and midi file player
d802190
    Automation of plugin parameters via MIDI CC
d802190
    Remote control over OSC
d802190
    Rack and Patchbay processing modes, plus Single and Multi-Client if using
d802190
    JACK
d802190
    Native audio drivers (ALSA, DirectSound, CoreAudio, etc) and JACK
d802190
d802190
In experimental phase / work in progress:
d802190
d802190
    Export any Carla loadable plugin or sound bank as an LV2 plugin
d802190
    Plugin bridge support (such as running 32bit plugins on a 64bit Carla, or
d802190
    Windows plugins on Linux)
d802190
    Run JACK applications as audio plugins
d802190
    Transport controls, sync with JACK Transport or Ableton Link
d802190
d802190
Carla is also available as an LV2 plugin for MacOS and Linux, and VST plugin for
d802190
Linux.
d802190
d802190
%package        devel
d802190
Summary:        Header files to access Carla's API
d802190
Requires:       %{name}%{?_isa} = %{version}-%{release}
d802190
d802190
%description devel
d802190
This package contains header files needed when writing software using
d802190
Carla's several APIs.
d802190
d802190
%package        vst
d802190
Summary:        CarlaRack and CarlaPatchbay VST plugins
d802190
Requires:       %{name}%{?_isa} = %{version}-%{release}
d802190
d802190
%description    vst
d802190
This package contains Carla VST plugins, including CarlaPatchbayFX,
d802190
CarlaPatchbay, CarlaRackFX, and CarlaRack.
d802190
d802190
%package     -n lv2-%{pname}
d802190
Summary:        LV2 plugin
d802190
Requires:       %{name}%{?_isa} = %{version}-%{release}
d802190
d802190
%description -n lv2-%{pname}
d802190
This package contains the Carla LV2 plugin.
d802190
d802190
%prep
d802190
%autosetup -p 1 -n %{name}-%{commit0}
d802190
d802190
# remove windows stuff
be46962
rm -rf data/{macos,windows}
d802190
d802190
# E: wrong-script-interpreter /usr/lib64/python3/dist-packages/carla_backend.py /usr/bin/env python3
d802190
find . -type f \( -name "*.py" \) -exec sed -i "s|#!/usr/bin/env python3|#!%{__python3}|g" {} \;
d802190
sed -i "s|#!/usr/bin/env python3|#!%{__python3}|" source/frontend/{carla,carla-control,carla-jack-multi,carla-jack-single,carla-patchbay,carla-rack}
d802190
sed -i "s|#!/usr/bin/env python|#!%{__python3}|" source/frontend/widgets/paramspinbox.py
d802190
d802190
# fix libdir path
d802190
sed -i "s|/lib/carla|/%{_lib}/carla|" data/{carla,carla-control,carla-database,carla-jack-multi,carla-jack-single,carla-patchbay,carla-rack,carla-settings}
d802190
d802190
%build
d802190
%{set_build_flags}
d802190
# list build configuration, no need for optflags or -j
d802190
make features
6a46812
%make_build SKIP_STRIPPING=true NOOPT=true V=1
d802190
d802190
%install 
d802190
%make_install PREFIX=%{_prefix} LIBDIR=%{_libdir}
d802190
d802190
# Create a vst directory
d802190
install -m 755 -d %{buildroot}/%{_libdir}/vst/
d802190
d802190
# E: non-executable-script /usr/share/carla/paramspinbox.py 644 /usr/bin/env python
d802190
find %{buildroot} -type f \( -name "*.py" \) -exec chmod a+x {} \;
d802190
d802190
# E: non-executable-script /usr/share/carla/carla 644 /usr/bin/python3
d802190
chmod a+x %{buildroot}%{_datadir}/%{pname}/{carla,carla-control,carla-jack-multi,carla-jack-single,carla-patchbay,carla-rack}
d802190
d802190
# fix perm due rpmlint W: unstripped-binary-or-object /usr/lib64/carla/libcarla_interposer-jack-x11.so
d802190
find %{buildroot}%{_libdir} -name '*.so' -exec chmod +x '{}' ';'
d802190
d802190
%check
d802190
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
d802190
d802190
%files
d802190
%doc README.md
d802190
%license doc/GPL.txt doc/LGPL.txt
d802190
%{_bindir}/%{pname}
d802190
%{_bindir}/%{pname}-control
d802190
%{_bindir}/%{pname}-database
d802190
%{_bindir}/%{pname}-jack-multi
d802190
%{_bindir}/%{pname}-jack-single
d802190
%{_bindir}/%{pname}-patchbay
d802190
%{_bindir}/%{pname}-rack
d802190
%{_bindir}/%{pname}-settings
d802190
%{_bindir}/%{pname}-single
d802190
%{_libdir}/%{pname}/
8d3212b
%{_libdir}/jack/
d802190
%{_datadir}/applications/%{pname}-control.desktop
d802190
%{_datadir}/applications/%{pname}.desktop
d802190
%{_datadir}/%{pname}/
d802190
%{_datadir}/icons/hicolor/*/apps/%{pname}*.png
d802190
%{_datadir}/icons/hicolor/*/apps/%{pname}*.svg
d802190
%{_datadir}/mime/packages/%{pname}.xml
d802190
d802190
%files vst
d802190
%{_libdir}/vst/
d802190
d802190
%files -n lv2-%{pname}
d802190
%dir %{_libdir}/lv2
d802190
%{_libdir}/lv2/carla.lv2/
d802190
d802190
%files devel
d802190
%{_includedir}/%{pname}/
d802190
%{_libdir}/pkgconfig/%{pname}-standalone.pc
d802190
%{_libdir}/pkgconfig/%{pname}-utils.pc
d802190
%{_libdir}/pkgconfig/%{pname}-native-plugin.pc
d802190
d802190
%changelog
cd67efb
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-0.11.20190501git41f81a8
cd67efb
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
cd67efb
8d3212b
* Wed May 15 2019 Martin Gansser <martinkg@fedoraproject.org> - 2.0.0-0.10.20190501git41f81a8
8d3212b
- Update to 2.0.0-0.10.20190501git41f81a8
8d3212b
dfb2c18
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-0.9.20181225git2f3a442
dfb2c18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
dfb2c18
7f87514
* Sun Jan 06 2019 Martin Gansser <martinkg@fedoraproject.org> - 2.0.0-0.8.20181225git2f3a442
7f87514
- Filtering private libs
7f87514
c333c56
* Sat Jan 05 2019 Martin Gansser <martinkg@fedoraproject.org> - 2.0.0-0.7.20181225git2f3a442
c333c56
- Add RR python3-pyliblo fixes (RHBZ#1663630)
c333c56
1781799
* Fri Jan 04 2019 Martin Gansser <martinkg@fedoraproject.org> - 2.0.0-0.6.20181225git2f3a442
90235a3
- Add RR jack-audio-connection-kit fixes (RHBZ#1663319) and (RHBZ#1663357)
1781799
6a46812
* Tue Dec 25 2018 Martin Gansser <martinkg@fedoraproject.org> - 2.0.0-0.5.20181225git2f3a442
6a46812
- Update to 2.0.0-0.5.20181225git2f3a442
6a46812
- Rework of Carla-bswap.patch
6a46812
be46962
* Fri Dec 21 2018 Martin Gansser <martinkg@fedoraproject.org> - 2.0.0-0.4.20181212git51f2073
d802190
- Add lv2-carla subpkg
d802190
- Take ownership of lv2/
2002c42
- Add BR desktop-file-utils
be46962
- Add Carla-bswap.patch
be46962
- Remove upstream optimisation options
d802190
d802190
* Thu Dec 20 2018 Martin Gansser <martinkg@fedoraproject.org> - 2.0.0-0.3.20181212git51f2073
d802190
- Use correct directory in subpgk vst
d802190
- Make build verbose V=1
d802190
- Fix debug symbols extraction / stripping
d802190
d802190
* Wed Dec 19 2018 Martin Gansser <martinkg@fedoraproject.org> - 2.0.0-0.2.20181212git51f2073
d802190
- Add subpkg vst
d802190
- Remove group tag
d802190
- Remove old BR qt-devel
d802190
- New git release use correct desktop files
d802190
- Use macro %%{_lib} libdir fix
d802190
- Use %%{__python3} macro
d802190
- Use %%{_datadir}/%%{pname}/
d802190
d802190
* Tue Dec 18 2018 Martin Gansser <martinkg@fedoraproject.org> - 2.0.0-0.1.20181212git51f2073
d802190
- Initial build