Starte SSH-Server beim Boot.
[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
9b0ff0a0
MT
283 lfsmake2 file
284 lfsmake2 findutils
285 lfsmake2 flex
15679d9f 286 lfsmake2 grub
9b0ff0a0
MT
287 lfsmake2 gawk
288 lfsmake2 gettext
289 lfsmake2 grep
290 lfsmake2 groff
df5e82b3 291 lfsmake2 gzip
9b0ff0a0
MT
292 lfsmake2 inetutils
293 lfsmake2 iproute2
294 lfsmake2 kbd
295 lfsmake2 less
df5e82b3 296 lfsmake2 make
9b0ff0a0
MT
297 lfsmake2 man
298 lfsmake2 mktemp
df5e82b3
MT
299 lfsmake2 modutils
300 lfsmake2 patch
df5e82b3
MT
301 lfsmake2 psmisc
302 lfsmake2 shadow
303 lfsmake2 sysklogd
304 lfsmake2 sysvinit
305 lfsmake2 tar
90d372c4
MT
306 lfsmake2 texinfo
307 lfsmake2 udev
df5e82b3 308 lfsmake2 util-linux
90d372c4 309 lfsmake2 vim
df5e82b3
MT
310}
311
15679d9f 312buildipfire() {
907cd036 313 LOGFILE="$BASEDIR/log/_build.ipfire.log"
df5e82b3 314 export LOGFILE
a5ee5623
MT
315 ipfiremake inetutils
316 ipfiremake net-tools
317 ipfiremake ed
15679d9f
MT
318 ipfiremake configroot
319 ipfiremake dhcp
320 ipfiremake dhcpcd
321 ipfiremake libusb
322 ipfiremake libpcap
d316437b
MT
323# Temporary disabled.
324# ipfiremake linux-atm
15679d9f
MT
325 ipfiremake ppp
326 ipfiremake rp-pppoe
327 ipfiremake unzip
fd3e7da0 328# ipfiremake linux PASS=I # Can we remove the installer kernel?
6b8cff41 329 ipfiremake linux PASS=S
c3e36980
MT
330# ipfiremake 3cp4218 PASS=SMP
331# ipfiremake amedyn PASS=SMP
332# ipfiremake cxacru PASS=SMP
333# ipfiremake eagle PASS=SMP
334# ipfiremake cnx_pci PASS=SMP
335# ipfiremake fcdsl PASS=SMP
336# ipfiremake fcdsl2 PASS=SMP
337# ipfiremake fcdslsl PASS=SMP
338# ipfiremake fcdslusb PASS=SMP
339# ipfiremake fcdslslusb PASS=SMP
340# ipfiremake fcpci PASS=SMP
341# ipfiremake fcclassic PASS=SMP
342# ipfiremake pulsar PASS=SMP
343# ipfiremake unicorn PASS=SMP
344# ipfiremake promise-sata-300-tx PASS=SMP
c3db995c 345 ipfiremake zaptel PASS=S
c3e36980 346 ipfiremake linux
6b8cff41
MT
347# ipfiremake 3cp4218
348# ipfiremake amedyn
349# ipfiremake cxacru
350# ipfiremake eciadsl
351# ipfiremake eagle
352# ipfiremake speedtouch
353# ipfiremake cnx_pci
354# ipfiremake fcdsl
355# ipfiremake fcdsl2
356# ipfiremake fcdslsl
357# ipfiremake fcdslusb
358# ipfiremake fcdslslusb
f59e1e88
MT
359# ipfiremake fcpci
360# ipfiremake fcclassic
6b8cff41 361# ipfiremake pulsar
f59e1e88
MT
362# ipfiremake unicorn
363# ipfiremake promise-sata-300-tx
119f6ad3 364 ipfiremake zaptel
6b8cff41 365# ipfiremake pcmciautils
15679d9f
MT
366 ipfiremake expat
367 ipfiremake gdbm
368 ipfiremake gmp
c8ead4a5 369 ipfiremake pam
15679d9f
MT
370 ipfiremake openssl
371 ipfiremake python
372 ipfiremake libnet
ddac6087 373 ipfiremake libjpeg
15679d9f
MT
374 ipfiremake libpng
375 ipfiremake libtiff
15679d9f
MT
376 ipfiremake lcms
377 ipfiremake libmng
378 ipfiremake freetype
fd3e7da0 379 ipfiremake libart
15679d9f
MT
380 ipfiremake gd
381 ipfiremake popt
411afd1f 382 ipfiremake pcre
15679d9f
MT
383 ipfiremake slang
384 ipfiremake newt
fd3e7da0 385 ipfiremake libcap
15679d9f 386 ipfiremake pciutils
15679d9f 387 ipfiremake libxml2
6b8cff41 388 ipfiremake BerkeleyDB
15679d9f 389 ipfiremake mysql
411afd1f 390 ipfiremake cyrus-sasl
15679d9f 391 ipfiremake openldap
c8ead4a5 392# ipfiremake cyrus-sasl PASS=L # Doesn't work yet. Thereby there's the question: Do we really need this?
15679d9f
MT
393 ipfiremake apache2
394 ipfiremake php
395 ipfiremake subversion
c8ead4a5 396 ipfiremake apache2 PASS=C
15679d9f
MT
397 ipfiremake arping
398 ipfiremake beep
399 ipfiremake bind
400 ipfiremake capi4k-utils
401 ipfiremake cdrtools
402 ipfiremake dnsmasq
403 ipfiremake dosfstools
72d80898 404 ipfiremake reiserfsprogs
15679d9f
MT
405 ipfiremake ethtool
406 ipfiremake ez-ipupdate
407 ipfiremake fcron
7b9e5f10 408 ipfiremake GD
15679d9f
MT
409 ipfiremake gnupg
410 ipfiremake hdparm
411 ipfiremake ibod
412 ipfiremake initscripts
413 ipfiremake iptables
414 ipfiremake ipac-ng
415 ipfiremake ipaddr
15679d9f 416 ipfiremake iptstate
fd3e7da0 417 ipfiremake iputils
15679d9f 418 ipfiremake l7-protocols
fe6d84cb
MT
419# ipfiremake isapnptools # ERROR :(
420# ipfiremake isdn4k-utils # What about mISDN???
72d80898 421 ipfiremake kudzu
15679d9f
MT
422 ipfiremake logrotate
423 ipfiremake logwatch
424 ipfiremake mingetty
425 ipfiremake misc-progs
426 ipfiremake mtools
427 ipfiremake nano
428 ipfiremake nash
429 ipfiremake nasm
fd3e7da0 430### The Perl Modules have to be updated! I will skip this now!
15679d9f
MT
431 ipfiremake URI
432 ipfiremake HTML-Tagset
433 ipfiremake HTML-Parser
434 ipfiremake Compress-Zlib
435 ipfiremake Digest
436 ipfiremake Digest-SHA1
437 ipfiremake Digest-HMAC
438 ipfiremake libwww-perl
439 ipfiremake Net-DNS
440 ipfiremake Net-IPv4Addr
441 ipfiremake Net_SSLeay
442 ipfiremake IO-Stringy
443 ipfiremake Unix-Syslog
444 ipfiremake Mail-Tools
445 ipfiremake MIME-Tools
446 ipfiremake Net-Server
447 ipfiremake Convert-TNEF
448 ipfiremake Convert-UUlib
449 ipfiremake Archive-Tar
450 ipfiremake Archive-Zip
451 ipfiremake Text-Tabs+Wrap
452 ipfiremake Locale-Country
453 ipfiremake GeoIP
fd3e7da0 454###
15679d9f
MT
455 ipfiremake fwhits
456 ipfiremake noip_updater
457 ipfiremake ntp
458 ipfiremake oinkmaster
459 ipfiremake openssh
460 ipfiremake openswan
461 ipfiremake pptpclient
462 ipfiremake rrdtool
463 ipfiremake setserial
464 ipfiremake setup
465 ipfiremake snort
466 ipfiremake squid
467 ipfiremake squid-graph
468 ipfiremake squidguard
fd3e7da0 469# ipfiremake tcpdump
15679d9f
MT
470 ipfiremake traceroute
471 ipfiremake vlan
472 ipfiremake wireless
473 ipfiremake libsafe
474 ipfiremake 3c5x9setup
475 ipfiremake pakfire
476 ipfiremake startscripts
477 ipfiremake java
478 ipfiremake bootsplash
479 ipfiremake spandsp
480 ipfiremake lzo
481 ipfiremake openvpn
482 ipfiremake pkg-config
483 ipfiremake glib
15679d9f 484 ipfiremake pammysql
15679d9f
MT
485 ipfiremake xinetd
486 ipfiremake ghostscript
487 ipfiremake cups
488 ipfiremake samba
489 ipfiremake sudo
490 ipfiremake mc
491 ipfiremake wget
492 ipfiremake wput
493 ipfiremake bridge-utils
494 ipfiremake screen
495 ipfiremake hddtemp
496 ipfiremake smartmontools
497 ipfiremake htop
498 ipfiremake lynx
499 ipfiremake postfix
500 ipfiremake procmail
501 ipfiremake fetchmail
502 ipfiremake cyrusimap
503 ipfiremake webcyradm
504 ipfiremake mailx
505 ipfiremake clamav
506 ipfiremake razor
507 ipfiremake spamassassin
fd3e7da0 508 ipfiremake amavisd
15679d9f 509 ipfiremake stund
15679d9f 510 ipfiremake libpri
119f6ad3 511# ipfiremake bristuff
15679d9f
MT
512 ipfiremake asterisk
513 ipfiremake mpg123
514 ipfiremake libmad
515 ipfiremake libogg
516 ipfiremake libvorbis
517 ipfiremake lame
518 ipfiremake xvid
519 ipfiremake mpeg2dec
520 ipfiremake ffmpeg
521 ipfiremake sox
522 ipfiremake gnump3d
523 ipfiremake videolan
524 ipfiremake applejuice
525 ipfiremake ocaml
526 ipfiremake mldonkey
527 ipfiremake ntop
528 ipfiremake rsync
529 ipfiremake tcpwrapper
530 ipfiremake portmap
531 ipfiremake nfs
532 ipfiremake nmap
533 ipfiremake mbmon
534 ipfiremake iftop
535 ipfiremake ncftp
536 ipfiremake cftp
537 ipfiremake etherwake
538 ipfiremake ethereal
539 ipfiremake tftp-hpa
540 ipfiremake iptraf
541 ipfiremake nagios
542 ipfiremake yasuc
df5e82b3
MT
543}
544
545buildinstaller() {
546 # Run installer scripts one by one
547 LOGFILE="$BASEDIR/log/_build.installer.log"
548 export LOGFILE
0afc6d83 549 ipfiremake syslinux
15679d9f 550 ipfiremake uClibc
df5e82b3 551 installmake busybox
c66941dd 552 installmake udev
33634aa8
MT
553 installmake slang
554 installmake newt
72d80898 555 installmake gettext
33634aa8
MT
556 installmake kbd
557 installmake popt
33634aa8 558 installmake sysvinit
df5e82b3 559 installmake misc-progs
33634aa8
MT
560 installmake e2fsprogs
561 installmake reiserfsprogs
a6316ce4 562 installmake sysfsutils
df5e82b3 563 installmake util-linux
df5e82b3 564 installmake pciutils
a6316ce4 565 installmake pcmciautils
fcb5057d 566 installmake kudzu
df5e82b3 567 installmake installer
33634aa8
MT
568 installmake scsi.img # this is to be deleted
569 installmake driver.img # this is to be deleted
df5e82b3 570 installmake initrd
33634aa8
MT
571 installmake boot.img # this is to be deleted
572# ipfiremake as86 # this is to be deleted
573# ipfiremake mbr # this is to be deleted
df5e82b3
MT
574}
575
576buildpackages() {
577 LOGFILE="$BASEDIR/log/_build.packages.log"
578 export LOGFILE
579 echo "... see detailed log in _build.*.log files" >> $LOGFILE
0fbb45e9 580
edd536b6 581 installmake strip
df5e82b3
MT
582
583 # Generating list of packages used
0fbb45e9 584 echo -n "Generating packages list from logs" | tee -a $LOGFILE
df5e82b3
MT
585 rm -f $BASEDIR/doc/packages-list
586 for i in `ls -1tr $BASEDIR/log/[^_]*`; do
587 if [ "$i" != "$BASEDIR/log/FILES" -a -n $i ]; then
7471f6ab 588 echo "* `basename $i`" >>$BASEDIR/doc/packages-list
df5e82b3
MT
589 fi
590 done
7471f6ab 591 echo "== List of softwares used to build $NAME Version: $VERSION ==" > $BASEDIR/doc/packages-list.txt
0fbb45e9 592 grep -v 'configroot$\|img$\|initrd$\|initscripts$\|installer$\|install$\|setup$\|pakfire$\|stage2$\|smp$\|tools$\|tools1$\|tools2$\|.tgz$\|-config$\|_missing_rootfile$' \
df5e82b3
MT
593 $BASEDIR/doc/packages-list | sort >> $BASEDIR/doc/packages-list.txt
594 rm -f $BASEDIR/doc/packages-list
c9673262 595 # packages-list.txt is ready to be displayed for wiki page
0fbb45e9 596 beautify message DONE
df5e82b3 597
9607771a 598 # Create images for install
15679d9f 599 ipfiremake cdrom
33634aa8 600 ipfiremake pxe
fcb5057d 601 cp -f $LFS/install/images/{*.iso,*.tgz} $BASEDIR >> $LOGFILE 2>&1
c9673262 602
72d80898 603# ipfirepackages
e67a57fe
MT
604
605 # Cleanup
606 stdumount
607 rm -rf $BASEDIR/build/tmp/*
608
609 # Generating total list of files
610 echo "`date -u '+%b %e %T'`: Generating files list from logs" | tee -a $LOGFILE
611 rm -f $BASEDIR/log/FILES
612 for i in `ls -1tr $BASEDIR/log/[^_]*`; do
613 if [ "$i" != "$BASEDIR/log/FILES" -a -n $i ]; then
614 echo "##" >>$BASEDIR/log/FILES
615 echo "## `basename $i`" >>$BASEDIR/log/FILES
616 echo "##" >>$BASEDIR/log/FILES
617 cat $i | sed "s%^\./%#%" | sort >> $BASEDIR/log/FILES
618 fi
619 done
913668ba 620 cd $BASEDIR/packages; ls -w1 *.ipfire | awk -F ".ipfire" '{ print $1 }' > $BASEDIR/packages/packages_list.txt
5e773594 621 echo -n "###EOF###" >> $BASEDIR/packages/packages_list.txt
e67a57fe
MT
622
623 cd $PWD
624
625}
626
627ipfirepackages() {
013a23e2
MT
628 if [ -d "$BASEDIR/packages" ]; then
629 for i in `ls $BASEDIR/packages`; do
630 touch $BASEDIR/build/install/packages/$i.empty
631 done
632 fi
f1baee3e 633# ipfiredist amavisd
78331e30 634 ipfiredist applejuice
5ac2da9f 635 ipfiredist asterisk
c7acba4a 636 ipfiredist clamav
483f59cd 637 ipfiredist cups
78331e30
MT
638 ipfiredist cyrusimap
639 ipfiredist fetchmail
d1b6aa72 640 ipfiredist ffmpeg
78331e30 641 ipfiredist gnump3d
7a98bae5 642 ipfiredist iptraf
0d0521b6 643 ipfiredist java
78331e30 644 ipfiredist lame
d1b6aa72 645 ipfiredist libmad
ae179f6e 646 ipfiredist libogg
ae179f6e 647 ipfiredist libvorbis
f0ca8c34 648 ipfiredist mailx
3ab910dd 649 ipfiredist mldonkey
d1b6aa72 650 ipfiredist mpeg2dec
2ae94d2d 651 ipfiredist nagios
f0ca8c34
MT
652 ipfiredist nfs
653 ipfiredist nmap
3e45cc09 654 ipfiredist ntop
27ac55bf 655 ipfiredist portmap
78331e30 656 ipfiredist postfix
371d9df0 657 ipfiredist procmail
90350ff3 658 ipfiredist samba
ae179f6e 659 ipfiredist sox
f0ca8c34 660 ipfiredist spamassassin
7a98bae5 661 ipfiredist subversion
d1b6aa72 662 ipfiredist videolan
f1baee3e 663 ipfiredist webcyradm
d1b6aa72 664 ipfiredist xvid
0145f271 665 ipfiredist yasuc
78331e30 666 test -d $BASEDIR/packages || mkdir $BASEDIR/packages
d535503d 667 mv -f $LFS/install/packages/*.{ipfire,md5} $BASEDIR/packages >> $LOGFILE 2>&1
483f59cd 668 rm -rf $BASEDIR/build/install/packages/*
df5e82b3
MT
669}
670
671# See what we're supposed to do
672case "$1" in
673build)
9729e787 674 clear
df5e82b3 675 BUILDMACHINE=`uname -m`
712d859c 676 PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz 2> /dev/null | head -n 1`
df5e82b3 677 #only restore on a clean disk
9b0ff0a0 678 if [ ! -f log/cleanup-toolchain-2-tools ]; then
df5e82b3 679 if [ ! -n "$PACKAGE" ]; then
15679d9f 680 beautify build_stage "Full toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
df5e82b3
MT
681 prepareenv
682 buildtoolchain
683 else
684 PACKAGENAME=${PACKAGE%.tar.gz}
15679d9f 685 beautify build_stage "Packaged toolchain compilation"
df5e82b3
MT
686 if [ `md5sum $PACKAGE | awk '{print $1}'` == `cat $PACKAGENAME.md5 | awk '{print $1}'` ]; then
687 tar zxf $PACKAGE
688 prepareenv
689 else
690 exiterror "$PACKAGENAME md5 did not match, check downloaded package"
691 fi
692 fi
693 else
9729e787
MT
694 echo -n "Using installed toolchain" | tee -a $LOGFILE
695 beautify message SKIP
df5e82b3
MT
696 prepareenv
697 fi
5cfe86e6 698
15679d9f 699 beautify build_stage "Building base"
df5e82b3 700 buildbase
15679d9f
MT
701
702 beautify build_stage "Building IPFire"
703 buildipfire
5cfe86e6
HS
704
705 # Setzen des IPFire Builds
8af06406 706 if [ "$FIREBUILD" ]; then
e57bc1fd 707 echo "$FIREBUILD" > $BASEDIR/build/var/ipfire/firebuild
5cfe86e6 708 else
e57bc1fd 709 echo "_(OvO)_" > $BASEDIR/build/var/ipfire/firebuild
5cfe86e6
HS
710 fi
711
15679d9f 712 beautify build_stage "Building installer"
df5e82b3 713 buildinstaller
15679d9f
MT
714
715 beautify build_stage "Building packages"
df5e82b3
MT
716 buildpackages
717 ;;
718shell)
719 # enter a shell inside LFS chroot
720 # may be used to changed kernel settings
721 prepareenv
722 entershell
723 ;;
724changelog)
d1dd6669 725 echo -n "Loading new Changelog from SVN: "
f9315063 726 svn log http://svn.ipfire.eu/svn/ipfire > doc/ChangeLog
d1dd6669 727 echo "Finished!"
df5e82b3 728 ;;
df5e82b3
MT
729clean)
730 for i in `mount | grep $BASEDIR | sed 's/^.*loop=\(.*\))/\1/'`; do
731 $LOSETUP -d $i 2>/dev/null
732 done
733 for i in `mount | grep $BASEDIR | cut -d " " -f 1`; do
734 umount $i
735 done
736 stdumount
737 for i in `seq 0 7`; do
738 if ( losetup /dev/loop${i} 2>/dev/null | grep -q "/install/images" ); then
739 umount /dev/loop${i} 2>/dev/null;
740 losetup -d /dev/loop${i} 2>/dev/null;
741 fi;
742 done
743 rm -rf $BASEDIR/build
744 rm -rf $BASEDIR/cdrom
f9315063 745 rm -rf $BASEDIR/packages
df5e82b3 746 rm -rf $BASEDIR/log
df5e82b3
MT
747 if [ -h /tools ]; then
748 rm -f /tools
749 fi
750 ;;
f8e5510c 751newpak)
a9b17001
MT
752 # create structure for a new package
753 echo -e "Name of the new package: $2"
754 if [ ! -f "lfs/$2" ]; then
755 echo "`date -u '+%b %e %T'`: Creating directory src/paks/$2"
756 mkdir -p src/paks/$2
757 cd src/paks/$2
f8e5510c 758 echo "`date -u '+%b %e %T'`: Creating files"
a9b17001
MT
759 cp $BASEDIR/lfs/postfix $BASEDIR/lfs/$2
760
f8e5510c 761 touch ROOTFILES
f8e5510c 762 touch {,un}install.sh
a9b17001 763 ## install.sh
f8e5510c
MT
764 echo '#!/bin/bash' > install.sh
765 echo '#' >> install.sh
766 echo '#################################################################' >> install.sh
767 echo '# #' >> install.sh
768 echo '# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #' >> install.sh
769 echo '# #' >> install.sh
770 echo '#################################################################' >> install.sh
771 echo '#' >> install.sh
772 echo '# Extract the files' >> install.sh
773 echo 'tar xfz files.tgz -C /' >> install.sh
a9b17001
MT
774 echo 'cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2' >> install.sh
775 ## uninstall.sh
f8e5510c
MT
776 echo '#!/bin/bash' > uninstall.sh
777 echo '#################################################################' >> uninstall.sh
778 echo '# #' >> uninstall.sh
779 echo '# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #' >> uninstall.sh
780 echo '# #' >> uninstall.sh
781 echo '#################################################################' >> uninstall.sh
782 echo '#' >> uninstall.sh
783 echo '# Delete the files' >> uninstall.sh
784 echo '## Befehl fehlt noch' >> uninstall.sh
a9b17001 785 echo 'rm -f /opt/pakfire/installed/ROOTFILES.$2' >> uninstall.sh
f8e5510c 786 echo "`date -u '+%b %e %T'`: Adding files to SVN"
a9b17001
MT
787 cd - && svn add lfs/$2 && svn add src/paks/$2
788
789 echo -n "Do you want to remove the folders? [y/n]"
790 read REM
791 if [ "$REM" == "y" ]; then
792 echo "Removing the folders..."
793 svn del src/paks/$2 --force
794 else
795 echo "Folders are kept."
796 fi
df5e82b3 797 else
a9b17001 798 echo "$2 already exists"
df5e82b3 799 fi
df5e82b3
MT
800 exit 0
801 ;;
c3db995c 802downloadsrc)
df5e82b3
MT
803 if [ ! -d $BASEDIR/cache ]; then
804 mkdir $BASEDIR/cache
805 fi
806 mkdir -p $BASEDIR/log
857d9bf2 807 echo -e "${BOLD}Preload all source files${NORMAL}" | tee -a $LOGFILE
df5e82b3
MT
808 FINISHED=0
809 cd $BASEDIR/lfs
810 for c in `seq $MAX_RETRIES`; do
811 if (( FINISHED==1 )); then
812 break
813 fi
814 FINISHED=1
815 cd $BASEDIR/lfs
816 for i in *; do
817 if [ -f "$i" -a "$i" != "Config" ]; then
e22c7973 818 echo -ne "Loading $i"
df5e82b3
MT
819 make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t ($c/$MAX_RETRIES)" download >> $LOGFILE 2>&1
820 if [ $? -ne 0 ]; then
e22c7973 821 beautify message FAIL
df5e82b3
MT
822 FINISHED=0
823 else
824 if [ $c -eq 1 ]; then
e22c7973 825 beautify message DONE
df5e82b3
MT
826 fi
827 fi
828 fi
829 done
830 done
e22c7973 831 echo -e "${BOLD}***Verifying md5sums${NORMAL}"
df5e82b3
MT
832 ERROR=0
833 for i in *; do
834 if [ -f "$i" -a "$i" != "Config" ]; then
835 make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t " md5 >> $LOGFILE 2>&1
836 if [ $? -ne 0 ]; then
e22c7973
MT
837 echo -ne "MD5 difference in lfs/$i"
838 beautify message FAIL
df5e82b3
MT
839 ERROR=1
840 fi
841 fi
842 done
843 if [ $ERROR -eq 0 ]; then
e22c7973
MT
844 echo -ne "${BOLD}all files md5sum match${NORMAL}"
845 beautify message DONE
846 else
847 echo -ne "${BOLD}not all files were correctly download${NORMAL}"
848 beautify message FAIL
df5e82b3 849 fi
e22c7973 850 cd - >/dev/null 2>&1
df5e82b3 851 ;;
df5e82b3 852toolchain)
9729e787 853 clear
df5e82b3 854 prepareenv
15679d9f 855 beautify build_stage "Toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
df5e82b3
MT
856 buildtoolchain
857 BUILDMACHINE=`uname -m`
858 echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE
712d859c
MT
859 test -d $BASEDIR/cache/toolchains || mkdir $BASEDIR/cache/toolchains
860 cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz \
df5e82b3
MT
861 build/{bin,etc,usr/bin,usr/local} \
862 build/tools/{bin,etc,*-linux-gnu,include,lib,libexec,sbin,share,var} \
863 log >> $LOGFILE
712d859c
MT
864 md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz \
865 > cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.md5
df5e82b3
MT
866 stdumount
867 ;;
868gettoolchain)
869 BUILDMACHINE=`uname -m`
870 # arbitrary name to be updated in case of new toolchain package upload
c6cb9d25 871 PACKAGE=$SNAME-$VERSION-toolchain-$BUILDMACHINE
712d859c 872 if [ ! -f $BASEDIR/cache/toolchains/$PACKAGE.tar.gz ]; then
5bd13f01 873 URL_TOOLCHAIN=`grep URL_TOOLCHAIN lfs/Config | awk '{ print $3 }'`
712d859c
MT
874 test -d $BASEDIR/cache/toolchains || mkdir $BASEDIR/cache/toolchains
875 echo "`date -u '+%b %e %T'`: Load toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE
876 cd $BASEDIR/cache/toolchains
5bd13f01 877 wget $URL_TOOLCHAIN/$PACKAGE.tar.gz $URL_TOOLCHAIN/$PACKAGE.md5 >& /dev/null
712d859c
MT
878 if [ $? -ne 0 ]; then
879 echo "`date -u '+%b %e %T'`: error downloading toolchain for $BUILDMACHINE machine" | tee -a $LOGFILE
40a4ea4c 880 else
712d859c
MT
881 if [ "`md5sum $PACKAGE.tar.gz | awk '{print $1}'`" = "`cat $PACKAGE.md5 | awk '{print $1}'`" ]; then
882 echo "`date -u '+%b %e %T'`: toolchain md5 ok" | tee -a $LOGFILE
883 else
884 exiterror "$PACKAGE.md5 did not match, check downloaded package"
885 fi
40a4ea4c 886 fi
712d859c
MT
887 else
888 echo "Toolchain is already downloaded. Exiting..."
df5e82b3
MT
889 fi
890 ;;
15679d9f 891othersrc)
ce56e927 892 prepareenv
15679d9f 893 echo -ne "`date -u '+%b %e %T'`: Build sources iso for $MACHINE" | tee -a $LOGFILE
ce56e927
MT
894 chroot $LFS /tools/bin/env -i HOME=/root \
895 TERM=$TERM PS1='\u:\w\$ ' \
896 PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \
897 VERSION=$VERSION NAME="$NAME" SNAME="$SNAME" MACHINE=$MACHINE \
898 /bin/bash -x -c "cd /usr/src/lfs && make -f sources-iso LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
899 mv $LFS/install/images/ipfire-* $BASEDIR >> $LOGFILE 2>&1
15679d9f
MT
900 if [ $? -eq "0" ]; then
901 beautify message DONE
902 else
903 beautify message FAIL
904 fi
ce56e927
MT
905 stdumount
906 ;;
c6cb9d25
MT
907svn)
908 case "$2" in
909 update|up)
cc0e56be 910 # clear
15679d9f 911 echo -ne "Loading the latest source files...\n"
7471f6ab
MT
912 if [ $3 ]; then
913 svn update -r $3 | tee -a $PWD/log/_build.svn.update.log
914 else
915 svn update | tee -a $PWD/log/_build.svn.update.log
916 fi
15679d9f
MT
917 if [ $? -eq "0" ]; then
918 beautify message DONE
c6cb9d25 919 else
15679d9f 920 beautify message FAIL
c6cb9d25
MT
921 exit 1
922 fi
15679d9f 923 echo -ne "Writing the svn-info to a file"
c6cb9d25 924 svn info > $PWD/svn_status
15679d9f
MT
925 if [ $? -eq "0" ]; then
926 beautify message DONE
c6cb9d25 927 else
15679d9f 928 beautify message FAIL
c6cb9d25
MT
929 exit 1
930 fi
712d859c 931 chmod 755 $0
cc0e56be 932 exit 0
c6cb9d25
MT
933 ;;
934 commit|ci)
935 clear
6b8cff41
MT
936 if [ -f /usr/bin/mcedit ]; then
937 export EDITOR=/usr/bin/mcedit
73d9a908
MT
938 fi
939 if [ -f /usr/bin/nano ]; then
940 export EDITOR=/usr/bin/nano
6b8cff41
MT
941 fi
942 echo -ne "Selecting editor $EDITOR..."
943 beautify message DONE
d79b46cb 944 if [ -e /sbin/yast ]; then
028698e8
MT
945 if [ "`echo $SVN_REVISION | cut -c 3`" -eq "0" ]; then
946 $0 changelog
947 fi
d79b46cb 948 fi
15679d9f 949 svn commit
c6cb9d25 950 $0 svn up
6b8cff41 951 $0 uploadsrc
c6cb9d25
MT
952 ;;
953 dist)
7471f6ab
MT
954 if [ $3 ]; then
955 SVN_REVISION=$3
956 fi
957 if [ -f ipfire-source-r$SVN_REVISION.tar.gz ]; then
958 echo -ne "REV $SVN_REVISION: SKIPPED!\n"
959 exit 0
960 fi
961 echo -en "REV $SVN_REVISION: Downloading..."
9729e787
MT
962 svn export http://svn.ipfire.eu/svn/ipfire/trunk ipfire-source/ --force > /dev/null
963 svn log http://svn.ipfire.eu/svn/ipfire/trunk -r 1:$SVN_REVISION > ipfire-source/Changelog
964 #svn info http://svn.ipfire.eu/svn/ipfire/trunk -r $SVN_REVISION > ipfire-source/svn_status
15679d9f
MT
965 evaluate 1
966
7471f6ab
MT
967 echo -en "REV $SVN_REVISION: Compressing files..."
968 if [ -e ipfire-source/trunk/make.sh ]; then
969 chmod 755 ipfire-source/trunk/make.sh
970 fi
9dc02b38 971 tar cfz ipfire-source-r$SVN_REVISION.tar.gz ipfire-source
15679d9f 972 evaluate 1
7471f6ab 973 echo -en "REV $SVN_REVISION: Cleaning up..."
c6cb9d25 974 rm ipfire-source/ -r
15679d9f 975 evaluate 1
7471f6ab 976 ;;
028698e8 977 diff|di)
15679d9f 978 echo -ne "Make a local diff to last svn revision"
c6cb9d25 979 svn diff > ipfire-diff-`date +'%Y-%m-%d-%H:%M'`-r`svn info | grep Revision | cut -c 11-`.diff
15679d9f 980 evaluate 1
c6cb9d25
MT
981 echo "Diff was successfully saved to ipfire-diff-`date +'%Y-%m-%d-%H:%M'`-r`svn info | grep Revision | cut -c 11-`.diff"
982 ;;
983 esac
f9315063 984 ;;
15679d9f
MT
985uploadsrc)
986 PWD=`pwd`
987 cd $BASEDIR/cache/
988 echo -e "Uploading cache to ftp server:"
989 ncftpls -u $IPFIRE_FTP_USER_INT -p $IPFIRE_FTP_PASS_INT ftp://$IPFIRE_FTP_URL_INT$IPFIRE_FTP_PATH_INT/ > /var/tmp/ftplist
990 for i in *; do
f59e1e88 991 if [ "$i" == "toolchains" ]; then continue; fi
15679d9f 992 grep -q $i /var/tmp/ftplist
0eab8e84 993 if [ "$?" -ne "0" ]; then
15679d9f 994 echo -ne "$i"
72d80898 995 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 996 if [ "$?" -eq "0" ]; then
15679d9f 997 beautify message DONE
0eab8e84 998 else
15679d9f 999 beautify message FAIL
0eab8e84
MT
1000 fi
1001 fi
1002 done
15679d9f
MT
1003 rm -f /var/tmp/ftplist
1004 UL_TIME_START=`date +'%s'`
1005 ncftpbatch -d > /dev/null 2>&1
1006 while ps acx | grep -q ncftpbatch
1007 do
1008 UL_TIME=$(expr `date +'%s'` - $UL_TIME_START)
1009 echo -ne "\r ${UL_TIME}s : Upload is running..."
1010 sleep 1
1011 done
1012 beautify message DONE
1013 cd $PWD
1014 exit 0
0eab8e84 1015 ;;
cc0e56be
MT
1016upload)
1017 case "$2" in
1018 iso)
1019 echo -e "Uploading the iso to $IPFIRE_FTP_URL_EXT."
9dc02b38
MT
1020 cat <<EOF > .ftp-commands
1021mkdir $IPFIRE_FTP_PATH_EXT
1022ls -lah
1023quit
1024EOF
1025 ncftp -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT < .ftp-commands
1026 rm -f .ftp-commands
1027 md5sum ipfire-install-$VERSION.i386.iso > ipfire-install-$VERSION.i386.iso.md5
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
1029 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
1030 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 1031 ncftpput -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ svn_status
9dc02b38
MT
1032 if [ "$?" -eq "0" ]; then
1033 echo -e "The iso of Revision $SVN_REVISION was successfully uploaded to $IPFIRE_FTP_URL_EXT$IPFIRE_FTP_PATH_EXT/."
cc0e56be 1034 else
9dc02b38
MT
1035 echo -e "There was an error while uploading the iso to the ftp server."
1036 exit 1
cc0e56be 1037 fi
6aae8d61
MT
1038 if [ "$3" = "--with-sources-cd" ]; then
1039 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
1040 fi
cc0e56be
MT
1041 ;;
1042 paks)
9dc02b38
MT
1043 cat <<EOF > .ftp-commands
1044mkdir $IPFIRE_FTP_PATH_PAK
1045ls -lah
1046quit
1047EOF
1048 ncftp -u $IPFIRE_FTP_USER_PAK -p $IPFIRE_FTP_PASS_PAK $IPFIRE_FTP_URL_PAK < .ftp-commands
1049 rm -f .ftp-commands
cc0e56be
MT
1050 ncftpput -z -u $IPFIRE_FTP_USER_PAK -p $IPFIRE_FTP_PASS_PAK $IPFIRE_FTP_URL_PAK $IPFIRE_FTP_PATH_PAK/ packages/*
1051 if [ "$?" -eq "0" ]; then
9dc02b38 1052 echo -e "The packages were successfully uploaded to $IPFIRE_FTP_URL_PAK$IPFIRE_FTP_PATH_PAK/."
cc0e56be
MT
1053 else
1054 echo -e "There was an error while uploading the packages to the ftp server."
712d859c 1055 exit 1
cc0e56be
MT
1056 fi
1057 ;;
1058 esac
0d0521b6 1059 ;;
cc0e56be 1060batch)
15679d9f
MT
1061 if [ "$2" -eq "--background" ]; then
1062 batch_script
1063 exit $?
1064 fi
27ac55bf 1065 if [ `screen -ls | grep -q ipfire` ]; then
712d859c
MT
1066 echo "Build is already running, sorry!"
1067 exit 1
1068 else
27ac55bf
MT
1069 if [ "$2" = "--rebuild" ]; then
1070 export IPFIRE_REBUILD=1
1071 echo "REBUILD!"
1072 else
1073 export IPFIRE_REBUILD=0
1074 fi
15679d9f
MT
1075 echo -en "${BOLD}***IPFire-Batch-Build is starting...${NORMAL}"
1076 screen -dmS ipfire $0 batch --background
1077 evaluate 1
712d859c
MT
1078 exit 0
1079 fi
cc0e56be 1080 ;;
028698e8 1081watch)
15679d9f 1082 watch_screen
028698e8 1083 ;;
33634aa8
MT
1084pxe)
1085 case "$2" in
1086 start)
1087 start_tftpd
1088 ;;
1089 stop)
1090 stop_tftpd
1091 ;;
1092 reload)
1093 reload_tftpd
1094 ;;
1095 esac
1096 exit 0
1097 ;;
6b8cff41 1098"")
24a4a744
MT
1099 clear
1100 svn info
c3db995c 1101 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
1102 do
1103 case $name in
c3db995c
MT
1104 "IPFIRE: Downloadsrc")
1105 $0 downloadsrc
c6cb9d25
MT
1106 ;;
1107 "IPFIRE: Build (silent)")
1108 $0 build-silent
1109 ;;
1110 "IPFIRE: Watch Build")
028698e8 1111 $0 watch
c6cb9d25 1112 ;;
712d859c
MT
1113 "IPFIRE: Batch")
1114 $0 batch
1115 ;;
c6cb9d25
MT
1116 "IPFIRE: Clean")
1117 $0 clean
1118 ;;
c6cb9d25
MT
1119 "SVN: Update")
1120 $0 svn update
1121 ;;
c6cb9d25 1122 "Help")
c3db995c 1123 echo "Usage: $0 {build|changelog|clean|gettoolchain|newpak|downloadsrc|shell|sync|toolchain}"
c6cb9d25
MT
1124 cat doc/make.sh-usage
1125 ;;
712d859c
MT
1126 "LOG: Tail")
1127 tail -f log/_*
1128 ;;
c6cb9d25
MT
1129 "Exit")
1130 break
1131 ;;
24a4a744
MT
1132 esac
1133 done
df5e82b3 1134 ;;
6b8cff41 1135*)
c3db995c 1136 echo "Usage: $0 {build|changelog|clean|gettoolchain|newpak|downloadsrc|shell|sync|toolchain}"
6b8cff41
MT
1137 cat doc/make.sh-usage
1138 ;;
3ea75603 1139esac