diff --git a/recipes-misc/recipes-multimedia/ardour/ardour5_git.bb b/recipes-misc/recipes-multimedia/ardour/ardour_git.bb similarity index 51% rename from recipes-misc/recipes-multimedia/ardour/ardour5_git.bb rename to recipes-misc/recipes-multimedia/ardour/ardour_git.bb index a618a8bd..96860b63 100644 --- a/recipes-misc/recipes-multimedia/ardour/ardour5_git.bb +++ b/recipes-misc/recipes-multimedia/ardour/ardour_git.bb @@ -3,8 +3,12 @@ HOMEPAGE = "http://ardour.org/" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=4641e94ec96f98fabc56ff9cc48be14b" +# It is a V6 already +ARDOUR_VER = "6" + DEPENDS += " \ gettext-native \ + itstool-native \ gtk+ \ gtkmm \ cppunit \ @@ -36,10 +40,11 @@ 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://ardour5.desktop \ + file://0003-Follow-fluidsynth-s-API-changes-introduced-with-2.0..patch \ + file://0004-Make-itstool-work.patch \ " -SRCREV = "ae0dcdc0c5d13483271065c360e378202d20170a" -PV = "5.12" +SRCREV = "2a9af2d2f6aa9025adabf2f9bc6e42c65b43c08a" +PV = "5.12+git${SRCPV}" S = "${WORKDIR}/git" @@ -51,7 +56,7 @@ EXTRA_OECONF = " \ --configdir=${sysconfdir} \ --libdir=${libdir} \ --optimize \ - --cxx11 \ + --freedesktop \ --no-phone-home \ --use-external-libs \ --qm-dsp-include=${STAGING_INCDIR}/qm-dsp \ @@ -60,39 +65,49 @@ EXTRA_OECONF = " \ --dist-target=${BUILD_DIST_TARGET} \ " +do_configure_prepend() { + # force full path for itstool + sed -i 's:%sysroot_bindir%:${STAGING_BINDIR_NATIVE}:g' ${S}/gtk2_ardour/wscript +} + 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 + ln -s ../../../../${BPN}${ARDOUR_VER}/resources/Ardour-icon_${s}px.png \ + ${D}${datadir}/icons/hicolor/${s}x${s}/apps/${BPN}${ARDOUR_VER}.png done - # install .desktop install -d ${D}${datadir}/applications - install -m 0644 ${WORKDIR}/ardour5.desktop ${D}${datadir}/applications + install -m 0644 ${S}/build/gtk2_ardour/${BPN}${ARDOUR_VER}.desktop ${D}${datadir}/applications } FILES_${PN} += " \ - ${datadir}/${BPN} \ - ${libdir}/${BPN} \ + ${datadir}/${BPN}${ARDOUR_VER} \ + ${libdir}/${BPN}${ARDOUR_VER} \ " 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 \ + ${libdir}/${BPN}${ARDOUR_VER}/libardour.so \ + ${libdir}/${BPN}${ARDOUR_VER}/libardouralsautil.so \ + ${libdir}/${BPN}${ARDOUR_VER}/libaudiographer.so \ + ${libdir}/${BPN}${ARDOUR_VER}/libcanvas.so \ + ${libdir}/${BPN}${ARDOUR_VER}/libevoral.so \ + ${libdir}/${BPN}${ARDOUR_VER}/libgtkmm2ext.so \ + ${libdir}/${BPN}${ARDOUR_VER}/libmidipp.so \ + ${libdir}/${BPN}${ARDOUR_VER}/libpbd.so \ + ${libdir}/${BPN}${ARDOUR_VER}/libptformat.so \ + ${libdir}/${BPN}${ARDOUR_VER}/libtemporal.so \ + ${libdir}/${BPN}${ARDOUR_VER}/libwaveview.so \ + ${libdir}/${BPN}${ARDOUR_VER}/libwidgets.so \ + ${libdir}/${BPN}${ARDOUR_VER}/vamp/libardourvampplugins.so \ " FILES_${PN}-staticdev += " \ - ${libdir}/${BPN}/*.a \ + ${libdir}/${BPN}${ARDOUR_VER}/*.a \ " + +RPROVIDES_${PN} += "${PN}5" +RREPLACES_${PN} += "${PN}5" +RCONFLICTS_${PN} += "${PN}5" + diff --git a/recipes-misc/recipes-multimedia/ardour/files/0001-remove-all-build-flags-that-cause-trouble-for-cross-.patch b/recipes-misc/recipes-multimedia/ardour/files/0001-remove-all-build-flags-that-cause-trouble-for-cross-.patch index c07b3d4f..805f3d20 100644 --- a/recipes-misc/recipes-multimedia/ardour/files/0001-remove-all-build-flags-that-cause-trouble-for-cross-.patch +++ b/recipes-misc/recipes-multimedia/ardour/files/0001-remove-all-build-flags-that-cause-trouble-for-cross-.patch @@ -62,14 +62,6 @@ index a7dd5e2..35acc51 100644 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-misc/recipes-multimedia/ardour/files/0003-Follow-fluidsynth-s-API-changes-introduced-with-2.0..patch b/recipes-misc/recipes-multimedia/ardour/files/0003-Follow-fluidsynth-s-API-changes-introduced-with-2.0..patch new file mode 100644 index 00000000..a690ce59 --- /dev/null +++ b/recipes-misc/recipes-multimedia/ardour/files/0003-Follow-fluidsynth-s-API-changes-introduced-with-2.0..patch @@ -0,0 +1,113 @@ +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 + +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-misc/recipes-multimedia/ardour/files/0004-Make-itstool-work.patch b/recipes-misc/recipes-multimedia/ardour/files/0004-Make-itstool-work.patch new file mode 100644 index 00000000..b5f29383 --- /dev/null +++ b/recipes-misc/recipes-multimedia/ardour/files/0004-Make-itstool-work.patch @@ -0,0 +1,65 @@ +From dd670c0e3dd3f0a7358740d8e198686cc2826beb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 13 Oct 2018 00:01:01 +0200 +Subject: [PATCH] Make itstool 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 +--- + gtk2_ardour/wscript | 4 ++-- + wscript | 13 ------------- + 2 files changed, 2 insertions(+), 15 deletions(-) + +diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript +index d98e4e991..7a872382b 100644 +--- a/gtk2_ardour/wscript ++++ b/gtk2_ardour/wscript +@@ -957,7 +957,7 @@ def appdata_i18n_pot(bld): + 'ardour.appdata.xml.in.in') + Logs.info('Updating ' + potfile) + try: +- subprocess.call(('itstool', '-i', itsfile, '-o', potfile, adsource)) ++ subprocess.call(('python3', '%sysroot_bindir%/itstool', '-i', itsfile, '-o', potfile, adsource)) + except: + print ('Error processing appdata pot file - ignored') + elif bld.cmd == 'clean' and os.path.exists(potfile): +@@ -982,7 +982,7 @@ def appdata_i18n_xmlin(bld): + mo_glob = os.path.join(bld.top_dir, 'gtk2_ardour', 'appdata', 'po', '*.mo') + mo_files = glob.glob(mo_glob) + Logs.info('Generating ' + adxmlinfile) +- subprocess.call(['itstool', '-i', itsfile, '-o', adxmlinfile, ++ subprocess.call(['python3', '%sysroot_bindir%/itstool', '-i', itsfile, '-o', adxmlinfile, + '-j', adxmlininfile] + mo_files) + elif bld.cmd == 'clean' and os.path.exists(adxmlinfile): + Logs.info('Removing ' + adxmlinfile) +diff --git a/wscript b/wscript +index 6bdef92f6..1e3552f61 100644 +--- a/wscript ++++ b/wscript +@@ -861,19 +861,6 @@ def configure(conf): + conf.env['CFLAGS'] = [] + conf.env['CXXFLAGS'] = [] + +- # freedesktop translations needs itstool > 1.0.3 (-j option) +- if Options.options.freedesktop: +- output = subprocess.Popen("itstool --version", shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].splitlines() +- o = output[0].decode('utf-8') +- itstool = o.split(' ')[0] +- version = o.split(' ')[1].split('.') +- # use distutils.version.StrictVersion or something python to check >= 1.0.4 +- # but first make sure that all build-hosts (incl. OSX-10.5/PPC) have that python lib. +- # lazy approach: just use major version 2.X.X +- if itstool != "itstool" or version[0] < "2": +- print("--freedesktop requires itstool > 2.0.0 to translate files.") +- sys.exit(-1) +- + conf.env['VERSION'] = VERSION + conf.env['MAJOR'] = MAJOR + conf.env['MINOR'] = MINOR +-- +2.14.4 + diff --git a/recipes-misc/recipes-multimedia/ardour/files/ardour5.desktop b/recipes-misc/recipes-multimedia/ardour/files/ardour5.desktop deleted file mode 100644 index 9ecfaeaa..00000000 --- a/recipes-misc/recipes-multimedia/ardour/files/ardour5.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[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-support/packagegroups/meta-qt5-extra-music-world.bb b/recipes-support/packagegroups/meta-qt5-extra-music-world.bb index bf69fa35..4f2e77de 100644 --- a/recipes-support/packagegroups/meta-qt5-extra-music-world.bb +++ b/recipes-support/packagegroups/meta-qt5-extra-music-world.bb @@ -11,7 +11,7 @@ inherit packagegroup RDEPENDS_${PN} = " \ amsynth \ - ardour5 \ + ardour \ aubio \ audio-tweaks \ bristol \