X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=blobdiff_plain;f=make.sh;h=b6e472074752caa9f3cb68ba0a81a0e245d2d080;hp=9ced61f21fcb3866377ddb16f35b1ed70313bcba;hb=9217f23647243b640713e1cac421db6597d60e12;hpb=0afc6d839b793efe9259842e5c276c013788a05e diff --git a/make.sh b/make.sh index 9ced61f21f..b6e4720747 100644 --- a/make.sh +++ b/make.sh @@ -24,8 +24,8 @@ 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=1 # prefetch/check loop @@ -170,7 +170,7 @@ prepareenv() { # Setup environment set +h LC_ALL=POSIX - MAKETUNING="-j4" + MAKETUNING="-j12" export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD @@ -280,6 +280,7 @@ buildbase() { lfsmake2 bzip2 lfsmake2 diffutils lfsmake2 e2fsprogs + lfsmake2 ed lfsmake2 file lfsmake2 findutils lfsmake2 flex @@ -297,6 +298,7 @@ buildbase() { lfsmake2 man lfsmake2 mktemp lfsmake2 modutils + lfsmake2 net-tools lfsmake2 patch lfsmake2 psmisc lfsmake2 shadow @@ -312,57 +314,35 @@ buildbase() { buildipfire() { LOGFILE="$BASEDIR/log/_build.ipfire.log" export LOGFILE - ipfiremake inetutils - ipfiremake net-tools - ipfiremake ed ipfiremake configroot ipfiremake dhcp ipfiremake dhcpcd ipfiremake libusb ipfiremake libpcap -# Temporary disabled. -# ipfiremake linux-atm + ipfiremake linux-atm ipfiremake ppp ipfiremake rp-pppoe ipfiremake unzip -# ipfiremake linux PASS=I # Can we remove the installer kernel? - ipfiremake linux PASS=S -# ipfiremake 3cp4218 PASS=SMP -# ipfiremake amedyn PASS=SMP -# ipfiremake cxacru PASS=SMP -# ipfiremake eagle PASS=SMP -# ipfiremake cnx_pci PASS=SMP -# ipfiremake fcdsl PASS=SMP -# ipfiremake fcdsl2 PASS=SMP -# ipfiremake fcdslsl PASS=SMP -# ipfiremake fcdslusb PASS=SMP -# ipfiremake fcdslslusb PASS=SMP -# ipfiremake fcpci PASS=SMP -# ipfiremake fcclassic PASS=SMP -# ipfiremake pulsar PASS=SMP -# ipfiremake unicorn PASS=SMP -# ipfiremake promise-sata-300-tx PASS=SMP + 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 promise-sata-300-tx SMP=1 ipfiremake zaptel PASS=S ipfiremake linux -# 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 fcpci -# ipfiremake fcclassic -# ipfiremake pulsar -# ipfiremake unicorn + ipfiremake ipp2p + ipfiremake fcdsl + ipfiremake fcdsl2 + ipfiremake fcdslsl + ipfiremake fcdslusb + ipfiremake fcdslslusb + ipfiremake fcpci # ipfiremake promise-sata-300-tx ipfiremake zaptel -# ipfiremake pcmciautils ipfiremake expat ipfiremake gdbm ipfiremake gmp @@ -389,11 +369,10 @@ buildipfire() { ipfiremake mysql ipfiremake cyrus-sasl ipfiremake openldap -# ipfiremake cyrus-sasl PASS=L # Doesn't work yet. Thereby there's the question: Do we really need this? ipfiremake apache2 ipfiremake php ipfiremake subversion - ipfiremake apache2 PASS=C + ipfiremake apache2 PASS=C ipfiremake arping ipfiremake beep ipfiremake bind @@ -401,6 +380,7 @@ buildipfire() { ipfiremake cdrtools ipfiremake dnsmasq ipfiremake dosfstools + ipfiremake reiserfsprogs ipfiremake ethtool ipfiremake ez-ipupdate ipfiremake fcron @@ -410,14 +390,15 @@ buildipfire() { ipfiremake ibod ipfiremake initscripts ipfiremake iptables + ipfiremake ipp2p IPT=1 ipfiremake ipac-ng ipfiremake ipaddr ipfiremake iptstate ipfiremake iputils ipfiremake l7-protocols -# ipfiremake isapnptools # ERROR :( + ipfiremake isapnptools # ipfiremake isdn4k-utils # What about mISDN??? -# ipfiremake kudzu # ERROR :( + ipfiremake kudzu ipfiremake logrotate ipfiremake logwatch ipfiremake mingetty @@ -426,7 +407,6 @@ buildipfire() { ipfiremake nano ipfiremake nash ipfiremake nasm -### The Perl Modules have to be updated! I will skip this now! ipfiremake URI ipfiremake HTML-Tagset ipfiremake HTML-Parser @@ -450,7 +430,6 @@ buildipfire() { ipfiremake Text-Tabs+Wrap ipfiremake Locale-Country ipfiremake GeoIP -### ipfiremake fwhits ipfiremake noip_updater ipfiremake ntp @@ -546,59 +525,40 @@ buildinstaller() { LOGFILE="$BASEDIR/log/_build.installer.log" export LOGFILE ipfiremake syslinux - 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 e2fsprogs + installmake reiserfsprogs installmake sysfsutils -# installmake hwinfo - installmake slang installmake util-linux - installmake newt installmake pciutils - installmake pcmciautils - installmake kbd + installmake kudzu +# installmake bootsplash installmake installer - installmake scsi.img - installmake driver.img installmake initrd - installmake boot.img -# ipfiremake as86 -# ipfiremake mbr } buildpackages() { LOGFILE="$BASEDIR/log/_build.packages.log" export LOGFILE echo "... see detailed log in _build.*.log files" >> $LOGFILE - # Strip files - echo -n "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 - beautify message DONE - -# 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 + installmake strip # Generating list of packages used echo -n "Generating packages list from logs" | tee -a $LOGFILE @@ -615,19 +575,19 @@ buildpackages() { # packages-list.txt is ready to be displayed for wiki page beautify message DONE - # Create ISO for CDROM + # Create images for install ipfiremake cdrom - rm -f $LFS/install/images/*usb* - cp $LFS/install/images/{*.iso,*.tgz} $BASEDIR >> $LOGFILE 2>&1 + ipfiremake pxe + cp -f $LFS/install/images/{*.iso,*.tgz} $BASEDIR >> $LOGFILE 2>&1 - ipfirepackages +# ipfirepackages # Cleanup stdumount 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 "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 @@ -716,11 +676,14 @@ build) prepareenv fi - beautify build_stage "Building base" + beautify build_start + beautify build_stage_start "Building base" buildbase + beautify build_stage_end - beautify build_stage "Building IPFire" + beautify build_stage_start "Building IPFire" buildipfire + beautify build_stage_end # Setzen des IPFire Builds if [ "$FIREBUILD" ]; then @@ -729,11 +692,14 @@ build) echo "_(OvO)_" > $BASEDIR/build/var/ipfire/firebuild fi - beautify build_stage "Building installer" + beautify build_stage_start "Building installer" buildinstaller + beautify build_stage_end - beautify build_stage "Building packages" + beautify build_stage_start "Building packages" buildpackages + beautify build_stage_end + beautify build_end ;; shell) # enter a shell inside LFS chroot @@ -744,9 +710,10 @@ shell) changelog) echo -n "Loading new Changelog from SVN: " svn log http://svn.ipfire.eu/svn/ipfire > doc/ChangeLog - echo "Finished!" + 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 @@ -767,57 +734,7 @@ clean) if [ -h /tools ]; then rm -f /tools fi - ;; -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 + beautify message DONE ;; downloadsrc) if [ ! -d $BASEDIR/cache ]; then @@ -890,11 +807,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 @@ -955,10 +872,9 @@ svn) clear if [ -f /usr/bin/mcedit ]; then export EDITOR=/usr/bin/mcedit - else - if [ -f /usr/bin/nano ]; then - export EDITOR=/usr/bin/nano - fi + fi + if [ -f /usr/bin/nano ]; then + export EDITOR=/usr/bin/nano fi echo -ne "Selecting editor $EDITOR..." beautify message DONE @@ -1013,7 +929,7 @@ uploadsrc) grep -q $i /var/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 + ncftpput -bb -u $IPFIRE_FTP_USER_INT -p $IPFIRE_FTP_PASS_INT $IPFIRE_FTP_URL_INT $IPFIRE_FTP_PATH_INT/ $i >> $BASEDIR/log/_build.uploadsrc.log 2>&1 if [ "$?" -eq "0" ]; then beautify message DONE else @@ -1102,6 +1018,20 @@ batch) watch) watch_screen ;; +pxe) + case "$2" in + start) + start_tftpd + ;; + stop) + stop_tftpd + ;; + reload|restart) + reload_tftpd + ;; + esac + exit 0 + ;; "") clear svn info @@ -1127,7 +1057,7 @@ watch) $0 svn update ;; "Help") - echo "Usage: $0 {build|changelog|clean|gettoolchain|newpak|downloadsrc|shell|sync|toolchain}" + echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain}" cat doc/make.sh-usage ;; "LOG: Tail") @@ -1139,8 +1069,11 @@ watch) esac done ;; +config) + make_config + ;; *) - echo "Usage: $0 {build|changelog|clean|gettoolchain|newpak|downloadsrc|shell|sync|toolchain}" + echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain}" cat doc/make.sh-usage ;; esac