From 125fe9907a537c1df7f4b4303d7201317ef0eb15 Mon Sep 17 00:00:00 2001 From: Myron Sosyak Date: Tue, 15 Feb 2022 16:39:47 -0800 Subject: [PATCH] Bump Thrift version from 0.13.0 to 0.14.1 (#9881) #### Why I did it To bump the Thrift version to 0.14.1 - To avoid [CVE-2020-13949](https://nvd.nist.gov/vuln/detail/CVE-2020-13949) - to fix some dependencies issues #### How I did it - rename `src/thrfit_0_13_0` to `src/thrift_2` to remove version number in the path. (`src/thrift` contains rules to build thrift 0.11.0 ) - Add thrift sources as submodule as there are no prepared debian packages for version >0.13.0 on [debian.org](https://packages.debian.org/search?searchon=sourcenames&keywords=thrift) - Added patches with fixes for original thrift debian rules:(remove unneeded packages, fix multi job build) #### How to verify it ``` BLDENV=buster make -f Makefile.work target/debs/buster/libthrift-dev_0.14.1_amd64.deb ``` --- .gitmodules | 5 +- platform/broadcom/libsaithrift-dev.mk | 4 +- rules/thrift_0_13_0.dep | 8 - rules/thrift_0_13_0.mk | 17 -- rules/thrift_0_14_1.dep | 8 + rules/thrift_0_14_1.mk | 20 +++ src/thrift_0_13_0/.gitignore | 1 - src/thrift_0_13_0/Makefile | 32 ---- .../patch/0001-Remove-unneeded-packages.patch | 85 --------- src/thrift_0_14_1/thrift | 1 + .../0001-Remove-unneeded-packages.patch | 118 +++++++++++++ .../thrift.patch/0002-Fix-build-rules.patch | 167 ++++++++++++++++++ src/thrift_0_14_1/thrift.patch/series | 2 + 13 files changed, 322 insertions(+), 146 deletions(-) delete mode 100644 rules/thrift_0_13_0.dep delete mode 100644 rules/thrift_0_13_0.mk create mode 100644 rules/thrift_0_14_1.dep create mode 100644 rules/thrift_0_14_1.mk delete mode 100644 src/thrift_0_13_0/.gitignore delete mode 100644 src/thrift_0_13_0/Makefile delete mode 100644 src/thrift_0_13_0/patch/0001-Remove-unneeded-packages.patch create mode 160000 src/thrift_0_14_1/thrift create mode 100644 src/thrift_0_14_1/thrift.patch/0001-Remove-unneeded-packages.patch create mode 100644 src/thrift_0_14_1/thrift.patch/0002-Fix-build-rules.patch create mode 100644 src/thrift_0_14_1/thrift.patch/series diff --git a/.gitmodules b/.gitmodules index b9cc221936c4..f79031a7d22c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -99,4 +99,7 @@ url = https://github.com/Azure/sonic-linkmgrd.git [submodule "src/sonic-p4rt/sonic-pins"] path = src/sonic-p4rt/sonic-pins - url = https://github.com/Azure/sonic-pins.git \ No newline at end of file + url = https://github.com/Azure/sonic-pins.git +[submodule "src/thrift_0_14_1/thrift"] + path = src/thrift_0_14_1/thrift + url = https://github.com/apache/thrift.git diff --git a/platform/broadcom/libsaithrift-dev.mk b/platform/broadcom/libsaithrift-dev.mk index 0d32a08a276c..1e4d0da13bbe 100644 --- a/platform/broadcom/libsaithrift-dev.mk +++ b/platform/broadcom/libsaithrift-dev.mk @@ -6,8 +6,8 @@ LIBSAITHRIFT_DEV = libsaithrift$(SAITHRIFT_VER)-dev_$(SAI_VER)_amd64.deb $(LIBSAITHRIFT_DEV)_SRC_PATH = $(SRC_PATH)/sonic-sairedis/SAI #Support two different versions of thrift ifeq ($(SAITHRIFT_V2),y) -$(LIBSAITHRIFT_DEV)_DEPENDS += $(LIBTHRIFT_0_13_0) $(LIBTHRIFT_DEV_0_13_0) $(PYTHON3_THRIFT_0_13_0) $(THRIFT_COMPILER_0_13_0) -$(LIBSAITHRIFT_DEV)_RDEPENDS += $(LIBTHRIFT_0_13_0) +$(LIBSAITHRIFT_DEV)_DEPENDS += $(LIBTHRIFT_0_14_1) $(LIBTHRIFT_DEV_0_14_1) $(PYTHON3_THRIFT_0_14_1) $(THRIFT_COMPILER_0_14_1) +$(LIBSAITHRIFT_DEV)_RDEPENDS += $(LIBTHRIFT_0_14_1) $(LIBSAITHRIFT_DEV)_BUILD_ENV = SAITHRIFTV2=true SAITHRIFT_VER=v2 else $(LIBSAITHRIFT_DEV)_DEPENDS += $(LIBTHRIFT) $(LIBTHRIFT_DEV) $(PYTHON_THRIFT) $(THRIFT_COMPILER) diff --git a/rules/thrift_0_13_0.dep b/rules/thrift_0_13_0.dep deleted file mode 100644 index 52d8b6a525f9..000000000000 --- a/rules/thrift_0_13_0.dep +++ /dev/null @@ -1,8 +0,0 @@ -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) diff --git a/rules/thrift_0_13_0.mk b/rules/thrift_0_13_0.mk deleted file mode 100644 index 18d333910904..000000000000 --- a/rules/thrift_0_13_0.mk +++ /dev/null @@ -1,17 +0,0 @@ -# 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))) diff --git a/rules/thrift_0_14_1.dep b/rules/thrift_0_14_1.dep new file mode 100644 index 000000000000..2fb1ba5666ac --- /dev/null +++ b/rules/thrift_0_14_1.dep @@ -0,0 +1,8 @@ +SPATH := $($(LIBTHRIFT_0_14_1)_SRC_PATH) +DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/thrift_0_14_1.mk rules/thrift_0_14_1.dep +DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) +DEP_FILES += $(shell git ls-files $(SPATH)) + +$(LIBTHRIFT_0_14_1)_CACHE_MODE := GIT_CONTENT_SHA +$(LIBTHRIFT_0_14_1)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) +$(LIBTHRIFT_0_14_1)_DEP_FILES := $(DEP_FILES) diff --git a/rules/thrift_0_14_1.mk b/rules/thrift_0_14_1.mk new file mode 100644 index 000000000000..b986e0a4dceb --- /dev/null +++ b/rules/thrift_0_14_1.mk @@ -0,0 +1,20 @@ +# thrift package + +THRIFT_0_14_1_VERSION = 0.14.1 +THRIFT_0_14_1_VERSION_FULL = $(THRIFT_0_14_1_VERSION) + +LIBTHRIFT_0_14_1 = libthrift0_$(THRIFT_0_14_1_VERSION)_$(CONFIGURED_ARCH).deb +$(LIBTHRIFT_0_14_1)_SRC_PATH = $(SRC_PATH)/thrift_0_14_1/thrift +SONIC_DPKG_DEBS += $(LIBTHRIFT_0_14_1) + +LIBTHRIFT_0_14_1_DEV = libthrift-dev_$(THRIFT_0_14_1_VERSION)_$(CONFIGURED_ARCH).deb +$(eval $(call add_derived_package,$(LIBTHRIFT_0_14_1),$(LIBTHRIFT_0_14_1_DEV))) + +PYTHON3_THRIFT_0_14_1 = python3-thrift_$(THRIFT_0_14_1_VERSION)_$(CONFIGURED_ARCH).deb +$(eval $(call add_derived_package,$(LIBTHRIFT_0_14_1),$(PYTHON3_THRIFT_0_14_1))) + +PYTHON_THRIFT_0_14_1 = python-thrift_$(THRIFT_0_14_1_VERSION)_$(CONFIGURED_ARCH).deb +$(eval $(call add_derived_package,$(LIBTHRIFT_0_14_1),$(PYTHON_THRIFT_0_14_1))) + +THRIFT_0_14_1_COMPILER = thrift-compiler_$(THRIFT_0_14_1_VERSION)_$(CONFIGURED_ARCH).deb +$(eval $(call add_derived_package,$(LIBTHRIFT_0_14_1),$(THRIFT_0_14_1_COMPILER))) diff --git a/src/thrift_0_13_0/.gitignore b/src/thrift_0_13_0/.gitignore deleted file mode 100644 index dc29c1367931..000000000000 --- a/src/thrift_0_13_0/.gitignore +++ /dev/null @@ -1 +0,0 @@ -thrift* \ No newline at end of file diff --git a/src/thrift_0_13_0/Makefile b/src/thrift_0_13_0/Makefile deleted file mode 100644 index 55cb4d9212ef..000000000000 --- a/src/thrift_0_13_0/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -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) diff --git a/src/thrift_0_13_0/patch/0001-Remove-unneeded-packages.patch b/src/thrift_0_13_0/patch/0001-Remove-unneeded-packages.patch deleted file mode 100644 index f1565408a722..000000000000 --- a/src/thrift_0_13_0/patch/0001-Remove-unneeded-packages.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 7a8d588fa0425550cfd42c3300c8c0a643137190 Mon Sep 17 00:00:00 2001 -From: Myron Sosyak -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 - diff --git a/src/thrift_0_14_1/thrift b/src/thrift_0_14_1/thrift new file mode 160000 index 000000000000..f6fa1794539e --- /dev/null +++ b/src/thrift_0_14_1/thrift @@ -0,0 +1 @@ +Subproject commit f6fa1794539e68ac294038ac388d6bde40a6c237 diff --git a/src/thrift_0_14_1/thrift.patch/0001-Remove-unneeded-packages.patch b/src/thrift_0_14_1/thrift.patch/0001-Remove-unneeded-packages.patch new file mode 100644 index 000000000000..bafc81664c86 --- /dev/null +++ b/src/thrift_0_14_1/thrift.patch/0001-Remove-unneeded-packages.patch @@ -0,0 +1,118 @@ +From e9e789bdeb4eb3ae5bf905f83171c66558f29551 Mon Sep 17 00:00:00 2001 +From: Myron sosyak +Date: Fri, 28 Jan 2022 15:01:35 +0000 +Subject: [PATCH 1/2] Remove unneeded packages + +--- + debian/control | 83 +++----------------------------------------------- + 1 file changed, 5 insertions(+), 78 deletions(-) + +diff --git a/debian/control b/debian/control +index a9e934f17..752076582 100644 +--- a/debian/control ++++ b/debian/control +@@ -1,14 +1,12 @@ + Source: thrift + Section: devel + Priority: extra +-Build-Depends: dotnet-runtime-3.1, dotnet-sdk-3.1, debhelper (>= 9), build-essential, python-dev, ant, +- erlang-base, ruby-dev | ruby1.9.1-dev, ruby-bundler ,autoconf, automake, +- pkg-config, libtool, bison, flex, libboost-dev | libboost1.56-dev | libboost1.63-all-dev, +- python-all, python-setuptools, python-all-dev, python-all-dbg, ++Build-Depends: debhelper (>= 9), build-essential, python-dev, ++ autoconf, automake, ++ pkg-config, libtool, ++ python-all, python-setuptools, python-all-dev, + python3-all, python3-setuptools, python3-all-dev, python3-all-dbg, +- openjdk-8-jdk | openjdk-8-jdk-headless | openjdk-11-jdk | openjdk-11-jdk-headless | default-jdk, +- libboost-test-dev | libboost-test1.56-dev | libboost-test1.63-dev, libevent-dev, libssl-dev, perl (>= 5.8.0-7), +- php (>= 5), php-dev (>= 5), libglib2.0-dev, qtchooser, qtbase5-dev-tools ++ libevent-dev, libssl-dev, libglib2.0-dev + Maintainer: Thrift Developer's + Homepage: http://thrift.apache.org/ + Vcs-Git: https://github.com/apache/thrift.git +@@ -95,65 +93,6 @@ Description: Python bindings for Thrift (debug version) + definition to Python classes, and then the modules in this package will allow + you to use those classes in your programs. + +-Package: ruby-thrift +-Architecture: all +-Section: libs +-Depends: ruby | ruby-interpreter, ${shlibs:Depends}, ${misc:Depends} +-Provides: libthrift-ruby +-Replaces: libthrift-ruby +-Breaks: libthrift-ruby +-Description: Ruby bindings for Thrift +- Thrift is a software framework for scalable cross-language services +- development. It combines a software stack with a code generation engine to +- build services that work efficiently and seamlessly. +- . +- This package contains the Ruby bindings for Thrift. You will need the thrift +- tool (in the thrift-compiler package) to compile your definition to Ruby +- classes, and then the modules in this package will allow you to use those +- classes in your programs. +- +-Package: libthrift-java +-Architecture: all +-Section: java +-Depends: ${misc:Depends} +-Description: Java bindings for Thrift +- Thrift is a software framework for scalable cross-language services +- development. It combines a software stack with a code generation engine to +- build services that work efficiently and seamlessly. +- . +- This package contains the Java bindings for Thrift. You will need the thrift +- tool (in the thrift-compiler package) to compile your definition to Java +- classes, and then the modules in this package will allow you to use those +- classes in your programs. +- +-Package: libthrift-netstd +-Architecture: all +-Section: netstd +-Depends: dotnet-runtime-3.1, ${misc:Depends} +-Description: NET Standard bindings for Thrift +- Thrift is a software framework for scalable cross-language services +- development. It combines a software stack with a code generation engine to +- build services that work efficiently and seamlessly. +- . +- This package contains the NET Standard bindings for Thrift. You will need the thrift +- tool (in the thrift-compiler package) to compile your definition to C# +- classes, and then the modules in this package will allow you to use those +- classes in your programs. +- +-Package: libthrift-perl +-Architecture: all +-Section: perl +-Depends: perl (>= 5.8.0-7), ${misc:Depends} +-Description: Perl bindings for Thrift +- Thrift is a software framework for scalable cross-language services +- development. It combines a software stack with a code generation engine to +- build services that work efficiently and seamlessly. +- . +- This package contains the Perl bindings for Thrift. You will need the thrift +- tool (in the thrift-compiler package) to compile your definition to Perl +- classes, and then the modules in this package will allow you to use those +- classes in your programs. +- + Package: libthrift0 + Architecture: any + Depends: ${shlibs:Depends}, ${misc:Depends} +@@ -187,15 +126,3 @@ Description: Thrift C++ library (development headers) + . + This package contains the development libraries required for writing C++ + applications using Thrift. +- +-Package: php5-thrift +-Architecture: any +-Section: php +-Depends: ${php:Depends}, ${shlibs:Depends}, ${misc:Depends} +-Provides: ${php:Provides} +-Description: PHP bindings for Thrift +- Thrift is a software framework for scalable cross-language services +- development. It combines a software stack with a code generation engine to +- build services that work efficiently and seamlessly. +- . +- This package contains the PHP bindings for Thrift. +-- +2.17.1 + diff --git a/src/thrift_0_14_1/thrift.patch/0002-Fix-build-rules.patch b/src/thrift_0_14_1/thrift.patch/0002-Fix-build-rules.patch new file mode 100644 index 000000000000..77ab9c2b404f --- /dev/null +++ b/src/thrift_0_14_1/thrift.patch/0002-Fix-build-rules.patch @@ -0,0 +1,167 @@ +From 99e50d2dbc9e855e457c03e19c4c3b894ffcaa7a Mon Sep 17 00:00:00 2001 +From: Myron sosyak +Date: Fri, 28 Jan 2022 15:02:16 +0000 +Subject: [PATCH 2/2] Fix build rules + +--- + debian/libthrift0.install | 1 - + debian/rules | 83 +++++++++++---------------------------- + 2 files changed, 24 insertions(+), 60 deletions(-) + +diff --git a/debian/libthrift0.install b/debian/libthrift0.install +index ec74efc5c..d4ca21e5e 100644 +--- a/debian/libthrift0.install ++++ b/debian/libthrift0.install +@@ -1,5 +1,4 @@ + usr/lib/libthrift.so* + usr/lib/libthrift-*.so* + usr/lib/libthriftnb*.so* +-usr/lib/libthriftqt*.so* + usr/lib/libthriftz*.so* +diff --git a/debian/rules b/debian/rules +index d0de50872..3a50319ee 100755 +--- a/debian/rules ++++ b/debian/rules +@@ -16,7 +16,7 @@ + # This has to be exported to make some magic below work. + export DH_OPTIONS + +-PYVERS := $(shell pyversions -r) ++PYVERS := python2 python3 + + export CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS) + export CFLAGS:=$(shell dpkg-buildflags --get CFLAGS) +@@ -29,7 +29,13 @@ configure-stamp: + + # Add here commands to configure the package. + if [ -f bootstrap.sh ]; then $(CURDIR)/bootstrap.sh; fi +- $(CURDIR)/configure --prefix=/usr --enable-plugin=no ++ $(CURDIR)/configure --prefix=/usr --enable-plugin=no \ ++ --with-cpp --with-c_glib --with-py3 --with-python \ ++ --without-php_extension --without-perl \ ++ --without-php --without-java \ ++ --without-nodejs --without-erlang --without-lua \ ++ --without-go --without-ruby --with-qt4=no \ ++ --with-qt5=no --without-rust --disable-tutorial + + touch configure-stamp + +@@ -40,16 +46,7 @@ build: build-arch build-indep + # $(MAKE) -C test check + + build-arch: build-arch-stamp +-$(CURDIR)/compiler/cpp/thrift build-arch-stamp: configure-stamp +- +- # Compile compiler +- $(MAKE) -C $(CURDIR)/compiler/cpp +- +- # Compile C++ library +- $(MAKE) -C $(CURDIR)/lib/cpp +- +- # Compile C (glib) library +- $(MAKE) -C $(CURDIR)/lib/c_glib ++$(CURDIR)/compiler/cpp/thrift build-arch-stamp: configure-stamp build-libcpp-stamp build-libc-stamp build-compiler-stamp + + # Python library + cd $(CURDIR)/lib/py && \ +@@ -58,11 +55,22 @@ $(CURDIR)/compiler/cpp/thrift build-arch-stamp: configure-stamp + $$py-dbg setup.py build; \ + done + +- # PHP +- cd $(CURDIR)/lib/php/src/ext/thrift_protocol && \ +- phpize && \ +- ./configure && $(MAKE) ++ touch $@ + ++build-compiler-stamp: configure-stamp ++ # Compile compiler ++ $(MAKE) -C $(CURDIR)/compiler/cpp ++ touch $@ ++ ++ ++build-libcpp-stamp: configure-stamp build-compiler-stamp ++ # Compile C++ library ++ $(MAKE) -C $(CURDIR)/lib/cpp ++ touch $@ ++ ++build-libc-stamp: configure-stamp build-compiler-stamp ++ # Compile C (glib) library ++ $(MAKE) -C $(CURDIR)/lib/c_glib + touch $@ + + build-indep: build-indep-stamp +@@ -71,19 +79,6 @@ build-indep-stamp: configure-stamp $(CURDIR)/compiler/cpp/thrift + # Add here commands to compile the indep part of the package. + #$(MAKE) doc + +- # Java +- cd $(CURDIR)/lib/java && \ +- ./gradlew --no-daemon -Prelease=true jar +- +- # C# +- $(MAKE) -C $(CURDIR)/lib/netstd +- +- # Ruby +- $(MAKE) -C $(CURDIR)/lib/rb +- +- # Perl +- $(MAKE) -C $(CURDIR)/lib/perl INSTALLDIRS=vendor +- + touch $@ + + clean: +@@ -109,30 +104,6 @@ install-indep: + # debian/-doc. + #INSTALLDOC# + +- # Java +- mkdir -p $(CURDIR)/debian/libthrift-java/usr/share/java/ && \ +- cp $(CURDIR)/lib/java/build/libs/libthrift*.jar \ +- $(CURDIR)/debian/libthrift-java/usr/share/java/ +- +- # Ruby +- mkdir -p $(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.9.1 && \ +- cp $(CURDIR)/lib/rb/lib/thrift.rb \ +- $(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.9.1 +- cp -r $(CURDIR)/lib/rb/lib/thrift \ +- $(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.9.1 +- +- # C# +- mkdir -p $(CURDIR)/debian/libthrift-netstd/usr/lib/cli/thrift/ && \ +- cp $(CURDIR)/lib/netstd/Thrift/bin/Release/netstandard2.0/Thrift.dll \ +- $(CURDIR)/debian/libthrift-netstd/usr/lib/cli/thrift/Thrift.dll +- +- # Perl +- $(MAKE) -C $(CURDIR)/lib/perl install DESTDIR=$(CURDIR)/debian/libthrift-perl +- mkdir -p $(CURDIR)/debian/libthrift-perl/usr/share +- mv $(CURDIR)/debian/libthrift-perl/usr/local/lib/perl5 $(CURDIR)/debian/libthrift-perl/usr/share +- rmdir $(CURDIR)/debian/libthrift-perl/usr/local/lib +- rmdir $(CURDIR)/debian/libthrift-perl/usr/local +- + dh_install -i + + install-arch: +@@ -154,7 +125,6 @@ install-arch: + # Python + cd $(CURDIR)/lib/py && \ + python2 setup.py install --install-layout=deb --no-compile --root=$(CURDIR)/debian/python-thrift && \ +- python2-dbg setup.py install --install-layout=deb --no-compile --root=$(CURDIR)/debian/python-thrift-dbg && \ + python3 setup.py install --install-layout=deb --no-compile --root=$(CURDIR)/debian/python3-thrift && \ + python3-dbg setup.py install --install-layout=deb --no-compile --root=$(CURDIR)/debian/python3-thrift-dbg + +@@ -174,11 +144,6 @@ install-arch: + find $(CURDIR)/debian/python3-thrift-dbg -name "*.egg-info" -print0 | xargs -0 rm -rf + find $(CURDIR)/debian/python3-thrift-dbg -depth -type d -empty -exec rmdir {} \; + +- # PHP +- mkdir -p $(CURDIR)/debian/php5-thrift +- cd $(CURDIR)/lib/php && \ +- $(MAKE) DESTDIR=$(CURDIR)/debian/php5-thrift install +- + # C++ and C (glib) + mkdir -p $(CURDIR)/debian/tmp; \ + cd $(CURDIR)/lib/cpp && \ +-- +2.17.1 + diff --git a/src/thrift_0_14_1/thrift.patch/series b/src/thrift_0_14_1/thrift.patch/series new file mode 100644 index 000000000000..b95ae481e048 --- /dev/null +++ b/src/thrift_0_14_1/thrift.patch/series @@ -0,0 +1,2 @@ +0001-Remove-unneeded-packages.patch +0002-Fix-build-rules.patch