IPFire-Logo
  wiki.ipfire.org
  en:development:build
 

Building IPFire Howto

IPFire is OpenSource! This means: Everyone can contribute and enhance the system. The team of developers welcomes everybody who has a nice idea or has done a bugfix.

This howto is about how to build IPFire from source.

You should know some things about it:

  • You will need a machine with a lot of power.
  • You will need a lot of disc space.
  • You will need a lot of time.

Prerequisites

At first, you will need a System with a common linux distribution. Fedora, Ubuntu or even IPFire 2.x. Best is a 32-bit System because 64-bit Systems are not able to build the toolchain.

Maybe, that you will have to change some minor things on your system and you will have to install several packages. There are some hints for common distributions. If your own is missing, feel free to add it here.

Step 1: Grabbing the source

At first of all, you have to check out the source code. How to do this? Read this.

To finish this step, you have to grab all the tarballs with the source of every upstream package (~500MB):

./make.sh downloadsrc

Step 2: Building

./make.sh build

Easy, isn't it?

But this process will take 4 hours or more…

On 64-bit system's and IPFire you need to download the precompiled toolchain. Most 32bit users should also do this because it saves some compile time.

 ./make.sh gettoolchain

and start the build with

 ./make.sh build

Hints

IPFire

Known to work: IPFire 2.x

These packages will be required, too:

pakfire install -y git make

IPFire can't build the toolchain so you have to use the precompiled version. After git checkout and source download you need also download the toolchain.

Fedora (Core) & CentOS

Known to work: Fedora Core 5, Fedora Core 6, Fedora 7, Fedora 8, Fedora 9, Fedora 10 und Centos 5.1

These packages will be required, too:

yum install git gcc byacc make wget binutils bison patch texinfo gcc-c++ glibc-static

Especially on Feadora: Please run “yum update” regularly.

OpenSuSE

Known to work: SuSE Linux 9.3, OpenSuSE 10.3

These packages will be required, too: git, gcc, make, patch, bzip2, bison

Install these packages with “yast”.

Debian

Known to work: Debian 4.0R1, Debian 5.0

These packages will be required, too: git-core, gcc, g++, realpath, make, patch, bzip2, byacc, python-urlgrabber, bison, gawk, texinfo

Install them with apt-get or aptitude.

Ubuntu

Notice - for full toolchain compile

There is a Symlink ”/bin/sh” that points to ”/bin/dash”. This will cause an error if you compile glibc. Please change ”/bin/sh” to ”/bin/bash”.

Ubuntu 11.04 needs some additional symlinks to asm header and glibc:

ln -s /usr/include/asm-generic /usr/include/asm

ln -s /usr/lib/i386-linux-gnu/libc.so /usr/lib/libc.so

Known to work: Ubuntu 6.06 LTS - Ubuntu 11.04

These packages will be required, too: git-core, g++, realpath, patch, byacc, make, python-urlgrabber

Install them with apt-get or aptitude.

Arch Linux

Kown to work: simple i686 core installation

These packages will be required too:

pacman -S git gcc make patch urlgrabber bison gawk texinfo

In addition you need realpath from AUR.

First buildtime in VirtualBox (2 cores (2×2.1Ghz), 1GB Ram) ~12 hours, second buildtime just ~40 minutes.

Benchmarks

The test machine was an Athlon XP 2000+ with 1.75 GB of RAM. Note that between the first and second build there only has been a ”./make.sh clean” just to test ccache.

System 1.Build 2.Build
Fedora 8 40091s 26240s
CentOS 5.1 35261s 25123s
SuSE 10.3 34274s 16258s
Debian 4.0R1 32909s 15274s
Ubuntu 7.10 33836s 15855s
en/development/build.txt · Last modified: 2011/05/10 21:46 by Arne.F
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki