diff mbox

[v2] package: protobuf, python-protobuf: bump to v3.3.0

Message ID 20170503205945.7065-1-mrugiero@gmail.com
State Changes Requested
Headers show

Commit Message

Mario Rugiero May 3, 2017, 8:59 p.m. UTC
Includes upstream patch working around a gcc bug which got fixed in version 4.5.0.

Fixes:
http://autobuild.buildroot.org/results/77d/77dbb6bbbc0ea9e9bcdd22b10011ef9728c20d54/
http://autobuild.buildroot.org/results/21f/21f5e1ea4f37e1d174604d6da78c0e916c89f1e3/
http://autobuild.buildroot.org/results/24e/24e880086c87d40b5d79a90d805acc75b33d484c/

Tested with:
qemu_aarch64_virt_defconfig

Signed-off-by: Mario J. Rugiero <mrugiero@gmail.com>
---
 package/protobuf/protobuf.hash               | 3 +--
 package/protobuf/protobuf.mk                 | 4 +---
 package/python-protobuf/python-protobuf.hash | 2 +-
 3 files changed, 3 insertions(+), 6 deletions(-)

Comments

Thomas Petazzoni May 4, 2017, 12:56 p.m. UTC | #1
Hello,

On Wed,  3 May 2017 17:59:45 -0300, Mario J. Rugiero wrote:
> Includes upstream patch working around a gcc bug which got fixed in version 4.5.0.
> 
> Fixes:
> http://autobuild.buildroot.org/results/77d/77dbb6bbbc0ea9e9bcdd22b10011ef9728c20d54/
> http://autobuild.buildroot.org/results/21f/21f5e1ea4f37e1d174604d6da78c0e916c89f1e3/
> http://autobuild.buildroot.org/results/24e/24e880086c87d40b5d79a90d805acc75b33d484c/
> 
> Tested with:
> qemu_aarch64_virt_defconfig
> 
> Signed-off-by: Mario J. Rugiero <mrugiero@gmail.com>

I've applied this patch, and then tried building with a gcc 4.3
toolchain, and still get:

libtool: compile:  /home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-g++ -DHAVE_CONFIG_H -I. -I.. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pthread -DHAVE_PTHREAD=1 -Wall -Wno-sign-compare -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c google/protobuf/util/type_resolver_util.cc  -fPIC -DPIC -o google/protobuf/util/.libs/type_resolver_util.o
In file included from ./google/protobuf/metadata.h:41,
                 from ./google/protobuf/type.pb.h:27,
                 from google/protobuf/util/type_resolver_util.cc:33:
./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)':
./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase'
In file included from ./google/protobuf/metadata.h:41,
                 from ./google/protobuf/compiler/plugin.pb.h:27,
                 from google/protobuf/compiler/code_generator.cc:37:
./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)':
./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase'
In file included from ./google/protobuf/metadata.h:41,
                 from ./google/protobuf/duration.pb.h:27,
                 from ./google/protobuf/util/time_util.h:45,
                 from google/protobuf/util/time_util.cc:31:
./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)':
./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase'
In file included from ./google/protobuf/metadata.h:41,
                 from ./google/protobuf/type.pb.h:27,
                 from ./google/protobuf/util/internal/type_info.h:35,
                 from ./google/protobuf/util/internal/default_value_objectwriter.h:43,
                 from google/protobuf/util/json_util.cc:36:
./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)':
./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase'
Makefile:4068: recipe for target 'google/protobuf/util/time_util.lo' failed
make[5]: *** [google/protobuf/util/time_util.lo] Error 1
make[5]: *** Waiting for unfinished jobs....
Makefile:4068: recipe for target 'google/protobuf/util/type_resolver_util.lo' failed
make[5]: *** [google/protobuf/util/type_resolver_util.lo] Error 1
Makefile:4068: recipe for target 'google/protobuf/util/json_util.lo' failed
make[5]: *** [google/protobuf/util/json_util.lo] Error 1
Makefile:4068: recipe for target 'google/protobuf/compiler/code_generator.lo' failed
make[5]: *** [google/protobuf/compiler/code_generator.lo] Error 1
Makefile:2076: recipe for target 'all' failed
make[4]: *** [all] Error 2
Makefile:1396: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
Makefile:1302: recipe for target 'all' failed
make[2]: *** [all] Error 2
package/pkg-generic.mk:227: recipe for target '/home/thomas/projets/buildroot/output/build/protobuf-3.3.0/.stamp_built' failed
make[1]: *** [/home/thomas/projets/buildroot/output/build/protobuf-3.3.0/.stamp_built] Error 2
Makefile:79: recipe for target '_all' failed
make: *** [_all] Error 2

You can reproduce this by using the following configuration:

BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="http://sources.buildroot.net/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-none-linux-gnueabi"
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_INIT_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_PROTOBUF=y
# BR2_TARGET_ROOTFS_TAR is not set

Best regards,

Thomas Petazzoni
Mario Rugiero May 4, 2017, 1:34 p.m. UTC | #2
2017-05-04 9:56 GMT-03:00 Thomas Petazzoni
<thomas.petazzoni@free-electrons.com>:
> Hello,
>
> On Wed,  3 May 2017 17:59:45 -0300, Mario J. Rugiero wrote:
>> Includes upstream patch working around a gcc bug which got fixed in version 4.5.0.
>>
>> Fixes:
>> http://autobuild.buildroot.org/results/77d/77dbb6bbbc0ea9e9bcdd22b10011ef9728c20d54/
>> http://autobuild.buildroot.org/results/21f/21f5e1ea4f37e1d174604d6da78c0e916c89f1e3/
>> http://autobuild.buildroot.org/results/24e/24e880086c87d40b5d79a90d805acc75b33d484c/
>>
>> Tested with:
>> qemu_aarch64_virt_defconfig
>>
>> Signed-off-by: Mario J. Rugiero <mrugiero@gmail.com>
>
> I've applied this patch, and then tried building with a gcc 4.3
> toolchain, and still get:
>
> libtool: compile:  /home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-g++ -DHAVE_CONFIG_H -I. -I.. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pthread -DHAVE_PTHREAD=1 -Wall -Wno-sign-compare -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c google/protobuf/util/type_resolver_util.cc  -fPIC -DPIC -o google/protobuf/util/.libs/type_resolver_util.o
> In file included from ./google/protobuf/metadata.h:41,
>                  from ./google/protobuf/type.pb.h:27,
>                  from google/protobuf/util/type_resolver_util.cc:33:
> ./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)':
> ./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase'
> In file included from ./google/protobuf/metadata.h:41,
>                  from ./google/protobuf/compiler/plugin.pb.h:27,
>                  from google/protobuf/compiler/code_generator.cc:37:
> ./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)':
> ./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase'
> In file included from ./google/protobuf/metadata.h:41,
>                  from ./google/protobuf/duration.pb.h:27,
>                  from ./google/protobuf/util/time_util.h:45,
>                  from google/protobuf/util/time_util.cc:31:
> ./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)':
> ./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase'
> In file included from ./google/protobuf/metadata.h:41,
>                  from ./google/protobuf/type.pb.h:27,
>                  from ./google/protobuf/util/internal/type_info.h:35,
>                  from ./google/protobuf/util/internal/default_value_objectwriter.h:43,
>                  from google/protobuf/util/json_util.cc:36:
> ./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)':
> ./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase'
> Makefile:4068: recipe for target 'google/protobuf/util/time_util.lo' failed
> make[5]: *** [google/protobuf/util/time_util.lo] Error 1
> make[5]: *** Waiting for unfinished jobs....
> Makefile:4068: recipe for target 'google/protobuf/util/type_resolver_util.lo' failed
> make[5]: *** [google/protobuf/util/type_resolver_util.lo] Error 1
> Makefile:4068: recipe for target 'google/protobuf/util/json_util.lo' failed
> make[5]: *** [google/protobuf/util/json_util.lo] Error 1
> Makefile:4068: recipe for target 'google/protobuf/compiler/code_generator.lo' failed
> make[5]: *** [google/protobuf/compiler/code_generator.lo] Error 1
> Makefile:2076: recipe for target 'all' failed
> make[4]: *** [all] Error 2
> Makefile:1396: recipe for target 'all-recursive' failed
> make[3]: *** [all-recursive] Error 1
> Makefile:1302: recipe for target 'all' failed
> make[2]: *** [all] Error 2
> package/pkg-generic.mk:227: recipe for target '/home/thomas/projets/buildroot/output/build/protobuf-3.3.0/.stamp_built' failed
> make[1]: *** [/home/thomas/projets/buildroot/output/build/protobuf-3.3.0/.stamp_built] Error 2
> Makefile:79: recipe for target '_all' failed
> make: *** [_all] Error 2
>
> You can reproduce this by using the following configuration:
>
> BR2_arm=y
> BR2_TOOLCHAIN_EXTERNAL=y
> BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
> BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
> BR2_TOOLCHAIN_EXTERNAL_URL="http://sources.buildroot.net/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2"
> BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-none-linux-gnueabi"
> BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
> BR2_TOOLCHAIN_EXTERNAL_CXX=y
> BR2_INIT_NONE=y
> # BR2_PACKAGE_BUSYBOX is not set
> BR2_PACKAGE_PROTOBUF=y
> # BR2_TARGET_ROOTFS_TAR is not set
>
> Best regards,
>
> Thomas Petazzoni
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
Thanks, I'll look into it.
Mario Rugiero May 5, 2017, 5:24 p.m. UTC | #3
>> You can reproduce this by using the following configuration:
>>
>> BR2_arm=y
>> BR2_TOOLCHAIN_EXTERNAL=y
>> BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
>> BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
>> BR2_TOOLCHAIN_EXTERNAL_URL="http://sources.buildroot.net/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2"
>> BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-none-linux-gnueabi"
>> BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
>> BR2_TOOLCHAIN_EXTERNAL_CXX=y
>> BR2_INIT_NONE=y
>> # BR2_PACKAGE_BUSYBOX is not set
>> BR2_PACKAGE_PROTOBUF=y
>> # BR2_TARGET_ROOTFS_TAR is not set
>>
>> Best regards,
>>
>> Thomas Petazzoni
>> --
>> Thomas Petazzoni, CTO, Free Electrons
>> Embedded Linux and Kernel engineering
>> http://free-electrons.com
> Thanks, I'll look into it.
I fixed that particular issue in my local copy, but fails because
Atomic32 is not supported in that toolchain.
Do you know if there is any similar toolchain with such support?
Otherwise, how should I fix that?

Regards,
Mario.
Thomas Petazzoni May 5, 2017, 6:20 p.m. UTC | #4
Hello,

On Fri, 5 May 2017 14:24:00 -0300, Mario Rugiero wrote:

> I fixed that particular issue in my local copy, but fails because
> Atomic32 is not supported in that toolchain.
> Do you know if there is any similar toolchain with such support?
> Otherwise, how should I fix that?

What error do you have exactly?

Something like an undefined reference to some __atomic_*() function? If
so, then make sure you link with -latomic.

Best regards,

Thomas
Mario Rugiero May 5, 2017, 6:27 p.m. UTC | #5
2017-05-05 15:20 GMT-03:00 Thomas Petazzoni
<thomas.petazzoni@free-electrons.com>:
> Hello,
>
> On Fri, 5 May 2017 14:24:00 -0300, Mario Rugiero wrote:
>
>> I fixed that particular issue in my local copy, but fails because
>> Atomic32 is not supported in that toolchain.
>> Do you know if there is any similar toolchain with such support?
>> Otherwise, how should I fix that?
>
> What error do you have exactly?

/bin/sh ../libtool  --tag=CXX   --mode=compile
/home/mrugiero/workspace/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-g++
-DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64 -pthread -DHAVE_PTHREAD=1  -Wall
-Wno-sign-compare  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64  -Os  -c -o google/protobuf/dynamic_message.lo
goo
gle/protobuf/dynamic_message.cc
libtool: compile:
/home/mrugiero/workspace/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-g++
-DHAVE_CONFIG_H -I. -I.. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64 -pthread -DHAVE_PTHREAD=1 -Wall
-Wno-sign-compare -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64 -Os -c google/protobuf/dynamic_message.cc
-fPIC -DPIC -o google/protobuf/.libs/dy
namic_message.o
In file included from google/protobuf/dynamic_message.cc:82:
./google/protobuf/map_field.h: In member function 'void
google::protobuf::internal::MapField<Derived, Key, Value,
kKeyFieldType, kValueFieldType,
default_enum_value>::Swap(google::protobuf::internal::MapField<Derived,
Key, Value, kKeyFieldType, kValueFieldType, default_enum_value>*)':
./google/protobuf/map_field.h:139: error: object missing in reference
to 'google::protobuf::internal::MapFieldBase::repeated_field_'
./google/protobuf/map_field_inl.h:255: error: from this location
./google/protobuf/map_field.h:143: error: object missing in reference
to 'google::protobuf::internal::MapFieldBase::state_'
./google/protobuf/map_field_inl.h:257: error: from this location

>
> Something like an undefined reference to some __atomic_*() function? If
> so, then make sure you link with -latomic.
>
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
Thomas Petazzoni May 11, 2017, 9 p.m. UTC | #6
Hello,

On Wed,  3 May 2017 17:59:45 -0300, Mario J. Rugiero wrote:
> Includes upstream patch working around a gcc bug which got fixed in version 4.5.0.
> 
> Fixes:
> http://autobuild.buildroot.org/results/77d/77dbb6bbbc0ea9e9bcdd22b10011ef9728c20d54/
> http://autobuild.buildroot.org/results/21f/21f5e1ea4f37e1d174604d6da78c0e916c89f1e3/
> http://autobuild.buildroot.org/results/24e/24e880086c87d40b5d79a90d805acc75b33d484c/
> 
> Tested with:
> qemu_aarch64_virt_defconfig
> 
> Signed-off-by: Mario J. Rugiero <mrugiero@gmail.com>

I was about to apply this patch, but I get:

2017-05-11 22:54:02 (2,13 MB/s) - ‘/home/thomas/projets/buildroot/output/build/.protobuf-cpp-3.3.0.tar.gz.8o4hc1/output’ saved [4218377/4218377]

ERROR: protobuf-cpp-3.3.0.tar.gz has wrong sha256 hash:
ERROR: expected: 578a2589bf9258adb03245dec5d624b61536867ebb732dbb8aeb30d96b0ada1f
ERROR: got     : 5e2587dea2f9287885e3b04d3a94ed4e8b9b2d2c5dd1f0032ceef3ea1d153bd7
ERROR: Incomplete download, or man-in-the-middle (MITM) attack

It's weird, because I'm pretty sure I had tested it before. Which would
mean upstream has re-uploaded a different tarball with the same version
number, which is really bad.

Could you look into this?

Thanks!

Thomas
diff mbox

Patch

diff --git a/package/protobuf/protobuf.hash b/package/protobuf/protobuf.hash
index 8c2ade37e..91e70f236 100644
--- a/package/protobuf/protobuf.hash
+++ b/package/protobuf/protobuf.hash
@@ -1,3 +1,2 @@ 
 # Locally calculated
-sha256 51d773e4297238b282eaa4c1dd317099675b12eef2b414732b851c00459225c6 protobuf-cpp-3.2.0.tar.gz
-sha256 da80c39838515913633f4cbd875fdd4ad711be95c83a50ff5096b9f1254033b3 416f90939d4de58fe1a4e2489120010313183291.patch
+sha256 578a2589bf9258adb03245dec5d624b61536867ebb732dbb8aeb30d96b0ada1f protobuf-cpp-3.3.0.tar.gz
diff --git a/package/protobuf/protobuf.mk b/package/protobuf/protobuf.mk
index 610da8c04..556773106 100644
--- a/package/protobuf/protobuf.mk
+++ b/package/protobuf/protobuf.mk
@@ -7,7 +7,7 @@ 
 # When bumping this package, make sure to also verify if the
 # python-protobuf package still works, as they share the same
 # version/site variables.
-PROTOBUF_VERSION = 3.2.0
+PROTOBUF_VERSION = 3.3.0
 PROTOBUF_SOURCE = protobuf-cpp-$(PROTOBUF_VERSION).tar.gz
 PROTOBUF_SITE = https://github.com/google/protobuf/releases/download/v$(PROTOBUF_VERSION)
 PROTOBUF_LICENSE = BSD-3-Clause
@@ -19,8 +19,6 @@  PROTOBUF_CONF_OPTS = --with-protoc=$(HOST_DIR)/usr/bin/protoc
 
 PROTOBUF_INSTALL_STAGING = YES
 
-PROTOBUF_PATCH = https://github.com/google/protobuf/commit/416f90939d4de58fe1a4e2489120010313183291.patch
-
 ifeq ($(BR2_PACKAGE_ZLIB),y)
 PROTOBUF_DEPENDENCIES += zlib
 endif
diff --git a/package/python-protobuf/python-protobuf.hash b/package/python-protobuf/python-protobuf.hash
index c87403f24..7da2fed03 100644
--- a/package/python-protobuf/python-protobuf.hash
+++ b/package/python-protobuf/python-protobuf.hash
@@ -1,2 +1,2 @@ 
 # Locally calculated
-sha256 c574e2b2178ffe66599274e8cfa11ecf83799a7992be30f0b68fb33ea0a0f1af protobuf-python-3.2.0.tar.gz
+sha256 3fd180eee78c7ee2e7a1b2f02657ef61ccbc2537a6767cd2493077d3b38c9d2d protobuf-python-3.3.0.tar.gz