source: jhalfs@ 3dff960

2.3 2.3.x 2.4 ablfs ablfs-more legacy new_features trunk
Last change on this file since 3dff960 was cbc8ba2, checked in by George Boudreau <georgeb@…>, 18 years ago

Corrections to blfs-tools scripts. Added missing tidy_docs download and code

  • Property mode set to 100755
File size: 12.4 KB
Line 
1#!/bin/bash
2# $Id$
3set -e
4
5# VT100 colors
6declare -r BLACK=$'\e[1;30m'
7declare -r DK_GRAY=$'\e[0;30m'
8
9declare -r RED=$'\e[31m'
10declare -r GREEN=$'\e[32m'
11declare -r YELLOW=$'\e[33m'
12declare -r BLUE=$'\e[34m'
13declare -r MAGENTA=$'\e[35m'
14declare -r CYAN=$'\e[36m'
15declare -r WHITE=$'\e[37m'
16
17declare -r OFF=$'\e[0m'
18declare -r BOLD=$'\e[1m'
19declare -r REVERSE=$'\e[7m'
20declare -r HIDDEN=$'\e[8m'
21
22declare -r tab_=$'\t'
23declare -r nl_=$'\n'
24
25declare -r DD_BORDER="${BOLD}==============================================================================${OFF}"
26declare -r SD_BORDER="${BOLD}------------------------------------------------------------------------------${OFF}"
27declare -r STAR_BORDER="${BOLD}******************************************************************************${OFF}"
28
29# bold yellow > < pair
30declare -r R_arrow=$'\e[1;33m>\e[0m'
31declare -r L_arrow=$'\e[1;33m<\e[0m'
32
33
34#>>>>>>>>>>>>>>>ERROR TRAPPING >>>>>>>>>>>>>>>>>>>>
35#-----------------------#
36simple_error() { # Basic error trap.... JUST DIE
37#-----------------------#
38 # If +e then disable text output
39 if [[ "$-" =~ "e" ]]; then
40 echo -e "\n${RED}ERROR:${GREEN} basic error trapped!${OFF}\n" >&2
41 fi
42}
43
44see_ya() {
45 echo -e "\n${L_arrow}${BOLD}jhalfs-trunk${R_arrow} exit${OFF}\n"
46}
47##### Simple error TRAPS
48# ctrl-c SIGINT
49# ctrl-y
50# ctrl-z SIGTSTP
51# SIGHUP 1 HANGUP
52# SIGINT 2 INTRERRUPT FROM KEYBOARD Ctrl-C
53# SIGQUIT 3
54# SIGKILL 9 KILL
55# SIGTERM 15 TERMINATION
56# SIGSTOP 17,18,23 STOP THE PROCESS
57#####
58set -e
59trap see_ya 0
60trap simple_error ERR
61trap 'echo -e "\n\n${RED}INTERRUPT${OFF} trapped\n" && exit 2' 1 2 3 15 17 18 23
62#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
63
64version="
65${BOLD} \"jhalfs-X\"${OFF} builder tool (development) \$Rev$
66 \$Date$
67
68 Written by George Boudreau and Manuel Canales Esparcia,
69 plus several contributions.
70
71 Based on an idea from Jeremy Huntwork
72
73 This set of files are published under the
74 ${BOLD}Gnu General Public License, Version 2.${OFF}
75"
76
77case $1 in
78 -v ) echo "$version" && exit 1 ;;
79 run ) : ;;
80 * )
81 echo "${nl_}${tab_}${BOLD}${RED}This script cannot be called directly: EXITING ${OFF}${nl_}"
82 exit 1
83 ;;
84esac
85
86VERBOSITY=1
87
88[[ $VERBOSITY > 0 ]] && echo -n "Loading config params from <configuration>..."
89source configuration
90[[ $? > 0 ]] && echo "file:configuration did not load.." && exit 1
91[[ $VERBOSITY > 0 ]] && echo "OK"
92
93 #--- Envars not sourced from configuration
94declare -r SVN="svn://svn.linuxfromscratch.org"
95declare -r LOG=000-masterscript.log
96
97# These are boolean vars generated from Config.in.
98# ISSUE: If a boolean parameter is not set <true> that
99# variable is not defined by the menu app. This can
100# cause a headache if you are not careful.
101# The following parameters MUST be created and have a
102# default value.
103RUNMAKE=${RUNMAKE:-n}
104GETPKG=${GETPKG:-n}
105GETKERNEL=${GETKERNEL:-n}
106COMPARE=${COMPARE:-n}
107RUN_FARCE=${RUN_FARCE:-n}
108RUN_ICA=${RUN_ICA:-n}
109BOMB_TEST=${BOMB_TEST:-n}
110STRIP=${STRIP:=n}
111REPORT=${REPORT:=n}
112VIMLANG=${VIMLANG:-n}
113GRSECURITY_HOST=${GRSECURITY_HOST:-n}
114
115# Book surces envars
116BRANCH_ID=${BRANCH_ID:=development}
117
118case $BRANCH_ID in
119 development )
120 case $PROGNAME in
121 clfs2 ) TREE=branches/clfs-2.0/BOOK ;;
122 *) TREE=trunk/BOOK ;;
123 esac
124 LFSVRS=development
125 ;;
126 *EDIT* ) echo " You forgot to set the branch or stable book version."
127 echo " Please rerun make and fix the configuration."
128 exit 2 ;;
129 branch-* )
130 LFSVRS=${BRANCH_ID}
131 TREE=branches/${BRANCH_ID#branch-}/BOOK
132 ;;
133 * )
134 case $PROGNAME in
135 lfs | hlfs )
136 LFSVRS=${BRANCH_ID}
137 TREE=tags/${BRANCH_ID}/BOOK
138 ;;
139 clfs | clfs2 )
140 LFSVRS=${BRANCH_ID}
141 TREE=tags/${BRANCH_ID}
142 ;;
143 esac
144 ;;
145esac
146
147# Set the document location...
148BOOK=${BOOK:=$PROGNAME-$LFSVRS}
149
150# blfs-tool envars
151BLFS_TOOL=${BLFS_TOOL:-n}
152if [[ "${BLFS_TOOL}" = "y" ]] ; then
153 BLFS_BRANCH_ID=${BLFS_BRANCH_ID:=development}
154 case $BLFS_BRANCH_ID in
155 development ) BLFS_TREE=trunk/BOOK ;;
156 *EDIT* ) echo " You forgot to set the BLFS branch or stable book version."
157 echo " Please rerun make and fix the configuration."
158 exit 2 ;;
159 branch-* ) BLFS_TREE=branches/${BLFS_BRANCH_ID#branch-}/BOOK ;;
160 * ) BLFS_TREE=tags/${BLFS_BRANCH_ID}/BOOK ;;
161 esac
162 # Dependencies envars, to can update it more easy.
163 # Tidy and Unzip version are harcoded also in wrt_blfs_tool_targets()
164 # libxml2
165 LIBXML_PKG="libxml2-2.6.26.tar.gz"
166 LIBXML_URL="ftp://xmlsoft.org/libxml2/${LIBXML_PKG}"
167 LIBXML_MD5="2d8d3805041edab967368b497642f981"
168 # libxslt
169 LIBXSLT_PKG="libxslt-1.1.17.tar.gz"
170 LIBXSLT_URL="ftp://xmlsoft.org/libxslt/${LIBXSLT_PKG}"
171 LIBXSLT_MD5="fde6a7a93c0eb14cba628692fa3a1000"
172 # tidy
173 TIDY_PKG="tidy_src_051026.tgz"
174 TIDY_URL="http://tidy.sourceforge.net/src/${TIDY_PKG}"
175 TIDY_MD5="1e39fafd6808978871346658c8da1454"
176 # tidy patch
177 TIDY_PATCH="tidy-051026-prevent_PRE_newlines-1.patch"
178 TIDY_PATCH_URL="http://www.linuxfromscratch.org/patches/blfs/svn/${TIDY_PATCH}"
179 TIDY_PATCH_MD5="82f67f7af58fc2c945b3410ae655cc1a"
180 # tidy docs
181 TIDY_DOCS="tidy_docs_051020.tgz"
182 TIDY_DOCS_URL="http://tidy.sourceforge.net/docs/${TIDY_DOCS}"
183 TIDY_DOCS_MD5="86de2f198e57399c063d2567b2a25628"
184 # unzip
185 UNZIP_PKG="unzip552.tar.gz"
186 UNZIP_URL="ftp://ftp.info-zip.org/pub/infozip/src/${UNZIP_PKG}"
187 UNZIP_MD5="9d23919999d6eac9217d1f41472034a9"
188 # DocBook XML DTD
189 DBXML_PKG="docbook-xml-4.4.zip"
190 DBXML_URL="http://www.docbook.org/xml/4.4/${DBXML_PKG}"
191 DBXML_MD5="cbb04e9a700955d88c50962ef22c1634"
192 # DocBook XSL
193 DBXSL_PKG="docbook-xsl-1.69.1.tar.bz2"
194 DBXSL_URL="http://prdownloads.sourceforge.net/docbook/${DBXSL_PKG}"
195 DBXSL_MD5="6ebd29a67f2dcc3f2220f475ee6f6552"
196 # Links
197 LINKS_PKG="links-2.1pre21.tar.bz2"
198 LINKS_URL="http://links.twibright.com/download/${LINKS_PKG}"
199 LINKS_MD5="7687e2c32e337e11c6e9d8cd8c5202c9"
200 # sudo
201 SUDO_PKG="sudo-1.6.8p12.tar.gz"
202 SUDO_URL="http://www.courtesan.com/sudo/dist/${SUDO_PKG}"
203 SUDO_MD5="b29893c06192df6230dd5f340f3badf5"
204 # sudo envar fix patch
205 SUDO_PATCH="sudo-1.6.8p12-envvar_fix-1.patch"
206 SUDO_PATCH_URL="http://www.linuxfromscratch.org/patches/blfs/svn/${SUDO_PATCH}"
207 SUDO_PATCH_MD5="454925aedfe054dff8fe0d03b209f986"
208 # wget
209 WGET_PKG="wget-1.10.2.tar.gz"
210 WGET_URL="ftp://ftp.gnu.org/gnu/wget/${WGET_PKG}"
211 WGET_MD5="795fefbb7099f93e2d346b026785c4b8"
212 # Subversion
213 SVN_PKG="subversion-1.3.1.tar.bz2"
214 SVN_URL="http://subversion.tigris.org/tarballs/${SVN_PKG}"
215 SVN_MD5="07b95963968ae345541ca99d0e7bf082"
216 # GPM
217 GPM_PKG="gpm-1.20.1.tar.bz2"
218 GPM_URL="ftp://arcana.linux.it/pub/gpm/${GPM_PKG}"
219 GPM_MD5="2c63e827d755527950d9d13fe3d87692"
220 # GPM segfaul patch
221 GPM_PATCH_1="gpm-1.20.1-segfault-1.patch"
222 GPM_PATCH_1_URL="http://www.linuxfromscratch.org/patches/blfs/svn/${GPM_PATCH_1}"
223 GPM_PATCH_1_MD5="8c88f92990ba7613014fcd1db14ca7ac"
224 # GPM silent patch
225 GPM_PATCH_2="gpm-1.20.1-silent-1.patch"
226 GPM_PATCH_2_URL="http://www.linuxfromscratch.org/patches/blfs/svn/${GPM_PATCH_2}"
227 GPM_PATCH_2_MD5="bf6cbefe20c6f15b587f19ebc1c8a37a"
228fi
229
230# Set true internal variables
231COMMON_DIR="common"
232PACKAGE_DIR=$(echo $PROGNAME | tr [a-z] [A-Z])
233MODULE=$PACKAGE_DIR/master.sh
234
235
236[[ $VERBOSITY > 0 ]] && echo -n "Loading common-functions module..."
237source $COMMON_DIR/common-functions
238[[ $? > 0 ]] && echo " $COMMON_DIR/common-functions did not load.." && exit
239[[ $VERBOSITY > 0 ]] && echo "OK"
240[[ $VERBOSITY > 0 ]] && echo -n "Loading code module <$MODULE>..."
241source $MODULE
242[[ $? > 0 ]] && echo "$MODULE did not load.." && exit 2
243[[ $VERBOSITY > 0 ]] && echo "OK"
244#
245[[ $VERBOSITY > 0 ]] && echo "${SD_BORDER}${nl_}"
246
247
248#*******************************************************************#
249[[ $VERBOSITY > 0 ]] && echo -n "Loading function <func_check_version.sh>..."
250source $COMMON_DIR/func_check_version.sh
251[[ $? > 0 ]] && echo " function module did not load.." && exit 2
252[[ $VERBOSITY > 0 ]] && echo "OK"
253
254[[ $VERBOSITY > 0 ]] && echo -n "Loading function <func_validate_configs.sh>..."
255source $COMMON_DIR/func_validate_configs.sh
256[[ $? > 0 ]] && echo " function module did not load.." && exit 2
257[[ $VERBOSITY > 0 ]] && echo "OK"
258[[ $VERBOSITY > 0 ]] && echo "${SD_BORDER}${nl_}"
259
260
261###################################
262### MAIN ###
263###################################
264
265# Check for build prereequisites.
266echo
267 check_prerequisites
268echo "${SD_BORDER}${nl_}"
269
270validate_config
271echo "${SD_BORDER}${nl_}"
272echo -n "Are you happy with these settings? yes/no (no): "
273read ANSWER
274if [ x$ANSWER != "xyes" ] ; then
275 echo "${nl_}Fix the configuration options and rerun the script.${nl_}"
276 exit 1
277fi
278echo "${nl_}${SD_BORDER}${nl_}"
279
280# Load additional modules or configuration files based on global settings
281# compare module
282if [[ "$COMPARE" = "y" ]]; then
283 [[ $VERBOSITY > 0 ]] && echo -n "Loading compare module..."
284 source $COMMON_DIR/func_compare.sh
285 [[ $? > 0 ]] && echo "$COMMON_DIR/func_compare.sh did not load.." && exit
286 [[ $VERBOSITY > 0 ]] && echo "OK"
287fi
288#
289# optimize module
290if [[ "$OPTIMIZE" != "0" ]]; then
291 [[ $VERBOSITY > 0 ]] && echo -n "Loading optimization module..."
292 source optimize/optimize_functions
293 [[ $? > 0 ]] && echo " optimize/optimize_functions did not load.." && exit
294 [[ $VERBOSITY > 0 ]] && echo "OK"
295 #
296 # optimize configurations
297 [[ $VERBOSITY > 0 ]] && echo -n "Loading optimization config..."
298 source optimize/opt_config
299 [[ $? > 0 ]] && echo " optimize/opt_config did not load.." && exit
300 [[ $VERBOSITY > 0 ]] && echo "OK"
301 # Validate optimize settings, if required
302 validate_opt_settings
303fi
304#
305
306# If $BUILDDIR has subdirectories like tools/ or bin/, stop the run
307# and notify the user about that.
308if [ -d $BUILDDIR/tools -o -d $BUILDDIR/bin ] && [ -z $CLEAN ] ; then
309 eval "$no_empty_builddir"
310fi
311
312# If requested, clean the build directory
313clean_builddir
314
315if [[ ! -d $JHALFSDIR ]]; then
316 mkdir -p $JHALFSDIR
317fi
318#
319# Create $BUILDDIR/sources even though it could be created by get_sources()
320if [[ ! -d $BUILDDIR/sources ]]; then
321 mkdir -p $BUILDDIR/sources
322fi
323#
324# Create the log directory
325if [[ ! -d $LOGDIR ]]; then
326 mkdir $LOGDIR
327fi
328>$LOGDIR/$LOG
329#
330[[ "$TEST" != "0" ]] && [[ ! -d $TESTLOGDIR ]] && install -d -m 1777 $TESTLOGDIR
331#
332cp $COMMON_DIR/{makefile-functions,progress_bar.sh} $JHALFSDIR/
333#
334[[ "$OPTIMIZE" != "0" ]] && cp optimize/opt_override $JHALFSDIR/
335#
336if [[ "$COMPARE" = "y" ]]; then
337 mkdir -p $JHALFSDIR/extras
338 cp extras/* $JHALFSDIR/extras
339fi
340#
341if [[ -n "$FILES" ]]; then
342 # pushd/popd necessary to deal with multiple files
343 pushd $PACKAGE_DIR 1> /dev/null
344 cp $FILES $JHALFSDIR/
345 popd 1> /dev/null
346fi
347#
348if [[ "$REPORT" = "y" ]]; then
349 cp $COMMON_DIR/create-sbu_du-report.sh $JHALFSDIR/
350 # After being sure that all looks sane, dump the settings to a file
351 # This file will be used to create the REPORT header
352 validate_config > $JHALFSDIR/jhalfs.config
353fi
354#
355[[ "$GETPKG" = "y" ]] && cp $COMMON_DIR/urls.xsl $JHALFSDIR/
356#
357cp $COMMON_DIR/packages.xsl $JHALFSDIR/
358#
359sed 's,FAKEDIR,'$BOOK',' $PACKAGE_DIR/$XSL > $JHALFSDIR/${XSL}
360export XSL=$JHALFSDIR/${XSL}
361
362# Install blfs-tool, if requested.
363if [[ "${BLFS_TOOL}" = "y" ]] ; then
364 # Install the files
365 [[ ! -d ${BUILDDIR}${BLFS_ROOT} ]] && mkdir -p ${BUILDDIR}${BLFS_ROOT}
366 cp -r BLFS/* ${BUILDDIR}${BLFS_ROOT}
367 cp -r menu ${BUILDDIR}${BLFS_ROOT}
368 cp $COMMON_DIR/progress_bar.sh ${BUILDDIR}${BLFS_ROOT}
369 cp README.BLFS ${BUILDDIR}${BLFS_ROOT}
370 # Clean-up
371 rm -rf ${BUILDDIR}${BLFS_ROOT}/libs/.svn
372 rm -rf ${BUILDDIR}${BLFS_ROOT}/menu/.svn
373 rm -rf ${BUILDDIR}${BLFS_ROOT}/menu/lxdialog/.svn
374 # Set some harcoded envars to their proper values
375 sed -i 's,blfs-xml,'$BLFS_XML',' ${BUILDDIR}${BLFS_ROOT}/{update_book.sh,libs/book.xsl}
376 sed -i 's,tracking-dir,'$TRACKING_DIR',' ${BUILDDIR}${BLFS_ROOT}/{update_book.sh,gen-makefile.sh}
377 # Copy the dependencies build scripts
378 cp -r $COMMON_DIR/blfs-tool-deps $JHALFSDIR/
379 rm -rf $JHALFSDIR/blfs-tool-deps/.svn
380fi
381
382get_book
383echo "${SD_BORDER}${nl_}"
384
385# Get the BLFS book, if requested.
386if [[ "${BLFS_TOOL}" = "y" ]] ; then
387 echo -n "Downloading the BLFS document, $BLFS_BRANCH_ID version... "
388 if [[ ! -d ${BUILDDIR}${BLFS_ROOT}/${BLFS_XML} ]] ; then
389 mkdir -p ${BUILDDIR}${BLFS_ROOT}/${BLFS_XML}
390 svn co $SVN/BLFS/$BLFS_TREE ${BUILDDIR}${BLFS_ROOT}/${BLFS_XML} >>$LOGDIR/$LOG 2>&1
391 else
392 pushd ${BUILDDIR}${BLFS_ROOT}/${BLFS_XML} 1> /dev/null
393 svn up >>$LOGDIR/$LOG 2>&1
394 popd 1> /dev/null
395 fi
396 echo -ne "done\n"
397 echo "${SD_BORDER}${nl_}"
398fi
399
400build_Makefile
401echo "${SD_BORDER}${nl_}"
402
403run_make
Note: See TracBrowser for help on using the repository browser.