From owner-freebsd-current@FreeBSD.ORG Thu Sep 25 16:57:28 2014 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 76671EAA; Thu, 25 Sep 2014 16:57:28 +0000 (UTC) Received: from mx0.gentlemail.de (mx0.gentlemail.de [IPv6:2a00:e10:2800::a130]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F22FFE3E; Thu, 25 Sep 2014 16:57:27 +0000 (UTC) Received: from mh0.gentlemail.de (ezra.dcm1.omnilan.net [78.138.80.135]) by mx0.gentlemail.de (8.14.5/8.14.5) with ESMTP id s8PGvOqR005802; Thu, 25 Sep 2014 18:57:24 +0200 (CEST) (envelope-from h.schmalzbauer@omnilan.de) Received: from titan.inop.mo1.omnilan.net (titan.inop.mo1.omnilan.net [IPv6:2001:a60:f0bb:1::3:1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mh0.gentlemail.de (Postfix) with ESMTPSA id 5C97A34D1; Thu, 25 Sep 2014 18:57:24 +0200 (CEST) Message-ID: <54244973.8040907@omnilan.de> Date: Thu, 25 Sep 2014 18:57:23 +0200 From: Harald Schmalzbauer Organization: OmniLAN User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; de-DE; rv:1.9.2.8) Gecko/20100906 Lightning/1.0b2 Thunderbird/3.1.2 MIME-Version: 1.0 To: Ian Lepore Subject: Re: installworld broken - osreldate.h: permission denied References: <20130928130920.GA1318@devbox.vnode.local> <1380388791.1197.335.camel@revolution.hippie.lan> In-Reply-To: <1380388791.1197.335.camel@revolution.hippie.lan> X-Enigmail-Version: 1.1.2 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig78AD1C38E19CE8E311537F2C" X-Greylist: ACL 119 matched, not delayed by milter-greylist-4.2.7 (mx0.gentlemail.de [78.138.80.130]); Thu, 25 Sep 2014 18:57:24 +0200 (CEST) X-Milter: Spamilter (Reciever: mx0.gentlemail.de; Sender-ip: 78.138.80.135; Sender-helo: mh0.gentlemail.de; ) Cc: current@freebsd.org, Joel Dahl X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2014 16:57:28 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig78AD1C38E19CE8E311537F2C Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Bez=FCglich Ian Lepore's Nachricht vom 28.09.2013 19:19 (localtime): > On Sat, 2013-09-28 at 15:09 +0200, Joel Dahl wrote: >> Hi, >> >> Fresh HEAD. installworld from read-only /usr/obj and /usr/src: >> >> /usr/src/include/iconv.h osreldate.h /usr/include >> install: osreldate.h: Permission denied >> *** Error code 71 >> >> Stop. >> make[4]: stopped in /usr/src/include >> *** Error code 1 >> >> Everything was working fine 2 weeks ago, so it's a recent breakage. >> > Okay, I just accidentally created conditions for this error on my > system... I checked in a change to newvers.sh while a buildworld was > running, which led to a situation where newvers.sh was newer than > osreldate.h at the end of the buildworld. Then an installworld tried t= o > regenerate osreldate.h due to its dependency on newvers.sh, which would= > fail if the obj was readonly at that point. > > I think we could see if something similar applies for you if you use > this command: > > make -dm installworld SUBDIR_OVERRIDE=3Dinclude > > And we'd be looking for the end of the output to be something like: > > Examining _libiconv_compat.h... > modified 10:51:18 Sep 28, 2013...up-to-date > Make_Update: _libiconv_compat.h > inspect parent buildincludes: flags 0, type 18001, made 0, unmade 95 - = not needed > inspect parent _INCSINS: flags 9, type b000001, made 1, unmade 1 - unma= de children > Examining osreldate.h... > modified 10:39:21 Sep 28, 2013...modified before source /local/build/st= aging/freebsd/head/src/include/../sys/conf/newvers.sh...out-of-date > env ECHO=3D"echo" MAKE=3D"/local/build/staging/freebsd/head/obj/local/= build/staging/freebsd/head/src/make.i386/bmake" NEWVERS_SH=3D/local/buil= d/staging/freebsd/head/src/include/../sys/conf/newvers.sh PARAM_H=3D/loc= al/build/staging/freebsd/head/src/include/../sys/sys/param.h SYSDIR=3D/l= ocal/build/staging/freebsd/head/src/include/../sys sh /local/build/stagi= ng/freebsd/head/src/include/mk-osreldate.sh > env: not found > *** [osreldate.h] Error code 127 > > The "env: not found" is what I got instead of a permission denied, and > probably has something to do with me cross-building amd64 10.0 from an > i386 8.x machine. I think that's where you'd see the permission error.= > > If the same sort of thing is happening for you, then all that's left is= > to figure out why osreldate.h is out of date at install time, and how t= o > handle things if that's the case. Thanks for your suggestion how to best find out what's going on. I have the same problem you observed (env: not found), not the permission problem the thread opener had. For any reason, not relevant at this point, my ${src}/sys/conf/newvers.sh is newer than 'include/osreldate.h' under $OBJDIRPREFIX/i386.i386/=85. Now in 'include/Makefile', "sh ${MK_OSRELDATE_SH}" should be called by 'env' in target 'osreldate.h vers.c:'. Problem is, that PATH has sevaral bin-sbin directories under "$OBJDIRPREFIX/=85/tmp/" _and_ "$INSTALLTMP", and none of them provides '= env'. The latter is filled with target 'distributeworld installworld:' in Makefile.inc1, with $ITOOLS. The following additional tools are missing in ITOOLS to make recreating osreldate.h work at installworld stage: env, hostname, mktemp and touch So a patch to work arround that issue looks like this: --- src/Makefile.inc1.orig 2014-09-25 17:36:16.000000000 +0200 +++ src/Makefile.inc1 2014-09-25 17:47:14.000000000 +0200 @@ -697,9 +697,9 @@ =2Eendif ITOOLS=3D [ awk cap_mkdb cat chflags chmod chown \ - date echo egrep find grep id install ${_install-info} \ - ln lockf make mkdir mtree ${_nmtree_itools} mv pwd_mkdb \ - rm sed sh sysctl test true uname wc ${_zoneinfo} + date echo egrep env find grep hostname id install ${_install-info} \ + ln lockf make mkdir mktemp mtree ${_nmtree_itools} mv pwd_mkdb \ + rm sed sh sysctl test touch true uname wc ${_zoneinfo} # # distributeworld I have no idea if there's a better way, but if these tools are not to be added, the check for outdated osreldate.h should be disabled because recreation at install stage is not possible without. At least this is true for compiling 9.3-i386 on 10-stable-amd64. -Harry --------------enig78AD1C38E19CE8E311537F2C Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (FreeBSD) iEYEARECAAYFAlQkSXMACgkQLDqVQ9VXb8grkgCfW100EBv7TJLxsa4ac3UYhJe2 MnEAn2E0EVb9LuO+uCkfUJfgJdGA0SBS =IPPy -----END PGP SIGNATURE----- --------------enig78AD1C38E19CE8E311537F2C--