############################################################################
#
-NAME="IPFire" # Software name
-SNAME="ipfire" # Short name
-VERSION="2.5"
-CORE="30"
-GIT_BRANCH=master:master # Version number
-SLOGAN="www.ipfire.org" # Software slogan
-CONFIG_ROOT=/var/ipfire # Configuration rootdir
-NICE=10 # Nice level
-MAX_RETRIES=1 # prefetch/check loop
+NAME="IPFire" # Software name
+SNAME="ipfire" # Short name
+VERSION="2.8test" # Version number
+CORE="43" # Core Level (Filename)
+PAKFIRE_CORE="42" # Core Level (PAKFIRE)
+GIT_BRANCH=`git status | head -n1 | cut -d" " -f4` # Git Branch
+SLOGAN="www.ipfire.org" # Software slogan
+CONFIG_ROOT=/var/ipfire # Configuration rootdir
+NICE=10 # Nice level
+MAX_RETRIES=1 # prefetch/check loop
+BUILD_IMAGES=1 # Build USB, Flash and Xen Images
KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'`
MACHINE=`uname -m`
-GIT_TAG=$(git tag | tail -1)
+GIT_TAG=$(git tag | tail -1) # Git Tag
+GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit
TOOLCHAINVER=1
IPFVER="full" # Which versions should be compiled? (full|devel)
+BUILDMACHINE=$MACHINE
+ if [ "$MACHINE" = "x86_64" ]; then
+ BUILDMACHINE="i686";
+ linux32="linux32";
+ fi
+
+
# Debian specific settings
if [ ! -e /etc/debian_version ]; then
FULLPATH=`which $0`
# Run LFS static binary creation scripts one by one
export CCACHE_DIR=$BASEDIR/ccache
+ export CCACHE_COMPRESS=1
export CCACHE_HASHDIR=1
# Remove pre-install list of installed files in case user erase some files before rebuild
}
buildtoolchain() {
+ if [ "$(uname -m)" = "x86_64" ]; then
+ exiterror "Cannot build toolchain on x86_64. Please use the download."
+ fi
+ if [ "$(uname -r | grep ipfire)" ]; then
+ exiterror "Cannot build toolchain on ipfire. Please use the download."
+ fi
+
LOGFILE="$BASEDIR/log/_build.toolchain.log"
export LOGFILE
ORG_PATH=$PATH
NATIVEGCC=`gcc --version | grep GCC | awk {'print $3'}`
export NATIVEGCC GCCmajor=${NATIVEGCC:0:1} GCCminor=${NATIVEGCC:2:1} GCCrelease=${NATIVEGCC:4:1}
- lfsmake1 ccache
+ lfsmake1 ccache PASS=1
lfsmake1 binutils PASS=1
lfsmake1 gcc PASS=1
export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH
lfsmake1 dejagnu
lfsmake1 gcc PASS=2
lfsmake1 binutils PASS=2
+ lfsmake1 ccache PASS=2
lfsmake1 ncurses
lfsmake1 bash
lfsmake1 bzip2
lfsmake2 man
lfsmake2 mktemp
lfsmake2 module-init-tools
- lfsmake2 mtd
lfsmake2 net-tools
lfsmake2 patch
lfsmake2 psmisc
ipfiremake libusb
ipfiremake libpcap
ipfiremake ppp
- ipfiremake rp-pppoe
ipfiremake pptp
ipfiremake unzip
ipfiremake which
- #ipfiremake linux XEN=1
- #ipfiremake atl2 XEN=1
- #ipfiremake hso XEN=1
- #ipfiremake e1000e XEN=1
- #ipfiremake kqemu XEN=1
- #ipfiremake v4l-dvb XEN=1
- #ipfiremake madwifi XEN=1
-# ipfiremake alsa XEN=1 KMOD=1
- #ipfiremake openswan XEN=1 KMOD=1
- #ipfiremake mISDN XEN=1
- #ipfiremake compat-wireless XEN=1
+ ipfiremake xz
+ ipfiremake linux-firmware
+ ipfiremake linux XEN=1
+ ipfiremake kqemu XEN=1
+ ipfiremake v4l-dvb XEN=1
+ ipfiremake madwifi XEN=1
+ ipfiremake mISDN XEN=1
+ ipfiremake dahdi XEN=1 KMOD=1
+ ipfiremake cryptodev XEN=1
+ ipfiremake compat-wireless XEN=1
+# ipfiremake r8169 XEN=1
+# ipfiremake r8168 XEN=1
+# ipfiremake r8101 XEN=1
+ ipfiremake e1000 XEN=1
+ ipfiremake e1000e XEN=1
+ ipfiremake igb XEN=1
+ ipfiremake linux PAE=1
+ ipfiremake kqemu PAE=1
+ ipfiremake kvm-kmod PAE=1
+ ipfiremake v4l-dvb PAE=1
+ ipfiremake madwifi PAE=1
+ ipfiremake alsa PAE=1 KMOD=1
+ ipfiremake mISDN PAE=1
+ ipfiremake dahdi PAE=1 KMOD=1
+ ipfiremake cryptodev PAE=1
+ ipfiremake compat-wireless PAE=1
+# ipfiremake r8169 PAE=1
+# ipfiremake r8168 PAE=1
+# ipfiremake r8101 PAE=1
+ ipfiremake e1000 PAE=1
+ ipfiremake e1000e PAE=1
+ ipfiremake igb PAE=1
ipfiremake linux
- ipfiremake atl2
- ipfiremake hso
- ipfiremake e1000e
ipfiremake kqemu
+ ipfiremake kvm-kmod
ipfiremake v4l-dvb
ipfiremake madwifi
ipfiremake alsa KMOD=1
- ipfiremake openswan KMOD=1
ipfiremake mISDN
+ ipfiremake dahdi KMOD=1
+ ipfiremake cryptodev
ipfiremake compat-wireless
+# ipfiremake r8169
+# ipfiremake r8168
+# ipfiremake r8101
+ ipfiremake e1000
+ ipfiremake e1000e
+ ipfiremake igb
ipfiremake pkg-config
ipfiremake linux-atm
ipfiremake cpio
- ipfiremake klibc
- ipfiremake mkinitcpio
- ipfiremake udev KLIBC=1
+
+ installmake strip
+
+ ipfiremake dracut
ipfiremake expat
ipfiremake gdbm
ipfiremake gmp
ipfiremake openssl
ipfiremake curl
ipfiremake python
+ ipfiremake fireinfo
ipfiremake libnet
ipfiremake libnl
ipfiremake libidn
ipfiremake pcre
ipfiremake slang
ipfiremake newt
+ ipfiremake attr
+ ipfiremake acl
ipfiremake libcap
ipfiremake pciutils
ipfiremake usbutils
ipfiremake cdrtools
ipfiremake dnsmasq
ipfiremake dosfstools
- ipfiremake squashfstools
ipfiremake reiserfsprogs
ipfiremake xfsprogs
ipfiremake sysfsutils
ipfiremake xvid
ipfiremake libmpeg2
ipfiremake cmake
- ipfiremake libpri
- ipfiremake asterisk
ipfiremake gnump3d
ipfiremake libsigc++
ipfiremake applejuice
ipfiremake ipfireseeder
ipfiremake rsync
ipfiremake tcpwrapper
+ ipfiremake libevent
ipfiremake portmap
ipfiremake nfs
ipfiremake nmap
ipfiremake tripwire
ipfiremake sysstat
ipfiremake vsftpd
- ipfiremake openswan
+ ipfiremake strongswan
ipfiremake lsof
ipfiremake centerim
ipfiremake br2684ctl
ipfiremake pcmciautils
ipfiremake lm_sensors
+ ipfiremake liboping
ipfiremake collectd
ipfiremake lcd4linux
- ipfiremake tcptrack
ipfiremake teamspeak
ipfiremake elinks
ipfiremake igmpproxy
ipfiremake fbset
ipfiremake sdl
ipfiremake qemu
+ ipfiremake qemu-kqemu
ipfiremake sane
ipfiremake netpbm
ipfiremake phpSANE
ipfiremake freefont
ipfiremake directfb
ipfiremake dfb++
+ ipfiremake faad2
ipfiremake ffmpeg
ipfiremake videolan
ipfiremake vdr
ipfiremake icecast
ipfiremake icegenerator
ipfiremake mpd
+ ipfiremake libmpdclient
ipfiremake mpc
ipfiremake git
ipfiremake squidclamav
ipfiremake bc
- ipfiremake esniper
ipfiremake vnstat
ipfiremake vnstati
ipfiremake iw
ipfiremake netcat
ipfiremake 7zip
ipfiremake lynis
- #ipfiremake cryptsetup
ipfiremake splix
ipfiremake streamripper
ipfiremake sshfs
ipfiremake sqlite
ipfiremake taglib
-# ipfiremake mediatomb
+ ipfiremake mediatomb
ipfiremake sslh
ipfiremake perl-gettext
ipfiremake vdradmin
-# ipfiremake x11libs
-# ipfiremake xen
ipfiremake miau
- ipfiremake net-snmp
+ ipfiremake netsnmpd
ipfiremake perl-DBI
ipfiremake perl-DBD-mysql
- ipfiremake lcr
ipfiremake cacti
ipfiremake icecc
- ipfiremake open-vm-tools
+ ipfiremake openvmtools
ipfiremake nagiosql
ipfiremake iftop
ipfiremake motion
+ ipfiremake joe
+ ipfiremake nut
+ ipfiremake watchdog
+ ipfiremake libpri
+ ipfiremake dahdi
+ ipfiremake asterisk
+ ipfiremake lcr
+ ipfiremake usb_modeswitch
+ ipfiremake usb_modeswitch_data
+ ipfiremake zerofree
+ ipfiremake mdadm
+ ipfiremake eject
+ ipfiremake pound
+ ipfiremake minicom
+ ipfiremake ddrescue
+ ipfiremake tcl
+ ipfiremake imspector
+ ipfiremake miniupnpd
+ ipfiremake client175
echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild
cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild
echo >> $BASEDIR/build/var/ipfire/firebuild
git status >> $BASEDIR/build/var/ipfire/firebuild
echo >> $BASEDIR/build/var/ipfire/firebuild
cat /proc/cpuinfo >> $BASEDIR/build/var/ipfire/firebuild
- echo $CORE > $BASEDIR/build/opt/pakfire/db/core/mine
- echo $NAME $VERSION - Core$CORE > $BASEDIR/build/etc/system-release
+ echo $PAKFIRE_CORE > $BASEDIR/build/opt/pakfire/db/core/mine
+ if [ "$GIT_BRANCH" = "master" ]; then
+ echo "$NAME $VERSION - (Development Build: $GIT_LASTCOMMIT)" > $BASEDIR/build/etc/system-release
+ else
+ echo "$NAME $VERSION - $GIT_BRANCH" > $BASEDIR/build/etc/system-release
+ fi
}
buildinstaller() {
ipfiremake as86
ipfiremake mbr
ipfiremake memtest
- installmake linux-libc-header
- installmake binutils
- ipfiremake uClibc PASS=1
- ipfiremake gcc INST=1
- installmake uClibc PASS=2
- installmake gcc INST=2
- installmake uClibc PASS=3
- installmake busybox
- installmake udev
- installmake slang
- installmake newt
- installmake gettext
- installmake kbd
- installmake popt
- installmake sysvinit
- installmake misc-progs
- installmake libaal
- installmake reiser4progs
- installmake reiserfsprogs
- installmake sysfsutils
- installmake util-linux
- installmake pciutils
- installmake zlib
- installmake mtd
- installmake wget
- installmake hwdata
- installmake kudzu
- installmake pcmciautils
- installmake installer
- installmake initrd
+ ipfiremake installer
+ cp -f $BASEDIR/doc/COPYING $BASEDIR/build/install/initrd/
+ installmake strip
+ ipfiremake initrd
}
buildpackages() {
export LOGFILE
echo "... see detailed log in _build.*.log files" >> $LOGFILE
- installmake strip
# Generating list of packages used
echo -n "Generating packages list from logs" | tee -a $LOGFILE
ipfiremake cdrom ED=$IPFVER
# Check if there is a loop device for building in virtual environments
- if [ -e /dev/loop/0 ] || [ -e /dev/loop0 ]; then
+ if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]); then
ipfiremake usb-stick ED=$IPFVER
ipfiremake flash-images ED=$IPFVER
fi
ipfirepackages
# Check if there is a loop device for building in virtual environments
- if [ -e /dev/loop/0 ] || [ -e /dev/loop0 ]; then
+ if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]); then
cp -f $BASEDIR/packages/linux-xen-*.ipfire $LFS/install/packages/
+ cp -f $BASEDIR/packages/meta-linux-xen $LFS/install/packages/
ipfiremake xen-image ED=$IPFVER
rm -rf $LFS/install/packages/linux-xen-*.ipfire
+ rm -rf $LFS/install/packages/meta-linux-xen
fi
mv $LFS/install/images/*.bz2 $BASEDIR >> $LOGFILE 2>&1
case "$1" in
build)
clear
- BUILDMACHINE=`uname -m`
PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.tar.gz 2> /dev/null | head -n 1`
#only restore on a clean disk
if [ ! -f log/cleanup-toolchain-2-tools ]; then
prepareenv
beautify build_stage "Toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
buildtoolchain
- BUILDMACHINE=`uname -m`
echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE
- test -d $BASEDIR/cache/toolchains || mkdir $BASEDIR/cache/toolchains
+ test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains
cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.tar.gz \
build/{bin,etc,usr/bin,usr/local} \
build/tools/{bin,etc,*-linux-gnu,include,lib,libexec,sbin,share,var} \
stdumount
;;
gettoolchain)
- BUILDMACHINE=`uname -m`
# arbitrary name to be updated in case of new toolchain package upload
PACKAGE=$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE
if [ ! -f $BASEDIR/cache/toolchains/$PACKAGE.tar.gz ]; then
URL_TOOLCHAIN=`grep URL_TOOLCHAIN lfs/Config | awk '{ print $3 }'`
- test -d $BASEDIR/cache/toolchains || mkdir $BASEDIR/cache/toolchains
+ test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains
echo "`date -u '+%b %e %T'`: Load toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE
cd $BASEDIR/cache/toolchains
wget -U "IPFireSourceGrabber/2.x" $URL_TOOLCHAIN/$PACKAGE.tar.gz $URL_TOOLCHAIN/$PACKAGE.md5 >& /dev/null
[ -z $GIT_USER ] && exiterror "You have to setup GIT_USER first."
GIT_URL="ssh://${GIT_USER}@git.ipfire.org/pub/git/ipfire-2.x"
- git push ${GIT_URL} ${GIT_BRANCH} $3
+ git push ${GIT_URL} $3
;;
log)
[ -z $GIT_TAG ] || LAST_TAG=$GIT_TAG
beautify message FAIL
exit 1
fi
+
URL_SOURCE=$(grep URL_SOURCE lfs/Config | awk '{ print $3 }')
- REMOTE_FILES=$(echo "ls -1" | sftp -C ${IPFIRE_USER}@${URL_SOURCE})
+ REMOTE_FILES=$(echo "ls -1 --ignore=toolchains" | sftp -C ${IPFIRE_USER}@${URL_SOURCE})
cd $BASEDIR/cache/
- for file in $(ls -1); do
+ for file in $(ls -1 --ignore=toolchains); do
grep -q "$file" <<<$REMOTE_FILES && continue
NEW_FILES="$NEW_FILES $file"
done