2 ############################################################################
4 # This file is part of the IPFire Firewall. #
6 # IPFire is free software; you can redistribute it and/or modify #
7 # it under the terms of the GNU General Public License as published by #
8 # the Free Software Foundation; either version 2 of the License, or #
9 # (at your option) any later version. #
11 # IPFire is distributed in the hope that it will be useful, #
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of #
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
14 # GNU General Public License for more details. #
16 # You should have received a copy of the GNU General Public License #
17 # along with IPFire; if not, write to the Free Software #
18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
20 # Copyright (C) 2007 IPFire-Team <info@ipfire.org>. #
22 ############################################################################
25 NAME
="IPFire" # Software name
26 SNAME
="ipfire" # Short name
27 VERSION
="2.1" # Version number
28 SLOGAN
="www.ipfire.org" # Software slogan
29 CONFIG_ROOT
=/var
/ipfire
# Configuration rootdir
31 MAX_RETRIES
=1 # prefetch/check loop
32 KVER
=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'`
34 SVN_REVISION
=`svn info | grep Revision | cut -c 11-`
36 IPFVER
="full" # Which versions should be compiled? (full|devel)
38 # Debian specific settings
39 if [ ! -e /etc
/debian_version
]; then
42 if [ -x /usr
/bin
/realpath
]; then
43 FULLPATH
=`/usr/bin/realpath $0`
45 echo "ERROR: Need to do apt-get install realpath"
51 BASENAME
=`basename $0`
52 BASEDIR
=`echo $FULLPATH | sed "s/\/$BASENAME//g"`
53 LOGFILE
=$BASEDIR/log
/_build.preparation.log
54 export BASEDIR LOGFILE
55 DIR_CHK
=$BASEDIR/cache
/check
56 mkdir
$BASEDIR/log
/ 2>/dev
/null
59 . tools
/make-functions
61 if [ -f .config
]; then
64 echo -e "${BOLD}No configuration found!${NORMAL}"
65 echo -ne "Do you want to create one (y/N)?"
68 if [ "$CREATE_CONFIG" == "y" ]; then
74 ############################################################################
76 # Are we running the right shell? #
78 ############################################################################
79 if [ ! "$BASH" ]; then
80 exiterror
"BASH environment variable is not set. You're probably running the wrong shell."
83 if [ -z "${BASH_VERSION}" ]; then
84 exiterror
"Not running BASH shell."
88 ############################################################################
90 # Trap on emergency exit #
92 ############################################################################
93 trap "exiterror 'Build process interrupted'" SIGINT SIGTERM SIGKILL SIGSTOP SIGQUIT
96 ############################################################################
98 # Resetting our nice level #
100 ############################################################################
101 echo -ne "Resetting our nice level to $NICE" |
tee -a $LOGFILE
102 renice
$NICE $$
> /dev
/null
103 if [ `nice` != "$NICE" ]; then
104 beautify message FAIL
105 exiterror
"Failed to set correct nice level"
107 beautify message DONE
111 ############################################################################
113 # Checking if running as root user #
115 ############################################################################
116 echo -ne "Checking if we're running as root user" |
tee -a $LOGFILE
117 if [ `id -u` != 0 ]; then
118 beautify message FAIL
119 exiterror
"Not building as root"
121 beautify message DONE
125 ############################################################################
127 # Checking for necessary temporary space #
129 ############################################################################
130 echo -ne "Checking for necessary space on disk $BASE_DEV" |
tee -a $LOGFILE
131 BASE_DEV
=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $1 }'`
132 BASE_ASPACE
=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $4 }'`
133 if (( 2048000 > $BASE_ASPACE )); then
134 BASE_USPACE
=`du -skx $BASEDIR | awk '{print $1}'`
135 if (( 2048000 - $BASE_USPACE > $BASE_ASPACE )); then
136 beautify message FAIL
137 exiterror
"Not enough temporary space available, need at least 2GB on $BASE_DEV"
140 beautify message DONE
143 ############################################################################
145 # Building Linux From Scratch system #
147 ############################################################################
154 # Check /tools symlink
155 if [ -h /tools
]; then
158 if [ ! -a /tools
]; then
159 ln -s $BASEDIR/build
/tools
/
161 if [ ! -h /tools
]; then
162 exiterror
"Could not create /tools symbolic link."
169 export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING
170 unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
172 # Make some extra directories
173 mkdir
-p $BASEDIR/build
/{tools
,etc
,usr
/src
} 2>/dev
/null
174 mkdir
-p $BASEDIR/build
/{dev
/{shm
,pts
},proc
,sys
}
175 mkdir
-p $BASEDIR/{cache
,ccache
} 2>/dev
/null
176 mkdir
-p $BASEDIR/build
/usr
/src
/{cache
,config
,doc
,html
,langs
,lfs
,log
,src
,ccache
}
178 mknod
-m 600 $BASEDIR/build
/dev
/console c
5 1 2>/dev
/null
179 mknod
-m 666 $BASEDIR/build
/dev
/null c
1 3 2>/dev
/null
181 # Make all sources and proc available under lfs build
182 mount
--bind /dev
$BASEDIR/build
/dev
183 mount
--bind /dev
/pts
$BASEDIR/build
/dev
/pts
184 mount
--bind /dev
/shm
$BASEDIR/build
/dev
/shm
185 mount
--bind /proc
$BASEDIR/build
/proc
186 mount
--bind /sys
$BASEDIR/build
/sys
187 mount
--bind $BASEDIR/cache
$BASEDIR/build
/usr
/src
/cache
188 mount
--bind $BASEDIR/ccache
$BASEDIR/build
/usr
/src
/ccache
189 mount
--bind $BASEDIR/config
$BASEDIR/build
/usr
/src
/config
190 mount
--bind $BASEDIR/doc
$BASEDIR/build
/usr
/src
/doc
191 mount
--bind $BASEDIR/html
$BASEDIR/build
/usr
/src
/html
192 mount
--bind $BASEDIR/langs
$BASEDIR/build
/usr
/src
/langs
193 mount
--bind $BASEDIR/lfs
$BASEDIR/build
/usr
/src
/lfs
194 mount
--bind $BASEDIR/log
$BASEDIR/build
/usr
/src
/log
195 mount
--bind $BASEDIR/src
$BASEDIR/build
/usr
/src
/src
197 # This is a temporary hack!!!
198 if [ ! -f /tools
/bin
/hostname
]; then
199 cp -f /bin
/hostname
/tools
/bin
/hostname
2>/dev
/null
202 # Run LFS static binary creation scripts one by one
203 export CCACHE_DIR
=$BASEDIR/ccache
204 export CCACHE_HASHDIR
=1
206 # Remove pre-install list of installed files in case user erase some files before rebuild
207 rm -f $BASEDIR/build
/usr
/src
/lsalr
2>/dev
/null
211 LOGFILE
="$BASEDIR/log/_build.toolchain.log"
214 NATIVEGCC
=`gcc --version | grep GCC | awk {'print $3'}`
215 export NATIVEGCC GCCmajor
=${NATIVEGCC:0:1} GCCminor=${NATIVEGCC:2:1} GCCrelease=${NATIVEGCC:4:1}
217 lfsmake1 binutils PASS
=1
219 export PATH
=$BASEDIR/build
/usr
/local
/bin
:$BASEDIR/build
/tools
/bin
:$PATH
220 lfsmake1 linux-libc-header
222 lfsmake1 cleanup-toolchain PASS
=1
227 lfsmake1 binutils PASS
=2
246 lfsmake1 cleanup-toolchain PASS
=2
247 export PATH
=$ORG_PATH
251 LOGFILE
="$BASEDIR/log/_build.base.log"
254 lfsmake2 linux-libc-header
257 lfsmake2 cleanup-toolchain PASS
=3
300 lfsmake2 reiser4progs
313 LOGFILE
="$BASEDIR/log/_build.ipfire.log"
315 ipfiremake configroot
324 ipfiremake linux SMP
=1
325 ipfiremake ipp2p SMP
=1
326 ipfiremake zaptel SMP
=1
327 ipfiremake r8169 SMP
=1
328 ipfiremake r8168 SMP
=1
329 ipfiremake mcs7830 SMP
=1
330 ipfiremake atl1 SMP
=1
331 ipfiremake dm9601 SMP
=1
332 ipfiremake kqemu SMP
=1
333 ipfiremake sane KMOD
=1 SMP
=1
343 ipfiremake sane KMOD
=1
344 ipfiremake pkg-config
348 ipfiremake mkinitcpio
349 ipfiremake udev KLIBC
=1
374 ipfiremake BerkeleyDB
376 ipfiremake cyrus-sasl
380 ipfiremake apache2 PASS
=C
386 ipfiremake dosfstools
387 ipfiremake squashfstools
388 ipfiremake reiserfsprogs
390 ipfiremake sysfsutils
394 ipfiremake ez-ipupdate
398 ipfiremake GD-TextUtil
403 ipfiremake initscripts
407 ipfiremake ipp2p IPT
=1
413 ipfiremake l7-protocols
415 ipfiremake capi4k-utils
420 ipfiremake misc-progs
424 ipfiremake HTML-Tagset
425 ipfiremake HTML-Parser
426 ipfiremake Compress-Zlib
428 ipfiremake Digest-SHA1
429 ipfiremake Digest-HMAC
430 ipfiremake libwww-perl
432 ipfiremake Net-IPv4Addr
433 ipfiremake Net_SSLeay
434 ipfiremake IO-Stringy
435 ipfiremake Unix-Syslog
436 ipfiremake Mail-Tools
437 ipfiremake MIME-Tools
438 ipfiremake Net-Server
439 ipfiremake Convert-TNEF
440 ipfiremake Convert-UUlib
441 ipfiremake Archive-Tar
442 ipfiremake Archive-Zip
443 ipfiremake Text-Tabs
+Wrap
444 ipfiremake Locale-Country
445 ipfiremake XML-Parser
449 ipfiremake noip_updater
457 ipfiremake oinkmaster
459 ipfiremake squid-graph
460 ipfiremake squidguard
463 ipfiremake
traceroute
474 ipfiremake ghostscript
481 ipfiremake bridge-utils
484 ipfiremake smartmontools
488 ipfiremake cyrus-imapd
489 ipfiremake openmailadmin
491 ipfiremake spamassassin
505 ipfiremake icegenerator
515 ipfiremake applejuice
518 ipfiremake libtorrent
520 ipfiremake ipfireseeder
522 ipfiremake tcpwrapper
537 ipfiremake pcmciautils
541 ipfiremake subversion
555 ipfiremake fontconfig
562 # Run installer scripts one by one
563 LOGFILE
="$BASEDIR/log/_build.installer.log"
569 installmake linux-libc-header
571 ipfiremake uClibc PASS
=1
572 ipfiremake gcc INST
=1
573 installmake uClibc PASS
=2
574 installmake gcc INST
=2
575 installmake uClibc PASS
=3
584 installmake misc-progs
586 installmake reiser4progs
587 installmake reiserfsprogs
588 installmake sysfsutils
589 installmake util-linux
596 installmake pcmciautils
597 installmake installer
602 LOGFILE
="$BASEDIR/log/_build.packages.log"
604 echo "... see detailed log in _build.*.log files" >> $LOGFILE
608 # Generating list of packages used
609 echo -n "Generating packages list from logs" |
tee -a $LOGFILE
610 rm -f $BASEDIR/doc
/packages-list
611 for i
in `ls -1tr $BASEDIR/log/[^_]*`; do
612 if [ "$i" != "$BASEDIR/log/FILES" -a -n $i ]; then
613 echo "* `basename $i`" >>$BASEDIR/doc
/packages-list
616 echo "== List of softwares used to build $NAME Version: $VERSION ==" > $BASEDIR/doc
/packages-list.txt
617 grep -v 'configroot$\|img$\|initrd$\|initscripts$\|installer$\|install$\|setup$\|pakfire$\|stage2$\|smp$\|tools$\|tools1$\|tools2$\|.tgz$\|-config$\|_missing_rootfile$\|install1$\|install2$\|pass1$\|pass2$\|pass3$' \
618 $BASEDIR/doc
/packages-list |
sort >> $BASEDIR/doc
/packages-list.txt
619 rm -f $BASEDIR/doc
/packages-list
620 # packages-list.txt is ready to be displayed for wiki page
621 beautify message DONE
623 # Create images for install
624 ipfiremake cdrom ED
=full
626 # Check if there is a loop device for building in virtual environments
627 if [ -e /dev
/loop
/0 ] ||
[ -e /dev
/loop0
]; then
630 mv $LFS/install
/images
/{*.iso
,*.tgz
,*.img.gz
} $BASEDIR >> $LOGFILE 2>&1
636 rm -rf $BASEDIR/build
/tmp
/*
638 # Generating total list of files
639 echo -n "Generating files list from logs" |
tee -a $LOGFILE
640 rm -f $BASEDIR/log
/FILES
641 for i
in `ls -1tr $BASEDIR/log/[^_]*`; do
642 if [ "$i" != "$BASEDIR/log/FILES" -a -n $i ]; then
643 echo "##" >>$BASEDIR/log
/FILES
644 echo "## `basename $i`" >>$BASEDIR/log
/FILES
645 echo "##" >>$BASEDIR/log
/FILES
646 cat $i |
sed "s%^\./%#%" |
sort >> $BASEDIR/log
/FILES
649 beautify message DONE
655 ipfiremake core-updates
656 for i
in $
(ls -1 $BASEDIR/config
/rootfiles
/packages
); do
657 if [ -e $BASEDIR/lfs
/$i ]; then
661 beautify message SKIP
664 test -d $BASEDIR/packages || mkdir
$BASEDIR/packages
665 mv -f $LFS/install
/packages
/* $BASEDIR/packages
>> $LOGFILE 2>&1
666 rm -rf $BASEDIR/build
/install
/packages
/*
669 # See what we're supposed to do
673 BUILDMACHINE
=`uname -m`
674 PACKAGE
=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz 2> /dev/null | head -n 1`
675 #only restore on a clean disk
676 if [ ! -f log
/cleanup-toolchain-2-tools
]; then
677 if [ ! -n "$PACKAGE" ]; then
678 beautify build_stage
"Full toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
682 PACKAGENAME
=${PACKAGE%.tar.gz}
683 beautify build_stage
"Packaged toolchain compilation"
684 if [ `md5sum $PACKAGE | awk '{print $1}'` == `cat $PACKAGENAME.md5 | awk '{print $1}'` ]; then
688 exiterror
"$PACKAGENAME md5 did not match, check downloaded package"
692 echo -n "Using installed toolchain" |
tee -a $LOGFILE
693 beautify message SKIP
698 beautify build_stage
"Building LFS"
701 beautify build_stage
"Building IPFire"
704 # Setzen des IPFire Builds
705 if [ "$SVN_REVISION" ]; then
706 echo "$SVN_REVISION" > $BASEDIR/build
/var
/ipfire
/firebuild
708 echo "_(OvO)_" > $BASEDIR/build
/var
/ipfire
/firebuild
711 beautify build_stage
"Building installer"
714 beautify build_stage
"Building packages"
719 # enter a shell inside LFS chroot
720 # may be used to changed kernel settings
725 echo -n "Loading new Changelog from SVN: "
726 svn log http
://svn.ipfire.org
/svn
/ipfire
> doc
/ChangeLog
727 beautify message DONE
730 echo -en "${BOLD}Cleaning build directory...${NORMAL}"
731 for i
in `mount | grep $BASEDIR | sed 's/^.*loop=\(.*\))/\1/'`; do
732 $LOSETUP -d $i 2>/dev
/null
734 for i
in `mount | grep $BASEDIR | cut -d " " -f 1`; do
738 for i
in `seq 0 7`; do
739 if ( losetup
/dev
/loop
${i} 2>/dev
/null |
grep -q "/install/images" ); then
740 umount
/dev
/loop
${i} 2>/dev
/null
;
741 losetup
-d /dev
/loop
${i} 2>/dev
/null
;
744 rm -rf $BASEDIR/build
745 rm -rf $BASEDIR/cdrom
746 rm -rf $BASEDIR/packages
748 if [ -h /tools
]; then
751 beautify message DONE
754 if [ ! -d $BASEDIR/cache
]; then
757 mkdir
-p $BASEDIR/log
758 echo -e "${BOLD}Preload all source files${NORMAL}" |
tee -a $LOGFILE
761 for c
in `seq $MAX_RETRIES`; do
762 if (( FINISHED
==1 )); then
768 if [ -f "$i" -a "$i" != "Config" ]; then
769 echo -ne "Loading $i"
770 make -s -f $i LFS_BASEDIR
=$BASEDIR MESSAGE
="$i\t ($c/$MAX_RETRIES)" download
>> $LOGFILE 2>&1
771 if [ $?
-ne 0 ]; then
772 beautify message FAIL
775 if [ $c -eq 1 ]; then
776 beautify message DONE
782 echo -e "${BOLD}***Verifying md5sums${NORMAL}"
785 if [ -f "$i" -a "$i" != "Config" ]; then
786 make -s -f $i LFS_BASEDIR
=$BASEDIR MESSAGE
="$i\t " md5
>> $LOGFILE 2>&1
787 if [ $?
-ne 0 ]; then
788 echo -ne "MD5 difference in lfs/$i"
789 beautify message FAIL
794 if [ $ERROR -eq 0 ]; then
795 echo -ne "${BOLD}all files md5sum match${NORMAL}"
796 beautify message DONE
798 echo -ne "${BOLD}not all files were correctly download${NORMAL}"
799 beautify message FAIL
806 beautify build_stage
"Toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
808 BUILDMACHINE
=`uname -m`
809 echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $BUILDMACHINE" |
tee -a $LOGFILE
810 test -d $BASEDIR/cache
/toolchains || mkdir
$BASEDIR/cache
/toolchains
811 cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache
/toolchains
/$SNAME-$VERSION-toolchain-$BUILDMACHINE.
tar.gz \
812 build
/{bin
,etc
,usr
/bin
,usr
/local} \
813 build
/tools
/{bin
,etc
,*-linux-gnu,include
,lib
,libexec
,sbin
,share
,var
} \
815 md5sum cache
/toolchains
/$SNAME-$VERSION-toolchain-$BUILDMACHINE.
tar.gz \
816 > cache
/toolchains
/$SNAME-$VERSION-toolchain-$BUILDMACHINE.md5
820 BUILDMACHINE
=`uname -m`
821 # arbitrary name to be updated in case of new toolchain package upload
822 PACKAGE
=$SNAME-$VERSION-toolchain-$BUILDMACHINE
823 if [ ! -f $BASEDIR/cache
/toolchains
/$PACKAGE.
tar.gz
]; then
824 URL_TOOLCHAIN
=`grep URL_TOOLCHAIN lfs/Config | awk '{ print $3 }'`
825 test -d $BASEDIR/cache
/toolchains || mkdir
$BASEDIR/cache
/toolchains
826 echo "`date -u '+%b %e %T'`: Load toolchain tar.gz for $BUILDMACHINE" |
tee -a $LOGFILE
827 cd $BASEDIR/cache
/toolchains
828 wget
$URL_TOOLCHAIN/$PACKAGE.
tar.gz
$URL_TOOLCHAIN/$PACKAGE.md5
>& /dev
/null
829 if [ $?
-ne 0 ]; then
830 echo "`date -u '+%b %e %T'`: error downloading toolchain for $BUILDMACHINE machine" |
tee -a $LOGFILE
832 if [ "`md5sum $PACKAGE.tar.gz | awk '{print $1}'`" = "`cat $PACKAGE.md5 | awk '{print $1}'`" ]; then
833 echo "`date -u '+%b %e %T'`: toolchain md5 ok" |
tee -a $LOGFILE
835 exiterror
"$PACKAGE.md5 did not match, check downloaded package"
839 echo "Toolchain is already downloaded. Exiting..."
844 echo -ne "`date -u '+%b %e %T'`: Build sources iso for $MACHINE" |
tee -a $LOGFILE
845 chroot
$LFS /tools
/bin
/env
-i HOME
=/root \
846 TERM
=$TERM PS1
='\u:\w\$ ' \
847 PATH
=/usr
/local
/bin
:/bin
:/usr
/bin
:/sbin
:/usr
/sbin \
848 VERSION
=$VERSION NAME
="$NAME" SNAME
="$SNAME" MACHINE
=$MACHINE \
849 /bin
/bash
-x -c "cd /usr/src/lfs && make -f sources-iso LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
850 mv $LFS/install
/images
/ipfire-
* $BASEDIR >> $LOGFILE 2>&1
851 if [ $?
-eq "0" ]; then
852 beautify message DONE
854 beautify message FAIL
862 echo -ne "Loading the latest source files...\n"
864 svn update
-r $3 |
tee -a $PWD/log
/_build.svn.update.log
866 svn update |
tee -a $PWD/log
/_build.svn.update.log
868 if [ $?
-eq "0" ]; then
869 beautify message DONE
871 beautify message FAIL
874 echo -ne "Writing the svn-info to a file"
875 svn info
> $PWD/svn_status
876 if [ $?
-eq "0" ]; then
877 beautify message DONE
879 beautify message FAIL
887 if [ -f /usr
/bin
/mcedit
]; then
888 export EDITOR
=/usr
/bin
/mcedit
890 if [ -f /usr
/bin
/nano
]; then
891 export EDITOR
=/usr
/bin
/nano
893 echo -ne "Selecting editor $EDITOR..."
894 beautify message DONE
895 if [ -e /sbin
/yast
]; then
896 if [ "`echo $SVN_REVISION | cut -c 3`" -eq "0" ]; then
903 if [ -n "$FTP_CACHE_URL" ]; then
911 if [ -f ipfire-source-r
$SVN_REVISION.
tar.gz
]; then
912 echo -ne "REV $SVN_REVISION: SKIPPED!\n"
915 echo -en "REV $SVN_REVISION: Downloading..."
916 svn
export http
://svn.ipfire.org
/svn
/ipfire
/trunk ipfire-source
/ --force > /dev
/null
917 svn log http
://svn.ipfire.org
/svn
/ipfire
/trunk
-r 1:$SVN_REVISION > ipfire-source
/Changelog
918 #svn info http://svn.ipfire.org/svn/ipfire/trunk -r $SVN_REVISION > ipfire-source/svn_status
921 echo -en "REV $SVN_REVISION: Compressing files..."
922 if [ -e ipfire-source
/trunk
/make.sh
]; then
923 chmod 755 ipfire-source
/trunk
/make.sh
925 tar cfz ipfire-source-r
$SVN_REVISION.
tar.gz ipfire-source
927 echo -en "REV $SVN_REVISION: Cleaning up..."
933 echo -ne "Make a local diff to last svn revision"
934 svn
diff > ipfire-diff-
`date +'%Y-%m-%d-%H:%M'`-r`svn info | grep Revision | cut -c 11-`.
diff
936 echo "Diff was successfully saved to ipfire-diff-`date +'%Y-%m-%d-%H:%M'`-r`svn info | grep Revision | cut -c 11-`.diff"
944 echo -e "Uploading cache to ftp server:"
945 ncftpls
-u $FTP_CACHE_USER -p $FTP_CACHE_PASS ftp://$FTP_CACHE_URL/$FTP_CACHE_PATH/ > /tmp
/ftplist
947 if [ "$(basename $i)" == "toolchains" ]; then continue; fi
948 grep -q $
(basename $i) /tmp
/ftplist
949 if [ "$?" -ne "0" ]; then
950 echo -ne "$(basename $i)"
951 ncftpput
-u $FTP_CACHE_USER -p $FTP_CACHE_PASS $FTP_CACHE_URL $FTP_CACHE_PATH/ $
(basename $i)
952 if [ "$?" -ne "0" ]; then
953 beautify message FAIL
962 FTP_ISO_PORT
=`echo "$FTP_ISO_URL" | awk -F: '{ print $2 }'`
963 FTP_ISO_URL
=`echo "$FTP_ISO_URL" | awk -F: '{ print $1 }'`
964 if [ -z $FTP_ISO_PORT ]; then
967 cat <<EOF > .ftp-commands
968 mkdir -p $FTP_ISO_PATH$SVN_REVISION
969 mkdir -p $FTP_ISO_PATH$SVN_REVISION/paks
972 ncftp
-u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL < .ftp-commands
977 echo -e "Uploading the iso to $FTP_ISO_PATH/$SVN_REVISION."
979 md5sum ipfire-
$VERSION.
$MACHINE-full.iso
> ipfire-
$VERSION.
$MACHINE-full.iso.md5
980 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
982 ncftpput
-u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/ $i
983 if [ "$?" -eq "0" ]; then
984 echo "The file with name $i was successfully uploaded to $FTP_ISO_URL$FTP_ISO_PATH$SVN_REVISION/."
986 echo "There was an error while uploading the file $i to the ftp server."
991 rm -f ipfire-
$VERSION.
$MACHINE-full.iso.md5
992 if [ "$3" = "--with-sources-cd" ]; then
993 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
997 ncftpput
-u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/paks packages
/*
998 if [ "$?" -eq "0" ]; then
999 echo -e "The packages were successfully uploaded to $FTP_ISO_URL$FTP_ISO_PATH$SVN_REVISION/."
1001 echo -e "There was an error while uploading the packages to the ftp server."
1008 if [ "$2" = "--background" ]; then
1012 if [ `screen -ls | grep -q ipfire` ]; then
1013 echo "Build is already running, sorry!"
1016 if [ "$2" = "--rebuild" ]; then
1017 export IPFIRE_REBUILD
=1
1020 export IPFIRE_REBUILD
=0
1022 echo -en "${BOLD}***IPFire-Batch-Build is starting...${NORMAL}"
1023 screen
-dmS ipfire
$0 batch --background
1051 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"
1054 "IPFIRE: Downloadsrc")
1057 "IPFIRE: Build (silent)")
1060 "IPFIRE: Watch Build")
1073 echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain}"
1074 cat doc
/make.sh-usage
1089 echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain}"
1090 cat doc
/make.sh-usage