* [bug#40739] [PATCH] gnu: extempore: Update to 0.8.6 and unbundle dependencies @ 2020-04-20 21:54 goodoldpaul 2020-04-20 21:56 ` [bug#40739] [PATCH 1/5] gnu: llvm-for-extempore: Update to 3.8 Giacomo Leidi 0 siblings, 1 reply; 8+ messages in thread From: goodoldpaul @ 2020-04-20 21:54 UTC (permalink / raw) To: 40739 Hi Guix, I'm sending a patch series to update Extempore to 0.8.6, update its dependencies and remove in-tree libraries (portaudio and pcre). I tested both extempore and emacs-extempore-mode for some days now and I believe they are usable. Thanks for reviewing this, Giacomo ^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#40739] [PATCH 1/5] gnu: llvm-for-extempore: Update to 3.8. 2020-04-20 21:54 [bug#40739] [PATCH] gnu: extempore: Update to 0.8.6 and unbundle dependencies goodoldpaul @ 2020-04-20 21:56 ` Giacomo Leidi 2020-04-20 21:56 ` [bug#40739] [PATCH 2/5] gnu: nanovg-for-extempore: Update to 0.7.1-0.3c60175 Giacomo Leidi ` (3 more replies) 0 siblings, 4 replies; 8+ messages in thread From: Giacomo Leidi @ 2020-04-20 21:56 UTC (permalink / raw) To: 40739; +Cc: Giacomo Leidi * gnu/packages/llvm.scm (llvm-for-extempore): Update to 3.8. [source]: Use upstream patched source. * gnu/packages/patches/llvm-for-extempore.patch: Delete due to source being already patched. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/llvm.scm | 11 +- gnu/packages/patches/llvm-for-extempore.patch | 118 ------------------ 3 files changed, 8 insertions(+), 122 deletions(-) delete mode 100644 gnu/packages/patches/llvm-for-extempore.patch diff --git a/gnu/local.mk b/gnu/local.mk index fb0454fd45..196ccc8800 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1176,7 +1176,6 @@ dist_patch_DATA = \ %D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/lirc-reproducible-build.patch \ %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \ - %D%/packages/patches/llvm-for-extempore.patch \ %D%/packages/patches/lm-sensors-hwmon-attrs.patch \ %D%/packages/patches/lrcalc-includes.patch \ %D%/packages/patches/lrzip-CVE-2017-8842.patch \ diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 7236567a5e..3af39ea256 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2019 Arm Ltd <David.Truby@arm.com> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> +;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -601,12 +602,16 @@ output), and Binutils.") #:patches '("clang-3.5-libc-search-path.patch"))) (define-public llvm-for-extempore - (package (inherit llvm-3.7) + (package (inherit llvm-3.8) (name "llvm-for-extempore") (source (origin - (inherit (package-source llvm-3.7)) - (patches (list (search-patch "llvm-for-extempore.patch"))))) + (method url-fetch) + (uri (string-append "http://extempore.moso.com.au/extras/" + "llvm-3.8.0.src-patched-for-extempore.tar.xz")) + (sha256 + (base32 + "1svdl6fxn8l01ni8mpm0bd5h856ahv3h9sdzgmymr6fayckjvqzs")))) ;; Extempore refuses to build on architectures other than x86_64 (supported-systems '("x86_64-linux")))) diff --git a/gnu/packages/patches/llvm-for-extempore.patch b/gnu/packages/patches/llvm-for-extempore.patch deleted file mode 100644 index 614682c6cb..0000000000 --- a/gnu/packages/patches/llvm-for-extempore.patch +++ /dev/null @@ -1,118 +0,0 @@ -This patch to LLVM is required by the developers of the Extempore language. -The following explanation was posted to the extemporelang@googlegroups.com -mailing list: - -"There is an assumption in the parser that all definitions occur within the -same compilation unit - i.e. the parser has local state about what has been -parsed in this unit of work. Extempore obviously does lots of little units -rather than one big unit and this causes problems for named types that were -defined in another unit - which they always are. The patch simply checks the -current module to see if the type has been previously defined, and intervenes -appropriately if it has." - -Message-ID: <CAOjrPOqoreXuZo4ZpDBvHE7M_tgAR_V8Txq5JFjh1HnGRn2EsA@mail.gmail.com> - ---- llvm-3.7.1.src/include/llvm/MC/MCSectionCOFF.h 2015-04-11 12:11:45.000000000 +1000 -+++ llvm-3.7.1.src/include/llvm/MC/MCSectionCOFF.h 2015-09-14 09:22:56.000000000 +1000 -@@ -16,7 +16,6 @@ - - #include "llvm/ADT/StringRef.h" - #include "llvm/MC/MCSection.h" --#include "llvm/Support/COFF.h" - - namespace llvm { - class MCSymbol; - ---- llvm-3.7.1.src/lib/AsmParser/LLParser.cpp 2015-07-11 20:30:36.000000000 +1000 -+++ llvm-3.7.1.src/lib/AsmParser/LLParser.cpp 2015-09-14 09:20:57.000000000 +1000 -@@ -1754,8 +1754,14 @@ - // If the type hasn't been defined yet, create a forward definition and - // remember where that forward def'n was seen (in case it never is defined). - if (!Entry.first) { -- Entry.first = StructType::create(Context, Lex.getStrVal()); -- Entry.second = Lex.getLoc(); -+ // this here for extempore -+ if (M->getTypeByName(Lex.getStrVal())) { -+ Entry.first = M->getTypeByName(Lex.getStrVal()); -+ Entry.second = SMLoc(); -+ } else { -+ Entry.first = StructType::create(Context, Lex.getStrVal()); -+ Entry.second = Lex.getLoc(); -+ } - } - Result = Entry.first; - Lex.Lex(); - ---- llvm-3.7.1.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp 2015-07-01 05:10:31.000000000 +1000 -+++ llvm-3.7.1.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp 2015-09-14 09:23:40.000000000 +1000 -@@ -32,6 +32,7 @@ - #include "llvm/MC/MCStreamer.h" - #include "llvm/MC/MCSymbolELF.h" - #include "llvm/MC/MCValue.h" -+#include "llvm/Support/COFF.h" - #include "llvm/Support/Dwarf.h" - #include "llvm/Support/ELF.h" - #include "llvm/Support/ErrorHandling.h" - ---- llvm-3.7.1.src/lib/ExecutionEngine/MCJIT/MCJIT.cpp 2015-07-31 02:31:16.000000000 +1000 -+++ llvm-3.7.1.src/lib/ExecutionEngine/MCJIT/MCJIT.cpp 2015-09-14 09:21:28.000000000 +1000 -@@ -524,6 +524,17 @@ - rv.IntVal = APInt(32, PF(ArgValues[0].IntVal.getZExtValue())); - return rv; - } -+ if (FTy->getNumParams() == 1 && -+ RetTy->isVoidTy() && -+ FTy->getParamType(0)->isPointerTy()) { -+ GenericValue rv; -+ //void (*PF)(char *) = (void(*)(char *))(intptr_t)FPtr; -+ //printf("are symbols available: %d\n",isSymbolSearchingDisabled()); -+ void (*PF)(char *) = (void(*)(char *))FPtr; -+ char* mzone = (char*) GVTOP(ArgValues[0]); -+ PF(mzone); -+ return rv; -+ } - break; - } - } - ---- llvm-3.7.1.src/lib/MC/MCContext.cpp 2015-06-23 21:31:32.000000000 +1000 -+++ llvm-3.7.1.src/lib/MC/MCContext.cpp 2015-09-14 09:24:01.000000000 +1000 -@@ -23,6 +23,7 @@ - #include "llvm/MC/MCSymbolCOFF.h" - #include "llvm/MC/MCSymbolELF.h" - #include "llvm/MC/MCSymbolMachO.h" -+#include "llvm/Support/COFF.h" - #include "llvm/Support/ELF.h" - #include "llvm/Support/ErrorHandling.h" - #include "llvm/Support/FileSystem.h" - ---- llvm-3.7.1.src/lib/MC/MCObjectFileInfo.cpp 2015-06-25 10:28:42.000000000 +1000 -+++ llvm-3.7.1.src/lib/MC/MCObjectFileInfo.cpp 2015-09-14 09:24:17.000000000 +1000 -@@ -16,6 +16,7 @@ - #include "llvm/MC/MCSectionCOFF.h" - #include "llvm/MC/MCSectionELF.h" - #include "llvm/MC/MCSectionMachO.h" -+#include "llvm/Support/COFF.h" - using namespace llvm; - - static bool useCompactUnwind(const Triple &T) { - ---- llvm-3.7.1.src/lib/MC/MCSectionCOFF.cpp 2015-06-09 10:31:39.000000000 +1000 -+++ llvm-3.7.1.src/lib/MC/MCSectionCOFF.cpp 2015-09-14 09:24:25.000000000 +1000 -@@ -11,6 +11,7 @@ - #include "llvm/MC/MCAsmInfo.h" - #include "llvm/MC/MCContext.h" - #include "llvm/MC/MCSymbol.h" -+#include "llvm/Support/COFF.h" - #include "llvm/Support/raw_ostream.h" - using namespace llvm; - ---- llvm-3.7.1.src/lib/Target/X86/X86TargetObjectFile.cpp 2015-06-27 04:55:48.000000000 +1000 -+++ llvm-3.7.1.src/lib/Target/X86/X86TargetObjectFile.cpp 2015-09-14 09:25:03.000000000 +1000 -@@ -16,6 +16,7 @@ - #include "llvm/MC/MCSectionCOFF.h" - #include "llvm/MC/MCSectionELF.h" - #include "llvm/MC/MCValue.h" -+#include "llvm/Support/COFF.h" - #include "llvm/Support/Dwarf.h" - #include "llvm/Target/TargetLowering.h" -- 2.26.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [bug#40739] [PATCH 2/5] gnu: nanovg-for-extempore: Update to 0.7.1-0.3c60175. 2020-04-20 21:56 ` [bug#40739] [PATCH 1/5] gnu: llvm-for-extempore: Update to 3.8 Giacomo Leidi @ 2020-04-20 21:56 ` Giacomo Leidi 2020-04-20 21:56 ` [bug#40739] [PATCH 3/5] gnu: portmidi-for-extempore: Update to 217-0.8602f54 Giacomo Leidi ` (2 subsequent siblings) 3 siblings, 0 replies; 8+ messages in thread From: Giacomo Leidi @ 2020-04-20 21:56 UTC (permalink / raw) To: 40739; +Cc: Giacomo Leidi * gnu/packages/gl.scm (nanovg-for-extempore): Update to 0.7.1-0.3c60175. [source]: Switch to Git source to include latest changes. [version]: Use git-version. --- gnu/packages/gl.scm | 47 +++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 01241cd88e..fd2e543461 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -742,30 +743,34 @@ and surfaces, receiving input and events.") (license license:zlib))) (define-public nanovg-for-extempore - (package - (name "nanovg-for-extempore") - (version "0.7.1") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/extemporelang/nanovg/" - "archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0ivs1sagq19xiw8jxd9f8w2b39svi0n9hrbmdvckwvqg95r8701g")))) - (build-system cmake-build-system) - (arguments `(#:tests? #f)) ; no tests included - (inputs - `(("mesa" ,mesa))) - ;; Extempore refuses to build on architectures other than x86_64 - (supported-systems '("x86_64-linux")) - (home-page "https://github.com/extemporelang/nanovg") - (synopsis "2D vector drawing library on top of OpenGL") - (description "NanoVG is small antialiased vector graphics rendering + (let ((version "0.7.1") + (revision "0") + (commit "3c60175fcc2e5fe305b04355cdce35d499c80310")) + (package + (name "nanovg-for-extempore") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/extemporelang/nanovg.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ddn3d3mxqn8hj9967v3pss7lz1wn08pcdnqzc118g7yjkq7hxzy")))) + (build-system cmake-build-system) + (arguments `(#:tests? #f)) ; no tests included + (inputs + `(("mesa" ,mesa))) + ;; Extempore refuses to build on architectures other than x86_64 + (supported-systems '("x86_64-linux")) + (home-page "https://github.com/extemporelang/nanovg") + (synopsis "2D vector drawing library on top of OpenGL") + (description "NanoVG is small antialiased vector graphics rendering library for OpenGL. It has lean API modeled after HTML5 canvas API. It is aimed to be a practical and fun toolset for building scalable user interfaces and visualizations.") - (license license:zlib))) + (license license:zlib)))) (define-public gl2ps (package -- 2.26.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [bug#40739] [PATCH 3/5] gnu: portmidi-for-extempore: Update to 217-0.8602f54. 2020-04-20 21:56 ` [bug#40739] [PATCH 1/5] gnu: llvm-for-extempore: Update to 3.8 Giacomo Leidi 2020-04-20 21:56 ` [bug#40739] [PATCH 2/5] gnu: nanovg-for-extempore: Update to 0.7.1-0.3c60175 Giacomo Leidi @ 2020-04-20 21:56 ` Giacomo Leidi 2020-04-20 21:56 ` [bug#40739] [PATCH 4/5] gnu: extempore: Update to 0.8.6 Giacomo Leidi 2020-04-20 21:56 ` [bug#40739] [PATCH 5/5] gnu: emacs-extempore-mode: Update to 0.0.0-1.09518ae Giacomo Leidi 3 siblings, 0 replies; 8+ messages in thread From: Giacomo Leidi @ 2020-04-20 21:56 UTC (permalink / raw) To: 40739; +Cc: Giacomo Leidi * gnu/packages/music.scm (portmidi-for-extempore): Update to 217-0.8602f54. [version]: Use git-version to include latest changes. --- gnu/packages/music.scm | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index cad6bf35ea..b12b25f030 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1978,24 +1978,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 -- 2.26.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [bug#40739] [PATCH 4/5] gnu: extempore: Update to 0.8.6. 2020-04-20 21:56 ` [bug#40739] [PATCH 1/5] gnu: llvm-for-extempore: Update to 3.8 Giacomo Leidi 2020-04-20 21:56 ` [bug#40739] [PATCH 2/5] gnu: nanovg-for-extempore: Update to 0.7.1-0.3c60175 Giacomo Leidi 2020-04-20 21:56 ` [bug#40739] [PATCH 3/5] gnu: portmidi-for-extempore: Update to 217-0.8602f54 Giacomo Leidi @ 2020-04-20 21:56 ` Giacomo Leidi 2020-05-02 14:18 ` Ludovic Courtès 2020-04-20 21:56 ` [bug#40739] [PATCH 5/5] gnu: emacs-extempore-mode: Update to 0.0.0-1.09518ae Giacomo Leidi 3 siblings, 1 reply; 8+ messages in thread From: Giacomo Leidi @ 2020-04-20 21:56 UTC (permalink / raw) To: 40739; +Cc: Giacomo Leidi * gnu/packages/music.scm (extempore): Update to 0.8.6. [snippets]: Delete bundled dependencies. [patches]: Add it. * gnu/packages/patches/extempore-unbundle-external-dependencies.patch: Patch CMakeLists.txt to use system libraries. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/music.scm | 87 ++++++----- ...mpore-unbundle-external-dependencies.patch | 138 ++++++++++++++++++ 3 files changed, 186 insertions(+), 40 deletions(-) create mode 100644 gnu/packages/patches/extempore-unbundle-external-dependencies.patch diff --git a/gnu/local.mk b/gnu/local.mk index 196ccc8800..fcc3a251c7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -871,6 +871,7 @@ dist_patch_DATA = \ %D%/packages/patches/evolution-data-server-libical-compat.patch \ %D%/packages/patches/exiv2-CVE-2017-14860.patch \ %D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch \ + %D%/packages/patches/extempore-unbundle-external-dependencies.patch \ %D%/packages/patches/extundelete-e2fsprogs-1.44.patch \ %D%/packages/patches/fastcap-mulGlobal.patch \ %D%/packages/patches/fastcap-mulSetup.patch \ diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index b12b25f030..3bafbe5c15 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. ;;; @@ -624,63 +625,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 (list (search-patch + "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 @@ -709,20 +720,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. diff --git a/gnu/packages/patches/extempore-unbundle-external-dependencies.patch b/gnu/packages/patches/extempore-unbundle-external-dependencies.patch new file mode 100644 index 0000000000..64d6dcaf15 --- /dev/null +++ b/gnu/packages/patches/extempore-unbundle-external-dependencies.patch @@ -0,0 +1,138 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 89e6125e..c5e90750 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -36,7 +36,7 @@ endif() + if(PACKAGE) + # this needs to be set before project() is called + set(CMAKE_OSX_DEPLOYMENT_TARGET 10.12) +- set(ASSETS ON) # necessary for packaging ++ set(ASSETS OFF) # necessary for packaging + message(STATUS "Building Extempore for binary distribution (assets directory will be downloaded)") + endif() + +@@ -134,71 +134,6 @@ else() + message(FATAL_ERROR "Sorry, Extempore isn't supported on this platform - macOS, Linux & Windows only.") + endif() + +-######## +-# PCRE # +-######## +- +-# current in-tree PCRE version: 8.38 +- +-add_library(pcre STATIC +- # headers +- src/pcre/config.h +- src/pcre/pcre.h +- src/pcre/ucp.h +- # source files +- src/pcre/pcre_chartables.c +- src/pcre/pcre_compile.c +- src/pcre/pcre_exec.c +- src/pcre/pcre_globals.c +- src/pcre/pcre_internal.h +- src/pcre/pcre_newline.c +- src/pcre/pcre_tables.c +- ) +- +-target_compile_definitions(pcre +- PRIVATE -DHAVE_CONFIG_H +- ) +- +-if(PACKAGE) +- target_compile_options(pcre +- PRIVATE -mtune=generic) +-endif() +- +-############# +-# portaudio # +-############# +- +-add_library(portaudio STATIC +- src/portaudio/src/common/pa_allocation.c +- src/portaudio/src/common/pa_allocation.h +- src/portaudio/src/common/pa_converters.c +- src/portaudio/src/common/pa_converters.h +- src/portaudio/src/common/pa_cpuload.c +- src/portaudio/src/common/pa_cpuload.h +- src/portaudio/src/common/pa_debugprint.c +- src/portaudio/src/common/pa_debugprint.h +- src/portaudio/src/common/pa_dither.c +- src/portaudio/src/common/pa_dither.h +- src/portaudio/src/common/pa_endianness.h +- src/portaudio/src/common/pa_front.c +- src/portaudio/src/common/pa_hostapi.h +- src/portaudio/src/common/pa_memorybarrier.h +- src/portaudio/src/common/pa_process.c +- src/portaudio/src/common/pa_process.h +- src/portaudio/src/common/pa_ringbuffer.c +- src/portaudio/src/common/pa_ringbuffer.h +- src/portaudio/src/common/pa_stream.c +- src/portaudio/src/common/pa_stream.h +- src/portaudio/src/common/pa_trace.c +- src/portaudio/src/common/pa_trace.h +- src/portaudio/src/common/pa_types.h +- src/portaudio/src/common/pa_util.h +- ) +- +-target_include_directories(portaudio +- PRIVATE src/portaudio/include +- PRIVATE src/portaudio/src/common) +- + # platform-specific + + if(APPLE) +@@ -224,25 +159,8 @@ if(APPLE) + + elseif(UNIX AND NOT APPLE) + # use ALSA on Linux +- target_sources(portaudio +- PRIVATE src/portaudio/src/hostapi/alsa/pa_linux_alsa.c +- PRIVATE src/portaudio/src/os/unix/pa_unix_hostapis.c +- PRIVATE src/portaudio/src/os/unix/pa_unix_util.c +- ) +- target_include_directories(portaudio +- PRIVATE src/portaudio/src/os/unix) +- target_compile_definitions(portaudio +- PRIVATE -DPA_USE_ALSA) +- target_link_libraries(portaudio +- PRIVATE asound) + + if(JACK) +- target_sources(portaudio +- PRIVATE src/portaudio/src/hostapi/jack/pa_jack.c) +- target_compile_definitions(portaudio +- PRIVATE -DPA_USE_JACK) +- target_link_libraries(portaudio +- PRIVATE jack) + endif() + + elseif(WIN32) +@@ -292,8 +210,6 @@ if(ASIO) + endif() + + if(PACKAGE) +- target_compile_options(portaudio +- PRIVATE -mtune=generic) + endif() + + ############## +@@ -411,8 +327,6 @@ endif() + + # dependencies + +-add_dependencies(extempore pcre portaudio) +- + if(BUILD_LLVM) + if(WIN32) + add_dependencies(extempore LLVM-install) +@@ -553,7 +467,7 @@ else() + install(TARGETS extempore + RUNTIME + DESTINATION ".") +- install(DIRECTORY assets runtime libs examples tests ++ install(DIRECTORY runtime libs examples + DESTINATION "." + PATTERN ".DS_Store" EXCLUDE) + endif() -- 2.26.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [bug#40739] [PATCH 4/5] gnu: extempore: Update to 0.8.6. 2020-04-20 21:56 ` [bug#40739] [PATCH 4/5] gnu: extempore: Update to 0.8.6 Giacomo Leidi @ 2020-05-02 14:18 ` Ludovic Courtès 0 siblings, 0 replies; 8+ messages in thread From: Ludovic Courtès @ 2020-05-02 14:18 UTC (permalink / raw) To: Giacomo Leidi; +Cc: 40739 [-- Attachment #1: Type: text/plain, Size: 450 bytes --] Hi, Giacomo Leidi <goodoldpaul@autistici.org> skribis: > * gnu/packages/music.scm (extempore): Update to 0.8.6. > [snippets]: Delete bundled dependencies. > [patches]: Add it. > * gnu/packages/patches/extempore-unbundle-external-dependencies.patch: Patch > CMakeLists.txt to use system libraries. > * gnu/local.mk (dist_patch_DATA): Add it. Applied this (and the previous patches) with the minor change below. Thanks, Ludo’. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: Type: text/x-patch, Size: 1218 bytes --] diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 456a90a642..d6a9afe319 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -636,8 +636,8 @@ MusePack, Monkey's Audio, and WavPack files.") (base32 "182jy23qv115dipny7kglwbn21z55dp253w1ykm0kh8n6vkgs7gp")) (file-name (git-file-name name version)) - (patches (list (search-patch - "extempore-unbundle-external-dependencies.patch"))) + (patches (search-patches + "extempore-unbundle-external-dependencies.patch")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patches/extempore-unbundle-external-dependencies.patch b/gnu/packages/patches/extempore-unbundle-external-dependencies.patch index 64d6dcaf15..e9484f7994 100644 --- a/gnu/packages/patches/extempore-unbundle-external-dependencies.patch +++ b/gnu/packages/patches/extempore-unbundle-external-dependencies.patch @@ -1,3 +1,5 @@ +Remove build machinery for bundled dependencies. + diff --git a/CMakeLists.txt b/CMakeLists.txt index 89e6125e..c5e90750 100644 --- a/CMakeLists.txt ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [bug#40739] [PATCH 5/5] gnu: emacs-extempore-mode: Update to 0.0.0-1.09518ae. 2020-04-20 21:56 ` [bug#40739] [PATCH 1/5] gnu: llvm-for-extempore: Update to 3.8 Giacomo Leidi ` (2 preceding siblings ...) 2020-04-20 21:56 ` [bug#40739] [PATCH 4/5] gnu: extempore: Update to 0.8.6 Giacomo Leidi @ 2020-04-20 21:56 ` Giacomo Leidi 2020-05-02 14:20 ` bug#40739: " Ludovic Courtès 3 siblings, 1 reply; 8+ messages in thread From: Giacomo Leidi @ 2020-04-20 21:56 UTC (permalink / raw) To: 40739; +Cc: Giacomo Leidi * gnu/packages/emacs-xyz.scm (emacs-extempore-mode): Update to to 0.0.0-1.09518ae. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index cd80e57efb..95cfda6b4f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -2430,7 +2430,7 @@ work with Emacs 24 and 25.") (define-public emacs-extempore-mode ;; Use the latest commit at time of packaging. There are no releases or tags. - (let ((commit "848ad0084f27b92d1cf98dabffbad29f959a642d") + (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e") (revision "1")) (package (name "emacs-extempore-mode") @@ -2443,7 +2443,7 @@ work with Emacs 24 and 25.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "00wr025php7nl33x541s9rjm99hj0jbdcmnw9ljx5hqpm04aqm7c")))) + (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp")))) (build-system emacs-build-system) (home-page "https://github.com/extemporelang/extempore-emacs-mode") (synopsis "Emacs major mode for Extempore source files") -- 2.26.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* bug#40739: [PATCH 5/5] gnu: emacs-extempore-mode: Update to 0.0.0-1.09518ae. 2020-04-20 21:56 ` [bug#40739] [PATCH 5/5] gnu: emacs-extempore-mode: Update to 0.0.0-1.09518ae Giacomo Leidi @ 2020-05-02 14:20 ` Ludovic Courtès 0 siblings, 0 replies; 8+ messages in thread From: Ludovic Courtès @ 2020-05-02 14:20 UTC (permalink / raw) To: Giacomo Leidi; +Cc: 40739-done Giacomo Leidi <goodoldpaul@autistici.org> skribis: > * gnu/packages/emacs-xyz.scm (emacs-extempore-mode): Update to to 0.0.0-1.09518ae. And applied. Thanks for the patches! Ludo’. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-05-02 14:21 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-04-20 21:54 [bug#40739] [PATCH] gnu: extempore: Update to 0.8.6 and unbundle dependencies goodoldpaul 2020-04-20 21:56 ` [bug#40739] [PATCH 1/5] gnu: llvm-for-extempore: Update to 3.8 Giacomo Leidi 2020-04-20 21:56 ` [bug#40739] [PATCH 2/5] gnu: nanovg-for-extempore: Update to 0.7.1-0.3c60175 Giacomo Leidi 2020-04-20 21:56 ` [bug#40739] [PATCH 3/5] gnu: portmidi-for-extempore: Update to 217-0.8602f54 Giacomo Leidi 2020-04-20 21:56 ` [bug#40739] [PATCH 4/5] gnu: extempore: Update to 0.8.6 Giacomo Leidi 2020-05-02 14:18 ` Ludovic Courtès 2020-04-20 21:56 ` [bug#40739] [PATCH 5/5] gnu: emacs-extempore-mode: Update to 0.0.0-1.09518ae Giacomo Leidi 2020-05-02 14:20 ` bug#40739: " Ludovic Courtès
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).