Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 03 Dec 2013 00:52:47 +0900 (JST)
From:      Hiroki Sato <hrs@FreeBSD.org>
To:        gjb@FreeBSD.org
Cc:        src-committers@FreeBSD.org, svn-src-user@FreeBSD.org
Subject:   Re: svn commit: r258848 - user/hrs/releng/release
Message-ID:  <20131203.005247.163975247035953783.hrs@allbsd.org>
In-Reply-To: <20131202152054.GH1839@glenbarber.us>
References:  <20131202145103.GG1839@glenbarber.us> <20131203.001628.1233827032249325723.hrs@allbsd.org> <20131202152054.GH1839@glenbarber.us>

next in thread | previous in thread | raw e-mail | index | archive | help
----Security_Multipart(Tue_Dec__3_00_52_47_2013_010)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Glen Barber <gjb@FreeBSD.org> wrote
  in <20131202152054.GH1839@glenbarber.us>:

gj> On Tue, Dec 03, 2013 at 12:16:28AM +0900, Hiroki Sato wrote:
gj> >  Everything can be overridden by a configuration file regardless of
gj> >  whether envvars are honored even after this change.  What is the
gj> >  problem?  I do not see negative effect assuming a conf file is used.
gj> >
gj>
gj> This allows the host environment to accidentally pollute the build if
gj> something is not set in configuration file and unintentionally set in
gj> the builder's environment.
gj>
gj> It was why I specifically did not allow the environment to affect the
gj> build process.

 That problem is not solved by forcing variable assignments for the
 following two reasons:

 - A case that "something is not set in configuration file" can still
   cause unexpected failures because release.sh does not always set
   the reasonable default values.  A powerpc64 build fails, for
   example.

 - In the current release.sh, variables unintentionally set in the
   builder's environment still pollutes commands which run in
   release.sh when the variables are not set in the script but
   accepted by make or other utilities.  Catching all of the variables
   is quite difficult.

 So, clearing the envvars before running the script is needed even for
 the current release.sh to solve the problem.  "env -i" does it.  It
 is not unrealistic to assume that we can eliminate variables which
 are set unexpectedly.

 Anyway, I do not have a strong opinion if using FOO=A or : ${FOO:=A}.
 I agree that the latter assumes all of the envvars must be under
 control and it needs one more step than just invoking the script, and
 a leaked variable can break the build.  If you do not like it, I will
 change them with FOO=A.

-- Hiroki

----Security_Multipart(Tue_Dec__3_00_52_47_2013_010)--
Content-Type: application/pgp-signature
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (FreeBSD)

iEYEABECAAYFAlKcrM8ACgkQTyzT2CeTzy1afQCgvAxbI9bNK0IJ2R7J1cOO9YEW
NVkAoJKyXQ6GbZlt03241KAgO6FPHfb1
=Okf1
-----END PGP SIGNATURE-----

----Security_Multipart(Tue_Dec__3_00_52_47_2013_010)----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20131203.005247.163975247035953783.hrs>