diff -pruN 2.15.0+dfsg-0.3/NEWS 2.15.1+dfsg-0.1/NEWS
--- 2.15.0+dfsg-0.3/NEWS	2025-09-15 11:55:59.000000000 +0000
+++ 2.15.1+dfsg-0.1/NEWS	2025-10-16 15:49:18.000000000 +0000
@@ -1,5 +1,24 @@
 NEWS file for libxml2
 
+v2.15.1: Oct 16 2025
+
+### Regressions
+
+- parser: Fix attribute normalization and standalone check
+
+### Build
+
+- io: Handle clashing error codes on AIX
+- Fixed compilation error on GCC versions prior to 4.5 (Lars Erik Wik)
+- meson: Fix install dir of man pages
+
+### Deprecations
+
+- tree: Undeprecate several struct members
+- io: Undeprecate xmlOutputBuffer members
+- valid: Undeprecate xmlValidGetPotentialChildren
+
+
 v2.15.0: Sep 15 2025
 
 ### Major changes
diff -pruN 2.15.0+dfsg-0.3/VERSION 2.15.1+dfsg-0.1/VERSION
--- 2.15.0+dfsg-0.3/VERSION	2025-09-15 11:55:59.000000000 +0000
+++ 2.15.1+dfsg-0.1/VERSION	2025-10-16 15:49:18.000000000 +0000
@@ -1 +1 @@
-2.15.0
+2.15.1
diff -pruN 2.15.0+dfsg-0.3/configure 2.15.1+dfsg-0.1/configure
--- 2.15.0+dfsg-0.3/configure	2025-09-15 11:56:02.000000000 +0000
+++ 2.15.1+dfsg-0.1/configure	2025-10-16 15:49:23.000000000 +0000
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for libxml2 2.15.0.
+# Generated by GNU Autoconf 2.71 for libxml2 2.15.1.
 #
 #
 # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -618,8 +618,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='libxml2'
 PACKAGE_TARNAME='libxml2'
-PACKAGE_VERSION='2.15.0'
-PACKAGE_STRING='libxml2 2.15.0'
+PACKAGE_VERSION='2.15.1'
+PACKAGE_STRING='libxml2 2.15.1'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1531,7 +1531,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libxml2 2.15.0 to adapt to many kinds of systems.
+\`configure' configures libxml2 2.15.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1602,7 +1602,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libxml2 2.15.0:";;
+     short | recursive ) echo "Configuration of libxml2 2.15.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1773,7 +1773,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libxml2 configure 2.15.0
+libxml2 configure 2.15.1
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2043,7 +2043,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libxml2 $as_me 2.15.0, which was
+It was created by libxml2 $as_me 2.15.1, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -2880,7 +2880,7 @@ case $host_os in *\ *) host_os=`echo "$h
 
 
 
-LIBXML_VERSION=2.15.0
+LIBXML_VERSION=2.15.1
 LIBXML_MAJOR_VERSION=`echo $LIBXML_VERSION | cut -d . -f 1`
 LIBXML_MINOR_VERSION=`echo $LIBXML_VERSION | cut -d . -f 2`
 LIBXML_MICRO_VERSION=`echo $LIBXML_VERSION | cut -d . -f 3`
@@ -3427,7 +3427,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libxml2'
- VERSION='2.15.0'
+ VERSION='2.15.1'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -16544,7 +16544,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libxml2 $as_me 2.15.0, which was
+This file was extended by libxml2 $as_me 2.15.1, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16612,7 +16612,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-libxml2 config.status 2.15.0
+libxml2 config.status 2.15.1
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff -pruN 2.15.0+dfsg-0.3/debian/changelog 2.15.1+dfsg-0.1/debian/changelog
--- 2.15.0+dfsg-0.3/debian/changelog	2025-10-05 10:08:07.000000000 +0000
+++ 2.15.1+dfsg-0.1/debian/changelog	2025-10-21 22:23:08.000000000 +0000
@@ -1,3 +1,10 @@
+libxml2 (2.15.1+dfsg-0.1) experimental; urgency=medium
+
+  * Non-maintainer upload.
+  * New upstream release.
+
+ -- Matthias Klose <doko@debian.org>  Wed, 22 Oct 2025 00:23:08 +0200
+
 libxml2 (2.15.0+dfsg-0.3) experimental; urgency=medium
 
   * Non-maintainer upload.
diff -pruN 2.15.0+dfsg-0.3/doc/meson.build 2.15.1+dfsg-0.1/doc/meson.build
--- 2.15.0+dfsg-0.3/doc/meson.build	2025-09-15 11:55:59.000000000 +0000
+++ 2.15.1+dfsg-0.1/doc/meson.build	2025-10-16 15:49:18.000000000 +0000
@@ -31,7 +31,7 @@ if want_docs
 
     xsltproc = find_program('xsltproc')
     types = [
-        [ 'manpages', '.1',    dir_man ],
+        [ 'manpages', '.1',    dir_man / 'man1' ],
         [ 'html',     '.html', dir_doc ],
     ]
     programs = [ 'xmllint' ]
diff -pruN 2.15.0+dfsg-0.3/globals.c 2.15.1+dfsg-0.1/globals.c
--- 2.15.0+dfsg-0.3/globals.c	2025-09-15 11:55:59.000000000 +0000
+++ 2.15.1+dfsg-0.1/globals.c	2025-10-16 15:49:18.000000000 +0000
@@ -779,11 +779,17 @@ int
 xmlDllMain(ATTRIBUTE_UNUSED void *hinstDLL, unsigned long fdwReason,
            ATTRIBUTE_UNUSED void *lpvReserved)
 #else
-/* declare to avoid "no previous prototype for 'DllMain'" warning */
-/* Note that we do NOT want to include this function declaration in
-   a public header because it's meant to be called by Windows itself,
-   not a program that uses this library.  This also has to be exported. */
 
+/*
+ * Declare to avoid "no previous prototype for 'DllMain'" warning.
+ *
+ * Note that we do NOT want to include this function declaration in
+ * a public header because it's meant to be called by Windows itself,
+ * not a program that uses this library.
+ *
+ * It is a mistake to export this function, but changing that seems
+ * to break the ABI.
+ */
 XMLPUBFUN BOOL WINAPI
 DllMain (HINSTANCE hinstDLL,
          DWORD     fdwReason,
diff -pruN 2.15.0+dfsg-0.3/include/libxml/tree.h 2.15.1+dfsg-0.1/include/libxml/tree.h
--- 2.15.0+dfsg-0.3/include/libxml/tree.h	2025-09-15 11:55:59.000000000 +0000
+++ 2.15.1+dfsg-0.1/include/libxml/tree.h	2025-10-16 15:49:18.000000000 +0000
@@ -296,11 +296,11 @@ typedef xmlNotation *xmlNotationPtr;
  */
 struct _xmlNotation {
     /** Notation name */
-    const xmlChar               *name XML_DEPRECATED_MEMBER;
+    const xmlChar               *name;
     /** Public identifier, if any */
-    const xmlChar               *PublicID XML_DEPRECATED_MEMBER;
+    const xmlChar               *PublicID;
     /** System identifier, if any */
-    const xmlChar               *SystemID XML_DEPRECATED_MEMBER;
+    const xmlChar               *SystemID;
 };
 
 /**
@@ -375,11 +375,11 @@ struct _xmlAttribute {
     struct _xmlDoc          *doc;
 
     /** next in hash table */
-    struct _xmlAttribute  *nexth XML_DEPRECATED_MEMBER;
+    struct _xmlAttribute  *nexth;
     /** attribute type */
-    xmlAttributeType       atype XML_DEPRECATED_MEMBER;
+    xmlAttributeType       atype;
     /** attribute default */
-    xmlAttributeDefault      def XML_DEPRECATED_MEMBER;
+    xmlAttributeDefault      def;
     /** default value */
     xmlChar *defaultValue;
     /** enumeration tree if any */
@@ -387,7 +387,7 @@ struct _xmlAttribute {
     /** namespace prefix if any */
     const xmlChar        *prefix;
     /** element name */
-    const xmlChar          *elem XML_DEPRECATED_MEMBER;
+    const xmlChar          *elem;
 };
 
 /**
@@ -478,13 +478,13 @@ struct _xmlElement {
     struct _xmlDoc          *doc;
 
     /** element type */
-    xmlElementTypeVal      etype XML_DEPRECATED_MEMBER;
+    xmlElementTypeVal      etype;
     /** allowed element content */
-    xmlElementContent *content XML_DEPRECATED_MEMBER;
+    xmlElementContent *content;
     /** list of declared attributes */
-    xmlAttribute     *attributes XML_DEPRECATED_MEMBER;
+    xmlAttribute     *attributes;
     /** namespace prefix if any */
-    const xmlChar        *prefix XML_DEPRECATED_MEMBER;
+    const xmlChar        *prefix;
 #ifdef LIBXML_REGEXP_ENABLED
     /** validating regexp */
     xmlRegexp         *contModel XML_DEPRECATED_MEMBER;
@@ -564,19 +564,19 @@ struct _xmlDtd {
     /* End of common part */
 
     /** hash table for notations if any */
-    void          *notations XML_DEPRECATED_MEMBER;
+    void          *notations;
     /** hash table for elements if any */
-    void          *elements XML_DEPRECATED_MEMBER;
+    void          *elements;
     /** hash table for attributes if any */
-    void          *attributes XML_DEPRECATED_MEMBER;
+    void          *attributes;
     /** hash table for entities if any */
-    void          *entities XML_DEPRECATED_MEMBER;
+    void          *entities;
     /** public identifier */
-    xmlChar *ExternalID XML_DEPRECATED_MEMBER;
+    xmlChar *ExternalID;
     /** system identifier */
-    xmlChar *SystemID XML_DEPRECATED_MEMBER;
+    xmlChar *SystemID;
     /** hash table for parameter entities if any */
-    void          *pentities XML_DEPRECATED_MEMBER;
+    void          *pentities;
 };
 
 /** Attribute of an element */
@@ -823,7 +823,7 @@ struct _xmlDoc {
     /** external subset */
     struct _xmlDtd  *extSubset;
     /** used to hold the XML namespace if needed */
-    struct _xmlNs   *oldNs XML_DEPRECATED_MEMBER;
+    struct _xmlNs   *oldNs;
     /** version string from XML declaration */
     xmlChar  *version;
     /** actual encoding if any */
diff -pruN 2.15.0+dfsg-0.3/include/libxml/valid.h 2.15.1+dfsg-0.1/include/libxml/valid.h
--- 2.15.0+dfsg-0.3/include/libxml/valid.h	2025-09-15 11:55:59.000000000 +0000
+++ 2.15.1+dfsg-0.1/include/libxml/valid.h	2025-10-16 15:49:18.000000000 +0000
@@ -395,7 +395,6 @@ XMLPUBFUN xmlElement *
 
 #ifdef LIBXML_VALID_ENABLED
 
-XML_DEPRECATED
 XMLPUBFUN int
 		xmlValidGetPotentialChildren(xmlElementContent *ctree,
 					 const xmlChar **names,
diff -pruN 2.15.0+dfsg-0.3/include/libxml/xmlIO.h 2.15.1+dfsg-0.1/include/libxml/xmlIO.h
--- 2.15.0+dfsg-0.3/include/libxml/xmlIO.h	2025-09-15 11:55:59.000000000 +0000
+++ 2.15.1+dfsg-0.1/include/libxml/xmlIO.h	2025-10-16 15:49:18.000000000 +0000
@@ -148,20 +148,20 @@ struct _xmlParserInputBuffer {
  * Output buffer
  */
 struct _xmlOutputBuffer {
-    void*                   context XML_DEPRECATED_MEMBER;
-    xmlOutputWriteCallback  writecallback XML_DEPRECATED_MEMBER;
-    xmlOutputCloseCallback  closecallback XML_DEPRECATED_MEMBER;
+    void*                   context;
+    xmlOutputWriteCallback  writecallback;
+    xmlOutputCloseCallback  closecallback;
 
     /* I18N conversions to UTF-8 */
-    xmlCharEncodingHandler *encoder XML_DEPRECATED_MEMBER;
+    xmlCharEncodingHandler *encoder;
 
     /* Local buffer encoded in UTF-8 or ISOLatin */
-    xmlBuf *buffer XML_DEPRECATED_MEMBER;
+    xmlBuf *buffer;
     /* if encoder != NULL buffer for output */
-    xmlBuf *conv XML_DEPRECATED_MEMBER;
+    xmlBuf *conv;
     /* total number of byte written */
-    int written XML_DEPRECATED_MEMBER;
-    int error XML_DEPRECATED_MEMBER;
+    int written;
+    int error;
 };
 #endif /* LIBXML_OUTPUT_ENABLED */
 
diff -pruN 2.15.0+dfsg-0.3/include/libxml/xmlexports.h 2.15.1+dfsg-0.1/include/libxml/xmlexports.h
--- 2.15.0+dfsg-0.3/include/libxml/xmlexports.h	2025-09-15 11:55:59.000000000 +0000
+++ 2.15.1+dfsg-0.1/include/libxml/xmlexports.h	2025-10-16 15:49:18.000000000 +0000
@@ -55,8 +55,12 @@
 #ifndef XML_DEPRECATED
   #if defined(IN_LIBXML)
     #define XML_DEPRECATED
-  #elif __GNUC__ * 100 + __GNUC_MINOR__ >= 301
+  #elif __GNUC__ * 100 + __GNUC_MINOR__ >= 405
+    /* GCC 4.5+ supports deprecated with message */
     #define XML_DEPRECATED __attribute__((deprecated("See https://gnome.pages.gitlab.gnome.org/libxml2/html/deprecated.html")))
+  #elif __GNUC__ * 100 + __GNUC_MINOR__ >= 301
+    /* GCC 3.1+ supports deprecated without message */
+    #define XML_DEPRECATED __attribute__((deprecated))
   #elif defined(_MSC_VER) && _MSC_VER >= 1400
     /* Available since Visual Studio 2005 */
     #define XML_DEPRECATED __declspec(deprecated("See https://gnome.pages.gitlab.gnome.org/libxml2/html/deprecated.html"))
diff -pruN 2.15.0+dfsg-0.3/parser.c 2.15.1+dfsg-0.1/parser.c
--- 2.15.0+dfsg-0.3/parser.c	2025-09-15 11:55:59.000000000 +0000
+++ 2.15.1+dfsg-0.1/parser.c	2025-10-16 15:49:18.000000000 +0000
@@ -4025,7 +4025,7 @@ xmlParseAttValueInternal(xmlParserCtxtPt
     int c, l, quote, entFlags, chunkSize;
     int inSpace = 1;
     int replaceEntities;
-    int normalize = (special & XML_SPECIAL_TYPE_MASK) != 0;
+    int normalize = (special & XML_SPECIAL_TYPE_MASK) > XML_ATTRIBUTE_CDATA;
     int attvalFlags = 0;
 
     /* Always expand namespace URIs */
@@ -8578,7 +8578,7 @@ xmlParseAttribute2(xmlParserCtxtPtr ctxt
 
 #ifdef LIBXML_VALID_ENABLED
     if ((ctxt->validate) &&
-        (ctxt->standalone) &&
+        (ctxt->standalone == 1) &&
         (special & XML_SPECIAL_EXTERNAL) &&
         (flags & XML_ATTVAL_NORM_CHANGE)) {
         xmlValidityError(ctxt, XML_DTD_NOT_STANDALONE,
diff -pruN 2.15.0+dfsg-0.3/valid.c 2.15.1+dfsg-0.1/valid.c
--- 2.15.0+dfsg-0.3/valid.c	2025-09-15 11:55:59.000000000 +0000
+++ 2.15.1+dfsg-0.1/valid.c	2025-10-16 15:49:18.000000000 +0000
@@ -6383,8 +6383,6 @@ xmlCtxtValidateDocument(xmlParserCtxt *c
 /**
  * Build/extend a list of  potential children allowed by the content tree
  *
- * @deprecated Internal function, don't use.
- *
  * @param ctree  an element content tree
  * @param names  an array to store the list of child names
  * @param len  a pointer to the number of element in the list
diff -pruN 2.15.0+dfsg-0.3/xmlIO.c 2.15.1+dfsg-0.1/xmlIO.c
--- 2.15.0+dfsg-0.3/xmlIO.c	2025-09-15 11:55:59.000000000 +0000
+++ 2.15.1+dfsg-0.1/xmlIO.c	2025-10-16 15:49:18.000000000 +0000
@@ -498,7 +498,8 @@ xmlIOErr(int err)
 #ifdef ENOTDIR
         case ENOTDIR: code = XML_IO_ENOTDIR; break;
 #endif
-#ifdef ENOTEMPTY
+/* AIX uses the same value for ENOTEMPTY and EEXIST */
+#if defined(ENOTEMPTY) && ENOTEMPTY != EEXIST
         case ENOTEMPTY: code = XML_IO_ENOTEMPTY; break;
 #endif
 #ifdef ENOTSUP
