diff mbox series

[bug#38217] gnu: rtmidi: Update to 4.0.0.

Message ID 878sohwko0.fsf@gmx.com
State Accepted
Headers show
Series [bug#38217] gnu: rtmidi: Update to 4.0.0. | expand

Commit Message

Pierre Langlois Nov. 15, 2019, 9:31 a.m. UTC
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

Comments

Mathieu Othacehe Nov. 15, 2019, 11 a.m. UTC | #1
Hello Pierre,

> 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?

This patch LTGM! I have an error when closing powertabeditor but this
might be unrelated to this patch:

--8<---------------cut here---------------start------------->8---
Unhandled exception: Parse error at offset 18446744073709551615: The document is empty.
/gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [???]
/gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [???]
/gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib/libstdc++.so.6 [???]
/gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib/libstdc++.so.6 [???]
/gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib/libstdc++.so.6 [???]
/gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [TuningDictionary::ensureLoaded]
/gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [TuningDictionary::save]
/gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [PowerTabEditor::closeEvent]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QWidget::event]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QMainWindow::event]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QApplicationPrivate::notify_helper]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QApplication::notify]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Core.so.5 [QCoreApplication::notifyInternal2]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QWidgetPrivate::close_helper]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [???]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [???]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QApplicationPrivate::notify_helper]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QApplication::notify]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Core.so.5 [QCoreApplication::notifyInternal2]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Gui.so.5 [QGuiApplicationPrivate::processCloseEvent]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Gui.so.5 [QGuiApplicationPrivate::processWindowSystemEvent]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Gui.so.5 [QWindowSystemInterface::sendWindowSystemEvents]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/qt5/plugins/platforms/../../../libQt5XcbQpa.so.5 [???]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Core.so.5 [QEventLoop::exec]
/gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Core.so.5 [QCoreApplication::exec]
/gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [main]
/gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib/libc.so.6 [__libc_start_main]
/gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [_start]
--8<---------------cut here---------------end--------------->8---

Mathieu
Pierre Langlois Nov. 15, 2019, 1:24 p.m. UTC | #2
Hi Mathieu,

Mathieu Othacehe writes:

> Hello Pierre,
>
>> 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?
>
> This patch LTGM! I have an error when closing powertabeditor but this
> might be unrelated to this patch:
>
> --8<---------------cut here---------------start------------->8---
> Unhandled exception: Parse error at offset 18446744073709551615: The document is empty.
> /gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [???]
> /gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [???]
> /gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib/libstdc++.so.6 [???]
> /gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib/libstdc++.so.6 [???]
> /gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib/libstdc++.so.6 [???]
> /gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [TuningDictionary::ensureLoaded]
> /gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [TuningDictionary::save]
> /gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [PowerTabEditor::closeEvent]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QWidget::event]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QMainWindow::event]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QApplicationPrivate::notify_helper]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QApplication::notify]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Core.so.5 [QCoreApplication::notifyInternal2]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QWidgetPrivate::close_helper]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [???]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [???]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QApplicationPrivate::notify_helper]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Widgets.so.5 [QApplication::notify]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Core.so.5 [QCoreApplication::notifyInternal2]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Gui.so.5 [QGuiApplicationPrivate::processCloseEvent]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Gui.so.5 [QGuiApplicationPrivate::processWindowSystemEvent]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Gui.so.5 [QWindowSystemInterface::sendWindowSystemEvents]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/qt5/plugins/platforms/../../../libQt5XcbQpa.so.5 [???]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Core.so.5 [QEventLoop::exec]
> /gnu/store/gl2mzs7ybzzfmy2yparzhrb6k0yqhxw2-qtbase-5.11.3/lib/libQt5Core.so.5 [QCoreApplication::exec]
> /gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [main]
> /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib/libc.so.6 [__libc_start_main]
> /gnu/store/4pj5nbb1j5s6049h6jjk580v6rp21wc3-powertabeditor-2.0.0-alpha10/bin/powertabeditor [_start]
> --8<---------------cut here---------------end--------------->8---

Oh thanks for trying it out!

I'm also seeing this error on master so I guess we should be OK with
this patch. Funny thing is, I see this error as a GUI pop-up when
running it under GDB, but on its own I just get an abort, not sure what
that's about. I've only tested it with `guix environment --ad-hoc
powertabeditor gdb` though.

The issue seems harmless as it just happens when you close the it, but
I don't personally use powertabeditor so I can't be sure.

Thanks,
Pierre
Mathieu Othacehe Nov. 15, 2019, 1:32 p.m. UTC | #3
> The issue seems harmless as it just happens when you close the it, but
> I don't personally use powertabeditor so I can't be sure.

Ok, I pushed it then.

Thanks,

Mathieu
diff mbox series

Patch

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(-)

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