Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 651312

Summary: www-servers/apache fails to compile with dev-libs/libressl-2.7.0: error: static declaration of "DH_set0_pqg" follows non-static declaration
Product: Gentoo Linux Reporter: Reuben Farrelly <reuben-gentoo-bugzilla>
Component: Current packagesAssignee: Anthony Basile <blueness>
Status: RESOLVED FIXED    
Severity: normal CC: apache-bugs
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 651228    
Attachments: emerge --info

Description Reuben Farrelly 2018-03-24 04:48:01 UTC
Created attachment 525160 [details]
emerge --info

This is new breakage with libressl-2.7.0:

[ebuild   R    ] www-servers/apache-2.4.32:2::gentoo  USE="libressl ssl threads -debug -doc -ldap (-selinux) -static -suexec" APACHE2_MODULES="access_compat actions alias asis auth_basic auth_digest authn_alias authn_anon authn_core authn_dbm authn_file authz_core authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers http2 include info log_config logio mime mime_magic negotiation proxy proxy_http remoteip rewrite setenvif socache_shmcb speling status unique_id unixd userdir usertrack vhost_alias -authn_dbd -authz_dbd -brotli -cache_disk -cache_socache -cern_meta -charset_lite -dbd -dumpio -ident -imagemap -lbmethod_bybusyness -lbmethod_byrequests -lbmethod_bytraffic -lbmethod_heartbeat -log_forensic -macro -proxy_ajp -proxy_balancer -proxy_connect -proxy_fcgi -proxy_ftp -proxy_html -proxy_scgi -proxy_wstunnel -ratelimit -reqtimeout -slotmem_shm -substitute -version -watchdog -xml2enc" APACHE2_MPMS="event -prefork -worker" 0 KiB

Resulting in:

/usr/share/build-1/libtool --silent --mode=compile x86_64-pc-linux-gnu-gcc  -pthread  -O2 -pipe -march=native -mtune=native    -DLINUX -D_REENTRANT -D_GNU_SOURCE     -I. -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/os/unix -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/include -I/usr/include/apr-1 -I/usr/include/db6.2 -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/aaa -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/cache -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/core -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/database -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/filters -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/ldap -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/loggers -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/lua -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/proxy -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/session -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/ssl -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/test -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/server -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/md -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/arch/unix -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/dav/main -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/generators -I/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/mappers -prefer-pic -c ssl_engine_init.c && touch ssl_engine_init.slo
ssl_engine_init.c:54:12: error: static declaration of ‘DH_set0_pqg’ follows non-static declaration
 static int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
            ^~~~~~~~~~~
In file included from /usr/include/openssl/dsa.h:83:0,
                 from /usr/include/openssl/x509.h:99,
                 from /usr/include/openssl/pem.h:71,
                 from /usr/include/openssl/ssl.h:150,
                 from ssl_private.h:90,
                 from ssl_engine_init.c:29:
/usr/include/openssl/dh.h:195:5: note: previous declaration of ‘DH_set0_pqg’ was here
 int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g);
     ^~~~~~~~~~~
make[4]: *** [/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/build/rules.mk:212: ssl_engine_init.slo] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory '/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/ssl'
make[3]: *** [/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/build/rules.mk:117: shared-build-recursive] Error 1
make[3]: Leaving directory '/var/tmp/portage/www-servers/apache-2.4.32/work/httpd-2.4.32/modules/ssl'

The following patches from the OpenBSD tree:

https://github.com/openbsd/ports/tree/master/www/apache-httpd/patches

fix this problem:

patch-modules_ssl_ssl_engine_init_c.patch
patch-modules_ssl_ssl_private_h.patch

Apache then builds and runs normally.
Comment 1 Anthony Basile gentoo-dev 2018-03-24 11:13:34 UTC
All bug reporters, can you please test against dev-libs/libressl-2.7.1
Comment 2 Reuben Farrelly 2018-03-24 13:25:01 UTC
Sure.

- Upgraded to libressl-2.7.1
- Tested by not applying the patches, attempting to recompile (fails)
- Tested again applying the patches, (compile succeeds)

=> no change in behaviour with 2.7.1.
Comment 3 Anthony Basile gentoo-dev 2018-03-24 13:28:27 UTC
(In reply to Reuben Farrelly from comment #2)
> Sure.
> 
> - Upgraded to libressl-2.7.1
> - Tested by not applying the patches, attempting to recompile (fails)
> - Tested again applying the patches, (compile succeeds)
> 
> => no change in behaviour with 2.7.1.

thanks as expected.  i'm cc-ing the apache team to see if they'll allow those patches contingent on whether USE=libressl is enabled.
Comment 4 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2018-03-26 09:06:10 UTC
(In reply to Anthony Basile from comment #3)
> (In reply to Reuben Farrelly from comment #2)
> > Sure.
> > 
> > - Upgraded to libressl-2.7.1
> > - Tested by not applying the patches, attempting to recompile (fails)
> > - Tested again applying the patches, (compile succeeds)
> > 
> > => no change in behaviour with 2.7.1.
> 
> thanks as expected.  i'm cc-ing the apache team to see if they'll allow
> those patches contingent on whether USE=libressl is enabled.

Apache team (which only consits of myself) is okay with applying these patches.
Comment 5 Larry the Git Cow gentoo-dev 2018-04-20 03:11:31 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=10b3011a4085229faa82e2a1512a233d86bc5e80

commit 10b3011a4085229faa82e2a1512a233d86bc5e80
Author:     Aaron Bauman <bman@gentoo.org>
AuthorDate: 2018-04-20 03:11:08 +0000
Commit:     Aaron Bauman <bman@gentoo.org>
CommitDate: 2018-04-20 03:11:08 +0000

    www-servers/apache: compatibility patch for LibreSSL
    
    This patch fixes building dev-libs/libressl and is based on the upstream
    Git commit 8134addfabf2685e08da6d51167775b628fda0dc.
    
    Closes: https://bugs.gentoo.org/651312
    Package-Manager: Portage-2.3.31, Repoman-2.3.9

 www-servers/apache/apache-2.4.33.ebuild            |  5 ++
 .../apache-2.4.33-libressl-compatibility.patch     | 97 ++++++++++++++++++++++
 2 files changed, 102 insertions(+)