summary refs log tree commit diff
path: root/gnu/packages/music.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r--gnu/packages/music.scm160
1 files changed, 107 insertions, 53 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index b7dc7d9aaa..63b82900c0 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -10,11 +10,12 @@
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
 ;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org>
-;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 nee <nee.git@hidamari.blue>
+;;; Copyright © 2018 Stefan Reichör <stefan@xsteve.at>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -134,11 +135,13 @@
               (sha256
                (base32
                 "1cs3z6frx2ch7rm5ammx9p0rxcjrbj1vq14hvcbimpaw39rdsn3d"))))
-    (build-system gnu-build-system)
+    (build-system scons-build-system)
     (arguments
      `(#:tests? #f  ;no tests
+       #:scons-flags
+       (list (string-append "prefix=" (assoc-ref %outputs "out")))
+       #:scons ,scons-python2
        #:phases
-       ;; TODO: Add scons-build-system and use it here.
        (modify-phases %standard-phases
          (delete 'configure)
          (add-after 'unpack 'scons-propagate-environment
@@ -161,26 +164,18 @@
                                " or \"score/\" in file"
                                " or \"Documentation/\" in file")))
              #t))
-         (replace 'build (lambda _ (zero? (system* "scons"))))
-         (replace 'install
+         (add-after 'install 'fix-directory-permissions
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
-               (and
-                (zero? (system* "scons"
-                                (string-append "prefix=" out)
-                                "install"))
-                ;; Fix directory permissions
-                (begin
-                  (chmod (string-append out "/share/Aria/Documentation") #o555)
-                  (chmod (string-append out "/share/Aria/score") #o555)
-                  #t))))))))
+               (chmod (string-append out "/share/Aria/Documentation") #o555)
+               (chmod (string-append out "/share/Aria/score") #o555)
+               #t))))))
     (inputs
      `(("wxwidgets" ,wxwidgets)
        ("glib" ,glib)
        ("alsa-lib" ,alsa-lib)))
     (native-inputs
-     `(("scons" ,scons)
-       ("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)))
     (home-page "http://ariamaestosa.sourceforge.net/")
     (synopsis "MIDI sequencer and editor")
     (description
@@ -231,18 +226,19 @@ score, keyboard, guitar, drum and controller views.")
                        "sha2" ;; Replaced by openssl.
                        "taglib"
                        "tinysvcmdns")))
-                (patches (search-patches "clementine-use-openssl.patch"))))
+                (patches (search-patches "clementine-use-openssl.patch"
+                                         "clementine-remove-crypto++-dependency.patch"))))
       (build-system cmake-build-system)
       (arguments
        '(#:test-target "clementine_test"
          #:configure-flags
-         (let ((crypto (assoc-ref %build-inputs "crypto++")))
-           (list "-DENABLE_VISUALISATIONS=OFF" ; requires unpackaged "projectm"
-                 "-DCRYPTOPP_FOUND=TRUE"
-                 (string-append "-DCRYPTOPP_INCLUDE_DIRS=" crypto "/include")
-                 (string-append "-DCRYPTOPP_LIBRARY_DIRS=" crypto "/lib")
-                 (string-append "-DCRYPTOPP_LIBRARIES=" crypto "/lib/libcryptopp.a")
-                 "-DUSE_SYSTEM_SHA2=TRUE"))
+         (list ;; Requires unpackaged "projectm"
+               "-DENABLE_VISUALISATIONS=OFF"
+               ;; Otherwise it may try to download a non-free library at run-time.
+               ;; TODO In an origin snippet, remove the code that performs the
+               ;; download.
+               "-DHAVE_SPOTIFY_DOWNLOADER=FALSE"
+               "-DUSE_SYSTEM_SHA2=TRUE")
          #:phases
          (modify-phases %standard-phases
            (add-after 'install 'wrap-program
@@ -259,7 +255,6 @@ score, keyboard, guitar, drum and controller views.")
       (inputs
        `(("boost" ,boost)
          ("chromaprint" ,chromaprint)
-         ("crypto++" ,crypto++)
          ("fftw" ,fftw)
          ("glib" ,glib)
          ("glu" ,glu)
@@ -1055,22 +1050,10 @@ complete studio.")
          (add-after 'unpack 'fix-configuration
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "default.config"
-               (("csound=csound")
-                (string-append "csound="
-                               (assoc-ref inputs "csound")
-                               "/bin/csound"))
-               (("/usr/bin/aplay")
-                (string-append (assoc-ref inputs "aplay")
-                               "/bin/aplay"))
-               (("/usr/bin/timidity")
-                (string-append (assoc-ref inputs "timidity")
-                               "/bin/timidity"))
-               (("/usr/bin/mpg123")
-                (string-append (assoc-ref inputs "mpg123")
-                               "/bin/mpg123"))
-               (("/usr/bin/ogg123")
-                (string-append (assoc-ref inputs "ogg123")
-                               "/bin/ogg123")))
+               (("/usr/bin/aplay") "aplay")
+               (("/usr/bin/timidity") "timidity")
+               (("/usr/bin/mpg123") "mpg123")
+               (("/usr/bin/ogg123") "ogg123"))
              #t))
          (add-before 'build 'patch-python-shebangs
            (lambda _
@@ -1110,13 +1093,7 @@ for path in [path for path in sys.path if 'site-packages' in path]: site.addsite
        ("pygtk" ,python2-pygtk)
        ("gettext" ,gettext-minimal)
        ("gtk" ,gtk+)
-       ("lilypond" ,lilypond)
-       ;; players needed at runtime
-       ("aplay" ,alsa-utils)
-       ("csound" ,csound) ; optional, needed for some exercises
-       ("mpg123" ,mpg123)
-       ("ogg123" ,vorbis-tools)
-       ("timidity" ,timidity++)))
+       ("lilypond" ,lilypond)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("txt2man" ,txt2man)
@@ -1187,6 +1164,14 @@ add_library( rapidjson INTERFACE IMPORTED )"))
                              "exclude:Score/ViewFilter/ViewFilter"
                              "exclude:Formats/PowerTabOldImport/Directions"
                              ))))
+         ;; FIXME: This bug has been fixed upstream, but no release has been
+         ;; made yet.  See https://github.com/powertab/powertabeditor/issues/257
+         (add-after 'unpack 'fix-boost-bug
+           (lambda _
+             (substitute* "source/score/voiceutils.cpp"
+               (("boost::rational<int> duration\\(4, pos.getDurationType\\(\\)\\);")
+                "boost::rational<int> duration(4, static_cast<int>(pos.getDurationType()));"))
+             #t))
          (add-before 'configure 'remove-third-party-libs
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Link with required static libraries, because we're not
@@ -1453,7 +1438,7 @@ reverb effects.")
 (define-public setbfree
   (package
     (name "setbfree")
-    (version "0.8.4")
+    (version "0.8.5")
     (source (origin
               (method url-fetch)
               (uri
@@ -1462,7 +1447,7 @@ reverb effects.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1g4s1920kb2q5gpp82l2vxia29qa8g8zvdjgrca8ypynvxpzn65f"))))
+                "0qfccny0hh9lq54272mzmxvfz2jmzcgigjkjwn6v9h6n00gi5bw4"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
@@ -2168,14 +2153,14 @@ from the command line.")
 (define-public qtractor
   (package
     (name "qtractor")
-    (version "0.8.5")
+    (version "0.8.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://downloads.sourceforge.net/qtractor/"
                                   "qtractor-" version ".tar.gz"))
               (sha256
                (base32
-                "0anhsd3gg8cxbf31mn2mimf19ycbbxqvd7ldizk93yq2zfbzzqqa"))))
+                "0qf75bccsyplx6fcaz48k6027yp06zhl8ixhhjdbr30xgpslnjm3"))))
     (build-system gnu-build-system)
     (arguments `(#:tests? #f)) ; no "check" target
     (inputs
@@ -2332,6 +2317,33 @@ analogue-like user interface.")
 socket or command line.")
       (license license:gpl3+))))
 
+(define-public curseradio
+  (let ((commit "1bd4bd0faeec675e0647bac9a100b526cba19f8d")
+        (revision "1"))
+    (package
+      (name "curseradio")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/chronitis/curseradio.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "11bf0jnj8h2fxhpdp498189r4s6b47vy4wripv0z4nx7lxajl88i"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-lxml" ,python-lxml)
+       ("python-requests" ,python-requests)
+       ("python-pyxdg" ,python-pyxdg)
+       ("mpv" ,mpv)))
+    (home-page "https://github.com/chronitis/curseradio")
+    (synopsis "Command-line Internet radio player")
+    (description "Curseradio is a Curses-based radio player that uses a
+tune-in sender list from @url{http://opml.radiotime.com}.")
+    (license license:expat))))
+
 (define-public pianobar
   (package
     (name "pianobar")
@@ -2487,6 +2499,48 @@ websites such as Libre.fm.")
 (define-public python2-pylast
   (package-with-python2 python-pylast))
 
+(define-public instantmusic
+  (let ((commit "300891d09c703525215fa5a116b9294af1c923c8")
+        (revision "1"))
+    (package
+      (name "instantmusic")
+      (version (git-version "1.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/yask123/Instant-Music-Downloader.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0j7qivaa04bpdz3anmgci5833dgiyfqqwq9fdrpl9m68b34gl773"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-requests" ,python-requests)
+       ("eyed3", eyed3)
+       ("python-beautifulsoup4" ,python-beautifulsoup4)
+       ("youtube-dl" ,youtube-dl)))
+    (arguments
+     '(#:modules ((guix build python-build-system)
+                  (guix build utils)
+                  (srfi srfi-26))
+       #:phases (modify-phases %standard-phases
+                  (add-before 'build 'change-directory
+                    (lambda _
+                      (chdir "instantmusic-0.1") #t))
+                  (add-before 'check 'fix-file-permissions
+                    (lambda _
+                      ;; Fix some read-only files that would cause a build failure
+                      (for-each (cut chmod <> #o644)
+                                (find-files "instantmusic.egg-info"
+                                            "PKG-INFO|.*\\.txt"))
+                      #t)))))
+    (home-page "http://iyask.me/Instant-Music-Downloader/")
+    (synopsis "Command-line program to download a song from YouTube")
+    (description "InstantMusic downloads a song from YouTube in MP3 format.
+Songs can be searched by artist, name or even by a part of the song text.")
+    (license license:expat))))
+
 (define-public beets
   (package
     (name "beets")
@@ -3873,7 +3927,7 @@ ISRCs and the MCN (=UPC/EAN) from disc.")
              version "/libmusicbrainz-" version ".tar.gz"))
        (sha256
         (base32
-         "0ikb9igyyk28jm34raxfzkw2qyn4nzzwsymdyprp7cmvi6g2ajb7"))     ))
+         "0ikb9igyyk28jm34raxfzkw2qyn4nzzwsymdyprp7cmvi6g2ajb7"))))
     (build-system cmake-build-system)
     (arguments `(#:phases
                  (modify-phases %standard-phases