Merge new_feature branch r3884 to3886:

- Adapt BLFS/envars.conf to modern BLFS books
- Fix try order for downloading BLFS packages
- Fixes to use the XORG Legacy page in BLFS
This commit is contained in:
Pierre Labastie 2017-02-27 14:09:03 +00:00
parent 9575278319
commit 342c862481
4 changed files with 97 additions and 119 deletions

View file

@ -10,121 +10,39 @@
#======== Common envars ========== #======== Common envars ==========
#--- Set a well-known working locale when building software #--- The sources directory.
export LC_ALL=C # This directory contains sub directories (one for each package), where
# packages are stored, unpacked, and compiled.
export SRC_DIR=/sources
#--- The local repository for packages/file #--- The local repository for packages/file
# Any missing file will be downloaded and archived here, # Any missing file will be downloaded and archived here,
# if the user has the right priviledges. # if the user has the right priviledges. Can be the same as SRC_DIR
export SRC_ARCHIVE=/sources export SRC_ARCHIVE=/sources
#--- Server used if the file isn't found in SRC_ARCHIVE. #--- Set a well-known working locale when building software
# As a last resort, the file will dowloaded from upstream, if possible. # Note that an UTF-8 locale may be needed for some packages,
# but normally it is set in the package instructions.
# Furthermore, LANG may be set in /etc/profile, which is
# sourced at the end of this file.
export LC_ALL=C
#--- Server used if the file isn't found in SRC_ARCHIVE or SRC_DIR,
# and cannot be downloaded from upstream.
# #
# The server path MUST be set as listed in # The server path MUST be set as listed in
# http://www.linuxfromscratch.org/blfs/download.html # http://www.linuxfromscratch.org/blfs/download.html.
export FTP_SERVER=ftp://anduin.linuxfromscratch.org/BLFS/ # Note that despite the name of the variable, it can be an http url.
export FTP_SERVER=http://ftp.osuosl.org/pub/blfs/
### Currently not used in scripts ###
# Use a server close to you for Xorg (see http://wiki.x.org/wiki/Mirrors) # Use a server close to you for Xorg (see http://wiki.x.org/wiki/Mirrors)
export FTP_X_SERVER=ftp://mirror.cict.fr/x.org/ # export FTP_X_SERVER=ftp://mirror.cict.fr/x.org/
#--- The sources directory.
# Full path to the top level directory where packages will be stored,
# unpacked, and compiled.
export SRC_DIR=/sources
#======== Xorg7 envars ===========
#--- Installation prefix
export XORG_PREFIX=/usr
#--- Configure switches
export XORG_CONFIG="--prefix=$XORG_PREFIX --sysconfdir=/etc \
--localstatedir=/var --disable-static"
#======== ABOUT GNOME envars =====
# Refer to `Chapter 30. Right now, the book hard codes --prefix=/usr
# and does not make use of the variables below. If you need another prefix,
# You'll have to modifiy the prefix in the book source and use the variables
# below. But this is not supported in this tool.
#======== LEGACY GNOME envars ====
# We use envars.conf instead of /etc/profile.d. But if you
# install into a different prefix, you'll need to update ld.so.conf and
# man-db.conf, too.
#--- Installation prefix
# export GNOME_PREFIX=/usr
# export GNOME_SYSCONFDIR=/etc/gnome/3.2.2
# export XDG_CONFIG_DIRS=$GNOME_SYSCONFDIR/xdg
# export XDG_DATA_DIRS=/usr/share:/usr/local/share
#--- If you want to install GNOME on a non standard prefix, uncomment
# the next export lines and edit it if needed.
# See also the GNOME Pre-installation Configuration HTML page for
# aditional required commands.
#export PATH=$PATH:$GNOME_PREFIX/bin
#export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$GNOME_PREFIX/lib/pkgconfig
#export GNOME_LIBCONFIG_PATH=/usr/lib:$GNOME_PREFIX/lib
#======== KDE envars =============
# Refer to `Chapter 27. Introduction->KDE Pre-installation Configuration'
# for rationale. We use envars.conf instead of /etc/profile.d. But if you
# install into a different prefix, you'll need to update ld.so.conf and
# man-db.conf, and to create and populate the directories $KDE_PREFIX/share
# and /etc/dbus-1, as instructed.
#--- Installation prefix
export KDE_PREFIX=/usr
#--- If you want to install KDE on a non standard prefix, uncomment
# the next lines and edit them as needed.
#export KDE_PREFIX=/opt/kde
#export KDEDIR=$KDE_PREFIX
#PATH=$PATH:$KDE_PREFIX/bin
#if [ -z PKG_CONFIG_PATH ]; then
#export PKG_CONFIG_PATH=$KDE_PREFIX/lib/pkgconfig:$KDE_PREFIX/share/pkgconfig
#else
# PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$KDE_PREFIX/lib/pkgconfig:$KDE_PREFIX/share/pkgconfig
#fi
# Note: there is a report that setting XDG_... vars for kde may break LXDE
#if [ -z XDG_DATA_DIRS ]; then
#export XDG_DATA_DIRS=$KDE_PREFIX/share
#else
# XDG_DATA_DIRS=$XDG_DATA_DIRS:$KDE_PREFIX/share
#fi
#if [ -z XDG_CONFIG_DIRS ]; then
#export XDG_CONFIG_DIRS=/etc/kde/xdg
#else
# XDG_CONFIG_DIRS=$XDG_CONFIG_DIRS:/etc/kde/xdg
#fi
#======== LXQt envars =============
# Refer to `Chapter 40. LXQt Desktop Pre-Install Instructions'
# We use envars.conf for LXQT_PREFIX, instead of /etc/profile.d. But if you
# install into a different prefix, you'll need to create the relevant
# directory, to create /etc/profiles.d/lxqt.sh, update /etc/ld.so.conf, and
# to create and populate the directories $LXQT_PREFIX/share/icons, as
# instructed.
#--- Installation prefix
export LXQT_PREFIX=/usr
#--- If you want to install LXQT on a non standard prefix, uncomment
# the next line and edit it as needed, or just use the book's
# /etc/profile.d/lxqt.sh.
# export LXQT_PREFIX=/opt/lxqt
#======== Optimizations ============= #======== Optimizations =============
# Global optimization settings can be placed here. This settings can be # Global optimization settings can be placed here. This settings can be
# overrided by settings in the packages build scripts. # overriden by settings in the packages build scripts.
# WARNING: The use of build optimizations may be dangerous. # WARNING: The use of build optimizations may be dangerous.
# You should know what you are doing and be sure that the # You should know what you are doing and be sure that the
@ -145,8 +63,23 @@ export MAKEFLAGS="-j5"
#======== Environment settings ======== #======== Environment settings ========
# Since the startup files may be changed in the course # The prefered way to setup environment variables nowadays
# of a build, ensure that environment variables are # is to set them in /etc/profile{,.d/*.sh}.
# up to date # It is recommended to source /etc/profile in this file
# since a package may add some new variables in there,
# which may be needed later in dependant packages.
if [ -r /etc/profile ]; then source /etc/profile; fi if [ -r /etc/profile ]; then source /etc/profile; fi
#======== Package management ========
# We need the functions in "packInstall.sh" when installing a package,
# if package management is requested. Note that we have no way to know
# whether package management is requested for a given build.
# Furthermore, "sudo -E" exports variables, but not functions from
# the environment, and sudo needs to be called before porg, due
# to porg limitations. So we just export the location of the file
# where the functions are defined, and we'll source it just before
# installing.
export PACK_INSTALL=/blfs_root/packInstall.sh # change as needed

View file

@ -39,7 +39,7 @@ EXCEPTIONS=$(grep 'ENTITY.*version[ ]*"[^0-9"&.].*[0-9]' ${BLFS_DIR}/packages.en
# Non-versioned packages: # Non-versioned packages:
NV_LIST="cacerts xorg-env kde-pre-install-config kf5-intro lxqt-pre-install \ NV_LIST="cacerts xorg-env kde-pre-install-config kf5-intro lxqt-pre-install \
ojdk-conf tex-path" lxqt-post-install ojdk-conf tex-path"
# Set PATH to be sure to find udevadm # Set PATH to be sure to find udevadm
SAVPATH=$PATH SAVPATH=$PATH
@ -146,7 +146,7 @@ EOF
# that the preceding package is a dependency of the following, # that the preceding package is a dependency of the following,
# except the first. # except the first.
list_cat="$(sed -n '/>cat/,/EOF</p' $file | grep -v 'cat\|EOF' | list_cat="$(sed -n '/>cat/,/EOF</p' $file | grep -v 'cat\|EOF' |
sed 's/^[^ ]*\ *\([^&]*\).*/\1/' | sed 's/-$//')" awk '{ print $NF }' | sed 's/-&.*//')"
# Rationale for the sed below: the following for breaks words at spaces (unless # Rationale for the sed below: the following for breaks words at spaces (unless
# we tweak IFS). So replace spaces with commas in lines so that only newlines # we tweak IFS). So replace spaces with commas in lines so that only newlines

View file

@ -307,6 +307,13 @@
select=".//userinput[starts-with(string(),'cat ')]"/> select=".//userinput[starts-with(string(),'cat ')]"/>
</xsl:call-template> </xsl:call-template>
</xsl:variable> </xsl:variable>
<xsl:variable name="download-dir">
<xsl:call-template name="download-dir">
<xsl:with-param name="package" select="concat(' ',$package,'-')"/>
<xsl:with-param name="cat-md5"
select=".//userinput[starts-with(string(),'cat ')]"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="install-instructions"> <xsl:variable name="install-instructions">
<xsl:call-template name="inst-instr"> <xsl:call-template name="inst-instr">
<xsl:with-param name="inst-instr" <xsl:with-param name="inst-instr"
@ -328,6 +335,7 @@
<xsl:attribute name="url"> <xsl:attribute name="url">
<xsl:value-of <xsl:value-of
select=".//para[contains(string(),'(HTTP)')]/ulink/@url"/> select=".//para[contains(string(),'(HTTP)')]/ulink/@url"/>
<xsl:value-of select="$download-dir"/>
<xsl:value-of select="$tarball"/> <xsl:value-of select="$tarball"/>
</xsl:attribute> </xsl:attribute>
</xsl:element> </xsl:element>
@ -338,6 +346,7 @@
<xsl:attribute name="url"> <xsl:attribute name="url">
<xsl:value-of <xsl:value-of
select=".//para[contains(string(),'(FTP)')]/ulink/@url"/> select=".//para[contains(string(),'(FTP)')]/ulink/@url"/>
<xsl:value-of select="$download-dir"/>
<xsl:value-of select="$tarball"/> <xsl:value-of select="$tarball"/>
</xsl:attribute> </xsl:attribute>
</xsl:element> </xsl:element>
@ -407,12 +416,46 @@ END DEBUG -->
select="substring-after($cat-md5,'&#xA;')"/> select="substring-after($cat-md5,'&#xA;')"/>
</xsl:call-template> </xsl:call-template>
</xsl:when> </xsl:when>
<xsl:when test="contains(substring-before($cat-md5,$package),' ')">
<xsl:call-template name="tarball">
<xsl:with-param name="package" select="$package"/>
<xsl:with-param name="cat-md5"
select="substring-after($cat-md5,' ')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:copy-of select="substring-after( <xsl:copy-of select="substring-after(
substring-before($cat-md5,'&#xA;'),' ')"/> substring-before($cat-md5,'&#xA;'),' ')"/>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:template> </xsl:template>
<!-- get the download dirname from the text that comes from the .md5 file -->
<xsl:template name="download-dir">
<xsl:param name="package"/>
<xsl:param name="cat-md5"/>
<xsl:choose>
<xsl:when test="not(@id='xorg7-legacy')">
<xsl:copy-of select="''"/>
</xsl:when>
<xsl:when test="contains(substring-before($cat-md5,$package),'&#xA;')">
<xsl:call-template name="download-dir">
<xsl:with-param name="package" select="$package"/>
<xsl:with-param name="cat-md5"
select="substring-after($cat-md5,'&#xA;')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains(substring-before($cat-md5,$package),' ')">
<xsl:call-template name="download-dir">
<xsl:with-param name="package" select="$package"/>
<xsl:with-param name="cat-md5"
select="substring-after($cat-md5,' ')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="substring-before($cat-md5,' ')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- same for md5sum --> <!-- same for md5sum -->
<xsl:template name="md5sum"> <xsl:template name="md5sum">
<xsl:param name="package"/> <xsl:param name="package"/>

View file

@ -215,21 +215,23 @@ cd $UNPACKDIR&#xA;
<xsl:text> $</xsl:text> <xsl:text> $</xsl:text>
<xsl:value-of select="$varname"/> <xsl:value-of select="$varname"/>
<xsl:text>&#xA; else&#xA;</xsl:text> <xsl:text>&#xA; else&#xA;</xsl:text>
<!-- The FTP_SERVER mirror --> <!-- Download from upstream http -->
<xsl:if test="string-length($httpurl) &gt; 10">
<xsl:text> wget -T 30 -t 5 </xsl:text>
<xsl:value-of select="$httpurl"/>
<xsl:text> ||&#xA;</xsl:text>
</xsl:if>
<!-- Download from upstream ftp -->
<xsl:if test="string-length($ftpurl) &gt; 10">
<xsl:text> wget -T 30 -t 5 </xsl:text>
<xsl:value-of select="$ftpurl"/>
<xsl:text> ||&#xA;</xsl:text>
</xsl:if>
<!-- The FTP_SERVER mirror as a last resort -->
<xsl:text> wget -T 30 -t 5 ${FTP_SERVER}svn/</xsl:text> <xsl:text> wget -T 30 -t 5 ${FTP_SERVER}svn/</xsl:text>
<xsl:value-of select="$first_letter"/> <xsl:value-of select="$first_letter"/>
<xsl:text>/$</xsl:text> <xsl:text>/$</xsl:text>
<xsl:value-of select="$varname"/> <xsl:value-of select="$varname"/>
<xsl:if test="string-length($httpurl) &gt; 10">
<xsl:text> ||
wget -T 30 -t 5 </xsl:text>
<xsl:value-of select="$httpurl"/>
</xsl:if>
<xsl:if test="string-length($ftpurl) &gt; 10">
<xsl:text> ||
wget -T 30 -t 5 </xsl:text>
<xsl:value-of select="$ftpurl"/>
</xsl:if>
<xsl:text> <xsl:text>
cp $</xsl:text> cp $</xsl:text>
<xsl:value-of select="$varname"/> <xsl:value-of select="$varname"/>