Fix openssl engine dependency

Resolves: RHEL-46771
- Rebase to version 1.2.39
- Stop building gcrypt and gnutls implementations
This commit is contained in:
Tomas Halman 2024-07-29 17:57:30 +02:00
parent c8e8085645
commit 6e63f5c7d4
5 changed files with 39 additions and 167 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
/xmlsec1-1.2.36.tar.gz
/xmlsec1-1.2.37.tar.gz
/xmlsec1-1.3.0.tar.gz
/xmlsec1-1.2.39.tar.gz

View File

@ -0,0 +1,26 @@
From 57e7e5eb0f9cbc8db2418bf7df6be0d70739408c Mon Sep 17 00:00:00 2001
From: Tomas Halman <thalman@redhat.com>
Date: Mon, 29 Jul 2024 12:08:50 +0200
Subject: [PATCH] Conditional include for openssl engines
---
src/openssl/app.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/openssl/app.c b/src/openssl/app.c
index e68011be..11ca8f9a 100644
--- a/src/openssl/app.c
+++ b/src/openssl/app.c
@@ -24,7 +24,9 @@
#include <openssl/pem.h>
#include <openssl/pkcs12.h>
#include <openssl/conf.h>
+#if !defined(OPENSSL_NO_ENGINE) && (!defined(XMLSEC_OPENSSL_API_300) || defined(XMLSEC_OPENSSL3_ENGINES))
#include <openssl/engine.h>
+#endif /* !defined(OPENSSL_NO_ENGINE) && (!defined(XMLSEC_OPENSSL_API_300) || defined(XMLSEC_OPENSSL3_ENGINES)) */
#include <openssl/ui.h>
#include <xmlsec/xmlsec.h>
--
2.45.0

View File

@ -1,108 +0,0 @@
From ffb327376f5bb69e8dfe7f805529e45a40118c2b Mon Sep 17 00:00:00 2001
From: lsh123 <aleksey@aleksey.com>
Date: Mon, 20 Nov 2023 11:50:43 -0500
Subject: [PATCH] Fix libxml2 v2.12.0 includes (#729)
---
Dropped mscrypto changes as unused and conflicting with older sources
apps/crypto.c | 1 +
apps/xmlsec.c | 3 ++-
include/xmlsec/xmlsec.h | 1 +
src/errors_helpers.h | 10 +++++-----
4 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/apps/crypto.c b/apps/crypto.c
index 8561dd659..4411233da 100644
--- a/apps/crypto.c
+++ b/apps/crypto.c
@@ -12,6 +12,7 @@
#endif
#include <string.h>
+#include <stdlib.h>
#include <xmlsec/xmlsec.h>
#include <xmlsec/keys.h>
diff --git a/apps/xmlsec.c b/apps/xmlsec.c
index 7655c1dbd..4bedb16a7 100644
--- a/apps/xmlsec.c
+++ b/apps/xmlsec.c
@@ -22,6 +22,7 @@
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
#include <libxml/xpath.h>
+#include <libxml/xmlsave.h>
#include <libxml/xpathInternals.h>
#ifndef XMLSEC_NO_XSLT
@@ -3030,7 +3031,7 @@ xmlSecAppInit(void) {
/* Init libxml */
xmlInitParser();
LIBXML_TEST_VERSION
- xmlTreeIndentString = "\t";
+ xmlThrDefTreeIndentString("\t");
#ifndef XMLSEC_NO_XSLT
xmlIndentTreeOutput = 1;
#endif /* XMLSEC_NO_XSLT */
diff --git a/include/xmlsec/xmlsec.h b/include/xmlsec/xmlsec.h
index 5757fc570..6f9101229 100644
--- a/include/xmlsec/xmlsec.h
+++ b/include/xmlsec/xmlsec.h
@@ -12,6 +12,7 @@
#define __XMLSEC_H__
#include <libxml/tree.h>
+#include <libxml/parser.h>
#include <xmlsec/version.h>
#include <xmlsec/exports.h>
diff --git a/src/errors_helpers.h b/src/errors_helpers.h
index 1a4f41837..470fdde65 100644
--- a/src/errors_helpers.h
+++ b/src/errors_helpers.h
@@ -136,7 +136,7 @@ extern "C" {
*/
#define xmlSecXmlError(errorFunction, errorObject) \
{ \
- xmlErrorPtr error = xmlGetLastError(); \
+ const xmlError * error = xmlGetLastError(); \
int code = (error != NULL) ? error->code : 0; \
const char* message = (error != NULL) ? error->message : NULL; \
xmlSecError(XMLSEC_ERRORS_HERE, \
@@ -159,7 +159,7 @@ extern "C" {
*/
#define xmlSecXmlError2(errorFunction, errorObject, msg, param) \
{ \
- xmlErrorPtr error = xmlGetLastError(); \
+ const xmlError * error = xmlGetLastError(); \
int code = (error != NULL) ? error->code : 0; \
const char* message = (error != NULL) ? error->message : NULL; \
xmlSecError(XMLSEC_ERRORS_HERE, \
@@ -181,7 +181,7 @@ extern "C" {
*/
#define xmlSecXmlParserError(errorFunction, ctxt, errorObject) \
{ \
- xmlErrorPtr error = xmlCtxtGetLastError(ctxt);\
+ const xmlError * error = xmlCtxtGetLastError(ctxt);\
int code = (error != NULL) ? error->code : 0; \
const char* message = (error != NULL) ? error->message : NULL; \
xmlSecError(XMLSEC_ERRORS_HERE, \
@@ -205,7 +205,7 @@ extern "C" {
*/
#define xmlSecXmlParserError2(errorFunction, ctxt, errorObject, msg, param) \
{ \
- xmlErrorPtr error = xmlCtxtGetLastError(ctxt);\
+ const xmlError * error = xmlCtxtGetLastError(ctxt);\
int code = (error != NULL) ? error->code : 0; \
const char* message = (error != NULL) ? error->message : NULL; \
xmlSecError(XMLSEC_ERRORS_HERE, \
@@ -227,7 +227,7 @@ extern "C" {
*/
#define xmlSecXsltError(errorFunction, ctxt, errorObject) \
{ \
- xmlErrorPtr error = xmlGetLastError(); \
+ const xmlError * error = xmlGetLastError(); \
int code = (error != NULL) ? error->code : 0; \
const char* message = (error != NULL) ? error->message : NULL; \
xmlSecError(XMLSEC_ERRORS_HERE, \

View File

@ -1 +1 @@
SHA512 (xmlsec1-1.2.37.tar.gz) = 99220cb28a346ffac0023f9f177d6a7be3ddcea04bea434b7dc926c1f0aaa5564d75f74f92896ac100179c04d77e001f688ddf46fed4e0a0b4f20b7b87c24900
SHA512 (xmlsec1-1.2.39.tar.gz) = bc8457bca8ada87c12d3be685bf8ad805f102b4ac1265e257ba12137e0430783973f27d22bfcb7559be5e89cb4c01b3556488fa641fc7c9d8f403972fdc8f2f7

View File

@ -1,14 +1,13 @@
Summary: Library providing support for "XML Signature" and "XML Encryption" standards
Name: xmlsec1
Version: 1.2.37
Release: 8%{?dist}%{?extra_release}
Version: 1.2.39
Release: 1%{?dist}%{?extra_release}
Epoch: 1
License: MIT
Source0: https://www.aleksey.com/xmlsec/download/xmlsec1-%{version}.tar.gz
URL: http://www.aleksey.com/xmlsec/
# https://github.com/lsh123/xmlsec/pull/729
Patch0: 0001-Fix-libxml2-v2.12.0-includes.patch
Patch0: 0001-Conditional-include-for-openssl-engines.patch
BuildRequires: make
BuildRequires: pkgconfig(libxml-2.0) >= 2.8.0
@ -16,14 +15,13 @@ BuildRequires: pkgconfig(libxslt) >= 1.0.20
BuildRequires: pkgconfig(openssl) >= 3.0.0
BuildRequires: pkgconfig(nss) >= 3.49.0
BuildRequires: pkgconfig(nspr) >= 4.25.0
BuildRequires: libgcrypt-devel >= 1.4.0
BuildRequires: pkgconfig(gnutls) >= 3.6.13
BuildRequires: libtool-ltdl-devel
# autoreconf stuff
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gettext-devel
BuildRequires: libtool
# BuildRequires: openssl-devel-engine
%description
XML Security Library is a C library based on LibXML2 and OpenSSL.
@ -55,39 +53,6 @@ Requires: xmlsec1-openssl%{?_isa} = 1:%{version}-%{release}
%description openssl-devel
Libraries, includes, etc. for developing XML Security applications with OpenSSL
%package gcrypt
Summary: GCrypt crypto plugin for XML Security Library
Requires: xmlsec1%{?_isa} = 1:%{version}-%{release}
%description gcrypt
GCrypt plugin for XML Security Library provides GCrypt based crypto services
for the xmlsec library.
%package gcrypt-devel
Summary: GCrypt crypto plugin for XML Security Library
Requires: xmlsec1-devel%{?_isa} = 1:%{version}-%{release}
Requires: xmlsec1-gnutls-devel%{?_isa} = 1:%{version}-%{release}
%description gcrypt-devel
Libraries, includes, etc. for developing XML Security applications with GCrypt.
%package gnutls
Summary: GNUTls crypto plugin for XML Security Library
Requires: xmlsec1%{?_isa} = 1:%{version}-%{release}
%description gnutls
GNUTls plugin for XML Security Library provides GNUTls based crypto services
for the xmlsec library.
%package gnutls-devel
Summary: GNUTls crypto plugin for XML Security Library
Requires: xmlsec1-devel%{?_isa} = 1:%{version}-%{release}
Requires: xmlsec1-openssl-devel%{?_isa} = 1:%{version}-%{release}
Requires: gnutls-devel%{?_isa} >= 1.0.20
%description gnutls-devel
Libraries, includes, etc. for developing XML Security applications with GNUTls.
%package nss
Summary: NSS crypto plugin for XML Security Library
Requires: xmlsec1%{?_isa} = 1:%{version}-%{release}
@ -105,8 +70,7 @@ Requires: xmlsec1-nss%{?_isa} = 1:%{version}-%{release}
Libraries, includes, etc. for developing XML Security applications with NSS.
%prep
%setup -q
%patch -P0 -p1
%autosetup -p1
%build
autoreconf -vfi
@ -127,7 +91,6 @@ rm -rf __tmp_doc ; mkdir __tmp_doc
mv %{buildroot}%{_docdir}/xmlsec1/* __tmp_doc
%ldconfig_scriptlets
%ldconfig_scriptlets gnutls
%ldconfig_scriptlets openssl
%files
@ -156,22 +119,6 @@ mv %{buildroot}%{_docdir}/xmlsec1/* __tmp_doc
%{_includedir}/xmlsec1/xmlsec/openssl/
%{_libdir}/pkgconfig/xmlsec1-openssl.pc
%files gcrypt
%{_libdir}/libxmlsec1-gcrypt.so.*
%{_libdir}/libxmlsec1-gcrypt.so
%files gcrypt-devel
%{_includedir}/xmlsec1/xmlsec/gcrypt/
%{_libdir}/pkgconfig/xmlsec1-gcrypt.pc
%files gnutls
%{_libdir}/libxmlsec1-gnutls.so.*
%{_libdir}/libxmlsec1-gnutls.so
%files gnutls-devel
%{_includedir}/xmlsec1/xmlsec/gnutls/
%{_libdir}/pkgconfig/xmlsec1-gnutls.pc
%files nss
%{_libdir}/libxmlsec1-nss.so.*
%{_libdir}/libxmlsec1-nss.so
@ -181,6 +128,12 @@ mv %{buildroot}%{_docdir}/xmlsec1/* __tmp_doc
%{_libdir}/pkgconfig/xmlsec1-nss.pc
%changelog
* Mon Jul 29 2024 Tomas Halman <thalman@redhat.com> - 1.2.39-1
- Resolves: RHEL-46771
Rebase to version 1.2.39
Fix openssl engine dependency
Stop building gcrypt and gnutls implementations
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1:1.2.37-8
- Bump release for June 2024 mass rebuild