You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.9 KiB
109 lines
3.9 KiB
{% calculate comment='#', unbound %}
|
|
# vim: set syntax=sh
|
|
#
|
|
# Copyright 2014-2015 Calculate Ltd. http://www.calculate-linux.org
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
CL_UPDATE_PROG=/usr/sbin/cl-core
|
|
RUN_CORE="/usr/bin/python2 ${CL_UPDATE_PROG}"
|
|
CORE_METHOD="--method core_setup"
|
|
|
|
post_setup_package() {
|
|
local remove_dir_list=""
|
|
if [ -f ${CL_UPDATE_PROG} ] && [[ $PN == "calculate-utils" ]] && [[ -f /var/lib/calculate/calculate-core/setup-failed.list ]]
|
|
then
|
|
while read category pkgname mypvr myslot;do
|
|
if [[ -n $category ]]
|
|
then
|
|
pkg_lockfile_dir=/var/calculate/tmp/portage/$category
|
|
pkg_lockfile="$pkg_lockfile_dir"/.${pkgname}.calculate_lockfile
|
|
if ! [[ -d $pkg_lockfile_dir ]]
|
|
then
|
|
mkdir -p $pkg_lockfile_dir
|
|
remove_dir_list="$remove_dir_list $pkg_lockfile_dir"
|
|
fi
|
|
(
|
|
flock -x -w 1 73 || exit 1;
|
|
fuser /var/db/pkg/$category/.${pkgname}*.portage_lockfile &>/dev/null || CTARGET=${CTARGET} GCC_CONFIG_VER=${GCC_CONFIG_VER} ${RUN_CORE} ${CORE_METHOD} --no-progress --pkg-name $pkgname --pkg-category $category --pkg-slot $myslot --pkg-version $mypvr --pkg-path "/";
|
|
rm -f /var/lib/calculate/-runlevels-$pkgname
|
|
rm $pkg_lockfile
|
|
) 73>$pkg_lockfile
|
|
fi
|
|
done </var/lib/calculate/calculate-core/setup-failed.list
|
|
rm -f /var/lib/calculate/calculate-core/setup-failed.list
|
|
fi
|
|
|
|
if [ -f ${CL_UPDATE_PROG} ] && [[ -f /var/lib/calculate/-postmerge ]] && check_skip
|
|
then
|
|
OLDIFS=$IFS
|
|
IFS=/
|
|
while read category pkgname;do
|
|
[ -d /var/db/pkg/${category}/${pkgname}-* ] || continue
|
|
IFS=$OLDIFS
|
|
if ! [[ -f /var/lib/calculate/calculate-core/cache/merge-setup.list ]] ||
|
|
grep ${category}/${pkgname} /var/lib/calculate/calculate-core/cache/merge-setup.list &>/dev/null
|
|
then
|
|
pkg_lockfile_dir=/var/calculate/tmp/portage/$category
|
|
pkg_lockfile="$pkg_lockfile_dir"/.${pkgname}.calculate_lockfile
|
|
if ! [[ -d $pkg_lockfile_dir ]]
|
|
then
|
|
mkdir -p $pkg_lockfile_dir
|
|
remove_dir_list="$remove_dir_list $pkg_lockfile_dir"
|
|
fi
|
|
(
|
|
flock -x -w 1 73 || exit 1;
|
|
fuser /var/db/pkg/$category/.${pkgname}*.portage_lockfile &>/dev/null || CTARGET=${CTARGET} GCC_CONFIG_VER=${GCC_CONFIG_VER} ${RUN_CORE} ${CORE_METHOD} --no-progress --pkg-name $pkgname --pkg-category $category --pkg-path "/";
|
|
rm $pkg_lockfile
|
|
) 73>$pkg_lockfile
|
|
fi
|
|
IFS=/
|
|
done < <(awk '!x[$0]++' /var/lib/calculate/-postmerge)
|
|
IFS=$OLDIFS
|
|
fi
|
|
rm -f /var/lib/calculate/-postmerge
|
|
[[ -n $remove_dir_list ]] && rmdir $remove_dir_list
|
|
}
|
|
|
|
fix_kernel_symlink() {
|
|
# restore kernel symlink to preferred by cl_install_kernel_build variable
|
|
local kernel_build=$(/usr/libexec/calculate/cl-variable --value install.cl_install_kernel_build 2>/dev/null)
|
|
if [[ $? -ne 1 ]] && [[ -n $kernel_build ]] && [[ -L /usr/src/linux ]]
|
|
then
|
|
[[ "$kernel_build" =~ ^[0-9]+\.[0-9]+$ ]] && kernel_build="${kernel_build}."
|
|
last_kernel="$(ls -1d /usr/src/linux-${kernel_build}* | sed 's/.*linux-//' | sort -V | tail -1)"
|
|
if [[ -n $last_kernel ]]
|
|
then
|
|
if [[ "$(readlink /usr/src/linux)" != "linux-${last_kernel}" ]]
|
|
then
|
|
rm /usr/src/linux
|
|
ln -sf linux-${last_kernel} /usr/src/linux
|
|
fi
|
|
fi
|
|
fi
|
|
}
|
|
|
|
clean_binary_bdepends() {
|
|
local bdeps=$(/usr/libexec/calculate/cl-variable --value update.cl_update_with_bdeps_set 2>/dev/null)
|
|
local _instmark=/var/db/pkg/$CATEGORY/$PF/EMERGE_FROM
|
|
echo -n $EMERGE_FROM >$_instmark
|
|
|
|
if [[ $EMERGE_FROM == binary ]] && [[ $bdeps == auto ]]
|
|
then
|
|
local _bdep=/var/db/pkg/$CATEGORY/$PF/BDEPEND
|
|
local _dep=/var/db/pkg/$CATEGORY/$PF/DEPEND
|
|
[[ -f $_bdep ]] && mv $_bdep $_bdep.binary
|
|
[[ -f $_dep ]] && mv $_dep $_dep.binary
|
|
fi
|
|
}
|
|
|
|
post_pkg_postinst() {
|
|
[[ "$PN" == "calculate-sources" ]] && fix_kernel_symlink
|
|
post_setup_package
|
|
calculate_unlock_setup
|
|
clean_binary_bdepends
|
|
}
|