Refactoring for overlayfs_wrapper

This commit is contained in:
zador-blood-stained 2016-11-03 20:57:56 +03:00
parent 7d21b3a810
commit a371bb6c5f
2 changed files with 34 additions and 36 deletions

View file

@ -25,8 +25,11 @@
compile_uboot()
{
local ubootdir="$1"
if [[ $USE_OVERLAYFS == yes ]]; then
local ubootdir=$(overlayfs_wrapper "wrap" "$SOURCES/$BOOTSOURCEDIR" "u-boot_${LINUXFAMILY}_${BRANCH}")
else
local ubootdir="$SOURCES/$BOOTSOURCEDIR"
fi
cd "$ubootdir"
[[ $FORCE_CHECKOUT == yes ]] && advanced_patch "u-boot" "$BOOTDIR-$BRANCH" "$BOARD" "$BOOTDIR-$BRANCH"
@ -38,6 +41,11 @@ compile_uboot()
local version=$(grab_version "$ubootdir")
display_alert "Compiling uboot" "$version" "info"
# if requires specific toolchain, check if default is suitable
if [[ -n $UBOOT_NEEDS_GCC ]] && ! check_toolchain "UBOOT" "$UBOOT_NEEDS_GCC" ; then
# try to find suitable in $SRC/toolchains, exit if not found
find_toolchain "UBOOT" "$UBOOT_NEEDS_GCC" "UBOOT_TOOLCHAIN"
fi
display_alert "Compiler version" "${UBOOT_COMPILER}gcc $(eval ${UBOOT_TOOLCHAIN:+env PATH=$UBOOT_TOOLCHAIN:$PATH} ${UBOOT_COMPILER}gcc -dumpversion)" "info"
eval CCACHE_BASEDIR="$(pwd)" ${UBOOT_TOOLCHAIN:+env PATH=$UBOOT_TOOLCHAIN:$PATH} \
@ -67,10 +75,11 @@ compile_uboot()
# create .deb package
local uboot_name=${CHOSEN_UBOOT}_${REVISION}_${ARCH}
mkdir -p $DEST/debs/$uboot_name/usr/lib/{u-boot,$uboot_name} $DEST/debs/$uboot_name/DEBIAN
rm -rf $uboot_name
mkdir -p $uboot_name/usr/lib/{u-boot,$uboot_name} $uboot_name/DEBIAN
# set up postinstall script
cat <<-EOF > $DEST/debs/$uboot_name/DEBIAN/postinst
cat <<-EOF > $uboot_name/DEBIAN/postinst
#!/bin/bash
source /usr/lib/u-boot/platform_install.sh
[[ \$DEVICE == /dev/null ]] && exit 0
@ -81,17 +90,17 @@ compile_uboot()
sync
exit 0
EOF
chmod 755 $DEST/debs/$uboot_name/DEBIAN/postinst
chmod 755 $uboot_name/DEBIAN/postinst
# declare -f on non-defined function does not do anything
cat <<-EOF > $DEST/debs/$uboot_name/usr/lib/u-boot/platform_install.sh
cat <<-EOF > $uboot_name/usr/lib/u-boot/platform_install.sh
DIR=/usr/lib/$uboot_name
$(declare -f write_uboot_platform)
$(declare -f setup_write_uboot_platform)
EOF
# set up control file
cat <<-END > $DEST/debs/$uboot_name/DEBIAN/control
cat <<-END > $uboot_name/DEBIAN/control
Package: linux-u-boot-${BOARD}-${BRANCH}
Version: $REVISION
Architecture: $ARCH
@ -108,25 +117,25 @@ compile_uboot()
# copy files to build directory
for f in $UBOOT_FILES; do
[[ ! -f $f ]] && exit_with_error "U-boot file not found" "$(basename $f)"
cp $f $DEST/debs/$uboot_name/usr/lib/$uboot_name
cp $f $uboot_name/usr/lib/$uboot_name
done
cd $DEST/debs
display_alert "Building deb" "$uboot_name.deb" "info"
display_alert "Building deb" "${uboot_name}.deb" "info"
eval 'dpkg -b $uboot_name 2>&1' ${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/compilation.log'}
rm -rf $uboot_name
local filesize=$(wc -c $DEST/debs/$uboot_name.deb | cut -f 1 -d ' ')
[[ ! -f ${uboot_name}.deb || $(stat -c '%s' "${uboot_name}.deb") -lt 5000 ]] && exit_with_error "Building u-boot failed"
if [[ $filesize -lt 50000 ]]; then
rm $DEST/debs/$uboot_name.deb
exit_with_error "Building u-boot failed, check configuration"
fi
mv ${uboot_name}.deb $DEST/debs/
}
compile_kernel()
{
local kerneldir="$1"
if [[ $USE_OVERLAYFS == yes ]]; then
local kerneldir=$(overlayfs_wrapper "wrap" "$SOURCES/$LINUXSOURCEDIR" "kernel_${LINUXFAMILY}_${BRANCH}")
else
local kerneldir="$SOURCES/$LINUXSOURCEDIR"
fi
cd "$kerneldir"
# this is a patch that Ubuntu Trusty compiler works
@ -145,6 +154,11 @@ compile_kernel()
local version=$(grab_version "$kerneldir")
display_alert "Compiling $BRANCH kernel" "$version" "info"
# if requires specific toolchain, check if default is suitable
if [[ -n $KERNEL_NEEDS_GCC ]] && ! check_toolchain "$KERNEL" "$KERNEL_NEEDS_GCC" ; then
# try to find suitable in $SRC/toolchains, exit if not found
find_toolchain "KERNEL" "$KERNEL_NEEDS_GCC" "KERNEL_TOOLCHAIN"
fi
display_alert "Compiler version" "${KERNEL_COMPILER}gcc $(eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} ${KERNEL_COMPILER}gcc -dumpversion)" "info"
# use proven config
@ -441,10 +455,6 @@ userpatch_create()
#
overlayfs_wrapper()
{
if [[ $USE_OVERLAYFS != yes && -n $2 ]]; then
echo "$2"
return
fi
local operation="$1"
if [[ $operation == wrap ]]; then
local srcdir="$2"

20
main.sh
View file

@ -47,8 +47,8 @@ date +"%d_%m_%Y-%H_%M_%S" > $DEST/debug/timestamp
(cd $DEST/debug && find . -name '*.tgz' -atime +7 -delete) > /dev/null
# compile.sh version checking
ver1=$(awk -F"=" '/^# VERSION/ {print $2}' <"$SRC/compile.sh")
ver2=$(awk -F"=" '/^# VERSION/ {print $2}' <"$SRC/lib/compile.sh" 2>/dev/null) || ver2=0
ver1=$(awk -F"=" '/^# VERSION/ {print $2}' <$SRC/compile.sh )
ver2=$(awk -F"=" '/^# VERSION/ {print $2}' <$SRC/lib/compile.sh 2>/dev/null) || ver2=0
if [[ -z $ver1 || $ver1 -lt $ver2 ]]; then
display_alert "File $0 is outdated. Please overwrite it with an updated version from" "$SRC/lib" "wrn"
echo -e "Press \e[0;33m<Ctrl-C>\x1B[0m to abort compilation, \e[0;33m<Enter>\x1B[0m to ignore and continue"
@ -200,24 +200,12 @@ done
# Compile u-boot if packed .deb does not exist
if [[ ! -f $DEST/debs/${CHOSEN_UBOOT}_${REVISION}_${ARCH}.deb ]]; then
# if requires specific toolchain, check if default is suitable
if [[ -n $UBOOT_NEEDS_GCC ]] && ! check_toolchain "UBOOT" "$UBOOT_NEEDS_GCC" ; then
# try to find suitable in $SRC/toolchains, exit if not found
find_toolchain "UBOOT" "$UBOOT_NEEDS_GCC" "UBOOT_TOOLCHAIN"
fi
compile_uboot $(overlayfs_wrapper "wrap" "$SOURCES/$BOOTSOURCEDIR" "u-boot_${LINUXFAMILY}_${BRANCH}")
compile_uboot
fi
# Compile kernel if packed .deb does not exist
if [[ ! -f $DEST/debs/${CHOSEN_KERNEL}_${REVISION}_${ARCH}.deb ]]; then
# if requires specific toolchain, check if default is suitable
if [[ -n $KERNEL_NEEDS_GCC ]] && ! check_toolchain "$KERNEL" "$KERNEL_NEEDS_GCC" ; then
# try to find suitable in $SRC/toolchains, exit if not found
find_toolchain "KERNEL" "$KERNEL_NEEDS_GCC" "KERNEL_TOOLCHAIN"
fi
compile_kernel $(overlayfs_wrapper "wrap" "$SOURCES/$LINUXSOURCEDIR" "kernel_${LINUXFAMILY}_${BRANCH}")
compile_kernel
fi
overlayfs_wrapper "cleanup"