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

protobuf 3.14.0 makefile fails PHP 8 #342

Closed
madsem opened this issue Jun 4, 2021 · 2 comments
Closed

protobuf 3.14.0 makefile fails PHP 8 #342

madsem opened this issue Jun 4, 2021 · 2 comments

Comments

@madsem
Copy link

madsem commented Jun 4, 2021

Hey there, thanks a lot for this tool, it has been super helpful so far!

I'm running into an issue now where I am trying to install protobuf v3.14.0 (It has to be this because Google Ads php SDK has an ongoing issue with 3.15.0+).

Here is my dockerfile:

FROM laravelphp/vapor:php80

# Using this script to install php extensions:
# @link https://github.com/mlocati/docker-php-extension-installer
# because of this bug:
# @link https://github.com/grpc/grpc/issues/25250

ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/

# Install protobuf 3.14.0 because of this bug:
# @link https://github.com/googleads/google-ads-php/issues/540
RUN chmod +x /usr/local/bin/install-php-extensions && sync && \
    install-php-extensions grpc protobuf-3.14.0

COPY . /var/task

The installation fails after about 15 minutes, like so:

 ### INSTALLING REMOTE MODULE protobuf ###                                    
482
    (installing version 3.14.0)                                                
483
    - Installing protobuf (3.14.0): Downloading (connecting...)     
484
  ���������������������������Downloading (0%)           ���                                    
485
  ������������������������Downloading (25%)����������������                                              
486
  �Downloading (50%)�����������������Downloading (75%)�����                             
487
  ������������Downloading (100%)                                                    
488
  +-----------------------------------+----------+                          
489
  | Package name                      | protobuf |                             
490
  | Package version (current release) | 3.14.0   |                             
491
  | Package status                    | stable   |                             
492
  +-----------------------------------+----------+                             
493
  The following error(s) happened: make failed                                 
494
  1: phpize                                                                    
495
  2: Configuring for:                                                          
496
  2: PHP Api Version:         20200930                                         
497
  2: Zend Module Api No:      20200930                                         
498
  2: Zend Extension Api No:   420200930                                        
499
  1: /tmp/pickle.tmp/protobuf/protobuf-3.14.0/configure                        
500
  2: checking for grep that handles long lines and -e... /bin/grep             
501
  2: checking for egrep... /bin/grep -E                                        
502
  2: checking for a sed that does not truncate output... /bin/sed              
503
  2: checking for pkg-config... /usr/bin/pkg-config                            
504
  2: checking pkg-config is at least version 0.9.0... yes                      
505
  2: checking for cc... cc                                                     
506
  2: checking whether the C compiler works... yes                              
507
  2: checking for C compiler default output file name... a.out                 
508
  2: checking for suffix of executables...                                     
509
  2: checking whether we are cross compiling... no                             
510
  2: checking for suffix of object files... o                                  
511
  2: checking whether we are using the GNU C compiler... yes                   
512
  2: checking whether cc accepts -g... yes                                     
513
  2: checking for cc option to accept ISO C89... none needed                   
514
  2: checking how to run the C preprocessor... cc -E                           
515
  2: checking for icc... no                                                    
516
  2: checking for suncc... no                                                  
517
  2: checking for system library directory... lib                              
518
  2: checking if compiler supports -R... no                                    
519
  2: checking if compiler supports -Wl,-rpath,... yes                          
520
  2: checking build system type... x86_64-pc-linux-musl                        
521
  2: checking host system type... x86_64-pc-linux-musl                         
522
  2: checking target system type... x86_64-pc-linux-musl                       
523
  2: checking for PHP prefix... /usr/local                                     
524
  2: checking for PHP includes... -I/usr/local/include/php -I/usr/local/inclu  
525
  de/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/  
526
  usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib              
527
  2: checking for PHP extension directory... /usr/local/lib/php/extensions/no  
528
  -debug-non-zts-20200930                                                      
529
  2: checking for PHP installed headers prefix... /usr/local/include/php       
530
  2: checking if debug is enabled... no                                        
531
  2: checking if zts is enabled... no                                          
532
  2: checking for gawk... no                                                   
533
  2: checking for nawk... no                                                   
534
  2: checking for awk... awk                                                   
535
  2: checking if awk is broken... no                                           
536
  2: checking whether to enable Protobuf extension... yes, shared              
537
  2: checking for a sed that does not truncate output... /bin/sed              
538
  2: checking for ld used by cc... /usr/x86_64-alpine-linux-musl/bin/ld        
539
  2: checking if the linker (/usr/x86_64-alpine-linux-musl/bin/ld) is GNU ld.  
540
  .. yes                                                                       
541
  2: checking for /usr/x86_64-alpine-linux-musl/bin/ld option to reload objec  
542
  t files... -r                                                                
543
  2: checking for BSD-compatible nm... /usr/bin/nm -B                          
544
  2: checking whether ln -s works... yes                                       
545
  2: checking how to recognize dependent libraries... pass_all                 
546
  2: checking for ANSI C header files... yes                                   
547
  2: checking for sys/types.h... yes                                           
548
  2: checking for sys/stat.h... yes                                            
549
  2: checking for stdlib.h... yes                                              
550
  2: checking for string.h... yes                                              
551
  2: checking for memory.h... yes                                              
552
  2: checking for strings.h... yes                                             
553
  2: checking for inttypes.h... yes                                            
554
  2: checking for stdint.h... yes                                              
555
  2: checking for unistd.h... yes                                              
556
  2: checking dlfcn.h usability... yes                                         
557
  2: checking dlfcn.h presence... yes                                          
558
  2: checking for dlfcn.h... yes                                               
559
  2: checking the maximum length of command line arguments... 98304            
560
  2: checking command to parse /usr/bin/nm -B output from cc object... ok      
561
  2: checking for objdir... .libs                                              
562
  2: checking for ar... ar                                                     
563
  2: checking for ranlib... ranlib                                             
564
  2: checking for strip... strip                                               
565
  2: checking if cc supports -fno-rtti -fno-exceptions... no                   
566
  2: checking for cc option to produce PIC... -fPIC                            
567
  2: checking if cc PIC flag -fPIC works... yes                                
568
  2: checking if cc static flag -static works... yes                           
569
  2: checking if cc supports -c -o file.o... yes                               
570
  2: checking whether the cc linker (/usr/x86_64-alpine-linux-musl/bin/ld -m   
571
  elf_x86_64) supports shared libraries... yes                                 
572
  2: checking whether -lc should be explicitly linked in... no                 
573
  2: checking dynamic linker characteristics... GNU/Linux ld.so                
574
  2: checking how to hardcode library paths into programs... immediate         
575
  2: checking whether stripping libraries is possible... yes                   
576
  2: checking if libtool supports shared libraries... yes                      
577
  2: checking whether to build shared libraries... yes                         
578
  2: checking whether to build static libraries... no                          
579
  2:                                                                           
580
  2: creating libtool                                                          
581
  2: appending configuration tag "CXX" to libtool                              
582
  2: configure: patching config.h.in                                           
583
  2: configure: creating ./config.status                                       
584
  2: config.status: creating config.h                                          
585
  1: make                                                                      
586
  2: /bin/sh /tmp/pickle.tmp/pickle-dd73d4c1090329f547791dc48c83998d69a80f43/  
587
  libtool --mode=compile cc -I. -I/tmp/pickle.tmp/protobuf/protobuf-3.14.0 -I  
588
  /tmp/pickle.tmp/pickle-dd73d4c1090329f547791dc48c83998d69a80f43/include -I/  
589
  tmp/pickle.tmp/pickle-dd73d4c1090329f547791dc48c83998d69a80f43/main -I/tmp/  
590
  pickle.tmp/protobuf/protobuf-3.14.0 -I/usr/local/include/php -I/usr/local/i  
591
  nclude/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend  
592
   -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib  -DHAVE  
593
  _CONFIG_H  -g -O2   -std=gnu99 -c /tmp/pickle.tmp/protobuf/protobuf-3.14.0/  
594
  arena.c -o arena.lo                                                          
595
  2: mkdir .libs                                                               
596
  2:  cc -I. -I/tmp/pickle.tmp/protobuf/protobuf-3.14.0 -I/tmp/pickle.tmp/pic  
597
  kle-dd73d4c1090329f547791dc48c83998d69a80f43/include -I/tmp/pickle.tmp/pick  
598
  le-dd73d4c1090329f547791dc48c83998d69a80f43/main -I/tmp/pickle.tmp/protobuf  
599
  /protobuf-3.14.0 -I/usr/local/include/php -I/usr/local/include/php/main -I/  
600
  usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/inclu  
601
  de/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -st  
602
  d=gnu99 -c /tmp/pickle.tmp/protobuf/protobuf-3.14.0/arena.c  -fPIC -DPIC -o  
603
   .libs/arena.o                                                               
604
  2: /bin/sh /tmp/pickle.tmp/pickle-dd73d4c1090329f547791dc48c83998d69a80f43/  
605
  libtool --mode=compile cc -I. -I/tmp/pickle.tmp/protobuf/protobuf-3.14.0 -I  
606
  /tmp/pickle.tmp/pickle-dd73d4c1090329f547791dc48c83998d69a80f43/include -I/  
607
  tmp/pickle.tmp/pickle-dd73d4c1090329f547791dc48c83998d69a80f43/main -I/tmp/  
608
  pickle.tmp/protobuf/protobuf-3.14.0 -I/usr/local/include/php -I/usr/local/i  
609
  nclude/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend  
610
   -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib  -DHAVE  
611
  _CONFIG_H  -g -O2   -std=gnu99 -c /tmp/pickle.tmp/protobuf/protobuf-3.14.0/  
612
  array.c -o array.lo                                                          
613
  2:  cc -I. -I/tmp/pickle.tmp/protobuf/protobuf-3.14.0 -I/tmp/pickle.tmp/pic  
614
  kle-dd73d4c1090329f547791dc48c83998d69a80f43/include -I/tmp/pickle.tmp/pick  
615
  le-dd73d4c1090329f547791dc48c83998d69a80f43/main -I/tmp/pickle.tmp/protobuf  
616
  /protobuf-3.14.0 -I/usr/local/include/php -I/usr/local/include/php/main -I/  
617
  usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/inclu  
618
  de/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -st  
619
  d=gnu99 -c /tmp/pickle.tmp/protobuf/protobuf-3.14.0/array.c  -fPIC -DPIC -o  
620
   .libs/array.o                                                               
621
  2: /tmp/pickle.tmp/protobuf/protobuf-3.14.0/array.c: In function 'Array_Mod  
622
  uleInit':                                                                    
623
  2: /tmp/pickle.tmp/protobuf/protobuf-3.14.0/array.c:639:4: error: 'zend_obj  
624
  ect_handlers' {aka 'struct _zend_object_handlers'} has no member named 'com  
625
  pare_objects'                                                                
626
  2:   639 |   h->compare_objects = RepeatedField_compare_objects;             
627
  2:       |    ^~                                                             
628
  2: make: *** [Makefile:210: array.lo] Error 1                                
629
                                                                               
630
  Error Output:                                                                
631
  ================                                                             
632
  The command '/bin/sh -c chmod +x /usr/local/bin/install-php-extensions && s  
633
  ync &&     install-php-extensions grpc protobuf-3.14.0' returned a non-zero  
634
   code: 1                       
@mlocati
Copy link
Owner

mlocati commented Jun 4, 2021

protobuf 3.14.0 doesn't support PHP 8.
Support for PHP 8 has been introduced since version 3.15.0 (see protocolbuffers/protobuf#8105)

@mlocati mlocati closed this as completed Jun 4, 2021
@madsem
Copy link
Author

madsem commented Jun 4, 2021

Ahhhhh jesus! I did not realize that thanks :) Well, now I'm in a pickle haha

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants