X-Git-Url: http://git.ipfire.org/?p=ipfire-2.x.git;a=blobdiff_plain;f=make.sh;h=011765b7717ca8c96e240293f2fe150bed69b17a;hp=41e258f58f549b24299f25b9e48c187801e2ff50;hb=2a8c4fcb50413264310848b81ffb3a04a171a41a;hpb=6c98857b694907753bdb9b522fb9fbfacfcb42f3 diff --git a/make.sh b/make.sh index 41e258f58f..011765b771 100755 --- a/make.sh +++ b/make.sh @@ -24,22 +24,16 @@ NAME="IPFire" # Software name SNAME="ipfire" # Short name -VERSION="2.0t4" # Version number +VERSION="2.1" # 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-` IPFVER="full" # Which versions should be compiled? (full|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 - # Debian specific settings if [ ! -e /etc/debian_version ]; then FULLPATH=`which $0` @@ -75,6 +69,17 @@ else 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() { ############################################################################ # # @@ -82,11 +87,11 @@ prepareenv() { # # ############################################################################ if [ ! "$BASH" ]; then - exiterror "BASH environment variable is not set. You're probably running the wrong shell." + exiterror "BASH environment variable is not set. You're probably running the wrong shell." fi if [ -z "${BASH_VERSION}" ]; then - exiterror "Not running BASH shell." + exiterror "Not running BASH shell." fi @@ -106,10 +111,10 @@ prepareenv() { echo -ne "Resetting our nice level to $NICE" | tee -a $LOGFILE renice $NICE $$ > /dev/null if [ `nice` != "$NICE" ]; then - beautify message FAIL - exiterror "Failed to set correct nice level" + beautify message FAIL + exiterror "Failed to set correct nice level" else - beautify message DONE + beautify message DONE fi @@ -120,10 +125,10 @@ prepareenv() { ############################################################################ echo -ne "Checking if we're running as root user" | tee -a $LOGFILE if [ `id -u` != 0 ]; then - beautify message FAIL - exiterror "Not building as root" + beautify message FAIL + exiterror "Not building as root" else - beautify message DONE + beautify message DONE fi @@ -136,13 +141,13 @@ prepareenv() { 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 (( 2048000 > $BASE_ASPACE )); then - BASE_USPACE=`du -skx $BASEDIR | awk '{print $1}'` - if (( 2048000 - $BASE_USPACE > $BASE_ASPACE )); then - beautify message FAIL - exiterror "Not enough temporary space available, need at least 2GB on $BASE_DEV" - fi + BASE_USPACE=`du -skx $BASEDIR | awk '{print $1}'` + if (( 2048000 - $BASE_USPACE > $BASE_ASPACE )); then + beautify message FAIL + exiterror "Not enough temporary space available, need at least 2GB on $BASE_DEV" + fi else - beautify message DONE + beautify message DONE fi ############################################################################ @@ -161,10 +166,10 @@ prepareenv() { rm -f /tools fi if [ ! -a /tools ]; then - ln -s $BASEDIR/build/tools / + ln -s $BASEDIR/build/tools / fi if [ ! -h /tools ]; then - exiterror "Could not create /tools symbolic link." + exiterror "Could not create /tools symbolic link." fi # Setup environment @@ -318,35 +323,38 @@ buildipfire() { LOGFILE="$BASEDIR/log/_build.ipfire.log" export LOGFILE ipfiremake configroot + ipfiremake backup ipfiremake dhcp ipfiremake dhcpcd ipfiremake libusb ipfiremake libpcap - ipfiremake linux-atm ipfiremake ppp ipfiremake rp-pppoe ipfiremake unzip 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 promise-sata-300-tx SMP=1 ipfiremake zaptel SMP=1 - ipfiremake fuse SMP=1 + ipfiremake r8169 SMP=1 + ipfiremake r8168 SMP=1 + ipfiremake mcs7830 SMP=1 + ipfiremake atl1 SMP=1 + ipfiremake dm9601 SMP=1 + ipfiremake kqemu SMP=1 + ipfiremake v4l-dvb SMP=1 + ipfiremake sane KMOD=1 SMP=1 ipfiremake linux ipfiremake ipp2p - ipfiremake fcdsl - ipfiremake fcdsl2 - ipfiremake fcdslsl - ipfiremake fcdslusb - ipfiremake fcdslslusb -# ipfiremake promise-sata-300-tx ipfiremake zaptel - ipfiremake fuse + ipfiremake r8169 + ipfiremake r8168 + ipfiremake mcs7830 + ipfiremake atl1 + ipfiremake dm9601 + ipfiremake kqemu + ipfiremake v4l-dvb + ipfiremake sane KMOD=1 ipfiremake pkg-config + ipfiremake linux-atm ipfiremake cpio ipfiremake klibc ipfiremake mkinitcpio @@ -359,6 +367,7 @@ buildipfire() { ipfiremake curl ipfiremake python ipfiremake libnet + ipfiremake libidn ipfiremake libjpeg ipfiremake libpng ipfiremake libtiff @@ -384,43 +393,43 @@ buildipfire() { ipfiremake arping ipfiremake beep ipfiremake bind - ipfiremake capi4k-utils ipfiremake cdrtools ipfiremake dnsmasq ipfiremake dosfstools - ipfiremake reiserfsprogs ipfiremake squashfstools + ipfiremake reiserfsprogs + ipfiremake xfsprogs ipfiremake sysfsutils + ipfiremake fuse ipfiremake ntfs-3g ipfiremake ethtool ipfiremake ez-ipupdate ipfiremake fcron - ipfiremake GD + ipfiremake perl-GD ipfiremake GD-Graph ipfiremake GD-TextUtil ipfiremake gnupg ipfiremake hdparm - ipfiremake ibod + ipfiremake sdparm + ipfiremake mtools ipfiremake initscripts ipfiremake whatmask ipfiremake iptables ipfiremake libupnp ipfiremake ipp2p IPT=1 - ipfiremake moblock ipfiremake linux-igd ipfiremake ipac-ng ipfiremake ipaddr ipfiremake iptstate ipfiremake iputils ipfiremake l7-protocols - ipfiremake isdn4k-utils ipfiremake mISDN + ipfiremake capi4k-utils ipfiremake hwdata ipfiremake kudzu ipfiremake logrotate ipfiremake logwatch ipfiremake misc-progs - ipfiremake mtools ipfiremake nano ipfiremake nasm ipfiremake URI @@ -446,8 +455,6 @@ buildipfire() { ipfiremake Text-Tabs+Wrap ipfiremake Locale-Country ipfiremake XML-Parser - ipfiremake MP3-Info - ipfiremake MP3-Tag ipfiremake glib ipfiremake GeoIP ipfiremake fwhits @@ -455,12 +462,10 @@ buildipfire() { ipfiremake ntp ipfiremake openssh ipfiremake openswan - ipfiremake pptpclient ipfiremake rrdtool ipfiremake setserial ipfiremake setup ipfiremake snort - #ipfiremake snortsnarf ipfiremake oinkmaster ipfiremake squid ipfiremake squid-graph @@ -477,8 +482,10 @@ buildipfire() { ipfiremake lzo ipfiremake openvpn ipfiremake pammysql - ipfiremake ghostscript ipfiremake cups + ipfiremake ghostscript + ipfiremake foomatic + ipfiremake hplip ipfiremake samba ipfiremake sudo ipfiremake mc @@ -490,9 +497,8 @@ buildipfire() { ipfiremake htop ipfiremake postfix ipfiremake fetchmail - ipfiremake cyrusimap - ipfiremake webcyradm - ipfiremake mailx + ipfiremake cyrus-imapd + ipfiremake openmailadmin ipfiremake clamav ipfiremake spamassassin ipfiremake amavisd @@ -500,17 +506,22 @@ buildipfire() { ipfiremake mpg123 ipfiremake mpfire ipfiremake guardian + ipfiremake libid3tag ipfiremake libmad ipfiremake libogg ipfiremake libvorbis ipfiremake lame ipfiremake sox - ipfiremake mp3blaster + ipfiremake libshout + ipfiremake icecast + ipfiremake icegenerator + ipfiremake mpd + ipfiremake mpc + ipfiremake xvid + ipfiremake libmpeg2 + ipfiremake cmake ipfiremake libpri - ipfiremake stund -# ipfiremake bristuff ipfiremake asterisk - ipfiremake backup ipfiremake gnump3d ipfiremake libsigc++ ipfiremake applejuice @@ -525,18 +536,43 @@ buildipfire() { ipfiremake nfs ipfiremake nmap ipfiremake mbmon - ipfiremake iftop ipfiremake ncftp - ipfiremake cftp ipfiremake etherwake - ipfiremake ethereal - ipfiremake tftp-hpa ipfiremake bwm-ng ipfiremake tripwire ipfiremake sysstat ipfiremake vsftpd ipfiremake which ipfiremake lsof + ipfiremake centerim + ipfiremake br2684ctl + ipfiremake pcmciautils + ipfiremake collectd + ipfiremake lcd4linux + ipfiremake neon + ipfiremake subversion + ipfiremake tcptrack + ipfiremake teamspeak + ipfiremake elinks + ipfiremake igmpproxy + ipfiremake sdl + ipfiremake qemu + ipfiremake sane + ipfiremake netpbm + ipfiremake phpSANE + ipfiremake tunctl + ipfiremake nagios + ipfiremake ebtables + ipfiremake arptables + ipfiremake fontconfig + ipfiremake freefont + ipfiremake ffmpeg + ipfiremake videolan + ipfiremake vdr + ipfiremake w_scan + ipfiremake git + ipfiremake squidclamav + ipfiremake bc } buildinstaller() { @@ -574,6 +610,7 @@ buildinstaller() { installmake wget installmake hwdata installmake kudzu + installmake pcmciautils installmake installer installmake initrd } @@ -594,23 +631,19 @@ 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$\|setup$\|pakfire$\|stage2$\|smp$\|tools$\|tools1$\|tools2$\|.tgz$\|-config$\|_missing_rootfile$' \ + grep -v 'configroot$\|img$\|initrd$\|initscripts$\|installer$\|install$\|setup$\|pakfire$\|stage2$\|smp$\|tools$\|tools1$\|tools2$\|.tgz$\|-config$\|_missing_rootfile$\|install1$\|install2$\|pass1$\|pass2$\|pass3$' \ $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 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 + if [ -e /dev/loop/0 ] || [ -e /dev/loop0 ]; then ipfiremake usb-stick fi - ipfiremake pxe mv $LFS/install/images/{*.iso,*.tgz,*.img.gz} $BASEDIR >> $LOGFILE 2>&1 ipfirepackages @@ -636,35 +669,15 @@ buildpackages() { } ipfirepackages() { - ipfiredist alsa -# ipfiredist amavisd - ipfiredist applejuice -# ipfiredist asterisk - ipfiredist clamav - ipfiredist cups - ipfiredist cyrus-sasl -# ipfiredist fetchmail -# ipfiredist gnump3d - ipfiredist guardian - ipfiredist ipfireseeder - ipfiredist java - ipfiredist libogg - ipfiredist libvorbis -# ipfiredist mailx -# ipfiredist mldonkey - ipfiredist mp3blaster - ipfiredist mpfire - ipfiredist mpg123 -# ipfiredist nfs - ipfiredist openldap -# ipfiredist postfix - ipfiredist rtorrent - ipfiredist samba -# ipfiredist sox -# ipfiredist spamassassin - ipfiredist tripwire - ipfiredist vsftpd -# ipfiredist webcyradm + ipfiremake core-updates + for i in $(ls -1 $BASEDIR/config/rootfiles/packages); do + if [ -e $BASEDIR/lfs/$i ]; then + ipfiredist $i + else + echo -n $i + beautify message SKIP + fi + done test -d $BASEDIR/packages || mkdir $BASEDIR/packages mv -f $LFS/install/packages/* $BASEDIR/packages >> $LOGFILE 2>&1 rm -rf $BASEDIR/build/install/packages/* @@ -675,10 +688,6 @@ 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 @@ -709,13 +718,6 @@ build) beautify build_stage "Building IPFire" buildipfire - # Setzen des IPFire Builds - if [ "$FIREBUILD" ]; then - echo "$FIREBUILD" > $BASEDIR/build/var/ipfire/firebuild - else - echo "_(OvO)_" > $BASEDIR/build/var/ipfire/firebuild - fi - beautify build_stage "Building installer" buildinstaller @@ -729,11 +731,6 @@ shell) 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 @@ -863,100 +860,57 @@ othersrc) 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} master + ;; esac ;; uploadsrc) PWD=`pwd` 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 + ncftpls -u $FTP_CACHE_USER -p $FTP_CACHE_PASS ftp://$FTP_CACHE_URL/$FTP_CACHE_PATH/ > /tmp/ftplist for i in *; do - if [ "$i" == "toolchains" ]; then continue; fi - grep -q $i /tmp/ftplist + if [ "$(basename $i)" == "toolchains" ]; then continue; fi + grep -q $(basename $i) /tmp/ftplist if [ "$?" -ne "0" ]; then - echo -ne "$i" - ncftpput -u $FTP_CACHE_USER -p $FTP_CACHE_PASS $FTP_CACHE_URL $FTP_CACHE_PATH/ $i + 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 @@ -996,6 +950,7 @@ EOF 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 @@ -1052,17 +1007,9 @@ pxe) lang) update_langs ;; -packages) - case "$2" in - sign) - sign_packages - ;; - esac - ;; "") 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") @@ -1080,9 +1027,6 @@ packages) "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