From owner-svn-src-all@FreeBSD.ORG Mon Apr 6 11:31:31 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A4E1E1065A4E; Mon, 6 Apr 2009 11:31:31 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 849108FC19; Mon, 6 Apr 2009 11:31:31 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n36BVVFq070126; Mon, 6 Apr 2009 11:31:31 GMT (envelope-from luigi@svn.freebsd.org) Received: (from luigi@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n36BVVan070125; Mon, 6 Apr 2009 11:31:31 GMT (envelope-from luigi@svn.freebsd.org) Message-Id: <200904061131.n36BVVan070125@svn.freebsd.org> From: Luigi Rizzo Date: Mon, 6 Apr 2009 11:31:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r190767 - stable/7/release/picobsd/bridge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2009 11:31:38 -0000 Author: luigi Date: Mon Apr 6 11:31:31 2009 New Revision: 190767 URL: http://svn.freebsd.org/changeset/base/190767 Log: MFC: use shared libraries for the crunched binary, put together the basic binaries so it is easier to replace them with busybox. Approved by: re (blanket on picobsd) Modified: stable/7/release/picobsd/bridge/crunch.conf Modified: stable/7/release/picobsd/bridge/crunch.conf ============================================================================== --- stable/7/release/picobsd/bridge/crunch.conf Mon Apr 6 11:23:20 2009 (r190766) +++ stable/7/release/picobsd/bridge/crunch.conf Mon Apr 6 11:31:31 2009 (r190767) @@ -1,39 +1,55 @@ # # $FreeBSD$ # -# configuration file for "bridge" floppy. -# Depending on your needs, almost surely you will need to -# modify your configuration to add/remove/change programs used in -# the floppy image. Remember that some programs also require -# matching kernel options to enable device drivers etc. -# -# Next to most of the programs i have tried to indicate the approximate -# space consumed, but beware that these values change from release -# to release, and might depend on the presence of other programs which -# share the same libraries. +# Configuration file for "bridge" images.. # -# NOTE: the string "/usr/src" will be automatically replaced with the -# correct value set in 'build' script - you should change it there +# Depending on your needs, you will almost surely need to +# add/remove/change programs according to your needs. +# Remember that some programs require matching kernel options to +# enable device drivers etc. +# +# To figure out how much space is used by each program, do +# +# size build_dir-bridge/crunch/*lo +# +# Remember that programs require libraries, which add up to the +# total size. The final binary is build_dir-bridge/mfs.tree/stand/crunch +# and you can check which libraries it uses with +# +# ldd build_dir-bridge/mfs.tree/stand/crunch -# Default build options. Basically tell the Makefiles which understand -# that to use the most compact possible version of the code. +# crunchgen configuration to build the crunched binary, see "man crunchgen" +# We need to specify generic build options, the places where to look +# for sources, and the list of program and libraries we want to put +# in the crunched binary. # -buildopts -DNO_PAM -DRELEASE_CRUNCH -DPPP_NO_NETGRAPH -DTRACEROUTE_NO_IPSEC -DNO_INET6 +# NOTE: the string "/usr/src" below will be automatically replaced with +# the path set in the 'build' script. + +# Default build options. Basically tell the Makefiles +# that to use the most compact possible version of the code. + +buildopts -DNO_PAM -DRELEASE_CRUNCH -DPPP_NO_NETGRAPH +buildopts -DTRACEROUTE_NO_IPSEC -DNO_INET6 buildopts -DWITHOUT_IPX -# directories where to look for sources of various binaries. +# Directories where to look for sources of various binaries. # @__CWD__@ is a magic keyword in the picobsd's (Makefile.conf) -# which is replaced with the picobsd directory. +# which is replaced with the directory with the picobsd configuration +# corresponding to your image. This way you can have custom sources +# in that directory overriding system programs. + srcdirs @__CWD__@/src -# Some programs are especially written for PicoBSD and reside here -# Make this first in the list so we can override standard programs -# with the picobsd-specific ones. +# Some programs are especially written for PicoBSD and reside in +# release/picobsd/tinyware. +# Put this entry near the head of the list to override standard binaries. + srcdirs /usr/src/release/picobsd/tinyware -# -# standard locations -# +# Other standard locations for sources. +# If a program uses its own source directory, add + srcdirs /usr/src/bin srcdirs /usr/src/sbin/i386 srcdirs /usr/src/sbin @@ -41,51 +57,59 @@ srcdirs /usr/src/usr.bin srcdirs /usr/src/gnu/usr.bin srcdirs /usr/src/usr.sbin srcdirs /usr/src/libexec -# -# And there are others (mostly ports) which reside in their specific -# directories. For them, we use the "special" commands to tell -# crunchgen where to look for sources, objects, which Makefile -# variables contain the list of sources and objects, and so on. -# init is almost always necessary. +# For programs that reside in different places, the best option +# is to use the command "special XXX srcdir YYY" where XXX is the +# program name and YYY is the directory path. +# "special XXX ..." can be used to specify more options, see again +# the crunchgen manpage. + +#--- Basic configuraton +# init is always necessary (unless you have a replacement, oinit) progs init + # fsck is almost always necessary, unless you have everything on the # image and use 'tar' or something similar to read/write raw blocks # from the floppy. + progs fsck -# ifconfig is needed if you want to configure interfaces... + +# ifconfig is needed if you want to configure interfaces. progs ifconfig -# + # You will also need a shell and a bunch of utilities. # The standard shell is not that large, but you need many # external programs. In fact most of them do not take much space -# as they merely issue a system call, and print the result; the -# libraries are already needed anyways, so they end up using almost -# no additional memory. -# There are a few exceptions such as 'less', which in 4.x is -# rather large. +# as they merely issue a system call, and print the result. +# For a more compact version of shell and utilities, you could +# try busybox, however most system management commands in busybox +# will not work as they use linux-specific interfaces. + progs sh ln sh -sh + +# the small utilities, also available in busybox progs echo -progs pwd -progs mkdir rmdir +progs pwd mkdir rmdir progs chmod chown -progs mv ln -progs mount +ln chown chgrp +progs mv ln cp rm ls +progs cat tail tee +progs test +ln test [ +progs du +progs kill progs minigzip ln minigzip gzip -progs cp -progs rm -progs ls -progs kill +progs ee # editor (busybox has 'vi') + +# FreeBSD commands not working in busybox +progs mount progs df progs ps -progs ns +progs ns # this is the picobsd version ln ns netstat progs vm -progs cat -progs test -ln test [ progs hostname progs login progs getty @@ -94,72 +118,57 @@ progs w progs msg ln msg dmesg progs reboot -progs less -ln less more progs sysctl progs swapon progs pwd_mkdb progs umount -progs du -progs tail -progs tee progs passwd progs route -# progs mount_msdosfs -# progs comcontrol -# + # If you want to run natd, remember the alias library #progs natd -#libs -lalias # natd -# +#libs_so -lalias # natd + # ppp is rather large. Note that as of Jan.01, RELEASE_CRUNCH # makes ppp not use libalias, so you cannot have aliasing. #progs ppp -# You need an editor. ee is relatively small, though there are -# smaller ones. vi is much larger. -# The editor also usually need a curses library. -progs ee -libs -lncurses -# progs vi # ?? -# libs -lcurses # for vi - -#progs tcpdump -special tcpdump srcdir /usr/src/usr.sbin/tcpdump/tcpdump - progs arp -progs bsdlabel -progs fdisk -progs mdconfig +# these require libgeom +# progs bsdlabel fdisk mdconfig -progs kldload kldunload kldstat kldxref -#progs grep +progs kldload kldunload kldstat +progs kldxref progs date -#progs mount_nfs -ln mount_nfs nfs progs ping #progs routed progs ipfw progs traceroute progs mdmfs ln mdmfs mount_mfs +# Various filesystem support -- remember to enable the kernel parts +# progs mount_msdosfs +# progs mount_nfs # progs mount_cd9660 -# ln mount_cd9660 cd9660 -progs newfs +ln mount_nfs nfs +ln mount_cd9660 cd9660 +# progs newfs #ln newfs mount_mfs -ln chown chgrp # ln mount_msdosfs msdos # For a small ssh client/server use dropbear -libs -ll # used by sh -libs -lufs # used by mount -### ee uses ncurses instead of curses -libs -ledit -lutil -lmd -lcrypt -lmp -lm -lkvm -libs -lz -lpcap -lwrap -libs -ltermcap -lgnuregex # -lcurses -libs -lgeom -libs -lsbuf -lbsdxml +# Now the libraries +libs_so -lc # the C library +libs_so -ll # used by sh (really ?) +libs_so -lufs # used by mount +### ee uses ncurses but as a dependency +#libs_so -lncurses +libs_so -lm +libs_so -ledit -lutil +libs_so -lcrypt +libs_so -lkvm +libs_so -lz