Re: Small /etc/src.conf

From: Garrett Cooper <gcooper_at_FreeBSD.org>
Date: Sat, 23 Oct 2010 20:16:02 -0700
On Sat, Oct 23, 2010 at 7:19 PM, Garrett Cooper <gcooper_at_freebsd.org> wrote:
> On Sat, Oct 23, 2010 at 3:35 PM, Sean Bruno <seanbru_at_yahoo-inc.com> wrote:
>> On Sat, 2010-10-23 at 14:21 -0700, Rob Farmer wrote:
>>> On Sat, Oct 23, 2010 at 13:40, Sean Bruno <seanbru_at_yahoo-inc.com> wrote:
>>> > Anyone have a src.conf + make.conf that I can steal to build a small
>>> > installation of BSD?  I've been trying to shrink the installation so I
>>> > can cram an ISO of BSD across the network into a remote installation
>>> > thing in an HP box.
>>>
>>> Have you checked this:
>>> http://phk.freebsd.dk/misc/build_options/
>>>
>>> I'm not sure exactly what you're looking for, but in my experience (I
>>> care more about build time than size though, and still want a fairly
>>> functional system) these are the most important variables to set:
>>>
>>> NO_MODULES (stick everything in the kernel - tons of stuff is built
>>> twice, like ufs support)
>>> WITHOUT_PROFILE
>>> WITHOUT_LIB32
>>> WITHOUT_CLANG
>>> WITHOUT_KERBEROS
>>> WITHOUT_CDDL
>>>
>>> Some of the options involving src/share like WITHOUT_LOCALES seem to
>>> kill a lot of files too.
>>>
>>> Everything else either just skips a couple files (of course, that can
>>> add up) or starts to cut into basic functionality (like no man pages),
>>> IMHO.
>>>
>>
>> Thanks for the clue, I've come up with some stuff now that got me down
>> to ~100MB, but I think I can go smaller.
>> src.conf:
>> WITHOUT_AMD=true
>> WITHOUT_APM=true
>> WITHOUT_BIND=true
>> WITHOUT_BSNMP=true
>> WITHOUT_BSD_CPIO=true
>> WITHOUT_BZIP2=true
>> WITHOUT_BLUETOOTH=tree
>> WITHOUT_CDDL=true
>> WITHOUT_CLANG=true
>> WITHOUT_CPP=true
>> WITHOUT_CRYPT=true
>> WITHOUT_CTM=true
>> WITHOUT_CVS=true
>> WITHOUT_CXX=true
>> WITHOUT_DICT=true
>> WITHOUT_EXAMPLES=true
>> WITHOUT_FREEBSD_UPDATE=true
>> WITHOUT_GAMES=true
>> WITHOUT_GDB=true
>> WITHOUT_GNU=true
>> WITHOUT_GPIB=true
>> WITHOUT_GROFF=true
>> WITHOUT_GCOV=true
>> WITHOUT_HTML=true
>> WITHOUT_INET6=true
>> WITHOUT_INFO=true
>> #WITHOUT_INSTALLLIB=true
>> WITHOUT_IPFILTER=true
>> WITHOUT_IPFW=true
>> WITHOUT_IPX=true
>> WITHOUT_IPX_SUPPORT=true
>> WITHOUT_JAIL=true
>> WITHOUT_LIB32=true
>> WITHOUT_LOCATE=true
>> WITHOUT_LPR=true
>> WITHOUT_MAIL=true
>> WITHOUT_MAN=true
>> WITHOUT_NCP=true
>> WITHOUT_NDIS=true
>> WITHOUT_NETGRAPH=true
>> WITHOUT_NIS=true
>> WITHOUT_NLS=true
>> WITHOUT_NLS_CATALOGS=true
>> WITHOUT_NS_CACHING=true
>> WITHOUT_NTP=true
>> WITHOUT_OBJC=true
>> WITHOUT_PAM=true
>> WITHOUT_PF=true
>> WITHOUT_PORTSNAP=true
>> WITHOUT_PPP=true
>> WITHOUT_PROFILE=true
>> WITHOUT_QUOTAS=true
>> WITHOUT_RCMDS=true
>> WITHOUT_RCS=true
>> WITHOUT_RESCUE=true
>> WITHOUT_ROUTED=true
>> WITHOUT_SHAREDOCS=true
>> WITHOUT_SYSINSTALL=true
>> WITHOUT_TCSH=true
>> WITHOUT_TELNET=true
>> WITHOUT_TOOLCHAIN=true
>> WITHOUT_WIRELESS=true
>>
>> make.conf:
>> NO_MODULES=true
>> NO_SHARE=true
>
>    Looks about right (I don't optimize things that much in all cases,
> but I've come close before). Here's a PR I opened that would tune the
> rc.d scripts, because you'll probably notice that there's a ton of
> noise involved at bootup when you do the above items:
>
> http://www.freebsd.org/cgi/query-pr.cgi?pr=conf/145344
>
>    If desired, I can update the patch with latest HEAD for the PR. I
> would need for someone to review the item though and help commit it.

One thing though: being pedantic and setting true is ok, but just doing:

WITHOUT_TCSH=

etc is sufficient. Another thing you could do is:

FEATURES= \
    AMD \
    APM \
    ...
    WIRELESS

.for feature in ${FEATURES}
WITHOUT_${feature}=
.endfor

    (that's what I did in one instance where I source the src.conf
file from another Makefile). It's up to you depending on your target
audience for the file on what approach you want to take.
Cheers,
-Garrett
Received on Sun Oct 24 2010 - 01:16:04 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:08 UTC