diff options
author | Marius Bakke <mbakke@fastmail.com> | 2020-05-02 17:31:28 +0200 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2020-05-02 17:31:28 +0200 |
commit | 50e6c1bf2ef2f006baa8cac80dfbb12ca2ba6d64 (patch) | |
tree | 64f16d207bad28a9dfda9cce95e6337483a40066 /gnu/packages/music.scm | |
parent | a8cb1e72ef351330d1521833c1b270dcc0da593f (diff) | |
parent | afc57916e5398737e13d94b3823983783221eb63 (diff) | |
download | guix-50e6c1bf2ef2f006baa8cac80dfbb12ca2ba6d64.tar.gz |
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r-- | gnu/packages/music.scm | 132 |
1 files changed, 71 insertions, 61 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 03510deeda..8738c1eeeb 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -27,6 +27,7 @@ ;;; Copyright © 2019, 2020 Alexandros Theodotou <alex@zrythm.org> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net> +;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -625,63 +626,73 @@ MusePack, Monkey's Audio, and WavPack files.") (define-public extempore (package (name "extempore") - (version "0.7.0") + (version "0.8.6") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/digego/extempore.git") - (commit version))) + (commit (string-append "v" version)))) (sha256 (base32 - "12fsp7zkfxb9kykwq46l88kcbbici9arczrrsl4qn87m6vm5349l")) - (file-name (string-append name "-" version "-checkout")))) + "182jy23qv115dipny7kglwbn21z55dp253w1ykm0kh8n6vkgs7gp")) + (file-name (git-file-name name version)) + (patches (search-patches + "extempore-unbundle-external-dependencies.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove bundled sources. + (map delete-file-recursively + '("src/portaudio" + "src/pcre")) + #t)))) (build-system cmake-build-system) (arguments - `(;; The default target also includes ahead-of-time compilation of the - ;; standard libraries. However, during the "install" phase this would - ;; happen *again* for unknown reasons. Hence we only build the - ;; extempore executable during the build phase. - #:make-flags '("extempore") - #:configure-flags '("-DJACK=ON" - ;; We want to distribute. - "-DIN_TREE=OFF" - ;; Don't download any dependencies. - "-DBUILD_DEPS=OFF") + `(#:configure-flags (list "-DJACK=ON" + "-DPACKAGE=ON" + "-DEXTERNAL_SHLIBS_AUDIO=OFF" + "-DEXTERNAL_SHLIBS_GRAPHICS=OFF" + "-DCMAKE_BUILD_TYPE=Release" + (string-append "-DEXT_SHARE_DIR=" + (assoc-ref %outputs "out") + "/share")) #:modules ((ice-9 match) (guix build cmake-build-system) (guix build utils)) #:phases (modify-phases %standard-phases + (add-after 'build 'build-aot-libs + (lambda _ + (for-each (lambda (target) + (invoke "make" target)) + '("aot_base" + "aot_math" + "aot_instruments")) + #t)) + (add-after 'unpack 'patch-install-locations + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "CMakeLists.txt" + (("EXT_SHARE_DIR=\"\\.\"\\)") + "EXT_SHARE_DIR=\"${EXT_SHARE_DIR}/extempore\")") + (("DESTINATION \"\\.\"\\)") "DESTINATION bin)") + (("DESTINATION \"\\.\"\n") "DESTINATION share/extempore\n")) + #t)) (add-after 'unpack 'patch-directories (lambda* (#:key outputs #:allow-other-keys) - ;; Rewrite default path to runtime directory - (substitute* "src/Extempore.cpp" - (("runtimedir \\+= \"runtime\"") - (string-append "runtimedir = \"" - (assoc-ref outputs "out") - "/lib/extempore/runtime\""))) (substitute* "extras/extempore.el" (("\\(runtime-directory \\(concat default-directory \"runtime\"\\)\\)") (string-append "(runtime-directory \"" (assoc-ref outputs "out") - "/lib/extempore/runtime" + "/share/extempore/runtime" "\")"))) #t)) (add-after 'unpack 'link-with-additional-libs (lambda _ ;; The executable must be linked with libffi and zlib. (substitute* "CMakeLists.txt" - (("add_dependencies\\(aot_extended extended_deps\\)") "") (("target_link_libraries\\(extempore PRIVATE dl" line) (string-append line " ffi z"))) #t)) - ;; FIXME: AOT compilation of the nanovg bindings fail with the error: - ;; "Compiler Error could not bind _nvgLinearGradient" - (add-after 'unpack 'disable-nanovg - (lambda _ - (substitute* "CMakeLists.txt" - (("aotcompile_lib\\(libs/external/nanovg.xtm.*") "")) - #t)) ;; FIXME: All examples that are used as tests segfault for some ;; unknown reason. (add-after 'unpack 'disable-broken-tests @@ -710,20 +721,16 @@ MusePack, Monkey's Audio, and WavPack files.") ("gl/glcompat-directbind" "libGL.so" "mesa"))) #t)) (add-after 'unpack 'use-own-llvm - (lambda* (#:key inputs #:allow-other-keys) - (setenv "EXT_LLVM_DIR" (assoc-ref inputs "llvm")) - ;; Our LLVM builds shared libraries, so Extempore should use - ;; those. - (substitute* "CMakeLists.txt" - (("CMAKE_STATIC_LIBRARY") "CMAKE_SHARED_LIBRARY")) - #t)) + (lambda* (#:key inputs #:allow-other-keys) + (setenv "EXT_LLVM_DIR" (assoc-ref inputs "llvm")) + ;; Our LLVM builds shared libraries, so Extempore should use + ;; those. + (substitute* "CMakeLists.txt" + (("CMAKE_STATIC_LIBRARY") "CMAKE_SHARED_LIBRARY")) + #t)) (add-after 'unpack 'fix-aot-compilation (lambda* (#:key outputs #:allow-other-keys) (substitute* "CMakeLists.txt" - ;; EXT_SHARE_DIR does not exist before installation, so the - ;; working directory should be the source directory instead. - (("WORKING_DIRECTORY \\$\\{EXT_SHARE_DIR\\}") - "WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}") ;; Extempore needs to be told where the runtime is to be found. ;; While we're at it we disable automatic tuning for a specific ;; CPU to make binary substitution possible. @@ -1979,24 +1986,27 @@ using a system-independent interface.") (license license:expat))) (define-public portmidi-for-extempore - (package (inherit portmidi) - (name "portmidi-for-extempore") - (version "217") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/extemporelang/portmidi.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1inriyrjf7xx2b7r54x0vmf9ngyqgr7g5060c22bwkbsgg53apzv")))) - (build-system cmake-build-system) - (arguments `(#:tests? #f)) ; no tests - (native-inputs '()) - ;; Extempore refuses to build on architectures other than x86_64 - (supported-systems '("x86_64-linux")) - (home-page "https://github.com/extemporelang/portmidi/"))) + (let ((version "217") + (revision "0") + (commit "8602f548f71daf5ef638b2f7d224753400cb2158")) + (package (inherit portmidi) + (name "portmidi-for-extempore") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/extemporelang/portmidi.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qidzl1s3kzhczzm96rcd2ppn27a97k2axgfh1zhvyf0s52d7m4w")))) + (build-system cmake-build-system) + (arguments `(#:tests? #f)) ; no tests + (native-inputs '()) + ;; Extempore refuses to build on architectures other than x86_64 + (supported-systems '("x86_64-linux")) + (home-page "https://github.com/extemporelang/portmidi/")))) (define-public python-pyportmidi (package @@ -2035,7 +2045,7 @@ using a system-independent interface.") (define-public frescobaldi (package (name "frescobaldi") - (version "3.1.1") + (version "3.1.2") (source (origin (method url-fetch) @@ -2043,7 +2053,7 @@ using a system-independent interface.") "https://github.com/wbsoft/frescobaldi/releases/download/v" version "/frescobaldi-" version ".tar.gz")) (sha256 - (base32 "0kfwvgygx2ds01w8g7vzykfrajglmr2brchk9d67ahzijpgvfkj5")))) + (base32 "084vxzvxnxl5rrhllincnh6krsyi03c8p0452ppzmn9c52wgyb2w")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;no tests included @@ -2056,7 +2066,7 @@ using a system-independent interface.") ("python-pyportmidi" ,python-pyportmidi) ("python-pyqt" ,python-pyqt) ("python-sip" ,python-sip))) - (home-page "http://www.frescobaldi.org/") + (home-page "https://www.frescobaldi.org/") (synopsis "LilyPond sheet music text editor") (description "Frescobaldi is a LilyPond sheet music text editor with syntax |