mirror of
https://github.com/termux-pacman/termux-packages.git
synced 2025-12-22 03:30:17 +00:00
addpkg(x11/mixxx): 2.5.4
- Fixes https://github.com/termux/termux-packages/issues/27668 - Unfortunately, the USB device detection support is not working, so it had to be disabled. Other functionality appears to be working.
This commit is contained in:
22
x11-packages/mixxx/build.sh
Normal file
22
x11-packages/mixxx/build.sh
Normal file
@@ -0,0 +1,22 @@
|
||||
TERMUX_PKG_HOMEPAGE=https://www.mixxx.org
|
||||
TERMUX_PKG_DESCRIPTION="Free DJ software that gives you everything you need to perform live mixes"
|
||||
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
|
||||
TERMUX_PKG_MAINTAINER="@termux"
|
||||
TERMUX_PKG_VERSION="2.5.4"
|
||||
TERMUX_PKG_SRCURL="https://github.com/mixxxdj/mixxx/archive/refs/tags/$TERMUX_PKG_VERSION.tar.gz"
|
||||
TERMUX_PKG_SHA256=53fb1a2a6c5ac6eb3562cb99c5bcae8777d81e48b96b5b3c292794c0c105b269
|
||||
TERMUX_PKG_AUTO_UPDATE=true
|
||||
TERMUX_PKG_DEPENDS="chromaprint, ffmpeg, flac, glib, glu, hicolor-icon-theme, hidapi, libc++, libdjinterop, libebur128, libid3tag, libkeyfinder, libmad, libmodplug, libmp3lame, libogg, libopus, libsndfile, libsoundtouch, libsqlite, libusb, libvorbis, libx11, lilv, openssl, opusfile, portaudio, portmidi, protobuf, qt6-qt5compat, qt6-qtbase, qt6-qtdeclarative, qt6-qtsvg, qtkeychain, rubberband, taglib, upower, wavpack, zlib"
|
||||
TERMUX_PKG_BUILD_DEPENDS="ms-gsl, googletest"
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
||||
-DCMAKE_SYSTEM_NAME=Linux
|
||||
"
|
||||
|
||||
termux_step_pre_configure() {
|
||||
termux_setup_protobuf
|
||||
|
||||
if [[ "$TERMUX_ON_DEVICE_BUILD" == "false" ]]; then
|
||||
# By default cmake will pick $TERMUX_PREFIX/bin/protoc, we should avoid it when cross-compiling
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -Dprotobuf_generate_PROTOC_EXE=$(command -v protoc)"
|
||||
fi
|
||||
}
|
||||
35
x11-packages/mixxx/disable-libusb.patch
Normal file
35
x11-packages/mixxx/disable-libusb.patch
Normal file
@@ -0,0 +1,35 @@
|
||||
Unfortunately, when tested, mixxx crashes here when launched if this is not disabled:
|
||||
|
||||
Thread 27 "Controller" received signal SIGSEGV, Segmentation fault.
|
||||
[Switching to Thread 0x63d5 (LWP 25557)]
|
||||
0x0000007f6993a278 in pthread_mutex_lock () from /apex/com.android.runtime/lib64/bionic/libc.so
|
||||
(gdb) bt
|
||||
#0 0x0000007f6993a278 in pthread_mutex_lock () from /apex/com.android.runtime/lib64/bionic/libc.so
|
||||
#1 0x0000007f82550ad8 in ?? () from /data/data/com.termux/files/usr/lib/libusb-1.0.so
|
||||
#2 0x0000007f82550d78 in libusb_get_device_list () from /data/data/com.termux/files/usr/lib/libusb-1.0.so
|
||||
#3 0x00000055561b5c24 in BulkEnumerator::queryDevices (this=0xb400007d9007ade0)
|
||||
at /home/builder/.termux-build/mixxx/src/src/controllers/bulk/bulkenumerator.cpp:37
|
||||
#4 0x0000005555972a5c in ControllerManager::updateControllerList (this=this@entry=0xb400007df0299608)
|
||||
at /home/builder/.termux-build/mixxx/src/src/controllers/controllermanager.cpp:203
|
||||
#5 0x0000005555970a68 in ControllerManager::slotSetUpDevices (this=0xb400007df0299608)
|
||||
|
||||
Since this doesn't seem to happen with other libusb reverse dependencies, it might be a problem with mixxx itself.
|
||||
|
||||
--- a/src/controllers/bulk/bulkenumerator.cpp
|
||||
+++ b/src/controllers/bulk/bulkenumerator.cpp
|
||||
@@ -34,7 +34,7 @@ static bool is_interesting(struct libusb_device_descriptor *desc) {
|
||||
QList<Controller*> BulkEnumerator::queryDevices() {
|
||||
qDebug() << "Scanning USB Bulk devices:";
|
||||
libusb_device **list;
|
||||
- ssize_t cnt = libusb_get_device_list(m_context, &list);
|
||||
+ ssize_t cnt = 0;
|
||||
ssize_t i = 0;
|
||||
int err = 0;
|
||||
|
||||
@@ -56,6 +56,5 @@ QList<Controller*> BulkEnumerator::queryDevices() {
|
||||
m_devices.push_back(currentDevice);
|
||||
}
|
||||
}
|
||||
- libusb_free_device_list(list, 1);
|
||||
return m_devices;
|
||||
}
|
||||
24
x11-packages/mixxx/fix-optimization-32-bit-arm.patch
Normal file
24
x11-packages/mixxx/fix-optimization-32-bit-arm.patch
Normal file
@@ -0,0 +1,24 @@
|
||||
Prevents
|
||||
clang++: error: unsupported option '-mfloat-abi=hard' for target 'thumbv7-unknown-linux-android24'
|
||||
Matches termux_setup_toolchain_29()
|
||||
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -532,7 +532,7 @@ elseif(GNU_GCC OR LLVM_CLANG)
|
||||
# https://stackoverflow.com/questions/45917280/mac-osx-minumum-support-sse-version
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|armv7.*)$") # but not armv8
|
||||
add_compile_options(
|
||||
- -mfloat-abi=hard
|
||||
+ -mfloat-abi=softfp
|
||||
-mfpu=neon
|
||||
)
|
||||
endif()
|
||||
@@ -555,7 +555,7 @@ elseif(GNU_GCC OR LLVM_CLANG)
|
||||
# are set automatically
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|armv7.*)$") # but not armv8
|
||||
add_compile_options(
|
||||
- -mfloat-abi=hard
|
||||
+ -mfloat-abi=softfp
|
||||
-mfpu=neon
|
||||
)
|
||||
endif()
|
||||
@@ -0,0 +1,13 @@
|
||||
This should be OK to do as long as mixxx is always recompiled anytime libdjinterop is bumped.
|
||||
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -2435,7 +2435,7 @@ if(ENGINEPRIME)
|
||||
# statically. This situation should be reviewed once libdjinterop hits version 1.x.
|
||||
set(LIBDJINTEROP_VERSION 0.24.3)
|
||||
# Look whether an existing installation of libdjinterop matches the required version.
|
||||
- find_package(DjInterop ${LIBDJINTEROP_VERSION} EXACT CONFIG)
|
||||
+ find_package(DjInterop ${LIBDJINTEROP_VERSION} CONFIG)
|
||||
if(NOT DjInterop_FOUND)
|
||||
find_package(DjInterop ${LIBDJINTEROP_VERSION} EXACT MODULE)
|
||||
endif()
|
||||
25
x11-packages/mixxx/no-hidapi-hidraw.patch
Normal file
25
x11-packages/mixxx/no-hidapi-hidraw.patch
Normal file
@@ -0,0 +1,25 @@
|
||||
Unlike GNU/Linux's hidapi,
|
||||
Termux's hidapi does not have a libhidapi-hidraw.so.
|
||||
|
||||
--- a/cmake/modules/Findhidapi.cmake
|
||||
+++ b/cmake/modules/Findhidapi.cmake
|
||||
@@ -59,7 +59,7 @@ find_library(hidapi_LIBRARY
|
||||
)
|
||||
mark_as_advanced(hidapi_LIBRARY)
|
||||
|
||||
-if(CMAKE_SYSTEM_NAME STREQUAL Linux)
|
||||
+if(FALSE)
|
||||
find_library(hidapi-hidraw_LIBRARY
|
||||
NAMES hidapi-hidraw
|
||||
HINTS ${PC_hidapi_LIBRARY_DIRS}
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -3867,7 +3867,7 @@ if(HID)
|
||||
# hidapi has two backends on Linux, one using the kernel's hidraw API and one using libusb.
|
||||
# libusb obviously does not support Bluetooth HID devices, so use the hidraw backend. The
|
||||
# libusb backend is the default, so hidraw needs to be selected explicitly at link time.
|
||||
- if(CMAKE_SYSTEM_NAME STREQUAL Linux)
|
||||
+ if(FALSE)
|
||||
target_link_libraries(mixxx-lib PRIVATE hidapi::hidraw)
|
||||
else()
|
||||
target_link_libraries(mixxx-lib PRIVATE hidapi::hidapi)
|
||||
Reference in New Issue
Block a user