#!/bin/bash # Create a symbolic link to a package that is located in another stage # repository (to not have the same file twice). # Arg. #1: Source stage number (1, 2, 3, etc) # Arg. #2: Package name lpkg() { SRCSTAGE="stage${1}" PACKAGE_NAME="${2}" # Checking for correct number of arguments if [ $# -ne 2 ]; then echo "${FUNCNAME}(), wrong number of arguments: ${*}" return 1 fi # Check first if the package exists in the source directory, and what is # its extension. unset LPKG_EXT for arch_ext in ${DEFAULT_ARCH_EXT_LIST}; do if [ -f ${LFS_PKG_BASE}/${SRCSTAGE}/${PACKAGE_NAME}.${arch_ext} ]; then LPKG_EXT=${arch_ext} fi done MSG="Linking ${PACKAGE_NAME}" if [ -z "${LPKG_EXT}" ]; then MSGSTRING="${MSG}" print_status warning else FILE="${PACKAGE_NAME}.${LPKG_EXT}" if [ ! -h ${LFS_PKG_DIR}/${FILE} ]; then # Create link if it doesn't exist rcmd "${MSG}" ln -s ../${SRCSTAGE}/${FILE} ${LFS_PKG_DIR}/${FILE} fi fi # Create link for patches corresponding to that package: if ls ${LFS_PKG_BASE}/${SRCSTAGE}/${PACKAGE_NAME}-*.patch \ 1> /dev/null 2>&1; then for patch in ${LFS_PKG_BASE}/${SRCSTAGE}/${PACKAGE_NAME}-*.patch; do PATCHFILE=$(basename ${patch}) if [ ! -h ${LFS_PKG_DIR}/${PATCHFILE} ]; then # Create link if it doesn't exist rcmd "Linking ${PATCHFILE}" ln -s ../${SRCSTAGE}/${PATCHFILE} \ ${LFS_PKG_DIR}/${PATCHFILE} fi done fi }