X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=blobdiff_plain;f=make.sh;h=8a3adb55dcc10aa59acccb1834da61ee721643f6;hp=c20f82c301b6f395066c95e701ffbe237588524d;hb=350b52c5c9368951ff2a9139817b42d0aec03ad7;hpb=e22c79733eaa73eb0a2817473f6ef261f789b508 diff --git a/make.sh b/make.sh old mode 100644 new mode 100755 index c20f82c301..8a3adb55dc --- a/make.sh +++ b/make.sh @@ -24,16 +24,18 @@ NAME="IPFire" # Software name SNAME="ipfire" # Short name -VERSION="2.0" # Version number -SLOGAN="www.ipfire.eu" # Software slogan +VERSION="2.0b" # Version number +SLOGAN="www.ipfire.org" # Software slogan CONFIG_ROOT=/var/ipfire # Configuration rootdir NICE=10 # Nice level -MAX_RETRIES=3 # prefetch/check loop +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-` -# Setzen des IPFire Builds +IPFVER="full" # Which versions should be compiled? (full|light|devel) + +# Set an information about the build number if [ -e ./.svn ]; then FIREBUILD=`cat .svn/entries |sed -n 's/^[ \t]*revision=\"// p' | sed -n 's/\".*$// p'` fi @@ -64,7 +66,13 @@ mkdir $BASEDIR/log/ 2>/dev/null if [ -f .config ]; then . .config else - make_config + echo -e "${BOLD}No configuration found!${NORMAL}" + echo -ne "Do you want to create one (y/N)?" + read CREATE_CONFIG + echo "" + if [ "$CREATE_CONFIG" == "y" ]; then + make_config + fi fi prepareenv() { @@ -127,11 +135,11 @@ prepareenv() { echo -ne "Checking for necessary space on disk $BASE_DEV" | tee -a $LOGFILE BASE_DEV=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $1 }'` BASE_ASPACE=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $4 }'` - if (( 2202000 > $BASE_ASPACE )); then + if (( 2048000 > $BASE_ASPACE )); then BASE_USPACE=`du -skx $BASEDIR | awk '{print $1}'` - if (( 2202000 - $BASE_USPACE > $BASE_ASPACE )); then + if (( 2048000 - $BASE_USPACE > $BASE_ASPACE )); then beautify message FAIL - exiterror "Not enough temporary space available, need at least 2.1GB on $BASE_DEV" + exiterror "Not enough temporary space available, need at least 2GB on $BASE_DEV" fi else beautify message DONE @@ -162,7 +170,7 @@ prepareenv() { # Setup environment set +h LC_ALL=POSIX - MAKETUNING="-j8" + MAKETUNING="-j6" export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD @@ -177,10 +185,10 @@ prepareenv() { # Make all sources and proc available under lfs build mount --bind /dev $BASEDIR/build/dev - mount -t devpts devpts $BASEDIR/build/dev/pts - mount -t tmpfs shm $BASEDIR/build/dev/shm - mount -t proc proc $BASEDIR/build/proc - mount -t sysfs sysfs $BASEDIR/build/sys + mount --bind /dev/pts $BASEDIR/build/dev/pts + mount --bind /dev/shm $BASEDIR/build/dev/shm + mount --bind /proc $BASEDIR/build/proc + mount --bind /sys $BASEDIR/build/sys mount --bind $BASEDIR/cache $BASEDIR/build/usr/src/cache mount --bind $BASEDIR/ccache $BASEDIR/build/usr/src/ccache mount --bind $BASEDIR/config $BASEDIR/build/usr/src/config @@ -191,6 +199,11 @@ prepareenv() { mount --bind $BASEDIR/log $BASEDIR/build/usr/src/log mount --bind $BASEDIR/src $BASEDIR/build/usr/src/src + # This is a temporary hack!!! + if [ ! -f /tools/bin/hostname ]; then + cp -f /bin/hostname /tools/bin/hostname 2>/dev/null + fi + # Run LFS static binary creation scripts one by one export CCACHE_DIR=$BASEDIR/ccache export CCACHE_HASHDIR=1 @@ -243,7 +256,6 @@ buildbase() { LOGFILE="$BASEDIR/log/_build.base.log" export LOGFILE lfsmake2 stage2 -# lfsmake2 makedev lfsmake2 linux-libc-header lfsmake2 man-pages lfsmake2 glibc @@ -268,10 +280,10 @@ buildbase() { lfsmake2 bzip2 lfsmake2 diffutils lfsmake2 e2fsprogs + lfsmake2 ed lfsmake2 file lfsmake2 findutils lfsmake2 flex - lfsmake2 grub lfsmake2 gawk lfsmake2 gettext lfsmake2 grep @@ -281,12 +293,16 @@ buildbase() { lfsmake2 iproute2 lfsmake2 kbd lfsmake2 less + lfsmake2 libaal lfsmake2 make lfsmake2 man lfsmake2 mktemp lfsmake2 modutils + lfsmake2 mtd + lfsmake2 net-tools lfsmake2 patch lfsmake2 psmisc + lfsmake2 reiser4progs lfsmake2 shadow lfsmake2 sysklogd lfsmake2 sysvinit @@ -295,11 +311,7 @@ buildbase() { lfsmake2 udev lfsmake2 util-linux lfsmake2 vim -#### -# lfsmake2 net-tools -# lfsmake2 inetutils -# lfsmake2 ed -# lfsmake2 procinfo + lfsmake2 grub } buildipfire() { @@ -314,72 +326,62 @@ buildipfire() { ipfiremake ppp ipfiremake rp-pppoe ipfiremake unzip - ipfiremake linux PASS=ipfire SMP=installer - ipfiremake linux PASS=ipfire SMP=1 - ipfiremake 3cp4218 SMP=1 - ipfiremake amedyn SMP=1 - ipfiremake cxacru SMP=1 - ipfiremake eagle SMP=1 - ipfiremake cnx_pci SMP=1 + ipfiremake linux SMP=1 + ipfiremake ipp2p SMP=1 ipfiremake fcdsl SMP=1 ipfiremake fcdsl2 SMP=1 ipfiremake fcdslsl SMP=1 ipfiremake fcdslusb SMP=1 ipfiremake fcdslslusb SMP=1 ipfiremake fcpci SMP=1 - ipfiremake fcclassic SMP=1 - ipfiremake pulsar SMP=1 - ipfiremake unicorn SMP=1 - ipfiremake promise-sata-300-tx SMP=1 - ipfiremake linux PASS=ipfire - ipfiremake 3cp4218 - ipfiremake amedyn - ipfiremake cxacru - ipfiremake eciadsl - ipfiremake eagle - ipfiremake speedtouch - ipfiremake cnx_pci - ipfiremake fcdsl - ipfiremake fcdsl2 - ipfiremake fcdslsl - ipfiremake fcdslusb - ipfiremake fcdslslusb +# ipfiremake promise-sata-300-tx SMP=1 + ipfiremake zaptel SMP=1 + ipfiremake fuse SMP=1 + ipfiremake linux + ipfiremake ipp2p + ipfiremake fcdsl + ipfiremake fcdsl2 + ipfiremake fcdslsl + ipfiremake fcdslusb + ipfiremake fcdslslusb ipfiremake fcpci - ipfiremake fcclassic - ipfiremake pulsar - ipfiremake unicorn - ipfiremake promise-sata-300-tx - ipfiremake pcmcia-cs +# ipfiremake promise-sata-300-tx + ipfiremake zaptel + ipfiremake fuse + ipfiremake pkg-config + ipfiremake cpio + ipfiremake klibc + ipfiremake mkinitcpio + ipfiremake udev KLIBC=1 ipfiremake expat ipfiremake gdbm ipfiremake gmp + ipfiremake pam ipfiremake openssl ipfiremake python ipfiremake libnet + ipfiremake libjpeg ipfiremake libpng ipfiremake libtiff - ipfiremake libjpeg ipfiremake lcms ipfiremake libmng ipfiremake freetype + ipfiremake libart ipfiremake gd ipfiremake popt + ipfiremake pcre ipfiremake slang ipfiremake newt ipfiremake libcap ipfiremake pciutils - ipfiremake pcre - ipfiremake readline ipfiremake libxml2 - ipfiremake berkeley - ipfiremake BerkeleyDB ## The Perl module + ipfiremake BerkeleyDB ipfiremake mysql - ipfiremake saslauthd PASS=1 + ipfiremake cyrus-sasl ipfiremake openldap ipfiremake apache2 ipfiremake php - ipfiremake subversion - ipfiremake apache2 PASS=CONFIG + ipfiremake apache2 PASS=C ipfiremake arping ipfiremake beep ipfiremake bind @@ -387,27 +389,37 @@ buildipfire() { ipfiremake cdrtools ipfiremake dnsmasq ipfiremake dosfstools + ipfiremake reiserfsprogs + ipfiremake squashfstools + ipfiremake sysfsutils + ipfiremake ntfs-3g ipfiremake ethtool ipfiremake ez-ipupdate ipfiremake fcron - ipfiremake perl-GD + ipfiremake GD + ipfiremake GD-Graph + ipfiremake GD-TextUtil ipfiremake gnupg ipfiremake hdparm ipfiremake ibod ipfiremake initscripts + ipfiremake whatmask ipfiremake iptables + ipfiremake libupnp + ipfiremake ipp2p IPT=1 + ipfiremake moblock + ipfiremake linux-igd ipfiremake ipac-ng ipfiremake ipaddr - ipfiremake iproute2 ipfiremake iptstate ipfiremake iputils ipfiremake l7-protocols ipfiremake isapnptools - ipfiremake isdn4k-utils +# ipfiremake isdn4k-utils # What about mISDN??? + ipfiremake hwdata ipfiremake kudzu ipfiremake logrotate ipfiremake logwatch - ipfiremake mingetty ipfiremake misc-progs ipfiremake mtools ipfiremake nano @@ -435,11 +447,12 @@ buildipfire() { ipfiremake Archive-Zip ipfiremake Text-Tabs+Wrap ipfiremake Locale-Country + ipfiremake XML-Parser + ipfiremake glib ipfiremake GeoIP ipfiremake fwhits ipfiremake noip_updater ipfiremake ntp - ipfiremake oinkmaster ipfiremake openssh ipfiremake openswan ipfiremake pptpclient @@ -447,9 +460,12 @@ buildipfire() { ipfiremake setserial ipfiremake setup ipfiremake snort + ipfiremake snortsnarf + ipfiremake oinkmaster ipfiremake squid ipfiremake squid-graph ipfiremake squidguard + ipfiremake calamaris ipfiremake tcpdump ipfiremake traceroute ipfiremake vlan @@ -457,61 +473,45 @@ buildipfire() { ipfiremake libsafe ipfiremake 3c5x9setup ipfiremake pakfire - ipfiremake startscripts ipfiremake java ipfiremake bootsplash ipfiremake spandsp ipfiremake lzo ipfiremake openvpn - ipfiremake pkg-config - ipfiremake glib - ipfiremake pam ipfiremake pammysql - ipfiremake saslauthd PASS=2 - ipfiremake xinetd ipfiremake ghostscript ipfiremake cups ipfiremake samba ipfiremake sudo ipfiremake mc ipfiremake wget - ipfiremake wput ipfiremake bridge-utils ipfiremake screen ipfiremake hddtemp ipfiremake smartmontools ipfiremake htop - ipfiremake lynx ipfiremake postfix - ipfiremake procmail ipfiremake fetchmail ipfiremake cyrusimap ipfiremake webcyradm ipfiremake mailx ipfiremake clamav - ipfiremake razor ipfiremake spamassassin -# ipfiremake amavisd + ipfiremake amavisd ipfiremake stund - ipfiremake zaptel ipfiremake libpri - ipfiremake bristuff +# ipfiremake bristuff ipfiremake asterisk ipfiremake mpg123 ipfiremake libmad ipfiremake libogg ipfiremake libvorbis ipfiremake lame - ipfiremake xvid - ipfiremake mpeg2dec - ipfiremake ffmpeg ipfiremake sox ipfiremake gnump3d - ipfiremake videolan ipfiremake applejuice ipfiremake ocaml ipfiremake mldonkey - ipfiremake ntop ipfiremake rsync ipfiremake tcpwrapper ipfiremake portmap @@ -524,9 +524,9 @@ buildipfire() { ipfiremake etherwake ipfiremake ethereal ipfiremake tftp-hpa - ipfiremake iptraf - ipfiremake nagios - ipfiremake yasuc + ipfiremake bwm-ng + ipfiremake tripwire + ipfiremake sysstat } buildinstaller() { @@ -536,59 +536,48 @@ buildinstaller() { ipfiremake syslinux ipfiremake as86 ipfiremake mbr - ipfiremake uClibc + 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 e2fsprogs installmake misc-progs - installmake slang + installmake e2fsprogs + installmake libaal + installmake reiser4progs + installmake reiserfsprogs + installmake sysfsutils installmake util-linux - installmake newt installmake pciutils - installmake pcmcia-cs - installmake kbd + installmake zlib + installmake mtd + installmake wget + installmake hwdata + installmake kudzu installmake installer - installmake scsi.img - installmake driver.img installmake initrd - installmake boot.img } buildpackages() { LOGFILE="$BASEDIR/log/_build.packages.log" export LOGFILE echo "... see detailed log in _build.*.log files" >> $LOGFILE - echo -ne "`date -u '+%b %e %T'`: Stage5 packages build \n" | tee -a $LOGFILE - # Strip files - echo "`date -u '+%b %e %T'`: Stripping files" | tee -a $LOGFILE - find $LFS/lib $LFS/usr/lib $LFS/usr/share/rrdtool-* $LFS/install ! -type l \( -name '*.so' -o -name '*.so[\.0-9]*' \) \ - ! -name 'libc.so' ! -name 'libpthread.so' ! -name 'libcrypto.so.0.9.7.sha1' \ - -exec $LFS/tools/bin/strip --strip-all {} \; >> $LOGFILE 2>&1 - # add -ls before -exec if you want to verify what files are stripped - - find $LFS/{,s}bin $LFS/usr/{,s}bin $LFS/usr/local/{,s}bin ! -type l \ - -exec file {} \; | grep " ELF " | cut -f1 -d ':' | xargs $LFS/tools/bin/strip --strip-all >> $LOGFILE 2>&1 - # there add -v to strip to verify - if [ 'i386' = $MACHINE ]; then - # Create fcdsl packages - echo "`date -u '+%b %e %T'`: Building fcdsl tgz" | tee -a $LOGFILE - cp $LFS/install/images/fcdsl/license.txt $LFS >> $LOGFILE 2>&1 - touch $LFS/var/run/{need-depmod-$KVER,need-depmod-$KVER-smp} - cd $LFS && tar cvfz $LFS/install/images/$SNAME-fcdsl-$VERSION.$MACHINE.tgz \ - lib/modules/$KVER/misc/fcdsl*.o.gz \ - lib/modules/$KVER-smp/misc/fcdsl*.o.gz \ - usr/lib/isdn/{fds?base.bin,fd?ubase.frm} \ - etc/fcdsl/fcdsl*.conf \ - etc/drdsl/{drdsl,drdsl.ini} \ - license.txt \ - var/run/{need-depmod-$KVER,need-depmod-$KVER-smp} >> $LOGFILE 2>&1 - rm -f $LFS/license.txt >> $LOGFILE 2>&1 - cd $BASEDIR - fi + installmake strip # Generating list of packages used - echo "`date -u '+%b %e %T'`: Generating packages list from logs" | tee -a $LOGFILE + echo -n "Generating packages list from logs" | tee -a $LOGFILE rm -f $BASEDIR/doc/packages-list for i in `ls -1tr $BASEDIR/log/[^_]*`; do if [ "$i" != "$BASEDIR/log/FILES" -a -n $i ]; then @@ -596,15 +585,24 @@ buildpackages() { fi done echo "== List of softwares used to build $NAME Version: $VERSION ==" > $BASEDIR/doc/packages-list.txt - grep -v 'configroot$\|img$\|initrd$\|initscripts$\|installer$\|install$\|ipfire$\|setup$\|pakfire$\|stage2$\|smp$\|tools$\|tools1$\|tools2$\|.tgz$\|-config$' \ + grep -v 'configroot$\|img$\|initrd$\|initscripts$\|installer$\|install$\|setup$\|pakfire$\|stage2$\|smp$\|tools$\|tools1$\|tools2$\|.tgz$\|-config$\|_missing_rootfile$' \ $BASEDIR/doc/packages-list | sort >> $BASEDIR/doc/packages-list.txt rm -f $BASEDIR/doc/packages-list # packages-list.txt is ready to be displayed for wiki page + beautify message DONE - # Create ISO for CDROM - ipfiremake cdrom - rm -f $LFS/install/images/*usb* - cp $LFS/install/images/{*.iso,*.tgz} $BASEDIR >> $LOGFILE 2>&1 + # Create images for install + if [ "$DEVEL" == "1" ]; then + ipfiremake cdrom ED=devel + fi + ipfiremake cdrom ED=full + + # Check if there is a loop device for building in virtual environments + if [ -e /dev/loop0 ]; then + ipfiremake usb-stick + fi + ipfiremake pxe + mv $LFS/install/images/{*.iso,*.tgz,*.img.gz} $BASEDIR >> $LOGFILE 2>&1 ipfirepackages @@ -613,7 +611,7 @@ buildpackages() { rm -rf $BASEDIR/build/tmp/* # Generating total list of files - echo "`date -u '+%b %e %T'`: Generating files list from logs" | tee -a $LOGFILE + echo -n "Generating files list from logs" | tee -a $LOGFILE rm -f $BASEDIR/log/FILES for i in `ls -1tr $BASEDIR/log/[^_]*`; do if [ "$i" != "$BASEDIR/log/FILES" -a -n $i ]; then @@ -623,62 +621,44 @@ buildpackages() { cat $i | sed "s%^\./%#%" | sort >> $BASEDIR/log/FILES fi done - cd $BASEDIR/packages; ls -w1 *.ipfire | awk -F ".ipfire" '{ print $1 }' > $BASEDIR/packages/packages_list.txt - echo -n "###EOF###" >> $BASEDIR/packages/packages_list.txt + beautify message DONE cd $PWD - } ipfirepackages() { - if [ -d "$BASEDIR/packages" ]; then - for i in `ls $BASEDIR/packages`; do - touch $BASEDIR/build/install/packages/$i.empty - done - fi # ipfiredist amavisd - ipfiredist applejuice - ipfiredist asterisk +# ipfiredist applejuice +# ipfiredist asterisk ipfiredist clamav - ipfiredist cups - ipfiredist cyrusimap - ipfiredist fetchmail - ipfiredist ffmpeg - ipfiredist gnump3d - ipfiredist iptraf - ipfiredist java - ipfiredist lame - ipfiredist libmad - ipfiredist libogg - ipfiredist libtiff - ipfiredist libvorbis - ipfiredist mailx - ipfiredist mldonkey - ipfiredist mpeg2dec - ipfiredist nagios - ipfiredist nfs - ipfiredist nmap - ipfiredist ntop - ipfiredist portmap - ipfiredist postfix - ipfiredist procmail +# ipfiredist cups +# ipfiredist cyrusimap +# ipfiredist fetchmail +# ipfiredist gnump3d +# ipfiredist java +# ipfiredist mailx +# ipfiredist mldonkey +# ipfiredist nfs +# ipfiredist postfix ipfiredist samba - ipfiredist sox - ipfiredist spamassassin - ipfiredist subversion - ipfiredist videolan - ipfiredist webcyradm - ipfiredist xvid - ipfiredist yasuc +# ipfiredist sox +# ipfiredist spamassassin + ipfiredist tripwire +# ipfiredist webcyradm test -d $BASEDIR/packages || mkdir $BASEDIR/packages - mv -f $LFS/install/packages/*.{ipfire,md5} $BASEDIR/packages >> $LOGFILE 2>&1 + mv -f $LFS/install/packages/* $BASEDIR/packages >> $LOGFILE 2>&1 rm -rf $BASEDIR/build/install/packages/* } # See what we're supposed to do case "$1" in build) + clear BUILDMACHINE=`uname -m` + DEVEL=0 + if [ "$2" == "--devel" ]; then + DEVEL=1 + fi PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz 2> /dev/null | head -n 1` #only restore on a clean disk if [ ! -f log/cleanup-toolchain-2-tools ]; then @@ -697,11 +677,13 @@ build) fi fi else - echo "`date -u '+%b %e %T'`: Using installed toolchain" | tee -a $LOGFILE + echo -n "Using installed toolchain" | tee -a $LOGFILE + beautify message SKIP prepareenv fi - beautify build_stage "Building base" + beautify build_start + beautify build_stage "Building LFS" buildbase beautify build_stage "Building IPFire" @@ -719,6 +701,7 @@ build) beautify build_stage "Building packages" buildpackages + beautify build_end ;; shell) # enter a shell inside LFS chroot @@ -728,10 +711,11 @@ shell) ;; changelog) echo -n "Loading new Changelog from SVN: " - svn log http://svn.ipfire.eu/svn/ipfire > doc/ChangeLog - echo "Finished!" + 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 $LOSETUP -d $i 2>/dev/null done @@ -752,64 +736,14 @@ clean) if [ -h /tools ]; then rm -f /tools fi + beautify message DONE ;; -newpak) - # create structure for a new package - echo -e "Name of the new package: $2" - if [ ! -f "lfs/$2" ]; then - echo "`date -u '+%b %e %T'`: Creating directory src/paks/$2" - mkdir -p src/paks/$2 - cd src/paks/$2 - echo "`date -u '+%b %e %T'`: Creating files" - cp $BASEDIR/lfs/postfix $BASEDIR/lfs/$2 - - touch ROOTFILES - touch {,un}install.sh - ## install.sh - echo '#!/bin/bash' > install.sh - echo '#' >> install.sh - echo '#################################################################' >> install.sh - echo '# #' >> install.sh - echo '# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #' >> install.sh - echo '# #' >> install.sh - echo '#################################################################' >> install.sh - echo '#' >> install.sh - echo '# Extract the files' >> install.sh - echo 'tar xfz files.tgz -C /' >> install.sh - echo 'cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2' >> install.sh - ## uninstall.sh - echo '#!/bin/bash' > uninstall.sh - echo '#################################################################' >> uninstall.sh - echo '# #' >> uninstall.sh - echo '# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #' >> uninstall.sh - echo '# #' >> uninstall.sh - echo '#################################################################' >> uninstall.sh - echo '#' >> uninstall.sh - echo '# Delete the files' >> uninstall.sh - echo '## Befehl fehlt noch' >> uninstall.sh - echo 'rm -f /opt/pakfire/installed/ROOTFILES.$2' >> uninstall.sh - echo "`date -u '+%b %e %T'`: Adding files to SVN" - cd - && svn add lfs/$2 && svn add src/paks/$2 - - echo -n "Do you want to remove the folders? [y/n]" - read REM - if [ "$REM" == "y" ]; then - echo "Removing the folders..." - svn del src/paks/$2 --force - else - echo "Folders are kept." - fi - else - echo "$2 already exists" - fi - exit 0 - ;; -prefetch) +downloadsrc) if [ ! -d $BASEDIR/cache ]; then mkdir $BASEDIR/cache fi mkdir -p $BASEDIR/log - echo "`date -u '+%b %e %T'`:Preload all source files" | tee -a $LOGFILE + echo -e "${BOLD}Preload all source files${NORMAL}" | tee -a $LOGFILE FINISHED=0 cd $BASEDIR/lfs for c in `seq $MAX_RETRIES`; do @@ -855,6 +789,7 @@ prefetch) cd - >/dev/null 2>&1 ;; toolchain) + clear prepareenv beautify build_stage "Toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`" buildtoolchain @@ -874,11 +809,11 @@ gettoolchain) # arbitrary name to be updated in case of new toolchain package upload PACKAGE=$SNAME-$VERSION-toolchain-$BUILDMACHINE if [ ! -f $BASEDIR/cache/toolchains/$PACKAGE.tar.gz ]; then - URL_IPFIRE=`grep URL_IPFIRE lfs/Config | awk '{ print $3 }'` + URL_TOOLCHAIN=`grep URL_TOOLCHAIN lfs/Config | awk '{ print $3 }'` test -d $BASEDIR/cache/toolchains || mkdir $BASEDIR/cache/toolchains echo "`date -u '+%b %e %T'`: Load toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE cd $BASEDIR/cache/toolchains - wget $URL_IPFIRE/toolchains/$PACKAGE.tar.gz $URL_IPFIRE/toolchains/$PACKAGE.md5 >& /dev/null + 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 else @@ -937,15 +872,25 @@ svn) ;; 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 - echo "Upload the changed files..." - sleep 1 + update_langs svn commit $0 svn up + if [ -n "$FTP_CACHE_URL" ]; then + $0 uploadsrc + fi ;; dist) if [ $3 ]; then @@ -956,9 +901,9 @@ svn) exit 0 fi echo -en "REV $SVN_REVISION: Downloading..." - svn export http://svn.ipfire.eu/svn/ipfire ipfire-source/ --force > /dev/null - svn log http://svn.ipfire.eu/svn/ipfire -r 1:$SVN_REVISION > ipfire-source/Changelog - #svn info http://svn.ipfire.eu/svn/ipfire -r $SVN_REVISION > ipfire-source/svn_status + 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..." @@ -972,10 +917,12 @@ svn) evaluate 1 ;; 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 ;; esac ;; @@ -983,69 +930,64 @@ uploadsrc) PWD=`pwd` cd $BASEDIR/cache/ echo -e "Uploading cache to ftp server:" - ncftpls -u $IPFIRE_FTP_USER_INT -p $IPFIRE_FTP_PASS_INT ftp://$IPFIRE_FTP_URL_INT$IPFIRE_FTP_PATH_INT/ > /var/tmp/ftplist + ncftpls -u $FTP_CACHE_USER -p $FTP_CACHE_PASS ftp://$FTP_CACHE_URL$FTP_CACHE_PATH/ > /tmp/ftplist for i in *; do - grep -q $i /var/tmp/ftplist + if [ "$i" == "toolchains" ]; then continue; fi + grep -q $i /tmp/ftplist if [ "$?" -ne "0" ]; then echo -ne "$i" - ncftpput -bb -u $IPFIRE_FTP_USER_INT -p $IPFIRE_FTP_PASS_INT $IPFIRE_FTP_URL_INT $IPFIRE_FTP_PATH_INT/ $i > /dev/null 2>&1 - if [ "$?" -eq "0" ]; then - beautify message DONE - else + ncftpput -u $FTP_CACHE_USER -p $FTP_CACHE_PASS $FTP_CACHE_URL $FTP_CACHE_PATH/ $i + if [ "$?" -ne "0" ]; then beautify message FAIL fi fi done - rm -f /var/tmp/ftplist - UL_TIME_START=`date +'%s'` - ncftpbatch -d > /dev/null 2>&1 - while ps acx | grep -q ncftpbatch - do - UL_TIME=$(expr `date +'%s'` - $UL_TIME_START) - echo -ne "\r ${UL_TIME}s : Upload is running..." - sleep 1 - done - beautify message DONE + rm -f /tmp/ftplist cd $PWD exit 0 ;; upload) case "$2" in iso) - echo -e "Uploading the iso to $IPFIRE_FTP_URL_EXT." + echo -e "Uploading the iso to $FTP_ISO_PATH/$SVN_REVISION." cat < .ftp-commands -mkdir $IPFIRE_FTP_PATH_EXT +mkdir -p $FTP_ISO_PATH/$SVN_REVISION ls -lah quit EOF - ncftp -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT < .ftp-commands + ncftp -u $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL < .ftp-commands rm -f .ftp-commands - md5sum ipfire-install-$VERSION.i386.iso > ipfire-install-$VERSION.i386.iso.md5 - ncftpput -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ ipfire-install-$VERSION.i386.iso - ncftpput -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ ipfire-install-$VERSION.i386.iso.md5 - ncftpput -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ ipfire-source-r$SVN_REVISION.tar.gz - ncftpput -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ svn_status + md5sum ipfire-$VERSION.$MACHINE-full.iso > ipfire-$VERSION.$MACHINE-full.iso.md5 + ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/ ipfire-$VERSION.$MACHINE-full.iso + ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/ ipfire-$VERSION.$MACHINE-full.iso.md5 + if [ -e ipfire-$VERSION.$MACHINE-devel.iso ]; then + md5sum ipfire-$VERSION.$MACHINE-devel.iso > ipfire-$VERSION.$MACHINE-devel.iso.md5 + ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/ ipfire-$VERSION.$MACHINE-devel.iso + ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/ ipfire-$VERSION.$MACHINE-devel.iso.md5 + fi + ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/ ipfire-source-r$SVN_REVISION.tar.gz + ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/ svn_status if [ "$?" -eq "0" ]; then - echo -e "The iso of Revision $SVN_REVISION was successfully uploaded to $IPFIRE_FTP_URL_EXT$IPFIRE_FTP_PATH_EXT/." + echo -e "The iso of Revision $SVN_REVISION was successfully uploaded to $FTP_ISO_URL$FTP_ISO_PATH$SVN_REVISION/." else echo -e "There was an error while uploading the iso to the ftp server." exit 1 fi if [ "$3" = "--with-sources-cd" ]; then - ncftpput -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ ipfire-sources-cd-$VERSION.$MACHINE.iso + ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL $FTP_ISO_PATH/$SVN_REVISION/ ipfire-sources-cd-$VERSION.$MACHINE.iso fi ;; paks) cat < .ftp-commands -mkdir $IPFIRE_FTP_PATH_PAK +mkdir -p $FTP_ISO_PATH/$SVN_REVISION/paks ls -lah quit EOF - ncftp -u $IPFIRE_FTP_USER_PAK -p $IPFIRE_FTP_PASS_PAK $IPFIRE_FTP_URL_PAK < .ftp-commands + ncftp -u $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL < .ftp-commands rm -f .ftp-commands - ncftpput -z -u $IPFIRE_FTP_USER_PAK -p $IPFIRE_FTP_PASS_PAK $IPFIRE_FTP_URL_PAK $IPFIRE_FTP_PATH_PAK/ packages/* + ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/paks packages/* if [ "$?" -eq "0" ]; then - echo -e "The packages were successfully uploaded to $IPFIRE_FTP_URL_PAK$IPFIRE_FTP_PATH_PAK/." + 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 @@ -1054,7 +996,7 @@ EOF esac ;; batch) - if [ "$2" -eq "--background" ]; then + if [ "$2" = "--background" ]; then batch_script exit $? fi @@ -1077,14 +1019,38 @@ batch) watch) watch_screen ;; -*) +pxe) + case "$2" in + start) + start_tftpd + ;; + stop) + stop_tftpd + ;; + reload|restart) + reload_tftpd + ;; + esac + exit 0 + ;; +lang) + update_langs + ;; +packages) + case "$2" in + sign) + sign_packages + ;; + esac + ;; +"") clear svn info - select name in "Exit" "IPFIRE: Prefetch" "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" "SVN: Commit" "SVN: Update" "SVN: Status" "SVN: Diff" "LOG: Tail" "Help" do case $name in - "IPFIRE: Prefetch") - $0 prefetch + "IPFIRE: Downloadsrc") + $0 downloadsrc ;; "IPFIRE: Build (silent)") $0 build-silent @@ -1098,27 +1064,11 @@ watch) "IPFIRE: Clean") $0 clean ;; - "SVN: Commit") - if [ -f /usr/bin/mcedit ]; then - export EDITOR=/usr/bin/mcedit - fi - if [ -f /usr/bin/nano ]; then - export EDITOR=/usr/bin/nano - fi - $0 svn commit - $0 uploadsrc - ;; "SVN: Update") $0 svn update ;; - "SVN: Status") - svn status # | grep -v ^? - ;; - "SVN: Diff") - $0 svn diff - ;; "Help") - echo "Usage: $0 {build|changelog|clean|gettoolchain|newpak|prefetch|shell|sync|toolchain}" + echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain}" cat doc/make.sh-usage ;; "LOG: Tail") @@ -1130,4 +1080,11 @@ watch) esac done ;; +config) + make_config + ;; +*) + echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain}" + cat doc/make.sh-usage + ;; esac