Add thrift 0.13.0 (#9678)

* Add thrift 0.13.0  (#8307)

#### Why I did it
To bump thrift version to 0.13.0, to fix some dependencies issues.

#### How I did it
As there are dependencies between thrift and saithrinft server  (bf3630316c/test/saithrift) which is used by syncd-rpc to update thrift version, I also need to make changes in saithrinft server, and then SAI ref point should be updated in sairedis, and then sairedis ref point should be updated too. It is too many change, so I decided to add thrift 0.13.0 as separeate target to be able to work and test father changes in saithrinft and one when appropriate changes will be merged to SAI and ref points will be updated I will squash this and the old thrift target.  I was not able to build thrift deb pkg by original rules, so I copied `debian `folder from the old version and tune it for newer one.

#### How to verify it
```
make init
make configure PLATFORM=vs
make target/debs/buster/libthrift_0.13.0_amd64.deb
```

```

* Correct the pkg name for thrift.0.13.0

Correct thrift.0.13.0 dependent package name.
In previous code, the buildout target was named as PYTHON3_THRIFT_0_13_0
But when add the prackage to LIBTHRIFT_0_13_0, it typo as PYTHON_THRIFT_0_13_0

Co-authored-by: Myron Sosyak <myronx.sosyak@intel.com>
This commit is contained in:
Richard.Yu 2022-01-06 10:00:58 +08:00 committed by GitHub
parent 1eec2bc25e
commit dec52bb32f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 143 additions and 0 deletions

8
rules/thrift_0_13_0.dep Normal file
View File

@ -0,0 +1,8 @@
SPATH := $($(LIBTHRIFT_0_13_0)_SRC_PATH)
DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/thrift_0_13_0.mk rules/thrift_0_13_0.dep
DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST)
DEP_FILES += $(shell git ls-files $(SPATH))
$(LIBTHRIFT_0_13_0)_CACHE_MODE := GIT_CONTENT_SHA
$(LIBTHRIFT_0_13_0)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
$(LIBTHRIFT_0_13_0)_DEP_FILES := $(DEP_FILES)

17
rules/thrift_0_13_0.mk Normal file
View File

@ -0,0 +1,17 @@
# thrift package
THRIFT_VERSION_0_13_0 = 0.13.0
THRIFT_VERSION_0_13_0_FULL = $(THRIFT_VERSION_0_13_0)-6
LIBTHRIFT_0_13_0 = libthrift-$(THRIFT_VERSION_0_13_0)_$(THRIFT_VERSION_0_13_0_FULL)_$(CONFIGURED_ARCH).deb
$(LIBTHRIFT_0_13_0)_SRC_PATH = $(SRC_PATH)/thrift_0_13_0
SONIC_MAKE_DEBS += $(LIBTHRIFT_0_13_0)
LIBTHRIFT_DEV_0_13_0 = libthrift-dev_$(THRIFT_VERSION_0_13_0_FULL)_$(CONFIGURED_ARCH).deb
$(eval $(call add_derived_package,$(LIBTHRIFT_0_13_0),$(LIBTHRIFT_DEV_0_13_0)))
PYTHON3_THRIFT_0_13_0 = python3-thrift_$(THRIFT_VERSION_0_13_0_FULL)_$(CONFIGURED_ARCH).deb
$(eval $(call add_derived_package,$(LIBTHRIFT_0_13_0),$(PYTHON3_THRIFT_0_13_0)))
THRIFT_COMPILER_0_13_0 = thrift-compiler_$(THRIFT_VERSION_0_13_0_FULL)_$(CONFIGURED_ARCH).deb
$(eval $(call add_derived_package,$(LIBTHRIFT_0_13_0),$(THRIFT_COMPILER_0_13_0)))

1
src/thrift_0_13_0/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
thrift*

View File

@ -0,0 +1,32 @@
SHELL = /bin/bash
.ONESHELL:
.SHELLFLAGS += -e -x
THRIFT_VERSION = 0.13.0
THRIFT_VERSION_FULL = $(THRIFT_VERSION)-6
MAIN_TARGET = libthrift-$(THRIFT_VERSION)_$(THRIFT_VERSION_FULL)_$(CONFIGURED_ARCH).deb
DERIVED_TARGETS = libthrift-dev_$(THRIFT_VERSION_FULL)_$(CONFIGURED_ARCH).deb \
python3-thrift_$(THRIFT_VERSION_FULL)_$(CONFIGURED_ARCH).deb \
thrift-compiler_$(THRIFT_VERSION_FULL)_$(CONFIGURED_ARCH).deb
THRIFT_LINK_PRE = http://deb.debian.org/debian/pool/main/t/thrift/
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
rm -rf thrift-$(THRIFT_VERSION)
wget -O "thrift_$(THRIFT_VERSION_FULL).debian.tar.xz" "$(THRIFT_LINK_PRE)/thrift_$(THRIFT_VERSION_FULL).debian.tar.xz"
wget -O "thrift_$(THRIFT_VERSION).orig.tar.gz" "$(THRIFT_LINK_PRE)/thrift_$(THRIFT_VERSION).orig.tar.gz"
wget -O "thrift_$(THRIFT_VERSION_FULL).dsc" "$(THRIFT_LINK_PRE)/thrift_$(THRIFT_VERSION_FULL).dsc"
dpkg-source -x thrift_$(THRIFT_VERSION_FULL).dsc
pushd thrift-$(THRIFT_VERSION)
# Disable php perl and few other packages as they need additional packages to be installed
patch -p1 < ../patch/0001-Remove-unneeded-packages.patch
DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -d -rfakeroot -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR)
popd
mv $(DERIVED_TARGETS) $* $(DEST)/
$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET)

View File

@ -0,0 +1,85 @@
From 7a8d588fa0425550cfd42c3300c8c0a643137190 Mon Sep 17 00:00:00 2001
From: Myron Sosyak <myronx.sosyak@intel.com>
Date: Fri, 13 Aug 2021 11:26:13 +0000
Subject: [PATCH] Remove-unneeded-packages
---
debian/control | 28 ----------------------------
debian/rules | 7 +++----
2 files changed, 3 insertions(+), 32 deletions(-)
diff --git a/debian/control b/debian/control
index 5126e47..3f3028c 100644
--- a/debian/control
+++ b/debian/control
@@ -13,8 +13,6 @@ Build-Depends: debhelper-compat (= 11), dh-python,
python3-all-dev,
python3-six,
golang-go, golang-github-golang-mock-dev,
- pkg-php-tools (>= 1.14~), php-dev, phpunit, php-codesniffer,
- perl (>= 5.22), libbit-vector-perl, libclass-accessor-perl,
# openjdk-11-jdk, javahelper, maven-debian-helper (>= 1.5), ant (>= 1.7), ant-optional,
# libhttpclient-java, libslf4j-java, libservlet3.1-java (>= 8),
# nodejs, npm,
@@ -175,32 +173,6 @@ Description: Python library for Thrift (debug symbols)
# .
# This package contains Javadoc HTML documentation for libthrift-java .
#
-Package: php-thrift
-Architecture: any
-Section: php
-Depends: ${phpcomposer:Debian-require}, ${shlibs:Depends}, ${misc:Depends}
-Provides: ${php:Provides}
-Conflicts: php7.0-thrift, php7.2-thrift
-Replaces: php7.0-thrift, php7.2-thrift
-Description: PHP language support for Thrift
- Thrift is a software framework for the development of reliable and
- performant communication and data serialization. It combines a software
- stack with code generation to build services that operate seamlessly
- across a number of different development languages.
- .
- This package provides the PHP5 language support for Thrift.
-
-Package: libthrift-perl
-Section: perl
-Architecture: all
-Depends: ${perl:Depends}, ${misc:Depends}
-Description: Perl language support for Thrift
- Thrift is a software framework for the development of reliable and
- performant communication and data serialization. It combines a software
- stack with code generation to build services that operate seamlessly
- across a number of different development languages.
- .
- This package provides the Perl language support for Thrift.
Package: golang-thrift-dev
Architecture: amd64 arm64 armel armhf i386 ppc64el
diff --git a/debian/rules b/debian/rules
index ba63e6f..8217796 100755
--- a/debian/rules
+++ b/debian/rules
@@ -47,7 +47,6 @@ override_dh_auto_clean:
$(CURDIR)/lib/go/test/gopath/src/golang.org/x/net \
$(CURDIR)/lib/go/test/gopath/src/github.com/golang/mock
[ ! -f Makefile ] || $(MAKE) clean
- cd $(CURDIR)/lib/php/src/ext/thrift_protocol/ && phpize --clean
find $(CURDIR) \( -name Makefile -o -name Makefile.in \) -exec rm {} \;
find $(CURDIR) -name .dirstamp -exec rm {} \;
$(RM) aclocal.m4 config.h config.log config.status configure \
@@ -65,10 +64,10 @@ override_dh_auto_clean:
override_dh_auto_configure:
dh_auto_configure -- \
- --with-cpp --with-c_glib --with-php --with-php_extension \
- --with-perl --without-python --with-py3 --without-java \
+ --with-cpp --with-c_glib --without-php --without-php_extension \
+ --without-perl --without-python --with-py3 --without-java \
--without-nodejs --without-erlang --without-lua \
- --with-go --with-ruby \
+ --without-go --without-ruby \
--with-qt4=no --with-qt5=yes \
--without-rust \
--disable-tutorial
--
2.17.1