crunch.conf revision 197119
175899Sjoe#
275899Sjoe# $FreeBSD: head/release/picobsd/bridge/crunch.conf 197119 2009-09-12 15:50:08Z luigi $
375899Sjoe#
4190421Sluigi# Configuration file for "bridge" images..
575899Sjoe#
6190421Sluigi# Depending on your needs, you will almost surely need to
7190421Sluigi# add/remove/change programs according to your needs.
8190421Sluigi# Remember that some programs require matching kernel options to
9190421Sluigi# enable device drivers etc.
1075899Sjoe#
11190421Sluigi# To figure out how much space is used by each program, do
12190421Sluigi#
13190421Sluigi#	size build_dir-bridge/crunch/*lo
14190421Sluigi#
15190421Sluigi# Remember that programs require libraries, which add up to the
16190421Sluigi# total size. The final binary is build_dir-bridge/mfs.tree/stand/crunch
17190421Sluigi# and you can check which libraries it uses with
18190421Sluigi#
19190421Sluigi#	ldd build_dir-bridge/mfs.tree/stand/crunch
2075899Sjoe
21190421Sluigi# crunchgen configuration to build the crunched binary, see "man crunchgen"
22190421Sluigi# We need to specify generic build options, the places where to look
23190421Sluigi# for sources, and the list of program and libraries we want to put
24190421Sluigi# in the crunched binary.
25190421Sluigi#
26190421Sluigi# NOTE: the string "/usr/src" below will be automatically replaced with
27190421Sluigi# the path set in the 'build' script.
28190421Sluigi
29190421Sluigi# Default build options. Basically tell the Makefiles
3075899Sjoe# that to use the most compact possible version of the code.
31190421Sluigi
32190421Sluigibuildopts -DNO_PAM -DRELEASE_CRUNCH -DPPP_NO_NETGRAPH
33190421Sluigibuildopts -DTRACEROUTE_NO_IPSEC -DNO_INET6
34156905Srubuildopts -DWITHOUT_IPX
3575899Sjoe
36190421Sluigi# Directories where to look for sources of various binaries.
37102344Sluigi# @__CWD__@ is a magic keyword in the picobsd's (Makefile.conf)
38190421Sluigi# which is replaced with the directory with the picobsd configuration
39190421Sluigi# corresponding to your image. This way you can have custom sources
40190421Sluigi# in that directory overriding system programs.
41190421Sluigi
42102344Sluigisrcdirs @__CWD__@/src
43102344Sluigi
44190421Sluigi# Some programs are especially written for PicoBSD and reside in
45190421Sluigi# release/picobsd/tinyware.
46190421Sluigi# Put this entry near the head of the list to override standard binaries.
47190421Sluigi
4884312Sluigisrcdirs /usr/src/release/picobsd/tinyware
49102344Sluigi
50190421Sluigi# Other standard locations for sources.
51190421Sluigi# If a program uses its own source directory, add
52190421Sluigi
5375899Sjoesrcdirs /usr/src/bin
5475899Sjoesrcdirs /usr/src/sbin/i386
5575899Sjoesrcdirs /usr/src/sbin
5675899Sjoesrcdirs /usr/src/usr.bin
5775899Sjoesrcdirs /usr/src/gnu/usr.bin
5875899Sjoesrcdirs /usr/src/usr.sbin
5975899Sjoesrcdirs /usr/src/libexec
6075899Sjoe
61190421Sluigi# For programs that reside in different places, the best option
62190421Sluigi# is to use the command "special XXX srcdir YYY" where XXX is the
63190421Sluigi# program name and YYY is the directory path.
64190421Sluigi# "special XXX ..." can be used to specify more options, see again
65190421Sluigi# the crunchgen manpage.
66190421Sluigi
67190421Sluigi#--- Basic configuraton
68190421Sluigi# init is always necessary (unless you have a replacement, oinit)
69190385Sluigiprogs init
70190421Sluigi
7175899Sjoe# fsck is almost always necessary, unless you have everything on the
7275899Sjoe# image and use 'tar' or something similar to read/write raw blocks
7375899Sjoe# from the floppy.
74190421Sluigi
75190385Sluigiprogs fsck
76190421Sluigi
77190421Sluigi# ifconfig is needed if you want to configure interfaces.
78190385Sluigiprogs ifconfig
79190421Sluigi
8075899Sjoe# You will also need a shell and a bunch of utilities.
8175899Sjoe# The standard shell is not that large, but you need many
8275899Sjoe# external programs. In fact most of them do not take much space
83190421Sluigi# as they merely issue a system call, and print the result.
84190421Sluigi# For a more compact version of shell and utilities, you could
85190421Sluigi# try busybox, however most system management commands in busybox
86190421Sluigi# will not work as they use linux-specific interfaces.
87190421Sluigi
88190385Sluigiprogs sh
8975899Sjoeln sh -sh
90190421Sluigi
91190421Sluigi# the small utilities
92190385Sluigiprogs echo
93190421Sluigiprogs pwd mkdir rmdir
9475899Sjoeprogs chmod chown
95190421Sluigiln chown chgrp
96190421Sluigiprogs mv ln cp rm ls
97190421Sluigiprogs cat tail tee
98190421Sluigiprogs test
99190421Sluigiln test [
100190421Sluigi
10175899Sjoeprogs mount
102190385Sluigiprogs minigzip
10375899Sjoeln minigzip gzip
10475899Sjoeprogs kill
105190385Sluigiprogs df
106190385Sluigiprogs ps
107190421Sluigiprogs ns	# this is the 
10875899Sjoeln ns netstat
109190385Sluigiprogs vm
110190385Sluigiprogs hostname
111190385Sluigiprogs login
112190385Sluigiprogs getty
113190385Sluigiprogs stty
114190385Sluigiprogs w
115190385Sluigiprogs msg
11675899Sjoeln msg dmesg
117190385Sluigiprogs reboot
11875899Sjoe
11975899Sjoeprogs sysctl
120190385Sluigiprogs swapon
121190385Sluigiprogs pwd_mkdb
12275899Sjoeprogs umount
123190385Sluigiprogs du
124190385Sluigiprogs passwd
12575899Sjoe
126190385Sluigiprogs route
127190421Sluigi
12875899Sjoe# If you want to run natd, remember the alias library
129190385Sluigi#progs natd
130190421Sluigi#libs_so -lalias	# natd
131190421Sluigi
13275899Sjoe# ppp is rather large. Note that as of Jan.01, RELEASE_CRUNCH
13375899Sjoe# makes ppp not use libalias, so you cannot have aliasing.
134190385Sluigi#progs ppp
13575899Sjoe
13675899Sjoe# You need an editor. ee is relatively small, though there are
13775899Sjoe# smaller ones. vi is much larger.
13875899Sjoe# The editor also usually need a curses library.
139190385Sluigiprogs ee
14075899Sjoe
141190385Sluigiprogs arp
14275899Sjoe
143190421Sluigi# these require libgeom
144190421Sluigi# progs bsdlabel fdisk mdconfig
14575899Sjoe
146190421Sluigiprogs kldload kldunload kldstat
147190421Sluigiprogs kldxref
148190385Sluigi#progs grep
149190385Sluigiprogs date
150190385Sluigiprogs ping
151190385Sluigi#progs routed
152190385Sluigiprogs ipfw
153190385Sluigiprogs traceroute
154190421Sluigiprogs mdmfs
155190421Sluigiln mdmfs mount_mfs
156190421Sluigi# Various filesystem support -- remember to enable the kernel parts
157190421Sluigi# progs mount_msdosfs
158190421Sluigiprogs mount_nfs
159190385Sluigi# progs mount_cd9660
160190421Sluigiln mount_nfs nfs
161190421Sluigiln mount_cd9660 cd9660
162190421Sluigi#progs newfs
16375899Sjoe#ln newfs mount_mfs
16477579Sru# ln mount_msdosfs msdos
16575899Sjoe
166190421Sluigi# For a small ssh client/server use dropbear
16775899Sjoe
168190421Sluigi# Now the libraries
169190421Sluigilibs_so	-lc		# the C library
170190421Sluigilibs_so -ll		# used by sh (really ?)
171190421Sluigilibs_so -lufs		# used by mount
172190421Sluigi### ee uses ncurses but as a dependency
173190421Sluigi#libs_so -lncurses
174190421Sluigilibs_so -lm
175190421Sluigilibs_so -ledit -lutil
176190421Sluigilibs_so -lcrypt
177190421Sluigilibs_so -lkvm
178190421Sluigilibs_so -lz
179190421Sluigilibs_so -lbsdxml
180190421Sluigilibs_so -lsbuf
181197119Sluigilibs_so -ljail	# used by ifconfig
182