Subject: [bug#32579] [PATCH] gnu: Add guile-mingw 2.2.3.

From: Jan Nieuwenhuizen <[email-masked]>
Date: Wed, 29 Aug 2018 20:58:43 +0200

Hi!

I created a mingw32 cross build for guile-2.0 some time ago, expecting
to need it real soon for "work" or for LilyPond.  Neither need
materialized until now; but it very soon.

Luckily, I found that Mike Gran did quite some work this spring on their
wip-mingw-guile-2.2 branch; so I packaged the latest snapshot.

Not sure if we want this in Guix -- but here it is.  I did a simple test
under wine and it seems to work.

janneke

>From 8dd3f24ddc6e14879210c584e6cd746f80f1e052 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <[email-masked]>
Date: Wed, 29 Aug 2018 20:50:13 +0200
Subject: [PATCH] gnu: Add guile-mingw 2.2.3.

* gnu/packages/guile.scm (guile-mingw): New variable.
---
 gnu/packages/guile.scm | 50 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 49 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index a585dd6dc..34c60b9fd 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2016, 2017 Alex Kost <[email-masked]>
 ;;; Copyright © 2016, 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <[email-masked]>
 ;;; Copyright © 2016 Amirouche <[email-masked]>
-;;; Copyright © 2016 Jan Nieuwenhuizen <[email-masked]>
+;;; Copyright © 2016,2018 Jan Nieuwenhuizen <[email-masked]>
 ;;; Copyright © 2017 Andy Wingo <[email-masked]>
 ;;; Copyright © 2017 David Thompson <[email-masked]>
 ;;; Copyright © 2017 Mathieu Othacehe <[email-masked]>
@@ -316,6 +316,54 @@ without requiring the source code to be rewritten.")
                (base32
                 "07p3g0v2ba2vlfbfidqzlgbhnzdx46wh2rgc5gszq1mjyx5bks6r"))))))
 
+(define-public guile-mingw
+  (package
+    (inherit guile-2.2)
+    (version "2.2.3")
+    (name "guile-mingw")
+    (source (origin
+              (inherit (package-source guile-2.2))
+              (uri (string-append "http://git.savannah.gnu.org/cgit/guile.git/snapshot/guile-6d6bc013e1f9db98334e1212295b8be0e39fbf0a.tar.gz"))
+              (sha256
+               (base32
+                "0c1j05gz5kxnxp50h1da6idxq6fiaylx9pqq7mwdiwrb569apvzp"))))
+    (native-inputs `(("autoconf" ,autoconf)
+                     ("automake" ,automake)
+                     ("gettext" ,gettext-minimal)
+                     ("libtool" ,libtool)
+                     ("flex" ,flex)
+                     ("texinfo" ,texinfo)
+                     ,@(package-native-inputs guile-2.2)))
+    (arguments
+     `(#:tests? #f
+       ,@(substitute-keyword-arguments (package-arguments guile-2.2)
+           ((#:tests? _) #f)
+           ((#:phases phases '%standard-phases)
+            `(modify-phases ,phases
+               ,@(append
+                  (if (target-mingw?)
+                      '((delete 'sacrifice-elisp-support)
+                        (add-after 'bootstrap 'sacrifice-elisp-support
+                          (lambda _
+                            ;; Cross-compiling language/elisp/boot.el fails, so
+                            ;; sacrifice it.  See
+                            ;; <https://git.savannah.gnu.org/cgit/guile.git/commit/?h=stable-2.2&id=988aa29238fca862c7e2cb55f15762a69b4c16ce>
+                            ;; for the upstream fix.
+                            (substitute* "module/Makefile.in"
+                              (("language/elisp/boot\\.el")
+                               "\n"))
+                            #t)))
+                      '())
+                  '((replace 'bootstrap
+                      (lambda _
+                        (invoke "sh" "autogen.sh")))
+                    (add-before 'bootstrap 'patch-/bin/sh
+                      (lambda _
+                        (substitute* "build-aux/git-version-gen"
+                          (("#!/bin/sh") (string-append "#!" (which "sh"))))
+                        #t))))))))))) ; ./bootstrap is a directory
+
+
 (define-public guile-next
   (deprecated-package "guile-next" guile-2.2))
 
-- 
2.18.0

-- 
Jan Nieuwenhuizen <[email-masked]> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com