* [bug#51085] [PATCH 0/7] Add Mixxx. @ 2021-10-07 14:27 Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 1/7] gnu: Add libkeyfinder Vinicius Monego ` (2 more replies) 0 siblings, 3 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-07 14:27 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego Vinicius Monego (7): gnu: Add libkeyfinder. gnu: Add libdjinterop. gnu: opusfile: Add new phase after unpack. gnu: Add libshout-idjc. gnu: Add spscqueue. gnu: Add mp3guessenc. gnu: Add mixxx. gnu/local.mk | 2 + gnu/packages/audio.scm | 113 +++++++++++++++++ gnu/packages/cpp.scm | 21 ++++ gnu/packages/music.scm | 116 ++++++++++++++++++ ...ixxx-link-qtscriptbytearray-qtscript.patch | 25 ++++ .../mixxx-system-googletest-benchmark.patch | 43 +++++++ gnu/packages/xiph.scm | 12 +- 7 files changed, 331 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch create mode 100644 gnu/packages/patches/mixxx-system-googletest-benchmark.patch -- 2.30.2 ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH 1/7] gnu: Add libkeyfinder. 2021-10-07 14:27 [bug#51085] [PATCH 0/7] Add Mixxx Vinicius Monego @ 2021-10-07 14:29 ` Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 2/7] gnu: Add libdjinterop Vinicius Monego ` (5 more replies) 2021-10-09 15:28 ` [bug#51085] [PATCH v2 1/7] gnu: Add libkeyfinder Vinicius Monego 2021-10-11 17:02 ` [bug#51085] [PATCH 0/7] Add Mixxx Leo Famulari 2 siblings, 6 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-07 14:29 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/audio.scm (libkeyfinder): New variable. --- gnu/packages/audio.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index b746cd370d..e6db87540e 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -3373,6 +3373,31 @@ stretching and pitch scaling of audio. This package contains the library.") ;; containing gpl2. (license license:gpl2))) +(define-public libkeyfinder + (package + (name "libkeyfinder") + (version "2.2.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mixxxdj/libkeyfinder") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1623kirmxhmvmhx7f8lbzk0f18w2hrhwlkzl8l4aa906lfqffdp2")))) + (build-system cmake-build-system) + (native-inputs + `(("catch" ,catch-framework2))) + (inputs + `(("fftw" ,fftw))) + (home-page "https://mixxxdj.github.io/libkeyfinder/") + (synopsis "Musical key detection for digital audio") + (description + "@code{libkeyfinder} is a small C++11 library for estimating the musical +key of digital audio.") + (license license:gpl3+))) + (define-public wavpack (package (name "wavpack") -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH 2/7] gnu: Add libdjinterop. 2021-10-07 14:29 ` [bug#51085] [PATCH 1/7] gnu: Add libkeyfinder Vinicius Monego @ 2021-10-07 14:29 ` Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 3/7] gnu: opusfile: Add new phase after unpack Vinicius Monego ` (4 subsequent siblings) 5 siblings, 0 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-07 14:29 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/audio.scm (libdjinterop): New variable. --- gnu/packages/audio.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index e6db87540e..2ffc4b86a9 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -107,6 +107,7 @@ #:use-module (gnu packages readline) #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) + #:use-module (gnu packages sqlite) #:use-module (gnu packages telephony) #:use-module (gnu packages linphone) #:use-module (gnu packages linux) @@ -1173,6 +1174,40 @@ flanger), ringmodulator, distortion, filters, pitchshift, oscillators, emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.") (license license:gpl3+))) +(define-public libdjinterop + (package + (name "libdjinterop") + (version "0.16.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xsco/libdjinterop") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16nrqpr90vb9ggmp9j73m0hspd7pmfdhh0g6iyp8vd7kx7g17qnk")))) + (build-system meson-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; crate_test writes a database file to the source tree. + (add-after 'unpack 'make-git-checkout-writable + (lambda _ + (for-each make-file-writable (find-files "."))))))) + (native-inputs + `(("boost" ,boost) + ("pkg-config" ,pkg-config))) + (inputs + `(("sqlite" ,sqlite) + ("zlib" ,zlib))) + (home-page "https://github.com/xsco/libdjinterop") + (synopsis "C++ library for access to DJ record libraries") + (description + "@code{libdjinterop} is a C++ library that allows access to database +formats used to store information about DJ record libraries.") + (license license:lgpl3+))) + (define-public tao (package (name "tao") -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH 3/7] gnu: opusfile: Add new phase after unpack. 2021-10-07 14:29 ` [bug#51085] [PATCH 1/7] gnu: Add libkeyfinder Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 2/7] gnu: Add libdjinterop Vinicius Monego @ 2021-10-07 14:29 ` Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 4/7] gnu: Add libshout-idjc Vinicius Monego ` (3 subsequent siblings) 5 siblings, 0 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-07 14:29 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/xiph.scm (opusfile)[arguments]<#:phases>: After the unpack phase add a fix-multistream phase to adjust the include header call of opus_multistream.h so that opusfile can find it. --- gnu/packages/xiph.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index fbbcbd6e61..0c9c799067 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot> +;;; Copyright © 2021 Vinicius Monego <monego@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -406,7 +407,16 @@ decoding .opus files.") "02smwc5ah8nb3a67mnkjzqmrzk43j356hgj2a97s9midq40qd38i")))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--disable-static"))) + '(#:configure-flags '("--disable-static") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-multistream + ;; Opus include directory should be passed explicitly: + ;; https://github.com/xiph/opusfile/issues/10 however, + ;; opus_multistream.h still can't be found by the compiler. + (lambda _ + (substitute* "include/opusfile.h" + (("opus_multistream\\.h") "opus/opus_multistream.h"))))))) ;; Required by opusfile.pc and opusurl.pc. (propagated-inputs `(("libogg" ,libogg) -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH 4/7] gnu: Add libshout-idjc. 2021-10-07 14:29 ` [bug#51085] [PATCH 1/7] gnu: Add libkeyfinder Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 2/7] gnu: Add libdjinterop Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 3/7] gnu: opusfile: Add new phase after unpack Vinicius Monego @ 2021-10-07 14:29 ` Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 5/7] gnu: Add spscqueue Vinicius Monego ` (2 subsequent siblings) 5 siblings, 0 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-07 14:29 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/audio.scm (libshout-idjc): New variable. --- gnu/packages/audio.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 2ffc4b86a9..666a7fbd49 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -3045,6 +3045,31 @@ for \"realtime\" in the index of the Guix manual to learn how to achieve this using Guix System.") (license license:gpl2+))) +(define-public libshout-idjc + (package + (name "libshout-idjc") + (version "2.4.4") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/libshoutidjc.idjc.p" + "/libshout-idjc-" version ".tar.gz")) + (sha256 + (base32 "1r9z8ggxylr2ab0isaljbm574rplnlcb12758j994h54nh2vikwb")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libogg" ,libogg) + ("libtheora" ,libtheora) + ("libvorbis" ,libvorbis) + ("speex" ,speex))) + (home-page "http://idjc.sourceforge.net/") + (synopsis "Broadcast streaming library with IDJC extensions") + (description "This package provides libshout plus IJDC extensions.") + ;; GNU Library (not Lesser) General Public License. + (license license:lgpl2.0+))) + (define-public raul (package (name "raul") -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH 5/7] gnu: Add spscqueue. 2021-10-07 14:29 ` [bug#51085] [PATCH 1/7] gnu: Add libkeyfinder Vinicius Monego ` (2 preceding siblings ...) 2021-10-07 14:29 ` [bug#51085] [PATCH 4/7] gnu: Add libshout-idjc Vinicius Monego @ 2021-10-07 14:29 ` Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 6/7] gnu: Add mp3guessenc Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 7/7] gnu: Add mixxx Vinicius Monego 5 siblings, 0 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-07 14:29 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/cpp.scm (spscqueue): New variable. --- gnu/packages/cpp.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 4af71ba93a..d755cc0fc7 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -517,6 +517,27 @@ syntax highlighting. @code{ccls} is derived from @code{cquery} which is not maintained anymore.") (license license:asl2.0))) +(define-public spscqueue + (package + (name "spscqueue") + (version "1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rigtorp/SPSCQueue/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1428cj9x318afvnvnkhg0711iy4czqn86fi7ysgfhw91asa316rc")))) + (build-system cmake-build-system) + (home-page "https://github.com/rigtorp/SPSCQueue/") + (synopsis "Single producer single consumer queue written in C++11") + (description + "This package provides a single producer single consumer wait-free and +lock-free fixed size queue written in C++11.") + (license license:expat))) + (define-public gperftools (package (name "gperftools") -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH 6/7] gnu: Add mp3guessenc. 2021-10-07 14:29 ` [bug#51085] [PATCH 1/7] gnu: Add libkeyfinder Vinicius Monego ` (3 preceding siblings ...) 2021-10-07 14:29 ` [bug#51085] [PATCH 5/7] gnu: Add spscqueue Vinicius Monego @ 2021-10-07 14:29 ` Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 7/7] gnu: Add mixxx Vinicius Monego 5 siblings, 0 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-07 14:29 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/audio.scm (mp3guessenc): New variable. --- gnu/packages/audio.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 666a7fbd49..d1bf91d10f 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -4016,6 +4016,34 @@ machine-readable ASCII format.") (home-page "https://github.com/svend/cuetools") (license license:gpl2+))) +(define-public mp3guessenc + (package + (name "mp3guessenc") + (version "0.27.5") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/mp3guessenc/mp3guessenc-" + (version-major+minor version) "/mp3guessenc-" + version ".tar.gz")) + (sha256 + (base32 "1fa3sbwwn4p2v1749lzy040bfy1xfd574mf2frwgg9ikgk3vlb3c")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out")) + (string-append "SUFFIX=")) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; no configure phase + (home-page "https://mp3guessenc.sourceforge.io/") + (synopsis "Detect the encoder used for a mpeg layer III file") + (description "This command line utility was born to detect the encoder +used for a mpeg layer III file but now it can do more and scan any mpeg +audio file (any layer) and print a lot of useful information.") + (license license:lgpl2.1+))) + (define-public shntool (package (name "shntool") -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH 7/7] gnu: Add mixxx. 2021-10-07 14:29 ` [bug#51085] [PATCH 1/7] gnu: Add libkeyfinder Vinicius Monego ` (4 preceding siblings ...) 2021-10-07 14:29 ` [bug#51085] [PATCH 6/7] gnu: Add mp3guessenc Vinicius Monego @ 2021-10-07 14:29 ` Vinicius Monego 5 siblings, 0 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-07 14:29 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/music.scm (mixxx): New variable. * gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch: New patch. * gnu/packages/patches/mixxx-system-googletest-benchmark.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add patches. --- gnu/local.mk | 2 + gnu/packages/music.scm | 116 ++++++++++++++++++ ...ixxx-link-qtscriptbytearray-qtscript.patch | 25 ++++ .../mixxx-system-googletest-benchmark.patch | 43 +++++++ 4 files changed, 186 insertions(+) create mode 100644 gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch create mode 100644 gnu/packages/patches/mixxx-system-googletest-benchmark.patch diff --git a/gnu/local.mk b/gnu/local.mk index d415b892e9..36ed1bb755 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1476,6 +1476,8 @@ dist_patch_DATA = \ %D%/packages/patches/minisat-install.patch \ %D%/packages/patches/mit-krb5-hurd.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/mpg321-CVE-2019-14247.patch \ %D%/packages/patches/module-init-tools-moduledir.patch \ diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index ae4626dc8a..759b56d5e0 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -71,6 +71,7 @@ #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module (guix build-system scons) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system qt) @@ -88,6 +89,7 @@ #:use-module (gnu packages backup) #:use-module (gnu packages base) ;libbdf #:use-module (gnu packages bash) + #:use-module (gnu packages benchmark) #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages build-tools) @@ -2219,6 +2221,120 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") users to select LV2 plugins and run them with jalv.") (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")))) + (build-system qt-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Delete libraries that we already have or don't need. + (add-after 'unpack 'delete-third-parties + (lambda _ + (let ((third-parties '("apple" "benchmark" "googletest" "hidapi" + "libebur128"))) + (with-directory-excursion "lib" + (map (lambda (third-party) + (delete-file-recursively third-party)) + third-parties))))) + ;; 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) + ;; TODO: Mixxx requires libshout-idjc >= 2.4.6 which was not released + ;; at the time of packaging. + ;; ("libshout-idjc" ,libshout-idjc) + ("libusb" ,libusb) + ("libvorbis" ,libvorbis) + ("lilv" ,lilv) + ("mp3guessenc" ,mp3guessenc) + ("openssl" ,openssl) + ("opus" ,opus) ;for opus_multistream.h + ("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://www.mixxx.org/") + (synopsis "DJ software to perform live mixes") + (description "Mixxx integrates the tools DJs need to perform creative live +mixes with digital music files. + +Whether you are a new DJ with just a laptop or an experienced turntablist, +Mixxx can support your style and techniques of mixing.") + ;; TODO: Try to unbundle some of these (see lib/). + (license (list license:gpl2+ ; Mixxx, fidlib, qm-dsp + license:gpl2 ; xwax + license:gpl3+ ; reverb + license:expat ; kaitai, scspqueue, portaudio + license:bsd-3 ; qtbytescriptarray + license:lgpl2.1+ ; replaygain, mp3guessenc + license:lgpl2.0+)))) ; libshout-idjc (Library, not Lesser) + (define-public synthv1 (package (name "synthv1") diff --git a/gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch b/gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch new file mode 100644 index 0000000000..d7cd1c0d28 --- /dev/null +++ b/gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch @@ -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 + diff --git a/gnu/packages/patches/mixxx-system-googletest-benchmark.patch b/gnu/packages/patches/mixxx-system-googletest-benchmark.patch new file mode 100644 index 0000000000..7adbe66208 --- /dev/null +++ b/gnu/packages/patches/mixxx-system-googletest-benchmark.patch @@ -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 + -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH v2 1/7] gnu: Add libkeyfinder. 2021-10-07 14:27 [bug#51085] [PATCH 0/7] Add Mixxx Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 1/7] gnu: Add libkeyfinder Vinicius Monego @ 2021-10-09 15:28 ` Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 2/7] gnu: Add libdjinterop Vinicius Monego ` (5 more replies) 2021-10-11 17:02 ` [bug#51085] [PATCH 0/7] Add Mixxx Leo Famulari 2 siblings, 6 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-09 15:28 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/audio.scm (libkeyfinder): New variable. --- gnu/packages/audio.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index cc51ac51f3..ef06e0934e 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -3417,6 +3417,31 @@ stretching and pitch scaling of audio. This package contains the library.") ;; containing gpl2. (license license:gpl2))) +(define-public libkeyfinder + (package + (name "libkeyfinder") + (version "2.2.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mixxxdj/libkeyfinder") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1623kirmxhmvmhx7f8lbzk0f18w2hrhwlkzl8l4aa906lfqffdp2")))) + (build-system cmake-build-system) + (native-inputs + `(("catch" ,catch-framework2))) + (inputs + `(("fftw" ,fftw))) + (home-page "https://mixxxdj.github.io/libkeyfinder/") + (synopsis "Musical key detection for digital audio") + (description + "@code{libkeyfinder} is a small C++11 library for estimating the musical +key of digital audio.") + (license license:gpl3+))) + (define-public wavpack (package (name "wavpack") -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH v2 2/7] gnu: Add libdjinterop. 2021-10-09 15:28 ` [bug#51085] [PATCH v2 1/7] gnu: Add libkeyfinder Vinicius Monego @ 2021-10-09 15:28 ` Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 3/7] gnu: opusfile: Add new phase after unpack Vinicius Monego ` (4 subsequent siblings) 5 siblings, 0 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-09 15:28 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/audio.scm (libdjinterop): New variable. --- gnu/packages/audio.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index ef06e0934e..4712e9aa72 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -107,6 +107,7 @@ #:use-module (gnu packages readline) #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) + #:use-module (gnu packages sqlite) #:use-module (gnu packages telephony) #:use-module (gnu packages linphone) #:use-module (gnu packages linux) @@ -1217,6 +1218,40 @@ flanger), ringmodulator, distortion, filters, pitchshift, oscillators, emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.") (license license:gpl3+))) +(define-public libdjinterop + (package + (name "libdjinterop") + (version "0.16.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xsco/libdjinterop") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16nrqpr90vb9ggmp9j73m0hspd7pmfdhh0g6iyp8vd7kx7g17qnk")))) + (build-system meson-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; crate_test writes a database file to the source tree. + (add-after 'unpack 'make-git-checkout-writable + (lambda _ + (for-each make-file-writable (find-files "."))))))) + (native-inputs + `(("boost" ,boost) + ("pkg-config" ,pkg-config))) + (inputs + `(("sqlite" ,sqlite) + ("zlib" ,zlib))) + (home-page "https://github.com/xsco/libdjinterop") + (synopsis "C++ library for access to DJ record libraries") + (description + "@code{libdjinterop} is a C++ library that allows access to database +formats used to store information about DJ record libraries.") + (license license:lgpl3+))) + (define-public tao (package (name "tao") -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH v2 3/7] gnu: opusfile: Add new phase after unpack. 2021-10-09 15:28 ` [bug#51085] [PATCH v2 1/7] gnu: Add libkeyfinder Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 2/7] gnu: Add libdjinterop Vinicius Monego @ 2021-10-09 15:28 ` Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 4/7] gnu: Add libshout-idjc Vinicius Monego ` (3 subsequent siblings) 5 siblings, 0 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-09 15:28 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/xiph.scm (opusfile)[arguments]<#:phases>: After the unpack phase add a fix-multistream phase to adjust the include header call of opus_multistream.h so that opusfile can find it. --- gnu/packages/xiph.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index fbbcbd6e61..0c9c799067 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot> +;;; Copyright © 2021 Vinicius Monego <monego@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -406,7 +407,16 @@ decoding .opus files.") "02smwc5ah8nb3a67mnkjzqmrzk43j356hgj2a97s9midq40qd38i")))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--disable-static"))) + '(#:configure-flags '("--disable-static") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-multistream + ;; Opus include directory should be passed explicitly: + ;; https://github.com/xiph/opusfile/issues/10 however, + ;; opus_multistream.h still can't be found by the compiler. + (lambda _ + (substitute* "include/opusfile.h" + (("opus_multistream\\.h") "opus/opus_multistream.h"))))))) ;; Required by opusfile.pc and opusurl.pc. (propagated-inputs `(("libogg" ,libogg) -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH v2 4/7] gnu: Add libshout-idjc. 2021-10-09 15:28 ` [bug#51085] [PATCH v2 1/7] gnu: Add libkeyfinder Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 2/7] gnu: Add libdjinterop Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 3/7] gnu: opusfile: Add new phase after unpack Vinicius Monego @ 2021-10-09 15:28 ` Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 5/7] gnu: Add spscqueue Vinicius Monego ` (2 subsequent siblings) 5 siblings, 0 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-09 15:28 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/audio.scm (libshout-idjc): New variable. --- Fixed typo in description. gnu/packages/audio.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 4712e9aa72..6c0318db9d 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -3089,6 +3089,31 @@ for \"realtime\" in the index of the Guix manual to learn how to achieve this using Guix System.") (license license:gpl2+))) +(define-public libshout-idjc + (package + (name "libshout-idjc") + (version "2.4.4") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/libshoutidjc.idjc.p" + "/libshout-idjc-" version ".tar.gz")) + (sha256 + (base32 "1r9z8ggxylr2ab0isaljbm574rplnlcb12758j994h54nh2vikwb")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libogg" ,libogg) + ("libtheora" ,libtheora) + ("libvorbis" ,libvorbis) + ("speex" ,speex))) + (home-page "http://idjc.sourceforge.net/") + (synopsis "Broadcast streaming library with IDJC extensions") + (description "This package provides libshout plus IDJC extensions.") + ;; GNU Library (not Lesser) General Public License. + (license license:lgpl2.0+))) + (define-public raul (package (name "raul") -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH v2 5/7] gnu: Add spscqueue. 2021-10-09 15:28 ` [bug#51085] [PATCH v2 1/7] gnu: Add libkeyfinder Vinicius Monego ` (2 preceding siblings ...) 2021-10-09 15:28 ` [bug#51085] [PATCH v2 4/7] gnu: Add libshout-idjc Vinicius Monego @ 2021-10-09 15:28 ` Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 6/7] gnu: Add mp3guessenc Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 7/7] gnu: Add mixxx Vinicius Monego 5 siblings, 0 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-09 15:28 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/cpp.scm (spscqueue): New variable. --- gnu/packages/cpp.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 104fe81e18..5298de7cbb 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -516,6 +516,27 @@ syntax highlighting. @code{ccls} is derived from @code{cquery} which is not maintained anymore.") (license license:asl2.0))) +(define-public spscqueue + (package + (name "spscqueue") + (version "1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rigtorp/SPSCQueue/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1428cj9x318afvnvnkhg0711iy4czqn86fi7ysgfhw91asa316rc")))) + (build-system cmake-build-system) + (home-page "https://github.com/rigtorp/SPSCQueue/") + (synopsis "Single producer single consumer queue written in C++11") + (description + "This package provides a single producer single consumer wait-free and +lock-free fixed size queue written in C++11.") + (license license:expat))) + (define-public gperftools (package (name "gperftools") -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH v2 6/7] gnu: Add mp3guessenc. 2021-10-09 15:28 ` [bug#51085] [PATCH v2 1/7] gnu: Add libkeyfinder Vinicius Monego ` (3 preceding siblings ...) 2021-10-09 15:28 ` [bug#51085] [PATCH v2 5/7] gnu: Add spscqueue Vinicius Monego @ 2021-10-09 15:28 ` Vinicius Monego 2021-10-11 21:55 ` Leo Famulari 2021-10-09 15:28 ` [bug#51085] [PATCH v2 7/7] gnu: Add mixxx Vinicius Monego 5 siblings, 1 reply; 21+ messages in thread From: Vinicius Monego @ 2021-10-09 15:28 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/audio.scm (mp3guessenc): New variable. --- Removed trailing / from home-page. gnu/packages/audio.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 6c0318db9d..47c37643f6 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -4060,6 +4060,34 @@ machine-readable ASCII format.") (home-page "https://github.com/svend/cuetools") (license license:gpl2+))) +(define-public mp3guessenc + (package + (name "mp3guessenc") + (version "0.27.5") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/mp3guessenc/mp3guessenc-" + (version-major+minor version) "/mp3guessenc-" + version ".tar.gz")) + (sha256 + (base32 "1fa3sbwwn4p2v1749lzy040bfy1xfd574mf2frwgg9ikgk3vlb3c")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out")) + (string-append "SUFFIX=")) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; no configure phase + (home-page "https://mp3guessenc.sourceforge.io") + (synopsis "Detect the encoder used for a mpeg layer III") + (description "This command line utility was born to detect the encoder +used for a mpeg layer III file but now it can do more and scan any mpeg +audio file (any layer) and print a lot of useful information.") + (license license:lgpl2.1+))) + (define-public shntool (package (name "shntool") -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH v2 6/7] gnu: Add mp3guessenc. 2021-10-09 15:28 ` [bug#51085] [PATCH v2 6/7] gnu: Add mp3guessenc Vinicius Monego @ 2021-10-11 21:55 ` Leo Famulari 2021-10-12 22:49 ` Vinicius Monego 0 siblings, 1 reply; 21+ messages in thread From: Leo Famulari @ 2021-10-11 21:55 UTC (permalink / raw) To: Vinicius Monego; +Cc: 51085 Thanks for these patches! I've hoped for a Mixxx Guix package for a long time. The patches look good to me overall, but I have a couple questions: On Sat, Oct 09, 2021 at 03:28:19PM +0000, Vinicius Monego wrote: > * gnu/packages/audio.scm (mp3guessenc): New variable. > + (list (string-append "PREFIX=" (assoc-ref %outputs "out")) > + (string-append "SUFFIX=")) What is SUFFIX? That string doesn't appear in the mp3guessenc source code. ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH v2 6/7] gnu: Add mp3guessenc. 2021-10-11 21:55 ` Leo Famulari @ 2021-10-12 22:49 ` Vinicius Monego 0 siblings, 0 replies; 21+ messages in thread From: Vinicius Monego @ 2021-10-12 22:49 UTC (permalink / raw) To: Leo Famulari; +Cc: 51085 Em seg, 2021-10-11 às 17:55 -0400, Leo Famulari escreveu: > Thanks for these patches! I've hoped for a Mixxx Guix package for a > long > time. > > The patches look good to me overall, but I have a couple questions: > > On Sat, Oct 09, 2021 at 03:28:19PM +0000, Vinicius Monego wrote: > > * gnu/packages/audio.scm (mp3guessenc): New variable. > > > + (list (string-append "PREFIX=" (assoc-ref %outputs "out")) > > + (string-append "SUFFIX=")) > > What is SUFFIX? That string doesn't appear in the mp3guessenc source > code. Oh I copied that part from another package and didn't adjust. SUFFIX can be removed. ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH v2 7/7] gnu: Add mixxx. 2021-10-09 15:28 ` [bug#51085] [PATCH v2 1/7] gnu: Add libkeyfinder Vinicius Monego ` (4 preceding siblings ...) 2021-10-09 15:28 ` [bug#51085] [PATCH v2 6/7] gnu: Add mp3guessenc Vinicius Monego @ 2021-10-09 15:28 ` Vinicius Monego 2021-10-11 22:04 ` Leo Famulari 5 siblings, 1 reply; 21+ messages in thread From: Vinicius Monego @ 2021-10-09 15:28 UTC (permalink / raw) To: 51085; +Cc: Vinicius Monego * gnu/packages/music.scm (mixxx): New variable. * gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch: New patch. * gnu/packages/patches/mixxx-system-googletest-benchmark.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add patches. --- Deleted bundles in a snippet instead of a phase. Removed opus from inputs. Changed comment about libshout-idjc. Changed description. Removed www from home-page. gnu/local.mk | 2 + gnu/packages/music.scm | 114 ++++++++++++++++++ ...ixxx-link-qtscriptbytearray-qtscript.patch | 25 ++++ .../mixxx-system-googletest-benchmark.patch | 43 +++++++ 4 files changed, 184 insertions(+) create mode 100644 gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch create mode 100644 gnu/packages/patches/mixxx-system-googletest-benchmark.patch diff --git a/gnu/local.mk b/gnu/local.mk index b1f0cab55e..a3eceabc9e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1475,6 +1475,8 @@ dist_patch_DATA = \ %D%/packages/patches/minisat-install.patch \ %D%/packages/patches/mit-krb5-hurd.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/mpg321-CVE-2019-14247.patch \ %D%/packages/patches/module-init-tools-moduledir.patch \ diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index fa3b70f8c1..697a272eb8 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -72,6 +72,7 @@ #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module (guix build-system scons) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system qt) @@ -89,6 +90,7 @@ #:use-module (gnu packages backup) #:use-module (gnu packages base) ;libbdf #:use-module (gnu packages bash) + #:use-module (gnu packages benchmark) #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages build-tools) @@ -2176,6 +2178,118 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") users to select LV2 plugins and run them with jalv.") (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 (list license:gpl2+ ; Mixxx, fidlib, qm-dsp + license:gpl2 ; xwax + license:gpl3+ ; reverb + license:expat ; kaitai, scspqueue, portaudio + license:bsd-3 ; qtbytescriptarray + license:lgpl2.1+ ; replaygain, mp3guessenc + license:lgpl2.0+)))) ; libshout-idjc (Library, not Lesser) + (define-public synthv1 (package (name "synthv1") diff --git a/gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch b/gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch new file mode 100644 index 0000000000..d7cd1c0d28 --- /dev/null +++ b/gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch @@ -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 + diff --git a/gnu/packages/patches/mixxx-system-googletest-benchmark.patch b/gnu/packages/patches/mixxx-system-googletest-benchmark.patch new file mode 100644 index 0000000000..7adbe66208 --- /dev/null +++ b/gnu/packages/patches/mixxx-system-googletest-benchmark.patch @@ -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 + -- 2.30.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH v2 7/7] gnu: Add mixxx. 2021-10-09 15:28 ` [bug#51085] [PATCH v2 7/7] gnu: Add mixxx Vinicius Monego @ 2021-10-11 22:04 ` Leo Famulari 2021-10-12 22:54 ` Vinicius Monego 0 siblings, 1 reply; 21+ messages in thread From: Leo Famulari @ 2021-10-11 22:04 UTC (permalink / raw) To: Vinicius Monego; +Cc: 51085 On Sat, Oct 09, 2021 at 03:28:20PM +0000, Vinicius Monego wrote: > + (license (list license:gpl2+ ; Mixxx, fidlib, qm-dsp > + license:gpl2 ; xwax > + license:gpl3+ ; reverb > + license:expat ; kaitai, scspqueue, portaudio > + license:bsd-3 ; qtbytescriptarray > + license:lgpl2.1+ ; replaygain, mp3guessenc > + license:lgpl2.0+)))) ; libshout-idjc (Library, not Lesser) The license of Mixxx is, overall, gpl2+. We don't need to list these other licenses here. Maybe it's a problem that 'reverb' is gpl3+, I don't know. If you are curious about previous discussions of this subject in Guix, we talked about it last spring in the guix-devel thread that started in April 2021 as 'Jam: which licence is this?', and then continued into May 2021: https://lists.gnu.org/archive/html/guix-devel/2021-04/msg00436.html https://lists.gnu.org/archive/html/guix-devel/2021-05/threads.html ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH v2 7/7] gnu: Add mixxx. 2021-10-11 22:04 ` Leo Famulari @ 2021-10-12 22:54 ` Vinicius Monego 2021-10-16 21:40 ` bug#51085: " Leo Famulari 0 siblings, 1 reply; 21+ messages in thread From: Vinicius Monego @ 2021-10-12 22:54 UTC (permalink / raw) To: Leo Famulari; +Cc: 51085 Em seg, 2021-10-11 às 18:04 -0400, Leo Famulari escreveu: > On Sat, Oct 09, 2021 at 03:28:20PM +0000, Vinicius Monego wrote: > > + (license (list license:gpl2+ ; Mixxx, fidlib, qm-dsp > > + license:gpl2 ; xwax > > + license:gpl3+ ; reverb > > + license:expat ; kaitai, scspqueue, portaudio > > + license:bsd-3 ; qtbytescriptarray > > + license:lgpl2.1+ ; replaygain, mp3guessenc > > + license:lgpl2.0+)))) ; libshout-idjc (Library, > > not Lesser) > > The license of Mixxx is, overall, gpl2+. We don't need to list these > other licenses here. Maybe it's a problem that 'reverb' is gpl3+, I > don't know. > > If you are curious about previous discussions of this subject in > Guix, > we talked about it last spring in the guix-devel thread that started > in April 2021 as 'Jam: which licence is this?', and then continued > into > May 2021: > > https://lists.gnu.org/archive/html/guix-devel/2021-04/msg00436.html > https://lists.gnu.org/archive/html/guix-devel/2021-05/threads.html Thanks, interesting discussion. I had an incorrect understanding of the license field. ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#51085: [PATCH v2 7/7] gnu: Add mixxx. 2021-10-12 22:54 ` Vinicius Monego @ 2021-10-16 21:40 ` Leo Famulari 0 siblings, 0 replies; 21+ messages in thread From: Leo Famulari @ 2021-10-16 21:40 UTC (permalink / raw) To: Vinicius Monego; +Cc: 51085-done On Tue, Oct 12, 2021 at 10:54:14PM +0000, Vinicius Monego wrote: > Thanks, interesting discussion. I had an incorrect understanding of the > license field. Alright. I made a few other changes to synopses, descriptions, and commit messages, and pushed as 8c55fdf80a03098f5acc71eab76d89e3feb2c222. Tnank you for these patches! ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#51085] [PATCH 0/7] Add Mixxx. 2021-10-07 14:27 [bug#51085] [PATCH 0/7] Add Mixxx Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 1/7] gnu: Add libkeyfinder Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 1/7] gnu: Add libkeyfinder Vinicius Monego @ 2021-10-11 17:02 ` Leo Famulari 2 siblings, 0 replies; 21+ messages in thread From: Leo Famulari @ 2021-10-11 17:02 UTC (permalink / raw) To: Vinicius Monego; +Cc: 51085 On Thu, Oct 07, 2021 at 02:27:54PM +0000, Vinicius Monego wrote: > Vinicius Monego (7): > gnu: Add libkeyfinder. > gnu: Add libdjinterop. > gnu: opusfile: Add new phase after unpack. > gnu: Add libshout-idjc. > gnu: Add spscqueue. > gnu: Add mp3guessenc. > gnu: Add mixxx. Amazing! I've wanted a Guix package of Mixxx for a long time. I'm building and testing this package now. ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2021-10-16 21:42 UTC | newest] Thread overview: 21+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-10-07 14:27 [bug#51085] [PATCH 0/7] Add Mixxx Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 1/7] gnu: Add libkeyfinder Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 2/7] gnu: Add libdjinterop Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 3/7] gnu: opusfile: Add new phase after unpack Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 4/7] gnu: Add libshout-idjc Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 5/7] gnu: Add spscqueue Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 6/7] gnu: Add mp3guessenc Vinicius Monego 2021-10-07 14:29 ` [bug#51085] [PATCH 7/7] gnu: Add mixxx Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 1/7] gnu: Add libkeyfinder Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 2/7] gnu: Add libdjinterop Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 3/7] gnu: opusfile: Add new phase after unpack Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 4/7] gnu: Add libshout-idjc Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 5/7] gnu: Add spscqueue Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 6/7] gnu: Add mp3guessenc Vinicius Monego 2021-10-11 21:55 ` Leo Famulari 2021-10-12 22:49 ` Vinicius Monego 2021-10-09 15:28 ` [bug#51085] [PATCH v2 7/7] gnu: Add mixxx Vinicius Monego 2021-10-11 22:04 ` Leo Famulari 2021-10-12 22:54 ` Vinicius Monego 2021-10-16 21:40 ` bug#51085: " Leo Famulari 2021-10-11 17:02 ` [bug#51085] [PATCH 0/7] Add Mixxx Leo Famulari
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).