Subject: Re: bootstrap re-engineering status?
To: Simon Gerraty <sjg@juniper.net>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 11/11/2005 10:55:52
On Fri, 11 Nov 2005, Simon Gerraty wrote:

>> testing bootstrap on a system without pkgsrc installed anywhere, so
>> there is no mk.conf that could be causing a problem.
>
> I'd have to assume its either local changes (I don't mean yours),
> in pkgsrc.*bmake, or possibly something in pkgsrc/mk

The devel/bmake and bootstrap/bmake don't use the mk-20051104.

bootstrap/bmake uses the mk files as were already installed via the 
bootstrap. (I don't think I made any changes there.)

I made my own devel/mk include the mk files in devel/mk/files and tried 
using them for the bootstrap but had various failures. For example, on 
DragonFly, something made the DragonFly's native mk files take precedence 
and so X11BASE was always /usr/X11R6.

And the differences between three sets of mk files were too much for me to 
review: native /usr/share/mk, pkgsrc/devel/mk and pkgsrc/bootstrap/*/mk.

I will try again with this newest bmake and mk-20051104 and see how it 
works.

Soem of the related steps from the bootstrap/bootstrap:

If pkgsrc/bootstrap/mods/mk/$opsys.sys.mk exists then copy it to
$prefix/share/mk/sys.mk else use the mods/mk/generic.sys.mk.

Copies the  pkgsrc/bootstrap/bmake/mk/bsd.*.mk to $prefix/share/mk/.

If mods/mk/$opsys.bsd.lib.mk exists then copies it in place as bsd.lib.mk.

If mods/mk/$opsys.bsd.man.mk exists then copies it in place as bsd.man.mk.

If mods/mk/$opsys.bsd.own.mk exists, then uses it. Modifies the bsd.own.mk 
to set the root user, root group and $sysconfdir. Copies in place the 
bsd.own.mk file.

If mods/mk/$opsys.bsd.prog.m exists, then copies in place as bsd.prog.mk.

If mods/mk/$opsys.bsd.sys.mk exists, copies in place as bsd.sys.mk.

Then builds and installs bmake:

cd $wrkdir/bmake && env CPPFLAGS='$CPPFLAGS -I../../libnbcompat' LDFLA
GS='$LDFLAGS -L../../libnbcompat' LIBS='-lnbcompat' $shprog ./boot-strap 
-q -o $opsys --prefix=$prefix --sysconfdir=$sysconfdir --mksrc none 
--with-default-sys-path="$prefix/share/mk:/usr/share/mk:/usr/local/share/mk:/opt/share/mk")"

install-sh -c -o $user -g $group -m 755 $wrkdir/bmake/$opsys/bmake $prefix/bin/bmake

Should I jsut remove all the custom mk files from bootstrap and just use 
your mk-20051104?

Anyone else want to look at working on this too?

Over the past couple months, I have probably ran the bootstrap well over a 
hundred times on a few different platforms :)


  Jeremy C. Reed

  	  	 	 BSD News, BSD tutorials, BSD links
 	  	 	 http://www.bsdnewsletter.com/