mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-28 13:46:32 +00:00
core/pkg-generic: store file->package list for staging and host too
Currently, we store the list of files installed in target/ and associate each of them to the package that installed it. However, we sometimes may need to know what package installed which file in staging/, for example to debug header collision, or in host/, to debug what package installed what host tool. Enhance the step instrumentation to also generate the list for staging/ and host/. We maintain backward compatibility, for external scripts that wanted to parse the previously existing list, by not renaming the target-related package list. Only the staging- and host-related lists are named after staging and host. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> [Thomas: fix missing word in .mk comment.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
d63670009b
commit
0c02bf829b
@ -58,7 +58,7 @@ GLOBAL_INSTRUMENTATION_HOOKS += step_time
|
|||||||
# Hooks to collect statistics about installed files
|
# Hooks to collect statistics about installed files
|
||||||
|
|
||||||
define _step_pkg_size_get_file_list
|
define _step_pkg_size_get_file_list
|
||||||
(cd $(TARGET_DIR) ; \
|
(cd $(2) ; \
|
||||||
( \
|
( \
|
||||||
find . -xtype f -print0 | xargs -0 md5sum ; \
|
find . -xtype f -print0 | xargs -0 md5sum ; \
|
||||||
find . -xtype d -print0 | xargs -0 -I{} printf 'directory {}\n'; \
|
find . -xtype d -print0 | xargs -0 -I{} printf 'directory {}\n'; \
|
||||||
@ -66,32 +66,44 @@ define _step_pkg_size_get_file_list
|
|||||||
) | sort > $1
|
) | sort > $1
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# This hook will be called before the target installation of a
|
# This hook will be called before the installation of a package. We store in
|
||||||
# package. We store in a file named .br_filelist_before the list of
|
# a file named .br_filelist_before the list of files currently installed.
|
||||||
# files currently installed in the target. Note that the MD5 is also
|
# Note that the MD5 is also stored, in order to identify if the files are
|
||||||
# stored, in order to identify if the files are overwritten.
|
# overwritten.
|
||||||
|
# $(1): package name (ignored)
|
||||||
|
# $(2): base directory to search in
|
||||||
define step_pkg_size_start
|
define step_pkg_size_start
|
||||||
$(call _step_pkg_size_get_file_list,$($(PKG)_DIR)/.br_filelist_before)
|
$(call _step_pkg_size_get_file_list,$($(PKG)_DIR)/.br_filelist_before,$(2))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# This hook will be called after the target installation of a
|
# This hook will be called after the installation of a package. We store in
|
||||||
# package. We store in a file named .br_filelist_after the list of
|
# a file named .br_filelist_after the list of files (and their MD5) currently
|
||||||
# files (and their MD5) currently installed in the target. We then do
|
# installed. We then do a diff with the .br_filelist_before to compute the
|
||||||
# a diff with the .br_filelist_before to compute the list of files
|
# list of files installed by this package.
|
||||||
# installed by this package.
|
# The suffix is typically empty for the target variant, for legacy backward
|
||||||
|
# compatibility.
|
||||||
|
# $(1): package name (ignored)
|
||||||
|
# $(2): base directory to search in
|
||||||
|
# $(3): suffix of file (optional)
|
||||||
define step_pkg_size_end
|
define step_pkg_size_end
|
||||||
$(call _step_pkg_size_get_file_list,$($(PKG)_DIR)/.br_filelist_after)
|
$(call _step_pkg_size_get_file_list,$($(PKG)_DIR)/.br_filelist_after,$(2))
|
||||||
comm -13 $($(PKG)_DIR)/.br_filelist_before $($(PKG)_DIR)/.br_filelist_after | \
|
comm -13 $($(PKG)_DIR)/.br_filelist_before $($(PKG)_DIR)/.br_filelist_after | \
|
||||||
while read hash file ; do \
|
while read hash file ; do \
|
||||||
echo "$(1),$${file}" ; \
|
echo "$(1),$${file}" ; \
|
||||||
done >> $(BUILD_DIR)/packages-file-list.txt
|
done >> $(BUILD_DIR)/packages-file-list$(3).txt
|
||||||
rm -f $($(PKG)_DIR)/.br_filelist_before $($(PKG)_DIR)/.br_filelist_after
|
rm -f $($(PKG)_DIR)/.br_filelist_before $($(PKG)_DIR)/.br_filelist_after
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define step_pkg_size
|
define step_pkg_size
|
||||||
$(if $(filter install-target,$(2)),\
|
$(if $(filter install-target,$(2)),\
|
||||||
$(if $(filter start,$(1)),$(call step_pkg_size_start,$(3))) \
|
$(if $(filter start,$(1)),$(call step_pkg_size_start,$(3),$(TARGET_DIR))) \
|
||||||
$(if $(filter end,$(1)),$(call step_pkg_size_end,$(3))))
|
$(if $(filter end,$(1)),$(call step_pkg_size_end,$(3),$(TARGET_DIR))))
|
||||||
|
$(if $(filter install-staging,$(2)),\
|
||||||
|
$(if $(filter start,$(1)),$(call step_pkg_size_start,$(3),$(STAGING_DIR),-staging)) \
|
||||||
|
$(if $(filter end,$(1)),$(call step_pkg_size_end,$(3),$(STAGING_DIR),-staging)))
|
||||||
|
$(if $(filter install-host,$(2)),\
|
||||||
|
$(if $(filter start,$(1)),$(call step_pkg_size_start,$(3),$(HOST_DIR),-host)) \
|
||||||
|
$(if $(filter end,$(1)),$(call step_pkg_size_end,$(3),$(HOST_DIR),-host)))
|
||||||
endef
|
endef
|
||||||
GLOBAL_INSTRUMENTATION_HOOKS += step_pkg_size
|
GLOBAL_INSTRUMENTATION_HOOKS += step_pkg_size
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user