Skip to content

Commit fff30e7

Browse files
jlevequesanthosh-kt
authored andcommitted
[sonic-utilities] Build and install as a Python wheel package (sonic-net#5409)
We are moving toward building all Python packages for SONiC as wheel packages rather than Debian packages. This will also allow us to more easily transition to Python 3. Python files are now packaged in "sonic-utilities" Pyhton wheel. Data files are now packaged in "sonic-utilities-data" Debian package. **- How I did it** - Build and install sonic-utilities as a Python package - Remove explicit installation of wheel dependencies, as these will now get installed implicitly by pip when installing sonic-utilities as a wheel - Build and install new sonic-utilities-data package to install data files required by sonic-utilities applications - Update all references to sonic-utilities scripts/entrypoints to either reference the new /usr/local/bin/ location or remove absolute path entirely where applicable Submodule updates: * src/sonic-utilities aa27dd9...2244d7b (5): > Support building sonic-utilities as a Python wheel package instead of a Debian package (sonic-net#1122) > [consutil] Display remote device name in show command (sonic-net#1120) > [vrf] fix check state_db error when vrf moving (sonic-net#1119) > [consutil] Fix issue where the ConfigDBConnector's reference is missing (sonic-net#1117) > Update to make config load/reload backward compatible. (sonic-net#1115) * src/sonic-ztp dd025bc...911d622 (1): > Update paths to reflect new sonic-utilities install location, /usr/local/bin/ (sonic-net#19)
1 parent 06ac4d4 commit fff30e7

File tree

22 files changed

+92
-79
lines changed

22 files changed

+92
-79
lines changed

build_debian.sh

+5-1
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,10 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
318318
haveged \
319319
jq
320320

321+
# Install "wheel" package so that we can install .whl packages and not
322+
# encounter a "error: invalid command 'bdist_wheel'" error
323+
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install wheel
324+
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install wheel
321325

322326
if [[ $CONFIGURED_ARCH == amd64 ]]; then
323327
## Pre-install the fundamental packages for amd64 (x86)
@@ -397,7 +401,7 @@ sudo mkdir -p $FILESYSTEM_ROOT/var/core
397401

398402
# Config sysctl
399403
sudo augtool --autosave "
400-
set /files/etc/sysctl.conf/kernel.core_pattern '|/usr/bin/coredump-compress %e %t %p %P'
404+
set /files/etc/sysctl.conf/kernel.core_pattern '|/usr/local/bin/coredump-compress %e %t %p %P'
401405
set /files/etc/sysctl.conf/kernel.softlockup_panic 1
402406
set /files/etc/sysctl.conf/kernel.panic 10
403407
set /files/etc/sysctl.conf/vm.panic_on_oom 2

dockers/docker-fpm-frr/base_image_files/TSC

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
docker exec -i bgp /usr/bin/TSC
44

5-
/usr/bin/portstat -p 5
5+
portstat -p 5

files/build_templates/docker_image_ctl.j2

+2-2
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,10 @@ function postStartAction()
125125
$SONIC_DB_CLI CONFIG_DB SET "CONFIG_DB_INITIALIZED" "1"
126126
fi
127127

128-
if [[ -x /usr/bin/db_migrator.py ]]; then
128+
if [[ -x /usr/local/bin/db_migrator.py ]]; then
129129
# Migrate the DB to the latest schema version if needed
130130
if [ -z "$DEV" ]; then
131-
/usr/bin/db_migrator.py -o migrate
131+
/usr/local/bin/db_migrator.py -o migrate
132132
fi
133133
fi
134134
# Add redis UDS to the redis group and give read/write access to the group

files/build_templates/sonic_debian_extension.j2

+14-16
Original file line numberDiff line numberDiff line change
@@ -169,27 +169,29 @@ sudo cp {{platform_common_py2_wheel_path}} $FILESYSTEM_ROOT/$PLATFORM_COMMON_PY2
169169
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install $PLATFORM_COMMON_PY2_WHEEL_NAME
170170
sudo rm -rf $FILESYSTEM_ROOT/$PLATFORM_COMMON_PY2_WHEEL_NAME
171171

172+
# Install Debian packages and their dependencies which are needed by sonic-utilities
173+
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f python-m2crypto
174+
172175
# Install built Python Click package (and its dependencies via 'apt-get -y install -f')
173176
# Do this before installing sonic-utilities so that it doesn't attempt to install
174177
# an older version as part of its dependencies
175178
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/python-click*_all.deb || \
176179
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
177180

178-
# Install python pexpect used by sonic-utilities consutil
179-
# using pip install instead to get a more recent version than is available through debian
180-
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install pexpect
181-
182-
# Install tabulate >= 0.8.1 via pip in order to support multi-line row output for sonic-utilities
183-
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install tabulate==0.8.2
184-
185-
# Install packages to support Dynamic Port Breakout config command for sonic-utilities
186-
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install xmltodict==0.12.0
187-
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install jsondiff==1.2.0
181+
# Install SONiC Utilities Python 2 package
182+
SONIC_UTILITIES_PY2_WHEEL_NAME=$(basename {{sonic_utilities_py2_wheel_path}})
183+
sudo cp {{sonic_utilities_py2_wheel_path}} $FILESYSTEM_ROOT/$SONIC_UTILITIES_PY2_WHEEL_NAME
184+
sudo LANG=C chroot $FILESYSTEM_ROOT pip install $SONIC_UTILITIES_PY2_WHEEL_NAME
185+
sudo rm -rf $FILESYSTEM_ROOT/$SONIC_UTILITIES_PY2_WHEEL_NAME
188186

189-
# Install SONiC Utilities (and its dependencies via 'apt-get -y install -f')
190-
sudo dpkg --root=$FILESYSTEM_ROOT -i $python_debs_path/python-sonic-utilities_*.deb || \
187+
# Install sonic-utilities data files (and any dependencies via 'apt-get -y install -f')
188+
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/sonic-utilities-data_*.deb || \
191189
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
192190

191+
# sonic-utilities-data installs bash-completion as a dependency. However, it is disabled by default
192+
# in bash.bashrc, so we copy a version of the file with it enabled here.
193+
sudo cp -f $IMAGE_CONFIGS/bash/bash.bashrc $FILESYSTEM_ROOT/etc/
194+
193195
{% if enable_ztp == "y" %}
194196
# Install ZTP (and its dependencies via 'apt-get -y install -f')
195197
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/sonic-ztp_*.deb || \
@@ -202,10 +204,6 @@ sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/sonic-host-service_*.deb || \
202204
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
203205
{% endif %}
204206

205-
# SONiC utilities installs bash-completion as a dependency. However, it is disabled by default
206-
# in bash.bashrc, so we copy a version of the file with it enabled here.
207-
sudo cp -f $IMAGE_CONFIGS/bash/bash.bashrc $FILESYSTEM_ROOT/etc/
208-
209207
# Install SONiC Device Data (and its dependencies via 'apt-get -y install -f')
210208
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/sonic-device-data_*.deb || \
211209
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f

files/image_config/config-setup/config-setup

+2-2
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,9 @@ load_config()
188188
return $?
189189
fi
190190

191-
if [[ -x /usr/bin/db_migrator.py ]]; then
191+
if [[ -x /usr/local/bin/db_migrator.py ]]; then
192192
# Migrate the DB to the latest schema version if needed
193-
/usr/bin/db_migrator.py -o migrate
193+
/usr/local/bin/db_migrator.py -o migrate
194194
fi
195195

196196
sonic-db-cli CONFIG_DB SET "CONFIG_DB_INITIALIZED" "1"

files/image_config/fstrim/fstrim.service

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ Description=Discard unused blocks
33

44
[Service]
55
Type=oneshot
6-
ExecStartPre=/usr/bin/log_ssd_health
6+
ExecStartPre=/usr/local/bin/log_ssd_health
77
ExecStart=/sbin/fstrim -av

files/image_config/monit/conf.d/sonic-host

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@ check process rsyslog with pidfile /var/run/rsyslogd.pid
2727
# Hence for any discrepancy, there will be log messages for "ERR" level
2828
# from both route_check.py & monit.
2929
#
30-
check program routeCheck with path "/usr/bin/route_check.py"
30+
check program routeCheck with path "/usr/local/bin/route_check.py"
3131
every 5 cycles
3232
if status != 0 then alert

files/image_config/sudoers/sudoers

+12-13
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,25 @@ Defaults lecture_file = /etc/sudoers.lecture
1919

2020
# Cmnd alias specification
2121
# Note: bcmcmd is dangerous for users in read only netgroups because it may operate ASIC
22-
Cmnd_Alias READ_ONLY_CMDS = /sbin/brctl show, \
23-
/usr/bin/decode-syseeprom, \
24-
/usr/bin/docker images *, \
22+
Cmnd_Alias READ_ONLY_CMDS = /bin/cat /var/log/syslog*, \
23+
/sbin/brctl show, \
2524
/usr/bin/docker exec snmp cat /etc/snmp/snmpd.conf, \
2625
/usr/bin/docker exec bgp cat /etc/quagga/bgpd.conf, \
2726
/usr/bin/docker exec * ps aux, \
27+
/usr/bin/docker images *, \
2828
/usr/bin/docker ps*, \
29-
/usr/bin/generate_dump, \
3029
/usr/bin/lldpctl, \
31-
/usr/bin/lldpshow, \
32-
/usr/bin/psuutil *, \
3330
/usr/bin/sensors, \
34-
/usr/bin/sonic-installer list, \
35-
/usr/bin/sfputil show *, \
36-
/usr/bin/teamshow, \
31+
/usr/bin/tail -F /var/log/syslog, \
3732
/usr/bin/vtysh -c show *, \
38-
/bin/cat /var/log/syslog*, \
39-
/usr/bin/tail -F /var/log/syslog
40-
41-
Cmnd_Alias PASSWD_CMDS = /usr/bin/config tacacs passkey *, \
33+
/usr/local/bin/decode-syseeprom, \
34+
/usr/local/bin/generate_dump, \
35+
/usr/local/bin/lldpshow, \
36+
/usr/local/bin/psuutil *, \
37+
/usr/local/bin/sonic-installer list, \
38+
/usr/local/bin/sfputil show *
39+
40+
Cmnd_Alias PASSWD_CMDS = /usr/local/bin/config tacacs passkey *, \
4241
/usr/sbin/chpasswd *
4342

4443
# User privilege specification

files/image_config/warmboot-finalizer/finalize-warmboot.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ VERBOSE=no
66
COMP_LIST="orchagent neighsyncd bgp natsyncd"
77
EXP_STATE="reconciled"
88

9-
ASSISTANT_SCRIPT="/usr/bin/neighbor_advertiser"
9+
ASSISTANT_SCRIPT="/usr/local/bin/neighbor_advertiser"
1010

1111

1212
function debug()

files/image_config/watchdog-control/watchdog-control.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#! /bin/bash
22

33
VERBOSE=no
4-
WATCHDOG_UTIL="/usr/bin/watchdogutil"
4+
WATCHDOG_UTIL="/usr/local/bin/watchdogutil"
55

66
function debug()
77
{

platform/broadcom/sonic-platform-modules-dell/common/fw-updater

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ HOST_GRUB_CFG = HOST_GRUB_DIR + '/grub/grub.cfg'
1616
HOST_GRUB_ENV = HOST_GRUB_DIR + '/grub/grubenv'
1717
HOST_GRUB_BOOT_DIR = '--boot-directory=' + HOST_GRUB_DIR
1818
HOST_PLATFORM_INFO = HOST_GRUB_DIR + '/platform'
19-
dell_reload_tool = '/usr/bin/reboot'
19+
dell_reload_tool = '/usr/local/bin/reboot'
2020

2121

2222

platform/mellanox/mlnx-onie-fw-update.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ system_reboot() {
9494
sleep 5s
9595

9696
# Use SONiC reboot scenario
97-
/usr/bin/reboot
97+
/usr/local/bin/reboot
9898
}
9999

100100
terminate_handler() {

platform/p4/docker-sonic-p4.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ $(DOCKER_SONIC_P4)_DEPENDS += $(SWSS) \
1111
$(LIBTEAMDCTL) \
1212
$(LIBTEAM_UTILS) \
1313
$(SONIC_DEVICE_DATA) \
14-
$(SONIC_UTILS) \
14+
$(SONIC_UTILITIES_PY2) \
1515
$(IPROUTE2)
1616

1717
# ifeq ($(ROUTING_STACK), quagga)

platform/vs/docker-sonic-vs.mk

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ $(DOCKER_SONIC_VS)_DEPENDS += $(SWSS) \
1010
$(SONIC_DEVICE_DATA) \
1111
$(LIBYANG) \
1212
$(LIBYANG_CPP) \
13-
$(LIBYANG_PY2)
14-
15-
$(DOCKER_SONIC_VS)_PYTHON_DEBS += $(SONIC_UTILS)
13+
$(LIBYANG_PY2) \
14+
$(SONIC_UTILITIES_DATA)
1615

1716
# swsssdk is a dependency of sonic-py-common
1817
# TODO: sonic-py-common should depend on swsscommon instead
@@ -21,7 +20,8 @@ $(DOCKER_SONIC_VS)_PYTHON_WHEELS += $(SWSSSDK_PY2) \
2120
$(SONIC_PY_COMMON_PY2) \
2221
$(SONIC_PY_COMMON_PY3) \
2322
$(SONIC_YANG_MODELS_PY3) \
24-
$(SONIC_YANG_MGMT_PY)
23+
$(SONIC_YANG_MGMT_PY) \
24+
$(SONIC_UTILITIES_PY2)
2525

2626
ifeq ($(INSTALL_DEBUG_TOOLS), y)
2727
$(DOCKER_SONIC_VS)_DEPENDS += $(SWSS_DBG) \

platform/vs/docker-sonic-vs/Dockerfile.j2

+5-6
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ RUN apt-get install -y net-tools \
4646
conntrack \
4747
iptables \
4848
python3-pip \
49-
jq
49+
jq \
50+
python-m2crypto
5051

5152
# install redis-server
5253
RUN curl -o redis-tools_6.0.6-1~bpo10+1_amd64.deb "https://sonicstorage.blob.core.windows.net/packages/redis/redis-tools_6.0.6-1~bpo10+1_amd64.deb?sv=2015-04-05&sr=b&sig=73zbmjkf3pi%2Bn0R8Hy7CWT2EUvOAyzM5aLYJWCLySGM%3D&se=2030-09-06T19%3A44%3A59Z&sp=r"
@@ -56,6 +57,8 @@ RUN rm redis-tools_6.0.6-1~bpo10+1_amd64.deb redis-server_6.0.6-1~bpo10+1_amd64.
5657

5758
RUN pip install setuptools
5859
RUN pip3 install setuptools
60+
RUN pip install wheel
61+
RUN pip3 install wheel
5962
RUN pip install py2_ipaddress
6063
RUN pip install six
6164
RUN pip install pyroute2==0.5.3 netifaces==0.10.7
@@ -102,11 +105,7 @@ COPY python-wheels/{{ whl }} python-wheels/
102105
# install PKGs after copying all PKGs to avoid dependency failure
103106
# use py3 to find python3 package, which is forced by wheel as of now
104107
{%- for whl in docker_sonic_vs_whls.split(' ') %}
105-
{%- if 'py3' in whl %}
106-
RUN pip3 install python-wheels/{{ whl }}
107-
{% else -%}
108-
RUN pip install python-wheels/{{ whl }}
109-
{%- endif %}
108+
RUN pip{% if 'py3' in whl %}3{% endif %} install python-wheels/{{ whl }}
110109
{%- endfor %}
111110
{% endif %}
112111

rules/sonic-utilities-data.dep

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
SPATH := $($(SONIC_UTILITIES_DATA)_SRC_PATH)
2+
DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/sonic-utilities-data.mk rules/sonic-utilities-data.dep
3+
DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST)
4+
DEP_FILES += $(shell git ls-files $(SPATH))
5+
6+
$(SONIC_UTILITIES_DATA)_CACHE_MODE := GIT_CONTENT_SHA
7+
$(SONIC_UTILITIES_DATA)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
8+
$(SONIC_UTILITIES_DATA)_DEP_FILES := $(DEP_FILES)
9+

rules/sonic-utilities-data.mk

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# SONiC command line utilities data package
2+
3+
SONIC_UTILITIES_DATA = sonic-utilities-data_1.0-1_all.deb
4+
$(SONIC_UTILITIES_DATA)_SRC_PATH = $(SRC_PATH)/sonic-utilities/sonic-utilities-data
5+
SONIC_DPKG_DEBS += $(SONIC_UTILITIES_DATA)

rules/sonic-utilities.dep

+6-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
2-
SPATH := $($(SONIC_UTILS)_SRC_PATH)
1+
SPATH := $($(SONIC_UTILITIES_PY2)_SRC_PATH)
32
DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/sonic-utilities.mk rules/sonic-utilities.dep
43
DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST)
54
SMDEP_FILES := $(addprefix $(SPATH)/,$(shell cd $(SPATH) && git ls-files))
65

7-
$(SONIC_UTILS)_CACHE_MODE := GIT_CONTENT_SHA
8-
$(SONIC_UTILS)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
9-
$(SONIC_UTILS)_DEP_FILES := $(DEP_FILES)
10-
$(SONIC_UTILS)_SMDEP_FILES := $(SMDEP_FILES)
11-
$(SONIC_UTILS)_SMDEP_PATHS := $(SPATH)
12-
6+
$(SONIC_UTILITIES_PY2)_CACHE_MODE := GIT_CONTENT_SHA
7+
$(SONIC_UTILITIES_PY2)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
8+
$(SONIC_UTILITIES_PY2)_DEP_FILES := $(DEP_FILES)
9+
$(SONIC_UTILITIES_PY2)_SMDEP_FILES := $(SMDEP_FILES)
10+
$(SONIC_UTILITIES_PY2)_SMDEP_PATHS := $(SPATH)

rules/sonic-utilities.mk

+14-15
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,18 @@
66
# added here also. However, the current build system assumes all runtime
77
# dependencies are .deb packages.
88
#
9-
# TODO: Create a way to specify both .deb and .whl runtime dependencies
10-
# then add the aforementioned runtime dependencies here.
11-
#
129

13-
SONIC_UTILS = python-sonic-utilities_1.2-1_all.deb
14-
$(SONIC_UTILS)_SRC_PATH = $(SRC_PATH)/sonic-utilities
15-
$(SONIC_UTILS)_DEBS_DEPENDS = $(LIBYANG) \
16-
$(LIBYANG_CPP) \
17-
$(LIBYANG_PY2) \
18-
$(LIBYANG_PY3)
19-
$(SONIC_UTILS)_WHEEL_DEPENDS = $(SONIC_PY_COMMON_PY2) \
20-
$(SONIC_PY_COMMON_PY3) \
21-
$(SONIC_CONFIG_ENGINE) \
22-
$(SONIC_YANG_MGMT_PY) \
23-
$(SONIC_YANG_MODELS_PY3)
24-
SONIC_PYTHON_STDEB_DEBS += $(SONIC_UTILS)
10+
SONIC_UTILITIES_PY2 = sonic_utilities-1.2-py2-none-any.whl
11+
$(SONIC_UTILITIES_PY2)_SRC_PATH = $(SRC_PATH)/sonic-utilities
12+
$(SONIC_UTILITIES_PY2)_PYTHON_VERSION = 2
13+
$(SONIC_UTILITIES_PY2)_DEPENDS += $(SONIC_PY_COMMON_PY2) \
14+
$(SONIC_PY_COMMON_PY3) \
15+
$(SWSSSDK_PY2) \
16+
$(SONIC_CONFIG_ENGINE) \
17+
$(SONIC_YANG_MGMT_PY) \
18+
$(SONIC_YANG_MODELS_PY3)
19+
$(SONIC_UTILITIES_PY2)_DEBS_DEPENDS = $(LIBYANG) \
20+
$(LIBYANG_CPP) \
21+
$(LIBYANG_PY2) \
22+
$(LIBYANG_PY3)
23+
SONIC_PYTHON_WHEELS += $(SONIC_UTILITIES_PY2)

slave.mk

+4-2
Original file line numberDiff line numberDiff line change
@@ -802,12 +802,13 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \
802802
$(LIBPAM_TACPLUS) \
803803
$(LIBNSS_TACPLUS) \
804804
$(MONIT) \
805-
$(PYTHON_SWSSCOMMON)) \
805+
$(PYTHON_SWSSCOMMON) \
806+
$(SONIC_UTILITIES_DATA)) \
806807
$$(addprefix $(TARGET_PATH)/,$$($$*_DOCKERS)) \
807808
$$(addprefix $(FILES_PATH)/,$$($$*_FILES)) \
808809
$(if $(findstring y,$(ENABLE_ZTP)),$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$(SONIC_ZTP))) \
809810
$(if $(findstring y,$(INCLUDE_HOST_SERVICE)),$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$(SONIC_HOST_SERVICE))) \
810-
$(addprefix $(PYTHON_DEBS_PATH)/,$(SONIC_UTILS)) \
811+
$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_UTILITIES_PY2)) \
811812
$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PY_COMMON_PY2)) \
812813
$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PY_COMMON_PY3)) \
813814
$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_CONFIG_ENGINE)) \
@@ -858,6 +859,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \
858859
export multi_instance="false"
859860
export python_swss_debs="$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$($(LIBSWSSCOMMON)_RDEPENDS))"
860861
export python_swss_debs+=" $(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$(LIBSWSSCOMMON)) $(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$(PYTHON_SWSSCOMMON))"
862+
export sonic_utilities_py2_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_UTILITIES_PY2))"
861863

862864
$(foreach docker, $($*_DOCKERS),\
863865
export docker_image="$(docker)"

src/sonic-utilities

src/sonic-ztp

0 commit comments

Comments
 (0)