Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jan 2014 17:12:51 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        Bryan Drewery <bryan@shatow.net>
Cc:        svn-src-head@freebsd.org, Glen Barber <gjb@freebsd.org>, svn-src-all@freebsd.org, src-committers@freebsd.org, David Chisnall <theraven@freebsd.org>
Subject:   Re: svn commit: r261031 - in head: . etc usr.sbin/etcupdate usr.sbin/mergemaster
Message-ID:  <201401231712.51610.jhb@freebsd.org>
In-Reply-To: <20140123212256.GA37334@admin.xzibition.com>
References:  <201401221659.s0MGxrc7056036@svn.freebsd.org> <201401231503.42671.jhb@freebsd.org> <20140123212256.GA37334@admin.xzibition.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday, January 23, 2014 4:22:56 pm Bryan Drewery wrote:
> On Thu, Jan 23, 2014 at 03:03:42PM -0500, John Baldwin wrote:
> > On Thursday, January 23, 2014 2:48:41 pm Bryan Drewery wrote:
> > > On Thu, Jan 23, 2014 at 02:39:14PM -0500, John Baldwin wrote:
> > > > On Thursday, January 23, 2014 10:42:36 am David Chisnall wrote:
> > > > > On 22 Jan 2014, at 22:36, Glen Barber <gjb@FreeBSD.org> wrote:
> > > > > 
> > > > > > It needs to use the build host version, because using (for example)
> > > > > > powerpc resulting binary won't work on and amd64 system.
> > > > > 
> > > > > If it's used as part of the build, then it should be part of the toolchain 
> > > > target and we should be using the version built there.
> > > > 
> > > > 'make distribute' is not a normal part of the build (it's not part of
> > > > buildworld or installworld).  Both mergemaster and etcupdate only run it
> > > > after an installworld has been performed, in which case an up-to-date
> > > > services_mkdb should already be installed.
> > > > 
> > > > Bryan, what are you running 'make distribute' for?  Is this to populate
> > > > a new jail from a world build?
> > > 
> > > Yes, poudriere uses this to create jails. It runs:
> > > 
> > > export TARGET_ARCH=...
> > > make buildworld
> > > make installworld DESTDIR=...
> > > make distrib-dirs DESTDIR=... DB_FROM_SRC=1
> > > make distribution DESTDIR=...
> > > 
> > > 
> > > No mergemaster or etc-update is ran, we just install all of the
> > > defaults.
> > 
> > Yes, but you are attemping to install a newer jail than the host, and strictly
> > speaking that isn't supported.  (Rather, we only guarantee that a jail will work
> > so long as its world is older or equal in age to the host.)
> 
> I am aware of *running* newer jails not being suppored, but *building*
> seems to be an absolute must to be supported. How else would you
> upgrade?

A normal upgrade does 'installworld' followed by some sort of /etc updating
tool.  It doesn't do 'make distribute'.  Also, this is related to why one
is not guaranteed to be able to do an 'installworld' unless you've booted into
the new kernel first (though it often works, and 'make distribute' also often
works, but often != always).

The thing is, there is no notion of cross-tools, etc. for things like
installworld and distribution.  We have always expected the host to have
ITOOLS that work.

Note that this exact situation has happened before back when cap_mkdb and
pwd_mkdb grew endianness flags for release cross-builds.  The pwd_mkdb
flag and the change to enable it in etc/Makefile were both made on the same
day.  (The cap_mkdb change was made earlier, but that appears to be more
a result of the testing cycle for cross-building releases than an
intentional delay.)

-- 
John Baldwin



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