| | 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 | |