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