From ff9499a1c71cf12e0d51ac85c005232d48d2cfbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Sat, 16 Mar 2019 19:58:53 +0100 Subject: [PATCH] Initial commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Andreas Müller --- LICENSE | 17 + README | 17 + classes/lv2-postinst-helper.bbclass | 53 ++ classes/pack_audio_plugins.bbclass | 8 + classes/qemu-ext.bbclass | 22 + classes/wafold.bbclass | 37 + conf/layer.conf | 14 + .../gstreamer-0.10/gst-meta-base_0.10.bb | 73 ++ ...don-t-do-crazy-things-to-GLIB_CFLAGS.patch | 32 + ...x-build-on-x86-if-emmintrin.h-is-ava.patch | 37 + .../configure.ac-fix-subparse-plugin.patch | 27 + .../gst-plugins-base-tremor.patch | 20 + .../gst-plugins-base_0.10.36.bb | 43 + ...ith-recent-kernels-the-v4l2_buffer-i.patch | 33 + ...e-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch | 45 + .../0407-mulawdec-fix-integer-overrun.patch | 47 + .../gst-plugins-good_0.10.31.bb | 47 + .../gstreamer-0.10/gst-plugins.inc | 29 + ...lf-comparison-always-evaluates-to-tr.patch | 32 + ...rse-make-grammar.y-work-with-Bison-3.patch | 35 + ...don-t-do-crazy-things-to-GLIB_CFLAGS.patch | 32 + .../gstreamer-0.10.36/check_fix.patch | 19 + .../gst-inspect-check-error.patch | 16 + .../gstreamer-0.10.36/gstregistrybinary.c | 487 +++++++++++ .../gstreamer-0.10.36/gstregistrybinary.h | 194 ++++ .../gstreamer-0.10/gstreamer_0.10.36.bb | 50 ++ recipes-musicians/amsynth/amsynth_git.bb | 51 ++ recipes-musicians/ardour/ardour5_git.bb | 101 +++ ...-flags-that-cause-trouble-for-cross-.patch | 75 ++ ...rinsics-if-available-for-mixing-func.patch | 229 +++++ ...e-meter-redraws-for-inactive-meters-.patch | 29 + ...e-meter-redraws-for-inactive-meters-.patch | 34 + ...h-s-API-changes-introduced-with-2.0..patch | 117 +++ .../ardour/files/ardour5.desktop | 10 + recipes-musicians/aubio/aubio_0.4.7.bb | 27 + .../aubio/files/0001-do-not-build-tests.patch | 28 + .../audio-tweaks/audio-tweaks_1.0.bb | 13 + .../audio-tweaks/files/95-audio-tweaks.conf | 5 + recipes-musicians/bristol/bristol_0.60.11.bb | 38 + .../bristol/files/0001-Do-not-force-sse.patch | 30 + .../0002-Do-not-include-alsa-iatomic.h.patch | 32 + ...oljackstats-do-not-overwrite-LDFLAGS.patch | 29 + .../0004-Avoid-crosscompile-warnings.patch | 33 + ...erdf-commandline-for-later-use-in-qe.patch | 55 ++ ...ate-synth.dynamic-sample-loading-for.patch | 33 + ...-Fix-detection-of-LV2-for-latest-git.patch | 39 + ...Find-headers-for-all-versions-of-LV2.patch | 75 ++ .../calf-studio-gear/calf_git.bb | 64 ++ ...ot-try-to-cross-run-carla-lv2-export.patch | 31 + ...-to-find-Qt5-host-bins-it-won-t-work.patch | 30 + ...re-fluidsynth-s-defaults-are-set-onc.patch | 245 ++++++ .../0004-Fixes-for-fluidsynth-2.0.0.patch | 143 +++ recipes-musicians/carla/carla_git.bb | 71 ++ .../chromaprint/chromaprint_git.bb | 22 + recipes-musicians/csound/csound_git.bb | 63 ++ ...et-include-path-to-usr-local-include.patch | 31 + ...002-Do-not-use-try_run-for-portaudio.patch | 51 ++ .../files/0003-strict-aliasing-errors.patch | 117 +++ ..._orc_semantics.c-Fix-build-with-gcc8.patch | 84 ++ ...05-InOut-pmidi.c-Fix-build-with-gcc8.patch | 41 + .../0006-fixed-unsafe-use-of-strncpy.patch | 27 + ...l1-csd_util-cs.c-Fix-build-with-gcc8.patch | 46 + ...-build-with-fluidsynth-version-2.0.0.patch | 53 ++ .../lpd8editor/files/lpd8-editor.desktop | 12 + .../lpd8editor/lpd8editor_0.0.10.bb | 24 + .../distrho/distrho-ports-extra.bb | 69 ++ recipes-musicians/distrho/distrho-ports.bb | 96 ++ ...elay-it-uses-double-precision-SSE2-b.patch | 57 ++ ...ne-Plugin-do-not-include-xmmintrin.h.patch | 27 + recipes-musicians/distrho/dpf-plugins.bb | 65 ++ .../distrho/lv2-ttl-generator.bb | 22 + .../0001-CMake-Keep-build-system-flags.patch | 36 + recipes-musicians/drmr/drmr_git.bb | 29 + ...t-usr-local-include-to-include-paths.patch | 31 + recipes-musicians/drobilla/ganv_git.bb | 21 + recipes-musicians/drobilla/ingen_git.bb | 57 ++ recipes-musicians/drobilla/jalv_git.bb | 32 + recipes-musicians/drobilla/lilv_0.24.4.bb | 14 + recipes-musicians/drobilla/lv2-native.bb | 5 + recipes-musicians/drobilla/lv2.bb | 9 + recipes-musicians/drobilla/lv2.inc | 13 + ...ils-on-import-error-to-catch-missing.patch | 56 ++ recipes-musicians/drobilla/mda-lv2_1.2.2.bb | 21 + recipes-musicians/drobilla/patchage_git.bb | 21 + recipes-musicians/drobilla/raul_git.bb | 12 + recipes-musicians/drobilla/serd_0.30.0.bb | 10 + recipes-musicians/drobilla/sord_0.16.2.bb | 12 + recipes-musicians/drobilla/sratom_0.6.2.bb | 12 + ...0001-Do-not-try-to-build-macOS-cocoa.patch | 41 + recipes-musicians/drobilla/suil_0.10.2.bb | 19 + .../drumgizmo/drumgizmo-native.bb | 12 + recipes-musicians/drumgizmo/drumgizmo.bb | 40 + recipes-musicians/drumgizmo/drumgizmo.inc | 11 + .../0001-automake-enable-subdir-objects.patch | 31 + .../files/0002-Use-native-rcgen.patch | 31 + .../drumgizmo/files/drumgizmo.desktop | 8 + .../drumstick/drumstick_1.1.1.bb | 25 + ...not-set-lib-suffix-oe-will-take-care.patch | 35 + recipes-musicians/dssi-vst/dssi-vst_git.bb | 41 + recipes-musicians/dssi/dssi_1.1.1.bb | 27 + .../files/gmidimonitor-alsa.desktop | 9 + .../files/gmidimonitor-jack.desktop | 9 + .../gmidimonitor/gmidimonitor_3.6.bb | 32 + ...-perform-link-test-durin-cross-build.patch | 33 + .../0002-Fix-build-with-boost-1.69.0.patch | 38 + recipes-musicians/guitarix/guitarix_0.37.3.bb | 57 ++ ...Adjust-Makefiles-for-cross-compiling.patch | 826 ++++++++++++++++++ .../guitarix/gxplugins.lv2_git.bb | 31 + ...ate-ttl-files-it-won-t-work-fo-cross.patch | 30 + .../0002-set-VECTORIZE_LOOP-for-gcc.patch | 29 + ...ision-floats-it-performs-much-better.patch | 209 +++++ recipes-musicians/helm/helm_git.bb | 72 ++ ....conf-do-not-show-developer-warnings.patch | 31 + .../0002-Fix-man-installation-path.patch | 31 + recipes-musicians/hydrogen/hydrogen_git.bb | 296 +++++++ .../infamousplugins/infamousplugins_0.2.04.bb | 26 + .../clthreads/0001-Align-Makefile.patch | 61 ++ .../kokkinizita/clthreads_2.4.2.bb | 23 + .../clxclient/0001-Align-Makefile.patch | 54 ++ .../kokkinizita/clxclient_3.9.2.bb | 32 + .../zita-convolver/0001-Align-Makefile.patch | 53 ++ .../kokkinizita/zita-convolver_4.0.3.bb | 28 + .../zita-resampler/0001-Align-Makefiles.patch | 84 ++ .../kokkinizita/zita-resampler_1.6.2.bb | 42 + ...-do-not-pin-build-flags-use-defaults.patch | 77 ++ ...-_init-and-_fini-multiple-definition.patch | 135 +++ ...-plugindir-in-case-env.-var-LADSPA_P.patch | 55 ++ recipes-musicians/ladspa/ladspa-sdk_1.13.bb | 39 + .../files/0001-Fix-build-with-GCC-8.patch | 36 + recipes-musicians/liblo/liblo_0.29.bb | 13 + recipes-musicians/libmp4v2/libmp4v2_git.bb | 11 + recipes-musicians/libsmf/libsmf_git.bb | 14 + recipes-musicians/libxmp/libxmp_4.4.1.bb | 10 + .../linuxsampler/libgig_4.1.0.bb | 19 + ...not-try-to-run-code-to-check-for-UNI.patch | 60 ++ .../linuxsampler/linuxsampler_2.1.0.bb | 30 + recipes-musicians/lmms/lmms-native.bb | 13 + recipes-musicians/lmms/lmms.bb | 40 + recipes-musicians/lmms/lmms.inc | 9 + .../lmms/lmms/0001-Find-native-bin2res.patch | 45 + .../0002-zynaddsubfx-link-agains-X11.patch | 31 + ...alloc-Do-not-overwrite-CMAKE_C_FLAGS.patch | 44 + ...labase-Do-not-add-RPATH-to-carlabase.patch | 32 + recipes-musicians/lrdf/lrdf_0.5.0.bb | 19 + .../lsp-plugins/lsp-plugins-native.bb | 28 + .../0001-Adjust-native-build.patch | 72 ++ recipes-musicians/lsp-plugins/lsp-plugins.bb | 52 ++ recipes-musicians/lsp-plugins/lsp-plugins.inc | 11 + ...01-Makefile-align-for-oe-cross-build.patch | 181 ++++ ...w-API-change-introduced-in-fluidsynt.patch | 146 ++++ recipes-musicians/muse/muse_git.bb | 79 ++ recipes-musicians/nekobee/nekobee.bb | 22 + ...-build-flags-it-causes-trouble-for-m.patch | 32 + ...flags-they-work-on-intel-hardware-on.patch | 33 + recipes-musicians/openav/arty-fx_1.3.bb | 29 + ...-build-flags-it-causes-trouble-for-m.patch | 38 + recipes-musicians/openav/fabla_git.bb | 26 + ...arch-detection-it-detects-build-host.patch | 45 + recipes-musicians/openav/luppp_git.bb | 34 + .../openav/openav-presets_git.bb | 27 + ...-build-flags-it-causes-trouble-for-m.patch | 36 + recipes-musicians/openav/sorcer_git.bb | 25 + recipes-musicians/pipewire/pipewire_0.2.4.bb | 30 + ...witches-constants-for-cross-compilin.patch | 124 +++ .../polyphone/files/polyphone.desktop | 15 + .../polyphone/files/polyphone.mime | 21 + .../polyphone/polyphone_2.0.1.bb | 54 ++ ...ava-application-to-set-midi-defaults.patch | 97 ++ ...x-compilation-du-to-unkown-functions.patch | 48 + .../files/0003-fix-format-security..patch | 124 +++ .../files/fedora-portmidi-cmake.patch | 107 +++ recipes-musicians/portmidi/portmidi_217.bb | 36 + ...uild-tools-by-configure-options-auto.patch | 46 + ...am-Fix-installation-with-DESTDIR-set.patch | 35 + recipes-musicians/projectm/projectm_git.bb | 54 ++ recipes-musicians/qm-dsp/qm-dsp_1.7.1.bb | 40 + ...ind-qtwidget-headers-it-finds-host-s.patch | 35 + ...uild-tools-by-configure-options-auto.patch | 66 ++ .../qmidiarp/files/qmidiarp-alsa.desktop | 14 + .../qmidiarp/files/qmidiarp-jack.desktop | 14 + recipes-musicians/qmidiarp/qmidiarp_0.6.5.bb | 46 + ...Fix-compilation-with-GStreamer-1-5-1.patch | 44 + ...-Optionally-create-qt5_use_modules-t.patch | 81 ++ ...e-QML-installation-path-configurable.patch | 39 + .../qt-gstreamer/qt-gstreamer_1.2.0.bb | 40 + recipes-musicians/rncbc/drumkv1_0.9.5.bb | 61 ++ ...uild-tools-by-configure-options-auto.patch | 118 +++ ...uild-tools-by-configure-options-auto.patch | 105 +++ .../rncbc/files/0002-Remove-extra-rpath.patch | 70 ++ ...nst-fftw3f-that-supports-NEON-on-ARM.patch | 81 ++ recipes-musicians/rncbc/padthv1/padthv1.conf | 64 ++ recipes-musicians/rncbc/padthv1_0.9.5.bb | 65 ++ .../rncbc/qjackctl/QjackCtl.conf | 10 + recipes-musicians/rncbc/qjackctl_0.5.6.bb | 56 ++ ...uild-tools-by-configure-options-auto.patch | 118 +++ recipes-musicians/rncbc/qmidictl_0.5.3.bb | 32 + ...uild-tools-by-configure-options-auto.patch | 92 ++ recipes-musicians/rncbc/qmidinet_0.5.3.bb | 35 + recipes-musicians/rncbc/qsynth_0.5.5.bb | 33 + ...-nor-try-run-for-float-sse-detection.patch | 58 ++ ...-nor-try-run-for-suil-libs-detection.patch | 55 ++ ...eleration-for-time-stretch-not-yet-t.patch | 92 ++ .../rncbc/qtractor/Qtractor.conf | 26 + recipes-musicians/rncbc/qtractor_git.bb | 58 ++ recipes-musicians/rncbc/samplv1_0.9.5.bb | 38 + recipes-musicians/rncbc/synthv1/synthv1.conf | 40 + recipes-musicians/rncbc/synthv1_0.9.5.bb | 64 ++ .../rosegarden/rosegarden_18.06.bb | 30 + ...not-run-temp-binary-in-cross-envirno.patch | 39 + ...2-configure.ac-do-not-reset-CXXFLAGS.patch | 31 + ...not-add-absolute-prefixes-to-build-f.patch | 35 + recipes-musicians/rtmidi/rtmidi_3.0.0.bb | 19 + ...stall-librubberband-jni.so-no-java-p.patch | 30 + .../0002-Fix-build-for-FFTW_SINGLE_ONLY.patch | 44 + ...-FFTW_DOUBLE_ONLY-by-FFTW_SINGLE_ONL.patch | 45 + .../rubberband/rubberband_1.8.2.bb | 40 + ...it-is-used-for-OSX-builds-only-and-c.patch | 61 ++ .../0002-Do-not-check-for-fontfile.patch | 69 ++ .../setbfree/files/setbfree.desktop | 11 + .../setbfree/files/x42-whirl.desktop | 11 + recipes-musicians/setbfree/setbfree_git.bb | 54 ++ ...01-Reduce-FSD_MAX_BURST_SIZE-512-128.patch | 33 + .../0002-Don-t-trash-unused-channels.patch | 50 ++ .../fluidsynth-dssi/fluidsynth-dssi.conf | 7 + .../smbolton/fluidsynth-dssi_2.0.0.bb | 43 + .../smbolton/hexter/hexter.desktop | 11 + recipes-musicians/smbolton/hexter/hexter.png | Bin 0 -> 7951 bytes recipes-musicians/smbolton/hexter_1.1.0.bb | 46 + .../smbolton/whysynth/whysynth.desktop | 9 + .../smbolton/whysynth_20170701.bb | 40 + ...ing-AM_PATH_GTK-by-PKG_CHECK_MODULES.patch | 38 + .../smbolton/xsynth-dssi_0.9.4.bb | 24 + .../soundfont-collection/sf-tools_git.bb | 21 + .../soundfont-collection_0.0.2.bb | 190 ++++ .../0001-Fix-path-to-m4-macro-dir.patch | 52 ++ .../soundtouch/soundtouch_git.bb | 14 + recipes-musicians/soxr/soxr_0.1.3.bb | 17 + .../stk/files/0001-avoid-usr-usr-paths.patch | 41 + ...configure.ac-fix-shared-library-name.patch | 37 + recipes-musicians/stk/stk_4.5.1.bb | 20 + ...-utilities-time_tag.hpp-Adding-stati.patch | 30 + .../supercollider/supercollider_git.bb | 58 ++ ...-for-va_copy-this-is-not-allowed-in-.patch | 105 +++ .../files/0002-find-cross-calcnewt.patch | 48 + ...-timidity-readmidi-zero-division-fix.patch | 27 + ...-timidity-resample-frac-overflow-fix.patch | 60 ++ .../timidity++/files/timidity.desktop | 8 + .../timidity++/timidity++-native.bb | 20 + recipes-musicians/timidity++/timidity++.bb | 40 + recipes-musicians/timidity++/timidity++.inc | 18 + .../0001-use-pkg-config-to-find-taglib.patch | 32 + recipes-musicians/tomahawk/tomahawk_git.bb | 25 + .../0001-Replace-lv2core-by-lv2.patch | 43 + .../triceratops/triceratops-lv2_0.3.1.bb | 28 + ...-test-it-tries-to-run-cross-binaries.patch | 31 + .../vamp-plugin-sdk/vamp-plugin-sdk_2.7.1.bb | 25 + .../wolf-shaper/wolf-shaper_git.bb | 44 + recipes-musicians/x42/avldrums.lv2_git.bb | 31 + recipes-musicians/x42/dpl.lv2_git.bb | 30 + recipes-musicians/x42/fil4.lv2_git.bb | 33 + recipes-musicians/x42/libltc_1.3.0.bb | 11 + recipes-musicians/x42/meters.lv2_git.bb | 33 + recipes-musicians/x42/midifilter.lv2_git.bb | 25 + recipes-musicians/x42/sisco.lv2_git.bb | 29 + recipes-musicians/x42/tuna.lv2_git.bb | 33 + recipes-musicians/ykchorus/ykchorus_git.bb | 39 + recipes-musicians/yoshimi/yoshimi_1.5.10.2.bb | 35 + .../0001-remove-useles-braces-in-macros.patch | 57 ++ .../zam-plugins/zam-plugins_git.bb | 57 ++ recipes-musicians/zyn/mruby-zest-native.bb | 14 + recipes-musicians/zyn/mruby-zest.bb | 63 ++ recipes-musicians/zyn/mruby-zest.inc | 21 + .../0001-mruby-Align-build-to-our-needs.patch | 71 ++ ...-mruby-zest-Align-build-to-our-needs.patch | 48 + ...-osc-bridge-Align-build-to-our-needs.patch | 33 + ...-build-X11-dependent-zest-libzest.so.patch | 34 + .../0005-mruby-Use-native-mrbc.patch | 31 + ...uby-regexp-pcre-link-against-libpcre.patch | 72 ++ ...ema-from-usr-share-zyn-fusion-schema.patch | 31 + ...-Do-not-require-dummy-MainWindow.qml.patch | 41 + recipes-musicians/zyn/zyn-fusion.bb | 14 + recipes-musicians/zyn/zyn.inc | 73 ++ .../zyn/zyn/0001-No-target-specific-asm.patch | 38 + ...er-align-Makefiles-for-cross-compili.patch | 75 ++ ...se-ps-aux-to-find-jack-busybox-s-ps-.patch | 46 + .../zyn/zyn/0004-Keep-our-build-flags.patch | 41 + recipes-musicians/zyn/zynaddsubfx.bb | 22 + .../packagegroups/musicians-world.bb | 158 ++++ ...001-Fix-build-after-update-of-xfconf.patch | 61 ++ .../xfce4-mixer/xfce4-mixer_4.11.0.bb | 17 + 290 files changed, 14388 insertions(+) create mode 100644 LICENSE create mode 100644 README create mode 100644 classes/lv2-postinst-helper.bbclass create mode 100644 classes/pack_audio_plugins.bbclass create mode 100644 classes/qemu-ext.bbclass create mode 100644 classes/wafold.bbclass create mode 100644 conf/layer.conf create mode 100644 recipes-gstreamer/gstreamer-0.10/gst-meta-base_0.10.bb create mode 100644 recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch create mode 100644 recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch create mode 100644 recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch create mode 100644 recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch create mode 100644 recipes-gstreamer/gstreamer-0.10/gst-plugins-base_0.10.36.bb create mode 100644 recipes-gstreamer/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch create mode 100644 recipes-gstreamer/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch create mode 100644 recipes-gstreamer/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch create mode 100644 recipes-gstreamer/gstreamer-0.10/gst-plugins-good_0.10.31.bb create mode 100644 recipes-gstreamer/gstreamer-0.10/gst-plugins.inc create mode 100644 recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch create mode 100644 recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch create mode 100644 recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch create mode 100644 recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch create mode 100644 recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch create mode 100644 recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c create mode 100644 recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h create mode 100644 recipes-gstreamer/gstreamer-0.10/gstreamer_0.10.36.bb create mode 100644 recipes-musicians/amsynth/amsynth_git.bb create mode 100644 recipes-musicians/ardour/ardour5_git.bb create mode 100644 recipes-musicians/ardour/files/0001-remove-all-build-flags-that-cause-trouble-for-cross-.patch create mode 100644 recipes-musicians/ardour/files/0002-Use-ARM-NEON-intrinsics-if-available-for-mixing-func.patch create mode 100644 recipes-musicians/ardour/files/0003-Prevent-excessive-meter-redraws-for-inactive-meters-.patch create mode 100644 recipes-musicians/ardour/files/0004-Prevent-excessive-meter-redraws-for-inactive-meters-.patch create mode 100644 recipes-musicians/ardour/files/0005-Follow-fluidsynth-s-API-changes-introduced-with-2.0..patch create mode 100644 recipes-musicians/ardour/files/ardour5.desktop create mode 100644 recipes-musicians/aubio/aubio_0.4.7.bb create mode 100644 recipes-musicians/aubio/files/0001-do-not-build-tests.patch create mode 100644 recipes-musicians/audio-tweaks/audio-tweaks_1.0.bb create mode 100644 recipes-musicians/audio-tweaks/files/95-audio-tweaks.conf create mode 100644 recipes-musicians/bristol/bristol_0.60.11.bb create mode 100644 recipes-musicians/bristol/files/0001-Do-not-force-sse.patch create mode 100644 recipes-musicians/bristol/files/0002-Do-not-include-alsa-iatomic.h.patch create mode 100644 recipes-musicians/bristol/files/0003-bristoljackstats-do-not-overwrite-LDFLAGS.patch create mode 100644 recipes-musicians/bristol/files/0004-Avoid-crosscompile-warnings.patch create mode 100644 recipes-musicians/calf-studio-gear/calf/0001-Do-store-calfmakerdf-commandline-for-later-use-in-qe.patch create mode 100644 recipes-musicians/calf-studio-gear/calf/0002-fluidsynth-Activate-synth.dynamic-sample-loading-for.patch create mode 100644 recipes-musicians/calf-studio-gear/calf/0003-Fix-detection-of-LV2-for-latest-git.patch create mode 100644 recipes-musicians/calf-studio-gear/calf/0004-Find-headers-for-all-versions-of-LV2.patch create mode 100644 recipes-musicians/calf-studio-gear/calf_git.bb create mode 100644 recipes-musicians/carla/carla/0001-do-not-try-to-cross-run-carla-lv2-export.patch create mode 100644 recipes-musicians/carla/carla/0002-Do-not-try-to-find-Qt5-host-bins-it-won-t-work.patch create mode 100644 recipes-musicians/carla/carla/0003-Fluidsynths-Ensure-fluidsynth-s-defaults-are-set-onc.patch create mode 100644 recipes-musicians/carla/carla/0004-Fixes-for-fluidsynth-2.0.0.patch create mode 100644 recipes-musicians/carla/carla_git.bb create mode 100644 recipes-musicians/chromaprint/chromaprint_git.bb create mode 100644 recipes-musicians/csound/csound_git.bb create mode 100644 recipes-musicians/csound/files/0001-Do-not-set-include-path-to-usr-local-include.patch create mode 100644 recipes-musicians/csound/files/0002-Do-not-use-try_run-for-portaudio.patch create mode 100644 recipes-musicians/csound/files/0003-strict-aliasing-errors.patch create mode 100644 recipes-musicians/csound/files/0004-Engine-csound_orc_semantics.c-Fix-build-with-gcc8.patch create mode 100644 recipes-musicians/csound/files/0005-InOut-pmidi.c-Fix-build-with-gcc8.patch create mode 100644 recipes-musicians/csound/files/0006-fixed-unsafe-use-of-strncpy.patch create mode 100644 recipes-musicians/csound/files/0007-util1-csd_util-cs.c-Fix-build-with-gcc8.patch create mode 100644 recipes-musicians/csound/files/0008-Fix-build-with-fluidsynth-version-2.0.0.patch create mode 100644 recipes-musicians/device-control/lpd8editor/files/lpd8-editor.desktop create mode 100644 recipes-musicians/device-control/lpd8editor/lpd8editor_0.0.10.bb create mode 100644 recipes-musicians/distrho/distrho-ports-extra.bb create mode 100644 recipes-musicians/distrho/distrho-ports.bb create mode 100644 recipes-musicians/distrho/distrho-ports/0001-disable-pitchedDelay-it-uses-double-precision-SSE2-b.patch create mode 100644 recipes-musicians/distrho/distrho-ports/0002-Refine-Plugin-do-not-include-xmmintrin.h.patch create mode 100644 recipes-musicians/distrho/dpf-plugins.bb create mode 100644 recipes-musicians/distrho/lv2-ttl-generator.bb create mode 100644 recipes-musicians/drmr/drmr/0001-CMake-Keep-build-system-flags.patch create mode 100644 recipes-musicians/drmr/drmr_git.bb create mode 100644 recipes-musicians/drobilla/files/0001-Do-not-inject-usr-local-include-to-include-paths.patch create mode 100644 recipes-musicians/drobilla/ganv_git.bb create mode 100644 recipes-musicians/drobilla/ingen_git.bb create mode 100644 recipes-musicians/drobilla/jalv_git.bb create mode 100644 recipes-musicians/drobilla/lilv_0.24.4.bb create mode 100644 recipes-musicians/drobilla/lv2-native.bb create mode 100644 recipes-musicians/drobilla/lv2.bb create mode 100644 recipes-musicians/drobilla/lv2.inc create mode 100644 recipes-musicians/drobilla/lv2/0001-Output-more-details-on-import-error-to-catch-missing.patch create mode 100644 recipes-musicians/drobilla/mda-lv2_1.2.2.bb create mode 100644 recipes-musicians/drobilla/patchage_git.bb create mode 100644 recipes-musicians/drobilla/raul_git.bb create mode 100644 recipes-musicians/drobilla/serd_0.30.0.bb create mode 100644 recipes-musicians/drobilla/sord_0.16.2.bb create mode 100644 recipes-musicians/drobilla/sratom_0.6.2.bb create mode 100644 recipes-musicians/drobilla/suil/0001-Do-not-try-to-build-macOS-cocoa.patch create mode 100644 recipes-musicians/drobilla/suil_0.10.2.bb create mode 100644 recipes-musicians/drumgizmo/drumgizmo-native.bb create mode 100644 recipes-musicians/drumgizmo/drumgizmo.bb create mode 100644 recipes-musicians/drumgizmo/drumgizmo.inc create mode 100644 recipes-musicians/drumgizmo/files/0001-automake-enable-subdir-objects.patch create mode 100644 recipes-musicians/drumgizmo/files/0002-Use-native-rcgen.patch create mode 100644 recipes-musicians/drumgizmo/files/drumgizmo.desktop create mode 100644 recipes-musicians/drumstick/drumstick_1.1.1.bb create mode 100644 recipes-musicians/drumstick/files/0001-Do-not-set-lib-suffix-oe-will-take-care.patch create mode 100644 recipes-musicians/dssi-vst/dssi-vst_git.bb create mode 100644 recipes-musicians/dssi/dssi_1.1.1.bb create mode 100644 recipes-musicians/gmidimonitor/files/gmidimonitor-alsa.desktop create mode 100644 recipes-musicians/gmidimonitor/files/gmidimonitor-jack.desktop create mode 100644 recipes-musicians/gmidimonitor/gmidimonitor_3.6.bb create mode 100644 recipes-musicians/guitarix/guitarix/0001-do-not-perform-link-test-durin-cross-build.patch create mode 100644 recipes-musicians/guitarix/guitarix/0002-Fix-build-with-boost-1.69.0.patch create mode 100644 recipes-musicians/guitarix/guitarix_0.37.3.bb create mode 100644 recipes-musicians/guitarix/gxplugins.lv2/0001-Adjust-Makefiles-for-cross-compiling.patch create mode 100644 recipes-musicians/guitarix/gxplugins.lv2_git.bb create mode 100644 recipes-musicians/helm/files/0001-do-not-create-ttl-files-it-won-t-work-fo-cross.patch create mode 100644 recipes-musicians/helm/files/0002-set-VECTORIZE_LOOP-for-gcc.patch create mode 100644 recipes-musicians/helm/files/0003-use-single-precision-floats-it-performs-much-better.patch create mode 100644 recipes-musicians/helm/helm_git.bb create mode 100644 recipes-musicians/hydrogen/files/0001-hydrogen.default.conf-do-not-show-developer-warnings.patch create mode 100644 recipes-musicians/hydrogen/files/0002-Fix-man-installation-path.patch create mode 100644 recipes-musicians/hydrogen/hydrogen_git.bb create mode 100644 recipes-musicians/infamousplugins/infamousplugins_0.2.04.bb create mode 100644 recipes-musicians/kokkinizita/clthreads/0001-Align-Makefile.patch create mode 100644 recipes-musicians/kokkinizita/clthreads_2.4.2.bb create mode 100644 recipes-musicians/kokkinizita/clxclient/0001-Align-Makefile.patch create mode 100644 recipes-musicians/kokkinizita/clxclient_3.9.2.bb create mode 100644 recipes-musicians/kokkinizita/zita-convolver/0001-Align-Makefile.patch create mode 100644 recipes-musicians/kokkinizita/zita-convolver_4.0.3.bb create mode 100644 recipes-musicians/kokkinizita/zita-resampler/0001-Align-Makefiles.patch create mode 100644 recipes-musicians/kokkinizita/zita-resampler_1.6.2.bb create mode 100644 recipes-musicians/ladspa/files/0001-do-not-pin-build-flags-use-defaults.patch create mode 100644 recipes-musicians/ladspa/files/0002-Fix-_init-and-_fini-multiple-definition.patch create mode 100644 recipes-musicians/ladspa/files/0002-Use-fallback-for-plugindir-in-case-env.-var-LADSPA_P.patch create mode 100644 recipes-musicians/ladspa/ladspa-sdk_1.13.bb create mode 100644 recipes-musicians/liblo/files/0001-Fix-build-with-GCC-8.patch create mode 100644 recipes-musicians/liblo/liblo_0.29.bb create mode 100644 recipes-musicians/libmp4v2/libmp4v2_git.bb create mode 100644 recipes-musicians/libsmf/libsmf_git.bb create mode 100644 recipes-musicians/libxmp/libxmp_4.4.1.bb create mode 100644 recipes-musicians/linuxsampler/libgig_4.1.0.bb create mode 100644 recipes-musicians/linuxsampler/linuxsampler/0001-configure.ac-Do-not-try-to-run-code-to-check-for-UNI.patch create mode 100644 recipes-musicians/linuxsampler/linuxsampler_2.1.0.bb create mode 100644 recipes-musicians/lmms/lmms-native.bb create mode 100644 recipes-musicians/lmms/lmms.bb create mode 100644 recipes-musicians/lmms/lmms.inc create mode 100644 recipes-musicians/lmms/lmms/0001-Find-native-bin2res.patch create mode 100644 recipes-musicians/lmms/lmms/0002-zynaddsubfx-link-agains-X11.patch create mode 100644 recipes-musicians/lmms/lmms/0003-CMake-rpmalloc-Do-not-overwrite-CMAKE_C_FLAGS.patch create mode 100644 recipes-musicians/lmms/lmms/0004-carlabase-Do-not-add-RPATH-to-carlabase.patch create mode 100644 recipes-musicians/lrdf/lrdf_0.5.0.bb create mode 100644 recipes-musicians/lsp-plugins/lsp-plugins-native.bb create mode 100644 recipes-musicians/lsp-plugins/lsp-plugins-native/0001-Adjust-native-build.patch create mode 100644 recipes-musicians/lsp-plugins/lsp-plugins.bb create mode 100644 recipes-musicians/lsp-plugins/lsp-plugins.inc create mode 100644 recipes-musicians/lsp-plugins/lsp-plugins/0001-Makefile-align-for-oe-cross-build.patch create mode 100644 recipes-musicians/muse/muse/0001-fluidsynth-Follow-API-change-introduced-in-fluidsynt.patch create mode 100644 recipes-musicians/muse/muse_git.bb create mode 100644 recipes-musicians/nekobee/nekobee.bb create mode 100644 recipes-musicians/openav/arty-fx/0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch create mode 100644 recipes-musicians/openav/arty-fx/0002-avtk-remove-sse-flags-they-work-on-intel-hardware-on.patch create mode 100644 recipes-musicians/openav/arty-fx_1.3.bb create mode 100644 recipes-musicians/openav/fabla/0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch create mode 100644 recipes-musicians/openav/fabla_git.bb create mode 100644 recipes-musicians/openav/luppp/0001-CMake-Remove-arch-detection-it-detects-build-host.patch create mode 100644 recipes-musicians/openav/luppp_git.bb create mode 100644 recipes-musicians/openav/openav-presets_git.bb create mode 100644 recipes-musicians/openav/sorcer/0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch create mode 100644 recipes-musicians/openav/sorcer_git.bb create mode 100644 recipes-musicians/pipewire/pipewire_0.2.4.bb create mode 100644 recipes-musicians/polyphone/files/0001-align-compiler-switches-constants-for-cross-compilin.patch create mode 100644 recipes-musicians/polyphone/files/polyphone.desktop create mode 100644 recipes-musicians/polyphone/files/polyphone.mime create mode 100644 recipes-musicians/polyphone/polyphone_2.0.1.bb create mode 100644 recipes-musicians/portmidi/files/0001-do-not-build-java-application-to-set-midi-defaults.patch create mode 100644 recipes-musicians/portmidi/files/0002-fix-compilation-du-to-unkown-functions.patch create mode 100644 recipes-musicians/portmidi/files/0003-fix-format-security..patch create mode 100644 recipes-musicians/portmidi/files/fedora-portmidi-cmake.patch create mode 100644 recipes-musicians/portmidi/portmidi_217.bb create mode 100644 recipes-musicians/projectm/files/0001-find-native-qt-build-tools-by-configure-options-auto.patch create mode 100644 recipes-musicians/projectm/files/0002-Makefile.am-Fix-installation-with-DESTDIR-set.patch create mode 100644 recipes-musicians/projectm/projectm_git.bb create mode 100644 recipes-musicians/qm-dsp/qm-dsp_1.7.1.bb create mode 100644 recipes-musicians/qmidiarp/files/0001-remove-code-to-find-qtwidget-headers-it-finds-host-s.patch create mode 100644 recipes-musicians/qmidiarp/files/0002-find-native-qt-build-tools-by-configure-options-auto.patch create mode 100644 recipes-musicians/qmidiarp/files/qmidiarp-alsa.desktop create mode 100644 recipes-musicians/qmidiarp/files/qmidiarp-jack.desktop create mode 100644 recipes-musicians/qmidiarp/qmidiarp_0.6.5.bb create mode 100644 recipes-musicians/qt-gstreamer/files/0001-Fix-compilation-with-GStreamer-1-5-1.patch create mode 100644 recipes-musicians/qt-gstreamer/files/0002-FindQt4or5.cmake-Optionally-create-qt5_use_modules-t.patch create mode 100644 recipes-musicians/qt-gstreamer/files/0003-Make-QML-installation-path-configurable.patch create mode 100644 recipes-musicians/qt-gstreamer/qt-gstreamer_1.2.0.bb create mode 100644 recipes-musicians/rncbc/drumkv1_0.9.5.bb create mode 100644 recipes-musicians/rncbc/files/0001-find-native-qt-build-tools-by-configure-options-auto.patch create mode 100644 recipes-musicians/rncbc/files/0001-no-Qt4-find-native-qt-build-tools-by-configure-options-auto.patch create mode 100644 recipes-musicians/rncbc/files/0002-Remove-extra-rpath.patch create mode 100644 recipes-musicians/rncbc/padthv1/0001-Build-against-fftw3f-that-supports-NEON-on-ARM.patch create mode 100644 recipes-musicians/rncbc/padthv1/padthv1.conf create mode 100644 recipes-musicians/rncbc/padthv1_0.9.5.bb create mode 100644 recipes-musicians/rncbc/qjackctl/QjackCtl.conf create mode 100644 recipes-musicians/rncbc/qjackctl_0.5.6.bb create mode 100644 recipes-musicians/rncbc/qmidictl/0001-find-native-qt-build-tools-by-configure-options-auto.patch create mode 100644 recipes-musicians/rncbc/qmidictl_0.5.3.bb create mode 100644 recipes-musicians/rncbc/qmidinet/0001-find-native-qt-build-tools-by-configure-options-auto.patch create mode 100644 recipes-musicians/rncbc/qmidinet_0.5.3.bb create mode 100644 recipes-musicians/rncbc/qsynth_0.5.5.bb create mode 100644 recipes-musicians/rncbc/qtractor/0001-do-nor-try-run-for-float-sse-detection.patch create mode 100644 recipes-musicians/rncbc/qtractor/0002-do-nor-try-run-for-suil-libs-detection.patch create mode 100644 recipes-musicians/rncbc/qtractor/0003-Add-ARM-NEON-acceleration-for-time-stretch-not-yet-t.patch create mode 100644 recipes-musicians/rncbc/qtractor/Qtractor.conf create mode 100644 recipes-musicians/rncbc/qtractor_git.bb create mode 100644 recipes-musicians/rncbc/samplv1_0.9.5.bb create mode 100644 recipes-musicians/rncbc/synthv1/synthv1.conf create mode 100644 recipes-musicians/rncbc/synthv1_0.9.5.bb create mode 100644 recipes-musicians/rosegarden/rosegarden_18.06.bb create mode 100644 recipes-musicians/rtmidi/files/0001-configure.ac-do-not-run-temp-binary-in-cross-envirno.patch create mode 100644 recipes-musicians/rtmidi/files/0002-configure.ac-do-not-reset-CXXFLAGS.patch create mode 100644 recipes-musicians/rtmidi/files/0003-configure.ac-do-not-add-absolute-prefixes-to-build-f.patch create mode 100644 recipes-musicians/rtmidi/rtmidi_3.0.0.bb create mode 100644 recipes-musicians/rubberband/files/0001-Do-not-try-to-install-librubberband-jni.so-no-java-p.patch create mode 100644 recipes-musicians/rubberband/files/0002-Fix-build-for-FFTW_SINGLE_ONLY.patch create mode 100644 recipes-musicians/rubberband/files/0003-Optional-replace-FFTW_DOUBLE_ONLY-by-FFTW_SINGLE_ONL.patch create mode 100644 recipes-musicians/rubberband/rubberband_1.8.2.bb create mode 100644 recipes-musicians/setbfree/files/0001-remove-UINQHACK-it-is-used-for-OSX-builds-only-and-c.patch create mode 100644 recipes-musicians/setbfree/files/0002-Do-not-check-for-fontfile.patch create mode 100644 recipes-musicians/setbfree/files/setbfree.desktop create mode 100644 recipes-musicians/setbfree/files/x42-whirl.desktop create mode 100644 recipes-musicians/setbfree/setbfree_git.bb create mode 100644 recipes-musicians/smbolton/fluidsynth-dssi/0001-Reduce-FSD_MAX_BURST_SIZE-512-128.patch create mode 100644 recipes-musicians/smbolton/fluidsynth-dssi/0002-Don-t-trash-unused-channels.patch create mode 100644 recipes-musicians/smbolton/fluidsynth-dssi/fluidsynth-dssi.conf create mode 100644 recipes-musicians/smbolton/fluidsynth-dssi_2.0.0.bb create mode 100644 recipes-musicians/smbolton/hexter/hexter.desktop create mode 100644 recipes-musicians/smbolton/hexter/hexter.png create mode 100644 recipes-musicians/smbolton/hexter_1.1.0.bb create mode 100644 recipes-musicians/smbolton/whysynth/whysynth.desktop create mode 100644 recipes-musicians/smbolton/whysynth_20170701.bb create mode 100644 recipes-musicians/smbolton/xsynth-dssi/0001-replace-missing-AM_PATH_GTK-by-PKG_CHECK_MODULES.patch create mode 100644 recipes-musicians/smbolton/xsynth-dssi_0.9.4.bb create mode 100644 recipes-musicians/soundfont-collection/sf-tools_git.bb create mode 100644 recipes-musicians/soundfont-collection/soundfont-collection_0.0.2.bb create mode 100644 recipes-musicians/soundtouch/soundtouch/0001-Fix-path-to-m4-macro-dir.patch create mode 100644 recipes-musicians/soundtouch/soundtouch_git.bb create mode 100644 recipes-musicians/soxr/soxr_0.1.3.bb create mode 100644 recipes-musicians/stk/files/0001-avoid-usr-usr-paths.patch create mode 100644 recipes-musicians/stk/files/0002-configure.ac-fix-shared-library-name.patch create mode 100644 recipes-musicians/stk/stk_4.5.1.bb create mode 100644 recipes-musicians/supercollider/supercollider/0001-server-supernova-utilities-time_tag.hpp-Adding-stati.patch create mode 100644 recipes-musicians/supercollider/supercollider_git.bb create mode 100644 recipes-musicians/timidity++/files/0001-do-not-run-check-for-va_copy-this-is-not-allowed-in-.patch create mode 100644 recipes-musicians/timidity++/files/0002-find-cross-calcnewt.patch create mode 100644 recipes-musicians/timidity++/files/0003-timidity-readmidi-zero-division-fix.patch create mode 100644 recipes-musicians/timidity++/files/0004-timidity-resample-frac-overflow-fix.patch create mode 100644 recipes-musicians/timidity++/files/timidity.desktop create mode 100644 recipes-musicians/timidity++/timidity++-native.bb create mode 100644 recipes-musicians/timidity++/timidity++.bb create mode 100644 recipes-musicians/timidity++/timidity++.inc create mode 100644 recipes-musicians/tomahawk/files/0001-use-pkg-config-to-find-taglib.patch create mode 100644 recipes-musicians/tomahawk/tomahawk_git.bb create mode 100644 recipes-musicians/triceratops/triceratops-lv2/0001-Replace-lv2core-by-lv2.patch create mode 100644 recipes-musicians/triceratops/triceratops-lv2_0.3.1.bb create mode 100644 recipes-musicians/vamp-plugin-sdk/files/0001-do-not-perform-test-it-tries-to-run-cross-binaries.patch create mode 100644 recipes-musicians/vamp-plugin-sdk/vamp-plugin-sdk_2.7.1.bb create mode 100644 recipes-musicians/wolf-shaper/wolf-shaper_git.bb create mode 100644 recipes-musicians/x42/avldrums.lv2_git.bb create mode 100644 recipes-musicians/x42/dpl.lv2_git.bb create mode 100644 recipes-musicians/x42/fil4.lv2_git.bb create mode 100644 recipes-musicians/x42/libltc_1.3.0.bb create mode 100644 recipes-musicians/x42/meters.lv2_git.bb create mode 100644 recipes-musicians/x42/midifilter.lv2_git.bb create mode 100644 recipes-musicians/x42/sisco.lv2_git.bb create mode 100644 recipes-musicians/x42/tuna.lv2_git.bb create mode 100644 recipes-musicians/ykchorus/ykchorus_git.bb create mode 100644 recipes-musicians/yoshimi/yoshimi_1.5.10.2.bb create mode 100644 recipes-musicians/zam-plugins/zam-plugins/0001-remove-useles-braces-in-macros.patch create mode 100644 recipes-musicians/zam-plugins/zam-plugins_git.bb create mode 100644 recipes-musicians/zyn/mruby-zest-native.bb create mode 100644 recipes-musicians/zyn/mruby-zest.bb create mode 100644 recipes-musicians/zyn/mruby-zest.inc create mode 100644 recipes-musicians/zyn/mruby-zest/0001-mruby-Align-build-to-our-needs.patch create mode 100644 recipes-musicians/zyn/mruby-zest/0002-mruby-zest-Align-build-to-our-needs.patch create mode 100644 recipes-musicians/zyn/mruby-zest/0003-src-osc-bridge-Align-build-to-our-needs.patch create mode 100644 recipes-musicians/zyn/mruby-zest/0004-Native-Do-not-build-X11-dependent-zest-libzest.so.patch create mode 100644 recipes-musicians/zyn/mruby-zest/0005-mruby-Use-native-mrbc.patch create mode 100644 recipes-musicians/zyn/mruby-zest/0006-mruby-regexp-pcre-link-against-libpcre.patch create mode 100644 recipes-musicians/zyn/mruby-zest/0007-Load-schema-from-usr-share-zyn-fusion-schema.patch create mode 100644 recipes-musicians/zyn/mruby-zest/0008-Do-not-require-dummy-MainWindow.qml.patch create mode 100644 recipes-musicians/zyn/zyn-fusion.bb create mode 100644 recipes-musicians/zyn/zyn.inc create mode 100644 recipes-musicians/zyn/zyn/0001-No-target-specific-asm.patch create mode 100644 recipes-musicians/zyn/zyn/0002-Controller-Spliter-align-Makefiles-for-cross-compili.patch create mode 100644 recipes-musicians/zyn/zyn/0003-Nio.cpp-Do-not-use-ps-aux-to-find-jack-busybox-s-ps-.patch create mode 100644 recipes-musicians/zyn/zyn/0004-Keep-our-build-flags.patch create mode 100644 recipes-musicians/zyn/zynaddsubfx.bb create mode 100644 recipes-support/packagegroups/musicians-world.bb create mode 100644 recipes-xfce/xfce4-mixer/files/0001-Fix-build-after-update-of-xfconf.patch create mode 100644 recipes-xfce/xfce4-mixer/xfce4-mixer_4.11.0.bb diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..fb950dc --- /dev/null +++ b/LICENSE @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README b/README new file mode 100644 index 0000000..b2d15af --- /dev/null +++ b/README @@ -0,0 +1,17 @@ +OE layer containing digiatal audio workstation and plugin recipes + +This layer depends on: + +URI: git://git.openembedded.org/openembedded-core +branch: master +revision: HEAD + +URI: git://github.com/openembedded/meta-oe.git +branch: master +revision: HEAD + +URI: git://github.com/meta-qt5/meta-qt5.git +branch: master +revision: HEAD + +Layer maintainer: Andreas Müller diff --git a/classes/lv2-postinst-helper.bbclass b/classes/lv2-postinst-helper.bbclass new file mode 100644 index 0000000..d11be55 --- /dev/null +++ b/classes/lv2-postinst-helper.bbclass @@ -0,0 +1,53 @@ +# Helper class to handle ontarget-postinst creation of lv2 turtle files + +# File created during compile usually. To create this file makefiles have to be +# aligned - see do_configure_prepend at zynaddsubfx or distrho-ports. The file +# is expected with the following format +# lv2-ttl-generator /plugin.so +LV2-TURTLE-BUILD-DATA = "${WORKDIR}/lv2-ttl-generator-data" + +# E.g zynaddsubfx needs to create dummy lv2 turtle files to keep install sane. +# To delete them automatically (see below) the contain a dummy string: +LV2-DUMMY-TURTLE-STR = "lv2-dummy-turtle-string" + +# To make ontarget postinst/prerm happen, the names of all plugins with their +# paths as installed on target a stored in a file called lv2-postinst-manifest +LV2-POSTINST-MANIFEST = "${datadir}/${BPN}/lv2-postinst-manifest" + +do_install_append() { + # remove dummy lv2-turtles again + cd ${D}/${libdir}/lv2 + for tfile in `grep -rl ${LV2-DUMMY-TURTLE-STR}`; do + rm $tfile + done + + # create postinst manifest + install -d ${D}`dirname ${LV2-POSTINST-MANIFEST}` + for sofile in `cat ${LV2-TURTLE-BUILD-DATA} | awk '{ print $2 }'`; do + sofile=`basename $sofile` + installed=`find ${D}${libdir}/lv2 -name $sofile | sed 's|${D}||g'` + echo $installed >> ${D}${LV2-POSTINST-MANIFEST} + done +} + + +pkg_postinst_ontarget_${PN}-lv2() { + oldpath=`pwd` + for sofile in `cat ${LV2-POSTINST-MANIFEST}`; do + cd `dirname "$sofile"` + lv2-ttl-generator "$sofile" + done + cd $oldpath +} + +pkg_prerm_${PN}-lv2() { + for sofile in `cat ${LV2-POSTINST-MANIFEST}`; do + path=`dirname "$sofile"` + for turtle in `find $path -name '*.ttl'`; do + rm $turtle + done + done +} + +FILES_${PN}-lv2 += "${LV2-POSTINST-MANIFEST}" +RDEPENDS_${PN}-lv2 += "lv2-ttl-generator" diff --git a/classes/pack_audio_plugins.bbclass b/classes/pack_audio_plugins.bbclass new file mode 100644 index 0000000..f7205eb --- /dev/null +++ b/classes/pack_audio_plugins.bbclass @@ -0,0 +1,8 @@ +# Auto package audio plugins + +PACKAGES =+ "${PN}-dssi ${PN}-ladspa ${PN}-lv2 ${PN}-vst" + +FILES_${PN}-dssi += "${libdir}/dssi" +FILES_${PN}-ladspa += "${libdir}/ladspa" +FILES_${PN}-lv2 += "${libdir}/lv2" +FILES_${PN}-vst += "${libdir}/vst" diff --git a/classes/qemu-ext.bbclass b/classes/qemu-ext.bbclass new file mode 100644 index 0000000..5f4a4bb --- /dev/null +++ b/classes/qemu-ext.bbclass @@ -0,0 +1,22 @@ +inherit qemu + +DEPENDS += "qemu-native" + +# This is an extended/modified qemu.bbclass tailored four our needs: +# +# * add qemu-native to DEPENDS: we can do that because there is no +# introspection/interception delayed qemu usage here +# * The executable binary is set by absolute path: oe-core's qemu.bbclass +# expects it in sysroot. Here we usually run binaries in builddir which are +# not yet installed. +# * A recipe can set an extra library path in 'QEMU_EXTRA_LIBDIR'. This path is +# an absolute path. + +def qemu_run_binary_local(data, rootfs_path, binary): + libdir = rootfs_path + data.getVar("libdir", False) + base_libdir = rootfs_path + data.getVar("base_libdir", False) + extra_libdir = data.getVar("QEMU_EXTRA_LIBDIR", False) + if extra_libdir: + return qemu_wrapper_cmdline(data, rootfs_path, [libdir, base_libdir, extra_libdir]) + binary + else: + return qemu_wrapper_cmdline(data, rootfs_path, [libdir, base_libdir]) + binary diff --git a/classes/wafold.bbclass b/classes/wafold.bbclass new file mode 100644 index 0000000..bd04b7a --- /dev/null +++ b/classes/wafold.bbclass @@ -0,0 +1,37 @@ +# avoids build breaks when using no-static-libs.inc +DISABLE_STATIC = "" + +EXTRA_OECONF_append = " ${PACKAGECONFIG_CONFARGS}" + +python waf_preconfigure() { + import subprocess + from distutils.version import StrictVersion + subsrcdir = d.getVar('S') + wafbin = os.path.join(subsrcdir, 'waf') + try: + result = subprocess.check_output([wafbin, '--version'], cwd=subsrcdir, stderr=subprocess.STDOUT) + version = result.decode('utf-8').split()[1] + if StrictVersion(version) >= StrictVersion("1.8.7"): + d.setVar("WAF_EXTRA_CONF", "--bindir=${bindir} --libdir=${libdir}") + except subprocess.CalledProcessError as e: + bb.warn("Unable to execute waf --version, exit code %d. Assuming waf version without bindir/libdir support." % e.returncode) + except FileNotFoundError: + bb.fatal("waf does not exist in %s" % subsrcdir) +} + +do_configure[prefuncs] += "waf_preconfigure" + +wafold_do_configure() { + ${S}/waf configure --prefix=${prefix} ${WAF_EXTRA_CONF} ${EXTRA_OECONF} +} + +do_compile[progress] = "outof:^\[\s*(\d+)/\s*(\d+)\]\s+" +wafold_do_compile() { + ${S}/waf build ${@oe.utils.parallel_make_argument(d, '-j%d', limit=64)} +} + +wafold_do_install() { + ${S}/waf install --destdir=${D} +} + +EXPORT_FUNCTIONS do_configure do_compile do_install diff --git a/conf/layer.conf b/conf/layer.conf new file mode 100644 index 0000000..2bd56aa --- /dev/null +++ b/conf/layer.conf @@ -0,0 +1,14 @@ +# We have a conf and classes directory, append to BBPATH +BBPATH .= ":${LAYERDIR}" + +# recipes +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*/*.bb ${LAYERDIR}/recipes-*/*/*/*/*.bb" +# appends +BBFILES += "${LAYERDIR}/extends-*/*.bb ${LAYERDIR}/extends-*/*.bbappend" + +BBFILE_COLLECTIONS += "meta-musicians" +BBFILE_PATTERN_meta-musicians := "^${LAYERDIR}/" +BBFILE_PRIORITY_meta-musicians = "20" + +LAYERDEPENDS_meta-musicians = "core qt5-layer openembedded-layer networking-layer multimedia-layer xfce-layer" +LAYERSERIES_COMPAT_meta-musicians = "thud" diff --git a/recipes-gstreamer/gstreamer-0.10/gst-meta-base_0.10.bb b/recipes-gstreamer/gstreamer-0.10/gst-meta-base_0.10.bb new file mode 100644 index 0000000..0e9bd43 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gst-meta-base_0.10.bb @@ -0,0 +1,73 @@ +SUMMARY = "GStreamer package groups" +LICENSE = "MIT" + +DEPENDS = "gstreamer gst-plugins-base gst-plugins-good" + +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +PR = "r13" + +PACKAGES = "\ + gst-meta-base \ + gst-meta-x11-base \ + gst-meta-audio \ + gst-meta-debug \ + gst-meta-video \ +" + +ALLOW_EMPTY_gst-meta-base = "1" +ALLOW_EMPTY_gst-meta-x11-base = "1" +ALLOW_EMPTY_gst-meta-audio = "1" +ALLOW_EMPTY_gst-meta-debug = "1" +ALLOW_EMPTY_gst-meta-video = "1" + +RDEPENDS_gst-meta-base = "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gst-meta-x11-base', '', d)} \ + gstreamer \ + gst-plugins-base-playbin \ + gst-plugins-base-decodebin \ + gst-plugins-base-decodebin2 \ + gst-plugins-base-gio \ + gst-plugins-base-alsa \ + gst-plugins-base-volume \ + gst-plugins-base-audioconvert \ + gst-plugins-base-audioresample \ + gst-plugins-base-typefindfunctions \ + gst-plugins-base-videoscale \ + gst-plugins-base-ffmpegcolorspace \ + gst-plugins-good-autodetect \ + gst-plugins-good-souphttpsrc" + +RRECOMMENDS_gst-meta-x11-base = "\ + gst-plugins-base-ximagesink \ + gst-plugins-base-xvimagesink \ +" + +RDEPENDS_gst-meta-audio = "\ + gst-meta-base \ + gst-plugins-base-vorbis \ + gst-plugins-base-ogg \ + gst-plugins-good-wavparse \ + gst-plugins-good-flac \ +" + + +RDEPENDS_gst-meta-debug = "\ + gst-meta-base \ + gst-plugins-good-debug \ + gst-plugins-base-audiotestsrc \ + gst-plugins-base-videotestsrc \ +" + + +RDEPENDS_gst-meta-video = " \ + gst-meta-base \ + gst-plugins-good-avi \ + gst-plugins-good-matroska \ + gst-plugins-base-theora \ +" + +RRECOMMENDS_gst-meta-video = " \ + gst-meta-audio \ +" diff --git a/recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch b/recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch new file mode 100644 index 0000000..29fbec5 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch @@ -0,0 +1,32 @@ +From 5478eafecf618cd8e742cc1b96d688a2c7ce5a79 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 2 Oct 2016 21:49:33 +0200 +Subject: [PATCH] gst-glib2.m4: don't do crazy things to GLIB_CFLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +we are definitely not one of those poor souls mentioned + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + common/m4/gst-glib2.m4 | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 +index b01f02f..4569ae5 100644 +--- a/common/m4/gst-glib2.m4 ++++ b/common/m4/gst-glib2.m4 +@@ -69,7 +69,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK], + fi + + dnl for the poor souls who for example have glib in /usr/local +- AS_SCRUB_INCLUDE(GLIB_CFLAGS) + + AC_SUBST(GLIB_EXTRA_CFLAGS) + ]) +-- +2.5.5 + diff --git a/recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch b/recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch new file mode 100644 index 0000000..5214256 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch @@ -0,0 +1,37 @@ +audioresample: Fix build on x86 if emmintrin.h is available but can't be used + +On x86, EMMINTRIN is defined but not usable without SSE so check for +__SSE__ and __SSE2__ as well. + +https://bugzilla.gnome.org/show_bug.cgi?id=670690 + +Upstream-Status: Backport + +Signed-off-by: Jackie Huang +--- + gst/audioresample/resample.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c +index 98d006c..481fa01 100644 +--- a/gst/audioresample/resample.c ++++ b/gst/audioresample/resample.c +@@ -77,13 +77,13 @@ + #define EXPORT G_GNUC_INTERNAL + + #ifdef _USE_SSE +-#ifndef HAVE_XMMINTRIN_H ++#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H) + #undef _USE_SSE + #endif + #endif + + #ifdef _USE_SSE2 +-#ifndef HAVE_EMMINTRIN_H ++#if !defined(__SSE2__) || !defined(HAVE_EMMINTRIN_H) + #undef _USE_SSE2 + #endif + #endif +-- +1.7.1 + diff --git a/recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch b/recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch new file mode 100644 index 0000000..b8602c8 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch @@ -0,0 +1,27 @@ +Upstream-Status: Submitted [similar patch by other author, bugzilla] +Bugtracker-URL: https://bugzilla.gnome.org/show_bug.cgi?id=663600 + +Prepend PKG_CONFIG_SYSROOT to includedir, so configure doesn't +search for gstconfig.h in /usr/include. + +Signed-off-by: Andreas Oberritter +--- + configure.ac | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 1901bcf..460fb0a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -435,7 +435,7 @@ AG_GST_CHECK_PLUGIN(volume) + dnl check for gstreamer core features (subsystems) + dnl FIXME: this assumes srcdir == builddir for uninstalled setups + GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h" +-AG_GST_PARSE_SUBSYSTEM_DISABLES($GST_CONFIGPATH) ++AG_GST_PARSE_SUBSYSTEM_DISABLES($PKG_CONFIG_SYSROOT_DIR$GST_CONFIGPATH) + AM_CONDITIONAL(USE_XML, test $GST_DISABLE_XML != "1") + + dnl disable plug-ins that require libxml2's HTML support if it is not available +-- +1.7.5.4 + diff --git a/recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch b/recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch new file mode 100644 index 0000000..99dbc9d --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch @@ -0,0 +1,20 @@ +Remove -DTREMOR option since Tremor has dropped its internal +libogg2, and gst-plugins-base has dependency on that. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Dongxiao Xu +Signed-off-by: Shane Wang + +diff -r 70065fb4e085 ext/vorbis/Makefile.am +--- a/ext/vorbis/Makefile.am Tue Mar 13 16:36:56 2012 +0800 ++++ b/ext/vorbis/Makefile.am Tue Mar 13 16:38:53 2012 +0800 +@@ -30,7 +30,7 @@ + gstvorbisdec.c gstvorbisdeclib.c gstvorbiscommon.c + libgstivorbisdec_la_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \ +- -DTREMOR $(IVORBIS_CFLAGS) ++ $(IVORBIS_CFLAGS) + libgstivorbisdec_la_LIBADD = \ + $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \ diff --git a/recipes-gstreamer/gstreamer-0.10/gst-plugins-base_0.10.36.bb b/recipes-gstreamer/gstreamer-0.10/gst-plugins-base_0.10.36.bb new file mode 100644 index 0000000..f235464 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gst-plugins-base_0.10.36.bb @@ -0,0 +1,43 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \ + file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/ffmpegcolorspace/utils.c;beginline=1;endline=20;md5=9c83a200b8e597b26ca29df20fc6ecd0" + +DEPENDS += "alsa-lib libogg libvorbis libtheora util-linux tremor glib-2.0-native" + +SRC_URI += "file://gst-plugins-base-tremor.patch \ + file://configure.ac-fix-subparse-plugin.patch \ + file://audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch \ + file://0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch \ +" + +SRC_URI[md5sum] = "776c73883e567f67b9c4a2847d8d041a" +SRC_URI[sha256sum] = "2cd3b0fa8e9b595db8f514ef7c2bdbcd639a0d63d154c00f8c9b609321f49976" + +PR = "r8" + +inherit gettext + +EXTRA_OECONF += "--disable-freetypetest" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" + +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango" +PACKAGECONFIG[x11] = "--enable-x --enable-xvideo,--disable-x --disable-xvideo,virtual/libx11 libxv libsm libice" +PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm -f ${S}/m4/lib-link.m4 +} + +FILES_${PN} += "${datadir}/${BPN}" + +CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no" + +# /usr/bin/gst-visualise-0.10 is a perl script. +RDEPENDS_${PN}-apps += "perl" diff --git a/recipes-gstreamer/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch b/recipes-gstreamer/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch new file mode 100644 index 0000000..6456d3c --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch @@ -0,0 +1,33 @@ +From 12d18fe4e98e7c232d59b56d529a0521f293fe6d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 5 Sep 2012 18:54:42 +0200 +Subject: [PATCH] v4l2: fix build with recent kernels, the v4l2_buffer input + field was removed +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Backport + +[1] http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=9f2aa8d47f835ea155aaf635f618c0fc1ca87012 + +Signed-off-by: Andreas Müller +--- + sys/v4l2/gstv4l2bufferpool.c | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c +index b81c6a4..51cc0ce 100644 +--- a/sys/v4l2/gstv4l2bufferpool.c ++++ b/sys/v4l2/gstv4l2bufferpool.c +@@ -181,7 +181,6 @@ gst_v4l2_buffer_new (GstV4l2BufferPool * pool, guint index, GstCaps * caps) + GST_LOG_OBJECT (pool->v4l2elem, " MMAP offset: %u", + ret->vbuffer.m.offset); + GST_LOG_OBJECT (pool->v4l2elem, " length: %u", ret->vbuffer.length); +- GST_LOG_OBJECT (pool->v4l2elem, " input: %u", ret->vbuffer.input); + + data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length, + PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd, +-- +1.7.6.5 + diff --git a/recipes-gstreamer/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch b/recipes-gstreamer/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch new file mode 100644 index 0000000..bd0de58 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch @@ -0,0 +1,45 @@ +From ccb01de8096a32d86d47b0d92ec3416c57ee4d25 Mon Sep 17 00:00:00 2001 +From: Bruce Ashfield +Date: Thu, 22 Aug 2013 12:15:54 -0400 +Subject: [PATCH] v4l2_calls: define V4L2_CID_HCENTER and V4L2_CID_VCENTER + +kernel commit 24b9f5017 [[media] V4L: Remove deprecated image centering controls] +removed the definitions of V4L2_CID_HCENTER and V4L2_CID_VCENTER after three +years of depreciation. + +The ioctl values are still free, and the case statement which processess them +in v4l2 userspace falls through to the proper replacement. So in the short +term, we can explicitly define them using the old absolute values, and everything +will work. + +Signed-off-by: Bruce Ashfield +--- + sys/v4l2/v4l2_calls.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c +index 309bfb6..3c64544 100644 +--- a/sys/v4l2/v4l2_calls.c ++++ b/sys/v4l2/v4l2_calls.c +@@ -54,11 +54,16 @@ + #include "gst/gst-i18n-plugin.h" + + /* Those are ioctl calls */ ++ ++/* V4L2_CID_HCENTER has been removed from the mainline kernel, but ++ the ioctl space is still present. Since these values fall through ++ to their replacement, it is safe (in the short term) to re-use the ++ old values explictily */ + #ifndef V4L2_CID_HCENTER +-#define V4L2_CID_HCENTER V4L2_CID_HCENTER_DEPRECATED ++#define V4L2_CID_HCENTER V4L2_CID_BASE+22 + #endif + #ifndef V4L2_CID_VCENTER +-#define V4L2_CID_VCENTER V4L2_CID_VCENTER_DEPRECATED ++#define V4L2_CID_VCENTER V4L2_CID_BASE+23 + #endif + + GST_DEBUG_CATEGORY_EXTERN (v4l2_debug); +-- +1.7.10.4 + diff --git a/recipes-gstreamer/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch b/recipes-gstreamer/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch new file mode 100644 index 0000000..48b8e98 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch @@ -0,0 +1,47 @@ +From ce94b2c2b91b6db190c121860e12a6afafce7ae1 Mon Sep 17 00:00:00 2001 +From: Roland Krikava +Date: Fri, 2 Nov 2012 12:38:44 -0400 +Subject: [PATCH 407/440] mulawdec: fix integer overrun + +There might be more than 65535 samples in a chunk of data. + +https://bugzilla.gnome.org/show_bug.cgi?id=687469 + +Commit - 3be45f70220310ec1c60d819f90b5f2ae03b5d83 in 0.10 branch + +Upstream Status: Backported + +Signed-off-by: Roland Krikava +--- + gst/law/mulaw-conversion.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/gst/law/mulaw-conversion.c b/gst/law/mulaw-conversion.c +index 8afae80..190a9f5 100644 +--- a/gst/law/mulaw-conversion.c ++++ b/gst/law/mulaw-conversion.c +@@ -51,9 +51,10 @@ mulaw_encode (gint16 * in, guint8 * out, gint numsamples) + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 + }; +- gint16 sign, exponent, mantissa, i; ++ gint16 sign, exponent, mantissa; + gint16 sample; + guint8 ulawbyte; ++ gint i; + + for (i = 0; i < numsamples; i++) { + sample = in[i]; +@@ -102,7 +103,8 @@ mulaw_decode (guint8 * in, gint16 * out, gint numsamples) + static gint16 exp_lut[8] = { 0, 132, 396, 924, 1980, 4092, 8316, 16764 }; + gint16 sign, exponent, mantissa; + guint8 ulawbyte; +- gint16 linear, i; ++ gint16 linear; ++ gint i; + + for (i = 0; i < numsamples; i++) { + ulawbyte = in[i]; +-- +1.7.9.5 + diff --git a/recipes-gstreamer/gstreamer-0.10/gst-plugins-good_0.10.31.bb b/recipes-gstreamer/gstreamer-0.10/gst-plugins-good_0.10.31.bb new file mode 100644 index 0000000..f993cfc --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gst-plugins-good_0.10.31.bb @@ -0,0 +1,47 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \ + file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" + +PR = "r8" + +PACKAGECONFIG ?= "jpeg v4l \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \ +" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" +PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" +PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack" +PACKAGECONFIG[gdkpixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf" +PACKAGECONFIG[v4l] = "--enable-gst_v4l2 --with-gudev,--disable-gst_v4l2 --without-gudev,libgudev" +# sub-feature of v4l, but control separately since libv4l is not part of oe-core +PACKAGECONFIG[libv4l] = "--with-libv4l2,--without-libv4l2,libv4l" +PACKAGECONFIG[bzip2] = "--enable-bz2,--disable-bz2,bzip2" +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[x11] = "--enable-x,--disable-x,virtual/libx11 libxfixes libxdamage" +PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libiec61883 libavc1394" + +DEPENDS += "gst-plugins-base gconf cairo libpng zlib libid3tag flac \ + speex libsoup-2.4 libcap" + +inherit gettext gconf + +SRC_URI += "file://0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch \ + file://0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch \ + file://0407-mulawdec-fix-integer-overrun.patch \ +" +EXTRA_OECONF += "--disable-aalib --disable-esd --disable-shout2 --disable-libcaca --disable-hal \ + --disable-examples --disable-taglib" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm ${S}/m4/lib-link.m4 || true +} + +SRC_URI[md5sum] = "24f98a294a2b521e1b29412bdadae2e6" +SRC_URI[sha256sum] = "7e27840e40a7932ef2dc032d7201f9f41afcaf0b437daf5d1d44dc96d9e35ac6" + +FILES_${PN}-gconfelements += "${sysconfdir}/gconf/schemas/gstreamer-0.10.schemas" +FILES_${PN}-equalizer += "${datadir}/gstreamer-0.10/presets/*.prs" diff --git a/recipes-gstreamer/gstreamer-0.10/gst-plugins.inc b/recipes-gstreamer/gstreamer-0.10/gst-plugins.inc new file mode 100644 index 0000000..6e163a8 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gst-plugins.inc @@ -0,0 +1,29 @@ +SUMMARY = "Plugins for the GStreamer multimedia framework" +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +DEPENDS = "gstreamer" + +# gobject-introspection to get --disable-introspection into UNKNOWN_CONFIGURE_WHITELIST +inherit autotools pkgconfig gobject-introspection + +SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2" + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF = "--disable-valgrind ${GSTREAMER_DEBUG} --disable-examples --disable-introspection" + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +LIBV = "0.10" +require recipes-multimedia/gstreamer/gst-plugins-package.inc + +PACKAGES_DYNAMIC += "^${PN}-.*" + +# apply gstreamer hack after Makefile.in.in in source is replaced by our version from +# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed +# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html +oe_runconf_prepend() { + if [ -e ${S}/po/Makefile.in.in ]; then + sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in + fi +} diff --git a/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch new file mode 100644 index 0000000..d077496 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch @@ -0,0 +1,32 @@ +From ed7f4802222234eef192aa3f74bc92268f338f97 Mon Sep 17 00:00:00 2001 +From: Sebastian Droege +Date: Tue, 6 Mar 2012 12:28:02 +0100 +Subject: [PATCH] baseparse: Fix 'self-comparison always evaluates to true' + +This was really a bug. + +Commit is ed7f4802222234eef192aa3f74bc92268f338f97 in 0.10 branch + +Upstream Status: Backported + +Signed-off-by: Sebastian Droege +--- + libs/gst/base/gstbaseparse.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c +index 851ec1d..108ee89 100644 +--- a/libs/gst/base/gstbaseparse.c ++++ b/libs/gst/base/gstbaseparse.c +@@ -3899,7 +3899,7 @@ gst_base_parse_handle_seek (GstBaseParse * parse, GstEvent * event) + seek event (in bytes) to upstream. Segment / flush handling happens + in corresponding src event handlers */ + GST_DEBUG_OBJECT (parse, "seek in PUSH mode"); +- if (seekstop >= 0 && seekpos <= seekpos) ++ if (seekstop >= 0 && seekstop <= seekpos) + seekstop = seekpos; + new_event = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags, + GST_SEEK_TYPE_SET, seekpos, stop_type, seekstop); +-- +1.7.9.5 + diff --git a/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch new file mode 100644 index 0000000..dc2d606 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch @@ -0,0 +1,35 @@ +From 60516f4798894f958fc53b470e1283318d0f8706 Mon Sep 17 00:00:00 2001 +From: Kerrick Staley +Date: Tue, 20 Aug 2013 23:59:29 -0700 +Subject: [PATCH 1/2] parse: make grammar.y work with Bison 3 + +YYLEX_PARAM is no longer supported in Bison 3. + +https://bugzilla.gnome.org/show_bug.cgi?id=706462 +--- + gst/parse/grammar.y | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y +index 24fc87b..7f9dd16 100644 +--- a/gst/parse/grammar.y ++++ b/gst/parse/grammar.y +@@ -26,7 +26,6 @@ + */ + + #define YYERROR_VERBOSE 1 +-#define YYLEX_PARAM scanner + + #define YYENABLE_NLS 0 + +@@ -648,6 +647,7 @@ static int yyerror (void *scanner, graph_t *graph, const char *s); + %right '.' + %left '!' '=' + ++%lex-param { void *scanner } + %parse-param { void *scanner } + %parse-param { graph_t *graph } + %pure-parser +-- +2.7.2 + diff --git a/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch new file mode 100644 index 0000000..8db3966 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch @@ -0,0 +1,32 @@ +From 4b145ceb22bbce7ba6e209c6ab61f2d5867e69f9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 1 Nov 2016 19:02:30 +0100 +Subject: [PATCH] gst-glib2.m4: don't do crazy things to GLIB_CFLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +we are definitely not one of those poor souls mentioned + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + common/m4/gst-glib2.m4 | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 +index b01f02f..4569ae5 100644 +--- a/common/m4/gst-glib2.m4 ++++ b/common/m4/gst-glib2.m4 +@@ -69,7 +69,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK], + fi + + dnl for the poor souls who for example have glib in /usr/local +- AS_SCRUB_INCLUDE(GLIB_CFLAGS) + + AC_SUBST(GLIB_EXTRA_CFLAGS) + ]) +-- +2.5.5 + diff --git a/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch new file mode 100644 index 0000000..5d8bb13 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch @@ -0,0 +1,19 @@ +# gstreamer: Fix a problem with configure if check has already been built +# Richard Purdie + +Upstream-Status: Inappropriate [configuration] + +diff -urN gstreamer-0.10.29-orig/configure.ac gstreamer-0.10.29/configure.ac +--- gstreamer-0.10.29-orig/configure.ac 2010-06-26 12:49:27.774930773 +0800 ++++ gstreamer-0.10.29/configure.ac 2010-06-26 12:51:12.899200233 +0800 +@@ -543,8 +543,10 @@ + *) BUILD_CHECK=yes ;; + esac + ]) ++ + dnl bit of a misnomer, but keep the conditional named like this so we don't + dnl have to change too much elsewhere ++HAVE_CHECK=no + AM_CONDITIONAL(HAVE_CHECK, test "x$BUILD_CHECK" = "xyes") + + dnl configure the desired buffer alignment diff --git a/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch new file mode 100644 index 0000000..30be85f --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch @@ -0,0 +1,16 @@ +# Fix crash with gst-inspect +# Chris Lord + +Upstream-Status: Pending + +--- gstreamer-0.10.9/tools/gst-inspect.c.old 2006-09-12 11:56:53.000000000 +0100 ++++ gstreamer-0.10.9/tools/gst-inspect.c 2006-09-12 11:57:27.000000000 +0100 +@@ -1123,7 +1123,7 @@ + g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE); + g_option_context_add_group (ctx, gst_init_get_option_group ()); + if (!g_option_context_parse (ctx, &argc, &argv, &err)) { +- g_print ("Error initializing: %s\n", err->message); ++ g_print ("Error initializing: %s\n", err ? err->message : "(null)"); + exit (1); + } + g_option_context_free (ctx); diff --git a/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c new file mode 100644 index 0000000..c1f3e71 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c @@ -0,0 +1,487 @@ +/* GStreamer + * Copyright (C) 1999,2000 Erik Walthinsen + * 2000 Wim Taymans + * 2005 David A. Schleef + * + * gstregistryxml.c: GstRegistry object, support routines + * + * This library is free software; you can redistribute it and/or + * modify it ulnder the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#include + +/* +** Simple handy function to write a memory location to the registry cache file +*/ +inline static gboolean +gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size) +{ + if (write(registry->cache_file, mem, size) != size) + { + GST_ERROR("Failed to write binary registry element: ptr=%p size=%u error=%s\n", + mem, size, strerror(errno)); + return FALSE; + } + return TRUE; +} + +/* +** Save features GstBinary style +*/ +static gboolean +gst_registry_binary_fill_feature(GList **list, GstPluginFeature *orig, GstBinaryPluginFeature *dest, const char *name) +{ + GstBinaryChunck *chk; + + if ((chk = calloc(1, sizeof (GstBinaryChunck))) == NULL) + return FALSE; + + chk->data = dest; + chk->size = sizeof (GstBinaryPluginFeature); + + *list = g_list_append(*list, chk); + + dest->rank = orig->rank; + if (!strncpy(dest->typename, name, GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN) || + !strncpy(dest->name, orig->name, GST_BINARY_REGISTRY_TYPENAME_NAME_LEN)) + { + GST_ERROR("Failed to write binary registry feature"); + goto fail; + } + + if (GST_IS_ELEMENT_FACTORY(orig)) + { + GstElementFactory *factory = GST_ELEMENT_FACTORY(orig); + + if (!strncpy(dest->longname, factory->details.longname, GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN) || + !strncpy(dest->class, factory->details.klass, GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN) || + !strncpy(dest->description, factory->details.description, GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN) || + !strncpy(dest->author, factory->details.author, GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN)) + { + GST_ERROR("Failed to write binary registry feature"); + goto fail; + } + } + + dest->npadtemplates = dest->ninterfaces = dest->nuritypes = 0; + return TRUE; + + fail: + free(chk); + return FALSE; +} + + +/* +** Initialize the GstBinaryRegistryMagic, setting both our magic number and gstreamer major/minor version +*/ +inline static gboolean +gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m) +{ + if (!strncpy(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) || + !strncpy(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN)) + { + GST_ERROR("Failed to write magic to the registry magic structure"); + return FALSE; + } + return TRUE; +} + +/* +** Check GstBinaryRegistryMagic validity. +** Return a pointer pointing right after the magic structure +*/ +static gchar * +gst_registry_binary_check_magic(gchar *in) +{ + GstBinaryRegistryMagic *m = (GstBinaryRegistryMagic *) in; + + if (m == NULL || m->magic == NULL || m->version == NULL) + { + GST_ERROR("Binary registry magic structure is broken"); + return NULL; + } + if (strncmp(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) != 0) + { + GST_ERROR("Binary registry magic is different : %02x%02x%02x%02x != %02x%02x%02x%02x", + GST_MAGIC_BINARY_REGISTRY_STR[0] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[1] & 0xff, + GST_MAGIC_BINARY_REGISTRY_STR[2] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[3] & 0xff, + m->magic[0] & 0xff, m->magic[1] & 0xff, m->magic[2] & 0xff, m->magic[3] & 0xff); + return NULL; + } + if (strncmp(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN)) + { + GST_ERROR("Binary registry magic version is different : %s != %s", + GST_MAJORMINOR, m->version); + return NULL; + } + return (in + sizeof (GstBinaryRegistryMagic)); +} + +/* +** Adapt a GstPlugin to our GstBinaryPluginElement structure, and write it to the +** registry file. +*/ +static gboolean +gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin) +{ + GstBinaryPluginElement *e; + GstBinaryChunck *chk; + GList *walk; + + if ((e = calloc(1, sizeof (GstBinaryPluginElement))) == NULL || + (chk = calloc(1, sizeof (GstBinaryChunck))) == NULL) + return FALSE; + + chk->data = e; + chk->size = sizeof (GstBinaryPluginElement); + *list = g_list_append(*list, chk); + + if (!strncpy(e->name, plugin->desc.name, GST_BINARY_REGISTRY_NAME_LEN) || + !strncpy(e->description, plugin->desc.description, GST_BINARY_REGISTRY_DESCRIPTION_LEN) || + !strncpy(e->filename, plugin->filename, _POSIX_PATH_MAX) || + !strncpy(e->version, plugin->desc.version, GST_BINARY_REGISTRY_VERSION_LEN) || + !strncpy(e->license, plugin->desc.license, GST_BINARY_REGISTRY_LICENSE_LEN) || + !strncpy(e->source, plugin->desc.source, GST_BINARY_REGISTRY_SOURCE_LEN) || + !strncpy(e->package, plugin->desc.package, GST_BINARY_REGISTRY_PACKAGE_LEN) || + !strncpy(e->origin, plugin->desc.origin, GST_BINARY_REGISTRY_ORIGIN_LEN)) + { + GST_DEBUG("Can't adapt GstPlugin to GstBinaryPluginElement"); + goto fail; + } + + e->size = plugin->file_size; + e->m32p = plugin->file_mtime; + + GList *ft_list = gst_registry_get_feature_list_by_plugin(registry, plugin->desc.name); + + for (walk = ft_list; walk; walk = g_list_next(walk), e->nfeatures++) + { + GstPluginFeature *curfeat = GST_PLUGIN_FEATURE (walk->data); + GstBinaryPluginFeature *newfeat; + const char *feat_name = g_type_name(G_OBJECT_TYPE(curfeat)); + + if ((newfeat = calloc(1, sizeof (GstBinaryPluginFeature))) == NULL) + goto fail; + + if (!feat_name || !gst_registry_binary_fill_feature(list, curfeat, newfeat, feat_name)) + { + GST_ERROR("Can't fill plugin feature, aborting."); + goto fail; + } + } + + GST_DEBUG("Found %d features in plugin \"%s\"\n", e->nfeatures, e->name); + return TRUE; + + fail: + free(chk); + free(e); + return FALSE; +} + +/* +** Write the cache to file. Part of the code was taken from gstregistryxml.c +*/ +gboolean +gst_registry_binary_write_cache(GstRegistry *registry, const char *location) +{ + GList *walk; + char *tmp_location; + GstBinaryRegistryMagic *magic; + GstBinaryChunck *magic_chunck; + GList *to_write = NULL; + + GST_INFO("Writing binary registry cache"); + + g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE); + tmp_location = g_strconcat (location, ".tmpXXXXXX", NULL); + registry->cache_file = g_mkstemp (tmp_location); + if (registry->cache_file == -1) + { + char *dir; + + /* oops, I bet the directory doesn't exist */ + dir = g_path_get_dirname (location); + g_mkdir_with_parents (dir, 0777); + g_free (dir); + + registry->cache_file = g_mkstemp (tmp_location); + } + + if (registry->cache_file == -1) + goto fail; + + if ((magic = calloc(1, sizeof (GstBinaryRegistryMagic))) == NULL || + !gst_registry_binary_initialize_magic(magic)) + goto fail; + + if ((magic_chunck = calloc(1, sizeof (GstBinaryChunck))) == NULL) + goto fail; + + magic_chunck->data = magic; + magic_chunck->size = sizeof (GstBinaryRegistryMagic); + to_write = g_list_append(to_write, magic_chunck); + + /* Iterate trough the list of plugins in the GstRegistry and adapt them to our structures */ + for (walk = g_list_last(registry->plugins); walk; walk = g_list_previous(walk)) + { + GstPlugin *plugin = GST_PLUGIN(walk->data); + + if (!plugin->filename) + continue; + + if (plugin->flags & GST_PLUGIN_FLAG_CACHED) + { + int ret; + struct stat statbuf; + + ret = g_stat (plugin->filename, &statbuf); + if ((ret = g_stat (plugin->filename, &statbuf)) < 0 || + plugin->file_mtime != statbuf.st_mtime || + plugin->file_size != statbuf.st_size) + continue; + } + + if (!gst_registry_binary_save_plugin(&to_write, registry, plugin)) + { + GST_ERROR("Can't write binary plugin information for \"%s\"", plugin->filename); + continue; /* Try anyway */ + } + } + + for (walk = g_list_first(to_write); walk; walk = g_list_next(walk)) + { + GstBinaryChunck *cur = walk->data; + + if (!gst_registry_binary_write(registry, cur->data, cur->size)) + { + free(cur->data); + free(cur); + g_list_free(to_write); + goto fail; + } + free(cur->data); + free(cur); + } + g_list_free(to_write); + + if (close(registry->cache_file) < 0) + { + GST_DEBUG("Can't close registry file : %s", strerror(errno)); + goto fail; + } + + if (g_file_test (tmp_location, G_FILE_TEST_EXISTS)) { +#ifdef WIN32 + remove (location); +#endif + rename (tmp_location, location); + } + + g_free (tmp_location); + return TRUE; + + fail: + g_free(tmp_location); + return FALSE; +} + +static GstPluginFeature* +gst_registry_binary_load_feature(GstBinaryPluginFeature *in) +{ + GstPluginFeature *feature; + GType type; + + if (!in->typename || !*(in->typename)) + return NULL; + + /* GST_INFO("Plugin feature typename : %s", in->typename);*/ + + if (!(type = g_type_from_name(in->typename))) + { + GST_ERROR("Unknown type from typename"); + return NULL; + } + feature = g_object_new (type, NULL); + + if (!feature) { + GST_ERROR("Can't create feature from type"); + return NULL; + } + + if (!GST_IS_PLUGIN_FEATURE (feature)) { + /* don't really know what it is */ + if (GST_IS_OBJECT (feature)) + gst_object_unref (feature); + else + g_object_unref (feature); + return NULL; + } + + feature->name = g_strdup(in->name); + feature->rank = in->rank; + + if (GST_IS_ELEMENT_FACTORY(feature)) + { + GstElementFactory *factory = GST_ELEMENT_FACTORY(feature); + + factory->details.longname = g_strdup(in->longname); + factory->details.klass = g_strdup(in->class); + factory->details.description = g_strdup(in->description); + factory->details.author = g_strdup(in->author); + + /* GST_INFO("Element factory : %s", factory->details.longname); */ + } + + GST_DEBUG("Added feature %p with name %s", feature, feature->name); + return feature; +} + +/* +** Make a new plugin from current GstBinaryPluginElement structure +** and save it to the GstRegistry. Return an offset to the next +** GstBinaryPluginElement structure. +*/ +static unsigned long +gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in) +{ + GstBinaryPluginElement *p = (GstBinaryPluginElement *) in; + GstPlugin *plugin = NULL; + GList *plugin_features = NULL; + GstBinaryPluginFeature *feat; + unsigned int i; + unsigned long offset; + + plugin = g_object_new (GST_TYPE_PLUGIN, NULL); + + plugin->flags |= GST_PLUGIN_FLAG_CACHED; + + plugin->desc.name = g_strdup(p->name); + plugin->desc.description= g_strdup(p->description); + plugin->filename = g_strdup(p->filename); + plugin->desc.version = g_strdup(p->version); + plugin->desc.license = g_strdup(p->license); + plugin->desc.source = g_strdup(p->source); + plugin->desc.package = g_strdup(p->package); + plugin->desc.origin = g_strdup(p->origin); + plugin->file_mtime = p->m32p; + plugin->file_size = p->size; + plugin->basename = g_path_get_basename (plugin->filename); + + if (plugin->file_mtime < 0 || plugin->file_size < 0) + { + GST_ERROR("Plugin time or file size is not valid !"); + g_free(plugin); + return -1; + } + + if (p->nfeatures < 0) + { + GST_ERROR("The number of feature structure is not valid !"); + gst_object_unref(plugin); + return -1; + } + + for (feat = (GstBinaryPluginFeature *) (in + sizeof (GstBinaryPluginElement)), i = 0; + i < p->nfeatures; i++, feat++) + { + GstPluginFeature *gstfeat; + + if ((gstfeat = gst_registry_binary_load_feature(feat)) == NULL) + { + g_list_free(plugin_features); + g_free(plugin); + GST_ERROR("Error while loading binary feature"); + return -1; + } + gstfeat->plugin_name = g_strdup(plugin->desc.name); + plugin_features = g_list_prepend(plugin_features, gstfeat); + } + + GST_DEBUG("Added plugin \"%s\" to global registry from binary registry", plugin->desc.name); + GList *g; + + gst_registry_add_plugin (registry, plugin); + for (g = plugin_features; g; g = g_list_next (g)) + gst_registry_add_feature (registry, GST_PLUGIN_FEATURE (g->data)); + /* g_list_free(plugin_features); */ + + offset = sizeof (GstBinaryPluginElement) + p->nfeatures * sizeof (GstBinaryPluginFeature); + return offset; +} + + +/* +** Read the cache and adapt it to fill GstRegistry +*/ +gboolean +gst_registry_binary_read_cache(GstRegistry *registry, const char *location) +{ + GMappedFile *mapped = NULL; + GTimer *timer = NULL; + gchar *contents = NULL; + gdouble seconds; + unsigned long offset, inc; + gsize size; + + /* make sure these types exist */ + GST_TYPE_ELEMENT_FACTORY; + GST_TYPE_TYPE_FIND_FACTORY; + GST_TYPE_INDEX_FACTORY; + + timer = g_timer_new (); + + if ((mapped = g_mapped_file_new(location, FALSE, NULL)) == NULL || + (contents = g_mapped_file_get_contents(mapped)) == NULL) + { + GST_ERROR("Can't load file : %s", strerror(errno)); + return FALSE; + } + if ((contents = gst_registry_binary_check_magic(contents)) == NULL) + { + GST_ERROR("Binary registry type not recognized (invalid magic)"); + g_mapped_file_free(mapped); + return FALSE; + } + + if ((size = g_mapped_file_get_length(mapped)) < sizeof (GstBinaryPluginElement)) + { + GST_INFO("No binary plugins structure to read"); + return TRUE; /* This is not really an error */ + } + + for (offset = inc = 0; (offset + sizeof (GstBinaryPluginElement)) < size && + (inc = gst_registry_binary_get_binary_plugin(registry, contents + offset)) > 0; + offset += inc) + ; /* May want in the future to do something here */ + if (inc < 0) + { + GST_DEBUG("Problem while reading binary registry"); + return FALSE; + } + + g_timer_stop (timer); + seconds = g_timer_elapsed (timer, NULL); + g_timer_destroy (timer); + + GST_INFO ("loaded %s in %f seconds", location, seconds); + + if (mapped) + g_mapped_file_free (mapped); + return TRUE; +} diff --git a/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h new file mode 100644 index 0000000..2ef24d7 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h @@ -0,0 +1,194 @@ +/* GStreamer + * Copyright (C) 1999,2000 Erik Walthinsen + * 2000 Wim Taymans + * + * gstregistry.h: Header for registry handling + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* SUGGESTIONS AND TODO : +** ==================== +** - Use a compressed registry, but would induce performance loss +** - Encrypt the registry, for security purpose, but would also reduce performances +** - Also have a non-mmap based cache reading (work with file descriptors) +*/ + +#ifndef __GST_REGISTRYBINARY_H__ +#define __GST_REGISTRYBINARY_H__ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#ifdef HAVE_UNISTD_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "glib-compat-private.h" +#include + +/* A magic, written at the beginning of the file */ +#define GST_MAGIC_BINARY_REGISTRY_STR "\xc0\xde\xf0\x0d" +#define GST_MAGIC_BINARY_REGISTRY_LEN (4) +#define GST_MAGIC_BINARY_VERSION_LEN (64) + +typedef struct _GstBinaryRegistryMagic +{ + char magic[GST_MAGIC_BINARY_REGISTRY_LEN]; + char version[GST_MAGIC_BINARY_VERSION_LEN]; +} GstBinaryRegistryMagic; + + +/* Used to store pointers to write */ +typedef struct _GstBinaryChunck +{ + void *data; + unsigned int size; +} GstBinaryChunck; + + +/* A structure containing (staticely) every information needed for a plugin +** +** Notes : +** "nfeatures" is used to say how many GstBinaryPluginFeature structures we will have +** right after the structure itself. +*/ + +/* Various lenght defines for our GstBinaryPluginElement structure +** Note : We could eventually use smaller size +*/ +#define GST_BINARY_REGISTRY_NAME_LEN (256) +#define GST_BINARY_REGISTRY_DESCRIPTION_LEN (1024) +#define GST_BINARY_REGISTRY_VERSION_LEN (64) +#define GST_BINARY_REGISTRY_LICENSE_LEN (256) +#define GST_BINARY_REGISTRY_SOURCE_LEN (256) +#define GST_BINARY_REGISTRY_PACKAGE_LEN (1024) +#define GST_BINARY_REGISTRY_ORIGIN_LEN (1024) + +typedef struct _GstBinaryPluginElement +{ + char name[GST_BINARY_REGISTRY_NAME_LEN]; + char description[GST_BINARY_REGISTRY_DESCRIPTION_LEN]; + char filename[_POSIX_PATH_MAX]; + char version[GST_BINARY_REGISTRY_VERSION_LEN]; + char license[GST_BINARY_REGISTRY_LICENSE_LEN]; + char source[GST_BINARY_REGISTRY_SOURCE_LEN]; + char package[GST_BINARY_REGISTRY_PACKAGE_LEN]; + char origin[GST_BINARY_REGISTRY_ORIGIN_LEN]; + unsigned long size; + unsigned long m32p; + unsigned int nfeatures; +} GstBinaryPluginElement; + + +/* A structure containing the plugin features +** +** Note : +** "npadtemplates" is used to store the number of GstBinaryPadTemplate structures following the structure itself. +** "ninterfaces" is used to store the number of GstBinaryInterface structures following the structure itself. +** "nuritypes" is used to store the number of GstBinaryUriType structures following the structure itself. +*/ +#define GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN (256) +#define GST_BINARY_REGISTRY_TYPENAME_NAME_LEN (256) +#define GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN (1024) +#define GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN (512) +#define GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN (1024) +#define GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN (256) + +typedef struct _GstBinaryPluginFeature +{ + char typename[GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN]; + char name[GST_BINARY_REGISTRY_TYPENAME_NAME_LEN]; + unsigned long rank; + char longname[GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN]; + char class[GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN]; + char description[GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN]; + char author[GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN]; + unsigned int npadtemplates; + unsigned int ninterfaces; + unsigned int nuritypes; +} GstBinaryPluginFeature; + + +/* +** A structure containing the static pad templates of a plugin feature +*/ +#define GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN (256) +#define GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN (1024) + +typedef struct _GstBinaryPadTemplate +{ + char name[GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN]; + char cap[GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN]; + int direction; /* Either 0:"sink" or 1:"src" */ + GstPadPresence presence; +} GstBinaryPadTemplate; + +/* +** A very simple structure defining the plugin feature interface string +*/ +#define GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN (512) +typedef struct _GstBinaryInterface +{ + char interface[GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN]; + unsigned long size; +} GstBinaryInterface; + +/* Uri Type */ +typedef struct _GstBinaryUriType +{ + GstURIType type; + unsigned long nuriprotocols; +} GstBinaryUriType; + +/* +** Function prototypes +*/ + +/* Local prototypes */ +inline static gboolean gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size); +inline static gboolean gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m); +static gboolean gst_registry_binary_fill_feature(GList **list, GstPluginFeature *, GstBinaryPluginFeature *, const char *); +static gboolean gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin); +static gchar *gst_registry_binary_check_magic(gchar *in); +static GstPluginFeature *gst_registry_binary_load_feature(GstBinaryPluginFeature *); +static unsigned long gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in); + +/* Exportable */ +gboolean gst_registry_binary_write_cache(GstRegistry *registry, const char *location); +gboolean gst_registry_binary_read_cache(GstRegistry *registry, const char *location); + +#endif /* !__GST_REGISTRYBINARY_H__ */ + + diff --git a/recipes-gstreamer/gstreamer-0.10/gstreamer_0.10.36.bb b/recipes-gstreamer/gstreamer-0.10/gstreamer_0.10.36.bb new file mode 100644 index 0000000..56d8220 --- /dev/null +++ b/recipes-gstreamer/gstreamer-0.10/gstreamer_0.10.36.bb @@ -0,0 +1,50 @@ +SUMMARY = "GStreamer multimedia framework" +DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \ +It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime." +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4" +DEPENDS = "glib-2.0 libxml2 bison-native flex-native glib-2.0-native" + +PR = "r2" + +SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz2 \ + file://check_fix.patch \ + file://gst-inspect-check-error.patch \ + file://0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch \ + file://0001-parse-make-grammar.y-work-with-Bison-3.patch \ + file://0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch \ +" + +SRC_URI[md5sum] = "a0cf7d6877f694a1a2ad2b4d1ecb890b" +SRC_URI[sha256sum] = "e556a529e0a8cf1cd0afd0cab2af5488c9524e7c3f409de29b5d82bb41ae7a30" + +inherit autotools pkgconfig gettext + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF = "--disable-docbook --disable-gtk-doc \ + --disable-dependency-tracking --disable-check \ + --disable-examples --disable-tests \ + --disable-valgrind ${GSTREAMER_DEBUG} \ + --disable-introspection \ + " + +CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no" + +# apply gstreamer hack after Makefile.in.in in source is replaced by our version from +# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed +# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html +oe_runconf_prepend() { + sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in +} + +#do_compile_prepend () { +# mv ${WORKDIR}/gstregistrybinary.[ch] ${S}/gst/ +#} + +FILES_${PN} += " ${libdir}/gstreamer-0.10/*.so" +FILES_${PN}-dev += " ${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a" +FILES_${PN}-dbg += " ${libdir}/gstreamer-0.10/.debug/ ${libexecdir}/gstreamer-0.10/.debug/" diff --git a/recipes-musicians/amsynth/amsynth_git.bb b/recipes-musicians/amsynth/amsynth_git.bb new file mode 100644 index 0000000..be676f4 --- /dev/null +++ b/recipes-musicians/amsynth/amsynth_git.bb @@ -0,0 +1,51 @@ +SUMMARY = "Software synth with a classic subtractive synthesizer topology" +HOMEPAGE = "http://amsynth.github.io/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=67b604758dd265c185ce36fcf76a889d" + +inherit autotools pkgconfig gtk-icon-cache gettext pack_audio_plugins + +DEPENDS += " \ + gtk+ \ + intltool-native \ +" + +SRC_URI = "git://github.com/amsynth/amsynth.git;branch=develop" +SRCREV = "3ddbd8c44ea9ddec558c1da0d27b26f553898d4f" +PV = "1.8.0+git${SRCPV}" +S = "${WORKDIR}/git" + + +PACKAGECONFIG ??= "alsa jack sndfile lv2" + +PACKAGECONFIG[oss] = "--with-oss,--without-oss" +PACKAGECONFIG[alsa] = "--with-alsa,--without-alsa,alsa-lib" +PACKAGECONFIG[dssi] = "--with-dssi,--without-dssi,dssi liblo" +PACKAGECONFIG[jack] = "--with-jack,--without-jack,jack" +PACKAGECONFIG[sndfile] = "--with-sndfile,--without-sndfile,libsndfile1" +PACKAGECONFIG[lv2] = "--with-lv2,--without-lv2,lv2" + +PACKAGES =+ "${PN}-standalone" +FILES_${PN}-standalone += " \ + ${datadir}/appdata/amsynth.appdata.xml \ + ${datadir}/applications \ + ${datadir}/icons \ + ${bindir} \ +" + +FILES_${PN}-dssi += " \ + ${datadir}/appdata/dssi-amsynth-plugin.metainfo.xml \ +" + +FILES_${PN}-lv2 += " \ + ${datadir}/appdata/lv2-amsynth-plugin.metainfo.xml \ +" + +FILES_${PN}-vst += " \ + ${datadir}/appdata/vst-amsynth-plugin.metainfo.xml \ +" + +RDEPENDS_${PN}-standalone += "${PN}" +RDEPENDS_${PN}-dssi += "${PN}" +RDEPENDS_${PN}-lv2 += "${PN}" +RDEPENDS_${PN}-vst += "${PN}" diff --git a/recipes-musicians/ardour/ardour5_git.bb b/recipes-musicians/ardour/ardour5_git.bb new file mode 100644 index 0000000..2d1d6fa --- /dev/null +++ b/recipes-musicians/ardour/ardour5_git.bb @@ -0,0 +1,101 @@ +SUMMARY = "Ardour is a multi-channel digital audio workstation" +HOMEPAGE = "http://ardour.org/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=4641e94ec96f98fabc56ff9cc48be14b" + +DEPENDS += " \ + gettext-native \ + gtk+ \ + gtkmm \ + cppunit \ + jack \ + alsa-lib \ + fftw \ + vamp-plugin-sdk \ + aubio \ + taglib \ + boost \ + virtual/libx11 \ + dssi \ + zlib \ + lrdf \ + rubberband \ + suil \ + lilv \ + libarchive \ + libltc \ + qm-dsp \ + fluidsynth \ +" + +inherit wafold distro_features_check gtk-icon-cache pkgconfig + +REQUIRED_DISTRO_FEATURE = "x11" + +SRC_URI = " \ + git://github.com/Ardour/ardour.git \ + file://0001-remove-all-build-flags-that-cause-trouble-for-cross-.patch \ + file://0002-Use-ARM-NEON-intrinsics-if-available-for-mixing-func.patch \ + file://0003-Prevent-excessive-meter-redraws-for-inactive-meters-.patch \ + file://0004-Prevent-excessive-meter-redraws-for-inactive-meters-.patch \ + file://0005-Follow-fluidsynth-s-API-changes-introduced-with-2.0..patch \ + file://ardour5.desktop \ +" +SRCREV = "ae0dcdc0c5d13483271065c360e378202d20170a" +PV = "5.12" +S = "${WORKDIR}/git" + + +# arch specific override - default (tested) is ARM -> no fpu-optimizations +# can be something like i686 / x86_64 see file 'wscript' in sourcepath for more details +BUILD_DIST_TARGET ??= "none" + +EXTRA_OECONF = " \ + --configdir=${sysconfdir} \ + --libdir=${libdir} \ + --optimize \ + --cxx11 \ + --no-phone-home \ + --use-external-libs \ + --qm-dsp-include=${STAGING_INCDIR}/qm-dsp \ + \ + --with-backends="jack,alsa" \ + --dist-target=${BUILD_DIST_TARGET} \ +" + +do_install_append() { + # install icons to freedesktop locations + for s in 16 22 32 48 256 512; do + install -d ${D}${datadir}/icons/hicolor/${s}x${s}/apps + ln -s ../../../../${BPN}/resources/Ardour-icon_${s}px.png \ + ${D}${datadir}/icons/hicolor/${s}x${s}/apps/${BPN}.png + done + + # install .desktop + install -d ${D}${datadir}/applications + install -m 0644 ${WORKDIR}/ardour5.desktop ${D}${datadir}/applications +} + +FILES_${PN} += " \ + ${datadir}/${BPN} \ + ${libdir}/${BPN} \ +" + +FILES_${PN}-dev += " \ + ${libdir}/${BPN}/libardour.so \ + ${libdir}/${BPN}/libardouralsautil.so \ + ${libdir}/${BPN}/libaudiographer.so \ + ${libdir}/${BPN}/libcanvas.so \ + ${libdir}/${BPN}/libevoral.so \ + ${libdir}/${BPN}/libgtkmm2ext.so \ + ${libdir}/${BPN}/libmidipp.so \ + ${libdir}/${BPN}/libpbd.so \ + ${libdir}/${BPN}/libptformat.so \ + ${libdir}/${BPN}/libwaveview.so \ + ${libdir}/${BPN}/libwidgets.so \ + ${libdir}/${BPN}/vamp/*.so \ +" + +FILES_${PN}-staticdev += " \ + ${libdir}/${BPN}/*.a \ +" diff --git a/recipes-musicians/ardour/files/0001-remove-all-build-flags-that-cause-trouble-for-cross-.patch b/recipes-musicians/ardour/files/0001-remove-all-build-flags-that-cause-trouble-for-cross-.patch new file mode 100644 index 0000000..c07b3d4 --- /dev/null +++ b/recipes-musicians/ardour/files/0001-remove-all-build-flags-that-cause-trouble-for-cross-.patch @@ -0,0 +1,75 @@ +From 24b6038dc7c235780038d3fce2d9c83fada6ac8b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 6 Feb 2017 23:33:45 +0100 +Subject: [PATCH] remove all build flags that cause trouble for cross + configure/build +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + tools/autowaf.py | 1 + + wscript | 26 - + +diff --git a/tools/autowaf.py b/tools/autowaf.py +index f82b80a..626e951 100644 +--- a/tools/autowaf.py ++++ b/tools/autowaf.py +@@ -93,6 +93,7 @@ def copyfile (task): + + def check_header(conf, lang, name, define='', mandatory=True): + "Check for a header" ++ return True + includes = '' # search default system include paths + if sys.platform == "darwin": + includes = '/opt/local/include' +diff --git a/wscript b/wscript +index a7dd5e2..35acc51 100644 +--- a/wscript ++++ b/wscript +@@ -440,31 +440,6 @@ int main() { return 0; }''', + + compiler_flags.append ("-DARCH_X86") + +- if platform == 'linux' : +- +- # +- # determine processor flags via /proc/cpuinfo +- # +- +- if conf.env['build_target'] != 'i386': +- +- flag_line = os.popen ("cat /proc/cpuinfo | grep '^flags'").read()[:-1] +- x86_flags = flag_line.split (": ")[1:][0].split () +- +- if "mmx" in x86_flags: +- compiler_flags.append ("-mmmx") +- if "sse" in x86_flags: +- build_host_supports_sse = True +- if "3dnow" in x86_flags: +- compiler_flags.append ("-m3dnow") +- +- if cpu == "i586": +- compiler_flags.append ("-march=i586") +- elif cpu == "i686": +- compiler_flags.append ("-march=i686") +- +- if not is_clang and ((conf.env['build_target'] == 'i686') or (conf.env['build_target'] == 'x86_64')) and build_host_supports_sse: +- compiler_flags.extend ([ flags_dict['sse'], flags_dict['fpmath-sse'], flags_dict['xmmintrinsics'] ]) + + if (conf.env['build_target'] == 'mingw'): + if (re.search ("(x86_64|AMD64)", cpu) != None): +@@ -965,7 +940,6 @@ def configure(conf): + else: + conf.check_cc(function_name='dlopen', header_name='dlfcn.h', lib='dl', uselib_store='DL') + conf.check_cxx(fragment = "#include \nint main(void) { return (BOOST_VERSION >= 103900 ? 0 : 1); }\n", +- execute = "1", + mandatory = True, + msg = 'Checking for boost library >= 1.39', + okmsg = 'ok', +-- +2.9.3 + diff --git a/recipes-musicians/ardour/files/0002-Use-ARM-NEON-intrinsics-if-available-for-mixing-func.patch b/recipes-musicians/ardour/files/0002-Use-ARM-NEON-intrinsics-if-available-for-mixing-func.patch new file mode 100644 index 0000000..19d49b6 --- /dev/null +++ b/recipes-musicians/ardour/files/0002-Use-ARM-NEON-intrinsics-if-available-for-mixing-func.patch @@ -0,0 +1,229 @@ +From 610ce4e19b0b39d0e8391057b22163d4fdc7bdb4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 3 Jul 2017 23:24:55 +0200 +Subject: [PATCH 2/2] Use ARM NEON intrinsics if available for mixing functions +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas Müller +--- + libs/ardour/ardour/mix.h | 10 +++ + libs/ardour/globals.cc | 13 ++++ + libs/ardour/mix.cc | 157 +++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 180 insertions(+) + +diff --git a/libs/ardour/ardour/mix.h b/libs/ardour/ardour/mix.h +index 4676c01..55919f0 100644 +--- a/libs/ardour/ardour/mix.h ++++ b/libs/ardour/ardour/mix.h +@@ -65,6 +65,16 @@ LIBARDOUR_API void veclib_mix_buffers_no_gain (ARDOUR::Sample * dst, cons + + #endif + ++#if defined (__ARM_NEON__) ++ ++LIBARDOUR_API float neon_compute_peak (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float current); ++LIBARDOUR_API void neon_find_peaks (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float *min, float *max); ++LIBARDOUR_API void neon_apply_gain_to_buffer (ARDOUR::Sample * buf, ARDOUR::pframes_t nframes, float gain); ++LIBARDOUR_API void neon_mix_buffers_with_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes, float gain); ++LIBARDOUR_API void neon_mix_buffers_no_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes); ++ ++#endif ++ + /* non-optimized functions */ + + LIBARDOUR_API float default_compute_peak (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float current); +diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc +index 28eb818..d562b35 100644 +--- a/libs/ardour/globals.cc ++++ b/libs/ardour/globals.cc +@@ -222,6 +222,19 @@ setup_hardware_optimization (bool try_optimization) + + info << "Apple VecLib H/W specific optimizations in use" << endmsg; + } ++#elif defined (__ARM_NEON__) ++ // No runtime detection ++ compute_peak = neon_compute_peak; ++ find_peaks = neon_find_peaks; ++ apply_gain_to_buffer = neon_apply_gain_to_buffer; ++ mix_buffers_with_gain = neon_mix_buffers_with_gain; ++ mix_buffers_no_gain = neon_mix_buffers_no_gain; ++ copy_vector = default_copy_vector; ++ ++ generic_mix_functions = false; ++ ++ info << "ARM NEON optimizations in use" << endmsg; ++ + #endif + + /* consider FPU denormal handling to be "h/w optimization" */ +diff --git a/libs/ardour/mix.cc b/libs/ardour/mix.cc +index 96ae624..d1a46a2 100644 +--- a/libs/ardour/mix.cc ++++ b/libs/ardour/mix.cc +@@ -182,4 +182,161 @@ veclib_mix_buffers_no_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, pf + + #endif + ++#if defined (__ARM_NEON__) ++#include ++ ++float ++neon_compute_peak (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float current) ++{ ++ float32x4_t v4current = vdupq_n_f32(current); ++ float32x4_t v4work; ++ float32x2_t v2current; ++ ++ // unaligned lead (spread single float to vector) ++ while (((intptr_t)buf) % 16 != 0 && nsamples > 0) { ++ v4work = vdupq_n_f32(*buf); ++ v4current = vmaxq_f32(v4current, vabsq_f32(v4work)); ++ ++ buf++; ++ nsamples--; ++ } ++ // aligned ++ while (nsamples >= 4) { ++ v4work = vld1q_f32(buf); ++ v4current = vmaxq_f32(v4current, vabsq_f32(v4work)); ++ ++ buf+=4; ++ nsamples-=4; ++ } ++ // rest < 4 (spread single float to vector) ++ while (nsamples > 0) { ++ v4work = vdupq_n_f32(*buf); ++ v4current = vmaxq_f32(v4current, vabsq_f32(v4work)); ++ ++ buf++; ++ nsamples--; ++ } ++ ++ // calc max in vector by pairwise max done twice ++ v2current = vpmax_f32(vget_low_f32(v4current), vget_high_f32(v4current)); ++ v2current = vpmax_f32(v2current, v2current); ++ return vget_lane_f32(v2current, 0); ++} ++ ++void ++neon_find_peaks (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float *min, float *max) ++{ ++ float32x4_t v4min = vdupq_n_f32(*min); ++ float32x4_t v4max = vdupq_n_f32(*max); ++ float32x4_t v4work; ++ float32x2_t v2min, v2max; ++ ++ // vector ++ while (nsamples >= 4) { ++ v4work = vld1q_f32(buf); ++ v4min = vminq_f32(v4min, v4work); ++ v4max = vmaxq_f32(v4max, v4work); ++ ++ buf+=4; ++ nsamples-=4; ++ } ++ // rest < 4 (spread single float to vector) ++ while (nsamples > 0) { ++ v4work = vdupq_n_f32(*buf); ++ v4min = vminq_f32(v4min, v4work); ++ v4max = vmaxq_f32(v4max, v4work); ++ ++ buf++; ++ nsamples--; ++ } ++ ++ // calc min in vector by pairwise max done twice ++ v2min = vpmin_f32(vget_low_f32(v4min), vget_high_f32(v4min)); ++ v2min = vpmax_f32(v2min, v2min); ++ *min = vget_lane_f32(v2min, 0); ++ // calc max in vector by pairwise max done twice ++ v2max = vpmax_f32(vget_low_f32(v4max), vget_high_f32(v4max)); ++ v2max = vpmax_f32(v2max, v2max); ++ *max = vget_lane_f32(v2max, 0); ++} ++ ++void ++neon_apply_gain_to_buffer (ARDOUR::Sample * buf, ARDOUR::pframes_t nframes, float gain) ++{ ++ float32x4_t v4gain = vdupq_n_f32(gain); ++ float32x4_t v4work; ++ ++ // vector ++ while (nframes >= 4) { ++ v4work = vld1q_f32(buf); ++ v4work = vmulq_f32(v4work, v4gain); ++ vst1q_f32(buf, v4work); ++ ++ buf+=4; ++ nframes-=4; ++ } ++ // rest < 4 ++ while (nframes > 0) { ++ *buf *= gain; ++ ++ buf++; ++ nframes--; ++ } ++} ++ ++void ++neon_mix_buffers_with_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes, float gain) ++{ ++ float32x4_t v4gain = vdupq_n_f32(gain); ++ float32x4_t v4src, v4dst; ++ ++ // vector ++ while (nframes >= 4) { ++ v4src = vld1q_f32(src); ++ v4dst = vld1q_f32(dst); ++ // v4dst = v4dst + v4src * v4gain ++ v4dst = vmlaq_f32(v4dst, v4src, v4gain); ++ vst1q_f32(dst, v4dst); ++ ++ src+=4; ++ dst+=4; ++ nframes-=4; ++ } ++ // rest < 4 ++ while (nframes > 0) { ++ *dst += *src * gain; ++ ++ src++; ++ dst++; ++ nframes--; ++ } ++} ++ ++void ++neon_mix_buffers_no_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes) ++{ ++ float32x4_t v4src, v4dst; ++ ++ // vector ++ while (nframes >= 4) { ++ v4src = vld1q_f32(src); ++ v4dst = vld1q_f32(dst); ++ v4dst = vaddq_f32(v4dst, v4src); ++ vst1q_f32(dst, v4dst); ++ ++ src+=4; ++ dst+=4; ++ nframes-=4; ++ } ++ // rest < 4 ++ while (nframes > 0) { ++ *dst += *src; ++ ++ src++; ++ dst++; ++ nframes--; ++ } ++} ++ ++#endif + +-- +2.9.4 + diff --git a/recipes-musicians/ardour/files/0003-Prevent-excessive-meter-redraws-for-inactive-meters-.patch b/recipes-musicians/ardour/files/0003-Prevent-excessive-meter-redraws-for-inactive-meters-.patch new file mode 100644 index 0000000..ecee636 --- /dev/null +++ b/recipes-musicians/ardour/files/0003-Prevent-excessive-meter-redraws-for-inactive-meters-.patch @@ -0,0 +1,29 @@ +From be826f363522dbca96c8263d404c57c4fe9ff0e2 Mon Sep 17 00:00:00 2001 +From: Robin Gareus +Date: Wed, 3 Oct 2018 20:54:14 +0200 +Subject: [PATCH] Prevent excessive meter redraws for inactive meters at zero + +Upstream-Status: Backport [1] + +[1] https://github.com/Ardour/ardour/commit/be826f363522dbca96c8263d404c57c4fe9ff0e2 + +--- + libs/widgets/fastmeter.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libs/widgets/fastmeter.cc b/libs/widgets/fastmeter.cc +index cf1d9dd07..a9ecf5dad 100644 +--- a/libs/widgets/fastmeter.cc ++++ b/libs/widgets/fastmeter.cc +@@ -703,7 +703,7 @@ FastMeter::set (float lvl, float peak) + if (pixwidth <= 0 || pixheight <=0) return; + + if (peak == -1) { +- if (lvl >= current_peak) { ++ if (lvl >= current_peak && lvl > 0) { + current_peak = lvl; + hold_state = hold_cnt; + } +-- +2.14.4 + diff --git a/recipes-musicians/ardour/files/0004-Prevent-excessive-meter-redraws-for-inactive-meters-.patch b/recipes-musicians/ardour/files/0004-Prevent-excessive-meter-redraws-for-inactive-meters-.patch new file mode 100644 index 0000000..73bb72a --- /dev/null +++ b/recipes-musicians/ardour/files/0004-Prevent-excessive-meter-redraws-for-inactive-meters-.patch @@ -0,0 +1,34 @@ +From 8d5e7e9f4e4372debb9ce285336ccc1ecc0383f6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 17 Oct 2018 22:10:41 +0200 +Subject: [PATCH] Prevent excessive meter redraws for inactive meters at zero + II +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Same as be826f363522dbca96c8263d404c57c4fe9ff0e2 + +Upstream-Status: Applied + +Signed-off-by: Andreas Müller +--- + libs/canvas/meter.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libs/canvas/meter.cc b/libs/canvas/meter.cc +index b539a1b4a..76e31bf58 100644 +--- a/libs/canvas/meter.cc ++++ b/libs/canvas/meter.cc +@@ -702,7 +702,7 @@ Meter::set (float lvl, float peak) + if (pixwidth <= 0 || pixheight <=0) return; + + if (peak == -1) { +- if (lvl >= current_peak) { ++ if (lvl >= current_peak && lvl > 0) { + current_peak = lvl; + hold_state = hold_cnt; + } +-- +2.14.4 + diff --git a/recipes-musicians/ardour/files/0005-Follow-fluidsynth-s-API-changes-introduced-with-2.0..patch b/recipes-musicians/ardour/files/0005-Follow-fluidsynth-s-API-changes-introduced-with-2.0..patch new file mode 100644 index 0000000..4bedbbc --- /dev/null +++ b/recipes-musicians/ardour/files/0005-Follow-fluidsynth-s-API-changes-introduced-with-2.0..patch @@ -0,0 +1,117 @@ +From ae281f2135607e55675d7cc18a9fe1a5b88464ec Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 12 Oct 2018 00:56:59 +0200 +Subject: [PATCH] Follow fluidsynth's API changes introduced with 2.0.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Submitted [1] + +[1] https://github.com/Ardour/ardour/pull/431 + +Signed-off-by: Andreas Müller +--- + libs/ardour/fluid_synth.cc | 14 ++++++++++++++ + libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc | 27 ++++++++++++++++++++++++++- + 2 files changed, 40 insertions(+), 1 deletion(-) + +diff --git a/libs/ardour/fluid_synth.cc b/libs/ardour/fluid_synth.cc +index 45653a9e7..c9b7b526e 100644 +--- a/libs/ardour/fluid_synth.cc ++++ b/libs/ardour/fluid_synth.cc +@@ -71,6 +71,7 @@ FluidSynth::load_sf2 (const std::string& fn) + } + + size_t count; ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + fluid_preset_t preset; + + sfont->iteration_start (sfont); +@@ -83,7 +84,20 @@ FluidSynth::load_sf2 (const std::string& fn) + preset.get_banknum (&preset), + preset.get_num (&preset))); + } ++#else ++ fluid_preset_t* preset; + ++ fluid_sfont_iteration_start (sfont); ++ for (count = 0; (preset = fluid_sfont_iteration_next (sfont)) != 0; ++count) { ++ if (count < 16) { ++ fluid_synth_program_select (_synth, count, _synth_id, fluid_preset_get_banknum (preset), fluid_preset_get_num (preset)); ++ } ++ _presets.push_back (BankProgram ( ++ fluid_preset_get_name (preset), ++ fluid_preset_get_banknum (preset), ++ fluid_preset_get_num (preset))); ++ } ++#endif + if (count == 0) { + return false; + } +diff --git a/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc b/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc +index e6cf1e29d..6d168d5fe 100644 +--- a/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc ++++ b/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc +@@ -184,6 +184,7 @@ load_sf2 (AFluidSynth* self, const char* fn) + } + + int chn; ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + fluid_preset_t preset; + sfont->iteration_start (sfont); + pthread_mutex_lock (&self->bp_lock); +@@ -192,15 +193,33 @@ load_sf2 (AFluidSynth* self, const char* fn) + fluid_synth_program_select (self->synth, chn, synth_id, + preset.get_banknum (&preset), preset.get_num (&preset)); + } ++#else ++ fluid_preset_t *preset; ++ fluid_sfont_iteration_start (sfont); ++ pthread_mutex_lock (&self->bp_lock); ++ for (chn = 0; (preset = fluid_sfont_iteration_next (sfont)); ++chn) { ++ if (chn < 16) { ++ fluid_synth_program_select (self->synth, chn, synth_id, ++ fluid_preset_get_banknum (preset), fluid_preset_get_num (preset)); ++ } ++#endif // FLUIDSYNTH_VERSION_MAJOR < 2 + #ifndef LV2_EXTENDED + else { break ; } + #else ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + self->presets[preset.get_banknum (&preset)].push_back ( + BankProgram ( + preset.get_name (&preset), + preset.get_banknum (&preset), + preset.get_num (&preset))); +-#endif ++#else ++ self->presets[fluid_preset_get_banknum (preset)].push_back ( ++ BankProgram ( ++ fluid_preset_get_name (preset), ++ fluid_preset_get_banknum (preset), ++ fluid_preset_get_num (preset))); ++#endif // FLUIDSYNTH_VERSION_MAJOR < 2 ++#endif // LV2_EXTENDED + } + pthread_mutex_unlock (&self->bp_lock); + +@@ -681,9 +700,15 @@ work_response (LV2_Handle instance, + } + + for (int chn = 0; chn < 16; ++chn) { ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + unsigned int sfid = 0; + unsigned int bank = 0; + unsigned int program = -1; ++#else ++ int sfid = 0; ++ int bank = 0; ++ int program = -1; ++#endif + if (FLUID_OK == fluid_synth_get_program (self->synth, chn, &sfid, &bank, &program)) { + self->program_state[chn].bank = bank; + self->program_state[chn].program = program; +-- +2.14.4 + diff --git a/recipes-musicians/ardour/files/ardour5.desktop b/recipes-musicians/ardour/files/ardour5.desktop new file mode 100644 index 0000000..9ecfaea --- /dev/null +++ b/recipes-musicians/ardour/files/ardour5.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Ardour +Comment=Record, mix and master audio +Exec=ardour5 +Icon=ardour5 +Terminal=false +MimeType=application/x-ardour; +Type=Application +Categories=AudioVideo;Audio;X-Recorders;X-Multitrack;X-Jack;X-AudioEditing; +GenericName=Digital Audio Workstation diff --git a/recipes-musicians/aubio/aubio_0.4.7.bb b/recipes-musicians/aubio/aubio_0.4.7.bb new file mode 100644 index 0000000..25c9302 --- /dev/null +++ b/recipes-musicians/aubio/aubio_0.4.7.bb @@ -0,0 +1,27 @@ +SUMMARY = "aubio is designed for the extraction of annotations from audio signals" +HOMEPAGE = "https://aubio.org/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit waf pkgconfig + +DEPENDS += " \ + jack \ + ffmpeg \ + libsndfile1 \ + libsamplerate0 \ + python3-numpy \ +" + +SRC_URI = " \ + https://aubio.org/pub/${BPN}-${PV}.tar.bz2 \ + file://0001-do-not-build-tests.patch \ +" +SRC_URI[md5sum] = "1e8deb14b0e45ffadc91dcf7cfaee0c8" +SRC_URI[sha256sum] = "cbed4afec5ab3a1a6300c7e3af0a1369379aa94259f5e701a8ca905cdd9fa041" + +EXTRA_OECONF = " \ + --prefix=${prefix} \ + --sysconfdir=${sysconfdir} \ + --libdir=${libdir} \ +" diff --git a/recipes-musicians/aubio/files/0001-do-not-build-tests.patch b/recipes-musicians/aubio/files/0001-do-not-build-tests.patch new file mode 100644 index 0000000..2444a87 --- /dev/null +++ b/recipes-musicians/aubio/files/0001-do-not-build-tests.patch @@ -0,0 +1,28 @@ +From e597c5c8636a269dbe5e664c706e66887479f161 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 25 Sep 2018 00:44:12 +0200 +Subject: [PATCH] do not build tests + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + wscript | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/wscript b/wscript +index c08298c..1443ae2 100644 +--- a/wscript ++++ b/wscript +@@ -494,8 +494,6 @@ def build(bld): + bld.options.testcmd = 'node %s' + if bld.options.enable_examples: + bld.recurse('examples') +- if bld.options.enable_tests: +- bld.recurse('tests') + + # pkg-config template + bld( source = 'aubio.pc.in' ) +-- +2.14.4 + diff --git a/recipes-musicians/audio-tweaks/audio-tweaks_1.0.bb b/recipes-musicians/audio-tweaks/audio-tweaks_1.0.bb new file mode 100644 index 0000000..50aff63 --- /dev/null +++ b/recipes-musicians/audio-tweaks/audio-tweaks_1.0.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Audio latency tweaks" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI += "file://95-audio-tweaks.conf" + +do_install() { + install -d ${D}${sysconfdir}/security/limits.d + install -m 0644 ${WORKDIR}/95-audio-tweaks.conf ${D}${sysconfdir}/security/limits.d/ + +} + +RDEPENDS_${PN} = "pam-plugin-limits" diff --git a/recipes-musicians/audio-tweaks/files/95-audio-tweaks.conf b/recipes-musicians/audio-tweaks/files/95-audio-tweaks.conf new file mode 100644 index 0000000..90372aa --- /dev/null +++ b/recipes-musicians/audio-tweaks/files/95-audio-tweaks.conf @@ -0,0 +1,5 @@ +# Default limits for audio users + +@audio - rtprio 90 +@audio - memlock unlimited +@audio - nice -18 diff --git a/recipes-musicians/bristol/bristol_0.60.11.bb b/recipes-musicians/bristol/bristol_0.60.11.bb new file mode 100644 index 0000000..102693f --- /dev/null +++ b/recipes-musicians/bristol/bristol_0.60.11.bb @@ -0,0 +1,38 @@ +SUMMARY = "Emulator for vintage synthesisers, electric pianos and organs" +HOMEPAGE = "https://sourceforge.net/projects/bristol/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=d32239bcb673463ab874e80d47fae504" + +inherit autotools pkgconfig distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS += " \ + virtual/libx11 \ + alsa-lib \ + jack \ +" + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/0.60/${BPN}-${PV}.tar.gz \ + file://0001-Do-not-force-sse.patch \ + file://0002-Do-not-include-alsa-iatomic.h.patch \ + file://0003-bristoljackstats-do-not-overwrite-LDFLAGS.patch \ + file://0004-Avoid-crosscompile-warnings.patch \ +" +SRC_URI[md5sum] = "9ea4dacdac0dba3048156e2f6a5ee4d6" +SRC_URI[sha256sum] = "7d1f0bbd0d7d303fc77c6b9549b61708d7a83b4dc007818011b1f55d1fa922ba" + +EXTRA_OECONF = " \ + --disable-version-check \ + --disable-oss \ + --enable-jack-default-audio \ +" + +do_install_append() { + # the tar magic makes files owned by build user + chown -R root:root ${D}${datadir} + # align data paths + mv ${D}${datadir}/bristol/bristol-${PV}/* ${D}${datadir}/bristol/ + rmdir ${D}${datadir}/bristol/bristol-${PV} +} diff --git a/recipes-musicians/bristol/files/0001-Do-not-force-sse.patch b/recipes-musicians/bristol/files/0001-Do-not-force-sse.patch new file mode 100644 index 0000000..e325cd6 --- /dev/null +++ b/recipes-musicians/bristol/files/0001-Do-not-force-sse.patch @@ -0,0 +1,30 @@ +From f006426aac72fba8529bc85068d98e664e860584 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 5 Jul 2018 23:33:36 +0200 +Subject: [PATCH 1/2] Do not force sse +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + bristol/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bristol/Makefile.am b/bristol/Makefile.am +index bbc90c9..5d12413 100755 +--- a/bristol/Makefile.am ++++ b/bristol/Makefile.am +@@ -1,6 +1,6 @@ + AUTOMAKE_OPTIONS = foreign + +-AM_CFLAGS = -pthread -Wall -g -I$(srcdir)/../include/slab -I$(srcdir)/../include/bristol -I. -DBRISTOL_VOICECOUNT=@_BRISTOL_VOICES@ @BRISTOL_JACK_DEFAULT_MIDI@ @BRISTOL_JACK_DEFAULT@ @BRISTOL_JACK_MULTI_CLOSE@ @BRISTOL_SEMAPHORE@ @BRISTOL_SEM_OPEN@ @BRISTOL_BARRIER@ @BRISTOL_HAS_PA@ -DBRISTOL_RAMP_RATE=@BRR@ @BRISTOL_LIN_ATTACK@ @BRISTOL_HAS_DRAIN@ @BRISTOL_HAS_JACK@ @BRISTOL_HAS_JACK_MIDI@ @BRISTOL_HAS_JACK_SESSION@ -DBRISTOL_HAS_ALSA=@BRISTOL_HAS_ALSA@ @JACK_CFLAGS@ @ALSA_CFLAGS@ -msse -mfpmath=sse -ffast-math -fomit-frame-pointer -O2 ++AM_CFLAGS = -pthread -Wall -g -I$(srcdir)/../include/slab -I$(srcdir)/../include/bristol -I. -DBRISTOL_VOICECOUNT=@_BRISTOL_VOICES@ @BRISTOL_JACK_DEFAULT_MIDI@ @BRISTOL_JACK_DEFAULT@ @BRISTOL_JACK_MULTI_CLOSE@ @BRISTOL_SEMAPHORE@ @BRISTOL_SEM_OPEN@ @BRISTOL_BARRIER@ @BRISTOL_HAS_PA@ -DBRISTOL_RAMP_RATE=@BRR@ @BRISTOL_LIN_ATTACK@ @BRISTOL_HAS_DRAIN@ @BRISTOL_HAS_JACK@ @BRISTOL_HAS_JACK_MIDI@ @BRISTOL_HAS_JACK_SESSION@ -DBRISTOL_HAS_ALSA=@BRISTOL_HAS_ALSA@ @JACK_CFLAGS@ @ALSA_CFLAGS@ -ffast-math -fomit-frame-pointer -O2 + + bin_PROGRAMS = bristol + #bristol_LDFLAGS = -Bdynamic -L../libbristolmidi/.libs -L../libbristolaudio/.libs -L../libbristol -L../libbristolic +-- +2.14.3 + diff --git a/recipes-musicians/bristol/files/0002-Do-not-include-alsa-iatomic.h.patch b/recipes-musicians/bristol/files/0002-Do-not-include-alsa-iatomic.h.patch new file mode 100644 index 0000000..bd0f55f --- /dev/null +++ b/recipes-musicians/bristol/files/0002-Do-not-include-alsa-iatomic.h.patch @@ -0,0 +1,32 @@ +From d7b57162ff8c279fb9ac309fce0cdd98696c327a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 5 Jul 2018 23:34:17 +0200 +Subject: [PATCH 2/2] Do not include alsa/iatomic.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + libbristolaudio/audioEngineJack.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/libbristolaudio/audioEngineJack.c b/libbristolaudio/audioEngineJack.c +index 2b8900b..94c083e 100644 +--- a/libbristolaudio/audioEngineJack.c ++++ b/libbristolaudio/audioEngineJack.c +@@ -38,9 +38,6 @@ + #include + + #ifdef _BRISTOL_JACK +-#if (BRISTOL_HAS_ALSA == 1) +-#include +-#endif + + /* + * Drop this atomic stuff, it comes from the ALSA library and it not present on +-- +2.14.3 + diff --git a/recipes-musicians/bristol/files/0003-bristoljackstats-do-not-overwrite-LDFLAGS.patch b/recipes-musicians/bristol/files/0003-bristoljackstats-do-not-overwrite-LDFLAGS.patch new file mode 100644 index 0000000..30b3325 --- /dev/null +++ b/recipes-musicians/bristol/files/0003-bristoljackstats-do-not-overwrite-LDFLAGS.patch @@ -0,0 +1,29 @@ +From 4269cada0a225e89c3edd3e85c21debd3f5ab958 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 4 Aug 2018 22:33:08 +0200 +Subject: [PATCH] bristoljackstats: do not overwrite LDFLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + bin/Makefile.am | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/bin/Makefile.am b/bin/Makefile.am +index fed0c6b..d9957b1 100755 +--- a/bin/Makefile.am ++++ b/bin/Makefile.am +@@ -1,6 +1,5 @@ + AUTOMAKE_OPTIONS = foreign + +-LDFLAGS = -Bdynamic -lm -lpthread `pkg-config --silence-errors --libs jack` + AM_CFLAGS = -pthread -Wall -g -I. -I$(srcdir)/../include/bristol @BRISTOL_HAS_JACK@ @BRISTOL_HAS_JACK_MIDI@ @JACK_CFLAGS@ + + #bin_PROGRAMS = bristoljackstats bristolnotegen bristolNRPgen +-- +2.14.4 + diff --git a/recipes-musicians/bristol/files/0004-Avoid-crosscompile-warnings.patch b/recipes-musicians/bristol/files/0004-Avoid-crosscompile-warnings.patch new file mode 100644 index 0000000..be4199c --- /dev/null +++ b/recipes-musicians/bristol/files/0004-Avoid-crosscompile-warnings.patch @@ -0,0 +1,33 @@ +From f767f062beeedc014584e0d9d0aa70090b774941 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 30 Oct 2018 11:24:13 +0100 +Subject: [PATCH] Avoid crosscompile warnings +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +| ld: warning: library search path "/usr/X11R6/lib" is unsafe for cross-compilation + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + brighton/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/brighton/Makefile.am b/brighton/Makefile.am +index 274adc2..e900c62 100755 +--- a/brighton/Makefile.am ++++ b/brighton/Makefile.am +@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS = foreign + AM_CFLAGS = -pthread -Wall -g -I$(srcdir)/../include/brighton -I$(srcdir)/../include/bristol -DBRISTOL_HAS_ALSA=@BRISTOL_HAS_ALSA@ @BRIGHTON_HAS_X11@ -DBRISTOL_VOICECOUNT=@_BRISTOL_VOICES@ + + bin_PROGRAMS = brighton +-brighton_LDFLAGS = -Bdynamic -L../libbrighton/ -L../libbristolmidi/.libs @BRIGHTON_LIBXLIBS@ -L/usr/X11R6/lib -L../libbvg ++brighton_LDFLAGS = -Bdynamic -L../libbrighton/ -L../libbristolmidi/.libs @BRIGHTON_LIBXLIBS@ -L../libbvg + brighton_LDADD = -lbrighton -lbvg @BRIGHTON_LIBB11@ @BRIGHTON_LIBX11@ @BRIGHTON_LIBXEXT@ -lbristolmidi @ALSA_LIBS@ -lm -lpthread + + brighton_SOURCES = brightonArp2600.c brightonAxxe.c brighton.c brightonControllers.c brightonDX.c brightonExplorer.c brightonHammondB3.c brightonHammond.c brightonJuno.c brightonMemoryMoog.c brightonMini.c brightonMixer.c brightonMixerMemory.c brightonMixerMenu.c brightonMS20.c brightonOBXa.c brightonOBX.c brightonOdyssey.c brightonPoly6.c brightonPoly.c brightonProphet10.c brightonProphet52.c brightonProphet.c brightonRhodesBass.c brightonRhodes.c brightonRoutines.c brightonSAks.c brightonVox.c brightonKeyboards.h brightonKeys.h brightonMini.h brightonMixer.h brightonMixerMemory.h brightonhelp.h brightonSolina.c brightonRoadRunner.c brightonGranular.c brightonRealistic.c brightonVoxM2.c brightonJupiter.c brightonBitOne.c brightonMaster.c brightonCS80.c brightonProOne.c brightonVoyager.c brightonSonic6.c brightonTrilogy.c brightonStratus.c brightonPoly800.c brightonBME700.c brightonBassMaker.c brightonSID.c brightonSID2.c brightonSID2.h brightonreadme.h brightonCLI.c brightonVImages.h +-- +2.14.5 + diff --git a/recipes-musicians/calf-studio-gear/calf/0001-Do-store-calfmakerdf-commandline-for-later-use-in-qe.patch b/recipes-musicians/calf-studio-gear/calf/0001-Do-store-calfmakerdf-commandline-for-later-use-in-qe.patch new file mode 100644 index 0000000..6af4e71 --- /dev/null +++ b/recipes-musicians/calf-studio-gear/calf/0001-Do-store-calfmakerdf-commandline-for-later-use-in-qe.patch @@ -0,0 +1,55 @@ +From 29a3bcf1a134d9bf51afa36bf39a903cd9328a5b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 14 Nov 2017 16:44:37 +0100 +Subject: [PATCH] Do store calfmakerdf-commandline for later use in qemu / + install calfmakerdf +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + gui/Makefile.am | 2 +- + src/Makefile.am | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/gui/Makefile.am b/gui/Makefile.am +index 11eb4c3..9b53a0a 100644 +--- a/gui/Makefile.am ++++ b/gui/Makefile.am +@@ -4,7 +4,7 @@ STYLES = $(wildcard $(srcdir)/styles/*) + EXTRA_DIST = $(wildcard $(srcdir)/styles) $(wildcard $(srcdir)/strips) $(wildcard $(srcdir)/gui) + + install-data-hook: +- $(top_builddir)/src/calfmakerdf -m gui -p $(DESTDIR)$(pkgdatadir) ++ echo "-m gui -p $(DESTDIR)$(pkgdatadir)" >> %QEMUCOMMAND% + install -d -m 755 $(DESTDIR)$(pkgdatadir)/styles/ + for f in ${STYLES}; do \ + sn=`basename $${f}` ; \ +diff --git a/src/Makefile.am b/src/Makefile.am +index 794e668..2b66870 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -30,7 +30,7 @@ endif + endif + + AM_CXXFLAGS += $(GLIB_DEPS_CFLAGS) +-noinst_PROGRAMS += calfmakerdf ++bin_PROGRAMS += calfmakerdf + calfmakerdf_SOURCES = makerdf.cpp + calfmakerdf_LDADD = calf.la + +@@ -82,7 +82,7 @@ if USE_LV2_GUI + install -c -m 755 $(top_builddir)/src/.libs/calflv2gui.so $(DESTDIR)$(lv2dir)/calflv2gui.so + endif + rm -f $(DESTDIR)$(lv2dir)/*.ttl +- $(top_builddir)/src/calfmakerdf -m ttl -p $(DESTDIR)$(lv2dir)/ -d $(DESTDIR)$(pkgdatadir)/ ++ echo "-m ttl -p $(DESTDIR)$(lv2dir)/ -d $(DESTDIR)$(pkgdatadir)/" >> %QEMUCOMMAND% + if USE_SORDI + for f in $(DESTDIR)$(lv2dir)/*.ttl; do sout=`sordi -o turtle "$$f"`; if test $$? != 0; then echo "RDF file $$f is corrupted:"; echo $$sout"<<<"; fi; done + endif +-- +2.9.5 + diff --git a/recipes-musicians/calf-studio-gear/calf/0002-fluidsynth-Activate-synth.dynamic-sample-loading-for.patch b/recipes-musicians/calf-studio-gear/calf/0002-fluidsynth-Activate-synth.dynamic-sample-loading-for.patch new file mode 100644 index 0000000..5a99307 --- /dev/null +++ b/recipes-musicians/calf-studio-gear/calf/0002-fluidsynth-Activate-synth.dynamic-sample-loading-for.patch @@ -0,0 +1,33 @@ +From 579ce205281dc47c94b0e6392decac9763397a9d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 13 Jan 2019 12:14:52 +0100 +Subject: [PATCH] fluidsynth: Activate synth.dynamic-sample-loading for + fluidsynth >=2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This reduces soundfont load time and memory consumption significantly + +Signed-off-by: Andreas Müller +--- + src/fluidsynth.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/fluidsynth.cpp b/src/fluidsynth.cpp +index 54023dc8..14c018e3 100644 +--- a/src/fluidsynth.cpp ++++ b/src/fluidsynth.cpp +@@ -59,6 +59,9 @@ fluid_synth_t *fluidsynth_audio_module::create_synth(int &new_sfid) + std::fill(set_presets, set_presets + 16, -1); + fluid_settings_t *new_settings = new_fluid_settings(); + fluid_settings_setnum(new_settings, "synth.sample-rate", srate); ++#if FLUIDSYNTH_VERSION_MAJOR >= 2 ++ fluid_settings_setint(new_settings, "synth.dynamic-sample-loading", 1); ++#endif + fluid_synth_t *s = new_fluid_synth(new_settings); + if (!soundfont.empty()) + { +-- +2.20.1 + diff --git a/recipes-musicians/calf-studio-gear/calf/0003-Fix-detection-of-LV2-for-latest-git.patch b/recipes-musicians/calf-studio-gear/calf/0003-Fix-detection-of-LV2-for-latest-git.patch new file mode 100644 index 0000000..4a29990 --- /dev/null +++ b/recipes-musicians/calf-studio-gear/calf/0003-Fix-detection-of-LV2-for-latest-git.patch @@ -0,0 +1,39 @@ +From 021850be25992b8a090182a05ad62660414c964f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 19 Jan 2019 21:48:29 +0100 +Subject: [PATCH 1/2] Fix detection of LV2 for latest git +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +LV2 removed lv2-core.pc in [1]. So find lv2 and set required version to 1.1.4 +which was released in September 2016 and should be avalaible on most +environments. This should be compatible to LV2 1.1.14 because from pkg-config +point of view lv2-core.pc and lv2.pc look similar. + +Upstream-Status: Submitted [2] + +[1] https://github.com/drobilla/lv2/commit/4db67120efca2d4c200d2e1ba5cf3d7b97cab97e +[2] https://github.com/calf-studio-gear/calf/pull/213 + +Signed-off-by: Andreas Müller +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index b9c3d500..a0368773 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -79,7 +79,7 @@ if test "$JACK_FOUND" = "yes"; then + PKG_CHECK_MODULES(JACK_RENAME_PORT, jack >= 1.9.11, JACK_HAS_RENAME="yes", JACK_HAS_RENAME_DUMMY="no") + fi + +-PKG_CHECK_MODULES(LV2_DEPS, lv2core >= 6, LV2_FOUND="yes", LV2_FOUND="no") ++PKG_CHECK_MODULES(LV2_DEPS, lv2 >= 1.1.14, LV2_FOUND="yes", LV2_FOUND="no") + + PKG_CHECK_MODULES(LASH_DEPS, lash-1.0 >= 0.6.0, + AC_CHECK_LIB([lash], [lash_client_is_being_restored], LASH_0_6_FOUND="yes", LASH_0_6_FOUND="no"), +-- +2.20.1 + diff --git a/recipes-musicians/calf-studio-gear/calf/0004-Find-headers-for-all-versions-of-LV2.patch b/recipes-musicians/calf-studio-gear/calf/0004-Find-headers-for-all-versions-of-LV2.patch new file mode 100644 index 0000000..6d7eae3 --- /dev/null +++ b/recipes-musicians/calf-studio-gear/calf/0004-Find-headers-for-all-versions-of-LV2.patch @@ -0,0 +1,75 @@ +From 855cf20b9bb9fec30b72fa05a9b4cd28a1b4d35d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 19 Jan 2019 23:00:49 +0100 +Subject: [PATCH 2/2] Find headers for all versions of LV2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Submitted [1] + +[1] https://github.com/calf-studio-gear/calf/pull/213 + +Signed-off-by: Andreas Müller +--- + src/calf/lv2_options.h | 2 +- + src/calf/lv2_ui.h | 2 +- + src/calf/lv2wrap.h | 2 +- + src/makerdf.cpp | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/calf/lv2_options.h b/src/calf/lv2_options.h +index 29568b8d..d66153da 100644 +--- a/src/calf/lv2_options.h ++++ b/src/calf/lv2_options.h +@@ -20,7 +20,7 @@ + #include + + #include "lv2_urid.h" +-#include "lv2.h" ++#include "lv2/lv2plug.in/ns/lv2core/lv2.h" + + #define LV2_OPTIONS_URI "http://lv2plug.in/ns/ext/options" + #define LV2_OPTIONS_PREFIX LV2_OPTIONS_URI "#" +diff --git a/src/calf/lv2_ui.h b/src/calf/lv2_ui.h +index b802ec59..c3e60822 100644 +--- a/src/calf/lv2_ui.h ++++ b/src/calf/lv2_ui.h +@@ -27,7 +27,7 @@ + + #include + +-#include "lv2.h" ++#include "lv2/lv2plug.in/ns/lv2core/lv2.h" + + #define LV2_UI_URI "http://lv2plug.in/ns/extensions/ui" + #define LV2_UI_PREFIX LV2_UI_URI "#" +diff --git a/src/calf/lv2wrap.h b/src/calf/lv2wrap.h +index 8d6b13c4..d19eae7b 100644 +--- a/src/calf/lv2wrap.h ++++ b/src/calf/lv2wrap.h +@@ -25,7 +25,7 @@ + + #include + #include +-#include ++#include "lv2/lv2plug.in/ns/lv2core/lv2.h" + #include + #include + #include +diff --git a/src/makerdf.cpp b/src/makerdf.cpp +index 0b6cec5c..9f782534 100644 +--- a/src/makerdf.cpp ++++ b/src/makerdf.cpp +@@ -22,7 +22,7 @@ + #include + #include + #if USE_LV2 +-#include ++#include "lv2/lv2plug.in/ns/lv2core/lv2.h" + #include + #include + #include +-- +2.20.1 + diff --git a/recipes-musicians/calf-studio-gear/calf_git.bb b/recipes-musicians/calf-studio-gear/calf_git.bb new file mode 100644 index 0000000..324950f --- /dev/null +++ b/recipes-musicians/calf-studio-gear/calf_git.bb @@ -0,0 +1,64 @@ +SUMMARY = "High quality open source audio plugins for musicians" +HOMEPAGE = "http://calf-studio-gear.org/" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=dcf3c825659e82539645da41a7908589 \ + file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f \ +" + +SRC_URI = " \ + git://github.com/calf-studio-gear/calf.git \ + file://0001-Do-store-calfmakerdf-commandline-for-later-use-in-qe.patch \ + file://0002-fluidsynth-Activate-synth.dynamic-sample-loading-for.patch \ + file://0003-Fix-detection-of-LV2-for-latest-git.patch \ + file://0004-Find-headers-for-all-versions-of-LV2.patch \ +" +SRCREV = "e5c08dc2483c444d18d24a37c395274002320f5c" +S = "${WORKDIR}/git" +PV = "0.90.1" + +inherit autotools-brokensep pkgconfig gtk-icon-cache bash-completion qemu-ext + +DEPENDS += " \ + gtk+ \ + jack \ + fluidsynth \ + liblo \ + ladspa-sdk \ + lv2 \ +" + +EXTRA_OECONF += " \ + --with-lv2-dir=${libdir}/lv2 \ + --enable-experimental \ +" + +do_configure_prepend() { + sed -i 's:%QEMUCOMMAND%:${WORKDIR}/QemuCommands:g' `find ${S} -name Makefile.am` +} + +QEMU_EXTRA_LIBDIR = "${D}${libdir}/calf" + +do_install_prepend() { + # These are installed by calfmakerdf but that's moved to end of installation + install -d ${D}${libdir}/lv2 + install -d ${D}${datadir}/calf +} + +do_install_append() { + # build ttl-files must be done in quemu (lv2-ttl-generator-data loads + # so-files and calls functions to create ttl-files) + cat ${WORKDIR}/QemuCommands | while read calfmakerdf_param; do + ${@qemu_run_binary_local(d, '${STAGING_DIR_TARGET}', '${D}${bindir}/calfmakerdf')} ${calfmakerdf_param} + done + + chown -R root:root ${D}${libdir}/lv2 + chown root:root ${D}${datadir}/calf/*.xml + + # job is done - not needed on target + rm ${D}${bindir}/calfmakerdf + +} + +FILES_${PN} += "${libdir}/lv2" +INSANE_SKIP_${PN} = "dev-so" diff --git a/recipes-musicians/carla/carla/0001-do-not-try-to-cross-run-carla-lv2-export.patch b/recipes-musicians/carla/carla/0001-do-not-try-to-cross-run-carla-lv2-export.patch new file mode 100644 index 0000000..e61af54 --- /dev/null +++ b/recipes-musicians/carla/carla/0001-do-not-try-to-cross-run-carla-lv2-export.patch @@ -0,0 +1,31 @@ +From 88c61efce068b4cfe6d4c175bd9d1b85def23708 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 15 Jul 2017 00:03:36 +0200 +Subject: [PATCH] do not try to cross-run carla-lv2-export +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + source/plugin/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/source/plugin/Makefile b/source/plugin/Makefile +index 59b5c5d..3bcb368 100644 +--- a/source/plugin/Makefile ++++ b/source/plugin/Makefile +@@ -206,7 +206,7 @@ $(BINDIR)/carla.lv2/manifest.ttl: $(OBJDIR)/carla-lv2-export.cpp.o $(LIBS) + ifeq ($(BUILDING_FOR_WINDOWS),true) + @cd $(BINDIR) && wine ./carla-lv2-export$(APP_EXT) + else +- @cd $(BINDIR) && ./carla-lv2-export$(APP_EXT) ++ @cd $(BINDIR) + endif + @cd $(BINDIR)/carla.lv2 && ln -sf ../*bridge-* ../carla-discovery-* . + +-- +2.9.4 + diff --git a/recipes-musicians/carla/carla/0002-Do-not-try-to-find-Qt5-host-bins-it-won-t-work.patch b/recipes-musicians/carla/carla/0002-Do-not-try-to-find-Qt5-host-bins-it-won-t-work.patch new file mode 100644 index 0000000..81a45c1 --- /dev/null +++ b/recipes-musicians/carla/carla/0002-Do-not-try-to-find-Qt5-host-bins-it-won-t-work.patch @@ -0,0 +1,30 @@ +From 079d1a1b34394b76d23ce7d92254cb785333d3e7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 20 Sep 2018 22:44:48 +0200 +Subject: [PATCH] Do not try to find Qt5 host bins - it won't work +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + source/Makefile.mk | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/source/Makefile.mk b/source/Makefile.mk +index 688dca20..07afc7a2 100644 +--- a/source/Makefile.mk ++++ b/source/Makefile.mk +@@ -253,7 +253,6 @@ endif + endif + + ifeq ($(HAVE_QT5),true) +-QT5_HOSTBINS = $(shell pkg-config --variable=host_bins Qt5Core) + MOC_QT5 ?= $(QT5_HOSTBINS)/moc + RCC_QT5 ?= $(QT5_HOSTBINS)/rcc + UIC_QT5 ?= $(QT5_HOSTBINS)/uic +-- +2.14.4 + diff --git a/recipes-musicians/carla/carla/0003-Fluidsynths-Ensure-fluidsynth-s-defaults-are-set-onc.patch b/recipes-musicians/carla/carla/0003-Fluidsynths-Ensure-fluidsynth-s-defaults-are-set-onc.patch new file mode 100644 index 0000000..ba26dfd --- /dev/null +++ b/recipes-musicians/carla/carla/0003-Fluidsynths-Ensure-fluidsynth-s-defaults-are-set-onc.patch @@ -0,0 +1,245 @@ +From d55575c62bd911e1edf126e1efed8219c97bb25a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 10 Oct 2018 23:48:22 +0200 +Subject: [PATCH 1/3] Fluidsynths: Ensure fluidsynth's defaults are set once + and in one place +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This makes transition fluidsynth 1.x -> 2.x a lot easier. + +Upstream-Status: Submitted [1] + +[1] https://github.com/falkTX/Carla/pull/766 + +Signed-off-by: Andreas Müller +--- + source/backend/plugin/CarlaPluginFluidSynth.cpp | 67 ++++++++++++++++++------- + 1 file changed, 48 insertions(+), 19 deletions(-) + +diff --git a/source/backend/plugin/CarlaPluginFluidSynth.cpp b/source/backend/plugin/CarlaPluginFluidSynth.cpp +index be9e720a..7f6d919c 100644 +--- a/source/backend/plugin/CarlaPluginFluidSynth.cpp ++++ b/source/backend/plugin/CarlaPluginFluidSynth.cpp +@@ -73,20 +73,22 @@ public: + fSynth = new_fluid_synth(fSettings); + CARLA_SAFE_ASSERT_RETURN(fSynth != nullptr,); + ++ initializeFluidDefaultsIfNeeded(); ++ + fluid_synth_set_sample_rate(fSynth, (float)pData->engine->getSampleRate()); + + // set default values + fluid_synth_set_reverb_on(fSynth, 1); +- fluid_synth_set_reverb(fSynth, FLUID_REVERB_DEFAULT_ROOMSIZE, FLUID_REVERB_DEFAULT_DAMP, FLUID_REVERB_DEFAULT_WIDTH, FLUID_REVERB_DEFAULT_LEVEL); ++ fluid_synth_set_reverb(fSynth, sFluidDefaults[FluidSynthReverbRoomSize], sFluidDefaults[FluidSynthReverbDamp], sFluidDefaults[FluidSynthReverbWidth], sFluidDefaults[FluidSynthReverbLevel]); + + fluid_synth_set_chorus_on(fSynth, 1); +- fluid_synth_set_chorus(fSynth, FLUID_CHORUS_DEFAULT_N, FLUID_CHORUS_DEFAULT_LEVEL, FLUID_CHORUS_DEFAULT_SPEED, FLUID_CHORUS_DEFAULT_DEPTH, FLUID_CHORUS_DEFAULT_TYPE); ++ fluid_synth_set_chorus(fSynth, sFluidDefaults[FluidSynthChorusNr], sFluidDefaults[FluidSynthChorusLevel], sFluidDefaults[FluidSynthChorusSpeedHz], sFluidDefaults[FluidSynthChorusDepthMs], sFluidDefaults[FluidSynthChorusType]); + + fluid_synth_set_polyphony(fSynth, FLUID_DEFAULT_POLYPHONY); + fluid_synth_set_gain(fSynth, 1.0f); + + for (int i=0; i < MAX_MIDI_CHANNELS; ++i) +- fluid_synth_set_interp_method(fSynth, i, FLUID_INTERP_DEFAULT); ++ fluid_synth_set_interp_method(fSynth, i, sFluidDefaults[FluidSynthInterpolation]); + } + + ~CarlaPluginFluidSynth() override +@@ -195,7 +197,7 @@ public: + case 1: + return FLUID_CHORUS_MOD_TRIANGLE; + default: +- return FLUID_CHORUS_DEFAULT_TYPE; ++ return sFluidDefaults[FluidSynthChorusType]; + } + case FluidSynthInterpolation: + switch (scalePointId) +@@ -209,7 +211,7 @@ public: + case 3: + return FLUID_INTERP_7THORDER; + default: +- return FLUID_INTERP_DEFAULT; ++ return sFluidDefaults[FluidSynthInterpolation]; + } + default: + return 0.0f; +@@ -721,7 +723,7 @@ public: + pData->param.data[j].rindex = j; + pData->param.ranges[j].min = 0.0f; + pData->param.ranges[j].max = 1.0f; +- pData->param.ranges[j].def = 1.0f; ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 1.0f; + pData->param.ranges[j].stepSmall = 1.0f; + pData->param.ranges[j].stepLarge = 1.0f; +@@ -734,7 +736,7 @@ public: + pData->param.data[j].rindex = j; + pData->param.ranges[j].min = 0.0f; + pData->param.ranges[j].max = 1.2f; +- pData->param.ranges[j].def = FLUID_REVERB_DEFAULT_ROOMSIZE; ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 0.01f; + pData->param.ranges[j].stepSmall = 0.0001f; + pData->param.ranges[j].stepLarge = 0.1f; +@@ -747,7 +749,7 @@ public: + pData->param.data[j].rindex = j; + pData->param.ranges[j].min = 0.0f; + pData->param.ranges[j].max = 1.0f; +- pData->param.ranges[j].def = FLUID_REVERB_DEFAULT_DAMP; ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 0.01f; + pData->param.ranges[j].stepSmall = 0.0001f; + pData->param.ranges[j].stepLarge = 0.1f; +@@ -761,7 +763,7 @@ public: + pData->param.data[j].midiCC = MIDI_CONTROL_REVERB_SEND_LEVEL; + pData->param.ranges[j].min = 0.0f; + pData->param.ranges[j].max = 1.0f; +- pData->param.ranges[j].def = FLUID_REVERB_DEFAULT_LEVEL; ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 0.01f; + pData->param.ranges[j].stepSmall = 0.0001f; + pData->param.ranges[j].stepLarge = 0.1f; +@@ -774,7 +776,7 @@ public: + pData->param.data[j].rindex = j; + pData->param.ranges[j].min = 0.0f; + pData->param.ranges[j].max = 10.0f; // should be 100, but that sounds too much +- pData->param.ranges[j].def = FLUID_REVERB_DEFAULT_WIDTH; ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 0.01f; + pData->param.ranges[j].stepSmall = 0.0001f; + pData->param.ranges[j].stepLarge = 0.1f; +@@ -787,7 +789,7 @@ public: + pData->param.data[j].rindex = j; + pData->param.ranges[j].min = 0.0f; + pData->param.ranges[j].max = 1.0f; +- pData->param.ranges[j].def = 1.0f; ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 1.0f; + pData->param.ranges[j].stepSmall = 1.0f; + pData->param.ranges[j].stepLarge = 1.0f; +@@ -800,7 +802,7 @@ public: + pData->param.data[j].rindex = j; + pData->param.ranges[j].min = 0.0f; + pData->param.ranges[j].max = 99.0f; +- pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_N; ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 1.0f; + pData->param.ranges[j].stepSmall = 1.0f; + pData->param.ranges[j].stepLarge = 10.0f; +@@ -813,7 +815,7 @@ public: + pData->param.data[j].rindex = j; + pData->param.ranges[j].min = 0.0f; + pData->param.ranges[j].max = 10.0f; +- pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_LEVEL; ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 0.01f; + pData->param.ranges[j].stepSmall = 0.0001f; + pData->param.ranges[j].stepLarge = 0.1f; +@@ -826,7 +828,7 @@ public: + pData->param.data[j].rindex = j; + pData->param.ranges[j].min = 0.29f; + pData->param.ranges[j].max = 5.0f; +- pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_SPEED; ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 0.01f; + pData->param.ranges[j].stepSmall = 0.0001f; + pData->param.ranges[j].stepLarge = 0.1f; +@@ -839,7 +841,7 @@ public: + pData->param.data[j].rindex = j; + pData->param.ranges[j].min = 0.0f; + pData->param.ranges[j].max = float(2048.0 * 1000.0 / pData->engine->getSampleRate()); // FIXME? +- pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_DEPTH; ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 0.01f; + pData->param.ranges[j].stepSmall = 0.0001f; + pData->param.ranges[j].stepLarge = 0.1f; +@@ -852,7 +854,7 @@ public: + pData->param.data[j].rindex = j; + pData->param.ranges[j].min = FLUID_CHORUS_MOD_SINE; + pData->param.ranges[j].max = FLUID_CHORUS_MOD_TRIANGLE; +- pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_TYPE; ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 1.0f; + pData->param.ranges[j].stepSmall = 1.0f; + pData->param.ranges[j].stepLarge = 1.0f; +@@ -865,7 +867,7 @@ public: + pData->param.data[j].rindex = j; + pData->param.ranges[j].min = 1.0f; + pData->param.ranges[j].max = 512.0f; // max theoric is 65535 +- pData->param.ranges[j].def = (float)fluid_synth_get_polyphony(fSynth); ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 1.0f; + pData->param.ranges[j].stepSmall = 1.0f; + pData->param.ranges[j].stepLarge = 10.0f; +@@ -878,7 +880,7 @@ public: + pData->param.data[j].rindex = j; + pData->param.ranges[j].min = FLUID_INTERP_NONE; + pData->param.ranges[j].max = FLUID_INTERP_HIGHEST; +- pData->param.ranges[j].def = FLUID_INTERP_DEFAULT; ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 1.0f; + pData->param.ranges[j].stepSmall = 1.0f; + pData->param.ranges[j].stepLarge = 1.0f; +@@ -891,7 +893,7 @@ public: + pData->param.data[j].rindex = j; + pData->param.ranges[j].min = 0.0f; + pData->param.ranges[j].max = 65535.0f; +- pData->param.ranges[j].def = 0.0f; ++ pData->param.ranges[j].def = sFluidDefaults[j]; + pData->param.ranges[j].step = 1.0f; + pData->param.ranges[j].stepSmall = 1.0f; + pData->param.ranges[j].stepLarge = 1.0f; +@@ -1656,6 +1658,27 @@ public: + } + + private: ++ void initializeFluidDefaultsIfNeeded() ++ { ++ if (sFluidDefaultsStored) ++ return; ++ sFluidDefaultsStored = true; ++ sFluidDefaults[FluidSynthReverbOnOff] = 1.0f; ++ sFluidDefaults[FluidSynthReverbRoomSize] = FLUID_REVERB_DEFAULT_ROOMSIZE; ++ sFluidDefaults[FluidSynthReverbDamp] = FLUID_REVERB_DEFAULT_DAMP; ++ sFluidDefaults[FluidSynthReverbLevel] = FLUID_REVERB_DEFAULT_LEVEL; ++ sFluidDefaults[FluidSynthReverbWidth] = FLUID_REVERB_DEFAULT_WIDTH; ++ sFluidDefaults[FluidSynthChorusOnOff] = 1.0f; ++ sFluidDefaults[FluidSynthChorusNr] = FLUID_CHORUS_DEFAULT_N; ++ sFluidDefaults[FluidSynthChorusLevel] = FLUID_CHORUS_DEFAULT_LEVEL; ++ sFluidDefaults[FluidSynthChorusSpeedHz] = FLUID_CHORUS_DEFAULT_SPEED; ++ sFluidDefaults[FluidSynthChorusDepthMs] = FLUID_CHORUS_DEFAULT_DEPTH; ++ sFluidDefaults[FluidSynthChorusType] = FLUID_CHORUS_DEFAULT_TYPE; ++ sFluidDefaults[FluidSynthPolyphony] = (float)fluid_synth_get_polyphony(fSynth); ++ sFluidDefaults[FluidSynthInterpolation] = FLUID_INTERP_DEFAULT; ++ sFluidDefaults[FluidSynthVoiceCount] = 0.0f; ++ } ++ + enum FluidSynthParameters { + FluidSynthReverbOnOff = 0, + FluidSynthReverbRoomSize = 1, +@@ -1683,6 +1706,9 @@ private: + float** fAudio16Buffers; + float fParamBuffers[FluidSynthParametersMax]; + ++ static bool sFluidDefaultsStored; ++ static float sFluidDefaults[FluidSynthParametersMax]; ++ + int32_t fCurMidiProgs[MAX_MIDI_CHANNELS]; + + const char* fLabel; +@@ -1690,6 +1716,9 @@ private: + CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaPluginFluidSynth) + }; + ++bool CarlaPluginFluidSynth::sFluidDefaultsStored = false; ++float CarlaPluginFluidSynth::sFluidDefaults[FluidSynthParametersMax]; ++ + CARLA_BACKEND_END_NAMESPACE + + #endif // HAVE_FLUIDSYNTH +-- +2.14.4 + diff --git a/recipes-musicians/carla/carla/0004-Fixes-for-fluidsynth-2.0.0.patch b/recipes-musicians/carla/carla/0004-Fixes-for-fluidsynth-2.0.0.patch new file mode 100644 index 0000000..a88c99d --- /dev/null +++ b/recipes-musicians/carla/carla/0004-Fixes-for-fluidsynth-2.0.0.patch @@ -0,0 +1,143 @@ +From 94c96ee0d04e324122ee1a73344a44f1b21837ef Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 13 Oct 2018 15:16:20 +0200 +Subject: [PATCH 2/3] Fixes for fluidsynth >= 2.0.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* preset iteration and getters have changed +* constants for most defaults are no more available in public headers - + fluidsynth wants to be asked + +Upstream-Status: Submitted [1] + +[1] https://github.com/falkTX/Carla/pull/766 + +Signed-off-by: Andreas Müller +--- + source/backend/plugin/CarlaPluginFluidSynth.cpp | 62 +++++++++++++++++++++++++ + source/discovery/carla-discovery.cpp | 5 ++ + 2 files changed, 67 insertions(+) + +diff --git a/source/backend/plugin/CarlaPluginFluidSynth.cpp b/source/backend/plugin/CarlaPluginFluidSynth.cpp +index 7f6d919c..5645fe3c 100644 +--- a/source/backend/plugin/CarlaPluginFluidSynth.cpp ++++ b/source/backend/plugin/CarlaPluginFluidSynth.cpp +@@ -943,6 +943,7 @@ public: + + if (fluid_sfont_t* const f_sfont = fluid_synth_get_sfont_by_id(fSynth, fSynthId)) + { ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + fluid_preset_t f_preset; + + // initial check to know how many midi-programs we have +@@ -971,6 +972,36 @@ public: + pData->midiprog.data[i].program = (tmp >= 0) ? static_cast(tmp) : 0; + + pData->midiprog.data[i].name = carla_strdup(f_preset.get_name(&f_preset)); ++#else ++ fluid_preset_t* f_preset; ++ ++ // initial check to know how many midi-programs we have ++ fluid_sfont_iteration_start(f_sfont); ++ for (; fluid_sfont_iteration_next(f_sfont);) ++ ++count; ++ ++ // sound kits must always have at least 1 midi-program ++ CARLA_SAFE_ASSERT_RETURN(count > 0,); ++ ++ pData->midiprog.createNew(count); ++ ++ // Update data ++ int tmp; ++ uint32_t i = 0; ++ fluid_sfont_iteration_start(f_sfont); ++ ++ for (; (f_preset = fluid_sfont_iteration_next(f_sfont));) ++ { ++ CARLA_SAFE_ASSERT_BREAK(i < count); ++ ++ tmp = fluid_preset_get_banknum(f_preset); ++ pData->midiprog.data[i].bank = (tmp >= 0) ? static_cast(tmp) : 0; ++ ++ tmp = fluid_preset_get_num(f_preset); ++ pData->midiprog.data[i].program = (tmp >= 0) ? static_cast(tmp) : 0; ++ ++ pData->midiprog.data[i].name = carla_strdup(fluid_preset_get_name(f_preset)); ++#endif + + if (pData->midiprog.data[i].bank == 128 && ! hasDrums) + { +@@ -1663,17 +1694,48 @@ private: + if (sFluidDefaultsStored) + return; + sFluidDefaultsStored = true; ++ // reverb defaults + sFluidDefaults[FluidSynthReverbOnOff] = 1.0f; ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + sFluidDefaults[FluidSynthReverbRoomSize] = FLUID_REVERB_DEFAULT_ROOMSIZE; + sFluidDefaults[FluidSynthReverbDamp] = FLUID_REVERB_DEFAULT_DAMP; + sFluidDefaults[FluidSynthReverbLevel] = FLUID_REVERB_DEFAULT_LEVEL; + sFluidDefaults[FluidSynthReverbWidth] = FLUID_REVERB_DEFAULT_WIDTH; ++#else ++ double reverbVal; ++ fluid_settings_getnum_default(fSettings, "synth.reverb.room-size", &reverbVal); ++ sFluidDefaults[FluidSynthReverbRoomSize] = reverbVal; ++ fluid_settings_getnum_default(fSettings, "synth.reverb.damp", &reverbVal); ++ sFluidDefaults[FluidSynthReverbDamp] = reverbVal; ++ fluid_settings_getnum_default(fSettings, "synth.reverb.level", &reverbVal); ++ sFluidDefaults[FluidSynthReverbLevel] = reverbVal; ++ fluid_settings_getnum_default(fSettings, "synth.reverb.width", &reverbVal); ++ sFluidDefaults[FluidSynthReverbWidth] = reverbVal; ++#endif ++ ++ // chorus defaults + sFluidDefaults[FluidSynthChorusOnOff] = 1.0f; ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + sFluidDefaults[FluidSynthChorusNr] = FLUID_CHORUS_DEFAULT_N; + sFluidDefaults[FluidSynthChorusLevel] = FLUID_CHORUS_DEFAULT_LEVEL; + sFluidDefaults[FluidSynthChorusSpeedHz] = FLUID_CHORUS_DEFAULT_SPEED; + sFluidDefaults[FluidSynthChorusDepthMs] = FLUID_CHORUS_DEFAULT_DEPTH; + sFluidDefaults[FluidSynthChorusType] = FLUID_CHORUS_DEFAULT_TYPE; ++#else ++ double chorusVal; ++ fluid_settings_getnum_default(fSettings, "synth.chorus.nr", &chorusVal); ++ sFluidDefaults[FluidSynthChorusNr] = chorusVal; ++ fluid_settings_getnum_default(fSettings, "synth.chorus.level", &chorusVal); ++ sFluidDefaults[FluidSynthChorusLevel] = chorusVal; ++ fluid_settings_getnum_default(fSettings, "synth.chorus.speed", &chorusVal); ++ sFluidDefaults[FluidSynthChorusSpeedHz] = chorusVal; ++ fluid_settings_getnum_default(fSettings, "synth.chorus.depth", &chorusVal); ++ sFluidDefaults[FluidSynthChorusDepthMs] = chorusVal; ++ // There is no settings for chorus default type ++ sFluidDefaults[FluidSynthChorusType] = (float)fluid_synth_get_chorus_type(fSynth); ++#endif ++ ++ // misc. defaults + sFluidDefaults[FluidSynthPolyphony] = (float)fluid_synth_get_polyphony(fSynth); + sFluidDefaults[FluidSynthInterpolation] = FLUID_INTERP_DEFAULT; + sFluidDefaults[FluidSynthVoiceCount] = 0.0f; +diff --git a/source/discovery/carla-discovery.cpp b/source/discovery/carla-discovery.cpp +index a0745e23..d2cd2931 100644 +--- a/source/discovery/carla-discovery.cpp ++++ b/source/discovery/carla-discovery.cpp +@@ -1323,10 +1323,15 @@ static void do_fluidsynth_check(const char* const filename, const bool doInit) + + if (fluid_sfont_t* const f_sfont = fluid_synth_get_sfont_by_id(f_synth, static_cast(f_id))) + { ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + fluid_preset_t f_preset; + + f_sfont->iteration_start(f_sfont); + for (; f_sfont->iteration_next(f_sfont, &f_preset);) ++#else ++ fluid_sfont_iteration_start(f_sfont); ++ for (; fluid_sfont_iteration_next(f_sfont);) ++#endif + ++programs; + } + +-- +2.14.4 + diff --git a/recipes-musicians/carla/carla_git.bb b/recipes-musicians/carla/carla_git.bb new file mode 100644 index 0000000..b8dfa0b --- /dev/null +++ b/recipes-musicians/carla/carla_git.bb @@ -0,0 +1,71 @@ +SUMMARY = "Audio plugin host" +HOMEPAGE = "http://kxstudio.linuxaudio.org/Applications:Carla" +LICENSE = "GPLv2 & LGPLv3" +LIC_FILES_CHKSUM = " \ + file://doc/GPL.txt;md5=4641e94ec96f98fabc56ff9cc48be14b \ + file://doc/LGPL.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \ +" + +SRC_URI = " \ + git://github.com/falkTX/Carla.git \ + file://0001-do-not-try-to-cross-run-carla-lv2-export.patch \ + file://0002-Do-not-try-to-find-Qt5-host-bins-it-won-t-work.patch \ + file://0003-Fluidsynths-Ensure-fluidsynth-s-defaults-are-set-onc.patch \ + file://0004-Fixes-for-fluidsynth-2.0.0.patch \ +" +SRCREV = "d73c0788ccc5fb9019d224046ef1b652aa5a9bbe" +S = "${WORKDIR}/git" +PV = "1.9.11+git${SRCPV}" + +REQUIRED_DISTRO_FEATURES = "x11" + +inherit qmake5_base pkgconfig qemu-ext distro_features_check mime gtk-icon-cache + +B = "${S}" + +DEPENDS += " \ + python3-pyqt5-native \ + qtbase-native \ + qtbase \ + gtk+ \ + gtk+3 \ + liblo \ + pulseaudio \ + fluidsynth \ + libsndfile1 \ +" + +EXTRA_OEMAKE += " \ + DEFAULT_QT=5 \ + NOOPT=true \ + HAVE_PYQT=true \ + HAVE_PYQT4=false \ + HAVE_PYQT5=true \ + SKIP_STRIPPING=true \ +" + +export QT5_HOSTBINS="${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}" + +do_configure() { + oe_runmake features +} + +do_compile_append() { + cd ${S}/bin + ${@qemu_run_binary_local(d, '${STAGING_DIR_TARGET}', 'carla-lv2-export')} +} + +do_install() { + oe_runmake DESTDIR=${D} PREFIX=${prefix} LIBDIR=${libdir} install +} + +FILES_${PN} += " \ + ${datadir}/icons \ + ${datadir}/mime \ + ${libdir}/lv2 \ + ${libdir}/vst \ +" + +INSANE_SKIP_${PN} = "dev-so" + +RDEPENDS_${PN} += "python3-pyqt5 bash" diff --git a/recipes-musicians/chromaprint/chromaprint_git.bb b/recipes-musicians/chromaprint/chromaprint_git.bb new file mode 100644 index 0000000..c501807 --- /dev/null +++ b/recipes-musicians/chromaprint/chromaprint_git.bb @@ -0,0 +1,22 @@ +SUMMARY = "Chromaprint is library that extracts fingerprints from audio sources" +HOMEPAGE = "https://acoustid.org/chromaprint" +LICENSE = "MIT & LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=5d50f7a9fde1110fa1756b0f5faa26f2" + +inherit cmake + +DEPENDS += " \ + fftw \ + ffmpeg \ +" + + +SRC_URI = "git://github.com/acoustid/chromaprint.git" +SRCREV = "ecd2edd73315530d4f9c1b1186aee24c63a7b6c2" +PV = "1.4.3" +S = "${WORKDIR}/git" + +EXTRA_OECMAKE += " \ + ${@bb.utils.contains('TUNE_FEATURES', 'neon', '-DFFT_LIB=fftw3f', '', d)} \ + -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ +" diff --git a/recipes-musicians/csound/csound_git.bb b/recipes-musicians/csound/csound_git.bb new file mode 100644 index 0000000..a8baa49 --- /dev/null +++ b/recipes-musicians/csound/csound_git.bb @@ -0,0 +1,63 @@ +SUMMARY = "A sound and music computing system" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343" + +inherit cmake gettext python-dir + +# TBD: fltk is not propely detected +DEPENDS += " \ + flex-native \ + bison-native \ + swig-native \ + python \ + alsa-lib \ + libsndfile1 \ + portaudio-v19 \ + portmidi \ + fluidsynth \ + curl \ + fltk \ + liblo \ + stk \ + libvorbis \ + libeigen \ + libwebsockets \ +" + +SRC_URI = " \ + git://github.com/csound/csound.git \ + file://0001-Do-not-set-include-path-to-usr-local-include.patch \ + file://0002-Do-not-use-try_run-for-portaudio.patch \ + file://0003-strict-aliasing-errors.patch \ + file://0004-Engine-csound_orc_semantics.c-Fix-build-with-gcc8.patch \ + file://0005-InOut-pmidi.c-Fix-build-with-gcc8.patch \ + file://0006-fixed-unsafe-use-of-strncpy.patch \ + file://0007-util1-csd_util-cs.c-Fix-build-with-gcc8.patch \ + file://0008-Fix-build-with-fluidsynth-version-2.0.0.patch \ +" +SRCREV = "2905724262b516983e779ed8c589602da4bf3f7d" +S = "${WORKDIR}/git" +PV = "6.11.0" + +# Where to get lua-version from? +LUA_VERSION = "5.3" + +EXTRA_OECMAKE += " \ + -DUSE_DOUBLE=OFF \ + -DPYTHON_MODULE_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} \ + -DUSE_LIB64=${@bb.utils.contains("baselib", "lib64", "ON", "OFF",d)} \ +" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}" +PACKAGECONFIG[pulseaudio] = "-DUSE_PULSEAUDIO=ON,-DUSE_PULSEAUDIO=OFF,pulseaudio,pulseaudio-server" +PACKAGECONFIG[luajit] = "-DLUA_MODULE_INSTALL_DIR=${libdir}/lua/${LUA_VERSION},,luajit" + +PACKAGES =+ " \ + ${PN}-python2 \ + ${PN}-luajit \ +" + +FILES_${PN}-python2 = "${PYTHON_SITEPACKAGES_DIR}" +RDEPENDS_${PN}-python2 += "python" + +FILES_${PN}-luajit = "${libdir}/lua" diff --git a/recipes-musicians/csound/files/0001-Do-not-set-include-path-to-usr-local-include.patch b/recipes-musicians/csound/files/0001-Do-not-set-include-path-to-usr-local-include.patch new file mode 100644 index 0000000..e24e6e2 --- /dev/null +++ b/recipes-musicians/csound/files/0001-Do-not-set-include-path-to-usr-local-include.patch @@ -0,0 +1,31 @@ +From 1ae6204460552d524398765ca3931f73c7647472 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 20 May 2018 20:22:21 +0200 +Subject: [PATCH] Do not set include path to /usr/local/include +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + InOut/CMakeLists.txt | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/InOut/CMakeLists.txt b/InOut/CMakeLists.txt +index 9422575e3..535528c83 100644 +--- a/InOut/CMakeLists.txt ++++ b/InOut/CMakeLists.txt +@@ -16,8 +16,6 @@ option(USE_FLTK "Use FLTK for graphs and widget opcodes" ON) + option(BUILD_VIRTUAL_KEYBOARD "Build Virtual MIDI keyboard" ON) + option(NEED_PORTTIME "porttime library separate from portmidi" ON) + +-set(CMAKE_REQUIRED_INCLUDES /usr/local/include) +- + # FIND LIBRARIES AND HEADERS + + if(USE_ALSA) +-- +2.14.3 + diff --git a/recipes-musicians/csound/files/0002-Do-not-use-try_run-for-portaudio.patch b/recipes-musicians/csound/files/0002-Do-not-use-try_run-for-portaudio.patch new file mode 100644 index 0000000..8b53bc5 --- /dev/null +++ b/recipes-musicians/csound/files/0002-Do-not-use-try_run-for-portaudio.patch @@ -0,0 +1,51 @@ +From 70b48196f3f2eb7a8cd2b21a3c39986bdb24bff2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 20 May 2018 20:59:59 +0200 +Subject: [PATCH] Do not use try_run for portaudio +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Andreas Müller +--- + InOut/CMakeLists.txt | 13 ------------- + 1 file changed, 13 deletions(-) + +diff --git a/InOut/CMakeLists.txt b/InOut/CMakeLists.txt +index 9422575e3..7590a8c01 100644 +--- a/InOut/CMakeLists.txt ++++ b/InOut/CMakeLists.txt +@@ -27,19 +27,6 @@ endif() + if(USE_PORTAUDIO) + find_path(PORTAUDIO_INCLUDE_PATH portaudio.h) + find_library(PORTAUDIO_LIBRARY NAMES portaudio portaudio_x64) +- +- if(PORTAUDIO_INCLUDE_PATH AND PORTAUDIO_LIBRARY) +- try_run(PORTAUDIO_V19 PORTAUDIO_TEST_COMPILED +- ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/portaudio_test.c +- CMAKE_FLAGS -DLINK_LIBRARIES:STRING=${PORTAUDIO_LIBRARY} +- COMPILE_DEFINITIONS "-I${PORTAUDIO_INCLUDE_PATH}" +- COMPILE_OUTPUT_VARIABLE OUTPUT) +- if(NOT PORTAUDIO_TEST_COMPILED AND NOT WIN32) +- set(PORTAUDIO_V19 false) +- endif() +- else() +- set(PORTAUDIO_V19 false) +- endif() + endif() + if(USE_PORTMIDI) + find_path(PORTMIDI_INCLUDE_PATH portmidi.h) +@@ -117,7 +117,7 @@ endif() + if(WIN32) + check_deps(USE_PORTAUDIO PORTAUDIO_INCLUDE_PATH PORTAUDIO_LIBRARY) + else() +- check_deps(USE_PORTAUDIO PORTAUDIO_INCLUDE_PATH PORTAUDIO_LIBRARY PORTAUDIO_TEST_COMPILED) ++ check_deps(USE_PORTAUDIO PORTAUDIO_INCLUDE_PATH PORTAUDIO_LIBRARY) + endif() + if(USE_PORTAUDIO AND PORTAUDIO_V19 MATCHES 1) + message(STATUS "Building rtpa module.") +-- +2.14.3 + diff --git a/recipes-musicians/csound/files/0003-strict-aliasing-errors.patch b/recipes-musicians/csound/files/0003-strict-aliasing-errors.patch new file mode 100644 index 0000000..763ba7c --- /dev/null +++ b/recipes-musicians/csound/files/0003-strict-aliasing-errors.patch @@ -0,0 +1,117 @@ +From 7e2f3f49670166804529c6b9ff1398f38999d921 Mon Sep 17 00:00:00 2001 +From: veplaini +Date: Fri, 11 May 2018 14:05:49 +0100 +Subject: [PATCH] strict aliasing errors + +--- + Engine/musmon.c | 2 +- + Engine/rdscor.c | 8 +++++--- + OOps/schedule.c | 19 ++++++++++++++----- + 3 files changed, 20 insertions(+), 9 deletions(-) + +Upstream-Status: Backport + +diff --git a/Engine/musmon.c b/Engine/musmon.c +index 440642489..8f4cc22cf 100644 +--- a/Engine/musmon.c ++++ b/Engine/musmon.c +@@ -1033,7 +1033,7 @@ int sensevents(CSOUND *csound) + if (!(rdscor(csound, e))){ + /* or rd nxt evt from scstr */ + e->opcod = 'e'; +- } ++ } + csound->currevent = e; + + switch (e->opcod) { +diff --git a/Engine/rdscor.c b/Engine/rdscor.c +index f39393725..fe6488cb2 100644 +--- a/Engine/rdscor.c ++++ b/Engine/rdscor.c +@@ -142,7 +142,7 @@ int rdscor(CSOUND *csound, EVTBLK *e) /* read next score-line from scorefile */ + { /* presumes good format if warped */ + MYFLT *pp, *plim; + int c; +- ++ + e->pinstance = NULL; + if (csound->scstr == NULL || + csound->scstr->body[0] == '\0') { /* if no concurrent scorefile */ +@@ -151,12 +151,14 @@ int rdscor(CSOUND *csound, EVTBLK *e) /* read next score-line from scorefile */ + e->p[2] = FL(INF); + e->p2orig = FL(INF); + e->pcnt = 2; ++ + return(1); + } ++ + /* else read the real score */ + while ((c = corfile_getc(csound->scstr)) != '\0') { + csound->scnt = 0; +- switch (c) { ++ switch (c) { + case ' ': + case '\t': + case '\n': +@@ -193,7 +195,7 @@ int rdscor(CSOUND *csound, EVTBLK *e) /* read next score-line from scorefile */ + goto setp; + case 'e': + e->opcod = c; +- e->pcnt = 0; ++ e->pcnt = 0; + return(1); + case EOF: /* necessary for cscoreGetEvent */ + return(0); +diff --git a/OOps/schedule.c b/OOps/schedule.c +index b87897ec9..6dd60e94f 100644 +--- a/OOps/schedule.c ++++ b/OOps/schedule.c +@@ -79,7 +79,7 @@ int32_t schedule_N(CSOUND *csound, SCHED *p) + { + int32_t i; + int32_t argno = p->INOCOUNT+1; +- char s[16384]; ++ char s[16384], sf[64]; + sprintf(s, "i %f %f %f", *p->which, *p->when, *p->dur); + for (i=4; i < argno ; i++) { + MYFLT *arg = p->argums[i-4]; +@@ -87,8 +87,12 @@ int32_t schedule_N(CSOUND *csound, SCHED *p) + add_string_arg(s, ((STRINGDAT *)arg)->data); + //sprintf(s, "%s \"%s\" ", s, ((STRINGDAT *)arg)->data); + } +- else sprintf(s, "%s %f", s, *arg); +- ++ else { ++ sprintf(sf, " %f", *arg); ++ if(strlen(s) < 16384) ++ strncat(s, sf, 16384-strlen(s)); ++ //sprintf(s, "%s %f", s, *arg); ++ } + } + + csoundInputMessageInternal(csound, s); +@@ -99,14 +103,19 @@ int32_t schedule_SN(CSOUND *csound, SCHED *p) + { + int32_t i; + int32_t argno = p->INOCOUNT+1; +- char s[16384]; ++ char s[16384], sf[64]; + sprintf(s, "i \"%s\" %f %f", ((STRINGDAT *)p->which)->data, *p->when, *p->dur); + for (i=4; i < argno ; i++) { + MYFLT *arg = p->argums[i-4]; + if (csoundGetTypeForArg(arg) == &CS_VAR_TYPE_S) + //sprintf(s, "%s \"%s\" ", s, ((STRINGDAT *)arg)->data); + add_string_arg(s, ((STRINGDAT *)arg)->data); +- else sprintf(s, "%s %f", s, *arg); ++ else { ++ sprintf(sf, " %f", *arg); ++ if(strlen(s) < 16384) ++ strncat(s, sf, 16384-strlen(s)); ++ //sprintf(s, "%s %f", s, *arg); ++ } + } + //printf("%s\n", s); + csoundInputMessageInternal(csound, s); +-- +2.14.4 + diff --git a/recipes-musicians/csound/files/0004-Engine-csound_orc_semantics.c-Fix-build-with-gcc8.patch b/recipes-musicians/csound/files/0004-Engine-csound_orc_semantics.c-Fix-build-with-gcc8.patch new file mode 100644 index 0000000..f784810 --- /dev/null +++ b/recipes-musicians/csound/files/0004-Engine-csound_orc_semantics.c-Fix-build-with-gcc8.patch @@ -0,0 +1,84 @@ +From 9d4fef967e622faec90bbed00fb00383e85e328c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 2 Jul 2018 00:22:14 +0200 +Subject: [PATCH] Engine/csound_orc_semantics.c: Fix build with gcc8 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:73:7: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation] + strncpy(retVal, str, len); + ^~~~~~~~~~~~~~~~~~~~~~~~~ +/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:69:11: note: length computed here + len = strlen(str); + ^~~~~~~~~~~ +/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c: In function 'get_arg_type2': +/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:450:7: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation] + strncpy(inArgTypes, argTypeLeft, len1); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:446:14: note: length computed here + len1 = strlen(argTypeLeft); + ^~~~~~~~~~~~~~~~~~~ +/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:451:7: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation] + strncpy(inArgTypes + len1, argTypeRight, len2); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:447:14: note: length computed here + len2 = strlen(argTypeRight); + ^~~~~~~~~~~~~~~~~~~~ +/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:392:9: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation] + strncpy(inArgTypes, argTypeLeft, len1); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:388:16: note: length computed here + len1 = strlen(argTypeLeft); + ^~~~~~~~~~~~~~~~~~~ +/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:393:9: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation] + strncpy(inArgTypes + len1, argTypeRight, len2); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:389:16: note: length computed here + len2 = strlen(argTypeRight); + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + Engine/csound_orc_semantics.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/Engine/csound_orc_semantics.c b/Engine/csound_orc_semantics.c +index 6b6255d9c..5985b2435 100644 +--- a/Engine/csound_orc_semantics.c ++++ b/Engine/csound_orc_semantics.c +@@ -70,7 +70,7 @@ char* cs_strdup(CSOUND* csound, char* str) { + retVal = csound->Malloc(csound, len + 1); + + if (len > 0) { +- strncpy(retVal, str, len); ++ strncpy(retVal, str, len+1); + } + retVal[len] = '\0'; + +@@ -389,8 +389,8 @@ char* get_arg_type2(CSOUND* csound, TREE* tree, TYPE_TABLE* typeTable) + len2 = strlen(argTypeRight); + inArgTypes = csound->Malloc(csound, len1 + len2 + 1); + +- strncpy(inArgTypes, argTypeLeft, len1); +- strncpy(inArgTypes + len1, argTypeRight, len2); ++ strncpy(inArgTypes, argTypeLeft, len1+1); ++ strncpy(inArgTypes + len1, argTypeRight, len2+1); + + inArgTypes[len1 + len2] = '\0'; + +@@ -447,8 +447,8 @@ char* get_arg_type2(CSOUND* csound, TREE* tree, TYPE_TABLE* typeTable) + len2 = strlen(argTypeRight); + inArgTypes = csound->Malloc(csound, len1 + len2 + 1); + +- strncpy(inArgTypes, argTypeLeft, len1); +- strncpy(inArgTypes + len1, argTypeRight, len2); ++ strncpy(inArgTypes, argTypeLeft, len1+1); ++ strncpy(inArgTypes + len1, argTypeRight, len2+1); + + inArgTypes[len1 + len2] = '\0'; + +-- +2.14.4 + diff --git a/recipes-musicians/csound/files/0005-InOut-pmidi.c-Fix-build-with-gcc8.patch b/recipes-musicians/csound/files/0005-InOut-pmidi.c-Fix-build-with-gcc8.patch new file mode 100644 index 0000000..eb7e9c1 --- /dev/null +++ b/recipes-musicians/csound/files/0005-InOut-pmidi.c-Fix-build-with-gcc8.patch @@ -0,0 +1,41 @@ +From 599e78547a32ec3cd01ce9e007531b765f4168ee Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 2 Jul 2018 00:39:01 +0200 +Subject: [PATCH] InOut/pmidi.c: Fix build with gcc8 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + InOut/pmidi.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/InOut/pmidi.c b/InOut/pmidi.c +index 8dfe0e71d..f6de618cf 100644 +--- a/InOut/pmidi.c ++++ b/InOut/pmidi.c +@@ -188,14 +188,14 @@ static int listDevices(CSOUND *csound, CS_MIDIDEVICE *list, int isOutput){ + for (i = 0; i < cnt; i++) { + info = portMidi_getDeviceInfo(i, isOutput); + if (info->name != NULL) +- strncpy(list[i].device_name, info->name, 63); ++ strncpy(list[i].device_name, info->name, 64); + snprintf(tmp, 64, "%d", i); +- strncpy(list[i].device_id, tmp, 63); ++ strncpy(list[i].device_id, tmp, 64); + list[i].isOutput = isOutput; + if (info->interf != NULL) +- strncpy(list[i].interface_name, info->interf, 63); ++ strncpy(list[i].interface_name, info->interf, 64); + else strcpy(list[i].interface_name, ""); +- strncpy(list[i].midi_module, drv, 63); ++ strncpy(list[i].midi_module, drv, 64); + } + return cnt; + } +-- +2.14.4 + diff --git a/recipes-musicians/csound/files/0006-fixed-unsafe-use-of-strncpy.patch b/recipes-musicians/csound/files/0006-fixed-unsafe-use-of-strncpy.patch new file mode 100644 index 0000000..7ab8e6a --- /dev/null +++ b/recipes-musicians/csound/files/0006-fixed-unsafe-use-of-strncpy.patch @@ -0,0 +1,27 @@ +From 3d5e27ea49f67b38a39ad831d18e8abd17b3a9bc Mon Sep 17 00:00:00 2001 +From: vlazzarini +Date: Sun, 27 May 2018 11:18:08 +0100 +Subject: [PATCH] fixed unsafe use of strncpy + +Upstream-Status: Backport + +--- + util1/scot/scot.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/util1/scot/scot.c b/util1/scot/scot.c +index 857bb08ce..5b9a0eb96 100644 +--- a/util1/scot/scot.c ++++ b/util1/scot/scot.c +@@ -684,7 +684,7 @@ void addparam(int n, /* number of param to change */ + + ps = findparam(n, ptop); + if (strcmp(s, ".")) +- strncpy(ps, s, 1+strlen(s)); ++ strncpy(ps, s, 31); + } + + static /* returns pointer to */ +-- +2.14.4 + diff --git a/recipes-musicians/csound/files/0007-util1-csd_util-cs.c-Fix-build-with-gcc8.patch b/recipes-musicians/csound/files/0007-util1-csd_util-cs.c-Fix-build-with-gcc8.patch new file mode 100644 index 0000000..07c0092 --- /dev/null +++ b/recipes-musicians/csound/files/0007-util1-csd_util-cs.c-Fix-build-with-gcc8.patch @@ -0,0 +1,46 @@ +From a070eaef29510f9138055896975917211d4fe61f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 2 Jul 2018 00:55:16 +0200 +Subject: [PATCH] util1/csd_util/cs.c: Fix build with gcc8 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + util1/csd_util/cs.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/util1/csd_util/cs.c b/util1/csd_util/cs.c +index a05ee3b43..768843fff 100644 +--- a/util1/csd_util/cs.c ++++ b/util1/csd_util/cs.c +@@ -385,7 +385,7 @@ int main(int argc, char **argv) + while (--j) { + i++; + if (argv[i][0] != '-' && i < 3 && tmp[0] == '\0') { +- strncpy(tmp, argv[i],256); ++ strncpy(tmp, argv[i],255); + /* strip extension */ + if (is_orc(tmp) || is_sco(tmp) || is_mid(tmp) || is_csd(tmp)) + tmp[strlen(tmp) - 4] = '\0'; +@@ -428,12 +428,12 @@ int main(int argc, char **argv) + /* (the last option has the highest precedence) */ + s = getenv("CSOUND"); + if (s != NULL) /* get default setting from CSOUND, if available */ +- strncpy(tmp, s, 256); ++ strncpy(tmp, s, 255); + for (i = (int) strlen(optlst); --i >= 0; ) { + sprintf(tmp2, "CSOUND_%c", optlst[i]); + s = getenv(tmp2); + if (s != NULL) { +- strncpy(tmp, s, 256); ++ strncpy(tmp, s, 255); + if (tmp[0] != '\0') break; + } + } +-- +2.14.4 + diff --git a/recipes-musicians/csound/files/0008-Fix-build-with-fluidsynth-version-2.0.0.patch b/recipes-musicians/csound/files/0008-Fix-build-with-fluidsynth-version-2.0.0.patch new file mode 100644 index 0000000..9c19b8e --- /dev/null +++ b/recipes-musicians/csound/files/0008-Fix-build-with-fluidsynth-version-2.0.0.patch @@ -0,0 +1,53 @@ +From 281beca9614fa8b5c09527809a6810525faf2177 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 10 Oct 2018 20:47:04 +0200 +Subject: [PATCH] Fix build with fluidsynth version >= 2.0.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Please not that the second change set at + +Upstream-Status: Backport [1] + +[1] https://github.com/csound/csound/pull/1046 + +Signed-off-by: Andreas Müller +--- + Opcodes/fluidOpcodes/fluidOpcodes.cpp | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +diff --git a/Opcodes/fluidOpcodes/fluidOpcodes.cpp b/Opcodes/fluidOpcodes/fluidOpcodes.cpp +index d6f4da0fd..aa2b9d4b2 100644 +--- a/Opcodes/fluidOpcodes/fluidOpcodes.cpp ++++ b/Opcodes/fluidOpcodes/fluidOpcodes.cpp +@@ -208,6 +208,7 @@ public: + } else if (listPresets) { + fluid_sfont_t *fluidSoundfont = + fluid_synth_get_sfont_by_id(fluidSynth, soundFontId); ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + fluid_preset_t fluidPreset; + fluidSoundfont->iteration_start(fluidSoundfont); + OPARMS oparms; +@@ -218,6 +219,18 @@ public: + soundFontId, fluidPreset.get_banknum(&fluidPreset), + fluidPreset.get_num(&fluidPreset), + fluidPreset.get_name(&fluidPreset)); ++#else ++ fluid_preset_t *fluidPreset; ++ fluid_sfont_iteration_start(fluidSoundfont); ++ OPARMS oparms; ++ csound->GetOParms(csound, &oparms); ++ if (oparms.msglevel & 0x7) ++ while ((fluidPreset = fluid_sfont_iteration_next(fluidSoundfont))) { ++ log(csound, "SoundFont: %3d Bank: %3d Preset: %3d %s\n", ++ soundFontId, fluid_preset_get_banknum(fluidPreset), ++ fluid_preset_get_num(fluidPreset), ++ fluid_preset_get_name(fluidPreset)); ++#endif + } + } + return result; +-- +2.14.4 + diff --git a/recipes-musicians/device-control/lpd8editor/files/lpd8-editor.desktop b/recipes-musicians/device-control/lpd8editor/files/lpd8-editor.desktop new file mode 100644 index 0000000..7e5f408 --- /dev/null +++ b/recipes-musicians/device-control/lpd8editor/files/lpd8-editor.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=lpd8-editor +GenericName=AKAI LPD8 editor +GenericName[fr]=Utilitaire de contrôle pour les AKAI LPD8 +Comment=Control AKAI LPD8 +Comment[fr]=Utilitaire de contrôle pour les AKAI LPD8 +Icon=lpd8-editor +Type=Application +Categories=AudioVideo;Audio; +Exec=lpd8-editor +Terminal=false + diff --git a/recipes-musicians/device-control/lpd8editor/lpd8editor_0.0.10.bb b/recipes-musicians/device-control/lpd8editor/lpd8editor_0.0.10.bb new file mode 100644 index 0000000..a2b4770 --- /dev/null +++ b/recipes-musicians/device-control/lpd8editor/lpd8editor_0.0.10.bb @@ -0,0 +1,24 @@ +SUMMARY = "A linux editor for the Akai LPD8" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=6dc9df5fa3108f437a4580b0aebca196" + +inherit pkgconfig qmake5 gtk-icon-cache + +DEPENDS += " \ + qtbase \ + qtsvg \ + alsa-lib \ +" + +SRC_URI = " \ + git://github.com/charlesfleche/lpd8editor.git \ + file://lpd8-editor.desktop \ +" +SRCREV = "5ca6f2b90889893e0633b23ffe0e4a014096656a" +PV = "0.0.12" +S = "${WORKDIR}/git" + +do_install_append() { + install -Dm 644 ${WORKDIR}/lpd8-editor.desktop ${D}/${datadir}/applications/lpd8-editor.desktop + install -Dm 644 ${S}/lpd8editor.svg ${D}/${datadir}/icons/hicolor/scalable/apps/lpd8-editor.svg +} diff --git a/recipes-musicians/distrho/distrho-ports-extra.bb b/recipes-musicians/distrho/distrho-ports-extra.bb new file mode 100644 index 0000000..8ca9ba4 --- /dev/null +++ b/recipes-musicians/distrho/distrho-ports-extra.bb @@ -0,0 +1,69 @@ +SUMMARY = "Collection of synthesizers and plugins" +HOMEPAGE = "http://distrho.sourceforge.net/ports" +LICENSE = "GPLv2 & MIT" +LIC_FILES_CHKSUM = " \ + file://ports/argotlunar/README.md;md5=81abc323be6ba481ab72864b53b3daca \ + file://ports/protoplug/license.txt;md5=56b9d913eb7c3ef00ca375ab614bf02f \ +" + +SRC_URI = " \ + git://github.com/DISTRHO/DISTRHO-Ports-Extra.git \ +" +# TODO: +# argolunar: no sound (presets?) +# pdpulp: segfault +# protoplug asks for files + +SRCREV = "b6f25f1feb4de49136844f20d88bec6439cdfbc5" +S = "${WORKDIR}/git" +PV = "0.0.0+git${SRCPV}" + +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +inherit lv2-postinst-helper distro_features_check pack_audio_plugins + +# distro-ports dependency for special hack script / libs +DEPENDS += " \ + premake3-native \ + virtual/libgl \ + libx11 \ + libxext \ + libxcursor \ + freetype \ + csound \ + distrho-ports \ +" + +do_configure() { + # reconfigure? + if [ ! -f ${LV2-TURTLE-BUILD-DATA} ] ; then + # Seems this collection is not ready for public - copy 'shared' from distrho-ports + rm -rf ${S}/scripts + rm -rf ${S}/libs + cp -rf ${STAGING_LIBDIR}/distrho-ports-build/* ${S}/ + # manipulate scripts to keep lv2_ttl_generator-calls in script for lv2-postinst-helper + sed -i 's|$GEN ./$FILE|echo "lv2-ttl-generator `pwd`/$FILE" >> ${LV2-TURTLE-BUILD-DATA}|g' `find ${S}/scripts -name *.sh` + else + rm -f ${LV2-TURTLE-BUILD-DATA} + fi + + cd ${S} + # platforms supporting sse2 can override NOOPTIMIZATIONS + NOOPTIMIZATIONS=1 ${S}/scripts/premake-update.sh linux +} + +do_install() { + install -d ${D}${libdir} + cp -r ${S}/bin/* ${D}${libdir} +} + +FILES_${PN} += " \ + ${libdir}/cabbage* \ +" + +# for common (?) cabbage files +RDEPENDS_${PN}-lv2 += "${PN}" +RDEPENDS_${PN}-vst += "${PN}" + +# Have not found what causes stripping - debugging of plugins is unlikely +INSANE_SKIP_${PN} = "already-stripped" diff --git a/recipes-musicians/distrho/distrho-ports.bb b/recipes-musicians/distrho/distrho-ports.bb new file mode 100644 index 0000000..be008e6 --- /dev/null +++ b/recipes-musicians/distrho/distrho-ports.bb @@ -0,0 +1,96 @@ +SUMMARY = "Collection of synthesizers and plugins" +HOMEPAGE = "http://distrho.sourceforge.net/ports" +LICENSE = "GPLv2 & LGPLv3" +LIC_FILES_CHKSUM = " \ + file://doc/GPL.txt;md5=4641e94ec96f98fabc56ff9cc48be14b \ + file://doc/LGPL.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \ +" + +SRC_URI = " \ + git://github.com/DISTRHO/DISTRHO-Ports.git \ + file://0001-disable-pitchedDelay-it-uses-double-precision-SSE2-b.patch \ + file://0002-Refine-Plugin-do-not-include-xmmintrin.h.patch \ + \ + http://linuxsynths.com/ObxdPatchesDemos/ObxdPatchesBrian-01.tar.gz;name=linuxsynths-obxd-patches1;subdir=linuxsynths-obxd-patches \ + \ + http://linuxsynths.com/VexPatchesDemos/VexPatches01.tar.gz;name=linuxsynths-vex-patches1;subdir=linuxsynths-vex-patches \ + http://linuxsynths.com/VexPatchesDemos/VexPatches02.tar.gz;name=linuxsynths-vex-patches2;subdir=linuxsynths-vex-patches \ +" + +SRCREV = "a82fff059baafc03f7c0e8b9a99f383af7bfbd79" +S = "${WORKDIR}/git" +PV = "2018-04-16" + +SRC_URI[linuxsynths-obxd-patches1.md5sum] = "32244f847a54a71ee3c25079df5c8b84" +SRC_URI[linuxsynths-obxd-patches1.sha256sum] = "246fccadd71bb9f0606a95bf7b0aee7807fd3a14f754367425423a51c31e160e" + +SRC_URI[linuxsynths-vex-patches1.md5sum] = "c03f8ac9eaf3fabb3c98af5cb27a5edb" +SRC_URI[linuxsynths-vex-patches1.sha256sum] = "1a32ba4ba52d0efcd2214e52ecf9ea71885d110261c2b26e23ccdbd0960b6f60" +SRC_URI[linuxsynths-vex-patches2.md5sum] = "a3d00bf9eb7e2381ffc56f3e79e067ec" +SRC_URI[linuxsynths-vex-patches2.sha256sum] = "378cff261dab333c5f29246b6f3f557e0461e8bc230519da3a1a9049cbd437d5" + +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +inherit lv2-postinst-helper distro_features_check pack_audio_plugins + +DEPENDS += " \ + premake3-native \ + virtual/libgl \ + alsa-lib \ + libx11 \ + libxext \ + libxcursor \ + freetype \ + ladspa-sdk \ +" + +do_configure() { + # reconfigure? + if [ ! -f ${LV2-TURTLE-BUILD-DATA} ] ; then + # keep unmodified scripts + cp -r ${S}/scripts ${WORKDIR} + # manipulate scripts to keep lv2_ttl_generator-calls in script for lv2-postinst-helper + sed -i 's|$GEN ./$FILE|echo "lv2-ttl-generator `pwd`/$FILE" >> ${LV2-TURTLE-BUILD-DATA}|g' `find ${S}/scripts -name *.sh` + else + rm -f ${LV2-TURTLE-BUILD-DATA} + fi + + # platforms supporting sse2 can override this (NOOPTIMIZATIONS) + NOOPTIMIZATIONS=1 ${S}/scripts/premake-update.sh linux +} + +do_install() { + install -d ${D}${libdir} + cp -r ${S}/bin/* ${D}${libdir} + + # presets + install -d ${D}${libdir}/lv2 + # obxd + for file in `find ${WORKDIR}/linuxsynths-obxd-patches -mindepth 1 -maxdepth 1` ; do + cp -rf $file ${D}${libdir}/lv2/ + done + # vex + for file in `find ${WORKDIR}/linuxsynths-vex-patches -mindepth 1 -maxdepth 1` ; do + cp -rf $file ${D}${libdir}/lv2/ + done + + # install scripts for distro-ports-extra (and abuse libdir to ensure is is found in sysroot) + install -d ${D}/${libdir}/distrho-ports-build + cp -rf ${WORKDIR}/scripts ${D}${libdir}/distrho-ports-build/ + cp -rf ${S}/libs ${D}${libdir}/distrho-ports-build/ + rm -f ${D}${libdir}/distrho-ports-build/libs/lv2_ttl_generator +} + +PACKAGES =+ "${PN}-presets" +RDEPENDS_${PN}-presets = "${PN}-lv2" + +FILES_${PN}-presets = "${libdir}/lv2/*.preset.lv2" + +# dummy pack scripts for distrho-ports-extra +FILES_${PN}-staticdev += " \ + ${libdir}/distrho-ports-build \ +" +RDEPENDS_${PN}-staticdev = "bash perl" + +# Have not found what causes stripping - debugging of plugins is unlikely +INSANE_SKIP_${PN} = "already-stripped" diff --git a/recipes-musicians/distrho/distrho-ports/0001-disable-pitchedDelay-it-uses-double-precision-SSE2-b.patch b/recipes-musicians/distrho/distrho-ports/0001-disable-pitchedDelay-it-uses-double-precision-SSE2-b.patch new file mode 100644 index 0000000..91dc301 --- /dev/null +++ b/recipes-musicians/distrho/distrho-ports/0001-disable-pitchedDelay-it-uses-double-precision-SSE2-b.patch @@ -0,0 +1,57 @@ +From b1b48a24ed4eda34e4dc4d649a1ef030c37694ec Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 26 Jun 2017 23:12:22 +0200 +Subject: [PATCH] disable pitchedDelay - it uses double precision SSE2 by + default +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Our build system should setz proper flags. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + ports/Makefile | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/ports/Makefile b/ports/Makefile +index d87da4af..521d9e1e 100644 +--- a/ports/Makefile ++++ b/ports/Makefile +@@ -59,7 +59,6 @@ else + $(MAKE) -C LUFSMeter/LV2-Multi + $(MAKE) -C luftikus/LV2 + $(MAKE) -C obxd/LV2 +- $(MAKE) -C pitchedDelay/LV2 + $(MAKE) -C refine/LV2 + $(MAKE) -C stereosourceseparation/LV2 + $(MAKE) -C tal-dub-3/LV2 +@@ -98,7 +97,6 @@ vst: libs + $(MAKE) -C LUFSMeter/VST-Multi + $(MAKE) -C luftikus/VST + $(MAKE) -C obxd/VST +- $(MAKE) -C pitchedDelay/VST + $(MAKE) -C refine/VST + $(MAKE) -C stereosourceseparation/VST + $(MAKE) -C tal-dub-3/VST +@@ -136,7 +134,6 @@ clean: + $(MAKE) clean -C LUFSMeter/LV2-Multi + $(MAKE) clean -C luftikus/LV2 + $(MAKE) clean -C obxd/LV2 +- $(MAKE) clean -C pitchedDelay/LV2 + $(MAKE) clean -C refine/LV2 + $(MAKE) clean -C stereosourceseparation/LV2 + $(MAKE) clean -C tal-dub-3/LV2 +@@ -170,7 +167,6 @@ clean: + $(MAKE) clean -C LUFSMeter/VST-Multi + $(MAKE) clean -C luftikus/VST + $(MAKE) clean -C obxd/VST +- $(MAKE) clean -C pitchedDelay/VST + $(MAKE) clean -C refine/VST + $(MAKE) clean -C stereosourceseparation/VST + $(MAKE) clean -C tal-dub-3/VST +-- +2.14.3 + diff --git a/recipes-musicians/distrho/distrho-ports/0002-Refine-Plugin-do-not-include-xmmintrin.h.patch b/recipes-musicians/distrho/distrho-ports/0002-Refine-Plugin-do-not-include-xmmintrin.h.patch new file mode 100644 index 0000000..eea981a --- /dev/null +++ b/recipes-musicians/distrho/distrho-ports/0002-Refine-Plugin-do-not-include-xmmintrin.h.patch @@ -0,0 +1,27 @@ +From 8681831fa6fc5e58a7eebfc46bb0a467c8f19dcc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 29 Dec 2017 23:36:46 +0100 +Subject: [PATCH] Refine-Plugin: do not include "xmmintrin.h" +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas Müller +--- + ports/refine/source/PluginProcessor.cpp | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/ports/refine/source/PluginProcessor.cpp b/ports/refine/source/PluginProcessor.cpp +index 6c9e6182..ab50a6ad 100644 +--- a/ports/refine/source/PluginProcessor.cpp ++++ b/ports/refine/source/PluginProcessor.cpp +@@ -1,6 +1,5 @@ + #include "PluginProcessor.h" + #include "PluginEditor.h" +-#include "xmmintrin.h" + + ReFinedAudioProcessor::ReFinedAudioProcessor() + { +-- +2.14.3 + diff --git a/recipes-musicians/distrho/dpf-plugins.bb b/recipes-musicians/distrho/dpf-plugins.bb new file mode 100644 index 0000000..cf23774 --- /dev/null +++ b/recipes-musicians/distrho/dpf-plugins.bb @@ -0,0 +1,65 @@ +SUMMARY = "Collection of DPF-based plugins" +LICENSE = "ISC & GPLv2 & GPLv3 & LGPLv3 & MIT" +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=ec024abddfab2ee463c8c1ad98883d12 \ +" + +SRC_URI = " \ + git://github.com/DISTRHO/DPF-Plugins.git \ +" + +SRCREV = "3adff289617ed32f9d0cb679b05e430531cbf0dd" +S = "${WORKDIR}/git" +PV = "v1.1+git${SRCPV}" + +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +inherit qemu-ext distro_features_check pkgconfig pack_audio_plugins + +# TODO standalones: DEPEND jack / install / *.desktop +DEPENDS += " \ + virtual/libgl \ + ladspa-sdk \ + lv2 \ + projectm \ +" + +do_compile_prepend() { + export NOOPT=true + rm -f ${WORKDIR}/lv2_ttl_generator-data + # manipulate scripts to keep lv2_ttl_generator-calls in script for qemu + sed -i 's|"$GEN" "./$FILE"|echo `pwd`/$FILE >> ${WORKDIR}/lv2_ttl_generator-data|g' ${S}/dpf/utils/generate-ttl.sh +} + +do_compile_append() { + # build ttl-files must be done in quemu + for sofile in `cat ${WORKDIR}/lv2_ttl_generator-data`; do + cd `dirname ${sofile}` + echo "QEMU lv2_ttl_generator for ${sofile}..." + ${@qemu_run_binary_local(d, '${STAGING_DIR_TARGET}', '${S}/dpf/utils/lv2_ttl_generator')} ${sofile} || echo "ERROR: for QEMU lv2_ttl_generator for ${sofile}!" + done +} + +do_install() { + install -d ${D}${libdir}/ladspa + for plugin in `find ${S}/bin/ -name *ladspa.so`; do + install -m 644 $plugin ${D}${libdir}/ladspa/ + done + + install -d ${D}${libdir}/lv2 + for plugindir in `find ${S}/bin/ -maxdepth 1 -name *.lv2`; do + lv2dir=${D}${libdir}/lv2/`basename $plugindir` + install -d $lv2dir + for plugin in `find $plugindir -type f`; do + install -m 644 $plugin $lv2dir/ + done + done + + install -d ${D}${libdir}/vst + for plugin in `find ${S}/bin/ -name *vst.so`; do + install -m 644 $plugin ${D}${libdir}/vst/ + done +} + +# Have not found what causes stripping - debugging of plugins is unlikely +INSANE_SKIP_${PN} = "already-stripped" diff --git a/recipes-musicians/distrho/lv2-ttl-generator.bb b/recipes-musicians/distrho/lv2-ttl-generator.bb new file mode 100644 index 0000000..42a2818 --- /dev/null +++ b/recipes-musicians/distrho/lv2-ttl-generator.bb @@ -0,0 +1,22 @@ +SUMMARY = "lv2-ttl-generator-native" +LICENSE = "ISC" +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=7b4d7947003bd60e5475fc61c6d014da \ +" + +SRC_URI = "git://github.com/DISTRHO/DPF.git" +SRCREV = "70cec6a9d0222b32abdcaec02cd7b01378c4d78b" +S = "${WORKDIR}/git" +PV = "0.0.0+git${SRCPV}" + +BBCLASSEXTEND = "native" + +do_compile() { + cd ${S}/utils/lv2-ttl-generator + oe_runmake +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/utils/lv2_ttl_generator ${D}${bindir}/lv2-ttl-generator +} diff --git a/recipes-musicians/drmr/drmr/0001-CMake-Keep-build-system-flags.patch b/recipes-musicians/drmr/drmr/0001-CMake-Keep-build-system-flags.patch new file mode 100644 index 0000000..ddf4931 --- /dev/null +++ b/recipes-musicians/drmr/drmr/0001-CMake-Keep-build-system-flags.patch @@ -0,0 +1,36 @@ +From bc0b880e8f6c352d3ad6f6af02beb4e4c9d82bcb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 18 Jan 2019 19:15:57 +0100 +Subject: [PATCH] CMake: Keep build system flags +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes builds for cross/sysrooted build systems which set lots of flags to +tailor build. + +Upstream-Status: Submitted [1] + +[1] https://github.com/nicklan/drmr/pull/22 + +Signed-off-by: Andreas Müller +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7380842..1d0e174 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 2.6) + project (DrMr) + + set(LV2_INSTALL_DIR lib/lv2 CACHE PATH "Specifies where the LV2 libraries should be installed") +-set(CMAKE_C_FLAGS "-Wall") ++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") + + # Availble options + option(USE_NKNOB "Use custom NKnob widgets for gain/pan instead of Gtk sliders" ON) +-- +2.20.1 + diff --git a/recipes-musicians/drmr/drmr_git.bb b/recipes-musicians/drmr/drmr_git.bb new file mode 100644 index 0000000..26fa5a3 --- /dev/null +++ b/recipes-musicians/drmr/drmr_git.bb @@ -0,0 +1,29 @@ +SUMMARY = "An LV2 sampler plugin that plays hydrogen drum kits " +HOMEPAGE = "https://github.com/nicklan/drmr" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS += " \ + libsndfile1 \ + libsamplerate0 \ + lv2 \ + expat \ + gtk+ \ +" + +inherit cmake pkgconfig + +SRC_URI = " \ + git://github.com/nicklan/drmr.git;branch=lv2unstable \ + file://0001-CMake-Keep-build-system-flags.patch \ +" +SRCREV = "f244f3b09bb290dd6a4b9c14d4abaf69e9861f9d" +S = "${WORKDIR}/git" +PV = "0.0.0+git${SRCPV}" + + +EXTRA_OECMAKE = " \ + -DLV2_INSTALL_DIR:PATH=${baselib}/lv2 \ +" + +FILES_${PN} += "${libdir}/lv2" diff --git a/recipes-musicians/drobilla/files/0001-Do-not-inject-usr-local-include-to-include-paths.patch b/recipes-musicians/drobilla/files/0001-Do-not-inject-usr-local-include-to-include-paths.patch new file mode 100644 index 0000000..90dd363 --- /dev/null +++ b/recipes-musicians/drobilla/files/0001-Do-not-inject-usr-local-include-to-include-paths.patch @@ -0,0 +1,31 @@ +From 36b834661ac4169db20c682bddfdcdf96df5a2f7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 19 Jan 2019 00:44:13 +0100 +Subject: [PATCH] Do not inject /usr/local/include to include paths +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + waflib/extras/autowaf.py | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/waflib/extras/autowaf.py b/waflib/extras/autowaf.py +index feaae3c6..119c95b5 100644 +--- a/waflib/extras/autowaf.py ++++ b/waflib/extras/autowaf.py +@@ -189,8 +189,6 @@ def check_pkg(conf, name, **args): + if 'COMPILER_CXX' in conf.env: + conf.env.append_value('CXXFLAGS', ['-isystem', path]) + +- conf.env.append_value('CXXFLAGS', ['-isystem', '/usr/local/include']) +- + def normpath(path): + if sys.platform == 'win32': + return os.path.normpath(path).replace('\\', '/') +-- +2.20.1 + diff --git a/recipes-musicians/drobilla/ganv_git.bb b/recipes-musicians/drobilla/ganv_git.bb new file mode 100644 index 0000000..2340079 --- /dev/null +++ b/recipes-musicians/drobilla/ganv_git.bb @@ -0,0 +1,21 @@ +SUMMARY = "Ganv is a Gtk widget for interactive graph-like environments" +DESCRIPTION = "Ganv is a Gtk widget for interactive graph-like environments, such as modular synthesizers or finite state machines" +HOMEPAGE = "http://drobilla.net/software/ganv" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit waf + +DEPENDS += " \ + glib-2.0-native \ + gtk+ \ + gtkmm \ +" + +SRC_URI = " \ + git://git.drobilla.net/ganv.git;protocol=http \ + file://0001-Do-not-inject-usr-local-include-to-include-paths.patch \ +" +SRCREV = "ccc9b971ab206fa3dc32a432a3e76db976192f58" +S = "${WORKDIR}/git" +PV = "1.4.2+git${SRCPV}" diff --git a/recipes-musicians/drobilla/ingen_git.bb b/recipes-musicians/drobilla/ingen_git.bb new file mode 100644 index 0000000..62f4b7d --- /dev/null +++ b/recipes-musicians/drobilla/ingen_git.bb @@ -0,0 +1,57 @@ +SUMMARY = "Ingen is a modular audio processing system for Jack and LV2 based systems" +HOMEPAGE = "http://drobilla.net/software/ingen" +LICENSE = "AGPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=73f1eb20517c55bf9493b7dd6e480788" + +inherit waf pkgconfig gtk-icon-cache pack_audio_plugins pythonnative + +DEPENDS += " \ + boost \ + gtkmm \ + lilv \ + suil \ + raul \ + ganv \ + portaudio-v19 \ +" + +SRC_URI = " \ + git://github.com/drobilla/ingen.git \ + file://0001-Do-not-inject-usr-local-include-to-include-paths.patch \ +" +SRCREV = "cc3d7ef610e5f93086eb46406cc600ee81a23e98" +S = "${WORKDIR}/git" +PV = "0.5.1+git${SRCPV}" + +DOCDEPENDS = " \ + lv2-native \ + doxygen-native \ + graphviz-native \ + gdk-pixbuf-native \ + libpng-native \ + python-rdflib-native \ + python-isodate-native \ + python-six-native \ +" +PACKAGECONFIG[doc] = "--docs,,${DOCDEPENDS}" + +PACKAGES =+ "${PN}-standalone ${PN}-python" + +FILES_SOLIBSDEV = "${libdir}/libingen${SOLIBSDEV}" + +FILES_${PN} += " \ + ${libdir}/libingen_*.so \ +" + +FILES_${PN}-standalone = " \ + ${datadir}/applications \ + ${datadir}/icons \ + ${bindir}/ingen \ +" + +# pyton tools are not expected to work: we do not have rdflib yet +FILES_${PN}-python = " \ + ${bindir}/ingenams \ + ${bindir}/ingenish \ + ${PYTHON_SITEPACKAGES_DIR} \ +" diff --git a/recipes-musicians/drobilla/jalv_git.bb b/recipes-musicians/drobilla/jalv_git.bb new file mode 100644 index 0000000..155e593 --- /dev/null +++ b/recipes-musicians/drobilla/jalv_git.bb @@ -0,0 +1,32 @@ +SUMMARY = "Jalv is a simple but fully featured LV2 host for Jack" +HOMEPAGE = "http://drobilla.net/software/jalv" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb60cfffc455677d4f11cf7f36c12093" + +inherit waf pkgconfig gtk-icon-cache + +DEPENDS += " \ + qtbase-native \ + lv2 \ + lilv \ + serd \ + sord \ + sratom \ + suil \ + jack \ + gtkmm \ + gtk+3 \ + qtbase \ +" + +SRC_URI = " \ + git://github.com/drobilla/jalv.git \ + file://0001-Do-not-inject-usr-local-include-to-include-paths.patch \ +" +SRCREV = "8311df91cc212adf3220acfcb50ab63414fe9dd6" +S = "${WORKDIR}/git" +PV = "1.6.0+git${SRCPV}" + +FILES_${PN} += " \ + ${libdir}/jack \ +" diff --git a/recipes-musicians/drobilla/lilv_0.24.4.bb b/recipes-musicians/drobilla/lilv_0.24.4.bb new file mode 100644 index 0000000..ed1aac7 --- /dev/null +++ b/recipes-musicians/drobilla/lilv_0.24.4.bb @@ -0,0 +1,14 @@ +SUMMARY = "C library providing simple use of LV2 plugins" +HOMEPAGE = "http://drobilla.net/software/lilv" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=7aceb3a3edc99517b08f5cdd557e11fb" + +inherit waf bash-completion pkgconfig + +DEPENDS += "lv2 serd sord sratom" + +SRC_URI = "http://download.drobilla.net/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "fb340958a6df5a683bf25e291493dc4d" +SRC_URI[sha256sum] = "c33b84b7a6e8e8fffb412fbcd6f69e59ca297ef3e29d829249b4ccc94f634438" + +EXTRA_OECONF = "--configdir=${sysconfdir} --dyn-manifest" diff --git a/recipes-musicians/drobilla/lv2-native.bb b/recipes-musicians/drobilla/lv2-native.bb new file mode 100644 index 0000000..c7ed05f --- /dev/null +++ b/recipes-musicians/drobilla/lv2-native.bb @@ -0,0 +1,5 @@ +require ${BPN}.inc + +inherit native + + diff --git a/recipes-musicians/drobilla/lv2.bb b/recipes-musicians/drobilla/lv2.bb new file mode 100644 index 0000000..9dc0586 --- /dev/null +++ b/recipes-musicians/drobilla/lv2.bb @@ -0,0 +1,9 @@ +require ${BPN}.inc + +DEPENDS = "gtk+ libsndfile1" + +EXTRA_OECONF = "--libdir=${libdir}" + +FILES_${PN} += " \ + ${datadir} \ +" diff --git a/recipes-musicians/drobilla/lv2.inc b/recipes-musicians/drobilla/lv2.inc new file mode 100644 index 0000000..48f3dd4 --- /dev/null +++ b/recipes-musicians/drobilla/lv2.inc @@ -0,0 +1,13 @@ +SUMMARY = "LV2 is an open standard for audio plugins" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://COPYING;md5=0383f162366b0c5a316292759a55d292" + +SRC_URI = " \ + git://github.com/drobilla/lv2.git \ + file://0001-Output-more-details-on-import-error-to-catch-missing.patch \ +" +S = "${WORKDIR}/git" +SRCREV = "96a6283a5fe023c59113242631f337da5f0eb278" +PV = "1.14.0+git${SRCPV}" + +inherit waf pkgconfig diff --git a/recipes-musicians/drobilla/lv2/0001-Output-more-details-on-import-error-to-catch-missing.patch b/recipes-musicians/drobilla/lv2/0001-Output-more-details-on-import-error-to-catch-missing.patch new file mode 100644 index 0000000..9fbcb69 --- /dev/null +++ b/recipes-musicians/drobilla/lv2/0001-Output-more-details-on-import-error-to-catch-missing.patch @@ -0,0 +1,56 @@ +From bc96caf97d32168abefde038e9353685a14fa64d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 21 Jan 2019 22:38:05 +0100 +Subject: [PATCH] Output more details on import error to catch missing + dependencies +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Updream-Status: Pending + +Signed-off-by: Andreas Müller +--- + lv2specgen/lv2docgen.py | 3 ++- + lv2specgen/lv2specgen.py | 6 ++++-- + 2 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/lv2specgen/lv2docgen.py b/lv2specgen/lv2docgen.py +index 23a239d..685f32e 100755 +--- a/lv2specgen/lv2docgen.py ++++ b/lv2specgen/lv2docgen.py +@@ -28,7 +28,8 @@ __contact__ = 'devel@lists.lv2plug.in' + + try: + import rdflib +-except ImportError: ++except ImportError as imperror: ++ print(imperror) + sys.exit('Error importing rdflib') + + doap = rdflib.Namespace('http://usefulinc.com/ns/doap#') +diff --git a/lv2specgen/lv2specgen.py b/lv2specgen/lv2specgen.py +index ddd0ba5..c86157e 100755 +--- a/lv2specgen/lv2specgen.py ++++ b/lv2specgen/lv2specgen.py +@@ -63,13 +63,15 @@ try: + from pygments.lexer import RegexLexer, include, bygroups + from pygments.token import Text, Comment, Operator, Keyword, Name, String, Literal, Punctuation + have_pygments = True +-except ImportError: ++except ImportError as imperror: ++ print(imperror) + print("Error importing pygments, syntax highlighting disabled") + have_pygments = False + + try: + import rdflib +-except ImportError: ++except ImportError as imperror: ++ print(imperror) + sys.exit("Error importing rdflib") + + # Global Variables +-- +2.20.1 + diff --git a/recipes-musicians/drobilla/mda-lv2_1.2.2.bb b/recipes-musicians/drobilla/mda-lv2_1.2.2.bb new file mode 100644 index 0000000..20187ee --- /dev/null +++ b/recipes-musicians/drobilla/mda-lv2_1.2.2.bb @@ -0,0 +1,21 @@ +SUMMARY = "MDA-LV2 is an LV2 port of the MDA plugins by Paul Kellett" +HOMEPAGE = "https://drobilla.net/software/mda-lv2" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit waf distro_features_check pkgconfig + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS = "lv2" + +SRC_URI = "http://download.drobilla.net/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "1962f48c54eafe52a3d2471cd3072aa8" +SRC_URI[sha256sum] = "a476c31ed9f8b009ebacc32a02d06ba9584c0d0d03f03dd62b1354d10a030442" + +EXTRA_OECONF = " \ + --lv2dir=${libdir}/lv2 \ +" + +FILES_${PN} += "${libdir}/lv2" + diff --git a/recipes-musicians/drobilla/patchage_git.bb b/recipes-musicians/drobilla/patchage_git.bb new file mode 100644 index 0000000..05749cc --- /dev/null +++ b/recipes-musicians/drobilla/patchage_git.bb @@ -0,0 +1,21 @@ +SUMMARY = "Patchage is a modular patch bay for audio and MIDI systems" +DESCRIPTION = "Patchage is a modular patch bay for audio and MIDI systems based on Jack and Alsa" +HOMEPAGE = "http://drobilla.net/software/patchage" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit waf gtk-icon-cache pkgconfig + +DEPENDS += " \ + boost \ + jack \ + ganv \ +" + +SRC_URI = " \ + git://git.drobilla.net/patchage.git;protocol=http \ + file://0001-Do-not-inject-usr-local-include-to-include-paths.patch \ +" +SRCREV = "b69a38d171758c6e979d74541fc21d12b7e6abda" +PV = "1.0.0+git${SRCPV}" +S = "${WORKDIR}/git" diff --git a/recipes-musicians/drobilla/raul_git.bb b/recipes-musicians/drobilla/raul_git.bb new file mode 100644 index 0000000..5fc451b --- /dev/null +++ b/recipes-musicians/drobilla/raul_git.bb @@ -0,0 +1,12 @@ +SUMMARY = "Raul is a utility library primarily aimed at audio/musical applications" +DESCRIPTION = "Raul (Realtime Audio Utility Library) is a C++ utility library primarily aimed at audio/musical applications" +HOMEPAGE = "https://drobilla.net/software/raul" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit waf + +SRC_URI = "git://github.com/drobilla/raul.git" +SRCREV = "5eb7a555de2291f4df8c75ce261c555552725beb" +S = "${WORKDIR}/git" +PV = "0.8.10+git${SRCPV}" diff --git a/recipes-musicians/drobilla/serd_0.30.0.bb b/recipes-musicians/drobilla/serd_0.30.0.bb new file mode 100644 index 0000000..d64043f --- /dev/null +++ b/recipes-musicians/drobilla/serd_0.30.0.bb @@ -0,0 +1,10 @@ +SUMMARY = "C library for RDF syntax which supports accessing Turtle and NTriples" +HOMEPAGE = "http://drobilla.net/software/serd" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=7aceb3a3edc99517b08f5cdd557e11fb" + +inherit waf + +SRC_URI = "http://download.drobilla.net/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "82243362b8b5a47dd46dac7ae893f562" +SRC_URI[sha256sum] = "6efb0efa5c2155e6bbac941cddeeabb7ed26d70a57d24178894ff169d8f6cefb" diff --git a/recipes-musicians/drobilla/sord_0.16.2.bb b/recipes-musicians/drobilla/sord_0.16.2.bb new file mode 100644 index 0000000..191cfc4 --- /dev/null +++ b/recipes-musicians/drobilla/sord_0.16.2.bb @@ -0,0 +1,12 @@ +SUMMARY = "C library for storing RDF data in memory" +HOMEPAGE = "http://drobilla.net/software/sord" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=6b8d060e6d32fbd53684f9dc0443b6a3" + +inherit waf pkgconfig + +DEPENDS += "libpcre serd" + +SRC_URI = "http://download.drobilla.net/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "eb1d1c62ffb5153d5e1f5d12a3b7279b" +SRC_URI[sha256sum] = "09f51174dd8f3efbd95f44f0bb0b165f08e066e052d40095de59de787987da8d" diff --git a/recipes-musicians/drobilla/sratom_0.6.2.bb b/recipes-musicians/drobilla/sratom_0.6.2.bb new file mode 100644 index 0000000..a5de2fe --- /dev/null +++ b/recipes-musicians/drobilla/sratom_0.6.2.bb @@ -0,0 +1,12 @@ +SUMMARY = "Sratom is a library for serialising LV2 atoms to and from RDF" +HOMEPAGE = "http://drobilla.net/software/sratom" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=ebc7934238811c788037421c6c548ddf" + +inherit waf pkgconfig + +DEPENDS += "lv2 serd sord" + +SRC_URI = "http://download.drobilla.net/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "aa3c540032da43cf6cf68f684983d7f5" +SRC_URI[sha256sum] = "0a514a55d6b6cb7b5d6f32d1dcb78a1e6e54537fa22fce533e4ef6adf240e853" diff --git a/recipes-musicians/drobilla/suil/0001-Do-not-try-to-build-macOS-cocoa.patch b/recipes-musicians/drobilla/suil/0001-Do-not-try-to-build-macOS-cocoa.patch new file mode 100644 index 0000000..7e3b699 --- /dev/null +++ b/recipes-musicians/drobilla/suil/0001-Do-not-try-to-build-macOS-cocoa.patch @@ -0,0 +1,41 @@ +From e557abec62aa4c9c90ae50db3fe938a97e910288 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 26 Dec 2018 22:39:08 +0100 +Subject: [PATCH] Do not try to build macOS cocoa +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Seems the headers are installed for unknown reason - so make sure support is +remains disabled. + +Fixes: +| arm-mortsgna-linux-gnueabi-g++: error: ../suil-0.10.2/src/cocoa_in_qt5.mm: Objective-C++ compiler not installed on this system + +Upstream-Status: Pending [1] + +[1] https://github.com/drobilla/suil/issues/6 + +Signed-off-by: Andreas Müller +--- + wscript | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/wscript b/wscript +index 89ab039..352e569 100644 +--- a/wscript ++++ b/wscript +@@ -91,10 +91,6 @@ def configure(conf): + if not conf.options.no_qt5: + autowaf.check_pkg(conf, 'Qt5Widgets', uselib_store='QT5', + atleast_version='5.1.0', mandatory=False) +- if conf.check_cxx(header_name = 'QMacCocoaViewContainer', +- uselib = 'QT5', +- mandatory = False): +- autowaf.define(conf, 'SUIL_WITH_COCOA_IN_QT5', 1) + + conf.check_cc(define_name = 'HAVE_LIBDL', + lib = 'dl', +-- +2.20.1 + diff --git a/recipes-musicians/drobilla/suil_0.10.2.bb b/recipes-musicians/drobilla/suil_0.10.2.bb new file mode 100644 index 0000000..db98100 --- /dev/null +++ b/recipes-musicians/drobilla/suil_0.10.2.bb @@ -0,0 +1,19 @@ +SUMMARY = "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs" +HOMEPAGE = "https://drobilla.net/software/suil" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=83836dc85960985c534b2a881cca21c0" + +inherit waf distro_features_check pkgconfig + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS = "gtk+ gtk+3 qtbase lv2" + +SRC_URI = " \ + http://download.drobilla.net/${BPN}-${PV}.tar.bz2 \ + file://0001-Do-not-try-to-build-macOS-cocoa.patch \ +" +SRC_URI[md5sum] = "e92d656b5faf999226642cdbe595976d" +SRC_URI[sha256sum] = "9f445910627fb30f4c182b9ee00d1030324910d8a9ce7c9654c34465411da401" + +FILES_${PN} += "${libdir}/suil-0" diff --git a/recipes-musicians/drumgizmo/drumgizmo-native.bb b/recipes-musicians/drumgizmo/drumgizmo-native.bb new file mode 100644 index 0000000..5539140 --- /dev/null +++ b/recipes-musicians/drumgizmo/drumgizmo-native.bb @@ -0,0 +1,12 @@ +require ${BPN}.inc + +inherit native + +do_compile() { + ${CXX} ${CXXFLAGS} -o ${S}/drumgizmo-rcgen ${S}/plugingui/rcgen.cc $(LDFLAGS) +} + +do_install() { + install -d ${D}${bindir} + install -m 755 ${S}/drumgizmo-rcgen ${D}${bindir} +} diff --git a/recipes-musicians/drumgizmo/drumgizmo.bb b/recipes-musicians/drumgizmo/drumgizmo.bb new file mode 100644 index 0000000..cc1da39 --- /dev/null +++ b/recipes-musicians/drumgizmo/drumgizmo.bb @@ -0,0 +1,40 @@ +require ${BPN}.inc + +inherit autotools-brokensep pkgconfig distro_features_check gtk-icon-cache + +REQUIRED_DISTRO_FEATURE = "x11" + +DEPENDS += " \ + ${BPN}-native \ + libx11 \ + libxext \ + lv2 \ + libsmf \ + alsa-lib \ + libsndfile1 \ + zita-resampler \ + jack \ +" + +SRC_URI += " \ + file://0001-automake-enable-subdir-objects.patch \ + file://0002-Use-native-rcgen.patch \ + file://drumgizmo.desktop \ +" + +# --disable-editor: sigh - editor requires Qt4 +EXTRA_OECONF = " \ + --enable-lv2 \ + --without-debug \ + --disable-sse \ +" + +do_install_append() { + install -d ${D}${datadir}/pixmaps + install -m 0644 ${S}/plugingui/resources/logo.png ${D}${datadir}/pixmaps/drumgizmo-logo.png + + install -d ${D}${datadir}/applications + install -m 0644 ${WORKDIR}/${BPN}.desktop ${D}${datadir}/applications/ +} + +FILES_${PN} += "${libdir}/lv2" diff --git a/recipes-musicians/drumgizmo/drumgizmo.inc b/recipes-musicians/drumgizmo/drumgizmo.inc new file mode 100644 index 0000000..3308a80 --- /dev/null +++ b/recipes-musicians/drumgizmo/drumgizmo.inc @@ -0,0 +1,11 @@ +SUMMARY = "DrumGizmo is drum plugin and stand-alone application" +HOMEPAGE = "https://www.drumgizmo.org" +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02" + +SRC_URI = " \ + http://www.drumgizmo.org/releases/${BPN}-${PV}/${BPN}-${PV}.tar.gz \ +" +SRC_URI[md5sum] = "86e4239f1eb59e8b77c7d13edc24f93b" +SRC_URI[sha256sum] = "8f76b58785186ac02337b9248003ec1a459a801d3003619fd32fde976c307947" +PV = "0.9.16" diff --git a/recipes-musicians/drumgizmo/files/0001-automake-enable-subdir-objects.patch b/recipes-musicians/drumgizmo/files/0001-automake-enable-subdir-objects.patch new file mode 100644 index 0000000..08cfb0d --- /dev/null +++ b/recipes-musicians/drumgizmo/files/0001-automake-enable-subdir-objects.patch @@ -0,0 +1,31 @@ +From c9eec598b2f8b1435a2229dd5c49a9e15c6bc2ac Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 22 Feb 2018 00:13:04 +0100 +Subject: [PATCH] automake: enable subdir-objects +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 0562059..13a7ffc 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3,7 +3,7 @@ + AC_INIT([drumgizmo], m4_esyscmd([cat version.h | cut -d'"' -f2 | xargs echo -n]))dnl" + + AC_CONFIG_SRCDIR([src/drumgizmo.cc]) +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE(subdir-objects) + + AC_PROG_CXX + AC_PROG_OBJC +-- +2.14.3 + diff --git a/recipes-musicians/drumgizmo/files/0002-Use-native-rcgen.patch b/recipes-musicians/drumgizmo/files/0002-Use-native-rcgen.patch new file mode 100644 index 0000000..05bec80 --- /dev/null +++ b/recipes-musicians/drumgizmo/files/0002-Use-native-rcgen.patch @@ -0,0 +1,31 @@ +From 766c8c4aa6f6e8743234b93a760a89480bddd7fd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 28 May 2018 23:08:07 +0200 +Subject: [PATCH] Use native rcgen +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + plugingui/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugingui/Makefile.am b/plugingui/Makefile.am +index dd36783..ca30e84 100644 +--- a/plugingui/Makefile.am ++++ b/plugingui/Makefile.am +@@ -28,7 +28,7 @@ RES = \ + ../COPYING + + resource_data.cc : rcgen $(RES) +- ./rcgen $(RES) > resource_data.cc ++ drumgizmo-rcgen $(RES) > resource_data.cc + + libdggui_la_CPPFLAGS = \ + $(GUI_CPPFLAGS) \ +-- +2.14.3 + diff --git a/recipes-musicians/drumgizmo/files/drumgizmo.desktop b/recipes-musicians/drumgizmo/files/drumgizmo.desktop new file mode 100644 index 0000000..5066528 --- /dev/null +++ b/recipes-musicians/drumgizmo/files/drumgizmo.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=DrumGizmo +Comment=DrumGizmo standalone application +Exec=drumgizmo +Icon=drumgizmo-logo.png +Terminal=false +Type=Application +Categories=Application;Audio;Midi;Music diff --git a/recipes-musicians/drumstick/drumstick_1.1.1.bb b/recipes-musicians/drumstick/drumstick_1.1.1.bb new file mode 100644 index 0000000..aefb38b --- /dev/null +++ b/recipes-musicians/drumstick/drumstick_1.1.1.bb @@ -0,0 +1,25 @@ +SUMMARY = "C++/Qt5 wrapper around multiple MIDI interfaces" +HOMEPAGE = "http://drumstick.sourceforge.net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d9d415d3d8c5523e5586ff7b785095f1" + +inherit cmake_qt5 pkgconfig mime gtk-icon-cache + +DEPENDS += " \ + qtbase \ + qtsvg \ + fluidsynth \ +" +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${PV}/${BPN}-${PV}.tar.bz2 \ + file://0001-Do-not-set-lib-suffix-oe-will-take-care.patch \ +" +SRC_URI[md5sum] = "a1fd83216f65619fea766dfc0a6f5266" +SRC_URI[sha256sum] = "367743764c8f5c6e40bb19b9581f083da2881b9c9516d6b3b247e5644dee7c2b" + +EXTRA_OECMAKE = "-DLIB_SUFFIX=`echo ${baselib} | sed -e s/lib//`" + +FILES_${PN} += " \ + ${datadir}/mime \ + ${datadir}/icons \ +" diff --git a/recipes-musicians/drumstick/files/0001-Do-not-set-lib-suffix-oe-will-take-care.patch b/recipes-musicians/drumstick/files/0001-Do-not-set-lib-suffix-oe-will-take-care.patch new file mode 100644 index 0000000..ed5ea18 --- /dev/null +++ b/recipes-musicians/drumstick/files/0001-Do-not-set-lib-suffix-oe-will-take-care.patch @@ -0,0 +1,35 @@ +From 30166fe55c9a7c65f5db04e75e92407da4f0e88a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 10 Aug 2018 14:00:52 +0200 +Subject: [PATCH] Do not set lib-suffix - oe will take care +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + CMakeLists.txt | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 274b6fa..6782e43 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -21,11 +21,7 @@ endif() + + project(DRUMSTICK) + +-if(CMAKE_SIZEOF_VOID_P MATCHES "8") +- set(_INIT_LIB_SUFFIX "64") +-else() +- set(_INIT_LIB_SUFFIX "") +-endif() ++set(_INIT_LIB_SUFFIX "") + set(LIB_SUFFIX ${_INIT_LIB_SUFFIX} CACHE STRING "optional library install directory suffix: 32, 64, none") + + set(CMAKE_COLOR_MAKEFILE ON) +-- +2.14.4 + diff --git a/recipes-musicians/dssi-vst/dssi-vst_git.bb b/recipes-musicians/dssi-vst/dssi-vst_git.bb new file mode 100644 index 0000000..f01f77c --- /dev/null +++ b/recipes-musicians/dssi-vst/dssi-vst_git.bb @@ -0,0 +1,41 @@ +SUMMARY = "DSSI plugin wrapper for VST plugins" +HOMEPAGE = "http://breakfastquay.com/dssi-vst/" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=3523f03012c30f3347df42d632e5762c" + +inherit pkgconfig + +DEPENDS += " \ + dssi \ + ladspa-sdk \ + alsa-lib \ + jack \ + liblo \ + zlib \ +" + +SRC_URI = "git://github.com/falkTX/dssi-vst.git" +SRCREV = "9462b34563af84b452795d4924d4f18af9072529" +S = "${WORKDIR}/git" +PV = "0.9.2+git${SRCPV}" + +EXTRA_OEMAKE = 'BUILD_FLAGS="-ffast-math -fPIC -Ivestige ${CXX_FLAGS}" TARGETS="dssi-vst.so dssi-vst_gui vsthost"' + +do_install() { + # Makefile wants to install wine binaries - so install manually + install -d ${D}${bindir} + install -d ${D}${libdir}/dssi/dssi-vst + install -d ${D}${libdir}/ladspa + install -m 755 vsthost ${D}${bindir} + install -m 755 ${S}/dssi-vst.so ${D}${libdir}/dssi + # install once only + ln -s ../dssi/dssi-vst.so ${D}${libdir}/ladspa + install -m 755 ${S}/dssi-vst_gui ${D}${libdir}/dssi/dssi-vst +} + +INSANE_SKIP_${PN} = "dev-so" + +FILES_${PN} += " \ + ${libdir}/ladspa \ + ${libdir}/dssi \ +" diff --git a/recipes-musicians/dssi/dssi_1.1.1.bb b/recipes-musicians/dssi/dssi_1.1.1.bb new file mode 100644 index 0000000..8d75266 --- /dev/null +++ b/recipes-musicians/dssi/dssi_1.1.1.bb @@ -0,0 +1,27 @@ +SUMMARY = "DSSI is an audio plugin API for soft synths and effects" +HOMEPAGE = "http://dssi.sourceforge.net" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=9f46aa1ea6e91bb339e8fa2f11d17e4d" + +inherit autotools pkgconfig + +DEPENDS += " \ + jack \ + libsndfile1 \ + libsamplerate0 \ + liblo \ + ladspa-sdk \ +" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "619ab73c883b02dc37ddb37001591f8b" +SRC_URI[sha256sum] = "f2c82b073a947c8255284249097667f9b14e660bf86186f3fcd3b3b3e087814e" + +PACKAGES =+ "${PN}-examples" +FILES_${PN}-examples = " \ + ${bindir}/dssi_* \ + ${bindir}/karplong \ + ${bindir}/*trivial* \ + \ + ${libdir}/dssi/*.so \ +" diff --git a/recipes-musicians/gmidimonitor/files/gmidimonitor-alsa.desktop b/recipes-musicians/gmidimonitor/files/gmidimonitor-alsa.desktop new file mode 100644 index 0000000..4972fd1 --- /dev/null +++ b/recipes-musicians/gmidimonitor/files/gmidimonitor-alsa.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=GMidiMonitor Alsa +Comment=Shows Alsa MIDI events +Exec=gmidimonitor --alsa +Icon=gmidimonitor +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=Application;AudioVideo;Audio;Multimedia; diff --git a/recipes-musicians/gmidimonitor/files/gmidimonitor-jack.desktop b/recipes-musicians/gmidimonitor/files/gmidimonitor-jack.desktop new file mode 100644 index 0000000..34d2ed5 --- /dev/null +++ b/recipes-musicians/gmidimonitor/files/gmidimonitor-jack.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=GMidiMonitor Jack +Comment=Shows Jack MIDI events +Exec=gmidimonitor --jack +Icon=gmidimonitor +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=Application;AudioVideo;Audio;Multimedia; diff --git a/recipes-musicians/gmidimonitor/gmidimonitor_3.6.bb b/recipes-musicians/gmidimonitor/gmidimonitor_3.6.bb new file mode 100644 index 0000000..9767fd8 --- /dev/null +++ b/recipes-musicians/gmidimonitor/gmidimonitor_3.6.bb @@ -0,0 +1,32 @@ +SUMMARY = "GTK+ application that shows MIDI events" +HOMEPAGE = "http://home.gna.org/gmidimonitor" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=f1e8b3e96c0abf4e3abb3b0f8e8eaf7f" + +inherit waf gtk-icon-cache + +DEPENDS += " \ + gtk+ \ + jack \ +" + +SRC_URI = " \ + git://repo.or.cz/gmidimonitor.git \ + http://upload.wikimedia.org/wikipedia/commons/d/d5/RB_keyboard_icon.svg;name=icon \ + file://gmidimonitor-alsa.desktop \ + file://gmidimonitor-jack.desktop \ +" +SRCREV = "a50612655903f1a56748604a5d0d27a5044a78b3" +S = "${WORKDIR}/git" + +SRC_URI[icon.md5sum] = "e6e764ea13f2b15a297d8cd62540edf2" +SRC_URI[icon.sha256sum] = "16d3e31b4e9ef6e9c7ba3ab79876726f52da21631870cea95076a98913a0bd2c" + +do_install_append() { + install -d "${D}/${datadir}/applications" + install ${WORKDIR}/gmidimonitor-alsa.desktop ${D}/${datadir}/applications/ + install ${WORKDIR}/gmidimonitor-jack.desktop ${D}/${datadir}/applications/ + + install -d "${D}/${datadir}/pixmaps" + install ${WORKDIR}/RB_keyboard_icon.svg ${D}/${datadir}/pixmaps/${BPN}.svg +} diff --git a/recipes-musicians/guitarix/guitarix/0001-do-not-perform-link-test-durin-cross-build.patch b/recipes-musicians/guitarix/guitarix/0001-do-not-perform-link-test-durin-cross-build.patch new file mode 100644 index 0000000..3c614ad --- /dev/null +++ b/recipes-musicians/guitarix/guitarix/0001-do-not-perform-link-test-durin-cross-build.patch @@ -0,0 +1,33 @@ +From c2fca3345cfbcb0fc129ea23e8438057202604f2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 4 Aug 2017 22:01:03 +0200 +Subject: [PATCH] do not perform link test durin cross build +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + src/ladspa/wscript | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/src/ladspa/wscript b/src/ladspa/wscript +index be5f31d..2c43e2d 100644 +--- a/src/ladspa/wscript ++++ b/src/ladspa/wscript +@@ -10,10 +10,6 @@ def configure(conf): + def test_loadable(self): + def link_and_test(lib=self.link_task.outputs[0].bldpath(self.env), link=self.link_task.run): + link() +- try: +- ctypes.cdll.LoadLibrary(lib) +- except Exception as e: +- raise RuntimeError("LADSPA load test failed: %s" % e) + self.link_task.run = link_and_test + + def build(bld): +-- +2.9.4 + diff --git a/recipes-musicians/guitarix/guitarix/0002-Fix-build-with-boost-1.69.0.patch b/recipes-musicians/guitarix/guitarix/0002-Fix-build-with-boost-1.69.0.patch new file mode 100644 index 0000000..f19c6c8 --- /dev/null +++ b/recipes-musicians/guitarix/guitarix/0002-Fix-build-with-boost-1.69.0.patch @@ -0,0 +1,38 @@ +From d4e6aa415af0b3a836cbfb882a31e960e5e60246 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 15 Mar 2019 21:14:10 +0100 +Subject: [PATCH] Fix build with boost >= 1.69.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +| In file included from ../src/headers/engine.h:73, +| from ../src/gx_head/engine/ladspaplugin.cpp:22: +| ../src/headers/gx_system.h:353:40: error: expected class-name before '{' token +| class BasicOptions: boost::noncopyable { +| ^ + +and more + +Upstream-Status: Backport + +Signed-off-by: Andreas Müller +--- + src/headers/engine.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/headers/engine.h b/src/headers/engine.h +index 95f4497..2b6155e 100644 +--- a/src/headers/engine.h ++++ b/src/headers/engine.h +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include + #include // NOLINT + #include // NOLINT + #include +-- +2.20.1 + diff --git a/recipes-musicians/guitarix/guitarix_0.37.3.bb b/recipes-musicians/guitarix/guitarix_0.37.3.bb new file mode 100644 index 0000000..64faf08 --- /dev/null +++ b/recipes-musicians/guitarix/guitarix_0.37.3.bb @@ -0,0 +1,57 @@ +SUMMARY = "A virtual guitar amplifier" +HOMEPAGE = "http://guitarix.org/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=384f45fb7968a0fe30622ce6160d3b69" + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BPN}2-${PV}.tar.xz \ + file://0001-do-not-perform-link-test-durin-cross-build.patch \ + file://0002-Fix-build-with-boost-1.69.0.patch \ +" +SRC_URI[md5sum] = "78ebc879e5cd7a6e4bd43ff8aec562e1" +SRC_URI[sha256sum] = "4ca93bd4226cd175456f37612acd28b46e13133db61c0f235917dbcc3347d5f1" + +inherit wafold fontcache gettext + +DEPENDS += " \ + gperf-native \ + intltool-native \ + boost \ + libeigen \ + avahi \ + bluez5 \ + gtkmm \ + jack \ + lilv \ + ladspa-sdk \ + libsndfile1 \ + lrdf \ + zita-resampler \ + zita-convolver \ +" + +EXTRA_OECONF = " \ + --disable-sse \ + --ldflags="${LDFLAGS}" \ + --no-ldconfig \ + --no-desktop-update \ + --shared-lib \ + --lib-dev \ + --install-roboto-font \ +" + +do_install_append() { + # some corrections [dev-elf] - inspired by https://src.fedoraproject.org/rpms/guitarix/blob/master/f/guitarix.spec + chmod 755 ${D}${libdir}/libgxw*.so.0.1 + rm -rf ${D}${libdir}/libgxw*.so + ln -sf libgxwmm.so.0.1 ${D}${libdir}/libgxwmm.so + ln -sf libgxw.so.0.1 ${D}${libdir}/libgxw.so +} + +FILES_${PN} += " \ + ${datadir}/fonts \ + ${datadir}/gx_head \ + ${datadir}/ladspa \ + ${libdir}/ladspa \ + ${libdir}/lv2 \ +" diff --git a/recipes-musicians/guitarix/gxplugins.lv2/0001-Adjust-Makefiles-for-cross-compiling.patch b/recipes-musicians/guitarix/gxplugins.lv2/0001-Adjust-Makefiles-for-cross-compiling.patch new file mode 100644 index 0000000..af8d607 --- /dev/null +++ b/recipes-musicians/guitarix/gxplugins.lv2/0001-Adjust-Makefiles-for-cross-compiling.patch @@ -0,0 +1,826 @@ +From 50092b8f2c5c2c6de3de90d97f75b6fd475b8b5d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 27 Jan 2019 00:37:05 +0100 +Subject: [PATCH] Adjust Makefiles for cross-compiling +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + GxAxisFace.lv2/Makefile | 36 +++--------------- + GxBoobTube.lv2/Makefile | 34 ++--------------- + GxBottleRocket.lv2/Makefile | 38 +++---------------- + .../gui/gx_bottlerocket_x11ui.c | 2 +- + GxCreamMachine.lv2/Makefile | 34 ++--------------- + GxDOP250.lv2/Makefile | 36 +++--------------- + GxFz1b.lv2/Makefile | 38 +++---------------- + GxFz1s.lv2/Makefile | 38 +++---------------- + GxGuvnor.lv2/Makefile | 32 ++-------------- + GxHeathkit.lv2/Makefile | 36 +++--------------- + GxHotBox.lv2/Makefile | 37 +++--------------- + GxHotBox.lv2/gui/gx_hotbox_x11ui.c | 2 +- + GxHyperion.lv2/Makefile | 32 ++-------------- + GxHyperion.lv2/gui/gx_hyperion_x11ui.c | 2 +- + GxKnightFuzz.lv2/Makefile | 36 +++--------------- + GxLiquidDrive.lv2/Makefile | 36 +++--------------- + GxMicroAmp.lv2/Makefile | 36 +++--------------- + GxQuack.lv2/Makefile | 38 +++---------------- + GxSD1.lv2/Makefile | 38 +++---------------- + GxSD2Lead.lv2/Makefile | 36 +++--------------- + GxSVT.lv2/Makefile | 36 +++--------------- + GxSaturator.lv2/Makefile | 32 ++-------------- + GxSlowGear.lv2/Makefile | 32 ++-------------- + GxSunFace.lv2/Makefile | 36 +++--------------- + GxSuperFuzz.lv2/Makefile | 32 ++-------------- + GxSuppaToneBender.lv2/Makefile | 32 ++-------------- + GxSuppaToneBender.lv2/gui/gx_vstb_x11ui.c | 2 +- + GxToneMachine.lv2/Makefile | 32 ++-------------- + GxTubeDistortion.lv2/Makefile | 36 +++--------------- + GxUVox720k.lv2/Makefile | 32 ++-------------- + GxVBassPreAmp.lv2/Makefile | 38 +++---------------- + GxVBassPreAmp.lv2/gui/gx_voxbass_x11ui.c | 2 +- + GxValveCaster.lv2/Makefile | 36 +++--------------- + GxVintageFuzzMaster.lv2/Makefile | 32 ++-------------- + GxVmk2.lv2/Makefile | 34 ++--------------- + GxVoodoFuzz.lv2/Makefile | 32 ++-------------- + GxVoodoFuzz.lv2/gui/gx_voodoo_x11ui.c | 2 +- + 37 files changed, 145 insertions(+), 950 deletions(-) + +diff --git a/GxAxisFace.lv2/Makefile b/GxAxisFace.lv2/Makefile +index 1193800..ea27187 100644 +--- a/GxAxisFace.lv2/Makefile ++++ b/GxAxisFace.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,9 +49,9 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o + + clean : + @rm -f $(NAME).so +diff --git a/GxBoobTube.lv2/Makefile b/GxBoobTube.lv2/Makefile +index 66cf7eb..1f81fcd 100644 +--- a/GxBoobTube.lv2/Makefile ++++ b/GxBoobTube.lv2/Makefile +@@ -38,7 +12,7 @@ + -fPIC -DPIC -O2 -Wall -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -84,8 +58,8 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch.png + @$(ECHO) $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch.png -o pswitch.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch.png -o pswitch.o + + clean : + @rm -f $(NAME).so +diff --git a/GxBottleRocket.lv2/Makefile b/GxBottleRocket.lv2/Makefile +index e7efdcc..b01970f 100644 +--- a/GxBottleRocket.lv2/Makefile ++++ b/GxBottleRocket.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,10 +49,10 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png gui/frame.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o +- -@cd ./gui && ld -r -b binary frame.png -o frame.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary frame.png -o frame.o + + clean : + @rm -f $(NAME).so +diff --git a/GxCreamMachine.lv2/Makefile b/GxCreamMachine.lv2/Makefile +index 53c1dc6..a8b3604 100644 +--- a/GxCreamMachine.lv2/Makefile ++++ b/GxCreamMachine.lv2/Makefile +@@ -36,7 +10,7 @@ + # set compile flags + CXXFLAGS += -I. -I./dsp -I./plugin -I./dsp/zita-resampler-1.1.0 -I./dsp/zita-resampler-1.1.0/zita-resampler -fPIC -DPIC -O2 -Wall -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -73,8 +47,8 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch.png -o pswitch.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch.png -o pswitch.o + + clean : + @rm -f $(NAME).so +diff --git a/GxDOP250.lv2/Makefile b/GxDOP250.lv2/Makefile +index ba27784..a797bb4 100644 +--- a/GxDOP250.lv2/Makefile ++++ b/GxDOP250.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,9 +49,9 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o + + clean : + @rm -f $(NAME).so +diff --git a/GxFz1b.lv2/Makefile b/GxFz1b.lv2/Makefile +index 72df63a..6311726 100644 +--- a/GxFz1b.lv2/Makefile ++++ b/GxFz1b.lv2/Makefile +@@ -38,7 +12,7 @@ + -fPIC -DPIC -O2 -Wall -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,10 +49,10 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png gui/frame.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o +- -@cd ./gui && ld -r -b binary frame.png -o frame.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary frame.png -o frame.o + + clean : + @rm -f $(NAME).so +diff --git a/GxFz1s.lv2/Makefile b/GxFz1s.lv2/Makefile +index fd5af20..1de0565 100644 +--- a/GxFz1s.lv2/Makefile ++++ b/GxFz1s.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,10 +49,10 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png gui/frame.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o +- -@cd ./gui && ld -r -b binary frame.png -o frame.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary frame.png -o frame.o + + clean : + @rm -f $(NAME).so +diff --git a/GxGuvnor.lv2/Makefile b/GxGuvnor.lv2/Makefile +index 065acf1..5dc4406 100644 +--- a/GxGuvnor.lv2/Makefile ++++ b/GxGuvnor.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,7 +49,7 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o + + clean : + @rm -f $(NAME).so +diff --git a/GxHeathkit.lv2/Makefile b/GxHeathkit.lv2/Makefile +index 1669295..ae5ba5d 100644 +--- a/GxHeathkit.lv2/Makefile ++++ b/GxHeathkit.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,9 +49,9 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o + + clean : + @rm -f $(NAME).so +diff --git a/GxHotBox.lv2/Makefile b/GxHotBox.lv2/Makefile +index 8df2752..16d805f 100644 +--- a/GxHotBox.lv2/Makefile ++++ b/GxHotBox.lv2/Makefile +@@ -38,7 +13,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,10 +50,10 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png gui/frame.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o +- -@cd ./gui && ld -r -b binary frame.png -o frame.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary frame.png -o frame.o + + clean : + @rm -f $(NAME).so +diff --git a/GxHyperion.lv2/Makefile b/GxHyperion.lv2/Makefile +index 86f8b88..2bc01e0 100644 +--- a/GxHyperion.lv2/Makefile ++++ b/GxHyperion.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,7 +49,7 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o + + clean : + @rm -f $(NAME).so +diff --git a/GxKnightFuzz.lv2/Makefile b/GxKnightFuzz.lv2/Makefile +index 16d13b8..02a9713 100644 +--- a/GxKnightFuzz.lv2/Makefile ++++ b/GxKnightFuzz.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,9 +49,9 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o + + clean : + @rm -f $(NAME).so +diff --git a/GxLiquidDrive.lv2/Makefile b/GxLiquidDrive.lv2/Makefile +index 92796e6..537923d 100644 +--- a/GxLiquidDrive.lv2/Makefile ++++ b/GxLiquidDrive.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,9 +49,9 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o + + clean : + @rm -f $(NAME).so +diff --git a/GxMicroAmp.lv2/Makefile b/GxMicroAmp.lv2/Makefile +index 60818f0..556ade0 100644 +--- a/GxMicroAmp.lv2/Makefile ++++ b/GxMicroAmp.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,9 +49,9 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o + + clean : + @rm -f $(NAME).so +diff --git a/GxQuack.lv2/Makefile b/GxQuack.lv2/Makefile +index 2aed99f..a39c911 100644 +--- a/GxQuack.lv2/Makefile ++++ b/GxQuack.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -70,10 +44,10 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png gui/frame.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o +- -@cd ./gui && ld -r -b binary frame.png -o frame.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary frame.png -o frame.o + + clean : + @rm -f $(NAME).so +diff --git a/GxSD1.lv2/Makefile b/GxSD1.lv2/Makefile +index 3b98ee0..4cbfc6a 100644 +--- a/GxSD1.lv2/Makefile ++++ b/GxSD1.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,10 +49,10 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png gui/frame.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o +- -@cd ./gui && ld -r -b binary frame.png -o frame.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary frame.png -o frame.o + + clean : + @rm -f $(NAME).so +diff --git a/GxSD2Lead.lv2/Makefile b/GxSD2Lead.lv2/Makefile +index 7759f91..0f7bb91 100644 +--- a/GxSD2Lead.lv2/Makefile ++++ b/GxSD2Lead.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,9 +49,9 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o + + clean : + @rm -f $(NAME).so +diff --git a/GxSVT.lv2/Makefile b/GxSVT.lv2/Makefile +index 74a96a8..a8bc7f6 100644 +--- a/GxSVT.lv2/Makefile ++++ b/GxSVT.lv2/Makefile +@@ -38,7 +12,7 @@ + -fPIC -DPIC -O2 -Wall -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,9 +49,9 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o + + clean : + @rm -f $(NAME).so +diff --git a/GxSaturator.lv2/Makefile b/GxSaturator.lv2/Makefile +index 62aea02..5c71786 100644 +--- a/GxSaturator.lv2/Makefile ++++ b/GxSaturator.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,7 +49,7 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o + + clean : + @rm -f $(NAME).so +diff --git a/GxSlowGear.lv2/Makefile b/GxSlowGear.lv2/Makefile +index 6b236a1..ad72d70 100644 +--- a/GxSlowGear.lv2/Makefile ++++ b/GxSlowGear.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,7 +49,7 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o + + clean : + @rm -f $(NAME).so +diff --git a/GxSunFace.lv2/Makefile b/GxSunFace.lv2/Makefile +index 428539b..ded15f6 100644 +--- a/GxSunFace.lv2/Makefile ++++ b/GxSunFace.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,9 +49,9 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o + + clean : + @rm -f $(NAME).so +diff --git a/GxSuperFuzz.lv2/Makefile b/GxSuperFuzz.lv2/Makefile +index c3fe9f2..b102d7c 100644 +--- a/GxSuperFuzz.lv2/Makefile ++++ b/GxSuperFuzz.lv2/Makefile +@@ -38,7 +12,7 @@ + -fPIC -DPIC -O2 -Wall -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,7 +49,7 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o + + clean : + @rm -f $(NAME).so +diff --git a/GxSuppaToneBender.lv2/Makefile b/GxSuppaToneBender.lv2/Makefile +index ab640c2..e79fc1c 100644 +--- a/GxSuppaToneBender.lv2/Makefile ++++ b/GxSuppaToneBender.lv2/Makefile +@@ -38,7 +12,7 @@ + -fPIC -DPIC -O2 -Wall -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,7 +49,7 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o + + clean : + @rm -f $(NAME).so +diff --git a/GxToneMachine.lv2/Makefile b/GxToneMachine.lv2/Makefile +index 92b7825..43f3668 100644 +--- a/GxToneMachine.lv2/Makefile ++++ b/GxToneMachine.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,7 +49,7 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o + + clean : + @rm -f $(NAME).so +diff --git a/GxTubeDistortion.lv2/Makefile b/GxTubeDistortion.lv2/Makefile +index dfb58e5..1839ed7 100644 +--- a/GxTubeDistortion.lv2/Makefile ++++ b/GxTubeDistortion.lv2/Makefile +@@ -38,7 +12,7 @@ + -fPIC -DPIC -O2 -Wall -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,9 +49,9 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o + + clean : + @rm -f $(NAME).so +diff --git a/GxUVox720k.lv2/Makefile b/GxUVox720k.lv2/Makefile +index 3933ea2..705dd6c 100644 +--- a/GxUVox720k.lv2/Makefile ++++ b/GxUVox720k.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,7 +49,7 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o + + clean : + @rm -f $(NAME).so +diff --git a/GxVBassPreAmp.lv2/Makefile b/GxVBassPreAmp.lv2/Makefile +index bc60ce1..fd6a707 100644 +--- a/GxVBassPreAmp.lv2/Makefile ++++ b/GxVBassPreAmp.lv2/Makefile +@@ -38,7 +12,7 @@ + -fPIC -DPIC -O2 -Wall -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,10 +49,10 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch_on.png gui/pswitch_off.png gui/frame.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch_on.png -o pswitch_on.o +- -@cd ./gui && ld -r -b binary pswitch_off.png -o pswitch_off.o +- -@cd ./gui && ld -r -b binary frame.png -o frame.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_on.png -o pswitch_on.o ++ -@cd ./gui && $(LD) -r -b binary pswitch_off.png -o pswitch_off.o ++ -@cd ./gui && $(LD) -r -b binary frame.png -o frame.o + + clean : + @rm -f $(NAME).so +diff --git a/GxValveCaster.lv2/Makefile b/GxValveCaster.lv2/Makefile +index 54c6df5..bbfc7e9 100644 +--- a/GxValveCaster.lv2/Makefile ++++ b/GxValveCaster.lv2/Makefile +@@ -39,7 +13,7 @@ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + DEBUGFLAGS += -I. -I./dsp -I./plugin -fPIC -DPIC -O2 -Wall -D DEBUG + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -85,8 +59,8 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/pswitch.png + @$(ECHO) $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary pswitch.png -o pswitch.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pswitch.png -o pswitch.o + + clean : + @rm -f $(NAME).so +diff --git a/GxVintageFuzzMaster.lv2/Makefile b/GxVintageFuzzMaster.lv2/Makefile +index 03ff63e..0f96ffd 100644 +--- a/GxVintageFuzzMaster.lv2/Makefile ++++ b/GxVintageFuzzMaster.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,7 +49,7 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o + + clean : + @rm -f $(NAME).so +diff --git a/GxVmk2.lv2/Makefile b/GxVmk2.lv2/Makefile +index 53c6dc6..74c9fa2 100644 +--- a/GxVmk2.lv2/Makefile ++++ b/GxVmk2.lv2/Makefile +@@ -38,7 +12,7 @@ + -fPIC -DPIC -O2 -Wall -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,8 +49,8 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png gui/frame.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o +- -@cd ./gui && ld -r -b binary frame.png -o frame.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary frame.png -o frame.o + + clean : + @rm -f $(NAME).so +diff --git a/GxVoodoFuzz.lv2/Makefile b/GxVoodoFuzz.lv2/Makefile +index 2f00294..fdd609a 100644 +--- a/GxVoodoFuzz.lv2/Makefile ++++ b/GxVoodoFuzz.lv2/Makefile +@@ -38,7 +12,7 @@ + -funroll-loops -ffast-math -fomit-frame-pointer -fstrength-reduce \ + -fdata-sections -Wl,--gc-sections $(SSE_CFLAGS) + LDFLAGS += -I. -shared -lm +- GUI_LDFLAGS += -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 ++ GUI_LDFLAGS = $(LDFLAGS) -I./gui -shared -lm `pkg-config --cflags --libs cairo` -L/usr/X11/lib -lX11 + # invoke build files + OBJECTS = plugin/$(NAME).cpp + GUI_OBJECTS = gui/$(NAME)_x11ui.c +@@ -75,7 +49,7 @@ endif + #@build resource object files + $(RES_OBJECTS) : gui/pedal.png + @echo $(LGREEN)"generate resource files,"$(NONE) +- -@cd ./gui && ld -r -b binary pedal.png -o pedal.o ++ -@cd ./gui && $(LD) -r -b binary pedal.png -o pedal.o + + clean : + @rm -f $(NAME).so +-- +2.20.1 + diff --git a/recipes-musicians/guitarix/gxplugins.lv2_git.bb b/recipes-musicians/guitarix/gxplugins.lv2_git.bb new file mode 100644 index 0000000..0f8caea --- /dev/null +++ b/recipes-musicians/guitarix/gxplugins.lv2_git.bb @@ -0,0 +1,31 @@ +SUMMARY = "A set of extra lv2 plugins from the guitarix project" +HOMEPAGE = "https://github.com/brummer10/GxPlugins.lv2" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d" + +SRC_URI = " \ + gitsm://github.com/brummer10/GxPlugins.lv2.git \ + file://0001-Adjust-Makefiles-for-cross-compiling.patch \ +" +SRCREV = "63f19485984c002caddec734a9ee94faad2acb55" +S = "${WORKDIR}/git" +PV = "0.6" + +inherit pkgconfig + +DEPENDS += " \ + cairo \ + virtual/libx11 \ + lv2 \ +" + +do_compile() { + oe_runmake SSE_CFLAGS= STRIP=echo +} + +do_install() { + oe_runmake DESTDIR=${D} PREFIX=${prefix} INSTALL_DIR=${libdir}/lv2 install +} + + +FILES_${PN} += "${libdir}/lv2" diff --git a/recipes-musicians/helm/files/0001-do-not-create-ttl-files-it-won-t-work-fo-cross.patch b/recipes-musicians/helm/files/0001-do-not-create-ttl-files-it-won-t-work-fo-cross.patch new file mode 100644 index 0000000..3f5f47a --- /dev/null +++ b/recipes-musicians/helm/files/0001-do-not-create-ttl-files-it-won-t-work-fo-cross.patch @@ -0,0 +1,30 @@ +From 2999f6b8525cac503122d95197f7a3ae314db4e4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 29 Jan 2017 21:13:45 +0100 +Subject: [PATCH 3/3] do not create ttl files - it won't work fo cross +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + builds/linux/LV2/Makefile | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/builds/linux/LV2/Makefile b/builds/linux/LV2/Makefile +index 4a9995f..8ec7d44 100644 +--- a/builds/linux/LV2/Makefile ++++ b/builds/linux/LV2/Makefile +@@ -11,10 +11,8 @@ ttl_generator: + $(MAKE) -f Makefile.ttl_generator CONFIG=$(CONFIG) + + lv2: ttl_generator binary +- ./lv2_ttl_generator build/helm.so + mkdir -p helm.lv2 + cp build/helm.so helm.lv2 +- mv *.ttl helm.lv2 + + clean: + $(MAKE) clean CONFIG=$(CONFIG) -f Makefile.binary diff --git a/recipes-musicians/helm/files/0002-set-VECTORIZE_LOOP-for-gcc.patch b/recipes-musicians/helm/files/0002-set-VECTORIZE_LOOP-for-gcc.patch new file mode 100644 index 0000000..9d2dbf7 --- /dev/null +++ b/recipes-musicians/helm/files/0002-set-VECTORIZE_LOOP-for-gcc.patch @@ -0,0 +1,29 @@ +From fd718ad28ae3bbf85a5159cef5c0cec1824bbc97 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 4 Aug 2017 16:05:29 +0200 +Subject: [PATCH 1/2] set VECTORIZE_LOOP for gcc +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas Müller +--- + mopo/src/common.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/mopo/src/common.h b/mopo/src/common.h +index 9af1f5b..1ef4ce8 100644 +--- a/mopo/src/common.h ++++ b/mopo/src/common.h +@@ -33,6 +33,8 @@ + #define VECTORIZE_LOOP _Pragma("clang loop vectorize(enable) interleave(enable)") + #elif _MSC_VER + #define VECTORIZE_LOOP __pragma(loop(hint_parallel(8))) ++#elif __GNUC__ ++#define VECTORIZE_LOOP _Pragma("GCC ivdep") + #else + #define VECTORIZE_LOOP + #endif +-- +2.9.4 + diff --git a/recipes-musicians/helm/files/0003-use-single-precision-floats-it-performs-much-better.patch b/recipes-musicians/helm/files/0003-use-single-precision-floats-it-performs-much-better.patch new file mode 100644 index 0000000..7da21b7 --- /dev/null +++ b/recipes-musicians/helm/files/0003-use-single-precision-floats-it-performs-much-better.patch @@ -0,0 +1,209 @@ +From 5e2f557a9c20cf8a7bd4f777db2e4883741fc085 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 4 Aug 2017 13:13:24 +0200 +Subject: [PATCH 2/2] use single precision floats - it performs much better +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + mopo/src/arpeggiator.cpp | 2 +- + mopo/src/common.h | 2 +- + mopo/src/state_variable_filter.cpp | 14 +++++++------- + mopo/src/utils.h | 24 ++++++++++++------------ + src/common/synth_base.cpp | 4 ++-- + 5 files changed, 23 insertions(+), 23 deletions(-) + +diff --git a/mopo/src/arpeggiator.cpp b/mopo/src/arpeggiator.cpp +index 1aa7786..7c7bddd 100644 +--- a/mopo/src/arpeggiator.cpp ++++ b/mopo/src/arpeggiator.cpp +@@ -42,7 +42,7 @@ namespace mopo { + + mopo_float frequency = input(kFrequency)->at(0); + mopo_float min_gate = (MIN_VOICE_TIME + VOICE_KILL_TIME) * frequency; +- mopo_float gate = utils::interpolate(min_gate, 1.0, input(kGate)->at(0)); ++ mopo_float gate = utils::interpolate(min_gate, (mopo_float)1.0, input(kGate)->at(0)); + + mopo_float delta_phase = frequency / sample_rate_; + mopo_float new_phase = phase_ + buffer_size_ * delta_phase; +diff --git a/mopo/src/common.h b/mopo/src/common.h +index 1ef4ce8..790b6c0 100644 +--- a/mopo/src/common.h ++++ b/mopo/src/common.h +@@ -41,7 +41,7 @@ + + namespace mopo { + +- typedef double mopo_float; ++ typedef float mopo_float; + + const mopo_float PI = 3.1415926535897932384626433832795; + const int MAX_BUFFER_SIZE = 256; +diff --git a/mopo/src/state_variable_filter.cpp b/mopo/src/state_variable_filter.cpp +index 105deac..8c207b8 100644 +--- a/mopo/src/state_variable_filter.cpp ++++ b/mopo/src/state_variable_filter.cpp +@@ -161,14 +161,14 @@ namespace mopo { + MOPO_ASSERT(cutoff > 0.0); + + if (db24) +- resonance = sqrt(resonance); ++ resonance = sqrtf(resonance); + + mopo_float g = tan(PI * utils::min(cutoff / sample_rate_, 0.5)); + mopo_float k = 1.0 / resonance; + +- mopo_float low_pass_amount = sqrt(utils::clamp(1.0 - blend, 0.0, 1.0)); +- mopo_float band_pass_amount = sqrt(utils::clamp(1.0 - fabs(blend - 1.0), 0.0, 1.0)); +- mopo_float high_pass_amount = sqrt(utils::clamp(blend - 1.0, 0.0, 1.0)); ++ mopo_float low_pass_amount = sqrtf(utils::clamp(1.0 - blend, 0.0, 1.0)); ++ mopo_float band_pass_amount = sqrtf(utils::clamp(1.0 - fabs(blend - 1.0), 0.0, 1.0)); ++ mopo_float high_pass_amount = sqrtf(utils::clamp(blend - 1.0, 0.0, 1.0)); + + target_m0_ = 0.0; + target_m1_ = band_pass_amount; +@@ -189,14 +189,14 @@ namespace mopo { + MOPO_ASSERT(gain >= 0.0); + MOPO_ASSERT(cutoff > 0.0); + +- gain = sqrt(gain); ++ gain = sqrtf(gain); + + mopo_float g = tan(PI * utils::min(cutoff / sample_rate_, 0.5)); + mopo_float k = 1.0; + + switch(choice) { + case kLowShelf: { +- g /= sqrt(gain); ++ g /= sqrtf(gain); + target_m0_ = 1.0; + target_m1_ = k * (gain - 1.0); + target_m2_ = gain * gain - 1.0; +@@ -210,7 +210,7 @@ namespace mopo { + break; + } + case kHighShelf: { +- g *= sqrt(gain); ++ g *= sqrtf(gain); + target_m0_ = gain * gain; + target_m1_ = k * gain * (1.0 - gain); + target_m2_ = 1.0 - gain * gain; +diff --git a/mopo/src/utils.h b/mopo/src/utils.h +index 762d5a2..aba450f 100644 +--- a/mopo/src/utils.h ++++ b/mopo/src/utils.h +@@ -92,15 +92,15 @@ namespace mopo { + + #else + inline mopo_float min(mopo_float one, mopo_float two) { +- return fmin(one, two); ++ return fminf(one, two); + } + + inline mopo_float max(mopo_float one, mopo_float two) { +- return fmax(one, two); ++ return fmaxf(one, two); + } + + inline mopo_float clamp(mopo_float value, mopo_float min, mopo_float max) { +- return fmin(max, fmax(value, min)); ++ return fminf(max, fmaxf(value, min)); + } + #endif + +@@ -120,7 +120,7 @@ namespace mopo { + return fmaf(t, to - from, from); + } + +- inline mopo_float mod(double value, double* integral) { ++ inline double mod(double value, double* integral) { + return modf(value, integral); + } + +@@ -182,35 +182,35 @@ namespace mopo { + } + + inline mopo_float quickTanh(mopo_float value) { +- mopo_float abs_value = fabs(value); ++ mopo_float abs_value = fabsf(value); + mopo_float square = value * value; + + mopo_float num = value * (2.45550750702956 + 2.45550750702956 * abs_value + + square * (0.893229853513558 + 0.821226666969744 * abs_value)); + mopo_float den = 2.44506634652299 + (2.44506634652299 + square) * +- fabs(value + 0.814642734961073 * value * abs_value); ++ fabsf(value + 0.814642734961073 * value * abs_value); + return num / den; + } + + // Version of quick sin where phase is is [-0.5, 0.5] + inline mopo_float quickerSin(mopo_float phase) { +- return phase * (8.0 - 16.0 * fabs(phase)); ++ return phase * (8.0 - 16.0 * fabsf(phase)); + } + + inline mopo_float quickSin(mopo_float phase) { + mopo_float approx = quickerSin(phase); +- return approx * (0.776 + 0.224 * fabs(approx)); ++ return approx * (0.776 + 0.224 * fabsf(approx)); + } + + // Version of quick sin where phase is is [0, 1] + inline mopo_float quickerSin1(mopo_float phase) { + phase = 0.5 - phase; +- return phase * (8.0 - 16.0 * fabs(phase)); ++ return phase * (8.0 - 16.0 * fabsf(phase)); + } + + inline mopo_float quickSin1(mopo_float phase) { + mopo_float approx = quickerSin1(phase); +- return approx * (0.776 + 0.224 * fabs(approx)); ++ return approx * (0.776 + 0.224 * fabsf(approx)); + } + + inline bool isSilent(const mopo_float* buffer, int length) { +@@ -227,13 +227,13 @@ namespace mopo { + for (int i = 0; i < num; ++i) + square_total += buffer[i] * buffer[i]; + +- return sqrt(square_total / num); ++ return sqrtf(square_total / num); + } + + inline mopo_float peak(const mopo_float* buffer, int num, int skip) { + mopo_float peak = 0.0; + for (int i = 0; i < num; i += skip) +- peak = fmax(peak, fabs(buffer[i])); ++ peak = fmaxf(peak, fabsf(buffer[i])); + + return peak; + } +diff --git a/src/common/synth_base.cpp b/src/common/synth_base.cpp +index f24eb01..95b476a 100644 +--- a/src/common/synth_base.cpp ++++ b/src/common/synth_base.cpp +@@ -21,7 +21,7 @@ + #include "synth_gui_interface.h" + #include "utils.h" + +-#define OUTPUT_WINDOW_MIN_NOTE 16.0 ++#define OUTPUT_WINDOW_MIN_NOTE ((mopo::mopo_float)16.0) + + SynthBase::SynthBase() { + controls_ = engine_.getControls(); +@@ -298,7 +298,7 @@ void SynthBase::updateMemoryOutput(int samples, const mopo::mopo_float* left, + while (memory_reset_period_ < window_length) + memory_reset_period_ += memory_reset_period_; + +- memory_reset_period_ = std::min(memory_reset_period_, 2.0 * window_length); ++ memory_reset_period_ = std::min(memory_reset_period_, ((mopo::mopo_float)2.0) * window_length); + memory_index_ = 0; + mopo::utils::copyBufferf(output_memory_, output_memory_write_, 2 * mopo::MEMORY_RESOLUTION); + } +-- +2.9.4 + diff --git a/recipes-musicians/helm/helm_git.bb b/recipes-musicians/helm/helm_git.bb new file mode 100644 index 0000000..ace05f4 --- /dev/null +++ b/recipes-musicians/helm/helm_git.bb @@ -0,0 +1,72 @@ +SUMMARY = "Helm - a free polyphonic synth with lots of modulation" +HOMEPAGE = "http://tytel.org/helm/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit qemu-ext distro_features_check gtk-icon-cache pack_audio_plugins + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS += " \ + virtual/libx11 \ + virtual/libgl \ + libxext \ + libxinerama \ + libxcursor \ + curl \ + alsa-lib \ + jack \ + freetype \ + hicolor-icon-theme \ +" + +SRC_URI += " \ + git://github.com/mtytel/helm.git \ + file://0001-do-not-create-ttl-files-it-won-t-work-fo-cross.patch \ + file://0002-set-VECTORIZE_LOOP-for-gcc.patch \ + file://0003-use-single-precision-floats-it-performs-much-better.patch \ +" +SRCREV = "927d2ed27f71a735c3ff2a1226ce3129d1544e7e" +PV = "0.9.0" +S = "${WORKDIR}/git" + +CXXFLAGS += "-I ${STAGING_INCDIR}/freetype2" + +do_configure_prepend() { + # not easy to patch: + # * the place is platered all over + # * we have some around + OIFS="$IFS" + IFS=$'\n' + for f in `find ${S} -name '*Makefile*' -o -name '*.jucer'`; do + if [ -f "$f" ] ; then + sed -i 's:-L/usr/X11R6/lib/::g' "$f" + sed -i 's:libraryPath="/usr/X11R6/lib/"::g' "$f" + fi + done + IFS="$OIFS" +} + +do_compile() { + oe_runmake 'SIMDFLAGS=' + ${@qemu_run_binary_local(d, '${STAGING_DIR_TARGET}', '${S}/builds/linux/LV2/lv2_ttl_generator')} ${S}/builds/linux/LV2/build/helm.so + cp *.ttl ${S}/builds/linux/LV2/helm.lv2/ +} + +do_install() { + oe_runmake 'DESTDIR=${D}' 'SIMDFLAGS=' 'LIBDIR=${libdir}' 'VSTDIR=${D}${libdir}/vst' install + rm -f ${datadir}/helm/patches/*.patch + rm -f ${datadir}/helm/patches/series +} + +PACKAGES =+ "${PN}-standalone" + +FILES_${PN}-standalone = " \ + ${datadir}/applications \ + ${datadir}/icons \ + ${bindir} \ +" + +RDEPENDS_${PN}-standalone += "${PN}" +RDEPENDS_${PN}-lv2 += "${PN}" +RDEPENDS_${PN}-vst += "${PN}" diff --git a/recipes-musicians/hydrogen/files/0001-hydrogen.default.conf-do-not-show-developer-warnings.patch b/recipes-musicians/hydrogen/files/0001-hydrogen.default.conf-do-not-show-developer-warnings.patch new file mode 100644 index 0000000..72d1533 --- /dev/null +++ b/recipes-musicians/hydrogen/files/0001-hydrogen.default.conf-do-not-show-developer-warnings.patch @@ -0,0 +1,31 @@ +From ad239818271230d7cae0b602ac2165db1b178445 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 5 Feb 2018 23:59:05 +0100 +Subject: [PATCH] hydrogen.default.conf: do not show developer warnings +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + data/hydrogen.default.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/data/hydrogen.default.conf b/data/hydrogen.default.conf +index d57ea8d4..136cbdf0 100644 +--- a/data/hydrogen.default.conf ++++ b/data/hydrogen.default.conf +@@ -23,7 +23,7 @@ + false + 0 + 0 +- true ++ false + true + false + true +-- +2.14.3 + diff --git a/recipes-musicians/hydrogen/files/0002-Fix-man-installation-path.patch b/recipes-musicians/hydrogen/files/0002-Fix-man-installation-path.patch new file mode 100644 index 0000000..f493320 --- /dev/null +++ b/recipes-musicians/hydrogen/files/0002-Fix-man-installation-path.patch @@ -0,0 +1,31 @@ +From ab93d721ca7ae5d628cd3d8fd2d7f90a19cd6954 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 5 Feb 2018 23:52:46 +0100 +Subject: [PATCH] Fix man installation path +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 96dbf47a..5149e78f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -361,7 +361,7 @@ IF(NOT MINGW AND NOT APPLE) + INSTALL(FILES ${CMAKE_SOURCE_DIR}/linux/hydrogen.appdata.xml DESTINATION "${CMAKE_INSTALL_PREFIX}/share/appdata") + INSTALL(FILES ${CMAKE_SOURCE_DIR}/linux/hydrogen.desktop DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications") + INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/img/gray/h2-icon.svg DESTINATION "${H2_UNIX_ICON_PATH}") +- INSTALL(FILES ${CMAKE_SOURCE_DIR}/linux/hydrogen.1 DESTINATION "${CMAKE_INSTALL_PREFIX}/man/man1") ++ INSTALL(FILES ${CMAKE_SOURCE_DIR}/linux/hydrogen.1 DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1") + ENDIF() + + # +-- +2.14.3 + diff --git a/recipes-musicians/hydrogen/hydrogen_git.bb b/recipes-musicians/hydrogen/hydrogen_git.bb new file mode 100644 index 0000000..ed1437b --- /dev/null +++ b/recipes-musicians/hydrogen/hydrogen_git.bb @@ -0,0 +1,296 @@ +SUMMARY = "Hydrogen is an advanced drum machine for GNU/Linux" +HOMEPAGE = "http://www.hydrogen-music.org" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" + +# Note for LADSPA: If I read cmakeFindLadspa.cmake correctly, LASPA plugins +# available are searched during build process. Since I have no idea which +# plugins are useful for hydrogen (maybe caps??) and all those have to go to +# RDEPEND LASPA support is skipped - althogh mentioned as 'desired' in config +# log. If it turns out that LADSPA is required, we need ladspa-sdk-native for +# 'listplugins' tool. + +DEPENDS += " \ + qttools-native \ + qtbase \ + qtxmlpatterns \ + libtar \ + libarchive \ + libsndfile1 \ + alsa-lib \ + liblo \ + jack \ + portaudio-v19 \ + portmidi \ + lrdf \ + pulseaudio \ + rubberband \ + cppunit \ +" + +# drumkits URIs from http://hydrogen-music.org/feeds/drumkit_list.php (downloaded to WORKDIR) +# NOTES: +# * Licenses are included in drumkit_list.php +# * download of drumkits might fail -> repeat builds of this recipe usually helps + +SRC_URI = " \ + git://github.com/hydrogen-music/hydrogen.git \ + file://0001-hydrogen.default.conf-do-not-show-developer-warnings.patch \ + file://0002-Fix-man-installation-path.patch \ + \ + http://hydrogen-music.org/feeds/drumkit_list.php;name=drumkit-list \ + \ + http://hydro.smoors.de/Audiophob.h2drumkit;downloadfilename=Audiophob.tar.gz;name=Audiophob;subdir=drumkits \ + http://hydro.smoors.de/belofilms_GuitarStrums.h2drumkit;downloadfilename=belofilms_GuitarStrums.tar.gz;name=belofilms_GuitarStrums;subdir=drumkits \ + https://sourceforge.net/projects/hydrogen/files/Sound%20Libraries/Main%20sound%20libraries/BJA_Pacific.h2drumkit;downloadfilename=BJA_Pacific.tar.gz;name=BJA_Pacific;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/Boss_DR-110.h2drumkit;downloadfilename=Boss_DR-110.tar.gz;name=Boss_DR-110;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/3355606kit.h2drumkit;downloadfilename=3355606kit.tar.gz;name=3355606kit;subdir=drumkits \ + https://downloads.sourceforge.net/project/hydrogen/Sound%20Libraries/Main%20sound%20libraries/Classic-626.h2drumkit;downloadfilename=Classic-626.tar.gz;name=Classic-626;subdir=drumkits \ + https://downloads.sourceforge.net/project/hydrogen/Sound%20Libraries/Main%20sound%20libraries/Classic-808.h2drumkit;downloadfilename=Classic-808.tar.gz;name=Classic-808;subdir=drumkits \ + https://sourceforge.net/projects/hydrogen/files/Sound%20Libraries/Main%20sound%20libraries/circAfrique%20v4.h2drumkit;downloadfilename=circAfrique-v4.tar.gz;name=circAfrique_v4;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/ColomboAcousticDrumkit.h2drumkit;downloadfilename=ColomboAcousticDrumkit.tar.gz;name=ColomboAcousticDrumkit;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/YamahaVintageKit.h2drumkit;downloadfilename=YamahaVintageKit.tar.gz;name=YamahaVintageKit;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/DeathMetal.h2drumkit;downloadfilename=DeathMetal.tar.gz;name=DeathMetal;subdir=drumkits \ + http://hydro.smoors.de/Denon%20CRB-90.h2drumkit;downloadfilename=Denon-CRB-90.tar.gz;name=Denon-CRB-90;subdir=drumkits \ + http://hydro.smoors.de/Drumkit%20excepcional.h2drumkit;downloadfilename=Drumkit_excepcional.tar.gz;name=Drumkit_excepcional;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/EasternHop-1.h2drumkit;downloadfilename=EasternHop-1.tar.gz;name=EasternHop-1;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/ElectricEmpireKit.h2drumkit;downloadfilename=ElectricEmpireKit.tar.gz;name=ElectricEmpireKit;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/ErnysPercussion.h2drumkit;downloadfilename=ErnysPercussion.tar.gz;name=ErnysPercussion;subdir=drumkits \ + https://sourceforge.net/projects/hydrogen/files/Sound%20Libraries/Main%20sound%20libraries/ForzeeStereo.h2drumkit;downloadfilename=ForzeeStereo.tar.gz;name=ForzeeStereo;subdir=drumkits \ + https://sourceforge.net/projects/hydrogen/files/Sound%20Libraries/Main%20sound%20libraries/Gimme%20A%20Hand%201.0.h2drumkit;downloadfilename=Gimme_A_Hand_1_0.tar.gz;name=Gimme_A_Hand_1_0;subdir=drumkits \ + http://hydro.smoors.de/Flac_GSCW-1.h2drumkit;downloadfilename=Flac_GSCW-1.tar.gz;name=Flac_GSCW-1;subdir=drumkits \ + http://hydro.smoors.de/Flac_GSCW-2.h2drumkit;downloadfilename=Flac_GSCW-2.tar.gz;name=Flac_GSCW-2;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/HardElectro1.h2drumkit;downloadfilename=HardElectro1.tar.gz;name=HardElectro1;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/HipHop-1.h2drumkit;downloadfilename=HipHop-1.tar.gz;name=HipHop-1;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/HipHop-2.h2drumkit;downloadfilename=HipHop-2.tar.gz;name=HipHop-2;subdir=drumkits \ + https://sourceforge.net/projects/hydrogen/files/Sound%20Libraries/Main%20sound%20libraries/K-27_Trash_Kit.h2drumkit;downloadfilename=K-27_Trash_Kit.tar.gz;name=K-27_Trash_Kit;subdir=drumkits \ + http://sourceforge.net/projects/hydrogen/files/Sound%20Libraries/Main%20sound%20libraries/Lightning1024.h2drumkit;downloadfilename=Lightning1024.tar.gz;name=Lightning1024;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/Millo-Drums_v.1.h2drumkit;downloadfilename=Millo-Drums_v_1.tar.gz;name=Millo-Drums_v_1;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/Millo_MultiLayered2.h2drumkit;downloadfilename=Millo_MultiLayered2.tar.gz;name=Millo_MultiLayered2;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/Millo_MultiLayered3.h2drumkit;downloadfilename=Millo_MultiLayered3.tar.gz;name=Millo_MultiLayered3;subdir=drumkits \ + http://hydro.smoors.de/Roland_MC-307_CR78&Cheaps.h2drumkit;downloadfilename=Roland_MC-307_CR78_Cheaps.tar.gz;name=Roland_MC-307_CR78_Cheaps;subdir=drumkits \ + http://hydro.smoors.de/Roland_MC-307_TR-606.h2drumkit;downloadfilename=Roland_MC-307_TR-606.tar.gz;name=Roland_MC-307_TR-606;subdir=drumkits \ + http://hydro.smoors.de/Roland_MC-307_TR-808.h2drumkit;downloadfilename=Roland_MC-307_TR-808.tar.gz;name=Roland_MC-307_TR-808;subdir=drumkits \ + http://hydro.smoors.de/Roland_MC-307_TR-909.h2drumkit;downloadfilename=Roland_MC-307_TR-909.tar.gz;name=Roland_MC-307_TR-909;subdir=drumkits \ + http://hydro.smoors.de/Roland_MC-307_Techno1.h2drumkit;downloadfilename=Roland_MC-307_Techno1.tar.gz;name=Roland_MC-307_Techno1;subdir=drumkits \ + http://hydro.smoors.de/rumpf_kit_z01_h2.h2drumkit;downloadfilename=rumpf_kit_z01_h2.tar.gz;name=rumpf_kit_z01_h2;subdir=drumkits \ + https://sourceforge.net/projects/hydrogen/files/Sound%20Libraries/Main%20sound%20libraries/SF3007-2011-Set-03.h2drumkit;downloadfilename=SF3007-2011-Set-03.tar.gz;name=SF3007-2011-Set-03;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/Synthie-1.h2drumkit;downloadfilename=Synthie-1.tar.gz;name=Synthie-1;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/TD-7kit.h2drumkit;downloadfilename=TD-7kit.tar.gz;name=TD-7kit;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/Techno-1.h2drumkit;downloadfilename=Techno-1.tar.gz;name=Techno-1;subdir=drumkits \ + https://sourceforge.net/projects/hydrogen/files/Sound%20Libraries/Main%20sound%20libraries/The%20Black%20Pearl%201.0.h2drumkit;downloadfilename=The_Black_Pearl_1_0.tar.gz;name=The_Black_Pearl_1_0;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/TR808909.h2drumkit;downloadfilename=TR808909.tar.gz;name=TR808909;subdir=drumkits \ + https://downloads.sourceforge.net/hydrogen/VariBreaks.h2drumkit;downloadfilename=VariBreaks.tar.gz;name=VariBreaks;subdir=drumkits \ + \ + https://freewavesamples.com/files/KawaiXD-5Kit.h2drumkit;downloadfilename=KawaiXD-5Kit.tar.gz;name=KawaiXD-5Kit;subdir=drumkits \ + https://freewavesamples.com/files/RolandJD-990Kit.h2drumkit;downloadfilename=RolandJD-990Kit.tar;name=RolandJD-990Kit;subdir=drumkits \ + https://freewavesamples.com/files/YamahaRX15Kit.h2drumkit;downloadfilename=YamahaRX15Kit.tar.gz;name=YamahaRX15Kit;subdir=drumkits \ + https://freewavesamples.com/files/YamahaTG-55Kit.h2drumkit;downloadfilename=YamahaTG-55Kit.tar.gz;name=YamahaTG-55Kit;subdir=drumkits \ +" +SRCREV = "538eaeb9f4e9be2febf02e36a08e3e9fca2ae317" +PV ="1.0.0~beta1+git${SRCPV}" + +S = "${WORKDIR}/git" + +SRC_URI[drumkit-list.md5sum] = "d7c54dba04092112fb012c1a0acc6404" +SRC_URI[drumkit-list.sha256sum] = "c4ddfcff63e57e72ab376a9b85a1fdf7ba47ec244dcca45ab95984adfd585780" + +SRC_URI[Audiophob.md5sum] = "24cb2577a447bbd72aab769aacb3e8b4" +SRC_URI[Audiophob.sha256sum] = "70b71304221a1287f257ed9a03bfb221af6ce335deec3a3385237e6be6fa9e0c" + +SRC_URI[belofilms_GuitarStrums.md5sum] = "bf694c7faa1f5a627e6b713e4005ea75" +SRC_URI[belofilms_GuitarStrums.sha256sum] = "996143d4f2174fd9b1875359b334684a7ba92849775803ca0c01e6c6408ac1e8" + +SRC_URI[BJA_Pacific.md5sum] = "cde7a74a06edde3b5f85435c29909891" +SRC_URI[BJA_Pacific.sha256sum] = "a485753a2a60a1ce30e782784c0f26a84bbbee6bdb324b40c04a1f09f3668305" + +SRC_URI[Boss_DR-110.md5sum] = "f528892879ee04621055c4a3f12166c1" +SRC_URI[Boss_DR-110.sha256sum] = "5debdfb050f639478725af134d315649f242142f84691ce1409cd9f56f6943be" + +SRC_URI[3355606kit.md5sum] = "5dad41a4f0fb5a9fda0af98b9f553060" +SRC_URI[3355606kit.sha256sum] = "96b1d325fd52e97d7b99ca9191cb376e430ecea1f83d12281f314e30f20fa121" + +SRC_URI[Classic-626.md5sum] = "86dbdb8d2f9b12690e92211d36c6fe7d" +SRC_URI[Classic-626.sha256sum] = "3e95845d821129b119dea47fd56eadbb17da74b3a95a2154cac31a037b8a6f66" + +SRC_URI[Classic-808.md5sum] = "c08d5093fc28a30a7542f0c89493e807" +SRC_URI[Classic-808.sha256sum] = "6be9d2dba736bfcbc85e31ecf744c74b6620143e4fdc198309c4786951077391" + +SRC_URI[circAfrique_v4.md5sum] = "e9d8604d2089abc764e54d1f209900b7" +SRC_URI[circAfrique_v4.sha256sum] = "f09ff7e46310409b8ec7f180193cda6bb69e2a67d5e7f78f8c1c1954bb9a3a2c" + +SRC_URI[ColomboAcousticDrumkit.md5sum] = "cb11827e185ab5a6906967901495884b" +SRC_URI[ColomboAcousticDrumkit.sha256sum] = "30d30e6c9aeb25597454034cee58495b410a8f95b3d689c9a0c4e2915af7871f" + +SRC_URI[YamahaVintageKit.md5sum] = "8f63997dd789179fa009f84cc515fb3e" +SRC_URI[YamahaVintageKit.sha256sum] = "17005f5c79d92af3caef52ea313b1ac5bc49f1eefa4462b22980dec2b031bf27" + +SRC_URI[DeathMetal.md5sum] = "0465025dcf6659657b773874d168c27b" +SRC_URI[DeathMetal.sha256sum] = "7ae4f8e7bf52b84637100b6f781e94752ad738626cff912c7704522ea692fbe7" + +SRC_URI[Denon-CRB-90.md5sum] = "bcb4424b46938d0a2a5c94cbd4248c1f" +SRC_URI[Denon-CRB-90.sha256sum] = "6a2b743b73a0e3df110bef830ccedec4560964e7f7af7b7810dc9d9b6e66e075" + +SRC_URI[Drumkit_excepcional.md5sum] = "49151a17ea5534cd08a9bc58d6972997" +SRC_URI[Drumkit_excepcional.sha256sum] = "634cd9f40a00d8ac6bb1791aadd953fc92536838b206f7f374024bc34b920689" + +SRC_URI[EasternHop-1.md5sum] = "8750fcbe186e49a89bc18a9237ee6604" +SRC_URI[EasternHop-1.sha256sum] = "14ed0cd45097471e3f9775958f40441c1c2886d5594e0111e2b0b7e63b5da00f" + +SRC_URI[ElectricEmpireKit.md5sum] = "df1bd778148cc25d8f63a8cc7aa91fcb" +SRC_URI[ElectricEmpireKit.sha256sum] = "7229f52268483119c3a8b1e62dc85f801e37b6c34834e8c603d8aaec0445c5f9" + +SRC_URI[ErnysPercussion.md5sum] = "0e96f5971d5db887a186d5739c12ab77" +SRC_URI[ErnysPercussion.sha256sum] = "daccb09332bf6aac09b83f9605a084120a9decff1447d02cc68d16b00f101546" + +SRC_URI[ForzeeStereo.md5sum] = "c6cd87bf54e0a760c5f4fecbff979100" +SRC_URI[ForzeeStereo.sha256sum] = "37b9f1d6d8fdf2a65aef5fcde5ac305c89983e1e23ce5b8194922640cce9146d" + +SRC_URI[Gimme_A_Hand_1_0.md5sum] = "0e381ae9e4e04a5eab1ce5e5dbc3dcd4" +SRC_URI[Gimme_A_Hand_1_0.sha256sum] = "f0cd2e52f0dbc8d6a001f203ee47cd691d8d028d30501ce332a52659aa62a07a" + +SRC_URI[Flac_GSCW-1.md5sum] = "529d9be444a6ce0fdfee8738094268a3" +SRC_URI[Flac_GSCW-1.sha256sum] = "710fc835ac4b1bf972205f52e11b533d6b605bc09b834d308a3d2c00fdd9e0b7" + +SRC_URI[Flac_GSCW-2.md5sum] = "af973a2929d257da288f7003bd17c327" +SRC_URI[Flac_GSCW-2.sha256sum] = "cb1f1781e35d916b827ae799303b3b49ec0a115147c38ed390cc6b867e402d12" + +SRC_URI[HardElectro1.md5sum] = "f953edf3f4227d786df59b544370e379" +SRC_URI[HardElectro1.sha256sum] = "cfde7e4c7a25f0d72d0674b4d849471b9d309e28372709b509e743aad8c30d5c" + +SRC_URI[HipHop-1.md5sum] = "7f52d6ac56a31f5b618657d40d4eb86e" +SRC_URI[HipHop-1.sha256sum] = "d194d2d47cd33d09842ecb6db74783aaa89368e69a964868c7fd2feb3e1b7613" + +SRC_URI[HipHop-2.md5sum] = "217f38ebf2849b20ff3a5dca1994be08" +SRC_URI[HipHop-2.sha256sum] = "e2c586017bc4952976b8af5447435e7fa5109308861b5f5be3213d86346bd972" + +SRC_URI[K-27_Trash_Kit.md5sum] = "f445c60d4625a6bfe6bb9dbac1ac0aa7" +SRC_URI[K-27_Trash_Kit.sha256sum] = "ad88e46d6e07a046cb5443e5bea4cc7645be992fc85e24853372cf5562c5ee24" + +SRC_URI[Lightning1024.md5sum] = "8bc8365a17b28ccc41213a0f2f82d869" +SRC_URI[Lightning1024.sha256sum] = "f41377b32b154c809984e11ebaf0b7cfd9bac2ecc26b78c8de7c9bbd243f9310" + +SRC_URI[Millo-Drums_v_1.md5sum] = "4c895d59c3bc5f3322d14789de345be2" +SRC_URI[Millo-Drums_v_1.sha256sum] = "c43d5b25938e95bcce4a204892e668b289f419b993e006bdf3f28c9c374b10c9" + +SRC_URI[Millo_MultiLayered2.md5sum] = "2da5b8ee87bce3e67464c61ba0b722dd" +SRC_URI[Millo_MultiLayered2.sha256sum] = "c81cebee6a4d0df70fee7456c13bbdfe2c50b39b62888cb03c0768f885eb74dd" + +SRC_URI[Millo_MultiLayered3.md5sum] = "79ca7360784ec72959aa07c3c584d76c" +SRC_URI[Millo_MultiLayered3.sha256sum] = "5927572af24f9a2737f94c7c8e816e22d6b28f00e19d575495c1a97351a79096" + +SRC_URI[Roland_MC-307_CR78_Cheaps.md5sum] = "76eebc216b1bdf803f431d52f5d9f5df" +SRC_URI[Roland_MC-307_CR78_Cheaps.sha256sum] = "d056d0a0802fd2485f9dd19a459b7dd889760eb30464ce54db0376d63011a675" + +SRC_URI[Roland_MC-307_TR-606.md5sum] = "6b5267a2dca66975fab876fed9e90ad2" +SRC_URI[Roland_MC-307_TR-606.sha256sum] = "4a5587dade4855df69e261aad6fc2b3ab8738e1ab7dcfa09c4f6e46187152fc5" + +SRC_URI[Roland_MC-307_TR-808.md5sum] = "1a8470f7c02dcf16467d70f91e0e9805" +SRC_URI[Roland_MC-307_TR-808.sha256sum] = "d733cac76ecca2ecbc8f702c9d803583e3c9ef30b8980762f12c00d67a1e8cc9" + +SRC_URI[Roland_MC-307_TR-909.md5sum] = "6cdb5e04844a68ea81b0f48b5d1d6c67" +SRC_URI[Roland_MC-307_TR-909.sha256sum] = "6d6bb92c575cb85c32efcac025e3907fbb6667c75c90dc9f98768ba79fd9937d" + +SRC_URI[Roland_MC-307_Techno1.md5sum] = "6839431689d416ce10390ab3d3160273" +SRC_URI[Roland_MC-307_Techno1.sha256sum] = "4a99341192ef8774049c10eaf4678358289f3310f4a4b26d7e31f4243cfecf99" + +SRC_URI[rumpf_kit_z01_h2.md5sum] = "927094c3712ba0a3724a77e74b2102e9" +SRC_URI[rumpf_kit_z01_h2.sha256sum] = "83f24b15c82d0b34ceaeeb86c5283201b7dd3f5e32b53dfd222d04886bc98740" + +SRC_URI[SF3007-2011-Set-03.md5sum] = "f0b243f7bbc0c4c04977b2efa96a07b4" +SRC_URI[SF3007-2011-Set-03.sha256sum] = "cffa12c5a176d9c9532bafacba773c0a0f7e2fe71ea5a14dae402d2de0726ccb" + +SRC_URI[Synthie-1.md5sum] = "33f02627ac1489e4ab52c5f078c538b9" +SRC_URI[Synthie-1.sha256sum] = "adcc4a3023708fab46108acfc99dfc04e2b2b62bb21aa87ed8a027ccbb46b576" + +SRC_URI[TD-7kit.md5sum] = "635274624e0a739c51b70f72a58cfcec" +SRC_URI[TD-7kit.sha256sum] = "4e9400c2bb7d06f0271bcbf2e052235fe8500095d6e6dfcd8fcb0593571f110b" + +SRC_URI[Techno-1.md5sum] = "f91912fc88361dd8954c11f2e602aa25" +SRC_URI[Techno-1.sha256sum] = "83e072ef8e8783d861ce500a8082161392e49853a54335823e1cd7f7874c8504" + +SRC_URI[The_Black_Pearl_1_0.md5sum] = "3969810a3a9a8844ccc216802b7288ad" +SRC_URI[The_Black_Pearl_1_0.sha256sum] = "4fb52d1bbdda886db4b742c6de33d7475ef5088076c18533bd705c588f69a87b" + +SRC_URI[TR808909.md5sum] = "1db9cce82fbdaebac1ab4608be5853ea" +SRC_URI[TR808909.sha256sum] = "4637f0c39b488074943030d6cb0274f3e35d1da221eb6d078c15ea118f4e496d" + +SRC_URI[VariBreaks.md5sum] = "a9c305829cd23c28ffd1647cb5c0bdfd" +SRC_URI[VariBreaks.sha256sum] = "ed7bfa21abc05712ea89860b7e680808d14d567d49377fbc65914a9dd518e14d" + +SRC_URI[KawaiXD-5Kit.md5sum] = "ae974ec4550b64654cfb1fe42fe110af" +SRC_URI[KawaiXD-5Kit.sha256sum] = "e3da8b98d8d5804e6ca9c047f2140430f12f8d4ae3db8ec4740f9364467c19ed" + +SRC_URI[RolandJD-990Kit.md5sum] = "ef5ecfdea55835789c143c0bc3ac15e9" +SRC_URI[RolandJD-990Kit.sha256sum] = "0ae58586d479ecb0d9b850d832be0483a8aad28eaa7fa46be0d1956d45b0b50c" + +SRC_URI[YamahaRX15Kit.md5sum] = "9f143e9f764b1b0341a3e5a528bf3f13" +SRC_URI[YamahaRX15Kit.sha256sum] = "04b7b7d5d56e4b5f6b7daa3579f594df66a5edb776f705413c1d3d2da90e5bd2" + +SRC_URI[YamahaTG-55Kit.md5sum] = "cf95db46c05287aaa1a18dff0b0ce335" +SRC_URI[YamahaTG-55Kit.sha256sum] = "8dba9f8fa7027606765b3b9bd3d11470e39919683a8676b1598d96c2f7df1462" + + +inherit cmake_qt5 manpages + +EXTRA_OECMAKE = " \ + -DWANT_DEBUG=OFF \ + -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ +" + +do_install_append() { + install -d ${D}/${datadir}/${BPN}/data/drumkits + cp -rf ${WORKDIR}/drumkits/* ${D}/${datadir}/${BPN}/data/drumkits/ + + # grant access + chmod -R 644 ${D}/${datadir}/${BPN}/data/drumkits + export IFS=$'\n' + for drumkitdir in `find ${D}/${datadir}/${BPN}/data/drumkits -type d` ; do + chmod 755 $drumkitdir + done +} + +PACKAGES =+ "${PN}-drumkits" + +# do not move so-libs to -dev package +FILES_SOLIBSDEV = "" + +FILES_${PN} += " \ + ${datadir}/appdata \ + ${libdir}/libhydrogen-core* \ +" + +# only extra drumkits - default kits shipped by sources remain in main package +FILES_${PN}-drumkits = " \ + ${datadir}/${BPN}/data/drumkits/3355606kit \ + ${datadir}/${BPN}/data/drumkits/Audiophob \ + ${datadir}/${BPN}/data/drumkits/belofilms_GuitarStrums \ + ${datadir}/${BPN}/data/drumkits/BJA_Pacific \ + ${datadir}/${BPN}/data/drumkits/Boss_DR-110 \ + ${datadir}/${BPN}/data/drumkits/circAfrique* \ + ${datadir}/${BPN}/data/drumkits/Classic-* \ + ${datadir}/${BPN}/data/drumkits/ColomboAcousticDrumkit \ + ${datadir}/${BPN}/data/drumkits/DeathMetal \ + ${datadir}/${BPN}/data/drumkits/Denon*CRB-90 \ + ${datadir}/${BPN}/data/drumkits/Drumkit*excepcional \ + ${datadir}/${BPN}/data/drumkits/EasternHop-1 \ + ${datadir}/${BPN}/data/drumkits/ElectricEmpireKit \ + ${datadir}/${BPN}/data/drumkits/ErnysPercussion \ + ${datadir}/${BPN}/data/drumkits/Flac_GSCW-* \ + ${datadir}/${BPN}/data/drumkits/ForzeeStereo \ + ${datadir}/${BPN}/data/drumkits/Gimme*A*Hand*1.0 \ + ${datadir}/${BPN}/data/drumkits/HardElectro1 \ + ${datadir}/${BPN}/data/drumkits/HipHop-* \ + ${datadir}/${BPN}/data/drumkits/K-27_Trash_Kit \ + ${datadir}/${BPN}/data/drumkits/Lightning1024 \ + ${datadir}/${BPN}/data/drumkits/Millo* \ + ${datadir}/${BPN}/data/drumkits/Roland* \ + ${datadir}/${BPN}/data/drumkits/rumpf_kit_z01_h2 \ + ${datadir}/${BPN}/data/drumkits/Synthie-1 \ + ${datadir}/${BPN}/data/drumkits/TD-7kit \ + ${datadir}/${BPN}/data/drumkits/Techno-1 \ + ${datadir}/${BPN}/data/drumkits/The*Black*Pearl*1.0 \ + ${datadir}/${BPN}/data/drumkits/TR808909 \ + ${datadir}/${BPN}/data/drumkits/VariBreaks \ + ${datadir}/${BPN}/data/drumkits/YamahaVintageKit \ +" diff --git a/recipes-musicians/infamousplugins/infamousplugins_0.2.04.bb b/recipes-musicians/infamousplugins/infamousplugins_0.2.04.bb new file mode 100644 index 0000000..080935a --- /dev/null +++ b/recipes-musicians/infamousplugins/infamousplugins_0.2.04.bb @@ -0,0 +1,26 @@ +SUMMARY = "Audio plugins in the LV2 format" +HOMEPAGE = "http://ssj71.github.io/infamousPlugins/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS += " \ + cairo \ + lv2 \ + ntk ntk-native \ + zita-resampler \ + fftw \ +" + +inherit cmake pkgconfig gtk-icon-cache + +SRC_URI = " \ + git://github.com/ssj71/infamousPlugins.git \ +" +SRCREV = "970a5de32393cc92ab2144d6a8a5e92b302dc9b5" +S = "${WORKDIR}/git" + +EXTRA_OECMAKE += " \ + -DLIBDIR=${baselib} \ +" + +FILES_${PN} += "${libdir}/lv2" diff --git a/recipes-musicians/kokkinizita/clthreads/0001-Align-Makefile.patch b/recipes-musicians/kokkinizita/clthreads/0001-Align-Makefile.patch new file mode 100644 index 0000000..7cf4f0e --- /dev/null +++ b/recipes-musicians/kokkinizita/clthreads/0001-Align-Makefile.patch @@ -0,0 +1,61 @@ +From 566cc7e03386a012b0e63b4cfe19632685070957 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 1 Nov 2018 19:02:52 +0100 +Subject: [PATCH] Align source/Makefile +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* remove absolut paths +* don't hardcode g++ + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + source/Makefile | 13 ++++--------- + 1 file changed, 4 insertions(+), 9 deletions(-) + +diff --git a/source/Makefile b/source/Makefile +index f841f3f..e30e81a 100644 +--- a/source/Makefile ++++ b/source/Makefile +@@ -20,10 +20,6 @@ + + # Modify as required. + # +-SUFFIX := $(shell uname -m | sed -e 's/^unknown/$//' -e 's/^i.86/$//' -e 's/^x86_64/$/64/') +-PREFIX ?= /usr/local +-INCDIR ?= $(PREFIX)/include +-LIBDIR ?= $(PREFIX)/lib$(SUFFIX) + + + MAJVERS = 2 +@@ -32,8 +28,7 @@ VERSION = $(MAJVERS).$(MINVERS) + + + CPPFLAGS += -DVERSION=\"$(VERSION)\" -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -I. +-CXXFLAGS += -Wall -O2 -fPIC +-CXXFLAGS += -march=native ++CXXFLAGS += -Wall -fPIC + LDLFAGS += + LDLIBS += + +@@ -51,11 +46,11 @@ $(CLTHREADS_MIN): $(CLTHREADS_O) + + + install: $(CLTHREADS_MIN) +- install -d $(DESTDIR)$(PREFIX)/$(INCDIR) +- install -d $(DESTDIR)$(PREFIX)/$(LIBDIR) ++ install -d $(DESTDIR)$(INCDIR) ++ install -d $(DESTDIR)$(LIBDIR) + install -m 644 $(CLTHREADS_H) $(DESTDIR)$(INCDIR) + install -m 755 $(CLTHREADS_MIN) $(DESTDIR)$(LIBDIR) +- ldconfig ++ ldconfig -n $(DESTDIR)$(LIBDIR) + ln -sf $(CLTHREADS_MIN) $(DESTDIR)$(LIBDIR)/$(CLTHREADS_SO) + + uninstall: +-- +2.14.4 + diff --git a/recipes-musicians/kokkinizita/clthreads_2.4.2.bb b/recipes-musicians/kokkinizita/clthreads_2.4.2.bb new file mode 100644 index 0000000..a20cbc1 --- /dev/null +++ b/recipes-musicians/kokkinizita/clthreads_2.4.2.bb @@ -0,0 +1,23 @@ +SUMMARY = "C++ wrapper library around the POSIX threads API" +HOMEPAGE = "http://kokkinizita.linuxaudio.org/linuxaudio/" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" + +DEPENDS = "ldconfig-native" + +SRC_URI = " \ + http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${BPN}-${PV}.tar.bz2 \ + file://0001-Align-Makefile.patch \ +" +SRC_URI[md5sum] = "6c82e4edece2db2de9451b6afe702a86" +SRC_URI[sha256sum] = "c659b14c0c4055c44432cb83060b95d30ae0c1ecc6f50d73968e239c100f7a31" + +do_compile() { + cd ${S}/source + base_do_compile +} + +do_install() { + cd ${S}/source + oe_runmake 'DESTDIR=${D}' 'LIBDIR=${libdir}' 'INCDIR=${includedir}' install +} diff --git a/recipes-musicians/kokkinizita/clxclient/0001-Align-Makefile.patch b/recipes-musicians/kokkinizita/clxclient/0001-Align-Makefile.patch new file mode 100644 index 0000000..a8728d3 --- /dev/null +++ b/recipes-musicians/kokkinizita/clxclient/0001-Align-Makefile.patch @@ -0,0 +1,54 @@ +From 5b95fca0be36e0e57f65975cf5b295e1937bbbf4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 1 Nov 2018 19:46:37 +0100 +Subject: [PATCH] Align Makefile +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + source/Makefile | 11 +++-------- + 1 file changed, 3 insertions(+), 8 deletions(-) + +diff --git a/source/Makefile b/source/Makefile +index 177115f..9e12cb8 100644 +--- a/source/Makefile ++++ b/source/Makefile +@@ -20,20 +20,15 @@ + + # Modify as required. + # +-SUFFIX := $(shell uname -m | sed -e 's/^unknown/$//' -e 's/^i.86/$//' -e 's/^x86_64/$/64/') +-PREFIX ?= /usr/local +-INCDIR ?= $(PREFIX)/include +-LIBDIR ?= $(PREFIX)/lib$(SUFFIX) + + MAJVERS = 3 + MINVERS = 9.2 + VERSION = $(MAJVERS).$(MINVERS) + + +-CPPFLAGS += $(shell pkgconf --cflags freetype2) ++CPPFLAGS += $(shell pkg-config --cflags freetype2) + CPPFLAGS += -DVERSION=\"$(VERSION)\" -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS $(PCONFCFL) +-CXXFLAGS += -Wall -O2 -fPIC +-CXXFLAGS += -march=native ++CXXFLAGS += -I./ -Wall -fPIC + LDLIBS += + + +@@ -55,7 +50,7 @@ install: $(CLXCLIENT_MIN) + install -d $(DESTDIR)$(LIBDIR) + install -m 644 $(CLXCLIENT_H) $(DESTDIR)$(INCDIR) + install -m 755 $(CLXCLIENT_MIN) $(DESTDIR)$(LIBDIR) +- ldconfig ++ ldconfig -n $(DESTDIR)$(LIBDIR) + ln -sf $(CLXCLIENT_MIN) $(DESTDIR)$(LIBDIR)/$(CLXCLIENT_SO) + + uninstall: +-- +2.14.4 + diff --git a/recipes-musicians/kokkinizita/clxclient_3.9.2.bb b/recipes-musicians/kokkinizita/clxclient_3.9.2.bb new file mode 100644 index 0000000..3b99d7e --- /dev/null +++ b/recipes-musicians/kokkinizita/clxclient_3.9.2.bb @@ -0,0 +1,32 @@ +SUMMARY = "C++ wrapper library around the X Window System API" +HOMEPAGE = "http://kokkinizita.linuxaudio.org/linuxaudio/" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" + +inherit pkgconfig distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS = " \ + ldconfig-native \ + clthreads \ + freetype \ + libxft \ +" + +SRC_URI = " \ + http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${BPN}-${PV}.tar.bz2 \ + file://0001-Align-Makefile.patch \ +" +SRC_URI[md5sum] = "39af7de7888fb4d37362edbc94566314" +SRC_URI[sha256sum] = "8501e964f0e0746abc5083a0b75fe3b937281cc4a9f7d1450ff98e86bc337881" + +do_compile() { + cd ${S}/source + base_do_compile +} + +do_install() { + cd ${S}/source + oe_runmake 'DESTDIR=${D}' 'LIBDIR=${libdir}' 'INCDIR=${includedir}' install +} diff --git a/recipes-musicians/kokkinizita/zita-convolver/0001-Align-Makefile.patch b/recipes-musicians/kokkinizita/zita-convolver/0001-Align-Makefile.patch new file mode 100644 index 0000000..de14543 --- /dev/null +++ b/recipes-musicians/kokkinizita/zita-convolver/0001-Align-Makefile.patch @@ -0,0 +1,53 @@ +From 77fd68629356acc5747d06814aa4a86ab7f8b31a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 1 Nov 2018 20:15:23 +0100 +Subject: [PATCH] Align Makefile +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + source/Makefile | 10 ++-------- + 1 file changed, 2 insertions(+), 8 deletions(-) + +diff --git a/source/Makefile b/source/Makefile +index 776c067..dda063f 100644 +--- a/source/Makefile ++++ b/source/Makefile +@@ -20,11 +20,6 @@ + + # Modify as required. + # +-SUFFIX := $(shell uname -m | sed -e 's/^unknown/$//' -e 's/^i.86/$//' -e 's/^x86_64/$/64/') +-PREFIX ?= /usr/local +-INCDIR ?= $(PREFIX)/include +-LIBDIR ?= $(PREFIX)/lib$(SUFFIX) +- + + MAJVERS = 4 + MINVERS = 0.3 +@@ -33,8 +28,7 @@ VERSION = $(MAJVERS).$(MINVERS) + + CPPFLAGS += -I. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS + CPPFLAGS += -DENABLE_VECTOR_MODE +-CXXFLAGS += -fPIC -Wall -ffast-math -funroll-loops -O2 +-CXXFLAGS += -march=native ++CXXFLAGS += -fPIC -Wall -ffast-math -funroll-loops + LDLFAGS += + LDLIBS += + +@@ -56,7 +50,7 @@ install: $(ZITA-CONVOLVER_MIN) + install -d $(DESTDIR)$(LIBDIR) + install -m 644 $(ZITA-CONVOLVER_H) $(DESTDIR)$(INCDIR) + install -m 755 $(ZITA-CONVOLVER_MIN) $(DESTDIR)$(LIBDIR) +- ldconfig ++ ldconfig -n $(DESTDIR)$(LIBDIR) + ln -sf $(ZITA-CONVOLVER_MIN) $(DESTDIR)$(LIBDIR)/$(ZITA-CONVOLVER_SO) + + uninstall: +-- +2.14.4 + diff --git a/recipes-musicians/kokkinizita/zita-convolver_4.0.3.bb b/recipes-musicians/kokkinizita/zita-convolver_4.0.3.bb new file mode 100644 index 0000000..ffdca75 --- /dev/null +++ b/recipes-musicians/kokkinizita/zita-convolver_4.0.3.bb @@ -0,0 +1,28 @@ +SUMMARY = "A fast, partitioned convolution engine library" +HOMEPAGE = "http://kokkinizita.linuxaudio.org/linuxaudio/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit manpages + +DEPENDS = " \ + ldconfig-native \ + fftw \ +" + +SRC_URI = " \ + http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${BPN}-${PV}.tar.bz2 \ + file://0001-Align-Makefile.patch \ +" +SRC_URI[md5sum] = "a357f6ff8588eb53af5335968cfacf3a" +SRC_URI[sha256sum] = "9aa11484fb30b4e6ef00c8a3281eebcfad9221e3937b1beb5fe21b748d89325f" + +do_compile() { + cd ${S}/source + base_do_compile +} + +do_install() { + cd ${S}/source + oe_runmake 'DESTDIR=${D}' 'LIBDIR=${libdir}' 'INCDIR=${includedir}' install +} diff --git a/recipes-musicians/kokkinizita/zita-resampler/0001-Align-Makefiles.patch b/recipes-musicians/kokkinizita/zita-resampler/0001-Align-Makefiles.patch new file mode 100644 index 0000000..887c933 --- /dev/null +++ b/recipes-musicians/kokkinizita/zita-resampler/0001-Align-Makefiles.patch @@ -0,0 +1,84 @@ +From 23dd312b270330a0df18b229b9f68bc74c72934b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 1 Nov 2018 20:31:34 +0100 +Subject: [PATCH] Align Makefiles +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + apps/Makefile | 11 +++-------- + source/Makefile | 9 ++------- + 2 files changed, 5 insertions(+), 15 deletions(-) + +diff --git a/apps/Makefile b/apps/Makefile +index 053b9a6..2becb79 100644 +--- a/apps/Makefile ++++ b/apps/Makefile +@@ -18,14 +18,9 @@ + # ---------------------------------------------------------------------------- + + +-PREFIX ?= /usr/local +-BINDIR ?= $(PREFIX)/bin +-MANDIR ?= /usr/share/man/man1 +- + VERSION = 1.6.0 + CPPFLAGS += -MMD -MP -DVERSION=\"$(VERSION)\" +-CXXFLAGS += -O2 -ffast-math -Wall +-CXXFLAGS += -march=native ++CXXFLAGS += -ffast-math -Wall + + + all: zresample zretune zresample.1.gz zretune.1.gz +@@ -55,8 +50,8 @@ zretune.1.gz: zretune.1 + + + install: all +- install -d $(BINDIR) +- install -d $(MANDIR) ++ install -d $(DESTDIR)$(BINDIR) ++ install -d $(DESTDIR)$(MANDIR) + install -m 755 zresample $(DESTDIR)$(BINDIR) + install -m 755 zretune $(DESTDIR)$(BINDIR) + install -m 644 zresample.1.gz $(DESTDIR)$(MANDIR) +diff --git a/source/Makefile b/source/Makefile +index cd54ff5..ccb68d1 100644 +--- a/source/Makefile ++++ b/source/Makefile +@@ -20,10 +20,6 @@ + + # Modify as required. + # +-SUFFIX := $(shell uname -m | sed -e 's/^unknown/$//' -e 's/^i.86/$//' -e 's/^x86_64/$/64/') +-PREFIX ?= /usr/local +-INCDIR ?= $(PREFIX)/include +-LIBDIR ?= $(PREFIX)/lib$(SUFFIX) + + MAJVERS = 1 + MINVERS = 6.2 +@@ -32,8 +28,7 @@ DISTDIR = zita-resampler-$(VERSION) + + + CPPFLAGS += -I. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS +-CXXFLAGS += -Wall -fPIC -O2 -ffast-math +-CXXFLAGS += -march=native ++CXXFLAGS += -Wall -fPIC -ffast-math + LDFLAGS += + LDLIBS += + +@@ -58,7 +53,7 @@ install: $(ZITA-RESAMPLER_MIN) + install -d $(DESTDIR)$(LIBDIR) + install -m 644 $(ZITA-RESAMPLER_H) $(DESTDIR)$(INCDIR)/zita-resampler + install -m 755 $(ZITA-RESAMPLER_MIN) $(DESTDIR)$(LIBDIR) +- ldconfig ++ ldconfig -n $(DESTDIR)$(LIBDIR) + ln -sf $(ZITA-RESAMPLER_MIN) $(DESTDIR)$(LIBDIR)/$(ZITA-RESAMPLER_SO) + + uninstall: +-- +2.14.4 + diff --git a/recipes-musicians/kokkinizita/zita-resampler_1.6.2.bb b/recipes-musicians/kokkinizita/zita-resampler_1.6.2.bb new file mode 100644 index 0000000..a48332d --- /dev/null +++ b/recipes-musicians/kokkinizita/zita-resampler_1.6.2.bb @@ -0,0 +1,42 @@ +SUMMARY = "A C++ library for resampling audio signals" +HOMEPAGE = "http://kokkinizita.linuxaudio.org/linuxaudio/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit manpages + +DEPENDS += " \ + ldconfig-native \ + gzip-native \ + libsndfile1 \ +" + +SRC_URI = " \ + http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${BPN}-${PV}.tar.bz2 \ + file://0001-Align-Makefiles.patch \ +" +SRC_URI[md5sum] = "9b2cff7fa419febbca3a13435b2a24b3" +SRC_URI[sha256sum] = "233baefee297094514bfc9063e47f848e8138dc7c959d9cd957b36019b98c5d7" + +# for builing apps +CXXFLAGS+=" -I../source" +LDFLAGS+=" -L../source" + +do_compile() { + cd ${S}/source + base_do_compile + + # create lib link for building apps + ln -sf lib${BPN}.so.${PV} lib${BPN}.so + + cd ${S}/apps + base_do_compile +} + +do_install() { + cd ${S}/source + oe_runmake 'DESTDIR=${D}' 'LIBDIR=${libdir}' 'INCDIR=${includedir}' install + + cd ${S}/apps + oe_runmake 'DESTDIR=${D}' 'BINDIR=${bindir}' 'MANDIR=${mandir}' install +} diff --git a/recipes-musicians/ladspa/files/0001-do-not-pin-build-flags-use-defaults.patch b/recipes-musicians/ladspa/files/0001-do-not-pin-build-flags-use-defaults.patch new file mode 100644 index 0000000..0bd5b8c --- /dev/null +++ b/recipes-musicians/ladspa/files/0001-do-not-pin-build-flags-use-defaults.patch @@ -0,0 +1,77 @@ +From 43251e9b177f5256825deaffe136230ca3c0378a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 18 Sep 2016 22:14:59 +0200 +Subject: [PATCH 1/2] do not pin build flags - use defaults +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross-specific] + +Signed-off-by: Andreas Müller +Signed-off-by: wata2ki +--- + src/makefile | 16 +++++----------- + 1 file changed, 5 insertions(+), 11 deletions(-) + +diff --git a/src/makefile b/src/makefile +index 886237f..1764da7 100644 +--- a/src/makefile ++++ b/src/makefile +@@ -15,8 +15,6 @@ INSTALL_BINARY_DIR = /usr/bin/ + + INCLUDES = -I. + LIBRARIES = -ldl -lm +-CFLAGS = $(INCLUDES) -Wall -Werror -O3 -fPIC +-CXXFLAGS = $(CFLAGS) + PLUGINS = ../plugins/amp.so \ + ../plugins/delay.so \ + ../plugins/filter.so \ +@@ -25,8 +23,6 @@ PLUGINS = ../plugins/amp.so \ + PROGRAMS = ../bin/analyseplugin \ + ../bin/applyplugin \ + ../bin/listplugins +-CC = cc +-CPP = c++ + + ############################################################################### + # +@@ -34,12 +30,10 @@ CPP = c++ + # + + ../plugins/%.so: plugins/%.c ladspa.h +- $(CC) $(CFLAGS) -o plugins/$*.o -c plugins/$*.c +- $(LD) -o ../plugins/$*.so plugins/$*.o -shared ++ $(CC) $(CFLAGS) -o ../plugins/$*.so plugins/$*.c -shared $(LDFLAGS) + + ../plugins/%.so: plugins/%.cpp ladspa.h +- $(CPP) $(CXXFLAGS) -o plugins/$*.o -c plugins/$*.cpp +- $(CPP) -o ../plugins/$*.so plugins/$*.o -shared ++ $(CXX) $(CFLAGS) -o ../plugins/$*.so plugins/$*.cpp -shared $(LDFLAGS) + + ############################################################################### + # +@@ -90,17 +84,17 @@ targets: $(PLUGINS) $(PROGRAMS) + # + + ../bin/applyplugin: applyplugin.o load.o default.o +- $(CC) $(CFLAGS) $(LIBRARIES) \ ++ $(CC) $(CFLAGS) -ldl $(LDFLAGS) \ + -o ../bin/applyplugin \ + applyplugin.o load.o default.o + + ../bin/analyseplugin: analyseplugin.o load.o default.o +- $(CC) $(CFLAGS) $(LIBRARIES) \ ++ $(CC) $(CFLAGS) -ldl -lm $(LDFLAGS) \ + -o ../bin/analyseplugin \ + analyseplugin.o load.o default.o + + ../bin/listplugins: listplugins.o search.o +- $(CC) $(CFLAGS) $(LIBRARIES) \ ++ $(CC) $(CFLAGS) -ldl $(LDFLAGS) \ + -o ../bin/listplugins \ + listplugins.o search.o + +-- +2.7.4 + diff --git a/recipes-musicians/ladspa/files/0002-Fix-_init-and-_fini-multiple-definition.patch b/recipes-musicians/ladspa/files/0002-Fix-_init-and-_fini-multiple-definition.patch new file mode 100644 index 0000000..b1d18c0 --- /dev/null +++ b/recipes-musicians/ladspa/files/0002-Fix-_init-and-_fini-multiple-definition.patch @@ -0,0 +1,135 @@ +From 2fdcfa6361ac0d897552c39e362424da9f0e2423 Mon Sep 17 00:00:00 2001 +From: wata2ki +Date: Sat, 12 May 2018 20:49:12 +0900 +Subject: [PATCH 2/2] Fix _init and _fini multiple definition + +When linking using CC, the following error occurs. + +/tmp/ccpy2KWL.o: In function `_init': +ladspa_sdk/src/plugins/noise.c:146: multiple definition of `_init' +sysdeps/arm/crti.S:83: first defined here +/tmp/ccpy2KWL.o: In function `_fini': +ladspa_sdk/src/plugins/noise.c:223: multiple definition of `_fini' +sysdeps/arm/crti.S:95: first defined here +collect2: error: ld returned 1 exit status +makefile:33: recipe for target '../plugins/noise.so' failed +make: *** [../plugins/noise.so] Error 1 + +Because these plugins are using deprecated _init and _fini instead of __attribute__ ((constructor)) and __attribute__ ((destructor)). +This patch is modified to use __attribute__ ((constructor)) and __attribute__ ((destructor)). + +Signed-off-by: wata2ki +--- + src/plugins/amp.c | 8 ++++---- + src/plugins/delay.c | 8 ++++---- + src/plugins/filter.c | 8 ++++---- + src/plugins/noise.c | 8 ++++---- + 4 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/src/plugins/amp.c b/src/plugins/amp.c +index b6d2345..f80b3e3 100644 +--- a/src/plugins/amp.c ++++ b/src/plugins/amp.c +@@ -152,8 +152,8 @@ LADSPA_Descriptor * g_psStereoDescriptor = NULL; + + /* _init() is called automatically when the plugin library is first + loaded. */ +-void +-_init() { ++void __attribute__ ((constructor)) ++local_init() { + + char ** pcPortNames; + LADSPA_PortDescriptor * piPortDescriptors; +@@ -335,8 +335,8 @@ deleteDescriptor(LADSPA_Descriptor * psDescriptor) { + /*****************************************************************************/ + + /* _fini() is called automatically when the library is unloaded. */ +-void +-_fini() { ++void __attribute__ ((destructor)) ++local_fini() { + deleteDescriptor(g_psMonoDescriptor); + deleteDescriptor(g_psStereoDescriptor); + } +diff --git a/src/plugins/delay.c b/src/plugins/delay.c +index 8b03979..7b15966 100644 +--- a/src/plugins/delay.c ++++ b/src/plugins/delay.c +@@ -228,8 +228,8 @@ LADSPA_Descriptor * g_psDescriptor = NULL; + + /* _init() is called automatically when the plugin library is first + loaded. */ +-void +-_init() { ++void __attribute__ ((constructor)) ++local_init() { + + char ** pcPortNames; + LADSPA_PortDescriptor * piPortDescriptors; +@@ -322,8 +322,8 @@ _init() { + /*****************************************************************************/ + + /* _fini() is called automatically when the library is unloaded. */ +-void +-_fini() { ++void __attribute__ ((destructor)) ++local_fini() { + long lIndex; + if (g_psDescriptor) { + free((char *)g_psDescriptor->Label); +diff --git a/src/plugins/filter.c b/src/plugins/filter.c +index 3f50457..aa53a4f 100644 +--- a/src/plugins/filter.c ++++ b/src/plugins/filter.c +@@ -252,8 +252,8 @@ LADSPA_Descriptor * g_psHPFDescriptor = NULL; + + /* _init() is called automatically when the plugin library is first + loaded. */ +-void +-_init() { ++void __attribute__ ((constructor)) ++local_init() { + + char ** pcPortNames; + LADSPA_PortDescriptor * piPortDescriptors; +@@ -431,8 +431,8 @@ deleteDescriptor(LADSPA_Descriptor * psDescriptor) { + /*****************************************************************************/ + + /* _fini() is called automatically when the library is unloaded. */ +-void +-_fini() { ++void __attribute__ ((destructor)) ++local_fini() { + deleteDescriptor(g_psLPFDescriptor); + deleteDescriptor(g_psHPFDescriptor); + } +diff --git a/src/plugins/noise.c b/src/plugins/noise.c +index 0fdd938..f602055 100644 +--- a/src/plugins/noise.c ++++ b/src/plugins/noise.c +@@ -142,8 +142,8 @@ LADSPA_Descriptor * g_psDescriptor; + + /* _init() is called automatically when the plugin library is first + loaded. */ +-void +-_init() { ++void __attribute__ ((constructor)) ++local_init() { + + char ** pcPortNames; + LADSPA_PortDescriptor * piPortDescriptors; +@@ -219,8 +219,8 @@ _init() { + /*****************************************************************************/ + + /* _fini() is called automatically when the library is unloaded. */ +-void +-_fini() { ++void __attribute__ ((destructor)) ++local_fini() { + long lIndex; + if (g_psDescriptor) { + free((char *)g_psDescriptor->Label); +-- +2.7.4 + diff --git a/recipes-musicians/ladspa/files/0002-Use-fallback-for-plugindir-in-case-env.-var-LADSPA_P.patch b/recipes-musicians/ladspa/files/0002-Use-fallback-for-plugindir-in-case-env.-var-LADSPA_P.patch new file mode 100644 index 0000000..123883e --- /dev/null +++ b/recipes-musicians/ladspa/files/0002-Use-fallback-for-plugindir-in-case-env.-var-LADSPA_P.patch @@ -0,0 +1,55 @@ +From 3a3b4f3895ab18a60a734017fcaa22c1fdbabf6f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 19 Sep 2016 00:06:04 +0200 +Subject: [PATCH] Use fallback for plugindir in case env. var LADSPA_PATH is + not set +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Same as [1] + +[1] https://git.archlinux.org/svntogit/packages.git/tree/trunk/fallback-ladspa-path.patch?h=packages/ladspa + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + src/load.c | 4 +++- + src/search.c | 5 +---- + 2 files changed, 4 insertions(+), 5 deletions(-) + +diff --git a/src/load.c b/src/load.c +index c2a5aa7..72c4896 100644 +--- a/src/load.c ++++ b/src/load.c +@@ -54,7 +54,9 @@ dlopenLADSPA(const char * pcFilename, int iFlag) { + to search. */ + + pcLADSPAPath = getenv("LADSPA_PATH"); +- ++ if (! pcLADSPAPath) ++ pcLADSPAPath = "/usr/lib/ladspa"; ++ + if (pcLADSPAPath) { + + pcStart = pcLADSPAPath; +diff --git a/src/search.c b/src/search.c +index 0006712..009f2c6 100644 +--- a/src/search.c ++++ b/src/search.c +@@ -99,10 +99,7 @@ LADSPAPluginSearch(LADSPAPluginSearchCallbackFunction fCallbackFunction) { + + pcLADSPAPath = getenv("LADSPA_PATH"); + if (!pcLADSPAPath) { +- fprintf(stderr, +- "Warning: You do not have a LADSPA_PATH " +- "environment variable set.\n"); +- return; ++ pcLADSPAPath = "/usr/lib/ladspa"; + } + + pcStart = pcLADSPAPath; +-- +2.5.5 + diff --git a/recipes-musicians/ladspa/ladspa-sdk_1.13.bb b/recipes-musicians/ladspa/ladspa-sdk_1.13.bb new file mode 100644 index 0000000..1db4ae4 --- /dev/null +++ b/recipes-musicians/ladspa/ladspa-sdk_1.13.bb @@ -0,0 +1,39 @@ +SUMMARY = "Linux Audio Developer's Simple Plug-in API, examples and tools" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://doc/COPYING;md5=6fd75d9d2ba6776dcdc4d5257eeab3dd" + +DEPENDS += " \ + fftw \ +" + +SRC_URI = " \ + http://slackware.uk/slacky/slackware-13.0/multimedia/ladspa/${PV}/src/ladspa_sdk_${PV}.tgz \ + file://0001-do-not-pin-build-flags-use-defaults.patch \ + file://0002-Fix-_init-and-_fini-multiple-definition.patch \ + file://0002-Use-fallback-for-plugindir-in-case-env.-var-LADSPA_P.patch \ +" +SRC_URI[md5sum] = "671be3e1021d0722cadc7fb27054628e" +SRC_URI[sha256sum] = "b5ed3f4f253a0f6c1b7a1f4b8cf62376ca9f51d999650dd822650c43852d306b" + +S = "${WORKDIR}/ladspa_sdk" + +CFLAGS += "-I. -fPIC" +CXXFLAGS += "-I. -fPIC" + +do_compile() { + cd ${S}/src + oe_runmake targets +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/bin/* ${D}${bindir} + + install -d ${D}${libdir}/ladspa + install -m 0644 ${S}/plugins/* ${D}${libdir}/ladspa + + install -d ${D}${includedir} + install -m 0644 ${S}/src/ladspa.h ${D}${includedir} +} + +FILES_${PN} += "${libdir}/ladspa" diff --git a/recipes-musicians/liblo/files/0001-Fix-build-with-GCC-8.patch b/recipes-musicians/liblo/files/0001-Fix-build-with-GCC-8.patch new file mode 100644 index 0000000..2ba1b10 --- /dev/null +++ b/recipes-musicians/liblo/files/0001-Fix-build-with-GCC-8.patch @@ -0,0 +1,36 @@ +From 74621a7d961b792fb5a9399b6f40ef633ebc5339 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 1 Jul 2018 18:10:10 +0200 +Subject: [PATCH] Fix build with GCC >= 8 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +| ../../liblo-0.29/src/server.c:324:13: error: 'strncpy' specified bound 1024 equals destination size [-Werror=stringop-truncation] +| strncpy(hostname, he->h_name, sizeof(hostname)); +| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +| cc1: all warnings being treated as errors + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + src/server.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/server.c b/src/server.c +index 01fa08f..e94a453 100644 +--- a/src/server.c ++++ b/src/server.c +@@ -321,7 +321,7 @@ void lo_server_resolve_hostname(lo_server s) + gethostname(hostname, sizeof(hostname)); + he = gethostbyname(hostname); + if (he) { +- strncpy(hostname, he->h_name, sizeof(hostname)); ++ strncpy(hostname, he->h_name, sizeof(hostname)-1); + } + } + +-- +2.14.4 + diff --git a/recipes-musicians/liblo/liblo_0.29.bb b/recipes-musicians/liblo/liblo_0.29.bb new file mode 100644 index 0000000..48becba --- /dev/null +++ b/recipes-musicians/liblo/liblo_0.29.bb @@ -0,0 +1,13 @@ +SUMMARY = "liblo is an implementation of the Open Sound Control protocol" +HOMEPAGE = "http://liblo.sourceforge.net" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" + +inherit autotools pkgconfig + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + file://0001-Fix-build-with-GCC-8.patch \ +" +SRC_URI[md5sum] = "b0e70bc0fb2254addf94adddf85cffd3" +SRC_URI[sha256sum] = "ace1b4e234091425c150261d1ca7070cece48ee3c228a5612d048116d864c06a" diff --git a/recipes-musicians/libmp4v2/libmp4v2_git.bb b/recipes-musicians/libmp4v2/libmp4v2_git.bb new file mode 100644 index 0000000..55a461a --- /dev/null +++ b/recipes-musicians/libmp4v2/libmp4v2_git.bb @@ -0,0 +1,11 @@ +SUMMARY = "The MP4v2 library provides an API to create and modify mp4 files" +HOMEPAGE = "https://github.com/sergiomb2/libmp4v2/wiki" +LICENSE = "MPLv1.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb3014b036b6d2151d944aef6a84c36f" + +inherit autotools pkgconfig + +SRC_URI = "git://github.com/sergiomb2/${BPN}.git" +SRCREV = "855e9674232808ff3be7191b697dfb56917db21f" +S = "${WORKDIR}/git" +PV = "2.1.0+git${SRCPV}" diff --git a/recipes-musicians/libsmf/libsmf_git.bb b/recipes-musicians/libsmf/libsmf_git.bb new file mode 100644 index 0000000..7399bba --- /dev/null +++ b/recipes-musicians/libsmf/libsmf_git.bb @@ -0,0 +1,14 @@ +SUMMARY = "C library for handling Standard MIDI Files" +HOMEPAGE = "https://github.com/stump/libsmf" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=73755aa03cb15d62bbf780d2c17f31b7" + +inherit autotools pkgconfig + +SRC_URI = "git://github.com/stump/libsmf.git" +SRCREV = "692e728d2c13caa3896880216f19f5565ea03886" +S = "${WORKDIR}/git" + +PV = "1.3+git${SRCPV}" + +DEPENDS += "glib-2.0" diff --git a/recipes-musicians/libxmp/libxmp_4.4.1.bb b/recipes-musicians/libxmp/libxmp_4.4.1.bb new file mode 100644 index 0000000..d57f270 --- /dev/null +++ b/recipes-musicians/libxmp/libxmp_4.4.1.bb @@ -0,0 +1,10 @@ +SUMMARY = "Extended Module Player Library" +HOMEPAGE = "http://xmp.sourceforge.net/" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://README;beginline=59;md5=9cee4cd08e9762f4a8fda61cb39d430d" + +inherit autotools-brokensep pkgconfig + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/xmp/${BPN}/${PV}/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "3a2afcbbb720fb2931e79aeb66e724f7" +SRC_URI[sha256sum] = "353535cc84c8cddae8decec4e65fa4c51fc64f22eb0891bc3dae6eaf25f9cccf" diff --git a/recipes-musicians/linuxsampler/libgig_4.1.0.bb b/recipes-musicians/linuxsampler/libgig_4.1.0.bb new file mode 100644 index 0000000..5fa754d --- /dev/null +++ b/recipes-musicians/linuxsampler/libgig_4.1.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "GigaStudio/Gigasampler, DLS, AKAI, SoundFont, KORG file access library" +HOMEPAGE = "http://www.linuxsampler.org" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=526c29250ae72f6933cdc01414b9943b \ +" + +DEPENDS = " \ + util-linux \ + libsndfile1 \ +" + +inherit autotools pkgconfig lib_package + +SRC_URI = "http://download.linuxsampler.org/packages/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "a2ad3f933d13332b7a2ea68de20fa4b7" +SRC_URI[sha256sum] = "06a280278a323963042acdf13b092644cceb43ef367fcbb9ca7bbedff132bd0b" + +FILES_SOLIBSDEV = "${libdir}/${BPN}/lib*${SOLIBSDEV}" diff --git a/recipes-musicians/linuxsampler/linuxsampler/0001-configure.ac-Do-not-try-to-run-code-to-check-for-UNI.patch b/recipes-musicians/linuxsampler/linuxsampler/0001-configure.ac-Do-not-try-to-run-code-to-check-for-UNI.patch new file mode 100644 index 0000000..68999d9 --- /dev/null +++ b/recipes-musicians/linuxsampler/linuxsampler/0001-configure.ac-Do-not-try-to-run-code-to-check-for-UNI.patch @@ -0,0 +1,60 @@ +From 9e1f68d39bfb7cfe393c86009a7410c07ca31a1c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 14 Mar 2019 01:02:36 +0100 +Subject: [PATCH] configure.ac: Do not try to run code to check for UNIX98 + compatibility +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 30 ------------------------------ + 1 file changed, 30 deletions(-) + +diff --git a/configure.ac b/configure.ac +index aad44c9..b2b065a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -109,36 +109,6 @@ AC_CHECK_HEADERS( + ) + AM_CONDITIONAL(HAVE_WINDOWS, test $have_windows = "1") + +-AC_MSG_CHECKING([whether UNIX98 compatible]) +-AC_LANG_PUSH([C]) +-AC_RUN_IFELSE([AC_LANG_SOURCE([[ +-#ifndef _GNU_SOURCE +-#define _GNU_SOURCE 1 +-#endif +-#include +-void main(void) { +-#if _XOPEN_SOURCE >= 500 +-exit(0); /* UNIX98 compatible */ +-#else +-exit(-1); /* not UNIX98 compatible */ +-#endif +-} +-]])], +-have_unix98="yes", +-have_unix98="no", +-have_unix98="no" +-) +-AC_LANG_POP([C]) +-AC_MSG_RESULT([$have_unix98]) +-if test "$have_unix98" = "no" -a "$have_windows" = "0" -a "$mac" = "no" ; then +- if test "x$HAVE_UNIX98" = "x"; then +- echo "LinuxSampler only runs on UNIX98 compatible systems, which is mandatory for" +- echo "pthread_mutexattr_settype() call in Mutex.cpp. You may want to run" +- echo "./configure with environment variable HAVE_UNIX98=1 in case you think you" +- echo "have a UNIX98 compatible system." +- exit -1; +- fi +-fi + + # check for + AC_CHECK_HEADERS(features.h) +-- +2.20.1 + diff --git a/recipes-musicians/linuxsampler/linuxsampler_2.1.0.bb b/recipes-musicians/linuxsampler/linuxsampler_2.1.0.bb new file mode 100644 index 0000000..c220899 --- /dev/null +++ b/recipes-musicians/linuxsampler/linuxsampler_2.1.0.bb @@ -0,0 +1,30 @@ +SUMMARY = "LinuxSampler - modular, streaming capable sampler" +HOMEPAGE = "http://www.linuxsampler.org" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=0640e0c29fde7334746a009461544030 \ +" + +inherit autotools pkgconfig + +DEPENDS = " \ + bison-native \ + bison \ + libgig \ + jack \ + dssi \ + lv2 \ +" + +SRC_URI = " \ + http://download.linuxsampler.org/packages/${BPN}-${PV}.tar.bz2 \ + file://0001-configure.ac-Do-not-try-to-run-code-to-check-for-UNI.patch \ +" +SRC_URI[md5sum] = "c57fbd1310e9189ee72acf81e63bf3d5" +SRC_URI[sha256sum] = "4e0a49efeae9c26a223094247b7e01108d829a69618492282a203a290fbfbd39" + +EXTRA_OECONF = " \ + --enable-unsigned-triang-algo=intmathabs \ + --enable-signed-triang-algo=intmathabs \ +" + diff --git a/recipes-musicians/lmms/lmms-native.bb b/recipes-musicians/lmms/lmms-native.bb new file mode 100644 index 0000000..3c44341 --- /dev/null +++ b/recipes-musicians/lmms/lmms-native.bb @@ -0,0 +1,13 @@ +require ${BPN}.inc + +inherit native + +do_compile() { + cd ${S}/buildtools + ${CXX} ${CXXFLAGS} -o bin2res bin2res.cpp $(LDFLAGS) +} + +do_install() { + install -d ${D}${bindir} + install -m 755 ${S}/buildtools/bin2res ${D}${bindir} +} diff --git a/recipes-musicians/lmms/lmms.bb b/recipes-musicians/lmms/lmms.bb new file mode 100644 index 0000000..13dbb8f --- /dev/null +++ b/recipes-musicians/lmms/lmms.bb @@ -0,0 +1,40 @@ +require ${BPN}.inc + +inherit cmake_qt5 distro_features_check pkgconfig mime gtk-icon-cache pkgconfig + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI += " \ + file://0001-Find-native-bin2res.patch \ + file://0002-zynaddsubfx-link-agains-X11.patch \ + file://0003-CMake-rpmalloc-Do-not-overwrite-CMAKE_C_FLAGS.patch \ + file://0004-carlabase-Do-not-add-RPATH-to-carlabase.patch \ +" + +DEPENDS += " \ + ${BPN}-native \ + qtbase \ + qttools-native \ + qtx11extras \ + jack \ + fftw \ + stk \ + lame \ + fluidsynth \ + portaudio-v19 \ + libsdl \ + carla \ + fltk fltk-native \ +" + +EXTRA_OECMAKE += " \ + -DWANT_QT5=ON \ + -DWANT_WEAKJACK=OFF \ +" + +FILES_${PN} += " \ + ${datadir}/mime \ + ${datadir}/menu \ +" + +RDEPENDS_${PN} += "carla" diff --git a/recipes-musicians/lmms/lmms.inc b/recipes-musicians/lmms/lmms.inc new file mode 100644 index 0000000..f4b4c94 --- /dev/null +++ b/recipes-musicians/lmms/lmms.inc @@ -0,0 +1,9 @@ +SUMMARY = "Qt based sequencer" +HOMEPAGE = "https://lmms.io" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI = "gitsm://github.com/LMMS/${BPN}.git;branch=stable-1.2" +SRCREV = "55eb831507250b236de80e63d376083dde0b3ae1" +S = "${WORKDIR}/git" +PV = "1.2.0~rc8+git${SRCPV}" diff --git a/recipes-musicians/lmms/lmms/0001-Find-native-bin2res.patch b/recipes-musicians/lmms/lmms/0001-Find-native-bin2res.patch new file mode 100644 index 0000000..b254846 --- /dev/null +++ b/recipes-musicians/lmms/lmms/0001-Find-native-bin2res.patch @@ -0,0 +1,45 @@ +From d224e6ccbd8c221172099e9c0162e03eeb1b6e18 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 6 Nov 2017 21:44:58 +0100 +Subject: [PATCH] Find native bin2res +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + cmake/modules/BuildPlugin.cmake | 2 +- + src/CMakeLists.txt | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cmake/modules/BuildPlugin.cmake b/cmake/modules/BuildPlugin.cmake +index 25cca92af..bb031990f 100644 +--- a/cmake/modules/BuildPlugin.cmake ++++ b/cmake/modules/BuildPlugin.cmake +@@ -27,7 +27,7 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME) + + SET(ER_H "${CMAKE_CURRENT_BINARY_DIR}/embedded_resources.h") + ADD_CUSTOM_COMMAND(OUTPUT ${ER_H} +- COMMAND ${BIN2RES} ++ COMMAND bin2res + ARGS ${PLUGIN_EMBEDDED_RESOURCES} > "${ER_H}" + DEPENDS bin2res) + ENDIF(ER_LEN) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index b18fa897e..d0eea89ae 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -45,7 +45,7 @@ ENDIF() + + SET(lmms_EMBEDDED_RESOURCES "${CMAKE_SOURCE_DIR}/doc/AUTHORS" "${CMAKE_SOURCE_DIR}/LICENSE.txt" "${CONTRIBUTORS}") + SET(LMMS_ER_H "${CMAKE_CURRENT_BINARY_DIR}/embedded_resources.h") +-ADD_CUSTOM_COMMAND(OUTPUT "${LMMS_ER_H}" COMMAND "${BIN2RES}" ARGS ${lmms_EMBEDDED_RESOURCES} > "${LMMS_ER_H}" DEPENDS bin2res) ++ADD_CUSTOM_COMMAND(OUTPUT "${LMMS_ER_H}" COMMAND "bin2res" ARGS ${lmms_EMBEDDED_RESOURCES} > "${LMMS_ER_H}" DEPENDS bin2res) + + # Paths relative to lmms executable + FILE(RELATIVE_PATH LIB_DIR_RELATIVE "/${BIN_DIR}" "/${LIB_DIR}") +-- +2.14.4 + diff --git a/recipes-musicians/lmms/lmms/0002-zynaddsubfx-link-agains-X11.patch b/recipes-musicians/lmms/lmms/0002-zynaddsubfx-link-agains-X11.patch new file mode 100644 index 0000000..deda938 --- /dev/null +++ b/recipes-musicians/lmms/lmms/0002-zynaddsubfx-link-agains-X11.patch @@ -0,0 +1,31 @@ +From e379780b23d37b09cf33fdd50152958ba5ccb3cb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 6 Nov 2017 21:49:47 +0100 +Subject: [PATCH] zynaddsubfx: link agains libraries necessary when linking with gold +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + plugins/zynaddsubfx/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/zynaddsubfx/CMakeLists.txt b/plugins/zynaddsubfx/CMakeLists.txt +index 541b8cf..93f595b 100644 +--- a/plugins/zynaddsubfx/CMakeLists.txt ++++ b/plugins/zynaddsubfx/CMakeLists.txt +@@ -175,7 +175,7 @@ IF(FLTK_CONFIG AND NOT (LMMS_BUILD_APPLE OR LMMS_BUILD_WIN32)) + STRING(REPLACE " " ";" FLTK_FILTERED_LDFLAGS ${FLTK_FILTERED_LDFLAGS}) + LIST(REMOVE_ITEM FLTK_FILTERED_LDFLAGS -lX11) + ENDIF() +-TARGET_LINK_LIBRARIES(RemoteZynAddSubFx zynaddsubfx_gui -lZynAddSubFxCore ${FLTK_FILTERED_LDFLAGS} -lpthread ) ++TARGET_LINK_LIBRARIES(RemoteZynAddSubFx zynaddsubfx_gui -lZynAddSubFxCore ${FLTK_FILTERED_LDFLAGS} ${X11_LIBRARIES} -lXrender -lXft -lfontconfig -ldl -lpthread ) + ADD_DEPENDENCIES(RemoteZynAddSubFx ZynAddSubFxCore) + + # Support qt_version_tag in Qt 5.6 +-- +2.9.5 + diff --git a/recipes-musicians/lmms/lmms/0003-CMake-rpmalloc-Do-not-overwrite-CMAKE_C_FLAGS.patch b/recipes-musicians/lmms/lmms/0003-CMake-rpmalloc-Do-not-overwrite-CMAKE_C_FLAGS.patch new file mode 100644 index 0000000..ad401bb --- /dev/null +++ b/recipes-musicians/lmms/lmms/0003-CMake-rpmalloc-Do-not-overwrite-CMAKE_C_FLAGS.patch @@ -0,0 +1,44 @@ +From 9fe454637103ab2307f59495b938e9fcff5d39a3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 29 Dec 2017 21:43:52 +0100 +Subject: [PATCH] CMake 3rdparty: Do not overwrite CMAKE_C(XX)_FLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It causes at least problems when cross-building with openembedded + +Upstream-Status: Submitted [1] + +[1] https://github.com/LMMS/lmms/pull/4080 + +Signed-off-by: Andreas Müller +--- + src/3rdparty/CMakeLists.txt | 3 --- + src/3rdparty/rpmalloc/CMakeLists.txt | 2 +- + 2 files changed, 1 insertion(+), 4 deletions(-) + +diff --git a/src/3rdparty/CMakeLists.txt b/src/3rdparty/CMakeLists.txt +index 5dec2890c..75b28e988 100644 +--- a/src/3rdparty/CMakeLists.txt ++++ b/src/3rdparty/CMakeLists.txt +@@ -1,6 +1,3 @@ +-set(CMAKE_C_FLAGS "") +-set(CMAKE_CXX_FLAGS "") +- + IF(QT5 AND LMMS_BUILD_LINUX) + set(BUILD_SHARED_LIBS OFF) + add_subdirectory(qt5-x11embed) +diff --git a/src/3rdparty/rpmalloc/CMakeLists.txt b/src/3rdparty/rpmalloc/CMakeLists.txt +index 23d1551c2..f4a8dcd22 100644 +--- a/src/3rdparty/rpmalloc/CMakeLists.txt ++++ b/src/3rdparty/rpmalloc/CMakeLists.txt +@@ -1,4 +1,4 @@ +-set(CMAKE_C_FLAGS "-std=c11") ++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11") + + add_library(rpmalloc STATIC + rpmalloc/rpmalloc/rpmalloc.c +-- +2.14.3 + diff --git a/recipes-musicians/lmms/lmms/0004-carlabase-Do-not-add-RPATH-to-carlabase.patch b/recipes-musicians/lmms/lmms/0004-carlabase-Do-not-add-RPATH-to-carlabase.patch new file mode 100644 index 0000000..9a3f0ee --- /dev/null +++ b/recipes-musicians/lmms/lmms/0004-carlabase-Do-not-add-RPATH-to-carlabase.patch @@ -0,0 +1,32 @@ +From 29cb7d7d388f3b75698abcd0f627cb2708f291c6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 30 Oct 2018 10:12:32 +0100 +Subject: [PATCH] carlabase: Do not add RPATH to carlabase +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + plugins/carlabase/CMakeLists.txt | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/plugins/carlabase/CMakeLists.txt b/plugins/carlabase/CMakeLists.txt +index 4fa81a491..4375e95f1 100644 +--- a/plugins/carlabase/CMakeLists.txt ++++ b/plugins/carlabase/CMakeLists.txt +@@ -12,9 +12,4 @@ if(LMMS_HAVE_CARLA) + LINK_DIRECTORIES(${CARLA_LIBRARY_DIRS}) + LINK_LIBRARIES(${CARLA_LIBRARIES}) + BUILD_PLUGIN(carlabase carla.cpp carla.h MOCFILES carla.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png" LINK SHARED) +- SET_TARGET_PROPERTIES(carlabase +- PROPERTIES SKIP_BUILD_RPATH TRUE +- BUILD_WITH_INSTALL_RPATH TRUE +- INSTALL_RPATH_USE_LINK_PATH TRUE +- INSTALL_RPATH "${CARLA_RPATH}") + endif(LMMS_HAVE_CARLA) +-- +2.14.5 + diff --git a/recipes-musicians/lrdf/lrdf_0.5.0.bb b/recipes-musicians/lrdf/lrdf_0.5.0.bb new file mode 100644 index 0000000..6c6da81 --- /dev/null +++ b/recipes-musicians/lrdf/lrdf_0.5.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "Lightweight RDF" +DESCRIPTION = "A lightweight RDF library for accessing plugin metadata in the LADSPA plugin system" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit autotools pkgconfig + +DEPENDS = "raptor2" + +SRC_URI = "git://github.com/swh/LRDF.git" +SRCREV = "1057b8e542f7dd27e3e591e93c07d58bd2143b76" +PV = "0.5.0+git${SRCPV}" +S = "${WORKDIR}/git" + +do_install_append() { + sed -i 's:${STAGING_INCDIR}:${includedir}:g' ${D}/${libdir}/pkgconfig/lrdf.pc +} + +FILES_${PN} += "${datadir}/ladspa" diff --git a/recipes-musicians/lsp-plugins/lsp-plugins-native.bb b/recipes-musicians/lsp-plugins/lsp-plugins-native.bb new file mode 100644 index 0000000..42cf56c --- /dev/null +++ b/recipes-musicians/lsp-plugins/lsp-plugins-native.bb @@ -0,0 +1,28 @@ +require ${BPN}.inc + +FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}-native:" + +inherit native + +DEPENDS += " \ + php-native \ + lv2-native \ + libsndfile1-native \ +" + +SRC_URI+= "file://0001-Adjust-native-build.patch" + +EXTRA_OEMAKE += " \ + BUILD_PLATFORM=Linux \ + PREFIX=${prefix} \ +" + +do_compile_prepend() { + export BUILD_MODULES="src" +} + +do_install() { + install -d ${D}${bindir} + install -m 755 ${B}/.build/*.exe ${D}${bindir} +} + diff --git a/recipes-musicians/lsp-plugins/lsp-plugins-native/0001-Adjust-native-build.patch b/recipes-musicians/lsp-plugins/lsp-plugins-native/0001-Adjust-native-build.patch new file mode 100644 index 0000000..36ba930 --- /dev/null +++ b/recipes-musicians/lsp-plugins/lsp-plugins-native/0001-Adjust-native-build.patch @@ -0,0 +1,72 @@ +From 1234ce86f2516148a6854247d9bd46f9adf87f94 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 12 Jan 2019 22:26:43 +0100 +Subject: [PATCH] Adjust native build +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + Makefile | 6 +++--- + src/utils/Makefile | 24 ++++++++---------------- + 2 files changed, 11 insertions(+), 19 deletions(-) + +diff --git a/Makefile b/Makefile +index c918fb11..282d590d 100644 +--- a/Makefile ++++ b/Makefile +@@ -39,10 +39,10 @@ export CC = g++ + export PHP = php + export LD = ld + export LDFLAGS = $(LD_ARCH) -L$(LD_PATH) +-export SO_FLAGS = $(CC_ARCH) -Wl,-rpath,$(LD_PATH) -Wl,-z,relro,-z,now -Wl,--gc-sections -shared -Llibrary -lc -fPIC ++export SO_FLAGS = $(CC_ARCH) -Wl,-z,relro,-z,now -Wl,--gc-sections -shared -Llibrary -lc -fPIC + export MERGE_FLAGS = $(LD_ARCH) -r +-export EXE_TEST_FLAGS = $(CC_ARCH) -Wl,-rpath,$(LD_PATH) +-export EXE_FLAGS = $(CC_ARCH) -Wl,-rpath,$(LD_PATH) -Wl,-z,relro,-z,now -Wl,--gc-sections ++export EXE_TEST_FLAGS = $(CC_ARCH) ++export EXE_FLAGS = $(CC_ARCH) -Wl,-z,relro,-z,now -Wl,--gc-sections + + # Objects + export OBJ_CORE = $(OBJDIR)/core.o +diff --git a/src/utils/Makefile b/src/utils/Makefile +index 0d9b57f9..c372c850 100644 +--- a/src/utils/Makefile ++++ b/src/utils/Makefile +@@ -5,22 +5,14 @@ SUBDIRS = + OBJ_FILES = $(OBJ_CORE) $(OBJ_METADATA) + OBJ_LIBS = $(PTHREAD_LIBS) $(MATH_LIBS) + +-ifeq ($(findstring lv2,$(BUILD_MODULES)),lv2) +- MODULES += $(UTL_GENTTL) +- FILELIST += lv2_genttl.o +-endif +-ifeq ($(findstring vst,$(BUILD_MODULES)),vst) +- MODULES += $(UTL_VSTMAKE) +- FILELIST += vst_genmake.o +-endif +-ifeq ($(findstring jack,$(BUILD_MODULES)),jack) +- MODULES += $(UTL_JACKMAKE) +- FILELIST += jack_genmake.o +-endif +-ifeq ($(findstring doc,$(BUILD_MODULES)),doc) +- MODULES += $(UTL_GENPHP) +- FILELIST += gen_php.o +-endif ++MODULES += $(UTL_GENTTL) ++FILELIST += lv2_genttl.o ++MODULES += $(UTL_VSTMAKE) ++FILELIST += vst_genmake.o ++MODULES += $(UTL_JACKMAKE) ++FILELIST += jack_genmake.o ++MODULES += $(UTL_GENPHP) ++FILELIST += gen_php.o + + FILES = $(addprefix $(OBJDIR)/, $(FILELIST)) + +-- +2.20.1 + diff --git a/recipes-musicians/lsp-plugins/lsp-plugins.bb b/recipes-musicians/lsp-plugins/lsp-plugins.bb new file mode 100644 index 0000000..7d2f8cb --- /dev/null +++ b/recipes-musicians/lsp-plugins/lsp-plugins.bb @@ -0,0 +1,52 @@ +require ${BPN}.inc + +inherit distro_features_check pack_audio_plugins + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS += " \ + ${BPN}-native \ + php-native \ + cairo \ + gtk+ \ + gtk+3 \ + jack \ + libsndfile1 \ + ladspa-sdk \ + lv2 \ +" + +SRC_URI += " \ + file://0001-Makefile-align-for-oe-cross-build.patch \ +" + +ARM_INSTRUCTION_SET = "arm" + +def profile_handler(d): + profile = d.getVar('DEFAULTTUNE', True) + features = d.getVar('TUNE_FEATURES', True).split() + if 'armv7a' in features or 'armv7ve' in features: + profile = 'armv7a' + return profile + +EXTRA_OEMAKE += " \ + BUILD_PLATFORM=Linux \ + BUILD_PROFILE=${@profile_handler(d)} \ + PREFIX=${prefix} \ +" + +do_compile_prepend() { + export LDLDFLAGS="`echo $LDFLAGS | sed 's:-Wl,::g'`" + export CC="${CXX}" + export CC_ARCH="${CXXFLAGS}" +} + + +do_install() { + ${MAKE} ${EXTRA_OEMAKE} DESTDIR=${D} install +} + +FILES_${PN} += "${libdir}/lsp-plugins-jack-core-${PV}.so" + +PACKAGES =+ "${PN}-standalone" +FILES_${PN}-standalone = "${bindir}" diff --git a/recipes-musicians/lsp-plugins/lsp-plugins.inc b/recipes-musicians/lsp-plugins/lsp-plugins.inc new file mode 100644 index 0000000..8fcd4ec --- /dev/null +++ b/recipes-musicians/lsp-plugins/lsp-plugins.inc @@ -0,0 +1,11 @@ +SUMMARY = "LSP (Linux Studio Plugins) is a collection of open-source plugins" +HOMEPAGE = "http://lsp-plug.in/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3000208d539ec061b899bce1d9ce9404" + +SRC_URI = "git://github.com/sadko4u/lsp-plugins.git" +SRCREV = "1d41a52f6b2236f38670c2d3a28ab97c419a4754" +S = "${WORKDIR}/git" +PV = "1.1.5" + +do_configure[noexec] = "1" diff --git a/recipes-musicians/lsp-plugins/lsp-plugins/0001-Makefile-align-for-oe-cross-build.patch b/recipes-musicians/lsp-plugins/lsp-plugins/0001-Makefile-align-for-oe-cross-build.patch new file mode 100644 index 0000000..0575d3f --- /dev/null +++ b/recipes-musicians/lsp-plugins/lsp-plugins/0001-Makefile-align-for-oe-cross-build.patch @@ -0,0 +1,181 @@ +From dd67553614ad90bb7454122b219f1cc1ef62d716 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 2 Jan 2019 23:04:53 +0100 +Subject: [PATCH] Makefiles: align for oe-cross-build + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + Makefile | 19 ++++++++----------- + scripts/make/configure.mk | 7 ------- + src/core/Makefile | 2 +- + src/dsp/Makefile | 2 +- + src/metadata/Makefile | 2 +- + src/plugins/Makefile | 2 +- + src/test/Makefile | 2 +- + src/ui/ws/x11/Makefile | 2 +- + 8 files changed, 14 insertions(+), 24 deletions(-) + +diff --git a/Makefile b/Makefile +index c918fb1..2f20248 100644 +--- a/Makefile ++++ b/Makefile +@@ -35,14 +35,11 @@ export BASEDIR = ${CURDIR} + export INCLUDE = ${INC_FLAGS} + export MAKE_OPTS = -s + export CFLAGS = $(CC_ARCH) -std=c++98 -fdata-sections -pthread -ffunction-sections -fno-exceptions -fno-asynchronous-unwind-tables -Wall -pipe -fno-rtti $(CC_FLAGS) -DLSP_MAIN_VERSION=\"$(VERSION)\" -DLSP_INSTALL_PREFIX=\"$(PREFIX)\" +-export CC = g++ + export PHP = php +-export LD = ld +-export LDFLAGS = $(LD_ARCH) -L$(LD_PATH) +-export SO_FLAGS = $(CC_ARCH) -Wl,-rpath,$(LD_PATH) -Wl,-z,relro,-z,now -Wl,--gc-sections -shared -Llibrary -lc -fPIC ++export SO_FLAGS = $(CC_ARCH) $(LDFLAGS) -Wl,-z,relro,-z,now -Wl,--gc-sections -shared -Llibrary -lc -fPIC + export MERGE_FLAGS = $(LD_ARCH) -r +-export EXE_TEST_FLAGS = $(CC_ARCH) -Wl,-rpath,$(LD_PATH) +-export EXE_FLAGS = $(CC_ARCH) -Wl,-rpath,$(LD_PATH) -Wl,-z,relro,-z,now -Wl,--gc-sections ++export EXE_TEST_FLAGS = $(CC_ARCH) ++export EXE_FLAGS = $(CC_ARCH) $(LDFLAGS) -Wl,-z,relro,-z,now -Wl,--gc-sections + + # Objects + export OBJ_CORE = $(OBJDIR)/core.o +@@ -69,11 +66,11 @@ export BIN_PROFILE = $(OBJDIR)/$(ARTIFACT_ID)-profile + export BIN_TEST = $(OBJDIR)/$(ARTIFACT_ID)-test + + # Utils +-export UTL_GENTTL = $(OBJDIR)/lv2_genttl.exe +-export UTL_VSTMAKE = $(OBJDIR)/vst_genmake.exe +-export UTL_JACKMAKE = $(OBJDIR)/jack_genmake.exe +-export UTL_GENPHP = $(OBJDIR)/gen_php.exe +-export UTL_RESGEN = $(OBJDIR)/gen_resources.exe ++export UTL_GENTTL = lv2_genttl.exe ++export UTL_VSTMAKE = vst_genmake.exe ++export UTL_JACKMAKE = jack_genmake.exe ++export UTL_GENPHP = gen_php.exe ++export UTL_RESGEN = gen_resources.exe + export UTL_FILES = $(UTL_GENTTL) $(UTL_VSTMAKE) $(UTL_GENPHP) $(UTL_RESGEN) + + # Files +diff --git a/scripts/make/configure.mk b/scripts/make/configure.mk +index 5603a8f..498a5e5 100644 +--- a/scripts/make/configure.mk ++++ b/scripts/make/configure.mk +@@ -53,12 +53,10 @@ export RELEASES + + # Configure compiler and linker flags + LD_ARCH = +-CC_ARCH = + LD_PATH = + + # Build profile + ifeq ($(BUILD_PROFILE),i586) +- CC_ARCH = -m32 + ifeq ($(BUILD_PLATFORM), Linux) + LD_ARCH = -m elf_i386 + endif +@@ -69,7 +67,6 @@ ifeq ($(BUILD_PROFILE),i586) + endif + + ifeq ($(BUILD_PROFILE),x86_64) +- CC_ARCH = -m64 + ifeq ($(BUILD_PLATFORM), Linux) + LD_ARCH = -m elf_x86_64 + endif +@@ -80,21 +77,17 @@ ifeq ($(BUILD_PROFILE),x86_64) + endif + + ifeq ($(BUILD_PROFILE),armv6a) +- CC_ARCH = -march=armv6-a + LD_PATH = /usr/lib64:/lib64:/usr/local/lib64 + endif + + ifeq ($(BUILD_PROFILE),armv7a) +- CC_ARCH = -march=armv7-a + LD_PATH = /usr/lib64:/lib64:/usr/local/lib64 + endif + + ifeq ($(BUILD_PROFILE),armv8a) +- CC_ARCH = -march=armv8-a + LD_PATH = /usr/lib:/lib:/usr/local/lib + endif + +-export CC_ARCH + export LD_ARCH + export LD_PATH + +diff --git a/src/core/Makefile b/src/core/Makefile +index 1db8603..33aa15d 100644 +--- a/src/core/Makefile ++++ b/src/core/Makefile +@@ -13,4 +13,4 @@ $(FILES): + + $(OBJ_CORE): $(FILES) + @echo " $(LD) $(notdir $(OBJ_CORE))" +- @$(LD) -o $(OBJ_CORE) -r $(LDFLAGS) $(FILES) ++ @$(LD) -o $(OBJ_CORE) -r $(LDLDFLAGS) $(FILES) +diff --git a/src/dsp/Makefile b/src/dsp/Makefile +index 97ed47f..7e099cd 100644 +--- a/src/dsp/Makefile ++++ b/src/dsp/Makefile +@@ -42,7 +42,7 @@ all: $(OBJ_DSP) + + $(OBJ_DSP): $(LINK_OBJECTS) + @echo " $(LD) $(notdir $(OBJ_DSP))" +- @$(LD) -o $(OBJ_DSP) -r $(LDFLAGS) $(LINK_OBJECTS) ++ @$(LD) -o $(OBJ_DSP) -r $(LDLDFLAGS) $(LINK_OBJECTS) + + $(DSP_IMPL) $(BITS_IMPL) $(NATIVE_IMPL) $(X86_IMPL) $(ARM_IMPL): + @echo " $(CC) $(FILE)" +diff --git a/src/metadata/Makefile b/src/metadata/Makefile +index b3206ed..1f840de 100644 +--- a/src/metadata/Makefile ++++ b/src/metadata/Makefile +@@ -10,7 +10,7 @@ target: all + + $(OBJ_METADATA): $(FILES) + @echo " $(LD) $(notdir $(OBJ_METADATA))" +- @$(LD) -o $(OBJ_METADATA) -r $(LDFLAGS) $(FILES) ++ @$(LD) -o $(OBJ_METADATA) -r $(LDLDFLAGS) $(FILES) + + $(FILES): + @echo " $(CC) $(FILE)" +diff --git a/src/plugins/Makefile b/src/plugins/Makefile +index 09bc4ce..7295c0f 100644 +--- a/src/plugins/Makefile ++++ b/src/plugins/Makefile +@@ -8,7 +8,7 @@ all: $(OBJ_PLUGINS) + + $(OBJ_PLUGINS): $(FILES) $(SUBDIRS) + @echo " $(LD) $(notdir $(OBJ_PLUGINS))" +- @$(LD) -o $(OBJ_PLUGINS) -r $(LDFLAGS) $(FILES) ++ @$(LD) -o $(OBJ_PLUGINS) -r $(LDLDFLAGS) $(FILES) + + $(FILES): + @echo " $(CC) $(FILE)" +diff --git a/src/test/Makefile b/src/test/Makefile +index 4f225d0..fe5d5b2 100644 +--- a/src/test/Makefile ++++ b/src/test/Makefile +@@ -13,5 +13,5 @@ $(FILES): + + $(OBJ_TEST_CORE): $(FILES) + @echo " $(LD) $(notdir $(OBJ_TEST_CORE))" +- @$(LD) -o $(OBJ_TEST_CORE) -r $(LDFLAGS) $(FILES) ++ @$(LD) -o $(OBJ_TEST_CORE) -r $(LDLDFLAGS) $(FILES) + +diff --git a/src/ui/ws/x11/Makefile b/src/ui/ws/x11/Makefile +index 649c6a4..5e45dd2 100644 +--- a/src/ui/ws/x11/Makefile ++++ b/src/ui/ws/x11/Makefile +@@ -8,7 +8,7 @@ all: $(OBJ_WS_X11_CORE) + + $(OBJ_WS_X11_CORE): $(FILES) + @echo " $(LD) $(notdir $(@))" +- @$(LD) -o $(OBJ_WS_X11_CORE) $(LDFLAGS) -r $(FILES) ++ @$(LD) -o $(OBJ_WS_X11_CORE) $(LDLDFLAGS) -r $(FILES) + + $(FILES): + @echo " $(CC) $(FILE)" +-- +2.20.1 + diff --git a/recipes-musicians/muse/muse/0001-fluidsynth-Follow-API-change-introduced-in-fluidsynt.patch b/recipes-musicians/muse/muse/0001-fluidsynth-Follow-API-change-introduced-in-fluidsynt.patch new file mode 100644 index 0000000..cfb3428 --- /dev/null +++ b/recipes-musicians/muse/muse/0001-fluidsynth-Follow-API-change-introduced-in-fluidsynt.patch @@ -0,0 +1,146 @@ +From 6e352b874ddffc6185e499cda12c1731d14a3708 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 17 Oct 2018 23:17:31 +0200 +Subject: [PATCH] fluidsynth: Follow API change introduced in fluidsynth 2.0.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Submitted [1] + +[1] https://github.com/muse-sequencer/muse/pull/630 + +Signed-off-by: Andreas Müller +--- + synti/fluidsynth/fluidsynti.cpp | 44 ++++++++++++++++++++++++++++++++++- + 1 file changed, 43 insertions(+), 1 deletion(-) + +diff --git a/synti/fluidsynth/fluidsynti.cpp b/synti/fluidsynth/fluidsynti.cpp +index 11f51e57..75322d7e 100644 +--- a/synti/fluidsynth/fluidsynti.cpp ++++ b/synti/fluidsynth/fluidsynti.cpp +@@ -155,16 +155,22 @@ FluidSynth::~FluidSynth() + std::cerr << DEBUG_ARGS << "Error unloading soundfont!" << fluid_synth_error(fluidsynth) << std::endl; + } + ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + int err = delete_fluid_synth (fluidsynth); ++#else ++ delete_fluid_synth (fluidsynth); ++#endif + if(gui) + delete gui; + + if (initBuffer) + delete [] initBuffer; ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + if (err == -1) { + std::cerr << DEBUG_ARGS << "error while destroying synth: " << fluid_synth_error(fluidsynth) << std::endl; + return; +- } ++ } ++#endif + } + + bool FluidSynth::init(const char* name) +@@ -1368,7 +1374,11 @@ const char* FluidSynth::getPatchName(int i, int, bool /*drum*/) const + else { + fluid_preset_t *preset = fluid_synth_get_channel_preset(fluidsynth, i); + if (!preset) return ""; ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + return preset->get_name(preset); ++#else ++ return fluid_preset_get_name(preset); ++#endif + } + } + //--------------------------------------------------------- +@@ -1414,12 +1424,20 @@ const MidiPatch* FluidSynth::getFirstPatch (int channel) const + if (!channels[channel].drumchannel) { + for (unsigned bank = 0; bank < 128; ++bank) { + for (unsigned patch = 0; patch < 128; ++patch) { ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + preset = sfont->get_preset (sfont, bank, patch); ++#else ++ preset = fluid_sfont_get_preset (sfont, bank, patch); ++#endif + if (preset) { + midiPatch.hbank = bank; + midiPatch.lbank = 0xff; // Off + midiPatch.prog = patch; ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + midiPatch.name = preset->get_name (preset); ++#else ++ midiPatch.name = fluid_preset_get_name (preset); ++#endif + return &midiPatch; + } + } +@@ -1429,12 +1447,20 @@ const MidiPatch* FluidSynth::getFirstPatch (int channel) const + else { //This is a drumchannel + int bank = 128; + for (unsigned patch = 0; patch < 128; ++patch) { ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + preset = sfont->get_preset (sfont, bank, patch); ++#else ++ preset = fluid_sfont_get_preset (sfont, bank, patch); ++#endif + if (preset) { + midiPatch.hbank = 0xff; // Off + midiPatch.lbank = 0xff; // Off + midiPatch.prog = patch; ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + midiPatch.name = preset->get_name(preset); ++#else ++ midiPatch.name = fluid_preset_get_name (preset); ++#endif + return &midiPatch; + } + } +@@ -1466,13 +1492,21 @@ const MidiPatch* FluidSynth::getNextPatch (int channel, const MidiPatch* patch) + + for (unsigned bank = patch->hbank; bank < 128; ++bank) { + for ( ; prog < 128; ++prog) { ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + preset = sfont->get_preset (sfont, bank, prog); ++#else ++ preset = fluid_sfont_get_preset (sfont, bank, prog); ++#endif + if (preset) { + //printf("Preset info: bank: %d prog: %d name: %s\n", bank, prog, preset->get_name(preset)); + midiPatch.hbank = bank; + midiPatch.lbank = 0xff; // Off + midiPatch.prog = prog; ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + midiPatch.name = preset->get_name (preset); ++#else ++ midiPatch.name = fluid_preset_get_name (preset); ++#endif + return &midiPatch; + } + } +@@ -1483,13 +1517,21 @@ const MidiPatch* FluidSynth::getNextPatch (int channel, const MidiPatch* patch) + unsigned bank = 128; + unsigned prog = patch->prog; + for (prog = patch->prog + 1; prog < 128; ++prog) { ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + preset = sfont->get_preset (sfont, bank, prog); ++#else ++ preset = fluid_sfont_get_preset (sfont, bank, prog); ++#endif + if (preset) { + //printf("Preset info: bank: %d prog: %d name: %s\n",bank, prog, preset->get_name(preset)); + midiPatch.hbank = 0xff; // Off + midiPatch.lbank = 0xff; // Off + midiPatch.prog = prog; ++#if FLUIDSYNTH_VERSION_MAJOR < 2 + midiPatch.name = preset->get_name (preset); ++#else ++ midiPatch.name = fluid_preset_get_name (preset); ++#endif + return &midiPatch; + } + } +-- +2.14.4 + diff --git a/recipes-musicians/muse/muse_git.bb b/recipes-musicians/muse/muse_git.bb new file mode 100644 index 0000000..760d1de --- /dev/null +++ b/recipes-musicians/muse/muse_git.bb @@ -0,0 +1,79 @@ +SUMMARY = "MusE is a digital audio workstation" +HOMEPAGE = "http://muse-sequencer.org/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=328283dc167a7b37ffdc59f524a7fc4d" + +DEPENDS += " \ + qtbase \ + qttools qttools-native \ + qtsvg \ + jack \ + liblo \ + dssi \ + gtkmm \ + fluidsynth \ + serd \ + lilv \ + lv2 \ + lmms \ +" +# Note: lmms is in DEPENDS for supplying VST header aeffectx.h only + +inherit cmake_qt5 pkgconfig gtk-icon-cache distro_features_check mime qt5-translation + +SRC_URI = " \ + git://github.com/muse-sequencer/muse.git \ + file://0001-fluidsynth-Follow-API-change-introduced-in-fluidsynt.patch \ +" +SRCREV = "1fde7ca69b1b7988595f4cfb58eae5c566324cac" +PV = "3.0.2+git${SRCPV}" +S = "${WORKDIR}/git/muse3" + +EXTRA_OECMAKE += " \ + -DLIB_INSTALL_DIR=${libdir} \ + \ + -DENABLE_LV2=1 \ + -DENABLE_DSSI=1 \ + -DENABLE_FLUID=1 \ +" +# -DENABLE_EXPERIMENTAL=1 won't work +# -DENABLE_VST_NATIVE=1 + +# Have no idea where flags are lost. Anyway driver would fail +# | driver/libmuse_driver.so: error: undefined reference to 'pthread_cancel' +# | driver/libmuse_driver.so: error: undefined reference to 'pthread_create' +# | driver/libmuse_driver.so: error: undefined reference to 'pthread_join' +# | driver/libmuse_driver.so: error: undefined reference to 'dlsym' +# | collect2: error: ld returned 1 exit status +LDFLAGS += "-lpthread -ldl" + +QT_TRANSLATION_FILES = "${datadir}/*/locale/*.qm" +FILES_${PN}-locale = "${datadir}/muse-3.0/locale" + +FILES_${PN} += " \ + ${datadir}/mime \ + ${datadir}/metainfo \ + \ + ${datadir}/muse-3.0/didyouknow.txt \ + ${datadir}/muse-3.0/splash.png \ + \ + ${datadir}/muse-3.0/demos \ + ${datadir}/muse-3.0/drummaps \ + ${datadir}/muse-3.0/instruments \ + ${datadir}/muse-3.0/metronome \ + ${datadir}/muse-3.0/plugins \ + ${datadir}/muse-3.0/presets \ + ${datadir}/muse-3.0/pybridge \ + ${datadir}/muse-3.0/scoreglyphs \ + ${datadir}/muse-3.0/scripts \ + ${datadir}/muse-3.0/themes \ + ${datadir}/muse-3.0/templates \ + ${datadir}/muse-3.0/utils \ + ${datadir}/muse-3.0/wallpapers \ + \ + ${libdir}/muse-3.0/synthi \ + ${libdir}/muse-3.0/modules \ + ${libdir}/muse-3.0/plugins \ +" + +RDEPENDS_${PN} += "python" diff --git a/recipes-musicians/nekobee/nekobee.bb b/recipes-musicians/nekobee/nekobee.bb new file mode 100644 index 0000000..c9a9eca --- /dev/null +++ b/recipes-musicians/nekobee/nekobee.bb @@ -0,0 +1,22 @@ +SUMMARY = "A softsynth recreation of a classic single-oscillator bass monosynth" +HOMEPAGE = "https://github.com/gordonjcp/nekobee" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit wafold pkgconfig + +DEPENDS += " \ + gtk+ \ + ladspa-sdk \ + dssi \ + liblo \ +" + +SRC_URI = "git://github.com/gordonjcp/${BPN}.git" +SRCREV = "593d4be0ff6b4279e1b2b1bacbd5b6b02221358a" +S = "${WORKDIR}/git" +PV = "0.2+git${SRCPV}" + +FILES_${PN} += " \ + ${libdir}/dssi \ +" diff --git a/recipes-musicians/openav/arty-fx/0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch b/recipes-musicians/openav/arty-fx/0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch new file mode 100644 index 0000000..6a1c6f5 --- /dev/null +++ b/recipes-musicians/openav/arty-fx/0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch @@ -0,0 +1,32 @@ +From d614f7dbd575f13cdc512580ea9a9ad904b69752 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 10 Sep 2017 22:11:32 +0200 +Subject: [PATCH] Do not overwrite build flags - it causes trouble for many + buld systems +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas Müller +--- + CMakeLists.txt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a1fa4d5..6d7808f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -24,9 +24,7 @@ pkg_check_modules(SND sndfile REQUIRED) + include_directories( ${SND_INCLUDE_DIRS} ) + #target_link_libraries( avtkDemo ${CAIRO_LIBRARIES} ) + +-SET(CMAKE_SHARED_LINKER_FLAGS "-fPIC -shared -L./src/avtk -Wl,--no-undefined") +-SET(CMAKE_C_FLAGS "-g -Wall -O1 -Wno-unused-variable") +-SET(CMAKE_CXX_FLAGS "-g -Wall -O1 -Wno-unused-variable -ftree-vectorize") ++SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fPIC -L./src/avtk") + + + # DSP sources +-- +2.9.5 + diff --git a/recipes-musicians/openav/arty-fx/0002-avtk-remove-sse-flags-they-work-on-intel-hardware-on.patch b/recipes-musicians/openav/arty-fx/0002-avtk-remove-sse-flags-they-work-on-intel-hardware-on.patch new file mode 100644 index 0000000..e842d7c --- /dev/null +++ b/recipes-musicians/openav/arty-fx/0002-avtk-remove-sse-flags-they-work-on-intel-hardware-on.patch @@ -0,0 +1,33 @@ +From 4d284e26112bacfdcffbf06c4e509b42af2450f2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 10 Sep 2017 21:59:45 +0200 +Subject: [PATCH] avtk remove sse flags - they work on intel hardware only +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + src/avtk/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/avtk/CMakeLists.txt b/src/avtk/CMakeLists.txt +index 710533d..5c17071 100644 +--- a/src/avtk/CMakeLists.txt ++++ b/src/avtk/CMakeLists.txt +@@ -55,8 +55,8 @@ include_directories( ${X11_INCLUDE_DIRS} ) + link_directories ( ${X11_LIBRARY_DIRS} ) + + +-SET(CMAKE_C_FLAGS "-fPIC -msse -msse2 -mfpmath=sse -g") # -fsanitize=address +-SET(CMAKE_CXX_FLAGS "-fPIC -msse -msse2 -mfpmath=sse -g") # -fsanitize=address ++SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") # -fsanitize=address ++SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") # -fsanitize=address + + FILE(GLOB src libs/pffft.cxx avtk/*.cxx ) + +-- +2.9.5 + diff --git a/recipes-musicians/openav/arty-fx_1.3.bb b/recipes-musicians/openav/arty-fx_1.3.bb new file mode 100644 index 0000000..891ea28 --- /dev/null +++ b/recipes-musicians/openav/arty-fx_1.3.bb @@ -0,0 +1,29 @@ +SUMMARY = "ArtyFX is a plugin bundle of artistic real-time audio effects" +HOMEPAGE = "http://openavproductions.com/artyfx/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4cc91856b08b094b4f406a29dc61db21" + +inherit cmake pkgconfig + +DEPENDS = " \ + virtual/libx11 \ + cairo \ + lv2 \ + libsndfile1 \ +" + +SRC_URI = " \ + git://github.com/openAVproductions/openAV-ArtyFX.git \ + file://0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch \ + file://0002-avtk-remove-sse-flags-they-work-on-intel-hardware-on.patch \ +" +SRCREV = "5ed821b77a5892f6d79bd29a52ec8685f89cefd0" +S = "${WORKDIR}/git" + +EXTRA_OECMAKE += " \ + -DBUILD_SSE=OFF \ +" + +FILES_${PN} += " \ + ${libdir}/lv2 \ +" diff --git a/recipes-musicians/openav/fabla/0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch b/recipes-musicians/openav/fabla/0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch new file mode 100644 index 0000000..4c75189 --- /dev/null +++ b/recipes-musicians/openav/fabla/0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch @@ -0,0 +1,38 @@ +From 9c719fc4e56c3fa81bbf5e34db42bc2a847ee1f4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 31 May 2018 19:37:26 +0200 +Subject: [PATCH] Do not overwrite build flags - it causes trouble for many + buld systems +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + CMakeLists.txt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 01df5f4..dc76ef0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -26,11 +26,11 @@ pkg_check_modules(SNDFILE sndfile REQUIRED) + include_directories( ${SNDFILE_INCLUDE_DIRS} ) + link_directories ( ${SNDFILE_LIBRARY_DIRS} ) + +-SET(CMAKE_SHARED_LINKER_FLAGS "-fPIC -shared -Wl,-z,nodelete -Wl,--no-undefined") ++SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fPIC -shared -Wl,-z,nodelete -Wl,--no-undefined") + + IF(RELEASE_BUILD) +- SET(CMAKE_CXX_FLAGS "-g -Wall -Wno-unused-variable -msse2 -mfpmath=sse -ffast-math") +- SET(CMAKE_C_FLAGS "-g -Wall -W -Wno-unused-variable -msse2 -mfpmath=sse -ffast-math -Wno-trigraphs") ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wno-unused-variable -ffast-math") ++ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -W -Wno-unused-variable -ffast-math -Wno-trigraphs") + ENDIF() + + # print config +-- +2.14.3 + diff --git a/recipes-musicians/openav/fabla_git.bb b/recipes-musicians/openav/fabla_git.bb new file mode 100644 index 0000000..f66825d --- /dev/null +++ b/recipes-musicians/openav/fabla_git.bb @@ -0,0 +1,26 @@ +SUMMARY = "Fabla is an open-source LV2 drum sampler plugin instrument" +HOMEPAGE = "http://openavproductions.com/fabla/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4cc91856b08b094b4f406a29dc61db21" + +inherit cmake pkgconfig + +DEPENDS = " \ + ntk \ + cairo \ + cairomm \ + libsndfile1 \ + lv2 \ +" + +SRC_URI = " \ + git://github.com/openAVproductions/openAV-Fabla.git \ + file://0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch \ +" +SRCREV = "05bb8d4704a601e660dcd146caf5899d4a4cc5cc" +S = "${WORKDIR}/git" +PV = "1.3.2+git${SRCPV}" + +FILES_${PN} += " \ + ${libdir}/lv2 \ +" diff --git a/recipes-musicians/openav/luppp/0001-CMake-Remove-arch-detection-it-detects-build-host.patch b/recipes-musicians/openav/luppp/0001-CMake-Remove-arch-detection-it-detects-build-host.patch new file mode 100644 index 0000000..90eaa17 --- /dev/null +++ b/recipes-musicians/openav/luppp/0001-CMake-Remove-arch-detection-it-detects-build-host.patch @@ -0,0 +1,45 @@ +From ffaf0641a2222a48637367ca59f936d303bbdfad Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 31 May 2018 23:12:51 +0200 +Subject: [PATCH] CMake: Remove arch detection - it detects build host +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + src/CMakeLists.txt | 11 ----------- + 1 file changed, 11 deletions(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 8c2dcfe..b47dbb0 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -1,8 +1,4 @@ + +-# Detect platform +-EXECUTE_PROCESS( COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE) +-message( STATUS "Architecture: ${ARCHITECTURE}" ) +- + # Find depend libraries + find_package(PkgConfig) + +@@ -57,13 +53,6 @@ IF(WITH_ASAN) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -fsanitize=address -fno-omit-frame-pointer") + ENDIF() + +-if( ${ARCHITECTURE} STREQUAL "x86_64" AND NOT WITH_ASAN) +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -msse2") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -msse2") +-else() +- # Can set i686 / ARM stuff here +-endif() +- + # Add all files + FILE(GLOB sources *.cxx avtk/*.cxx cjson/*.c controller/*.cxx dsp/*.cxx observer/*.cxx state/*.cxx tests/*.cxx) + +-- +2.14.3 + diff --git a/recipes-musicians/openav/luppp_git.bb b/recipes-musicians/openav/luppp_git.bb new file mode 100644 index 0000000..14aec79 --- /dev/null +++ b/recipes-musicians/openav/luppp_git.bb @@ -0,0 +1,34 @@ +SUMMARY = "Luppp is a music creation tool, intended for live use" +HOMEPAGE = "http://openavproductions.com/luppp/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504" + +inherit cmake pkgconfig gtk-icon-cache + +DEPENDS = " \ + jack \ + cairo \ + liblo \ + libsndfile1 \ + libsamplerate0 \ + ntk \ +" + +SRC_URI = " \ + git://github.com/openAVproductions/openAV-Luppp.git \ + file://0001-CMake-Remove-arch-detection-it-detects-build-host.patch \ +" +SRCREV = "289313ce132133d5d3c86724a1e3b488260d1728" +PV = "1.1.1+git${SRCPV}" +S = "${WORKDIR}/git" + +do_install_append() { + install -Dm 644 ${S}/resources/metadata/luppp.desktop ${D}${datadir}/applications/luppp.desktop + install -Dm 644 ${S}/resources/icons/luppp.svg ${D}/${datadir}/icons/hicolor/scalable/apps/luppp.svg + install -d ${D}/${datadir}/${BPN}/controllers + for ctlr in `find ${S}/resources/controllers -name *ctlr`; do + install -m 644 $ctlr ${D}/${datadir}/${BPN}/controllers/ + done +} + +RDEPENDS_${PN} += "hicolor-icon-theme" diff --git a/recipes-musicians/openav/openav-presets_git.bb b/recipes-musicians/openav/openav-presets_git.bb new file mode 100644 index 0000000..2b7e4f8 --- /dev/null +++ b/recipes-musicians/openav/openav-presets_git.bb @@ -0,0 +1,27 @@ +SUMMARY = "Presets for various OpenAV projects" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504" + +inherit allarch + +SRC_URI = " \ + git://github.com/harryhaaren/openAV-presets.git \ +" +SRCREV = "c52ded5002b1bdf05bae3fe692b259a6b414942c" +PV = "0.0.0+git${SRCPV}" +S = "${WORKDIR}/git" + +do_install() { + install -d ${D}${libdir}/lv2 + for lv2dir in `find ${S} -name '*.lv2' -maxdepth 1`; do + lv2basedir=`basename $lv2dir` + install -d ${D}${libdir}/lv2/$lv2basedir + for lv2file in `find ${S}/$lv2basedir -mindepth 1 -maxdepth 1`; do + install -m 644 $lv2file ${D}${libdir}/lv2/$lv2basedir + done + done +} + +FILES_${PN} += " \ + ${libdir}/lv2 \ +" diff --git a/recipes-musicians/openav/sorcer/0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch b/recipes-musicians/openav/sorcer/0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch new file mode 100644 index 0000000..a3fc720 --- /dev/null +++ b/recipes-musicians/openav/sorcer/0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch @@ -0,0 +1,36 @@ +From 4c8bb82c0a1963890b683b0bf5ebc3ef5ce9435d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 1 Jun 2018 00:25:24 +0200 +Subject: [PATCH] Do not overwrite build flags - it causes trouble for many + build systems +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas Müller +--- + CMakeLists.txt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7c0d989..0b23603 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -26,11 +26,11 @@ pkg_check_modules(CAIRO cairo REQUIRED) + include_directories( ${CAIRO_INCLUDE_DIRS} ) + link_directories ( ${CAIRO_LIBRARY_DIRS} ) + +-SET(CMAKE_SHARED_LINKER_FLAGS "-fPIC -shared -Wl,-z,nodelete -Wl,--no-undefined") ++SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fPIC -shared -Wl,-z,nodelete -Wl,--no-undefined") + + IF(RELEASE_BUILD) +- SET(CMAKE_CXX_FLAGS "-g -Wall -Wno-unused-variable -msse2 -mfpmath=sse -ffast-math") +- SET(CMAKE_C_FLAGS "-g -Wall -W -Wno-unused-variable -msse2 -mfpmath=sse -ffast-math") ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wno-unused-variable -ffast-math") ++ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -W -Wno-unused-variable -ffast-math") + ENDIF() + + ## The following commands will re-generate the .cpp files from the FAUST .dsp, +-- +2.14.3 + diff --git a/recipes-musicians/openav/sorcer_git.bb b/recipes-musicians/openav/sorcer_git.bb new file mode 100644 index 0000000..7e2ae61 --- /dev/null +++ b/recipes-musicians/openav/sorcer_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "Sorcer is a polyphonic wavetable synth LV2 plugin" +HOMEPAGE = "http://openavproductions.com/sorcer" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504" + +inherit cmake pkgconfig + +DEPENDS = " \ + boost \ + cairo \ + lv2 \ + ntk \ +" + +SRC_URI = " \ + git://github.com/openAVproductions/openAV-Sorcer.git \ + file://0001-Do-not-overwrite-build-flags-it-causes-trouble-for-m.patch \ +" +SRCREV = "0a8cef484174aae5c1b7be6710f31a643e7d7197" +PV = "1.1.3+git${SRCPV}" +S = "${WORKDIR}/git" + +FILES_${PN} += " \ + ${libdir}/lv2 \ +" diff --git a/recipes-musicians/pipewire/pipewire_0.2.4.bb b/recipes-musicians/pipewire/pipewire_0.2.4.bb new file mode 100644 index 0000000..833a26c --- /dev/null +++ b/recipes-musicians/pipewire/pipewire_0.2.4.bb @@ -0,0 +1,30 @@ +SUMMARY = "Multimedia processing graphs" +HOMEPAGE = "http://pipewire.org/" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=d8153c6e65986f862a0550ca74a3ed73 \ + file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ +" + +inherit meson + +DEPENDS += " \ + dbus \ + glib-2.0 \ + alsa-lib \ + v4l-utils \ + gstreamer1.0 \ + gstreamer1.0-plugins-base \ +" + +SRC_URI = "git://github.com/PipeWire/pipewire.git" +SRCREV = "14ebb85e7482c5b7963d2e647608464f5cd148bb" +S = "${WORKDIR}/git" + +FILES_${PN} += " \ + ${systemd_user_unitdir} \ + ${libdir}/pipewire-0.2 \ + ${libdir}/spa \ + ${libdir}/gstreamer-1.0 \ +" + diff --git a/recipes-musicians/polyphone/files/0001-align-compiler-switches-constants-for-cross-compilin.patch b/recipes-musicians/polyphone/files/0001-align-compiler-switches-constants-for-cross-compilin.patch new file mode 100644 index 0000000..d60bea5 --- /dev/null +++ b/recipes-musicians/polyphone/files/0001-align-compiler-switches-constants-for-cross-compilin.patch @@ -0,0 +1,124 @@ +From 0c780e129ca63304eb5602496f070c5d66b2ef0a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 28 Dec 2018 23:12:22 +0100 +Subject: [PATCH] align compiler switches / constants for cross compiling on + various machines + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + lib/sfarklib/sfklCoding.cpp | 10 +++------- + lib/sfarklib/sfklCrunch.cpp | 2 +- + lib/sfarklib/wcc.h | 8 +------- + polyphone.pro | 11 +---------- + 4 files changed, 6 insertions(+), 25 deletions(-) + +diff --git a/lib/sfarklib/sfklCoding.cpp b/lib/sfarklib/sfklCoding.cpp +index d7f2ffd..eb522f9 100644 +--- a/lib/sfarklib/sfklCoding.cpp ++++ b/lib/sfarklib/sfklCoding.cpp +@@ -230,7 +230,7 @@ int ReadHeader(V2_FILEHEADER *FileHeader, BYTE *fbuf, int bufsize) + HeaderLen = V2_FILEHEADER_SIZE - sizeof(FileHeader->FileName) + strlen(FileHeader->FileName) + 1; + + // If we get this far, there's a good chance we've got the header... +-#ifdef __BIG_ENDIAN__ ++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + // FixEndians of all multi-byte integers (currently only relevent to Mac) + #define FIXENDIAN(field) FixEndian(&(FileHeader->field), sizeof(FileHeader->field)) + FIXENDIAN(Flags); FIXENDIAN(OriginalSize); FIXENDIAN(CompressedSize); +@@ -526,7 +526,7 @@ int ProcessNextBlock(BLOCK_DATA *Blk) + DecompressFast(Blk, NumWords); // Decompress + + //printf("B4 WriteOutputFile: %ld\n", adler32(0, (const BYTE *) Blk->SrcBuf, n) & 0xffff); +-#ifdef __BIG_ENDIAN__ ++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + #define WFIX(I) s = bp[I+0]; bp[I+0] = bp[I+1]; bp[I+1] = s; + BYTE *bp = (BYTE *) Blk->SrcBuf; BYTE *ep = bp + n; + do { +@@ -844,15 +844,11 @@ int Decode(const char *InFileName, const char *ReqOutFileName) + // Adjust integer held at *num for this machine's endian system + void FixEndian(void *num, int nsize) + { +-#ifdef __BIG_ENDIAN__ ++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + int i; + BYTE bb[4]; + for (i = 0; i < nsize; i++) bb[i] = ((BYTE *) num)[i]; + for (i = 0; i < nsize; i++) ((BYTE *) num)[i] = bb[nsize-1-i]; +-#else +-#ifndef __LITTLE_ENDIAN__ +-#error ENDIAN system undefined +-#endif + #endif + } + +diff --git a/lib/sfarklib/sfklCrunch.cpp b/lib/sfarklib/sfklCrunch.cpp +index 6b91da3..6a82c57 100644 +--- a/lib/sfarklib/sfklCrunch.cpp ++++ b/lib/sfarklib/sfklCrunch.cpp +@@ -72,7 +72,7 @@ static BYTE nb[1 << (AWORD_BITS-1)]; // Array to hold number of bits needed to r + bioBits = LOWBITS(bioBits, bioRemBits) + + // ========================================================================= +-#ifdef __BIG_ENDIAN__ ++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + + #define WFIX(I) s = bp[I+0]; bp[I+0] = bp[I+1]; bp[I+1] = s; + // Read from disk if needed, and fix endians +diff --git a/lib/sfarklib/wcc.h b/lib/sfarklib/wcc.h +index 7330cb2..0cf5677 100644 +--- a/lib/sfarklib/wcc.h ++++ b/lib/sfarklib/wcc.h +@@ -17,12 +17,6 @@ + // You should have received a copy of the GNU General Public License + // along with sfArkLib. If not, see . + +-#ifndef __BIG_ENDIAN__ +-#ifndef __LITTLE_ENDIAN__ +-#error ENDIAN system undefined +-#endif +-#endif +- + #include "sfArkLib.h" + + // ------------------------------------------------------------------------------------ +@@ -126,7 +120,7 @@ typedef ULONG BIOWORD2; + #define RETURN_ON_ERROR() if (GlobalErrorFlag != SFARKLIB_SUCCESS) return(GlobalErrorFlag) + #define JUMP_ON_ERROR(label) if (GlobalErrorFlag != SFARKLIB_SUCCESS) goto label + +-#ifdef __BIG_ENDIAN__ ++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + #define FIX_ENDIAN16(w) ((((BYTE) w) << 8) | (((USHORT)w) >> 8)) + #else + #define FIX_ENDIAN16(w) (w) +diff --git a/polyphone.pro b/polyphone.pro +index 40e1f52..7e00fb4 100644 +--- a/polyphone.pro ++++ b/polyphone.pro +@@ -752,7 +752,6 @@ RESOURCES += resources.qrc + + + # SfArk extraction (what a mess!) +-DEFINES += __LITTLE_ENDIAN__ + INCLUDEPATH += lib/sfarklib + HEADERS += lib/sfarklib/sfArkLib.h \ + lib/sfarklib/wcc.h \ +@@ -779,13 +778,5 @@ macx { + ExtraCompiler.input = SPECIAL_SOURCES + ExtraCompiler.variable_out = OBJECTS + ExtraCompiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_IN_BASE}$${QMAKE_EXT_OBJ} +-win32 { +- ExtraCompiler.commands = $${QMAKE_CXX} -D__LITTLE_ENDIAN__ -MD -arch:IA32 -D_CRT_SECURE_NO_WARNINGS $(INCPATH) -c ${QMAKE_FILE_IN} -Fo${QMAKE_FILE_OUT} +-} +-equals(QMAKE_CXX, g++) { +- ExtraCompiler.commands = $${QMAKE_CXX} -fPIC -D__LITTLE_ENDIAN__ -mfpmath=387 $(INCPATH) -c ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} +-} +-macx { +- ExtraCompiler.commands = $${QMAKE_CXX} $(CXXFLAGS) -D__LITTLE_ENDIAN__ -mno-sse -mfpmath=387 $(INCPATH) -c ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} +-} ++ExtraCompiler.commands = $${QMAKE_CXX} $(CXXFLAGS) -fPIC $(INCPATH) -c ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} + QMAKE_EXTRA_COMPILERS += ExtraCompiler +-- +2.20.1 + diff --git a/recipes-musicians/polyphone/files/polyphone.desktop b/recipes-musicians/polyphone/files/polyphone.desktop new file mode 100644 index 0000000..4d50000 --- /dev/null +++ b/recipes-musicians/polyphone/files/polyphone.desktop @@ -0,0 +1,15 @@ +[Desktop Entry] +Name=Polyphone +Name[fr]=Polyphone +Comment=soundfont editor +Comment[fr]=éditeur de soundfonts +TryExec=polyphone +Exec=polyphone %F +Icon=polyphone +StartupNotify=true +Terminal=false +Type=Application +Categories=Application;AudioVideo;Audio;Midi;Music +Keywords=sf2;sfz;sfArk;soundfonts;editor;instrument +MimeType=audio/x-soundfont; + diff --git a/recipes-musicians/polyphone/files/polyphone.mime b/recipes-musicians/polyphone/files/polyphone.mime new file mode 100644 index 0000000..3020054 --- /dev/null +++ b/recipes-musicians/polyphone/files/polyphone.mime @@ -0,0 +1,21 @@ + + + + SoundFont sf2 + + + + + + + + + SoundFont sfz + + + + SoundFont archive sfArk + + + + diff --git a/recipes-musicians/polyphone/polyphone_2.0.1.bb b/recipes-musicians/polyphone/polyphone_2.0.1.bb new file mode 100644 index 0000000..49d0143 --- /dev/null +++ b/recipes-musicians/polyphone/polyphone_2.0.1.bb @@ -0,0 +1,54 @@ +SUMMARY = "Soundfont editor" +HOMEPAGE = "http://polyphone-soundfonts.com/en/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://main.cpp;beginline=6;endline=18;md5=11e8b245e7c8a15dafd52bc856ef3ff1" + +inherit qmake5 gtk-icon-cache mime + +DEPENDS += " \ + qtbase \ + qtsvg \ + alsa-lib \ + jack \ + portaudio-v19 \ + rtmidi \ + qcustomplot \ + stk \ + libvorbis \ + libogg \ +" + +SRC_URI = " \ + git://github.com/davy7125/polyphone.git \ + file://polyphone.desktop \ + file://polyphone.mime \ + file://0001-align-compiler-switches-constants-for-cross-compilin.patch \ +" +SRCREV = "9f9720f4fded286f253e85fc708ee9bbba507eb5" +S = "${WORKDIR}/git/sources" + +do_configure_prepend() { + sed -i \ + -e 's:= /usr/include:= ${STAGING_INCDIR}:g' \ + -e 's:^DEFINES += USE_LOCAL_:#DEFINES += USE_LOCAL_:g' \ + ${S}/polyphone.pro +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${B}/bin/polyphone ${D}${bindir}/ + + install -d ${D}${datadir}/pixmaps + install -m 0644 ${S}/resources/polyphone.png ${D}${datadir}/pixmaps/ + + install -d ${D}${datadir}/applications + install -m 0644 ${WORKDIR}/${BPN}.desktop ${D}${datadir}/applications/ + + install -d ${D}${datadir}/mime/packages + install -m 0644 ${WORKDIR}/${BPN}.mime ${D}${datadir}/mime/packages/${BPN}.xml +} + +FILES_${PN} += " \ + ${datadir}/mime \ +" + diff --git a/recipes-musicians/portmidi/files/0001-do-not-build-java-application-to-set-midi-defaults.patch b/recipes-musicians/portmidi/files/0001-do-not-build-java-application-to-set-midi-defaults.patch new file mode 100644 index 0000000..0f07e04 --- /dev/null +++ b/recipes-musicians/portmidi/files/0001-do-not-build-java-application-to-set-midi-defaults.patch @@ -0,0 +1,97 @@ +From 908d5fcdfeac32d7ab5cff307d0a46a962ed600f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 6 Sep 2016 00:08:16 +0200 +Subject: [PATCH] do not build java application to set midi defaults +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +dragging in whole java environment for a small tool not everybody misses + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + CMakeLists.txt | 2 -- + pm_common/CMakeLists.txt | 18 +----------------- + pm_dylib/CMakeLists.txt | 14 -------------- + 3 files changed, 1 insertion(+), 33 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4919b78..2137ce4 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -72,6 +72,4 @@ add_subdirectory(pm_test) + + add_subdirectory(pm_dylib) + +-# Cannot figure out how to make an xcode Java application with CMake +-add_subdirectory(pm_java) + +diff --git a/pm_common/CMakeLists.txt b/pm_common/CMakeLists.txt +index bfd4ab9..9ea9030 100644 +--- a/pm_common/CMakeLists.txt ++++ b/pm_common/CMakeLists.txt +@@ -67,15 +67,6 @@ if(UNIX) + message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT}) + else(APPLE) + # LINUX settings... +- include(FindJNI) +- message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH}) +- message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH}) +- message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2}) +- message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY}) +- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) +- # libjvm.so is found relative to JAVA_INCLUDE_PATH: +- set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so) +- + set(LINUXSRC pmlinuxalsa pmlinux finddefault) + prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC}) + list(APPEND LIBSRC ../porttime/ptlinux) +@@ -109,17 +100,10 @@ add_library(portmidi-static ${LIBSRC}) + set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s") + target_link_libraries(portmidi-static ${PM_NEEDED_LIBS}) + +-# define the jni library +-include_directories(${JAVA_INCLUDE_PATHS}) +- +-set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c) +-add_library(pmjni SHARED ${JNISRC}) +-target_link_libraries(pmjni ${JNI_EXTRA_LIBS}) +-set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib") + + # install the libraries (Linux and Mac OS X command line) + if(UNIX) +- INSTALL(TARGETS portmidi-static pmjni ++ INSTALL(TARGETS portmidi-static + LIBRARY DESTINATION ${LIB_INSTALL_DIR} + ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) + # .h files installed by pm_dylib/CMakeLists.txt, so don't need them here +diff --git a/pm_dylib/CMakeLists.txt b/pm_dylib/CMakeLists.txt +index a0c615e..8ad415f 100644 +--- a/pm_dylib/CMakeLists.txt ++++ b/pm_dylib/CMakeLists.txt +@@ -63,20 +63,6 @@ if(UNIX) + message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT}) + else(APPLE) + # LINUX settings... +- include(FindJNI) +- # message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH}) +- # message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH}) +- # note: should use JAVA_JVM_LIB_PATH, but it is not set properly +- # note: user might need to set JAVA_INCLUDE_PATH manually +- # +- # this will probably break on BSD and other Unix systems; the fix +- # depends on whether FindJNI can find Java or not. If yes, then +- # we should try to rely on automatically set JAVA_INCLUDE_PATH and +- # JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH +- # and JAVA_INCLUDE_PATH2 set by user (will need clear documentation +- # because JAVA_INCLUDE_PATH2 is pretty obscure) +- set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}) +- + set(LINUXSRC pmlinuxalsa pmlinux finddefault) + prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC}) + list(APPEND LIBSRC ../porttime/ptlinux) +-- +2.5.5 + diff --git a/recipes-musicians/portmidi/files/0002-fix-compilation-du-to-unkown-functions.patch b/recipes-musicians/portmidi/files/0002-fix-compilation-du-to-unkown-functions.patch new file mode 100644 index 0000000..8dbf73b --- /dev/null +++ b/recipes-musicians/portmidi/files/0002-fix-compilation-du-to-unkown-functions.patch @@ -0,0 +1,48 @@ +From 7240f951277e47f2f37523b3ca5408bfe5fc3c53 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 6 Sep 2016 01:04:42 +0200 +Subject: [PATCH 2/2] fix compilation du to unkown functions +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas Müller +--- + pm_linux/finddefault.c | 3 +++ + pm_linux/pmlinux.c | 2 ++ + 2 files changed, 5 insertions(+) + +diff --git a/pm_linux/finddefault.c b/pm_linux/finddefault.c +index 6340316..89ca43a 100644 +--- a/pm_linux/finddefault.c ++++ b/pm_linux/finddefault.c +@@ -5,10 +5,13 @@ + #include + #include + #include ++#include + #include "portmidi.h" + + #define STRING_MAX 256 + ++int pm_find_default_device(char *pattern, int is_input); ++ + /* skip over spaces, return first non-space */ + void skip_spaces(FILE *inf) + { +diff --git a/pm_linux/pmlinux.c b/pm_linux/pmlinux.c +index 49e266d..42c0906 100755 +--- a/pm_linux/pmlinux.c ++++ b/pm_linux/pmlinux.c +@@ -26,6 +26,8 @@ + PmDeviceID pm_default_input_device_id = -1; + PmDeviceID pm_default_output_device_id = -1; + ++PmDeviceID find_default_device(char *path, int input, PmDeviceID id); ++ + void pm_init() + { + /* Note: it is not an error for PMALSA to fail to initialize. +-- +2.5.5 + diff --git a/recipes-musicians/portmidi/files/0003-fix-format-security..patch b/recipes-musicians/portmidi/files/0003-fix-format-security..patch new file mode 100644 index 0000000..6dfa96b --- /dev/null +++ b/recipes-musicians/portmidi/files/0003-fix-format-security..patch @@ -0,0 +1,124 @@ +From e597c5c8636a269dbe5e664c706e66887479f161 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 26 Sep 2018 01:44:12 +0200 +Subject: [PATCH] Fix format-security + +Stolen from [1] + +[1] https://src.fedoraproject.org/cgit/rpms/portmidi.git/plain/portmidi-217-format-security.patch + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + pm_test/latency.c | 2 +- + pm_test/midiclock.c | 4 ++-- + pm_test/mm.c | 8 ++++---- + pm_test/sysex.c | 2 +- + pm_test/test.c | 2 +- + 5 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/pm_test/latency.c b/pm_test/latency.c +index 507648c..5f4bb5c 100755 +--- a/pm_test/latency.c ++++ b/pm_test/latency.c +@@ -280,7 +280,7 @@ int get_number(char *prompt) + { + char line[STRING_MAX]; + int n = 0, i; +- printf(prompt); ++ printf("%s",prompt); + while (n != 1) { + n = scanf("%d", &i); + fgets(line, STRING_MAX, stdin); +diff --git a/pm_test/midiclock.c b/pm_test/midiclock.c +index 60fcf7a..17967a5 100644 +--- a/pm_test/midiclock.c ++++ b/pm_test/midiclock.c +@@ -167,7 +167,7 @@ int get_number(char *prompt) + { + char line[STRING_MAX]; + int n = 0, i; +- printf(prompt); ++ printf("%s",prompt); + while (n != 1) { + n = scanf("%d", &i); + fgets(line, STRING_MAX, stdin); +@@ -256,7 +256,7 @@ int main(int argc, char **argv) + err = Pm_OpenOutput(&midi, outp, DRIVER_INFO, OUTPUT_BUFFER_SIZE, + TIME_PROC, TIME_INFO, LATENCY); + if (err) { +- printf(Pm_GetErrorText(err)); ++ printf("%s",Pm_GetErrorText(err)); + goto error_exit_no_device; + } + active = true; +diff --git a/pm_test/mm.c b/pm_test/mm.c +index 209ff74..f3e6e7b 100755 +--- a/pm_test/mm.c ++++ b/pm_test/mm.c +@@ -119,7 +119,7 @@ int get_number(char *prompt) + { + char line[STRING_MAX]; + int n = 0, i; +- printf(prompt); ++ printf("%s",prompt); + while (n != 1) { + n = scanf("%d", &i); + fgets(line, STRING_MAX, stdin); +@@ -136,7 +136,7 @@ void receive_poll(PtTimestamp timestamp, void *userData) + if (!active) return; + while ((count = Pm_Read(midi_in, &event, 1))) { + if (count == 1) output(event.message); +- else printf(Pm_GetErrorText(count)); ++ else printf("%s",Pm_GetErrorText(count)); + } + } + +@@ -168,7 +168,7 @@ int main(int argc, char **argv) + inp = get_number("Type input device number: "); + err = Pm_OpenInput(&midi_in, inp, NULL, 512, NULL, NULL); + if (err) { +- printf(Pm_GetErrorText(err)); ++ printf("%s",Pm_GetErrorText(err)); + Pt_Stop(); + mmexit(1); + } +@@ -484,7 +484,7 @@ private int put_pitch(int p) + "gs", "a", "bf", "b" }; + /* note octave correction below */ + sprintf(result, "%s%d", ptos[p % 12], (p / 12) - 1); +- printf(result); ++ printf("%s",result); + return strlen(result); + } + +diff --git a/pm_test/sysex.c b/pm_test/sysex.c +index 627a3df..da2bb90 100755 +--- a/pm_test/sysex.c ++++ b/pm_test/sysex.c +@@ -39,7 +39,7 @@ int get_number(char *prompt) + { + char line[STRING_MAX]; + int n = 0, i; +- printf(prompt); ++ printf("%s",prompt); + while (n != 1) { + n = scanf("%d", &i); + fgets(line, STRING_MAX, stdin); +diff --git a/pm_test/test.c b/pm_test/test.c +index 03d6331..dcac1bc 100755 +--- a/pm_test/test.c ++++ b/pm_test/test.c +@@ -37,7 +37,7 @@ int get_number(char *prompt) + { + char line[STRING_MAX]; + int n = 0, i; +- printf(prompt); ++ printf("%s",prompt); + while (n != 1) { + n = scanf("%d", &i); + fgets(line, STRING_MAX, stdin); +-- +2.14.4 + diff --git a/recipes-musicians/portmidi/files/fedora-portmidi-cmake.patch b/recipes-musicians/portmidi/files/fedora-portmidi-cmake.patch new file mode 100644 index 0000000..f5addcb --- /dev/null +++ b/recipes-musicians/portmidi/files/fedora-portmidi-cmake.patch @@ -0,0 +1,107 @@ +diff -rupN portmidi.old/pm_common/CMakeLists.txt portmidi/pm_common/CMakeLists.txt +--- portmidi.old/pm_common/CMakeLists.txt 2010-09-20 15:57:48.000000000 -0400 ++++ portmidi/pm_common/CMakeLists.txt 2011-06-23 22:35:41.000000000 -0400 +@@ -120,8 +120,8 @@ set_target_properties(pmjni PROPERTIES E + # install the libraries (Linux and Mac OS X command line) + if(UNIX) + INSTALL(TARGETS portmidi-static pmjni +- LIBRARY DESTINATION /usr/local/lib +- ARCHIVE DESTINATION /usr/local/lib) ++ LIBRARY DESTINATION ${LIB_INSTALL_DIR} ++ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) + # .h files installed by pm_dylib/CMakeLists.txt, so don't need them here + # INSTALL(FILES portmidi.h ../porttime/porttime.h + # DESTINATION /usr/local/include) +diff -rupN portmidi.old/pm_dylib/CMakeLists.txt portmidi/pm_dylib/CMakeLists.txt +--- portmidi.old/pm_dylib/CMakeLists.txt 2009-11-20 00:41:09.000000000 -0500 ++++ portmidi/pm_dylib/CMakeLists.txt 2011-06-23 22:35:41.000000000 -0400 +@@ -59,7 +59,7 @@ if(UNIX) + + set(JAVAVM_LIB "${FRAMEWORK_PATH}/JavaVM.framework") + set(JAVA_INCLUDE_PATHS ${JAVAVM_LIB}/Headers) +- set(INSTALL_NAME_DIR "/usr/local/lib") ++ set(INSTALL_NAME_DIR ${LIB_INSTALL_DIR}) + message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT}) + else(APPLE) + # LINUX settings... +@@ -75,11 +75,7 @@ if(UNIX) + # JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH + # and JAVA_INCLUDE_PATH2 set by user (will need clear documentation + # because JAVA_INCLUDE_PATH2 is pretty obscure) +- set(JAVA_INCLUDE_PATH ${JAVA_INCLUDE_PATH-UNKNOWN} +- CACHE STRING "where to find Java SDK include directory") +- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH}/linux) +- # libjvm.so is found relative to JAVA_INCLUDE_PATH: +- set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../jre/lib/i386/client/libjvm.so) ++ set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}) + + set(LINUXSRC pmlinuxalsa pmlinux finddefault) + prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC}) +@@ -114,14 +110,14 @@ prepend_path(SHARED_PATHS ../pm_common/ + list(APPEND LIBSRC ${SHARED_PATHS}) + + add_library(portmidi-dynamic SHARED ${LIBSRC}) +-set_target_properties(portmidi-dynamic PROPERTIES OUTPUT_NAME "portmidi") ++set_target_properties(portmidi-dynamic PROPERTIES LINK_FLAGS "-L${CMAKE_CACHEFILE_DIR}/Release" SOVERSION 0 VERSION 0.${VERSION} OUTPUT_NAME "portmidi") + target_link_libraries(portmidi-dynamic ${PM_NEEDED_LIBS}) + + # install the libraries (Linux and Mac OS X command line) + if(UNIX) + INSTALL(TARGETS portmidi-dynamic +- LIBRARY DESTINATION /usr/local/lib +- ARCHIVE DESTINATION /usr/local/lib) ++ LIBRARY DESTINATION ${LIB_INSTALL_DIR} ++ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) + INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h +- DESTINATION /usr/local/include) ++ DESTINATION ${INCLUDE_INSTALL_DIR}) + endif(UNIX) +diff -rupN portmidi.old/pm_java/CMakeLists.txt portmidi/pm_java/CMakeLists.txt +--- portmidi.old/pm_java/CMakeLists.txt 2009-11-04 10:20:44.000000000 -0500 ++++ portmidi/pm_java/CMakeLists.txt 2011-06-23 22:35:54.000000000 -0400 +@@ -16,12 +16,12 @@ if(UNIX) + COMMAND javac -classpath . pmdefaults/PmDefaultsFrame.java + MAIN_DEPENDENCY pmdefaults/PmDefaultsFrame.java + DEPENDS pmdefaults/PmDefaults.java +- WORKING_DIRECTORY pm_java) ++ ) + add_custom_command(OUTPUT pmdefaults/PmDefaults.class + COMMAND javac -classpath . pmdefaults/PmDefaults.java + MAIN_DEPENDENCY pmdefaults/PmDefaults.java + DEPENDS pmdefaults/PmDefaultsFrame.java +- WORKING_DIRECTORY pm_java) ++ ) + add_custom_command(OUTPUT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar + COMMAND cp pmdefaults/portmusic_logo.png . + COMMAND jar cmf pmdefaults/manifest.txt pmdefaults.jar +@@ -32,7 +32,7 @@ if(UNIX) + COMMAND rm portmusic_logo.png + MAIN_DEPENDENCY pmdefaults/PmDefaults.class + DEPENDS ${PMDEFAULTS_ALL_CLASSES} +- WORKING_DIRECTORY pm_java) ++ ) + add_custom_target(pmdefaults_target ALL + DEPENDS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar) + # message(STATUS "add_custom_target: pmdefaults.jar") +@@ -41,7 +41,7 @@ if(UNIX) + INSTALL(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar + DESTINATION /usr/share/java) + INSTALL(PROGRAMS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults +- DESTINATION /usr/local/bin) ++ DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) + endif(APPLE) + endif(UNIX) + # In windows, use pm_java/make.bat +diff -rupN portmidi.old/pm_test/CMakeLists.txt portmidi/pm_test/CMakeLists.txt +--- portmidi.old/pm_test/CMakeLists.txt 2010-09-20 15:57:48.000000000 -0400 ++++ portmidi/pm_test/CMakeLists.txt 2011-06-23 22:35:41.000000000 -0400 +@@ -12,7 +12,7 @@ endif(WIN32) + + macro(make_a_test name) + add_executable(${name} ${name}.c) +- target_link_libraries(${name} portmidi-static ${PM_NEEDED_LIBS}) ++ target_link_libraries(${name} portmidi-dynamic) + add_dependencies(${name} portmidi-static) + endmacro(make_a_test) + + diff --git a/recipes-musicians/portmidi/portmidi_217.bb b/recipes-musicians/portmidi/portmidi_217.bb new file mode 100644 index 0000000..44f47a1 --- /dev/null +++ b/recipes-musicians/portmidi/portmidi_217.bb @@ -0,0 +1,36 @@ +SUMMARY = "Real-time Midi I/O Library" +HOMEPAGE = "http://portmedia.sourceforge.net" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://license.txt;md5=a0c1c261bc48165d48388e3a121a31e9" + +inherit cmake dos2unix + +DEPENDS += " \ + alsa-lib \ +" + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/portmedia/${BPN}/${PV}/${BPN}-src-${PV}.zip \ + file://fedora-portmidi-cmake.patch \ + file://0001-do-not-build-java-application-to-set-midi-defaults.patch \ + file://0002-fix-compilation-du-to-unkown-functions.patch \ + file://0003-fix-format-security..patch \ +" +SRC_URI[md5sum] = "03f46fd3947e2ef4c8c465baaf832241" +SRC_URI[sha256sum] = "08e9a892bd80bdb1115213fb72dc29a7bf2ff108b378180586aa65f3cfd42e0f" + +S = "${WORKDIR}/${BPN}" + +EXTRA_OECMAKE += " \ + -DLIB_INSTALL_DIR=${libdir} \ + -DINCLUDE_INSTALL_DIR=${includedir} \ + -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=Release \ + -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=Release \ + -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=Release \ +" + +do_install_append() { + ln -s libportmidi.so.0. "${D}/${libdir}/libporttime.so" + ln -s libportmidi.so.0. "${D}/${libdir}/libporttime.so.0" + ln -s libportmidi.so.0. "${D}/${libdir}/libporttime.so.0." +} diff --git a/recipes-musicians/projectm/files/0001-find-native-qt-build-tools-by-configure-options-auto.patch b/recipes-musicians/projectm/files/0001-find-native-qt-build-tools-by-configure-options-auto.patch new file mode 100644 index 0000000..d702643 --- /dev/null +++ b/recipes-musicians/projectm/files/0001-find-native-qt-build-tools-by-configure-options-auto.patch @@ -0,0 +1,46 @@ +From 56bebbedd9d6304711ffd2fc3526193e0e8251f6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 7 Apr 2018 20:57:09 +0200 +Subject: [PATCH] find native qt build tools by configure options - auto + detection does not work +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 16 +++++++++++++--- + 1 file changed, 13 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 31c9e372..d550fb33 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -69,9 +69,19 @@ AS_IF([test "x$enable_qt" = "xyes"], [ + AC_MSG_ERROR([Qt >= 5.0.0 is required. Try installing qtdeclarative5-dev]) + fi + +- AC_CHECK_PROGS(MOC, [moc-qt5 moc]) +- AC_CHECK_PROGS(UIC, [uic-qt5 uic]) +- AC_CHECK_PROGS(RCC, [rcc]) ++ AC_ARG_WITH(moc, ++ AC_HELP_STRING([--with-moc=PATH], [use alternate moc path]), ++ [MOC="$withval"], [MOC=""]) ++ AC_SUBST(MOC) ++ AC_ARG_WITH(uic, ++ AC_HELP_STRING([--with-uic=PATH], [use alternate uic path]), ++ [UIC="$withval"], [UIC=""]) ++ AC_SUBST(UIC) ++ AC_ARG_WITH(rcc, ++ AC_HELP_STRING([--with-rcc=PATH], [use alternate rcc path]), ++ [RCC="$withval"], [RCC=""]) ++ AC_SUBST(RCC) ++ + if test -z "$MOC" || test -z "$UIC" || test -z "$RCC"; then + AC_MSG_ERROR([Qt utility programs moc, uic, and rcc are required.]) + fi +-- +2.14.3 + diff --git a/recipes-musicians/projectm/files/0002-Makefile.am-Fix-installation-with-DESTDIR-set.patch b/recipes-musicians/projectm/files/0002-Makefile.am-Fix-installation-with-DESTDIR-set.patch new file mode 100644 index 0000000..bf30087 --- /dev/null +++ b/recipes-musicians/projectm/files/0002-Makefile.am-Fix-installation-with-DESTDIR-set.patch @@ -0,0 +1,35 @@ +From 5a2f6eec3bd27725cd957e1642008f34f3b82f41 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 4 Jun 2018 22:35:38 +0200 +Subject: [PATCH] Makefile.am: Fix installation with DESTDIR set +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Submitted [1] + +[1] https://github.com/projectM-visualizer/projectm/pull/67 + +Signed-off-by: Andreas Müller +--- + Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 062bb3ca..19dbef1f 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -19,8 +19,8 @@ pm_shaders__DATA = src/libprojectM/Renderer/blur.cg \ + + # find and install all preset files + install-data-local: +- test -z $(pkgdatadir) || $(MKDIR_P) $(pm_presets_dir) +- find "$(PRESETSDIR)" -type f -exec $(INSTALL_DATA) {} $(pm_presets_dir) \; ++ test -z $(DESTDIR)$(pkgdatadir) || $(MKDIR_P) $(DESTDIR)$(pm_presets_dir) ++ find "$(PRESETSDIR)" -type f -exec $(INSTALL_DATA) {} $(DESTDIR)$(pm_presets_dir) \; + + # from https://stackoverflow.com/questions/30897170/ac-subst-does-not-expand-variable answer: https://stackoverflow.com/a/30960268 + # ptomato https://stackoverflow.com/users/172999/ptomato +-- +2.14.3 + diff --git a/recipes-musicians/projectm/projectm_git.bb b/recipes-musicians/projectm/projectm_git.bb new file mode 100644 index 0000000..005b035 --- /dev/null +++ b/recipes-musicians/projectm/projectm_git.bb @@ -0,0 +1,54 @@ +SUMMARY = "projectM is a MilkDrop compatible opensource music visualizer" +HOMEPAGE = "http://projectm-visualizer.github.io/projectm" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=26f590fe167311fe2a5a7ce0b3e71900" + +inherit autotools-brokensep pkgconfig distro_features_check +inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt', 'qmake5_paths', '', d)} + +REQUIRED_DISTRO_FEATURES = "opengl ${@bb.utils.contains('PACKAGECONFIG', 'qt', 'pulseaudio', '', d)}" + +DEPENDS += " \ + libglu \ + glew \ +" + +SRC_URI = " \ + git://github.com/projectM-visualizer/projectm.git;name=projectm \ + http://spiegelmc.com.s3.amazonaws.com/pub/projectm_presets.zip;name=presets \ + file://0001-find-native-qt-build-tools-by-configure-options-auto.patch \ + file://0002-Makefile.am-Fix-installation-with-DESTDIR-set.patch \ +" +SRCREV_projectm = "9650468607537a028e4d71523c5e88a81f506578" +SRC_URI[presets.md5sum] = "8976d72c05e3f4ddee996c6f2e98fc63" +SRC_URI[presets.sha256sum] = "e323515f0ee5920ec45e4f9efdb55890f028dabb5ae9468fdc97c43d55040614" + +S = "${WORKDIR}/git" +PV = "2.2.1+git${SRCPV}" + +# Many options are Qt related but can be set unconditionally +EXTRA_OECONF += " \ + --with-moc=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc \ + --with-uic=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic \ + --with-rcc=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc \ +" + +PACKAGECONFIG ??= "ftgl sdl2" +PACKAGECONFIG[ftgl] = "--enable-ftgl,--disable-ftgl,ftgl" +PACKAGECONFIG[sdl2] = "--enable-sdl,--disable-sdl,libsdl2" + +# Note: qtbase must be configured with desktop gl / gles won't work +PACKAGECONFIG[qt] = "--enable-qt,--disable-qt,qtbase-native qtbase pulseaudio" + +do_install_append() { + # Install presets manually for now + install -m 0644 ${S}/presets/presets_projectM/* ${D}/${datadir}/projectM/presets/ + + # Remove native presets for now - they are at the wrong location + rm -f ${D}/${datadir}/projectM/presets/*.a + rm -f ${D}/${datadir}/projectM/presets/*.so* +} + +FILES_${PN} += " \ + ${datadir}/projectM \ +" diff --git a/recipes-musicians/qm-dsp/qm-dsp_1.7.1.bb b/recipes-musicians/qm-dsp/qm-dsp_1.7.1.bb new file mode 100644 index 0000000..06c4abc --- /dev/null +++ b/recipes-musicians/qm-dsp/qm-dsp_1.7.1.bb @@ -0,0 +1,40 @@ +SUMMARY = "A C++ library of functions for DSP and Music Informatics purposes" +HOMEPAGE = "https://code.soundsoftware.ac.uk/projects/qm-dsp" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=cbbd794e2a0a289b9dfcc9f513d1996e" + + +SRC_URI = "https://code.soundsoftware.ac.uk/attachments/download/1582/${BPN}-${PV}.tar.gz " +SRC_URI[md5sum] = "9c7a7b15926000e15a9e3c7c06492e58" +SRC_URI[sha256sum] = "2b203f6dabd0475f13b356945827ae90a4ba4a4bbde935ffc334b50a9c782561" + +# we cannot use files in build/linux - these are x86 polluted - so set flags here +CFLAGSADD = "-DNDEBUG -fPIC -ffast-math -DUSE_PTHREADS -I./include" +CFLAGS += "${CFLAGSADD}" +CXXFLAGS += "${CFLAGSADD}" + +do_compile_prepend() { + cp build/general/Makefile.inc Makefile +} + +do_install() { + # stolen https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=qm-dsp + cd ${S} + install -Dm644 -t ${D}${libdir} libqm-dsp.a + install -Dm644 -t ${D}${includedir}/qm-dsp/base base/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/dsp/chromagram dsp/chromagram/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/dsp/keydetection dsp/keydetection/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/dsp/mfcc dsp/mfcc/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/dsp/onsets dsp/onsets/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/dsp/phasevocoder dsp/phasevocoder/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/dsp/rateconversion dsp/rateconversion/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/dsp/rhythm dsp/rhythm/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/dsp/segmentation dsp/segmentation/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/dsp/signalconditioning dsp/signalconditioning/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/dsp/tempotracking dsp/tempotracking/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/dsp/tonal dsp/tonal/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/dsp/transforms dsp/transforms/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/dsp/wavelet dsp/wavelet/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/maths maths/*.h + install -Dm644 -t ${D}${includedir}/qm-dsp/thread thread/*.h +} diff --git a/recipes-musicians/qmidiarp/files/0001-remove-code-to-find-qtwidget-headers-it-finds-host-s.patch b/recipes-musicians/qmidiarp/files/0001-remove-code-to-find-qtwidget-headers-it-finds-host-s.patch new file mode 100644 index 0000000..6da4669 --- /dev/null +++ b/recipes-musicians/qmidiarp/files/0001-remove-code-to-find-qtwidget-headers-it-finds-host-s.patch @@ -0,0 +1,35 @@ +From 2c7b219c4c50db0753a1ac6734e691bdba6a0e79 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 30 Nov 2017 21:44:15 +0100 +Subject: [PATCH] remove code to find qtwidget headers - it finds host's files +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross-specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index ceada50..ca5f5c8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -127,12 +127,6 @@ if test "x$ac_buildapp" = "xyes" -o ["x$ac_lv2pluginuis" = "xyes" -a "x$ac_lv2w + QT_INCLUDE_DIR=`$PKG_CONFIG --variable=includedir Qt5Gui` + QT_CXXFLAGS=`$PKG_CONFIG --cflags Qt5Core Qt5Gui Qt5Widgets` + QT_CXXFLAGS="$QT_CXXFLAGS -fPIC" +- EXTRA_QT_INCLUDE_DIR="$QT_INCLUDE_DIR/Qt" +- AC_CHECK_FILE([$QT_INCLUDE_DIR/QtWidgets/QWidget], +- AC_MSG_NOTICE([No extra QT_INCLUDE_DIR needed]), +- AC_CHECK_FILE([$EXTRA_QT_INCLUDE_DIR/QtWidgets/QWidget], +- QT_CPPFLAGS="$QT_CPPFLAGS -I$EXTRA_QT_INCLUDE_DIR", +- AC_MSG_WARN([QWidget not found]))) + + AC_SUBST(QT_CXXFLAGS) + AC_SUBST(Qt5_LIBS) +-- +2.9.5 + diff --git a/recipes-musicians/qmidiarp/files/0002-find-native-qt-build-tools-by-configure-options-auto.patch b/recipes-musicians/qmidiarp/files/0002-find-native-qt-build-tools-by-configure-options-auto.patch new file mode 100644 index 0000000..eb59ebd --- /dev/null +++ b/recipes-musicians/qmidiarp/files/0002-find-native-qt-build-tools-by-configure-options-auto.patch @@ -0,0 +1,66 @@ +From 6bf6f86f9948bdc0e409f4c16c3ee41338494e6b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 30 Nov 2017 22:25:34 +0100 +Subject: [PATCH] find native qt build tools by configure options - auto + detection does not work +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index ceada50..d982045 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -148,11 +148,14 @@ if test "x$ac_buildapp" = "xyes" -o ["x$ac_lv2pluginuis" = "xyes" -a "x$ac_lv2w + dnl endo of qt version test + + dnl check for moc +- AC_PATH_PROGS(MOC, moc-$ac_qtversion moc, no, [$PATH:$QTDIR/bin]) ++ AC_ARG_WITH(moc, ++ AC_HELP_STRING([--with-moc=PATH], [use alternate moc path]), ++ [MOC="$withval"], [MOC="no"]) + if test "x$MOC" = "xno" ; then + AC_MSG_ERROR( + [cannot find 'moc', please install the Qt development tools package.]) + fi ++ AC_SUBST(MOC) + + # Enable translations. + AC_ARG_ENABLE(translations, +@@ -164,18 +167,24 @@ if test "x$ac_buildapp" = "xyes" -o ["x$ac_lv2pluginuis" = "xyes" -a "x$ac_lv2w + + AM_COND_IF([ENABLE_TRANSLATIONS],[ + dnl check for lupdate +- AC_PATH_PROGS(LUPDATE, lupdate-$ac_qtversion lupdate, no, [$PATH:$QTDIR/bin]) ++ AC_ARG_WITH(lupdate, ++ AC_HELP_STRING([--with-lupdate=PATH], [use alternate lupdate path]), ++ [LUPDATE="$withval"], [LUPDATE="no"]) + if test "x$LUPDATE" = "xno" ; then + AC_MSG_ERROR( + [cannot find 'lupdate', please install the Qt development tools package.]) + fi ++ AC_SUBST(LUPDATE) + + dnl check for lrelease +- AC_PATH_PROGS(LRELEASE, lrelease-$ac_qtversion lrelease, no, [$PATH:$QTDIR/bin]) ++ AC_ARG_WITH(lrelease, ++ AC_HELP_STRING([--with-lrelease=PATH], [use alternate lrelease path]), ++ [LRELEASE="$withval"], [LRELEASE="no"]) + if test "x$LRELEASE" = "xno" ; then + AC_MSG_ERROR( + [cannot find 'lrelease', please install the Qt development tools package.]) + fi ++ AC_SUBST(LRELEASE) + ], [AC_MSG_NOTICE([translations are disabled])]) + + # Modify the entries in the LV2 ttl files according to Qt version +-- +2.9.5 + diff --git a/recipes-musicians/qmidiarp/files/qmidiarp-alsa.desktop b/recipes-musicians/qmidiarp/files/qmidiarp-alsa.desktop new file mode 100644 index 0000000..3459c58 --- /dev/null +++ b/recipes-musicians/qmidiarp/files/qmidiarp-alsa.desktop @@ -0,0 +1,14 @@ +[Desktop Entry] +Type=Application +Categories=AudioVideo;X-Sound;Midi;Audio;AudioVideoEditing;X-Jack;X-Midi; +Name=QMidiArp ALSA +GenericName=Arpeggiator-Sequencer-LFO +Comment=Arpeggiator-Sequencer-LFO +Keywords=audio;sound;jackd;midi;arpeggiator; +Icon=qmidiarp +MimeType=application/qma;application/qmax; +Exec=qmidiarp -a %F +TryExec=qmidiarp +Terminal=false +StartupNotify=true +Name[en_US]=qmidiarp-alsa diff --git a/recipes-musicians/qmidiarp/files/qmidiarp-jack.desktop b/recipes-musicians/qmidiarp/files/qmidiarp-jack.desktop new file mode 100644 index 0000000..e304eda --- /dev/null +++ b/recipes-musicians/qmidiarp/files/qmidiarp-jack.desktop @@ -0,0 +1,14 @@ +[Desktop Entry] +Type=Application +Categories=AudioVideo;X-Sound;Midi;Audio;AudioVideoEditing;X-Jack;X-Midi; +Name=QMidiArp JACK +GenericName=Arpeggiator-Sequencer-LFO +Comment=Arpeggiator-Sequencer-LFO +Keywords=audio;sound;jackd;midi;arpeggiator; +Icon=qmidiarp +MimeType=application/qma;application/qmax; +Exec=qmidiarp -j %F +TryExec=qmidiarp +Terminal=false +StartupNotify=true +Name[en_US]=qmidiarp-jack diff --git a/recipes-musicians/qmidiarp/qmidiarp_0.6.5.bb b/recipes-musicians/qmidiarp/qmidiarp_0.6.5.bb new file mode 100644 index 0000000..1e85533 --- /dev/null +++ b/recipes-musicians/qmidiarp/qmidiarp_0.6.5.bb @@ -0,0 +1,46 @@ +SUMMARY = "A Linux MIDI Arpeggiator, Step Sequencer and LFO" +HOMEPAGE = "http://qmidiarp.sourceforge.net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=cbbd794e2a0a289b9dfcc9f513d1996e" + +DEPENDS += " \ + qtbase-native \ + qtbase \ + jack \ + lv2 \ + liblo \ +" + +inherit qmake5_base autotools-brokensep pkgconfig gtk-icon-cache qt5-translation + +SRC_URI = " \ + git://github.com/emuse/qmidiarp.git \ + file://0001-remove-code-to-find-qtwidget-headers-it-finds-host-s.patch \ + file://0002-find-native-qt-build-tools-by-configure-options-auto.patch \ + file://qmidiarp-alsa.desktop \ + file://qmidiarp-jack.desktop \ +" + +SRCREV = "bf9300363578eee44ce2e1e42e938ce338425937" +S = "${WORKDIR}/git" + +EXTRA_OECONF = " \ + --enable-translations \ + --with-moc=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc \ + --with-lupdate=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate \ + --with-lrelease=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease \ +" + +do_install_append() { + # replace default and split alsa + rm -f ${D}/${datadir}/applications/qmidiarp.desktop + install -m 644 ${WORKDIR}/qmidiarp-alsa.desktop ${D}/${datadir}/applications/ + install -m 644 ${WORKDIR}/qmidiarp-jack.desktop ${D}/${datadir}/applications/ +} + +FILES_${PN} += " \ + ${datadir}/metainfo \ + ${datadir}/qmidiarp/examples \ + ${datadir}/icons \ + ${libdir}/lv2 \ +" diff --git a/recipes-musicians/qt-gstreamer/files/0001-Fix-compilation-with-GStreamer-1-5-1.patch b/recipes-musicians/qt-gstreamer/files/0001-Fix-compilation-with-GStreamer-1-5-1.patch new file mode 100644 index 0000000..01d2ea6 --- /dev/null +++ b/recipes-musicians/qt-gstreamer/files/0001-Fix-compilation-with-GStreamer-1-5-1.patch @@ -0,0 +1,44 @@ +From e2ca8094aa8d0eac1c3a98df66fe94ce0c754088 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jos=C3=A9=20Manuel=20Santamar=C3=ADa?= +Date: Fri, 2 Oct 2015 15:00:29 +0300 +Subject: [PATCH 6/6] Fix compilation with GStreamer >= 1.5.1 + +apply gstreamer pkg-config definitions To ensure gstreamer builds correctly, +pick up its cflags in FindGstreamer and apply them to the build as definitions + +https://lists.ubuntu.com/archives/kubuntu-devel/2015-August/009819.html + +https://bugzilla.gnome.org/show_bug.cgi?id=751382 +--- + CMakeLists.txt | 1 + + cmake/modules/FindGStreamer.cmake | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4d3e7dd..5744015 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -106,6 +106,7 @@ find_package(GObject) + macro_log_feature(GOBJECT_FOUND "GObject" "Required to build QtGLib" "http://www.gtk.org/" TRUE) + + set(CMAKE_REQUIRED_INCLUDES ${QTGSTREAMER_INCLUDES}) ++add_definitions(${GSTREAMER_DEFINITIONS}) + include(CheckCXXSourceCompiles) + check_cxx_source_compiles(" + #include +diff --git a/cmake/modules/FindGStreamer.cmake b/cmake/modules/FindGStreamer.cmake +index dab91ac..fe6cde1 100644 +--- a/cmake/modules/FindGStreamer.cmake ++++ b/cmake/modules/FindGStreamer.cmake +@@ -36,6 +36,7 @@ if (PKG_CONFIG_FOUND) + exec_program(${PKG_CONFIG_EXECUTABLE} + ARGS --variable pluginsdir gstreamer-${GSTREAMER_ABI_VERSION} + OUTPUT_VARIABLE PKG_GSTREAMER_PLUGIN_DIR) ++ set(GSTREAMER_DEFINITIONS ${PKG_GSTREAMER_CFLAGS}) + endif() + + find_library(GSTREAMER_LIBRARY +-- +2.5.0 + + diff --git a/recipes-musicians/qt-gstreamer/files/0002-FindQt4or5.cmake-Optionally-create-qt5_use_modules-t.patch b/recipes-musicians/qt-gstreamer/files/0002-FindQt4or5.cmake-Optionally-create-qt5_use_modules-t.patch new file mode 100644 index 0000000..d960c8b --- /dev/null +++ b/recipes-musicians/qt-gstreamer/files/0002-FindQt4or5.cmake-Optionally-create-qt5_use_modules-t.patch @@ -0,0 +1,81 @@ +From aaff08c014d25266ce141fe378757ccb6fa18494 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 3 Jun 2018 23:25:29 +0200 +Subject: [PATCH] FindQt4or5.cmake: Optionally create qt5_use_modules to fix + build with Qt 5.11 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + cmake/modules/FindQt4or5.cmake | 51 ++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 51 insertions(+) + +diff --git a/cmake/modules/FindQt4or5.cmake b/cmake/modules/FindQt4or5.cmake +index 855a48e..46976f7 100644 +--- a/cmake/modules/FindQt4or5.cmake ++++ b/cmake/modules/FindQt4or5.cmake +@@ -17,6 +17,57 @@ + + set(QT_VERSION "4" CACHE STRING "Qt version used for the build") + ++if (NOT COMMAND qt5_use_modules) ++ macro(qt5_use_modules _target _link_type) ++ if(NOT CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.11) ++ if(CMAKE_WARN_DEPRECATED) ++ set(messageType WARNING) ++ endif() ++ if(CMAKE_ERROR_DEPRECATED) ++ set(messageType FATAL_ERROR) ++ endif() ++ if(messageType) ++ message(${messageType} "The qt5_use_modules macro is obsolete. Use target_link_libraries with IMPORTED targets instead.") ++ endif() ++ endif() ++ ++ if (NOT TARGET ${_target}) ++ message(FATAL_ERROR "The first argument to qt5_use_modules must be an existing target.") ++ endif() ++ if ("${_link_type}" STREQUAL "LINK_PUBLIC" OR "${_link_type}" STREQUAL "LINK_PRIVATE" ) ++ set(_qt5_modules ${ARGN}) ++ set(_qt5_link_type ${_link_type}) ++ else() ++ set(_qt5_modules ${_link_type} ${ARGN}) ++ endif() ++ ++ if ("${_qt5_modules}" STREQUAL "") ++ message(FATAL_ERROR "qt5_use_modules requires at least one Qt module to use.") ++ endif() ++ ++ foreach(_module ${_qt5_modules}) ++ if (NOT Qt5${_module}_FOUND) ++ find_package(Qt5${_module} PATHS "${_Qt5_COMPONENT_PATH}" NO_DEFAULT_PATH) ++ if (NOT Qt5${_module}_FOUND) ++ message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.") ++ endif() ++ endif() ++ target_link_libraries(${_target} ${_qt5_link_type} ${Qt5${_module}_LIBRARIES}) ++ set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${Qt5${_module}_INCLUDE_DIRS}) ++ set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${Qt5${_module}_COMPILE_DEFINITIONS}) ++ set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS_RELEASE QT_NO_DEBUG) ++ set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS_RELWITHDEBINFO QT_NO_DEBUG) ++ set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS_MINSIZEREL QT_NO_DEBUG) ++ if (Qt5_POSITION_INDEPENDENT_CODE ++ AND (CMAKE_VERSION VERSION_LESS 2.8.12 ++ AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU" ++ OR CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0))) ++ set_property(TARGET ${_target} PROPERTY POSITION_INDEPENDENT_CODE ${Qt5_POSITION_INDEPENDENT_CODE}) ++ endif() ++ endforeach() ++ endmacro() ++endif() ++ + macro(_qt4or5_component_name_to_qt_component qt_component component) + if (${component} STREQUAL "Widgets" AND ${QT_VERSION} STREQUAL "4") + set(${qt_component} "Gui") +-- +2.14.3 + diff --git a/recipes-musicians/qt-gstreamer/files/0003-Make-QML-installation-path-configurable.patch b/recipes-musicians/qt-gstreamer/files/0003-Make-QML-installation-path-configurable.patch new file mode 100644 index 0000000..3787be4 --- /dev/null +++ b/recipes-musicians/qt-gstreamer/files/0003-Make-QML-installation-path-configurable.patch @@ -0,0 +1,39 @@ +From 4fa9e08ddca36fc3cebd35b6f0ea2fc344b85e13 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 28 Oct 2018 21:49:42 +0100 +Subject: [PATCH] Make QML installation path configurable +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + CMakeLists.txt | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 837c6bb..cc9be3c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -15,6 +15,7 @@ option(QTGSTREAMER_EXAMPLES "Build QtGStreamer's examples" ON) + option(QTGSTREAMER_CODEGEN "Build and use QtGStreamer's codegen" OFF) + option(USE_GST_PLUGIN_DIR "Install gstreamer plugins at the system location" ON) + option(USE_QT_PLUGIN_DIR "Install qt plugins at the system location" ON) ++set(QMLDIR "/usr/lib/qml" CACHE STRING "QMLpath") + + include(GNUInstallDirs) + include(MacroLogFeature) +@@ -165,7 +166,7 @@ endif() + + if (USE_QT_PLUGIN_DIR) + set(QTGSTREAMER_QTQUICK1_INSTALL_DIR ${QT_IMPORTS_DIR}) +- set(QTGSTREAMER_QTQUICK2_INSTALL_DIR ${QT_QML_DIR}) ++ set(QTGSTREAMER_QTQUICK2_INSTALL_DIR ${QMLDIR}) + else() + if (USE_QT5) + set(QTGSTREAMER_QTQUICK1_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/qt5/imports) +-- +2.14.4 + diff --git a/recipes-musicians/qt-gstreamer/qt-gstreamer_1.2.0.bb b/recipes-musicians/qt-gstreamer/qt-gstreamer_1.2.0.bb new file mode 100644 index 0000000..d2b7030 --- /dev/null +++ b/recipes-musicians/qt-gstreamer/qt-gstreamer_1.2.0.bb @@ -0,0 +1,40 @@ +SUMMARY = "QtGStreamer is a set of libraries providing C++ bindings for GStreamer" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +inherit cmake_qt5 + +DEPENDS += " \ + glib-2.0-native \ + boost \ + qtbase \ + qtquickcontrols2 \ + qtdeclarative \ + gstreamer1.0 \ + gstreamer1.0-plugins-base \ +" + +SRC_URI = " \ + http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.xz \ + file://0001-Fix-compilation-with-GStreamer-1-5-1.patch \ + file://0002-FindQt4or5.cmake-Optionally-create-qt5_use_modules-t.patch \ + file://0003-Make-QML-installation-path-configurable.patch \ +" +SRC_URI[md5sum] = "fd794045a828c184acc1794b08a463fd" +SRC_URI[sha256sum] = "9f3b492b74cad9be918e4c4db96df48dab9c012f2ae5667f438b64a4d92e8fd4" + +EXTRA_OECMAKE += " \ + -DQT_VERSION=5 \ + -DQMLDIR=${OE_QMAKE_PATH_QML} \ +" + +FILES_${PN} += " \ + ${libdir}/gstreamer-1.0 \ + ${OE_QMAKE_PATH_QML} \ + ${OE_QMAKE_PATH_IMPORTS} \ +" + +FILES_${PN}-dev += " \ + ${libdir}/cmake \ +" diff --git a/recipes-musicians/rncbc/drumkv1_0.9.5.bb b/recipes-musicians/rncbc/drumkv1_0.9.5.bb new file mode 100644 index 0000000..078d8f3 --- /dev/null +++ b/recipes-musicians/rncbc/drumkv1_0.9.5.bb @@ -0,0 +1,61 @@ +SUMMARY = "An old-school drum kit sampler" +HOMEPAGE = "http://drumkv1.sourceforge.net/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS += " \ + qtbase-native \ + qtbase \ + jack \ + lv2 \ + liblo \ + hydrogen \ +" + +inherit qmake5_base autotools-brokensep pkgconfig gtk-icon-cache mime + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + git://github.com/TuriSc/hydrogen2drumkv1.py.git;name=hydrogen2drumkv1;destsuffix=hydrogen2drumkv1 \ + file://0001-no-Qt4-find-native-qt-build-tools-by-configure-options-auto.patch \ + file://0002-Remove-extra-rpath.patch \ +" +SRC_URI[md5sum] = "826afa3fea4933f24d7e9988367a64b9" +SRC_URI[sha256sum] = "06151455568eb7de54834ca06ef95ce56ff7e29662459d40c99fe49c1fe6ffab" + +SRCREV_hydrogen2drumkv1 = "4ca8af8f1433dce33f675ae68e95429c9eed084e" + +EXTRA_OECONF = " \ + --with-qmake=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake \ + --with-moc=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc \ + --with-uic=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic \ + --with-lupdate=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate \ + --with-lrelease=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease \ +" + +do_install_append() { + install -d ${D}${datadir}/${BPN}/presets + # convert hydrogen drumkits to drumkv1 + export IFS=$'\n' + for drumkit in `find ${STAGING_DATADIR}/hydrogen/data/drumkits -name drumkit.xml`; do + echo $drumkit + drumkit_name=`dirname $drumkit` + drumkit_name=`basename $drumkit_name` + echo $drumkit_name + python3 ${WORKDIR}/hydrogen2drumkv1/hydrogen2drumkv1.py --prefix ${datadir}/hydrogen/data/drumkits/$drumkit_name/ $drumkit ${D}${datadir}/${BPN}/presets/$drumkit_name.drumkv1 + done +} + +PACKAGES =+ "${PN}-presets" + +FILES_${PN} += " \ + ${datadir}/appdata \ + ${datadir}/mime \ + ${datadir}/metainfo \ + ${datadir}/icons \ + ${libdir}/lv2 \ +" + +FILES_${PN}-presets += "${datadir}/${BPN}/presets/" +# hydrogen-drumkits contain samples +RDEPENDS_${PN}-presets = "hydrogen-drumkits" diff --git a/recipes-musicians/rncbc/files/0001-find-native-qt-build-tools-by-configure-options-auto.patch b/recipes-musicians/rncbc/files/0001-find-native-qt-build-tools-by-configure-options-auto.patch new file mode 100644 index 0000000..65c5524 --- /dev/null +++ b/recipes-musicians/rncbc/files/0001-find-native-qt-build-tools-by-configure-options-auto.patch @@ -0,0 +1,118 @@ +From 42fa0e7e4ce43def9c34af83bfff22950f00b711 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 18 Jan 2018 00:42:33 +0100 +Subject: [PATCH] find native qt build tools by configure options - auto + detection does not work +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 55 +++++++++++++++---------------------------------------- + 1 file changed, 15 insertions(+), 40 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 60673c2..9f48fdd 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -180,36 +180,10 @@ done + # A common error message: + ac_errmsg="not found in current PATH. Maybe QT development environment isn't available." + +-# Check for proper qmake path/version alternatives. +-AC_PATH_TOOL(ac_qmake, qmake, [no], $ac_path) ++AC_ARG_WITH(qmake, ++ AC_HELP_STRING([--with-qmake=PATH], [use alternate qmake path]), ++ [ac_qmake="$withval"], [ac_qmake="no"]) + +-if test "x$ac_qmake" = "xno"; then +- if test "x$ac_qt4" = "xyes"; then +- AC_PATH_TOOL(ac_cv_qmake, qmake-qt4, [no], $ac_path) +- ac_qmake=$ac_cv_qmake +- else +- AC_PATH_TOOL(ac_cv_qmake, qmake-qt5, [no], $ac_path) +- ac_qmake=$ac_cv_qmake +- fi +-fi +- +-# Check for proper Qt major version. +-AC_CACHE_CHECK([for Qt major version], [ac_cv_qt_version_major], [ +- ac_cv_qt_version_major=$($ac_qmake -query QT_VERSION | cut -d'.' -f1) +- ac_cv_qt_version_major=$(($ac_cv_qt_version_major + 0)) +-]) +-ac_qt_version_major=$ac_cv_qt_version_major +-if test "x$ac_qt4" = "xyes"; then +- if test $ac_qt_version_major -ne 4; then +- AC_PATH_TOOL(ac_cv_qmake, qmake-qt4, [no], $ac_path) +- ac_qmake=$ac_cv_qmake +- fi +-else +- if test $ac_qt_version_major -ne 5; then +- AC_PATH_TOOL(ac_cv_qmake, qmake-qt5, [no], $ac_path) +- ac_qmake=$ac_cv_qmake +- fi +-fi + + if test "x$ac_qmake" = "xno"; then + if test "x$ac_qt4" = "xyes"; then +@@ -228,13 +202,6 @@ if test -d $ac_qt_install_path; then + ac_path="$ac_qt_install_path:$ac_path" + fi + +-# Check it again, now with updated PATH, just in case... +-AC_PATH_TOOL(ac_cv_qmake, qmake, [no], $ac_path) +-ac_qmake=$ac_cv_qmake +-if test "x$ac_qmake" = "xno"; then +- AC_MSG_ERROR([qmake $ac_errmsg]) +-fi +- + AC_SUBST(ac_qmake) + + AC_CACHE_CHECK([for Qt install headers], [ac_cv_qt_install_headers], [ +@@ -284,28 +251,36 @@ else + fi + + # Check for Qt moc utility. +-AC_PATH_TOOL(ac_moc, moc, [no], $ac_path) ++AC_ARG_WITH(moc, ++ AC_HELP_STRING([--with-moc=PATH], [use alternate moc path]), ++ [ac_moc="$withval"], [ac_moc="no"]) + if test "x$ac_moc" = "xno"; then + AC_MSG_ERROR([moc $ac_errmsg]) + fi + AC_SUBST(ac_moc) + + # Check for Qt uic utility. +-AC_PATH_TOOL(ac_uic, uic, [no], $ac_path) ++AC_ARG_WITH(uic, ++ AC_HELP_STRING([--with-uic=PATH], [use alternate uic path]), ++ [ac_uic="$withval"], [ac_uic="no"]) + if test "x$ac_uic" = "xno"; then + AC_MSG_ERROR([uic $ac_errmsg]) + fi + AC_SUBST(ac_uic) + + # Check for Qt lupdate utility. +-AC_PATH_TOOL(ac_lupdate, lupdate, [no], $ac_path) ++AC_ARG_WITH(lupdate, ++ AC_HELP_STRING([--with-lupdate=PATH], [use alternate lupdate path]), ++ [ac_lupdate="$withval"], [ac_lupdate="no"]) + if test "x$ac_lupdate" = "xno"; then + AC_MSG_ERROR([lupdate $ac_errmsg]) + fi + AC_SUBST(ac_lupdate) + + # Check for Qt lrelease utility. +-AC_PATH_TOOL(ac_lrelease, lrelease, [no], $ac_path) ++AC_ARG_WITH(lrelease, ++ AC_HELP_STRING([--with-lrelease=PATH], [use alternate lrelease path]), ++ [ac_lrelease="$withval"], [ac_lrelease="no"]) + if test "x$ac_release" = "xno"; then + AC_MSG_ERROR([lrelease $ac_errmsg]) + fi +-- +2.14.3 + diff --git a/recipes-musicians/rncbc/files/0001-no-Qt4-find-native-qt-build-tools-by-configure-options-auto.patch b/recipes-musicians/rncbc/files/0001-no-Qt4-find-native-qt-build-tools-by-configure-options-auto.patch new file mode 100644 index 0000000..6b526ef --- /dev/null +++ b/recipes-musicians/rncbc/files/0001-no-Qt4-find-native-qt-build-tools-by-configure-options-auto.patch @@ -0,0 +1,105 @@ +From 42fa0e7e4ce43def9c34af83bfff22950f00b711 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 24 Nov 2018 16:30:08 +0100 +Subject: [PATCH] find native qt build tools by configure options - auto + detection does not work +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 43 +++++++++++++++---------------------------- + 1 file changed, 15 insertions(+), 28 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f791a1d..1d46860 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -236,23 +236,9 @@ done + # A common error message: + ac_errmsg="not found in current PATH. Maybe QT development environment isn't available." + +-# Check for proper qmake path/version alternatives. +-AC_PATH_TOOL(ac_qmake, qmake, [no], $ac_path) +-if test "x$ac_qmake" = "xno"; then +- AC_PATH_TOOL(ac_cv_qmake, qmake-qt5, [no], $ac_path) +- ac_qmake=$ac_cv_qmake +-fi +- +-# Check for proper Qt major version. +-AC_CACHE_CHECK([for Qt major version], [ac_cv_qt_version_major], [ +- ac_cv_qt_version_major=$($ac_qmake -query QT_VERSION | cut -d'.' -f1) +- ac_cv_qt_version_major=$(($ac_cv_qt_version_major + 0)) +-]) +-ac_qt_version_major=$ac_cv_qt_version_major +-if test $ac_qt_version_major -ne 5; then +- AC_PATH_TOOL(ac_cv_qmake, qmake-qt5, [no], $ac_path) +- ac_qmake=$ac_cv_qmake +-fi ++AC_ARG_WITH(qmake, ++ AC_HELP_STRING([--with-qmake=PATH], [use alternate qmake path]), ++ [ac_qmake="$withval"], [ac_qmake="no"]) + + if test "x$ac_qmake" = "xno"; then + AC_MSG_ERROR([qmake-qt5 $ac_errmsg (qt5-devel)]) +@@ -267,13 +253,6 @@ if test -d $ac_qt_install_path; then + ac_path="$ac_qt_install_path:$ac_path" + fi + +-# Check it again, now with updated PATH, just in case... +-AC_PATH_TOOL(ac_cv_qmake, qmake, [no], $ac_path) +-ac_qmake=$ac_cv_qmake +-if test "x$ac_qmake" = "xno"; then +- AC_MSG_ERROR([qmake $ac_errmsg]) +-fi +- + AC_SUBST(ac_qmake) + + AC_CACHE_CHECK([for Qt install headers], [ac_cv_qt_install_headers], [ +@@ -309,28 +288,36 @@ AC_CACHE_CHECK([for Qt library version >= 5.1], + ]) + + # Check for Qt moc utility. +-AC_PATH_TOOL(ac_moc, moc, [no], $ac_path) ++AC_ARG_WITH(moc, ++ AC_HELP_STRING([--with-moc=PATH], [use alternate moc path]), ++ [ac_moc="$withval"], [ac_moc="no"]) + if test "x$ac_moc" = "xno"; then + AC_MSG_ERROR([moc $ac_errmsg]) + fi + AC_SUBST(ac_moc) + + # Check for Qt uic utility. +-AC_PATH_TOOL(ac_uic, uic, [no], $ac_path) ++AC_ARG_WITH(uic, ++ AC_HELP_STRING([--with-uic=PATH], [use alternate uic path]), ++ [ac_uic="$withval"], [ac_uic="no"]) + if test "x$ac_uic" = "xno"; then + AC_MSG_ERROR([uic $ac_errmsg]) + fi + AC_SUBST(ac_uic) + + # Check for Qt lupdate utility. +-AC_PATH_TOOL(ac_lupdate, lupdate, [no], $ac_path) ++AC_ARG_WITH(lupdate, ++ AC_HELP_STRING([--with-lupdate=PATH], [use alternate lupdate path]), ++ [ac_lupdate="$withval"], [ac_lupdate="no"]) + if test "x$ac_lupdate" = "xno"; then + AC_MSG_ERROR([lupdate $ac_errmsg]) + fi + AC_SUBST(ac_lupdate) + + # Check for Qt lrelease utility. +-AC_PATH_TOOL(ac_lrelease, lrelease, [no], $ac_path) ++AC_ARG_WITH(lrelease, ++ AC_HELP_STRING([--with-lrelease=PATH], [use alternate lrelease path]), ++ [ac_lrelease="$withval"], [ac_lrelease="no"]) + if test "x$ac_release" = "xno"; then + AC_MSG_ERROR([lrelease $ac_errmsg]) + fi +-- +2.14.5 + diff --git a/recipes-musicians/rncbc/files/0002-Remove-extra-rpath.patch b/recipes-musicians/rncbc/files/0002-Remove-extra-rpath.patch new file mode 100644 index 0000000..3931a1b --- /dev/null +++ b/recipes-musicians/rncbc/files/0002-Remove-extra-rpath.patch @@ -0,0 +1,70 @@ +From 45215d29d71a54e79230454d698346299a9182df Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 28 Oct 2018 20:51:23 +0100 +Subject: [PATCH] Remove extra rpath +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + src/src_jack.pro | 2 +- + src/src_lv2.pro | 2 +- + src/src_lv2ui.pro | 2 +- + src/src_ui.pro | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/src_jack.pro b/src/src_jack.pro +index 4aa3349..d9d4415 100644 +--- a/src/src_jack.pro ++++ b/src/src_jack.pro +@@ -75,7 +75,7 @@ unix { + mimetypes_scalable.path = $${DATADIR}/icons/hicolor/scalable/mimetypes + mimetypes_scalable.files += mimetypes/application-x-$${NAME}-preset.svg + +- LIBS += -l$${NAME} -l$${NAME}_ui -Wl,-rpath,$${LIBDIR} ++ LIBS += -l$${NAME} -l$${NAME}_ui + } + + QT += widgets xml +diff --git a/src/src_lv2.pro b/src/src_lv2.pro +index 069e1ee..6eb8485 100644 +--- a/src/src_lv2.pro ++++ b/src/src_lv2.pro +@@ -59,7 +59,7 @@ unix { + + QMAKE_CLEAN += $${TARGET_LV2}.so + +- LIBS += -l$${NAME} -Wl,-rpath,$${LIBDIR} ++ LIBS += -l$${NAME} + } + + QT -= gui +diff --git a/src/src_lv2ui.pro b/src/src_lv2ui.pro +index 50f5798..7b0bad4 100644 +--- a/src/src_lv2ui.pro ++++ b/src/src_lv2ui.pro +@@ -59,7 +59,7 @@ unix { + + QMAKE_CLEAN += $${TARGET_LV2UI}.so + +- LIBS += -l$${NAME} -l$${NAME}_ui -L$${NAME}.lv2 -Wl,-rpath,$${LIBDIR}:$${LV2DIR}/$${NAME}.lv2 ++ LIBS += -l$${NAME} -l$${NAME}_ui -L$${NAME}.lv2 + } + + QT += widgets xml +diff --git a/src/src_ui.pro b/src/src_ui.pro +index 081e3af..132d5b4 100644 +--- a/src/src_ui.pro ++++ b/src/src_ui.pro +@@ -69,7 +69,7 @@ unix { + + target.path = $${LIBDIR} + +- LIBS += -l$${NAME} -Wl,-rpath,$${LIBDIR} ++ LIBS += -l$${NAME} + } + + QT += widgets xml diff --git a/recipes-musicians/rncbc/padthv1/0001-Build-against-fftw3f-that-supports-NEON-on-ARM.patch b/recipes-musicians/rncbc/padthv1/0001-Build-against-fftw3f-that-supports-NEON-on-ARM.patch new file mode 100644 index 0000000..e398329 --- /dev/null +++ b/recipes-musicians/rncbc/padthv1/0001-Build-against-fftw3f-that-supports-NEON-on-ARM.patch @@ -0,0 +1,81 @@ +From 1392b3db4d56e9c26d8e3cf4137c9cc1dd33a3cc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 22 Aug 2017 23:25:24 +0200 +Subject: [PATCH] Build against fftw3f - that supports NEON on ARM +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross-specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 2 +- + src/padthv1_sample.cpp | 8 ++++---- + src/padthv1_sample.h | 4 ++-- + 3 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/configure.ac b/configure.ac +index e0204d8..e799555 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -361,7 +361,7 @@ AC_CHECK_LIB(Xext, main) + ac_cflags="-ffast-math $ac_cflags" + + # Check for core FFTW3 library. +-PKG_CHECK_MODULES([FFTW3], [fftw3], [ac_fftw3="yes"], [ac_fftw3="no"]) ++PKG_CHECK_MODULES([FFTW3], [fftw3f], [ac_fftw3="yes"], [ac_fftw3="no"]) + if test "x$ac_fftw3" = "xyes"; then + AC_DEFINE(CONFIG_FFTW3, 1, [Define if FFTW3 library is available.]) + ac_cflags="$ac_cflags $FFTW3_CFLAGS" +diff --git a/src/padthv1_sample.cpp b/src/padthv1_sample.cpp +index 67597a5..9630840 100644 +--- a/src/padthv1_sample.cpp ++++ b/src/padthv1_sample.cpp +@@ -111,8 +111,8 @@ padthv1_sample::padthv1_sample ( padthv1 *pSynth, int sid, uint32_t nsize ) + m_freq_cos = new float [nsize2]; + + // data plan +- m_fftw_data = new double [m_nsize]; +- m_fftw_plan = ::fftw_plan_r2r_1d( ++ m_fftw_data = new float [m_nsize]; ++ m_fftw_plan = ::fftwf_plan_r2r_1d( + m_nsize, m_fftw_data, m_fftw_data, FFTW_HC2R, FFTW_ESTIMATE); + + m_sample_sched = new padthv1_sample_sched(pSynth, this); +@@ -128,7 +128,7 @@ padthv1_sample::~padthv1_sample (void) + + delete m_sample_sched; + +- ::fftw_destroy_plan(m_fftw_plan); ++ ::fftwf_destroy_plan(m_fftw_plan); + + delete [] m_fftw_data; + +@@ -384,7 +384,7 @@ void padthv1_sample::reset_table (void) + m_fftw_data[m_nsize - i] = m_freq_sin[i]; + } + +- ::fftw_execute(m_fftw_plan); ++ ::fftwf_execute(m_fftw_plan); + + for (i = 0; i < m_nsize; ++i) + m_table[i] = m_fftw_data[i]; +diff --git a/src/padthv1_sample.h b/src/padthv1_sample.h +index cb5d8f3..1d3cabf 100644 +--- a/src/padthv1_sample.h ++++ b/src/padthv1_sample.h +@@ -194,8 +194,8 @@ private: + float *m_freq_amp; + float *m_freq_sin; + float *m_freq_cos; +- double *m_fftw_data; +- fftw_plan m_fftw_plan; ++ float *m_fftw_data; ++ fftwf_plan m_fftw_plan; + + uint32_t m_srand; + +-- +2.9.4 + diff --git a/recipes-musicians/rncbc/padthv1/padthv1.conf b/recipes-musicians/rncbc/padthv1/padthv1.conf new file mode 100644 index 0000000..6b0e499 --- /dev/null +++ b/recipes-musicians/rncbc/padthv1/padthv1.conf @@ -0,0 +1,64 @@ +[Presets] +AmbientStarter=/usr/share/padthv1/presets/AmbientStarter.padthv1 +BadSyntax1=/usr/share/padthv1/presets/BadSyntax1.padthv1 +BadSyntax2=/usr/share/padthv1/presets/BadSyntax2.padthv1 +BellKeys01=/usr/share/padthv1/presets/BellKeys01.padthv1 +BellKeys02=/usr/share/padthv1/presets/BellKeys02.padthv1 +BellKeys03=/usr/share/padthv1/presets/BellKeys03.padthv1 +BlackBells=/usr/share/padthv1/presets/BlackBells.padthv1 +Castle=/usr/share/padthv1/presets/Castle.padthv1 +Choir1=/usr/share/padthv1/presets/Choir1.padthv1 +ChristmasCheer=/usr/share/padthv1/presets/ChristmasCheer.padthv1 +DareTo01=/usr/share/padthv1/presets/DareTo01.padthv1 +DayBright01=/usr/share/padthv1/presets/DayBright01.padthv1 +DayBright02=/usr/share/padthv1/presets/DayBright02.padthv1 +DexKeys01=/usr/share/padthv1/presets/DexKeys01.padthv1 +DexKeys02=/usr/share/padthv1/presets/DexKeys02.padthv1 +Dusk=/usr/share/padthv1/presets/Dusk.padthv1 +Dusk2=/usr/share/padthv1/presets/Dusk2.padthv1 +Dusk3=/usr/share/padthv1/presets/Dusk3.padthv1 +Dusk4=/usr/share/padthv1/presets/Dusk4.padthv1 +Dusk5=/usr/share/padthv1/presets/Dusk5.padthv1 +Dusk6=/usr/share/padthv1/presets/Dusk6.padthv1 +FireOrRain=/usr/share/padthv1/presets/FireOrRain.padthv1 +Floot=/usr/share/padthv1/presets/Floot.padthv1 +GettinRezd=/usr/share/padthv1/presets/GettinRezd.padthv1 +GettinRezd2=/usr/share/padthv1/presets/GettinRezd2.padthv1 +GettinRezd3=/usr/share/padthv1/presets/GettinRezd3.padthv1 +GlassyChorused=/usr/share/padthv1/presets/GlassyChorused.padthv1 +GlassyChorused2=/usr/share/padthv1/presets/GlassyChorused2.padthv1 +Haze01=/usr/share/padthv1/presets/Haze01.padthv1 +HolidaySeason01=/usr/share/padthv1/presets/HolidaySeason01.padthv1 +KidKeys01=/usr/share/padthv1/presets/KidKeys01.padthv1 +KidKeys02=/usr/share/padthv1/presets/KidKeys02.padthv1 +MonoLove1=/usr/share/padthv1/presets/MonoLove1.padthv1 +MonoLove2=/usr/share/padthv1/presets/MonoLove2.padthv1 +MonoLove3=/usr/share/padthv1/presets/MonoLove3.padthv1 +Moteef1=/usr/share/padthv1/presets/Moteef1.padthv1 +Moteef1Mod=/usr/share/padthv1/presets/Moteef1Mod.padthv1 +Moteef2=/usr/share/padthv1/presets/Moteef2.padthv1 +Moteef3=/usr/share/padthv1/presets/Moteef3.padthv1 +Moteef4=/usr/share/padthv1/presets/Moteef4.padthv1 +OrganSpecial=/usr/share/padthv1/presets/OrganSpecial.padthv1 +OrganSpecial2=/usr/share/padthv1/presets/OrganSpecial2.padthv1 +OrganSpecial3=/usr/share/padthv1/presets/OrganSpecial3.padthv1 +PdKey05=/usr/share/padthv1/presets/PdKey05.padthv1 +PdKey1=/usr/share/padthv1/presets/PdKey1.padthv1 +PdKey2=/usr/share/padthv1/presets/PdKey2.padthv1 +PdKey3=/usr/share/padthv1/presets/PdKey3.padthv1 +PdKey4=/usr/share/padthv1/presets/PdKey4.padthv1 +PitchUp=/usr/share/padthv1/presets/PitchUp.padthv1 +RippedChoir=/usr/share/padthv1/presets/RippedChoir.padthv1 +SlitherBells=/usr/share/padthv1/presets/SlitherBells.padthv1 +Snarl=/usr/share/padthv1/presets/Snarl.padthv1 +SpaceLandings01=/usr/share/padthv1/presets/SpaceLandings01.padthv1 +Starter00=/usr/share/padthv1/presets/Starter00.padthv1 +Starter01=/usr/share/padthv1/presets/Starter01.padthv1 +Starter02=/usr/share/padthv1/presets/Starter02.padthv1 +Steve=/usr/share/padthv1/presets/Steve.padthv1 +TapeStrings=/usr/share/padthv1/presets/TapeStrings.padthv1 +TapeStrings2=/usr/share/padthv1/presets/TapeStrings2.padthv1 +TribalKeys01=/usr/share/padthv1/presets/TribalKeys01.padthv1 +UnsureDream=/usr/share/padthv1/presets/UnsureDream.padthv1 +WiredChorus=/usr/share/padthv1/presets/WiredChorus.padthv1 +WiredChorus2=/usr/share/padthv1/presets/WiredChorus2.padthv1 diff --git a/recipes-musicians/rncbc/padthv1_0.9.5.bb b/recipes-musicians/rncbc/padthv1_0.9.5.bb new file mode 100644 index 0000000..ff63dd4 --- /dev/null +++ b/recipes-musicians/rncbc/padthv1_0.9.5.bb @@ -0,0 +1,65 @@ +SUMMARY = "An old-school polyphonic additive synthesizer" +HOMEPAGE = "http://padthv1.sourceforge.net/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS += " \ + qtbase-native \ + qtbase \ + jack \ + lv2 \ + liblo \ + fftw \ +" + +inherit qmake5_base autotools-brokensep pkgconfig gtk-icon-cache mime + +# fftwf is neon accelerated -> force SINGLE precision +FFTWSINGLEPATCH = "${@bb.utils.contains('TUNE_FEATURES', 'neon', 'file://0001-Build-against-fftw3f-that-supports-NEON-on-ARM.patch', '', d)}" + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + http://linuxsynths.com/Padthv1PatchesDemos/Padthv1Patches.tar.gz;name=linuxsynths-padthv1-presets;subdir=linuxsynths-padthv1-presets \ + file://0001-no-Qt4-find-native-qt-build-tools-by-configure-options-auto.patch \ + \ + ${FFTWSINGLEPATCH} \ + file://0002-Remove-extra-rpath.patch \ + file://padthv1.conf \ +" +SRC_URI[md5sum] = "aaaf3dc7fdeac004b04b6232f24eec8d" +SRC_URI[sha256sum] = "70c11342c473e230d2df19be4f5e6fcd475af45eda7189fed2d9593f9693a131" + +SRC_URI[linuxsynths-padthv1-presets.md5sum] = "951484ad2fe404d233a704d444147827" +SRC_URI[linuxsynths-padthv1-presets.sha256sum] = "ad9eadc707784b6931955b1fc63308b9e5dc59d24903e6405e9d34d30794fd0b" + +EXTRA_OECONF = " \ + --with-qmake=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake \ + --with-moc=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc \ + --with-uic=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic \ + --with-lupdate=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate \ + --with-lrelease=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease \ +" + +do_install_append() { + install -d ${D}/${datadir}/${BPN} + install -d ${D}/${datadir}/${BPN}/presets + cp ${WORKDIR}/linuxsynths-padthv1-presets/*.padthv1 ${D}/${datadir}/${BPN}/presets + + install -d ${D}/${sysconfdir}/skel/.config/rncbc.org + install -m 0644 ${WORKDIR}/${BPN}.conf ${D}/${sysconfdir}/skel/.config/rncbc.org/ +} + +PACKAGES =+ "${PN}-presets" + +FILES_${PN} += " \ + ${datadir}/appdata \ + ${datadir}/mime \ + ${datadir}/metainfo \ + ${datadir}/icons \ + ${libdir}/lv2 \ +" + +FILES_${PN}-presets += " \ + ${sysconfdir}/skel/.config/rncbc.org \ + ${datadir}/${BPN}/presets/ \ +" diff --git a/recipes-musicians/rncbc/qjackctl/QjackCtl.conf b/recipes-musicians/rncbc/qjackctl/QjackCtl.conf new file mode 100644 index 0000000..d2dfb0e --- /dev/null +++ b/recipes-musicians/rncbc/qjackctl/QjackCtl.conf @@ -0,0 +1,10 @@ +[Options] +PostStartupScript=false +PostStartupScriptShell=a2jmidid -e & +QueryClose=false + +[Settings] +Frames=128 +PortMax=128 +Priority=90 +Realtime=true diff --git a/recipes-musicians/rncbc/qjackctl_0.5.6.bb b/recipes-musicians/rncbc/qjackctl_0.5.6.bb new file mode 100644 index 0000000..a3f45f8 --- /dev/null +++ b/recipes-musicians/rncbc/qjackctl_0.5.6.bb @@ -0,0 +1,56 @@ +SUMMARY = "JACK Audio Connection Kit - Qt GUI Interface" +HOMEPAGE = "http://qjackctl.sourceforge.net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS += " \ + qtbase-native \ + qttools-native \ + qtbase \ + jack \ + qtx11extras \ + portaudio-v19 \ +" + +# autotools-brokensep must be after qmake5_base! +inherit qmake5_base autotools-brokensep gtk-icon-cache qt5-translation + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + file://0001-no-Qt4-find-native-qt-build-tools-by-configure-options-auto.patch \ + file://QjackCtl.conf \ +" +SRC_URI[md5sum] = "5cb4159ac37231dc592d61cb7e0411ea" +SRC_URI[sha256sum] = "b20aac64365aeac90beaf5d414c2125da48242945040c14ee6c3b153d35a9572" + +EXTRA_OECONF = " \ + --with-qmake=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake \ + --with-moc=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc \ + --with-uic=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic \ + --with-lupdate=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate \ + --with-lrelease=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease \ +" + +FILES_${PN} += " \ + ${datadir}/metainfo \ +" + +do_install_append() { + install -d ${D}/${sysconfdir}/skel/.config/rncbc.org + install -m 0644 ${WORKDIR}/QjackCtl.conf ${D}/${sysconfdir}/skel/.config/rncbc.org/ +} + +PACKAGES =+ "${PN}-defconfig" + +FILES_${PN}-defconfig = " \ + ${sysconfdir}/skel/.config/rncbc.org \ +" + +RDEPENDS_${PN} += " \ + jack-server \ +" + +RDEPENDS_${PN}-defconfig += " \ + a2jmidid \ + audio-tweaks \ +" diff --git a/recipes-musicians/rncbc/qmidictl/0001-find-native-qt-build-tools-by-configure-options-auto.patch b/recipes-musicians/rncbc/qmidictl/0001-find-native-qt-build-tools-by-configure-options-auto.patch new file mode 100644 index 0000000..65c5524 --- /dev/null +++ b/recipes-musicians/rncbc/qmidictl/0001-find-native-qt-build-tools-by-configure-options-auto.patch @@ -0,0 +1,118 @@ +From 42fa0e7e4ce43def9c34af83bfff22950f00b711 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 18 Jan 2018 00:42:33 +0100 +Subject: [PATCH] find native qt build tools by configure options - auto + detection does not work +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 55 +++++++++++++++---------------------------------------- + 1 file changed, 15 insertions(+), 40 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 60673c2..9f48fdd 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -180,36 +180,10 @@ done + # A common error message: + ac_errmsg="not found in current PATH. Maybe QT development environment isn't available." + +-# Check for proper qmake path/version alternatives. +-AC_PATH_TOOL(ac_qmake, qmake, [no], $ac_path) ++AC_ARG_WITH(qmake, ++ AC_HELP_STRING([--with-qmake=PATH], [use alternate qmake path]), ++ [ac_qmake="$withval"], [ac_qmake="no"]) + +-if test "x$ac_qmake" = "xno"; then +- if test "x$ac_qt4" = "xyes"; then +- AC_PATH_TOOL(ac_cv_qmake, qmake-qt4, [no], $ac_path) +- ac_qmake=$ac_cv_qmake +- else +- AC_PATH_TOOL(ac_cv_qmake, qmake-qt5, [no], $ac_path) +- ac_qmake=$ac_cv_qmake +- fi +-fi +- +-# Check for proper Qt major version. +-AC_CACHE_CHECK([for Qt major version], [ac_cv_qt_version_major], [ +- ac_cv_qt_version_major=$($ac_qmake -query QT_VERSION | cut -d'.' -f1) +- ac_cv_qt_version_major=$(($ac_cv_qt_version_major + 0)) +-]) +-ac_qt_version_major=$ac_cv_qt_version_major +-if test "x$ac_qt4" = "xyes"; then +- if test $ac_qt_version_major -ne 4; then +- AC_PATH_TOOL(ac_cv_qmake, qmake-qt4, [no], $ac_path) +- ac_qmake=$ac_cv_qmake +- fi +-else +- if test $ac_qt_version_major -ne 5; then +- AC_PATH_TOOL(ac_cv_qmake, qmake-qt5, [no], $ac_path) +- ac_qmake=$ac_cv_qmake +- fi +-fi + + if test "x$ac_qmake" = "xno"; then + if test "x$ac_qt4" = "xyes"; then +@@ -228,13 +202,6 @@ if test -d $ac_qt_install_path; then + ac_path="$ac_qt_install_path:$ac_path" + fi + +-# Check it again, now with updated PATH, just in case... +-AC_PATH_TOOL(ac_cv_qmake, qmake, [no], $ac_path) +-ac_qmake=$ac_cv_qmake +-if test "x$ac_qmake" = "xno"; then +- AC_MSG_ERROR([qmake $ac_errmsg]) +-fi +- + AC_SUBST(ac_qmake) + + AC_CACHE_CHECK([for Qt install headers], [ac_cv_qt_install_headers], [ +@@ -284,28 +251,36 @@ else + fi + + # Check for Qt moc utility. +-AC_PATH_TOOL(ac_moc, moc, [no], $ac_path) ++AC_ARG_WITH(moc, ++ AC_HELP_STRING([--with-moc=PATH], [use alternate moc path]), ++ [ac_moc="$withval"], [ac_moc="no"]) + if test "x$ac_moc" = "xno"; then + AC_MSG_ERROR([moc $ac_errmsg]) + fi + AC_SUBST(ac_moc) + + # Check for Qt uic utility. +-AC_PATH_TOOL(ac_uic, uic, [no], $ac_path) ++AC_ARG_WITH(uic, ++ AC_HELP_STRING([--with-uic=PATH], [use alternate uic path]), ++ [ac_uic="$withval"], [ac_uic="no"]) + if test "x$ac_uic" = "xno"; then + AC_MSG_ERROR([uic $ac_errmsg]) + fi + AC_SUBST(ac_uic) + + # Check for Qt lupdate utility. +-AC_PATH_TOOL(ac_lupdate, lupdate, [no], $ac_path) ++AC_ARG_WITH(lupdate, ++ AC_HELP_STRING([--with-lupdate=PATH], [use alternate lupdate path]), ++ [ac_lupdate="$withval"], [ac_lupdate="no"]) + if test "x$ac_lupdate" = "xno"; then + AC_MSG_ERROR([lupdate $ac_errmsg]) + fi + AC_SUBST(ac_lupdate) + + # Check for Qt lrelease utility. +-AC_PATH_TOOL(ac_lrelease, lrelease, [no], $ac_path) ++AC_ARG_WITH(lrelease, ++ AC_HELP_STRING([--with-lrelease=PATH], [use alternate lrelease path]), ++ [ac_lrelease="$withval"], [ac_lrelease="no"]) + if test "x$ac_release" = "xno"; then + AC_MSG_ERROR([lrelease $ac_errmsg]) + fi +-- +2.14.3 + diff --git a/recipes-musicians/rncbc/qmidictl_0.5.3.bb b/recipes-musicians/rncbc/qmidictl_0.5.3.bb new file mode 100644 index 0000000..6605e36 --- /dev/null +++ b/recipes-musicians/rncbc/qmidictl_0.5.3.bb @@ -0,0 +1,32 @@ +SUMMARY = "A MIDI Network Gateway via UDP/IP Multicast" +HOMEPAGE = "http://qmidinet.sourceforge.net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS += " \ + qtbase-native \ + qttools-native \ + qtbase \ +" + +# autotools-brokensep must be after qmake5_base! +inherit qmake5_base autotools-brokensep gtk-icon-cache qt5-translation + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + file://0001-no-Qt4-find-native-qt-build-tools-by-configure-options-auto.patch \ +" +SRC_URI[md5sum] = "c91cec2bf72278a390e3bd75ed149959" +SRC_URI[sha256sum] = "a42d7a2f3fc8090a4fa0a7696f532048071febac88d5ae5e10a0697cb1831551" + +EXTRA_OECONF = " \ + --with-qmake=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake \ + --with-moc=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc \ + --with-uic=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic \ + --with-lupdate=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate \ + --with-lrelease=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease \ +" + +FILES_${PN} += " \ + ${datadir}/metainfo \ +" diff --git a/recipes-musicians/rncbc/qmidinet/0001-find-native-qt-build-tools-by-configure-options-auto.patch b/recipes-musicians/rncbc/qmidinet/0001-find-native-qt-build-tools-by-configure-options-auto.patch new file mode 100644 index 0000000..3566411 --- /dev/null +++ b/recipes-musicians/rncbc/qmidinet/0001-find-native-qt-build-tools-by-configure-options-auto.patch @@ -0,0 +1,92 @@ +From 42fa0e7e4ce43def9c34af83bfff22950f00b711 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 12 Mar 2019 23:03:13 +0100 +Subject: [PATCH] find native qt build tools by configure options - auto + detection does not work + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 40 +++++++++++++++------------------------- + 1 file changed, 15 insertions(+), 25 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f7d88bd..b5e0b5d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -176,27 +176,9 @@ done + # A common error message: + ac_errmsg="not found in current PATH. Maybe QT development environment isn't available." + +-# Check for proper qmake path/version alternatives. +-AC_PATH_TOOL(ac_qmake, qmake, [no], $ac_path) +-if test "x$ac_qmake" = "xno"; then +- AC_PATH_TOOL(ac_cv_qmake, qmake-qt5, [no], $ac_path) +- ac_qmake=$ac_cv_qmake +-fi +- +-# Check for proper Qt major version. +-AC_CACHE_CHECK([for Qt major version], [ac_cv_qt_version_major], [ +- ac_cv_qt_version_major=$($ac_qmake -query QT_VERSION | cut -d'.' -f1) +- ac_cv_qt_version_major=$(($ac_cv_qt_version_major + 0)) +-]) +-ac_qt_version_major=$ac_cv_qt_version_major +-if test $ac_qt_version_major -ne 5; then +- AC_PATH_TOOL(ac_cv_qmake, qmake-qt5, [no], $ac_path) +- ac_qmake=$ac_cv_qmake +-fi +- +-if test "x$ac_qmake" = "xno"; then +- AC_MSG_ERROR([qmake-qt5 $ac_errmsg (qt5-devel)]) +-fi ++AC_ARG_WITH(qmake, ++ AC_HELP_STRING([--with-qmake=PATH], [use alternate qmake path]), ++ [ac_qmake="$withval"], [ac_qmake="no"]) + + # Check for proper Qt install path. + AC_CACHE_CHECK([for Qt install path], [ac_cv_qt_install_path], [ +@@ -249,28 +231,36 @@ AC_CACHE_CHECK([for Qt library version >= 5.1], + ]) + + # Check for Qt moc utility. +-AC_PATH_TOOL(ac_moc, moc, [no], $ac_path) ++AC_ARG_WITH(moc, ++ AC_HELP_STRING([--with-moc=PATH], [use alternate moc path]), ++ [ac_moc="$withval"], [ac_moc="no"]) + if test "x$ac_moc" = "xno"; then + AC_MSG_ERROR([moc $ac_errmsg]) + fi + AC_SUBST(ac_moc) + + # Check for Qt uic utility. +-AC_PATH_TOOL(ac_uic, uic, [no], $ac_path) ++AC_ARG_WITH(uic, ++ AC_HELP_STRING([--with-uic=PATH], [use alternate uic path]), ++ [ac_uic="$withval"], [ac_uic="no"]) + if test "x$ac_uic" = "xno"; then + AC_MSG_ERROR([uic $ac_errmsg]) + fi + AC_SUBST(ac_uic) + + # Check for Qt lupdate utility. +-AC_PATH_TOOL(ac_lupdate, lupdate, [no], $ac_path) ++AC_ARG_WITH(lupdate, ++ AC_HELP_STRING([--with-lupdate=PATH], [use alternate lupdate path]), ++ [ac_lupdate="$withval"], [ac_lupdate="no"]) + if test "x$ac_lupdate" = "xno"; then + AC_MSG_ERROR([lupdate $ac_errmsg]) + fi + AC_SUBST(ac_lupdate) + + # Check for Qt lrelease utility. +-AC_PATH_TOOL(ac_lrelease, lrelease, [no], $ac_path) ++AC_ARG_WITH(lrelease, ++ AC_HELP_STRING([--with-lrelease=PATH], [use alternate lrelease path]), ++ [ac_lrelease="$withval"], [ac_lrelease="no"]) + if test "x$ac_release" = "xno"; then + AC_MSG_ERROR([lrelease $ac_errmsg]) + fi +-- +2.20.1 + diff --git a/recipes-musicians/rncbc/qmidinet_0.5.3.bb b/recipes-musicians/rncbc/qmidinet_0.5.3.bb new file mode 100644 index 0000000..380fb80 --- /dev/null +++ b/recipes-musicians/rncbc/qmidinet_0.5.3.bb @@ -0,0 +1,35 @@ +SUMMARY = "JA MIDI Remote Controller via UDP/IP Multicast" +HOMEPAGE = "http://qmidictl.sourceforge.net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS += " \ + qtbase-native \ + qttools-native \ + qtbase \ + jack \ +" + +# autotools-brokensep must be after qmake5_base! +inherit qmake5_base autotools-brokensep gtk-icon-cache qt5-translation + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + file://0001-find-native-qt-build-tools-by-configure-options-auto.patch \ +" +SRC_URI[md5sum] = "16c8ead283aec2002422036ef7dfd374" +SRC_URI[sha256sum] = "205817e7e89ea8ab229813fcaaa7769a6a4fbb77d98b20cfff1755abc28f2652" + +EXTRA_OECONF = " \ + --with-qmake=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake \ + --with-moc=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc \ + --with-uic=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic \ + --with-lupdate=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate \ + --with-lrelease=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease \ +" + +FILES_${PN} += " \ + ${datadir}/metainfo \ +" + +RDEPENDS_${PN} += "jack-server" diff --git a/recipes-musicians/rncbc/qsynth_0.5.5.bb b/recipes-musicians/rncbc/qsynth_0.5.5.bb new file mode 100644 index 0000000..2acf0b1 --- /dev/null +++ b/recipes-musicians/rncbc/qsynth_0.5.5.bb @@ -0,0 +1,33 @@ +SUMMARY = "Qt GUI Interface for FluidSynth" +HOMEPAGE = "https://qsynth.sourceforge.io/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS += " \ + qtbase-native \ + qttools-native \ + qtbase \ + qtx11extras \ + fluidsynth \ +" + +inherit qmake5_base autotools-brokensep pkgconfig gtk-icon-cache distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + file://0001-no-Qt4-find-native-qt-build-tools-by-configure-options-auto.patch \ +" +SRC_URI[md5sum] = "c5f090b69d101ba912e86b31e2d79c19" +SRC_URI[sha256sum] = "858f52b95642a25f570342d5cf7fafd2a2addb89d567c5b68a3545beb6fda723" + +EXTRA_OECONF = " \ + --with-qmake=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake \ + --with-moc=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc \ + --with-uic=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic \ + --with-lupdate=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate \ + --with-lrelease=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease \ +" + +FILES_${PN} += "${datadir}/metainfo" diff --git a/recipes-musicians/rncbc/qtractor/0001-do-nor-try-run-for-float-sse-detection.patch b/recipes-musicians/rncbc/qtractor/0001-do-nor-try-run-for-float-sse-detection.patch new file mode 100644 index 0000000..9a7f5bf --- /dev/null +++ b/recipes-musicians/rncbc/qtractor/0001-do-nor-try-run-for-float-sse-detection.patch @@ -0,0 +1,58 @@ +From 6fa680366dcfb6aa5e9121ed0759a81f9d6f6393 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 27 Nov 2016 21:52:14 +0100 +Subject: [PATCH] do nor try run for float / sse detection +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas Müller +--- + configure.ac | 19 +++---------------- + 1 file changed, 3 insertions(+), 16 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 99b3e5a..35416ff 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -564,14 +564,7 @@ fi + AC_SUBST(ac_lrelease) + + +-# Check for IEEE 32bit float optimizations. +-AC_CACHE_CHECK([for IEEE 32bit float optimizations], +- ac_cv_float32, [ +- AC_TRY_RUN([ +- int main() { return (sizeof(float) == 4 ? 0 : 1); } +- ], ac_cv_float32="yes", ac_cv_float32="no") +-]) +-ac_float32=$ac_cv_float32 ++ac_float32=yes + if test "x$ac_float32" = "xyes"; then + AC_DEFINE(CONFIG_FLOAT32, 1, [Define if IEEE 32bit float optimizations are enabled.]) + fi +@@ -585,19 +578,13 @@ if test "x$ac_sse" = "xyes"; then + CPPFLAGS="$ac_sse_cflags $CPPFLAGS" + AC_CACHE_CHECK([for SSE optimization], + ac_cv_sse, [ +- AC_TRY_RUN([ ++ AC_TRY_COMPILE([ + #include + #if !defined(__SSE__) + #error SSE optimization disabled. + #endif + int main() { +- unsigned int a, b, c, d; +- __asm__ __volatile__ ( +- "movl %%ebx, %%esi\n\t" \ +- "cpuid\n\t" \ +- "xchgl %%ebx, %%esi" \ +- : "=a" (a), "=S" (b), "=c" (c), "=d" (d) : "0" (1)); +- return ((d & (1 << 25)) ? 0 : 1); ++ return 0; + } + ], ac_cv_sse="yes", ac_cv_sse="no") + ]) +-- +2.5.5 + diff --git a/recipes-musicians/rncbc/qtractor/0002-do-nor-try-run-for-suil-libs-detection.patch b/recipes-musicians/rncbc/qtractor/0002-do-nor-try-run-for-suil-libs-detection.patch new file mode 100644 index 0000000..7f7ecd0 --- /dev/null +++ b/recipes-musicians/rncbc/qtractor/0002-do-nor-try-run-for-suil-libs-detection.patch @@ -0,0 +1,55 @@ +From a32a7af99c5f241a08840ce0775c9aaa0c37a792 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 19 Jan 2019 18:55:17 +0100 +Subject: [PATCH] do nor try run for suil libs feature detection + +Signed-off-by: Andreas Müller +--- + configure.ac | 24 ++---------------------- + 1 file changed, 2 insertions(+), 22 deletions(-) + +diff --git a/configure.ac b/configure.ac +index b3de5acd..09d2ef06 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1229,17 +1229,7 @@ if test "x$ac_lv2_ui_show" = "xyes"; then + fi + + if test "x$ac_suil" = "xyes"; then +- AC_CACHE_CHECK([for LV2 UI GTK2 support (libsuil_gtk2_in_qt5)], +- ac_cv_suil_gtk2_in_qt5, [ +- AC_TRY_RUN([ +- #include +- #include "lv2/lv2plug.in/ns/extensions/ui/ui.h" +- #ifndef LV2_UI__Qt5UI +- #define LV2_UI__Qt5UI LV2_UI_PREFIX "Qt5UI" +- #endif +- int main() { return !suil_ui_supported(LV2_UI__Qt5UI, LV2_UI__GtkUI); } +- ], ac_cv_suil_gtk2_in_qt5="yes", ac_cv_suil_gtk2_in_qt5="no") +- ]) ++ ac_cv_suil_gtk2_in_qt5="yes" + if test "x$ac_cv_suil_gtk2_in_qt5" = "xyes"; then + AC_DEFINE(CONFIG_LIBSUIL_GTK2_IN_QT5, 1, [Define if libsuil_gtk2_in_qt5 is available.]) + # ac_lv2_ui_gtk2="no" +@@ -1257,17 +1247,7 @@ else + fi + + if test "x$ac_suil" = "xyes"; then +- AC_CACHE_CHECK([for LV2 UI X11 support (libsuil_x11_in_qt5)], +- ac_cv_suil_x11_in_qt5, [ +- AC_TRY_RUN([ +- #include +- #include "lv2/lv2plug.in/ns/extensions/ui/ui.h" +- #ifndef LV2_UI__Qt5UI +- #define LV2_UI__Qt5UI LV2_UI_PREFIX "Qt5UI" +- #endif +- int main() { return !suil_ui_supported(LV2_UI__Qt5UI, LV2_UI__X11UI); } +- ], ac_cv_suil_x11_in_qt5="yes", ac_cv_suil_x11_in_qt5="no") +- ]) ++ ac_cv_suil_x11_in_qt5="yes" + if test "x$ac_cv_suil_x11_in_qt5" = "xyes"; then + AC_DEFINE(CONFIG_LIBSUIL_X11_IN_QT5, 1, [Define if libsuil_x11_in_qt5 is available.]) + # ac_lv2_ui_x11="no" +-- +2.20.1 + diff --git a/recipes-musicians/rncbc/qtractor/0003-Add-ARM-NEON-acceleration-for-time-stretch-not-yet-t.patch b/recipes-musicians/rncbc/qtractor/0003-Add-ARM-NEON-acceleration-for-time-stretch-not-yet-t.patch new file mode 100644 index 0000000..5bbbf42 --- /dev/null +++ b/recipes-musicians/rncbc/qtractor/0003-Add-ARM-NEON-acceleration-for-time-stretch-not-yet-t.patch @@ -0,0 +1,92 @@ +From e96d295e0d6b36b9b722ad3d4c0b2013e569e9d5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 8 Dec 2018 22:34:14 +0100 +Subject: [PATCH] Add ARM NEON acceleration for time stretch - not yet tested +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas Müller +--- + src/qtractorWsolaTimeStretcher.cpp | 58 +++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 58 insertions(+) + +diff --git a/src/qtractorWsolaTimeStretcher.cpp b/src/qtractorWsolaTimeStretcher.cpp +index 751b9bc8..6461b8b9 100644 +--- a/src/qtractorWsolaTimeStretcher.cpp ++++ b/src/qtractorWsolaTimeStretcher.cpp +@@ -121,6 +121,60 @@ static inline float sse_cross_corr ( + + #endif + ++#if defined(__ARM_NEON__) ++#include "arm_neon.h" ++ ++// NEON enabled version. ++static inline float neon_cross_corr ( ++ const float *pV1, const float *pV2, unsigned int iOverlapLength ) ++{ ++ float32x4_t vCorr, vNorm, vTemp; ++ ++ // See notes in sse_cross_corr ++ ++ // Ensure overlapLength is divisible by 8 ++ // assert((m_iOverlapLength % 8) == 0); ++ iOverlapLength >>= 4; ++ ++ // Calculates the cross-correlation value between 'pV1' and 'pV2' vectors ++ vCorr = vdupq_n_f32(0.0); ++ vNorm = vdupq_n_f32(0.0); ++ ++ // Unroll the loop by factor of 4 * 4 operations ++ for (unsigned int i = 0; i < iOverlapLength; ++i) { ++ // vCorr += pV1[0..3] * pV2[0..3] ++ vTemp = vld1q_f32(pV1); ++ vCorr = vmlaq_f32(vCorr, vTemp, vld1q_f32(pV2)); ++ vNorm = vmlaq_f32(vNorm, vTemp, vTemp); ++ // vCorr += pV1[4..7] * pV2[4..7] ++ vTemp = vld1q_f32(pV1 + 4); ++ vCorr = vmlaq_f32(vCorr, vTemp, vld1q_f32(pV2 + 4)); ++ vNorm = vmlaq_f32(vNorm, vTemp, vTemp); ++ // vCorr += pV1[8..11] * pV2[8..11] ++ vTemp = vld1q_f32(pV1 + 8); ++ vCorr = vmlaq_f32(vCorr, vTemp, vld1q_f32(pV2 + 8)); ++ vNorm = vmlaq_f32(vNorm, vTemp, vTemp); ++ // vCorr += pV1[12..15] * pV2[12..15] ++ vTemp = vld1q_f32(pV1 + 12); ++ vCorr = vmlaq_f32(vCorr, vTemp, vld1q_f32(pV2 + 12)); ++ vNorm = vmlaq_f32(vNorm, vTemp, vTemp); ++ pV1 += 16; ++ pV2 += 16; ++ } ++ ++ float pvNorm[4]; ++ vst1q_f32(pvNorm, vNorm); ++ float fNorm = (pvNorm[0] + pvNorm[1] + pvNorm[2] + pvNorm[3]); ++ ++ if (fNorm < 1e-9f) fNorm = 1.0f; // avoid div by zero ++ ++ float pvCorr[4]; ++ vst1q_f32(pvCorr, vCorr); ++ return (pvCorr[0] + pvCorr[1] + pvCorr[2] + pvCorr[3]) / ::sqrtf(fNorm); ++} ++ ++#endif ++ + + // Standard (slow) version. + static inline float std_cross_corr ( +@@ -166,6 +220,10 @@ qtractorTimeStretch::qtractorTimeStretch ( + if (sse_enabled()) + m_pfnCrossCorr = sse_cross_corr; + else ++#endif ++#if defined(__ARM_NEON__) ++ m_pfnCrossCorr = neon_cross_corr; ++ if(false) + #endif + m_pfnCrossCorr = std_cross_corr; + +-- +2.14.3 + diff --git a/recipes-musicians/rncbc/qtractor/Qtractor.conf b/recipes-musicians/rncbc/qtractor/Qtractor.conf new file mode 100644 index 0000000..b800ac4 --- /dev/null +++ b/recipes-musicians/rncbc/qtractor/Qtractor.conf @@ -0,0 +1,26 @@ +[AutoSave] +Enabled=false + +[Default] +AutoDeactivate=true +AutoMonitor=true + +[MidiEditor] +View\TransportToolbar=true +View\Follow=true + +[Options] +Midi\ImportDrumBank=128 +Midi\ImportDrumInst=FluidSynth DSSI plugin +Midi\ImportInstBank=0 +Midi\ImportInstInst=FluidSynth DSSI plugin +Midi\ImportPlugins="\n/usr/lib/dssi/fluidsynth-dssi.so0-11/usr/share/sf2/fluidr3gm.sf20,00,001" +Midi\ImportTrackName=2 + +[Preferences] +Custom\ColorTheme=Wonton Soup +Mixer\AutoGridLayout=true + +[Tracks] +TrackListMeters=false + diff --git a/recipes-musicians/rncbc/qtractor_git.bb b/recipes-musicians/rncbc/qtractor_git.bb new file mode 100644 index 0000000..8a9a464 --- /dev/null +++ b/recipes-musicians/rncbc/qtractor_git.bb @@ -0,0 +1,58 @@ +SUMMARY = "An Audio/MIDI multi-track sequencer" +HOMEPAGE = "http://qtractor.sourceforge.net/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS += " \ + qttools-native \ + qtbase \ + qtx11extras \ + jack \ + lilv \ + libmad \ + rubberband \ + dssi \ + suil \ +" + +inherit qmake5_base autotools-brokensep pkgconfig gtk-icon-cache mime qt5-translation + +SRC_URI = " \ + git://github.com/rncbc//qtractor.git;branch=midiimportx \ + file://0001-no-Qt4-find-native-qt-build-tools-by-configure-options-auto.patch \ + \ + file://0001-do-nor-try-run-for-float-sse-detection.patch \ + file://0002-do-nor-try-run-for-suil-libs-detection.patch \ + file://0003-Add-ARM-NEON-acceleration-for-time-stretch-not-yet-t.patch \ + \ + file://Qtractor.conf \ +" +SRCREV = "ebea558d470b6fc917843abcd46de117825f5469" +PV = "0.9.5+git${SRCPV}" +S = "${WORKDIR}/git" + +EXTRA_OECONF = " \ + --with-qmake=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake \ + --with-moc=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc \ + --with-uic=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic \ + --with-lupdate=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate \ + --with-lrelease=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease \ +" + +do_install_append() { + install -d ${D}/${sysconfdir}/skel/.config/rncbc.org + install -m 0644 ${WORKDIR}/Qtractor.conf ${D}/${sysconfdir}/skel/.config/rncbc.org/ +} + +PACKAGES =+ "${PN}-defconfig" + +FILES_${PN} += " \ + ${datadir}/mime \ + ${datadir}/metainfo \ +" + +FILES_${PN}-defconfig = " \ + ${sysconfdir}/skel/.config/rncbc.org \ +" + +RDEPENDS_${PN}-defconfig = "${PN} fluidsynth-dssi" diff --git a/recipes-musicians/rncbc/samplv1_0.9.5.bb b/recipes-musicians/rncbc/samplv1_0.9.5.bb new file mode 100644 index 0000000..7eec753 --- /dev/null +++ b/recipes-musicians/rncbc/samplv1_0.9.5.bb @@ -0,0 +1,38 @@ +SUMMARY = "An old-school polyphonic sampler" +HOMEPAGE = "http://samplv1.sourceforge.net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS += " \ + qtbase-native \ + qtbase \ + jack \ + lv2 \ + liblo \ +" + +inherit qmake5_base autotools-brokensep pkgconfig gtk-icon-cache mime + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + file://0001-no-Qt4-find-native-qt-build-tools-by-configure-options-auto.patch \ + file://0002-Remove-extra-rpath.patch \ +" +SRC_URI[md5sum] = "d66714b40940804274b6ce4aceab87b3" +SRC_URI[sha256sum] = "68f73f7315af7c9175a3600dd5000c8de118f9fa529d4a060f427d4372cb0210" + +EXTRA_OECONF = " \ + --with-qmake=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake \ + --with-moc=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc \ + --with-uic=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic \ + --with-lupdate=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate \ + --with-lrelease=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease \ +" + +FILES_${PN} += " \ + ${datadir}/appdata \ + ${datadir}/mime \ + ${datadir}/metainfo \ + ${datadir}/icons \ + ${libdir}/lv2 \ +" diff --git a/recipes-musicians/rncbc/synthv1/synthv1.conf b/recipes-musicians/rncbc/synthv1/synthv1.conf new file mode 100644 index 0000000..be2a08e --- /dev/null +++ b/recipes-musicians/rncbc/synthv1/synthv1.conf @@ -0,0 +1,40 @@ +[Presets] +Basketball=/usr/share/synthv1/presets/Basketball.synthv1 +BrassExcellence2=/usr/share/synthv1/presets/BrassExcellence2.synthv1 +Bubbler=/usr/share/synthv1/presets/Bubbler.synthv1 +Bubbler2=/usr/share/synthv1/presets/Bubbler2.synthv1 +Bubbler3=/usr/share/synthv1/presets/Bubbler3.synthv1 +Clarification=/usr/share/synthv1/presets/Clarification.synthv1 +CouncilOfRight=/usr/share/synthv1/presets/CouncilOfRight.synthv1 +Digitar=/usr/share/synthv1/presets/Digitar.synthv1 +DoubleStar=/usr/share/synthv1/presets/DoubleStar.synthv1 +DoubleStar2=/usr/share/synthv1/presets/DoubleStar2.synthv1 +EightiesDrift=/usr/share/synthv1/presets/EightiesDrift.synthv1 +EightiesMemories=/usr/share/synthv1/presets/EightiesMemories.synthv1 +ExFiles=/usr/share/synthv1/presets/ExFiles.synthv1 +ExFiles2=/usr/share/synthv1/presets/ExFiles2.synthv1 +IceBreaker=/usr/share/synthv1/presets/IceBreaker.synthv1 +IsItTerrific=/usr/share/synthv1/presets/IsItTerrific.synthv1 +IsItTerrific2=/usr/share/synthv1/presets/IsItTerrific2.synthv1 +Jumpy=/usr/share/synthv1/presets/Jumpy.synthv1 +KickBass=/usr/share/synthv1/presets/KickBass.synthv1 +Little%20Space%20Helicopter=/usr/share/synthv1/presets/Little Space Helicopter.synthv1 +MiddleGround=/usr/share/synthv1/presets/MiddleGround.synthv1 +NewBandMember=/usr/share/synthv1/presets/NewBandMember.synthv1 +NewBandMember2=/usr/share/synthv1/presets/NewBandMember2.synthv1 +Phased%20Jumpy=/usr/share/synthv1/presets/Phased Jumpy.synthv1 +ReClarification=/usr/share/synthv1/presets/ReClarification.synthv1 +ReClarification2=/usr/share/synthv1/presets/ReClarification2.synthv1 +RoundLeed=/usr/share/synthv1/presets/RoundLeed.synthv1 +Shark%20Attack=/usr/share/synthv1/presets/Shark Attack.synthv1 +SharpsiChord=/usr/share/synthv1/presets/SharpsiChord.synthv1 +SoftStar=/usr/share/synthv1/presets/SoftStar.synthv1 +Someone%20Hid%20My%20Rhodes=/usr/share/synthv1/presets/Someone Hid My Rhodes.synthv1 +Spacey%20Strings=/usr/share/synthv1/presets/Spacey Strings.synthv1 +StrainedLeed=/usr/share/synthv1/presets/StrainedLeed.synthv1 +Stringy%20Pad=/usr/share/synthv1/presets/Stringy Pad.synthv1 +Undeniable2=/usr/share/synthv1/presets/Undeniable2.synthv1 +Undeniable3=/usr/share/synthv1/presets/Undeniable3.synthv1 +Undeniable3Poly=/usr/share/synthv1/presets/Undeniable3Poly.synthv1 +Undeniable3Poly2=/usr/share/synthv1/presets/Undeniable3Poly2.synthv1 +WideStringSynth=/usr/share/synthv1/presets/WideStringSynth.synthv1 diff --git a/recipes-musicians/rncbc/synthv1_0.9.5.bb b/recipes-musicians/rncbc/synthv1_0.9.5.bb new file mode 100644 index 0000000..caaa246 --- /dev/null +++ b/recipes-musicians/rncbc/synthv1_0.9.5.bb @@ -0,0 +1,64 @@ +SUMMARY = "An old-school all-digital 4-oscillator subtractive polyphonic synthesizer" +HOMEPAGE = "http://synthv1.sourceforge.net/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS += " \ + qtbase-native \ + qtbase \ + jack \ + lv2 \ + liblo \ +" + +inherit qmake5_base autotools-brokensep pkgconfig gtk-icon-cache mime + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + ${SOURCEFORGE_MIRROR}/project/autostatic/autostatic-synthv1-presets/autostatic-synthv1-presets1.tar.gz;name=autostatic-synthv1-presets1 \ + http://linuxsynths.com/Synthv1PatchesDemos/Synthv1Patches06.tar.gz;name=linuxsynths-synthv1-presets;subdir=linuxsynths-synthv1-presets \ + file://0001-no-Qt4-find-native-qt-build-tools-by-configure-options-auto.patch \ + file://0002-Remove-extra-rpath.patch \ + \ + file://synthv1.conf \ +" +SRC_URI[md5sum] = "aa050d2fbe7c06c9393a2293214589f1" +SRC_URI[sha256sum] = "e1f92404f9fd67f455b8ff0dca919e891aada062a220381378acb2412b233cad" + +SRC_URI[autostatic-synthv1-presets1.md5sum] = "02210e5576310554cfe316fb72e88b74" +SRC_URI[autostatic-synthv1-presets1.sha256sum] = "587ac8cb4cb645fc71603d1b4b351b24f3e4d9f15a53aca59c0f30cc9f66e253" + +SRC_URI[linuxsynths-synthv1-presets.md5sum] = "88997ed87dd6adf929668751d11d91d2" +SRC_URI[linuxsynths-synthv1-presets.sha256sum] = "cd444ccecafa9c03b890b3662455e3c1f36e18cd8f2f9b5c269bf1e4eb6cfa72" + +EXTRA_OECONF = " \ + --with-qmake=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake \ + --with-moc=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc \ + --with-uic=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic \ + --with-lupdate=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate \ + --with-lrelease=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease \ +" + +do_install_append() { + install -d ${D}/${datadir}/${BPN}/presets + cp ${WORKDIR}/autostatic-synthv1-presets1/*.synthv1 ${D}/${datadir}/${BPN}/presets + cp ${WORKDIR}/linuxsynths-synthv1-presets/*.synthv1 ${D}/${datadir}/${BPN}/presets + + install -d ${D}/${sysconfdir}/skel/.config/rncbc.org + install -m 0644 ${WORKDIR}/${BPN}.conf ${D}/${sysconfdir}/skel/.config/rncbc.org/ +} + +PACKAGES =+ "${PN}-presets" + +FILES_${PN} += " \ + ${datadir}/appdata \ + ${datadir}/mime \ + ${datadir}/icons \ + ${datadir}/metainfo \ + ${libdir}/lv2 \ +" + +FILES_${PN}-presets += " \ + ${sysconfdir}/skel/.config/rncbc.org \ + ${datadir}/${BPN}/presets/ \ +" diff --git a/recipes-musicians/rosegarden/rosegarden_18.06.bb b/recipes-musicians/rosegarden/rosegarden_18.06.bb new file mode 100644 index 0000000..cd8df85 --- /dev/null +++ b/recipes-musicians/rosegarden/rosegarden_18.06.bb @@ -0,0 +1,30 @@ +SUMMARY = "Rosegarden is a music composition and editing environment" +HOMEPAGE = "http://www.rosegardenmusic.com/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b33ec9f109e9943af917779ba6ec522e" + +DEPENDS += " \ + qttools-native \ + qtbase \ + qtx11extras \ + virtual/libx11 \ + jack \ + dssi \ + zlib \ + lrdf \ +" + +inherit cmake_qt5 pkgconfig gtk-icon-cache distro_features_check mime + +REQUIRED_DISTRO_FEATURE = "x11" + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.bz2 \ +" +SRC_URI[md5sum] = "f996a0e2f1c2d650d980883bdb27363c" +SRC_URI[sha256sum] = "a777c852c8905df7efbadcebea7fa7300d8bf1865ed581af20518a8535400c13" + +FILES_${PN} += " \ + ${datadir}/mime \ + ${datadir}/metainfo \ +" diff --git a/recipes-musicians/rtmidi/files/0001-configure.ac-do-not-run-temp-binary-in-cross-envirno.patch b/recipes-musicians/rtmidi/files/0001-configure.ac-do-not-run-temp-binary-in-cross-envirno.patch new file mode 100644 index 0000000..ffa4f08 --- /dev/null +++ b/recipes-musicians/rtmidi/files/0001-configure.ac-do-not-run-temp-binary-in-cross-envirno.patch @@ -0,0 +1,39 @@ +From c25d1f794cdd478129ea01e525fbe87f623be9ed Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 7 Jan 2017 22:35:23 +0100 +Subject: [PATCH] configure.ac: do not run temp binary in cross envirnoment +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +it is more a developer check before packing new version + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 8 -------- + 1 file changed, 8 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 39b532c..f45ca0e 100755 +--- a/configure.ac ++++ b/configure.ac +@@ -28,14 +28,6 @@ m4_define([lt_current_minus_age], [m4_eval(lt_current - lt_age)]) + SO_VERSION=lt_version_info + AC_SUBST(SO_VERSION) + +-# Check version number coherency between RtMidi.h and configure.ac +-AC_MSG_CHECKING([that version numbers are coherent]) +-AC_RUN_IFELSE( +- [AC_LANG_PROGRAM([#include +- `grep "define RTMIDI_VERSION" $srcdir/RtMidi.h`], +- [return strcmp(RTMIDI_VERSION, PACKAGE_VERSION);])], +- [AC_MSG_RESULT([yes])], +- [AC_MSG_FAILURE([testing RTMIDI_VERSION==PACKAGE_VERSION failed, check that RtMidi.h defines RTMIDI_VERSION as "$PACKAGE_VERSION" or that the first line of configure.ac has been updated.])]) + + # Enable some nice automake features if they are available + m4_ifdef([AM_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) +-- +2.5.5 + diff --git a/recipes-musicians/rtmidi/files/0002-configure.ac-do-not-reset-CXXFLAGS.patch b/recipes-musicians/rtmidi/files/0002-configure.ac-do-not-reset-CXXFLAGS.patch new file mode 100644 index 0000000..fa3b4f6 --- /dev/null +++ b/recipes-musicians/rtmidi/files/0002-configure.ac-do-not-reset-CXXFLAGS.patch @@ -0,0 +1,31 @@ +From 3afd4de13c7019d7ad5ee63cb6557e18d52622ab Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 10 Aug 2018 15:52:36 +0200 +Subject: [PATCH] configure.ac: do not reset CXXFLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 3f4cb0a..5049632 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -77,7 +77,7 @@ CPPFLAGS="$CPPFLAGS $cppflag" + + # For debugging and optimization ... overwrite default because it has both -g and -O2 + #CXXFLAGS="$CXXFLAGS $cxxflag" +-CXXFLAGS="$cxxflag" ++#CXXFLAGS="$cxxflag" + + # Check compiler and use -Wall if gnu. + if [test $GXX = "yes" ;] then +-- +2.14.4 + diff --git a/recipes-musicians/rtmidi/files/0003-configure.ac-do-not-add-absolute-prefixes-to-build-f.patch b/recipes-musicians/rtmidi/files/0003-configure.ac-do-not-add-absolute-prefixes-to-build-f.patch new file mode 100644 index 0000000..dae79cf --- /dev/null +++ b/recipes-musicians/rtmidi/files/0003-configure.ac-do-not-add-absolute-prefixes-to-build-f.patch @@ -0,0 +1,35 @@ +From 5034424a8e11ea05f0149f038d981e667e838267 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 10 Aug 2018 16:00:27 +0200 +Subject: [PATCH] configure.ac: do not add absolute prefixes to build flags +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + configure.ac | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 5049632..3f7e183 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -66,12 +66,6 @@ AC_ARG_ENABLE(debug, + [AC_SUBST( cppflag, [-D__RTMIDI_DEBUG__] ) AC_SUBST( cxxflag, [-g] ) AC_SUBST( object_path, [Debug] ) AC_MSG_RESULT(yes)], + [AC_SUBST( cppflag, [] ) AC_SUBST( cxxflag, [-O3] ) AC_SUBST( object_path, [Release] ) AC_MSG_RESULT(no)]) + +-# Set paths if prefix is defined +-if test "x$prefix" != "x" && test "x$prefix" != "xNONE"; then +- LIBS="$LIBS -L$prefix/lib" +- CPPFLAGS="$CPPFLAGS -I$prefix/include/rtmidi" +-fi +- + # For -I and -D flags + CPPFLAGS="$CPPFLAGS $cppflag" + +-- +2.14.4 + diff --git a/recipes-musicians/rtmidi/rtmidi_3.0.0.bb b/recipes-musicians/rtmidi/rtmidi_3.0.0.bb new file mode 100644 index 0000000..55f72ff --- /dev/null +++ b/recipes-musicians/rtmidi/rtmidi_3.0.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "Real-time Midi I/O C++ Library" +HOMEPAGE = "http://www.music.mcgill.ca/~gary/rtmidi/index.html" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://README.md;beginline=36;endline=61;md5=59cd2daf27733a6f784821dada162c75" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "alsa jack" +PACKAGECONFIG[alsa] = "--with-alsa,--without-alsa,alsa-lib" +PACKAGECONFIG[jack] = "--with-jack,--without-jack,jack" + +SRC_URI = " \ + http://www.music.mcgill.ca/~gary/${BPN}/release/${BPN}-${PV}.tar.gz \ + file://0001-configure.ac-do-not-run-temp-binary-in-cross-envirno.patch \ + file://0002-configure.ac-do-not-reset-CXXFLAGS.patch \ + file://0003-configure.ac-do-not-add-absolute-prefixes-to-build-f.patch \ +" +SRC_URI[md5sum] = "d22e3a5dee972fa0725c420923f1ce65" +SRC_URI[sha256sum] = "d6ee3620236904a1067bd615ff012f1064cbfb389b09ac0b847bbcbd0f565214" diff --git a/recipes-musicians/rubberband/files/0001-Do-not-try-to-install-librubberband-jni.so-no-java-p.patch b/recipes-musicians/rubberband/files/0001-Do-not-try-to-install-librubberband-jni.so-no-java-p.patch new file mode 100644 index 0000000..1dcbfa8 --- /dev/null +++ b/recipes-musicians/rubberband/files/0001-Do-not-try-to-install-librubberband-jni.so-no-java-p.patch @@ -0,0 +1,30 @@ +From 9a7c07d3db3cccb9fc6128c66f1c2e61bd07b3df Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 11 Aug 2018 01:16:35 +0200 +Subject: [PATCH] Do not try to install librubberband-jni.so - no java please +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + Makefile.in | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 3a70a71..76f8552 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -183,7 +183,6 @@ install: all + cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) + ln -s $(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION) + ln -s $(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION) +- cp -f $(JNI_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(JNINAME)$(DYNAMIC_EXTENSION) + cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR) + cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR) + cp $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR) +-- +2.14.4 + diff --git a/recipes-musicians/rubberband/files/0002-Fix-build-for-FFTW_SINGLE_ONLY.patch b/recipes-musicians/rubberband/files/0002-Fix-build-for-FFTW_SINGLE_ONLY.patch new file mode 100644 index 0000000..a3d7b7d --- /dev/null +++ b/recipes-musicians/rubberband/files/0002-Fix-build-for-FFTW_SINGLE_ONLY.patch @@ -0,0 +1,44 @@ +From 2f5e8aeb4ba05babfdb0093055bc521899d3d263 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 11 Aug 2018 14:32:54 +0200 +Subject: [PATCH] Fix build for FFTW_SINGLE_ONLY +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +| src/dsp/FFT.cpp:1647: error: undefined reference to 'fftw_cleanup' +| src/dsp/FFT.cpp:1647: error: undefined reference to 'fftw_cleanup' +| src/dsp/FFT.cpp:1647: error: undefined reference to 'fftw_cleanup' + +Tested for FFTW_SINGLE_ONLY and FFTW_DOUBLE_ONLY + +Upstream-Status: Submitted + +Signed-off-by: Andreas Müller +--- + src/dsp/FFT.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/dsp/FFT.cpp b/src/dsp/FFT.cpp +index 6346713..336ffb1 100644 +--- a/src/dsp/FFT.cpp ++++ b/src/dsp/FFT.cpp +@@ -1568,6 +1568,7 @@ private: + #define fftwf_destroy_plan fftw_destroy_plan + #define fftwf_malloc fftw_malloc + #define fftwf_free fftw_free ++#define fftwf_cleanup fftw_cleanup + #define fftwf_execute fftw_execute + #define atan2f atan2 + #define sqrtf sqrt +@@ -1586,6 +1587,7 @@ private: + #define fftw_destroy_plan fftwf_destroy_plan + #define fftw_malloc fftwf_malloc + #define fftw_free fftwf_free ++#define fftw_cleanup fftwf_cleanup + #define fftw_execute fftwf_execute + #define atan2 atan2f + #define sqrt sqrtf +-- +2.14.4 + diff --git a/recipes-musicians/rubberband/files/0003-Optional-replace-FFTW_DOUBLE_ONLY-by-FFTW_SINGLE_ONL.patch b/recipes-musicians/rubberband/files/0003-Optional-replace-FFTW_DOUBLE_ONLY-by-FFTW_SINGLE_ONL.patch new file mode 100644 index 0000000..d6d352f --- /dev/null +++ b/recipes-musicians/rubberband/files/0003-Optional-replace-FFTW_DOUBLE_ONLY-by-FFTW_SINGLE_ONL.patch @@ -0,0 +1,45 @@ +From b6d889302fa11dea2092b932cc1a51a083dc8303 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 4 Oct 2016 19:23:44 +0200 +Subject: [PATCH] Optional replace FFTW_DOUBLE_ONLY by FFTW_SINGLE_ONLY +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + Makefile.in | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 76f8552..c5a8e8f 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -2,7 +2,7 @@ + PREFIX := @prefix@ + CXX := @CXX@ + CC := @CC@ +-CXXFLAGS := -DHAVE_LIBSAMPLERATE -DHAVE_FFTW3 -DFFTW_DOUBLE_ONLY -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DNDEBUG -I. -Isrc -Irubberband @CXXFLAGS@ @SRC_CFLAGS@ @SNDFILE_CFLAGS@ @FFTW_CFLAGS@ @Vamp_CFLAGS@ $(OPTFLAGS) ++CXXFLAGS := -DHAVE_LIBSAMPLERATE -DHAVE_FFTW3 -DFFTW_SINGLE_ONLY -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DNDEBUG -I. -Isrc -Irubberband @CXXFLAGS@ @SRC_CFLAGS@ @SNDFILE_CFLAGS@ @FFTW_CFLAGS@ @Vamp_CFLAGS@ $(OPTFLAGS) + CFLAGS := @CFLAGS@ $(OPTFLAGS) + LDFLAGS := @LDFLAGS@ -lpthread $(LDFLAGS) + +diff --git a/configure.ac b/configure.ac +index eef571b..900370f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -15,7 +15,7 @@ PKG_CHECK_MODULES([SNDFILE],[sndfile]) + AC_SUBST(SNDFILE_CFLAGS) + AC_SUBST(SNDFILE_LIBS) + +-PKG_CHECK_MODULES([FFTW],[fftw3]) ++PKG_CHECK_MODULES([FFTW],[fftw3f]) + AC_SUBST(FFTW_CFLAGS) + AC_SUBST(FFTW_LIBS) + +-- +2.14.4 + diff --git a/recipes-musicians/rubberband/rubberband_1.8.2.bb b/recipes-musicians/rubberband/rubberband_1.8.2.bb new file mode 100644 index 0000000..d66d8bf --- /dev/null +++ b/recipes-musicians/rubberband/rubberband_1.8.2.bb @@ -0,0 +1,40 @@ +SUMMARY = "Rubber Band Library library for audio time-stretching and pitch-shifting" +HOMEPAGE = "http://breakfastquay.com/rubberband/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=28f6289fba0406b8f491e9b2d5767488" + +inherit autotools-brokensep pkgconfig + +DEPENDS += " \ + fftw \ + libsamplerate0 \ + vamp-plugin-sdk \ + ladspa-sdk \ +" + +# fftwf is neon accelerated -> force SINGLE precision +SINGLEPATCH = "${@bb.utils.contains('TUNE_FEATURES', 'neon', 'file://0003-Optional-replace-FFTW_DOUBLE_ONLY-by-FFTW_SINGLE_ONL.patch', '', d)}" + +SRC_URI = " \ + http://code.breakfastquay.com/attachments/download/34/${BPN}-${PV}.tar.bz2 \ + file://0001-Do-not-try-to-install-librubberband-jni.so-no-java-p.patch \ + file://0002-Fix-build-for-FFTW_SINGLE_ONLY.patch \ + ${SINGLEPATCH} \ +" +SRC_URI[md5sum] = "db0ecb4f1a647bdaf7e43ef2ca2f7883" +SRC_URI[sha256sum] = "86bed06b7115b64441d32ae53634fcc0539a50b9b648ef87443f936782f6c3ca" + +EXTRA_OEMAKE += " \ + INSTALL_LIBDIR=${libdir} \ + INSTALL_VAMPDIR=${libdir}/vamp \ + INSTALL_LADSPADIR=${libdir}/ladspa \ + INSTALL_PKGDIR=${libdir}/pkgconfig \ +" + +CPPFLAGS += "-ftree-vectorize -DPROCESS_SAMPLE_TYPE=float" + +FILES_${PN} += " \ + ${datadir}/ladspa \ + ${libdir}/ladspa \ + ${libdir}/vamp \ +" diff --git a/recipes-musicians/setbfree/files/0001-remove-UINQHACK-it-is-used-for-OSX-builds-only-and-c.patch b/recipes-musicians/setbfree/files/0001-remove-UINQHACK-it-is-used-for-OSX-builds-only-and-c.patch new file mode 100644 index 0000000..b4c812f --- /dev/null +++ b/recipes-musicians/setbfree/files/0001-remove-UINQHACK-it-is-used-for-OSX-builds-only-and-c.patch @@ -0,0 +1,61 @@ +From ec1ed40b49a8056cd3d646c652e5cdfcee3c1c6e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 19 Jan 2018 18:46:04 +0100 +Subject: [PATCH] remove UINQHACK - it is used for OSX builds only and caused + trouble for us +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + common.mak | 2 +- + robtk/robtk.mk | 3 --- + 2 files changed, 1 insertion(+), 4 deletions(-) + +diff --git a/common.mak b/common.mak +index e17b007..569b0b6 100644 +--- a/common.mak ++++ b/common.mak +@@ -170,7 +170,7 @@ ifeq ($(LV2AVAIL)$(HAVE_UI)$(HAVE_IDLE), yesyesyes) + UICFLAGS+=-DFONTFILE=\"$(FONTFILE)\" + endif + endif +- UICFLAGS+=`pkg-config --cflags freetype2` `pkg-config --cflags ftgl` -DHAVE_FTGL -DUINQHACK=Sbf ++ UICFLAGS+=`pkg-config --cflags freetype2` `pkg-config --cflags ftgl` -DHAVE_FTGL + endif + + #NOTE: midi.c and cfgParser.c needs to be re-compiled w/o HAVE_ASEQ +diff --git a/robtk/robtk.mk b/robtk/robtk.mk +index d6d84dd..c787364 100644 +--- a/robtk/robtk.mk ++++ b/robtk/robtk.mk +@@ -65,7 +65,6 @@ ROBGTK = $(RW)robtk.mk $(UITOOLKIT) $(RW)ui_gtk.c \ + %UI_gl.o:: $(ROBGL) + @mkdir -p $(@D) + $(CXX) -c $(CPPFLAGS) $(CFLAGS) $(GLUICFLAGS) \ +- -DUINQHACK="$(shell date +%s$$$$)" \ + -DPLUGIN_SOURCE="\"gui/$(*F).c\"" \ + -DRTK_DESCRIPTOR="$(value gl_$(subst -,_,$(*F))_LV2DESC)" \ + -o $@ $(RW)ui_gl.c +@@ -73,7 +72,6 @@ ROBGTK = $(RW)robtk.mk $(UITOOLKIT) $(RW)ui_gtk.c \ + %pugl.o:: $(ROBGL) + @mkdir -p $(@D) + $(CXX) -c $(CPPFLAGS) $(CFLAGS) $(GLUICFLAGS) \ +- -DUINQHACK="$(shell date +%s$$$$)" \ + -o $@ $(PUGL_SRC) + + %_glui.so %_glui.dylib %_glui.dll:: +@@ -89,7 +87,6 @@ ROBGTK = $(RW)robtk.mk $(UITOOLKIT) $(RW)ui_gtk.c \ + %UI_gl.so %UI_gl.dylib %UI_gl.dll:: $(ROBGL) + @mkdir -p $(@D) + $(CXX) $(CPPFLAGS) $(CFLAGS) $(GLUICFLAGS) \ +- -DUINQHACK="$(shell date +%s$$$$)" \ + -DPLUGIN_SOURCE="\"gui/$(*F).c\"" \ + -o $@ $(RW)ui_gl.c \ + $(PUGL_SRC) \ +-- +2.14.3 + diff --git a/recipes-musicians/setbfree/files/0002-Do-not-check-for-fontfile.patch b/recipes-musicians/setbfree/files/0002-Do-not-check-for-fontfile.patch new file mode 100644 index 0000000..ae24ff3 --- /dev/null +++ b/recipes-musicians/setbfree/files/0002-Do-not-check-for-fontfile.patch @@ -0,0 +1,69 @@ +From 055b916edbeae17fc63b144318ea76959adad7bf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 19 Feb 2018 22:12:02 +0100 +Subject: [PATCH] Do not check for fontfile +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Path for target is of interest and won't be found here. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + b_synth/Makefile | 2 +- + common.mak | 10 +--------- + ui/Makefile | 2 +- + 3 files changed, 3 insertions(+), 11 deletions(-) + +diff --git a/b_synth/Makefile b/b_synth/Makefile +index ae47d88..4501f93 100644 +--- a/b_synth/Makefile ++++ b/b_synth/Makefile +@@ -53,7 +53,7 @@ $(LV2NAME)$(LIB_EXT): lv2.c $(LV2OBJ) uris.h ../src/cfgParser.h ../src/midi.h + lv2.c $(LV2OBJ) \ + -shared $(LV2LDFLAGS) $(LDFLAGS) $(LOADLIBES) $(LIC_LOADLIBES) + +-$(LV2GUI)$(LIB_EXT): ui.c uris.h $(UIDEPS) $(FONTFILE) $(LV2OBJ) ++$(LV2GUI)$(LIB_EXT): ui.c uris.h $(UIDEPS) $(LV2OBJ) + $(CC) $(CPPFLAGS) $(CFLAGS) $(UICFLAGS) \ + -o $(LV2GUI)$(LIB_EXT) ui.c -DCONFIGDOCONLY -D XKEYFOCUSGRAB \ + ../src/midi.c \ +diff --git a/common.mak b/common.mak +index 569b0b6..7731490 100644 +--- a/common.mak ++++ b/common.mak +@@ -116,15 +116,7 @@ endif + + #LV2 / GL-GUI + +-ifeq ($(FONTFILE),verabd.h) +- FONT_FOUND=yes +-else +- ifeq ($(shell test -f $(FONTFILE) || echo no ), no) +- FONT_FOUND=no +- else +- FONT_FOUND=yes +- endif +-endif ++FONT_FOUND=yes + + ifeq ($(MOD),) + HAVE_UI=$(shell pkg-config --exists $(PKG_GL_LIBS) ftgl && echo $(FONT_FOUND)) +diff --git a/ui/Makefile b/ui/Makefile +index 739e92a..3fba31b 100644 +--- a/ui/Makefile ++++ b/ui/Makefile +@@ -56,7 +56,7 @@ setBfreeUI$(EXE_EXT): $(RW)jackwrap.c $(LV2OBJ) $(OSXJACKWRAP) $(RW)weakjack/wea + ../b_synth/lv2.c ../b_synth/uris.h \ + ../b_synth/ui.c $(UIDEPS) \ + ../src/cfgParser.h ../src/midi.h +- $(MAKE) -C ../b_synth $(FONTFILE) ++ $(MAKE) -C ../b_synth + $(CC) $(CPPFLAGS) $(CFLAGS) $(UICFLAGS) $(LIC_CFLAGS) \ + -pthread \ + -DXTERNAL_UI -DJACK_AUTOCONNECT=15 \ +-- +2.14.3 + diff --git a/recipes-musicians/setbfree/files/setbfree.desktop b/recipes-musicians/setbfree/files/setbfree.desktop new file mode 100644 index 0000000..ec5db20 --- /dev/null +++ b/recipes-musicians/setbfree/files/setbfree.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +Name=setBfree +GenericName=DSP tonewheel organ +GenericName[fr]=orgue à roues phoniques +Comment=MIDI-controlled, software synthesizer for JACK and LV2 +Comment[fr]=Synthétiseur logiciel contrôlé par MIDI, pour JACK et LV2 +Icon=setBfree +Exec=setBfreeUI +Terminal=false +Categories=AudioVideo;Audio; diff --git a/recipes-musicians/setbfree/files/x42-whirl.desktop b/recipes-musicians/setbfree/files/x42-whirl.desktop new file mode 100644 index 0000000..83c1d0b --- /dev/null +++ b/recipes-musicians/setbfree/files/x42-whirl.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +Name=x42-whirl +GenericName=setBfree Whirl Speaker +GenericName[fr]=Haut parleur rotatif setBfree +Comment=Leslie speaker emulation as JACK client +Comment[fr]=Émulation de haut parleur Leslie en tant que client JACK +Icon=x42-whirl +Exec=x42-whirl +Terminal=false +Categories=AudioVideo;Audio; diff --git a/recipes-musicians/setbfree/setbfree_git.bb b/recipes-musicians/setbfree/setbfree_git.bb new file mode 100644 index 0000000..3d2d95a --- /dev/null +++ b/recipes-musicians/setbfree/setbfree_git.bb @@ -0,0 +1,54 @@ +SUMMARY = "A DSP Tonewheel Organ emulator" +HOMEPAGE = "http://setbfree.org/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=4641e94ec96f98fabc56ff9cc48be14b" + +inherit pkgconfig gtk-icon-cache + +DEPENDS += " \ + virtual/libgl \ + pango \ + cairo \ + libglu \ + ftgl \ + jack \ + liblo \ + lv2 \ + zita-convolver \ + libsndfile1 \ +" + +SRC_URI = " \ + git://github.com/pantherb/setBfree.git \ + file://0001-remove-UINQHACK-it-is-used-for-OSX-builds-only-and-c.patch \ + file://0002-Do-not-check-for-fontfile.patch \ + file://setbfree.desktop \ + file://x42-whirl.desktop \ +" +SRCREV = "9a4783cd91739d5ead118227bfeaaa651b0def5f" +S = "${WORKDIR}/git" +PV = "0.8.8" + +EXTRA_OEMAKE += " \ + STRIP=echo \ + FONTFILE=${prefix}/share/fonts/ttf/VeraBd.ttf \ +" + +do_install() { + oe_runmake 'DESTDIR=${D}' PREFIX=${prefix} lv2dir=${libdir}/lv2 install + + install -d ${D}${datadir}/pixmaps + install -m 0644 ${S}/doc/setBfree.png ${D}${datadir}/pixmaps + install -m 0644 ${S}/doc/x42-whirl.png ${D}${datadir}/pixmaps + + install -d ${D}${datadir}/applications + install -m 0644 ${WORKDIR}/setbfree.desktop ${D}${datadir}/applications + install -m 0644 ${WORKDIR}/x42-whirl.desktop ${D}${datadir}/applications +} + +FILES_${PN} += " \ + ${datadir}/setBfree \ + ${libdir}/lv2 \ +" + +RDEPENDS_${PN} += "ttf-bitstream-vera" diff --git a/recipes-musicians/smbolton/fluidsynth-dssi/0001-Reduce-FSD_MAX_BURST_SIZE-512-128.patch b/recipes-musicians/smbolton/fluidsynth-dssi/0001-Reduce-FSD_MAX_BURST_SIZE-512-128.patch new file mode 100644 index 0000000..f6c0cfa --- /dev/null +++ b/recipes-musicians/smbolton/fluidsynth-dssi/0001-Reduce-FSD_MAX_BURST_SIZE-512-128.patch @@ -0,0 +1,33 @@ +From e37bcc39a2f6c720335a1431e1a37d142f066c3d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 14 Jan 2019 21:03:35 +0100 +Subject: [PATCH 1/2] Reduce FSD_MAX_BURST_SIZE 512 -> 128 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* This saves 96K RAM +* Tested and 'paper debugged' fsd_run_multiple_synths: There are no issues to + expect + +Signed-off-by: Andreas Müller +--- + src/fluidsynth-dssi.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/fluidsynth-dssi.h b/src/fluidsynth-dssi.h +index 6f0e57f..9f347ab 100644 +--- a/src/fluidsynth-dssi.h ++++ b/src/fluidsynth-dssi.h +@@ -59,7 +59,7 @@ + #define FSD_MAX_POLYPHONY 256 + #define FSD_DEFAULT_POLYPHONY 256 + +-#define FSD_MAX_BURST_SIZE 512 ++#define FSD_MAX_BURST_SIZE 128 + + typedef enum { + PORT_OUTPUT_LEFT = 0, +-- +2.20.1 + diff --git a/recipes-musicians/smbolton/fluidsynth-dssi/0002-Don-t-trash-unused-channels.patch b/recipes-musicians/smbolton/fluidsynth-dssi/0002-Don-t-trash-unused-channels.patch new file mode 100644 index 0000000..6fbebb7 --- /dev/null +++ b/recipes-musicians/smbolton/fluidsynth-dssi/0002-Don-t-trash-unused-channels.patch @@ -0,0 +1,50 @@ +From 3a9b7f16ce00a069decd9e4b6efbe31389fefd6d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 13 Jan 2019 11:58:39 +0100 +Subject: [PATCH 2/2] Don't trash unused channels +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* This enhances peformance: Useless buffer copies are avoided +* Patches did not make it upstream but we have them in meta-multimedia + +Signed-off-by: Andreas Müller +--- + src/fluidsynth-dssi.c | 6 +++--- + src/fluidsynth-dssi.h | 1 - + 2 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/src/fluidsynth-dssi.c b/src/fluidsynth-dssi.c +index e1e8251..11a92ee 100644 +--- a/src/fluidsynth-dssi.c ++++ b/src/fluidsynth-dssi.c +@@ -883,10 +883,10 @@ fsd_run_multiple_synths(unsigned long instance_count, LADSPA_Handle *handles, + instances[i]->pending_preset_change = -1; + } + } +- /* Trash unmapped channels by default */ ++ /* Default: Set unused by default */ + for (i = 0; i < fsd_settings.channel_count; i++) { +- l_outputs[i] = fsd_synth.bit_bucket; +- r_outputs[i] = fsd_synth.bit_bucket; ++ l_outputs[i] = NULL; ++ r_outputs[i] = NULL; + } + + /* fluid_synth_nwrite_float() works correctly in FluidSynth beginning +diff --git a/src/fluidsynth-dssi.h b/src/fluidsynth-dssi.h +index 9f347ab..c34377e 100644 +--- a/src/fluidsynth-dssi.h ++++ b/src/fluidsynth-dssi.h +@@ -117,7 +117,6 @@ struct _fsd_synth_t { + float gain; + int polyphony; + fsd_instance_t **channel_map; +- LADSPA_Data bit_bucket[FSD_MAX_BURST_SIZE]; + }; + + #endif /* _FLUIDSYNTH_DSSI_H */ +-- +2.20.1 + diff --git a/recipes-musicians/smbolton/fluidsynth-dssi/fluidsynth-dssi.conf b/recipes-musicians/smbolton/fluidsynth-dssi/fluidsynth-dssi.conf new file mode 100644 index 0000000..eceb682 --- /dev/null +++ b/recipes-musicians/smbolton/fluidsynth-dssi/fluidsynth-dssi.conf @@ -0,0 +1,7 @@ +[audio] +realtime-prio=90 + +[synth] +maxchannels=32 +parallel-threads=4 +dynamic-sample-loading=1 diff --git a/recipes-musicians/smbolton/fluidsynth-dssi_2.0.0.bb b/recipes-musicians/smbolton/fluidsynth-dssi_2.0.0.bb new file mode 100644 index 0000000..1d55f5d --- /dev/null +++ b/recipes-musicians/smbolton/fluidsynth-dssi_2.0.0.bb @@ -0,0 +1,43 @@ +SUMMARY = "A wrapper for the FluidSynth, allowing it to function as a DSSI plugin" +HOMEPAGE = "http://dssi.sourceforge.net/download.html#FluidSynth-DSSI" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +inherit autotools pkgconfig gtk-icon-cache + +DEPENDS += " \ + fluidsynth \ + gtk+ \ + dssi \ + liblo \ + ladspa-sdk \ +" + +SRC_URI = " \ + git://github.com/schnitzeltony/fluidsynth-dssi.git \ + file://0001-Reduce-FSD_MAX_BURST_SIZE-512-128.patch \ + file://0002-Don-t-trash-unused-channels.patch \ + file://fluidsynth-dssi.conf \ +" +SRCREV = "c9b41073031dc2ba99c43db1babc9bbfbab2ec1e" +S = "${WORKDIR}/git" +#PV = "2.0.0+git${SRCPV}" + +do_install_append() { + install -d ${D}/${sysconfdir}/skel/.config/fluidsynth-dssi + install -m 0644 ${WORKDIR}/fluidsynth-dssi.conf ${D}/${sysconfdir}/skel/.config/fluidsynth-dssi/ +} + +PACKAGES =+ "${PN}-defconfig" + +FILES_${PN} += " \ + ${libdir}/dssi \ +" + +FILES_${PN}-defconfig = " \ + ${sysconfdir}/skel/.config/fluidsynth-dssi \ +" + +RDEPENDS_${PN}-defconfig += " \ + audio-tweaks \ +" diff --git a/recipes-musicians/smbolton/hexter/hexter.desktop b/recipes-musicians/smbolton/hexter/hexter.desktop new file mode 100644 index 0000000..bdcbc3c --- /dev/null +++ b/recipes-musicians/smbolton/hexter/hexter.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=Hexter DSSI +GenericName=Software Synthesizer +Comment=Real-time software synthesizer DX7 emulator +Icon=hexter +Type=Application +Exec=/usr/bin/hexter +Terminal=false +Categories=Audio;AudioVideo;Midi;X-Synthesis;X-Jack; +X-Desktop-File-Install-Version=0.15 + diff --git a/recipes-musicians/smbolton/hexter/hexter.png b/recipes-musicians/smbolton/hexter/hexter.png new file mode 100644 index 0000000000000000000000000000000000000000..dd5458a4125283731ae785ceea3335f5b542ce6b GIT binary patch literal 7951 zcma)Bbx;&uxLshErMp`~5NSlZ8$`OKON13zx?@>M5l}!v8p)-RkVYDmUb;hI>2CJ< zdo%C_cyxFG0Dw?kO-b(`vj0~k*#CM>qSC@Y06NNR z$^T;s`1dxTe;mV8PgMa>Il{2}kFeOO>1hD~0Z##dunz#h?LR4O2LSLE0027^~EkC9VR) z%@kPFpu}V>K<*}Bs&yA0Z-IGZxybh2TISg@|lx@<|A zqYd~t&hGyb9Wuw2FOE)pZiOv$wm2F7_#ucF;N%a&qwi#y z)$>e4P_co29%??ylwXZdOBtE@&X9dKr;$a0iYOWFI|+U{G%0Ob?epzy3ELNgw7Y|2 z8S}fl{{C;!S9=fqfp>=%Mqj5{Ue+-vsWWo%CDD*ne5(oLW5l}f304!$snszYmpyZ_ z(C0UnHs$qoE*>HYQ7J-|El;FBnKCdt!DRE2`GlePVNXmzGY!;>Uu`_UHwZFR*S2Sg z?ildR1pDhQa^in@HuIUlHoAsjmK8si1aCI)w24c@Nkp!dvh@8=hnQEDLIGX&pE(hv zp{&N`MLeJV?=EzLG0*qHL0DMm=YwC+KLyj%8wk51m{+b#$@1P86BQ5lmL;4E$(a85 z?ZaK6{oZ52?VyOYIeJSiF)lHNCHlU0g*C(x5=yf$-OA;<{ zc&kAPqZ+^YZjve}=4Nz_=S4?++d|rTTisi}Z5u-n?Iu=eEbG4o*7Nq5fVL`sC6Ty#_ej4`< zTj3k8JKS`XwipdG{ap^jNT!ZZRu;hgEv}Y$(x=_jHOq?FP2Ep^t`tdAdU`P<@#QG= zMymrENh9R_^RW2NE_Y4}>jx%2S7qeC-+Eb9~m7DgjH@T|*kQl|>oQ1#(ULE3K+5qAmhiOYB zhDjAR%}rwCq}fY^XwO|6cXj}iRN>iQQ{CLX7?bC8=S=?d*Nky{@k5(1yP6g1Tf8w1 z0(;)*h4rF+kV+bDaX)N8_bDkg?X^Il|2JSO&>U!Gzv@xG>yRmy+X<-pK z=o~sFx@gJLP7OZTZm)R{^6nBPq@Ja0)xE_j0gk%2k?#8+M&uLG^q&h5h4~M|kGC$1PpYCSmpt(i0@j4iRzY4wpRg;Dgon`2`#Qn|NXc_XXiKB9paXY&zqBg6B zBMy~loQ?HNp=pbie$<0HGC1Tiqz!db6c^VjRmj4_!y>0af=<&wWmaOcG~?%v>0@31 zuRVS|m{i%KXE&x5A-F3v6Z6~8JD*i!Nr~WM9$cy<;$PzU+DL>;3t5ff1U(-51^@?E z-W38Indc16L8DcN26uQLRH9ydZL<#T;s5000uX^YwUdz?tT@=^JSGN;wKUFA&^-Az zl(9-ckXD%*#@J8bj(Y8%ERRLS-$>-PFx9#%Z^ydrNN-B)^f2bh6HK3!?XK29zC9kdfZ*Gx{-v+%YV8Zh_R8B>@A3qOM#?`V3LSGD7I zD=Tgf)!omAF4~>jUnoM1?q94+luvS@1017-0uADUe^p_mHjgNC+_<&qJrW(IWTa?k z>tVExeivG2)y*02`VUm*DM7i)PdH=EYD+TZ(GJd`csl1NqC~XNUYC4V6m~r}Ld=&d+R8%izm~)lLM2a zsSL_Yji18a@uF(*rx>j80a=LC3tOG;13VvT9jpV|dCYob>mT{VEH359Gw`eUq>Il# zI%bB~6q=CQRokN<*owrg_w{|Vijg7Sk=cx*B`zp(!IoaC;F)Au5-RZ8k=8~+9bft7gMORT6O=FbC?c3hVA|$@qyF}neF@O=KJ|J|tV=^_ zA#X*uw07TcyIxkDl0KPb*r;QIUT?trgdfK%vd2!1cb_r^!$8X+`pMWS^`pFIU2lySOYCjn)aIJeZl2C&C1 zjr7txyrJjl8HRYrUnsI+UldN*IkEZ0`w z{INclb-(bIip!;Vob()G_<=hY@{vk{S`q(7LCROD?gPnCF9VWjVr`q~3rCM<@q1wl zL$H34VRd`egmUe*Mq5oz4gNmmv`cF)_>Rm8yk1%ViU+h-HSdh^R@5_93_rWj$Htq< zr$PLBsX>C|*rqco1dUxm)L61`i+wF~A>-{6mboTwXP|!E=T{IXzWUHp90ysY-@tz{ z3TsThs<#99MKz;ssQ_2eizp&$rC`%5t&Mn{OY_p6Q#KpB7Dny%gh(&#f3HkUBdq1n zj`0Q+s{{|8X`zw}b-bE+F30pYKNDX?M9`2uY)2dCd6-cq=^uHKF~R|It5Tw7jK_*_ zZ+@aLZyM4!73p+xwS*ZJ;B$N%TBsTI3epK0PDr>7SOEhC_a^ z8UKzNdt#%t>EmaD9$ZIguPw)@2J?mDFI~1?`L8(YltLnYps*?4FyGXTL=2o1E~^p3 zoInca+N-|_2J{p=kv!FWnqA`jJK<`Ws^CyfiO$S5u_qrDYidb3HB%yC^tLbCt?;ws zf-bw@0nks95hG2VM{=FcUpmX5YVYo?igvmac4l(gZAn>&wexj=3c~|8+*s(Rm=6fNW>8~h(kutw1VT%=RC4$2KuK(Kv=7<)R}(h31oF9>2zr{_jdIOJ ztiYJ6(soe0&|%9hR;OK{y})MtpQXRAVRpmX$#cGBcozf+>S^+MA1BkFgNAA$>GLh7KYWY3AJy8`9=xH-2Cw0x}NHO;FUX{FNEZ#)o-gdHi-~X)cuj7&W_nCIUgC z8WV$Q$}5&#nyE^t8oG$aETyxWbA`PFC*(9;cV73g-(UDKDH|qJO!kr(HY6d0t9uj= z5r2EIh^GinVSzqORdS)$#NVZMOqMifu(!IgMT zNl(d6-LOn#Z*2Xso8!ya$mDXyz&!-3FVCRx%F^vgS}&Vva$*UkMyldoMGJlE4eykL zBERnow#i(v2{E^=JeBji++LesPj^z+#Y@(jn_cnBem)?iiQ*3b%5O*xL=Twee8%K7 z&T@Is)aClw+>76v)Gqp(`kk4nrpB~iD= zxe@KtqTzgrVcVU4p6T$j%D~KEdITkV-jrJkA9taP$tjA4SlG~ zxf?69yorWM`7A&?)K7QUgV^up=3BKYR-U8fOlP(#i=)}$kQBasQ4lAc0^8Cq5 z;+Zde4}RntUkW1l0Se58Qwf+omVbr&xhfUNzf4uQ z!gQ;a=9ZM`CzrQ^3&Z}H>FJ)gumw(d>itQO=m#a%ylJae+XVcl3Y5&vAlLL^B~857WOyqV*C66`nK))-}N zJiGio%lFAu>SE&l-fGZ#2G=NDWbmrA3U_m5ATUjo_BYd8QGlaXzfm`!-=d!&3gh+e zdD3u~`;fba0oI&e!@GP)d`Ek(vP!e5160%C1V9dVHb-*_VN6Ky(m|;E&(JJ9VY~4>pQjZCq&f zu$gV%veQm(hd(uvVMpm#rA&Zn{5#?zSY;9S?qF`ck2CR(@r!LjW<8zE@O^bXW9nk% zHBnr9{cpY~vU&%n6C$NBG0t##*VMpGNFu~u+aEWmU|)4QK_}N?K-=bdp558Btj|xN z+d6q=D;=1+*#cMEiXrX0DlLB4FXxu~=O&&9pk^u)Tp!wT${^3hg(+4psUOxq75c4* zx<^N~c?qLbm`VcoIersn*Spq`f9(nJ^z{bZ-)wc?XgkZHyMym86Fx}dGrwr{r*O4u zGv4Y8*hyZhw7fFZVJ}(@RE~uC*0+cPQq#CJ!rDhfPuX|AO;Oj$ZI{US$%A(rn+bRH zBoyf7u-$GHEyy@~2>p^+{GXGZU#r4PSi*ZeEe!2rjTbSghJqe}+4QR7z|(TO?_#)p z0M7&l+_EULWcbrA!ncjX;i$EgQ6w5OWJK!3enrTS^6u|R(kB+;Bo0K_#eATyF?LJd zm1Z#2l%kuA#gh)`+h^{K&e%qkhTt?KCy&SEJe{)z?j?v@*vq60V^=f6r{*-|!YBHP zxB*cpfF$C`s%Zm6u|RdBxGVO~vvqgYRk+J|Xi|+Aj2Z*UF&8HQpdTr1d8>7c5;50* zw)Qx$7E19Q!u>P@WiU^|3!2L+HMltZZ{8(Rbi{hvo*_9|6~9l8TCx%isF}+>DaD9e z$>bOWbbN(1aDg7(u#D;0x*i8d#)yssw}aL)@UwiqxF|iz^_&Y=Uaf#r7tHsdrNG&R zeX}&{nTrNek*?I_nNQQ!7Q>^I-kr^#Wz&jRnbPXhv{pqe`l!{yn0O_5clF5Vrpqh@ zovG4t)UA%On#LbSS|s`Wq%KUC;TvPB-pr!2xFGX9+9$fXq10DigwV%bG$^cQ>ST-w z*EVX=%>`T6WO+JEzGvXmtyuKl`Q!>*Kv0}WL0@gLCbe4QciuUY^NZGPaC2rm*TnAY zNZ*(=p1bv@b5dLHRcr)SnzCzwYDtpbF2^5k!uN+0J385rbOZD$Ezx2nK8+KETc7UQPd zb3R5lae6aLGY7t(BP>zcn|Qvnlx6H~GrEqI)lj4uaprKqy_fq)Ez;Qd3@pxATX#(w zgzIDc79)X?ACPH@wqphTR;V1^s$v-yTXv+4*7K-7B+3sfDP@zV$bUl1K1{yO18UV2 zE0|n8R~~#Ps5u(n!d1JavV?x$u*icoTd`fO@Ja_}ZD>fo|E@Y<+`O8)9 zc#wUD`K04|EgCC+*TP4+`l{5fjMJnLnFH|o-jELNlP~zq*dtleFJv(JSGvaJ65p%s!CBE|EH% z_qHs$TR zb)(q4@|iKf{NL)93V%LvF~)#l6wh(+s#^3}wJ9;HBbfw&g2#0nASgwX8I|Bieu-Mbnf!>lIy* zDGHsBKPJ>!5Ch@mm~^C1GpvUllk+3oI(GheG3_(5CiQwbZ_*S=|H|esXmzot7SBlK zWEv*X1)T-?UJUp>X=rQ#{)LL9QoZufn%;mNUQ(WrM<-OUt^=&h=Nf{uxF9(Yd)-ggF3rT3BTp-t&0{kc0@c?Ce<8P zcqGW2m=}O5|5XOcZ{t!|=VD^2sosAcO?2>h5iMaoN(#AndrYCPU9O+YnZZoY*mdlg zMJ?PZ_E+y5=)P!DTm;{F+e#*jbr)BV&$SaDgu@~`fz{(^PUf#-hL^p9Ky#nIb7x%? zMrQZtENc{dU21BN_)2EYN5O(X{o7_F%-UYi2Hg zR?GhPzrtrTFaMCN^qIGt3$VV_(!qOh^LV6rXQ3dMSM2=xG480H!3A7m`JO3oG5g)0 z?YJig5z7RCyY?2YN9z@L{aSHusx40|gVY5fqDxo;*tv9cUG0=@L5eB=}zPfK%d^1sR58f=hnSuficOF_t zpLOPZUH?(h<9(?UV#ryLwf|)Fk3~W3?$)h?GiXjvifp5kM~_|1BpU5|Srdt>Gpe7$ z>w^mR4Ooc03gNr*{Qesdyqv~6a(TXE-w!2-d=+!(x=?PzX3d zh#SjbE{%I?+*3}yIC9Jvn60WT*Q+FlAg;#V?nYfQ-bsvHUhx!r!+mTcC~bOop63R)OS5B) zXXo@#>No^B`hmHZ_Ou17hwrc_7=IiGzdia8XCm1Vj6pGjs{or^{sMjLioVJz zT@Ej&7qH;PVB^@Sa0YrP=(x84fh#!7to&U!)S|>p5`Ya) z%#tK;P1)+8t?Rnep?HFK+A@c*=W3EHyQ{@*A~w-5!XA~dqTB`fKC@ECy^c3op{11P zoh;bW@|oW|XFmNhUlLUUbze7$-7kRm#;Uh5SebsleF!v`W;!CTK+mOxI*rLvke)P7 zldnB~2H+Z7sr+K5++q{N@B1TQIjki%O(e?O-EEvM8kZigkzYmh0yFc|)=Po#%+a1k z>+&njuOB;aX2Lq?AYIumd{ppU{f~$7BZPTdsuhfk?U5KUa3kU}!nHY$?8vVeo+{Sh zSh$t*>WhA1=rrN|>>_S_(j#u4i@?*SX*IAILxsX> zxJLhd^Q>wvuacmS{u2`54rA|Iu2u5=I`%InVjC3et>X0X&$nf9>#!VQ8LMI>irNST zmEZPHX)>lrT0)#V%rfgOAO-3k^_e8~Y(fINN?%nCX>O$i*@Ravdmq0hrhLu|dHtL+ zCnfv)!&3J~LXq^;Yi2j$*FLn`|NVA$}V)cW9xb8#n|?Zne+_u zVnEJK(CtU1>x&vsgUact%Yfi^v|$*^igORm>K6!Wkx~v!3CG9_1_~?wJ zLMR4MG0taFfArQBWFO*~5F6g%<{LMcnf&yz5gB3d!-Sfu%CmmZ)Ef>x=~+%TR5kG; z^Inl5z54KFMe1~w+_cByB9S$I7r)pnjaKN*FgWM-lMg|XU2wOTxQN=(Nib#)iDE@q z7`iFqQTTy5ZSl=OF-y(apuh!PN@@@SFGK)6n8k*V5%0>wnXH|4rL@IM{eO@Y?@t|2c$(1gfV*1dt*xaRdcw{}G{=ND+Y=p?@K> nd@u+<1DKHbe@+)Sd#AVl|6k{|l%Lx_CqP~KwNj;mb@=}P;UP|| literal 0 HcmV?d00001 diff --git a/recipes-musicians/smbolton/hexter_1.1.0.bb b/recipes-musicians/smbolton/hexter_1.1.0.bb new file mode 100644 index 0000000..3e1a3c2 --- /dev/null +++ b/recipes-musicians/smbolton/hexter_1.1.0.bb @@ -0,0 +1,46 @@ +SUMMARY = "Yamaha DX7 modeling DSSI plugin" +HOMEPAGE = "http://dssi.sourceforge.net/hexter.html" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +inherit autotools pkgconfig gtk-icon-cache + +DEPENDS += " \ + gtk+ \ + dssi \ + liblo \ + ladspa-sdk \ +" + +SRC_URI = " \ + git://github.com/smbolton/hexter.git \ + file://hexter.desktop \ + file://hexter.png \ +" +SRCREV = "737dbb04c407184fae0e203c1d73be8ad3fd55ba" +S = "${WORKDIR}/git" + +do_compile_append() { + cd ${S}/extra + $CC $CFLAGS -o tx_edit tx_edit.c -lcurses -lasound -lm ${LDFLAGS} +} + +do_install_append() { + install -d ${D}/${datadir}/applications + install -m 644 ${WORKDIR}/hexter.desktop ${D}/${datadir}/applications/ + + install -d ${D}/${datadir}//icons/hicolor/36x36/apps + install -m 644 ${WORKDIR}/hexter.png ${D}/${datadir}/icons/hicolor/36x36/apps/ + + install -d ${D}/${bindir} + ln -s jack-dssi-host ${D}/${bindir}/hexter + + install -m 755 ${S}/extra/tx_edit ${D}/${bindir} +} + +FILES_${PN} += " \ + ${libdir}/dssi \ +" + +# standalone needs jack-dssi-host +RDEPENDS_${PN} += "dssi" diff --git a/recipes-musicians/smbolton/whysynth/whysynth.desktop b/recipes-musicians/smbolton/whysynth/whysynth.desktop new file mode 100644 index 0000000..556d14b --- /dev/null +++ b/recipes-musicians/smbolton/whysynth/whysynth.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=WhySynth +GenericName=Software synthesizer +Comment=Real-time software synthesizer +Icon=whysynth +Type=Application +Exec=/usr/bin/whysynth +Terminal=false +Categories=Audio;AudioVideo;Midi;X-Synthesis;X-Jack; diff --git a/recipes-musicians/smbolton/whysynth_20170701.bb b/recipes-musicians/smbolton/whysynth_20170701.bb new file mode 100644 index 0000000..7a4f2e5 --- /dev/null +++ b/recipes-musicians/smbolton/whysynth_20170701.bb @@ -0,0 +1,40 @@ +SUMMARY = "WhySynth — A DSSI Softsynth Plugin" +HOMEPAGE = "http://smbolton.com/whysynth.html" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +inherit autotools pkgconfig gtk-icon-cache + +DEPENDS += " \ + gtk+ \ + dssi \ + liblo \ + ladspa-sdk \ +" + +SRC_URI = " \ + http://smbolton.com/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://whysynth.desktop \ +" +SRC_URI[md5sum] = "217bfeea23545c12cd0a1bc93de6ed0f" +SRC_URI[sha256sum] = "a602d685a6bf48b01a82e1c077a50fe3d115805865ecfe49f531d8bd20b00b0b" + +CFLAGS += "-ftree-vectorize" + +do_install_append() { + install -d ${D}/${datadir}/applications + install -m 644 ${WORKDIR}/whysynth.desktop ${D}/${datadir}/applications/ + + install -d ${D}/${datadir}//icons/hicolor/36x36/apps + install -m 644 ${S}/extra/whysynth-icon-32x32.png ${D}/${datadir}/icons/hicolor/36x36/apps/whysynth.png + + install -d ${D}/${bindir} + ln -s jack-dssi-host ${D}/${bindir}/whysynth +} + +FILES_${PN} += " \ + ${libdir}/dssi \ +" + +# standalone needs jack-dssi-host +RDEPENDS_${PN} += "dssi" diff --git a/recipes-musicians/smbolton/xsynth-dssi/0001-replace-missing-AM_PATH_GTK-by-PKG_CHECK_MODULES.patch b/recipes-musicians/smbolton/xsynth-dssi/0001-replace-missing-AM_PATH_GTK-by-PKG_CHECK_MODULES.patch new file mode 100644 index 0000000..0cde975 --- /dev/null +++ b/recipes-musicians/smbolton/xsynth-dssi/0001-replace-missing-AM_PATH_GTK-by-PKG_CHECK_MODULES.patch @@ -0,0 +1,38 @@ +From bb2378e872d315b85d8c13473d9072b0aeeb0cbb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 28 Oct 2017 20:50:10 +0200 +Subject: [PATCH] replace missing AM_PATH_GTK by PKG_CHECK_MODULES +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + configure.in | 9 +-------- + 1 file changed, 1 insertion(+), 8 deletions(-) + +diff --git a/configure.in b/configure.in +index bc1ed5f..9939851 100644 +--- a/configure.in ++++ b/configure.in +@@ -21,14 +21,7 @@ AC_ARG_WITH(gtk2, AC_HELP_STRING([--with-gtk2], [use GTK+ 2.0 default=yes]), + [ if test $withval = "yes"; then try_gtk2=yes ; + else try_gtk2=no ; fi ], try_gtk2=yes) + with_gtk=no +-dnl First look for GTK+ 2.x, unless '--without-gtk2' was specified. +-if test "x${try_gtk2}" = 'xyes'; then +- AM_PATH_GTK_2_0(2.0.0, with_gtk='yes (version 2.0)', with_gtk=no) +-fi +-dnl No GTK+ 2.x found, look for GTK+ 1.2 instead +-if test "x${with_gtk}" = 'xno'; then +- AM_PATH_GTK(1.2.0, with_gtk='yes (version 1.2)', AC_MSG_WARN([GUI will not be built because no version of GTK+ was found])) +-fi ++PKG_CHECK_MODULES(GTK, gtk+-2.0, with_gtk=yes, with_gtk=no) + AM_CONDITIONAL(BUILD_GUI, test "x${with_gtk}" != 'xno') + echo "GTK support: $with_gtk" + +-- +2.9.5 + diff --git a/recipes-musicians/smbolton/xsynth-dssi_0.9.4.bb b/recipes-musicians/smbolton/xsynth-dssi_0.9.4.bb new file mode 100644 index 0000000..9297658 --- /dev/null +++ b/recipes-musicians/smbolton/xsynth-dssi_0.9.4.bb @@ -0,0 +1,24 @@ +SUMMARY = "A classic-analog style software synthesizer plugin" +HOMEPAGE = "http://dssi.sourceforge.net/download.html#Xsynth-DSSI" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +inherit autotools pkgconfig gtk-icon-cache + +DEPENDS += " \ + gtk+ \ + dssi \ + liblo \ + ladspa-sdk \ +" + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/dssi/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + file://0001-replace-missing-AM_PATH_GTK-by-PKG_CHECK_MODULES.patch \ +" +SRC_URI[md5sum] = "3432ecdac06407a992f80eb1c1ecf7cd" +SRC_URI[sha256sum] = "d3d24941a509c6193eac2b2ee3c9a6057c832565a0b66e58c3bd2e89afd8dc02" + +FILES_${PN} += " \ + ${libdir}/dssi \ +" diff --git a/recipes-musicians/soundfont-collection/sf-tools_git.bb b/recipes-musicians/soundfont-collection/sf-tools_git.bb new file mode 100644 index 0000000..9e1c76a --- /dev/null +++ b/recipes-musicians/soundfont-collection/sf-tools_git.bb @@ -0,0 +1,21 @@ +SUMMARY = "Commandline tools for soundfont analysis and split" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=75859989545e37968a99b631ef42722e \ +" +SRC_URI = "git://github.com/schnitzeltony/soundfont-cmdline-tools.git" +SRCREV = "c4b11144dc714d9e4d959f0631c35a6b9764c057" +S = "${WORKDIR}/git" +PV = "0.0.0+git${SRCPV}" + +BBCLASSEXTEND = "native" + +do_compile() { + oe_runmake +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/sf2-test ${D}${bindir}/ + install -m 0755 ${S}/sf2-split ${D}${bindir}/ +} diff --git a/recipes-musicians/soundfont-collection/soundfont-collection_0.0.2.bb b/recipes-musicians/soundfont-collection/soundfont-collection_0.0.2.bb new file mode 100644 index 0000000..a242a3f --- /dev/null +++ b/recipes-musicians/soundfont-collection/soundfont-collection_0.0.2.bb @@ -0,0 +1,190 @@ +SUMMARY = "A collection of free soundfonts" +LICENSE = "GPLv2 & MIT & CC-BY-3.0" +LIC_FILES_CHKSUM = " \ + file://freepats.zenvoid.org/acoustic_grand_piano_ydp_20080910.txt;md5=6aca163c2105ed4ac00e4f3ce83c9e3a \ + file://freepats.zenvoid.org/acoustic_piano_imis_1.txt;md5=a9a3c1e67619043ca82d64dfca849288 \ + \ + file://GeneralUser%20GS%201.471/LICENSE.txt;md5=51c5827b75fa15c5e7f6f13290bc5445 \ + \ + file://avl-drumkits/AVL-Drumkits-1.1-fix-SF2/AVL-Drumkits%20CC-BY-SA%20License.pdf;md5=db54d5d5fcba6e9ca3f61185eec10a43 \ + \ + file://linuxaudio.org/airfont_a340u/readme;md5=94c7ebefcd275e72d018acec80b714cf \ + file://linuxaudio.org/fluidr3/readme;md5=4223817a5c95fe5efbe35d0e6b487063 \ + \ + file://freepats.zenvoid.org/acoustic_grand_piano_ydp_20080910.txt;md5=6aca163c2105ed4ac00e4f3ce83c9e3a \ + file://freepats.zenvoid.org/acoustic_piano_imis_1.txt;md5=a9a3c1e67619043ca82d64dfca849288 \ +" + +DEPENDS = "sf-tools-native" + +inherit allarch + +# TODO +# https://trisamples.com/free-soundfonts/ +# https://sites.google.com/site/soundfonts4u/ + +SRC_URI = " \ + http://download.linuxaudio.org/musical-instrument-libraries/sf2/airfont_a340u.tar.7z;subdir=linuxaudio.org;name=airfont \ + http://download.linuxaudio.org/musical-instrument-libraries/sf2/fluidr3.tar.7z;subdir=linuxaudio.org;name=fluidr3 \ + http://download.linuxaudio.org/musical-instrument-libraries/sf2/jRhodes3.tar.7z;subdir=linuxaudio.org;name=jRhodes3 \ + http://download.linuxaudio.org/musical-instrument-libraries/sf2/melloflute.tar.7z;subdir=linuxaudio.org;name=melloflute \ + http://download.linuxaudio.org/musical-instrument-libraries/sf2/melloreed.tar.7z;subdir=linuxaudio.org;name=melloreed \ + \ + http://bandshed.net/sounds/sf2/AVL-Drumkits-1.1-fix-SF2.zip;subdir=avl-drumkits;name=avl-drumkits \ + \ + http://freepats.zenvoid.org/sf2/acoustic_grand_piano_ydp_20080910.txt;subdir=freepats.zenvoid.org;name=acoustic_grand_piano_ydp_license \ + http://freepats.zenvoid.org/sf2/acoustic_grand_piano_ydp_20080910.sf2;subdir=freepats.zenvoid.org;name=acoustic_grand_piano_ydp_sf2 \ + \ + http://freepats.zenvoid.org/sf2/acoustic_piano_imis_1.txt;subdir=freepats.zenvoid.org;name=acoustic_piano_imis_1_license \ + http://freepats.zenvoid.org/sf2/acoustic_piano_imis_1.sf2;subdir=freepats.zenvoid.org;name=acoustic_piano_imis_1_sf2 \ + \ + http://www.philscomputerlab.com/uploads/3/7/2/3/37231621/weedsgm3.sf2;subdir=www.philscomputerlab.com;name=weedsgm3 \ + http://www.philscomputerlab.com/uploads/3/7/2/3/37231621/choriumreva.sf2;subdir=www.philscomputerlab.com;name=choriumreva \ + \ + https://www.dropbox.com/s/4x27l49kxcwamp5/GeneralUser_GS_1.471.zip;name=christiancollins \ + \ + https://musical-artifacts.com/artifacts/248/iw_vint.zip;subdir=musical-artifacts;name=vintage-dreams-waves \ +" + +SRC_URI[airfont.md5sum] = "e1a0878510910b50786c9690ed7640b0" +SRC_URI[airfont.sha256sum] = "7c61d6243943e3ff86dbe776cf3f1cdb0af5e55ccda370491c02613849fd9df4" + +SRC_URI[avl-drumkits.md5sum] = "f32ba8fe4e7ccb89c21fe3f6d915a15d" +SRC_URI[avl-drumkits.sha256sum] = "46a5d0d1fd3894082ae0ecdab3396a9a1b9eecc0076935f35980cdd7ce024382" + +SRC_URI[fluidr3.md5sum] = "8657c8d9dfcb51aa0e3d045dd63cc053" +SRC_URI[fluidr3.sha256sum] = "a62235d86c920f141a1aa2a0921ceaee167478796d9e0ac1130fd87ec50a6a02" + +SRC_URI[jRhodes3.md5sum] = "1cf933decd312535fb8d8aa5772a39cf" +SRC_URI[jRhodes3.sha256sum] = "a50462992b19f4df65aa63d237bb0e45a071e63383ae9f2c5a2980d4ec3bcce1" + +SRC_URI[melloflute.md5sum] = "6c0e273647acc80d770924fa661c7339" +SRC_URI[melloflute.sha256sum] = "d4fbbab82ee558092e9f6706c9bf865314cf5d848c7a1a076b039926d36cb305" + +SRC_URI[melloreed.md5sum] = "f3f8ee58431c6482ec25d26ea63cc042" +SRC_URI[melloreed.sha256sum] = "b6f3ff4ccef5e1b4f35b81e915f85ae4fa0730bf01f26151c66ba04efb30d028" + + +SRC_URI[acoustic_grand_piano_ydp_license.md5sum] = "6aca163c2105ed4ac00e4f3ce83c9e3a" +SRC_URI[acoustic_grand_piano_ydp_license.sha256sum] = "4703a7b97685c7569884249032c99daee5a363eedcea1d63d19415ee83b51fed" + +SRC_URI[acoustic_grand_piano_ydp_sf2.md5sum] = "d568b2bdee099db5d0647852428fd759" +SRC_URI[acoustic_grand_piano_ydp_sf2.sha256sum] = "8daab3c933edba50bdaec179c086a34285f21997ddfd40b142106f38c7050461" + +SRC_URI[acoustic_piano_imis_1_license.md5sum] = "a9a3c1e67619043ca82d64dfca849288" +SRC_URI[acoustic_piano_imis_1_license.sha256sum] = "652358bcdb27582549c14348dfaafb1e296d9ec73c4a2a7354027705170556ab" + +SRC_URI[acoustic_piano_imis_1_sf2.md5sum] = "34221eb4e67ea67c74395bc5877305ab" +SRC_URI[acoustic_piano_imis_1_sf2.sha256sum] = "b97fca4e191c8f1f4a97b443deba3cf925518fc0fffa7693c55af40405a6a183" + + +SRC_URI[weedsgm3.md5sum] = "924b76eec24353a3fd626a7afd34731e" +SRC_URI[weedsgm3.sha256sum] = "4de36fdec6a1f972d3b32ac35ff1c3178ceb0fc05ff5c9fb94aebde5197f8568" + +SRC_URI[choriumreva.md5sum] = "3b3ccb921d9bf29992a174a3315ff723" +SRC_URI[choriumreva.sha256sum] = "993a1683a67f30c56c248290e1eb6c13b779331856e9a767ace0f5063f41f897" + + +SRC_URI[christiancollins.md5sum] = "5eaa95224f6080864cf6aedc1c9820a6" +SRC_URI[christiancollins.sha256sum] = "4203835164766f428c4926c097c9ea58dae431c7fb8f9dbe277b92d80da45ec2" + + +SRC_URI[vintage-dreams-waves.md5sum] = "9d6151731c4edb91725bc4f530184f1a" +SRC_URI[vintage-dreams-waves.sha256sum] = "2706ec973acc390b888e0084c7afd4ba75da58f2772c13b1e398a6a66b021f15" + + +do_unpack[depends] += "p7zip-native:do_populate_sysroot" + +S = "${WORKDIR}" + +PACKAGES = " \ + ${PN}-meta \ + ${PN}-avl-drumkits \ + ${PN}-linuxaudio-org \ + ${PN}-linuxaudio-org-single \ + ${PN}-freepats-zenvoid-org \ + ${PN}-philscomputerlab-com \ + ${PN}-philscomputerlab-com-single \ + ${PN}-christiancollins \ + ${PN}-musical-artifacts \ +" + +ALLOW_EMPTY_${PN}-meta = "1" +RRECOMMENDS_${PN}-meta = " \ + ${PN}-avl-drumkits \ + ${PN}-linuxaudio-org \ + ${PN}-linuxaudio-org-single \ + ${PN}-freepats-zenvoid-org \ + ${PN}-philscomputerlab-com \ + ${PN}-philscomputerlab-com-single \ + ${PN}-christiancollins \ + ${PN}-musical-artifacts \ +" + +do_configure() { +} + +do_install() { + install -d ${D}${datadir}/sf2 + install ${WORKDIR}/freepats.zenvoid.org/*.sf2 ${D}${datadir}/sf2 + install ${WORKDIR}/www.philscomputerlab.com/*.sf2 ${D}${datadir}/sf2 + install "${WORKDIR}/GeneralUser GS 1.471/GeneralUser GS v1.471.sf2" ${D}${datadir}/sf2/general-user-gs-v1.471.sf2 + for soundfont in `find ${WORKDIR}/avl-drumkits -name '*.sf2'`; do + install $soundfont ${D}${datadir}/sf2 + done + + for soundfont in `find ${WORKDIR}/linuxaudio.org -name '*.sf2'`; do + echo "linuxaudio.org: $soundfont" + install $soundfont ${D}${datadir}/sf2 + done + + # split some GM soundfonts into single files + install -d ${D}${datadir}/sf2/fluidr3gm-single + cd ${D}${datadir}/sf2/fluidr3gm-single + sf2-split ${D}${datadir}/sf2/fluidr3gm.sf2 + + install -d ${D}${datadir}/sf2/airfont_a320u-single + cd ${D}${datadir}/sf2/airfont_a320u-single + sf2-split ${D}${datadir}/sf2/airfont_a320u.sf2 + + install -d ${D}${datadir}/sf2/weedsgm3 + cd ${D}${datadir}/sf2/weedsgm3 + sf2-split ${D}${datadir}/sf2/weedsgm3.sf2 +} + +FILES_${PN}-avl-drumkits = " \ + ${datadir}/sf2/AVL_Drumkits_Perc_1.1.sf2 \ + ${datadir}/sf2/Black_Pearl*.sf2 \ + ${datadir}/sf2/Red_Zeppelin*.sf2 \ +" + +FILES_${PN}-linuxaudio-org = " \ + ${datadir}/sf2/fluidr3*.sf2 \ + ${datadir}/sf2/airfont_a320u.sf2 \ + ${datadir}/sf2/mello*.sf2 \ + ${datadir}/sf2/jRhodes3.sf2 \ +" + +FILES_${PN}-linuxaudio-org-single = " \ + ${datadir}/sf2/fluidr3gm-single \ + ${datadir}/sf2/airfont_a320u-single \ +" + +FILES_${PN}-freepats-zenvoid-org = " \ + ${datadir}/sf2/acoustic_grand_piano_ydp_20080910.sf2 \ + ${datadir}/sf2/acoustic_piano_imis_1.sf2 \ +" + +FILES_${PN}-philscomputerlab-com = " \ + ${datadir}/sf2/weedsgm3.sf2 \ + ${datadir}/sf2/choriumreva.sf2 \ +" + +FILES_${PN}-philscomputerlab-com-single = " \ + ${datadir}/sf2/weedsgm3 \ +" + +FILES_${PN}-christiancollins = "${datadir}/sf2/general-user-gs-v1.471.sf2" + +FILES_${PN}-musical-artifacts = "${datadir}/sf2/Vintage-Dreams-Waves-V2.sf2" + diff --git a/recipes-musicians/soundtouch/soundtouch/0001-Fix-path-to-m4-macro-dir.patch b/recipes-musicians/soundtouch/soundtouch/0001-Fix-path-to-m4-macro-dir.patch new file mode 100644 index 0000000..44d66a2 --- /dev/null +++ b/recipes-musicians/soundtouch/soundtouch/0001-Fix-path-to-m4-macro-dir.patch @@ -0,0 +1,52 @@ +From e6a9d88cb4c1cd9b5ce09990acc4045acdfb00c9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 15 Nov 2018 19:51:30 +0100 +Subject: [PATCH] Fix path to m4 macro dir +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstrem-Status: Pending + +Signed-off-by: Andreas Müller +--- + Makefile.am | 4 ++-- + configure.ac | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 1394ce6..b3d148e 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -40,7 +40,7 @@ m4data_DATA=soundtouch.m4 + # NOTE: wouldn't have to list the .TXT file if it were named without the .TXT + EXTRA_DIST= \ + soundtouch.m4 \ +- config/m4 \ ++ config \ + bootstrap \ + make-win.bat \ + COPYING.TXT \ +@@ -61,5 +61,5 @@ dist-hook: + + + # flag to aclocal where to find m4 macros for tests +-ACLOCAL_AMFLAGS = -I config/m4 ++ACLOCAL_AMFLAGS = -I config + AUTOMAKE_OPTIONS = foreign +diff --git a/configure.ac b/configure.ac +index bd8023c..c17de73 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -21,7 +21,7 @@ LIB_SONAME=1 + AC_SUBST(LIB_SONAME) + + AC_CONFIG_AUX_DIR(config) +-AC_CONFIG_MACRO_DIR([config/m4]) ++AC_CONFIG_MACRO_DIR([config]) + AM_CONFIG_HEADER([config.h include/soundtouch_config.h]) + AM_INIT_AUTOMAKE + AM_SILENT_RULES([yes]) +-- +2.14.5 + diff --git a/recipes-musicians/soundtouch/soundtouch_git.bb b/recipes-musicians/soundtouch/soundtouch_git.bb new file mode 100644 index 0000000..bd440a1 --- /dev/null +++ b/recipes-musicians/soundtouch/soundtouch_git.bb @@ -0,0 +1,14 @@ +SUMMARY = "SoundTouch audio tempo/pitch control library" +HOMEPAGE = "http://www.surina.net/soundtouch/index.html" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING.TXT;md5=4d2892adf339c4489918ab705d44f66c" + +inherit autotools-brokensep pkgconfig gettext + +SRC_URI = " \ + git://gitlab.com/${BPN}/${BPN}.git \ + file://0001-Fix-path-to-m4-macro-dir.patch \ +" +SRCREV = "b9659b64c692aab50a91da44cc0ea6ba41309949" +PV = "2.1.1" +S = "${WORKDIR}/git" diff --git a/recipes-musicians/soxr/soxr_0.1.3.bb b/recipes-musicians/soxr/soxr_0.1.3.bb new file mode 100644 index 0000000..bb07867 --- /dev/null +++ b/recipes-musicians/soxr/soxr_0.1.3.bb @@ -0,0 +1,17 @@ +SUMMARY = "The SoX Resampler library" +HOMEPAGE = "https://sourceforge.net/projects/soxr/" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENCE;md5=1f6605fc6dfe53a780959dfef7061f77" + +inherit cmake + +SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BPN}-${PV}-Source.tar.xz" +SRC_URI[md5sum] = "3f16f4dcb35b471682d4321eda6f6c08" +SRC_URI[sha256sum] = "b111c15fdc8c029989330ff559184198c161100a59312f5dc19ddeb9b5a15889" + +S = "${WORKDIR}/${BPN}-${PV}-Source" + +EXTRA_OECMAKE += " \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ +" diff --git a/recipes-musicians/stk/files/0001-avoid-usr-usr-paths.patch b/recipes-musicians/stk/files/0001-avoid-usr-usr-paths.patch new file mode 100644 index 0000000..8fdceb8 --- /dev/null +++ b/recipes-musicians/stk/files/0001-avoid-usr-usr-paths.patch @@ -0,0 +1,41 @@ +From 9e17bf3e93be8492682f253a8cb07394d8e5ff6a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 8 Jan 2017 01:24:21 +0100 +Subject: [PATCH] avoid /usr/usr paths +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + src/Makefile.in | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/Makefile.in b/src/Makefile.in +index 739fa74..5657364 100755 +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -93,13 +93,13 @@ $(SHAREDLIB) : $(OBJECTS) + $(LN) -s @sharedname@ $(SHAREDLIB) + + install-headers: +- install -d $(DESTDIR)$(PREFIX)$(INCLUDEDIR)/stk +- cp -r ../include/*.h $(DESTDIR)$(PREFIX)$(INCLUDEDIR)/stk ++ install -d $(DESTDIR)$(INCLUDEDIR)/stk ++ cp -r ../include/*.h $(DESTDIR)$(INCLUDEDIR)/stk + + install: $(SHAREDLIB) install-headers +- install -d $(DESTDIR)$(PREFIX)$(LIBDIR) +- install -m 644 @sharedname@ $(DESTDIR)$(PREFIX)$(LIBDIR) +- ln -sf @sharedname@ $(DESTDIR)$(PREFIX)$(LIBDIR)/$(SHAREDLIB) ++ install -d $(DESTDIR)$(LIBDIR) ++ install -m 644 @sharedname@ $(DESTDIR)$(LIBDIR) ++ ln -sf @sharedname@ $(DESTDIR)$(LIBDIR)/$(SHAREDLIB) + + + $(OBJECTS) : Stk.h +-- +2.5.5 + diff --git a/recipes-musicians/stk/files/0002-configure.ac-fix-shared-library-name.patch b/recipes-musicians/stk/files/0002-configure.ac-fix-shared-library-name.patch new file mode 100644 index 0000000..5d68dba --- /dev/null +++ b/recipes-musicians/stk/files/0002-configure.ac-fix-shared-library-name.patch @@ -0,0 +1,37 @@ +From f85ca25ff74f3d3fc7dd021172a1459eb5f58bea Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 8 Jan 2017 01:42:07 +0100 +Subject: [PATCH] configure.ac: fix shared library name +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + configure.ac | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 39fba08..25ffd1a 100755 +--- a/configure.ac ++++ b/configure.ac +@@ -111,11 +111,11 @@ CXXFLAGS="$CXXFLAGS $cxxflag" + + AC_CANONICAL_HOST + +-basesharedname="libstk-\$(RELEASE)" ++basesharedname="libstk.so.\$(RELEASE)" + + AC_SUBST( sharedlib, ["libstk.so"] ) +-AC_SUBST( sharedname, [${basesharedname}.so] ) +-AC_SUBST( libflags, ["-shared -Wl,-soname,${basesharedname}.so -o $sharedname"] ) ++AC_SUBST( sharedname, [${basesharedname}] ) ++AC_SUBST( libflags, ["-shared -Wl,-soname,${basesharedname} -o $sharedname"] ) + case $host in + *-apple*) + AC_SUBST( sharedlib, ["libstk.dylib"] ) +-- +2.5.5 + diff --git a/recipes-musicians/stk/stk_4.5.1.bb b/recipes-musicians/stk/stk_4.5.1.bb new file mode 100644 index 0000000..244234a --- /dev/null +++ b/recipes-musicians/stk/stk_4.5.1.bb @@ -0,0 +1,20 @@ +SUMMARY = "The Synthesis ToolKit in C++" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a5f6d67a6d869bcfa305225149e2b4fb" + +SRC_URI = " \ + http://ccrma.stanford.edu/software/stk/release/${BPN}-${PV}.tar.gz \ + file://0001-avoid-usr-usr-paths.patch \ + file://0002-configure.ac-fix-shared-library-name.patch \ +" +SRC_URI[md5sum] = "87e1b1a24ec09f81321c01f2cdea513d" +SRC_URI[sha256sum] = "3466860901a181120d3bd0407e4aeb5ab24127a4350c314af106778c1db88594" + +inherit autotools-brokensep pkgconfig + +PACKAGECONFIG ??= "alsa jack" +PACKAGECONFIG[alsa] = "--with-alsa,--without-alsa,alsa-lib" +PACKAGECONFIG[jack] = "--with-jack,--without-jack,jack" + +DISABLE_STATIC = "" +EXTRA_OECONF = "--enable-realtime" diff --git a/recipes-musicians/supercollider/supercollider/0001-server-supernova-utilities-time_tag.hpp-Adding-stati.patch b/recipes-musicians/supercollider/supercollider/0001-server-supernova-utilities-time_tag.hpp-Adding-stati.patch new file mode 100644 index 0000000..965391e --- /dev/null +++ b/recipes-musicians/supercollider/supercollider/0001-server-supernova-utilities-time_tag.hpp-Adding-stati.patch @@ -0,0 +1,30 @@ +From bbcd068659ced596402dedc78f49fabfab6470bd Mon Sep 17 00:00:00 2001 +From: David Runge +Date: Sat, 29 Sep 2018 17:14:18 +0200 +Subject: [PATCH] server/supernova/utilities/time_tag.hpp: Adding static_cast + to long for time_duration offset in microseconds to satisfy boost >= 1.67.0. + +Upstream-Status: Applied [1] + +[1] https://github.com/supercollider/supercollider/commit/bbcd068659ced596402dedc78f49fabfab6470bd + +--- + server/supernova/utilities/time_tag.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/server/supernova/utilities/time_tag.hpp b/server/supernova/utilities/time_tag.hpp +index 33b1effd8..3d0f21dba 100644 +--- a/server/supernova/utilities/time_tag.hpp ++++ b/server/supernova/utilities/time_tag.hpp +@@ -229,7 +229,7 @@ public: + #ifdef BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG + time_duration offset = seconds(get_secs() - ntp_offset) + nanoseconds(get_nanoseconds()); + #else +- time_duration offset = seconds(get_secs() - ntp_offset) + microseconds(get_nanoseconds()/1000); ++ time_duration offset = seconds(get_secs() - ntp_offset) + microseconds(static_cast(get_nanoseconds()/1000)); + #endif + return ptime(base, offset); + } +-- +2.14.4 + diff --git a/recipes-musicians/supercollider/supercollider_git.bb b/recipes-musicians/supercollider/supercollider_git.bb new file mode 100644 index 0000000..8d0631f --- /dev/null +++ b/recipes-musicians/supercollider/supercollider_git.bb @@ -0,0 +1,58 @@ +SUMMARY = "Programming language for audio synthesis and algorithmic composition" +HOMEPAGE = "http://supercollider.github.io/" +LICENSE = "GPL-3.0" + +SRC_URI = " \ + gitsm://github.com/supercollider/supercollider.git \ + file://0001-server-supernova-utilities-time_tag.hpp-Adding-stati.patch \ +" +SRCREV = "a3b8ac73001f315ad01b29b81a97fbf7d03b709f" +PV = "3.10.0" +S = "${WORKDIR}/git/" + +LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit cmake_qt5 distro_features_check mime + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS += " \ + qttools-native qttools \ + qtbase \ + qtwebengine \ + qtsvg \ + fftw \ + jack \ + libsndfile1 \ + alsa-lib \ + libxt \ +" + +SIMD_OPTIONS ??= " \ + -DSSE=OFF \ + -DSSE2=OFF \ +" + +EXTRA_OECMAKE = "\ + -DCMAKE_BUILD_TYPE="Release" \ + -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ + -DBUILD_TESTING=OFF \ + -DENABLE_TESTSUITE=OFF \ + -DNATIVE=OFF \ + ${SIMD_OPTIONS} \ + -DSC_EL=OFF \ +" + +PACKAGES =+ "${PN}-gedit-plugin" + +FILES_${PN} += " \ + ${datadir}/gtksourceview-3.0 \ + ${datadir}/mime \ + ${datadir}/SuperCollider \ + ${libdir}/SuperCollider/plugins/*.so \ +" +INSANE_SKIP_${PN} = "useless-rpaths" + +FILES_${PN}-gedit-plugin = " \ + ${libdir}/gedit \ +" diff --git a/recipes-musicians/timidity++/files/0001-do-not-run-check-for-va_copy-this-is-not-allowed-in-.patch b/recipes-musicians/timidity++/files/0001-do-not-run-check-for-va_copy-this-is-not-allowed-in-.patch new file mode 100644 index 0000000..0d714f3 --- /dev/null +++ b/recipes-musicians/timidity++/files/0001-do-not-run-check-for-va_copy-this-is-not-allowed-in-.patch @@ -0,0 +1,105 @@ +From 4931f21b0fa6c29c934071525033dab77efbee38 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 23 Apr 2016 23:31:03 +0200 +Subject: [PATCH] do not run check for va_copy - this is not allowed in cross + environment +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + configure.in | 74 ------------------------------------------------------------ + 1 file changed, 74 deletions(-) + +diff --git a/configure.in b/configure.in +index 4f10340..9e03a78 100644 +--- a/configure.in ++++ b/configure.in +@@ -686,81 +686,7 @@ AC_CHECK_FUNC(open_memstream, [ + AC_DEFINE([HAVE_OPEN_MEMSTREAM],1,[Define to 1 if you have `open_memstream' function]) + ]) + +-dnl *** +-dnl *** va_copy checks (from GLIB) +-dnl *** +- +-AC_CACHE_CHECK([for an implementation of va_copy()],lib_cv_va_copy,[ +- AC_RUN_IFELSE([AC_LANG_SOURCE([[ +- #include +- void f (int i, ...) { +- va_list args1, args2; +- va_start (args1, i); +- va_copy (args2, args1); +- if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) +- exit (1); +- va_end (args1); va_end (args2); +- } +- int main() { +- f (0, 42); +- return 0; +- }]])], +- [lib_cv_va_copy=yes], +- [lib_cv_va_copy=no],[]) +-]) +- +-AC_CACHE_CHECK([for an implementation of __va_copy()],lib_cv___va_copy,[ +- AC_RUN_IFELSE([AC_LANG_SOURCE([[ +- #include +- void f (int i, ...) { +- va_list args1, args2; +- va_start (args1, i); +- __va_copy (args2, args1); +- if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) +- exit (1); +- va_end (args1); va_end (args2); +- } +- int main() { +- f (0, 42); +- return 0; +- }]])], +- [lib_cv___va_copy=yes], +- [lib_cv___va_copy=no],[]) +-]) +- +-if test "x$lib_cv_va_copy" = "xyes"; then +- va_copy_func=va_copy +-else if test "x$lib_cv___va_copy" = "xyes"; then +- va_copy_func=__va_copy +-fi +-fi + +-if test -n "$va_copy_func"; then +- AC_DEFINE_UNQUOTED(VA_COPY,$va_copy_func,[A 'va_copy' style function]) +-fi +- +-AC_CACHE_CHECK([whether va_lists can be copied by value],lib_cv_va_val_copy,[ +- AC_RUN_IFELSE([AC_LANG_SOURCE([[ +- #include +- void f (int i, ...) { +- va_list args1, args2; +- va_start (args1, i); +- args2 = args1; +- if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) +- exit (1); +- va_end (args1); va_end (args2); +- } +- int main() { +- f (0, 42); +- return 0; +- }]])], +- [lib_cv_va_val_copy=yes], +- [lib_cv_va_val_copy=no],[]) +-]) +- +-if test "x$lib_cv_va_val_copy" = "xno"; then +- AC_DEFINE(VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values]) +-fi + + # Checks on cygnus and MSYS + if test "x$MSYS" = xyes ; then +-- +2.5.5 + diff --git a/recipes-musicians/timidity++/files/0002-find-cross-calcnewt.patch b/recipes-musicians/timidity++/files/0002-find-cross-calcnewt.patch new file mode 100644 index 0000000..8c744a0 --- /dev/null +++ b/recipes-musicians/timidity++/files/0002-find-cross-calcnewt.patch @@ -0,0 +1,48 @@ +From 5c670df3951800766c1e7d031fb96a22b4d933bb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 24 Apr 2016 00:16:38 +0200 +Subject: [PATCH] find cross calcnewt +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + timidity/Makefile.am | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/timidity/Makefile.am b/timidity/Makefile.am +index 757dcb2..1b9f376 100644 +--- a/timidity/Makefile.am ++++ b/timidity/Makefile.am +@@ -444,21 +444,21 @@ resample.c: newton_table.c + + if VCPP + newton_table.c: calcnewt$(EXEEXT) +- ./calcnewt $@ ++ calcnewt $@ + + else + if POCC + newton_table.c: calcnewt$(EXEEXT) +- ./calcnewt $@ ++ calcnewt $@ + + else + if WATCOM_C + newton_table.c: calcnewt$(EXEEXT) +- ./calcnewt > $@ ++ calcnewt > $@ + + else + newton_table.c: calcnewt$(EXEEXT) +- ./calcnewt > $@ ++ calcnewt > $@ + + endif + endif +-- +2.5.5 + diff --git a/recipes-musicians/timidity++/files/0003-timidity-readmidi-zero-division-fix.patch b/recipes-musicians/timidity++/files/0003-timidity-readmidi-zero-division-fix.patch new file mode 100644 index 0000000..b51d360 --- /dev/null +++ b/recipes-musicians/timidity++/files/0003-timidity-readmidi-zero-division-fix.patch @@ -0,0 +1,27 @@ +From: Takashi Iwai +Subject: readmidi: Fix division by zero +References: CVE-2017-11546 + +An adhoc fix for division by zero in insert_note_steps(). + +Signed-off-by: Takashi Iwai + +Stolen from [1] + +[1] https://src.fedoraproject.org/cgit/rpms/timidity++.git/tree/timidity-readmidi-zero-division-fix.patch + +--- + timidity/readmidi.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/timidity/readmidi.c ++++ b/timidity/readmidi.c +@@ -4585,6 +4585,8 @@ static void insert_note_steps(void) + if (beat != 0) + meas++, beat = 0; + num = timesig[n].a, denom = timesig[n].b, n++; ++ if (!denom) ++ denom = 1; + } + a = (meas + 1) & 0xff; + b = (((meas + 1) >> 8) & 0x0f) + ((beat + 1) << 4); diff --git a/recipes-musicians/timidity++/files/0004-timidity-resample-frac-overflow-fix.patch b/recipes-musicians/timidity++/files/0004-timidity-resample-frac-overflow-fix.patch new file mode 100644 index 0000000..ff031ae --- /dev/null +++ b/recipes-musicians/timidity++/files/0004-timidity-resample-frac-overflow-fix.patch @@ -0,0 +1,60 @@ +From: Takashi Iwai +Subject: resample: Fix out-of-bound access in resamplers +References: CVE-2017-11547 + +An adhoc fix for out-of-bound accesses in resamples. +The offset might overflow the given data range. + +Signed-off-by: Takashi Iwai + +Stolen from [1] + +[1] https://src.fedoraproject.org/cgit/rpms/timidity++.git/tree/timidity-resample-frac-overflow-fix.patch + +--- a/timidity/resample.c ++++ b/timidity/resample.c +@@ -57,6 +57,8 @@ static resample_t resample_cspline(sample_t *src, splen_t ofs, resample_rec_t *r + { + int32 ofsi, ofsf, v0, v1, v2, v3, temp; + ++ if (ofs + (1 << FRACTION_BITS) >= rec->data_length) ++ return src[ofs >> FRACTION_BITS]; + ofsi = ofs >> FRACTION_BITS; + v1 = src[ofsi]; + v2 = src[ofsi + 1]; +@@ -96,6 +98,8 @@ static resample_t resample_lagrange(sample_t *src, splen_t ofs, resample_rec_t * + { + int32 ofsi, ofsf, v0, v1, v2, v3; + ++ if (ofs + (1 << FRACTION_BITS) >= rec->data_length) ++ return src[ofs >> FRACTION_BITS]; + ofsi = ofs >> FRACTION_BITS; + v1 = (int32)src[ofsi]; + v2 = (int32)src[ofsi + 1]; +@@ -154,6 +158,8 @@ static resample_t resample_gauss(sample_t *src, splen_t ofs, resample_rec_t *rec + sample_t *sptr; + int32 left, right, temp_n; + ++ if (ofs + (1 << FRACTION_BITS) >= rec->data_length) ++ return src[ofs >> FRACTION_BITS]; + left = (ofs>>FRACTION_BITS); + right = (rec->data_length>>FRACTION_BITS) - left - 1; + temp_n = (right<<1)-1; +@@ -261,6 +267,8 @@ static resample_t resample_newton(sample_t *src, splen_t ofs, resample_rec_t *re + int32 left, right, temp_n; + int ii, jj; + ++ if (ofs + (1 << FRACTION_BITS) >= rec->data_length) ++ return src[ofs >> FRACTION_BITS]; + left = (ofs>>FRACTION_BITS); + right = (rec->data_length>>FRACTION_BITS)-(ofs>>FRACTION_BITS)-1; + temp_n = (right<<1)-1; +@@ -330,6 +338,8 @@ static resample_t resample_linear(sample_t *src, splen_t ofs, resample_rec_t *re + { + int32 v1, v2, ofsi; + ++ if (ofs + (1 << FRACTION_BITS) >= rec->data_length) ++ return src[ofs >> FRACTION_BITS]; + ofsi = ofs >> FRACTION_BITS; + v1 = src[ofsi]; + v2 = src[ofsi + 1]; diff --git a/recipes-musicians/timidity++/files/timidity.desktop b/recipes-musicians/timidity++/files/timidity.desktop new file mode 100644 index 0000000..6a3e5d5 --- /dev/null +++ b/recipes-musicians/timidity++/files/timidity.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=TiMidity++ GTK UI +Comment=Real-time software synthesizer +Icon=timidity +Type=Application +Exec=timidity -ig +Terminal=false +Categories=Audio;AudioVideo;Midi;X-Synthesis;X-Jack; diff --git a/recipes-musicians/timidity++/timidity++-native.bb b/recipes-musicians/timidity++/timidity++-native.bb new file mode 100644 index 0000000..9389d24 --- /dev/null +++ b/recipes-musicians/timidity++/timidity++-native.bb @@ -0,0 +1,20 @@ +require ${BPN}.inc + +inherit native + +B = "${WORKDIR}/build" + +do_configure() { + mkdir -p ${B} + cp -f ${S}/timidity/calcnewt.c ${B} +} + +do_compile() { + cd ${B} + ${CC} -o calcnewt calcnewt.c -lm +} + +do_install() { + install -d ${D}${bindir} + install ${B}/calcnewt ${D}${bindir} +} diff --git a/recipes-musicians/timidity++/timidity++.bb b/recipes-musicians/timidity++/timidity++.bb new file mode 100644 index 0000000..887fde3 --- /dev/null +++ b/recipes-musicians/timidity++/timidity++.bb @@ -0,0 +1,40 @@ +require ${BPN}.inc + +DEPENDS += " \ + ${BPN}-native \ + gtk+ \ + alsa-lib \ + jack \ +" + +inherit autotools pkgconfig + +SRC_URI += " \ + file://timidity.desktop \ + file://0001-do-not-run-check-for-va_copy-this-is-not-allowed-in-.patch \ + file://0002-find-cross-calcnewt.patch \ +" + +# maybe add further on --enable-audio later +EXTRA_OECONF += " \ + --disable-alsatest \ + --enable-audio=alsa,jack \ + --with-module-dir=${libdir}/${BPN} \ + --enable-dynamic=gtk \ + --enable-alsaseq \ +" + +CFLAGS += '-DCONFIG_FILE=\\"${sysconfdir}/timidity++.cfg\\"' + +do_configure_prepend() { + export SHLDFLAGS="${LDFLAGS}" +} + +do_install_append() { + install -d ${D}/${datadir}/applications + install ${WORKDIR}/timidity.desktop ${D}/${datadir}/applications + + # timidity++ needs at least an empty file + install -d ${D}/${sysconfdir} + touch ${D}/${sysconfdir}/timidity++.cfg +} diff --git a/recipes-musicians/timidity++/timidity++.inc b/recipes-musicians/timidity++/timidity++.inc new file mode 100644 index 0000000..3079f5c --- /dev/null +++ b/recipes-musicians/timidity++/timidity++.inc @@ -0,0 +1,18 @@ +SUMMARY = "A software wavetable MIDI synthesizer" +HOMEPAGE = "http://timidity.sourceforge.net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +PV = "2.14.0" + +UPSTREAM_PN = "TiMidity++" + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/timidity/${UPSTREAM_PN}/${UPSTREAM_PN}-${PV}/${UPSTREAM_PN}-${PV}.tar.xz \ + file://0003-timidity-readmidi-zero-division-fix.patch \ + file://0004-timidity-resample-frac-overflow-fix.patch \ +" +SRC_URI[md5sum] = "27927182d62ba24abbf447a9e9919c53" +SRC_URI[sha256sum] = "abf0c8367959e85c9e635b8fbd5183fc27bd380e0ef5e45de4158784538c86fc" + +S = "${WORKDIR}/${UPSTREAM_PN}-${PV}" diff --git a/recipes-musicians/tomahawk/files/0001-use-pkg-config-to-find-taglib.patch b/recipes-musicians/tomahawk/files/0001-use-pkg-config-to-find-taglib.patch new file mode 100644 index 0000000..6fffd8d --- /dev/null +++ b/recipes-musicians/tomahawk/files/0001-use-pkg-config-to-find-taglib.patch @@ -0,0 +1,32 @@ +From 1133bce9e352a88e4e3321d04d9d28f38d2d8fc9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 24 Nov 2016 21:15:38 +0100 +Subject: [PATCH] use pkg-config to find taglib +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ad5d918..c56e405 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -326,7 +326,8 @@ if( NOT TOMAHAWK_QT5 ) + macro_log_feature(QJSON_FOUND "QJson" "Qt library that maps JSON data to QVariant objects" "http://qjson.sf.net" TRUE "" "libqjson is used for encoding communication between Tomahawk instances") + ENDIF() + +-macro_optional_find_package(Taglib 1.8.0) ++find_package(PkgConfig) ++pkg_check_modules(TAGLIB taglib) + macro_log_feature(TAGLIB_FOUND "TagLib" "Audio Meta-Data Library" "http://developer.kde.org/~wheeler/taglib.html" TRUE "" "taglib is needed for reading meta data from audio files") + include( CheckTagLibFileName ) + check_taglib_filename( COMPLEX_TAGLIB_FILENAME ) +-- +2.5.5 + diff --git a/recipes-musicians/tomahawk/tomahawk_git.bb b/recipes-musicians/tomahawk/tomahawk_git.bb new file mode 100644 index 0000000..a38b4a5 --- /dev/null +++ b/recipes-musicians/tomahawk/tomahawk_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "Tomahawk, the multi-source music player" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9eef91148a9b14ec7f9df333daebc746" + +DEPENDS += " \ + qtbase \ + quazip \ + taglib \ +" + +SRC_URI = " \ + git://github.com/tomahawk-player/${BPN}.git;protocol=git \ + file://0001-use-pkg-config-to-find-taglib.patch \ +" +SRCREV = "7e96285132921936b3a62202d894d5288e5890d2" +PV ="0.8.99+git${SRCPV}" + +S = "${WORKDIR}/git" + +inherit cmake_qt5 + +CMAKE_FLAGS = " \ + -DQUAZIP_INCLUDE_DIRS=${includedir}/quazip \ + -DQUAZIP_LIBRARIES=${libdir} \ +" diff --git a/recipes-musicians/triceratops/triceratops-lv2/0001-Replace-lv2core-by-lv2.patch b/recipes-musicians/triceratops/triceratops-lv2/0001-Replace-lv2core-by-lv2.patch new file mode 100644 index 0000000..25849fa --- /dev/null +++ b/recipes-musicians/triceratops/triceratops-lv2/0001-Replace-lv2core-by-lv2.patch @@ -0,0 +1,43 @@ +From d6671a285d8c2f5c42f2f55e490a98afab758324 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 18 Jan 2019 18:05:18 +0100 +Subject: [PATCH] Replace lv2core by lv2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When building lv2 from git, triceratops fails because it cannot find lv2 any +more. + +Reason: lv2core.pc was removed in lv2 [1]. + +Using lv2.pc works perfectly fine - the contents of both files in lv2 version +1.14 are similar from pkg-config point of view. + +[1] https://github.com/drobilla/lv2/commit/4db67120efca2d4c200d2e1ba5cf3d7b97cab97e + +Upstream-Status: submitted [2] + +[2] https://github.com/thunderox/triceratops/pull/4 + +Signed-off-by: Andreas Müller +--- + wscript | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/wscript b/wscript +index 8dd3385..3f48ca8 100644 +--- a/wscript ++++ b/wscript +@@ -34,7 +34,7 @@ def configure(conf): + conf.env.append_unique('CXXFLAGS', ['-fPIC','-fpermissive','-finline-functions']) + + if not autowaf.is_child(): +- autowaf.check_pkg(conf, 'lv2core', uselib_store='LV2CORE') ++ autowaf.check_pkg(conf, 'lv2', uselib_store='LV2CORE') + autowaf.check_pkg(conf, 'gtkmm-2.4', uselib_store='GTKMM') + + # Set env['pluginlib_PATTERN'] +-- +2.20.1 + diff --git a/recipes-musicians/triceratops/triceratops-lv2_0.3.1.bb b/recipes-musicians/triceratops/triceratops-lv2_0.3.1.bb new file mode 100644 index 0000000..fd9e4e7 --- /dev/null +++ b/recipes-musicians/triceratops/triceratops-lv2_0.3.1.bb @@ -0,0 +1,28 @@ +SUMMARY = "Polyphonic synthesizer LV2 plugin" +HOMEPAGE = "http://thunderox.com/thor/?q=node/2" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS += " \ + gtkmm \ + jack \ + lv2 \ + liblo \ +" + +inherit waf pkgconfig + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/triceratops/${BPN}-v${PV}.tar.gz;subdir=${BPN}-${PV} \ + file://0001-Replace-lv2core-by-lv2.patch \ +" +SRC_URI[md5sum] = "cdd3e94b05247061820e17d7c3d900e4" +SRC_URI[sha256sum] = "0f678f2bebf5cd1e7aa3de82afa8bcbca64302cafb92d53dbb49143361517033" + +EXTRA_OECONF = "\ + --libdir=${libdir} \ +" + +FILES_${PN} += " \ + ${libdir}/lv2 \ +" diff --git a/recipes-musicians/vamp-plugin-sdk/files/0001-do-not-perform-test-it-tries-to-run-cross-binaries.patch b/recipes-musicians/vamp-plugin-sdk/files/0001-do-not-perform-test-it-tries-to-run-cross-binaries.patch new file mode 100644 index 0000000..e1f5c88 --- /dev/null +++ b/recipes-musicians/vamp-plugin-sdk/files/0001-do-not-perform-test-it-tries-to-run-cross-binaries.patch @@ -0,0 +1,31 @@ +From ff9690f643d36aefe01494c3f4ae639888448f2a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 18 Sep 2016 20:05:35 +0200 +Subject: [PATCH] do not perform test - it tries to run cross binaries +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross-specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 7cba23b..a84120d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -25,7 +25,7 @@ if test "x$PROGS_ARGUMENT" = "xyes" ; then + PKG_CHECK_MODULES([SNDFILE],[sndfile],have_sndfile="yes",have_sndfile="no") + if test "x$have_sndfile" = "xyes" ; then + dnl all good, build everything +- TARGETS="sdk plugins host rdfgen test" ++ TARGETS="sdk plugins host rdfgen" + else + dnl no libsndfile - can't build host! + AC_MSG_ERROR([libsndfile not found - cannot build example Vamp host! +-- +2.5.5 + diff --git a/recipes-musicians/vamp-plugin-sdk/vamp-plugin-sdk_2.7.1.bb b/recipes-musicians/vamp-plugin-sdk/vamp-plugin-sdk_2.7.1.bb new file mode 100644 index 0000000..d556963 --- /dev/null +++ b/recipes-musicians/vamp-plugin-sdk/vamp-plugin-sdk_2.7.1.bb @@ -0,0 +1,25 @@ +SUMMARY = "The Vamp audio analysis plugin system - SDK" +HOMEPAGE = "http://www.vamp-plugins.org/develop.html" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=af2765066122f0233483605ef6d299fa" + +inherit autotools-brokensep pkgconfig + +DEPENDS = "libsndfile1" + +SRC_URI = " \ + https://code.soundsoftware.ac.uk/attachments/download/2206/${BPN}-${PV}.tar.gz \ + file://0001-do-not-perform-test-it-tries-to-run-cross-binaries.patch \ +" +SRC_URI[md5sum] = "41129f07c252dd721ea81ef0265777fd" +SRC_URI[sha256sum] = "c6fef3ff79d2bf9575ce4ce4f200cbf219cbe0a21cfbad5750e86ff8ae53cb0b" + +do_compile() { + oe_runmake sdk plugins host rdfgen +} + +do_install() { + oe_runmake 'DESTDIR=${D}' 'INSTALL_SDK_LIBS=${libdir}' 'INSTALL_PLUGINS=${libdir}/vamp' 'INSTALL_PKGCONFIG=${libdir}/pkgconfig' install +} + +FILES_${PN} += "${libdir}/vamp" diff --git a/recipes-musicians/wolf-shaper/wolf-shaper_git.bb b/recipes-musicians/wolf-shaper/wolf-shaper_git.bb new file mode 100644 index 0000000..729ac20 --- /dev/null +++ b/recipes-musicians/wolf-shaper/wolf-shaper_git.bb @@ -0,0 +1,44 @@ +SUMMARY = "Wolf Shaper is a waveshaper plugin with a graph editor" +HOMEPAGE = "https://pdesaulniers.github.io/wolf-shaper/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4fe869ee987a340198fb0d54c55c47f1" + +DEPENDS = " \ + jack \ + dssi \ + lv2 \ +" + +inherit pkgconfig qemu-ext pack_audio_plugins + +SRC_URI = "gitsm://github.com/pdesaulniers/wolf-shaper.git" +SRCREV = "d0b46c9ece642488efed3cd255df22516966b334" +S = "${WORKDIR}/git" +PV = "0.1.7" + +export PREFIX="${prefix}" + +do_compile() { + rm -f ${WORKDIR}/lv2_ttl_generator-data + # manipulate scripts to keep lv2_ttl_generator-calls in script for qemu + sed -i 's|"$GEN" "./$FILE"|echo `pwd`/$FILE >> ${WORKDIR}/lv2_ttl_generator-data|g' ${S}/dpf/utils/generate-ttl.sh + + NOOPT=true \ + SKIP_STRIPPING=true \ + BUILD_VST2=true \ + BUILD_LV2=true \ + BUILD_DSSI=true \ + BUILD_JACK=true \ + oe_runmake + + # build ttl-files must be done in quemu + for sofile in `cat ${WORKDIR}/lv2_ttl_generator-data`; do + cd `dirname ${sofile}` + echo "QEMU lv2_ttl_generator for ${sofile}..." + ${@qemu_run_binary_local(d, '${STAGING_DIR_TARGET}', '${S}/dpf/utils/lv2_ttl_generator')} ${sofile} || echo "ERROR: for QEMU lv2_ttl_generator for ${sofile}!" + done +} + +do_install() { + oe_runmake DESTDIR=${D} PREFIX=${prefix} install +} diff --git a/recipes-musicians/x42/avldrums.lv2_git.bb b/recipes-musicians/x42/avldrums.lv2_git.bb new file mode 100644 index 0000000..9cb416f --- /dev/null +++ b/recipes-musicians/x42/avldrums.lv2_git.bb @@ -0,0 +1,31 @@ +SUMMARY = "Dedicated AVLDrumkits LV2 Plugin" +HOMEPAGE = "http://x42-plugins.com/x42/x42-avldrums" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit pkgconfig + +DEPENDS += " \ + virtual/libgl \ + libglu \ + glib-2.0 \ + pango \ + cairo \ + lv2 \ +" + +SRC_URI = "gitsm://github.com/x42/avldrums.lv2.git" +SRCREV = "4fefc621d4eb281521b591efa863a25383894882" +PV = "0.3.1" +S = "${WORKDIR}/git" + +EXTRA_OEMAKE += " \ + STRIP=echo \ + OPTIMIZATIONS= \ +" + +do_install() { + oe_runmake DESTDIR=${D} PREFIX=${prefix} LV2DIR=${libdir}/lv2 install +} + +FILES_${PN} += "${libdir}/lv2" diff --git a/recipes-musicians/x42/dpl.lv2_git.bb b/recipes-musicians/x42/dpl.lv2_git.bb new file mode 100644 index 0000000..d5eba5f --- /dev/null +++ b/recipes-musicians/x42/dpl.lv2_git.bb @@ -0,0 +1,30 @@ +SUMMARY = "Digital Peak Limiter LV2 Plugin" +HOMEPAGE = "https://x42-plugins.com/x42/x42-limiter" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=9eef91148a9b14ec7f9df333daebc746" + +inherit pkgconfig + +DEPENDS += " \ + libglu \ + cairo \ + pango \ + lv2 \ + jack \ +" + +SRC_URI = "gitsm://github.com/x42/dpl.lv2.git" +SRCREV = "960f87c51ce3243dadeeedc16bb48608da462ed4" +PV = "0.2.2+git${SRCPV}" +S = "${WORKDIR}/git" + +EXTRA_OEMAKE += " \ + STRIP=echo \ + OPTIMIZATIONS= \ +" + +do_install() { + oe_runmake DESTDIR=${D} PREFIX=${prefix} LV2DIR=${libdir}/lv2 install +} + +FILES_${PN} += "${libdir}/lv2" diff --git a/recipes-musicians/x42/fil4.lv2_git.bb b/recipes-musicians/x42/fil4.lv2_git.bb new file mode 100644 index 0000000..deac3b1 --- /dev/null +++ b/recipes-musicians/x42/fil4.lv2_git.bb @@ -0,0 +1,33 @@ +SUMMARY = "4 Band Parametric EQ" +HOMEPAGE = "http://x42-plugins.com/x42/x42-eq" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit pkgconfig + +DEPENDS += " \ + virtual/libgl \ + libglu \ + glib-2.0 \ + pango \ + cairo \ + lv2 \ + jack \ + fftw \ +" + +SRC_URI = "gitsm://github.com/x42/fil4.lv2.git" +SRCREV = "797f63d47c47d8676fdbad3ab7595398e8dd99cc" +PV = "0.6.1" +S = "${WORKDIR}/git" + +EXTRA_OEMAKE += " \ + STRIP=echo \ + OPTIMIZATIONS= \ +" + +do_install() { + oe_runmake DESTDIR=${D} PREFIX=${prefix} LV2DIR=${libdir}/lv2 install +} + +FILES_${PN} += "${libdir}/lv2" diff --git a/recipes-musicians/x42/libltc_1.3.0.bb b/recipes-musicians/x42/libltc_1.3.0.bb new file mode 100644 index 0000000..30f2a4f --- /dev/null +++ b/recipes-musicians/x42/libltc_1.3.0.bb @@ -0,0 +1,11 @@ +SUMMARY = "Linear/Logitudinal Time Code (LTC) Library" +HOMEPAGE = "http://x42.github.io/libltc/" +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6" + +inherit autotools + +SRC_URI = "https://github.com/x42/libltc/releases/download/v${PV}/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "7c95bfbf0240b9ab34dc5730311a8307" +SRC_URI[sha256sum] = "aab1de052bc61fbac6ea66d88f04e95b7d5faa1ef297b95ea6a1a548c87dee5c" + diff --git a/recipes-musicians/x42/meters.lv2_git.bb b/recipes-musicians/x42/meters.lv2_git.bb new file mode 100644 index 0000000..335bc51 --- /dev/null +++ b/recipes-musicians/x42/meters.lv2_git.bb @@ -0,0 +1,33 @@ +SUMMARY = "Collection of LV2 plugins for audio-level metering" +HOMEPAGE = "http://x42.github.io/meters.lv2/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit pkgconfig + +DEPENDS += " \ + virtual/libgl \ + libglu \ + glib-2.0 \ + pango \ + cairo \ + lv2 \ + jack \ + fftw \ +" + +SRC_URI = "gitsm://github.com/x42/meters.lv2.git" +SRCREV = "8df3ba60a2be6fd0b040d12c15a3db162b725845" +PV = "0.9.8" +S = "${WORKDIR}/git" + +EXTRA_OEMAKE += " \ + STRIP=echo \ + OPTIMIZATIONS= \ +" + +do_install() { + oe_runmake DESTDIR=${D} PREFIX=${prefix} LV2DIR=${libdir}/lv2 install +} + +FILES_${PN} += "${libdir}/lv2" diff --git a/recipes-musicians/x42/midifilter.lv2_git.bb b/recipes-musicians/x42/midifilter.lv2_git.bb new file mode 100644 index 0000000..57b4225 --- /dev/null +++ b/recipes-musicians/x42/midifilter.lv2_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "LV2 plugins to filter midi events" +HOMEPAGE = "http://x42.github.io/midifilter.lv2/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=4641e94ec96f98fabc56ff9cc48be14b" + +inherit pkgconfig + +DEPENDS += "lv2" + +SRC_URI = " \ + git://github.com/x42/midifilter.lv2.git \ +" +SRCREV = "8bfe1d8e3d37467741cdec9de98e5b6b264bc3f9" +PV = "0.5.2" +S = "${WORKDIR}/git" + +EXTRA_OEMAKE += " \ + STRIP=echo \ +" + +do_install() { + oe_runmake DESTDIR=${D} PREFIX=${prefix} LV2DIR=${libdir}/lv2 install +} + +FILES_${PN} += "${libdir}/lv2" diff --git a/recipes-musicians/x42/sisco.lv2_git.bb b/recipes-musicians/x42/sisco.lv2_git.bb new file mode 100644 index 0000000..13ddb14 --- /dev/null +++ b/recipes-musicians/x42/sisco.lv2_git.bb @@ -0,0 +1,29 @@ +SUMMARY = "Simple Scope" +HOMEPAGE = "http://x42.github.io/sisco.lv2/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit pkgconfig + +DEPENDS += " \ + virtual/libgl \ + libglu \ + lv2 \ + jack \ +" + +SRC_URI = "gitsm://github.com/x42/sisco.lv2.git" +SRCREV = "09a4731240a6677938f1ee8ca37c90b9efef38ff" +PV = "0.8.0" +S = "${WORKDIR}/git" + +EXTRA_OEMAKE += " \ + STRIP=echo \ + OPTIMIZATIONS= \ +" + +do_install() { + oe_runmake DESTDIR=${D} PREFIX=${prefix} LV2DIR=${libdir}/lv2 install +} + +FILES_${PN} += "${libdir}/lv2" diff --git a/recipes-musicians/x42/tuna.lv2_git.bb b/recipes-musicians/x42/tuna.lv2_git.bb new file mode 100644 index 0000000..c3f4d2c --- /dev/null +++ b/recipes-musicians/x42/tuna.lv2_git.bb @@ -0,0 +1,33 @@ +SUMMARY = "Musical Instrument Tuner" +HOMEPAGE = "http://x42-plugins.com/x42/x42-tuner" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit pkgconfig + +DEPENDS += " \ + virtual/libgl \ + libglu \ + glib-2.0 \ + pango \ + cairo \ + lv2 \ + jack \ + fftw \ +" + +SRC_URI = "gitsm://github.com/x42/tuna.lv2.git" +SRCREV = "5c4fe60420ca3ac7c544d81eff31e31896f21df7" +PV = "0.4.8" +S = "${WORKDIR}/git" + +EXTRA_OEMAKE += " \ + STRIP=echo \ + OPTIMIZATIONS= \ +" + +do_install() { + oe_runmake DESTDIR=${D} PREFIX=${prefix} LV2DIR=${libdir}/lv2 install +} + +FILES_${PN} += "${libdir}/lv2" diff --git a/recipes-musicians/ykchorus/ykchorus_git.bb b/recipes-musicians/ykchorus/ykchorus_git.bb new file mode 100644 index 0000000..a178270 --- /dev/null +++ b/recipes-musicians/ykchorus/ykchorus_git.bb @@ -0,0 +1,39 @@ +SUMMARY = "A chorus audio effect plugin based on DSP code by Togu Audio Line (TAL)" +HOMEPAGE = "https://github.com/SpotlightKid/ykchorus" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=02ad2afd072e9ce4a370bedb49e2b075" + +inherit pkgconfig gtk-icon-cache qemu-ext pack_audio_plugins + +DEPENDS += " \ + liblo \ + jack \ + virtual/libgl \ +" + +SRC_URI = "gitsm://github.com/SpotlightKid/ykchorus.git" +SRCREV = "a6b1027e327f5118bbe48ae01e9fa58e14f93479" +PV = "0.2.2+git${SRCPV}" +S = "${WORKDIR}/git" + +do_compile() { + rm -f ${WORKDIR}/lv2_ttl_generator-data + # manipulate scripts to keep lv2_ttl_generator-calls in script for qemu + sed -i 's|"$GEN" "./$FILE"|echo `pwd`/$FILE >> ${WORKDIR}/lv2_ttl_generator-data|g' ${S}/dpf/utils/generate-ttl.sh + + PREFIX=${prefix} \ + NOOPT=true \ + SKIP_STRIPPING=true \ + oe_runmake + + # build ttl-files must be done in quemu + for sofile in `cat ${WORKDIR}/lv2_ttl_generator-data`; do + cd `dirname ${sofile}` + echo "QEMU lv2_ttl_generator for ${sofile}..." + ${@qemu_run_binary_local(d, '${STAGING_DIR_TARGET}', '${S}/dpf/utils/lv2_ttl_generator')} ${sofile} || echo "ERROR: for QEMU lv2_ttl_generator for ${sofile}!" + done +} + +do_install() { + oe_runmake DESTDIR=${D} PREFIX=${prefix} LIBDIR=${libdir} install +} diff --git a/recipes-musicians/yoshimi/yoshimi_1.5.10.2.bb b/recipes-musicians/yoshimi/yoshimi_1.5.10.2.bb new file mode 100644 index 0000000..7faa774 --- /dev/null +++ b/recipes-musicians/yoshimi/yoshimi_1.5.10.2.bb @@ -0,0 +1,35 @@ +SUMMARY = "Yoshimi is a software synthesizer for Linux, a fork of ZynAddSubFX" +HOMEPAGE = "http://yoshimi.sourceforge.net/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=4c5f39c482ca5ca058c1ebd39612cf98" + +inherit cmake qemu-ext pkgconfig gtk-icon-cache distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS += " \ + alsa-lib \ + fftw \ + jack \ + dssi \ + lv2 \ + cairo \ + fltk fltk-native \ + libmxml \ + libpng jpeg \ + libxrender \ + libxft \ +" + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/1.5/${BPN}-${PV}.tar.bz2 \ +" +SRC_URI[md5sum] = "953662f7552f4f55851554ee76215bfd" +SRC_URI[sha256sum] = "0128bff8926e19344058499756772ba11e6055678cf4b1a3a0480384274e29e7" + +OECMAKE_SOURCEPATH = "${S}/src" + +FILES_${PN} += " \ + ${datadir}/metainfo \ + ${libdir}/lv2 \ +" diff --git a/recipes-musicians/zam-plugins/zam-plugins/0001-remove-useles-braces-in-macros.patch b/recipes-musicians/zam-plugins/zam-plugins/0001-remove-useles-braces-in-macros.patch new file mode 100644 index 0000000..6b4e7cf --- /dev/null +++ b/recipes-musicians/zam-plugins/zam-plugins/0001-remove-useles-braces-in-macros.patch @@ -0,0 +1,57 @@ +From be9c101225336c415dd63647c67206ad3d4d7f66 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 5 Jan 2019 19:44:15 +0100 +Subject: [PATCH] remove useles braces in macros +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +recent complilers don't like them: + +../../dpf/distrho/src/lv2/atom-util.h:334:2: note: in expansion of macro 'LV2_ATOM_OBJECT_FOREACH' + LV2_ATOM_OBJECT_FOREACH(object, prop) { + ^~~~~~~~~~~~~~~~~~~~~~~ +../../dpf/distrho/src/lv2/atom-util.h: In function 'int lv2_atom_object_body_get(uint32_t, const LV2_Atom_Object_Body*, ...)': +../../dpf/distrho/src/lv2/atom-util.h:279:37: warning: unnecessary parentheses in declaration of 'prop' [-Wparentheses] + for (const LV2_Atom_Property_Body* (iter) = lv2_atom_object_begin(body); \ + ^ +../../dpf/distrho/src/lv2/atom-util.h:367:2: note: in expansion of macro 'LV2_ATOM_OBJECT_BODY_FOREACH' + LV2_ATOM_OBJECT_BODY_FOREACH(body, size, prop) { + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ +../../dpf/distrho/src/lv2/atom-util.h: In function 'int lv2_atom_object_get(const LV2_Atom_Object*, ...)': +../../dpf/distrho/src/lv2/atom-util.h:273:37: warning: unnecessary parentheses in declaration of 'prop' [-Wparentheses] + for (const LV2_Atom_Property_Body* (iter) = lv2_atom_object_begin(&(obj)->body); \ + ^ + +Sent/applied @ DPF [1] + +[1] https://github.com/DISTRHO/DPF/pull/98 + +Signed-off-by: Andreas Müller +--- + dpf/distrho/src/lv2/atom-util.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/dpf/distrho/src/lv2/atom-util.h b/dpf/distrho/src/lv2/atom-util.h +index c47c0f6..1353687 100644 +--- a/dpf/distrho/src/lv2/atom-util.h ++++ b/dpf/distrho/src/lv2/atom-util.h +@@ -270,13 +270,13 @@ lv2_atom_object_next(const LV2_Atom_Property_Body* i) + @endcode + */ + #define LV2_ATOM_OBJECT_FOREACH(obj, iter) \ +- for (const LV2_Atom_Property_Body* (iter) = lv2_atom_object_begin(&(obj)->body); \ ++ for (const LV2_Atom_Property_Body* iter = lv2_atom_object_begin(&(obj)->body); \ + !lv2_atom_object_is_end(&(obj)->body, (obj)->atom.size, (iter)); \ + (iter) = lv2_atom_object_next(iter)) + + /** Like LV2_ATOM_OBJECT_FOREACH but for a headerless object body. */ + #define LV2_ATOM_OBJECT_BODY_FOREACH(body, size, iter) \ +- for (const LV2_Atom_Property_Body* (iter) = lv2_atom_object_begin(body); \ ++ for (const LV2_Atom_Property_Body* iter = lv2_atom_object_begin(body); \ + !lv2_atom_object_is_end(body, size, (iter)); \ + (iter) = lv2_atom_object_next(iter)) + +-- +2.20.1 + diff --git a/recipes-musicians/zam-plugins/zam-plugins_git.bb b/recipes-musicians/zam-plugins/zam-plugins_git.bb new file mode 100644 index 0000000..1b740be --- /dev/null +++ b/recipes-musicians/zam-plugins/zam-plugins_git.bb @@ -0,0 +1,57 @@ +SUMMARY = "Collection of LADSPA/LV2/VST/JACK audio plugins for high-quality processing" +HOMEPAGE = "http://www.zamaudio.com/?p=976" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS += " \ + virtual/libx11 \ + virtual/libgl \ + liblo \ + jack \ + ladspa-sdk \ + rubberband \ + libsamplerate0 \ + libsndfile1 \ + fftw \ + zita-convolver \ +" + +inherit pkgconfig qemu-ext distro_features_check pack_audio_plugins + +REQUIRED_DISTRO_FEATURE = "x11" + +SRC_URI = " \ + gitsm://github.com/zamaudio/${BPN}.git \ + file://0001-remove-useles-braces-in-macros.patch \ +" +SRCREV = "96ec0c7dbc9c034bc8716309b92fda84bb27cf92" +S = "${WORKDIR}/git" +PV = "3.10+git${SRCPV}" + +do_configure_prepend() { + rm -f ${WORKDIR}/lv2_ttl_generator-data + # manipulate scripts to keep lv2_ttl_generator-calls in script for qemu + sed -i 's|"$GEN" "./$FILE"|echo `pwd`/$FILE >> ${WORKDIR}/lv2_ttl_generator-data|g' ${S}/dpf/utils/generate-ttl.sh +} + + +EXTRA_OEMAKE += " \ + NOOPT=true \ + SKIP_STRIPPING=true \ +" + +do_compile_append() { + # build ttl-files must be done in quemu + for sofile in `cat ${WORKDIR}/lv2_ttl_generator-data`; do + cd `dirname ${sofile}` + echo "QEMU lv2_ttl_generator for ${sofile}..." + ${@qemu_run_binary_local(d, '${STAGING_DIR_TARGET}', '${S}/dpf/utils/lv2_ttl_generator')} ${sofile} || echo "ERROR: for QEMU lv2_ttl_generator for ${sofile}!" + done +} + +do_install() { + ${MAKE} DESTDIR=${D} PREFIX= LIBDIR=${libdir} BINDIR=${bindir} install +} + +PACKAGES =+ "${PN}-standalone" +FILES_${PN}-standalone = "${bindir}" diff --git a/recipes-musicians/zyn/mruby-zest-native.bb b/recipes-musicians/zyn/mruby-zest-native.bb new file mode 100644 index 0000000..8392611 --- /dev/null +++ b/recipes-musicians/zyn/mruby-zest-native.bb @@ -0,0 +1,14 @@ +require ${BPN}.inc + +inherit native + +DEPENDS += " \ + libuv-native \ +" + +SRC_URI += "file://0004-Native-Do-not-build-X11-dependent-zest-libzest.so.patch" + +do_install() { + install -d ${D}${bindir} + install -m 755 ${B}/mruby/build/host/bin/mrbc ${D}${bindir}/mrbc-zest +} diff --git a/recipes-musicians/zyn/mruby-zest.bb b/recipes-musicians/zyn/mruby-zest.bb new file mode 100644 index 0000000..cb29fb9 --- /dev/null +++ b/recipes-musicians/zyn/mruby-zest.bb @@ -0,0 +1,63 @@ +require ${BPN}.inc + +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +inherit autotools-brokensep distro_features_check + +SRC_URI += " \ + file://0005-mruby-Use-native-mrbc.patch \ + file://0006-mruby-regexp-pcre-link-against-libpcre.patch \ + file://0007-Load-schema-from-usr-share-zyn-fusion-schema.patch \ + file://0008-Do-not-require-dummy-MainWindow.qml.patch \ +" + +DEPENDS += " \ + ${BPN}-native \ + virtual/libx11 \ + virtual/egl \ + virtual/libgles2 \ + libuv \ + libpcre \ +" + +# This is by far the worst hack I've ever done but the ruby/rake mixed with +# autotools (don't forget git submodules) does not allow a cleaner approach. +# But we are lucky: there is only one autoconf target (yet). If that happens +# we need to try running autotoools multiple times in a dynamically +# linked forlder. Let's hope that will not be necessary... + +AUTOTOOLS_SCRIPT_PATH = "${S}/mruby/build/mrbgems/mruby-file-stat" + +do_configure_prepend() { + # taken from https://github.com/zynaddsubfx/zyn-fusion-build/blob/master/build-rpi3.rb + sed -i -- 's/GL2/GLES2/g' ${WORKDIR}/git/src/mruby-widget-lib/src/gem.c + sed -i -- 's/MRUBY_NANOVG_GL2/MRUBY_NANOVG_GLES2/g' ${WORKDIR}/git/build_config.rb + sed -i '/idiot/d' ${WORKDIR}/git/deps/mruby-nanovg/src/nvg_impl.h + + # Fetch ruby gems. Although unexpected it starts building happily and + # breaks so ignore that. + cd mruby + MRUBY_CONFIG=../build_config.rb ruby minirake --pull-gems || true + + # ensure config.h is created at the right place... + cd build/mrbgems/mruby-file-stat/src +} + +do_install() { + oe_runmake pack + + install -d ${D}${bindir} + install -m 755 ${B}/package/zest ${D}${bindir}/zyn-fusion + + install -d ${D}/${datadir}/zyn-fusion + cp -r ${B}/package/schema ${D}/${datadir}/zyn-fusion/ + + install -d ${D}/opt/zyn-fusion + cp -r ${B}/package/{libzest.so,font} ${D}/opt/zyn-fusion/ + +} + +FILES_${PN} += " \ + ${datadir}/zyn-fusion \ + /opt/zyn-fusion/* \ +" diff --git a/recipes-musicians/zyn/mruby-zest.inc b/recipes-musicians/zyn/mruby-zest.inc new file mode 100644 index 0000000..bd19c66 --- /dev/null +++ b/recipes-musicians/zyn/mruby-zest.inc @@ -0,0 +1,21 @@ +SUMMARY = "Zyn-Fusion User Interface" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = " \ + gitsm://github.com/mruby-zest/mruby-zest-build.git \ + file://0001-mruby-Align-build-to-our-needs.patch \ + file://0002-mruby-zest-Align-build-to-our-needs.patch \ + file://0003-src-osc-bridge-Align-build-to-our-needs.patch \ +" +SRCREV = "3f112eeb6a0d7b6ce65c1be3f591e02fde965923" +PV = "3.0.4+git${SRCPV}" +PE = "1" +S = "${WORKDIR}/git" + +DEPENDS += " \ + ruby-native \ + bison-native \ +" + +CLEANBROKEN = "1" diff --git a/recipes-musicians/zyn/mruby-zest/0001-mruby-Align-build-to-our-needs.patch b/recipes-musicians/zyn/mruby-zest/0001-mruby-Align-build-to-our-needs.patch new file mode 100644 index 0000000..48ab170 --- /dev/null +++ b/recipes-musicians/zyn/mruby-zest/0001-mruby-Align-build-to-our-needs.patch @@ -0,0 +1,71 @@ +From 84ec8305a0e4c67277929a812e6796d9f054cb02 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 13 Mar 2019 22:26:35 +0100 +Subject: [PATCH 1/2] mruby: Align build to our needs + +* Add build flags + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + build_config.rb | 11 ++++++++++- + mruby/tasks/toolchains/gcc.rake | 2 +- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/build_config.rb b/build_config.rb +index 664e84a..fda7fd7 100644 +--- a/build_config.rb ++++ b/build_config.rb +@@ -102,18 +102,22 @@ build_type.new(build_name) do |conf| + cc.flags << "-mstackrealign" if windows + cc.flags << "-mwindows" if windows + cc.flags << "-Wno-declaration-after-statement" ++ cc.flags << ENV['CFLAGS'] ++ cc.command = ENV['CC'] + cc.defines << "DEMO_MODE=#{demo_mode ? '1':'0'}" + end + + conf.linker do |linker| + #linker.library_paths << "#{`pwd`.strip}/../deps/nanovg/build/" + #linker.library_paths << "#{`pwd`.strip}/../deps/rtosc/build/" ++ linker.command = ENV['CC'] ++ linker.flags = [ENV['LDFLAGS'] || []] + linker.library_paths << "#{`pwd`.strip}/../src/osc-bridge/" + linker.libraries << 'osc-bridge' + linker.flags_after_libraries << "#{`pwd`.strip}/../deps/pugl/build/libpugl-0.a" + linker.flags_after_libraries << "#{`pwd`.strip}/../deps/libnanovg.a" + if(!windows) +- linker.flags_after_libraries << "#{`pwd`.strip}/../deps/libuv.a" ++ linker.flags_after_libraries << "-luv" + if(ENV['OS'] != "Mac") + linker.libraries << 'GL' + linker.libraries << 'X11' +@@ -135,6 +139,11 @@ build_type.new(build_name) do |conf| + conf.gem 'src/mruby-widget-lib' + + #conf.gem 'deps/mruby-profiler' ++ ++ # Archiver settings ++ conf.archiver do |archiver| ++ archiver.command = ENV['AR'] ++ end + end + + MRuby::Build.new('host-debug') do |conf| +diff --git a/mruby/tasks/toolchains/gcc.rake b/mruby/tasks/toolchains/gcc.rake +index f370c0ab..a2ab5ed4 100644 +--- a/mruby/tasks/toolchains/gcc.rake ++++ b/mruby/tasks/toolchains/gcc.rake +@@ -22,7 +22,7 @@ MRuby::Toolchain.new(:gcc) do |conf, _params| + end + + conf.linker do |linker| +- linker.command = ENV['LD'] || 'gcc' ++ linker.command = ENV['CC'] + linker.flags = [ENV['LDFLAGS'] || %w()] + linker.libraries = %w(m) + linker.library_paths = [] +-- +2.20.1 + diff --git a/recipes-musicians/zyn/mruby-zest/0002-mruby-zest-Align-build-to-our-needs.patch b/recipes-musicians/zyn/mruby-zest/0002-mruby-zest-Align-build-to-our-needs.patch new file mode 100644 index 0000000..b193c7f --- /dev/null +++ b/recipes-musicians/zyn/mruby-zest/0002-mruby-zest-Align-build-to-our-needs.patch @@ -0,0 +1,48 @@ +From 368ece5a84a3972ae7e2635e4fa53a1dce0383f8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 12 Sep 2018 21:19:55 +0200 +Subject: [PATCH] mruby-zest: Align build to our needs +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* Add build flags +* Link against shared libuv - it is not build here + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + Makefile | 8 ++++---- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/Makefile b/Makefile +index c0d8cc1..7ce309a 100644 +--- a/Makefile ++++ b/Makefile +@@ -5,18 +5,18 @@ UV_URL = http://dist.libuv.org/dist/v1.9.1/$(UV_FILE) + + all: + ruby ./rebuild-fcache.rb +- cd deps/nanovg/src && $(CC) nanovg.c -c -fPIC ++ cd deps/nanovg/src && $(CC) $(CFLAGS) nanovg.c -c -fPIC + $(AR) rc deps/libnanovg.a deps/nanovg/src/*.o + # cd deps/pugl && python2 ./waf configure --no-cairo --static + cd deps/pugl && python2 ./waf configure --no-cairo --static --debug + cd deps/pugl && python2 ./waf +- cd src/osc-bridge && CFLAGS="-I ../../deps/$(UV_DIR)/include " make lib ++ cd src/osc-bridge && make lib + cd mruby && MRUBY_CONFIG=../build_config.rb rake + $(CC) -shared -o libzest.so `find mruby/build/host -type f | grep -e "\.o$$" | grep -v bin` ./deps/libnanovg.a \ + ./deps/libnanovg.a \ + src/osc-bridge/libosc-bridge.a \ +- ./deps/$(UV_DIR)/.libs/libuv.a -lm -lX11 -lGL -lpthread +- $(CC) test-libversion.c deps/pugl/build/libpugl-0.a -ldl -o zest -lX11 -lGL -lpthread -I deps/pugl -std=gnu99 ++ $(LDFLAGS) -lpcre -luv -lm -lX11 -lGL -lpthread ++ $(CC) $(CFLAGS) test-libversion.c deps/pugl/build/libpugl-0.a -ldl -o zest $(LDFLAGS) -lX11 -lGL -lpthread -I deps/pugl -std=gnu99 + + osx: + ruby ./rebuild-fcache.rb +-- +2.14.4 + diff --git a/recipes-musicians/zyn/mruby-zest/0003-src-osc-bridge-Align-build-to-our-needs.patch b/recipes-musicians/zyn/mruby-zest/0003-src-osc-bridge-Align-build-to-our-needs.patch new file mode 100644 index 0000000..7f3be45 --- /dev/null +++ b/recipes-musicians/zyn/mruby-zest/0003-src-osc-bridge-Align-build-to-our-needs.patch @@ -0,0 +1,33 @@ +From 7480845b43717d9eb1f8f31dafe9725f920d4f41 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 12 Sep 2018 21:27:38 +0200 +Subject: [PATCH] src/osc-bridge: Align build to our needs +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* Add build flags + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + src/osc-bridge/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/osc-bridge/Makefile b/src/osc-bridge/Makefile +index 14d1377..f11ae86 100644 +--- a/src/osc-bridge/Makefile ++++ b/src/osc-bridge/Makefile +@@ -10,7 +10,7 @@ remote-test: $(SRC) test/basic-remote.c + $(CC) $(CFLAGS) $(CFLAGS_) -o remote-test $(SRC) test/basic-remote.c -luv -g -O0 + + lib: $(SRC) +- $(CC) $(CFLAGS) $(CFLAGS_) -O3 -g -fPIC -c $(SRC) ++ $(CC) $(CFLAGS) $(CFLAGS_) -g -fPIC -c $(SRC) + $(AR) rcs libosc-bridge.a bridge.o cache.o parse-schema.o schema.o rtosc.o + + clean: +-- +2.14.4 + diff --git a/recipes-musicians/zyn/mruby-zest/0004-Native-Do-not-build-X11-dependent-zest-libzest.so.patch b/recipes-musicians/zyn/mruby-zest/0004-Native-Do-not-build-X11-dependent-zest-libzest.so.patch new file mode 100644 index 0000000..8e71e73 --- /dev/null +++ b/recipes-musicians/zyn/mruby-zest/0004-Native-Do-not-build-X11-dependent-zest-libzest.so.patch @@ -0,0 +1,34 @@ +From 6ff4dcce6aa865f96af7273e875c722edbceb83e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 13 Sep 2018 21:27:40 +0200 +Subject: [PATCH] Native: Do not build X11 dependent zest/libzest.so +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + Makefile | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/Makefile b/Makefile +index 7ce309a..9d38910 100644 +--- a/Makefile ++++ b/Makefile +@@ -12,11 +12,6 @@ all: + cd deps/pugl && python2 ./waf + cd src/osc-bridge && make lib + cd mruby && MRUBY_CONFIG=../build_config.rb rake +- $(CC) -shared -o libzest.so `find mruby/build/host -type f | grep -e "\.o$$" | grep -v bin` ./deps/libnanovg.a \ +- ./deps/libnanovg.a \ +- src/osc-bridge/libosc-bridge.a \ +- $(LDFLAGS) -lpcre -luv -lm -lX11 -lGL -lpthread +- $(CC) $(CFLAGS) test-libversion.c deps/pugl/build/libpugl-0.a -ldl -o zest $(LDFLAGS) -lX11 -lGL -lpthread -I deps/pugl -std=gnu99 + + osx: + ruby ./rebuild-fcache.rb +-- +2.14.4 + diff --git a/recipes-musicians/zyn/mruby-zest/0005-mruby-Use-native-mrbc.patch b/recipes-musicians/zyn/mruby-zest/0005-mruby-Use-native-mrbc.patch new file mode 100644 index 0000000..835546c --- /dev/null +++ b/recipes-musicians/zyn/mruby-zest/0005-mruby-Use-native-mrbc.patch @@ -0,0 +1,31 @@ +From 06d98e715c26db56406de45649771ff58c8710ae Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 12 Sep 2018 21:25:07 +0200 +Subject: [PATCH 2/2] mruby: Use native mrbc +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + mruby/tasks/mruby_build_commands.rake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mruby/tasks/mruby_build_commands.rake b/mruby/tasks/mruby_build_commands.rake +index 694b4a24..a207ef76 100644 +--- a/mruby/tasks/mruby_build_commands.rake ++++ b/mruby/tasks/mruby_build_commands.rake +@@ -286,7 +286,7 @@ module MRuby + end + + def run(out, infiles, funcname) +- @command ||= @build.mrbcfile ++ @command ||= "mrbc-zest" + infiles = [infiles].flatten + infiles.each do |f| + _pp "MRBC", f.relative_path, nil, :indent => 2 +-- +2.14.4 + diff --git a/recipes-musicians/zyn/mruby-zest/0006-mruby-regexp-pcre-link-against-libpcre.patch b/recipes-musicians/zyn/mruby-zest/0006-mruby-regexp-pcre-link-against-libpcre.patch new file mode 100644 index 0000000..52e4a42 --- /dev/null +++ b/recipes-musicians/zyn/mruby-zest/0006-mruby-regexp-pcre-link-against-libpcre.patch @@ -0,0 +1,72 @@ +From ac178e85df514d0c72d7c62a0242aaf4b5a91cb3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 13 Sep 2018 22:41:52 +0200 +Subject: [PATCH] mruby-regexp-pcre: link against libpcre +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + deps/mruby-regexp-pcre/mrbgem.rake | 38 +------------------------------------- + 1 file changed, 1 insertion(+), 37 deletions(-) + +diff --git a/deps/mruby-regexp-pcre/mrbgem.rake b/deps/mruby-regexp-pcre/mrbgem.rake +index 6211152..c82cb86 100644 +--- a/deps/mruby-regexp-pcre/mrbgem.rake ++++ b/deps/mruby-regexp-pcre/mrbgem.rake +@@ -3,7 +3,7 @@ MRuby::Gem::Specification.new('mruby-regexp-pcre') do |spec| + spec.authors = 'Internet Initiative Japan Inc.' + + ## For dynamic link +- #spec.linker.libraries << ['pcre'] ++ spec.linker.libraries << ['pcre'] + + ## For static link library + # How to use: +@@ -22,40 +22,4 @@ MRuby::Gem::Specification.new('mruby-regexp-pcre') do |spec| + # $ cd $(mruby.rootdir) + # $ make + +- pcre_dirname = 'pcre' +- pcre_src = "#{spec.dir}/#{pcre_dirname}" +- spec.cc.include_paths << "#{pcre_src}" +- spec.cc.flags << '-DHAVE_CONFIG_H' +- spec.cc.flags << '-DPCRE_STATIC' if /mingw|mswin/ =~ RUBY_PLATFORM +- +- spec.objs += %W( +- #{pcre_src}/pcre_byte_order.c +- #{pcre_src}/pcre_compile.c +- #{pcre_src}/pcre_config.c +- #{pcre_src}/pcre_dfa_exec.c +- #{pcre_src}/pcre_exec.c +- #{pcre_src}/pcre_fullinfo.c +- #{pcre_src}/pcre_get.c +- #{pcre_src}/pcre_globals.c +- #{pcre_src}/pcre_jit_compile.c +- #{pcre_src}/pcre_maketables.c +- #{pcre_src}/pcre_newline.c +- #{pcre_src}/pcre_ord2utf8.c +- #{pcre_src}/pcre_refcount.c +- #{pcre_src}/pcre_string_utils.c +- #{pcre_src}/pcre_study.c +- #{pcre_src}/pcre_tables.c +- #{pcre_src}/pcre_ucd.c +- #{pcre_src}/pcre_valid_utf8.c +- #{pcre_src}/pcre_version.c +- #{pcre_src}/pcre_xclass.c +- #{pcre_src}/pcre_chartables.c +- ).map { |f| f.relative_path_from(dir).pathmap("#{build_dir}/%X#{spec.exts.object}" ) } +- +- desc "generate configuration files for mruby-regexp-pcre" +- task :regexp_pcre_config do +- FileUtils.cp "#{pcre_src}/config.h.generic", "#{pcre_src}/config.h" +- FileUtils.cp "#{pcre_src}/pcre.h.generic", "#{pcre_src}/pcre.h" +- FileUtils.cp "#{pcre_src}/pcre_chartables.c.dist", "#{pcre_src}/pcre_chartables.c" +- end + end +-- +2.14.4 + diff --git a/recipes-musicians/zyn/mruby-zest/0007-Load-schema-from-usr-share-zyn-fusion-schema.patch b/recipes-musicians/zyn/mruby-zest/0007-Load-schema-from-usr-share-zyn-fusion-schema.patch new file mode 100644 index 0000000..f13a764 --- /dev/null +++ b/recipes-musicians/zyn/mruby-zest/0007-Load-schema-from-usr-share-zyn-fusion-schema.patch @@ -0,0 +1,31 @@ +From 6866d2085b362adcc23edac712b7d504950d0594 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 16 Sep 2018 15:01:49 +0200 +Subject: [PATCH] Load schema from /usr/share/zyn-fusion/schema +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + src/osc-bridge/src/bridge.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/osc-bridge/src/bridge.c b/src/osc-bridge/src/bridge.c +index c32ace3..c2bc1a8 100644 +--- a/src/osc-bridge/src/bridge.c ++++ b/src/osc-bridge/src/bridge.c +@@ -430,7 +430,7 @@ schema_t br_get_schema(bridge_t *br, uri_t uri) + schema_t sch; + + //printf("[debug] loading json file\n"); +- FILE *f = fopen("schema/test.json", "r"); ++ FILE *f = fopen("/usr/share/zyn-fusion/schema/test.json", "r"); + if(!f && br->search_path) { + char tmp[256]; + snprintf(tmp, sizeof(tmp), "%s%s", br->search_path, "schema/test.json"); +-- +2.14.4 + diff --git a/recipes-musicians/zyn/mruby-zest/0008-Do-not-require-dummy-MainWindow.qml.patch b/recipes-musicians/zyn/mruby-zest/0008-Do-not-require-dummy-MainWindow.qml.patch new file mode 100644 index 0000000..c64fd70 --- /dev/null +++ b/recipes-musicians/zyn/mruby-zest/0008-Do-not-require-dummy-MainWindow.qml.patch @@ -0,0 +1,41 @@ +From 3fb95d2ec341330e3fa02112768ca60065dd7838 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 16 Sep 2018 21:23:35 +0200 +Subject: [PATCH] Do not require dummy MainWindow.qml +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas Müller +--- + src/mruby-widget-lib/src/api.c | 14 ++------------ + 1 file changed, 2 insertions(+), 12 deletions(-) + +diff --git a/src/mruby-widget-lib/src/api.c b/src/mruby-widget-lib/src/api.c +index 88d245c..f30544f 100644 +--- a/src/mruby-widget-lib/src/api.c ++++ b/src/mruby-widget-lib/src/api.c +@@ -101,18 +101,8 @@ zest_open(char *address) + if(!dev_mode) { + if(strstr(path, "libzest")) + strstr(path, "libzest")[0] = 0; +- char path2[256]; +- snprintf(path2, sizeof(path2), "%s%s", path, "./qml/MainWindow.qml"); +- FILE *f = fopen(path2, "r"); +- if(f) { +- printf("[INFO:Zyn] Found Assets at %s\n", path); +- zest_search_path = path; +- fclose(f); +- } else { +- printf("[ERROR:Zyn] QML Not Found At \"%s\"...\n", path2); +- printf("[ERROR:Zyn] Zyn Fusion Assets Missing, Please Check Install...\n"); +- exit(1); +- } ++ printf("[INFO:Zyn] Found Assets at %s\n", path); ++ zest_search_path = path; + } + + #if DEMO_MODE +-- +2.14.4 + diff --git a/recipes-musicians/zyn/zyn-fusion.bb b/recipes-musicians/zyn/zyn-fusion.bb new file mode 100644 index 0000000..fa8166f --- /dev/null +++ b/recipes-musicians/zyn/zyn-fusion.bb @@ -0,0 +1,14 @@ +require zyn.inc + +SUMMARY = "Zyn-Fusion is an open source software synthesizer" + +EXTRA_OECMAKE += "-DGuiModule=zest" + +FILES_${PN} += " \ + ${datadir}/zynaddsubfx \ +" + +RDEPENDS_${PN} += "mruby-zest" + +RREPLACES_${PN} += "zynaddsubfx" +RCONFLICTS_${PN} += "zynaddsubfx" diff --git a/recipes-musicians/zyn/zyn.inc b/recipes-musicians/zyn/zyn.inc new file mode 100644 index 0000000..041be7d --- /dev/null +++ b/recipes-musicians/zyn/zyn.inc @@ -0,0 +1,73 @@ +HOMEPAGE = "http://zynaddsubfx.sourceforge.net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=21fa88a5e50a1c608d22612c1fbe1971" + +inherit cmake qemu-ext pkgconfig gtk-icon-cache distro_features_check pack_audio_plugins + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS += " \ + virtual/libx11 \ + alsa-lib \ + jack \ + portaudio-v19 \ + dssi \ + lv2 \ + liblo \ + zlib \ + libmxml \ + libxpm \ +" + +CXXFLAGS += "-ftree-vectorize -ffast-math -DNDEBUG" + +FILESEXTRAPATHS_prepend := "${THISDIR}/zyn:" + +SRC_URI = " \ + gitsm://github.com/zynaddsubfx/zynaddsubfx.git \ + file://0001-No-target-specific-asm.patch \ + file://0002-Controller-Spliter-align-Makefiles-for-cross-compili.patch \ + file://0003-Nio.cpp-Do-not-use-ps-aux-to-find-jack-busybox-s-ps-.patch \ + file://0004-Keep-our-build-flags.patch \ +" +SRCREV = "576f1371b44db44865d57bbd50609e906bd2bfd7" +PV = "3.0.4+git${SRCPV}" +S = "${WORKDIR}/git" + +EXTRA_OECMAKE += "-DPluginLibDir=${baselib}" + +do_configure_prepend() { + # reconfigure? + if [ ! -f ${WORKDIR}/lv2-ttl-generator-data ] ; then + # We cannot run lv2-ttl-generator in cross environment so + # manipulate CMakeLists.txt to keep commands in file + sed -i \ + -e 's|../../lv2-ttl-generator|echo|g' \ + -e 's|echo $> ${WORKDIR}/lv2-ttl-generator-data|g' \ + `find ${S} -name CMakeLists.txt` + else + rm -f ${WORKDIR}/lv2-ttl-generator-data + fi +} + +do_compile_append() { + # build ttl-files must be done in quemu + for sofile in `cat ${WORKDIR}/lv2-ttl-generator-data`; do + cd `dirname ${sofile}` + echo "QEMU lv2-ttl-generator for ${sofile}..." + ${@qemu_run_binary_local(d, '${STAGING_DIR_TARGET}', '${B}/src/Plugin/lv2-ttl-generator')} ${sofile} || echo "ERROR: for QEMU lv2-ttl-generator for ${sofile}!" + done +} + +PACKAGES =+ "${PN}-standalone" +FILES_${PN}-standalone = " \ + ${datadir}/applications \ + ${datadir}/pixmaps \ + ${bindir}/zynaddsubfx \ +" + +RDEPENDS_${PN}-dssi += "${PN}" +RDEPENDS_${PN}-lv2 += "${PN}" +RDEPENDS_${PN}-vst += "${PN}" +RDEPENDS_${PN}-standalone += "${PN}" + diff --git a/recipes-musicians/zyn/zyn/0001-No-target-specific-asm.patch b/recipes-musicians/zyn/zyn/0001-No-target-specific-asm.patch new file mode 100644 index 0000000..8177add --- /dev/null +++ b/recipes-musicians/zyn/zyn/0001-No-target-specific-asm.patch @@ -0,0 +1,38 @@ +From 20401a8a78c4f6757b887579f940365ef2e0f01f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 30 Dec 2016 01:37:15 +0100 +Subject: [PATCH] No target specific asm +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + src/globals.h | 8 -------- + 1 file changed, 8 deletions(-) + +diff --git a/src/globals.h b/src/globals.h +index f3fb1c7..e6a908d 100644 +--- a/src/globals.h ++++ b/src/globals.h +@@ -252,15 +252,7 @@ enum LegatoMsg { + }; + + //is like i=(int)(floor(f)) +-#ifdef ASM_F2I_YES +-#define F2I(f, \ +- i) __asm__ __volatile__ ("fistpl %0" : "=m" (i) : "t" (f \ +- - \ +- 0.49999999f) \ +- : "st"); +-#else + #define F2I(f, i) (i) = ((f > 0) ? ((int)(f)) : ((int)(f - 1.0f))); +-#endif + + + +-- +2.5.5 + diff --git a/recipes-musicians/zyn/zyn/0002-Controller-Spliter-align-Makefiles-for-cross-compili.patch b/recipes-musicians/zyn/zyn/0002-Controller-Spliter-align-Makefiles-for-cross-compili.patch new file mode 100644 index 0000000..fa3b7ff --- /dev/null +++ b/recipes-musicians/zyn/zyn/0002-Controller-Spliter-align-Makefiles-for-cross-compili.patch @@ -0,0 +1,75 @@ +From 7d23dbd4dc33750c4c541f1e80eccbd9d136e5bb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 28 Feb 2017 23:35:23 +0100 +Subject: [PATCH] Controller/Spliter: align Makefiles for cross-compiling +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [cross specific] + +Signed-off-by: Andreas Müller +--- + ExternalPrograms/Controller/Makefile | 8 ++++---- + ExternalPrograms/Spliter/Makefile | 8 ++++---- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/ExternalPrograms/Controller/Makefile b/ExternalPrograms/Controller/Makefile +index ff747fa..d55921b 100644 +--- a/ExternalPrograms/Controller/Makefile ++++ b/ExternalPrograms/Controller/Makefile +@@ -1,5 +1,5 @@ + controller: main.o Controller.o ControllerUI.o +- gcc -o controller *.o `fltk-config --ldflags` -lasound -lpthread -lm -lstdc++ ++ $(CC) -o controller *.o -lfltk -lm -lX11 -lXext -lpthread -lXft -lXrender -lfontconfig -ldl -lasound -lpthread -lm -lstdc++ $(LDFLAGS) + + ControllerUI.h: ControllerUI.fl + fluid -c ControllerUI.fl +@@ -8,13 +8,13 @@ ControllerUI.cxx: ControllerUI.h + echo ControllerUI.cxx + + ControllerUI.o: ControllerUI.cxx ControllerUI.h +- gcc `fltk-config --cflags` -c ControllerUI.cxx -o ControllerUI.o ++ $(CC) $(CFLAGS) -c $< -o $@ + + Controller.o: Controller.C Controller.h +- gcc `fltk-config --cflags` -c Controller.C -o Controller.o ++ $(CC) $(CFLAGS) -c $< -o $@ + + main.o: main.C Controller.h ControllerUI.h +- gcc `fltk-config --cflags` -c main.C -o main.o ++ $(CC) $(CFLAGS) -c $< -o $@ + + clean: + rm -f *.o controller ControllerUI.cxx ControllerUI.h +diff --git a/ExternalPrograms/Spliter/Makefile b/ExternalPrograms/Spliter/Makefile +index c98fc41..ba6cf99 100644 +--- a/ExternalPrograms/Spliter/Makefile ++++ b/ExternalPrograms/Spliter/Makefile +@@ -1,5 +1,5 @@ + spliter: main.o Spliter.o SpliterUI.o +- gcc -o spliter *.o `fltk-config --ldflags` -lasound -lstdc++ ++ $(CC) -o spliter *.o -lfltk -lm -lX11 -lXext -lpthread -lXft -lXrender -lfontconfig -ldl -lasound -lstdc++ $(LDFLAGS) + + SpliterUI.h: SpliterUI.fl + fluid -c SpliterUI.fl +@@ -8,13 +8,13 @@ SpliterUI.cxx: SpliterUI.h + echo SpliterUI.cxx + + SpliterUI.o: SpliterUI.cxx SpliterUI.h +- gcc -g `fltk-config --cflags` -c SpliterUI.cxx -o SpliterUI.o ++ $(CC) $(CFLAGS) -c $< -o $@ + + Spliter.o: Spliter.C Spliter.h +- gcc -g `fltk-config --cflags` -c Spliter.C -o Spliter.o ++ $(CC) $(CFLAGS) -c $< -o $@ + + main.o: main.C Spliter.h SpliterUI.h +- gcc -g `fltk-config --cflags` -c main.C -o main.o ++ $(CC) $(CFLAGS) -c $< -o $@ + + clean: + rm -f *.o spliter SpliterUI.cxx SpliterUI.h +-- +2.9.4 + diff --git a/recipes-musicians/zyn/zyn/0003-Nio.cpp-Do-not-use-ps-aux-to-find-jack-busybox-s-ps-.patch b/recipes-musicians/zyn/zyn/0003-Nio.cpp-Do-not-use-ps-aux-to-find-jack-busybox-s-ps-.patch new file mode 100644 index 0000000..e103d53 --- /dev/null +++ b/recipes-musicians/zyn/zyn/0003-Nio.cpp-Do-not-use-ps-aux-to-find-jack-busybox-s-ps-.patch @@ -0,0 +1,46 @@ +From 1f8fe80a2e80b8cc44ccf4e48c7ae693d314469a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 17 Jun 2017 22:16:18 +0200 +Subject: [PATCH] Nio.cpp: Do not use 'ps aux' to find jack - busybox's ps does + not support aux +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + src/Nio/Nio.cpp | 15 +-------------- + 1 file changed, 1 insertion(+), 14 deletions(-) + +diff --git a/src/Nio/Nio.cpp b/src/Nio/Nio.cpp +index 1e26b65..9bbb5bc 100644 +--- a/src/Nio/Nio.cpp ++++ b/src/Nio/Nio.cpp +@@ -136,21 +136,8 @@ string Nio::getSink() + #include + void Nio::preferredSampleRate(unsigned &rate) + { +-#if __linux__ +- //avoid checking in with jack if it's off +- FILE *ps = popen("ps aux", "r"); +- char buffer[4096]; +- while(fgets(buffer, sizeof(buffer), ps)) +- if(strstr(buffer, "jack")) +- break; +- fclose(ps); +- +- if(!strstr(buffer, "jack")) +- return; +-#endif +- + jack_client_t *client = jack_client_open("temp-client", +- JackNoStartServer, 0); ++ JackNullOption, 0); + if(client) { + rate = jack_get_sample_rate(client); + jack_client_close(client); +-- +2.9.4 + diff --git a/recipes-musicians/zyn/zyn/0004-Keep-our-build-flags.patch b/recipes-musicians/zyn/zyn/0004-Keep-our-build-flags.patch new file mode 100644 index 0000000..ca130d1 --- /dev/null +++ b/recipes-musicians/zyn/zyn/0004-Keep-our-build-flags.patch @@ -0,0 +1,41 @@ +From 6a3b212c7a945bdd951d2ba1e8293a491ac26a24 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 18 Jun 2017 14:25:49 +0200 +Subject: [PATCH] Keep our build flags +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + src/CMakeLists.txt | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 365c129..1fa1b24 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -44,9 +44,6 @@ CHECK_CXX_SOURCE_COMPILES( + #endif + int main(){return 0;}" HAVE_ASYNC) + +-check_cxx_compiler_flag("-msse2" SUPPORT_SSE) +-check_cxx_compiler_flag("-mfpu=neon -Werror" SUPPORT_NEON) +- + set(CMAKE_REQUIRED_FLAGS "") + + +@@ -328,7 +325,7 @@ if (BuildForDebug) + else (BuildForDebug) + set (CMAKE_BUILD_TYPE "Release") + +- set (CMAKE_CXX_FLAGS_RELEASE ${BuildOptionsBasic}) ++ set (CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS}) + + if (BuildForAMD_X86_64) + set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${BuildOptions_x86_64AMD}") +-- +2.9.4 + diff --git a/recipes-musicians/zyn/zynaddsubfx.bb b/recipes-musicians/zyn/zynaddsubfx.bb new file mode 100644 index 0000000..2ceb9d6 --- /dev/null +++ b/recipes-musicians/zyn/zynaddsubfx.bb @@ -0,0 +1,22 @@ +require zyn.inc + +SUMMARY = "ZynAddSubFX is an open source software synthesizer" + +DEPENDS += " \ + ntk-native ntk \ + fltk-native fltk \ +" + +do_compile_append() { + # Build Controller/Spliter + oe_runmake -C ${S}/ExternalPrograms/Controller + oe_runmake -C ${S}/ExternalPrograms/Spliter +} + +do_install_append() { + install -m 0755 ${S}/ExternalPrograms/Controller/controller ${D}${bindir}/zynaddsubfx-controller + install -m 0755 ${S}/ExternalPrograms/Spliter/spliter ${D}${bindir}/zynaddsubfx-spliter +} + +RREPLACES_${PN} += "zyn-fusion" +RCONFLICTS_${PN} += "zyn-fusion" diff --git a/recipes-support/packagegroups/musicians-world.bb b/recipes-support/packagegroups/musicians-world.bb new file mode 100644 index 0000000..a24792e --- /dev/null +++ b/recipes-support/packagegroups/musicians-world.bb @@ -0,0 +1,158 @@ +SUMMARY = "All music musicican packages" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +inherit packagegroup + +# avoid performance sink +RDEPENDS_${PN} = " \ + baloo-no-autostart \ +" + +# unfortunately there is no way to add a comment. So folders, containing +# multiple recipes are separated by two '\' before and after. That way the +# sequence as displayed in file browser is kept more or less and avoids to +# overlook a package. + +RDEPENDS_${PN} += " \ + amsynth-standalone amsynth-lv2 amsynth-vst \ + ardour5 \ + aubio \ + audio-tweaks \ + bristol \ + calf \ + carla \ + chromaprint \ + csound \ + \ + \ + lpd8editor \ + \ + \ + distrho-ports-lv2 distrho-ports-presets distrho-ports-vst \ + distrho-ports-extra-lv2 distrho-ports-extra-vst \ + dpf-plugins-ladspa dpf-plugins-lv2 dpf-plugins-vst \ + lv2-ttl-generator \ + \ + \ + drmr \ + \ + \ + ganv \ + ingen-lv2 ingen-standalone \ + jalv \ + lilv \ + lv2 \ + mda-lv2 \ + patchage \ + serd \ + sord \ + sratom \ + suil \ + \ + \ + drumgizmo \ + drumstick \ + dssi \ + dssi-vst \ + ftgl \ + gmidimonitor \ + guitarix \ + gxplugins.lv2 \ + helm-standalone helm-lv2 helm-vst \ + hydrogen hydrogen-drumkits \ + infamousplugins \ + \ + \ + clthreads \ + clxclient \ + zita-convolver \ + zita-resampler \ + \ + \ + ladspa-sdk \ + liblo \ + libmp4v2 \ + libsmf \ + libxmp \ + \ + libgig-bin \ + \ + lmms \ + lrdf \ + muse \ + nekobee \ + \ + \ + arty-fx \ + fabla \ + luppp \ + openav-presets \ + sorcer \ + \ + \ + polyphone \ + portmidi \ + projectm \ + qmidiarp \ + qt-gstreamer \ + \ + \ + drumkv1 drumkv1-presets \ + padthv1 padthv1-presets \ + qjackctl qjackctl-defconfig \ + qmidictl \ + qmidinet \ + qsynth \ + qtractor qtractor-defconfig \ + samplv1 \ + synthv1 synthv1-presets \ + \ + \ + rosegarden \ + rubberband \ + setbfree \ + \ + \ + fluidsynth-dssi \ + fluidsynth-dssi-defconfig \ + hexter \ + whysynth \ + xsynth-dssi \ + \ + \ + sf-tools \ + soundfont-collection-meta \ + \ + \ + soundtouch \ + stk \ + supercollider \ + timidity++ \ + triceratops-lv2 \ + vamp-plugin-sdk \ + wolf-shaper-dssi wolf-shaper-lv2 wolf-shaper-vst \ + \ + \ + avldrums.lv2 \ + dpl.lv2 \ + fil4.lv2 \ + meters.lv2 \ + midifilter.lv2 \ + sisco.lv2 \ + tuna.lv2 \ + \ + \ + ykchorus ykchorus-dssi ykchorus-lv2 ykchorus-vst \ + yoshimi \ + zam-plugins-standalone zam-plugins-ladspa zam-plugins-lv2 zam-plugins-vst \ + ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "zyn-fusion-dssi zyn-fusion-lv2 zyn-fusion-vst zyn-fusion-standalone", "zynaddsubfx-dssi zynaddsubfx-lv2 zynaddsubfx-vst zynaddsubfx-standalone",d)} \ +" + +# non working +# lsp-plugins-standalone lsp-plugins-ladspa lsp-plugins-lv2 lsp-plugins-vst + +# tomahawk + +# empty +# qm-dsp diff --git a/recipes-xfce/xfce4-mixer/files/0001-Fix-build-after-update-of-xfconf.patch b/recipes-xfce/xfce4-mixer/files/0001-Fix-build-after-update-of-xfconf.patch new file mode 100644 index 0000000..31216c0 --- /dev/null +++ b/recipes-xfce/xfce4-mixer/files/0001-Fix-build-after-update-of-xfconf.patch @@ -0,0 +1,61 @@ +From 6ecaeced291f935a9d41e9bc33411358c95a5e91 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 22 Jan 2018 15:35:08 +0100 +Subject: [PATCH] Fix build after update of xfconf +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +xfconf stopped using dbus-glib so required flags must be included here + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + panel-plugin/Makefile.am | 2 ++ + xfce4-mixer/Makefile.am | 2 ++ + 2 files changed, 4 insertions(+) + +diff --git a/panel-plugin/Makefile.am b/panel-plugin/Makefile.am +index a494682..b094472 100644 +--- a/panel-plugin/Makefile.am ++++ b/panel-plugin/Makefile.am +@@ -27,6 +27,7 @@ libmixer_la_CFLAGS = \ + $(LIBXFCE4UI_CFLAGS) \ + $(LIBXFCE4PANEL_CFLAGS) \ + $(XFCONF_CFLAGS) \ ++ $(DBUS_GLIB_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(KEYBINDER_CFLAGS) + +@@ -48,6 +49,7 @@ libmixer_la_LIBADD = \ + $(LIBXFCE4UI_LIBS) \ + $(LIBXFCE4PANEL_LIBS) \ + $(XFCONF_LIBS) \ ++ $(DBUS_GLIB_LIBS) \ + $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-0.10 \ + -lgstinterfaces-0.10 \ +diff --git a/xfce4-mixer/Makefile.am b/xfce4-mixer/Makefile.am +index 4af69e9..e076fc8 100644 +--- a/xfce4-mixer/Makefile.am ++++ b/xfce4-mixer/Makefile.am +@@ -32,6 +32,7 @@ xfce4_mixer_CFLAGS = \ + $(UNIQUE_CFLAGS) \ + $(LIBXFCE4UTIL_CFLAGS) \ + $(LIBXFCE4UI_CFLAGS) \ ++ $(DBUS_GLIB_CFLAGS) \ + $(XFCONF_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) + +@@ -46,6 +47,7 @@ xfce4_mixer_LDFLAGS = \ + $(UNIQUE_LIBS) \ + $(LIBXFCE4UTIL_LIBS) \ + $(LIBXFCE4UI_LIBS) \ ++ $(DBUS_GLIB_LIBS) \ + $(XFCONF_LIBS) \ + $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-0.10 \ +-- +2.14.3 + diff --git a/recipes-xfce/xfce4-mixer/xfce4-mixer_4.11.0.bb b/recipes-xfce/xfce4-mixer/xfce4-mixer_4.11.0.bb new file mode 100644 index 0000000..6c057d8 --- /dev/null +++ b/recipes-xfce/xfce4-mixer/xfce4-mixer_4.11.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "A volume control application based on GStreamer" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +inherit xfce-panel-plugin + +DEPENDS += "glib-2.0 gst-plugins-base gtk+ xfconf libunique" + +SRC_URI = " \ + http://archive.xfce.org/src/apps/${BPN}/${@xfce_verdir("${PV}")}/${BPN}-${PV}.tar.bz2 \ + file://0001-Fix-build-after-update-of-xfconf.patch \ +" + +SRC_URI[md5sum] = "1b3753b91224867a3a2dfddda239c28d" +SRC_URI[sha256sum] = "fb0c1df201ed1130f54f15b914cbe5a59286e994a137acda5609570c57112de2" + +RDEPENDS_${PN} = "gst-meta-audio"