Skip to content

Commit 4e08f4d

Browse files
authored
[docker-orchagent]: make build depends only on sairedis package (#6467)
backport c4b5b00 make swss build depends only on libsairedis instead of syncd. This allows to build swss without depending on vendor sai library. Currently, libsairedis build also buils syncd which requires vendor SAI lib. This makes difficult to build swss docker in buster while still keeping syncd docker in stretch, as swss requires libsairedis which also build syncd and requires vendor to provide SAI for buster. As swss docker does not really contain syncd binary, so it is not necessary to build syncd for swss docker. [submodule]: update sonic-sairedis * 9a66890 2020-06-28 | [build]: add option to build without syncd (HEAD -> 201811, origin/201811) [Guohan Lu] Signed-off-by: Guohan Lu <[email protected]>
1 parent bcda39f commit 4e08f4d

File tree

22 files changed

+118
-48
lines changed

22 files changed

+118
-48
lines changed

platform/barefoot/bfn-sai.mk

+1
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ $(BFN_SAI)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/rel
33

44
SONIC_ONLINE_DEBS += $(BFN_SAI) # $(BFN_SAI_DEV)
55
$(BFN_SAI_DEV)_DEPENDS += $(BFN_SAI)
6+
$(BFN_SAI_DEV)_CONFLICTS += $(LIBSAIVS_DEV)

platform/barefoot/rules.mk

+7-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,13 @@ include $(PLATFORM_PATH)/bfn-modules.mk
2020
SONIC_ALL += $(SONIC_ONE_IMAGE) $(SONIC_ONE_ABOOT) \
2121
$(DOCKER_FPM)
2222

23-
# Inject sai into sairedis
24-
$(LIBSAIREDIS)_DEPENDS += $(BFN_SAI) $(WNC_OSW1800_PLATFORM) $(BFN_INGRASYS_PLATFORM) $(BFN_PLATFORM) #$(LIBSAITHRIFT_DEV_BFN)
23+
# Inject sai into syncd
24+
#$(SYNCD)_DEPENDS += $(BFN_SAI) $(WNC_OSW1800_PLATFORM) $(BFN_INGRASYS_PLATFORM) $(BFN_PLATFORM)
25+
$(SYNCD)_DEPENDS += $(BFN_SAI) $(BFN_INGRASYS_PLATFORM) $(BFN_PLATFORM)
26+
27+
ifeq ($(ENABLE_SYNCD_RPC),y)
28+
$(SYNCD)_DEPENDS += $(LIBSAITHRIFT_DEV)
29+
endif
2530

2631
# Runtime dependency on sai is set only for syncd
2732
$(SYNCD)_RDEPENDS += $(BFN_SAI) $(WNC_OSW1800_PLATFORM) $(BFN_INGRASYS_PLATFORM) $(BFN_PLATFORM)

platform/broadcom/rules.mk

+5-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,11 @@ SONIC_ONLINE_FILES += $(BCMCMD) $(DSSERVE)
3131
SONIC_ALL += $(SONIC_ONE_IMAGE) $(SONIC_ONE_ABOOT_IMAGE) \
3232
$(DOCKER_FPM)
3333

34-
# Inject brcm sai into sairedis
35-
$(LIBSAIREDIS)_DEPENDS += $(BRCM_SAI) $(BRCM_SAI_DEV) $(LIBSAITHRIFT_DEV)
34+
# Inject brcm sai into syncd
35+
$(SYNCD)_DEPENDS += $(BRCM_SAI) $(BRCM_SAI_DEV)
36+
ifeq ($(ENABLE_SYNCD_RPC),y)
37+
$(SYNCD)_DEPENDS += $(LIBSAITHRIFT_DEV)
38+
endif
3639

3740
# Runtime dependency on brcm sai is set only for syncd
3841
$(SYNCD)_RDEPENDS += $(BRCM_SAI)

platform/broadcom/sai.mk

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ $(BRCM_SAI_DEV)_URL = "https://sonicstorage.blob.core.windows.net/packages/bcmsa
77

88
SONIC_ONLINE_DEBS += $(BRCM_SAI)
99
$(BRCM_SAI_DEV)_DEPENDS += $(BRCM_SAI)
10+
$(BRCM_SAI_DEV)_CONFLICTS += $(LIBSAIVS_DEV)

platform/cavium/rules.mk

+5-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,11 @@ SONIC_ALL += $(SONIC_ONE_IMAGE) \
1414
$(DOCKER_PTF_CAVM) \
1515
$(DOCKER_SYNCD_CAVM_RPC)
1616

17-
# Inject cavium sai into sairedis
18-
$(LIBSAIREDIS)_DEPENDS += $(CAVM_SAI) $(CAVM_LIBSAI) $(LIBSAITHRIFT_DEV_CAVM)
17+
# Inject cavium sai into syncd
18+
$(SYNCD)_DEPENDS += $(CAVM_SAI) $(CAVM_LIBSAI)
19+
ifeq ($(ENABLE_SYNCD_RPC),y)
20+
$(SYNCD)_DEPENDS += $(LIBSAITHRIFT_DEV_CAVM)
21+
endif
1922

2023
# Runtime dependency on cavium sai is set only for syncd
2124
$(SYNCD)_RDEPENDS += $(CAVM_SAI)

platform/centec/rules.mk

+5-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@ SONIC_ALL += $(SONIC_ONE_IMAGE) \
1212
$(DOCKER_PTF_CENTEC) \
1313
$(DOCKER_SYNCD_CENTEC_RPC)
1414

15-
# Inject centec sai into sairedis
16-
$(LIBSAIREDIS)_DEPENDS += $(CENTEC_SAI) $(LIBSAITHRIFT_DEV_CENTEC)
15+
# Inject centec sai into syncd
16+
$(SYNCD)_DEPENDS += $(CENTEC_SAI)
17+
ifeq ($(ENABLE_SYNCD_RPC),y)
18+
$(SYNCD)_DEPENDS += $(LIBSAITHRIFT_DEV)
19+
endif
1720

1821
# Runtime dependency on centec sai is set only for syncd
1922
$(SYNCD)_RDEPENDS += $(CENTEC_SAI)

platform/centec/sdk.mk

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Centec SAI
22
CENTEC_SAI = libsai_1.3.3_amd64.deb
33
$(CENTEC_SAI)_URL = https://github.com/CentecNetworks/goldengate-sai/raw/master/lib/SONiC_1.3.3/libsai_1.3.3-1.0_amd64.deb
4+
$(CENTEC_SAI)_CONFLICTS += $(LIBSAIVS_DEV)
45

56
SONIC_ONLINE_DEBS += $(CENTEC_SAI)

platform/innovium/invm-sai.mk

+2
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,7 @@ $(INVM_LIBSAI)_URL = $(INVM_SAI_ONLINE)/$(INVM_LIBSAI)
1010
$(INVM_HSAI)_URL = $(INVM_SAI_ONLINE)/$(INVM_HSAI)
1111
$(INVM_DRV)_URL = $(INVM_SAI_ONLINE)/$(INVM_DRV)
1212

13+
$(INVM_HSAI)_CONFLICTS += $(LIBSAIVS_DEV)
14+
1315
SONIC_ONLINE_DEBS += $(INVM_LIBSAI) $(INVM_HSAI) $(INVM_DRV)
1416
SONIC_STRETCH_DEBS += $(INVM_DRV)

platform/innovium/rules.mk

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ SONIC_ALL += $(SONIC_INVM_ONE_IMAGE) \
1414
$(DOCKER_PTF_INVM) \
1515
$(DOCKER_SYNCD_INVM_RPC)
1616

17-
# Inject invm sai into sairedis
18-
$(LIBSAIREDIS)_DEPENDS += $(INVM_HSAI) $(INVM_LIBSAI) $(LIBSAITHRIFT_DEV_INVM)
17+
# Inject invm sai into syncd
18+
$(SYNCD)_DEPENDS += $(INVM_HSAI) $(INVM_LIBSAI) $(LIBSAITHRIFT_DEV_INVM)
1919

2020
# Runtime dependency on invm sai is set only for syncd
2121
$(SYNCD)_RDEPENDS += $(INVM_HSAI)

platform/marvell/rules.mk

+5-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,11 @@ SONIC_ALL += $(SONIC_ONE_IMAGE) \
1111
$(DOCKER_FPM) \
1212
$(DOCKER_SYNCD_MRVL_RPC)
1313

14-
# Inject mrvl sai into sairedis
15-
$(LIBSAIREDIS)_DEPENDS += $(MRVL_FPA) $(MRVL_SAI) $(LIBSAITHRIFT_DEV_MRVL)
14+
# Inject mrvl sai into syncd
15+
$(SYNCD)_DEPENDS += $(MRVL_FPA) $(MRVL_SAI)
16+
ifeq ($(ENABLE_SYNCD_RPC),y)
17+
$(SYNCD)_DEPENDS += $(LIBSAITHRIFT_DEV)
18+
endif
1619

1720
# Runtime dependency on mrvl sai is set only for syncd
1821
$(SYNCD)_RDEPENDS += $(MRVL_SAI)

platform/marvell/sai.mk

+2
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@ export MRVL_SAI = mrvllibsai_$(MRVL_SAI_VERSION).deb
66

77
$(MRVL_SAI)_SRC_PATH = $(PLATFORM_PATH)/sai
88
$(MRVL_SAI)_DEPENDS += $(MRVL_FPA)
9+
$(MRVL_SAI)_CONFLICTS = $(LIBSAIVS_DEV)
10+
911
SONIC_MAKE_DEBS += $(MRVL_SAI)

platform/mellanox/mlnx-sai.mk

+1
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ MLNX_SAI = mlnx-sai_1.mlnx.$(MLNX_SAI_VERSION)_amd64.deb
99
$(MLNX_SAI)_SRC_PATH = $(PLATFORM_PATH)/mlnx-sai
1010
$(MLNX_SAI)_DEPENDS += $(MLNX_SDK_DEBS)
1111
$(MLNX_SAI)_RDEPENDS += $(MLNX_SDK_RDEBS) $(MLNX_SDK_DEBS)
12+
$(MLNX_SAI)_CONFLICTS += $(LIBSAIVS_DEV)
1213
SONIC_MAKE_DEBS += $(MLNX_SAI)

platform/mellanox/rules.mk

+5-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,11 @@ include $(PLATFORM_PATH)/mlnx-ssd-fw-update.mk
2121
SONIC_ALL += $(SONIC_ONE_IMAGE) \
2222
$(DOCKER_FPM)
2323

24-
# Inject mlnx sai into sairedis
25-
$(LIBSAIREDIS)_DEPENDS += $(MLNX_SAI) $(LIBSAITHRIFT_DEV)
24+
# Inject mlnx sai into syncd
25+
$(SYNCD)_DEPENDS += $(MLNX_SAI)
26+
ifeq ($(ENABLE_SYNCD_RPC),y)
27+
$(SYNCD)_DEPENDS += $(LIBSAITHRIFT_DEV)
28+
endif
2629

2730
# Runtime dependency on mlnx sai is set only for syncd
2831
$(SYNCD)_RDEPENDS += $(MLNX_SAI)

platform/nephos/rules.mk

+5-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@ SONIC_ONLINE_FILES += $(NPX_DIAG) $(DSSERVE)
2020

2121
SONIC_ALL += $(SONIC_ONE_IMAGE) $(DOCKER_FPM)
2222

23-
# Inject nephos sai into sairedis
24-
$(LIBSAIREDIS)_DEPENDS += $(NEPHOS_SAI) $(NEPHOS_SAI_DEV) $(LIBSAITHRIFT_DEV)
23+
# Inject nephos sai into syncd
24+
$(SYNCD)_DEPENDS += $(NEPHOS_SAI) $(NEPHOS_SAI_DEV)
25+
ifeq ($(ENABLE_SYNCD_RPC),y)
26+
$(SYNCD)_DEPENDS += $(LIBSAITHRIFT_DEV)
27+
endif
2528

2629
# Runtime dependency on nephos sai is set only for syncd
2730
$(SYNCD)_RDEPENDS += $(NEPHOS_SAI)

platform/nephos/sai.mk

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
SDK_VERSION = 3.0.0
22
SAI_VERSION = 1.4.1
33
SAI_COMMIT_ID = 4780e5
4+
45
NEPHOS_SAI = libsainps_$(SDK_VERSION)_sai_$(SAI_VERSION)_$(SAI_COMMIT_ID)_amd64.deb
56
$(NEPHOS_SAI)_URL = "https://github.com/NephosInc/SONiC/raw/master/sai/libsainps_$(SDK_VERSION)_sai_$(SAI_VERSION)_$(SAI_COMMIT_ID)_amd64.deb"
67

@@ -10,3 +11,4 @@ $(NEPHOS_SAI_DEV)_URL = "https://github.com/NephosInc/SONiC/raw/master/sai/libsa
1011

1112
SONIC_ONLINE_DEBS += $(NEPHOS_SAI) $(NEPHOS_SAI_DEV)
1213
$(NEPHOS_SAI_DEV)_DEPENDS += $(NEPHOS_SAI)
14+
$(NEPHOS_SAI_DEV)_CONFLICTS += $(LIBSAIVS_DEV)

platform/p4/rules.mk

+5-2
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,8 @@ include $(PLATFORM_PATH)/libsaithrift-dev.mk
1010

1111
SONIC_ALL += $(DOCKER_SONIC_P4)
1212

13-
$(LIBSAIREDIS)_DEPENDS += $(P4_SWITCH) $(LIBSAITHRIFT_DEV_P4)
14-
$(LIBSAIREDIS)_RDEPENDS += $(P4_SWITCH)
13+
$(SYNCD)_DEPENDS += $(P4_SWITCH)
14+
ifeq ($(ENABLE_SYNCD_RPC),y)
15+
$(SYNCD)_DEPENDS += $(LIBSAITHRIFT_DEV_P4)
16+
endif
17+
$(SYNCD)_RDEPENDS += $(P4_SWITCH)

platform/vs/syncd-vs.mk

-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
$(LIBSAIREDIS)_DPKG_TARGET = binary-syncd-vs
22

3-
# inject libsaivs and libsaivs_dev to swss build dependency
4-
$(SWSS)_DEPENDS += $(LIBSAIVS) $(LIBSAIVS_DEV)
5-
63
SYNCD_VS = syncd-vs_1.0.0_amd64.deb
74
$(SYNCD_VS)_RDEPENDS += $(LIBSAIREDIS) $(LIBSAIMETADATA) $(LIBSAIVS)
85
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(SYNCD_VS)))

rules/sairedis.mk

+2-24
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# sairedis package
22

33
LIBSAIREDIS = libsairedis_1.0.0_amd64.deb
4+
$(LIBSAIREDIS)_DPKG_TARGET = binary-sairedis
45
$(LIBSAIREDIS)_SRC_PATH = $(SRC_PATH)/sonic-sairedis
5-
$(LIBSAIREDIS)_DEPENDS += $(LIBSWSSCOMMON_DEV) $(LIBTHRIFT_DEV)
6+
$(LIBSAIREDIS)_DEPENDS += $(LIBSWSSCOMMON_DEV)
67
$(LIBSAIREDIS)_RDEPENDS += $(LIBSWSSCOMMON)
78
$(LIBSAIREDIS)_DEB_BUILD_OPTIONS = nocheck
89
SONIC_DPKG_DEBS += $(LIBSAIREDIS)
@@ -16,16 +17,6 @@ $(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIVS)))
1617
LIBSAIVS_DEV = libsaivs-dev_1.0.0_amd64.deb
1718
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIVS_DEV)))
1819

19-
ifneq ($(CONFIGURED_PLATFORM),vs)
20-
SYNCD = syncd_1.0.0_amd64.deb
21-
$(SYNCD)_RDEPENDS += $(LIBSAIREDIS) $(LIBSAIMETADATA)
22-
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(SYNCD)))
23-
24-
SYNCD_RPC = syncd-rpc_1.0.0_amd64.deb
25-
$(SYNCD_RPC)_RDEPENDS += $(LIBSAIREDIS) $(LIBSAIMETADATA)
26-
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(SYNCD_RPC)))
27-
endif
28-
2920
LIBSAIMETADATA = libsaimetadata_1.0.0_amd64.deb
3021
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIMETADATA)))
3122

@@ -43,18 +34,6 @@ $(LIBSAIVS_DBG)_DEPENDS += $(LIBSAIVS)
4334
$(LIBSAIVS_DBG)_RDEPENDS += $(LIBSAIVS)
4435
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIVS_DBG)))
4536

46-
ifneq ($(CONFIGURED_PLATFORM),vs)
47-
SYNCD_DBG = syncd-dbg_1.0.0_amd64.deb
48-
$(SYNCD_DBG)_DEPENDS += $(SYNCD)
49-
$(SYNCD_DBG)_RDEPENDS += $(SYNCD)
50-
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(SYNCD_DBG)))
51-
52-
SYNCD_RPC_DBG = syncd-rpc-dbg_1.0.0_amd64.deb
53-
$(SYNCD_RPC_DBG)_DEPENDS += $(SYNCD_RPC)
54-
$(SYNCD_RPC_DBG)_RDEPENDS += $(SYNCD_RPC)
55-
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(SYNCD_RPC_DBG)))
56-
endif
57-
5837
LIBSAIMETADATA_DBG = libsaimetadata-dbg_1.0.0_amd64.deb
5938
$(LIBSAIMETADATA_DBG)_DEPENDS += $(LIBSAIMETADATA)
6039
$(LIBSAIMETADATA_DBG)_RDEPENDS += $(LIBSAIMETADATA)
@@ -65,4 +44,3 @@ $(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIMETADATA_DBG)))
6544
# are archived into debug one image to facilitate debugging.
6645
#
6746
DBG_SRC_ARCHIVE += sonic-sairedis
68-

rules/swss.mk

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
SWSS = swss_1.0.0_amd64.deb
44
$(SWSS)_SRC_PATH = $(SRC_PATH)/sonic-swss
55
$(SWSS)_DEPENDS += $(LIBSAIREDIS_DEV) $(LIBSAIMETADATA_DEV) $(LIBTEAM_DEV) \
6-
$(LIBTEAMDCT) $(LIBTEAM_UTILS) $(LIBSWSSCOMMON_DEV)
6+
$(LIBTEAMDCT) $(LIBTEAM_UTILS) $(LIBSWSSCOMMON_DEV) \
7+
$(LIBSAIVS) $(LIBSAIVS_DEV)
78
$(SWSS)_RDEPENDS += $(LIBSAIREDIS) $(LIBSAIMETADATA) $(LIBTEAM) $(LIBSWSSCOMMON) $(PYTHON_SWSSCOMMON)
9+
810
SONIC_DPKG_DEBS += $(SWSS)
911

1012
SWSS_DBG = swss-dbg_1.0.0_amd64.deb

rules/syncd.mk

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# only used for non-vs platforms
2+
3+
ifneq ($(CONFIGURED_PLATFORM),vs)
4+
5+
SYNCD = syncd_1.0.0_amd64.deb
6+
$(SYNCD)_RDEPENDS += $(LIBSAIREDIS) $(LIBSAIMETADATA)
7+
$(SYNCD)_DPKG_TARGET = binary-syncd
8+
$(SYNCD)_SRC_PATH = $(SRC_PATH)/sonic-sairedis
9+
$(SYNCD)_DEPENDS += $(LIBSWSSCOMMON_DEV) $(LIBSAIREDIS)
10+
$(SYNCD)_RDEPENDS += $(LIBSWSSCOMMON)
11+
$(SYNCD)_DEB_BUILD_OPTIONS = nocheck
12+
SONIC_DPKG_DEBS += $(SYNCD)
13+
14+
ifeq ($(ENABLE_SYNCD_RPC),y)
15+
SYNCD_RPC = syncd-rpc_1.0.0_amd64.deb
16+
$(SYNCD_RPC)_RDEPENDS += $(LIBSAIREDIS) $(LIBSAIMETADATA)
17+
$(eval $(call add_derived_package,$(SYNCD),$(SYNCD_RPC)))
18+
19+
# Inject libthrift build dependency for RPC build
20+
$(SYNCD)_DEPENDS += $(LIBSWSSCOMMON_DEV) $(LIBTHRIFT_DEV)
21+
$(SYNCD)_DPKG_TARGET = binary-syncd-rpc
22+
endif
23+
24+
SYNCD_DBG = syncd-dbg_1.0.0_amd64.deb
25+
$(SYNCD_DBG)_DEPENDS += $(SYNCD)
26+
$(SYNCD_DBG)_RDEPENDS += $(SYNCD)
27+
$(eval $(call add_derived_package,$(SYNCD),$(SYNCD_DBG)))
28+
29+
ifeq ($(ENABLE_SYNCD_RPC),y)
30+
SYNCD_RPC_DBG = syncd-rpc-dbg_1.0.0_amd64.deb
31+
$(SYNCD_RPC_DBG)_DEPENDS += $(SYNCD_RPC)
32+
$(SYNCD_RPC_DBG)_RDEPENDS += $(SYNCD_RPC)
33+
$(eval $(call add_derived_package,$(SYNCD),$(SYNCD_RPC_DBG)))
34+
endif
35+
36+
endif

slave.mk

+22-1
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ SONIC_INSTALL_TARGETS = $(addsuffix -install,$(addprefix $(DEBS_PATH)/, \
375375
$(SONIC_PYTHON_STDEB_DEBS) \
376376
$(SONIC_DERIVED_DEBS) \
377377
$(SONIC_EXTRA_DEBS)))
378-
$(SONIC_INSTALL_TARGETS) : $(DEBS_PATH)/%-install : .platform $$(addsuffix -install,$$(addprefix $(DEBS_PATH)/,$$($$*_DEPENDS))) $(DEBS_PATH)/$$*
378+
$(SONIC_INSTALL_TARGETS) : $(DEBS_PATH)/%-install : .platform $$(addsuffix -install,$$(addprefix $(DEBS_PATH)/,$$($$*_DEPENDS))) $(DEBS_PATH)/$$* $$(addsuffix -uninstall,$$(addprefix $(DEBS_PATH)/,$$($$*_CONFLICTS)))
379379
$(HEADER)
380380
[ -f $(DEBS_PATH)/$* ] || { echo $(DEBS_PATH)/$* does not exist $(LOG) && false $(LOG) }
381381
# put a lock here because dpkg does not allow installing packages in parallel
@@ -386,6 +386,27 @@ $(SONIC_INSTALL_TARGETS) : $(DEBS_PATH)/%-install : .platform $$(addsuffix -inst
386386
done
387387
$(FOOTER)
388388

389+
# Targets for installing debian packages prior to build one that depends on them
390+
SONIC_UNINSTALL_TARGETS = $(addsuffix -uninstall,$(addprefix $(DEBS_PATH)/, \
391+
$(SONIC_ONLINE_DEBS) \
392+
$(SONIC_COPY_DEBS) \
393+
$(SONIC_MAKE_DEBS) \
394+
$(SONIC_DPKG_DEBS) \
395+
$(SONIC_PYTHON_STDEB_DEBS) \
396+
$(SONIC_DERIVED_DEBS) \
397+
$(SONIC_EXTRA_DEBS)))
398+
399+
$(SONIC_UNINSTALL_TARGETS) : $(DEBS_PATH)/%-uninstall : .platform
400+
$(HEADER)
401+
[ -f $(DEBS_PATH)/$* ] || { echo $(DEBS_PATH)/$* does not exist $(LOG) && false $(LOG) }
402+
# put a lock here because dpkg does not allow installing packages in parallel
403+
while true; do
404+
if mkdir $(DEBS_PATH)/dpkg_lock &> /dev/null; then
405+
{ sudo DEBIAN_FRONTEND=noninteractive dpkg -P $(firstword $(subst _, ,$(basename $*))) $(LOG) && rm -d $(DEBS_PATH)/dpkg_lock && break; } || { rm -d $(DEBS_PATH)/dpkg_lock && exit 1 ; }
406+
fi
407+
done
408+
$(FOOTER)
409+
389410
###############################################################################
390411
## Python packages
391412
###############################################################################

src/sonic-sairedis

0 commit comments

Comments
 (0)