Pierre Langlois wrote 5 years ago
(address . guix-patches@gnu.org)(name . Pierre Langlois)(address . pierre.langlois@gmx.com)
Hello Guix!
Here's an update for the rtmidi package. I've had to fix the
powertabeditor package to be able to find the RtMidi.h header which has
now moved into a subdirectory. It looks like the issue is fixed upstream
in the build system but no release have been made yet so I've added a
TODO to remove the hack later.
WDYT?
Thanks,
Pierre
From ca890314f2a5d05d97c5bee39e0e571cf9344ba2 Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois@gmx.com>
Date: Fri, 15 Nov 2019 09:23:16 +0000
Subject: [PATCH] gnu: rtmidi: Update to 4.0.0.
* gnu/packages/audio.scm (rtmidi): Update to 4.0.0.
[source]: Download tarball from upstream URL rather than the powertab github
fork.
[arguments]: Enable tests. Remove 'build and 'install phases and add a new
'noconfigure phase to prevent the bootstrap script from invoking configure.
[home-page]: Update homepage to upstream URL.
* gnu/packages/music.scm (powertabeditor)[arguments]: Add phase that substitutes
the rtmidi #include directive to find the header.
---
gnu/packages/audio.scm | 31 ++++++++++---------------------
gnu/packages/music.scm | 8 ++++++++
2 files changed, 18 insertions(+), 21 deletions(-)
Toggle diff (75 lines)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 15ba454edd..66ef787dcc 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -2341,33 +2341,22 @@ tempo and pitch of an audio recording independently of one another.")
(define-public rtmidi
(package
(name "rtmidi")
- (version "2.1.0")
+ (version "4.0.0")
(source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/powertab/rtmidi.git")
- (commit version)))
- (file-name (git-file-name name version))
+ (method url-fetch)
+ (uri (string-append "https://www.music.mcgill.ca/~gary/rtmidi"
+ "/release/rtmidi-" version ".tar.gz"))
+ (file-name (string-append "rtmidi-" version ".tar.gz"))
(sha256
(base32
- "106v177y3nrjv2l1yskch4phpqd8h97b67zj0jiq9pc3c69jr1ay"))))
+ "1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ;no "check" target
- #:phases
+ `(#:phases
(modify-phases %standard-phases
- (add-before 'build 'fix-makefile
- (lambda _
- (substitute* "Makefile"
- (("/bin/ln") "ln")
- (("RtMidi.h RtError.h") "RtMidi.h"))
- #t))
- (add-before 'install 'make-target-dirs
+ (add-before 'bootstrap 'noconfigure
(lambda _
- (let ((out (assoc-ref %outputs "out")))
- (mkdir-p (string-append out "/bin"))
- (mkdir (string-append out "/lib"))
- (mkdir (string-append out "/include")))
+ (setenv "NOCONFIGURE" "yes")
#t)))))
(inputs
`(("jack" ,jack-1)
@@ -2377,7 +2366,7 @@ tempo and pitch of an audio recording independently of one another.")
("automake" ,automake)
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
- (home-page "https://github.com/powertab/rtmidi")
+ (home-page "https://www.music.mcgill.ca/~gary/rtmidi")
(synopsis "Cross-platform MIDI library for C++")
(description
"RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 3373b4c0a3..241ede58d8 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1284,6 +1284,14 @@ add_library( rapidjson INTERFACE IMPORTED )"))
(("#include <QWidget>" m)
(string-append m "\n#include <QButtonGroup>\n#include <QAction>")))
#t))
+ ;; FIXME: Finding RtMidi was fixed upstream so we should be able to
+ ;; remove this hack when a release is made.
+ ;; See https://github.com/powertab/powertabeditor/issues/255
+ (add-after 'unpack 'fix-rtmidi-header
+ (lambda _
+ (substitute* "source/audio/midioutputdevice.cpp"
+ (("#include <RtMidi.h>") "#include <rtmidi/RtMidi.h>"))
+ #t))
(add-before 'configure 'remove-third-party-libs
(lambda* (#:key inputs #:allow-other-keys)
;; Link with required static libraries, because we're not
--
2.24.0