Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libyang: upgrade to v3 step 2 -- port sonic-yang-models test cases #21719

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,10 @@

# yang
/src/sonic-yang-models/ @praveen-li @dgsudharsan @rathnasabapathyv @venkatmahalingam @qiluo-msft
/src/sonic-yang-mgmt/ @sonet-net/sonic-management
/src/sonic-yang-mgmt/ @sonic-net/sonic-management
/src/libyang/ @sonic-net/sonic-management
/src/libyang1/ @sonic-net/sonic-management
/src/libyang2/ @sonic-net/sonic-management
/src/libyang3/ @sonic-net/sonic-management
/src/libyang3-py3/ @sonic-net/sonic-management

# bgpcfgd
/src/sonic-bgpcfgd/ @StormLiangMS
Expand Down
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -132,4 +132,4 @@
url = https://github.com/Marvell-switching/sonic-platform-marvell.git
[submodule "platform/vpp"]
path = platform/vpp
url = https://github.com/sonic-net/sonic-platform-vpp.git
url = https://github.com/sonic-net/sonic-platform-vpp.git
4 changes: 2 additions & 2 deletions rules/docker-fpm-frr.mk
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ DOCKER_FPM_FRR_DBG = $(DOCKER_FPM_FRR_STEM)-$(DBG_IMAGE_MARK).gz
$(DOCKER_FPM_FRR)_PATH = $(DOCKERS_PATH)/$(DOCKER_FPM_FRR_STEM)
$(DOCKER_FPM_FRR)_PYTHON_WHEELS += $(SONIC_BGPCFGD) $(SONIC_FRR_MGMT_FRAMEWORK)

$(DOCKER_FPM_FRR)_DEPENDS += $(FRR) $(FRR_SNMP) $(SWSS) $(LIBYANG2)
$(DOCKER_FPM_FRR)_DEPENDS += $(FRR) $(FRR_SNMP) $(SWSS) $(LIBYANG3)
$(DOCKER_FPM_FRR)_DBG_DEPENDS = $($(DOCKER_SWSS_LAYER_BOOKWORM)_DBG_DEPENDS)
$(DOCKER_FPM_FRR)_DBG_DEPENDS += $(SWSS_DBG) $(LIBSWSSCOMMON_DBG) \
$(FRR_DBG) $(FRR_SNMP_DBG) $(LIBYANG2_DBG)
$(FRR_DBG) $(FRR_SNMP_DBG) $(LIBYANG3_DBG)

$(DOCKER_FPM_FRR)_DBG_IMAGE_PACKAGES = $($(DOCKER_SWSS_LAYER_BOOKWORM)_DBG_IMAGE_PACKAGES)

Expand Down
5 changes: 2 additions & 3 deletions rules/frr.mk
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ export FRR_VERSION FRR_SUBVERSION FRR_BRANCH FRR_TAG


FRR = frr_$(FRR_VERSION)-sonic-$(FRR_SUBVERSION)_$(CONFIGURED_ARCH).deb
$(FRR)_DEPENDS += $(LIBSNMP_DEV) $(LIBYANG2) $(LIBYANG2_DEV)
$(FRR)_RDEPENDS += $(LIBYANG2)
$(FRR)_UNINSTALLS = $(LIBYANG2_DEV) $(LIBYANG2)
$(FRR)_DEPENDS += $(LIBSNMP_DEV) $(LIBYANG3_DEV)
$(FRR)_RDEPENDS += $(LIBYANG3)
$(FRR)_SRC_PATH = $(SRC_PATH)/sonic-frr
SONIC_MAKE_DEBS += $(FRR)

Expand Down
4 changes: 2 additions & 2 deletions rules/libyang.mk
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ LIBYANG_PY3 = python3-yang_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb
$(LIBYANG_PY3)_DEPENDS += $(LIBYANG) $(LIBYANG_CPP)
$(eval $(call add_derived_package,$(LIBYANG),$(LIBYANG_PY3)))

$(eval $(call add_conflict_package,$(LIBYANG),$(LIBYANG1),$(LIBYANG2)))
$(eval $(call add_conflict_package,$(LIBYANG_DEV),$(LIBYANG1_DEV),$(LIBYANG2_DEV)))
#$(eval $(call add_conflict_package,$(LIBYANG),$(LIBYANG3)))
$(eval $(call add_conflict_package,$(LIBYANG_DEV),$(LIBYANG3_DEV)))

export LIBYANG LIBYANG_DBGSYM LIBYANG_DEV LIBYANG_CPP LIBYANG_PY3
10 changes: 0 additions & 10 deletions rules/libyang1.dep

This file was deleted.

43 changes: 0 additions & 43 deletions rules/libyang1.mk

This file was deleted.

10 changes: 0 additions & 10 deletions rules/libyang2.dep

This file was deleted.

31 changes: 0 additions & 31 deletions rules/libyang2.mk

This file was deleted.

11 changes: 11 additions & 0 deletions rules/libyang3-py3.dep
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@

SPATH := $($(LIBYANG3_PY3)_SRC_PATH)
DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/libyang3-py3.mk rules/libyang3-py3.dep
DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST)
SMDEP_FILES := $(addprefix $(SPATH)/,$(shell cd $(SPATH) && find . -type f -exec sh -c 'git ls-files --error-unmatch "$0" >/dev/null 2>&1' {} \; -printf '%P\n'))

$(LIBYANG3_PY3)_CACHE_MODE := GIT_CONTENT_SHA
$(LIBYANG3_PY3)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
$(LIBYANG3_PY3)_DEP_FILES := $(DEP_FILES)
$(LIBYANG3_PY3)_SMDEP_FILES := $(SMDEP_FILES)
$(LIBYANG3_PY3)_SMDEP_PATHS := $(SPATH)
18 changes: 18 additions & 0 deletions rules/libyang3-py3.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# libyang3 python3 deb package

LIBYANG3_PY3_VERSION = 3.0.3
LIBYANG3_PY3_SUBVERSION = 1
LIBYANG3_PY3_FULLVERSION = $(LIBYANG3_PY3_VERSION)-$(LIBYANG3_PY3_SUBVERSION)

export LIBYANG3_PY3_VERSION
export LIBYANG3_PY3_SUBVERSION
export LIBYANG3_PY3_FULLVERSION

LIBYANG3_PY3 = python3-libyang_$(LIBYANG3_PY3_FULLVERSION)_$(CONFIGURED_ARCH).deb
$(LIBYANG3_PY3)_SRC_PATH = $(SRC_PATH)/libyang3-py3
$(LIBYANG3_PY3)_DEPENDS += $(LIBYANG3) $(LIBYANG3_DEV)
$(LIBYANG3_PY3)_RDEPENDS += $(LIBYANG3)
SONIC_MAKE_DEBS += $(LIBYANG3_PY3)

export LIBYANG3_PY3

10 changes: 10 additions & 0 deletions rules/libyang3.dep
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@

SPATH := $($(LIBYANG3)_SRC_PATH)
DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/libyang3.mk rules/libyang3.dep
DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST)
DEP_FILES += $(shell git ls-files $(SPATH))

$(LIBYANG3)_CACHE_MODE := GIT_CONTENT_SHA
$(LIBYANG3)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
$(LIBYANG3)_DEP_FILES := $(DEP_FILES)

28 changes: 28 additions & 0 deletions rules/libyang3.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# libyang3

LIBYANG3_VERSION = 3.7.8
LIBYANG3_SUBVERSION = 3
LIBYANG3_FULLVERSION = $(LIBYANG3_VERSION)-$(LIBYANG3_SUBVERSION)

export LIBYANG3_VERSION
export LIBYANG3_SUBVERSION
export LIBYANG3_FULLVERSION

LIBYANG3 = libyang3_$(LIBYANG3_FULLVERSION)_$(CONFIGURED_ARCH).deb
$(LIBYANG3)_SRC_PATH = $(SRC_PATH)/libyang3
SONIC_MAKE_DEBS += $(LIBYANG3)

LIBYANG3_DEV = libyang-dev_$(LIBYANG3_FULLVERSION)_$(CONFIGURED_ARCH).deb
$(eval $(call add_derived_package,$(LIBYANG3),$(LIBYANG3_DEV)))

LIBYANG3_TOOLS = libyang3-tools_$(LIBYANG3_FULLVERSION)_$(CONFIGURED_ARCH).deb
$(eval $(call add_derived_package,$(LIBYANG3),$(LIBYANG3_TOOLS)))

LIBYANG3_DBG = libyang3-dbgsym_$(LIBYANG3_FULLVERSION)_$(CONFIGURED_ARCH).deb
$(eval $(call add_derived_package,$(LIBYANG3),$(LIBYANG3_DBG)))

LIBYANG3_TOOLS_DBG = libyang3-tools-dbgsym_$(LIBYANG3_FULLVERSION)_$(CONFIGURED_ARCH).deb
$(eval $(call add_derived_package,$(LIBYANG3),$(LIBYANG3_TOOLS_DBG)))

export LIBYANG3 LIBYANG3_DBG LIBYANG3_DEV LIBYANG3_TOOLS LIBYANG3_TOOLS_DBG

4 changes: 2 additions & 2 deletions rules/sonic-yang-models-py3.mk
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
SONIC_YANG_MODELS_PY3 = sonic_yang_models-1.0-py3-none-any.whl
$(SONIC_YANG_MODELS_PY3)_SRC_PATH = $(SRC_PATH)/sonic-yang-models
$(SONIC_YANG_MODELS_PY3)_PYTHON_VERSION = 3
$(SONIC_YANG_MODELS_PY3)_DEBS_DEPENDS = $(LIBYANG) $(LIBYANG_CPP) \
$(LIBYANG_PY3)
$(SONIC_YANG_MODELS_PY3)_DEBS_DEPENDS = $(LIBYANG3) \
$(LIBYANG3_PY3)

SONIC_PYTHON_WHEELS += $(SONIC_YANG_MODELS_PY3)
export SONIC_YANG_MODELS_PY3
2 changes: 1 addition & 1 deletion slave.mk
Original file line number Diff line number Diff line change
Expand Up @@ -1733,4 +1733,4 @@ jessie : $$(addprefix $(TARGET_PATH)/,$$(JESSIE_DOCKER_IMAGES)) \

## To build some commonly used libs. Some submodules depend on these libs.
## It is used in component pipelines. For example: swss needs libnl, libyang
lib-packages: $(addprefix $(DEBS_PATH)/,$(LIBNL3) $(LIBYANG) $(PROTOBUF) $(LIB_SONIC_DASH_API))
lib-packages: $(addprefix $(DEBS_PATH)/,$(LIBNL3) $(LIBYANG) $(LIBYANG3) $(PROTOBUF) $(LIB_SONIC_DASH_API))
9 changes: 6 additions & 3 deletions sonic-slave-bookworm/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ RUN apt-get update && apt-get install -y eatmydata && eatmydata apt-get install
debhelper \
autotools-dev \
libbsd-dev \
pkg-config \
pkgconf \
check \
# For bmp
librdkafka-dev \
Expand Down Expand Up @@ -370,6 +370,10 @@ RUN apt-get update && apt-get install -y eatmydata && eatmydata apt-get install
libevent-dev \
# For libyang
swig \
pkgconf \
tcl-expect \
# For libyang3-py3
python3-cffi \
# For build dtb
device-tree-compiler \
# For sonic-mgmt-framework
Expand Down Expand Up @@ -424,7 +428,6 @@ RUN apt-get update && apt-get install -y eatmydata && eatmydata apt-get install
libdbus-1-dev \
libgirepository1.0-dev \
libsystemd-dev \
pkg-config \
# For sonic-utilities build
python3-cryptography \
# For audisp-tacplus
Expand Down Expand Up @@ -714,7 +717,7 @@ RUN eatmydata apt-get install -y \
libxtables12:$arch \
libatm1-dev:$arch \
libbpf-dev:$arch \
libdb-dev:$arch pkg-config:$arch \
libdb-dev:$arch pkgconf:$arch \
libnghttp2-14:$arch \
librtmp1:$arch \
libssh2-1:$arch \
Expand Down
12 changes: 8 additions & 4 deletions sonic-slave-bullseye/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ RUN apt-get update && apt-get install -y eatmydata && eatmydata apt-get install
debhelper \
autotools-dev \
libbsd-dev \
pkg-config \
pkgconf \
check \
# For mpdecimal
docutils-common \
Expand Down Expand Up @@ -363,6 +363,10 @@ RUN apt-get update && apt-get install -y eatmydata && eatmydata apt-get install
libevent-dev \
# For libyang
swig \
pkgconf \
tcl-expect \
# For libyang3-py3
python3-cffi \
# For build dtb
device-tree-compiler \
# For sonic-mgmt-framework
Expand Down Expand Up @@ -416,7 +420,7 @@ RUN apt-get update && apt-get install -y eatmydata && eatmydata apt-get install
libdbus-1-dev \
libgirepository1.0-dev \
libsystemd-dev \
pkg-config \
pkgconf \
# For sonic-swss-common build
libhiredis-dev \
# For audisp-tacplus
Expand Down Expand Up @@ -457,7 +461,7 @@ RUN eatmydata apt install -y \
python3-ply \
python3-scapy \
python3-thrift \
libabsl20200923 libc-ares2 python3-six libboost-thread1.74.0 libboost-dev libboost-system-dev libboost-thread-dev libboost-filesystem1.74.0 libboost-program-options1.74.0 libboost-thread1.74.0 libnanomsg5 libpcap0.8 libthrift-0.13.0 libboost-dev libboost-filesystem-dev libboost-program-options-dev libgmp-dev libnanomsg-dev libpcap-dev libtool pkg-config libthrift-dev python3-thrift thrift-compiler libboost-iostreams1.74.0 libgc1 cpp libboost-dev libboost-all-dev libboost-graph-dev libboost-iostreams-dev libfl-dev libgc-dev libgmp-dev libbpf-dev tcpdump libelf-dev llvm clang python3-pyroute2 python3-ply python3-scapy python3-setuptools python3-thrift libthrift-0.13.0
libabsl20200923 libc-ares2 python3-six libboost-thread1.74.0 libboost-dev libboost-system-dev libboost-thread-dev libboost-filesystem1.74.0 libboost-program-options1.74.0 libboost-thread1.74.0 libnanomsg5 libpcap0.8 libthrift-0.13.0 libboost-dev libboost-filesystem-dev libboost-program-options-dev libgmp-dev libnanomsg-dev libpcap-dev libtool pkgconf libthrift-dev python3-thrift thrift-compiler libboost-iostreams1.74.0 libgc1 cpp libboost-dev libboost-all-dev libboost-graph-dev libboost-iostreams-dev libfl-dev libgc-dev libgmp-dev libbpf-dev tcpdump libelf-dev llvm clang python3-pyroute2 python3-ply python3-scapy python3-setuptools python3-thrift libthrift-0.13.0
{%- endif %}

{%- if CONFIGURED_ARCH == "amd64" %}
Expand Down Expand Up @@ -681,7 +685,7 @@ RUN eatmydata apt-get install -y nodejs
{%- if CROSS_BUILD_ENVIRON == "y" %}
RUN eatmydata apt-get install -y rsync dh-python

RUN eatmydata apt-get install -y libelf-dev:$arch libdw-dev:$arch libbz2-dev:$arch liblzo2-dev:$arch libedit-dev:$arch libevent-dev:$arch libopts25-dev:$arch libssl-dev:$arch pps-tools:$arch libpam-cap:$arch libcap-dev:$arch libpam0g-dev:$arch libaudit-dev:$arch libgtk-3-dev:$arch libkrb5-dev:$arch libsystemd-dev:$arch libwrap0-dev:$arch libkrb5-dev:$arch libboost1.74-dev:$arch libboost-dev:$arch libzmq5:$arch libzmq3-dev:$arch libdaemon-dev:$arch libjansson-dev:$arch libmnl-dev:$arch libsensors5:$arch libsensors4-dev:$arch libperl-dev:$arch libmariadb-dev:$arch libmariadb-dev-compat:$arch libpci-dev:$arch libjson-c-dev:$arch libreadline-dev:$arch librtr-dev:$arch librrd-dev:$arch libnetfilter-conntrack-dev:$arch libnetfilter-conntrack3:$arch libnfnetlink-dev:$arch libnftnl-dev:$arch libldap2-dev:$arch libbind-export-dev:$arch check:$arch libboost-atomic-dev:$arch libboost-test-dev:$arch libglib2.0-dev:$arch libexplain-dev:$arch libc-ares-dev:$arch libiptc0:$arch libxtables12:$arch libatm1-dev:$arch libbpf-dev:$arch libdb-dev:$arch pkg-config:$arch libnghttp2-14:$arch librtmp1:$arch libssh2-1:$arch libcjson1:$arch libcjson-dev:$arch libcurl4-openssl-dev:$arch libboost-thread1.74-dev:$arch libboost-thread-dev:$arch libboost-system1.74-dev:$arch libboost-system-dev:$arch libgtest-dev:$arch libgmock-dev:$arch libfido2-dev:$arch libcunit1:$arch libcunit1-dev:$arch libauparse-dev:$arch libnetsnmptrapd40:$arch qtbase5-dev:$arch libboost-log-dev:$arch libboost-filesystem-dev:$arch libboost-program-options-dev:$arch
RUN eatmydata apt-get install -y libelf-dev:$arch libdw-dev:$arch libbz2-dev:$arch liblzo2-dev:$arch libedit-dev:$arch libevent-dev:$arch libopts25-dev:$arch libssl-dev:$arch pps-tools:$arch libpam-cap:$arch libcap-dev:$arch libpam0g-dev:$arch libaudit-dev:$arch libgtk-3-dev:$arch libkrb5-dev:$arch libsystemd-dev:$arch libwrap0-dev:$arch libkrb5-dev:$arch libboost1.74-dev:$arch libboost-dev:$arch libzmq5:$arch libzmq3-dev:$arch libdaemon-dev:$arch libjansson-dev:$arch libmnl-dev:$arch libsensors5:$arch libsensors4-dev:$arch libperl-dev:$arch libmariadb-dev:$arch libmariadb-dev-compat:$arch libpci-dev:$arch libjson-c-dev:$arch libreadline-dev:$arch librtr-dev:$arch librrd-dev:$arch libnetfilter-conntrack-dev:$arch libnetfilter-conntrack3:$arch libnfnetlink-dev:$arch libnftnl-dev:$arch libldap2-dev:$arch libbind-export-dev:$arch check:$arch libboost-atomic-dev:$arch libboost-test-dev:$arch libglib2.0-dev:$arch libexplain-dev:$arch libc-ares-dev:$arch libiptc0:$arch libxtables12:$arch libatm1-dev:$arch libbpf-dev:$arch libdb-dev:$arch pkgconf:$arch libnghttp2-14:$arch librtmp1:$arch libssh2-1:$arch libcjson1:$arch libcjson-dev:$arch libcurl4-openssl-dev:$arch libboost-thread1.74-dev:$arch libboost-thread-dev:$arch libboost-system1.74-dev:$arch libboost-system-dev:$arch libgtest-dev:$arch libgmock-dev:$arch libfido2-dev:$arch libcunit1:$arch libcunit1-dev:$arch libauparse-dev:$arch libnetsnmptrapd40:$arch qtbase5-dev:$arch libboost-log-dev:$arch libboost-filesystem-dev:$arch libboost-program-options-dev:$arch

RUN apt-get download libgirepository1.0-dev:$arch && eatmydata dpkg --force-all -i libgirepository1.0-dev*
RUN PATH=/python_virtualenv/env3/bin/:$PATH pip3 install pycairo
Expand Down
Loading
Loading