Merged r3147:3173 from trunk.

This commit is contained in:
Manuel Canales Esparcia 2006-10-07 19:14:47 +00:00
parent f5791f0c88
commit 2ee1d113d4
24 changed files with 300 additions and 318 deletions

View file

@ -15,8 +15,4 @@
This is an on-going and never-end task due that, ideally, each commit to This is an on-going and never-end task due that, ideally, each commit to
the BLFS book should be revised and validated, but our time is limited. the BLFS book should be revised and validated, but our time is limited.
-- Bugs hunting. -- Bugs hunting.
-- Improve README.BLFS.
-- Develop a script to make cofee.

View file

@ -1116,18 +1116,22 @@ set -e
$bootscripts_cmds # mk_BOOTSCRIPT (CHROOT) $bootscripttools $bootscripts_cmds # mk_BOOTSCRIPT (CHROOT) $bootscripttools
$bootable_cmds # mk_BOOTABLE (CHROOT) $bootabletools $bootable_cmds # mk_BOOTABLE (CHROOT) $bootabletools
# Add the BLFS_TOOL targets, if needed
[[ "$BLFS_TOOL" = "y" ]] && wrt_blfs_tool_targets
# Add a header, some variables and include the function file # Add a header, some variables and include the function file
# to the top of the real Makefile. # to the top of the real Makefile.
( (
cat << EOF cat << EOF
$HEADER $HEADER
SRC = /sources SRC = /sources
MOUNT_PT = $BUILDDIR MOUNT_PT = $BUILDDIR
PKG_LST = $PKG_LST PKG_LST = $PKG_LST
LUSER = $LUSER LUSER = $LUSER
LGROUP = $LGROUP LGROUP = $LGROUP
SCRIPT_ROOT = $SCRIPT_ROOT SCRIPT_ROOT = $SCRIPT_ROOT
ADD_BLFS_TOOLS = $BLFS_TOOL
BASEDIR = \$(MOUNT_PT) BASEDIR = \$(MOUNT_PT)
SRCSDIR = \$(BASEDIR)/sources SRCSDIR = \$(BASEDIR)/sources
@ -1177,7 +1181,7 @@ if [[ "${METHOD}" = "chroot" ]]; then
( (
cat << EOF cat << EOF
all: ck_UID mk_SETUP mk_CROSS mk_SUDO mk_SYSTOOLS create-sbu_du-report all: ck_UID mk_SETUP mk_CROSS mk_SUDO mk_SYSTOOLS create-sbu_du-report mk_BLFS_TOOL
@sudo make do-housekeeping @sudo make do-housekeeping
@\$(call echo_finished,$VERSION) @\$(call echo_finished,$VERSION)
@ -1226,12 +1230,19 @@ mk_SYSTOOLS: mk_SUDO
@( sudo \$(CHROOT1) "cd \$(SCRIPT_ROOT) && make CHROOT_JAIL") @( sudo \$(CHROOT1) "cd \$(SCRIPT_ROOT) && make CHROOT_JAIL")
@touch \$@ @touch \$@
mk_BLFS_TOOL: mk_SYSTOOLS
@\$(call echo_PHASE,Building BLFS-TOOLS); \\
@if [ "\$(ADD_BLFS_TOOLS)" = "y" ]; then \\
sudo mkdir -p $BUILDDIR$TRACKING_DIR; \\
sudo \$(CHROOT1) "cd \$(SCRIPT_ROOT) && make BLFS_TOOL"; \\
fi
@touch \$@
SETUP: $host_prep SETUP: $host_prep
AS_LUSER: $cross_tools $temptools AS_LUSER: $cross_tools $temptools
SUDO: $orphan_scripts SUDO: $orphan_scripts
CHROOT_JAIL: ${chroottools}${boottools} $testsuitetools $basicsystem $bootscripttools $bootabletools CHROOT_JAIL: ${chroottools}${boottools} $testsuitetools $basicsystem $bootscripttools $bootabletools
BLFS_TOOL: $blfs_tool
do-housekeeping: do-housekeeping:
@-umount \$(MOUNT_PT)/dev/pts @-umount \$(MOUNT_PT)/dev/pts
@ -1262,6 +1273,7 @@ EOF
) >> $MKFILE ) >> $MKFILE
else echo -e "\t@true\n" >> $MKFILE; fi else echo -e "\t@true\n" >> $MKFILE; fi
fi fi
################### BOOT ##################### ################### BOOT #####################
@ -1275,7 +1287,7 @@ all: ck_UID mk_SETUP mk_CROSS mk_SUDO
@sudo make do-housekeeping @sudo make do-housekeeping
@\$(call echo_boot_finished,$VERSION) @\$(call echo_boot_finished,$VERSION)
makesys: mk_FINAL makesys: mk_FINAL mk_BLFS_TOOL
@\$(call echo_finished,$VERSION) @\$(call echo_finished,$VERSION)
@ -1305,7 +1317,7 @@ mk_CROSS: mk_SETUP
@(sudo \$(SU_LUSER) "source .bashrc && cd \$(MOUNT_PT)/\$(SCRIPT_ROOT) && make AS_LUSER" ) @(sudo \$(SU_LUSER) "source .bashrc && cd \$(MOUNT_PT)/\$(SCRIPT_ROOT) && make AS_LUSER" )
@touch \$@ @touch \$@
mk_SUDO: mk_SYSTOOLS mk_SUDO: mk_CROSS
@sudo make SUDO @sudo make SUDO
@touch \$@ @touch \$@
@ -1316,10 +1328,19 @@ mk_FINAL:
@( make AS_ROOT ) @( make AS_ROOT )
@touch \$@ @touch \$@
mk_BLFS_TOOL: mk_FINAL
@\$(call echo_PHASE,Building BLFS-TOOLS)
@if [ "\$(ADD_BLFS_TOOLS)" = "y" ]; then \\
mkdir -p $TRACKING_DIR; \\
make BLFS_TOOL; \\
fi
@touch \$@
SETUP: $host_prep SETUP: $host_prep
AS_LUSER: $cross_tools $temptools ${chroottools}${boottools} AS_LUSER: $cross_tools $temptools ${chroottools}${boottools}
SUDO: $orphan_scripts SUDO: $orphan_scripts
AS_ROOT: $testsuitetools $basicsystem $bootscripttools $bootabletools AS_ROOT: $testsuitetools $basicsystem $bootscripttools $bootabletools
BLFS_TOOL: $blfs_tool
do-housekeeping: do-housekeeping:
@-rm /tools /cross-tools @-rm /tools /cross-tools
@ -1335,10 +1356,6 @@ fi
( (
cat << EOF cat << EOF
restart:
@echo "This feature does not exist for the CLFS makefile. (yet)"
restore-luser-env: restore-luser-env:
@\$(call echo_message, Building) @\$(call echo_message, Building)
@if [ -f /home/\$(LUSER)/.bashrc.XXX ]; then \\ @if [ -f /home/\$(LUSER)/.bashrc.XXX ]; then \\

View file

@ -499,9 +499,6 @@ LUSER: $cross_tools $basicsystem $bootscripttools $bootable
ROOT: $chowning ROOT: $chowning
restart:
@echo "This feature does not exist for the CLFS-2 makefile. (yet)"
restore-luser-env: restore-luser-env:
@\$(call echo_message, Building) @\$(call echo_message, Building)
@if [ -f /home/\$(LUSER)/.bashrc.XXX ]; then \\ @if [ -f /home/\$(LUSER)/.bashrc.XXX ]; then \\

View file

@ -57,7 +57,7 @@ menu "--- BOOK Settings"
#-- A local working copy #-- A local working copy
config BRANCH config BRANCH
bool "Branch or stable book" if !BOOK_HLFS && !BOOK_CLFS2 bool "Branch or stable book" if !BOOK_CLFS2
help help
#-- A supported SVN branch or stable released book #-- A supported SVN branch or stable released book
endchoice endchoice
@ -271,7 +271,8 @@ menu "--- BOOK Settings"
config BLFS_TOOL config BLFS_TOOL
bool "Add blfs-tool support" bool "Add blfs-tool support"
default n default n
depends on !BOOK_BLFS # depends on !BOOK_BLFS
depends on BOOK_LFS || BOOK_CLFS
help help
#--- Activating this option additional packages needed to #--- Activating this option additional packages needed to
# use blfs-tool will be installed. # use blfs-tool will be installed.
@ -285,9 +286,9 @@ menu "--- BOOK Settings"
# directory and files owner, before start # directory and files owner, before start
# using blfs-tool. # using blfs-tool.
# #
# Also, be sure to create the $TRACKING_DIR directory # Also, be sure to bring to that user read and write
# and bring to the build user the right privileges # privileges over the $TRACKING_DIR directory and
# over it. # the files that it contains.
# #
# And don't forget to configure sudo properly. # And don't forget to configure sudo properly.
@ -489,12 +490,16 @@ menu "--- General Settings"
# if possible. # if possible.
config GETKERNEL config GETKERNEL
bool "Always retrieve kernel package" bool "Always retrieve kernel package (see help)"
default n default y if BOOK_LFS && relSVN
depends GETPKG depends GETPKG
help help
#-- Get the kernel package and patches even if no configuration #-- Get the kernel package and patches even if no kernel
# file has been supplied. # configuration file has been supplied.
# NOTE:
# The kernel package must be available when building
# the SVN version of LFS to can install the headers files.
config RUNMAKE config RUNMAKE
bool "Run the makefile" bool "Run the makefile"

View file

@ -614,8 +614,6 @@ CHROOT: $chapter6
BOOT: $chapter7 BOOT: $chapter7
#restart: restart_code all
restore-luser-env: restore-luser-env:
@\$(call echo_message, Building) @\$(call echo_message, Building)
@if [ -f /home/\$(LUSER)/.bashrc.XXX ]; then \\ @if [ -f /home/\$(LUSER)/.bashrc.XXX ]; then \\
@ -641,45 +639,6 @@ do-housekeeping:
rm -rf /home/\$(LUSER); \\ rm -rf /home/\$(LUSER); \\
fi; fi;
restart_code:
@echo ">>> This feature is experimental, BUGS may exist"
@if [ ! -L /tools ]; then \\
echo -e "\\nERROR::\\n /tools is NOT a symlink.. /tools must point to \$(MOUNT_PT)/tools\\n" && false;\\
fi;
@if [ ! -e /tools ]; then \\
echo -e "\\nERROR::\\nThe target /tools points to does not exist.\\nVerify the target.. \$(MOUNT_PT)/tools\\n" && false;\\
fi;
@if ! stat -c %N /tools | grep "\$(MOUNT_PT)/tools" >/dev/null ; then \\
echo -e "\\nERROR::\\nThe symlink \\"/tools\\" does not point to \\"\$(MOUNT_PT)/tools\\".\\nCorrect the problem and rerun\\n" && false;\\
fi;
@if [ -f ???-kernfs ]; then \\
mkdir -pv \$(MOUNT_PT)/{proc,sys};\\
if ! mount -l | "\$(MOUNT_PT)/dev" >/dev/null ; then \\
mount -vt ramfs ramfs \$(MOUNT_PT)/dev;\\
fi;\\
if [ ! -e \$(MOUNT_PT)/dev/console ]; then \\
mknod -m 600 \$(MOUNT_PT)/dev/console c 5 1;\\
fi;\\
if [ ! -e \$(MOUNT_PT)/dev/null ]; then \\
mknod -m 666 \$(MOUNT_PT)/dev/null c 1 3;\\
fi;\\
if ! mount -l | grep "\$(MOUNT_PT)/dev/pts" >/dev/null ; then \\
mount -vt devpts -o gid=4,mode=620 devpts \$(MOUNT_PT)/dev/pts;\\
fi;\\
if ! mount -l | grep "\$(MOUNT_PT)/dev/shm" >/dev/null ; then \\
mount -vt tmpfs shm \$(MOUNT_PT)/dev/shm;\\
fi;\\
if ! mount -l | grep "\$(MOUNT_PT)/proc" >/dev/null ; then \\
mount -vt proc proc \$(MOUNT_PT)/proc;\\
fi;\\
if ! mount -l | grep "\$(MOUNT_PT)/sys" >/dev/null ; then \\
mount -vt sysfs sysfs \$(MOUNT_PT)/sys;\\
fi;\\
fi;
EOF EOF

View file

@ -498,8 +498,6 @@ CHROOT: $chapter6
BOOT: $chapter789 BOOT: $chapter789
restart: restart_code all
restore-luser-env: restore-luser-env:
@\$(call echo_message, Building) @\$(call echo_message, Building)
@if [ -f /home/\$(LUSER)/.bashrc.XXX ]; then \\ @if [ -f /home/\$(LUSER)/.bashrc.XXX ]; then \\
@ -525,45 +523,6 @@ do_housekeeping:
rm -rf /home/\$(LUSER); \\ rm -rf /home/\$(LUSER); \\
fi; fi;
restart_code:
@echo ">>> This feature is experimental, BUGS may exist"
@if [ ! -L /tools ]; then \\
echo -e "\\nERROR::\\n /tools is NOT a symlink.. /tools must point to \$(MOUNT_PT)/tools\\n" && false;\\
fi;
@if [ ! -e /tools ]; then \\
echo -e "\\nERROR::\\nThe target /tools points to does not exist.\\nVerify the target.. \$(MOUNT_PT)/tools\\n" && false;\\
fi;
@if ! stat -c %N /tools | grep "\$(MOUNT_PT)/tools" >/dev/null ; then \\
echo -e "\\nERROR::\\nThe symlink \\"/tools\\" does not point to \\"\$(MOUNT_PT)/tools\\".\\nCorrect the problem and rerun\\n" && false;\\
fi;
@if [ -f ???-kernfs ]; then \\
mkdir -pv \$(MOUNT_PT)/{dev,proc,sys};\\
if [ ! -e \$(MOUNT_PT)/dev/console ]; then \\
mknod -m 600 \$(MOUNT_PT)/dev/console c 5 1;\\
fi;\\
if [ ! -e \$(MOUNT_PT)/dev/null ]; then \\
mknod -m 666 \$(MOUNT_PT)/dev/null c 1 3;\\
fi;\\
if ! mount -l | grep bind >/dev/null ; then \\
mount --bind /dev \$(MOUNT_PT)/dev;\\
fi;\\
if ! mount -l | grep "\$(MOUNT_PT)/dev/pts" >/dev/null ; then \\
mount -vt devpts devpts \$(MOUNT_PT)/dev/pts;\\
fi;\\
if ! mount -l | grep "\$(MOUNT_PT)/dev/shm" >/dev/null ; then \\
mount -vt tmpfs shm \$(MOUNT_PT)/dev/shm;\\
fi;\\
if ! mount -l | grep "\$(MOUNT_PT)/proc" >/dev/null ; then \\
mount -vt proc proc \$(MOUNT_PT)/proc;\\
fi;\\
if ! mount -l | grep "\$(MOUNT_PT)/sys" >/dev/null ; then \\
mount -vt sysfs sysfs \$(MOUNT_PT)/sys;\\
fi;\\
fi;
EOF EOF
) >> $MKFILE ) >> $MKFILE
@ -589,7 +548,7 @@ EOF
( (
cat << EOF cat << EOF
@\$(call echo_CHROOT_request) @\$(call echo_CHROOT_request)
@ sudo mkdir $BUILDDIR$TRACKING_DIR @ sudo mkdir -p $BUILDDIR$TRACKING_DIR
@( sudo \$(CHROOT2) "cd \$(SCRIPT_ROOT) && make BLFS_TOOL") @( sudo \$(CHROOT2) "cd \$(SCRIPT_ROOT) && make BLFS_TOOL")
@touch \$@ @touch \$@

261
README
View file

@ -2,14 +2,17 @@ $Id$
1. INTRODUCTION:: 1. INTRODUCTION::
This collection of scripts, known as jhalfs-X, strives to create This collection of scripts, known as jhalfs, strives to create
accurate makefiles from the Linux From Scratch book series XML files. accurate makefiles from the Linux From Scratch book series XML files.
This software is an evolution of the original "jhalfs-0.2" code. This software is an evolution of the original "jhalfs-0.2" code developed
by Jeremy Huntwork.
The usage of this script assumes you have read and are familiar with The usage of this script assumes you have read and are familiar with
the book(s) and, therefore, the configuration variables found in config the book(s) and, therefore, the configuration variables found in menuconfig
files will have meaning to you. There are a number of command line switches interface will have meaning to you.
which, if used, will override the config file settings.
The list of supported books can be found at
http://wiki.linuxfromscratch.org/alfs/wiki/SupportedBooks
NOTES:: NOTES::
*. The resulting Makefile takes considerable time to run to completion. *. The resulting Makefile takes considerable time to run to completion.
@ -31,156 +34,145 @@ $Id$
- be able to trace build failures and to find what is causing it - be able to trace build failures and to find what is causing it
(user error, package bug, {c,h,b}LFS command bug, or jhalfs code bug) (user error, package bug, {c,h,b}LFS command bug, or jhalfs code bug)
If you don't have the above skill, please don't use this tool. If you do not have the above skills, please don't use this tool.
3. INSTALLATION:: 3. INSTALLATION::
No installation is required. System-wide installation is not allowed
for now.
4. CONFIGURATION FILES:: No installation is required. System-wide installation is not allowed.
Each book in the LFS series has its own set of configurable parameters
as well as the common parameters file. 4. CONFIGURATION::
::NEWS:: There is new configuration method for jhalfs. ::NEWS::
There is a new configuration method for jhalfs.
We have installed the familiar menu based configuration tool driven by We have installed the familiar menu based configuration tool driven by
make. If you type the command GNU make. see the section RUNNING, for details
make
you will be presented with a list of configurable parameters (starting
with the book you wish to use). All the parameters found in the individual
config files are available. Once you have finished setting the parameters
and exit the make file will launch the chosen book version of jhalfs.
JHALFS will import your created file and overider the values found in normal
"config" files.
..note.. The generated file <configuration> is only used by jhalfs if you
run jhalfs via make otherwise it is ignored.
If you want to try out the new configuration system without running jhalfs
issue the following.
make menuconfig
This will create a new file named configuration but will not launch jhalfs.
5. RUNNING:: 5. RUNNING::
The script master.sh cannot be invoked directly but only via the
supplied symlinks. After editing the config file for the project you wish
to build, run the script.
IMPORTANT: ::NEWS::
If you use the switch -M (automatically run the generated makefile) you jhalfs is now launched via GNU make instead of individual symlinks.
must be 'root' or you can run the scripts using 'sudo'
i.e. sudo ./lfs -G -M
If you want to run make manually you can only do so if you are 'root' or The command <make> will launch a menu based configuration program. You will
via 'sudo' recognize the layout from building the kernel or uClibc/BusyBox. The
i.e (from within the jhalfs directory) sudo make underlying menu code was borrowed from BusyBox and slightly modified for
our use.
The term <symlink> refers to the 1 of 3 package symlinks, lfs,hlfs,clfs. Help on parameter function is available from the online help. Please
Replace <symlink> with your choice of packages; i.e.: ./lfs make use of that feature for additional information not in this file.
./<symlink> eg: ./lfs or ./hlfs Once you have set the parameters you wish and have saved your work the
Create a makefile based on the settings found in the config files. jhalfs script is launch. The script verify first that the host can run
You must enter the build partition/jhalfs directory and manually run <make> it and build the xLFS system, then validate the configuration and present
you with your selections which you may accept or reject.
./<symlink> -G eg: ./lfs -G If you accepted the displayed settings jhalfs will proceed to create the
Download the packages and patches necessary to build <symlink> Makefile, optionally download packages.
./<symlink> -G -M eg: ./lfs -G -M ::NEWS::
Download the packages, create and automatically run the Makefile You must be logged as a normal user with sudo privileges to run
the Makefile.
./<symlink> --help eg: ./lfs --help NOTE::
will give you a context sensitive list of command line switches. If you run the jhalfs script directly the only function you can select
is to display the version number running <./jhalfs -v>
>>>> an expanded example 6. BLFS_TOOL SUPPORT::
export SRC_ARCHIVE=/mnt/SourceFiles For books that support it, there is an option to install blfs-tool and its
dependendencies on the final system.
./lfs -D /mnt/partition4 \ After booting the new xLFS system some steps are needed to finish
-K ~/jhalfs_configs/linux-2.6.16.19-LFS.config \ blfs-tool installation:
-F ~/jhalfs-configs/fstab-sda3 \
-G -T 0 -M
explanation::: - A user account must be created. You must be logged on that user
account to use blfs-tool.
export SRC_ARCHIVE=/mnt/SourceFiles - Move /blfs-root to that user's home and change ownership of the
# This points to a local archive of existing packages. If the version in directory and files to the user.
the archive is incorrect jhalfs will access the net and download the
necessary version and store it here for later use. DO NOT set this to
$BUILDDIR/sources. If you do not set this variable to a valid directory
ALL package tarballs will be downloaded from the 'net.
-D /mnt/partition4 - Give the user read and write privileges over the $TRACKING_DIR
# where everything takes place. ..NOTE it must already exist and be mounted directory and the files that it contains.
-K ~/jhalfs_configs/linux-2.6.16.19-LFS.config - Configure sudo, adding the needed privileges for the user.
# If you want to automatically build a the kernel you MUST supply a valid
kernel configuration file. The file you supply will be copied and renamed.
-F ~/jhalfs-configs/fstab-sda3 We assume that blfs-tool will be used on a running fresh xLFS system.
# If you have a fstab file you wish to use it will be copied and renamed To use it to build BLFS packages from the chroot jail is also possible,
but is for you to figure out how to do that.
-G # Retrieve the package files. You MUST enable this flag at least once if you To know how to blfs-tool works, see README.BLFS.
wish to do a build or whenever you update the book.
-T 0 # don't run any testsuites 7. LAYOUT::
-M # automatically run make against Makefile once jhalfs finishes its work. /BLFS (see README.BLFS)
/CLFS/master.sh
/clfs.xsl
6. LAYOUT:: /CLFS2/master.sh
/clfs2.xsl
/CLFS/config /HLFS/master.sh
/master.sh /hlfs.xsl
/xxxx.xsl
/CLFS2/config /LFS/master.sh
/master.sh /lfs.xsl
/xxxx.xsl
/HLFS/config /common/common_functions
/master.sh
/xxxx.xsl
/LFS/config
/ master.sh
/xxxx.xsl
/common/config
/common_functions
/makefile_functions /makefile_functions
/func_check_versions.sh /func_check_versions.sh
/func_validate_configs.sh /func_validate_configs.sh
/packages.xsl
/urls.xsl
/create-sbu_du-report.sh
/func_compare.sh
/progress_bar.sh
/blfs-tool-deps/9xx-*
/contrib/jhalfs-paco.patch /contrib/jhalfs-paco.patch
/extras/do_copy_files /extras/do_copy_files
/do_ica_prep /do_ica_prep
/do_ica_work /do_ica_work
/farce /farce
/filelist /filelist
README /optimize/opt_config
README.PACO /opt_override
TODO /optimize_functions
/opt_config.d/noOpt
/noSymbols
/O3pipe
/O3pipe_march
/defOpt_fPIC
./clfs ---| /menu/*
./clfs2 ---|
./hlfs ---|+---> master.sh
./lfs ---|
README
README.BLFS
README.HLFS
README.PACO
TODO
LICENSE
7. FAQ:: Config.in
Makefile
jhalfs
blfs-tool
8. FAQ::
Q. "This 'help' file is very sparse" Q. "This 'help' file is very sparse"
A. Yes, it is. This tool, jhalfs, is for those who understand the LFS books A. Yes, it is. This tool, jhalfs, is for those who understand the LFS books
and wish to automate the build. 99% of any problems that arise can be and wish to automate the build. 99% of any problems that arise can be
solved by reading the book(s). solved by reading the book(s).
Q. "It doesn't work!" Q. "It doesn't work!"
A. Yes it does, try ./lfs --help A. Yes it does, try >> make
Remember you must either be 'root' to run this script or have 'sudo' privileges. Remember you must have 'sudo' privileges.
Q. "It still doesn't work" Q. "It still doesn't work"
A. jhalfs was designed to work against the developement versions of the LFS A. jhalfs was designed to work against the development versions of the LFS
series of books. Consequently changes in a book(s) sometimes breaks older series of books. Consequently changes in a book(s) sometimes breaks older
versions of jhalfs. Before you start pulling out your hair download the versions of jhalfs. Before you start pulling out your hair download the
latest version of jhalfs to see if that solves your problem. latest version of jhalfs to see if that solves your problem.
@ -193,42 +185,50 @@ $Id$
The layout below $BUILDDIR is as follows. The layout below $BUILDDIR is as follows.
$BUILDDIR/ $BUILDDIR/
jhalfs (makefile,cmd scripts,logs..etc) jhalfs (Makefile, cmd scripts, logs, etc..)
sources (where packages reside) sources (where packages reside)
tools (temporary bootstrap system) tools (temporary bootstrap system)
cross-tools (temporary CLFS only) cross-tools (temporary CLFS only)
... ...
FHS dir structure FHS dir structure
... ...
blfs_root (files to use blfs-tool if selected to install it)
Q. "What is the function of the SRC_ARCHIVE variable?" Q. "What is the function of the SRC_ARCHIVE variable?"
A. When then symlinked master.sh runs it creates a local copy of the A. When jhalfs runs and packages download was selected, it creates a local
necessary packages in BUILDDIR/sources by downloading the files. If copy of the necessary packages in BUILDDIR/sources by downloading the
the variable SRC_ARCHIVE is defined the software will first look in files. If the variable SRC_ARCHIVE is defined the software will first
this location for the file and, if found, will copy it to BUILDDIR/sources. look in this location for the file and, if found, will copy it to
BUILDDIR/sources.
If the files are not found in SRC_ARCHIVE _and_ you have write priv to If the files are not found in SRC_ARCHIVE _and_ you have write priv to
the directory any downloaded files will be mirrored there. the directory any downloaded files will be mirrored there.
Q. "How do I set the SRC_ARCHIVE location?" Q. "How do I set the SRC_ARCHIVE location?"
A. The best way to set the value of SRC_ARCHIVE is A. The best way to set the value of SRC_ARCHIVE is
export SRC_ARCHIVE=/wherever/you/store/downloaded/packages export SRC_ARCHIVE=/wherever/you/store/downloaded/packages
OR
you can change the setting in common/config. or you can set the full path in the proper menu entry.
Q. "Why have 2 copies of the files?" Q. "Why have 2 copies of the files?"
A. The package files must be visible during the chroot phase and this is a A. The package files must be visible during the chroot phase and this is a
simple and reliable method of doing so. This method also handles the CLFS simple and reliable method of doing so. This method also handles the CLFS
build method where the final build may be done on a separate machine. boot build method where the final build may be done on a separate machine.
Q. "What is the function of LUSER and LGROUP? There is no cmd line switch" Q. "What is the function of "User account" and "Group account" menu settings?"
A. If you are running jhalfs from a low or non-priveledged account you may not A. If you are running jhalfs from a low or non-privileged account you may not
have the priv to create/delete accounts. These variables are adjustable have the priv to create/delete the user needed to build temporally tools.
when invoking make. These settings allow you to use your own user and group name to do that
make LUSER=myaccount LGROUP=mygroup build steps.
Then only changes to your account will be the creation of a NEW .bashrc after
saving your original to .bashrc.XXX These variables are adjustable also when invoking make:
Q. "When I try to build 'xxx' with clfs the makefile fails at the mid-point" $BUILDDIR make LUSER=myaccount LGROUP=mygroup
The only changes to your account will be the creation of a NEW .bashrc
after saving your original to .bashrc.XXX
Q. "When I try to build CLFS the Makefile fails at the mid-point"
A. There could be numerous reasons for the failure but the most likely reason A. There could be numerous reasons for the failure but the most likely reason
is you are doing a cross-build using the 'chroot' method and the target is is you are doing a cross-build using the 'chroot' method and the target is
not compatible with the host. If you choose to build using the chroot not compatible with the host. If you choose to build using the chroot
@ -237,9 +237,9 @@ $Id$
it means the host and target are not compatible an you should use the it means the host and target are not compatible an you should use the
'boot' method to create your target code. 'boot' method to create your target code.
As an extreme example: You can build a sparc target on a x86 platform but As an extreme example: You can build a sparc target on a x86 platform but
only the temptools phase. You must run ./clfs using the 'boot' method and only the temptools phase. You must select the 'boot' method and not the
not the 'chroot.' You must transfer the toolchain to a sparc platform, reboot 'chroot.' You must transfer the toolchain to a sparc platform, reboot the
the sparc box and continue the build. sparc box and continue the build.
Of all the LFS series of books Cross-LFS requires the greatest Of all the LFS series of books Cross-LFS requires the greatest
understanding of host/target hardware combination. Please read the book understanding of host/target hardware combination. Please read the book
carefully and don't skip the easy parts (there are none..) carefully and don't skip the easy parts (there are none..)
@ -247,4 +247,3 @@ $Id$
Authors: Authors:
George Boudreau George Boudreau
Manuel Canales Esparcia Manuel Canales Esparcia
Jeremy Huntwork

View file

@ -8,14 +8,12 @@ $Id$
installed on a non default prefix, build commands can change based on what installed on a non default prefix, build commands can change based on what
dependencies will be used, etc. dependencies will be used, etc.
Said that, the goal of jhalfs is try to help you solving packages Said that, the goal of blfs-tool is try to help you solving packages
dependencies and creating your own build scripts/Makefile. Some of the dependencies and creating your own build scripts and Makefile. Few of the
auto-generated build scripts and Makefile could work "as is", but as a auto-generated build scripts and Makefile could work "as is", thus as a
general rule you will need to review and edit the scripts while reading general rule you will need to review and edit the scripts while reading
the book. the book.
NOTE:: The code is still under development and may contains several bugs
2. PREREQUISITES:: 2. PREREQUISITES::
@ -27,19 +25,36 @@ $Id$
- be able to trace build failures and to find what is causing it - be able to trace build failures and to find what is causing it
(user error, package bug, BLFS command bug, or jhalfs code bug) (user error, package bug, BLFS command bug, or jhalfs code bug)
If you don't have the above skill, please don't use this tool. If you do not have the above skills, please don't use this tool.
3. USAGE:: 3. USAGE::
Due the complexity of the BLFS book, the scripts/Makefile generation is Due the complexity of the BLFS book, the scripts and Makefile generation is
done in several steps: done in several steps:
3.1 INSTALLATION:: 3.1 INSTALLED PACKAGES TRACKING SYSTEM
This tool includes a very simple tracking system to know what packages
has been installed using the tool. It is used to skip installed packages
from target selection menu and to know if an installed package has been updated
on the BLFS book. Don't rely on this feature as a packages management tool.
The directory where tracking files will be stored need be created
before installing blfs-tool. You can place that directory anywhere, taking
care that the builder user must have read and write privileges on that
directory and on all files it contains.
To use the default path set in the installation menu, run as root:
install -d -m1777 /var/lib/jhalfs/BLFS
3.2 BLFS_TOOL INSTALLATION::
Run "make" to launch the jhalfs menuconfig interface. Select the BLFS Run "make" to launch the jhalfs menuconfig interface. Select the BLFS
book and it version. Then set the installation directory (default book and it version. Then set the installation directory (default
$HOME/blfs_root) and the BLFS sources directory (default blfs-xml). $HOME/blfs_root), the BLFS sources directory (default blfs-xml), and
the installed packages tracking directory (default /var/lib/jhalfs/BLFS).
All required files will be placed in the installation directory and All required files will be placed in the installation directory and
BLFS XML sources will be checkout to the named sub-directory. BLFS XML sources will be checkout to the named sub-directory.
@ -69,45 +84,55 @@ $Id$
From now on, all the work must be done from inside the installation From now on, all the work must be done from inside the installation
root directory. root directory.
3.2 UPDATING BOOK SOURCES:: When finished the installation, the configuration and target selection
menu is launch.
3.3 UPDATING BOOK SOURCES::
If using the development book version, and if you want to update already If using the development book version, and if you want to update already
installed packages to the new version found in that book, you need to update installed packages to the new version found in that book, you need to update
the XML sources and packages database. the XML sources and packages database.
To do that run "./update_book.sh" To do that run "./update_book.sh"
3.3 CONFIGURING AND PARSING THE BOOK:: (obsolete, to be rewritten) On the next configuration run, packages already installed but listed
with a new version in the book will be available for target selection and
used to solve dependencies.
3.4 CONFIGURING AND PARSING THE BOOK::
Next step is to create a book and build scripts in dependencies build order Next step is to create a book and build scripts in dependencies build order
for a target package. A target package can be any of the ones listed in the for a target package. A target can be a package or a meta-package.
packages file. That is done using the blfs-parser.sh script, but we are trying
to make a menuconfig based system.
The script need three arguments: Run <make> to launch the configuration interface. The main menu contains
three block: meta-package selection, individual package selection, and
build options.
package name as listed in packages file Only one meta-package or individual package must be selected on each run.
dependencies level 1 for required, That is due that there is no way to solve dependencies properly when
2 for required an recommended more than one target are selected at the same time.
3 for required, recommended, and optional
sudo usage y if sudo will be used (you want build as a normal user)
n if sudo isn't needed (you want build as root)
For example: When a meta-package is selected is possible to unselect unwanted components.
That unselected components will be skipped if no other components depends
on them.
./blfs-parser galeon 3 y In the build options section the dependencies level and default packages
used to solve alternatives are set. Can be set also if the build will be
made as a normal user or as root. That settings are saved to be reused on
future configuration runs.
will create a directory named "galeon". Inside that directory you find a If, for example, your target selection is Xsoft-->Graphweb-->galeon a
directory named "HTML" that contains a galeon-based HTML book with all directory named "galeon" will be created. Inside that directory you will
dependencies in build order and a "scripts" directory with build scripts find a directory named "HTML" that contains a galeon-based HTML book with
that uses sudo for commands that need root privileges. its dependencies in build order, and a "scripts" directory with build
scripts for that packages.
There is also two other directories, dependencies and xincludes, that There is also two other directories, "dependencies" and "xincludes", that
contains files generated while resolving dependencies trees. contains files generated while resolving dependencies trees.
3.4 EDITING BUILD SCRIPTS 3.5 EDITING BUILD SCRIPTS
Now is the time to review the generated book and scripts, making in the Now is time to review the generated book and scripts, making in the
scripts any changes required to fix generation bugs or to fit your needs. scripts any changes required to fix generation bugs or to fit your needs.
Scripts for additional packages (i.e., for non-BLFS packages) can be Scripts for additional packages (i.e., for non-BLFS packages) can be
@ -116,24 +141,20 @@ $Id$
"foo" script is named "064-z-foo", you need to create a "064-y-bar" build "foo" script is named "064-z-foo", you need to create a "064-y-bar" build
script. script.
Note that the packages tracking system isn't a packages management tool Remember that the packages tracking system isn't a packages management tool
and know nothing about packages not in the BLFS book. and know nothing about packages not in the BLFS book.
3.5 CREATING THE MAKEFILE Also, review and edit envars.conf. That file is used to set global envars
needed by the build scripts.
3.6 CREATING THE MAKEFILE
When the build scripts are ready to be run, the Makefile can be When the build scripts are ready to be run, the Makefile can be
created. Be sure that you cd into the "package" directory and run created. Be sure that you cd into the "package" directory and run
../gen_makefile.sh ../gen_makefile.sh
Review the Makefile and if all look sane, start the build. Review the Makefile and if all looks sane, start the build.
(Text is needed about meta-packages, the installed packages tracking system
and like)
(The TRACKING_DIR directory must be created before using this tool running as root
install -d -m1777 /var/lib/jhalfs/BLFS )
4. GENERATED BUILD SCRIPTS ISSUES:: 4. GENERATED BUILD SCRIPTS ISSUES::
@ -176,8 +197,8 @@ install -d -m1777 /var/lib/jhalfs/BLFS )
to make it to use your local packages. to make it to use your local packages.
Also, you will need to edit the scripts to fix the commands that must Also, you will need to edit the scripts to fix the commands that must
be applied only to a concret individual sub-package. For example the "for" be applied only to a concrete individual sub-package. For example the "for"
loop to install xotg7-util packages may read like: loop to install xorg7-util packages may read like:
for package in $(cat $WGET_LST) ; do for package in $(cat $WGET_LST) ; do
packagedir=$(echo $package | sed 's/.tar.bz2//') packagedir=$(echo $package | sed 's/.tar.bz2//')

View file

@ -14,5 +14,4 @@ $Id$
Automation failures: Automation failures:
1.Directory /dev and devices nodes /dev/null, /dev/console needed to be 1.Directory /dev and devices nodes /dev/null, /dev/console needed to be
created in kernfs created in kernfs
2.Linux-headers does not contain /net.
3.Remove the creation of /null and /console node from the devices script. 3.Remove the creation of /null and /console node from the devices script.

View file

@ -144,7 +144,7 @@ echo "${SD_BORDER}${nl_}"
echo -n "Are you happy with these settings? yes/no (no): " echo -n "Are you happy with these settings? yes/no (no): "
read ANSWER read ANSWER
if [ x$ANSWER != "xyes" ] ; then if [ x$ANSWER != "xyes" ] ; then
echo "${nl_}Fix the configuration options and rerun the script.${nl_}" echo "${nl_}Rerun make to fix the configuration options.${nl_}"
exit 1 exit 1
fi fi
echo "${nl_}${SD_BORDER}${nl_}" echo "${nl_}${SD_BORDER}${nl_}"

View file

@ -3,7 +3,7 @@
# $Id$ # $Id$
set -e set -e
cd $PKGDIR
./configure --prefix=/usr ./configure --prefix=/usr
make make
make install make install

View file

@ -3,7 +3,7 @@
# $Id$ # $Id$
set -e set -e
cd $PKGDIR
./configure --prefix=/usr ./configure --prefix=/usr
make make
make install make install

View file

@ -3,12 +3,14 @@
# $Id$ # $Id$
set -e set -e
cd $PKGDIR
patch -Np1 -i ../tidy-051026-prevent_PRE_newlines-1.patch patch -Np1 -i ../tidy-051026-prevent_PRE_newlines-1.patch
sh build/gnuauto/setup.sh sh build/gnuauto/setup.sh
./configure --prefix=/usr ./configure --prefix=/usr
make make
make install make install
(cd ../ && tar -xvf tidy_docs_051020.tgz)
cd htmldoc cd htmldoc
tidy -xml-help > tidy-help.xml tidy -xml-help > tidy-help.xml
tidy -xml-config > tidy-config.xml tidy -xml-config > tidy-config.xml
@ -16,7 +18,7 @@ xsltproc -o tidy.1 tidy1.xsl tidy-help.xml
xsltproc -o quickref.html quickref-html.xsl tidy-config.xml xsltproc -o quickref.html quickref-html.xsl tidy-config.xml
cd .. cd ..
install -v -m644 htmldoc/tidy.1 /usr/share/man/man1 install -v -m644 htmldoc/tidy.1 /usr/share/man/man1
install -v -m755 -d /usr/share/doc/tidy-051026 install -v -m755 -d /usr/share/doc/tidy-051020
install -v -m644 htmldoc/quickref.html /usr/share/doc/tidy-051026 cp -v -R htmldoc/* /usr/share/doc/tidy-051020
exit exit

View file

@ -3,6 +3,7 @@
# $Id$ # $Id$
set -e set -e
cd $PKGDIR
make -f unix/Makefile LOCAL_UNZIP=-D_FILE_OFFSET_BITS=64 linux make -f unix/Makefile LOCAL_UNZIP=-D_FILE_OFFSET_BITS=64 linux
make prefix=/usr install make prefix=/usr install

View file

@ -3,6 +3,7 @@
# $Id$ # $Id$
set -e set -e
cd $PKGDIR
install -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-1.69.1 install -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-1.69.1
cp -v -R VERSION common eclipse extensions fo html \ cp -v -R VERSION common eclipse extensions fo html \

View file

@ -3,6 +3,7 @@
# $Id$ # $Id$
set -e set -e
cd $PKGDIR
patch -Np1 -i ../gpm-1.20.1-segfault-1.patch patch -Np1 -i ../gpm-1.20.1-segfault-1.patch
patch -Np1 -i ../gpm-1.20.1-silent-1.patch patch -Np1 -i ../gpm-1.20.1-silent-1.patch

View file

@ -3,6 +3,7 @@
# $Id$ # $Id$
set -e set -e
cd $PKGDIR
./configure --prefix=/usr ./configure --prefix=/usr
make CFLAGS="-O2 -Wno-sign-compare -Wno-pointer-sign" make CFLAGS="-O2 -Wno-sign-compare -Wno-pointer-sign"

View file

@ -3,6 +3,7 @@
# $Id$ # $Id$
set -e set -e
cd $PKGDIR
patch -Np1 -i ../sudo-1.6.8p12-envvar_fix-1.patch patch -Np1 -i ../sudo-1.6.8p12-envvar_fix-1.patch
./configure --prefix=/usr --libexecdir=/usr/lib \ ./configure --prefix=/usr --libexecdir=/usr/lib \

View file

@ -3,6 +3,7 @@
# $Id$ # $Id$
set -e set -e
cd $PKGDIR
./configure --prefix=/usr --sysconfdir=/etc ./configure --prefix=/usr --sysconfdir=/etc
make make

View file

@ -3,6 +3,7 @@
# $Id$ # $Id$
set -e set -e
cd $PKGDIR
./configure --prefix=/usr \ ./configure --prefix=/usr \
--without-berkeley-db \ --without-berkeley-db \

View file

@ -44,9 +44,19 @@ get_package_tarball_name() { #
# hopefully this will not cause problems. # hopefully this will not cause problems.
# #
case $script_name in case $script_name in
tcl) echo $(grep "^tcl" $JHALFSDIR/pkg_tarball_list | head -n1 ) ;; tcl) echo $(grep "^tcl" $JHALFSDIR/pkg_tarball_list | head -n1 )
linux-headers) echo $(grep "^linux-headers.*.bz2" $JHALFSDIR/pkg_tarball_list | head -n1 ) ;; ;;
*) echo $(grep "^$script_name-[[:digit:]]" $JHALFSDIR/pkg_tarball_list | head -n1 ) ;; linux-headers)
if [ "${PROGNAME}" = "lfs" ]; then
# Uses kernel headers directly
echo $(grep "^linux-[[:digit:]]" $JHALFSDIR/pkg_tarball_list | head -n1 )
else
# CLFS/CLFS use massaged headers package
echo $(grep "^linux-headers-[[:digit:]]" $JHALFSDIR/pkg_tarball_list | head -n1 )
fi
;;
*) echo $(grep "^$script_name-[[:digit:]]" $JHALFSDIR/pkg_tarball_list | head -n1 )
;;
esac esac
} }
@ -410,24 +420,21 @@ clean_builddir() { #
#----------------------------# #----------------------------#
# Test if the clean must be done. # Test if the clean must be done.
if [ "${CLEAN}" = "y" ]; then if [ "${CLEAN}" = "y" ]; then
# Test to make sure we're running the clean as root
if [ "$UID" != "0" ] ; then
echo "You must be logged in as root to clean the build directory."
exit 1
fi
# Test to make sure that the build directory was populated by jhalfs # Test to make sure that the build directory was populated by jhalfs
if [ ! -d $JHALFSDIR ] || [ ! -d $BUILDDIR/sources ] ; then if [ ! -d $JHALFSDIR ] || [ ! -d $BUILDDIR/sources ] ; then
echo "Looks like $BUILDDIR was not populated by a previous jhalfs-X run." echo "Looks like $BUILDDIR was not populated by a previous jhalfs-X run."
exit 1 exit 1
else else
# Clean the build directory # Clean the build directory
echo -ne "Cleaning $BUILDDIR...\n" echo -n "Cleaning $BUILDDIR ..."
rm -rf $BUILDDIR/{bin,boot,dev,etc,home,lib,media,mnt,opt,proc,root,sbin,srv,sys,tmp,tools,cross-tools,usr,var} sudo rm -rf $BUILDDIR/{bin,boot,dev,etc,home,lib,media,mnt,opt,proc,root,sbin,srv,sys,tmp,tools,cross-tools,usr,var}
echo -ne "Cleaning $JHALFSDIR...\n" echo "done"
rm -rf $JHALFSDIR/{0*,1*,envars,sources-dir,*commands,*logs,Makefile,*.xsl,makefile-functions,pkg_tarball_list,*.config,*.sh} echo -n "Cleaning $JHALFSDIR ..."
echo -ne "Cleaning remainig extracted sources in $BUILDDIR/sources...\n" sudo rm -rf $JHALFSDIR
rm -rf `find $BUILDDIR/sources/* -maxdepth 0 -type d` echo "done"
echo -ne "done\n" echo -n "Cleaning remainig extracted sources in $BUILDDIR/sources ..."
sudo rm -rf `find $BUILDDIR/sources/* -maxdepth 0 -type d`
echo "done"
fi fi
fi fi
} }
@ -813,6 +820,7 @@ add_blfs_deps_urls() { # No easy way to extract it.
if [[ "${DEP_TIDY}" = "y" ]] ; then if [[ "${DEP_TIDY}" = "y" ]] ; then
echo "${TIDY_URL} ${BLFS_SERVER}tidy/${TIDY_PKG} ${TIDY_MD5}" >> urls.lst echo "${TIDY_URL} ${BLFS_SERVER}tidy/${TIDY_PKG} ${TIDY_MD5}" >> urls.lst
echo "${TIDY_PATCH_URL} ${BLFS_SERVER}tidy/${TIDY_PATCH} ${TIDY_PATCH_MD5}" >> urls.lst echo "${TIDY_PATCH_URL} ${BLFS_SERVER}tidy/${TIDY_PATCH} ${TIDY_PATCH_MD5}" >> urls.lst
echo "${TIDY_DOCS_URL} ${BLFS_SERVER}tidy/${TIDY_DOCS} ${TIDY_DOCS_MD5}" >> urls.lst
fi fi
if [[ "${DEP_UNZIP}" = "y" ]] ; then if [[ "${DEP_UNZIP}" = "y" ]] ; then

View file

@ -83,7 +83,7 @@ check_prerequisites() { #
check_version "3.0" "$(gawk --version | head -n1 | cut -d" " -f3)" "GAWK" check_version "3.0" "$(gawk --version | head -n1 | cut -d" " -f3)" "GAWK"
check_version "2.5" "$(grep --version | head -n1 | cut -d" " -f4)" "GREP" check_version "2.5" "$(grep --version | head -n1 | cut -d" " -f4)" "GREP"
check_version "1.2.4" "$(gzip --version 2>&1 | head -n1 | cut -d" " -f2)" "GZIP" check_version "1.2.4" "$(gzip --version 2>&1 | head -n1 | cut -d" " -f2)" "GZIP"
check_version "3.79.1" "$(make --version | head -n1 | cut -d " " -f3)" "MAKE" check_version "3.79.1" "$(make --version | head -n1 | cut -d " " -f3 | cut -c1-4)" "MAKE"
check_version "2.5.4" "$(patch --version | head -n1 | cut -d" " -f2)" "PATCH" check_version "2.5.4" "$(patch --version | head -n1 | cut -d" " -f2)" "PATCH"
check_version "3.0.2" "$(sed --version | head -n1 | cut -d" " -f4)" "SED" check_version "3.0.2" "$(sed --version | head -n1 | cut -d" " -f4)" "SED"
else else

View file

@ -17,7 +17,7 @@ REVERSE = ""
define echo_PHASE define echo_PHASE
@clear @clear
@echo $(BOLD)-------------------------------------------------------------------------------- @echo $(BOLD)--------------------------------------------------------------------------------
@echo Executing $(BLUE)$(1)$(WHITE) scripts @echo -e \\t\\tExecuting $(BLUE)$(1)$(WHITE) scripts
@echo $(BOLD)-------------------------------------------------------------------------------- @echo $(BOLD)--------------------------------------------------------------------------------
#echo $(WHITE) #echo $(WHITE)
endef endef

25
jhalfs
View file

@ -90,10 +90,6 @@ source configuration
[[ $? > 0 ]] && echo "file:configuration did not load.." && exit 1 [[ $? > 0 ]] && echo "file:configuration did not load.." && exit 1
[[ $VERBOSITY > 0 ]] && echo "OK" [[ $VERBOSITY > 0 ]] && echo "OK"
#--- Envars not sourced from configuration
declare -r SVN="svn://svn.linuxfromscratch.org"
declare -r LOG=000-masterscript.log
# These are boolean vars generated from Config.in. # These are boolean vars generated from Config.in.
# ISSUE: If a boolean parameter is not set <true> that # ISSUE: If a boolean parameter is not set <true> that
# variable is not defined by the menu app. This can # variable is not defined by the menu app. This can
@ -130,6 +126,10 @@ case $BRANCH_ID in
LFSVRS=${BRANCH_ID} LFSVRS=${BRANCH_ID}
TREE=branches/${BRANCH_ID#branch-}/BOOK TREE=branches/${BRANCH_ID#branch-}/BOOK
;; ;;
2.4-branch )
LFSVRS=${BRANCH_ID}
TREE=branches/2.4-branch
;;
* ) * )
case $PROGNAME in case $PROGNAME in
lfs | hlfs ) lfs | hlfs )
@ -177,6 +177,10 @@ if [[ "${BLFS_TOOL}" = "y" ]] ; then
TIDY_PATCH="tidy-051026-prevent_PRE_newlines-1.patch" TIDY_PATCH="tidy-051026-prevent_PRE_newlines-1.patch"
TIDY_PATCH_URL="http://www.linuxfromscratch.org/patches/blfs/svn/${TIDY_PATCH}" TIDY_PATCH_URL="http://www.linuxfromscratch.org/patches/blfs/svn/${TIDY_PATCH}"
TIDY_PATCH_MD5="82f67f7af58fc2c945b3410ae655cc1a" TIDY_PATCH_MD5="82f67f7af58fc2c945b3410ae655cc1a"
# tidy docs
TIDY_DOCS="tidy_docs_051020.tgz"
TIDY_DOCS_URL="http://tidy.sourceforge.net/docs/${TIDY_DOCS}"
TIDY_DOCS_MD5="86de2f198e57399c063d2567b2a25628"
# unzip # unzip
UNZIP_PKG="unzip552.tar.gz" UNZIP_PKG="unzip552.tar.gz"
UNZIP_URL="ftp://ftp.info-zip.org/pub/infozip/src/${UNZIP_PKG}" UNZIP_URL="ftp://ftp.info-zip.org/pub/infozip/src/${UNZIP_PKG}"
@ -223,6 +227,15 @@ if [[ "${BLFS_TOOL}" = "y" ]] ; then
GPM_PATCH_2_MD5="bf6cbefe20c6f15b587f19ebc1c8a37a" GPM_PATCH_2_MD5="bf6cbefe20c6f15b587f19ebc1c8a37a"
fi fi
#--- Envars not sourced from configuration
case $PROGNAME in
clfs* ) declare -r SVN="http://svn.cross-lfs.org/svn/repos" ;;
* ) declare -r SVN="svn://svn.linuxfromscratch.org" ;;
esac
declare -r LOG=000-masterscript.log
# Needed to can fetch BLFS book sources when building CLFS
declare -r SVN_2="svn://svn.linuxfromscratch.org"
# Set true internal variables # Set true internal variables
COMMON_DIR="common" COMMON_DIR="common"
PACKAGE_DIR=$(echo $PROGNAME | tr [a-z] [A-Z]) PACKAGE_DIR=$(echo $PROGNAME | tr [a-z] [A-Z])
@ -268,7 +281,7 @@ echo "${SD_BORDER}${nl_}"
echo -n "Are you happy with these settings? yes/no (no): " echo -n "Are you happy with these settings? yes/no (no): "
read ANSWER read ANSWER
if [ x$ANSWER != "xyes" ] ; then if [ x$ANSWER != "xyes" ] ; then
echo "${nl_}Fix the configuration options and rerun the script.${nl_}" echo "${nl_}Rerun make to fix the configuration options.${nl_}"
exit 1 exit 1
fi fi
echo "${nl_}${SD_BORDER}${nl_}" echo "${nl_}${SD_BORDER}${nl_}"
@ -383,7 +396,7 @@ if [[ "${BLFS_TOOL}" = "y" ]] ; then
echo -n "Downloading the BLFS document, $BLFS_BRANCH_ID version... " echo -n "Downloading the BLFS document, $BLFS_BRANCH_ID version... "
if [[ ! -d ${BUILDDIR}${BLFS_ROOT}/${BLFS_XML} ]] ; then if [[ ! -d ${BUILDDIR}${BLFS_ROOT}/${BLFS_XML} ]] ; then
mkdir -p ${BUILDDIR}${BLFS_ROOT}/${BLFS_XML} mkdir -p ${BUILDDIR}${BLFS_ROOT}/${BLFS_XML}
svn co $SVN/BLFS/$BLFS_TREE ${BUILDDIR}${BLFS_ROOT}/${BLFS_XML} >>$LOGDIR/$LOG 2>&1 svn co $SVN_2/BLFS/$BLFS_TREE ${BUILDDIR}${BLFS_ROOT}/${BLFS_XML} >>$LOGDIR/$LOG 2>&1
else else
pushd ${BUILDDIR}${BLFS_ROOT}/${BLFS_XML} 1> /dev/null pushd ${BUILDDIR}${BLFS_ROOT}/${BLFS_XML} 1> /dev/null
svn up >>$LOGDIR/$LOG 2>&1 svn up >>$LOGDIR/$LOG 2>&1