before parsing the command line.
Move code to build include and libraries in a separate function,
so we can use the verbose flag for that.
Chang ownership of some directories so more of the build process
(namely, builds of include and libs) can be run without root
permission (we still depend on root permission to mount a memory
filesystem).
as well. This works by selecting "md" or "vn" depending on "uname -r"
output, so we can use the same script on -CURRENT and -STABLE.
Also included minor bugfixes and code cleanup.
Testers welcome, as this code has only been tested on -STABLE
(and for this reason I am doing an immediate MFC).
so as to make the "picobsd" script less version-specific.
Improve handling of cross-builds (which requires creation of
includes and libraries for the new source tree).
The "picobsd" script will not probably work on -current because it still
uses 'vn' instead of 'md', but i am commiting it anyways to keep it
in sync with the version in -stable.
I get a link error on in6addr_<something> and i cannot find the
symbol in any of the libraries. It might be my mistake, but in any
case the crunched binary would overflow the floppy, so...
This applies to -current only.
Make sure hints are statically compiled into the kernel,
because the bootloader is not available in picobsd and so the
hints file cannot be found at run time.
(This is kind of inconvenient if you have to handle non PnP devices,
but fortunately these days non-PnP ISA cards are disappearing...)
This must have to do with the use of devfs in -CURRENT, but i
have no idea when the devfs is actually mounted (is it a
side effect of mount -t nonfs or what ?) and when /dev/fd0c becomes
available.
For the time being, let's use this hack. Once I understand how devfs
works, this can be reverted back to the previous value, and also the
part of the build script which creates device entries can be nuked.
This is for -current only.
better place to handle dependencies.
Make another step at helping cross-compiling: when the user specifies
an alternate source tree, the script takes care of creating include
files and libraries for the new tree.
Furthermore, build and use a version of the "config" program which
matches the new sources.
It takes a long time to create libraries, and it might even not do
the right thing at once, there might be some dependencies that i
have forgotten. At any rate, with this code i have been able to
build a working picobsd image using -CURRENT sources on -STABLE
MFC after: 3 days
With these scripts i was able to build a _working_ image of a
bridge-like floppy image with a reasonable set of utilities
in it, despite the code size increase we have in 5.0
The scripts are slightly different from the previous ones especially
on the place where the kernel and binaries are built. Hopefully
this will not cause too much trouble to people (is there any???)
using the old scripts.
consist of contiguous bits in little endian format. Before the fix
the netmask of 0xfffffff0 (0xf0ffffff in little endian format) was
displayed /24 instead of /28.
Also, add a missing include.
Submitted by: Maxime Soule <Maxime.Soule@IPricot.com>
rc.conf: make the system recognise the MAC address and assign an IP
automatically from /etc/hosts (or ask the user)
sshd_config: don't do x11 forwarding.
Deprecate the "global" crunch.inc file and the CRUNCHFLAGS global build
options. Tools not policy. Move these global settings out into each
picobsd distribution.
a per program basis allowing a greater control on what is built.
The buildopts file contains Makefile lines of form:
# Anything added to OPTS is added to every build rule.
OPTS= -DNOPAM
# These should only be added to the build of user-ppp.
ppp_OPTS= -DNOKLDLOAD -DNOINET6 -DNONAT -DNOATM -DNOSUID \
-DHAVE_DES -DNORADIUS -DNOI4B -DNONETGRAPH
Really these should be added to crunch.inc, but that file is currently
optional, and if defined masks the global one. Next step will be to move
these global settings back out into the individual builds as OPTS, and
then migrate OPTS and prog_OPTS back into the local crunch.inc file.
Peter's new format, and I'd added hints files for each.
The build process uses the PICOBSD.hints file as well as the config,
and additionally builds with -DNO_MODULES. The build process
probably needs to be converted to use the 'buildkernel' method
instead of running config itself.
The kernels now compile. I've not been able to test the crunch
process however because it used the vn driver and there are no
/dev/vn device nodes under devfs yet. Maybe someone else could
give it a go.
Replace all in-tree uses with <sys/mouse.h> which repo-copied a few
moments ago from src/sys/i386/include/mouse.h by peter.
This is also the appropriate fix for exo-tree sources.
Put warnings in <machine/mouse.h> to discourage use.
November 15th 2000 the warnings will be converted to errors.
January 15th 2001 the <machine/mouse.h> files will be removed.
Replace all in-tree uses with necessary subset of <sys/{fb,kb,cons}io.h>.
This is also the appropriate fix for exo-tree sources.
Put warnings in <machine/console.h> to discourage use.
November 15th 2000 the warnings will be converted to errors.
January 15th 2001 the <machine/console.h> files will be removed.
build process in too many cases. Adding mtree to bootstrap-tools
to solve this breaks the upgrade path because mtree needs a
libc that has strtofflags and fflagstostr.
the building of the crunched binary.
I'll add examples when I add the post-include mechanism, since the
crunch.mk environment stomps on the pre-included crunch.inc's variables
at the moment.
objects, to simplify working with PicoBSD.
Add the ability to put make instructions in crunch.inc to pass to the
build process.
Now explicitly make the objects in our own object tree, since we want to
build the objects with our own defines, and allow this to occur in a
common object tree for all PicoBSD builds, if required. This is
controlled by the COMM_OBJ variable, for those who don't want this -
setting it to /usr/obj again will just pick up the objects from your
last make buildworld, as before.
for read-only src tree.
While I'm there:
1) Use kgzip, not kzip, since kzip certainly doesn't make bootable
kernels anymore. loader still isn't built separately, let alone without
forth support. This needs to be fixed.
2) Expand the mount/vnconfig examples to be the defacto way of making
sure the filesystems are mounted, unmounted, or not configured. This
needs more work.
3) quieten the build substantially, so errors are more prominent
4) Start of '-j' ability. Current style isn't quite in the correct
dependency format for this, but obvious mistakes (changing directories
in main shell) are fixed.
Approved by: grog, dwhite, luigi (no objections to me doing a makeover)
rc and login.conf files from the /etc directory on the floppy.
This prevents the overwrite yes/no prompt from occuring in gzip.
(some PicoBSD disks use gzip and some use minigzip, so the gzip -f flag (force)
is not an option. minigzip has a different meaning for the -f flag.}
. Bring PicoBSD up to date with -CURRENT reality.
. Make PicoBSD smart and not spam /dev/vn0 and /mnt. Now it uses the first
unused vn device and creates a temporary mountpoint in /tmp.
. Miscellaneous build cleanups and optimizations.
Unfortunately the bridge, isp, and router floppies are too big and need
the axe treatment. The install floppy needs updating to -CURRENT. Dial and
net build and (appear to) run OK. I will be adressing these in the
near future (unless someone beats me to it :-) ).
PR: misc/17737
Submitted by: Omachonu Ogali <oogali@intranova.net>
structure.
These changes have been discussed with Greg Lehey and posted on
freebsd-small (most things in the PicoBSD tree were already broken
so things can only improve!)
Approved-By: jordan
originally done to track down yet another case of lost init, and is
not strictly necessary, but it seems more logical to have binaries in
/sbin than in /stand. Previously /sbin and /bin were symlinks to
/stand. Now /bin and /stand are symlinks to /sbin.
as a preprocessor variable only. This broke the build of ppp. This
problem still exists in the old-style directories.
Debugging-help-supplied-by: brian
originally done to track down yet another case of lost init, and is
not strictly necessary, but it seems more logical to have binaries in
/sbin than in /stand. Previously /sbin and /bin were symlinks to
/stand. Now /bin and /stand are symlinks to /sbin.
only way to be sure the build works correctly is to do a 'make all'.
But with these changes, it's easier to test individual targets. In
particular, ensure that the vnode file systems are mounted before
writing to them.
Ensure that we don't get CVS directories on our floppies.
Use kgzip instead of kzip to compress the loader. This saves a few
kB.
Remove some test cruft.
using make instead of custom scripts) and two floppies instead of
one. The resultant floppy can do everything that the individual
floppies (dial, net, install, isp, router) could do, modulo some bit
rot that has occurred since PicoBSD last compiled. It also includes
all the programs on the fixit floppy, which could thus also die.
/bin currently contains the following files:
-sh dump ln ns sps
[ ed login ping stty
badsect ex ls ps swapon
cat expr mkdir pwd sync
chgrp fdisk mknod pwd_mkdb sysctl
chmod find more rdump syslogd
chown fsck mount reboot tar
chroot ftp mount_cd9660 restore telnet
clri getty mount_msdos rlogin telnetd
cp grep mount_nfs rm test
date gunzip mount_std rmdir traceroute
dd gzip msg route umount
dev_mkdb hostname mt routed vi
df ifconfig mv rrestore view
dhclient inetd natd rsh vm
dhclient-script init netstat sed w
disklabel kget newfs sh zcat
dmesg kill nfs sleep
Structure is in place for using the same build for the other
directories, but I'm no longer sure we need this. The current first
floppy will run fine by itself, but the size of a compressed kernel
has increased by nearly 50% since 3.2, and there's not much space for
anything useful on the remainder of the floppy. The current method
creates a larger mfs and can read as many floppies as the user can
stand. The footprint appears to be round 14 MB.
using make instead of custom scripts) and two floppies instead of
one. The resultant floppy can do everything that the individual
floppies (dial, net, install, isp, router) could do, modulo some bit
rot that has occurred since PicoBSD last compiled. It also includes
all the programs on the fixit floppy, which could thus also die.
/bin currently contains the following files:
-sh dump ln ns sps
[ ed login ping stty
badsect ex ls ps swapon
cat expr mkdir pwd sync
chgrp fdisk mknod pwd_mkdb sysctl
chmod find more rdump syslogd
chown fsck mount reboot tar
chroot ftp mount_cd9660 restore telnet
clri getty mount_msdos rlogin telnetd
cp grep mount_nfs rm test
date gunzip mount_std rmdir traceroute
dd gzip msg route umount
dev_mkdb hostname mt routed vi
df ifconfig mv rrestore view
dhclient inetd natd rsh vm
dhclient-script init netstat sed w
disklabel kget newfs sh zcat
dmesg kill nfs sleep
Structure is in place for using the same build for the other
directories, but I'm no longer sure we need this. The current first
floppy will run fine by itself, but the size of a compressed kernel
has increased by nearly 50% since 3.2, and there's not much space for
anything useful on the remainder of the floppy. The current method
creates a larger mfs and can read as many floppies as the user can
stand. The footprint appears to be round 14 MB.
Work-sponsored-by: Sitara Networks Inc.