Submitted By:            Igor Živković <contact@igor-zivkovic.from.hr>
Date:                    2015-01-05
Initial Package Version: 2.4.10
Upstream Status:         Unknown
Origin:                  Sabotage
Description:             Fixes build with LibreSSL.

diff -Naur httpd-2.4.10.orig/modules/ssl/ssl_engine_init.c httpd-2.4.10/modules/ssl/ssl_engine_init.c
--- httpd-2.4.10.orig/modules/ssl/ssl_engine_init.c	2014-07-14 14:29:22.000000000 +0200
+++ httpd-2.4.10/modules/ssl/ssl_engine_init.c	2015-01-05 21:46:29.247074497 +0100
@@ -353,9 +353,11 @@
             return ssl_die(s);
         }
 
+#ifdef ENGINE_CTRL_CHIL_SET_FORKCHECK
         if (strEQ(mc->szCryptoDevice, "chil")) {
             ENGINE_ctrl(e, ENGINE_CTRL_CHIL_SET_FORKCHECK, 1, 0, 0);
         }
+#endif
 
         if (!ENGINE_set_default(e, ENGINE_METHOD_ALL)) {
             ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s, APLOGNO(01889)
@@ -828,7 +830,7 @@
         }
     }
 
-    n = SSL_CTX_use_certificate_chain(mctx->ssl_ctx,
+    n = _SSL_CTX_use_certificate_chain(mctx->ssl_ctx,
                                       (char *)chain,
                                       skip_first, NULL);
     if (n < 0) {
@@ -975,7 +977,7 @@
                 return APR_EGENERAL;
             }
         } else {
-            if ((SSL_CTX_use_certificate_chain_file(mctx->ssl_ctx,
+            if ((_SSL_CTX_use_certificate_chain_file(mctx->ssl_ctx,
                                                     certfile) < 1)) {
                 ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s, APLOGNO(02562)
                              "Failed to configure certificate %s (with chain),"
diff -Naur httpd-2.4.10.orig/modules/ssl/ssl_engine_rand.c httpd-2.4.10/modules/ssl/ssl_engine_rand.c
--- httpd-2.4.10.orig/modules/ssl/ssl_engine_rand.c	2011-12-05 01:08:01.000000000 +0100
+++ httpd-2.4.10/modules/ssl/ssl_engine_rand.c	2015-01-05 21:46:29.231075230 +0100
@@ -86,9 +86,11 @@
                  * seed in contents provided by the external
                  * Entropy Gathering Daemon (EGD)
                  */
+#ifdef HAVE_SSL_RAND_EGD
                 if ((n = RAND_egd(pRandSeed->cpPath)) == -1)
                     continue;
                 nDone += n;
+#endif
             }
             else if (pRandSeed->nSrc == SSL_RSSRC_BUILTIN) {
                 struct {
diff -Naur httpd-2.4.10.orig/modules/ssl/ssl_util_ssl.c httpd-2.4.10/modules/ssl/ssl_util_ssl.c
--- httpd-2.4.10.orig/modules/ssl/ssl_util_ssl.c	2014-03-02 21:20:14.000000000 +0100
+++ httpd-2.4.10/modules/ssl/ssl_util_ssl.c	2015-01-05 21:46:29.254074176 +0100
@@ -460,7 +460,7 @@
  * format, possibly followed by a sequence of CA certificates that
  * should be sent to the peer in the SSL Certificate message.
  */
-int SSL_CTX_use_certificate_chain(
+int _SSL_CTX_use_certificate_chain(
     SSL_CTX *ctx, char *file, int skipfirst, pem_password_cb *cb)
 {
     BIO *bio;
diff -Naur httpd-2.4.10.orig/modules/ssl/ssl_util_ssl.h httpd-2.4.10/modules/ssl/ssl_util_ssl.h
--- httpd-2.4.10.orig/modules/ssl/ssl_util_ssl.h	2014-03-02 21:20:14.000000000 +0100
+++ httpd-2.4.10/modules/ssl/ssl_util_ssl.h	2015-01-05 21:46:29.256074084 +0100
@@ -69,7 +69,7 @@
 BOOL        SSL_X509_match_name(apr_pool_t *, X509 *, const char *, BOOL, server_rec *);
 BOOL        SSL_X509_INFO_load_file(apr_pool_t *, STACK_OF(X509_INFO) *, const char *);
 BOOL        SSL_X509_INFO_load_path(apr_pool_t *, STACK_OF(X509_INFO) *, const char *);
-int         SSL_CTX_use_certificate_chain(SSL_CTX *, char *, int, pem_password_cb *);
+int         _SSL_CTX_use_certificate_chain(SSL_CTX *, char *, int, pem_password_cb *);
 char       *SSL_SESSION_id2sz(unsigned char *, int, char *, int);
 
 #endif /* __SSL_UTIL_SSL_H__ */
