From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: 01/01: services: Add =?utf-8?Q?=E2=80=98=2Fusr=2Fbin=2Fenv?= =?utf-8?Q?=E2=80=99?= special file. Date: Sat, 07 Sep 2019 19:56:58 +0200 Message-ID: <8736h8uh05.fsf@elephly.net> References: <20190906102509.28951.2772@vcs0.savannah.gnu.org> <20190906102510.002BE21324@vcs0.savannah.gnu.org> <87d0gdbtji.fsf@cbaines.net> <87mufhwhc6.fsf@nckx> <87d0gcgodz.fsf@devup.no> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:40175) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i6exW-0004LJ-Aq for guix-devel@gnu.org; Sat, 07 Sep 2019 13:57:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i6exV-0007NB-5q for guix-devel@gnu.org; Sat, 07 Sep 2019 13:57:14 -0400 Received: from sender4-of-o53.zoho.com ([136.143.188.53]:21320) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i6exU-0007M6-Dn for guix-devel@gnu.org; Sat, 07 Sep 2019 13:57:13 -0400 In-reply-to: <87d0gcgodz.fsf@devup.no> 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: mbakke@fastmail.com Cc: guix-devel@gnu.org 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=E2=80=99t follow this argument. Using a custom script with a /usr/bin/env shebang is pretty common. You don=E2=80=99t need to be a power user for that, and certainly not a *Guix* = power user. On the other hand I=E2=80=99d like to point out that pretty much all defaul= ts we provide in system services can be overridden =E2=80=94 and that=E2=80=99s w= here 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=E2=80=99s 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=E2=80=99t ha= ve /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