| 46 | = Building a Proxy Factory = |
| 47 | |
| 48 | Please note that you can find the supporting files in the subdirectory [source:nanobsd]. Also keep a close look at the ''INFO'' ''WARN'' ''ERR'' directives as they guide you trough the common pitfalls of the guide. |
| 49 | |
| 50 | == A. Setup a FreeBSD host == |
| 51 | ---- |
| 52 | WARN: Make sure ''/usr'' is '''at least 5GB''' in size building as building images require quite some space [[BR]] |
| 53 | WARN: Make sure you install the '''i386''' release of FreeBSD also when your system does support amd64, as cross compiling can give some nasty surprises [[BR]] |
| 54 | ---- |
| 55 | Get yourself a fresh i386 freebsd host with ports and subversion installed as follows: |
| 56 | |
| 57 | A.1. Run the basic CD installer of 8.0. |
| 58 | The procedure below has been tested with 8.0-RELEASE (standard developer install - no ports - will fit our needs). Installing FreeBSD is outside the scope of this document, take a look into [http://www.freebsd.org/doc/en/books/handbook/install.html the FreeBSD handbook Chapter 2 Installing FreeBSD] if you do not know the details. |
| 59 | |
| 60 | Please do mind that all commands below need to be executed as root, due to the many mounts and unmounts done in various phases. |
| 61 | |
| 62 | Internet connection is required. |
| 63 | |
| 64 | Set correct date/time, e.g. |
| 65 | {{{ |
| 66 | $ ntpdate -s pools.ntp.org |
| 67 | }}} |
| 68 | |
| 69 | A.2. get latest sources |
| 70 | {{{ |
| 71 | $ csup -h cvsup.nl.freebsd.org /usr/share/examples/cvsup/standard-supfile |
| 72 | }}} |
| 73 | |
| 74 | |
| 75 | A.3 fetch ports |
| 76 | {{{ |
| 77 | $ portsnap fetch extract |
| 78 | }}} |
| 79 | |
| 80 | A.4 set some usefull variables |
| 81 | |
| 82 | Edit the shell configuration file .cshrc: |
| 83 | {{{ |
| 84 | vi /root/.cshrc |
| 85 | }}} |
| 86 | check whether ftp is set to passive mode, to avoid potential firewall issues: |
| 87 | {{{ |
| 88 | setenv FTP_PASSIVE_MODE YES |
| 89 | }}} |
| 90 | set a default password for the images that you will produce |
| 91 | {{{ |
| 92 | setenv CFG_ROOT_PASSWORD [default password] |
| 93 | }}} |
| 94 | and define the svn download directory: |
| 95 | {{{ |
| 96 | setenv R /root/nanobsd |
| 97 | }}} |
| 98 | |
| 99 | A.5. install subversion . |
| 100 | NOTE: Install all packages via ports to prevent issues later on! |
| 101 | {{{ |
| 102 | $ cd /usr/ports/devel/subversion; make install clean BATCH=yes |
| 103 | }}} |
| 104 | |
| 105 | A.6. OPTIONAL, every developer has his own preferences, these are mine ;-) |
| 106 | {{{ |
| 107 | $ (cd /usr/ports/editors/vim-lite; make install clean BATCH=yes) |
| 108 | $ (cd /usr/ports/security/sudo; make install clean BATCH=yes) |
| 109 | $ (cd /usr/ports/sysutils/screen; make install clean BATCH=yes) |
| 110 | }}} |
| 111 | |
| 112 | == B. Build environment == |
| 113 | |
| 114 | B.1 Download the environment from the Wireless Leiden svn repository |
| 115 | {{{ |
| 116 | $ |
| 117 | $ svn checkout http://svn.wirelessleiden.nl/svn/projects/proxy/2.0/nanobsd/nanobsd $R |
| 118 | $ cd $R |
| 119 | }}} |
| 120 | Note: if svn is not found: svn is in /usr/local/bin, alternatively log out and in, or use {{{rehash}}} in a {{{csh}}} shell to make it available. |
| 121 | |
| 122 | B.2. Compile all required packages using |
| 123 | {{{ |
| 124 | $ /root/nanobsd/tools/package-build.sh |
| 125 | }}} |
| 126 | |