############################################################################
#
-NAME="IPFire" # Software name
-SNAME="ipfire" # Short name
-VERSION="2.3"
-CORE="27"
-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.5" # Version number
+CORE="34" # Core Level (Filename)
+PAKFIRE_CORE="33" # 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
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)
# Debian specific settings
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 r8101 XEN=1
+ ipfiremake r8169 XEN=1
+ ipfiremake r8168 XEN=1
+ ipfiremake kqemu XEN=1
+ #ipfiremake kvm-kmod 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 linux
ipfiremake atl2
+ ipfiremake hso
+ ipfiremake e1000e
+ ipfiremake r8101
+ ipfiremake r8169
+ ipfiremake r8168
ipfiremake kqemu
+ ipfiremake kvm-kmod
ipfiremake v4l-dvb
ipfiremake madwifi
ipfiremake alsa KMOD=1
ipfiremake openswan KMOD=1
+ ipfiremake mISDN
+ ipfiremake compat-wireless
ipfiremake pkg-config
ipfiremake linux-atm
ipfiremake cpio
ipfiremake curl
ipfiremake python
ipfiremake libnet
+ ipfiremake libnl
ipfiremake libidn
ipfiremake libjpeg
ipfiremake libpng
ipfiremake iptstate
ipfiremake iputils
ipfiremake l7-protocols
- ipfiremake mISDN
+ ipfiremake mISDNuser
ipfiremake capi4k-utils
ipfiremake hwdata
ipfiremake kudzu
ipfiremake tripwire
ipfiremake sysstat
ipfiremake vsftpd
- ipfiremake which
ipfiremake openswan
ipfiremake lsof
ipfiremake centerim
ipfiremake esniper
ipfiremake vnstat
ipfiremake vnstati
+ ipfiremake iw
ipfiremake wpa_supplicant
ipfiremake hostapd
ipfiremake urlgrabber
ipfiremake netcat
ipfiremake 7zip
ipfiremake lynis
- ipfiremake cryptsetup
+ #ipfiremake cryptsetup
ipfiremake splix
ipfiremake streamripper
ipfiremake sshfs
ipfiremake taglib
ipfiremake mediatomb
ipfiremake sslh
+ ipfiremake perl-gettext
+ ipfiremake vdradmin
+# ipfiremake x11libs
+# ipfiremake xen
+ ipfiremake miau
+ ipfiremake netsnmpd
+ ipfiremake perl-DBI
+ ipfiremake perl-DBD-mysql
+ ipfiremake lcr
+ ipfiremake cacti
+ ipfiremake icecc
+ ipfiremake open-vm-tools
+ ipfiremake nagiosql
+ ipfiremake iftop
+ ipfiremake motion
+ ipfiremake joe
+ ipfiremake nut
+ ipfiremake watchdog
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 $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() {
# Create images for install
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
ipfiremake usb-stick ED=$IPFVER
+ ipfiremake flash-images ED=$IPFVER
fi
- # Create updater package
- #ipfiremake updater
mv $LFS/install/images/{*.iso,*.tgz,*.img.gz,*.bz2} $BASEDIR >> $LOGFILE 2>&1
ipfirepackages
+ # Check if there is a loop device for building in virtual environments
+ if [ -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
+
# Cleanup
stdumount
rm -rf $BASEDIR/build/tmp/*
build)
clear
BUILDMACHINE=`uname -m`
- PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz 2> /dev/null | head -n 1`
+ 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
if [ ! -n "$PACKAGE" ]; then
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
- cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz \
+ 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} \
log >> $LOGFILE
- md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz \
- > cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.md5
+ md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.tar.gz \
+ > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.md5
stdumount
;;
gettoolchain)
BUILDMACHINE=`uname -m`
# arbitrary name to be updated in case of new toolchain package upload
- PACKAGE=$SNAME-$VERSION-toolchain-$BUILDMACHINE
+ 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
;;
uploadsrc)
PWD=`pwd`
+ if [ -z $IPFIRE_USER ]; then
+ echo -n "You have to setup IPFIRE_USER first. See .config for details."
+ 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})
+
cd $BASEDIR/cache/
- echo -e "Uploading cache to ftp server:"
- ncftpls -u $FTP_CACHE_USER -p $FTP_CACHE_PASS ftp://$FTP_CACHE_URL/$FTP_CACHE_PATH/ > /tmp/ftplist
- for i in *; do
- if [ "$(basename $i)" == "toolchains" ]; then continue; fi
- grep -q $(basename $i) /tmp/ftplist
- if [ "$?" -ne "0" ]; then
- echo -ne "$(basename $i)"
- ncftpput -u $FTP_CACHE_USER -p $FTP_CACHE_PASS $FTP_CACHE_URL $FTP_CACHE_PATH/ $(basename $i)
- if [ "$?" -ne "0" ]; then
- beautify message FAIL
- fi
- fi
+ for file in $(ls -1); do
+ grep -q "$file" <<<$REMOTE_FILES && continue
+ NEW_FILES="$NEW_FILES $file"
done
- rm -f /tmp/ftplist
+ [ -n "$NEW_FILES" ] && scp -2 $NEW_FILES ${IPFIRE_USER}@${URL_SOURCE}
+ cd $BASEDIR
cd $PWD
exit 0
;;
-upload)
- FTP_ISO_PORT=`echo "$FTP_ISO_URL" | awk -F: '{ print $2 }'`
- FTP_ISO_URL=`echo "$FTP_ISO_URL" | awk -F: '{ print $1 }'`
- if [ -z $FTP_ISO_PORT ]; then
- FTP_ISO_PORT=21
- fi
- cat <<EOF > .ftp-commands
-mkdir -p $FTP_ISO_PATH$SVN_REVISION
-mkdir -p $FTP_ISO_PATH$SVN_REVISION/paks
-quit
-EOF
- ncftp -u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL < .ftp-commands
- rm -f .ftp-commands
-
- case "$2" in
- iso)
- echo -e "Uploading the iso to $FTP_ISO_PATH/$SVN_REVISION."
-
- md5sum ipfire-$VERSION.$MACHINE-full.iso > ipfire-$VERSION.$MACHINE-full.iso.md5
- for i in svn_status ipfire-source-r$SVN_REVISION.tar.gz ipfire-$VERSION.$MACHINE-full.iso ipfire-$VERSION.$MACHINE-full.iso.md5 ipfire-$VERSION.$MACHINE-devel.iso ipfire-$VERSION.$MACHINE-devel.iso.md5; do
- if [ -e "$i" ]; then
- ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/ $i
- if [ "$?" -eq "0" ]; then
- echo "The file with name $i was successfully uploaded to $FTP_ISO_URL$FTP_ISO_PATH$SVN_REVISION/."
- else
- echo "There was an error while uploading the file $i to the ftp server."
- exit 1
- fi
- fi
- done
- rm -f ipfire-$VERSION.$MACHINE-full.iso.md5
- if [ "$3" = "--with-sources-cd" ]; then
- ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL $FTP_ISO_PATH/$SVN_REVISION/ ipfire-sources-cd-$VERSION.$MACHINE.iso
- fi
- ;;
- paks)
- ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/paks packages/*
- if [ "$?" -eq "0" ]; then
- echo -e "The packages were successfully uploaded to $FTP_ISO_URL$FTP_ISO_PATH$SVN_REVISION/."
- else
- echo -e "There was an error while uploading the packages to the ftp server."
- exit 1
- fi
- ;;
- esac
- ;;
batch)
if [ "$2" = "--background" ]; then
batch_script