[Build]: support to collect version when purging debian package (#10287)

Why I did it
support to collect version when purging debian package
Support to collect version multiple times

How I did it
Add the collection action before purging.
This commit is contained in:
xumia 2022-03-21 17:10:33 +08:00 committed by Qi Luo
parent 8a38da94d5
commit 1851827d74
4 changed files with 22 additions and 5 deletions

View File

@ -20,6 +20,11 @@ if [ "$INSTALL" == y ]; then
[ "$lock_result" == y ] && release_apt_installation_lock [ "$lock_result" == y ] && release_apt_installation_lock
exit $command_result exit $command_result
else else
if [[ "$1" == "purge" || "$@" == *" purge "* ]]; then
# When running the purge command, collect the debian versions
dpkg-query -W -f '${Package}==${Version}\n' >> $POST_VERSION_PATH/purge-versions-deb
chmod a+wr $POST_VERSION_PATH/purge-versions-deb
fi
$REAL_COMMAND "$@" $REAL_COMMAND "$@"
fi fi

View File

@ -1,14 +1,26 @@
#!/bin/bash #!/bin/bash
. /usr/local/share/buildinfo/scripts/buildinfo_base.sh
TARGET_PATH=$1 TARGET_PATH=$1
[ -z "$TARGET_PATH" ] && TARGET_PATH=$POST_VERSION_PATH
ARCH=$(dpkg --print-architecture) ARCH=$(dpkg --print-architecture)
DIST=$(grep VERSION_CODENAME /etc/os-release | cut -d= -f2) DIST=$(grep VERSION_CODENAME /etc/os-release | cut -d= -f2)
([ -z "$DIST" ] && grep -q jessie /etc/os-release) && DIST=jessie ([ -z "$DIST" ] && grep -q jessie /etc/os-release) && DIST=jessie
mkdir -p $TARGET_PATH mkdir -p $TARGET_PATH
chmod a+rw $TARGET_PATH chmod a+rw $TARGET_PATH
dpkg-query -W -f '${Package}==${Version}\n' > "${TARGET_PATH}/versions-deb-${DIST}-${ARCH}"
([ -x "/usr/local/bin/pip2" ] || [ -x "/usr/bin/pip2" ]) && pip2 freeze > "${TARGET_PATH}/versions-py2-${DIST}-${ARCH}" dpkg-query -W -f '${Package}==${Version}\n' >> "${TARGET_PATH}/versions-deb-${DIST}-${ARCH}"
([ -x "/usr/local/bin/pip3" ] || [ -x "/usr/bin/pip3" ]) && pip3 freeze > "${TARGET_PATH}/versions-py3-${DIST}-${ARCH}" ([ -x "/usr/local/bin/pip2" ] || [ -x "/usr/bin/pip2" ]) && pip2 freeze >> "${TARGET_PATH}/versions-py2-${DIST}-${ARCH}"
([ -x "/usr/local/bin/pip3" ] || [ -x "/usr/bin/pip3" ]) && pip3 freeze >> "${TARGET_PATH}/versions-py3-${DIST}-${ARCH}"
## Add the the packages purged
[ -f $POST_VERSION_PATH/purge-versions-deb ] && cat $POST_VERSION_PATH/purge-versions-deb >> "${TARGET_PATH}/versions-deb-${DIST}-${ARCH}"
## Print the unique and sorted result
sort -u "${TARGET_PATH}/versions-deb-${DIST}-${ARCH}" -o "${TARGET_PATH}/versions-deb-${DIST}-${ARCH}"
sort -u "${TARGET_PATH}/versions-py2-${DIST}-${ARCH}" -o "${TARGET_PATH}/versions-py2-${DIST}-${ARCH}"
sort -u "${TARGET_PATH}/versions-py3-${DIST}-${ARCH}" -o "${TARGET_PATH}/versions-py3-${DIST}-${ARCH}"
exit 0 exit 0

View File

@ -2,8 +2,6 @@
. /usr/local/share/buildinfo/scripts/buildinfo_base.sh . /usr/local/share/buildinfo/scripts/buildinfo_base.sh
[ -d $POST_VERSION_PATH ] && rm -rf $POST_VERSION_PATH
# Collect the version files # Collect the version files
collect_version_files $POST_VERSION_PATH collect_version_files $POST_VERSION_PATH

View File

@ -8,6 +8,8 @@ mkdir -p $BUILD_VERSION_PATH
mkdir -p $LOG_PATH mkdir -p $LOG_PATH
[ -d $PRE_VERSION_PATH ] && rm -rf $PRE_VERSION_PATH [ -d $PRE_VERSION_PATH ] && rm -rf $PRE_VERSION_PATH
[ -d $POST_VERSION_PATH ] && rm -rf $POST_VERSION_PATH
mkdir -p $POST_VERSION_PATH
collect_version_files $PRE_VERSION_PATH collect_version_files $PRE_VERSION_PATH
symlink_build_hooks symlink_build_hooks
set_reproducible_mirrors set_reproducible_mirrors