From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Nieuwenhuizen Subject: Re: [PATCH v6 01/10] gnu: cross: Use CROSS_*_INCLUDE_PATH for system headers. Date: Fri, 29 Apr 2016 14:54:31 +0200 Message-ID: <877ffg1soo.fsf@drakenvlieg.flower> References: <87pota7sxv.fsf@drakenvlieg.flower> <87twimqh7x.fsf@igalia.com> <87k2jh5w0o.fsf@drakenvlieg.flower> <877ffgpxii.fsf@igalia.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:55310) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aw7x1-0008Iv-Nb for guix-devel@gnu.org; Fri, 29 Apr 2016 08:55:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aw7wq-0007kv-0v for guix-devel@gnu.org; Fri, 29 Apr 2016 08:55:14 -0400 In-Reply-To: <877ffgpxii.fsf@igalia.com> (Andy Wingo's message of "Fri, 29 Apr 2016 11:36:21 +0200") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Andy Wingo Cc: guix-devel@gnu.org Andy Wingo writes: >>>> + ,(if (mingw-target?) >>>> + "cmd.exe" >>>> + `(if bash >>>> + (string-append bash "/bin/bash") >>>> + "bash")))))) >>>> %standard-phases))) > > Note that this patch has an extra level of quoting for the not-mingw > case. Oops, changed it to (see below) (let ((bash (assoc-ref inputs "bash"))) (substitute* "module/ice-9/popen.scm" (("/bin/sh") (if bash (string-append bash "/bin/bash") "bash"))))) %standard-phases))) >> I can imagine that if I somehow installed a version of bash.exe >> (msys/cygwin) in PATH, I would expect open-pipe to use that rather than >> cmd. >> >> I'm not sure if you have a suggestion for change here, or if we should >> get more input first? > > 3 options: > > 1. Run cmd.exe from path. Disadvantage: incompatible interface. > > 2. Build bash in mingw for Guix; no special cases. The Right Thing. > However I'm OK with accepting a patch that doesn't do this, in the > interests of moving things forward. > > 3. Run bash from path. Disadvantage: bash probably not in the path and > the invocation would fail. Arguably an early failure is the right > thing, though! > > I think I'd go with (3) rather than (1). WDYT? From a Guile > perspective you can always use `open-pipe*' which doesn't trampoline > through a shell at all. Thank you, that's a helpful observation. Seeing this, yes 3) would be my choice too. Thinking about it 2) The Right Thing I had another puzzle-area: why is it that we have /bin/sh and not /bin/guile in GuixSD; and wouldn't we want the shell to be schemy-er or, how hard would it be for guile to parse shell? Anyway, while testing 3) I realised that whatever we put here is moot, at least for now, seeing that... #ifdef HAVE_FORK static void scm_init_popen (void) { scm_c_define_gsubr ("open-process", 2, 0, 1, scm_open_process); } #endif Sorry for being so dull...there isn't a any of such goodness [yet] in Windows/MinGW. >> Below is a first attempt that I didn't want to send as a proper patch >> yet. I could do with some input, especially from Manolis. > > It's really helpful to me, thank you! Okay, thanks. I'll work on this a bit and present a patch later. I'm building and will have a v7 patch set rsn. Greetings, Jan --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.nl= =20=20