* [bug#41053] [PATCH] gnu: supercollider: Update to 3.11.0. @ 2020-05-03 16:03 goodoldpaul 2020-05-03 16:06 ` [bug#41053] [PATCH 1/2] gnu: Add ableton-link Giacomo Leidi 2020-05-05 20:27 ` Giacomo Leidi 0 siblings, 2 replies; 10+ messages in thread From: goodoldpaul @ 2020-05-03 16:03 UTC (permalink / raw) To: 41053 Hello Guixers, I'm sending two patches to update SuperCollider to 3.11.0, add its new dependency Ableton Link and add a new 'ide output to store the Qt5 IDE. Thank you for your effort in reviewing this, Giacomo ^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#41053] [PATCH 1/2] gnu: Add ableton-link. 2020-05-03 16:03 [bug#41053] [PATCH] gnu: supercollider: Update to 3.11.0 goodoldpaul @ 2020-05-03 16:06 ` Giacomo Leidi 2020-05-03 16:06 ` [bug#41053] [PATCH 2/2] gnu: supercollider: Update to 3.11.0 Giacomo Leidi 2020-05-05 17:34 ` [bug#41053] [PATCH 1/2] gnu: Add ableton-link Marius Bakke 2020-05-05 20:27 ` Giacomo Leidi 1 sibling, 2 replies; 10+ messages in thread From: Giacomo Leidi @ 2020-05-03 16:06 UTC (permalink / raw) To: 41053; +Cc: Giacomo Leidi * gnu/packages/audio.scm (ableton-link): New variable. * gnu/packages/patches/ableton-link-system-libraries-debian.patch: Patch CMakeLists.txt to use system libraries. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/audio.scm | 103 ++++++++++++++++++ ...ableton-link-system-libraries-debian.patch | 27 +++++ 3 files changed, 131 insertions(+) create mode 100644 gnu/packages/patches/ableton-link-system-libraries-debian.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3c9a10b6bc..5aba7ed124 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -721,6 +721,7 @@ dist_patch_DATA = \ %D%/packages/patches/a2ps-CVE-2014-0466.patch \ %D%/packages/patches/a2ps-CVE-2015-8107.patch \ %D%/packages/patches/abcl-fix-build-xml.patch \ + %D%/packages/patches/ableton-link-system-libraries-debian.patch \ %D%/packages/patches/abiword-explictly-cast-bools.patch \ %D%/packages/patches/adb-add-libraries.patch \ %D%/packages/patches/aegis-constness-error.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 3a452f1458..52ebb51fc4 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -88,6 +88,7 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages music) #:use-module (gnu packages ncurses) + #:use-module (gnu packages networking) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -4283,3 +4284,105 @@ between 700 and 3200 bit/s. The main application is low bandwidth HF/VHF digital radio.") (home-page "https://www.rowetel.com/?page_id=452") (license license:lgpl2.1))) + +(define-public ableton-link + (package + (name "ableton-link") + (version "3.0.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Ableton/link.git") + (commit (string-append "Link-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0262vm0v7hmqjhqx5xikh529p3c065p1yld6ymaiz74yq1dnnjir")) + (modules '((guix build utils))) + (patches + (search-patches "ableton-link-system-libraries-debian.patch")) + (snippet + '(begin + ;; Fix tests + (substitute* "ci/run-tests.py" + (("root_dir,") "root_dir, os.pardir,")) + ;; Unbundle dependencies + (delete-file-recursively "third_party") + (delete-file-recursively "modules") + #t)))) + (build-system cmake-build-system) + (native-inputs + `(("catch" ,catch-framework) + ("python" ,python) ;; For running tests + ("portaudio" ,portaudio) ;; For portaudio examples + ("qtbase" ,qtbase) ;; For Qt examples + ("qtdeclarative" ,qtdeclarative) + ("qttools" ,qttools))) + (inputs + `(("jack" ,jack-1) ;; For JACK examples + ("qtquickcontrols" ,qtquickcontrols))) ;; For Qt examples + (propagated-inputs + `(("asio" ,asio))) + (arguments + `(#:configure-flags + '("-DBUILD_TYPE=Release" + "-DLINK_BUILD_QT_EXAMPLES=ON" + "-DLINK_BUILD_JACK=ON") + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs #:allow-other-keys) + (let* ((python (string-append (assoc-ref inputs "python") + "/bin/python3")) + (version ,(package-version ableton-link)) + (run-tests (string-append "../ableton-link-" + version + "-checkout/ci/run-tests.py"))) + (and (invoke python run-tests "--target" "LinkCoreTest") + (invoke python run-tests "--target" "LinkDiscoveryTest"))))) + (add-before 'install 'patch-cmake + (lambda* (#:key inputs #:allow-other-keys) + (let* ((version ,(package-version ableton-link)) + (source (string-append "../ableton-link-" + version + "-checkout/"))) + (substitute* (string-append source + "cmake_include/AsioStandaloneConfig.cmake") + (((string-append "\\$\\{CMAKE_CURRENT_LIST_DIR\\}/\\.\\./" + "modules/asio-standalone/asio/include")) + (string-append (assoc-ref inputs "asio") + "/include"))) + (substitute* (string-append source "AbletonLinkConfig.cmake") + (("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include") + "${CMAKE_CURRENT_LIST_DIR}/../../../include") + (("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include/ableton/Link\\.hpp") + "${CMAKE_CURRENT_LIST_DIR}/../../../include/ableton/Link.hpp")) + #t))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lib-cmake (string-append out "/lib/cmake/ableton-link")) + (version ,(package-version ableton-link)) + (source (string-append "../ableton-link-" version "-checkout"))) + (for-each (lambda (test-file) + (delete-file test-file)) + '("bin/LinkDiscoveryTest" "bin/LinkCoreTest")) + (copy-recursively "bin" bin) + (copy-recursively (string-append source "/include/ableton") + (string-append out "/include/ableton")) + (install-file (string-append source "/AbletonLinkConfig.cmake") + lib-cmake) + (install-file (string-append source + "/cmake_include/AsioStandaloneConfig.cmake") + (string-append lib-cmake "/cmake_include")) + #t)))))) + (home-page "https://github.com/Ableton/link") + (synopsis "Synchronizes musical beat, tempo, and phase across multiple applications") + (description + "Ableton Link is a C++ library that synchronizes musical beat, tempo, and phase +across multiple applications running on one or more devices. Applications on devices +connected to a local network discover each other automatically and form a musical +session in which each participant can perform independently: anyone can start or stop +while still staying in time.") + (license license:gpl2+))) diff --git a/gnu/packages/patches/ableton-link-system-libraries-debian.patch b/gnu/packages/patches/ableton-link-system-libraries-debian.patch new file mode 100644 index 0000000000..0c12c62546 --- /dev/null +++ b/gnu/packages/patches/ableton-link-system-libraries-debian.patch @@ -0,0 +1,27 @@ +Description: Drop dependencies on included 3rd-party libs + upstream includes git-submodules for Catch and ASIO (not found in the tarball). + on Debian we want to use the system provided libraries. +Author: IOhannes m zmölnig +Origin: Debian +Forwarded: not-needed +Last-Update: 2016-10-26 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- ableton-link.orig/cmake_include/AsioStandaloneConfig.cmake ++++ ableton-link/cmake_include/AsioStandaloneConfig.cmake +@@ -1,6 +1,2 @@ + add_library(AsioStandalone::AsioStandalone IMPORTED INTERFACE) + +-set_property(TARGET AsioStandalone::AsioStandalone APPEND PROPERTY +- INTERFACE_INCLUDE_DIRECTORIES +- ${CMAKE_CURRENT_LIST_DIR}/../modules/asio-standalone/asio/include +-) +--- ableton-link.orig/cmake_include/CatchConfig.cmake ++++ ableton-link/cmake_include/CatchConfig.cmake +@@ -1,6 +1,2 @@ + add_library(Catch::Catch IMPORTED INTERFACE) + +-set_property(TARGET Catch::Catch APPEND PROPERTY +- INTERFACE_INCLUDE_DIRECTORIES +- ${CMAKE_SOURCE_DIR}/third_party/catch +-) -- 2.26.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#41053] [PATCH 2/2] gnu: supercollider: Update to 3.11.0. 2020-05-03 16:06 ` [bug#41053] [PATCH 1/2] gnu: Add ableton-link Giacomo Leidi @ 2020-05-03 16:06 ` Giacomo Leidi 2020-05-05 17:39 ` Marius Bakke 2020-05-05 17:34 ` [bug#41053] [PATCH 1/2] gnu: Add ableton-link Marius Bakke 1 sibling, 1 reply; 10+ messages in thread From: Giacomo Leidi @ 2020-05-03 16:06 UTC (permalink / raw) To: 41053; +Cc: Giacomo Leidi This also restores IDE support. * gnu/packages/audio.scm (supercollider): Update to 3.11.0. [outputs]: Add an "ide" output. [phases]: Add an 'install-ide phase. [native-inputs]: Add qttools and ableton-link. [inputs]: Add qtbase, qtdeclarative, qtsvg, qtwebchannel and qtwebsockets. [propagated-inputs]: Add qtwebengine. --- gnu/packages/audio.scm | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 52ebb51fc4..8a02b593db 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2320,7 +2320,7 @@ background file post-processing.") (define-public supercollider (package (name "supercollider") - (version "3.10.4") + (version "3.11.0") (source (origin (method git-fetch) (uri (git-reference @@ -2331,11 +2331,15 @@ background file post-processing.") (file-name (git-file-name name version)) (sha256 (base32 - "0xdg1dx0y0agircnkn4bg3jpw184xc5pn28k7rrzgjh1rdnyzz24")))) + "02v911w2kdbg3kfl593lb2ig4sjbfxzv20a0vbcymhfzpvp1x6xp")))) (build-system cmake-build-system) + (outputs + '("out" ;; Core language + "ide")) ;; Qt5 IDE (arguments `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on" - "-DSC_QT=off" "-DCMAKE_BUILD_TYPE=Release" + "-DSC_QT=ON" "-DCMAKE_BUILD_TYPE=Release" + "-DFORTIFY=ON" "-DLIBSCSYNTH=ON" "-DSC_EL=off") ;scel is packaged individually as ;emacs-scel #:modules ((guix build utils) @@ -2356,6 +2360,9 @@ background file post-processing.") (lambda (x) (and (eq? (stat:type (stat x)) 'directory) (not (member (basename x) keep-dirs)))))))) + (substitute* "lang/CMakeLists.txt" + (("include\\(\\.\\./external_libraries/link/AbletonLinkConfig\\.cmake\\)") + "find_package(AbletonLink NAMES AbletonLink ableton-link link REQUIRED)")) #t)) ;; Some tests are broken (see: ;; https://github.com/supercollider/supercollider/issues/3555 and @@ -2367,8 +2374,6 @@ background file post-processing.") "") (("perf_counter_test.cpp") "")) - (delete-file "testsuite/server/supernova/server_test.cpp") - (delete-file "testsuite/server/supernova/perf_counter_test.cpp") (substitute* "testsuite/CMakeLists.txt" (("add_subdirectory\\(sclang\\)") "")) @@ -2385,9 +2390,20 @@ background file post-processing.") "SC_Filesystem::instance\\(\\)\\.getDirectory" "\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME")) (string-append "Path(\"" scclass-dir "\")"))) + #t))) + (add-before 'install 'install-ide + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (ide (assoc-ref outputs "ide")) + (scide "editors/sc-ide/scide")) + (install-file scide + (string-append ide "/bin")) + (delete-file scide) #t)))))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("ableton-link" ,ableton-link) + ("pkg-config" ,pkg-config) + ("qttools" ,qttools))) (inputs `(("jack" ,jack-1) ("libsndfile" ,libsndfile) @@ -2400,7 +2416,14 @@ background file post-processing.") ("icu4c" ,icu4c) ("boost" ,boost) ("boost-sync" ,boost-sync) - ("yaml-cpp" ,yaml-cpp))) + ("yaml-cpp" ,yaml-cpp) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtsvg" ,qtsvg) + ("qtwebchannel" ,qtwebchannel) + ("qtwebsockets" ,qtwebsockets))) + (propagated-inputs ; To get native-search-path + `(("qtwebengine" ,qtwebengine))) (home-page "https://github.com/supercollider/supercollider") (synopsis "Synthesis engine and programming language") (description "SuperCollider is a synthesis engine (@code{scsynth} or -- 2.26.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#41053] [PATCH 2/2] gnu: supercollider: Update to 3.11.0. 2020-05-03 16:06 ` [bug#41053] [PATCH 2/2] gnu: supercollider: Update to 3.11.0 Giacomo Leidi @ 2020-05-05 17:39 ` Marius Bakke 2020-05-05 20:19 ` goodoldpaul 0 siblings, 1 reply; 10+ messages in thread From: Marius Bakke @ 2020-05-05 17:39 UTC (permalink / raw) To: Giacomo Leidi, 41053; +Cc: Giacomo Leidi [-- Attachment #1: Type: text/plain, Size: 3936 bytes --] Giacomo Leidi <goodoldpaul@autistici.org> writes: > This also restores IDE support. > > * gnu/packages/audio.scm (supercollider): Update to 3.11.0. > [outputs]: Add an "ide" output. > [phases]: Add an 'install-ide phase. > [native-inputs]: Add qttools and ableton-link. > [inputs]: Add qtbase, qtdeclarative, qtsvg, qtwebchannel and qtwebsockets. > [propagated-inputs]: Add qtwebengine. [...] > (build-system cmake-build-system) > + (outputs > + '("out" ;; Core language > + "ide")) ;; Qt5 IDE Neat. Again use just a single semicolon for margin comments, without capitalization of the comment text. > (arguments > `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on" > - "-DSC_QT=off" "-DCMAKE_BUILD_TYPE=Release" > + "-DSC_QT=ON" "-DCMAKE_BUILD_TYPE=Release" > + "-DFORTIFY=ON" "-DLIBSCSYNTH=ON" Please mention these changes in the commit message. > "-DSC_EL=off") ;scel is packaged individually as > ;emacs-scel > #:modules ((guix build utils) > @@ -2356,6 +2360,9 @@ background file post-processing.") > (lambda (x) > (and (eq? (stat:type (stat x)) 'directory) > (not (member (basename x) keep-dirs)))))))) > + (substitute* "lang/CMakeLists.txt" > + (("include\\(\\.\\./external_libraries/link/AbletonLinkConfig\\.cmake\\)") > + "find_package(AbletonLink NAMES AbletonLink ableton-link link REQUIRED)")) > #t)) > ;; Some tests are broken (see: > ;; https://github.com/supercollider/supercollider/issues/3555 and > @@ -2367,8 +2374,6 @@ background file post-processing.") > "") > (("perf_counter_test.cpp") > "")) > - (delete-file "testsuite/server/supernova/server_test.cpp") > - (delete-file "testsuite/server/supernova/perf_counter_test.cpp") ...and this. > (substitute* "testsuite/CMakeLists.txt" > (("add_subdirectory\\(sclang\\)") > "")) > @@ -2385,9 +2390,20 @@ background file post-processing.") > "SC_Filesystem::instance\\(\\)\\.getDirectory" > "\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME")) > (string-append "Path(\"" scclass-dir "\")"))) > + #t))) > + (add-before 'install 'install-ide > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (ide (assoc-ref outputs "ide")) > + (scide "editors/sc-ide/scide")) > + (install-file scide > + (string-append ide "/bin")) > + (delete-file scide) > #t)))))) > (native-inputs > - `(("pkg-config" ,pkg-config))) > + `(("ableton-link" ,ableton-link) Is this only used a build-time and not runtime? > + ("pkg-config" ,pkg-config) > + ("qttools" ,qttools))) > (inputs > `(("jack" ,jack-1) > ("libsndfile" ,libsndfile) > @@ -2400,7 +2416,14 @@ background file post-processing.") > ("icu4c" ,icu4c) > ("boost" ,boost) > ("boost-sync" ,boost-sync) > - ("yaml-cpp" ,yaml-cpp))) > + ("yaml-cpp" ,yaml-cpp) > + ("qtbase" ,qtbase) > + ("qtdeclarative" ,qtdeclarative) > + ("qtsvg" ,qtsvg) > + ("qtwebchannel" ,qtwebchannel) > + ("qtwebsockets" ,qtwebsockets))) > + (propagated-inputs ; To get native-search-path > + `(("qtwebengine" ,qtwebengine))) Is it possible to wrap the executable with the required variables instead of propagating here? Can you send updated patches? Thanks in advance! :-) [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#41053] [PATCH 2/2] gnu: supercollider: Update to 3.11.0. 2020-05-05 17:39 ` Marius Bakke @ 2020-05-05 20:19 ` goodoldpaul 2020-05-06 20:44 ` bug#41053: " Marius Bakke 0 siblings, 1 reply; 10+ messages in thread From: goodoldpaul @ 2020-05-05 20:19 UTC (permalink / raw) To: Marius Bakke; +Cc: 41053 Hi Marius, >> (native-inputs >> - `(("pkg-config" ,pkg-config))) >> + `(("ableton-link" ,ableton-link) > > Is this only used a build-time and not runtime? It seems to be a header-only library, but I'm no expert user of SuperCollider and I still haven't found a feature impacted by this. I think that given Arch's package has it as a make-depends [0] it should be safe to assume that it is not needed at runtime. >> + (propagated-inputs ; To get native-search-path >> + `(("qtwebengine" ,qtwebengine))) > > Is it possible to wrap the executable with the required variables > instead of propagating here? I tried that and the package builds fine and sclang seems to work fine. The problem is that scide crashes here [1] no matter how many paths I hardcoded in the source and how many Qt variables I wrapped the binaries with :'D. If there's a better solution I would be happy to fix this. > Can you send updated patches? Thanks in advance! :-) I'm going to send them right away, thank you again for your patience! Giacomo [0]: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/supercollider#n16 [1]: https://github.com/supercollider/supercollider/blob/a0ab24fde9d3cc68a8014efd618cb26a27d1b416/QtCollider/interface.cpp#L95 ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#41053: [PATCH 2/2] gnu: supercollider: Update to 3.11.0. 2020-05-05 20:19 ` goodoldpaul @ 2020-05-06 20:44 ` Marius Bakke 0 siblings, 0 replies; 10+ messages in thread From: Marius Bakke @ 2020-05-06 20:44 UTC (permalink / raw) To: goodoldpaul; +Cc: 41053-done [-- Attachment #1: Type: text/plain, Size: 1213 bytes --] goodoldpaul@autistici.org writes: > Hi Marius, > >>> (native-inputs >>> - `(("pkg-config" ,pkg-config))) >>> + `(("ableton-link" ,ableton-link) >> >> Is this only used a build-time and not runtime? > > It seems to be a header-only library, but I'm no expert user of > SuperCollider and I still haven't found a feature impacted by this. I > think that given Arch's package has it as a make-depends [0] it should > be safe to assume that it is not needed at runtime. > > >>> + (propagated-inputs ; To get native-search-path >>> + `(("qtwebengine" ,qtwebengine))) >> >> Is it possible to wrap the executable with the required variables >> instead of propagating here? > > I tried that and the package builds fine and sclang seems to work fine. > The problem is that scide crashes here [1] no matter how many paths I > hardcoded in the source and how many Qt variables I wrapped the binaries > with :'D. > > If there's a better solution I would be happy to fix this. OK, thanks for testing. Odd that wrapping with QTWEBENGINEPROCESS_PATH does not work, but I suppose this is good enough for now. Applied both patches as-is, thank you! [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#41053] [PATCH 1/2] gnu: Add ableton-link. 2020-05-03 16:06 ` [bug#41053] [PATCH 1/2] gnu: Add ableton-link Giacomo Leidi 2020-05-03 16:06 ` [bug#41053] [PATCH 2/2] gnu: supercollider: Update to 3.11.0 Giacomo Leidi @ 2020-05-05 17:34 ` Marius Bakke 2020-05-05 20:19 ` goodoldpaul 1 sibling, 1 reply; 10+ messages in thread From: Marius Bakke @ 2020-05-05 17:34 UTC (permalink / raw) To: Giacomo Leidi, 41053; +Cc: Giacomo Leidi [-- Attachment #1: Type: text/plain, Size: 7605 bytes --] Giacomo Leidi <goodoldpaul@autistici.org> writes: > * gnu/packages/audio.scm (ableton-link): New variable. > * gnu/packages/patches/ableton-link-system-libraries-debian.patch: Patch > CMakeLists.txt to use system libraries. > * gnu/local.mk (dist_patch_DATA): Add it. [...] > +(define-public ableton-link > + (package > + (name "ableton-link") > + (version "3.0.2") > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/Ableton/link.git") > + (commit (string-append "Link-" version)))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > + "0262vm0v7hmqjhqx5xikh529p3c065p1yld6ymaiz74yq1dnnjir")) > + (modules '((guix build utils))) > + (patches > + (search-patches "ableton-link-system-libraries-debian.patch")) > + (snippet > + '(begin > + ;; Fix tests > + (substitute* "ci/run-tests.py" > + (("root_dir,") "root_dir, os.pardir,")) Can you expand on the comment with what this substitution does, i.e. how it fixes tests? > + (native-inputs > + `(("catch" ,catch-framework) > + ("python" ,python) ;; For running tests > + ("portaudio" ,portaudio) ;; For portaudio examples > + ("qtbase" ,qtbase) ;; For Qt examples Nit-pick: only one semicolon for margin comments. We typically also do not add a space between the semicolon and the comment in that case. > + ("qtdeclarative" ,qtdeclarative) > + ("qttools" ,qttools))) > + (inputs > + `(("jack" ,jack-1) ;; For JACK examples > + ("qtquickcontrols" ,qtquickcontrols))) ;; For Qt examples > + (propagated-inputs > + `(("asio" ,asio))) Can you add a comment about why asio is propagated? We try to avoid propagation where possible. > + (arguments > + `(#:configure-flags > + '("-DBUILD_TYPE=Release" You can use #:build-type instead of passing -DCMAKE_BUILD_TYPE. Is there a particular reason why the default "RelWithDebInfo" does not cut it? > + "-DLINK_BUILD_QT_EXAMPLES=ON" > + "-DLINK_BUILD_JACK=ON") > + #:phases > + (modify-phases %standard-phases > + (replace 'check > + (lambda* (#:key inputs #:allow-other-keys) > + (let* ((python (string-append (assoc-ref inputs "python") > + "/bin/python3")) > + (version ,(package-version ableton-link)) You can simply unquote version where needed instead of adding a let binding. > + (run-tests (string-append "../ableton-link-" > + version I.e.: ,version > + "-checkout/ci/run-tests.py"))) > + (and (invoke python run-tests "--target" "LinkCoreTest") > + (invoke python run-tests "--target" "LinkDiscoveryTest"))))) Nit-pick: The (and ...) is unnecessary because INVOKE would throw an exception upon failure instead of #f. > + (add-before 'install 'patch-cmake > + (lambda* (#:key inputs #:allow-other-keys) > + (let* ((version ,(package-version ableton-link)) > + (source (string-append "../ableton-link-" > + version Use ,version here too. > + "-checkout/"))) > + (substitute* (string-append source > + "cmake_include/AsioStandaloneConfig.cmake") Note: if you run this phase immediately after 'unpack, you don't have to add a binding for the source directory as you can refer to this file by just (substitute* "cmake_include/AsioStandaloneConfig.cmake"). But perhaps that will break things? > + (((string-append "\\$\\{CMAKE_CURRENT_LIST_DIR\\}/\\.\\./" > + "modules/asio-standalone/asio/include")) > + (string-append (assoc-ref inputs "asio") > + "/include"))) > + (substitute* (string-append source "AbletonLinkConfig.cmake") > + (("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include") > + "${CMAKE_CURRENT_LIST_DIR}/../../../include") > + (("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include/ableton/Link\\.hpp") > + "${CMAKE_CURRENT_LIST_DIR}/../../../include/ableton/Link.hpp")) > + #t))) > + (replace 'install > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (bin (string-append out "/bin")) > + (lib-cmake (string-append out "/lib/cmake/ableton-link")) > + (version ,(package-version ableton-link)) > + (source (string-append "../ableton-link-" version "-checkout"))) Use ,version here too. > + (for-each (lambda (test-file) > + (delete-file test-file)) > + '("bin/LinkDiscoveryTest" "bin/LinkCoreTest")) > + (copy-recursively "bin" bin) > + (copy-recursively (string-append source "/include/ableton") > + (string-append out "/include/ableton")) > + (install-file (string-append source "/AbletonLinkConfig.cmake") > + lib-cmake) > + (install-file (string-append source > + "/cmake_include/AsioStandaloneConfig.cmake") > + (string-append lib-cmake "/cmake_include")) Terrible that we have to install "manually" here! But oh well. > + #t)))))) > + (home-page "https://github.com/Ableton/link") > + (synopsis "Synchronizes musical beat, tempo, and phase across multiple applications") s/Synchronizes/Synchronize/ > + (description > + "Ableton Link is a C++ library that synchronizes musical beat, tempo, and phase > +across multiple applications running on one or more devices. Applications on devices > +connected to a local network discover each other automatically and form a musical > +session in which each participant can perform independently: anyone can start or stop > +while still staying in time.") Pretty cool stuff! :-) > + (license license:gpl2+))) > diff --git a/gnu/packages/patches/ableton-link-system-libraries-debian.patch b/gnu/packages/patches/ableton-link-system-libraries-debian.patch > new file mode 100644 > index 0000000000..0c12c62546 > --- /dev/null > +++ b/gnu/packages/patches/ableton-link-system-libraries-debian.patch > @@ -0,0 +1,27 @@ > +Description: Drop dependencies on included 3rd-party libs > + upstream includes git-submodules for Catch and ASIO (not found in the tarball). > + on Debian we want to use the system provided libraries. > +Author: IOhannes m zmölnig > +Origin: Debian > +Forwarded: not-needed > +Last-Update: 2016-10-26 > +--- > +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ Great that you took care to unbundle dependencies. Can you add a link to where you found this patch? Otherwise LGTM, thanks! [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#41053] [PATCH 1/2] gnu: Add ableton-link. 2020-05-05 17:34 ` [bug#41053] [PATCH 1/2] gnu: Add ableton-link Marius Bakke @ 2020-05-05 20:19 ` goodoldpaul 0 siblings, 0 replies; 10+ messages in thread From: goodoldpaul @ 2020-05-05 20:19 UTC (permalink / raw) To: Marius Bakke; +Cc: 41053 Hi Marius, >> + (arguments >> + `(#:configure-flags >> + '("-DBUILD_TYPE=Release" > > You can use #:build-type instead of passing -DCMAKE_BUILD_TYPE. Is > there a particular reason why the default "RelWithDebInfo" does not cut > it? It's just because I read on CMake's website that it's supposed to enable "-O3" flags, but I'm no expert. Also, reading further, it seems that too much aggressive optimizations can sometimes break software. For now I removed it and if there will ever be the need it can be easily reinstated. >> + "-checkout/"))) >> + (substitute* (string-append source >> + >> "cmake_include/AsioStandaloneConfig.cmake") > > Note: if you run this phase immediately after 'unpack, you don't have > to > add a binding for the source directory as you can refer to this file by > just (substitute* "cmake_include/AsioStandaloneConfig.cmake"). But > perhaps that will break things? Yes sadly it does, because it makes CMake think that the headers will be in "../../../include" while they are at the same level. >> + (for-each (lambda (test-file) >> + (delete-file test-file)) >> + '("bin/LinkDiscoveryTest" >> "bin/LinkCoreTest")) >> + (copy-recursively "bin" bin) >> + (copy-recursively (string-append source >> "/include/ableton") >> + (string-append out >> "/include/ableton")) >> + (install-file (string-append source >> "/AbletonLinkConfig.cmake") >> + lib-cmake) >> + (install-file (string-append source >> + >> "/cmake_include/AsioStandaloneConfig.cmake") >> + (string-append lib-cmake >> "/cmake_include")) > > Terrible that we have to install "manually" here! But oh well. > Yes it is, upstream seems to not provide a "make install" target :( >> diff --git >> a/gnu/packages/patches/ableton-link-system-libraries-debian.patch >> b/gnu/packages/patches/ableton-link-system-libraries-debian.patch >> new file mode 100644 >> index 0000000000..0c12c62546 >> --- /dev/null >> +++ b/gnu/packages/patches/ableton-link-system-libraries-debian.patch >> @@ -0,0 +1,27 @@ >> +Description: Drop dependencies on included 3rd-party libs >> + upstream includes git-submodules for Catch and ASIO (not found in >> the tarball). >> + on Debian we want to use the system provided libraries. >> +Author: IOhannes m zmölnig >> +Origin: Debian >> +Forwarded: not-needed >> +Last-Update: 2016-10-26 >> +--- >> +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ > > Great that you took care to unbundle dependencies. Can you add a link > to where you found this patch? I got it from Debian's package, I now added a link in the patch header. Thanks for your patience, Giacomo ^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#41053] [PATCH 1/2] gnu: Add ableton-link. 2020-05-03 16:03 [bug#41053] [PATCH] gnu: supercollider: Update to 3.11.0 goodoldpaul 2020-05-03 16:06 ` [bug#41053] [PATCH 1/2] gnu: Add ableton-link Giacomo Leidi @ 2020-05-05 20:27 ` Giacomo Leidi 2020-05-05 20:27 ` [bug#41053] [PATCH 2/2] gnu: supercollider: Update to 3.11.0 Giacomo Leidi 1 sibling, 1 reply; 10+ messages in thread From: Giacomo Leidi @ 2020-05-05 20:27 UTC (permalink / raw) To: 41053; +Cc: Giacomo Leidi * gnu/packages/audio.scm (ableton-link): New variable. * gnu/packages/patches/ableton-link-system-libraries-debian.patch: Patch CMakeLists.txt to use system libraries. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/audio.scm | 102 ++++++++++++++++++ ...ableton-link-system-libraries-debian.patch | 29 +++++ 3 files changed, 132 insertions(+) create mode 100644 gnu/packages/patches/ableton-link-system-libraries-debian.patch diff --git a/gnu/local.mk b/gnu/local.mk index 4e0521baa5..a949301b5b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -725,6 +725,7 @@ dist_patch_DATA = \ %D%/packages/patches/a2ps-CVE-2014-0466.patch \ %D%/packages/patches/a2ps-CVE-2015-8107.patch \ %D%/packages/patches/abcl-fix-build-xml.patch \ + %D%/packages/patches/ableton-link-system-libraries-debian.patch \ %D%/packages/patches/abiword-explictly-cast-bools.patch \ %D%/packages/patches/adb-add-libraries.patch \ %D%/packages/patches/aegis-constness-error.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 3a452f1458..922df4b356 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -88,6 +88,7 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages music) #:use-module (gnu packages ncurses) + #:use-module (gnu packages networking) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -4283,3 +4284,104 @@ between 700 and 3200 bit/s. The main application is low bandwidth HF/VHF digital radio.") (home-page "https://www.rowetel.com/?page_id=452") (license license:lgpl2.1))) + +(define-public ableton-link + (package + (name "ableton-link") + (version "3.0.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Ableton/link.git") + (commit (string-append "Link-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0262vm0v7hmqjhqx5xikh529p3c065p1yld6ymaiz74yq1dnnjir")) + (modules '((guix build utils))) + (patches + (search-patches "ableton-link-system-libraries-debian.patch")) + (snippet + '(begin + ;; Tests assume that CMake's "build" directory is a + ;; sub-directory of the source tree, so we fix it. + (substitute* "ci/run-tests.py" + (("root_dir,") "root_dir, os.pardir,")) + ;; Unbundle dependencies. + (delete-file-recursively "third_party") + (delete-file-recursively "modules") + #t)))) + (build-system cmake-build-system) + (native-inputs + `(("catch" ,catch-framework) + ("python" ,python) ;for running tests + ("portaudio" ,portaudio) ;for portaudio examples + ("qtbase" ,qtbase) ;for Qt examples + ("qtdeclarative" ,qtdeclarative) + ("qttools" ,qttools))) + (inputs + `(("jack" ,jack-1) ;for JACK examples + ("qtquickcontrols" ,qtquickcontrols))) ;for Qt examples + (propagated-inputs + ;; This is because include/ableton/platforms/asio/AsioWrapper.hpp + ;; contains '#include <asio.hpp>'. + `(("asio" ,asio))) + (arguments + `(#:configure-flags + '("-DLINK_BUILD_QT_EXAMPLES=ON" + "-DLINK_BUILD_JACK=ON") + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs #:allow-other-keys) + (let* ((python (string-append (assoc-ref inputs "python") + "/bin/python3")) + (run-tests (string-append "../ableton-link-" + ,version + "-checkout/ci/run-tests.py"))) + (invoke python run-tests "--target" "LinkCoreTest") + (invoke python run-tests "--target" "LinkDiscoveryTest")))) + (add-before 'install 'patch-cmake + (lambda* (#:key inputs #:allow-other-keys) + (let* ((source (string-append "../ableton-link-" + ,version + "-checkout/"))) + (substitute* (string-append source + "cmake_include/AsioStandaloneConfig.cmake") + (((string-append "\\$\\{CMAKE_CURRENT_LIST_DIR\\}/\\.\\./" + "modules/asio-standalone/asio/include")) + (string-append (assoc-ref inputs "asio") + "/include"))) + (substitute* (string-append source "AbletonLinkConfig.cmake") + (("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include") + "${CMAKE_CURRENT_LIST_DIR}/../../../include") + (("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include/ableton/Link\\.hpp") + "${CMAKE_CURRENT_LIST_DIR}/../../../include/ableton/Link.hpp")) + #t))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lib-cmake (string-append out "/lib/cmake/ableton-link")) + (source (string-append "../ableton-link-" ,version "-checkout"))) + (for-each (lambda (test-file) + (delete-file test-file)) + '("bin/LinkDiscoveryTest" "bin/LinkCoreTest")) + (copy-recursively "bin" bin) + (copy-recursively (string-append source "/include/ableton") + (string-append out "/include/ableton")) + (install-file (string-append source "/AbletonLinkConfig.cmake") + lib-cmake) + (install-file (string-append source + "/cmake_include/AsioStandaloneConfig.cmake") + (string-append lib-cmake "/cmake_include")) + #t)))))) + (home-page "https://github.com/Ableton/link") + (synopsis "Synchronize musical beat, tempo, and phase across multiple applications") + (description + "Ableton Link is a C++ library that synchronizes musical beat, tempo, and phase +across multiple applications running on one or more devices. Applications on devices +connected to a local network discover each other automatically and form a musical +session in which each participant can perform independently: anyone can start or stop +while still staying in time.") + (license license:gpl2+))) diff --git a/gnu/packages/patches/ableton-link-system-libraries-debian.patch b/gnu/packages/patches/ableton-link-system-libraries-debian.patch new file mode 100644 index 0000000000..184896ee61 --- /dev/null +++ b/gnu/packages/patches/ableton-link-system-libraries-debian.patch @@ -0,0 +1,29 @@ +This patch was borrowed from Debian's package: +https://salsa.debian.org/multimedia-team/ableton-link/-/blob/9c65141bf5bba0872811c179af77ac95770352cc/debian/patches/DEBIAN_system_libraries.patch +Description: Drop dependencies on included 3rd-party libs + upstream includes git-submodules for Catch and ASIO (not found in the tarball). + on Debian we want to use the system provided libraries. +Author: IOhannes m zmölnig +Origin: Debian +Forwarded: not-needed +Last-Update: 2016-10-26 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- ableton-link.orig/cmake_include/AsioStandaloneConfig.cmake ++++ ableton-link/cmake_include/AsioStandaloneConfig.cmake +@@ -1,6 +1,2 @@ + add_library(AsioStandalone::AsioStandalone IMPORTED INTERFACE) + +-set_property(TARGET AsioStandalone::AsioStandalone APPEND PROPERTY +- INTERFACE_INCLUDE_DIRECTORIES +- ${CMAKE_CURRENT_LIST_DIR}/../modules/asio-standalone/asio/include +-) +--- ableton-link.orig/cmake_include/CatchConfig.cmake ++++ ableton-link/cmake_include/CatchConfig.cmake +@@ -1,6 +1,2 @@ + add_library(Catch::Catch IMPORTED INTERFACE) + +-set_property(TARGET Catch::Catch APPEND PROPERTY +- INTERFACE_INCLUDE_DIRECTORIES +- ${CMAKE_SOURCE_DIR}/third_party/catch +-) -- 2.26.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#41053] [PATCH 2/2] gnu: supercollider: Update to 3.11.0. 2020-05-05 20:27 ` Giacomo Leidi @ 2020-05-05 20:27 ` Giacomo Leidi 0 siblings, 0 replies; 10+ messages in thread From: Giacomo Leidi @ 2020-05-05 20:27 UTC (permalink / raw) To: 41053; +Cc: Giacomo Leidi This also restores IDE support. * gnu/packages/audio.scm (supercollider): Update to 3.11.0. [outputs]: Add an "ide" output. [configure-flags]: Enable Qt IDE, fortify source and build scsynth as a shared library. [phases]: Do not delete no longer existing failing tests and add an 'install-ide phase. [native-inputs]: Add qttools and ableton-link. [inputs]: Add qtbase, qtdeclarative, qtsvg, qtwebchannel and qtwebsockets. [propagated-inputs]: Add qtwebengine. --- gnu/packages/audio.scm | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 922df4b356..02d58f552e 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2320,7 +2320,7 @@ background file post-processing.") (define-public supercollider (package (name "supercollider") - (version "3.10.4") + (version "3.11.0") (source (origin (method git-fetch) (uri (git-reference @@ -2331,11 +2331,15 @@ background file post-processing.") (file-name (git-file-name name version)) (sha256 (base32 - "0xdg1dx0y0agircnkn4bg3jpw184xc5pn28k7rrzgjh1rdnyzz24")))) + "02v911w2kdbg3kfl593lb2ig4sjbfxzv20a0vbcymhfzpvp1x6xp")))) (build-system cmake-build-system) + (outputs + '("out" ;core language + "ide")) ;qt ide (arguments `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on" - "-DSC_QT=off" "-DCMAKE_BUILD_TYPE=Release" + "-DSC_QT=ON" "-DCMAKE_BUILD_TYPE=Release" + "-DFORTIFY=ON" "-DLIBSCSYNTH=ON" "-DSC_EL=off") ;scel is packaged individually as ;emacs-scel #:modules ((guix build utils) @@ -2356,6 +2360,9 @@ background file post-processing.") (lambda (x) (and (eq? (stat:type (stat x)) 'directory) (not (member (basename x) keep-dirs)))))))) + (substitute* "lang/CMakeLists.txt" + (("include\\(\\.\\./external_libraries/link/AbletonLinkConfig\\.cmake\\)") + "find_package(AbletonLink NAMES AbletonLink ableton-link link REQUIRED)")) #t)) ;; Some tests are broken (see: ;; https://github.com/supercollider/supercollider/issues/3555 and @@ -2367,8 +2374,6 @@ background file post-processing.") "") (("perf_counter_test.cpp") "")) - (delete-file "testsuite/server/supernova/server_test.cpp") - (delete-file "testsuite/server/supernova/perf_counter_test.cpp") (substitute* "testsuite/CMakeLists.txt" (("add_subdirectory\\(sclang\\)") "")) @@ -2385,9 +2390,20 @@ background file post-processing.") "SC_Filesystem::instance\\(\\)\\.getDirectory" "\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME")) (string-append "Path(\"" scclass-dir "\")"))) + #t))) + (add-before 'install 'install-ide + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (ide (assoc-ref outputs "ide")) + (scide "editors/sc-ide/scide")) + (install-file scide + (string-append ide "/bin")) + (delete-file scide) #t)))))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("ableton-link" ,ableton-link) + ("pkg-config" ,pkg-config) + ("qttools" ,qttools))) (inputs `(("jack" ,jack-1) ("libsndfile" ,libsndfile) @@ -2400,7 +2416,14 @@ background file post-processing.") ("icu4c" ,icu4c) ("boost" ,boost) ("boost-sync" ,boost-sync) - ("yaml-cpp" ,yaml-cpp))) + ("yaml-cpp" ,yaml-cpp) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtsvg" ,qtsvg) + ("qtwebchannel" ,qtwebchannel) + ("qtwebsockets" ,qtwebsockets))) + (propagated-inputs ;to get native-search-path + `(("qtwebengine" ,qtwebengine))) (home-page "https://github.com/supercollider/supercollider") (synopsis "Synthesis engine and programming language") (description "SuperCollider is a synthesis engine (@code{scsynth} or -- 2.26.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-05-06 20:44 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-05-03 16:03 [bug#41053] [PATCH] gnu: supercollider: Update to 3.11.0 goodoldpaul 2020-05-03 16:06 ` [bug#41053] [PATCH 1/2] gnu: Add ableton-link Giacomo Leidi 2020-05-03 16:06 ` [bug#41053] [PATCH 2/2] gnu: supercollider: Update to 3.11.0 Giacomo Leidi 2020-05-05 17:39 ` Marius Bakke 2020-05-05 20:19 ` goodoldpaul 2020-05-06 20:44 ` bug#41053: " Marius Bakke 2020-05-05 17:34 ` [bug#41053] [PATCH 1/2] gnu: Add ableton-link Marius Bakke 2020-05-05 20:19 ` goodoldpaul 2020-05-05 20:27 ` Giacomo Leidi 2020-05-05 20:27 ` [bug#41053] [PATCH 2/2] gnu: supercollider: Update to 3.11.0 Giacomo Leidi
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.