SONIC_ONLINE_DEBS no longer overwrites local build outputs (#14698)
Closes #14697 Why I did it When using the dpkg cache feature, debians referenced under SONIC_ONLINE_DEBS always get downloaded, even if the expected debian package already exists under target/. The runs contrary to the design of Makefiles (where presence of the output file indicates it is already built). This is also counter to the behavior of the SONiC build when dpkg cache is not enabled, causing further confusion. This behavior also causes problems when doing local development, where we may want to modify the local debian files when evaluating which changes to push to the HTTP repository storing them (Artifactory). With the current behavior, our local changes are always overwritten. Work item tracking Microsoft ADO (number only): How I did it The SONIC_ONLINE_DEBS rule now skips downloading debians if they already exist under target/. How to verify it Populate target/ with locally modified debian packages. Perform the build. Ensure the local modifications remain intact, and are not overwritten.
This commit is contained in:
parent
04099f075d
commit
737c42d47d
4
slave.mk
4
slave.mk
@ -581,8 +581,8 @@ $(addprefix $(DEBS_PATH)/, $(SONIC_ONLINE_DEBS)) : $(DEBS_PATH)/% : .platform \
|
||||
# Load the target deb from DPKG cache
|
||||
$(call LOAD_CACHE,$*,$@)
|
||||
|
||||
# Skip building the target if it is already loaded from cache
|
||||
if [ -z '$($*_CACHE_LOADED)' ] ; then
|
||||
# Skip building the target if it is already loaded from cache or exists in target/ directory
|
||||
if [ -z '$($*_CACHE_LOADED)' ] && [ ! -e $(DEBS_PATH)/$* ] ; then
|
||||
|
||||
$(foreach deb,$* $($*_DERIVED_DEBS), \
|
||||
{ SKIP_BUILD_HOOK=$($*_SKIP_VERSION) curl -L -f -o $(DEBS_PATH)/$(deb) $($(deb)_CURL_OPTIONS) $($(deb)_URL) $(LOG) || { exit 1 ; } } ; )
|
||||
|
Loading…
Reference in New Issue
Block a user