]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - make.sh
IPTables in Kernel aktiviert.
[people/pmueller/ipfire-2.x.git] / make.sh
CommitLineData
df5e82b3 1#!/bin/bash
df5e82b3
MT
2############################################################################
3# #
f8e5510c 4# This file is part of the IPFire Firewall. #
df5e82b3 5# #
f8e5510c 6# IPFire is free software; you can redistribute it and/or modify #
df5e82b3
MT
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. #
10# #
f8e5510c 11# IPFire is distributed in the hope that it will be useful, #
df5e82b3
MT
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. #
15# #
16# You should have received a copy of the GNU General Public License #
f8e5510c 17# along with IPFire; if not, write to the Free Software #
df5e82b3
MT
18# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
19# #
15679d9f 20# Copyright (C) 2006 IPFire-Team <info@ipfire.eu>. #
df5e82b3
MT
21# #
22############################################################################
df5e82b3
MT
23#
24
15679d9f
MT
25NAME="IPFire" # Software name
26SNAME="ipfire" # Short name
5bd13f01 27VERSION="2.0b" # Version number
8e2e5cf3 28SLOGAN="www.ipfire.org" # Software slogan
15679d9f
MT
29CONFIG_ROOT=/var/ipfire # Configuration rootdir
30NICE=10 # Nice level
857d9bf2 31MAX_RETRIES=1 # prefetch/check loop
15679d9f
MT
32KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'`
33MACHINE=`uname -m`
34SVN_REVISION=`svn info | grep Revision | cut -c 11-`
35
03ad5f93
MT
36IPFVER="full" # Which version should be compiled? (full|light|voice)
37
38# Set an information about the build number
15679d9f
MT
39if [ -e ./.svn ]; then
40 FIREBUILD=`cat .svn/entries |sed -n 's/^[ \t]*revision=\"// p' | sed -n 's/\".*$// p'`
41fi
42
43# Debian specific settings
44if [ ! -e /etc/debian_version ]; then
df5e82b3 45 FULLPATH=`which $0`
15679d9f 46else
df5e82b3
MT
47 if [ -x /usr/bin/realpath ]; then
48 FULLPATH=`/usr/bin/realpath $0`
49 else
50 echo "ERROR: Need to do apt-get install realpath"
51 exit 1
52 fi
15679d9f 53fi
df5e82b3 54
15679d9f
MT
55PWD=`pwd`
56BASENAME=`basename $0`
57BASEDIR=`echo $FULLPATH | sed "s/\/$BASENAME//g"`
58LOGFILE=$BASEDIR/log/_build.preparation.log
59export BASEDIR LOGFILE
60DIR_CHK=$BASEDIR/cache/check
61mkdir $BASEDIR/log/ 2>/dev/null
df5e82b3 62
15679d9f
MT
63# Include funtions
64. tools/make-functions
df5e82b3 65
15679d9f
MT
66if [ -f .config ]; then
67 . .config
68else
6b8cff41
MT
69 echo -e "${BOLD}No configuration found!${NORMAL}"
70 echo -ne "Do you want to create one (y/N)?"
71 read CREATE_CONFIG
72 echo ""
73 if [ "$CREATE_CONFIG" == "y" ]; then
74 make_config
75 fi
15679d9f 76fi
df5e82b3
MT
77
78prepareenv() {
79 ############################################################################
80 # #
81 # Are we running the right shell? #
82 # #
83 ############################################################################
84 if [ ! "$BASH" ]; then
85 exiterror "BASH environment variable is not set. You're probably running the wrong shell."
86 fi
87
88 if [ -z "${BASH_VERSION}" ]; then
89 exiterror "Not running BASH shell."
90 fi
91
92
93 ############################################################################
94 # #
95 # Trap on emergency exit #
96 # #
97 ############################################################################
98 trap "exiterror 'Build process interrupted'" SIGINT SIGTERM SIGKILL SIGSTOP SIGQUIT
99
100
101 ############################################################################
102 # #
103 # Resetting our nice level #
104 # #
105 ############################################################################
9b0ff0a0 106 echo -ne "Resetting our nice level to $NICE" | tee -a $LOGFILE
df5e82b3
MT
107 renice $NICE $$ > /dev/null
108 if [ `nice` != "$NICE" ]; then
15679d9f 109 beautify message FAIL
df5e82b3 110 exiterror "Failed to set correct nice level"
15679d9f
MT
111 else
112 beautify message DONE
df5e82b3
MT
113 fi
114
15679d9f 115
df5e82b3
MT
116 ############################################################################
117 # #
118 # Checking if running as root user #
119 # #
120 ############################################################################
9b0ff0a0 121 echo -ne "Checking if we're running as root user" | tee -a $LOGFILE
df5e82b3 122 if [ `id -u` != 0 ]; then
15679d9f 123 beautify message FAIL
df5e82b3 124 exiterror "Not building as root"
15679d9f
MT
125 else
126 beautify message DONE
df5e82b3
MT
127 fi
128
129
130 ############################################################################
131 # #
132 # Checking for necessary temporary space #
133 # #
134 ############################################################################
9b0ff0a0 135 echo -ne "Checking for necessary space on disk $BASE_DEV" | tee -a $LOGFILE
df5e82b3
MT
136 BASE_DEV=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $1 }'`
137 BASE_ASPACE=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $4 }'`
41921bd9 138 if (( 2048000 > $BASE_ASPACE )); then
df5e82b3 139 BASE_USPACE=`du -skx $BASEDIR | awk '{print $1}'`
41921bd9 140 if (( 2048000 - $BASE_USPACE > $BASE_ASPACE )); then
15679d9f 141 beautify message FAIL
41921bd9 142 exiterror "Not enough temporary space available, need at least 2GB on $BASE_DEV"
df5e82b3 143 fi
15679d9f
MT
144 else
145 beautify message DONE
df5e82b3
MT
146 fi
147
148 ############################################################################
149 # #
150 # Building Linux From Scratch system #
151 # #
152 ############################################################################
df5e82b3
MT
153 # Set umask
154 umask 022
155
156 # Set LFS Directory
157 LFS=$BASEDIR/build
158
159 # Check /tools symlink
160 if [ -h /tools ]; then
161 rm -f /tools
162 fi
163 if [ ! -a /tools ]; then
164 ln -s $BASEDIR/build/tools /
165 fi
166 if [ ! -h /tools ]; then
167 exiterror "Could not create /tools symbolic link."
168 fi
169
170 # Setup environment
171 set +h
172 LC_ALL=POSIX
fcb5057d 173 MAKETUNING="-j12"
dd714b8a 174 export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING
df5e82b3
MT
175 unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
176
177 # Make some extra directories
178 mkdir -p $BASEDIR/build/{tools,etc,usr/src} 2>/dev/null
90d372c4 179 mkdir -p $BASEDIR/build/{dev/{shm,pts},proc,sys}
df5e82b3 180 mkdir -p $BASEDIR/{cache,ccache} 2>/dev/null
90d372c4
MT
181 mkdir -p $BASEDIR/build/usr/src/{cache,config,doc,html,langs,lfs,log,src,ccache}
182
183 mknod -m 600 $BASEDIR/build/dev/console c 5 1 2>/dev/null
184 mknod -m 666 $BASEDIR/build/dev/null c 1 3 2>/dev/null
df5e82b3
MT
185
186 # Make all sources and proc available under lfs build
90d372c4 187 mount --bind /dev $BASEDIR/build/dev
857d9bf2
MT
188 mount --bind /dev/pts $BASEDIR/build/dev/pts
189 mount --bind /dev/shm $BASEDIR/build/dev/shm
190 mount --bind /proc $BASEDIR/build/proc
191 mount --bind /sys $BASEDIR/build/sys
df5e82b3
MT
192 mount --bind $BASEDIR/cache $BASEDIR/build/usr/src/cache
193 mount --bind $BASEDIR/ccache $BASEDIR/build/usr/src/ccache
194 mount --bind $BASEDIR/config $BASEDIR/build/usr/src/config
195 mount --bind $BASEDIR/doc $BASEDIR/build/usr/src/doc
196 mount --bind $BASEDIR/html $BASEDIR/build/usr/src/html
197 mount --bind $BASEDIR/langs $BASEDIR/build/usr/src/langs
198 mount --bind $BASEDIR/lfs $BASEDIR/build/usr/src/lfs
199 mount --bind $BASEDIR/log $BASEDIR/build/usr/src/log
200 mount --bind $BASEDIR/src $BASEDIR/build/usr/src/src
201
119ee469 202 # This is a temporary hack!!!
6b8cff41
MT
203 if [ ! -f /tools/bin/hostname ]; then
204 cp -f /bin/hostname /tools/bin/hostname 2>/dev/null
205 fi
119ee469 206
df5e82b3
MT
207 # Run LFS static binary creation scripts one by one
208 export CCACHE_DIR=$BASEDIR/ccache
209 export CCACHE_HASHDIR=1
210
211 # Remove pre-install list of installed files in case user erase some files before rebuild
212 rm -f $BASEDIR/build/usr/src/lsalr 2>/dev/null
213}
214
df5e82b3
MT
215buildtoolchain() {
216 LOGFILE="$BASEDIR/log/_build.toolchain.log"
217 export LOGFILE
df5e82b3
MT
218 ORG_PATH=$PATH
219 NATIVEGCC=`gcc --version | grep GCC | awk {'print $3'}`
220 export NATIVEGCC GCCmajor=${NATIVEGCC:0:1} GCCminor=${NATIVEGCC:2:1} GCCrelease=${NATIVEGCC:4:1}
221 lfsmake1 ccache
15679d9f
MT
222 lfsmake1 binutils PASS=1
223 lfsmake1 gcc PASS=1
df5e82b3 224 export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH
dd714b8a
MT
225 lfsmake1 linux-libc-header
226 lfsmake1 glibc
9b0ff0a0 227 lfsmake1 cleanup-toolchain PASS=1
df5e82b3
MT
228 lfsmake1 tcl
229 lfsmake1 expect
df5e82b3 230 lfsmake1 dejagnu
15679d9f
MT
231 lfsmake1 gcc PASS=2
232 lfsmake1 binutils PASS=2
dd714b8a
MT
233 lfsmake1 ncurses
234 lfsmake1 bash
df5e82b3 235 lfsmake1 bzip2
dd714b8a 236 lfsmake1 coreutils
df5e82b3
MT
237 lfsmake1 diffutils
238 lfsmake1 findutils
dd714b8a 239 lfsmake1 gawk
df5e82b3 240 lfsmake1 gettext
dd714b8a
MT
241 lfsmake1 grep
242 lfsmake1 gzip
243 lfsmake1 m4
244 lfsmake1 make
df5e82b3 245 lfsmake1 patch
dd714b8a
MT
246 lfsmake1 perl
247 lfsmake1 sed
df5e82b3
MT
248 lfsmake1 tar
249 lfsmake1 texinfo
df5e82b3 250 lfsmake1 util-linux
9b0ff0a0 251 lfsmake1 cleanup-toolchain PASS=2
df5e82b3
MT
252 export PATH=$ORG_PATH
253}
254
255buildbase() {
256 LOGFILE="$BASEDIR/log/_build.base.log"
257 export LOGFILE
df5e82b3 258 lfsmake2 stage2
9b0ff0a0 259 lfsmake2 linux-libc-header
df5e82b3
MT
260 lfsmake2 man-pages
261 lfsmake2 glibc
9b0ff0a0 262 lfsmake2 cleanup-toolchain PASS=3
df5e82b3
MT
263 lfsmake2 binutils
264 lfsmake2 gcc
9b0ff0a0 265 lfsmake2 berkeley
df5e82b3 266 lfsmake2 coreutils
df5e82b3 267 lfsmake2 iana-etc
df5e82b3
MT
268 lfsmake2 m4
269 lfsmake2 bison
9b0ff0a0
MT
270 lfsmake2 ncurses
271 lfsmake2 procps
df5e82b3 272 lfsmake2 sed
9b0ff0a0 273 lfsmake2 libtool
df5e82b3 274 lfsmake2 perl
9b0ff0a0
MT
275 lfsmake2 readline
276 lfsmake2 zlib
df5e82b3
MT
277 lfsmake2 autoconf
278 lfsmake2 automake
279 lfsmake2 bash
df5e82b3
MT
280 lfsmake2 bzip2
281 lfsmake2 diffutils
df5e82b3 282 lfsmake2 e2fsprogs
65998e0a 283 lfsmake2 ed
9b0ff0a0
MT
284 lfsmake2 file
285 lfsmake2 findutils
286 lfsmake2 flex
15679d9f 287 lfsmake2 grub
9b0ff0a0
MT
288 lfsmake2 gawk
289 lfsmake2 gettext
290 lfsmake2 grep
291 lfsmake2 groff
df5e82b3 292 lfsmake2 gzip
9b0ff0a0
MT
293 lfsmake2 inetutils
294 lfsmake2 iproute2
295 lfsmake2 kbd
296 lfsmake2 less
df5e82b3 297 lfsmake2 make
9b0ff0a0
MT
298 lfsmake2 man
299 lfsmake2 mktemp
df5e82b3 300 lfsmake2 modutils
65998e0a 301 lfsmake2 net-tools
df5e82b3 302 lfsmake2 patch
df5e82b3
MT
303 lfsmake2 psmisc
304 lfsmake2 shadow
305 lfsmake2 sysklogd
306 lfsmake2 sysvinit
307 lfsmake2 tar
90d372c4
MT
308 lfsmake2 texinfo
309 lfsmake2 udev
df5e82b3 310 lfsmake2 util-linux
90d372c4 311 lfsmake2 vim
df5e82b3
MT
312}
313
15679d9f 314buildipfire() {
907cd036 315 LOGFILE="$BASEDIR/log/_build.ipfire.log"
df5e82b3 316 export LOGFILE
15679d9f
MT
317 ipfiremake configroot
318 ipfiremake dhcp
319 ipfiremake dhcpcd
320 ipfiremake libusb
321 ipfiremake libpcap
d316437b
MT
322# Temporary disabled.
323# ipfiremake linux-atm
15679d9f
MT
324 ipfiremake ppp
325 ipfiremake rp-pppoe
326 ipfiremake unzip
fd3e7da0 327# ipfiremake linux PASS=I # Can we remove the installer kernel?
6b8cff41 328 ipfiremake linux PASS=S
c3e36980
MT
329# ipfiremake 3cp4218 PASS=SMP
330# ipfiremake amedyn PASS=SMP
331# ipfiremake cxacru PASS=SMP
332# ipfiremake eagle PASS=SMP
333# ipfiremake cnx_pci PASS=SMP
334# ipfiremake fcdsl PASS=SMP
335# ipfiremake fcdsl2 PASS=SMP
336# ipfiremake fcdslsl PASS=SMP
337# ipfiremake fcdslusb PASS=SMP
338# ipfiremake fcdslslusb PASS=SMP
339# ipfiremake fcpci PASS=SMP
340# ipfiremake fcclassic PASS=SMP
341# ipfiremake pulsar PASS=SMP
342# ipfiremake unicorn PASS=SMP
343# ipfiremake promise-sata-300-tx PASS=SMP
c3db995c 344 ipfiremake zaptel PASS=S
c3e36980 345 ipfiremake linux
6b8cff41
MT
346# ipfiremake 3cp4218
347# ipfiremake amedyn
348# ipfiremake cxacru
349# ipfiremake eciadsl
350# ipfiremake eagle
351# ipfiremake speedtouch
352# ipfiremake cnx_pci
353# ipfiremake fcdsl
354# ipfiremake fcdsl2
355# ipfiremake fcdslsl
356# ipfiremake fcdslusb
357# ipfiremake fcdslslusb
f59e1e88
MT
358# ipfiremake fcpci
359# ipfiremake fcclassic
6b8cff41 360# ipfiremake pulsar
f59e1e88
MT
361# ipfiremake unicorn
362# ipfiremake promise-sata-300-tx
119f6ad3 363 ipfiremake zaptel
6b8cff41 364# ipfiremake pcmciautils
15679d9f
MT
365 ipfiremake expat
366 ipfiremake gdbm
367 ipfiremake gmp
c8ead4a5 368 ipfiremake pam
15679d9f
MT
369 ipfiremake openssl
370 ipfiremake python
371 ipfiremake libnet
ddac6087 372 ipfiremake libjpeg
15679d9f
MT
373 ipfiremake libpng
374 ipfiremake libtiff
15679d9f
MT
375 ipfiremake lcms
376 ipfiremake libmng
377 ipfiremake freetype
fd3e7da0 378 ipfiremake libart
15679d9f
MT
379 ipfiremake gd
380 ipfiremake popt
411afd1f 381 ipfiremake pcre
15679d9f
MT
382 ipfiremake slang
383 ipfiremake newt
fd3e7da0 384 ipfiremake libcap
15679d9f 385 ipfiremake pciutils
15679d9f 386 ipfiremake libxml2
6b8cff41 387 ipfiremake BerkeleyDB
15679d9f 388 ipfiremake mysql
411afd1f 389 ipfiremake cyrus-sasl
15679d9f 390 ipfiremake openldap
c8ead4a5 391# ipfiremake cyrus-sasl PASS=L # Doesn't work yet. Thereby there's the question: Do we really need this?
15679d9f
MT
392 ipfiremake apache2
393 ipfiremake php
394 ipfiremake subversion
c8ead4a5 395 ipfiremake apache2 PASS=C
15679d9f
MT
396 ipfiremake arping
397 ipfiremake beep
398 ipfiremake bind
399 ipfiremake capi4k-utils
400 ipfiremake cdrtools
401 ipfiremake dnsmasq
402 ipfiremake dosfstools
72d80898 403 ipfiremake reiserfsprogs
15679d9f
MT
404 ipfiremake ethtool
405 ipfiremake ez-ipupdate
406 ipfiremake fcron
7b9e5f10 407 ipfiremake GD
15679d9f
MT
408 ipfiremake gnupg
409 ipfiremake hdparm
410 ipfiremake ibod
411 ipfiremake initscripts
412 ipfiremake iptables
413 ipfiremake ipac-ng
414 ipfiremake ipaddr
15679d9f 415 ipfiremake iptstate
fd3e7da0 416 ipfiremake iputils
15679d9f 417 ipfiremake l7-protocols
fe6d84cb
MT
418# ipfiremake isapnptools # ERROR :(
419# ipfiremake isdn4k-utils # What about mISDN???
72d80898 420 ipfiremake kudzu
15679d9f
MT
421 ipfiremake logrotate
422 ipfiremake logwatch
423 ipfiremake mingetty
424 ipfiremake misc-progs
425 ipfiremake mtools
426 ipfiremake nano
427 ipfiremake nash
428 ipfiremake nasm
fd3e7da0 429### The Perl Modules have to be updated! I will skip this now!
15679d9f
MT
430 ipfiremake URI
431 ipfiremake HTML-Tagset
432 ipfiremake HTML-Parser
433 ipfiremake Compress-Zlib
434 ipfiremake Digest
435 ipfiremake Digest-SHA1
436 ipfiremake Digest-HMAC
437 ipfiremake libwww-perl
438 ipfiremake Net-DNS
439 ipfiremake Net-IPv4Addr
440 ipfiremake Net_SSLeay
441 ipfiremake IO-Stringy
442 ipfiremake Unix-Syslog
443 ipfiremake Mail-Tools
444 ipfiremake MIME-Tools
445 ipfiremake Net-Server
446 ipfiremake Convert-TNEF
447 ipfiremake Convert-UUlib
448 ipfiremake Archive-Tar
449 ipfiremake Archive-Zip
450 ipfiremake Text-Tabs+Wrap
451 ipfiremake Locale-Country
452 ipfiremake GeoIP
fd3e7da0 453###
15679d9f
MT
454 ipfiremake fwhits
455 ipfiremake noip_updater
456 ipfiremake ntp
457 ipfiremake oinkmaster
458 ipfiremake openssh
459 ipfiremake openswan
460 ipfiremake pptpclient
461 ipfiremake rrdtool
462 ipfiremake setserial
463 ipfiremake setup
464 ipfiremake snort
465 ipfiremake squid
466 ipfiremake squid-graph
467 ipfiremake squidguard
fd3e7da0 468# ipfiremake tcpdump
15679d9f
MT
469 ipfiremake traceroute
470 ipfiremake vlan
471 ipfiremake wireless
472 ipfiremake libsafe
473 ipfiremake 3c5x9setup
474 ipfiremake pakfire
475 ipfiremake startscripts
476 ipfiremake java
477 ipfiremake bootsplash
478 ipfiremake spandsp
479 ipfiremake lzo
480 ipfiremake openvpn
481 ipfiremake pkg-config
482 ipfiremake glib
15679d9f 483 ipfiremake pammysql
15679d9f
MT
484 ipfiremake xinetd
485 ipfiremake ghostscript
486 ipfiremake cups
487 ipfiremake samba
488 ipfiremake sudo
489 ipfiremake mc
490 ipfiremake wget
491 ipfiremake wput
492 ipfiremake bridge-utils
493 ipfiremake screen
494 ipfiremake hddtemp
495 ipfiremake smartmontools
496 ipfiremake htop
497 ipfiremake lynx
498 ipfiremake postfix
499 ipfiremake procmail
500 ipfiremake fetchmail
501 ipfiremake cyrusimap
502 ipfiremake webcyradm
503 ipfiremake mailx
504 ipfiremake clamav
505 ipfiremake razor
506 ipfiremake spamassassin
fd3e7da0 507 ipfiremake amavisd
15679d9f 508 ipfiremake stund
15679d9f 509 ipfiremake libpri
119f6ad3 510# ipfiremake bristuff
15679d9f
MT
511 ipfiremake asterisk
512 ipfiremake mpg123
513 ipfiremake libmad
514 ipfiremake libogg
515 ipfiremake libvorbis
516 ipfiremake lame
517 ipfiremake xvid
518 ipfiremake mpeg2dec
519 ipfiremake ffmpeg
520 ipfiremake sox
521 ipfiremake gnump3d
522 ipfiremake videolan
523 ipfiremake applejuice
524 ipfiremake ocaml
525 ipfiremake mldonkey
526 ipfiremake ntop
527 ipfiremake rsync
528 ipfiremake tcpwrapper
529 ipfiremake portmap
530 ipfiremake nfs
531 ipfiremake nmap
532 ipfiremake mbmon
533 ipfiremake iftop
534 ipfiremake ncftp
535 ipfiremake cftp
536 ipfiremake etherwake
537 ipfiremake ethereal
538 ipfiremake tftp-hpa
539 ipfiremake iptraf
540 ipfiremake nagios
541 ipfiremake yasuc
df5e82b3
MT
542}
543
544buildinstaller() {
545 # Run installer scripts one by one
546 LOGFILE="$BASEDIR/log/_build.installer.log"
547 export LOGFILE
0afc6d83 548 ipfiremake syslinux
15679d9f 549 ipfiremake uClibc
df5e82b3 550 installmake busybox
c66941dd 551 installmake udev
33634aa8
MT
552 installmake slang
553 installmake newt
72d80898 554 installmake gettext
33634aa8
MT
555 installmake kbd
556 installmake popt
33634aa8 557 installmake sysvinit
df5e82b3 558 installmake misc-progs
33634aa8
MT
559 installmake e2fsprogs
560 installmake reiserfsprogs
a6316ce4 561 installmake sysfsutils
df5e82b3 562 installmake util-linux
df5e82b3 563 installmake pciutils
a6316ce4 564 installmake pcmciautils
fcb5057d 565 installmake kudzu
df5e82b3 566 installmake installer
33634aa8
MT
567 installmake scsi.img # this is to be deleted
568 installmake driver.img # this is to be deleted
df5e82b3 569 installmake initrd
33634aa8
MT
570 installmake boot.img # this is to be deleted
571# ipfiremake as86 # this is to be deleted
572# ipfiremake mbr # this is to be deleted
df5e82b3
MT
573}
574
575buildpackages() {
576 LOGFILE="$BASEDIR/log/_build.packages.log"
577 export LOGFILE
578 echo "... see detailed log in _build.*.log files" >> $LOGFILE
0fbb45e9 579
edd536b6 580 installmake strip
df5e82b3
MT
581
582 # Generating list of packages used
0fbb45e9 583 echo -n "Generating packages list from logs" | tee -a $LOGFILE
df5e82b3
MT
584 rm -f $BASEDIR/doc/packages-list
585 for i in `ls -1tr $BASEDIR/log/[^_]*`; do
586 if [ "$i" != "$BASEDIR/log/FILES" -a -n $i ]; then
7471f6ab 587 echo "* `basename $i`" >>$BASEDIR/doc/packages-list
df5e82b3
MT
588 fi
589 done
7471f6ab 590 echo "== List of softwares used to build $NAME Version: $VERSION ==" > $BASEDIR/doc/packages-list.txt
0fbb45e9 591 grep -v 'configroot$\|img$\|initrd$\|initscripts$\|installer$\|install$\|setup$\|pakfire$\|stage2$\|smp$\|tools$\|tools1$\|tools2$\|.tgz$\|-config$\|_missing_rootfile$' \
df5e82b3
MT
592 $BASEDIR/doc/packages-list | sort >> $BASEDIR/doc/packages-list.txt
593 rm -f $BASEDIR/doc/packages-list
c9673262 594 # packages-list.txt is ready to be displayed for wiki page
0fbb45e9 595 beautify message DONE
df5e82b3 596
9607771a 597 # Create images for install
15679d9f 598 ipfiremake cdrom
33634aa8 599 ipfiremake pxe
fcb5057d 600 cp -f $LFS/install/images/{*.iso,*.tgz} $BASEDIR >> $LOGFILE 2>&1
c9673262 601
72d80898 602# ipfirepackages
e67a57fe
MT
603
604 # Cleanup
605 stdumount
606 rm -rf $BASEDIR/build/tmp/*
607
608 # Generating total list of files
609 echo "`date -u '+%b %e %T'`: Generating files list from logs" | tee -a $LOGFILE
610 rm -f $BASEDIR/log/FILES
611 for i in `ls -1tr $BASEDIR/log/[^_]*`; do
612 if [ "$i" != "$BASEDIR/log/FILES" -a -n $i ]; then
613 echo "##" >>$BASEDIR/log/FILES
614 echo "## `basename $i`" >>$BASEDIR/log/FILES
615 echo "##" >>$BASEDIR/log/FILES
616 cat $i | sed "s%^\./%#%" | sort >> $BASEDIR/log/FILES
617 fi
618 done
913668ba 619 cd $BASEDIR/packages; ls -w1 *.ipfire | awk -F ".ipfire" '{ print $1 }' > $BASEDIR/packages/packages_list.txt
5e773594 620 echo -n "###EOF###" >> $BASEDIR/packages/packages_list.txt
e67a57fe
MT
621
622 cd $PWD
623
624}
625
626ipfirepackages() {
013a23e2
MT
627 if [ -d "$BASEDIR/packages" ]; then
628 for i in `ls $BASEDIR/packages`; do
629 touch $BASEDIR/build/install/packages/$i.empty
630 done
631 fi
f1baee3e 632# ipfiredist amavisd
78331e30 633 ipfiredist applejuice
5ac2da9f 634 ipfiredist asterisk
c7acba4a 635 ipfiredist clamav
483f59cd 636 ipfiredist cups
78331e30
MT
637 ipfiredist cyrusimap
638 ipfiredist fetchmail
d1b6aa72 639 ipfiredist ffmpeg
78331e30 640 ipfiredist gnump3d
7a98bae5 641 ipfiredist iptraf
0d0521b6 642 ipfiredist java
78331e30 643 ipfiredist lame
d1b6aa72 644 ipfiredist libmad
ae179f6e 645 ipfiredist libogg
ae179f6e 646 ipfiredist libvorbis
f0ca8c34 647 ipfiredist mailx
3ab910dd 648 ipfiredist mldonkey
d1b6aa72 649 ipfiredist mpeg2dec
2ae94d2d 650 ipfiredist nagios
f0ca8c34
MT
651 ipfiredist nfs
652 ipfiredist nmap
3e45cc09 653 ipfiredist ntop
27ac55bf 654 ipfiredist portmap
78331e30 655 ipfiredist postfix
371d9df0 656 ipfiredist procmail
90350ff3 657 ipfiredist samba
ae179f6e 658 ipfiredist sox
f0ca8c34 659 ipfiredist spamassassin
7a98bae5 660 ipfiredist subversion
d1b6aa72 661 ipfiredist videolan
f1baee3e 662 ipfiredist webcyradm
d1b6aa72 663 ipfiredist xvid
0145f271 664 ipfiredist yasuc
78331e30 665 test -d $BASEDIR/packages || mkdir $BASEDIR/packages
d535503d 666 mv -f $LFS/install/packages/*.{ipfire,md5} $BASEDIR/packages >> $LOGFILE 2>&1
483f59cd 667 rm -rf $BASEDIR/build/install/packages/*
df5e82b3
MT
668}
669
670# See what we're supposed to do
671case "$1" in
672build)
9729e787 673 clear
df5e82b3 674 BUILDMACHINE=`uname -m`
712d859c 675 PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz 2> /dev/null | head -n 1`
df5e82b3 676 #only restore on a clean disk
9b0ff0a0 677 if [ ! -f log/cleanup-toolchain-2-tools ]; then
df5e82b3 678 if [ ! -n "$PACKAGE" ]; then
15679d9f 679 beautify build_stage "Full toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
df5e82b3
MT
680 prepareenv
681 buildtoolchain
682 else
683 PACKAGENAME=${PACKAGE%.tar.gz}
15679d9f 684 beautify build_stage "Packaged toolchain compilation"
df5e82b3
MT
685 if [ `md5sum $PACKAGE | awk '{print $1}'` == `cat $PACKAGENAME.md5 | awk '{print $1}'` ]; then
686 tar zxf $PACKAGE
687 prepareenv
688 else
689 exiterror "$PACKAGENAME md5 did not match, check downloaded package"
690 fi
691 fi
692 else
9729e787
MT
693 echo -n "Using installed toolchain" | tee -a $LOGFILE
694 beautify message SKIP
df5e82b3
MT
695 prepareenv
696 fi
5cfe86e6 697
15679d9f 698 beautify build_stage "Building base"
df5e82b3 699 buildbase
15679d9f
MT
700
701 beautify build_stage "Building IPFire"
702 buildipfire
5cfe86e6
HS
703
704 # Setzen des IPFire Builds
8af06406 705 if [ "$FIREBUILD" ]; then
e57bc1fd 706 echo "$FIREBUILD" > $BASEDIR/build/var/ipfire/firebuild
5cfe86e6 707 else
e57bc1fd 708 echo "_(OvO)_" > $BASEDIR/build/var/ipfire/firebuild
5cfe86e6
HS
709 fi
710
15679d9f 711 beautify build_stage "Building installer"
df5e82b3 712 buildinstaller
15679d9f
MT
713
714 beautify build_stage "Building packages"
df5e82b3
MT
715 buildpackages
716 ;;
717shell)
718 # enter a shell inside LFS chroot
719 # may be used to changed kernel settings
720 prepareenv
721 entershell
722 ;;
723changelog)
d1dd6669 724 echo -n "Loading new Changelog from SVN: "
f9315063 725 svn log http://svn.ipfire.eu/svn/ipfire > doc/ChangeLog
d1dd6669 726 echo "Finished!"
df5e82b3 727 ;;
df5e82b3
MT
728clean)
729 for i in `mount | grep $BASEDIR | sed 's/^.*loop=\(.*\))/\1/'`; do
730 $LOSETUP -d $i 2>/dev/null
731 done
732 for i in `mount | grep $BASEDIR | cut -d " " -f 1`; do
733 umount $i
734 done
735 stdumount
736 for i in `seq 0 7`; do
737 if ( losetup /dev/loop${i} 2>/dev/null | grep -q "/install/images" ); then
738 umount /dev/loop${i} 2>/dev/null;
739 losetup -d /dev/loop${i} 2>/dev/null;
740 fi;
741 done
742 rm -rf $BASEDIR/build
743 rm -rf $BASEDIR/cdrom
f9315063 744 rm -rf $BASEDIR/packages
df5e82b3 745 rm -rf $BASEDIR/log
df5e82b3
MT
746 if [ -h /tools ]; then
747 rm -f /tools
748 fi
749 ;;
f8e5510c 750newpak)
a9b17001
MT
751 # create structure for a new package
752 echo -e "Name of the new package: $2"
753 if [ ! -f "lfs/$2" ]; then
754 echo "`date -u '+%b %e %T'`: Creating directory src/paks/$2"
755 mkdir -p src/paks/$2
756 cd src/paks/$2
f8e5510c 757 echo "`date -u '+%b %e %T'`: Creating files"
a9b17001
MT
758 cp $BASEDIR/lfs/postfix $BASEDIR/lfs/$2
759
f8e5510c 760 touch ROOTFILES
f8e5510c 761 touch {,un}install.sh
a9b17001 762 ## install.sh
f8e5510c
MT
763 echo '#!/bin/bash' > install.sh
764 echo '#' >> install.sh
765 echo '#################################################################' >> install.sh
766 echo '# #' >> install.sh
767 echo '# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #' >> install.sh
768 echo '# #' >> install.sh
769 echo '#################################################################' >> install.sh
770 echo '#' >> install.sh
771 echo '# Extract the files' >> install.sh
772 echo 'tar xfz files.tgz -C /' >> install.sh
a9b17001
MT
773 echo 'cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2' >> install.sh
774 ## uninstall.sh
f8e5510c
MT
775 echo '#!/bin/bash' > uninstall.sh
776 echo '#################################################################' >> uninstall.sh
777 echo '# #' >> uninstall.sh
778 echo '# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #' >> uninstall.sh
779 echo '# #' >> uninstall.sh
780 echo '#################################################################' >> uninstall.sh
781 echo '#' >> uninstall.sh
782 echo '# Delete the files' >> uninstall.sh
783 echo '## Befehl fehlt noch' >> uninstall.sh
a9b17001 784 echo 'rm -f /opt/pakfire/installed/ROOTFILES.$2' >> uninstall.sh
f8e5510c 785 echo "`date -u '+%b %e %T'`: Adding files to SVN"
a9b17001
MT
786 cd - && svn add lfs/$2 && svn add src/paks/$2
787
788 echo -n "Do you want to remove the folders? [y/n]"
789 read REM
790 if [ "$REM" == "y" ]; then
791 echo "Removing the folders..."
792 svn del src/paks/$2 --force
793 else
794 echo "Folders are kept."
795 fi
df5e82b3 796 else
a9b17001 797 echo "$2 already exists"
df5e82b3 798 fi
df5e82b3
MT
799 exit 0
800 ;;
c3db995c 801downloadsrc)
df5e82b3
MT
802 if [ ! -d $BASEDIR/cache ]; then
803 mkdir $BASEDIR/cache
804 fi
805 mkdir -p $BASEDIR/log
857d9bf2 806 echo -e "${BOLD}Preload all source files${NORMAL}" | tee -a $LOGFILE
df5e82b3
MT
807 FINISHED=0
808 cd $BASEDIR/lfs
809 for c in `seq $MAX_RETRIES`; do
810 if (( FINISHED==1 )); then
811 break
812 fi
813 FINISHED=1
814 cd $BASEDIR/lfs
815 for i in *; do
816 if [ -f "$i" -a "$i" != "Config" ]; then
e22c7973 817 echo -ne "Loading $i"
df5e82b3
MT
818 make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t ($c/$MAX_RETRIES)" download >> $LOGFILE 2>&1
819 if [ $? -ne 0 ]; then
e22c7973 820 beautify message FAIL
df5e82b3
MT
821 FINISHED=0
822 else
823 if [ $c -eq 1 ]; then
e22c7973 824 beautify message DONE
df5e82b3
MT
825 fi
826 fi
827 fi
828 done
829 done
e22c7973 830 echo -e "${BOLD}***Verifying md5sums${NORMAL}"
df5e82b3
MT
831 ERROR=0
832 for i in *; do
833 if [ -f "$i" -a "$i" != "Config" ]; then
834 make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t " md5 >> $LOGFILE 2>&1
835 if [ $? -ne 0 ]; then
e22c7973
MT
836 echo -ne "MD5 difference in lfs/$i"
837 beautify message FAIL
df5e82b3
MT
838 ERROR=1
839 fi
840 fi
841 done
842 if [ $ERROR -eq 0 ]; then
e22c7973
MT
843 echo -ne "${BOLD}all files md5sum match${NORMAL}"
844 beautify message DONE
845 else
846 echo -ne "${BOLD}not all files were correctly download${NORMAL}"
847 beautify message FAIL
df5e82b3 848 fi
e22c7973 849 cd - >/dev/null 2>&1
df5e82b3 850 ;;
df5e82b3 851toolchain)
9729e787 852 clear
df5e82b3 853 prepareenv
15679d9f 854 beautify build_stage "Toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
df5e82b3
MT
855 buildtoolchain
856 BUILDMACHINE=`uname -m`
857 echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE
712d859c
MT
858 test -d $BASEDIR/cache/toolchains || mkdir $BASEDIR/cache/toolchains
859 cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz \
df5e82b3
MT
860 build/{bin,etc,usr/bin,usr/local} \
861 build/tools/{bin,etc,*-linux-gnu,include,lib,libexec,sbin,share,var} \
862 log >> $LOGFILE
712d859c
MT
863 md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz \
864 > cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.md5
df5e82b3
MT
865 stdumount
866 ;;
867gettoolchain)
868 BUILDMACHINE=`uname -m`
869 # arbitrary name to be updated in case of new toolchain package upload
c6cb9d25 870 PACKAGE=$SNAME-$VERSION-toolchain-$BUILDMACHINE
712d859c 871 if [ ! -f $BASEDIR/cache/toolchains/$PACKAGE.tar.gz ]; then
5bd13f01 872 URL_TOOLCHAIN=`grep URL_TOOLCHAIN lfs/Config | awk '{ print $3 }'`
712d859c
MT
873 test -d $BASEDIR/cache/toolchains || mkdir $BASEDIR/cache/toolchains
874 echo "`date -u '+%b %e %T'`: Load toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE
875 cd $BASEDIR/cache/toolchains
5bd13f01 876 wget $URL_TOOLCHAIN/$PACKAGE.tar.gz $URL_TOOLCHAIN/$PACKAGE.md5 >& /dev/null
712d859c
MT
877 if [ $? -ne 0 ]; then
878 echo "`date -u '+%b %e %T'`: error downloading toolchain for $BUILDMACHINE machine" | tee -a $LOGFILE
40a4ea4c 879 else
712d859c
MT
880 if [ "`md5sum $PACKAGE.tar.gz | awk '{print $1}'`" = "`cat $PACKAGE.md5 | awk '{print $1}'`" ]; then
881 echo "`date -u '+%b %e %T'`: toolchain md5 ok" | tee -a $LOGFILE
882 else
883 exiterror "$PACKAGE.md5 did not match, check downloaded package"
884 fi
40a4ea4c 885 fi
712d859c
MT
886 else
887 echo "Toolchain is already downloaded. Exiting..."
df5e82b3
MT
888 fi
889 ;;
15679d9f 890othersrc)
ce56e927 891 prepareenv
15679d9f 892 echo -ne "`date -u '+%b %e %T'`: Build sources iso for $MACHINE" | tee -a $LOGFILE
ce56e927
MT
893 chroot $LFS /tools/bin/env -i HOME=/root \
894 TERM=$TERM PS1='\u:\w\$ ' \
895 PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \
896 VERSION=$VERSION NAME="$NAME" SNAME="$SNAME" MACHINE=$MACHINE \
897 /bin/bash -x -c "cd /usr/src/lfs && make -f sources-iso LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
898 mv $LFS/install/images/ipfire-* $BASEDIR >> $LOGFILE 2>&1
15679d9f
MT
899 if [ $? -eq "0" ]; then
900 beautify message DONE
901 else
902 beautify message FAIL
903 fi
ce56e927
MT
904 stdumount
905 ;;
c6cb9d25
MT
906svn)
907 case "$2" in
908 update|up)
cc0e56be 909 # clear
15679d9f 910 echo -ne "Loading the latest source files...\n"
7471f6ab
MT
911 if [ $3 ]; then
912 svn update -r $3 | tee -a $PWD/log/_build.svn.update.log
913 else
914 svn update | tee -a $PWD/log/_build.svn.update.log
915 fi
15679d9f
MT
916 if [ $? -eq "0" ]; then
917 beautify message DONE
c6cb9d25 918 else
15679d9f 919 beautify message FAIL
c6cb9d25
MT
920 exit 1
921 fi
15679d9f 922 echo -ne "Writing the svn-info to a file"
c6cb9d25 923 svn info > $PWD/svn_status
15679d9f
MT
924 if [ $? -eq "0" ]; then
925 beautify message DONE
c6cb9d25 926 else
15679d9f 927 beautify message FAIL
c6cb9d25
MT
928 exit 1
929 fi
712d859c 930 chmod 755 $0
cc0e56be 931 exit 0
c6cb9d25
MT
932 ;;
933 commit|ci)
934 clear
6b8cff41
MT
935 if [ -f /usr/bin/mcedit ]; then
936 export EDITOR=/usr/bin/mcedit
73d9a908
MT
937 fi
938 if [ -f /usr/bin/nano ]; then
939 export EDITOR=/usr/bin/nano
6b8cff41
MT
940 fi
941 echo -ne "Selecting editor $EDITOR..."
942 beautify message DONE
d79b46cb 943 if [ -e /sbin/yast ]; then
028698e8
MT
944 if [ "`echo $SVN_REVISION | cut -c 3`" -eq "0" ]; then
945 $0 changelog
946 fi
d79b46cb 947 fi
15679d9f 948 svn commit
c6cb9d25 949 $0 svn up
6b8cff41 950 $0 uploadsrc
c6cb9d25
MT
951 ;;
952 dist)
7471f6ab
MT
953 if [ $3 ]; then
954 SVN_REVISION=$3
955 fi
956 if [ -f ipfire-source-r$SVN_REVISION.tar.gz ]; then
957 echo -ne "REV $SVN_REVISION: SKIPPED!\n"
958 exit 0
959 fi
960 echo -en "REV $SVN_REVISION: Downloading..."
9729e787
MT
961 svn export http://svn.ipfire.eu/svn/ipfire/trunk ipfire-source/ --force > /dev/null
962 svn log http://svn.ipfire.eu/svn/ipfire/trunk -r 1:$SVN_REVISION > ipfire-source/Changelog
963 #svn info http://svn.ipfire.eu/svn/ipfire/trunk -r $SVN_REVISION > ipfire-source/svn_status
15679d9f
MT
964 evaluate 1
965
7471f6ab
MT
966 echo -en "REV $SVN_REVISION: Compressing files..."
967 if [ -e ipfire-source/trunk/make.sh ]; then
968 chmod 755 ipfire-source/trunk/make.sh
969 fi
9dc02b38 970 tar cfz ipfire-source-r$SVN_REVISION.tar.gz ipfire-source
15679d9f 971 evaluate 1
7471f6ab 972 echo -en "REV $SVN_REVISION: Cleaning up..."
c6cb9d25 973 rm ipfire-source/ -r
15679d9f 974 evaluate 1
7471f6ab 975 ;;
028698e8 976 diff|di)
15679d9f 977 echo -ne "Make a local diff to last svn revision"
c6cb9d25 978 svn diff > ipfire-diff-`date +'%Y-%m-%d-%H:%M'`-r`svn info | grep Revision | cut -c 11-`.diff
15679d9f 979 evaluate 1
c6cb9d25
MT
980 echo "Diff was successfully saved to ipfire-diff-`date +'%Y-%m-%d-%H:%M'`-r`svn info | grep Revision | cut -c 11-`.diff"
981 ;;
982 esac
f9315063 983 ;;
15679d9f
MT
984uploadsrc)
985 PWD=`pwd`
986 cd $BASEDIR/cache/
987 echo -e "Uploading cache to ftp server:"
988 ncftpls -u $IPFIRE_FTP_USER_INT -p $IPFIRE_FTP_PASS_INT ftp://$IPFIRE_FTP_URL_INT$IPFIRE_FTP_PATH_INT/ > /var/tmp/ftplist
989 for i in *; do
f59e1e88 990 if [ "$i" == "toolchains" ]; then continue; fi
15679d9f 991 grep -q $i /var/tmp/ftplist
0eab8e84 992 if [ "$?" -ne "0" ]; then
15679d9f 993 echo -ne "$i"
72d80898 994 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
0eab8e84 995 if [ "$?" -eq "0" ]; then
15679d9f 996 beautify message DONE
0eab8e84 997 else
15679d9f 998 beautify message FAIL
0eab8e84
MT
999 fi
1000 fi
1001 done
15679d9f
MT
1002 rm -f /var/tmp/ftplist
1003 UL_TIME_START=`date +'%s'`
1004 ncftpbatch -d > /dev/null 2>&1
1005 while ps acx | grep -q ncftpbatch
1006 do
1007 UL_TIME=$(expr `date +'%s'` - $UL_TIME_START)
1008 echo -ne "\r ${UL_TIME}s : Upload is running..."
1009 sleep 1
1010 done
1011 beautify message DONE
1012 cd $PWD
1013 exit 0
0eab8e84 1014 ;;
cc0e56be
MT
1015upload)
1016 case "$2" in
1017 iso)
1018 echo -e "Uploading the iso to $IPFIRE_FTP_URL_EXT."
9dc02b38
MT
1019 cat <<EOF > .ftp-commands
1020mkdir $IPFIRE_FTP_PATH_EXT
1021ls -lah
1022quit
1023EOF
1024 ncftp -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT < .ftp-commands
1025 rm -f .ftp-commands
1026 md5sum ipfire-install-$VERSION.i386.iso > ipfire-install-$VERSION.i386.iso.md5
1027 ncftpput -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ ipfire-install-$VERSION.i386.iso
1028 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
1029 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
6aae8d61 1030 ncftpput -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ svn_status
9dc02b38
MT
1031 if [ "$?" -eq "0" ]; then
1032 echo -e "The iso of Revision $SVN_REVISION was successfully uploaded to $IPFIRE_FTP_URL_EXT$IPFIRE_FTP_PATH_EXT/."
cc0e56be 1033 else
9dc02b38
MT
1034 echo -e "There was an error while uploading the iso to the ftp server."
1035 exit 1
cc0e56be 1036 fi
6aae8d61
MT
1037 if [ "$3" = "--with-sources-cd" ]; then
1038 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
1039 fi
cc0e56be
MT
1040 ;;
1041 paks)
9dc02b38
MT
1042 cat <<EOF > .ftp-commands
1043mkdir $IPFIRE_FTP_PATH_PAK
1044ls -lah
1045quit
1046EOF
1047 ncftp -u $IPFIRE_FTP_USER_PAK -p $IPFIRE_FTP_PASS_PAK $IPFIRE_FTP_URL_PAK < .ftp-commands
1048 rm -f .ftp-commands
cc0e56be
MT
1049 ncftpput -z -u $IPFIRE_FTP_USER_PAK -p $IPFIRE_FTP_PASS_PAK $IPFIRE_FTP_URL_PAK $IPFIRE_FTP_PATH_PAK/ packages/*
1050 if [ "$?" -eq "0" ]; then
9dc02b38 1051 echo -e "The packages were successfully uploaded to $IPFIRE_FTP_URL_PAK$IPFIRE_FTP_PATH_PAK/."
cc0e56be
MT
1052 else
1053 echo -e "There was an error while uploading the packages to the ftp server."
712d859c 1054 exit 1
cc0e56be
MT
1055 fi
1056 ;;
1057 esac
0d0521b6 1058 ;;
cc0e56be 1059batch)
15679d9f
MT
1060 if [ "$2" -eq "--background" ]; then
1061 batch_script
1062 exit $?
1063 fi
27ac55bf 1064 if [ `screen -ls | grep -q ipfire` ]; then
712d859c
MT
1065 echo "Build is already running, sorry!"
1066 exit 1
1067 else
27ac55bf
MT
1068 if [ "$2" = "--rebuild" ]; then
1069 export IPFIRE_REBUILD=1
1070 echo "REBUILD!"
1071 else
1072 export IPFIRE_REBUILD=0
1073 fi
15679d9f
MT
1074 echo -en "${BOLD}***IPFire-Batch-Build is starting...${NORMAL}"
1075 screen -dmS ipfire $0 batch --background
1076 evaluate 1
712d859c
MT
1077 exit 0
1078 fi
cc0e56be 1079 ;;
028698e8 1080watch)
15679d9f 1081 watch_screen
028698e8 1082 ;;
33634aa8
MT
1083pxe)
1084 case "$2" in
1085 start)
1086 start_tftpd
1087 ;;
1088 stop)
1089 stop_tftpd
1090 ;;
1091 reload)
1092 reload_tftpd
1093 ;;
1094 esac
1095 exit 0
1096 ;;
6b8cff41 1097"")
24a4a744
MT
1098 clear
1099 svn info
c3db995c 1100 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"
24a4a744
MT
1101 do
1102 case $name in
c3db995c
MT
1103 "IPFIRE: Downloadsrc")
1104 $0 downloadsrc
c6cb9d25
MT
1105 ;;
1106 "IPFIRE: Build (silent)")
1107 $0 build-silent
1108 ;;
1109 "IPFIRE: Watch Build")
028698e8 1110 $0 watch
c6cb9d25 1111 ;;
712d859c
MT
1112 "IPFIRE: Batch")
1113 $0 batch
1114 ;;
c6cb9d25
MT
1115 "IPFIRE: Clean")
1116 $0 clean
1117 ;;
c6cb9d25
MT
1118 "SVN: Update")
1119 $0 svn update
1120 ;;
c6cb9d25 1121 "Help")
c3db995c 1122 echo "Usage: $0 {build|changelog|clean|gettoolchain|newpak|downloadsrc|shell|sync|toolchain}"
c6cb9d25
MT
1123 cat doc/make.sh-usage
1124 ;;
712d859c
MT
1125 "LOG: Tail")
1126 tail -f log/_*
1127 ;;
c6cb9d25
MT
1128 "Exit")
1129 break
1130 ;;
24a4a744
MT
1131 esac
1132 done
df5e82b3 1133 ;;
6b8cff41 1134*)
c3db995c 1135 echo "Usage: $0 {build|changelog|clean|gettoolchain|newpak|downloadsrc|shell|sync|toolchain}"
6b8cff41
MT
1136 cat doc/make.sh-usage
1137 ;;
3ea75603 1138esac