building CURRENT release on STABLE box

Igor Pokrovsky tiamat at comset.net
Thu Mar 18 19:49:14 PST 2004


On Thu, Mar 18, 2004 at 09:33:30AM +0200, Ruslan Ermilov wrote:
> On Thu, Mar 18, 2004 at 04:10:56AM +0000, Colin Percival wrote:
> > At 04:08 18/03/2004, Igor Pokrovsky wrote:
> > >I would like to to try building CURRENT release on STABLE (i386) box.
> > >Is it technically possible? If so, are there any caveats awaiting me?
> > 
> >   Not possible.  The release-building code needs to chroot into the
> > -CURRENT world, and that will fail if you're not running a -CURRENT
> > kernel.
> > 
> Actually, it should be well possible.  No, you don't need to chroot
> into the -CURRENT world.  Instead, a chroot is populated by a copy
> of your running world (4.9-STABLE).
> 
> Then snapshot building of -CURRENT looks pretty like you'd do a cross
> build of the -CURRENT world (actually, it does just that as the first
> step) plus a few additional steps, the most entertaining of them is
> creating bootable floppies.
> 
> I haven't checked it for a while (will do it shortly), but it was
> possible last year, and src/release/scripts/doFS.sh still has support
> for 4.x.

Thanks all for useful hints. The way Chris suggested really works.
Here is the exact steps I took to build CURRENT release on STABLE box:

mkdir /usr/src4
cvs -R co -rRELENG_4 -d/usr/src4 src
mkdir -p /usr/src5/release
cvs -R co -d/usr/src5/release release
cd /usr/src4
make buildworld
cd release
make -f /usr/src5/release/Makefile release \
	     CHROOTDIR=/home/build \
             CVSROOT=/home/ncvs \
             WORLD_FLAGS=-j4 \
             ALLLANG=no \
             MAKE_ISOS=yes \
             DOCDISTFILES=/usr/ports/distfiles \
             NO_PREFETCHDISTFILES=yes \
             NO_PF=yes

However build was interrupted two times because of minor errors,
which was very easy to fix. First of all I added NO_PF=yes to
skip checking of existance of proxy user (I don't need PF).
The following two patches are fixing build problems.

--- release/Makefile.old	Wed Feb  4 01:05:55 2004
+++ release/Makefile	Thu Mar 18 20:49:56 2004
@@ -1070,7 +1070,7 @@
 	    ${RD}/floppyset/${FLOPPYBASE} ${FLPSPLITSIZE} "${FLOPPYDESC}"
 	( splitfile=${SPLITDIR}/`basename ${SPLITFILE}`.split ; \
 	lines=`cat $${splitfile} | wc -l`; \
-	lines=$$((lines - 1)) ; \
+	lines=$$((${lines} - 1)) ; \
 	for line in `jot $$lines`; do \
 		file=`head -n $$(($${line} + 1)) $${splitfile} | tail -1 | cut -f 1 -d ' '` ; \
 		sh -e ${DOFS_SH} ${RD}/floppies/${FLOPPYBASE}$${line}.flp \

--- release/scripts/split-file.sh.old	Mon Jan 26 22:45:09 2004
+++ release/scripts/split-file.sh	Thu Mar 18 20:48:47 2004
@@ -35,5 +35,5 @@
 i=1
 for file in ${files}; do
 	echo `basename ${file}` "\"${DESCR} floppy ${i}\"" >> ${DEST}/${prefix}.split
-	i=$((i + 1))
+	i=$((${i} + 1))
 done

It looks like some changes were made to sh syntax in CURRENT?

-ip

-- 
Incompetence knows no barriers of time or place.


More information about the freebsd-stable mailing list