* Re: 01/01: services: Add ‘/usr/bin/env’ special file. [not found] ` <20190906102510.002BE21324@vcs0.savannah.gnu.org> @ 2019-09-06 10:36 ` Christopher Baines 2019-09-06 10:44 ` pelzflorian (Florian Pelz) 2019-09-06 15:54 ` Tobias Geerinckx-Rice 0 siblings, 2 replies; 23+ messages in thread From: Christopher Baines @ 2019-09-06 10:36 UTC (permalink / raw) To: Tobias Geerinckx-Rice; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 582 bytes --] guix-commits@gnu.org writes: > nckx pushed a commit to branch master > in repository guix. > > commit 3b38bf141a464e1bb370af7d2b2651d1efb29781 > Author: Tobias Geerinckx-Rice <me@tobias.gr> > Date: Fri Sep 6 12:23:57 2019 +0200 > > services: Add ‘/usr/bin/env’ special file. > > * gnu/services/base.scm (%base-services): Add ‘/usr/bin/env‘ to > special-files-service-type. > --- This seems to me like quite a big change, and I'd be interested in knowing what your motivation was [1]? 1: And ideally this would be in the commit message. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 962 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-06 10:36 ` 01/01: services: Add ‘/usr/bin/env’ special file Christopher Baines @ 2019-09-06 10:44 ` pelzflorian (Florian Pelz) 2019-09-06 10:47 ` pelzflorian (Florian Pelz) 2019-09-06 15:54 ` Tobias Geerinckx-Rice 1 sibling, 1 reply; 23+ messages in thread From: pelzflorian (Florian Pelz) @ 2019-09-06 10:44 UTC (permalink / raw) To: Christopher Baines; +Cc: guix-devel On Fri, Sep 06, 2019 at 12:36:33PM +0200, Christopher Baines wrote: > > guix-commits@gnu.org writes: > > > nckx pushed a commit to branch master > > in repository guix. > > > > commit 3b38bf141a464e1bb370af7d2b2651d1efb29781 > > Author: Tobias Geerinckx-Rice <me@tobias.gr> > > Date: Fri Sep 6 12:23:57 2019 +0200 > > > > services: Add ‘/usr/bin/env’ special file. > > > > * gnu/services/base.scm (%base-services): Add ‘/usr/bin/env‘ to > > special-files-service-type. > > --- > > This seems to me like quite a big change, and I'd be interested in > knowing what your motivation was [1]? > > 1: And ideally this would be in the commit message. This break building the guix website, possibly also guix pull. ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-06 10:44 ` pelzflorian (Florian Pelz) @ 2019-09-06 10:47 ` pelzflorian (Florian Pelz) 0 siblings, 0 replies; 23+ messages in thread From: pelzflorian (Florian Pelz) @ 2019-09-06 10:47 UTC (permalink / raw) To: Christopher Baines; +Cc: guix-devel On Fri, Sep 06, 2019 at 12:44:53PM +0200, pelzflorian (Florian Pelz) wrote: > On Fri, Sep 06, 2019 at 12:36:33PM +0200, Christopher Baines wrote: > > > > guix-commits@gnu.org writes: > > > > > nckx pushed a commit to branch master > > > in repository guix. > > > > > > commit 3b38bf141a464e1bb370af7d2b2651d1efb29781 > > > Author: Tobias Geerinckx-Rice <me@tobias.gr> > > > Date: Fri Sep 6 12:23:57 2019 +0200 > > > > > > services: Add ‘/usr/bin/env’ special file. > > > > > > * gnu/services/base.scm (%base-services): Add ‘/usr/bin/env‘ to > > > special-files-service-type. > > > --- > > > > This seems to me like quite a big change, and I'd be interested in > > knowing what your motivation was [1]? > > > > 1: And ideally this would be in the commit message. > > > This break building the guix website, possibly also guix pull. > When building the website: gnu/services/base.scm:2431:35: unquote: expression not valid outside of quasiquote in form (unquote (file-append (canonical-package coreutils) "/usr/bin/env")) ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-06 10:36 ` 01/01: services: Add ‘/usr/bin/env’ special file Christopher Baines 2019-09-06 10:44 ` pelzflorian (Florian Pelz) @ 2019-09-06 15:54 ` Tobias Geerinckx-Rice 2019-09-06 23:21 ` Mark H Weaver ` (2 more replies) 1 sibling, 3 replies; 23+ messages in thread From: Tobias Geerinckx-Rice @ 2019-09-06 15:54 UTC (permalink / raw) To: Christopher Baines; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 654 bytes --] Christopher, Christopher Baines 写道: > This seems to me like quite a big change, and I'd be interested > in > knowing what your motivation was [1]? It's not, really. It's equivalent to the impure /bin/sh that Guix Systems already provide, but actually useful: ‘use #!/usr/bin/env, not #!/bin/sh!’ was already a mantra when I wrote my first shell script — and I'm not that young. There's no good argument for not being able to run the vast majority of well-written scripts, out of the box, on Guix Systems. I hope that's sufficient, but I don't think it needed to go in the commit message. Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-06 15:54 ` Tobias Geerinckx-Rice @ 2019-09-06 23:21 ` Mark H Weaver 2019-09-07 5:05 ` Jesse Gibbons ` (2 more replies) 2019-09-06 23:47 ` Mark H Weaver 2019-09-07 14:41 ` Marius Bakke 2 siblings, 3 replies; 23+ messages in thread From: Mark H Weaver @ 2019-09-06 23:21 UTC (permalink / raw) To: Tobias Geerinckx-Rice; +Cc: guix-devel Hi Tobias, Tobias Geerinckx-Rice <me@tobias.gr> writes: > Christopher, > > Christopher Baines 写道: >> This seems to me like quite a big change, and I'd be interested in >> knowing what your motivation was [1]? > > It's not, really. It's equivalent to the impure /bin/sh that Guix > Systems already provide, but actually useful: ‘use #!/usr/bin/env, not > #!/bin/sh!’ was already a mantra when I wrote my first shell script — > and I'm not that young. > > There's no good argument for not being able to run the vast majority > of well-written scripts, out of the box, on Guix Systems. > > I hope that's sufficient, but I don't think it needed to go in the > commit message. This should have been discussed more widely before pushing to 'master'. It is not a new idea. We talked about it long ago, and decided that it should *not* be included. I don't have the energy right now to restate the arguments or find the old discussions. Mark ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-06 23:21 ` Mark H Weaver @ 2019-09-07 5:05 ` Jesse Gibbons 2019-09-07 7:52 ` Tobias Geerinckx-Rice via Development of GNU Guix and the GNU System distribution. 2019-09-07 10:06 ` Tobias Geerinckx-Rice 2019-09-08 22:19 ` Tobias Geerinckx-Rice 2 siblings, 1 reply; 23+ messages in thread From: Jesse Gibbons @ 2019-09-07 5:05 UTC (permalink / raw) To: Mark H Weaver, Tobias Geerinckx-Rice; +Cc: guix-devel On Fri, 2019-09-06 at 19:21 -0400, Mark H Weaver wrote: > Hi Tobias, > > Tobias Geerinckx-Rice <me@tobias.gr> writes: > > > Christopher, > > > > Christopher Baines 写道: > > > This seems to me like quite a big change, and I'd be interested > > > in > > > knowing what your motivation was [1]? > > > > It's not, really. It's equivalent to the impure /bin/sh that Guix > > Systems already provide, but actually useful: ‘use #!/usr/bin/env, > > not > > #!/bin/sh!’ was already a mantra when I wrote my first shell script > > — > > and I'm not that young. > > > > There's no good argument for not being able to run the vast > > majority > > of well-written scripts, out of the box, on Guix Systems. > > > > I hope that's sufficient, but I don't think it needed to go in the > > commit message. > > This should have been discussed more widely before pushing to > 'master'. > It is not a new idea. We talked about it long ago, and decided that > it > should *not* be included. I don't have the energy right now to > restate > the arguments or find the old discussions. > > Mark > Here's a post with what I think is a good argument against adding /usr/bin/env. I think the standard patch-shebang phase does a good job at preventing the potential issue, but the argument still applies to scripts generated by make, as I learned while attempting to port pysolfc. I recommend you read the thread too. https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00505.html ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-07 5:05 ` Jesse Gibbons @ 2019-09-07 7:52 ` Tobias Geerinckx-Rice via Development of GNU Guix and the GNU System distribution. 2019-09-07 15:33 ` Jesse Gibbons 0 siblings, 1 reply; 23+ messages in thread From: Tobias Geerinckx-Rice via Development of GNU Guix and the GNU System distribution. @ 2019-09-07 7:52 UTC (permalink / raw) To: Jesse Gibbons; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1030 bytes --] Jesse, Thanks! It was linked from another thread[0] Ludo' pasted to my patch, though. I've read both. Jesse Gibbons 写道: > Here's a post with what I think is a good argument against > adding > /usr/bin/env. I think the standard patch-shebang phase does a > good job > at preventing the potential issue, but the argument still > applies to So is the argument here that Guix packages would generate scripts at run-time that refer to /usr/bin/env? Or just that it's currently easy to catch packages that install #!/usr/bin/env scripts? Or something else? Neither /bin/sh nor /usr/bin/env are available in the build environment. Relying on the *likely* run-time non-existence of /usr/bin/env in *user* environments to catch *packaging* bugs does not sound acceptable to me. > scripts generated by make, as I learned while attempting to port > pysolfc. If you have the time, could you elaborate? Kind regards, T G-R [0]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=35910 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-07 7:52 ` Tobias Geerinckx-Rice via Development of GNU Guix and the GNU System distribution. @ 2019-09-07 15:33 ` Jesse Gibbons 0 siblings, 0 replies; 23+ messages in thread From: Jesse Gibbons @ 2019-09-07 15:33 UTC (permalink / raw) To: Tobias Geerinckx-Rice; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1671 bytes --] Hi T-G-R, On Sat, 2019-09-07 at 09:52 +0200, Tobias Geerinckx-Rice wrote: > Jesse, > > Thanks! It was linked from another thread[0] Ludo' pasted to my > patch, though. I've read both. > > Jesse Gibbons 写道: > > Here's a post with what I think is a good argument against > > adding > > /usr/bin/env. I think the standard patch-shebang phase does a > > good job > > at preventing the potential issue, but the argument still > > applies to > > So is the argument here that Guix packages would generate scripts > at run-time that refer to /usr/bin/env? Or just that it's > currently easy to catch packages that install #!/usr/bin/env > scripts? Or something else? > > Neither /bin/sh nor /usr/bin/env are available in the build > environment. Relying on the *likely* run-time non-existence of > /usr/bin/env in *user* environments to catch *packaging* bugs does > not sound acceptable to me. > > > scripts generated by make, as I learned while attempting to port > > pysolfc. > > If you have the time, could you elaborate? It's a bit complicated. Pysolfc has a horrible build system. It doesn't build the required i18n unless you call "make test". Howevver, "make test" runs a script generates python test scripts that use #!/usr/bin/env to find both python and python2. Since they are generated by a shell script, patch- shebangs does not catch them, and it fails to find /usr/bin/env. It's a mess that I don't know how to solve. I've attached my pysolfc.scm so you can observe what I mean. Sorry it's a horrible mess of commented broken code. > > Kind regards, > > T G-R > > [0]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=35910 -- -Jesse [-- Attachment #2: pysolfc.scm --] [-- Type: text/x-scheme, Size: 5889 bytes --] ;;; Broken Guix ;;; Guix packages that are in-progress, broken, nonfree, or otherwise will ;;; not build and run to my satisfaction. ;;; ;;; Copyright (C) 2019 Jesse Gibbons ;;; ;;; This program is free software: you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation, either version 3 of the License, or ;;; (at your option) any later version. ;;; ;;; This program is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with this program. If not, see <https://www.gnu.org/licenses/>. (define-module (broken-packages pysolfc) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system python) #:use-module (guix licenses) #:use-module (guix gexp) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages compression) #:use-module (gnu packages base) #:use-module (gnu packages perl) ) (define-public pysolfc (package (name "pysolfc") (version "2.6.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/shlomif/PySolFC/archive/pysolfc-" version ".tar.gz")) (sha256 (base32 "17r9mbn4fj6kbxhllsab74gfjac0j2mjdwkkwaxp6cqpy4dss3z8")))) (build-system python-build-system) (native-inputs `(("make" ,gnu-make) ("perl" ,perl) ("python2" ,python-2) ("moose" ,perl-moose) ("coreutils" ,coreutils) ("python2-pycotap" ,python2-pycotap) )) (propagated-inputs `( ("python2-six" ,python2-six) ("python2-tkinter" ,python-2 "tk") ("python2-random2" ,python2-random2) ("python2" ,python-2) ("python-six" ,python-six) ("python-tkinter" ,python "tk") ("python-random2" ,python-random2))) (arguments `(#:python ,python #:phases (modify-phases %standard-phases ;; (add-before 'patch-generated-file-shebangs 'generate-tests ;; (lambda _ ;; (begin ;; (invoke "make" "pretest") ;; (system "echo =================") ;; (invoke "echo" (string-append "#!" (which "env"))) ;; (substitute* (find-files "tests" "\\.py$") ;; (("#!/usr/bin/env") ;; (string-append "#!" (which "env")))) ;; ))) ;; (add-before 'build 'make-test ;; (lambda _ ;; (begin ;; (system "cat tests/unit-generated/*") ;; (invoke "false") ;; (invoke "make" "test") ;; ))) (add-before 'build 'make-rules (lambda _ (begin (invoke "make" "rules")))) (add-after 'make-rules 'move-images (lambda _ (begin (invoke "false") #t )))))) (home-page "https://pysolfc.sourceforge.io/") (synopsis "Solitaire Collection, Written in Python") (description "PySol Fan Club Edition (PySolFC) is a collection of more than 1000 solitaire card games. It is a fork of PySol Solitaire.") (license gpl3+))) (define python-random2 (package (name "python-random2") (version "1.0.1") (source (origin (method url-fetch) (uri (pypi-uri "random2" version ".zip")) (sha256 (base32 "01y0s4747plsx8fdnxy0nz83dp69naddz58m81r9h0s1qfm31b9l")))) (native-inputs `(("unzip" ,unzip))) (build-system python-build-system) (arguments `(#:python ,python #:use-setuptools? #f)) (home-page "http://pypi.python.org/pypi/random2") (synopsis "Python 3 compatible Pytohn 2 `random` Module.") (description "Python 3 compatible Pytohn 2 `random` Module.") (license #f))) (define python2-random2 (package (name "python2-random2") (version "1.0.1") (source (origin (method url-fetch) (uri (pypi-uri "random2" version ".zip")) (sha256 (base32 "01y0s4747plsx8fdnxy0nz83dp69naddz58m81r9h0s1qfm31b9l")))) (native-inputs `(("unzip" ,unzip))) (build-system python-build-system) (arguments `(#:python ,python-2 #:use-setuptools? #f)) (home-page "http://pypi.python.org/pypi/random2") (synopsis "Python 3 compatible Pytohn 2 `random` Module.") (description "Python 3 compatible Pytohn 2 `random` Module.") (license #f))) (define-public python-pycotap (package (name "python-pycotap") (version "1.1.0") (source (origin (method url-fetch) (uri (pypi-uri "pycotap" version)) (sha256 (base32 "128qn7zjn95nivcxbxjclkwjw2qif5sf9c1b8rrsczcpn78kckf1")))) (inputs `(("python" ,python))) (build-system python-build-system) (arguments `(#:python ,python)) (home-page "https://el-tramo.be/pycotap") (synopsis "A tiny test runner that outputs TAP results to standard output.") (description "A tiny test runner that outputs TAP results to standard output.") (license expat))) (define-public python2-pycotap (package (name "python2-pycotap") (version "1.1.0") (source (origin (method url-fetch) (uri (pypi-uri "pycotap" version)) (sha256 (base32 "128qn7zjn95nivcxbxjclkwjw2qif5sf9c1b8rrsczcpn78kckf1")))) (build-system python-build-system) (arguments `(#:python ,python-2)) (home-page "https://el-tramo.be/pycotap") (synopsis "A tiny test runner that outputs TAP results to standard output.") (description "A tiny test runner that outputs TAP results to standard output.") (license expat))) ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-06 23:21 ` Mark H Weaver 2019-09-07 5:05 ` Jesse Gibbons @ 2019-09-07 10:06 ` Tobias Geerinckx-Rice 2019-09-07 15:03 ` Jesse Gibbons 2019-09-08 22:19 ` Tobias Geerinckx-Rice 2 siblings, 1 reply; 23+ messages in thread From: Tobias Geerinckx-Rice @ 2019-09-07 10:06 UTC (permalink / raw) To: Mark H Weaver; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 696 bytes --] Mark, Mark H Weaver 写道: > This should have been discussed more widely before pushing to > 'master'. It should certainly have been discussed more widely before reverting like you did. There was plenty of opportunity for you to respond before that[0]. I have the impression this is not going anywhere productive, so shall we just drop this meta-discussion? Despite what you may think, I *am* interested in your (or any) reasoning to include /bin/sh and not /usr/bin/sh, but understand the energy involved in reiterating. I'd rather see them both gone; this was my compromise. Kind regards, T G-R [0]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=35910 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-07 10:06 ` Tobias Geerinckx-Rice @ 2019-09-07 15:03 ` Jesse Gibbons 2019-09-08 21:48 ` Ludovic Courtès 0 siblings, 1 reply; 23+ messages in thread From: Jesse Gibbons @ 2019-09-07 15:03 UTC (permalink / raw) To: Tobias Geerinckx-Rice, Mark H Weaver; +Cc: guix-devel On Sat, 2019-09-07 at 12:06 +0200, Tobias Geerinckx-Rice wrote: > Mark, > > Mark H Weaver 写道: > > This should have been discussed more widely before pushing to > > 'master'. > > It should certainly have been discussed more widely before > reverting like you did. There was plenty of opportunity for you > to respond before that[0]. > > I have the impression this is not going anywhere productive, so > shall we just drop this meta-discussion? > > Despite what you may think, I *am* interested in your (or any) > reasoning to include /bin/sh and not /usr/bin/sh, but understand > the energy involved in reiterating. I'd rather see them both > gone; this was my compromise. > > Kind regards, > > T G-R > > [0]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=35910 If I might chip in here to try to make this discussion a little more productive, a user suggested /usr/bin/env should be added by default[0] to solve a problem[1]. In summary, the user wanted to have a standard for scripting in guile and other common GNU distros. If including /usr/bin/env by default is not the best solution to the problem, perhaps we can find a better solution. I suggest we add the "guix shebang" command, which takes a script and returns a script with a shebang pointing to the proper source, like what 'patch-shebangs build phase does to all the scripts in the build source. It could replace the input script (perhaps when given the -- replace option) or it could put the resulting script in the store and accept the --root= option. Thoughts? [0]: https://lists.gnu.org/archive/html/help-guix/2019-09/msg00037.html [1]: https://lists.gnu.org/archive/html/help-guix/2019-09/msg00024.html ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-07 15:03 ` Jesse Gibbons @ 2019-09-08 21:48 ` Ludovic Courtès 2019-09-08 23:53 ` Jesse Gibbons 0 siblings, 1 reply; 23+ messages in thread From: Ludovic Courtès @ 2019-09-08 21:48 UTC (permalink / raw) To: Jesse Gibbons; +Cc: guix-devel Hi, Jesse Gibbons <jgibbons2357@gmail.com> skribis: > If I might chip in here to try to make this discussion a little more > productive, a user suggested /usr/bin/env should be added by default[0] > to solve a problem[1]. In summary, the user wanted to have a standard > for scripting in guile and other common GNU distros. If including > /usr/bin/env by default is not the best solution to the problem, > perhaps we can find a better solution. > > I suggest we add the "guix shebang" command, which takes a script and > returns a script with a shebang pointing to the proper source, like > what 'patch-shebangs build phase does to all the scripts in the build > source. It could replace the input script (perhaps when given the -- > replace option) or it could put the resulting script in the store and > accept the --root= option. Would “guix shebang” modify the script, or would it be used as the shebang? Either way, I’m not sure it’d really solve the initial use case very well (the initial request was to be able to run scripts unmodified, AIUI.) Thanks, Ludo’. ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-08 21:48 ` Ludovic Courtès @ 2019-09-08 23:53 ` Jesse Gibbons 0 siblings, 0 replies; 23+ messages in thread From: Jesse Gibbons @ 2019-09-08 23:53 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel Hello, On Sun, 2019-09-08 at 23:48 +0200, Ludovic Courtès wrote: > Hi, > > Jesse Gibbons <jgibbons2357@gmail.com> skribis: > > > If I might chip in here to try to make this discussion a little > > more > > productive, a user suggested /usr/bin/env should be added by > > default[0] > > to solve a problem[1]. In summary, the user wanted to have a > > standard > > for scripting in guile and other common GNU distros. If including > > /usr/bin/env by default is not the best solution to the problem, > > perhaps we can find a better solution. > > > > I suggest we add the "guix shebang" command, which takes a script > > and > > returns a script with a shebang pointing to the proper source, like > > what 'patch-shebangs build phase does to all the scripts in the > > build > > source. It could replace the input script (perhaps when given the > > -- > > replace option) or it could put the resulting script in the store > > and > > accept the --root= option. > > Would “guix shebang” modify the script, or would it be used as the > shebang? I suppose it could work either way. Since the scripts are intended to be modified by the audience[1], it would be easier to have a command to run as little as possible. On GuixSD, that would be as often as "guix pull && guix upgrade" updates the program that runs the script; on other systems it would be unnecessary. So modifying the script itself would make the process simpler. [1]https://lists.gnu.org/archive/html/help-guix/2019-09/msg00001.html > > Either way, I’m not sure it’d really solve the initial use case very > well (the initial request was to be able to run scripts unmodified, > AIUI.) I see two solutions to the problem: 1. Run the scripts unmodified (ideal). This can only be accomplished if the shebang can rely on a program in a standard location (i.e. /usr/bin/env). Adding /usr/bin/env by default currently is up for debate in this thread. 2. Patch the shebang with a command that can be run as rarely as possible, ideally only once. If we keep /usr/bin/env out of %standard- services or %de then this is the last solution I can think of. It could be an inline awk or sed script (like the scripts throughout LFS), which would have to be pulled out every time a user has new script, or a guix command which would always be available to all users with this particular problem. Guix package is an immediate choice, but was rejected because it would make things more commplicated[1], not to mention simpler scripts are probably shorter than a package definition. The simplest solution here would be something like "guix shebang". [1] https://lists.gnu.org/archive/html/help-guix/2019-09/msg00001.html I have no preference which solution is used, but if /usr/bin/env is not available in a build environment, and we can find a way to detect calls to programs in standard locations and patch them when we build them, I know of no reason not to include /usr/bin/env by default. If anyone has a fourth solution, I would love to see it. > Thanks, > Ludo’. -- -Jesse ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-06 23:21 ` Mark H Weaver 2019-09-07 5:05 ` Jesse Gibbons 2019-09-07 10:06 ` Tobias Geerinckx-Rice @ 2019-09-08 22:19 ` Tobias Geerinckx-Rice 2 siblings, 0 replies; 23+ messages in thread From: Tobias Geerinckx-Rice @ 2019-09-08 22:19 UTC (permalink / raw) To: guix-devel [-- Attachment #1: Type: text/plain, Size: 247 bytes --] Guix, For the record, I've since restored this commit on master. The Guix project is certainly not lacking in mailing lists or other communication channels; I'd appreciate it if the git commit history weren't (ab)used as such. Thanks, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-06 15:54 ` Tobias Geerinckx-Rice 2019-09-06 23:21 ` Mark H Weaver @ 2019-09-06 23:47 ` Mark H Weaver 2019-09-07 8:54 ` Tobias Geerinckx-Rice 2019-09-07 14:41 ` Marius Bakke 2 siblings, 1 reply; 23+ messages in thread From: Mark H Weaver @ 2019-09-06 23:47 UTC (permalink / raw) To: Tobias Geerinckx-Rice; +Cc: guix-devel Tobias Geerinckx-Rice <me@tobias.gr> writes: > Christopher Baines 写道: >> This seems to me like quite a big change, and I'd be interested in >> knowing what your motivation was [1]? > > It's not, really. It's equivalent to the impure /bin/sh that Guix > Systems already provide, but actually useful: ‘use #!/usr/bin/env, not > #!/bin/sh!’ was already a mantra when I wrote my first shell script — > and I'm not that young. > > There's no good argument for not being able to run the vast majority > of well-written scripts, out of the box, on Guix Systems. It shows some hubris for you to declare that "there's no good argument". How did you come to that conclusion? Did you assume that there must not be any good argument against it because you couldn't think of one? We discussed this long ago and decided against including /usr/bin/env. Therefore, I reverted your commit for now. If you like, we can start another discussion about it, and I'll restate my arguments against it when I find the energy. Thanks, Mark ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-06 23:47 ` Mark H Weaver @ 2019-09-07 8:54 ` Tobias Geerinckx-Rice 0 siblings, 0 replies; 23+ messages in thread From: Tobias Geerinckx-Rice @ 2019-09-07 8:54 UTC (permalink / raw) To: Mark H Weaver; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1083 bytes --] Mark, I'm going to disregard the ad-hom; energy is indeed precious for all of us. I am disappointed that you cho(o)se to respond in this manner, and after the fact. Promptly reverting patches you disagree with is a privilege that few can afford. An equally forceful response in May would have been much more appreciated. Mark H Weaver 写道: > How did you come to that conclusion? Did you assume that there > must not > be any good argument against it because you couldn't think of > one? :-/ What do you think? > We discussed this long ago and decided against including > /usr/bin/env. Could you link to this decision? My duckduckfoo is lacking, but please remember that I read the mailing lists too. I am aware only of previous discussions[0][1] in which you didn't participate (there is a reference to a 2015 IRC comment but that's long since gc'd). Kind regards, T G-R [0]: https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00414.html [1]: https://lists.gnu.org/archive/html/guix-devel/2017-02/msg00205.html [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-06 15:54 ` Tobias Geerinckx-Rice 2019-09-06 23:21 ` Mark H Weaver 2019-09-06 23:47 ` Mark H Weaver @ 2019-09-07 14:41 ` Marius Bakke 2019-09-07 17:56 ` Ricardo Wurmus 2 siblings, 1 reply; 23+ messages in thread From: Marius Bakke @ 2019-09-07 14:41 UTC (permalink / raw) To: Tobias Geerinckx-Rice, Christopher Baines; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1141 bytes --] Tobias Geerinckx-Rice <me@tobias.gr> writes: > Christopher, > > Christopher Baines 写道: >> This seems to me like quite a big change, and I'd be interested >> in >> knowing what your motivation was [1]? > > It's not, really. It's equivalent to the impure /bin/sh that Guix > Systems already provide, but actually useful: ‘use > #!/usr/bin/env, not #!/bin/sh!’ was already a mantra when I wrote > my first shell script — and I'm not that young. > > There's no good argument for not being able to run the vast > majority of well-written scripts, out of the box, on Guix Systems. If you are on Guix System and find that you need /usr/bin/env, you are already a "power user": you are venturing outside of what is provided by Guix alone. At that point you are expected to read the manual. Grepping for /usr/bin/env there will show you exactly what you need to do. Or perhaps you decide that it would be better to create a G-exp or package for the script. For running arbitrary scripts we have 'guix environment': perhaps it would make sense to add /usr/bin/env to `guix environment --container`? [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-07 14:41 ` Marius Bakke @ 2019-09-07 17:56 ` Ricardo Wurmus 2019-09-08 11:55 ` Konrad Hinsen ` (2 more replies) 0 siblings, 3 replies; 23+ messages in thread From: Ricardo Wurmus @ 2019-09-07 17:56 UTC (permalink / raw) To: mbakke; +Cc: guix-devel Hey Marius, > If you are on Guix System and find that you need /usr/bin/env, you are > already a "power user": you are venturing outside of what is provided by > Guix alone. I don’t follow this argument. Using a custom script with a /usr/bin/env shebang is pretty common. You don’t need to be a power user for that, and certainly not a *Guix* power user. On the other hand I’d like to point out that pretty much all defaults we provide in system services can be overridden — and that’s where it helps being an advanced user. This is true for things like the desktop services (which aim to make setting up a generic desktop system easy and non-surprising), but also for every other service. Personally, I think it’s a good idea to default to having /usr/bin/env shebangs just work on Guix Systems. The argument that /usr/bin/env could make software work by accident when testing on a Guix System is not very convincing to me. We don’t have /bin/sh or /usr/bin/env in the build environment. Software behaviour is also affected by the presence of /usr, /lib, /bin, etc, and these can all exist at runtime. We assume that building in an isolated environment is usually sufficient; and yet we sometimes find that applications behave differently when run inside of containers (e.g. applications that call out to coreutils that are usually available in a normal system). With the same reasoning we could argue against having coreutils on PATH. This is not an exaggeration: R depended on coreutils to be on PATH at runtime and we only found out when we ran it in a container without coreutils. Am I missing something? -- Ricardo ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-07 17:56 ` Ricardo Wurmus @ 2019-09-08 11:55 ` Konrad Hinsen 2019-09-08 18:31 ` Hartmut Goebel 2019-09-08 22:07 ` Ludovic Courtès 2019-09-09 1:37 ` Chris Marusich 2 siblings, 1 reply; 23+ messages in thread From: Konrad Hinsen @ 2019-09-08 11:55 UTC (permalink / raw) To: guix-devel Hi Ricardo and everyone else, > Using a custom script with a /usr/bin/env shebang is pretty common. You > don’t need to be a power user for that, and certainly not a *Guix* power > user. I definitely agree with this. In my work environment, it is very common for people to distribute shell or Python scripts with a /usr/bin/env shebang line, together with the instructions "make executable and put on your $PATH". Most of my colleagues can handle those instructions, but wouldn't consider themselves power users. Konrad. ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-08 11:55 ` Konrad Hinsen @ 2019-09-08 18:31 ` Hartmut Goebel 0 siblings, 0 replies; 23+ messages in thread From: Hartmut Goebel @ 2019-09-08 18:31 UTC (permalink / raw) To: guix-devel Am 08.09.19 um 13:55 schrieb Konrad Hinsen: > Hi Ricardo and everyone else, > >> Using a custom script with a /usr/bin/env shebang is pretty common. You >> don’t need to be a power user for that, and certainly not a *Guix* power >> user. > > I definitely agree with this. In my work environment, it is very > common for people to distribute shell or Python scripts with a > /usr/bin/env shebang line, […] I also support adding a ‘/usr/bin/env’ service and even make it a default. In my daily work, I have many scripts which do not care about which version of sh/bash/python/python3 is used. These scripts are placed in some (small) project's directory and there is absolutely no need for "installing" them. Another use-case is when developing software: E.g. scripts for maintaining the vcs-contolled files, like updating the copyright year. These scripts are managed by the version control system, shall run from the development tree on envery developers machine and may not even get installed when installing the software as a guix package. -- Regards Hartmut Goebel | Hartmut Goebel | h.goebel@crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible | ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-07 17:56 ` Ricardo Wurmus 2019-09-08 11:55 ` Konrad Hinsen @ 2019-09-08 22:07 ` Ludovic Courtès 2019-09-09 7:01 ` Bengt Richter 2019-09-09 1:37 ` Chris Marusich 2 siblings, 1 reply; 23+ messages in thread From: Ludovic Courtès @ 2019-09-08 22:07 UTC (permalink / raw) To: Ricardo Wurmus; +Cc: guix-devel Hi, Ricardo Wurmus <rekado@elephly.net> skribis: > Using a custom script with a /usr/bin/env shebang is pretty common. You > don’t need to be a power user for that, and certainly not a *Guix* power > user. Like I wrote in <https://issues.guix.gnu.org/issue/35910#2> and in the message it refers to, although I was initially mildly reluctant to having /usr/bin/env by default, I’ve come to think that lack of /usr/bin/env is a gratuitous annoyance—not to me of course, but to newcomers as we’ve seen repeatedly, be they seasoned GNU/Linux users or not. With that in mind, adding /usr/bin/env by default is probably a good move. Now, we can add a snippet in the manual with the ‘modify-services’ trick to remove /usr/bin/env. :-) > The argument that /usr/bin/env could make software work by accident when > testing on a Guix System is not very convincing to me. We don’t have > /bin/sh or /usr/bin/env in the build environment. Software behaviour is > also affected by the presence of /usr, /lib, /bin, etc, and these can > all exist at runtime. We assume that building in an isolated > environment is usually sufficient; and yet we sometimes find that > applications behave differently when run inside of containers > (e.g. applications that call out to coreutils that are usually available > in a normal system). Yeah. Well anyway, if we take a step back, we’re talking about a really tiny issue in the grand scheme of things, and it’s certainly not worth losing our hair over it. :-) Thanks, Ludo’. ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-08 22:07 ` Ludovic Courtès @ 2019-09-09 7:01 ` Bengt Richter 2019-09-09 8:13 ` Ludovic Courtès 0 siblings, 1 reply; 23+ messages in thread From: Bengt Richter @ 2019-09-09 7:01 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel On +2019-09-09 00:07:10 +0200, Ludovic Courtès wrote: > Hi, > > Ricardo Wurmus <rekado@elephly.net> skribis: > > > Using a custom script with a /usr/bin/env shebang is pretty common. You > > don’t need to be a power user for that, and certainly not a *Guix* power > > user. > > Like I wrote in <https://issues.guix.gnu.org/issue/35910#2> and in the > message it refers to, although I was initially mildly reluctant to > having /usr/bin/env by default, I’ve come to think that lack of > /usr/bin/env is a gratuitous annoyance—not to me of course, but to > newcomers as we’ve seen repeatedly, be they seasoned GNU/Linux users or > not. > > With that in mind, adding /usr/bin/env by default is probably a good move. > Hi Ludo, I may be one of those (over-) seasoned (past best-before) users you mention :) -- but with all due respect, is this not a compromise of the fundamental idea of guix _transactional_ package management? Or did I misunderstand? I thought the idea was that each mod to the system drew one unique transaction-arc from current to next state (whether the mod was by guix install, guix pull, or guix whatever) -- with the ideal goal of being able to walk the graph transactionally back to any other state, with no loose ends. ISTM that the current state defining the behaviour of my system includes the various config files such as ~/.bash_profile and ~/.guix-profile and ~/.emacs.d/* and all the rest, that programs read to condition their behaviour. Not only that, but the whole deep tree of references used -- including scripts and programs called in the body of scripts, not just in the hash-bang line. Does that not mean that, ideally :) the particular state of such referenced entities ought to be captured in a closure belonging to a particular generation, for that generation's sovereign use? Implementation optimization is another matter. Things that in practice don't change much could be shared COW entities, I guess? I certainly agree with the goal of being able to share scripts without manual changes, such as what a friend might attach to or include in an email, or what one might copy/paste from a browser view of gitlab contents, etc. But not at the price of fundamental compromises :) Could emacs grow an "M-x pack-region-as" command to produce something that could be installed with guix install, automatically taking care of name collisions with existing foo to install foo-from-origin-mnemonic? Then modding your system would produce a proper generation and could be controlled. If there are no tools to do things safely with pure transactions the result will IME (doing it to myself :) be an unholy mess of unpredictable future error messages with no easy way to figure out what happened, and lots of rewrite work to make everything play nicely together for real. IMO "works" "most of the time" is not a good rationale for compromising fundamental principles. I see this as a version of the pythonic (see python -c 'import this') argument that "pacticality beats purity". Yes it does, but IMO _only_ in emergencies -- because if left to persist, each emergency hack adds to an eventual rats-nest of tangled dependencies for which there is no "revert" but painful manual analysis and re-implemention. BTW, is there a guixian version of "python -c import this" ? "guix describe this"? ;-) > Now, we can add a snippet in the manual with the ‘modify-services’ trick > to remove /usr/bin/env. :-) > > > The argument that /usr/bin/env could make software work by accident when > > testing on a Guix System is not very convincing to me. We don’t have > > /bin/sh or /usr/bin/env in the build environment. Software behaviour is > > also affected by the presence of /usr, /lib, /bin, etc, and these can > > all exist at runtime. We assume that building in an isolated > > environment is usually sufficient; and yet we sometimes find that > > applications behave differently when run inside of containers > > (e.g. applications that call out to coreutils that are usually available > > in a normal system). > > Yeah. > > Well anyway, if we take a step back, we’re talking about a really tiny > issue in the grand scheme of things, and it’s certainly not worth losing > our hair over it. :-) > > Thanks, > Ludo’. > Here follows an example of a script one might receive in an email from a friend ;-) What automation could be brought to bear to include this safely and transactionally into your system to try? As a tool that could be used by a sender or by the receiver. It shows unicode information about characters in its command line arguments or piped in split by whitespace, e.g., (with control char for good measure :) Invoked like: unicode-info Ludovic Courtès $(echo -e "\x07") "Ludovic": glyph codepoint .....int name... _L_ +U00004c 76 LATIN CAPITAL LETTER L _u_ +U000075 117 LATIN SMALL LETTER U _d_ +U000064 100 LATIN SMALL LETTER D _o_ +U00006f 111 LATIN SMALL LETTER O _v_ +U000076 118 LATIN SMALL LETTER V _i_ +U000069 105 LATIN SMALL LETTER I _c_ +U000063 99 LATIN SMALL LETTER C "Courtès": glyph codepoint .....int name... _C_ +U000043 67 LATIN CAPITAL LETTER C _o_ +U00006f 111 LATIN SMALL LETTER O _u_ +U000075 117 LATIN SMALL LETTER U _r_ +U000072 114 LATIN SMALL LETTER R _t_ +U000074 116 LATIN SMALL LETTER T _è_ +U0000e8 232 LATIN SMALL LETTER E WITH GRAVE _s_ +U000073 115 LATIN SMALL LETTER S "\a": glyph codepoint .....int name... _^G_ +U000007 7 ASCII bel, aka #\alarm I used /usr/bin/env in the hash-bang which let me use the -S option (which I wonder if guile couldn't be taught to emulate if called directly instead of via env, BTW) Sorry if this is an inappropriate way to pass on a jelly-bean... Regards, Bengt Richter Oh, gpl3+ on the following, forgot to edit it in ;-/ ------------------------------------------------ #!/usr/bin/env -S guile -e unicode-info -s !# (use-modules (ice-9 unicode)) (use-modules (ice-9 format)) (use-modules (ice-9 regex)) (use-modules (ice-9 rdelim)) ;;(use-modules (ice-9 textual-ports)) ;; <ESC> 1 <ESC> ! printf -v cc "\\\x%02x" {0..32};echo -ne "$cc"|od -a|cut -d ' ' -f2- ;; nul soh stx etx eot enq ack bel bs ht nl vt ff cr so si ;; dle dc1 dc2 dc3 dc4 nak syn etb can em sub esc fs gs rs us ;; sp ;; 0000041 ;;;; ctl-names from od -a -- see above <ESC>... emacs shell command to capture names (define ctl-names (map cons (iota 33) (map match:substring (list-matches "[a-z]+" (string-append "nul soh stx etx eot enq ack bel bs ht nl vt ff cr so si " "dle dc1 dc2 dc3 dc4 nak syn etb can em sub esc fs gs rs us sp " ))))) (define (show-char c) (begin (let*((c_int (char->integer c)) (glyph_c (format #f "~:c" c))) (cond ((char<? c #\040) ;;(char=? c #\177));; ascii control (begin (let*((c_name (cdr (assv c_int ctl-names)))) (format #t ; glyph codepoint .....int name... " _~:c_ +U~6,'0X ~8,d ASCII ~a, aka ~:s\n" c c_int c_int c_name c )))) (else (begin (let*((glyph_a (format #f "_~c_" c)) (c_formal (char->formal-name c)) (glyph_a (if (not c_formal) "n/a" glyph_a)) (big_glyph (>= (string-length glyph_a) 4)) (glyph_out (if big_glyph "see->" glyph_a))) (begin (format #t ; glyph codepoint .....int name... " ~4,a +U~6,'0X ~8,d ~a \n" glyph_out c_int c_int c_formal))))))))) (define (show-str s) (begin (format #t "\n~s:\n glyph codepoint .....int name...\n" s) (map show-char (string->list s)))) (define (strings-from-readlines p) (let lp ((line (read-delimited "\n" p 'concat)) (slist '())) (if (eof-object? line) slist (lp (read-delimited "\n" p 'concat) (append slist (map match:substring (list-matches "([ \t\f\n]*|[^ \t\f\n]+)[\n]?" line))))))) (define (unicode-info args) (let*((as (cdr args)) (ss (if (pair? as) as (strings-from-readlines (current-input-port))))) (map show-str ss))) ------------------------------------------------ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-09 7:01 ` Bengt Richter @ 2019-09-09 8:13 ` Ludovic Courtès 0 siblings, 0 replies; 23+ messages in thread From: Ludovic Courtès @ 2019-09-09 8:13 UTC (permalink / raw) To: Bengt Richter; +Cc: guix-devel Hi Bengt, Bengt Richter <bokr@bokr.com> skribis: > On +2019-09-09 00:07:10 +0200, Ludovic Courtès wrote: [...] >> Like I wrote in <https://issues.guix.gnu.org/issue/35910#2> and in the >> message it refers to, although I was initially mildly reluctant to >> having /usr/bin/env by default, I’ve come to think that lack of >> /usr/bin/env is a gratuitous annoyance—not to me of course, but to >> newcomers as we’ve seen repeatedly, be they seasoned GNU/Linux users or >> not. >> >> With that in mind, adding /usr/bin/env by default is probably a good move. >> > > Hi Ludo, > > I may be one of those (over-) seasoned (past best-before) users you mention :) > -- but with all due respect, is this not a compromise of the fundamental > idea of guix _transactional_ package management? No it’s not. It really doesn’t change anything. First, you can always opt out—the discussion was about whether it should remain opt-in, or whether it should become opt-out. Second, and more importantly: packages (“derivations”) are still built in an isolated environment that does not and will never contain /usr/bin/env. Sorry I’m not replying to your other points now, but I hope it clarifies things! Thanks, Ludo’. ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: 01/01: services: Add ‘/usr/bin/env’ special file. 2019-09-07 17:56 ` Ricardo Wurmus 2019-09-08 11:55 ` Konrad Hinsen 2019-09-08 22:07 ` Ludovic Courtès @ 2019-09-09 1:37 ` Chris Marusich 2 siblings, 0 replies; 23+ messages in thread From: Chris Marusich @ 2019-09-09 1:37 UTC (permalink / raw) To: Ricardo Wurmus; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 2028 bytes --] Hi everyone, Ricardo Wurmus <rekado@elephly.net> writes: > Using a custom script with a /usr/bin/env shebang is pretty common. You > don’t need to be a power user for that, and certainly not a *Guix* power > user. > > [...] > > Personally, I think it’s a good idea to default to having /usr/bin/env > shebangs just work on Guix Systems. > > [...] > > With the same reasoning we could argue against having coreutils on PATH. > This is not an exaggeration: R depended on coreutils to be on PATH at > runtime and we only found out when we ran it in a container without > coreutils. I agree. At first, I thought I could do without /usr/bin/env, but I always end up installing it because scripts that others share with me frequently use it, and it's just too painful to have to patch them all or package up those scripts in Guix package definitions. I encounter scrips like this frequently enough that I've decided I want /usr/bin/env. Ludovic Courtès <ludo@gnu.org> writes: > Like I wrote in <https://issues.guix.gnu.org/issue/35910#2> and in the > message it refers to, although I was initially mildly reluctant to > having /usr/bin/env by default, I’ve come to think that lack of > /usr/bin/env is a gratuitous annoyance—not to me of course, but to > newcomers as we’ve seen repeatedly, be they seasoned GNU/Linux users or > not. > > With that in mind, adding /usr/bin/env by default is probably a good move. > > Now, we can add a snippet in the manual with the ‘modify-services’ trick > to remove /usr/bin/env. :-) > > [...] > > Well anyway, if we take a step back, we’re talking about a really tiny > issue in the grand scheme of things, and it’s certainly not worth losing > our hair over it. :-) I feel the same way. Regardless of how we came to discuss it, I'm glad we've discussed the issue in this email thread, and I'm glad to hear that I'm not alone in changing my mind about /usr/bin/env. It's good to have it by default. -- Chris [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2019-09-09 8:13 UTC | newest] Thread overview: 23+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20190906102509.28951.2772@vcs0.savannah.gnu.org> [not found] ` <20190906102510.002BE21324@vcs0.savannah.gnu.org> 2019-09-06 10:36 ` 01/01: services: Add ‘/usr/bin/env’ special file Christopher Baines 2019-09-06 10:44 ` pelzflorian (Florian Pelz) 2019-09-06 10:47 ` pelzflorian (Florian Pelz) 2019-09-06 15:54 ` Tobias Geerinckx-Rice 2019-09-06 23:21 ` Mark H Weaver 2019-09-07 5:05 ` Jesse Gibbons 2019-09-07 7:52 ` Tobias Geerinckx-Rice via Development of GNU Guix and the GNU System distribution. 2019-09-07 15:33 ` Jesse Gibbons 2019-09-07 10:06 ` Tobias Geerinckx-Rice 2019-09-07 15:03 ` Jesse Gibbons 2019-09-08 21:48 ` Ludovic Courtès 2019-09-08 23:53 ` Jesse Gibbons 2019-09-08 22:19 ` Tobias Geerinckx-Rice 2019-09-06 23:47 ` Mark H Weaver 2019-09-07 8:54 ` Tobias Geerinckx-Rice 2019-09-07 14:41 ` Marius Bakke 2019-09-07 17:56 ` Ricardo Wurmus 2019-09-08 11:55 ` Konrad Hinsen 2019-09-08 18:31 ` Hartmut Goebel 2019-09-08 22:07 ` Ludovic Courtès 2019-09-09 7:01 ` Bengt Richter 2019-09-09 8:13 ` Ludovic Courtès 2019-09-09 1:37 ` Chris Marusich
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.