[packages/ptlib] - rel 4; fix build & openssl build and disable odbc as seriously conflicting with unixodbc headers

arekm arekm at pld-linux.org
Thu Sep 27 11:01:12 CEST 2018


commit df56f391f5c2a755ea9e72f6ce4e0c91912596be
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Thu Sep 27 11:01:02 2018 +0200

    - rel 4; fix build & openssl build and disable odbc as seriously conflicting with unixodbc headers

 disable-sslv3.patch |  18 ++++++++
 gcc-5_support       |  13 ++++++
 glibc.patch         |  11 +++++
 openssl-1.1.0.patch | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 ptlib.spec          |  15 ++++--
 5 files changed, 182 insertions(+), 3 deletions(-)
---
diff --git a/ptlib.spec b/ptlib.spec
index 0d44627..f1b9984 100644
--- a/ptlib.spec
+++ b/ptlib.spec
@@ -9,7 +9,7 @@
 %bcond_without	ipv6		# IPv6 support
 %bcond_without	ldap		# LDAP support
 %bcond_without	lua		# Lua script support
-%bcond_without	odbc		# ODBC support
+%bcond_with	odbc		# ODBC support
 %bcond_without	openssl		# openssl support
 %bcond_without	plugins		# plugins support
 %bcond_without	resolver	# resolver support
@@ -23,7 +23,7 @@ Summary:	Portable Tools Library
 Summary(pl.UTF-8):	Przenośna biblioteka narzędziowa
 Name:		ptlib
 Version:	2.10.11
-Release:	3
+Release:	4
 Epoch:		1
 License:	MPL v1.0
 Group:		Libraries
@@ -31,6 +31,10 @@ Source0:	http://downloads.sourceforge.net/opalvoip/%{name}-%{version}.tar.bz2
 # Source0-md5:	eb2fb52c91224483c17dcea6df9c23a3
 Patch0:		bison3.patch
 Patch1:		%{name}-lua.patch
+Patch2:		disable-sslv3.patch
+Patch3:		openssl-1.1.0.patch
+Patch4:		gcc-5_support
+Patch5:		glibc.patch
 URL:		http://www.opalvoip.org/
 %{?with_video:BuildRequires:	SDL-devel}
 BuildRequires:	autoconf >= 2.50
@@ -183,12 +187,17 @@ Wtyczka wejścia obrazu AVC 1394 dla biblioteki PTLib
 %setup -q
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
 
 %build
 %{__aclocal}
 %{__autoconf}
 # note: --enable-opal influences most of the remaining enable/disable defaults
-%{?with_lua:CPPFLAGS="%{rpmcppflags} -I/usr/include/lua5.2"}
+CPPFLAGS="%{rpmcppflags} -Wno-misleading-indentation -std=gnu++98"
+%{?with_lua:CPPFLAGS="$CPPFLAGS -I/usr/include/lua5.2"}
 %configure \
 	--disable-v4l \
 %if %{with plugins}
diff --git a/disable-sslv3.patch b/disable-sslv3.patch
new file mode 100644
index 0000000..1728841
--- /dev/null
+++ b/disable-sslv3.patch
@@ -0,0 +1,18 @@
+diff -u -r ptlib-2.10.11/src/ptclib/pssl.cxx ptlib-2.10.11-nossl3/src/ptclib/pssl.cxx
+--- ptlib-2.10.11/src/ptclib/pssl.cxx	2013-08-15 01:20:27.000000000 +0200
++++ ptlib-2.10.11-nossl3/src/ptclib/pssl.cxx	2016-03-03 11:39:02.224835510 +0100
+@@ -805,13 +805,11 @@
+   SSL_METHOD * meth;
+ 
+   switch (method) {
+-    case SSLv3:
+-      meth = SSLv3_method();
+-      break;
+     case TLSv1:
+       meth = TLSv1_method(); 
+       break;
+     case SSLv23:
++    case SSLv3:
+     default:
+       meth = SSLv23_method();
+       break;
diff --git a/gcc-5_support b/gcc-5_support
new file mode 100644
index 0000000..51ad209
--- /dev/null
+++ b/gcc-5_support
@@ -0,0 +1,13 @@
+Index: ptlib-2.10.10~dfsg/include/ptlib/critsec.h
+===================================================================
+--- ptlib-2.10.10~dfsg.orig/include/ptlib/critsec.h
++++ ptlib-2.10.10~dfsg/include/ptlib/critsec.h
+@@ -40,7 +40,7 @@
+ #if P_HAS_ATOMIC_INT
+ 
+ #if defined(__GNUC__)
+-#  if __GNUC__ >= 4 && __GNUC_MINOR__ >= 2
++#  if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 2) || __GNUC__ >= 5
+ #     include <ext/atomicity.h>
+ #  else
+ #     include <bits/atomicity.h>
diff --git a/glibc.patch b/glibc.patch
new file mode 100644
index 0000000..8bce8c2
--- /dev/null
+++ b/glibc.patch
@@ -0,0 +1,11 @@
+--- ptlib-2.10.11/src/ptlib/unix/channel.cxx~	2013-08-15 01:20:26.000000000 +0200
++++ ptlib-2.10.11/src/ptlib/unix/channel.cxx	2018-09-27 10:58:43.468350379 +0200
+@@ -36,7 +36,7 @@
+ 
+ #include <ptlib.h>
+ #include <sys/ioctl.h>
+-
++#include <sys/uio.h>
+ 
+ #include "../common/pchannel.cxx"
+ 
diff --git a/openssl-1.1.0.patch b/openssl-1.1.0.patch
new file mode 100644
index 0000000..20c4956
--- /dev/null
+++ b/openssl-1.1.0.patch
@@ -0,0 +1,128 @@
+--- a/src/ptclib/pssl.cxx	2017-03-28 14:35:23.261060113 +0200
++++ b/src/ptclib/pssl.cxx	2017-03-28 14:30:20.593853443 +0200
+@@ -140,7 +140,7 @@
+ class PSSL_BIO
+ {
+   public:
+-    PSSL_BIO(BIO_METHOD *method = BIO_s_file_internal())
++    PSSL_BIO(const BIO_METHOD *method = BIO_s_file())
+       { bio = BIO_new(method); }
+ 
+     ~PSSL_BIO()
+@@ -627,9 +627,10 @@
+   if (dh == NULL)
+     return;
+ 
+-  dh->p = BN_bin2bn(pData, pSize, NULL);
+-  dh->g = BN_bin2bn(gData, gSize, NULL);
+-  if (dh->p != NULL && dh->g != NULL)
++  BIGNUM *p = BN_bin2bn(pData, pSize, NULL);
++  BIGNUM *g = BN_bin2bn(gData, gSize, NULL);
++  DH_set0_pqg(dh, p, NULL, g);
++  if (p != NULL && p != NULL)
+     return;
+ 
+   DH_free(dh);
+@@ -1115,7 +1116,7 @@
+ //
+ 
+ 
+-#define PSSLCHANNEL(bio)      ((PSSLChannel *)(bio->ptr))
++#define PSSLCHANNEL(bio)      ((PSSLChannel *)BIO_get_data(bio))
+ 
+ extern "C" {
+ 
+@@ -1128,10 +1129,9 @@
+ 
+ static int Psock_new(BIO * bio)
+ {
+-  bio->init     = 0;
+-  bio->num      = 0;
+-  bio->ptr      = NULL;    // this is really (PSSLChannel *)
+-  bio->flags    = 0;
++  BIO_set_init(bio, 0);
++  BIO_set_data(bio, NULL);
++  BIO_clear_flags(bio, ~0);
+ 
+   return(1);
+ }
+@@ -1142,13 +1142,13 @@
+   if (bio == NULL)
+     return 0;
+ 
+-  if (bio->shutdown) {
+-    if (bio->init) {
++  if (BIO_get_shutdown(bio)) {
++    if (BIO_get_init(bio)) {
+       PSSLCHANNEL(bio)->Shutdown(PSocket::ShutdownReadAndWrite);
+       PSSLCHANNEL(bio)->Close();
+     }
+-    bio->init  = 0;
+-    bio->flags = 0;
++    BIO_set_init(bio, 0);
++    BIO_clear_flags(bio, ~0);
+   }
+   return 1;
+ }
+@@ -1158,11 +1158,11 @@
+ {
+   switch (cmd) {
+     case BIO_CTRL_SET_CLOSE:
+-      bio->shutdown = (int)num;
++      BIO_set_shutdown(bio, (int)num);
+       return 1;
+ 
+     case BIO_CTRL_GET_CLOSE:
+-      return bio->shutdown;
++      return BIO_get_shutdown(bio);
+ 
+     case BIO_CTRL_FLUSH:
+       return 1;
+@@ -1237,7 +1237,8 @@
+ };
+ 
+ 
+-static BIO_METHOD methods_Psock =
++static BIO_METHOD *methods_Psock = NULL;
++/*
+ {
+   BIO_TYPE_SOCKET,
+   "PTLib-PSSLChannel",
+@@ -1259,19 +1260,33 @@
+   Psock_free
+ #endif
+ };
+-
++*/
+ 
+ PBoolean PSSLChannel::OnOpen()
+ {
+-  BIO * bio = BIO_new(&methods_Psock);
++  if (methods_Psock == NULL) {
++    methods_Psock = BIO_meth_new(BIO_TYPE_SOCKET | BIO_get_new_index(), "PTLib-PSSLChannel");
++    if (methods_Psock == NULL ||
++        BIO_meth_set_write(methods_Psock, Psock_write) ||
++	BIO_meth_set_read(methods_Psock, Psock_read) ||
++	BIO_meth_set_puts(methods_Psock, Psock_puts) ||
++	BIO_meth_set_gets(methods_Psock, NULL) ||
++	BIO_meth_set_ctrl(methods_Psock, Psock_ctrl) ||
++	BIO_meth_set_create(methods_Psock, Psock_new) ||
++	BIO_meth_set_destroy(methods_Psock, Psock_free)) {
++      SSLerr(SSL_F_SSL_SET_FD,ERR_R_BUF_LIB);
++      return PFalse;
++    }
++  }
++  BIO * bio = BIO_new(methods_Psock);
+   if (bio == NULL) {
+     SSLerr(SSL_F_SSL_SET_FD,ERR_R_BUF_LIB);
+     return PFalse;
+   }
+ 
+   // "Open" then bio
+-  bio->ptr  = this;
+-  bio->init = 1;
++  BIO_set_data(bio, this);
++  BIO_set_init(bio, 1);
+ 
+   SSL_set_bio(ssl, bio, bio);
+   return PTrue;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/ptlib.git/commitdiff/df56f391f5c2a755ea9e72f6ce4e0c91912596be



More information about the pld-cvs-commit mailing list