source: install-blfs-tools.sh@ 796cd28

new_features
Last change on this file since 796cd28 was 796cd28, checked in by Pierre Labastie <pierre@…>, 8 years ago

Merge trunk rev 3896:
Unless explicitely set on the command line, the REV parameter
in BLFS tools make is the same as the preceding used one. Formerly, it
was set to sysv unless defined on the command line

  • Property mode set to 100755
File size: 4.2 KB
Line 
1#!/bin/bash
2# $Id$
3set -e
4
5: << inline_doc
6Installs a set-up to build BLFS packages.
7You can set these variables:
8TRACKING_DIR : where the installed package file is kept.
9 (default /var/lib/jhalfs/BLFS)
10BLFS_ROOT : where the installed tools will be installed, relative to $HOME.
11 Must start with a '/' (default /blfs_root)
12BLFS_BRANCH_ID: development, branch-xxx, xxx (where xxx is a valid tag)
13 (default development)
14INIT_SYSTEM : which book do you want? 'sysv' or 'systemd' (default sysv)
15Examples:
161 - If you plan to use the tools to build BLFS on top of LFS, but you did not
17use jhalfs, or forgot to include the jhalfs-blfs tools:
18(as root) mkdir -p /var/lib/jhalfs/BLFS && chown -R <user> /var/lib/jhalfs
19(as user) INIT_SYSTEM=<your system> ./install-blfs-tools.sh
202 - To install with only user privileges (default to sysv):
21TRACKING_DIR=$HOME/blfs_root/trackdir ./install-blfs-tools.sh
22inline_doc
23
24
25# VT100 colors
26declare -r BLACK=$'\e[1;30m'
27declare -r DK_GRAY=$'\e[0;30m'
28
29declare -r RED=$'\e[31m'
30declare -r GREEN=$'\e[32m'
31declare -r YELLOW=$'\e[33m'
32declare -r BLUE=$'\e[34m'
33declare -r MAGENTA=$'\e[35m'
34declare -r CYAN=$'\e[36m'
35declare -r WHITE=$'\e[37m'
36
37declare -r OFF=$'\e[0m'
38declare -r BOLD=$'\e[1m'
39declare -r REVERSE=$'\e[7m'
40declare -r HIDDEN=$'\e[8m'
41
42declare -r tab_=$'\t'
43declare -r nl_=$'\n'
44
45declare -r DD_BORDER="${BOLD}==============================================================================${OFF}"
46declare -r SD_BORDER="${BOLD}------------------------------------------------------------------------------${OFF}"
47declare -r STAR_BORDER="${BOLD}******************************************************************************${OFF}"
48
49# bold yellow > < pair
50declare -r R_arrow=$'\e[1;33m>\e[0m'
51declare -r L_arrow=$'\e[1;33m<\e[0m'
52
53VERBOSITY=1
54
55COMMON_DIR="common"
56BLFS_TOOL='y'
57BUILDDIR=$(cd ~;pwd)
58BLFS_ROOT="${BLFS_ROOT:=/blfs_root}"
59TRACKING_DIR="${TRACKING_DIR:=/var/lib/jhalfs/BLFS}"
60INIT_SYSTEM="${INIT_SYSTEM:=sysv}"
61
62[[ $VERBOSITY > 0 ]] && echo "${SD_BORDER}${nl_}"
63
64#*******************************************************************#
65[[ $VERBOSITY > 0 ]] && echo -n "Loading function <func_check_version.sh>..."
66source $COMMON_DIR/libs/func_check_version.sh
67[[ $? > 0 ]] && echo " function module did not load.." && exit 2
68[[ $VERBOSITY > 0 ]] && echo "OK"
69
70[[ $VERBOSITY > 0 ]] && echo "${SD_BORDER}${nl_}"
71
72# blfs-tool envars
73BLFS_BRANCH_ID=${BLFS_BRANCH_ID:=development}
74case $BLFS_BRANCH_ID in
75 development ) BLFS_TREE=trunk/BOOK ;;
76 branch-* ) BLFS_TREE=branches/${BLFS_BRANCH_ID#branch-} ;;
77 * ) BLFS_TREE=tags/${BLFS_BRANCH_ID} ;;
78esac
79
80# Check for build prerequisites.
81declare -r dotSTR=".................." # needed for proper display of versions
82echo
83 check_alfs_tools
84 check_blfs_tools
85echo "${SD_BORDER}${nl_}"
86
87# Install the files
88[[ $VERBOSITY > 0 ]] && echo -n Populating the ${BUILDDIR}${BLFS_ROOT} directory
89[[ ! -d ${BUILDDIR}${BLFS_ROOT} ]] && mkdir -pv ${BUILDDIR}${BLFS_ROOT}
90cp -r BLFS/* ${BUILDDIR}${BLFS_ROOT}
91cp -r menu ${BUILDDIR}${BLFS_ROOT}
92cp $COMMON_DIR/progress_bar.sh ${BUILDDIR}${BLFS_ROOT}
93cp README.BLFS ${BUILDDIR}${BLFS_ROOT}
94[[ $VERBOSITY > 0 ]] && echo "... OK"
95
96# Clean-up
97[[ $VERBOSITY > 0 ]] && echo Cleaning the ${BUILDDIR}${BLFS_ROOT} directory
98make -C ${BUILDDIR}${BLFS_ROOT}/menu clean
99rm -rf ${BUILDDIR}${BLFS_ROOT}/libs/.svn
100rm -rf ${BUILDDIR}${BLFS_ROOT}/xsl/.svn
101rm -rf ${BUILDDIR}${BLFS_ROOT}/menu/.svn
102rm -rf ${BUILDDIR}${BLFS_ROOT}/menu/lxdialog/.svn
103# We do not want to keep an old version of the book:
104rm -rf ${BUILDDIR}${BLFS_ROOT}/blfs-xml
105
106# Set some harcoded envars to their proper values
107sed -i s@tracking-dir@$TRACKING_DIR@ \
108 ${BUILDDIR}${BLFS_ROOT}/{Makefile,gen-makefile.sh}
109
110# Ensures the tracking directory exists.
111# Throws an error if it does not exist and the user does not
112# have write permission to create it.
113# If it exists, does nothing.
114mkdir -p $TRACKING_DIR
115[[ $VERBOSITY > 0 ]] && echo "... OK"
116
117[[ $VERBOSITY > 0 ]] && echo "Downloading and validating the book (may take some time)"
118make -j1 -C $BUILDDIR$BLFS_ROOT \
119 TRACKING_DIR=$TRACKING_DIR \
120 REV=$INIT_SYSTEM \
121 SVN=svn://svn.linuxfromscratch.org/BLFS/$BLFS_TREE \
122 $BUILDDIR$BLFS_ROOT/packages.xml
123[[ $VERBOSITY > 0 ]] && echo "... OK"
124
Note: See TracBrowser for help on using the repository browser.