LFS_PKG_BASE="$(dirname $(pwd))/packages"
LFS_PKG_DIR="${LFS_PKG_BASE}/${LFS_STAGE}"
+LFS_PATCHES_DIR="${LFS_PKG_BASE}/${LFS_STAGE}/patches"
LFS_LOG_DIR="${LFS}/var/log/hvlinux-install/${LFS_STAGE}"
LFS_LOG_FILE="${LFS_LOG_DIR}/pkg-update.log"
WGET_LOG_FILE="${LFS_LOG_DIR}/pkg-wget.log"
WGETCMD="wget --directory-prefix=${LFS_PKG_DIR} --timeout=15 --tries=3 -nc --continue --no-check-certificate --no-verbose --output-file=${WGET_LOG_FILE}"
-LFS_PATCHES_LIST=${LFS_PKG_DIR}/patches-list-lfs.html
-BLFS_PATCHES_LIST=${LFS_PKG_DIR}/patches-list-blfs.html
-CLFS_PATCHES_LIST=${LFS_PKG_DIR}/patches-list-clfs.html
-HV_PATCHES_LIST=${LFS_PKG_DIR}/patches-list-hv.html
-LFS_OLD_PATCHES_LIST=${LFS_PKG_DIR}/patches-list-lfs-old.html
+LFS_PATCHES_LIST=${LFS_PKG_DIR}/patches/list-lfs.html
+BLFS_PATCHES_LIST=${LFS_PKG_DIR}/patches/list-blfs.html
+CLFS_PATCHES_LIST=${LFS_PKG_DIR}/patches/list-clfs.html
+HV_PATCHES_LIST=${LFS_PKG_DIR}/patches/list-hv.html
+LFS_OLD_PATCHES_LIST=${LFS_PKG_DIR}/patches/list-lfs-old.html
# Test if the given file extension correspond to a compressed archive
# Arg. #1: File extension
# Download a file, and making sure it is valid (at least it's header!)
# Arg. #1: Source URL.
# Arg. #2: Source filename (on server)
+# Arg. #3: Output directory (optional). Default = LFS_PKG_DIR
#
# Return: 0 : success
# 1 : wget error
local URL=${1}
local SOURCE=${2}
+ local DESTDIR=${LFS_PKG_DIR}
- remove_partial_file ${LFS_PKG_DIR}/${SOURCE}
+ if [ ${#} -eq 3 ]; then
+ DESTDIR=${3}
+ fi
+
+ remove_partial_file ${DESTDIR}/${SOURCE}
local STRING="Fetching ${SOURCE}"
if [ "x${FTYPE}" = "x${FTYPE_PATCH}" ]; then
fi
rcmd "${STRING}" ${WGETCMD} ${URL}/${SOURCE} \
- --output-document=${LFS_PKG_DIR}/${SOURCE}.part
+ --output-document=${DESTDIR}/${SOURCE}.part
wget_status=$?
# Append log to global log file
# Partial failure if file was not found.
if detect_file_not_found; then
- remove_partial_file ${LFS_PKG_DIR}/${SOURCE}
+ remove_partial_file ${DESTDIR}/${SOURCE}
return 2
fi
if [ ${wget_status} -ne 0 ]; then
echo "Error: wget returned error status ${wget_status}" >> \
${LFS_LOG_FILE}
- remove_partial_file ${LFS_PKG_DIR}/${SOURCE}
+ remove_partial_file ${DESTDIR}/${SOURCE}
return 1
fi
local FEXT=${SOURCE##*.}
if is_extension_archive "${FEXT}"; then
# Just to be sure, test if downloaded file is really an archive:
- if ! is_archive ${LFS_PKG_DIR}/${SOURCE}.part; then
+ if ! is_archive ${DESTDIR}/${SOURCE}.part; then
# Partial failure if file is invalid.
echo "Error: failed archive test" >> ${LFS_LOG_FILE}
- remove_partial_file ${LFS_PKG_DIR}/${SOURCE}
+ remove_partial_file ${DESTDIR}/${SOURCE}
return 2
fi
fi
# Rename temporary file to final name
- mv ${LFS_PKG_DIR}/${SOURCE}{.part,}
+ mv ${DESTDIR}/${SOURCE}{.part,}
return 0
}
install -v -m755 -d ${LFS_PKG_DIR} 1> ${LFS_LOG_FILE} 2>&1 || exit 1
fi
+ # Create patches destination directory if it does not exists.
+ if [ ! -d ${LFS_PATCHES_DIR} ]; then
+ install -v -m755 -d ${LFS_PATCHES_DIR} 1> ${LFS_LOG_FILE} 2>&1 || exit 1
+ fi
+
if [ -n "${TEST_INTEGRITY}" ]; then
# En mode test intégrité, on ne veut pas télécharger quoi que ce soit
return 0
fi
}
-# Get patch package if it is not in the repository
+# Get patch for package if it is not in the repository
# Arg. #1: Package name and version
# Arg. #2: Patches list file (HTML)
# Arg. #3: Patches URL
# Remplace les "%2B" par "+"
PATCH_NAME=$(echo ${p} | sed s!%2B!\+!g)
- if [ ! -f ${LFS_PKG_DIR}/${PATCH_NAME} ]; then
- wget_wrapper ${PATCHES_URL} ${PATCH_NAME}
+ if [ ! -f ${LFS_PATCHES_DIR}/${PATCH_NAME} ]; then
+ wget_wrapper ${PATCHES_URL} ${PATCH_NAME} ${LFS_PATCHES_DIR}
fi
done
fi
# Rename any patch fetched (in fpkg call) and replace SOURCE by TARGET
# in patch name.
- local PATCHES_LIST="${LFS_PKG_DIR}/${SRC_FILENAME}-*.patch"
+ local PATCHES_LIST="${LFS_PATCHES_DIR}/${SRC_FILENAME}-*.patch"
if ls ${PATCHES_LIST} 1> /dev/null 2>&1; then
echo "CMD=${SRC_FILENAME} ${PACK} ${PATCHES_LIST}"
rename ${SRC_FILENAME} ${PACK} ${PATCHES_LIST}