GNU bug report logs - #51085
[PATCH 0/7] Add Mixxx.

Previous Next

Package: guix-patches;

Reported by: Vinicius Monego <monego <at> posteo.net>

Date: Thu, 7 Oct 2021 14:29:01 UTC

Severity: normal

Tags: patch

Done: Leo Famulari <leo <at> famulari.name>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 51085 in the body.
You can then email your comments to 51085 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Thu, 07 Oct 2021 14:29:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Vinicius Monego <monego <at> posteo.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 07 Oct 2021 14:29:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: guix-patches <at> gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH 0/7] Add Mixxx.
Date: Thu,  7 Oct 2021 14:27:54 +0000
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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Thu, 07 Oct 2021 14:31:02 GMT) Full text and rfc822 format available.

Message #8 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH 1/7] gnu: Add libkeyfinder.
Date: Thu,  7 Oct 2021 14:29:35 +0000
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Thu, 07 Oct 2021 14:31:02 GMT) Full text and rfc822 format available.

Message #11 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH 2/7] gnu: Add libdjinterop.
Date: Thu,  7 Oct 2021 14:29:36 +0000
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Thu, 07 Oct 2021 14:31:02 GMT) Full text and rfc822 format available.

Message #14 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH 3/7] gnu: opusfile: Add new phase after unpack.
Date: Thu,  7 Oct 2021 14:29:37 +0000
* 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 <at> famulari.name>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll <at> gmail.com>
 ;;; Copyright © 2021 Brendan Tildesley <mail <at> brendan.scot>
+;;; Copyright © 2021 Vinicius Monego <monego <at> 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Thu, 07 Oct 2021 14:31:03 GMT) Full text and rfc822 format available.

Message #17 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH 4/7] gnu: Add libshout-idjc.
Date: Thu,  7 Oct 2021 14:29:38 +0000
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Thu, 07 Oct 2021 14:31:03 GMT) Full text and rfc822 format available.

Message #20 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH 6/7] gnu: Add mp3guessenc.
Date: Thu,  7 Oct 2021 14:29:40 +0000
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Thu, 07 Oct 2021 14:31:04 GMT) Full text and rfc822 format available.

Message #23 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH 5/7] gnu: Add spscqueue.
Date: Thu,  7 Oct 2021 14:29:39 +0000
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Thu, 07 Oct 2021 14:31:04 GMT) Full text and rfc822 format available.

Message #26 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH 7/7] gnu: Add mixxx.
Date: Thu,  7 Oct 2021 14:29:41 +0000
* 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 <at> 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 <at> 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Sat, 09 Oct 2021 15:29:02 GMT) Full text and rfc822 format available.

Message #29 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH v2 2/7] gnu: Add libdjinterop.
Date: Sat,  9 Oct 2021 15:28:15 +0000
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Sat, 09 Oct 2021 15:29:02 GMT) Full text and rfc822 format available.

Message #32 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH v2 1/7] gnu: Add libkeyfinder.
Date: Sat,  9 Oct 2021 15:28:14 +0000
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Sat, 09 Oct 2021 15:29:02 GMT) Full text and rfc822 format available.

Message #35 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH v2 3/7] gnu: opusfile: Add new phase after unpack.
Date: Sat,  9 Oct 2021 15:28:16 +0000
* 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 <at> famulari.name>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll <at> gmail.com>
 ;;; Copyright © 2021 Brendan Tildesley <mail <at> brendan.scot>
+;;; Copyright © 2021 Vinicius Monego <monego <at> 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Sat, 09 Oct 2021 15:29:03 GMT) Full text and rfc822 format available.

Message #38 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH v2 4/7] gnu: Add libshout-idjc.
Date: Sat,  9 Oct 2021 15:28:17 +0000
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Sat, 09 Oct 2021 15:30:01 GMT) Full text and rfc822 format available.

Message #41 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH v2 5/7] gnu: Add spscqueue.
Date: Sat,  9 Oct 2021 15:28:18 +0000
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Sat, 09 Oct 2021 15:30:02 GMT) Full text and rfc822 format available.

Message #44 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH v2 6/7] gnu: Add mp3guessenc.
Date: Sat,  9 Oct 2021 15:28:19 +0000
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Sat, 09 Oct 2021 15:30:02 GMT) Full text and rfc822 format available.

Message #47 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 51085 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH v2 7/7] gnu: Add mixxx.
Date: Sat,  9 Oct 2021 15:28:20 +0000
* 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 <at> 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 <at> 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





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Mon, 11 Oct 2021 17:03:01 GMT) Full text and rfc822 format available.

Message #50 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Vinicius Monego <monego <at> posteo.net>
Cc: 51085 <at> debbugs.gnu.org
Subject: Re: [bug#51085] [PATCH 0/7] Add Mixxx.
Date: Mon, 11 Oct 2021 13:02:18 -0400
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.




Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Mon, 11 Oct 2021 21:56:02 GMT) Full text and rfc822 format available.

Message #53 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Vinicius Monego <monego <at> posteo.net>
Cc: 51085 <at> debbugs.gnu.org
Subject: Re: [bug#51085] [PATCH v2 6/7] gnu: Add mp3guessenc.
Date: Mon, 11 Oct 2021 17:55:02 -0400
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.




Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Mon, 11 Oct 2021 22:06:01 GMT) Full text and rfc822 format available.

Message #56 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Vinicius Monego <monego <at> posteo.net>
Cc: 51085 <at> debbugs.gnu.org
Subject: Re: [bug#51085] [PATCH v2 7/7] gnu: Add mixxx.
Date: Mon, 11 Oct 2021 18:04:58 -0400
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




Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Tue, 12 Oct 2021 22:51:01 GMT) Full text and rfc822 format available.

Message #59 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: Leo Famulari <leo <at> famulari.name>
Cc: 51085 <at> debbugs.gnu.org
Subject: Re: [bug#51085] [PATCH v2 6/7] gnu: Add mp3guessenc.
Date: Tue, 12 Oct 2021 22:49:47 +0000
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.





Information forwarded to guix-patches <at> gnu.org:
bug#51085; Package guix-patches. (Tue, 12 Oct 2021 22:55:02 GMT) Full text and rfc822 format available.

Message #62 received at 51085 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: Leo Famulari <leo <at> famulari.name>
Cc: 51085 <at> debbugs.gnu.org
Subject: Re: [bug#51085] [PATCH v2 7/7] gnu: Add mixxx.
Date: Tue, 12 Oct 2021 22:54:14 +0000
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.





Reply sent to Leo Famulari <leo <at> famulari.name>:
You have taken responsibility. (Sat, 16 Oct 2021 21:42:01 GMT) Full text and rfc822 format available.

Notification sent to Vinicius Monego <monego <at> posteo.net>:
bug acknowledged by developer. (Sat, 16 Oct 2021 21:42:01 GMT) Full text and rfc822 format available.

Message #67 received at 51085-done <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Vinicius Monego <monego <at> posteo.net>
Cc: 51085-done <at> debbugs.gnu.org
Subject: Re: [bug#51085] [PATCH v2 7/7] gnu: Add mixxx.
Date: Sat, 16 Oct 2021 17:40:52 -0400
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!




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 14 Nov 2021 12:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 164 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.