[dev-db/postgresql] sync
This commit is contained in:
parent
46ea85fce4
commit
7e7593fc57
83
dev-db/postgresql/files/postgresql-16-xml-2.12.patch
Normal file
83
dev-db/postgresql/files/postgresql-16-xml-2.12.patch
Normal file
@ -0,0 +1,83 @@
|
||||
From e02fea093ebb7ff5093c4cd9827710000bb31146 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
Date: Mon, 29 Jan 2024 12:06:07 -0500
|
||||
Subject: [PATCH] Fix incompatibilities with libxml2 >= 2.12.0.
|
||||
|
||||
libxml2 changed the required signature of error handler callbacks
|
||||
to make the passed xmlError struct "const". This is causing build
|
||||
failures on buildfarm member caiman, and no doubt will start showing
|
||||
up in the field quite soon. Add a version check to adjust the
|
||||
declaration of xml_errorHandler() according to LIBXML_VERSION.
|
||||
|
||||
2.12.x also produces deprecation warnings for contrib/xml2/xpath.c's
|
||||
assignment to xmlLoadExtDtdDefaultValue. I see no good reason for
|
||||
that to still be there, seeing that we disabled external DTDs (at a
|
||||
lower level) years ago for security reasons. Let's just remove it.
|
||||
|
||||
Back-patch to all supported branches, since they might all get built
|
||||
with newer libxml2 once it gets a bit more popular. (The back
|
||||
branches produce another deprecation warning about xpath.c's use of
|
||||
xmlSubstituteEntitiesDefault(). We ought to consider whether to
|
||||
back-patch all or part of commit 65c5864d7 to silence that. It's
|
||||
less urgent though, since it won't break the buildfarm.)
|
||||
|
||||
Discussion: https://postgr.es/m/1389505.1706382262@sss.pgh.pa.us
|
||||
---
|
||||
contrib/xml2/xpath.c | 1 -
|
||||
src/backend/utils/adt/xml.c | 14 ++++++++++++--
|
||||
2 files changed, 12 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/contrib/xml2/xpath.c b/contrib/xml2/xpath.c
|
||||
index a692dc6be8..94641930f7 100644
|
||||
--- a/contrib/xml2/xpath.c
|
||||
+++ b/contrib/xml2/xpath.c
|
||||
@@ -75,7 +75,6 @@ pgxml_parser_init(PgXmlStrictness strictness)
|
||||
xmlInitParser();
|
||||
|
||||
xmlSubstituteEntitiesDefault(1);
|
||||
- xmlLoadExtDtdDefaultValue = 1;
|
||||
|
||||
return xmlerrcxt;
|
||||
}
|
||||
diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
|
||||
index 2300c7ebf3..9f4e775003 100644
|
||||
--- a/src/backend/utils/adt/xml.c
|
||||
+++ b/src/backend/utils/adt/xml.c
|
||||
@@ -66,6 +66,16 @@
|
||||
#if LIBXML_VERSION >= 20704
|
||||
#define HAVE_XMLSTRUCTUREDERRORCONTEXT 1
|
||||
#endif
|
||||
+
|
||||
+/*
|
||||
+ * libxml2 2.12 decided to insert "const" into the error handler API.
|
||||
+ */
|
||||
+#if LIBXML_VERSION >= 21200
|
||||
+#define PgXmlErrorPtr const xmlError *
|
||||
+#else
|
||||
+#define PgXmlErrorPtr xmlErrorPtr
|
||||
+#endif
|
||||
+
|
||||
#endif /* USE_LIBXML */
|
||||
|
||||
#include "access/htup_details.h"
|
||||
@@ -123,7 +133,7 @@ static xmlParserInputPtr xmlPgEntityLoader(const char *URL, const char *ID,
|
||||
xmlParserCtxtPtr ctxt);
|
||||
static void xml_errsave(Node *escontext, PgXmlErrorContext *errcxt,
|
||||
int sqlcode, const char *msg);
|
||||
-static void xml_errorHandler(void *data, xmlErrorPtr error);
|
||||
+static void xml_errorHandler(void *data, PgXmlErrorPtr error);
|
||||
static int errdetail_for_xml_code(int code);
|
||||
static void chopStringInfoNewlines(StringInfo str);
|
||||
static void appendStringInfoLineSeparator(StringInfo str);
|
||||
@@ -2002,7 +2012,7 @@ xml_errsave(Node *escontext, PgXmlErrorContext *errcxt,
|
||||
* Error handler for libxml errors and warnings
|
||||
*/
|
||||
static void
|
||||
-xml_errorHandler(void *data, xmlErrorPtr error)
|
||||
+xml_errorHandler(void *data, PgXmlErrorPtr error)
|
||||
{
|
||||
PgXmlErrorContext *xmlerrcxt = (PgXmlErrorContext *) data;
|
||||
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) error->ctxt;
|
||||
--
|
||||
2.30.2
|
||||
|
@ -48,7 +48,10 @@ readline? ( sys-libs/readline:0= )
|
||||
server? ( systemd? ( sys-apps/systemd ) )
|
||||
ssl? ( >=dev-libs/openssl-0.9.6-r1:0= )
|
||||
tcl? ( >=dev-lang/tcl-8:0= )
|
||||
xml? ( dev-libs/libxml2 dev-libs/libxslt )
|
||||
xml? (
|
||||
>=dev-libs/libxml2-2.12.0
|
||||
dev-libs/libxslt
|
||||
)
|
||||
zlib? ( sys-libs/zlib )
|
||||
zstd? ( app-arch/zstd )
|
||||
"
|
||||
@ -111,7 +114,8 @@ src_prepare() {
|
||||
die 'PGSQL_PAM_SERVICE rename failed.'
|
||||
fi
|
||||
|
||||
eapply "${FILESDIR}"/postgresql-16-openssl3.2.patch
|
||||
eapply "${FILESDIR}"/postgresql-16-openssl3.2.patch \
|
||||
"${FILESDIR}"/postgresql-${SLOT}-xml-2.12.patch
|
||||
|
||||
eapply_user
|
||||
}
|
Loading…
Reference in New Issue
Block a user