From d592ba88965c68f4e8363c9e68eb34fc9515a51c Mon Sep 17 00:00:00 2001 From: nia Date: Sat, 12 Dec 2020 15:32:45 +0100 Subject: [PATCH] add carla. Carla is a fully-featured modular audio plugin host, with support for many audio drivers and plugin formats. Carla currently supports LADSPA (including LRDF), DSSI, LV2, VST2, VST3 and AU plugin formats, plus SF2 and SFZ file support. It uses JACK as the default and preferred audio driver but also supports native drivers like ALSA, DirectSound or CoreAudio. --- Makefile | 1 + carla/DESCR | 8 + carla/Makefile | 103 ++++++++ carla/PLIST | 222 ++++++++++++++++++ carla/TODO | 2 + carla/buildlink3.mk | 13 + carla/distinfo | 9 + carla/patches/patch-source_Makefile.mk | 18 ++ .../patches/patch-source_utils_CarlaMutex.hpp | 16 ++ .../patch-source_utils_CarlaScopeUtils.hpp | 15 ++ 10 files changed, 407 insertions(+) create mode 100644 carla/DESCR create mode 100644 carla/Makefile create mode 100644 carla/PLIST create mode 100644 carla/TODO create mode 100644 carla/buildlink3.mk create mode 100644 carla/distinfo create mode 100644 carla/patches/patch-source_Makefile.mk create mode 100644 carla/patches/patch-source_utils_CarlaMutex.hpp create mode 100644 carla/patches/patch-source_utils_CarlaScopeUtils.hpp diff --git a/Makefile b/Makefile index 402b200797..14ca8b518f 100644 --- a/Makefile +++ b/Makefile @@ -366,6 +366,7 @@ SUBDIR+= capnproto SUBDIR+= cardpeek SUBDIR+= cargo-audit SUBDIR+= caribou +SUBDIR+= carla SUBDIR+= cartago SUBDIR+= casady-fonts SUBDIR+= castget diff --git a/carla/DESCR b/carla/DESCR new file mode 100644 index 0000000000..16b85eb84b --- /dev/null +++ b/carla/DESCR @@ -0,0 +1,8 @@ +Carla is a fully-featured modular audio plugin host, with support for many +audio drivers and plugin formats. + +Carla currently supports LADSPA (including LRDF), DSSI, LV2, VST2, VST3 and +AU plugin formats, plus SF2 and SFZ file support. + +It uses JACK as the default and preferred audio driver but also supports +native drivers like ALSA, DirectSound or CoreAudio. diff --git a/carla/Makefile b/carla/Makefile new file mode 100644 index 0000000000..6b28d73f5d --- /dev/null +++ b/carla/Makefile @@ -0,0 +1,103 @@ +# $NetBSD$ + +DISTNAME= carla-2.2.0 +CATEGORIES= audio +MASTER_SITES= ${MASTER_SITE_GITHUB:=falkTX/} +GITHUB_PROJECT= Carla +GITHUB_TAG= v${PKGVERSION_NOREV} + +MAINTAINER= pkgsrc-users@NetBSD.org +HOMEPAGE= https://kx.studio/Applications:Carla +COMMENT= Audio plugin host +LICENSE= gnu-gpl-v2 + +DEPENDS+= ${PYPKGPREFIX}-qt5-[0-9]*:../../x11/py-qt5 + +USE_TOOLS+= gmake pkg-config gsed bash:run +USE_LANGUAGES= c c++ + +MAKE_FLAGS+= PREFIX=${PREFIX} + +.include "../../mk/bsd.prefs.mk" + +.if !empty(PKGSRC_COMPILER:M*clang*) +MAKE_FLAGS+= CLANG=true +.endif + +PKGCONFIG_OVERRIDE+= data/carla-native-plugin.pc +PKGCONFIG_OVERRIDE+= data/carla-standalone.pc +PKGCONFIG_OVERRIDE+= data/carla-utils.pc + +REPLACE_BASH+= data/carla +REPLACE_BASH+= data/carla-control +REPLACE_BASH+= data/carla-bridge-lv2-modgui +REPLACE_BASH+= data/carla-database +REPLACE_BASH+= data/carla-jack-multi +REPLACE_BASH+= data/carla-jack-patchbayplugin +REPLACE_BASH+= data/carla-jack-single +REPLACE_BASH+= data/carla-osc-gui +REPLACE_BASH+= data/carla-patchbay +REPLACE_BASH+= data/carla-rack +REPLACE_BASH+= data/carla-settings + +REPLACE_PYTHON+= data/carla-single +REPLACE_PYTHON+= source/frontend/carla +REPLACE_PYTHON+= source/frontend/carla-control +REPLACE_PYTHON+= source/frontend/carla-jack-multi +REPLACE_PYTHON+= source/frontend/carla-jack-single +REPLACE_PYTHON+= source/frontend/carla-patchbay +REPLACE_PYTHON+= source/frontend/carla-plugin +REPLACE_PYTHON+= source/frontend/carla-plugin-patchbay +REPLACE_PYTHON+= source/frontend/carla-rack +REPLACE_PYTHON+= source/frontend/bigmeter-ui +REPLACE_PYTHON+= source/frontend/midipattern-ui +REPLACE_PYTHON+= source/frontend/notes-ui +REPLACE_PYTHON+= source/frontend/xycontroller-ui + +SUBST_CLASSES+= py +SUBST_STAGE.py= pre-configure +SUBST_MESSAGE.py= Correcting the Python executable name. +SUBST_FILES.py+= data/carla-bridge-lv2-modgui +SUBST_FILES.py+= data/carla-control +SUBST_FILES.py+= data/carla-database +SUBST_FILES.py+= data/carla-jack-multi +SUBST_FILES.py+= data/carla-jack-single +SUBST_FILES.py+= data/carla-osc-gui +SUBST_FILES.py+= data/carla-patchbay +SUBST_FILES.py+= data/carla-rack +SUBST_FILES.py+= data/carla-settings +SUBST_SED.py+= -e "s,python3,${PYTHONBIN},g" + +SUBST_CLASSES+= prefix +SUBST_STAGE.prefix= pre-configure +SUBST_MESSAGE.prefix= Fixing paths. +SUBST_FILES.prefix+= source/frontend/carla_shared.py +SUBST_SED.prefix+= -e "s,/usr/local,${PREFIX},g" + +PYTHON_VERSIONS_INCOMPATIBLE= 27 + +post-install: + ${CHMOD} +x ${DESTDIR}${PREFIX}/share/carla/carla + ${CHMOD} +x ${DESTDIR}${PREFIX}/share/carla/carla-control + ${CHMOD} +x ${DESTDIR}${PREFIX}/share/carla/carla-jack-multi + ${CHMOD} +x ${DESTDIR}${PREFIX}/share/carla/carla-jack-single + ${CHMOD} +x ${DESTDIR}${PREFIX}/share/carla/carla-patchbay + ${CHMOD} +x ${DESTDIR}${PREFIX}/share/carla/carla-rack + +.include "../../audio/fluidsynth/buildlink3.mk" +.include "../../audio/jack/buildlink3.mk" +.include "../../audio/liblo/buildlink3.mk" +.include "../../audio/libsndfile/buildlink3.mk" +.include "../../graphics/hicolor-icon-theme/buildlink3.mk" +.include "../../lang/python/application.mk" +.include "../../multimedia/ffmpeg4/buildlink3.mk" +.include "../../sysutils/desktop-file-utils/desktopdb.mk" +.if ${OPSYS} != "Darwin" +. include "../../graphics/MesaLib/buildlink3.mk" +. include "../../x11/gtk2/buildlink3.mk" +. include "../../x11/gtk3/buildlink3.mk" +. include "../../x11/libX11/buildlink3.mk" +. include "../../x11/libXext/buildlink3.mk" +.endif +.include "../../x11/qt5-qtbase/buildlink3.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/carla/PLIST b/carla/PLIST new file mode 100644 index 0000000000..09f756c274 --- /dev/null +++ b/carla/PLIST @@ -0,0 +1,222 @@ +@comment $NetBSD$ +bin/carla +bin/carla-control +bin/carla-database +bin/carla-jack-multi +bin/carla-jack-patchbayplugin +bin/carla-jack-single +bin/carla-osc-gui +bin/carla-patchbay +bin/carla-rack +bin/carla-settings +bin/carla-single +include/carla/CarlaBackend.h +include/carla/CarlaEngine.hpp +include/carla/CarlaHost.h +include/carla/CarlaNative.h +include/carla/CarlaPlugin.hpp +include/carla/CarlaUtils.h +include/carla/includes/CarlaDefines.h +include/carla/includes/CarlaMIDI.h +include/carla/includes/CarlaNative.h +include/carla/includes/CarlaNativePlugin.h +lib/carla/carla-bridge-lv2-gtk2 +lib/carla/carla-bridge-lv2-gtk3 +lib/carla/carla-bridge-lv2-modgui +lib/carla/carla-bridge-lv2-qt5 +lib/carla/carla-bridge-lv2-x11 +lib/carla/carla-bridge-lv2.so +lib/carla/carla-bridge-native +lib/carla/carla-discovery-native +lib/carla/libcarla_native-plugin.so +lib/carla/libcarla_standalone2.so +lib/carla/libcarla_utils.so +lib/carla/styles/carlastyle.json +lib/carla/styles/carlastyle.so +lib/lv2/carla.lv2/audiofile.ttl +lib/lv2/carla.lv2/audiogain.ttl +lib/lv2/carla.lv2/audiogain_s.ttl +lib/lv2/carla.lv2/bigmeter.ttl +lib/lv2/carla.lv2/carla-bridge-lv2-gtk2 +lib/lv2/carla.lv2/carla-bridge-lv2-gtk3 +lib/lv2/carla.lv2/carla-bridge-lv2-modgui +lib/lv2/carla.lv2/carla-bridge-lv2-qt5 +lib/lv2/carla.lv2/carla-bridge-lv2-x11 +lib/lv2/carla.lv2/carla-bridge-lv2.so +lib/lv2/carla.lv2/carla-bridge-native +lib/lv2/carla.lv2/carla-discovery-native +lib/lv2/carla.lv2/carla.so +lib/lv2/carla.lv2/carlapatchbay.ttl +lib/lv2/carla.lv2/carlapatchbay16.ttl +lib/lv2/carla.lv2/carlapatchbay32.ttl +lib/lv2/carla.lv2/carlapatchbay3s.ttl +lib/lv2/carla.lv2/carlapatchbay64.ttl +lib/lv2/carla.lv2/carlapatchbaycv.ttl +lib/lv2/carla.lv2/carlarack.ttl +lib/lv2/carla.lv2/lfo.ttl +lib/lv2/carla.lv2/libcarla_native-plugin.so +lib/lv2/carla.lv2/libcarla_utils.so +lib/lv2/carla.lv2/manifest.ttl +lib/lv2/carla.lv2/midichanab.ttl +lib/lv2/carla.lv2/midichanfilter.ttl +lib/lv2/carla.lv2/midichannelize.ttl +lib/lv2/carla.lv2/midifile.ttl +lib/lv2/carla.lv2/midigain.ttl +lib/lv2/carla.lv2/midijoin.ttl +lib/lv2/carla.lv2/midipattern.ttl +lib/lv2/carla.lv2/midisplit.ttl +lib/lv2/carla.lv2/miditranspose.ttl +lib/lv2/carla.lv2/resources +lib/lv2/carla.lv2/styles +lib/pkgconfig/carla-native-plugin.pc +lib/pkgconfig/carla-standalone.pc +lib/pkgconfig/carla-utils.pc +lib/vst/carla.vst/CarlaPatchbay.so +lib/vst/carla.vst/CarlaPatchbay16.so +lib/vst/carla.vst/CarlaPatchbay32.so +lib/vst/carla.vst/CarlaPatchbay64.so +lib/vst/carla.vst/CarlaPatchbayFX.so +lib/vst/carla.vst/CarlaRack.so +lib/vst/carla.vst/CarlaRackFX.so +lib/vst/carla.vst/carla-bridge-lv2-gtk2 +lib/vst/carla.vst/carla-bridge-lv2-gtk3 +lib/vst/carla.vst/carla-bridge-lv2-modgui +lib/vst/carla.vst/carla-bridge-lv2-qt5 +lib/vst/carla.vst/carla-bridge-lv2-x11 +lib/vst/carla.vst/carla-bridge-lv2.so +lib/vst/carla.vst/carla-bridge-native +lib/vst/carla.vst/carla-discovery-native +lib/vst/carla.vst/jack +lib/vst/carla.vst/libcarla_native-plugin.so +lib/vst/carla.vst/libcarla_utils.so +lib/vst/carla.vst/resources +lib/vst/carla.vst/styles +share/applications/carla-control.desktop +share/applications/carla-jack-multi.desktop +share/applications/carla-jack-single.desktop +share/applications/carla-patchbay.desktop +share/applications/carla-rack.desktop +share/applications/carla.desktop +share/carla/carla +share/carla/carla-control +share/carla/carla-jack-multi +share/carla/carla-jack-single +share/carla/carla-patchbay +share/carla/carla-rack +share/carla/carla_app.py +share/carla/carla_backend.py +share/carla/carla_backend_qt.py +share/carla/carla_backend_qtweb.py +share/carla/carla_control.py +share/carla/carla_database.py +share/carla/carla_host.py +share/carla/carla_modgui.py +share/carla/carla_settings.py +share/carla/carla_shared.py +share/carla/carla_skin.py +share/carla/carla_utils.py +share/carla/carla_widgets.py +share/carla/externalui.py +share/carla/ladspa_rdf.py +share/carla/modgui/__init__.py +share/carla/modgui/host.py +share/carla/modgui/webserver.py +share/carla/patchcanvas/__init__.py +share/carla/patchcanvas/canvasbezierline.py +share/carla/patchcanvas/canvasbezierlinemov.py +share/carla/patchcanvas/canvasbox.py +share/carla/patchcanvas/canvasboxshadow.py +share/carla/patchcanvas/canvasfadeanimation.py +share/carla/patchcanvas/canvasicon.py +share/carla/patchcanvas/canvasline.py +share/carla/patchcanvas/canvaslinemov.py +share/carla/patchcanvas/canvasport.py +share/carla/patchcanvas/canvasportglow.py +share/carla/patchcanvas/patchcanvas.py +share/carla/patchcanvas/scene.py +share/carla/patchcanvas/theme.py +share/carla/patchcanvas/utils.py +share/carla/resources/bigmeter-ui +share/carla/resources/carla-plugin +share/carla/resources/carla-plugin-patchbay +share/carla/resources/carla_app.py +share/carla/resources/carla_backend.py +share/carla/resources/carla_backend_qt.py +share/carla/resources/carla_control.py +share/carla/resources/carla_database.py +share/carla/resources/carla_host.py +share/carla/resources/carla_settings.py +share/carla/resources/carla_shared.py +share/carla/resources/carla_skin.py +share/carla/resources/carla_utils.py +share/carla/resources/carla_widgets.py +share/carla/resources/externalui.py +share/carla/resources/midipattern-ui +share/carla/resources/modgui +share/carla/resources/notes-ui +share/carla/resources/patchcanvas +share/carla/resources/resources_rc.py +share/carla/resources/ui_carla_about.py +share/carla/resources/ui_carla_about_juce.py +share/carla/resources/ui_carla_add_jack.py +share/carla/resources/ui_carla_database.py +share/carla/resources/ui_carla_edit.py +share/carla/resources/ui_carla_host.py +share/carla/resources/ui_carla_parameter.py +share/carla/resources/ui_carla_plugin_calf.py +share/carla/resources/ui_carla_plugin_classic.py +share/carla/resources/ui_carla_plugin_compact.py +share/carla/resources/ui_carla_plugin_default.py +share/carla/resources/ui_carla_plugin_presets.py +share/carla/resources/ui_carla_refresh.py +share/carla/resources/ui_carla_settings.py +share/carla/resources/ui_carla_settings_driver.py +share/carla/resources/ui_inputdialog_value.py +share/carla/resources/ui_midipattern.py +share/carla/resources/widgets +share/carla/resources/xycontroller-ui +share/carla/resources_rc.py +share/carla/ui_carla_about.py +share/carla/ui_carla_about_juce.py +share/carla/ui_carla_add_jack.py +share/carla/ui_carla_database.py +share/carla/ui_carla_edit.py +share/carla/ui_carla_host.py +share/carla/ui_carla_osc_connect.py +share/carla/ui_carla_parameter.py +share/carla/ui_carla_plugin_calf.py +share/carla/ui_carla_plugin_classic.py +share/carla/ui_carla_plugin_compact.py +share/carla/ui_carla_plugin_default.py +share/carla/ui_carla_plugin_presets.py +share/carla/ui_carla_refresh.py +share/carla/ui_carla_settings.py +share/carla/ui_carla_settings_driver.py +share/carla/ui_inputdialog_value.py +share/carla/ui_midipattern.py +share/carla/ui_xycontroller.py +share/carla/widgets/__init__.py +share/carla/widgets/canvaspreviewframe.py +share/carla/widgets/collapsablewidget.py +share/carla/widgets/digitalpeakmeter.py +share/carla/widgets/draggablegraphicsview.py +share/carla/widgets/ledbutton.py +share/carla/widgets/paramspinbox.py +share/carla/widgets/pianoroll.py +share/carla/widgets/pixmapbutton.py +share/carla/widgets/pixmapdial.py +share/carla/widgets/pixmapkeyboard.py +share/carla/widgets/racklistwidget.py +share/carla/widgets/scalablebutton.py +share/carla/widgets/scalabledial.py +share/icons/hicolor/128x128/apps/carla-control.png +share/icons/hicolor/128x128/apps/carla.png +share/icons/hicolor/16x16/apps/carla-control.png +share/icons/hicolor/16x16/apps/carla.png +share/icons/hicolor/256x256/apps/carla-control.png +share/icons/hicolor/256x256/apps/carla.png +share/icons/hicolor/48x48/apps/carla-control.png +share/icons/hicolor/48x48/apps/carla.png +share/icons/hicolor/scalable/apps/carla-control.svg +share/icons/hicolor/scalable/apps/carla.svg +share/mime/packages/carla.xml diff --git a/carla/TODO b/carla/TODO new file mode 100644 index 0000000000..b979a5d798 --- /dev/null +++ b/carla/TODO @@ -0,0 +1,2 @@ +Some aspects seem buggy, can't figure out how to get it to integrate +with LMMS on NetBSD. diff --git a/carla/buildlink3.mk b/carla/buildlink3.mk new file mode 100644 index 0000000000..cfc2bea7ce --- /dev/null +++ b/carla/buildlink3.mk @@ -0,0 +1,13 @@ +# $NetBSD$ + +BUILDLINK_TREE+= carla + +.if !defined(CARLA_BUILDLINK3_MK) +CARLA_BUILDLINK3_MK:= + +BUILDLINK_API_DEPENDS.carla+= carla>=2.2.0 +BUILDLINK_PKGSRCDIR.carla?= ../../wip/carla + +.endif # CARLA_BUILDLINK3_MK + +BUILDLINK_TREE+= -carla diff --git a/carla/distinfo b/carla/distinfo new file mode 100644 index 0000000000..342e3022b5 --- /dev/null +++ b/carla/distinfo @@ -0,0 +1,9 @@ +$NetBSD$ + +SHA1 (carla-2.2.0.tar.gz) = a28307f2b482048ce075d9bdb9d3d978ba3c87e4 +RMD160 (carla-2.2.0.tar.gz) = a529c5bc99e7c816b691ccaa68acf72d2d13ae24 +SHA512 (carla-2.2.0.tar.gz) = afb2beab979f801817a7fd7663bfdc90800db021679243faa5acb15de60f6dc281032e05c51a8625124c69e7759099fc682678eb98c08507f952763e665ac9c4 +Size (carla-2.2.0.tar.gz) = 9844747 bytes +SHA1 (patch-source_Makefile.mk) = adf4fdbf6c56ca06035c40433f6654244389886f +SHA1 (patch-source_utils_CarlaMutex.hpp) = c50dfe4cc7887f389c8ef776030b4d02d795c422 +SHA1 (patch-source_utils_CarlaScopeUtils.hpp) = aeb077167587908a04c07a27f7137cedefba5c71 diff --git a/carla/patches/patch-source_Makefile.mk b/carla/patches/patch-source_Makefile.mk new file mode 100644 index 0000000000..e46cfc1744 --- /dev/null +++ b/carla/patches/patch-source_Makefile.mk @@ -0,0 +1,18 @@ +$NetBSD$ + +This doesn't work. Just require GNU sed. + +--- source/Makefile.mk.orig 2020-09-26 14:38:36.000000000 +0000 ++++ source/Makefile.mk +@@ -690,11 +690,7 @@ endif + # --------------------------------------------------------------------------------------------------------------------- + # Set arguments used for inline 'sed' + +-ifeq ($(BSD),true) +-SED_ARGS=-i '' -e +-else + SED_ARGS=-i -e +-endif + + # --------------------------------------------------------------------------------------------------------------------- + # Set command used for file symlinking diff --git a/carla/patches/patch-source_utils_CarlaMutex.hpp b/carla/patches/patch-source_utils_CarlaMutex.hpp new file mode 100644 index 0000000000..a764530b0b --- /dev/null +++ b/carla/patches/patch-source_utils_CarlaMutex.hpp @@ -0,0 +1,16 @@ +$NetBSD$ + +NetBSD does not have pthread_condattr_setpshared. + +--- source/utils/CarlaMutex.hpp.orig 2020-09-26 14:38:36.000000000 +0000 ++++ source/utils/CarlaMutex.hpp +@@ -204,7 +204,9 @@ public: + { + pthread_condattr_t cattr; + pthread_condattr_init(&cattr); ++#if defined(PTHREAD_PROCESS_PRIVATE) && !defined(__NetBSD__) + pthread_condattr_setpshared(&cattr, PTHREAD_PROCESS_PRIVATE); ++#endif + pthread_cond_init(&fCondition, &cattr); + pthread_condattr_destroy(&cattr); + diff --git a/carla/patches/patch-source_utils_CarlaScopeUtils.hpp b/carla/patches/patch-source_utils_CarlaScopeUtils.hpp new file mode 100644 index 0000000000..b217b347d3 --- /dev/null +++ b/carla/patches/patch-source_utils_CarlaScopeUtils.hpp @@ -0,0 +1,15 @@ +$NetBSD$ + +NetBSD does not have uselocale. + +--- source/utils/CarlaScopeUtils.hpp.orig 2020-09-26 14:38:36.000000000 +0000 ++++ source/utils/CarlaScopeUtils.hpp +@@ -25,7 +25,7 @@ + #include + #include + +-#if ! (defined(CARLA_OS_HAIKU) || defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN)) ++#if ! (defined(CARLA_OS_HAIKU) || defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN) || defined(__NetBSD__)) + # define CARLA_USE_NEWLOCALE + #endif +