X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=make.sh;h=af178484cd38cd3832dd6d63b19fc29011af0572;hb=1ca249ccfb15045b513acc5a47a65078ed63cc0c;hp=a4337a41d9e31747ece624d759f56c48b5a0e000;hpb=46ea679e1ea0dd728cacfa209ee6a85b4b6a2cdc;p=people%2Fpmueller%2Fipfire-2.x.git diff --git a/make.sh b/make.sh index a4337a41d9..af178484cd 100755 --- a/make.sh +++ b/make.sh @@ -22,17 +22,21 @@ ############################################################################ # -NAME="IPFire" # Software name -SNAME="ipfire" # Short name -VERSION="2.3-test" -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="33" # Core Level (Filename) +PAKFIRE_CORE="32" # 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_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 @@ -176,7 +180,9 @@ prepareenv() { # Setup environment set +h LC_ALL=POSIX - MAKETUNING="-j6" + if [ -z $MAKETUNING ]; then + MAKETUNING="-j6" + fi export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD @@ -303,7 +309,7 @@ buildbase() { lfsmake2 make lfsmake2 man lfsmake2 mktemp - lfsmake2 modutils + lfsmake2 module-init-tools lfsmake2 mtd lfsmake2 net-tools lfsmake2 patch @@ -331,35 +337,43 @@ buildipfire() { ipfiremake libpcap ipfiremake ppp ipfiremake rp-pppoe + ipfiremake pptp ipfiremake unzip - ipfiremake linux SMP=1 -# ipfiremake linux-fusion SMP=1 -# ipfiremake ipp2p SMP=1 -# ipfiremake r8169 SMP=1 -# ipfiremake r8168 SMP=1 -# ipfiremake atl1 SMP=1 - ipfiremake atl2 SMP=1 - ipfiremake kqemu SMP=1 - ipfiremake v4l-dvb SMP=1 - ipfiremake madwifi SMP=1 - ipfiremake sane KMOD=1 SMP=1 + 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 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 linux-fusion -# ipfiremake ipp2p -# ipfiremake r8169 -# ipfiremake r8168 -# ipfiremake atl1 ipfiremake atl2 + ipfiremake hso + ipfiremake e1000e + ipfiremake r8101 + ipfiremake r8169 + ipfiremake r8168 ipfiremake kqemu ipfiremake v4l-dvb ipfiremake madwifi - ipfiremake sane KMOD=1 + ipfiremake alsa KMOD=1 + ipfiremake openswan KMOD=1 + ipfiremake mISDN + ipfiremake compat-wireless ipfiremake pkg-config ipfiremake linux-atm ipfiremake cpio ipfiremake klibc ipfiremake mkinitcpio - ipfiremake udev KLIBC=1 + ipfiremake udev KLIBC=1 ipfiremake expat ipfiremake gdbm ipfiremake gmp @@ -368,6 +382,7 @@ buildipfire() { ipfiremake curl ipfiremake python ipfiremake libnet + ipfiremake libnl ipfiremake libidn ipfiremake libjpeg ipfiremake libpng @@ -417,13 +432,11 @@ buildipfire() { ipfiremake whatmask ipfiremake iptables ipfiremake libupnp -# ipfiremake ipp2p IPT=1 - ipfiremake linux-igd ipfiremake ipaddr ipfiremake iptstate ipfiremake iputils ipfiremake l7-protocols - ipfiremake mISDN + ipfiremake mISDNuser ipfiremake capi4k-utils ipfiremake hwdata ipfiremake kudzu @@ -455,6 +468,11 @@ buildipfire() { ipfiremake Text-Tabs+Wrap ipfiremake Locale-Country ipfiremake XML-Parser + ipfiremake python-setuptools + ipfiremake python-clientform + ipfiremake python-mechanize + ipfiremake python-feedparser + ipfiremake python-rssdler ipfiremake glib ipfiremake GeoIP ipfiremake fwhits @@ -467,7 +485,6 @@ buildipfire() { ipfiremake snort ipfiremake oinkmaster ipfiremake squid - ipfiremake squid-graph ipfiremake squidguard ipfiremake calamaris ipfiremake tcpdump @@ -502,7 +519,6 @@ buildipfire() { ipfiremake spamassassin ipfiremake amavisd ipfiremake alsa - ipfiremake mpg123 ipfiremake mpfire ipfiremake guardian ipfiremake libid3tag @@ -513,10 +529,6 @@ buildipfire() { ipfiremake lame ipfiremake sox ipfiremake libshout - ipfiremake icecast - ipfiremake icegenerator - ipfiremake mpd - ipfiremake mpc ipfiremake xvid ipfiremake libmpeg2 ipfiremake cmake @@ -541,7 +553,6 @@ buildipfire() { ipfiremake tripwire ipfiremake sysstat ipfiremake vsftpd - ipfiremake which ipfiremake openswan ipfiremake lsof ipfiremake centerim @@ -550,8 +561,6 @@ buildipfire() { ipfiremake lm_sensors ipfiremake collectd ipfiremake lcd4linux - ipfiremake neon - ipfiremake subversion ipfiremake tcptrack ipfiremake teamspeak ipfiremake elinks @@ -565,7 +574,6 @@ buildipfire() { ipfiremake tunctl ipfiremake nagios ipfiremake ebtables - ipfiremake arptables ipfiremake fontconfig ipfiremake freefont ipfiremake directfb @@ -574,16 +582,57 @@ buildipfire() { ipfiremake videolan ipfiremake vdr ipfiremake w_scan + ipfiremake icecast + ipfiremake icegenerator + ipfiremake mpd + ipfiremake mpc ipfiremake git ipfiremake squidclamav ipfiremake bc ipfiremake esniper ipfiremake vnstat ipfiremake vnstati + ipfiremake iw ipfiremake wpa_supplicant ipfiremake hostapd ipfiremake urlgrabber - ipfiremake tftp-hpa + ipfiremake syslinux + ipfiremake tftpd + ipfiremake cpufrequtils + ipfiremake dbus + ipfiremake bluetooth + ipfiremake gutenprint + ipfiremake apcupsd + ipfiremake iperf + ipfiremake netcat + ipfiremake 7zip + ipfiremake lynis + #ipfiremake cryptsetup + ipfiremake splix + ipfiremake streamripper + ipfiremake sshfs + ipfiremake sqlite + 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 @@ -592,13 +641,18 @@ buildipfire() { git status >> $BASEDIR/build/var/ipfire/firebuild echo >> $BASEDIR/build/var/ipfire/firebuild cat /proc/cpuinfo >> $BASEDIR/build/var/ipfire/firebuild + 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() { # Run installer scripts one by one LOGFILE="$BASEDIR/log/_build.installer.log" export LOGFILE - ipfiremake syslinux ipfiremake as86 ipfiremake mbr ipfiremake memtest @@ -655,21 +709,34 @@ buildpackages() { 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 - + 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 + 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/* @@ -710,7 +777,7 @@ case "$1" in 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 @@ -745,6 +812,11 @@ build) beautify build_stage "Building packages" buildpackages + + beautify build_stage "Checking Logfiles for new Files" + cd .. + tools/checknewlog.pl + beautify build_end ;; shell) @@ -834,27 +906,27 @@ toolchain) 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 $URL_TOOLCHAIN/$PACKAGE.tar.gz $URL_TOOLCHAIN/$PACKAGE.md5 >& /dev/null + wget -U "IPFireSourceGrabber/2.x" $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 @@ -885,6 +957,8 @@ othersrc) git) case "$2" in update|up) + ## REMOVES ALL UNCOMMITTED CHANGES! + [ "$3" == "--force" ] && git checkout -f git pull ;; commit|ci) @@ -918,76 +992,36 @@ git) [ -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} + git push ${GIT_URL} $3 ;; + 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) 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 < .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