Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libxml2 for openSUSE:Factory checked in at 2024-06-13 15:37:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libxml2 (Old) and /work/SRC/openSUSE:Factory/.libxml2.new.19518 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libxml2" Thu Jun 13 15:37:49 2024 rev:126 rq:1180224 version:2.12.8 Changes: -------- --- /work/SRC/openSUSE:Factory/libxml2/libxml2.changes 2024-05-16 17:14:56.659419931 +0200 +++ /work/SRC/openSUSE:Factory/.libxml2.new.19518/libxml2.changes 2024-06-13 15:37:59.785923902 +0200 @@ -1,0 +2,6 @@ +Wed Jun 12 11:35:32 UTC 2024 - Dominique Leuenberger <dims...@opensuse.org> + +- Update to version 2.12.8: + + parser: Fix performance regression when parsing namespaces. + +------------------------------------------------------------------- Old: ---- libxml2-2.12.7.tar.xz New: ---- libxml2-2.12.8.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libxml2.spec ++++++ --- /var/tmp/diff_new_pack.ZcEZgP/_old 2024-06-13 15:38:01.345980827 +0200 +++ /var/tmp/diff_new_pack.ZcEZgP/_new 2024-06-13 15:38:01.345980827 +0200 @@ -25,7 +25,7 @@ %endif Name: libxml2%{?dash}%{flavor} -Version: 2.12.7 +Version: 2.12.8 Release: 0 License: MIT Summary: A Library to Manipulate XML Files ++++++ libxml2-2.12.7.tar.xz -> libxml2-2.12.8.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libxml2-2.12.7/NEWS new/libxml2-2.12.8/NEWS --- old/libxml2-2.12.7/NEWS 2024-05-13 11:33:44.000000000 +0200 +++ new/libxml2-2.12.8/NEWS 2024-06-12 12:57:16.000000000 +0200 @@ -1,5 +1,12 @@ NEWS file for libxml2 +v2.12.8: Jun 12 2024 + +### Regressions + +- parser: Fix performance regression when parsing namespaces + + v2.12.7: May 13 2024 ### Security diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libxml2-2.12.7/configure new/libxml2-2.12.8/configure --- old/libxml2-2.12.7/configure 2024-05-13 11:34:41.000000000 +0200 +++ new/libxml2-2.12.8/configure 2024-06-12 12:58:11.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for libxml2 2.12.7. +# Generated by GNU Autoconf 2.71 for libxml2 2.12.8. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -618,8 +618,8 @@ # Identity of this package. PACKAGE_NAME='libxml2' PACKAGE_TARNAME='libxml2' -PACKAGE_VERSION='2.12.7' -PACKAGE_STRING='libxml2 2.12.7' +PACKAGE_VERSION='2.12.8' +PACKAGE_STRING='libxml2 2.12.8' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1547,7 +1547,7 @@ # 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.12.7 to adapt to many kinds of systems. +\`configure' configures libxml2 2.12.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1618,7 +1618,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libxml2 2.12.7:";; + short | recursive ) echo "Configuration of libxml2 2.12.8:";; esac cat <<\_ACEOF @@ -1792,7 +1792,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libxml2 configure 2.12.7 +libxml2 configure 2.12.8 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2067,7 +2067,7 @@ 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.12.7, which was +It was created by libxml2 $as_me 2.12.8, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2905,7 +2905,7 @@ LIBXML_MAJOR_VERSION=2 LIBXML_MINOR_VERSION=12 -LIBXML_MICRO_VERSION=7 +LIBXML_MICRO_VERSION=8 LIBXML_MICRO_VERSION_SUFFIX= LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION @@ -3444,7 +3444,7 @@ # Define the identity of the package. PACKAGE='libxml2' - VERSION='2.12.7' + VERSION='2.12.8' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -17112,7 +17112,7 @@ # 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.12.7, which was +This file was extended by libxml2 $as_me 2.12.8, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17180,7 +17180,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -libxml2 config.status 2.12.7 +libxml2 config.status 2.12.8 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libxml2-2.12.7/configure.ac new/libxml2-2.12.8/configure.ac --- old/libxml2-2.12.7/configure.ac 2024-05-13 11:33:59.000000000 +0200 +++ new/libxml2-2.12.8/configure.ac 2024-06-12 12:57:26.000000000 +0200 @@ -3,7 +3,7 @@ m4_define([MAJOR_VERSION], 2) m4_define([MINOR_VERSION], 12) -m4_define([MICRO_VERSION], 7) +m4_define([MICRO_VERSION], 8) AC_INIT([libxml2],[MAJOR_VERSION.MINOR_VERSION.MICRO_VERSION]) AC_CONFIG_SRCDIR([entities.c]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libxml2-2.12.7/parser.c new/libxml2-2.12.8/parser.c --- old/libxml2-2.12.7/parser.c 2024-05-13 11:30:51.000000000 +0200 +++ new/libxml2-2.12.8/parser.c 2024-06-12 12:56:20.000000000 +0200 @@ -1489,7 +1489,7 @@ static int xmlParserNsLookup(xmlParserCtxtPtr ctxt, const xmlHashedString *prefix, xmlParserNsBucket **bucketPtr) { - xmlParserNsBucket *bucket; + xmlParserNsBucket *bucket, *tombstone; unsigned index, hashValue; if (prefix->name == NULL) @@ -1501,10 +1501,13 @@ hashValue = prefix->hashValue; index = hashValue & (ctxt->nsdb->hashSize - 1); bucket = &ctxt->nsdb->hash[index]; + tombstone = NULL; while (bucket->hashValue) { - if ((bucket->hashValue == hashValue) && - (bucket->index != INT_MAX)) { + if (bucket->index == INT_MAX) { + if (tombstone == NULL) + tombstone = bucket; + } else if (bucket->hashValue == hashValue) { if (ctxt->nsTab[bucket->index * 2] == prefix->name) { if (bucketPtr != NULL) *bucketPtr = bucket; @@ -1521,7 +1524,7 @@ } if (bucketPtr != NULL) - *bucketPtr = bucket; + *bucketPtr = tombstone ? tombstone : bucket; return(INT_MAX); } @@ -1758,7 +1761,7 @@ unsigned hv = ctxt->nsdb->hash[i].hashValue; unsigned newIndex; - if (hv == 0) + if ((hv == 0) || (ctxt->nsdb->hash[i].index == INT_MAX)) continue; newIndex = hv & (newSize - 1);