* [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 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 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
* [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 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 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-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
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).