* [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 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 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 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).