Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Sep 2013 11:55:47 -0700
From:      Doug Ambrisko <ambrisko@ambrisko.com>
To:        Ian Lepore <ian@FreeBSD.org>
Cc:        freebsd-current@FreeBSD.org
Subject:   Re: Problem with r255775 include/mk-osreldate.sh
Message-ID:  <20130925185546.GA17895@ambrisko.com>
In-Reply-To: <1380133007.1197.209.camel@revolution.hippie.lan>
References:  <20130925175210.GA56575@ambrisko.com> <1380133007.1197.209.camel@revolution.hippie.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Sep 25, 2013 at 12:16:47PM -0600, Ian Lepore wrote:
| On Wed, 2013-09-25 at 10:52 -0700, Doug Ambrisko wrote:
| > I don't know if others have run into this but I hit a problem with
| > include/mk-osreldate.sh.  It does a set -e to exit on commands failing
| > and sources in sys/conf/newvers.sh to get various things set.
| > In newvers.sh it does a bunch of
| > 	<commmand>
| > 	if [ $? -eq 0 ]; then
| > to decide what to do when it passes or fails.  Unfortunately, when
| > it fails due to the "set -e" it just exits and doesn't do the
| > else clause.  For me I check out a svn tree then build in a chroot.
| > In the chroot svn was failing then not creating a osreldate.h
| > resulting in the build dying.  This happened on two different machines
| > of which I use this method.
| > 
| > Removing the set -e in mk-osreldate.sh "fixed" my problem.  It should
| > probably be reworked to not depend on set -e and print errors when things
| > fail.  I guess newvers.sh could be reworked to do
| > 	if <command> ; then
| > which should pass set -e.
| > 
| > What do folks think?  It would be good to get this fixed before MFC
| > and before 10 is released.
| 
| For such a "simple" little change, this sure has been problematic.
| There are as many ways for it to fail as there are ways to arrange
| checkout-and-build workflows, apparently.
| 
| I've been mostly inclined to stay away from any big changes in
| newvers.sh for fear of breaking it when it's used in some way I'm not
| familiar with (such as building a release).  Sticking with that theory,
| I'd be inclined to leave it alone again, and not push the 'set -e'
| problem into its world, and instead do something like the attached.  

Yes, I'd be nervous to touch newvers.sh as well.
 
| My thinking is that newvers.sh does a variety of things, only some of
| which are germane to the needs of mk-osreldate.h, so have mk-osreldate
| check for just what it needs, and let newvers.sh take care of its
| internal errors however it likes.

Index: include/mk-osreldate.sh
===================================================================
--- include/mk-osreldate.sh	(revision 255775)
+++ include/mk-osreldate.sh	(working copy)
@@ -25,8 +25,6 @@
 #
 # $FreeBSD$
 
-set -e
-
 CURDIR=$(pwd)
 ECHO=${ECHO:=echo}
 
@@ -37,6 +35,12 @@ ${ECHO} creating osreldate.h from newvers.sh
 
 export PARAMFILE="${PARAM_H:=$CURDIR/../sys/sys/param.h}"
 . "${NEWVERS_SH:=$CURDIR/../sys/conf/newvers.sh}"
+
+if [ -z "${COPYRIGHT}" -o -z "${RELDATE}" ] ; then
+    ${ECHO} "newvers.sh did not generate required information"
+    exit 1
+fi
+
 cat > $tmpfile <<EOF
 $COPYRIGHT
 #ifdef _KERNEL


Your patch worked for me.

Thanks,

Doug A.



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