NAME="IPFire" # Software name
SNAME="ipfire" # Short name
-VERSION="2.1" # Version number
+VERSION="2.3-beta3"
+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
KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'`
MACHINE=`uname -m`
-SVN_REVISION=`svn info | grep Revision | cut -c 11-`
+GIT_TAG=$(git tag | tail -1)
IPFVER="full" # Which versions should be compiled? (full|devel)
fi
fi
+if [ -z $EDITOR ]; then
+ for i in nano emacs vi; do
+ EDITOR=$(which $i 2>/dev/null)
+ if ! [ -z $EDITOR ]; then
+ export EDITOR=$EDITOR
+ break
+ fi
+ done
+ [ -z $EDITOR ] && exiterror "You should have installed an editor."
+fi
+
prepareenv() {
############################################################################
# #
ipfiremake ppp
ipfiremake rp-pppoe
ipfiremake unzip
- ipfiremake linux SMP=1
- ipfiremake ipp2p SMP=1
- ipfiremake zaptel SMP=1
- ipfiremake r8169 SMP=1
- ipfiremake r8168 SMP=1
- ipfiremake mcs7830 SMP=1
- ipfiremake atl1 SMP=1
+# ipfiremake linux SMP=1
+# ipfiremake linux-fusion SMP=1
+# ipfiremake ipp2p SMP=1
+# ipfiremake r8169 SMP=1
+# ipfiremake r8168 SMP=1
+# ipfiremake atl2 SMP=1
+# ipfiremake kqemu SMP=1
+# ipfiremake v4l-dvb SMP=1
+# ipfiremake madwifi SMP=1
+# ipfiremake alsa KMOD=1 SMP=1
+# ipfiremake sane KMOD=1 SMP=1
+# ipfiremake openswan KMOD=1 SMP=1
ipfiremake linux
+ ipfiremake linux-fusion
ipfiremake ipp2p
- ipfiremake zaptel
ipfiremake r8169
ipfiremake r8168
- ipfiremake mcs7830
- ipfiremake atl1
+ ipfiremake atl2
+ ipfiremake kqemu
+ ipfiremake v4l-dvb
+ ipfiremake madwifi
+ ipfiremake alsa KMOD=1
+ ipfiremake sane KMOD=1
+ ipfiremake openswan KMOD=1
ipfiremake pkg-config
ipfiremake linux-atm
ipfiremake cpio
ipfiremake libupnp
ipfiremake ipp2p IPT=1
ipfiremake linux-igd
- ipfiremake ipac-ng
ipfiremake ipaddr
ipfiremake iptstate
ipfiremake iputils
ipfiremake noip_updater
ipfiremake ntp
ipfiremake openssh
- ipfiremake openswan
ipfiremake rrdtool
ipfiremake setserial
ipfiremake setup
ipfiremake snort
ipfiremake oinkmaster
ipfiremake squid
- ipfiremake squid-graph
ipfiremake squidguard
ipfiremake calamaris
ipfiremake tcpdump
ipfiremake spamassassin
ipfiremake amavisd
ipfiremake alsa
- ipfiremake mpg123
ipfiremake mpfire
ipfiremake guardian
ipfiremake libid3tag
ipfiremake libmad
ipfiremake libogg
ipfiremake libvorbis
+ ipfiremake libdvbpsi
ipfiremake lame
ipfiremake sox
ipfiremake libshout
ipfiremake mpc
ipfiremake xvid
ipfiremake libmpeg2
- ipfiremake videolan
+ ipfiremake cmake
ipfiremake libpri
ipfiremake asterisk
ipfiremake gnump3d
ipfiremake portmap
ipfiremake nfs
ipfiremake nmap
- ipfiremake mbmon
ipfiremake ncftp
ipfiremake etherwake
ipfiremake bwm-ng
ipfiremake sysstat
ipfiremake vsftpd
ipfiremake which
+ ipfiremake openswan
ipfiremake lsof
ipfiremake centerim
ipfiremake br2684ctl
ipfiremake pcmciautils
+ ipfiremake lm_sensors
ipfiremake collectd
ipfiremake lcd4linux
- ipfiremake neon
- ipfiremake subversion
ipfiremake tcptrack
ipfiremake teamspeak
ipfiremake elinks
ipfiremake igmpproxy
+ ipfiremake fbset
ipfiremake sdl
ipfiremake qemu
+ ipfiremake sane
+ ipfiremake netpbm
+ ipfiremake phpSANE
+ ipfiremake tunctl
+ ipfiremake nagios
+ ipfiremake ebtables
+ ipfiremake arptables
+ ipfiremake fontconfig
+ ipfiremake freefont
+ ipfiremake directfb
+ ipfiremake dfb++
+ ipfiremake ffmpeg
+ ipfiremake videolan
+ ipfiremake vdr
+ ipfiremake w_scan
+ ipfiremake git
+ ipfiremake squidclamav
+ ipfiremake bc
+ ipfiremake esniper
+ ipfiremake vnstat
+ ipfiremake vnstati
+ ipfiremake wpa_supplicant
+ ipfiremake hostapd
+ ipfiremake urlgrabber
+ ipfiremake syslinux
+ ipfiremake tftp-hpa
+ ipfiremake cpufrequtils
+ ipfiremake dbus
+ ipfiremake bluetooth
+ ipfiremake gutenprint
+ echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild
+ cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild
+ echo >> $BASEDIR/build/var/ipfire/firebuild
+ git log -1 >> $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
}
buildinstaller() {
# Run installer scripts one by one
LOGFILE="$BASEDIR/log/_build.installer.log"
export LOGFILE
- ipfiremake syslinux
ipfiremake as86
ipfiremake mbr
ipfiremake memtest
rm -f $BASEDIR/doc/packages-list
# packages-list.txt is ready to be displayed for wiki page
beautify message DONE
+
+ # Update changelog
+ cd $BASEDIR
+ $0 git log
# Create images for install
ipfiremake cdrom ED=full
if [ -e /dev/loop/0 ] || [ -e /dev/loop0 ]; then
ipfiremake usb-stick
fi
- mv $LFS/install/images/{*.iso,*.tgz,*.img.gz} $BASEDIR >> $LOGFILE 2>&1
+
+ # Create updater package
+ ipfiremake updater
+ mv $LFS/install/images/{*.iso,*.tgz,*.img.gz,*.bz2} $BASEDIR >> $LOGFILE 2>&1
ipfirepackages
beautify build_stage "Building IPFire"
buildipfire
- # Setzen des IPFire Builds
- if [ "$SVN_REVISION" ]; then
- echo "$SVN_REVISION" > $BASEDIR/build/var/ipfire/firebuild
- else
- echo "_(OvO)_" > $BASEDIR/build/var/ipfire/firebuild
- fi
-
beautify build_stage "Building installer"
buildinstaller
prepareenv
entershell
;;
-changelog)
- echo -n "Loading new Changelog from SVN: "
- svn log http://svn.ipfire.org/svn/ipfire > doc/ChangeLog
- beautify message DONE
- ;;
clean)
echo -en "${BOLD}Cleaning build directory...${NORMAL}"
for i in `mount | grep $BASEDIR | sed 's/^.*loop=\(.*\))/\1/'`; do
cd $BASEDIR/cache/toolchains
wget $URL_TOOLCHAIN/$PACKAGE.tar.gz $URL_TOOLCHAIN/$PACKAGE.md5 >& /dev/null
if [ $? -ne 0 ]; then
- echo "`date -u '+%b %e %T'`: error downloading toolchain for $BUILDMACHINE machine" | tee -a $LOGFILE
+ echo "`date -u '+%b %e %T'`: error downloading $PACKAGE toolchain for $BUILDMACHINE machine" | tee -a $LOGFILE
else
if [ "`md5sum $PACKAGE.tar.gz | awk '{print $1}'`" = "`cat $PACKAGE.md5 | awk '{print $1}'`" ]; then
echo "`date -u '+%b %e %T'`: toolchain md5 ok" | tee -a $LOGFILE
fi
stdumount
;;
-svn)
+git)
case "$2" in
update|up)
- # clear
- echo -ne "Loading the latest source files...\n"
- if [ $3 ]; then
- svn update -r $3 | tee -a $PWD/log/_build.svn.update.log
- else
- svn update | tee -a $PWD/log/_build.svn.update.log
- fi
- if [ $? -eq "0" ]; then
- beautify message DONE
- else
- beautify message FAIL
- exit 1
- fi
- echo -ne "Writing the svn-info to a file"
- svn info > $PWD/svn_status
- if [ $? -eq "0" ]; then
- beautify message DONE
- else
- beautify message FAIL
- exit 1
- fi
- chmod 755 $0
- exit 0
- ;;
+ git pull
+ ;;
commit|ci)
- clear
- if [ -f /usr/bin/mcedit ]; then
- export EDITOR=/usr/bin/mcedit
- fi
- if [ -f /usr/bin/nano ]; then
- export EDITOR=/usr/bin/nano
- fi
- echo -ne "Selecting editor $EDITOR..."
- beautify message DONE
- if [ -e /sbin/yast ]; then
- if [ "`echo $SVN_REVISION | cut -c 3`" -eq "0" ]; then
- $0 changelog
- fi
- fi
- update_langs
- svn commit
- $0 svn up
- if [ -n "$FTP_CACHE_URL" ]; then
- $0 uploadsrc
- fi
- ;;
+ shift 2
+ git commit $*
+
+ [ "$?" -eq "0" ] || exiterror "git commit $* failed."
+
+ echo -e "${BOLD}Do you want to push, too? [y/N]${NORMAL}"
+ read
+ [ -z $REPLY ] && exit 0
+ for i in y Y j J; do
+ if [ "$i" == "$REPLY" ]; then
+ $0 git push
+ exit $?
+ fi
+ done
+ exiterror "\"$REPLY\" is not a valid answer."
+ ;;
dist)
- if [ $3 ]; then
- SVN_REVISION=$3
- fi
- if [ -f ipfire-source-r$SVN_REVISION.tar.gz ]; then
- echo -ne "REV $SVN_REVISION: SKIPPED!\n"
- exit 0
- fi
- echo -en "REV $SVN_REVISION: Downloading..."
- svn export http://svn.ipfire.org/svn/ipfire/trunk ipfire-source/ --force > /dev/null
- svn log http://svn.ipfire.org/svn/ipfire/trunk -r 1:$SVN_REVISION > ipfire-source/Changelog
- #svn info http://svn.ipfire.org/svn/ipfire/trunk -r $SVN_REVISION > ipfire-source/svn_status
- evaluate 1
-
- echo -en "REV $SVN_REVISION: Compressing files..."
- if [ -e ipfire-source/trunk/make.sh ]; then
- chmod 755 ipfire-source/trunk/make.sh
- fi
- tar cfz ipfire-source-r$SVN_REVISION.tar.gz ipfire-source
- evaluate 1
- echo -en "REV $SVN_REVISION: Cleaning up..."
- rm ipfire-source/ -r
- evaluate 1
- ;;
+ git archive HEAD | gzip -9 > ${SNAME}-${VERSION}.tar.gz
+ ;;
diff|di)
- update_langs
- echo -ne "Make a local diff to last svn revision"
- svn diff > ipfire-diff-`date +'%Y-%m-%d-%H:%M'`-r`svn info | grep Revision | cut -c 11-`.diff
- evaluate 1
- echo "Diff was successfully saved to ipfire-diff-`date +'%Y-%m-%d-%H:%M'`-r`svn info | grep Revision | cut -c 11-`.diff"
- svn status
- ;;
+ echo -ne "Make a local diff to last revision"
+ git diff HEAD > ipfire-diff-$(date +'%Y-%m-%d-%H:%M').diff
+ evaluate 1
+ echo "Diff was successfully saved to ipfire-diff-$(date +'%Y-%m-%d-%H:%M').diff"
+ git diff --stat
+ ;;
+ push)
+ [ -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}
+ ;;
+ log)
+ [ -z $GIT_TAG ] || LAST_TAG=$GIT_TAG
+ [ -z $LAST_TAG ] || EXT="$LAST_TAG..HEAD"
+
+ git log -n 500 --no-merges --pretty=medium --shortstat $EXT > $BASEDIR/doc/ChangeLog
+ ;;
esac
;;
uploadsrc)
;;
"")
clear
- svn info
- select name in "Exit" "IPFIRE: Downloadsrc" "IPFIRE: Build (silent)" "IPFIRE: Watch Build" "IPFIRE: Batch" "IPFIRE: Clean" "SVN: Commit" "SVN: Update" "SVN: Status" "SVN: Diff" "LOG: Tail" "Help"
+ select name in "Exit" "IPFIRE: Downloadsrc" "IPFIRE: Build (silent)" "IPFIRE: Watch Build" "IPFIRE: Batch" "IPFIRE: Clean" "LOG: Tail" "Help"
do
case $name in
"IPFIRE: Downloadsrc")
"IPFIRE: Clean")
$0 clean
;;
- "SVN: Update")
- $0 svn update
- ;;
"Help")
echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain}"
cat doc/make.sh-usage