Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add packages for Mixxx #22

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
3c741b3
Add Mixxx package files.
icedream Jun 9, 2022
4a22596
mixxx: Declare QT5 dependency.
icedream Jun 9, 2022
e074933
mixxx: Update dependency list.
icedream Jun 9, 2022
0acb9a9
mixxx: Fix dependencies not being properly selected in Config.in.
icedream Jun 9, 2022
02c1e56
Update buildroot patch to update URL and version for portaudio.
icedream Jun 9, 2022
0e9f7d4
mixxx: Fix bad qt5 dependency.
icedream Jun 9, 2022
0ada4e6
Add chromaprint package.
icedream Jun 9, 2022
30325d2
chromaprint: Declare dependency on fftw3 or ffmpeg.
icedream Jun 9, 2022
11e354d
chromeprint: Fix archive file name.
icedream Jun 9, 2022
60838e2
Add portmidi package.
icedream Jun 9, 2022
e176d3b
mixxx: Declare dependency on qt5script.
icedream Jun 9, 2022
18ece6e
portmidi: Remove comment lines.
icedream Jun 9, 2022
486715a
Add rubberband package and make mixxx depend on it.
icedream Jun 9, 2022
f5476d3
Add libkeyfinder and add soft dependency on it to mixxx.
icedream Jun 9, 2022
aadc3af
libkeyfinder: Add hard dependency on fftw3.
icedream Jun 9, 2022
b1dda66
Add QtKeychain package.
icedream Jun 9, 2022
9087bff
qtkeychain: Declare dependency on Qt5 linguist tools and libsecret.
icedream Jun 9, 2022
c9cbdeb
mixxx: Set USE_SYMLINKS=OFF to avoid related failure.
icedream Jun 9, 2022
122b946
QtKeychain: Declare qt5dbus dependency.
icedream Jun 10, 2022
0f5a96b
mixxx: Declare X11 libs, protobuf-c and libgl dependencies.
icedream Jun 10, 2022
5fe061e
Restructure Mixxx configuration and add lv2, lilv packages.
icedream Jun 10, 2022
f929c77
Add serd package.
icedream Jun 10, 2022
8aafd9d
Add sord package
icedream Jun 10, 2022
4cf965d
Add sratom package.
icedream Jun 10, 2022
87416b7
mixxx: Fix bad libid3tag dependency.
icedream Jun 10, 2022
88395ce
mixxx: Fix wrong flags set for HID/Bulk features.
icedream Jun 10, 2022
f0aa192
mixxx: Fix config names for HID and Bulk controllers.
icedream Jun 10, 2022
03beb96
mixxx: Add config for installing udev rules for HID/Bulk devices.
icedream Jun 10, 2022
e5fa399
Fix up git am parameters for commit hash reproduction.
icedream Jun 11, 2022
3d739e5
Add script to clean buildroot target.
icedream Jun 11, 2022
983f60e
Patch qt5base to allow configuration of screen rotation.
icedream Jun 11, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions buildroot-customizations/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
source "$BR2_EXTERNAL_MIXXX_PATH/package/chromaprint/Config.in"
source "$BR2_EXTERNAL_MIXXX_PATH/package/libkeyfinder/Config.in"
source "$BR2_EXTERNAL_MIXXX_PATH/package/lilv/Config.in"
source "$BR2_EXTERNAL_MIXXX_PATH/package/lv2/Config.in"
source "$BR2_EXTERNAL_MIXXX_PATH/package/mixxx/Config.in"
source "$BR2_EXTERNAL_MIXXX_PATH/package/portmidi/Config.in"
source "$BR2_EXTERNAL_MIXXX_PATH/package/qtkeychain/Config.in"
source "$BR2_EXTERNAL_MIXXX_PATH/package/rubberband/Config.in"
source "$BR2_EXTERNAL_MIXXX_PATH/package/serd/Config.in"
source "$BR2_EXTERNAL_MIXXX_PATH/package/sord/Config.in"
source "$BR2_EXTERNAL_MIXXX_PATH/package/sratom/Config.in"
9 changes: 9 additions & 0 deletions buildroot-customizations/package/chromaprint/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
config BR2_PACKAGE_CHROMAPRINT
bool "chromaprint"
depends on BR2_PACKAGE_FFTW
depends on BR2_PACKAGE_FFMPEG || BR2_PACKAGE_FFTW_DOUBLE
help
Installs Chromaprint, a C library for generating audio fingerprints used by AcoustID.

comment "chromaprint needs fftw3 or ffmpeg for calculations"
depends on !(BR2_PACKAGE_FFMPEG || BR2_PACKAGE_FFTW_DOUBLE)
10 changes: 10 additions & 0 deletions buildroot-customizations/package/chromaprint/chromaprint.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CHROMAPRINT_VERSION = 1.5.1
CHROMAPRINT_SOURCE = chromaprint-$(CHROMAPRINT_VERSION).tar.gz
# CHROMAPRINT_SITE = https://github.com/acoustid/chromaprint/releases/download/v$(CHROMAPRINT_VERSION)/chromaprint-$(CHROMAPRINT_VERSION).tar.gz
CHROMAPRINT_SITE = $(call github,acoustid,chromaprint,v$(CHROMAPRINT_VERSION))
CHROMAPRINT_INSTALL_STAGING = YES
CHROMAPRINT_INSTALL_TARGET = YES
CHROMAPRINT_LICENSE = LGPL2.1,MIT
CHROMAPRINT_DEPENDENCIES = fftw-double

$(eval $(cmake-package))
7 changes: 7 additions & 0 deletions buildroot-customizations/package/libkeyfinder/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
config BR2_PACKAGE_LIBKEYFINDER
bool "libkeyfinder"
help
Installs libkeyfinder, a small C++11 library for estimating the musical key of digital
audio.
depends on BR2_PACKAGE_FFTW
depends on BR2_PACKAGE_FFTW_DOUBLE
12 changes: 12 additions & 0 deletions buildroot-customizations/package/libkeyfinder/libkeyfinder.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
LIBKEYFINDER_VERSION = 2.2.6
LIBKEYFINDER_SOURCE = libkeyfinder-$(LIBKEYFINDER_VERSION).tar.gz
LIBKEYFINDER_SITE = $(call github,mixxxdj,libkeyfinder,v$(LIBKEYFINDER_VERSION))
LIBKEYFINDER_INSTALL_STAGING = YES
LIBKEYFINDER_INSTALL_TARGET = YES
LIBKEYFINDER_LICENSE = GPLv3

ifeq ($(BR2_PACKAGE_FFTW_DOUBLE),y)
LIBKEYFINDER_DEPENDENCIES += fftw-double
endif

$(eval $(cmake-package))
8 changes: 8 additions & 0 deletions buildroot-customizations/package/lilv/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
config BR2_PACKAGE_LILV
bool "lilv"
select BR2_PACKAGE_LV2
select BR2_PACKAGE_SERD
select BR2_PACKAGE_SORD
select BR2_PACKAGE_SRATOM
help
Installs lilv, a host library for LV2 plugins.
8 changes: 8 additions & 0 deletions buildroot-customizations/package/lilv/lilv.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
LILV_VERSION = 0.24.14
LILV_SOURCE = lilv-$(LILV_VERSION).tar.bz2
LILV_SITE = https://download.drobilla.net
LILV_INSTALL_STAGING = YES
LILV_LICENSE = ISC
LILV_DEPENDENCIES = lv2 serd sord sratom

$(eval $(waf-package))
4 changes: 4 additions & 0 deletions buildroot-customizations/package/lv2/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
config BR2_PACKAGE_LV2
bool "lv2"
help
Installs lv2, a plugin standard for audio systems. It defines a minimal yet extensible C API for plugin code and a format for plugin "bundles".
7 changes: 7 additions & 0 deletions buildroot-customizations/package/lv2/lv2.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
LV2_VERSION = 1.18.4
LV2_SOURCE = lv2-$(LV2_VERSION).tar.bz2
LV2_SITE = https://lv2plug.in/spec
LV2_INSTALL_STAGING = YES
LV2_LICENSE = ISC

$(eval $(waf-package))
260 changes: 260 additions & 0 deletions buildroot-customizations/package/mixxx/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,260 @@
menuconfig BR2_PACKAGE_MIXXX
bool "mixxx"
help
Installs Mixxx, an open-source DJ software.

depends on BR2_PACKAGE_HAS_UDEV # hidapi
depends on BR2_PACKAGE_QT5
depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative
depends on !BR2_PACKAGE_QT5BASE_SQLITE_NONE

# packages listed as REQUIRED in CMakeLists.txt
depends on BR2_PACKAGE_HAS_LIBGL # libglu
depends on BR2_USE_MMU # libglib2
depends on BR2_USE_WCHAR # libglib2
depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
depends on BR2_TOOLCHAIN_USES_GLIBC
select BR2_PACKAGE_CHROMAPRINT
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_FLAC
select BR2_PACKAGE_LAME
select BR2_PACKAGE_LIBOGG
select BR2_PACKAGE_LIBSNDFILE
select BR2_PACKAGE_LIBVORBIS
select BR2_PACKAGE_PORTAUDIO
select BR2_PACKAGE_PORTMIDI
select BR2_PACKAGE_QT5BASE_CONCURRENT
select BR2_PACKAGE_QT5BASE_DBUS
select BR2_PACKAGE_QT5BASE_GUI
select BR2_PACKAGE_QT5BASE_NETWORK
select BR2_PACKAGE_QT5BASE_OPENGL
select BR2_PACKAGE_QT5BASE_TEST
select BR2_PACKAGE_QT5BASE_WIDGETS
select BR2_PACKAGE_QT5BASE_XCB
select BR2_PACKAGE_QT5BASE_XML
select BR2_PACKAGE_QT5DECLARATIVE
select BR2_PACKAGE_QT5DECLARATIVE_QUICK
select BR2_PACKAGE_QT5QUICKCONTROLS
select BR2_PACKAGE_QT5QUICKCONTROLS2
select BR2_PACKAGE_QT5SCRIPT
select BR2_PACKAGE_QT5SVG
select BR2_PACKAGE_QT5X11EXTRAS
select BR2_PACKAGE_RUBBERBAND
select BR2_PACKAGE_TAGLIB
select BR2_PACKAGE_UPOWER

# qt5 x11 dependencies?
select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_QT5X11EXTRAS
select BR2_PACKAGE_XLIB_LIBICE if BR2_PACKAGE_QT5X11EXTRAS
select BR2_PACKAGE_XLIB_LIBSM if BR2_PACKAGE_QT5X11EXTRAS
select BR2_PACKAGE_XLIB_LIBXAW if BR2_PACKAGE_QT5X11EXTRAS
select BR2_PACKAGE_XLIB_LIBXMU if BR2_PACKAGE_QT5X11EXTRAS
select BR2_PACKAGE_XLIB_LIBXPM if BR2_PACKAGE_QT5X11EXTRAS
select BR2_PACKAGE_XLIB_LIBXT if BR2_PACKAGE_QT5X11EXTRAS
select BR2_PACKAGE_XLIB_LIBXTST if BR2_PACKAGE_QT5X11EXTRAS

# Mixxx has shipped protobuf stuff but idk if it works like that in buildroot…?
select BR2_PACKAGE_PROTOBUF
select BR2_PACKAGE_PROTOBUF_C

# Deps for building keyfinder source
select BR2_PACKAGE_FFTW if BR2_PACKAGE_MIXXX_SUPPORT_KEYFINDER_STATIC
select BR2_PACKAGE_FFTW_DOUBLE if BR2_PACKAGE_MIXXX_SUPPORT_KEYFINDER_STATIC

# optional features
select BR2_PACKAGE_FAAD2 if BR2_PACKAGE_MIXXX_SUPPORT_DECODING_AAC
select BR2_PACKAGE_HIDAPI if BR2_PACKAGE_MIXXX_SUPPORT_HID
select BR2_PACKAGE_KEYFINDER if BR2_PACKAGE_MIXXX_SUPPORT_KEYFINDER_DYNAMIC
select BR2_PACKAGE_FFMPEG if BR2_PACKAGE_MIXXX_SUPPORT_FFMPEG
select BR2_PACKAGE_LIBID3TAG if BR2_PACKAGE_MIXXX_SUPPORT_MAD
select BR2_PACKAGE_LIBMAD if BR2_PACKAGE_MIXXX_SUPPORT_MAD
select BR2_PACKAGE_LIBSHOUT if BR2_PACKAGE_MIXXX_SUPPORT_BROADCAST
select BR2_PACKAGE_LIBSOUNDTOUCH if BR2_PACKAGE_MIXXX_SUPPORT_LIBSOUNDTOUCH_DYNAMIC
select BR2_PACKAGE_LIBUSB if BR2_PACKAGE_MIXXX_SUPPORT_BULK
select BR2_PACKAGE_LILV if BR2_PACKAGE_MIXXX_SUPPORT_LILV
select BR2_PACKAGE_MP4V2 if BR2_PACKAGE_MIXXX_SUPPORT_DECODING_AAC
select BR2_PACKAGE_OPUS if BR2_PACKAGE_MIXXX_SUPPORT_OPUS
select BR2_PACKAGE_OPUSFILE if BR2_PACKAGE_MIXXX_SUPPORT_OPUS
select BR2_PACKAGE_QTKEYCHAIN if BR2_PACKAGE_MIXXX_SUPPORT_QTKEYCHAIN
select BR2_PACKAGE_WAVPACK if BR2_PACKAGE_MIXXX_SUPPORT_DECODING_WAVPACK

if BR2_PACKAGE_MIXXX

config BR2_PACKAGE_MIXXX_SUPPORT_QTKEYCHAIN
bool "Secure credentials storage support for Live Broadcasting profiles"
default y

config BR2_PACKAGE_MIXXX_SUPPORT_VINYLCONTROL
bool "Vinyl Control support"
default y

menuconfig BR2_PACKAGE_MIXXX_SUPPORT_KEYFINDER
bool "KeyFinder support"
help
Enable musical key detection through Mixxx's keyfinder library.
default y

if BR2_PACKAGE_MIXXX_SUPPORT_KEYFINDER

choice
prompt "KeyFinder linking"
default BR2_PACKAGE_MIXXX_SUPPORT_KEYFINDER_DYNAMIC
help
Select how to link in libkeyfinder

config BR2_PACKAGE_MIXXX_SUPPORT_KEYFINDER_STATIC
bool "Link libkeyfinder statically"
help
Prepares Mixxx to download its own copy of libkeyfinder for building into Mixxx.

config BR2_PACKAGE_MIXXX_SUPPORT_KEYFINDER_DYNAMIC
bool "Link libKeyFinder dynamically"
help
Enables build of libkeyfinder as a separate package and makes Mixxx link dynamically against it.

endchoice

endif

choice
prompt "SoundTouch support"
default BR2_PACKAGE_MIXXX_SUPPORT_LIBSOUNDTOUCH_STATIC
help
Select how to link in libSoundTouch

config BR2_PACKAGE_MIXXX_SUPPORT_LIBSOUNDTOUCH_STATIC
bool "Link libSoundTouch statically"
help
Prepares Mixxx to use included internal libSoundTouch source code copy.

config BR2_PACKAGE_MIXXX_SUPPORT_LIBSOUNDTOUCH_DYNAMIC
bool "Link libSoundTouch dynamically"
help
Enables build of libSoundTouch as a separate package and makes Mixxx link dynamically against it.

endchoice

config BR2_PACKAGE_MIXXX_SUPPORT_FAAD
bool "FAAD MP4/AAC audio file decoder support"
help
Enable support for MP4/AAC files. This will build and link Mixxx against the mp4v2 and faad2 package.
default y

config BR2_PACKAGE_MIXXX_SUPPORT_DL_FDKAAC
bool "Make FDK-AAC available to Mixxx"
help
This will enable fdk-aac to be provided in the file system for Mixxx to load dynamically.

Make sure you confirmed licenses to be compatible with your use case before enabling this.
select BR2_PACKAGE_FDKAAC
depends on BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS
depends on BR2_INSTALL_LIBSTDCPP
default n

config BR2_PACKAGE_MIXXX_SUPPORT_DECODING_WAVPACK
bool "WavPack audio file decoder support"
help
Enable support for WavPack files. This will build and link Mixxx against the wavpack package.
default y

config BR2_PACKAGE_MIXXX_SUPPORT_HID
bool "USB HID controller support"
help
Enable support USB HID controllers. This will build and link Mixxx against the hidapi package.
default y

config BR2_PACKAGE_MIXXX_SUPPORT_BULK
bool "USB Bulk controller support"
default y
help
Enable support USB bulk controllers. This will build and link Mixxx against the libusb package.

config BR2_PACKAGE_MIXXX_SUPPORT_FFMPEG
bool "FFmpeg support"
default n
help
Enable support for loading audio through ffmpeg.

config BR2_PACKAGE_MIXXX_SUPPORT_LILV
bool "Lilv (LV2) support"
default y
help
Enable support for using LV2 plugins through lilv. This will build and link Mixxx against liblilv.

config BR2_PACKAGE_MIXXX_SUPPORT_MAD
bool "MAD MP3 Decoder"
default y
help
Enable support for decoding mp3 files. This will build and link Mixxx against libmad and libid3tag.

config BR2_PACKAGE_MIXXX_SUPPORT_BROADCAST
bool "Live Broadcasting (Shoutcast) support"
default y
help
Enables broadcasting via libshout.

config BR2_PACKAGE_MIXXX_SUPPORT_OPUS
bool "Opus (RFC 6716) support"
default y
help
Enables support for decoding and encoding Opus audio files. This will build and link Mixxx against opus and opusfile.

config BR2_PACKAGE_MIXXX_SUPPORT_LOCALECOMPARE
bool "Locale Aware Compare support for SQLite"
default n
depends on BR2_PACKAGE_SQLITE && !BR2_PACKAGE_QT5BASE_SQLITE_QT
help
Enables Locale Aware Compare functionality for SQLite which has an effect for search queries.

comment "Locale Aware Compare support for SQLite can only be configured if Qt is linked against system-provided sqlite"
depends on BR2_PACKAGE_SQLITE && BR2_PACKAGE_QT5BASE_SQLITE_QT

config BR2_PACKAGE_MIXXX_SUPPORT_MODPLUG
bool "Modplug module decoder support"
default y
select BR2_PACKAGE_LIBMODPLUG
help
Enables support for module tracker files. This will build and link Mixxx against libmodplug.

choice
prompt "libebur128"
default BR2_PACKAGE_MIXXX_SUPPORT_LIBEBUR128_STATIC
help
Select how to link in libSoundTouch

config BR2_PACKAGE_MIXXX_SUPPORT_LIBEBUR128_STATIC
bool "Link libebur128 statically"
help
Prepares Mixxx to use included internal libebur128 source code copy.

config BR2_PACKAGE_MIXXX_SUPPORT_LIBEBUR128_DYNAMIC
bool "Link libebur128 dynamically"
help
Enables build of libebur128 as a separate package and makes Mixxx link dynamically against it.

endchoice

config BR2_PACKAGE_MIXXX_INSTALL_USER_UDEV_RULES
bool "Install user udev rule file for USB HID and Bulk controllers"
default y
depends on BR2_PACKAGE_MIXXX_SUPPORT_HID || BR2_PACKAGE_MIXXX_SUPPORT_BULK
help
Whether to install the udev rules for USB HID and Bulk controllers

endif

comment "mixxx needs chromaprint"
depends on !BR2_PACKAGE_CHROMAPRINT

comment "mixxx needs a toolchain w/ wchar, threads"
depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS

comment "mixxx needs QT5 w/ declarative and one of the SQLite modules"
depends on !BR2_PACKAGE_QT5_JSCORE_AVAILABLE || !BR2_PACKAGE_QT5 || BR2_PACKAGE_QT5BASE_SQLITE_NONE

comment "mixxx needs libgl/libglu"
depends on !BR2_PACKAGE_HAS_LIBGL

comment "mixxx needs hidapi/udev for talking to devices directly"
depends on !BR2_PACKAGE_HAS_UDEV
Loading