> --- /dev/null > +++ b/gnu/packages/patches/ncurses-mingw.patch Please add a note on the origin and upstream status. > From f112c5d09b77b2d89cb5c002516c3e78a715d53f Mon Sep 17 00:00:00 2001 > From: Jan Nieuwenhuizen > Date: Tue, 12 Apr 2016 15:26:10 +0200 > Subject: [PATCH 8/9] gnu: readline: support mingw. > > * gnu/packages/patches/readline-6.3-mingw.patch: New file. > * gnu-system.am: Add it. > * gnu/packages/readline.scm (readline): Support mingw. [...] > +++ b/gnu/packages/patches/readline-6.3-mingw.patch > @@ -0,0 +1,126 @@ > +Mingw lacks some SIG*. Taken from > + > + wget https://raw.githubusercontent.com/Alexpux/MINGW-packages/master/mingw-w64-readline/readline-6.3-mingw.patch > + > +some updates to make it apply. Upstream status? [...] > (assoc-ref %build-inputs "ncurses") > - "/lib") > + ,(if (equal? (%current-target-system) "i686-w64-mingw32") "/bin" > + "/lib")) > > ;; This test does an 'AC_TRY_RUN', which aborts when > ;; cross-compiling, so provide the correct answer. > ,@(if (%current-target-system) > - '("bash_cv_wcwidth_broken=no") > + '("bash_cv_wcwidth_broken=no" > + "bash_cv_termcap_lib=ncurses") > '())) > - > + #:make-flags (list ,@(if (%current-target-system) > + '("TERMCAP_LIB=-lncurses") > + '())) These would need to be justified. > From 1f513d155890453948c6599e57cc2bb384effbb8 Mon Sep 17 00:00:00 2001 > From: Jan Nieuwenhuizen > Date: Tue, 12 Apr 2016 15:27:33 +0200 > Subject: [PATCH 9/9] gnu: guile-2.0: support mingw. WIP, builds, links, > segfaults. > > * gnu/packages/patches/guile-remove-utf8.patch: New file. > * gnu-system.am: Add it. > * gnu/packages/guile.scm (guile-2.0): Support mingw. [...] > + ,@(if (equal? (%current-target-system) "i686-w64-mingw32") > + `(("libiconv" ,libiconv)) > + `(("bash" ,bash))))) I think we’d need something like: (define* (libiconv-if-needed #:optional (target (%current-target-system))) (if (mingw-target? target) `(("libiconv" ,libiconv)) '())) > +(define-public cross-guile > + (package > + (inherit guile-2.0) > + (name "cross-guile") > + (version "2.0.11") I don’t think it’s needed, is it? :-) > +++ b/gnu/packages/patches/guile-remove-utf8.patch > @@ -0,0 +1,16 @@ > +--- guile-2.0.11/libguile/Makefile.in.orig 2016-04-11 07:46:38.792593661 +0200 > ++++ guile-2.0.11/libguile/Makefile.in 2016-04-11 07:55:44.410618808 +0200 > +@@ -3735,11 +3735,11 @@ > + flex -t $(srcdir)/c-tokenize.lex > $@ || { rm $@; false; } > + > + # This page is for maintenance of the lists of CPP symbols that are eventually > +-# included in error.c (‘errno’ values: E*) and posix.c (signal names: SIG*), > ++# included in error.c (`errno' values: E*) and posix.c (signal names: SIG*), Why is this needed? In summary, as a maintainer, I want to minimize maintenance work. :-) So I think we must pay a lot of attention to how we integrate support for alternate platforms. Most likely, cross-compilation support for MinGW will remain seldom used, and thus subject to bitrot. Thus, we must make sure that adjustments made to packages for MinGW support are as little intrusive as possible, and well documented so people know why they are there and what to do about them. WDYT? I guess it’s disappointing because you bring a whole lot of patches and I respond on a lot of minor points to address, but I just want to make sure we don’t overcommit! Thank you, Ludo’.