1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

Building IPCop v2.0

It should be possible to build IPCop on any (recent) Linux distribution. A kernel version greater or equal to 2.6.5 is required! There are 2 ways to build IPCop, with or without a prepackaged toolchain. The advantages of using a prepackaged toolchain are: less requirements on the building machine environment and timesaving.

See [1] for exact package version requirements to build the toolchain.

Please observe that there is currently no cross-compilation support, i.e. if you want to build IPCop for Sparc you will need a Sparc machine.

Examples below are from Debian Lenny but build environment is not limited to Debian.

Prepare building environment

As of SVN r842 it is no longer necessary to build IPCop as root. You will need sudo installed. You need to copy in /etc/sudoers (using visudo is recommended) the lines indicated on first ./make.sh build. See [2] how to build as root, please note that it strongly recommended to build as non-root!

These are the minimum packages required when a prepackaged toolchain is available.

apt-get install build-essential realpath sudo

More packages are needed to build the toolchain (see later), realpath and build-essential are debian specific. On other distributions, build-essential could be have other names like development packages (gcc, libc headers, make,...). On opensuse-11.3 for example, it is required to install

zypper install bison gcc make texinfo

Retrieve IPCop sources

Sources are available from svn. This is the recommended way as it is easier to follow changes on the source tree. You will need the subversion package, install on Debian Lenny using (see [4] for other distros):

apt-get install subversion

Then checkout the current sources with:

svn checkout http://svn.code.sf.net/p/ipcop/svn/ipcop/trunk

If you want to checkout a specific revision:

svn checkout --revision 555 http://svn.code.sf.net/p/ipcop/svn/ipcop/trunk

See the Subversion manual for more information on svn. Change into the trunk directory, you should now see various directories (config, doc, html, etc.) and make.sh script :

cd trunk
ls

Retrieve other sources

  • Load all files from all the different sources on the Internet
./make.sh prefetch
  • Load all files gathered in one big package (not yet available for 1.9/2.0)
./make.sh getothersrc

Should some files not be available or have moved to a different URL, 'make.sh' will report an error. You might try a Google search and download files manually into the cache directory.

Build IPCop without prebuild toolchain

Skip this step if you want to build with prebuild toolchain. Package version requirements will be displayed on first ./make.sh build (see [1])

Additional packages are needed to be able to build the toolchain, install on Debian Lenny using (see [3] for other distros):

apt-get install autoconf automake bison bzip2 flex gawk texinfo

Toolchain is automatically built on first run:

./make.sh build

This will spare you 30% of the building time when building for a 2nd (or 3rd, 4th ... time). You can force the toolchain rebuild with :

./make.sh toolchain

Build IPCop using prebuild toolchain

To save 30% time on building, there is the possibility to use a prebuild toolchain (40 MB), retrieve using:

./make.sh gettoolchain

Using the prebuild toolchain also helps if your distro is old or very new and is not capable to create the IPCop building environment.

Notes

[1] Package versions required to build the toolchain

Prebuild toolchain could be used if requirements are not satisfied.

PackagesVersionPackagesVersion
bash2.05abinutils2.12
bison1.875bzip21.0.2
coreutils5.0diffutils2.8
findutils4.1.20gawk3.1.5
gcc3.0.1glibc2.2.5
grep2.5gzip1.2.4
linux kernel2.6.5make3.79.1
patch2.5.4sed3.0.2
tar1.14texinfo4.8

[2] Customize building script variables

You need to write those values in a .config file at ./make.sh directory level

# Default value
NICE=10

# How many concurrent jobs to run (NOTE: Don't use too high a value, or packages may have timing issues.
# At least openssh fails if this is too high.  It's safe to set this to number of CPUs + 1)
PARALLELISM=3

# How many times should prefetch try to download a package. Don't set to too high a value and hammer sites
MAX_RETRIES=3

# Make distcc optional, by default don't use it.
# To be efficient, distcc need that network is more efficient than local cpu
# Gain is usually small unless cpu are not fast
USE_DISTCC=no

# Should we skip creation of USB images
# This spare time until production level is reached
SKIP_USB_IMAGES=yes

# If you **absolutely** want to build ipcop as root,STRONGLY DISCOURAGED
ALLOW_ROOT_TO_BUILD=yes

[3] Installing subversion on other distributions

[4] Completing build environment on other distributions

Errors

You can get errors when building ./make.sh (see logs in trunk/log_) URL http and md5 broken links :

Concern md5checksum errors and downloads packages Error 404

You can fix these errors by editing /trunk/lfs/your_package and replace URL downloading (DL_FROM) or md5 signature.

Downloads URL modules : http://www.cpan.org/modules/by-module

./make.sh prefetch verifies valid packages