gnu: Add mixxx.
* gnu/packages/music.scm (mixxx): New variable. * gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch, gnu/packages/patches/mixxx-system-googletest-benchmark.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. Signed-off-by: Leo Famulari <leo@famulari.name>
This commit is contained in:
		
							parent
							
								
									747b98b32f
								
							
						
					
					
						commit
						8c55fdf80a
					
				
					 4 changed files with 178 additions and 0 deletions
				
			
		|  | @ -1492,6 +1492,8 @@ dist_patch_DATA =						\ | ||||||
|   %D%/packages/patches/minisat-install.patch			\
 |   %D%/packages/patches/minisat-install.patch			\
 | ||||||
|   %D%/packages/patches/mit-krb5-hurd.patch			\
 |   %D%/packages/patches/mit-krb5-hurd.patch			\
 | ||||||
|   %D%/packages/patches/mit-krb5-qualify-short-hostnames.patch	\
 |   %D%/packages/patches/mit-krb5-qualify-short-hostnames.patch	\
 | ||||||
|  |   %D%/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch	\
 | ||||||
|  |   %D%/packages/patches/mixxx-system-googletest-benchmark.patch	\
 | ||||||
|   %D%/packages/patches/mpc123-initialize-ao.patch		\
 |   %D%/packages/patches/mpc123-initialize-ao.patch		\
 | ||||||
|   %D%/packages/patches/mpg321-CVE-2019-14247.patch		\
 |   %D%/packages/patches/mpg321-CVE-2019-14247.patch		\
 | ||||||
|   %D%/packages/patches/module-init-tools-moduledir.patch	\
 |   %D%/packages/patches/module-init-tools-moduledir.patch	\
 | ||||||
|  |  | ||||||
|  | @ -72,6 +72,7 @@ | ||||||
|   #:use-module (guix build-system meson) |   #:use-module (guix build-system meson) | ||||||
|   #:use-module (guix build-system perl) |   #:use-module (guix build-system perl) | ||||||
|   #:use-module (guix build-system python) |   #:use-module (guix build-system python) | ||||||
|  |   #:use-module (guix build-system qt) | ||||||
|   #:use-module (guix build-system scons) |   #:use-module (guix build-system scons) | ||||||
|   #:use-module (guix build-system glib-or-gtk) |   #:use-module (guix build-system glib-or-gtk) | ||||||
|   #:use-module (guix build-system qt) |   #:use-module (guix build-system qt) | ||||||
|  | @ -89,6 +90,7 @@ | ||||||
|   #:use-module (gnu packages backup) |   #:use-module (gnu packages backup) | ||||||
|   #:use-module (gnu packages base) ;libbdf |   #:use-module (gnu packages base) ;libbdf | ||||||
|   #:use-module (gnu packages bash) |   #:use-module (gnu packages bash) | ||||||
|  |   #:use-module (gnu packages benchmark) | ||||||
|   #:use-module (gnu packages bison) |   #:use-module (gnu packages bison) | ||||||
|   #:use-module (gnu packages boost) |   #:use-module (gnu packages boost) | ||||||
|   #:use-module (gnu packages build-tools) |   #:use-module (gnu packages build-tools) | ||||||
|  | @ -2176,6 +2178,112 @@ Editor.  It is compatible with Power Tab Editor 1.7 and Guitar Pro.") | ||||||
| users to select LV2 plugins and run them with jalv.") | users to select LV2 plugins and run them with jalv.") | ||||||
|     (license license:public-domain))) |     (license license:public-domain))) | ||||||
| 
 | 
 | ||||||
|  | (define-public mixxx | ||||||
|  |   (package | ||||||
|  |     (name "mixxx") | ||||||
|  |     (version "2.3.1") | ||||||
|  |     (source | ||||||
|  |      (origin | ||||||
|  |        (method git-fetch) | ||||||
|  |        (uri (git-reference | ||||||
|  |              (url "https://github.com/mixxxdj/mixxx") | ||||||
|  |              (commit version))) | ||||||
|  |        (file-name (git-file-name name version)) | ||||||
|  |        (patches | ||||||
|  |         (search-patches "mixxx-link-qtscriptbytearray-qtscript.patch" | ||||||
|  |                         "mixxx-system-googletest-benchmark.patch")) | ||||||
|  |        (sha256 | ||||||
|  |         (base32 "04781s4ajdlwgvf12v2mvh6ia5grhc5pn9d75b468qci3ilnmkg8")) | ||||||
|  |        (modules '((guix build utils))) | ||||||
|  |        (snippet | ||||||
|  |         ;; Delete libraries that we already have or don't need. | ||||||
|  |         ;; TODO: try to unbundle more (see lib/). | ||||||
|  |         `(begin | ||||||
|  |            (let ((third-parties '("apple" "benchmark" "googletest" "hidapi" | ||||||
|  |                                   "libebur128"))) | ||||||
|  |              (with-directory-excursion "lib" | ||||||
|  |                (map (lambda (third-party) | ||||||
|  |                       (delete-file-recursively third-party)) | ||||||
|  |                     third-parties))) | ||||||
|  |            #t)))) | ||||||
|  |     (build-system qt-build-system) | ||||||
|  |     (arguments | ||||||
|  |      `(#:phases | ||||||
|  |        (modify-phases %standard-phases | ||||||
|  |          ;; Tests need a running X server. | ||||||
|  |          (add-before 'check 'prepare-x-for-test | ||||||
|  |            (lambda _ | ||||||
|  |              (system "Xvfb &") | ||||||
|  |              (setenv "DISPLAY" ":0"))) | ||||||
|  |          (replace 'check | ||||||
|  |            (lambda* (#:key tests? #:allow-other-keys) | ||||||
|  |              (when tests? | ||||||
|  |                ;; This test fails.  I don't know why. | ||||||
|  |                (invoke "ctest" "-E" "TagLibTest.WriteID3v2Tag")))) | ||||||
|  |          (add-after 'install 'wrap-executable | ||||||
|  |            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||||
|  |              (let* ((out (assoc-ref outputs "out")) | ||||||
|  |                     (faad2 (assoc-ref inputs "faad2"))) | ||||||
|  |                (wrap-program (string-append out "/bin/mixxx") | ||||||
|  |                  `("LD_LIBRARY_PATH" ":" prefix | ||||||
|  |                    ,(list (string-append faad2 "/lib")))))))))) | ||||||
|  |     (native-inputs | ||||||
|  |      `(("benchmark" ,benchmark) | ||||||
|  |        ("googletest" ,googletest) | ||||||
|  |        ("python" ,python-wrapper) | ||||||
|  |        ("qttools" ,qttools) | ||||||
|  |        ("xorg-server" ,xorg-server-for-tests))) | ||||||
|  |     (inputs | ||||||
|  |      `(("bash" ,bash-minimal) | ||||||
|  |        ("chromaprint" ,chromaprint) | ||||||
|  |        ("faad2" ,faad2) | ||||||
|  |        ("ffmpeg" ,ffmpeg) | ||||||
|  |        ("fftw" ,fftw) | ||||||
|  |        ("flac" ,flac) | ||||||
|  |        ("glu" ,glu) | ||||||
|  |        ("hidapi" ,hidapi) | ||||||
|  |        ("jack" ,jack-1) | ||||||
|  |        ("lame" ,lame) | ||||||
|  |        ("libdjinterop" ,libdjinterop) | ||||||
|  |        ("libebur128" ,libebur128) | ||||||
|  |        ("libid3tag" ,libid3tag) | ||||||
|  |        ("libkeyfinder" ,libkeyfinder) | ||||||
|  |        ("libmad" ,libmad) | ||||||
|  |        ("libmp4v2" ,libmp4v2) | ||||||
|  |        ("libmodplug" ,libmodplug) | ||||||
|  |        ("libsndfile" ,libsndfile) | ||||||
|  |        ("libshout" ,libshout) | ||||||
|  |        ;; XXX: Mixxx complains the libshout-idjc package suffers from bug | ||||||
|  |        ;; lp1833225 and refuses to use it.  Use the bundle for now. | ||||||
|  |        ;; ("libshout-idjc" ,libshout-idjc) | ||||||
|  |        ("libusb" ,libusb) | ||||||
|  |        ("libvorbis" ,libvorbis) | ||||||
|  |        ("lilv" ,lilv) | ||||||
|  |        ("mp3guessenc" ,mp3guessenc) | ||||||
|  |        ("openssl" ,openssl) | ||||||
|  |        ("opusfile" ,opusfile) | ||||||
|  |        ("portaudio" ,portaudio) | ||||||
|  |        ("portmidi" ,portmidi) | ||||||
|  |        ("protobuf" ,protobuf) | ||||||
|  |        ("qtbase" ,qtbase-5) | ||||||
|  |        ("qtdeclarative" ,qtdeclarative) | ||||||
|  |        ("qtkeychain" ,qtkeychain) | ||||||
|  |        ("qtscript" ,qtscript) | ||||||
|  |        ("qtsvg" ,qtsvg) | ||||||
|  |        ("qtx11extras" ,qtx11extras) | ||||||
|  |        ("rubberband" ,rubberband) | ||||||
|  |        ("soundtouch" ,soundtouch) | ||||||
|  |        ("sqlite" ,sqlite) | ||||||
|  |        ("taglib" ,taglib) | ||||||
|  |        ("upower" ,upower) | ||||||
|  |        ("vamp" ,vamp) | ||||||
|  |        ("wavpack" ,wavpack))) | ||||||
|  |     (home-page "https://mixxx.org/") | ||||||
|  |     (synopsis "DJ software to perform live mixes") | ||||||
|  |     (description "Mixxx is a DJ software.  It integrates the tools DJs need to | ||||||
|  | perform creative live mixes with digital music files.") | ||||||
|  |     (license license:gpl2+))) | ||||||
|  | 
 | ||||||
| (define-public synthv1 | (define-public synthv1 | ||||||
|   (package |   (package | ||||||
|     (name "synthv1") |     (name "synthv1") | ||||||
|  |  | ||||||
|  | @ -0,0 +1,25 @@ | ||||||
|  | From 7554aefc886d4ebc4b4c139a5cddcab6163cf72f Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Vinicius Monego <monego@posteo.net> | ||||||
|  | Date: Thu, 30 Sep 2021 23:37:29 -0300 | ||||||
|  | Subject: [PATCH] Link QtScriptByteArray with QtScript. | ||||||
|  | 
 | ||||||
|  | ---
 | ||||||
|  |  CMakeLists.txt | 2 +- | ||||||
|  |  1 file changed, 1 insertion(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/CMakeLists.txt b/CMakeLists.txt
 | ||||||
|  | index 492ccae..05fec08 100644
 | ||||||
|  | --- a/CMakeLists.txt
 | ||||||
|  | +++ b/CMakeLists.txt
 | ||||||
|  | @@ -2077,7 +2077,7 @@ add_library(QtScriptByteArray STATIC EXCLUDE_FROM_ALL
 | ||||||
|  |    lib/qtscript-bytearray/bytearrayprototype.cpp | ||||||
|  |  ) | ||||||
|  |  set_target_properties(QtScriptByteArray PROPERTIES AUTOMOC ON) | ||||||
|  | -target_link_libraries(QtScriptByteArray Qt5::Core)
 | ||||||
|  | +target_link_libraries(QtScriptByteArray Qt5::Core Qt5::Script)
 | ||||||
|  |  target_include_directories(mixxx-lib SYSTEM PUBLIC lib/qtscript-bytearray) | ||||||
|  |  target_link_libraries(mixxx-lib PRIVATE QtScriptByteArray) | ||||||
|  |   | ||||||
|  | -- 
 | ||||||
|  | 2.30.2 | ||||||
|  | 
 | ||||||
							
								
								
									
										43
									
								
								gnu/packages/patches/mixxx-system-googletest-benchmark.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								gnu/packages/patches/mixxx-system-googletest-benchmark.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,43 @@ | ||||||
|  | From eb2079d467f8658eea13e2ed86cc69d864632866 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Vinicius Monego <monego@posteo.net> | ||||||
|  | Date: Wed, 29 Sep 2021 19:07:35 -0300 | ||||||
|  | Subject: [PATCH] Use system googletest and benchmark. | ||||||
|  | 
 | ||||||
|  | ---
 | ||||||
|  |  CMakeLists.txt | 13 +++---------- | ||||||
|  |  1 file changed, 3 insertions(+), 10 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/CMakeLists.txt b/CMakeLists.txt
 | ||||||
|  | index 10e9b0a..492ccae 100644
 | ||||||
|  | --- a/CMakeLists.txt
 | ||||||
|  | +++ b/CMakeLists.txt
 | ||||||
|  | @@ -1467,12 +1467,7 @@ set(gtest_force_shared_crt ON CACHE BOOL "Pass Mixxx compiler/linker options to
 | ||||||
|  |  # Prevent installation of GoogleTest libraries | ||||||
|  |  set(INSTALL_GTEST OFF CACHE BOOL "Disable installation of GoogleTest" FORCE) | ||||||
|  |   | ||||||
|  | -# Add googletest directly to our build. This adds the following targets:
 | ||||||
|  | -# gtest, gtest_main, gmock and gmock_main
 | ||||||
|  | -add_subdirectory(
 | ||||||
|  | -  "${CMAKE_CURRENT_SOURCE_DIR}/lib/googletest"
 | ||||||
|  | -  "${CMAKE_CURRENT_BINARY_DIR}/lib/googletest"
 | ||||||
|  | -)
 | ||||||
|  | +find_package(GTest CONFIG REQUIRED)
 | ||||||
|  |   | ||||||
|  |  add_executable(mixxx-test | ||||||
|  |    src/test/analyserwaveformtest.cpp | ||||||
|  | @@ -1582,10 +1577,8 @@ set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE)
 | ||||||
|  |  # Prevent installation of google/benchmark artifacts | ||||||
|  |  set(BENCHMARK_ENABLE_INSTALL OFF CACHE BOOL "Disable installation of google/benchmark" FORCE) | ||||||
|  |   | ||||||
|  | -add_subdirectory(
 | ||||||
|  | -  "${CMAKE_CURRENT_SOURCE_DIR}/lib/benchmark"
 | ||||||
|  | -  "${CMAKE_CURRENT_BINARY_DIR}/lib/benchmark"
 | ||||||
|  | -)
 | ||||||
|  | +find_package(benchmark CONFIG REQUIRED)
 | ||||||
|  | +
 | ||||||
|  |  target_link_libraries(mixxx-test PRIVATE benchmark) | ||||||
|  |   | ||||||
|  |  # Test Suite | ||||||
|  | -- 
 | ||||||
|  | 2.30.2 | ||||||
|  | 
 | ||||||
		Reference in a new issue