diff options
Diffstat (limited to 'media-libs/rubberband')
-rw-r--r-- | media-libs/rubberband/Manifest | 3 | ||||
-rw-r--r-- | media-libs/rubberband/files/rubberband-3.1.1-build.patch | 183 | ||||
-rw-r--r-- | media-libs/rubberband/rubberband-3.1.1.ebuild | 61 |
3 files changed, 247 insertions, 0 deletions
diff --git a/media-libs/rubberband/Manifest b/media-libs/rubberband/Manifest index bc5bc6cf77db..5cf929d806c5 100644 --- a/media-libs/rubberband/Manifest +++ b/media-libs/rubberband/Manifest @@ -1,7 +1,10 @@ AUX rubberband-3.0.0-build.patch 6150 BLAKE2B 2548de747697e04988e55483f08afd1c8e748080ff81f2db997cdd34ac64ad7031fa6ce5852bfeac0c5f96a04ba906f10d61ce395383ba509da7ed46823fcfc1 SHA512 b1be06cd1ec660db0f023268796850833e0813480acb9c0ba15a62ffca5174b2c5e4897eedc94606033bc51b865da607a549c1bca1bc56a3cd9268cae0566488 AUX rubberband-3.1.0-build.patch 6539 BLAKE2B 206dec904b6f2db1f45b316b2b1845889eaeaa4b9b2f27a1d58fffe9f6660df40c64d0f545d64db8efaf2e93d03a4374ab034e54232abb6983db2324d2e294b1 SHA512 4e261a8b7a618fbb7ded735bddc92bf675a43ad0dc6c8c9eedebdc50f74d44b32de4ea44dc4c4a8b3e081f6d55167c90c9cb553497f727ceabb28db0a058dfe6 +AUX rubberband-3.1.1-build.patch 6962 BLAKE2B 78dce6bb9f749bf2504735302f8aec74eb1405496d376485fc020155652d7726676a7d1bc701ecf1ebecd012c974e50306f2c0eafcdd1a12d9f0f812597a299a SHA512 425b8fdb99d38c8b070b4e42d8809acaf16b8955403604a0329fcdb5dfe2237615712dab4b17fd5faa110946ef246f54d3171191725760b495b7f550b318f428 DIST rubberband-3.0.0.tar.bz2 213089 BLAKE2B 74afdf1f7c3360b711b365d73e12fe84afa5abc8ddb6a10a3d31392a621e9fca67e8b4c0292238b0e5726c56242438e1b2ef1d7d6ea6979a360cc7ecab45de75 SHA512 d8ce300a2cca7e35c548f9cd9f2f77f9b730b0e9427214d4a825b32ea9c90769e229f91db5846b90ff11a1513e8f68447fb598aa2684f67f10b4b9414b9ad748 DIST rubberband-3.1.0.tar.bz2 217523 BLAKE2B f16c702e39804bfa79d673b5eed4cf0e295b5b16ca0ed41175118dbd30b3b78de12302e04f5255474859bcf80761cbada85d4df441ee454a0276d7f313be40b2 SHA512 bf21e924801651986a64b3ec3f1bfd399925da63de78e798b5b7ef5f138db4e8f2ba4f93eda54c619952cadadaa0d76871c5be1b2cdbcbc74233d0e078d0b8d2 +DIST rubberband-3.1.1.tar.bz2 217586 BLAKE2B 17f616eab563f0949dc89103775dac2c932b8ade79e7445524c87d9ced46ecd30d9cff53960e2638ce571c1f6ddbc9ad50e7371900b96eb0ec22c58cc80e585e SHA512 240ad6cd486f975099f76c6ac8bcf34add45670f58164089ffc9767ebef4c7dfdd7e58ad0c3d99a96f56af0d1f7669e55c5fc3e79277357c62fba21cb3bfe4cd EBUILD rubberband-3.0.0.ebuild 1573 BLAKE2B 65f28fa2d3d9b09903da0f2d8fe55108ab4dc32345a4d91dd069a5c39c7cbe6267bbce78d82f2dfd8c8622ece1b069fa5fda15162894fa8209b0cab0c2672264 SHA512 08b2a01e072f341562f7eea435c110002ef9aed1e876c3d54598fc674102ab67886f747cd26236f53507af9defe45f79ba44de0d863f61d511b1887f4279bc27 EBUILD rubberband-3.1.0.ebuild 1579 BLAKE2B 44fe0a735c5bc45bbc037b2d924154092badb0612d627f4ef13591b864dd619f88a4bc816724075968832b2dfc42675a9529c90d2836163b15f3667a6171fa23 SHA512 b409d6db0bec4f6df57accd20c75f9cb74aea9db576db3b40bd7103cf6ddb0c1d32976cec82e10cf30ce2311aa564140302fc7a236183bdb02ad436a19ae53eb +EBUILD rubberband-3.1.1.ebuild 1579 BLAKE2B 44fe0a735c5bc45bbc037b2d924154092badb0612d627f4ef13591b864dd619f88a4bc816724075968832b2dfc42675a9529c90d2836163b15f3667a6171fa23 SHA512 b409d6db0bec4f6df57accd20c75f9cb74aea9db576db3b40bd7103cf6ddb0c1d32976cec82e10cf30ce2311aa564140302fc7a236183bdb02ad436a19ae53eb MISC metadata.xml 491 BLAKE2B bda0db771d95de138274eb35f4c135f3bd9fb3a1b75ce60a8c57ad71e0c0a894924bb52060c8ca87e689f2a0f581213639de2ca5615a134dfecfa4f008698b2a SHA512 c549bcf465808927153a79f145b222379270d2813e150606382dcb1c15980a37a89d7f0178d3fee2fd3eb7216dd6ad989efe0a24e398f67af95872f6c92d570a diff --git a/media-libs/rubberband/files/rubberband-3.1.1-build.patch b/media-libs/rubberband/files/rubberband-3.1.1-build.patch new file mode 100644 index 000000000000..650deb8d996f --- /dev/null +++ b/media-libs/rubberband/files/rubberband-3.1.1-build.patch @@ -0,0 +1,183 @@ +diff --git a/meson.build b/meson.build +index 43cbf33..2024964 100644 +--- a/meson.build ++++ b/meson.build +@@ -117,12 +117,18 @@ sleef_dep = dependency('sleef', version: '>= 3.3.0', required: false) + sleefdft_dep = dependency('sleefdft', version: '>= 3.3.0', required: false) + samplerate_dep = dependency('samplerate', version: '>= 0.1.8', required: false) + speexdsp_dep = dependency('speexdsp', version: '>= 1.0.0', required: false) +-sndfile_dep = dependency('sndfile', version: '>= 1.0.16', required: false) +-vamp_dep = dependency('vamp-sdk', version: '>= 2.9', required: false) ++if get_option('programs') ++ sndfile_dep = dependency('sndfile', version: '>= 1.0.16', required: true) ++endif ++if get_option('vamp') ++ vamp_dep = dependency('vamp-sdk', version: '>= 2.9', required: true) ++endif + + boost_unit_test_dep = dependency('boost', modules: ['unit_test_framework'], version: '>= 1.73', required: false) + thread_dep = dependency('threads') +-have_ladspa = cpp.has_header('ladspa.h', args: extra_include_args) ++if get_option('ladspa') ++ have_ladspa = cpp.has_header('ladspa.h', args: extra_include_args) ++endif + have_lv2 = cpp.has_header('lv2.h', args: extra_include_args) + have_sincos = cpp.has_function('sincos', + prefix: '#define _GNU_SOURCE\n#include <math.h>', +@@ -142,8 +148,9 @@ have_sincos = cpp.has_function('sincos', + # language pack, optionally, and only go on to JNI if that succeeds, + # making sure that nothing "clever" happens if Java is not found. + # +-have_java = add_languages('java', required: false) +-if have_java ++if get_option('jni') ++ javac = find_program('javac', required: false) ++ jar = find_program('jar', required: true) + jni_dep = dependency('jni', version: '>= 7.0.0', required: false) + if not jni_dep.found() + if cpp.has_header('jni.h', args: extra_include_args) +@@ -370,37 +377,41 @@ if ipp_needed + endif + endif # ipp_needed + +-if not vamp_dep.found() +- vamp_dep = cpp.find_library('VampPluginSDK', +- dirs: get_option('extra_lib_dirs'), +- has_headers: ['vamp-sdk.h'], +- header_args: extra_include_args, +- required: false) ++if get_option('vamp') + if not vamp_dep.found() +- vamp_dep = cpp.find_library('vamp-sdk', ++ vamp_dep = cpp.find_library('VampPluginSDK', + dirs: get_option('extra_lib_dirs'), + has_headers: ['vamp-sdk.h'], + header_args: extra_include_args, + required: false) ++ if not vamp_dep.found() ++ vamp_dep = cpp.find_library('vamp-sdk', ++ dirs: get_option('extra_lib_dirs'), ++ has_headers: ['vamp-sdk.h'], ++ header_args: extra_include_args, ++ required: false) ++ endif + endif ++ have_vamp = true + endif +-have_vamp = vamp_dep.found() + +-if not sndfile_dep.found() +- sndfile_dep = cpp.find_library('sndfile', +- dirs: get_option('extra_lib_dirs'), +- has_headers: ['sndfile.h'], +- header_args: extra_include_args, +- required: false) ++if get_option('programs') + if not sndfile_dep.found() +- sndfile_dep = cpp.find_library('sndfile-1', ++ sndfile_dep = cpp.find_library('sndfile', + dirs: get_option('extra_lib_dirs'), + has_headers: ['sndfile.h'], + header_args: extra_include_args, + required: false) ++ if not sndfile_dep.found() ++ sndfile_dep = cpp.find_library('sndfile-1', ++ dirs: get_option('extra_lib_dirs'), ++ has_headers: ['sndfile.h'], ++ header_args: extra_include_args, ++ required: false) ++ endif + endif ++ have_sndfile = true + endif +-have_sndfile = sndfile_dep.found() + + have_boost_unit_test = boost_unit_test_dep.found() + +@@ -609,7 +620,7 @@ if get_option('default_library') != 'shared' and rubberband_additional_static_li + ) + endif + +-if have_java and jni_dep.found() ++if get_option('jni') + target_summary += { 'JNI library': [ true, 'Name: ' + rubberband_jni_name ] } + message('Will build Java Native Interface') + rubberband_jni = shared_library( +@@ -630,14 +641,21 @@ if have_java and jni_dep.found() + # NB the JNI library is not versioned + install: true, + ) +- jar('rubberband', 'com/breakfastquay/rubberband/RubberBandStretcher.java') ++ rubberband_class = custom_target( ++ 'rubberband_class', ++ input: 'com/breakfastquay/rubberband/RubberBandStretcher.java', ++ output: 'RubberBandStretcher.class', ++ command: [ javac, '@INPUT@', '-d', '@OUTDIR@' ], ++ ) ++ rubberband_jar = custom_target( ++ 'rubberband_jar', ++ input: rubberband_class, ++ output: 'rubberband.jar', ++ command: [ jar, 'cvf', '@OUTPUT@', 'com/breakfastquay/rubberband/@INPUT@' ], ++ build_by_default: true, ++ ) + else + target_summary += { 'JNI library': false } +- if not have_java +- message('Not building Java Native Interface: Java compiler or archiver missing') +- else +- message('Not building Java Native Interface: JNI header not found') +- endif + endif + + install_headers( +@@ -647,7 +665,7 @@ install_headers( + subdir: 'rubberband' + ) + +-if have_ladspa ++if get_option('ladspa') + target_summary += { 'LADSPA plugin': [ true, 'Name: ' + rubberband_ladspa_name ] } + message('Will build LADSPA plugin') + rubberband_ladspa = shared_library( +@@ -714,7 +732,7 @@ else + message('Not building LV2 plugin: lv2.h header not found') + endif + +-if have_vamp ++if get_option('vamp') + target_summary += { 'Vamp plugin': [ true, 'Name: ' + rubberband_vamp_name ] } + message('Will build Vamp plugin') + rubberband_vamp = shared_library( +@@ -746,7 +764,7 @@ else + message('Not building Vamp plugin: Vamp dependency not found') + endif + +-if have_sndfile ++if get_option('programs') + message('Will build command-line utilities') + target_summary += { 'Command-line utility (R2)': [ true, 'Name: ' + rubberband_program_name ] } + rubberband_program = executable( +diff --git a/meson_options.txt b/meson_options.txt +index e44837c..4e4ca29 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -26,3 +26,18 @@ option('extra_lib_dirs', + value: [], + description: 'Additional local library directories to search for dependencies.') + ++option('jni', ++ type: 'boolean', ++ value: 'false') ++ ++option('ladspa', ++ type: 'boolean', ++ value: 'false') ++ ++option('programs', ++ type: 'boolean', ++ value: 'false') ++ ++option('vamp', ++ type: 'boolean', ++ value: 'false') diff --git a/media-libs/rubberband/rubberband-3.1.1.ebuild b/media-libs/rubberband/rubberband-3.1.1.ebuild new file mode 100644 index 000000000000..d19aa930e757 --- /dev/null +++ b/media-libs/rubberband/rubberband-3.1.1.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson-multilib flag-o-matic + +DESCRIPTION="An audio time-stretching and pitch-shifting library and utility program" +HOMEPAGE="https://www.breakfastquay.com/rubberband/" +SRC_URI="https://breakfastquay.com/files/releases/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="ladspa jni static-libs +programs vamp" + +BDEPEND=" + virtual/pkgconfig +" +CDEPEND=" + media-libs/libsamplerate[${MULTILIB_USEDEP}] + sci-libs/fftw:3.0[${MULTILIB_USEDEP}] + jni? ( >=virtual/jdk-1.8:* ) + ladspa? ( media-libs/ladspa-sdk ) + programs? ( media-libs/libsndfile ) + vamp? ( media-libs/vamp-plugin-sdk[${MULTILIB_USEDEP}] ) +" +RDEPEND="${CDEPEND}" +DEPEND="${CDEPEND}" + +PATCHES=( + "${FILESDIR}/${P}-build.patch" +) + +multilib_src_configure() { + if use ppc ; then + # bug #827203 + # meson doesn't respect/use LIBS but mangles LDFLAGS with libs + # correctly. Use this until we get a Meson test for libatomic. + append-ldflags -latomic + fi + + local emesonargs=( + --buildtype=release + -Dfft=fftw + -Dresampler=libsamplerate + -Ddefault_library=$(use static-libs && echo "both" || echo "shared") + $(meson_use ladspa) + $(meson_use jni) + $(meson_use programs) + $(meson_use vamp) + ) + use jni && emesonargs+=( + -Dextra_include_dirs="$(java-config -g JAVA_HOME)/include,$(java-config -g JAVA_HOME)/include/linux" + ) + meson_src_configure +} + +multilib_src_install_all() { + ! use jni && find "${ED}" -name "*.a" -delete +} |