Merge trunk r3750-3760

This commit is contained in:
Pierre Labastie 2013-11-17 22:20:07 +00:00
parent 84a651cade
commit 5130b3ac7d
11 changed files with 122 additions and 175 deletions

View file

@ -479,9 +479,12 @@ popd</xsl:text>
<xsl:if test="(contains(string(),'test') or
contains(string(),'check'))">
<xsl:text>#</xsl:text>
<xsl:value-of select="substring-before(string(),'make')"/>
<xsl:text>make -k</xsl:text>
<xsl:value-of select="substring-after(string(),'make')"/>
<xsl:value-of select="substring-before(string(),'make ')"/>
<xsl:text>make </xsl:text>
<xsl:if test="not(contains(string(),'-k'))">
<xsl:text>-k </xsl:text>
</xsl:if>
<xsl:value-of select="substring-after(string(),'make ')"/>
<xsl:text> || true&#xA;</xsl:text>
</xsl:if>
</xsl:template>
@ -562,15 +565,15 @@ popd</xsl:text>
<xsl:template name="output-root">
<xsl:param name="out-string" select="''"/>
<xsl:choose>
<xsl:when test="contains($out-string,'make')">
<xsl:when test="contains($out-string,'make ')">
<xsl:call-template name="output-root">
<xsl:with-param name="out-string"
select="substring-before($out-string,'make')"/>
select="substring-before($out-string,'make ')"/>
</xsl:call-template>
<xsl:text>make -j1</xsl:text>
<xsl:text>make -j1 </xsl:text>
<xsl:call-template name="output-root">
<xsl:with-param name="out-string"
select="substring-after($out-string,'make')"/>
select="substring-after($out-string,'make ')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($out-string,'$') and $sudo = 'y'">

132
Config.in
View file

@ -21,9 +21,6 @@ menu "--- BOOK Settings"
# config BOOK_HLFS
# bool "Hardened Linux From Scratch"
# config BOOK_BLFS
# bool "Beyond Linux From Scratch"
endchoice
config PROGNAME
@ -33,12 +30,10 @@ menu "--- BOOK Settings"
default "clfs2" if BOOK_CLFS2
default "clfs3" if BOOK_CLFS3
default "hlfs" if BOOK_HLFS
# default "blfs" if BOOK_BLFS
config RUN_ME
string
default "./jhalfs run"# if !BOOK_BLFS
# default "./blfs-tool" if BOOK_BLFS
default "./jhalfs run"
#--- End BOOK/script
#--- Book version
@ -60,7 +55,6 @@ menu "--- BOOK Settings"
config WORKING_COPY
bool "Working Copy"
# depends on !BOOK_BLFS
help
#-- A local working copy
@ -259,7 +253,7 @@ menu "--- BOOK Settings"
default "mips64-unknown-linux-uclibc" if BOOK_CLFS3 && PROC_mips && DATA_64
default "powerpc-unknown-linux-gnu" if ARCH_PPC && DATA_32
default "powerpc64-unknown-linux-gnu" if ARCH_PPC && (DATA_MULTI || DATA-64)
default "powerpc64-unknown-linux-gnu" if ARCH_PPC && (DATA_MULTI || DATA_64)
default "sparc-unknown-linux-gnu" if ARCH_SPARC && DATA_32
default "sparc64-unknown-linux-gnu" if ARCH_SPARC && (DATA_64 || DATA_MULTI)
@ -428,79 +422,10 @@ menu "--- BOOK Settings"
default "2.6" if KERNEL_26
default "2.4" if KERNEL_24
# menu "HLFS Additional Features"
# depends on BOOK_HLFS
#
# config SET_SSP
# bool "Stack-smashing protector"
# default y
#
# config SET_ASLR
# bool "Address-space layout randomization"
# default y
#
# config SET_PAX
# bool "PaX-aware ELF executables and kernel"
# default y
#
# config SET_HARDENED_TMP
# bool "Hardened temporary files creation"
# default y
#
# config SET_WARNINGS
# bool "Additional warnings"
# default y
#
# config SET_MISC
# bool "Miscellaneous features"
# default y
#
# config SET_BLOWFISH
# bool "Blowfish passwords"
# default y
# endmenu
config SSP
# depends on SET_SSP
string
default ",ssp,"
config ASLR
# depends on SET_ASLR
string
default ",aslr,"
config PAX
# depends on SET_PAX
string
default ",pax,"
config HARDENED_TMP
# depends on SET_HARDENED_TMP
string
default ",hardened_tmp,"
config WARNINGS
# depends on SET_WARNINGS
string
default ",warnings,"
config MISC
# depends on SET_MISC
string
default ",misc,"
config BLOWFISH
# depends on SET_BLOWFISH
string
default ",blowfish,"
#--- End HLFS specific params
#--- Custom Tools support
config CUSTOM_TOOLS
bool "Add custom tools support"
default n
# depends on !BOOK_BLFS
help
#--- Activating this option additional packages you create
# will be installed after finished the xLFS system build.
@ -511,7 +436,6 @@ menu "--- BOOK Settings"
config BLFS_TOOL
bool "Add blfs-tool support"
default n
# depends on !BOOK_BLFS && !BOOK_CLFS3
depends on !BOOK_CLFS3
help
#--- Activating this option will install additional
@ -541,12 +465,24 @@ menu "--- BOOK Settings"
help
#-- Current development version as in trunk
config BLFS_WORKING_COPY
bool "BLFS working copy"
help
#-- A local working copy of the BLFS book.
config BLFS_BRANCH
bool "BLFS Branch or stable book"
help
#-- A supported SVN branch or stable book release
endchoice
config BLFS_WC_LOCATION
string "Location of the local BLFS working copy (mandatory)"
default "**EDIT ME**"
depends on BLFS_WORKING_COPY
help
#-- Full path to the BLFS book working copy"
config BLFS_BRANCH_ID
string "BLFS Book Version (mandatory)"
default "**EDIT ME**"
@ -628,9 +564,7 @@ menu "--- BOOK Settings"
#--- BLFS specific params
config BLFS_ROOT
string "Directory root"
# default "$HOME/blfs_root" if BOOK_BLFS
default "/blfs_root" if BLFS_TOOL
# depends on BOOK_BLFS || BLFS_TOOL
default "/blfs_root"
depends on BLFS_TOOL
help
#-- Full path to the directory where all required
@ -639,7 +573,6 @@ menu "--- BOOK Settings"
config BLFS_XML
string "BLFS sources directory"
default "blfs-xml"
# depends on BOOK_BLFS || BLFS_TOOL
depends BLFS_TOOL
help
#-- The directory name under $BLFS_ROOT where the BLFS
@ -648,7 +581,6 @@ menu "--- BOOK Settings"
config TRACKING_DIR
string "Installed packages database directory"
default "/var/lib/jhalfs/BLFS"
# depends on BOOK_BLFS || BLFS_TOOL || CUSTOM_TOOLS
depends on BLFS_TOOL || CUSTOM_TOOLS
help
#-- Full path to the directory where the database of
@ -670,7 +602,6 @@ menu "--- BOOK Settings"
endmenu
menu "--- General Settings"
# depends on !BOOK_BLFS
#--- Set User Account
config CONFIG_USER
@ -816,7 +747,6 @@ menu "--- General Settings"
endmenu
menu "--- Build Settings"
# depends on !BOOK_BLFS
#--- Test Suites
config CONFIG_TESTS
@ -1021,7 +951,6 @@ menu "--- Build Settings"
endmenu
menu "--- Advanced Features"
# depends on !BOOK_BLFS
config REPORT
bool "Create SBU and disk usage report"
@ -1071,23 +1000,29 @@ menu "--- Advanced Features"
#--- Optimizations
if !BOOK_CLFS2 && !BOOK_CLFS3
config CONFIG_OPTIMIZE
bool "Use optimization (see help)"
bool "Optimization and parallelization"
default n
help
#-- Actual optimization flags MUST be defined in ./optimize/*
# files before activating this option.
# Opens a menu for various optimization settings:
# Actual optimization flags MUST be defined in ./optimize/*
# before activating this option.
#
# WARNING: The use of build optimizations may be dangerous.
# You should know what you are doing and be sure that the
# optimization settings listed below are what you want.
# It there are build issues or the system doesn't work as
# expected, please rebuild without optimizations before
# asking for support.
# WARNING: The use of build optimizations may lead to build issues.
# If the system doesn't work as expected, please rebuild
# without optimizations before asking for support.
menu "Optimization settings"
depends on CONFIG_OPTIMIZE
config N_PARALLEL
int "Number of parallel `make' jobs"
default 1
help
#-- The usual recommandation is (number of CPU cores)+1
# Do not set for meaningful SBU calculations.
choice
prompt "Optimization level "
default OPT_1
depends CONFIG_OPTIMIZE
help
#-- Optimization values are set in optimize/* files
@ -1100,7 +1035,7 @@ if !BOOK_CLFS2 && !BOOK_CLFS3
config OPT_3
bool "Cross tools (only MAKEFLAGS), temp tools and final system" if BOOK_CLFS
endchoice
endmenu
config OPTIMIZE
int
default "0" if !CONFIG_OPTIMIZE
@ -1111,7 +1046,7 @@ endif
#--- End Optimizations
#-- Internal Settings
menu "--- Internal Settings (WARNING: for jhalfs developers only)"
menu "Internal Settings (WARNING: for jhalfs developers only)"
config SCRIPT_ROOT
string "Scripts root"
@ -1174,7 +1109,6 @@ endmenu
config REBUILD_MAKEFILE
bool "Rebuild the Makefile (see help)"
default n
# depends on !BOOK_BLFS
help
#-- Rebuild the Makefile
#

View file

@ -464,14 +464,6 @@ ck_UID:
exit 1; \\
fi
ck_LFS:
@if [ \`echo \$(LFS)\`x = "x" ]; then \\
echo "--------------------------------------------------"; \\
echo "Enviroment variable LFS must be set"; \\
echo "--------------------------------------------------"; \\
exit 1; \
fi
mk_SETUP:
@\$(call echo_SU_request)
@sudo make BREAKPOINT=\$(BREAKPOINT) SETUP
@ -512,35 +504,35 @@ mk_CUSTOM_TOOLS: mk_BLFS_TOOL
fi;
@touch \$@
devices: ck_LFS ck_UID
sudo mount -v --bind /dev \$(LFS)/dev
sudo mount -vt devpts devpts \$(LFS)/dev/pts
sudo mount -vt proc proc \$(LFS)/proc
sudo mount -vt sysfs sysfs \$(LFS)/sys
if [ -h \$(LFS)/dev/shm ]; then \\
link=\$\$(readlink \$(LFS)/dev/shm); \\
sudo mkdir -p \$(LFS)/\$\$link; \\
sudo mount -vt tmpfs shm \$(LFS)/\$\$link; \\
devices: ck_UID
sudo mount -v --bind /dev \$(MOUNT_PT)/dev
sudo mount -vt devpts devpts \$(MOUNT_PT)/dev/pts
sudo mount -vt proc proc \$(MOUNT_PT)/proc
sudo mount -vt sysfs sysfs \$(MOUNT_PT)/sys
if [ -h \$(MOUNT_PT)/dev/shm ]; then \\
link=\$\$(readlink \$(MOUNT_PT)/dev/shm); \\
sudo mkdir -p \$(MOUNT_PT)/\$\$link; \\
sudo mount -vt tmpfs shm \$(MOUNT_PT)/\$\$link; \\
unset link; \\
else \\
sudo mount -vt tmpfs shm \$(LFS)/dev/shm; \\
sudo mount -vt tmpfs shm \$(MOUNT_PT)/dev/shm; \\
fi
teardown: ck_LFS
sudo umount -v \$(LFS)/sys
sudo umount -v \$(LFS)/proc
sudo umount -v \$(LFS)/dev/pts
if [ -h \$(LFS)/dev/shm ]; then \\
link=\$\$(readlink \$(LFS)/dev/shm); \\
sudo umount -v \$(LFS)/\$\$link; \\
teardown:
sudo umount -v \$(MOUNT_PT)/sys
sudo umount -v \$(MOUNT_PT)/proc
sudo umount -v \$(MOUNT_PT)/dev/pts
if [ -h \$(MOUNT_PT)/dev/shm ]; then \\
link=\$\$(readlink \$(MOUNT_PT)/dev/shm); \\
sudo umount -v \$(MOUNT_PT)/\$\$link; \\
unset link; \\
else \\
sudo umount -v \$(LFS)/dev/shm; \\
sudo umount -v \$(MOUNT_PT)/dev/shm; \\
fi
sudo umount -v \$(LFS)/dev
sudo umount -v \$(MOUNT_PT)/dev
chroot: devices
sudo /usr/sbin/chroot \$(LFS) /tools/bin/env -i \\
sudo /usr/sbin/chroot \$(MOUNT_PT) /tools/bin/env -i \\
HOME=/root TERM=\$(TERM) PS1='\\u:\\w\\\$\$ ' \\
PATH=/bin:/usr/bin:/sbin:/usr/sbin \\
/tools/bin/bash --login

11
TODO
View file

@ -5,16 +5,17 @@
MASTER SCRIPT
-------------
- Nothing for now.
- Add a way to choose the network configuration (ip, gateway, etc).
- [CLFS] Add a switch to choose between static or DHCP network configuration
for CLFS.
xLFS MODULES
------------
- To develop a new "restart" Makefile target code to allow resuming
a stopped build after a host reboot, if possible.
- Eliminate the use of and the need for the LFS variable for "devices",
"chroot" and "teardown" targets
- Add a way to choose the network configuration (ip, gateway, etc).
- [CLFS] Add a switch to choose between static or DHCP network configuration
for CLFS.
BLFS MODULE (See BLFS/TODO)

View file

@ -26,9 +26,11 @@ get_sources() { # Download file, write name to MISSING_FILES.DMP if
# Housekeeping
[[ ! -d $BUILDDIR/sources ]] && mkdir $BUILDDIR/sources
cd $BUILDDIR/sources
[[ -f MD5SUMS ]] && rm MD5SUMS
[[ -f MISSING_FILES.DMP ]] && rm MISSING_FILES.DMP
[[ -f urls.lst ]] && rm urls.lst
# If using CLFS, /sources is writable by all, but with sticky bit,
# and user does not hold MD5SUMS nor the other files, so use sudo
[[ -f MD5SUMS ]] && sudo rm MD5SUMS
[[ -f MISSING_FILES.DMP ]] && sudo rm MISSING_FILES.DMP
[[ -f urls.lst ]] && sudo rm urls.lst
# Generate URLs file
create_urls

View file

@ -26,7 +26,14 @@ sed -i s@tracking-dir@$TRACKING_DIR@ \
sed -i s@trunk/BOOK@$BLFS_TREE@ \
${BUILDDIR}${BLFS_ROOT}/Makefile
# Downloads the book, initialize the tracking file and the package database
# If we have a working copy, copy it:
if [[ "$BLFS_WORKING_COPY" = "y" ]]; then
# -r: recursive; -u: only if newer; -T: otherwise, would copy to a subdirectory
# of blfs-xml, if blfs-xml already exists
cp -ruT $BLFS_WC_LOCATION ${BUILDDIR}${BLFS_ROOT}/blfs-xml
fi
# Downloads the book if necessary, initialize the tracking file and the
# package database.
# sudo is needed if $BUILDDIR/var/lib is owned by root and /var/lib/jhalfs
# has to be created
sudo make -j1 -C $BUILDDIR$BLFS_ROOT TRACKING_DIR=$BUILDDIR$TRACKING_DIR \

View file

@ -53,13 +53,13 @@ inline_doc
local -r clfs_PARAM_LIST="$CLFS_book $GENERAL_common $CLFS_build $ADVANCED_chroot $ADVANCED_common"
local -r clfs2_PARAM_LIST="$CLFS2_book $GENERAL_common $CLFS2_build $ADVANCED_common"
local -r clfs3_PARAM_LIST="$CLFS3_book $GENERAL_common $CLFS3_build $ADVANCED_common"
local -r blfs_PARAM_LIST="BRANCH_ID BLFS_ROOT BLFS_XML TRACKING_DIR"
# local -r blfs_PARAM_LIST="BRANCH_ID BLFS_ROOT BLFS_XML TRACKING_DIR"
# Additional variables (add DEP_DBXSL when required again)
local -r blfs_tool_PARAM_LIST="BLFS_BRANCH_ID BLFS_ROOT BLFS_XML TRACKING_DIR \
DEP_LIBXML DEP_LIBXSLT DEP_TIDY \
DEP_DBXML DEP_LYNX DEP_SUDO DEP_WGET \
DEP_SVN DEP_GPM DEP_OPENSSL DEP_PYTHON"
# Additional variables
local -r blfs_tool_PARAM_LIST="\
BLFS_TREE BLFS_BRANCH_ID BLFS_ROOT BLFS_XML TRACKING_DIR \
DEP_LIBXML DEP_LIBXSLT DEP_TIDY DEP_DBXML DEP_LYNX DEP_SUDO DEP_WGET \
DEP_SVN DEP_GPM DEP_OPENSSL DEP_PYTHON"
local -r custom_tool_PARAM_LIST="TRACKING_DIR"
# Internal variables
@ -184,10 +184,6 @@ inline_doc
echo
;;
# BLFS params.
BRANCH_ID | BLFS_ROOT | BLFS_XML ) echo "`eval echo $PARAM_VALS`" ;;
TRACKING_DIR ) validate_dir -z -d -w ;;
# Display non-validated envars found in ${PROGNAME}_PARAM_LIST
* ) echo -e "`eval echo $PARAM_VALS`" ;;

43
jhalfs
View file

@ -200,7 +200,6 @@ BOOK=${BOOK:=$JHALFSDIR/$PROGNAME-$LFSVRS}
#--- Envars not sourced from configuration
case $PROGNAME in
# TODO: clfs is now on git
clfs ) declare -r GIT="git://git.cross-lfs.org/cross-lfs" ;;
clfs2 ) declare -r GIT="git://git.cross-lfs.org/clfs-sysroot" ;;
clfs3 ) declare -r GIT="git://git.cross-lfs.org/clfs-embedded" ;;
@ -251,15 +250,35 @@ source $COMMON_DIR/libs/func_custom_pkgs
# blfs-tool envars
BLFS_TOOL=${BLFS_TOOL:-n}
if [[ "${BLFS_TOOL}" = "y" ]] ; then
BLFS_BRANCH_ID=${BLFS_BRANCH_ID:=development}
case $BLFS_BRANCH_ID in
development ) BLFS_TREE=trunk/BOOK ;;
*EDIT* ) echo " You forgot to set the BLFS branch or stable book version."
echo " Please rerun make and fix the configuration."
exit 2 ;;
branch-* ) BLFS_TREE=branches/${BLFS_BRANCH_ID#branch-} ;;
* ) BLFS_TREE=tags/${BLFS_BRANCH_ID} ;;
esac
BLFS_SVN=${BLFS_SVN:-n}
BLFS_WORKING_COPY=${BLFS_WORKING_COPY:-n}
BLFS_BRANCH=${BLFS_BRANCH:-n}
if [[ "${BLFS_SVN}" = "y" ]]; then
BLFS_BRANCH_ID=development
BLFS_TREE=trunk/BOOK
elif [[ "${BLFS_WORKING_COPY}" = "y" ]]; then
[[ -d "$BLFS_WC_LOCATION" ]] &&
[[ -d "$BLFS_WC_LOCATION/postlfs" ]] || {
echo " BLFS tools: This is not a working copy: $BLFS_WC_LOCATION."
echo " Please rerun make and fix the configuration."
exit 2
}
BLFS_TREE=$(cd $BLFS_WC_LOCATION; svn info | grep URL | sed 's@.*BLFS/@@')
BLFS_BRANCH_ID=$(echo $BLFS_TREE | sed -e 's@trunk/BOOK@development@' \
-e 's@branches/@branch-@' \
-e 's@tags/@@' \
-e 's@/BOOK@@')
elif [[ "${BLFS_BRANCH}" = "y" ]] ; then
case $BLFS_BRANCH_ID in
*EDIT* ) echo " You forgot to set the BLFS branch or stable book version."
echo " Please rerun make and fix the configuration."
exit 2 ;;
branch-systemd ) BLFS_TREE=branches/systemd ;;
branch-* ) BLFS_TREE=branches/${BLFS_BRANCH_ID#branch-}/BOOK ;;
6.2* | 7.4* ) BLFS_TREE=tags/${BLFS_BRANCH_ID} ;;
* ) BLFS_TREE=tags/${BLFS_BRANCH_ID}/BOOK ;;
esac
fi
[[ $VERBOSITY > 0 ]] && echo -n "Loading blfs tools installation function..."
source $COMMON_DIR/libs/func_install_blfs
[[ $? > 0 ]] && echo "function module did not load.." && exit 1
@ -277,7 +296,7 @@ echo -n "Are you happy with these settings? yes/no (no): "
read ANSWER
if [ x$ANSWER != "xyes" ] ; then
echo "${nl_}Rerun make to fix the configuration options.${nl_}"
exit 1
exit
fi
echo "${nl_}${SD_BORDER}${nl_}"
@ -302,6 +321,8 @@ if [[ "$OPTIMIZE" != "0" ]]; then
source optimize/opt_config
[[ $? > 0 ]] && echo " optimize/opt_config did not load.." && exit
[[ $VERBOSITY > 0 ]] && echo "OK"
# The number of parallel jobs is taken from configuration now
MAKEFLAGS="-j${N_PARALLEL}"
# Validate optimize settings, if required
validate_opt_settings
fi

View file

@ -7,15 +7,8 @@
#$Id$
#
#--- Extra flags passed to the packages make commands
# "unset" will cause the variable to be not set
# instead of just set to null.
MAKEFLAGS="-j3"
#--- List of packages that have issues with jobs control.
#--- List of packages that have issues with parallelization.
# This list may be different for you.
# If your MAKEFLAGS don't contains a -jX option, you can set
# a empty list here.
BLACK_LIST="attr autoconf coreutils dejagnu gettext gperf groff man-db vim"
# Rationale for attr, coreutils, gperf: the tests do not pass with -jX
# CLFS packages

View file

@ -1,5 +1,3 @@
binutils noOpt
gcc noOpt
glibc noOpt
grub noOpt
zlib defOpt_fPIC

View file

@ -38,7 +38,7 @@ validate_opt_settings() { # Show optimize setting and wait user agreeme
read ANSWER
if [ x$ANSWER != "xyes" ] ; then
echo "${nl_}Fix the optimization options and rerun the script.${nl_}"
exit 1
exit
fi
echo "${nl_}${SD_BORDER}${nl_}"
}