Opened 8 years ago

Closed 7 years ago

#51791 closed defect (fixed)

nghttp2 @1.12.0 Fails to build against LibreSSL @2.3.4

Reported by: iamGavinJ (GΛVĪN) Owned by: Schamschula (Marius Schamschula)
Priority: Normal Milestone:
Component: ports Version: 2.3.4
Keywords: Cc: jeremyhu (Jeremy Huddleston Sequoia)
Port: nghttp2

Description

Hi, not sure if this needs to be fixed in nghttp2 or LIbreSSL so CC'ing both maintainers.

Excerpt from the log showing the error:

:info:build /usr/bin/clang++ -DHAVE_CONFIG_H -I. -I..  -DPKGDATADIR='"/opt/local/share/nghttp2"' -I../lib/includes -I../lib/includes -I../lib -I../src/includes -I../third-party -I/opt/local/include/libxml2 -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include -DHAVE_CONFIG_H   -I/opt/local/include  -std=c++11 -pipe -Os -arch x86_64 -stdlib=libc++ -MT libnghttpx_a-shrpx_connect_blocker.o -MD -MP -MF .deps/libnghttpx_a-shrpx_connect_blocker.Tpo -c -o libnghttpx_a-shrpx_connect_blocker.o `test -f 'shrpx_connect_blocker.cc' || echo './'`shrpx_connect_blocker.cc
:info:build shrpx_ssl.cc:1375:15: error: use of undeclared identifier 'SSL_CTX_get0_certificate'; did you mean 'SSL_get_certificate'?
:info:build   auto cert = SSL_CTX_get0_certificate(ssl_ctx);
:info:build               ^~~~~~~~~~~~~~~~~~~~~~~~
:info:build               SSL_get_certificate
:info:build /opt/local/include/openssl/ssl.h:1734:7: note: 'SSL_get_certificate' declared here
:info:build X509 *SSL_get_certificate(const SSL *ssl);
:info:build       ^
:info:build shrpx_ssl.cc:1375:40: error: cannot initialize a parameter of type 'const SSL *' (aka 'const ssl_st *') with an lvalue of type 'ssl_ctx_st *'
:info:build   auto cert = SSL_CTX_get0_certificate(ssl_ctx);
:info:build                                        ^~~~~~~
:info:build /opt/local/include/openssl/ssl.h:1734:38: note: passing argument to parameter 'ssl' here
:info:build X509 *SSL_get_certificate(const SSL *ssl);
:info:build                                      ^
:info:build shrpx_ssl.cc:1401:17: error: use of undeclared identifier 'SSL_CTX_get0_certificate'; did you mean 'SSL_get_certificate'?
:info:build     auto cert = SSL_CTX_get0_certificate(ssl_ctx);
:info:build                 ^~~~~~~~~~~~~~~~~~~~~~~~
:info:build                 SSL_get_certificate
:info:build /opt/local/include/openssl/ssl.h:1734:7: note: 'SSL_get_certificate' declared here
:info:build X509 *SSL_get_certificate(const SSL *ssl);
:info:build       ^
:info:build shrpx_ssl.cc:1401:42: error: cannot initialize a parameter of type 'const SSL *' (aka 'const ssl_st *') with an lvalue of type 'ssl_ctx_st *'
:info:build     auto cert = SSL_CTX_get0_certificate(ssl_ctx);
:info:build                                          ^~~~~~~
:info:build /opt/local/include/openssl/ssl.h:1734:38: note: passing argument to parameter 'ssl' here
:info:build X509 *SSL_get_certificate(const SSL *ssl);
:info:build                                      ^
:info:build mv -f .deps/libnghttpx_a-shrpx_log_config.Tpo .deps/libnghttpx_a-shrpx_log_config.Po
:info:build /usr/bin/clang++ -DHAVE_CONFIG_H -I. -I..  -DPKGDATADIR='"/opt/local/share/nghttp2"' -I../lib/includes -I../lib/includes -I../lib -I../src/includes -I../third-party -I/opt/local/include/libxml2 -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include -DHAVE_CONFIG_H   -I/opt/local/include  -std=c++11 -pipe -Os -arch x86_64 -stdlib=libc++ -MT libnghttpx_a-shrpx_live_check.o -MD -MP -MF .deps/libnghttpx_a-shrpx_live_check.Tpo -c -o libnghttpx_a-shrpx_live_check.o `test -f 'shrpx_live_check.cc' || echo './'`shrpx_live_check.cc
:info:build 4 errors generated.
:info:build make[3]: *** [libnghttpx_a-shrpx_ssl.o] Error 1
:info:build make[3]: *** Waiting for unfinished jobs....
:info:build mv -f .deps/libnghttpx_a-shrpx_connect_blocker.Tpo .deps/libnghttpx_a-shrpx_connect_blocker.Po
:info:build mv -f .deps/libnghttpx_a-shrpx_live_check.Tpo .deps/libnghttpx_a-shrpx_live_check.Po
:info:build mv -f .deps/libnghttpx_a-shrpx_worker.Tpo .deps/libnghttpx_a-shrpx_worker.Po
:info:build make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_www_nghttp2/nghttp2/work/nghttp2-1.12.0/src'
:info:build make[2]: *** [all-recursive] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_www_nghttp2/nghttp2/work/nghttp2-1.12.0/src'
:info:build make[1]: *** [all-recursive] Error 1
:info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_www_nghttp2/nghttp2/work/nghttp2-1.12.0'
:info:build make: *** [all] Error 2
:info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_www_nghttp2/nghttp2/work/nghttp2-1.12.0'
:info:build Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_www_nghttp2/nghttp2/work/nghttp2-1.12.0" && /usr/bin/make -j4 -w all 
:info:build Exit code: 2
:error:build org.macports.build for port nghttp2 returned: command execution failed
:debug:build Error code: CHILDSTATUS 62161 2
:debug:build Backtrace: command execution failed
    while executing
"system -nice 0 $fullcmdstring"
    ("eval" body line 1)
    invoked from within
"eval system $notty $nice \$fullcmdstring"
    invoked from within
"command_exec build"
    (procedure "portbuild::build_main" line 8)
    invoked from within
"portbuild::build_main org.macports.build"
    ("eval" body line 1)
    invoked from within
"eval $procedure $targetname"
:info:build Warning: targets not executed for nghttp2: org.macports.destroot org.macports.build
:notice:build Please see the log file for port nghttp2 for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_www_nghttp2/nghttp2/main.log

Attachments (3)

main.log (77.6 KB) - added by iamGavinJ (GΛVĪN) 8 years ago.
change-nghttp2-maintainer.diff (848 bytes) - added by iamGavinJ (GΛVĪN) 8 years ago.
Updated Portfile with revision including 'patchfile'
patch-src-shrpx_ssl.cc.diff (1.6 KB) - added by iamGavinJ (GΛVĪN) 8 years ago.
Patch

Download all attachments as: .zip

Change History (10)

Changed 8 years ago by iamGavinJ (GΛVĪN)

Attachment: main.log added

comment:1 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Cc: mps@… removed
Owner: changed from macports-tickets@… to mps@…

Changed 8 years ago by iamGavinJ (GΛVĪN)

Updated Portfile with revision including 'patchfile'

Changed 8 years ago by iamGavinJ (GΛVĪN)

Attachment: patch-src-shrpx_ssl.cc.diff added

Patch

comment:3 Changed 8 years ago by iamGavinJ (GΛVĪN)

KEYWORD: haspatch

Please publish this Portfile revision and patch; files attached. Thanks.

comment:4 Changed 8 years ago by mf2k (Frank Schima)

Note to maintainer: since this is a build error, the revision does not need to increase.

comment:5 in reply to:  4 Changed 8 years ago by iamGavinJ (GΛVĪN)

Sorry I'm still a bit new at MacPorts. I needed to increase the revision to stop fetching of the binary archive which caused linking errors. I suppose that could be worked around by using the 'port -s' command line but without knowing you'd have to do that other users would run into the same problem. Unless of course the buildbot will simply go and rebuild that binary archive when the portfile is updated?

Replying to mf2k@…:

Note to maintainer: since this is a build error, the revision does not need to increase.

Last edited 8 years ago by iamGavinJ (GΛVĪN) (previous) (diff)

comment:6 Changed 8 years ago by mf2k (Frank Schima)

You are correct on both counts.

comment:7 Changed 7 years ago by l2dy (Zero King)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.