From 328ac48d747d6b65a780df79a4f20feeb18b1d49 Mon Sep 17 00:00:00 2001 From: David Guglielmi Date: Thu, 10 Sep 2015 22:38:32 +0200 Subject: [PATCH] - media-sound/mixxx: Initial import from proaudio --- media-sound/mixxx/Manifest | 6 + .../mixxx/files/mixxx-9999-desktop-file.patch | 11 ++ media-sound/mixxx/files/mixxx-9999-docs.patch | 10 ++ .../mixxx/files/mixxx-9999-system-libs.patch | 168 ++++++++++++++++++ media-sound/mixxx/mixxx-1.12.0_beta1.ebuild | 100 +++++++++++ media-sound/mixxx/mixxx-1.12.9999.ebuild | 100 +++++++++++ 6 files changed, 395 insertions(+) create mode 100644 media-sound/mixxx/Manifest create mode 100644 media-sound/mixxx/files/mixxx-9999-desktop-file.patch create mode 100644 media-sound/mixxx/files/mixxx-9999-docs.patch create mode 100644 media-sound/mixxx/files/mixxx-9999-system-libs.patch create mode 100644 media-sound/mixxx/mixxx-1.12.0_beta1.ebuild create mode 100644 media-sound/mixxx/mixxx-1.12.9999.ebuild diff --git a/media-sound/mixxx/Manifest b/media-sound/mixxx/Manifest new file mode 100644 index 0000000..df316fc --- /dev/null +++ b/media-sound/mixxx/Manifest @@ -0,0 +1,6 @@ +AUX mixxx-9999-desktop-file.patch 334 SHA256 9807e42755dcc72c6e5fe30113a4ca6b06396b0b8cd1fd65227b2584fd39b01f SHA512 58d73a35c3fd9d1390d95915878d3120b4d0f1969562f2f63dc550570889687ce471e4b450e7ae708625332f083a1b8dbf926c4fa3784010be6f5227acb61931 WHIRLPOOL 843c64eccbd415210efc1f021cb7e9bc8acab5509f1a6c53a3c277c77687b02a36c76c3ac0b6f78efaaa334b2e4456951401c2972cb31d6ac2e5c92bc0ef0854 +AUX mixxx-9999-docs.patch 445 SHA256 9250ab6b2368ad03b8c54d767fda1d23cd826340189cf8989a3156b76b375411 SHA512 cad756af2cfc90433b20d0a867aed9b85ee822691c5c8adc97de6943273823a769d8e6d4912a71f00bbead2cd96cff91cc12fb2fb8de547bf76dabd74372490e WHIRLPOOL 91b48e4577ff127065bbcae34d945613029850b43831209cc1b1f9c2d1da7fc3c02c9fa96dd958fe85f934749bcbace1b2c6c3c358306dc6d6ea91935337a327 +AUX mixxx-9999-system-libs.patch 6867 SHA256 687975453918d6ded0379091e88c6469a909284ce5e5aa3dc942921982c59e59 SHA512 e9427e4c170321ce975de557e4b0d7ad442807fa72ac7a58c80db12c8cf44d1ba63005eeaa2545b1dee4db5250d049f0a0d40235e41ced75aaf8247349241ec1 WHIRLPOOL 440326c32b69f5b865dea7a35b1f6af770db4909512b13fc1b8418f8ce52a28bd990f04fb850969269e023009458a1cc6efa0c537c2a6a8997c48a8f158f0a35 +DIST mixxx-1.12.0_beta1.tar.gz 24780154 SHA256 1204b04044b090b297c2863118dde4f2962d557f9bf606b1069efe824e18616f SHA512 1fe6ca8c876b2a33c3e0a329ddf53856e037f2e8e6574dae86c46a364cf604f124d0f8e2f5abd150307c4baeeeb7cf9c516d681989d2f7cf54c421ce7ddb76bb WHIRLPOOL e4e970e301509d36d555d07b317828f81734509f739bebeac174007048a800910eecd546c8e1beacb2baec7a96220a35012abdde4703b7c67e497843d915bb53 +EBUILD mixxx-1.12.0_beta1.ebuild 2395 SHA256 fdee7e76829cbee153cb1134fd4e201549b64240566db15416c1bb39e26c273d SHA512 c13e85758c47076d76017a19880405d908793fc9d692e594bd136c7ba3e3a22171099b6aca8b5420b8bd38686fa53913251b127afdf4b452000e8ab9dc0473f3 WHIRLPOOL 2b7a41d5423ec8271e63a0ca5c1c6bb5b9ffd84936b3f9233f5dde0b7698432afc574bd32ad52e156d5eb37b9808e4d9bfb98f06044c3cebc9369daf38c34382 +EBUILD mixxx-1.12.9999.ebuild 2382 SHA256 4084beabf921c7e0079a06b277ac26a5e3e4c05c052ee5ec31399653dc4569e4 SHA512 37ceef9fe12b2f9c37ddaf5c4f83ac1624a9a7c70dd614c630d8ff891584db14a1bfe7af47c3da50e196ce964bb06ab86c7cd3884bb75dec394da57b306769fd WHIRLPOOL c9f039156cbc2e13d488e94c54b22253219b10a489abd2a5da1f67d467ce732749a943e3547506ef7ed216a694ab1a84ca8e913b4632f6f4b336c69227b49214 diff --git a/media-sound/mixxx/files/mixxx-9999-desktop-file.patch b/media-sound/mixxx/files/mixxx-9999-desktop-file.patch new file mode 100644 index 0000000..e885267 --- /dev/null +++ b/media-sound/mixxx/files/mixxx-9999-desktop-file.patch @@ -0,0 +1,11 @@ +--- a/res/linux/mixxx.desktop 2015-09-10 22:28:43.231867210 +0200 ++++ b/res/linux/mixxx.desktop 2015-09-10 22:28:53.331800347 +0200 +@@ -3,7 +3,7 @@ + Name=Mixxx + GenericName=Digital DJ interface + Comment=A digital DJ interface +-Exec=pasuspender mixxx || mixxx ++Exec=pasuspender mixxx + Terminal=false + Icon=mixxx-icon + Type=Application diff --git a/media-sound/mixxx/files/mixxx-9999-docs.patch b/media-sound/mixxx/files/mixxx-9999-docs.patch new file mode 100644 index 0000000..bc26d58 --- /dev/null +++ b/media-sound/mixxx/files/mixxx-9999-docs.patch @@ -0,0 +1,10 @@ +--- mixxx-9999/src/SConscript ++++ mixxx-9999/src/SConscript +@@ -290,7 +290,6 @@ + env.Alias('install', controllermappings) + env.Alias('install', translations) + env.Alias('install', keyboardmappings) +- env.Alias('install', docs) + env.Alias('install', dotdesktop) + env.Alias('install', icon) + env.Alias('install', promotracks) diff --git a/media-sound/mixxx/files/mixxx-9999-system-libs.patch b/media-sound/mixxx/files/mixxx-9999-system-libs.patch new file mode 100644 index 0000000..2c10a39 --- /dev/null +++ b/media-sound/mixxx/files/mixxx-9999-system-libs.patch @@ -0,0 +1,168 @@ +diff --git a/build/depends.py b/build/depends.py +index 77f4c4f..a3d0df0 100644 +--- a/build/depends.py ++++ b/build/depends.py +@@ -347,25 +347,10 @@ class TestHeaders(Dependence): + + class FidLib(Dependence): + +- def sources(self, build): +- symbol = None +- if build.platform_is_windows: +- if build.toolchain_is_msvs: +- symbol = 'T_MSVC' +- elif build.crosscompile: +- # Not sure why, but fidlib won't build with mingw32msvc and +- # T_MINGW +- symbol = 'T_LINUX' +- elif build.toolchain_is_gnu: +- symbol = 'T_MINGW' +- else: +- symbol = 'T_LINUX' +- +- return [build.env.StaticObject('#lib/fidlib-0.9.10/fidlib.c', +- CPPDEFINES=symbol)] +- + def configure(self, build, conf): +- build.env.Append(CPPPATH='#lib/fidlib-0.9.10/') ++ if not conf.CheckLib('fidlib'): ++ raise Exception('Did not find fidlib library, exiting!') ++ build.env.Append(CPPPATH=[SCons.ARGUMENTS.get('prefix') + '/include/fidlib']) + + + class ReplayGain(Dependence): +@@ -378,42 +363,17 @@ class ReplayGain(Dependence): + + + class SoundTouch(Dependence): +- SOUNDTOUCH_PATH = 'soundtouch-1.8.0' + + def sources(self, build): +- return ['engine/enginebufferscalest.cpp', +- '#lib/%s/AAFilter.cpp' % self.SOUNDTOUCH_PATH, +- '#lib/%s/BPMDetect.cpp' % self.SOUNDTOUCH_PATH, +- '#lib/%s/FIFOSampleBuffer.cpp' % self.SOUNDTOUCH_PATH, +- '#lib/%s/FIRFilter.cpp' % self.SOUNDTOUCH_PATH, +- '#lib/%s/InterpolateCubic.cpp' % self.SOUNDTOUCH_PATH, +- '#lib/%s/InterpolateLinear.cpp' % self.SOUNDTOUCH_PATH, +- '#lib/%s/InterpolateShannon.cpp' % self.SOUNDTOUCH_PATH, +- '#lib/%s/PeakFinder.cpp' % self.SOUNDTOUCH_PATH, +- '#lib/%s/RateTransposer.cpp' % self.SOUNDTOUCH_PATH, +- '#lib/%s/SoundTouch.cpp' % self.SOUNDTOUCH_PATH, +- '#lib/%s/TDStretch.cpp' % self.SOUNDTOUCH_PATH, +- # SoundTouch CPU optimizations are only for x86 +- # architectures. SoundTouch automatically ignores these files +- # when it is not being built for an architecture that supports +- # them. +- '#lib/%s/cpu_detect_x86.cpp' % self.SOUNDTOUCH_PATH, +- '#lib/%s/mmx_optimized.cpp' % self.SOUNDTOUCH_PATH, +- '#lib/%s/sse_optimized.cpp' % self.SOUNDTOUCH_PATH] ++ return ['engine/enginebufferscalest.cpp'] + + def configure(self, build, conf, env=None): + if env is None: + env = build.env +- env.Append(CPPPATH=['#lib/%s' % self.SOUNDTOUCH_PATH]) +- +- # Prevents circular import. +- from features import Optimize +- +- # If we do not want optimizations then disable them. +- optimize = (build.flags['optimize'] if 'optimize' in build.flags +- else Optimize.get_optimization_level()) +- if optimize == Optimize.LEVEL_OFF: +- env.Append(CPPDEFINES='SOUNDTOUCH_DISABLE_X86_OPTIMIZATIONS') ++ if not conf.CheckLib(['SoundTouch','libSoundTouch']): ++ raise Exception('Did not find SoundTouch library, exiting!') ++ build.env.Append(CPPPATH=[SCons.ARGUMENTS.get('prefix') + '/include/soundtouch']) ++ build.env.Append(LIBS='SoundTouch') + + + class RubberBand(Dependence): +diff --git a/build/features.py b/build/features.py +index 2ef1ecd..c100f3b 100644 +--- a/build/features.py ++++ b/build/features.py +@@ -45,7 +45,6 @@ class HSS1394(Feature): + + + class HID(Feature): +- HIDAPI_INTERNAL_PATH = '#lib/hidapi-0.8.0-pre' + + def description(self): + return "HID controller support" +@@ -62,10 +61,6 @@ class HID(Feature): + def configure(self, build, conf): + if not self.enabled(build): + return +- # TODO(XXX) allow external hidapi install, but for now we just use our +- # internal one. +- build.env.Append( +- CPPPATH=[os.path.join(self.HIDAPI_INTERNAL_PATH, 'hidapi')]) + + if build.platform_is_linux: + build.env.ParseConfig( +@@ -89,23 +84,18 @@ class HID(Feature): + build.env.AppendUnique(FRAMEWORKS=['IOKit', 'CoreFoundation']) + + build.env.Append(CPPDEFINES='__HID__') ++ ++ if not conf.CheckLib('hidapi-libusb'): ++ raise Exception('Did not find HID API library, exiting!') ++ build.env.Append(CPPPATH=[SCons.ARGUMENTS.get('prefix') + '/include/hidapi']) ++ build.env.Append(LIBS='hidapi-libusb') ++ + + def sources(self, build): + sources = ['controllers/hid/hidcontroller.cpp', + 'controllers/hid/hidenumerator.cpp', + 'controllers/hid/hidcontrollerpresetfilehandler.cpp'] + +- if build.platform_is_windows: +- # Requires setupapi.lib which is included by the above check for +- # setupapi. +- sources.append( +- os.path.join(self.HIDAPI_INTERNAL_PATH, "windows/hid.c")) +- elif build.platform_is_linux: +- sources.append( +- os.path.join(self.HIDAPI_INTERNAL_PATH, 'linux/hid-libusb.c')) +- elif build.platform_is_osx: +- sources.append( +- os.path.join(self.HIDAPI_INTERNAL_PATH, 'mac/hid.c')) + return sources + + +@@ -717,24 +707,15 @@ class TestSuite(Feature): + test_env.Append(CCFLAGS='-pthread') + test_env.Append(LINKFLAGS='-pthread') + +- test_env.Append(CPPPATH="#lib/gtest-1.7.0/include") +- gtest_dir = test_env.Dir("#lib/gtest-1.7.0") +- # gtest_dir.addRepository(build.env.Dir('#lib/gtest-1.5.0')) +- # build.env['EXE_OUTPUT'] = '#/lib/gtest-1.3.0/bin' # example, +- # optional +- test_env['LIB_OUTPUT'] = '#/lib/gtest-1.7.0/lib' +- +- env = test_env +- SCons.Export('env') +- env.SConscript(env.File('SConscript', gtest_dir)) +- +- # build and configure gmock +- test_env.Append(CPPPATH="#lib/gmock-1.7.0/include") +- gmock_dir = test_env.Dir("#lib/gmock-1.7.0") +- # gmock_dir.addRepository(build.env.Dir('#lib/gmock-1.5.0')) +- test_env['LIB_OUTPUT'] = '#/lib/gmock-1.7.0/lib' +- +- env.SConscript(env.File('SConscript', gmock_dir)) ++ if not conf.CheckLib('gtest'): ++ raise Exception('Did not find gtest library, exiting!') ++ test_env.Append(CPPPATH=[SCons.ARGUMENTS.get('prefix') + '/include/gtest']) ++ test_env.Append(LIBS='gtest') ++ ++ if not conf.CheckLib('gmock'): ++ raise Exception('Did not find gmock library, exiting!') ++ test_env.Append(CPPPATH=[SCons.ARGUMENTS.get('prefix') + '/include/gmock']) ++ test_env.Append(LIBS='gmock') + + return [] + diff --git a/media-sound/mixxx/mixxx-1.12.0_beta1.ebuild b/media-sound/mixxx/mixxx-1.12.0_beta1.ebuild new file mode 100644 index 0000000..2efc9c9 --- /dev/null +++ b/media-sound/mixxx/mixxx-1.12.0_beta1.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 + +inherit eutils multilib scons-utils toolchain-funcs + +DESCRIPTION="A Qt based Digital DJ tool" +HOMEPAGE="http://www.mixxx.org/" +SRC_URI="https://github.com/mixxxdj/${PN}/archive/release-${PV/_/-}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="aac debug doc ffmpeg hid mp3 mp4 pulseaudio shout wavpack" + +RDEPEND="dev-libs/protobuf + media-libs/chromaprint + >media-libs/fidlib-0.9.10-r1 + media-libs/flac + media-libs/libid3tag + media-libs/libogg + media-libs/libsndfile + >=media-libs/libsoundtouch-1.5 + media-libs/libvorbis + >=media-libs/portaudio-19_pre + media-libs/portmidi + media-libs/rubberband + media-libs/taglib + media-libs/vamp-plugin-sdk + sci-libs/fftw:3.0 + virtual/glu + virtual/opengl + dev-qt/qtgui:4 + dev-qt/qtopengl:4 + dev-qt/qtsql:4 + dev-qt/qtsvg:4 + dev-qt/qttest:4 + dev-qt/qtwebkit:4 + dev-qt/qtxmlpatterns:4 + aac? ( + media-libs/faad2 + media-libs/libmp4v2:0 + ) + hid? ( dev-libs/hidapi ) + mp3? ( media-libs/libmad ) + mp4? ( media-libs/libmp4v2:= ) + ffmpeg? ( virtual/ffmpeg ) + pulseaudio? ( media-sound/pulseaudio ) + shout? ( media-libs/libshout ) + wavpack? ( media-sound/wavpack )" +DEPEND="${RDEPEND} + virtual/pkgconfig" + +S="${WORKDIR}/${PN}-release-${PV/_/-}" + +src_prepare() { + epatch "${FILESDIR}"/${PN}-9999-system-libs.patch + epatch "${FILESDIR}"/${PN}-9999-docs.patch + + # use multilib compatible directory for plugins + sed -i -e "/unix_lib_path =/s/'lib'/'$(get_libdir)'/" src/SConscript || die + + # alter startup command when pulseaudio support is disabled + if ! use pulseaudio ; then + sed -i -e 's:pasuspender ::' src/mixxx.desktop || die + fi +} + +src_configure() { + myesconsargs=( + prefix="${EPREFIX}/usr" + qtdir="${EPREFIX}/usr/$(get_libdir)/qt4" + hifieq=1 + vinylcontrol=1 + optimize=0 + $(use_scons aac faad) + $(use_scons debug qdebug) + $(use_scons hid hid) + $(use_scons mp3 mad) + $(use_scons mp4 m4a) + $(use_scons ffmpeg) + $(use_scons shout shoutcast) + $(use_scons wavpack wv) + ) +} + +src_compile() { + CC="$(tc-getCC)" CXX="$(tc-getCXX)" LINKFLAGS="${LDFLAGS}" \ + LIBPATH="${EPREFIX}/usr/$(get_libdir)" escons +} + +src_install() { + CC="$(tc-getCC)" CXX="$(tc-getCXX)" LINKFLAGS="${LDFLAGS}" \ + LIBPATH="${EPREFIX}/usr/$(get_libdir)" escons install \ + install_root="${ED}"/usr + + dodoc README Mixxx-Manual.pdf +} diff --git a/media-sound/mixxx/mixxx-1.12.9999.ebuild b/media-sound/mixxx/mixxx-1.12.9999.ebuild new file mode 100644 index 0000000..2752b70 --- /dev/null +++ b/media-sound/mixxx/mixxx-1.12.9999.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 + +inherit git-r3 eutils multilib scons-utils toolchain-funcs + +DESCRIPTION="A Qt based Digital DJ tool" +HOMEPAGE="http://www.mixxx.org/" +EGIT_REPO_URI="git://github.com/mixxxdj/${PN}.git" +EGIT_BRANCH="1.12" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="" +IUSE="aac debug doc ffmpeg hid mp3 mp4 pulseaudio shout wavpack" + +RDEPEND="dev-libs/protobuf + media-libs/chromaprint + >media-libs/fidlib-0.9.10-r1 + media-libs/flac + media-libs/libid3tag + media-libs/libogg + media-libs/libsndfile + >=media-libs/libsoundtouch-1.5 + media-libs/libvorbis + >=media-libs/portaudio-19_pre + media-libs/portmidi + media-libs/rubberband + media-libs/taglib + media-libs/vamp-plugin-sdk + sci-libs/fftw:3.0 + virtual/glu + virtual/opengl + dev-qt/qtgui:4 + dev-qt/qtopengl:4 + dev-qt/qtsql:4 + dev-qt/qtsvg:4 + dev-qt/qttest:4 + dev-qt/qtwebkit:4 + dev-qt/qtxmlpatterns:4 + aac? ( + media-libs/faad2 + media-libs/libmp4v2:0 + ) + hid? ( dev-libs/hidapi ) + mp3? ( media-libs/libmad ) + mp4? ( media-libs/libmp4v2:= ) + ffmpeg? ( virtual/ffmpeg ) + pulseaudio? ( media-sound/pulseaudio ) + shout? ( media-libs/libshout ) + wavpack? ( media-sound/wavpack )" +DEPEND="${RDEPEND} + virtual/pkgconfig" + +src_prepare() { + epatch "${FILESDIR}"/${PN}-9999-system-libs.patch + epatch "${FILESDIR}"/${PN}-9999-docs.patch + epatch "${FILESDIR}"/${PN}-9999-desktop-file.patch + + # use multilib compatible directory for plugins + sed -i -e "/unix_lib_path =/s/'lib'/'$(get_libdir)'/" src/SConscript || die + + # alter startup command when pulseaudio support is disabled + if ! use pulseaudio ; then + sed -i -e 's:pasuspender ::' src/mixxx.desktop || die + fi +} + +src_configure() { + myesconsargs=( + prefix="${EPREFIX}/usr" + qtdir="${EPREFIX}/usr/$(get_libdir)/qt4" + hifieq=1 + vinylcontrol=1 + optimize=0 + $(use_scons aac faad) + $(use_scons debug qdebug) + $(use_scons hid hid) + $(use_scons mp3 mad) + $(use_scons mp4 m4a) + $(use_scons ffmpeg) + $(use_scons shout shoutcast) + $(use_scons wavpack wv) + ) +} + +src_compile() { + CC="$(tc-getCC)" CXX="$(tc-getCXX)" LINKFLAGS="${LDFLAGS}" \ + LIBPATH="${EPREFIX}/usr/$(get_libdir)" escons +} + +src_install() { + CC="$(tc-getCC)" CXX="$(tc-getCXX)" LINKFLAGS="${LDFLAGS}" \ + LIBPATH="${EPREFIX}/usr/$(get_libdir)" escons install \ + install_root="${ED}"/usr + + dodoc README Mixxx-Manual.pdf +}