From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Egger Subject: Re: [PATCH] tools: python portability fixes Date: Tue, 4 Aug 2009 14:33:13 +0200 Message-ID: <200908041433.13561.Christoph.Egger@amd.com> References: <200907231558.12957.Christoph.Egger@amd.com> <200907281427.39344.Christoph.Egger@amd.com> <19064.3657.53607.963406@mariner.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <19064.3657.53607.963406@mariner.uk.xensource.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian Jackson Cc: "xen-devel@lists.xensource.com" , Keir Fraser List-Id: xen-devel@lists.xenproject.org On Tuesday 04 August 2009 12:32:41 Ian Jackson wrote: > Christoph Egger writes ("Re: [PATCH] tools: python portability fixes"): > > On Tuesday 28 July 2009 11:55:59 Ian Jackson wrote: > > > While I'm here, though: you keep mentioning this as if there was > > > something wrong with this. I think having the Xen build system depend > > > on bash being installed is absolutely fine. > > > > On NetBSD, bash is a third-party package. > > scripts having #!/bin/bash fail with "/bin/bash: No such file or > > directory" The bourne shell (#!/bin/sh) is mighty enough to not require > > bashism. > > I agree that it is sensible not to make scripts bash-specific for no > reason. However, there are quite a few things that are much easier to > do in bash and require enormous amounts of pratting about to do in > POSIX sh. > > Also, if we write #!/bin/sh at the top of the script, we get > complaints from Solaris people if our script is not portable to the > astonishingly ancient and crusty Solaris /bin/sh. The build system should call shell scripts via $(SHELL). On Solaris, $(SHELL) points to /bin/bash . > I don't want to get into NetBSD's decision to make bash be `a third > party package' (whatever that means), that means, it's not part of the base system. > but surely there are plenty of things in the Xen build system > that are `third party packages'. You can't build Xen without > hg and git and texinfo and GNU make and so on. > It seems to me that bash is much less of an imposition. Actually the opposite is the case. bash as a shell is special in how it is used. You don't type /bin/hg or /bin/git but you type #!/bin/bash in scripts and that is where it fails. The portable way is to make it work with POSIX sh and call it with $(SHELL) (see above). Christoph -- ---to satisfy European Law for business letters: Advanced Micro Devices GmbH Karl-Hammerschmidt-Str. 34, 85609 Dornach b. Muenchen Geschaeftsfuehrer: Thomas M. McCoy, Giuliano Meroni Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen Registergericht Muenchen, HRB Nr. 43632