mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
Store changelog for upstream changes in the cache/hash/ (#3131)
* Store changelog for upstream changes in the cache/hash/ * Cleanup * Calculate urls * Use URL Don't merge since it doesn't work properly yet * Check if OLDHASHTARGET commit exists otherwise use oldest * Fix log updating * Improve log format, add better support for sunxi
This commit is contained in:
@@ -58,7 +58,7 @@ unset LINUXFAMILY LINUXCONFIG KERNELDIR KERNELSOURCE KERNELBRANCH BOOTDIR BOOTSO
|
||||
CRYPTROOT_SSH_UNLOCK_PORT CRYPTROOT_SSH_UNLOCK_KEY_NAME ROOT_MAPPER NETWORK HDMI USB WIRELESS ARMBIANMONITOR FORCE_BOOTSCRIPT_UPDATE \
|
||||
UBOOT_TOOLCHAIN2 toolchain2 BUILD_REPOSITORY_URL BUILD_REPOSITORY_COMMIT BUILD_TARGET HOST BUILD_IMAGE DEB_STORAGE REPO_STORAGE REPO_CONFIG \
|
||||
REPOSITORY_UPDATE PACKAGE_LIST_RELEASE LOCAL_MIRROR COMPILE_ATF PACKAGE_LIST_BOARD PACKAGE_LIST_FAMILY PACKAGE_LIST_DESKTOP_BOARD \
|
||||
PACKAGE_LIST_DESKTOP_FAMILY ATF_COMPILE ATFPATCHDIR OFFSET BOOTSOURCEDIR \
|
||||
PACKAGE_LIST_DESKTOP_FAMILY ATF_COMPILE ATFPATCHDIR OFFSET BOOTSOURCEDIR KERNEL_VERSION_LEVEL \
|
||||
BOOT_SOC DDR_BLOB MINILOADER_BLOB BL31_BLOB BOOT_SCENARIO BOOT_SUPPORT_SPI OFFLINE_WORK \
|
||||
IMAGE_PARTITION_TABLE BOOT_LOGO UPSTREM_VER FORCED_MONTH_OFFSET PACKAGE_LIST_BOARD_REMOVE PACKAGE_LIST_FAMILY_REMOVE PACKAGE_LIST_DESKTOP \
|
||||
PACKAGE_LIST_DESKTOP_BOARD_REMOVE PACKAGE_LIST_DESKTOP_FAMILY_REMOVE BOOTCONFIG_EDGE DESKTOP_ENVIRONMENT DESKTOP_ENVIRONMENT_CONFIG_NAME \
|
||||
|
||||
@@ -521,13 +521,39 @@ compile_kernel()
|
||||
|
||||
rsync --remove-source-files -rq ./*.deb "${DEB_STORAGE}/" || exit_with_error "Failed moving kernel DEBs"
|
||||
|
||||
# store git hash to the file
|
||||
echo "${hash}" > "${SRC}/cache/hash"$([[ ${BETA} == yes ]] && echo "-beta")"/linux-image-${BRANCH}-${LINUXFAMILY}.githash"
|
||||
# store git hash to the file and create a change log
|
||||
HASHTARGET="${SRC}/cache/hash"$([[ ${BETA} == yes ]] && echo "-beta")"/linux-image-${BRANCH}-${LINUXFAMILY}"
|
||||
OLDHASHTARGET=$(head -1 "${HASHTARGET}.githash" 2>/dev/null)
|
||||
|
||||
# check if OLDHASHTARGET commit exists otherwise use oldest
|
||||
if [[ -z ${KERNEL_VERSION_LEVEL} ]]; then
|
||||
git -C ${kerneldir} cat-file -t ${OLDHASHTARGET} >/dev/null 2>&1
|
||||
[[ $? -ne 0 ]] && OLDHASHTARGET=$(git -C ${kerneldir} show HEAD~199 --pretty=format:"%H" --no-patch)
|
||||
else
|
||||
git -C ${kerneldir} cat-file -t ${OLDHASHTARGET} >/dev/null 2>&1
|
||||
[[ $? -ne 0 ]] && OLDHASHTARGET=$(git -C ${kerneldir} rev-list --max-parents=0 HEAD)
|
||||
fi
|
||||
|
||||
[[ -z ${KERNELPATCHDIR} ]] && KERNELPATCHDIR=$LINUXFAMILY-$BRANCH
|
||||
[[ -z ${LINUXCONFIG} ]] && LINUXCONFIG=linux-$LINUXFAMILY-$BRANCH
|
||||
|
||||
# calculate URL
|
||||
if [[ "$KERNELSOURCE" == *"github.com"* ]]; then
|
||||
URL="${KERNELSOURCE/git:/https:}/commit/${HASH}"
|
||||
elif [[ "$KERNELSOURCE" == *"kernel.org"* ]]; then
|
||||
URL="${KERNELSOURCE/git:/https:}/commit/?h=$(echo $KERNELBRANCH | cut -d":" -f2)&id=${HASH}"
|
||||
else
|
||||
URL="${KERNELSOURCE}/+/$HASH"
|
||||
fi
|
||||
|
||||
# create change log
|
||||
git --no-pager -C ${kerneldir} log --abbrev-commit --oneline --no-patch --no-merges --date-order --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:'%C(black bold)%ad%Creset%C(auto) | %s | <%an> | <a href='$URL'%H>%H</a>' ${OLDHASHTARGET}..${hash} > "${HASHTARGET}.gitlog"
|
||||
|
||||
echo "${hash}" > "${HASHTARGET}.githash"
|
||||
hash_watch_1=$(LC_COLLATE=C find -L "${SRC}/patch/kernel/${KERNELPATCHDIR}"/ -mindepth 1 -maxdepth 1 -printf '%s %P\n' 2> /dev/null | sort -n)
|
||||
hash_watch_2=$(cat "${SRC}/config/kernel/${LINUXCONFIG}.config")
|
||||
echo "${hash_watch_1}${hash_watch_2}" | improved_git hash-object --stdin >> "${SRC}/cache/hash"$([[ ${BETA} == yes ]] && echo "-beta")"/linux-image-${BRANCH}-${LINUXFAMILY}.githash"
|
||||
echo "${hash_watch_1}${hash_watch_2}" | improved_git hash-object --stdin >> "${HASHTARGET}.githash"
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -366,15 +366,15 @@ fetch_from_repo()
|
||||
# remote was updated, fetch and check out updates
|
||||
display_alert "Fetching updates"
|
||||
case $ref_type in
|
||||
branch) improved_git fetch --depth 1 origin "${ref_name}" ;;
|
||||
tag) improved_git fetch --depth 1 origin tags/"${ref_name}" ;;
|
||||
head) improved_git fetch --depth 1 origin HEAD ;;
|
||||
branch) improved_git fetch --depth 200 origin "${ref_name}" ;;
|
||||
tag) improved_git fetch --depth 200 origin tags/"${ref_name}" ;;
|
||||
head) improved_git fetch --depth 200 origin HEAD ;;
|
||||
esac
|
||||
|
||||
# commit type needs support for older git servers that doesn't support fetching id directly
|
||||
if [[ $ref_type == commit ]]; then
|
||||
|
||||
improved_git fetch --depth 1 origin "${ref_name}"
|
||||
improved_git fetch --depth 200 origin "${ref_name}"
|
||||
|
||||
# cover old type
|
||||
if [[ $? -ne 0 ]]; then
|
||||
|
||||
Reference in New Issue
Block a user