source: common/libs/func_book_parser@ eddf6650

2.4 ablfs ablfs-more legacy new_features trunk
Last change on this file since eddf6650 was b339c94, checked in by Pierre Labastie <pierre@…>, 12 years ago

Add a choice between installing the full set of supported locales
and installing just the minimal set for tests, after glibc build.
If the second option is chosen, the locale specified in LANG is also
installed, if not in the minimal set.

  • Property mode set to 100644
File size: 7.2 KB
Line 
1#!/bin/bash
2
3# $Id$
4
5#----------------------------#
6get_book() { #
7#----------------------------#
8 cd $JHALFSDIR
9
10 if [ -z $WORKING_COPY ] ; then
11 # Check for Subversion instead of just letting the script hit 'svn' and fail.
12 test `type -p svn` || eval "echo \"This feature requires Subversion.\"
13 exit 1"
14 echo -n "Downloading the $PROGNAME document, $LFSVRS version... "
15
16 case $PROGNAME in
17 lfs) svn_root="LFS" ;;
18 hlfs) svn_root="HLFS" ;;
19 clfs) svn_root="cross-lfs" ;;
20 clfs2) svn_root="cross-lfs" ;;
21 clfs3) svn_root="cross-lfs" ;;
22 *) echo "BOOK not defined in function <get_book>"
23 exit 1 ;;
24 esac
25 # Grab a fresh book if it's missing, otherwise, update it from the
26 # repo. If we've already extracted the commands, move on to getting the
27 # sources.
28 if [ -d ${PROGNAME}-$LFSVRS ] ; then
29 cd ${PROGNAME}-$LFSVRS
30 if LC_ALL=C svn up | grep -q At && \
31 test -d $JHALFSDIR/${PROGNAME}-commands && \
32 test -f $JHALFSDIR/pkg_tarball_list ; then
33 # Set the canonical book version
34 echo -ne "done\n"
35 cd $JHALFSDIR
36 case $PROGNAME in
37 clfs | clfs2 | clfs3 )
38 VERSION=$(xmllint --noent $BOOK/prologue/$ARCH/bookinfo.xml 2>/dev/null | grep subtitle | sed -e 's/^.*ion //' -e 's/<\/.*//') ;;
39 *)
40 VERSION=$(xmllint --noent $BOOK/prologue/bookinfo.xml 2>/dev/null | grep subtitle | sed -e 's/^.*ion //' -e 's/<\/.*//') ;;
41 esac
42 get_sources
43 else
44 echo -ne "done\n"
45 extract_commands
46 fi
47 else
48 svn co $SVN/${svn_root}/${TREE} ${PROGNAME}-$LFSVRS >>$LOGDIR/$LOG 2>&1
49 echo -ne "done\n"
50 extract_commands
51 fi
52
53 else
54 echo -ne "Using $BOOK as book's sources ...\n"
55 extract_commands
56 fi
57 echo -ne " Document version ${L_arrow}${BOLD}${VERSION}${R_arrow}\n"
58}
59
60#----------------------------#
61extract_commands() { #
62#----------------------------#
63
64 # Check for libxslt instead of just letting the script hit 'xsltproc' and fail.
65 test `type -p xsltproc` || eval "echo \"This feature requires libxslt.\"
66 exit 1"
67
68 cd $JHALFSDIR
69 case $PROGNAME in
70 clfs | clfs2 | clfs3 )
71 VERSION=$(xmllint --noent $BOOK/prologue/$ARCH/bookinfo.xml 2>/dev/null | grep subtitle | sed -e 's/^.*ion //' -e 's/<\/.*//') ;;
72 *)
73 VERSION=$(xmllint --noent $BOOK/prologue/bookinfo.xml 2>/dev/null | grep subtitle | sed -e 's/^.*ion //' -e 's/<\/.*//') ;;
74 esac
75
76 # Start clean
77 if [ -d ${PROGNAME}-commands ]; then
78 rm -rf ${PROGNAME}-commands
79 mkdir -v ${PROGNAME}-commands
80 fi
81 echo -n "Extracting commands for"
82
83 # Dump the commands in shell script form from the HLFS book.
84 case ${PROGNAME} in
85 clfs)
86 echo -n " ${L_arrow}${BOLD}$ARCH${R_arrow} target architecture... "
87 xsltproc --nonet \
88 --xinclude \
89 --stringparam method $METHOD \
90 --stringparam testsuite $TEST \
91 --stringparam bomb-testsuite $BOMB_TEST \
92 --stringparam vim-lang $VIMLANG \
93 --stringparam timezone $TIMEZONE \
94 --stringparam page $PAGE \
95 --stringparam lang $LANG \
96 --stringparam sparc $SPARC64_PROC \
97 -o ./${PROGNAME}-commands/ $XSL $BOOK/$ARCH-index.xml >>$LOGDIR/$LOG 2>&1
98 ;;
99
100 clfs2)
101 echo -n " ${L_arrow}${BOLD}$ARCH${R_arrow} target architecture... "
102 xsltproc --nonet \
103 --xinclude \
104 --stringparam vim-lang $VIMLANG \
105 --stringparam timezone $TIMEZONE \
106 --stringparam page $PAGE \
107 --stringparam lang $LANG \
108 -o ./${PROGNAME}-commands/ $XSL $BOOK/$ARCH-index.xml >>$LOGDIR/$LOG 2>&1
109 ;;
110
111 clfs3)
112 echo -n " ${L_arrow}${BOLD}$ARCH${R_arrow} target architecture... "
113 xsltproc --nonet \
114 --xinclude \
115 --stringparam endian x$ENDIAN \
116 --stringparam timezone $TIMEZONE \
117 --stringparam page $PAGE \
118 --stringparam lang $LANG \
119 -o ./${PROGNAME}-commands/ $XSL $BOOK/$ARCH-index.xml >>$LOGDIR/$LOG 2>&1
120 ;;
121
122 hlfs)
123 echo -n " ${L_arrow}${BOLD}$MODEL + $KERNEL${R_arrow} HLFS flavour... "
124 xsltproc --nonet \
125 --xinclude \
126 --stringparam model $MODEL \
127 --stringparam kernel $KERNEL \
128 --stringparam testsuite $TEST \
129 --stringparam bomb-testsuite $BOMB_TEST \
130 --stringparam features x$SSP$ASLR$PAX$HARDENED_TMP$WARNINGS$MISC$BLOWFISH \
131 --stringparam timezone $TIMEZONE \
132 --stringparam page $PAGE \
133 --stringparam lang $LANG \
134 --stringparam grsecurity_host $GRSECURITY_HOST \
135 -o ./${PROGNAME}-commands/ $XSL $BOOK/index.xml >>$LOGDIR/$LOG 2>&1
136 ;;
137 lfs)
138 echo -n " ${L_arrow}${BOLD}LFS${R_arrow} build... "
139 xsltproc --nonet \
140 --xinclude \
141 --stringparam testsuite $TEST \
142 --stringparam bomb-testsuite $BOMB_TEST \
143 --stringparam vim-lang $VIMLANG \
144 --stringparam full-locale $FULL_LOCALE \
145 --stringparam timezone $TIMEZONE \
146 --stringparam page $PAGE \
147 --stringparam lang $LANG \
148 --stringparam pkgmngt $PKGMNGT \
149 -o ./${PROGNAME}-commands/ $XSL $BOOK/index.xml >>$LOGDIR/$LOG 2>&1
150 ;;
151 *) echo -n " ${L_arrow}${BOLD}${PROGNAME}${R_arrow} book invalid, terminate build... "
152 exit 1 ;;
153 esac
154
155 [[ "${BLFS_TOOL}" = "y" ]] && copy_blfs_deps_scripts
156
157 echo "done"
158
159 # Make the scripts executable.
160 chmod -R +x $JHALFSDIR/${PROGNAME}-commands
161
162 # Create the packages file. We need it for proper Makefile creation
163 create_package_list
164
165 # Done. Moving on...
166 get_sources
167
168}
169
170#----------------------------#
171create_package_list() { #
172#----------------------------#
173
174 # Create the packages file. We need it for proper Makefile creation
175 rm -f pkg_tarball_list
176 echo -n "Creating <${PROGNAME}> list of tarball names for $BOOK"
177 if [ ! -z $ARCH ] ; then echo -n " $ARCH" ; fi
178 echo -n "... "
179 case ${PROGNAME} in
180 clfs | clfs2 | clfs3 )
181 xsltproc --nonet --xinclude -o pkg_tarball_list packages.xsl \
182 $BOOK/materials/${ARCH}-chapter.xml >>$LOGDIR/$LOG 2>&1
183 ;;
184 hlfs)
185 xsltproc --nonet --xinclude \
186 --stringparam model $MODEL \
187 --stringparam kernel $KERNEL \
188 -o pkg_tarball_list packages.xsl \
189 $BOOK/chapter04/chapter04.xml >>$LOGDIR/$LOG 2>&1
190 ;;
191 lfs)
192 xsltproc --nonet --xinclude \
193 --stringparam pkgmngt $PKGMNGT \
194 -o pkg_tarball_list packages.xsl \
195 $BOOK/chapter03/chapter03.xml >>$LOGDIR/$LOG 2>&1
196 ;;
197 esac
198
199 if [[ "${BLFS_TOOL}" = "y" ]] ; then
200(
201cat << EOF
202$LIBXML_PKG
203$LIBXSLT_PKG
204$TIDY_PKG
205$UNZIP_PKG
206$DBXML_PKG
207$DBXSL_PKG
208$LYNX_PKG
209$SUDO_PKG
210$WGET_PKG
211$SQLITE_PKG
212$APR_PKG
213$APR_U_PKG
214$SVN_PKG
215$GPM_PKG
216EOF
217) >> pkg_tarball_list
218 fi
219
220 echo "done"
221
222}
223
Note: See TracBrowser for help on using the repository browser.