Date: Thu, 23 Jan 2014 14:48:34 -0800 From: Peter Wemm <peter@wemm.org> To: John Baldwin <jhb@freebsd.org>, 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: <52E19C42.2030700@wemm.org> In-Reply-To: <201401231712.51610.jhb@freebsd.org> References: <201401221659.s0MGxrc7056036@svn.freebsd.org> <201401231503.42671.jhb@freebsd.org> <20140123212256.GA37334@admin.xzibition.com> <201401231712.51610.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 1/23/14, 2:12 PM, John Baldwin wrote: > 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.) FWIW, we do this at work and ran into the same problem. We do the same things that poudriere does, almost exactly. We added: "CAP_MKDB_ENDIAN= PWD_MKDB_ENDIAN=" to the "make DESTDIR=/stage distribution" phase. This currently works all the way back to stable/4. Is there a middle ground where we could only specify -l / -b in a cross build perhaps? -- Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com; KI6FJV UTF-8: for when a ' just won\342\200\231t do.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52E19C42.2030700>