1201062Sluigi#
2201062Sluigi# $FreeBSD: releng/10.2/release/picobsd/qemu/crunch.conf 246932 2013-02-18 02:08:41Z luigi $
3201062Sluigi#
4201062Sluigi# Configuration file for "qemu" images..
5201062Sluigi#
6201062Sluigi# Depending on your needs, you will almost surely need to
7201062Sluigi# add/remove/change programs according to your needs.
8201062Sluigi# Remember that some programs require matching kernel options to
9201062Sluigi# enable device drivers etc.
10201062Sluigi#
11201062Sluigi# To figure out how much space is used by each program, do
12201062Sluigi#
13201062Sluigi#	size build_dir-bridge/crunch/*lo
14201062Sluigi#
15201062Sluigi# Remember that programs require libraries, which add up to the
16201062Sluigi# total size. The final binary is build_dir-bridge/mfs.tree/stand/crunch
17201062Sluigi# and you can check which libraries it uses with
18201062Sluigi#
19201062Sluigi#	ldd build_dir-bridge/mfs.tree/stand/crunch
20201062Sluigi
21201062Sluigi# crunchgen configuration to build the crunched binary, see "man crunchgen"
22201062Sluigi# We need to specify generic build options, the places where to look
23201062Sluigi# for sources, and the list of program and libraries we want to put
24201062Sluigi# in the crunched binary.
25201062Sluigi#
26201062Sluigi# NOTE: the string "/usr/src" below will be automatically replaced with
27201062Sluigi# the path set in the 'build' script.
28201062Sluigi
29201062Sluigi# Default build options. Basically tell the Makefiles
30201062Sluigi# that to use the most compact possible version of the code.
31201062Sluigi
32246932Sluigibuildopts -DWITHOUT_PAM -DRELEASE_CRUNCH -DPPP_NO_NETGRAPH
33201062Sluigibuildopts -DTRACEROUTE_NO_IPSEC -DNO_INET6
34201062Sluigibuildopts -DWITHOUT_IPX
35201062Sluigi
36201062Sluigi# Directories where to look for sources of various binaries.
37201062Sluigi# @__CWD__@ is a magic keyword in the picobsd's (Makefile.conf)
38201062Sluigi# which is replaced with the directory with the picobsd configuration
39201062Sluigi# corresponding to your image. This way you can have custom sources
40201062Sluigi# in that directory overriding system programs.
41201062Sluigi
42201062Sluigisrcdirs @__CWD__@/src
43201062Sluigi
44201062Sluigi# Some programs are especially written for PicoBSD and reside in
45201062Sluigi# release/picobsd/tinyware.
46201062Sluigi# Put this entry near the head of the list to override standard binaries.
47201062Sluigi
48201062Sluigisrcdirs /usr/src/release/picobsd/tinyware
49201062Sluigi
50201062Sluigi# Other standard locations for sources.
51201062Sluigi# If a program uses its own source directory, add
52201062Sluigi
53201062Sluigisrcdirs /usr/src/bin
54201062Sluigisrcdirs /usr/src/sbin/i386
55201062Sluigisrcdirs /usr/src/sbin
56201062Sluigisrcdirs /usr/src/usr.bin
57201062Sluigisrcdirs /usr/src/gnu/usr.bin
58201062Sluigisrcdirs /usr/src/usr.sbin
59201062Sluigisrcdirs /usr/src/libexec
60201062Sluigi
61201062Sluigi# For programs that reside in different places, the best option
62201062Sluigi# is to use the command "special XXX srcdir YYY" where XXX is the
63201062Sluigi# program name and YYY is the directory path.
64201062Sluigi# "special XXX ..." can be used to specify more options, see again
65201062Sluigi# the crunchgen manpage.
66201062Sluigi
67201062Sluigi#--- Basic configuraton
68201062Sluigi# init is always necessary (unless you have a replacement, oinit)
69201062Sluigiprogs init
70201062Sluigi
71201062Sluigi# fsck is almost always necessary, unless you have everything on the
72201062Sluigi# image and use 'tar' or something similar to read/write raw blocks
73201062Sluigi# from the floppy.
74201062Sluigi
75201062Sluigiprogs fsck
76201062Sluigi
77201062Sluigi# ifconfig is needed if you want to configure interfaces.
78201062Sluigiprogs ifconfig
79201062Sluigi
80201062Sluigi# You will also need a shell and a bunch of utilities.
81201062Sluigi# The standard shell is not that large, but you need many
82201062Sluigi# external programs. In fact most of them do not take much space
83201062Sluigi# as they merely issue a system call, and print the result.
84201062Sluigi# For a more compact version of shell and utilities, you could
85201062Sluigi# try busybox, however most system management commands in busybox
86201062Sluigi# will not work as they use linux-specific interfaces.
87201062Sluigi
88201062Sluigiprogs sh
89201062Sluigiln sh -sh
90201062Sluigi
91201062Sluigi# the small utilities
92201062Sluigiprogs echo
93201062Sluigiprogs pwd mkdir rmdir
94201062Sluigiprogs chmod chown
95201062Sluigiln chown chgrp
96201062Sluigiprogs mv ln cp rm ls
97201062Sluigiprogs cat tail tee
98201062Sluigiprogs test
99201062Sluigiln test [
100201062Sluigi
101201062Sluigiprogs less
102201062Sluigiln less more
103201062Sluigiprogs mount
104201062Sluigiprogs minigzip
105201062Sluigiln minigzip gzip
106201062Sluigiprogs kill
107201062Sluigiprogs df
108201062Sluigiprogs ps
109201062Sluigiprogs ns	# this is the picobsd version
110201062Sluigiln ns netstat
111201062Sluigiprogs vm
112201062Sluigiprogs hostname
113201062Sluigiprogs login
114201062Sluigiprogs getty
115201062Sluigiprogs stty
116201062Sluigiprogs w
117201062Sluigiprogs msg
118201062Sluigiln msg dmesg
119201062Sluigiprogs reboot
120201062Sluigi
121201062Sluigiprogs sysctl
122201062Sluigiprogs swapon
123201062Sluigiprogs pwd_mkdb
124201062Sluigiprogs umount
125201062Sluigiprogs du
126201062Sluigiprogs passwd
127201062Sluigi
128201062Sluigiprogs route
129201062Sluigi
130201062Sluigi# If you want to run natd, remember the alias library
131201062Sluigiprogs natd
132201062Sluigilibs_so -lalias # natd
133201062Sluigiprogs tcpdump
134201062Sluigispecial tcpdump srcdir /usr/src/usr.sbin/tcpdump/tcpdump
135201062Sluigilibs_so -lpcap # used by tcpdump
136210125Sluigilibs_so -lcrypto # used by tcpdump with inet6
137201062Sluigi
138201062Sluigi# ppp is rather large. Note that as of Jan.01, RELEASE_CRUNCH
139201062Sluigi# makes ppp not use libalias, so you cannot have aliasing.
140201062Sluigi#progs ppp
141201062Sluigi
142201062Sluigi# You need an editor. ee is relatively small, though there are
143201062Sluigi# smaller ones. vi is much larger.
144201062Sluigi# The editor also usually need a curses library.
145201062Sluigiprogs ee
146201062Sluigi
147201062Sluigiprogs arp
148201062Sluigi
149201062Sluigi# these require libgeom
150201062Sluigi# progs bsdlabel fdisk mdconfig
151201062Sluigi
152201062Sluigiprogs kldload kldunload kldstat
153201062Sluigiprogs kldxref
154201062Sluigiprogs grep
155201062Sluigilibs_so -lgnuregex -lbz2
156201062Sluigi# dhclient-script requires 'sed'
157201062Sluigiprogs dhclient
158201062Sluigiprogs sed
159201062Sluigiprogs date
160201062Sluigiprogs time
161201062Sluigiprogs ping
162210125Sluigiprogs ping6
163210125Sluigiprogs tar
164210125Sluigi
165201062Sluigi#progs routed
166201062Sluigiprogs ipfw
167201062Sluigiprogs traceroute
168201062Sluigiprogs mdmfs
169201062Sluigiln mdmfs mount_mfs
170201062Sluigi# Various filesystem support -- remember to enable the kernel parts
171201062Sluigi# progs mount_msdosfs
172201062Sluigiprogs mount_nfs
173201062Sluigi# progs mount_cd9660
174201062Sluigiln mount_nfs nfs
175201062Sluigiln mount_cd9660 cd9660
176201062Sluigi#progs newfs
177201062Sluigi#ln newfs mount_mfs
178201062Sluigi# ln mount_msdosfs msdos
179201062Sluigi
180201062Sluigi# For a small ssh client/server use dropbear
181210125Sluigiprogs jail jexec jls	# why not...
182201062Sluigi
183210125Sluigi
184201062Sluigi# Now the libraries
185201062Sluigilibs_so	-lc		# the C library
186201062Sluigilibs_so -ll		# used by sh (really ?)
187201062Sluigilibs_so -lufs		# used by mount
188201062Sluigi### ee uses ncurses but as a dependency
189201062Sluigi#libs_so -lncurses
190201062Sluigilibs_so -lm
191201062Sluigilibs_so -ledit -lutil
192201062Sluigilibs_so -lcrypt
193201062Sluigilibs_so -lkvm
194201062Sluigilibs_so -lz
195201062Sluigilibs_so -lbsdxml
196201062Sluigilibs_so -lsbuf
197201062Sluigilibs_so -ljail	# used by ifconfig
198210125Sluigilibs_so -lipsec -lmd	# used with ipv6
199210125Sluigilibs_so -larchive -lbz2
200210125Sluigilibs_so -llzma # added after 207840
201