summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCzarek Nakamoto <cyjan@mrcyjanek.net>2025-07-10 01:52:58 +0200
committerCzarek Nakamoto <cyjan@mrcyjanek.net>2025-07-10 01:52:58 +0200
commiteed45614ef1e49d4800a5c6714dad7932e660f1c (patch)
tree279ec52a91fc59dde0056ba094f9cf5eb157efee
parent21380c2837ed8064c26c8307bcc9b8599f4ec469 (diff)
feat: more details regarding build-id generation
-rw-r--r--contrib/depends/Makefile40
-rw-r--r--contrib/depends/funcs.mk48
2 files changed, 75 insertions, 13 deletions
diff --git a/contrib/depends/Makefile b/contrib/depends/Makefile
index dd357c8..3efa8b0 100644
--- a/contrib/depends/Makefile
+++ b/contrib/depends/Makefile
@@ -110,19 +110,35 @@ include builders/$(build_os).mk
include builders/default.mk
include packages/packages.mk
+# Legacy build ID strings (kept for debugging info)
+build_id_string_legacy:=$(BUILD_ID_SALT)
+build_id_string_legacy+=$(shell $(build_CC) --version 2>/dev/null)
+build_id_string_legacy+=$(shell $(build_AR) --version 2>/dev/null)
+build_id_string_legacy+=$(shell $(build_CXX) --version 2>/dev/null)
+build_id_string_legacy+=$(shell $(build_RANLIB) --version 2>/dev/null)
+build_id_string_legacy+=$(shell $(build_STRIP) --version 2>/dev/null)
+
+$(host_arch)_$(host_os)_id_string_legacy:=$(HOST_ID_SALT)
+$(host_arch)_$(host_os)_id_string_legacy+=$(shell $(host_CC) --version 2>/dev/null)
+$(host_arch)_$(host_os)_id_string_legacy+=$(shell $(host_AR) --version 2>/dev/null)
+$(host_arch)_$(host_os)_id_string_legacy+=$(shell $(host_CXX) --version 2>/dev/null)
+$(host_arch)_$(host_os)_id_string_legacy+=$(shell $(host_RANLIB) --version 2>/dev/null)
+$(host_arch)_$(host_os)_id_string_legacy+=$(shell $(host_STRIP) --version 2>/dev/null)
+
+# Simplified build ID strings (more portable)
build_id_string:=$(BUILD_ID_SALT)
-build_id_string+=$(shell $(build_CC) --version 2>/dev/null)
-build_id_string+=$(shell $(build_AR) --version 2>/dev/null)
-build_id_string+=$(shell $(build_CXX) --version 2>/dev/null)
-build_id_string+=$(shell $(build_RANLIB) --version 2>/dev/null)
-build_id_string+=$(shell $(build_STRIP) --version 2>/dev/null)
+build_id_string+=$(shell basename $(build_CC) 2>/dev/null || echo "unknown")
+build_id_string+=$(shell basename $(build_AR) 2>/dev/null || echo "unknown")
+build_id_string+=$(shell basename $(build_CXX) 2>/dev/null || echo "unknown")
+build_id_string+=$(shell basename $(build_RANLIB) 2>/dev/null || echo "unknown")
+build_id_string+=$(shell basename $(build_STRIP) 2>/dev/null || echo "unknown")
$(host_arch)_$(host_os)_id_string:=$(HOST_ID_SALT)
-$(host_arch)_$(host_os)_id_string+=$(shell $(host_CC) --version 2>/dev/null)
-$(host_arch)_$(host_os)_id_string+=$(shell $(host_AR) --version 2>/dev/null)
-$(host_arch)_$(host_os)_id_string+=$(shell $(host_CXX) --version 2>/dev/null)
-$(host_arch)_$(host_os)_id_string+=$(shell $(host_RANLIB) --version 2>/dev/null)
-$(host_arch)_$(host_os)_id_string+=$(shell $(host_STRIP) --version 2>/dev/null)
+$(host_arch)_$(host_os)_id_string+=$(shell basename $(host_CC) 2>/dev/null || echo "unknown")
+$(host_arch)_$(host_os)_id_string+=$(shell basename $(host_AR) 2>/dev/null || echo "unknown")
+$(host_arch)_$(host_os)_id_string+=$(shell basename $(host_CXX) 2>/dev/null || echo "unknown")
+$(host_arch)_$(host_os)_id_string+=$(shell basename $(host_RANLIB) 2>/dev/null || echo "unknown")
+$(host_arch)_$(host_os)_id_string+=$(shell basename $(host_STRIP) 2>/dev/null || echo "unknown")
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages)
native_packages += $($(host_arch)_$(host_os)_native_packages) $($(host_os)_native_packages)
@@ -204,8 +220,8 @@ $(host_prefix)/share/toolchain.cmake : toolchain.cmake.in $(host_prefix)/.stamp_
define check_or_remove_cached
mkdir -p $(BASE_CACHE)/$(host)/$(package) && cd $(BASE_CACHE)/$(host)/$(package); \
$(build_SHA256SUM) -c $($(package)_cached_checksum) >/dev/null 2>/dev/null || \
- ( rm -f $($(package)_cached_checksum); \
- if test -f "$($(package)_cached)"; then echo "Checksum mismatch for $(package). Forcing rebuild.."; rm -f $($(package)_cached_checksum) $($(package)_cached); fi )
+ ( rm -f $($(package)_cached_checksum) $($(package)_cached_buildinfo); \
+ if test -f "$($(package)_cached)"; then echo "Checksum mismatch for $(package). Forcing rebuild.."; rm -f $($(package)_cached_checksum) $($(package)_cached) $($(package)_cached_buildinfo); fi )
endef
define check_or_remove_sources
diff --git a/contrib/depends/funcs.mk b/contrib/depends/funcs.mk
index 33dd301..063fc94 100644
--- a/contrib/depends/funcs.mk
+++ b/contrib/depends/funcs.mk
@@ -46,6 +46,8 @@ $(eval $(1)_all_dependencies:=$(call int_get_all_dependencies,$(1),$($($(1)_type
$(foreach dep,$($(1)_all_dependencies),$(eval $(1)_build_id_deps+=$(dep)-$($(dep)_version)-$($(dep)_recipe_hash)))
$(eval $(1)_build_id_long:=$(1)-$($(1)_version)-$($(1)_recipe_hash)-$(release_type) $($(1)_build_id_deps) $($($(1)_type)_id_string))
$(eval $(1)_build_id:=$(shell echo -n "$($(1)_build_id_long)" | $(build_SHA256SUM) | cut -c-$(HASH_LENGTH)))
+$(eval $(1)_build_id_long_legacy:=$(1)-$($(1)_version)-$($(1)_recipe_hash)-$(release_type) $($(1)_build_id_deps) $($($(1)_type)_id_string_legacy))
+$(eval $(1)_build_id_legacy:=$(shell echo -n "$($(1)_build_id_long_legacy)" | $(build_SHA256SUM) | cut -c-$(HASH_LENGTH)))
final_build_id_long+=$($(package)_build_id_long)
#compute package-specific paths
@@ -59,6 +61,7 @@ $(1)_extract_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id
$(1)_download_dir:=$(base_download_dir)/$(1)-$($(1)_version)
$(1)_build_dir:=$$($(1)_extract_dir)/$$($(1)_build_subdir)
$(1)_cached_checksum:=$(BASE_CACHE)/$(host)/$(1)/$(1)-$($(1)_version)-$($(1)_build_id).tar.gz.hash
+$(1)_cached_buildinfo:=$(BASE_CACHE)/$(host)/$(1)/$(1)-$($(1)_version)-$($(1)_build_id).tar.gz.txt
$(1)_patch_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)/.patches-$($(1)_build_id)
$(1)_prefixbin:=$($($(1)_type)_prefix)/bin/
$(1)_cached:=$(BASE_CACHE)/$(host)/$(1)/$(1)-$($(1)_version)-$($(1)_build_id).tar.gz
@@ -276,10 +279,53 @@ $($(1)_cached_checksum): $($(1)_cached)
$(AT)echo " Checksum file: $$@"
$(AT)cd $$(@D); $(build_SHA256SUM) $$(<F) > $$(@)
$(AT)echo " Checksum completed: $$@"
+ $(AT)echo "=== Generating build info for $(1) v$($(1)_version) ==="
+ $(AT)echo " Build info file: $$($(1)_cached_buildinfo)"
+ $(AT)echo "# Build Info for $(1) v$($(1)_version)" > $$($(1)_cached_buildinfo)
+ $(AT)echo "# Generated on: $$(shell date)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Package: $(1)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Version: $($(1)_version)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Host: $(host)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Release Type: $(release_type)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Build ID (current): $($(1)_build_id)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Build ID (legacy): $($(1)_build_id_legacy)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Build ID String (current): $($(1)_build_id_long)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Build ID String (legacy): $($(1)_build_id_long_legacy)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Dependencies: $($(1)_dependencies)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "All Dependencies: $($(1)_all_dependencies)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Recipe Hash: $($(1)_recipe_hash)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Recipe Files: $($(1)_all_file_checksums)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Toolchain (current): $($($(1)_type)_id_string)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Toolchain (legacy): $($($(1)_type)_id_string_legacy)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Build Tools (current):" >> $$($(1)_cached_buildinfo)
+ $(AT)echo " CC: $$(shell basename $($($(1)_type)_CC) 2>/dev/null || echo "unknown")" >> $$($(1)_cached_buildinfo)
+ $(AT)echo " CXX: $$(shell basename $($($(1)_type)_CXX) 2>/dev/null || echo "unknown")" >> $$($(1)_cached_buildinfo)
+ $(AT)echo " AR: $$(shell basename $($($(1)_type)_AR) 2>/dev/null || echo "unknown")" >> $$($(1)_cached_buildinfo)
+ $(AT)echo " RANLIB: $$(shell basename $($($(1)_type)_RANLIB) 2>/dev/null || echo "unknown")" >> $$($(1)_cached_buildinfo)
+ $(AT)echo " STRIP: $$(shell basename $($($(1)_type)_STRIP) 2>/dev/null || echo "unknown")" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Build Tools (legacy versions):" >> $$($(1)_cached_buildinfo)
+ $(AT)echo " CC: $$(shell $($($(1)_type)_CC) --version 2>/dev/null | head -1 || echo "unknown")" >> $$($(1)_cached_buildinfo)
+ $(AT)echo " CXX: $$(shell $($($(1)_type)_CXX) --version 2>/dev/null | head -1 || echo "unknown")" >> $$($(1)_cached_buildinfo)
+ $(AT)echo " AR: $$(shell $($($(1)_type)_AR) --version 2>/dev/null | head -1 || echo "unknown")" >> $$($(1)_cached_buildinfo)
+ $(AT)echo " RANLIB: $$(shell $($($(1)_type)_RANLIB) --version 2>/dev/null | head -1 || echo "unknown")" >> $$($(1)_cached_buildinfo)
+ $(AT)echo " STRIP: $$(shell $($($(1)_type)_STRIP) --version 2>/dev/null | head -1 || echo "unknown")" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "" >> $$($(1)_cached_buildinfo)
+ $(AT)echo "Salt Values:" >> $$($(1)_cached_buildinfo)
+ $(AT)echo " BUILD_ID_SALT: $(BUILD_ID_SALT)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo " HOST_ID_SALT: $(HOST_ID_SALT)" >> $$($(1)_cached_buildinfo)
+ $(AT)echo " Build info completed: $$($(1)_cached_buildinfo)"
.PHONY: $(1)
$(1): | $($(1)_cached_checksum)
-.SECONDARY: $($(1)_cached) $($(1)_postprocessed) $($(1)_staged) $($(1)_built) $($(1)_configured) $($(1)_preprocessed) $($(1)_extracted) $($(1)_fetched)
+.SECONDARY: $($(1)_cached) $($(1)_postprocessed) $($(1)_staged) $($(1)_built) $($(1)_configured) $($(1)_preprocessed) $($(1)_extracted) $($(1)_fetched) $($(1)_cached_buildinfo)
endef