unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [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).