mirror of
https://git.yoctoproject.org/poky
synced 2026-05-31 00:39:46 +00:00
Cleanup image,rootfs_ipk,package_ipk bbclass files
This commit cleans up the functions that were ported to python. (From OE-Core rev: d950ef40a3eae4b54cc62828e66d84a62d78c447) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
31906d8e91
commit
f52391a919
@@ -10,207 +10,12 @@ PKGWRITEDIRIPK = "${WORKDIR}/deploy-ipks"
|
||||
# Program to be used to build opkg packages
|
||||
OPKGBUILDCMD ??= "opkg-build"
|
||||
|
||||
OPKG_ARGS = "-f $INSTALL_CONF_IPK -o $INSTALL_ROOTFS_IPK --force_postinstall --prefer-arch-to-version"
|
||||
OPKG_ARGS = "--force_postinstall --prefer-arch-to-version"
|
||||
OPKG_ARGS += "${@['', '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS", True) == "1"]}"
|
||||
OPKG_ARGS += "${@['', '--add-exclude ' + ' --add-exclude '.join((d.getVar('PACKAGE_EXCLUDE', True) or "").split())][(d.getVar("PACKAGE_EXCLUDE", True) or "") != ""]}"
|
||||
|
||||
OPKGLIBDIR = "${localstatedir}/lib"
|
||||
|
||||
package_tryout_install_multilib_ipk() {
|
||||
#try install multilib
|
||||
multilib_tryout_dirs=""
|
||||
for item in ${MULTILIB_VARIANTS}; do
|
||||
local target_rootfs="${MULTILIB_TEMP_ROOTFS}/${item}"
|
||||
local ipkg_args="${OPKG_ARGS}"
|
||||
local selected_pkg=""
|
||||
local pkgname_prefix="${item}-"
|
||||
local pkgname_len=${#pkgname_prefix}
|
||||
for pkg in ${INSTALL_PACKAGES_MULTILIB_IPK}; do
|
||||
local pkgname=$(echo $pkg | awk -v var=$pkgname_len '{ pkgname=substr($1, 1, var); print pkgname; }' )
|
||||
if [ ${pkgname} = ${pkgname_prefix} ]; then
|
||||
selected_pkg="${selected_pkg} ${pkg}"
|
||||
fi
|
||||
done
|
||||
if [ ! -z "${selected_pkg}" ]; then
|
||||
rm -f ${target_rootfs}
|
||||
mkdir -p ${target_rootfs}/${opkglibdir}
|
||||
opkg-cl ${ipkg_args} update
|
||||
opkg-cl ${ipkg_args} install ${selected_pkg}
|
||||
multilib_tryout_dirs="${multilib_tryout_dirs} ${target_rootfs}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
split_multilib_packages() {
|
||||
INSTALL_PACKAGES_NORMAL_IPK=""
|
||||
INSTALL_PACKAGES_MULTILIB_IPK=""
|
||||
for pkg in ${INSTALL_PACKAGES_IPK}; do
|
||||
is_multilib=0
|
||||
for item in ${MULTILIB_VARIANTS}; do
|
||||
local pkgname_prefix="${item}-"
|
||||
local pkgname_len=${#pkgname_prefix}
|
||||
local pkgname=$(echo $pkg | awk -v var=$pkgname_len '{ pkgname=substr($1, 1, var); print pkgname; }' )
|
||||
if [ ${pkgname} = ${pkgname_prefix} ]; then
|
||||
is_multilib=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${is_multilib} = 0 ]; then
|
||||
INSTALL_PACKAGES_NORMAL_IPK="${INSTALL_PACKAGES_NORMAL_IPK} ${pkg}"
|
||||
else
|
||||
INSTALL_PACKAGES_MULTILIB_IPK="${INSTALL_PACKAGES_MULTILIB_IPK} ${pkg}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
#
|
||||
# install a bunch of packages using opkg
|
||||
# the following shell variables needs to be set before calling this func:
|
||||
# INSTALL_ROOTFS_IPK - install root dir
|
||||
# INSTALL_CONF_IPK - configuration file
|
||||
# INSTALL_PACKAGES_IPK - packages to be installed
|
||||
# INSTALL_PACKAGES_ATTEMPTONLY_IPK - packages attemped to be installed only
|
||||
# INSTALL_PACKAGES_LINGUAS_IPK - additional packages for uclibc
|
||||
# INSTALL_TASK_IPK - task name
|
||||
|
||||
package_install_internal_ipk() {
|
||||
|
||||
local target_rootfs="${INSTALL_ROOTFS_IPK}"
|
||||
local package_attemptonly="${INSTALL_PACKAGES_ATTEMPTONLY_IPK}"
|
||||
local package_linguas="${INSTALL_PACKAGES_LINGUAS_IPK}"
|
||||
local task="${INSTALL_TASK_IPK}"
|
||||
|
||||
split_multilib_packages
|
||||
|
||||
local package_to_install="${INSTALL_PACKAGES_NORMAL_IPK}"
|
||||
local package_multilib="${INSTALL_PACKAGES_MULTILIB_IPK}"
|
||||
|
||||
mkdir -p ${target_rootfs}${OPKGLIBDIR}/opkg
|
||||
touch ${target_rootfs}${OPKGLIBDIR}/opkg/status
|
||||
|
||||
local ipkg_args="${OPKG_ARGS}"
|
||||
|
||||
opkg-cl ${ipkg_args} update
|
||||
|
||||
for i in ${package_linguas}; do
|
||||
opkg-cl ${ipkg_args} install $i
|
||||
done
|
||||
|
||||
if [ ! -z "${package_to_install}" ]; then
|
||||
opkg-cl ${ipkg_args} install ${package_to_install}
|
||||
fi
|
||||
|
||||
if [ ! -z "${package_attemptonly}" ]; then
|
||||
opkg-cl ${ipkg_args} install ${package_attemptonly} > "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" || true
|
||||
fi
|
||||
|
||||
package_tryout_install_multilib_ipk
|
||||
if [ ! -z "${MULTILIB_CHECK_FILE}" ]; then
|
||||
#sanity check
|
||||
multilib_sanity_check ${target_rootfs} ${multilib_tryout_dirs} || exit 1
|
||||
fi
|
||||
|
||||
if [ ! -z "${package_multilib}" ]; then
|
||||
opkg-cl ${ipkg_args} install ${package_multilib}
|
||||
fi
|
||||
}
|
||||
|
||||
ipk_log_check() {
|
||||
target="$1"
|
||||
lf_path="$2"
|
||||
|
||||
lf_txt="`cat $lf_path`"
|
||||
for keyword_die in "exit 1" "Collected errors" ERR Fail
|
||||
do
|
||||
if (echo "$lf_txt" | grep -v log_check | grep "$keyword_die") >/dev/null 2>&1
|
||||
then
|
||||
echo "log_check: There were error messages in the logfile"
|
||||
printf "log_check: Matched keyword: [$keyword_die]\n\n"
|
||||
echo "$lf_txt" | grep -v log_check | grep -C 5 "$keyword_die"
|
||||
echo ""
|
||||
do_exit=1
|
||||
fi
|
||||
done
|
||||
test "$do_exit" = 1 && exit 1
|
||||
true
|
||||
}
|
||||
|
||||
#
|
||||
# Update the Packages index files in ${DEPLOY_DIR_IPK}
|
||||
#
|
||||
package_update_index_ipk () {
|
||||
#set -x
|
||||
|
||||
ipkgarchs="${ALL_MULTILIB_PACKAGE_ARCHS} ${SDK_PACKAGE_ARCHS}"
|
||||
|
||||
if [ ! -z "${DEPLOY_KEEP_PACKAGES}" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
packagedirs="${DEPLOY_DIR_IPK}"
|
||||
for arch in $ipkgarchs; do
|
||||
packagedirs="$packagedirs ${DEPLOY_DIR_IPK}/$arch"
|
||||
done
|
||||
|
||||
multilib_archs="${MULTILIB_ARCHS}"
|
||||
for arch in $multilib_archs; do
|
||||
packagedirs="$packagedirs ${DEPLOY_DIR_IPK}/$arch"
|
||||
done
|
||||
|
||||
found=0
|
||||
for pkgdir in $packagedirs; do
|
||||
if [ -e $pkgdir/ ]; then
|
||||
found=1
|
||||
touch $pkgdir/Packages
|
||||
flock $pkgdir/Packages.flock -c "opkg-make-index -r $pkgdir/Packages -p $pkgdir/Packages -m $pkgdir/"
|
||||
fi
|
||||
done
|
||||
if [ "$found" != "1" ]; then
|
||||
bbfatal "There are no packages in ${DEPLOY_DIR_IPK}!"
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Generate an ipkg conf file ${IPKGCONF_TARGET} suitable for use against
|
||||
# the target system and an ipkg conf file ${IPKGCONF_SDK} suitable for
|
||||
# use against the host system in sdk builds
|
||||
#
|
||||
package_generate_ipkg_conf () {
|
||||
package_generate_archlist
|
||||
echo "src oe file:${DEPLOY_DIR_IPK}" >> ${IPKGCONF_SDK}
|
||||
ipkgarchs="${SDK_PACKAGE_ARCHS}"
|
||||
for arch in $ipkgarchs; do
|
||||
if [ -e ${DEPLOY_DIR_IPK}/$arch/Packages ] ; then
|
||||
echo "src oe-$arch file:${DEPLOY_DIR_IPK}/$arch" >> ${IPKGCONF_SDK}
|
||||
fi
|
||||
done
|
||||
|
||||
echo "src oe file:${DEPLOY_DIR_IPK}" >> ${IPKGCONF_TARGET}
|
||||
ipkgarchs="${ALL_MULTILIB_PACKAGE_ARCHS}"
|
||||
for arch in $ipkgarchs; do
|
||||
if [ -e ${DEPLOY_DIR_IPK}/$arch/Packages ] ; then
|
||||
echo "src oe-$arch file:${DEPLOY_DIR_IPK}/$arch" >> ${IPKGCONF_TARGET}
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
package_generate_archlist () {
|
||||
ipkgarchs="${SDK_PACKAGE_ARCHS}"
|
||||
priority=1
|
||||
for arch in $ipkgarchs; do
|
||||
echo "arch $arch $priority" >> ${IPKGCONF_SDK}
|
||||
priority=$(expr $priority + 5)
|
||||
done
|
||||
|
||||
ipkgarchs="${ALL_MULTILIB_PACKAGE_ARCHS}"
|
||||
priority=1
|
||||
for arch in $ipkgarchs; do
|
||||
echo "arch $arch $priority" >> ${IPKGCONF_TARGET}
|
||||
priority=$(expr $priority + 5)
|
||||
done
|
||||
}
|
||||
|
||||
python do_package_ipk () {
|
||||
import re, copy
|
||||
import textwrap
|
||||
|
||||
Reference in New Issue
Block a user