/usr/src/sys/conf/newvers.sh, SYSDIR set to wrong directory.

From: Kimmo Paasiala <kpaasial_at_gmail.com>
Date: Wed, 12 Dec 2012 18:14:35 +0200
Hello,

My 9-STABLE buildworld broke in a very inexplicable way,  I was
getting an error on /usr/src/include/osreldate.h that I couldn't
figure out until I started looking at the sys/conf/newvers.sh and what
it does. It turned out that the thing that broke my buildworld was
having .git directory at the root directory of the system because I
recently started using GIT to track the configuration files.

I added some debug echos to the newvers.sh and I found out it's
setting SYSDIR to /bin/.. which in turn causes the newvers.sh to set
the gitdir to /.git and that seems to break the logic in newvers.sh.

Isn't SYSDIR supposed to be set to the sys -subdirectory of the source
tree (/usr/src/sys default)?

I'm guessing the reason the SYSDIR gets set to /bin/.. is the line in
newvers.sh:

SYSDIR=$(dirname $0)/..

$0 is actually /bin/sh and not the path to newver.sh because the
newvers.sh is sourced by the Makefile in /usr/src/include instead of
executing it:

osreldate.h: ${.CURDIR}/../sys/conf/newvers.sh ${.CURDIR}/../sys/sys/param.h \
    ${.CURDIR}/Makefile
        _at_${ECHO} creating osreldate.h from newvers.sh
        _at_MAKE=${MAKE}; \
        PARAMFILE=${.CURDIR}/../sys/sys/param.h; \
        . ${.CURDIR}/../sys/conf/newvers.sh; \

Now the question is how to fix this?

-Kimmo
Received on Wed Dec 12 2012 - 15:14:36 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:33 UTC