Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Hello,

I have uploaded the upstream bugfix version 2.38.1.

I'm sorry I didn't realize "key package" was spanning quite large, so
that update won't auto-propagate without explicit unblock, I thought
it would auto-propagate so just went on with packaging the new version
rather than just applying the fix (that said the new upstream version
contains only the fix, so it's possibly better to have the new upstream
version, so that users don't erroneously think that Debian doesn't have
the fix).

[ Reason ]
This version fixes (and brings actual code changes only for that):

https://gitlab.gnome.org/GNOME/pyatspi2/-/issues/6
https://gitlab.gnome.org/GNOME/pyatspi2/-/issues/7

[ Impact ]
Without it, blind users using orca can get completely stuck in the
situation mentioned in the bugs:

- Launch cawbird (a twitter client)
- Tab amongst links in the timeline

That alone completely hangs the Orca screen reader, leaving the whole
desktop unusable for the blind user, who basically has not choice but
reboot.

[ Tests ]
pyatspi has a full testsuite showing up as "runtests.sh" in the build
logs.

[ Risks ]
The change is actually trivial.

For reference I have attached the debdiff (called patch-complete),
but most of it is upstream update from autoconf 1.16.2 to 1.16.3. The
attached diff (called patch) is the content of the source after only
the dh_autoreconf step which thus normalizes the autoconf version,
and thus in which the autoconf part only shows the upstream version
number change. In the attached patch-realchange, I stripped the autoconf
upstream version number changes to show the real meat which boils down
to making a while loop never able to be infinite (twice):

@@ -296,7 +296,8 @@
         if acc is None:
                 # guard against bad start condition
                 return None
-        while 1:
+        tries = 0
+        while tries < 100:
                 if acc.parent is None:
                         # stop if there is no parent and we haven't returned 
yet
                         return None
@@ -306,6 +307,8 @@
                         pass
                 # move to the parent
                 acc = acc.parent
+                tries = tries + 1
+        return None

 def getPath(acc):
         """

As a technical note: the problem here is with applications which have a
complex structure with parent/child relations that happen in a loop. The
100 limit means it won't support application that have more than 100
widget nesting levels, which I have never seen (usually at most 15-20).

[ Checklist ]
  [X] all changes are documented in the d/changelog
  [X] I reviewed all changes and I approve them
  [X] attach debdiff against the package in testing

unblock pyatspi/2.38.1-1
diff -Nru pyatspi-2.38.0/aclocal.m4 pyatspi-2.38.1/aclocal.m4
--- pyatspi-2.38.0/aclocal.m4   2020-09-12 21:25:54.000000000 +0200
+++ pyatspi-2.38.1/aclocal.m4   2021-03-13 22:36:26.000000000 +0100
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.16.2 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
 
 # Copyright (C) 1996-2020 Free Software Foundation, Inc.
 
@@ -9407,7 +9407,7 @@
 [am__api_version='1.16'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.16.2], [],
+m4_if([$1], [1.16.3], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -9423,7 +9423,7 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.2])dnl
+[AM_AUTOMAKE_VERSION([1.16.3])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
@@ -9836,7 +9836,7 @@
 [_AM_SET_OPTIONS([$1])dnl
 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
 m4_if(
-  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]),
   [ok:ok],,
   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
@@ -10075,12 +10075,7 @@
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
 if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\    *)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
+  MISSING="\${SHELL} '$am_aux_dir/missing'"
 fi
 # Use eval to expand $SHELL
 if eval "$MISSING --is-lightweight"; then
@@ -10252,12 +10247,14 @@
     m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
   else
 
-  dnl Query Python for its version number.  Getting [:3] seems to be
-  dnl the best way to do this; it's what "site.py" does in the standard
-  dnl library.
+  dnl Query Python for its version number.  Although site.py simply uses
+  dnl sys.version[:3], printing that failed with Python 3.10, since the
+  dnl trailing zero was eliminated. So now we output just the major
+  dnl and minor version numbers, as numbers. Apparently the tertiary
+  dnl version is not of interest.
 
   AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
-    [am_cv_python_version=`$PYTHON -c "import sys; 
sys.stdout.write(sys.version[[:3]])"`])
+    [am_cv_python_version=`$PYTHON -c "import sys; print('%u.%u' % 
sys.version_info[[:2]])"`])
   AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
 
   dnl Use the values of $prefix and $exec_prefix for the corresponding
diff -Nru pyatspi-2.38.0/config/config.guess pyatspi-2.38.1/config/config.guess
--- pyatspi-2.38.0/config/config.guess  2020-09-12 21:25:55.000000000 +0200
+++ pyatspi-2.38.1/config/config.guess  2021-03-13 22:36:27.000000000 +0100
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2020 Free Software Foundation, Inc.
 
-timestamp='2020-01-01'
+timestamp='2020-11-07'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -32,7 +32,7 @@
 # Please send patches to <config-patc...@gnu.org>.
 
 
-me=`echo "$0" | sed -e 's,.*/,,'`
+me=$(echo "$0" | sed -e 's,.*/,,')
 
 usage="\
 Usage: $0 [OPTION]
@@ -103,7 +103,7 @@
     test "$tmp" && return 0
     : "${TMPDIR=/tmp}"
     # shellcheck disable=SC2039
-    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n 
"$tmp" && test -d "$tmp" ; } ||
+    { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test 
-n "$tmp" && test -d "$tmp" ; } ||
        { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir 
"$tmp" 2>/dev/null) ; } ||
        { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo 
"Warning: creating insecure temp directory" >&2 ; } ||
        { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 
1 ; }
@@ -131,10 +131,10 @@
        PATH=$PATH:/.attbin ; export PATH
 fi
 
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown
+UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown
+UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown
+UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown
 
 case "$UNAME_SYSTEM" in
 Linux|GNU|GNU/*)
@@ -150,17 +150,15 @@
        #elif defined(__dietlibc__)
        LIBC=dietlibc
        #else
+       #include <stdarg.h>
+       #ifdef __DEFINED_va_list
+       LIBC=musl
+       #else
        LIBC=gnu
        #endif
+       #endif
        EOF
-       eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, 
,,g'`"
-
-       # If ldd exists, use it to detect musl libc.
-       if command -v ldd >/dev/null && \
-               ldd --version 2>&1 | grep -q ^musl
-       then
-           LIBC=musl
-       fi
+       eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 
's, ,,g')"
        ;;
 esac
 
@@ -173,6 +171,7 @@
      ;;
 esac
 test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse
+test -f /etc/os-release && grep -q suse /etc/os-release && VENDOR=suse
 
 # Note: order is significant - the case branches are not exclusive.
 
@@ -189,22 +188,23 @@
        # Note: NetBSD doesn't particularly care about the vendor
        # portion of the name.  We always set it to "unknown".
        sysctl="sysctl -n hw.machine_arch"
-       UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+       UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \
            "/sbin/$sysctl" 2>/dev/null || \
            "/usr/sbin/$sysctl" 2>/dev/null || \
-           echo unknown)`
+           echo unknown))
        case "$UNAME_MACHINE_ARCH" in
+           aarch64eb) machine=aarch64_be-unknown ;;
            armeb) machine=armeb-unknown ;;
            arm*) machine=arm-unknown ;;
            sh3el) machine=shl-unknown ;;
            sh3eb) machine=sh-unknown ;;
            sh5el) machine=sh5le-unknown ;;
            earmv*)
-               arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 
's,^e\(armv[0-9]\).*$,\1,'`
-               endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 
's,^.*\(eb\)$,\1,p'`
-               machine="${arch}${endian}"-${VENDOR}-unknown
+               arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 
's,^e\(armv[0-9]\).*$,\1,')
+               endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 
's,^.*\(eb\)$,\1,p')
+               machine="${arch}${endian}"-unknown
                ;;
-           *) machine="$UNAME_MACHINE_ARCH"-${VENDOR}-unknown ;;
+           *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
        esac
        # The Operating System including object format, if it has switched
        # to ELF recently (or will in the future) and ABI.
@@ -232,7 +232,7 @@
        case "$UNAME_MACHINE_ARCH" in
            earm*)
                expr='s/^earmv[0-9]/-eabi/;s/eb$//'
-               abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
+               abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr")
                ;;
        esac
        # The OS release
@@ -245,7 +245,7 @@
                release='-gnu'
                ;;
            *)
-               release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. 
-f1,2`
+               release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. 
-f1,2)
                ;;
        esac
        # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
@@ -254,15 +254,15 @@
        echo "$machine-${os}${release}${abi-}"
        exit ;;
     *:Bitrig:*:*)
-       UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+       UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//')
        echo "$UNAME_MACHINE_ARCH"-${VENDOR}-bitrig"$UNAME_RELEASE"
        exit ;;
     *:OpenBSD:*:*)
-       UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+       UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//')
        echo "$UNAME_MACHINE_ARCH"-${VENDOR}-openbsd"$UNAME_RELEASE"
        exit ;;
     *:LibertyBSD:*:*)
-       UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+       UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//')
        echo "$UNAME_MACHINE_ARCH"-${VENDOR}-libertybsd"$UNAME_RELEASE"
        exit ;;
     *:MidnightBSD:*:*)
@@ -298,17 +298,17 @@
     alpha:OSF1:*:*)
        case $UNAME_RELEASE in
        *4.0)
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+               UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}')
                ;;
        *5.*)
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+               UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}')
                ;;
        esac
        # According to Compaq, /usr/sbin/psrinfo has been available on
        # OSF/1 and Tru64 systems produced since 1995.  I hope that
        # covers most systems running today.  This code pipes the CPU
        # types through head -n 1, so we only detect the type of CPU 0.
-       ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) 
processor.*$/\1/p' | head -n 1`
+       ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha 
\(.*\) processor.*$/\1/p' | head -n 1)
        case "$ALPHA_CPU_TYPE" in
            "EV4 (21064)")
                UNAME_MACHINE=alpha ;;
@@ -346,19 +346,19 @@
        # A Tn.n version is a released field test version.
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
-       echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 
's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
+       echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 
's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)"
        # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
        exitcode=$?
        trap '' 0
        exit $exitcode ;;
     Amiga*:UNIX_System_V:4.0:*)
-       echo m68k-unknown-sysv4
+       echo m68k-${VENDOR}-sysv4
        exit ;;
     *:[Aa]miga[Oo][Ss]:*:*)
-       echo "$UNAME_MACHINE"-unknown-amigaos
+       echo "$UNAME_MACHINE"-${VENDOR}-amigaos
        exit ;;
     *:[Mm]orph[Oo][Ss]:*:*)
-       echo "$UNAME_MACHINE"-unknown-morphos
+       echo "$UNAME_MACHINE"-${VENDOR}-morphos
        exit ;;
     *:OS/390:*:*)
        echo i370-ibm-openedition
@@ -373,14 +373,14 @@
        echo arm-acorn-riscix"$UNAME_RELEASE"
        exit ;;
     arm*:riscos:*:*|arm*:RISCOS:*:*)
-       echo arm-unknown-riscos
+       echo arm-${VENDOR}-riscos
        exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
        echo hppa1.1-hitachi-hiuxmpp
        exit ;;
     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
        # a...@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-       if test "`(/bin/universe) 2>/dev/null`" = att ; then
+       if test "$( (/bin/universe) 2>/dev/null)" = att ; then
                echo pyramid-pyramid-sysv3
        else
                echo pyramid-pyramid-bsd
@@ -393,20 +393,20 @@
        echo sparc-icl-nx6
        exit ;;
     DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
-       case `/usr/bin/uname -p` in
+       case $(/usr/bin/uname -p) in
            sparc) echo sparc-icl-nx7; exit ;;
        esac ;;
     s390x:SunOS:*:*)
-       echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 
's/[^.]*//'`"
+       echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 
's/[^.]*//')"
        exit ;;
     sun4H:SunOS:5.*:*)
-       echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+       echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
        exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-       echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+       echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')"
        exit ;;
     i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-       echo i386-pc-auroraux"$UNAME_RELEASE"
+       echo i386-${VENDOR}-auroraux"$UNAME_RELEASE"
        exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
        set_cc_for_build
@@ -414,7 +414,7 @@
        # If there is a compiler, see if it is configured for 64-bit objects.
        # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
        # This test works for both compilers.
-       if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+       if test "$CC_FOR_BUILD" != no_compiler_found; then
            if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
                (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
                grep IS_64BIT_ARCH >/dev/null
@@ -422,30 +422,30 @@
                SUN_ARCH=x86_64
            fi
        fi
-       echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+       echo "$SUN_ARCH"-${VENDOR}-solaris2"$(echo "$UNAME_RELEASE"|sed -e 
's/[^.]*//')"
        exit ;;
     sun4*:SunOS:6*:*)
        # According to config.sub, this is the proper way to canonicalize
        # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
        # it's likely to be more like Solaris than SunOS4.
-       echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+       echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
        exit ;;
     sun4*:SunOS:*:*)
-       case "`/usr/bin/arch -k`" in
+       case "$(/usr/bin/arch -k)" in
            Series*|S4*)
-               UNAME_RELEASE=`uname -v`
+               UNAME_RELEASE=$(uname -v)
                ;;
        esac
        # Japanese Language versions have a version number like `4.1.3-JL'.
-       echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
+       echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')"
        exit ;;
     sun3*:SunOS:*:*)
        echo m68k-sun-sunos"$UNAME_RELEASE"
        exit ;;
     sun*:*:4.2BSD:*)
-       UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 
2>/dev/null`
+       UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 
2>/dev/null)
        test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
-       case "`/bin/arch`" in
+       case "$(/bin/arch)" in
            sun3)
                echo m68k-sun-sunos"$UNAME_RELEASE"
                ;;
@@ -481,7 +481,7 @@
        echo m68k-hades-mint"$UNAME_RELEASE"
        exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-       echo m68k-unknown-mint"$UNAME_RELEASE"
+       echo m68k-${VENDOR}-mint"$UNAME_RELEASE"
        exit ;;
     m68k:machten:*:*)
        echo m68k-apple-machten"$UNAME_RELEASE"
@@ -525,8 +525,8 @@
        }
 EOF
        $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
-         dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
-         SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
+         dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') &&
+         SYSTEM_NAME=$("$dummy" "$dummyarg") &&
            { echo "$SYSTEM_NAME"; exit; }
        echo mips-mips-riscos"$UNAME_RELEASE"
        exit ;;
@@ -553,11 +553,11 @@
        exit ;;
     AViiON:dgux:*:*)
        # DG/UX returns AViiON for all architectures
-       UNAME_PROCESSOR=`/usr/bin/uname -p`
-       if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
+       UNAME_PROCESSOR=$(/usr/bin/uname -p)
+       if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = 
mc88110
        then
-           if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
-              [ "$TARGET_BINARY_INTERFACE"x = x ]
+           if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
+              test "$TARGET_BINARY_INTERFACE"x = x
            then
                echo m88k-dg-dgux"$UNAME_RELEASE"
            else
@@ -581,17 +581,17 @@
        echo m68k-tektronix-bsd
        exit ;;
     *:IRIX*:*:*)
-       echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
+       echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')"
        exit ;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
        echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
-       exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+       exit ;;               # Note that: echo "'$(uname -s)'" gives 'AIX '
     i*86:AIX:*:*)
        echo i386-ibm-aix
        exit ;;
     ia64:AIX:*:*)
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
+       if test -x /usr/bin/oslevel ; then
+               IBM_REV=$(/usr/bin/oslevel)
        else
                IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
        fi
@@ -611,7 +611,7 @@
                        exit(0);
                        }
 EOF
-               if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && 
SYSTEM_NAME=`"$dummy"`
+               if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && 
SYSTEM_NAME=$("$dummy")
                then
                        echo "$SYSTEM_NAME"
                else
@@ -624,15 +624,15 @@
        fi
        exit ;;
     *:AIX:*:[4567])
-       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk 
'{ print $1 }'`
+       IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | 
awk '{ print $1 }')
        if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; 
then
                IBM_ARCH=rs6000
        else
                IBM_ARCH=powerpc
        fi
-       if [ -x /usr/bin/lslpp ] ; then
-               IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
-                          awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
+       if test -x /usr/bin/lslpp ; then
+               IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc |
+                          awk -F: '{ print $3 }' | sed s/[0-9]*$/0/)
        else
                IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
        fi
@@ -660,14 +660,14 @@
        echo m68k-hp-bsd4.4
        exit ;;
     9000/[34678]??:HP-UX:*:*)
-       HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+       HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//')
        case "$UNAME_MACHINE" in
            9000/31?)            HP_ARCH=m68000 ;;
            9000/[34]??)         HP_ARCH=m68k ;;
            9000/[678][0-9][0-9])
-               if [ -x /usr/bin/getconf ]; then
-                   sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                   sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+               if test -x /usr/bin/getconf; then
+                   sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 
2>/dev/null)
+                   sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 
2>/dev/null)
                    case "$sc_cpu_version" in
                      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
                      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
@@ -679,7 +679,7 @@
                        esac ;;
                    esac
                fi
-               if [ "$HP_ARCH" = "" ]; then
+               if test "$HP_ARCH" = ""; then
                    set_cc_for_build
                    sed 's/^            //' << EOF > "$dummy.c"
 
@@ -714,11 +714,11 @@
                    exit (0);
                }
 EOF
-                   (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 
2>/dev/null) && HP_ARCH=`"$dummy"`
+                   (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 
2>/dev/null) && HP_ARCH=$("$dummy")
                    test -z "$HP_ARCH" && HP_ARCH=hppa
                fi ;;
        esac
-       if [ "$HP_ARCH" = hppa2.0w ]
+       if test "$HP_ARCH" = hppa2.0w
        then
            set_cc_for_build
 
@@ -742,7 +742,7 @@
        echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
        exit ;;
     ia64:HP-UX:*:*)
-       HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+       HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//')
        echo ia64-hp-hpux"$HPUX_REV"
        exit ;;
     3050*:HI-UX:*:*)
@@ -772,7 +772,7 @@
          exit (0);
        }
 EOF
-       $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
+       $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") &&
                { echo "$SYSTEM_NAME"; exit; }
        echo unknown-hitachi-hiuxwe2
        exit ;;
@@ -792,10 +792,10 @@
        echo hppa1.0-hp-osf
        exit ;;
     i*86:OSF1:*:*)
-       if [ -x /usr/sbin/sysversion ] ; then
-           echo "$UNAME_MACHINE"-unknown-osf1mk
+       if test -x /usr/sbin/sysversion ; then
+           echo "$UNAME_MACHINE"-${VENDOR}-osf1mk
        else
-           echo "$UNAME_MACHINE"-unknown-osf1
+           echo "$UNAME_MACHINE"-${VENDOR}-osf1
        fi
        exit ;;
     parisc*:Lites*:*:*)
@@ -841,102 +841,102 @@
        echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-       FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ 
abcdefghijklmnopqrstuvwxyz`
-       FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ 
abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
-       FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
+       FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ 
abcdefghijklmnopqrstuvwxyz)
+       FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ 
abcdefghijklmnopqrstuvwxyz | sed -e 's/\///')
+       FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/')
        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     5000:UNIX_System_V:4.*:*)
-       FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ 
abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
-       FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ 
abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+       FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ 
abcdefghijklmnopqrstuvwxyz | sed -e 's/\///')
+       FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ 
abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/')
        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-       echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
+       echo "$UNAME_MACHINE"-${VENDOR}-bsdi"$UNAME_RELEASE"
        exit ;;
     sparc*:BSD/OS:*:*)
-       echo sparc-unknown-bsdi"$UNAME_RELEASE"
+       echo sparc-${VENDOR}-bsdi"$UNAME_RELEASE"
        exit ;;
     *:BSD/OS:*:*)
-       echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
+       echo "$UNAME_MACHINE"-${VENDOR}-bsdi"$UNAME_RELEASE"
        exit ;;
     arm:FreeBSD:*:*)
-       UNAME_PROCESSOR=`uname -p`
+       UNAME_PROCESSOR=$(uname -p)
        set_cc_for_build
        if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_PCS_VFP
        then
-           echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo 
${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
+           echo "${UNAME_PROCESSOR}"-${VENDOR}-freebsd"$(echo 
${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi
        else
-           echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo 
${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
+           echo "${UNAME_PROCESSOR}"-${VENDOR}-freebsd"$(echo 
${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf
        fi
        exit ;;
     *:FreeBSD:*:*)
-       UNAME_PROCESSOR=`/usr/bin/uname -p`
+       UNAME_PROCESSOR=$(/usr/bin/uname -p)
        case "$UNAME_PROCESSOR" in
            amd64)
                UNAME_PROCESSOR=x86_64 ;;
            i386)
                UNAME_PROCESSOR=i586 ;;
        esac
-       echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 
's/[-(].*//'`"
+       echo "$UNAME_PROCESSOR"-${VENDOR}-freebsd"$(echo "$UNAME_RELEASE"|sed 
-e 's/[-(].*//')"
        exit ;;
     i*:CYGWIN*:*)
-       echo "$UNAME_MACHINE"-pc-cygwin
+       echo "$UNAME_MACHINE"-${VENDOR}-cygwin
        exit ;;
     *:MINGW64*:*)
-       echo "$UNAME_MACHINE"-pc-mingw64
+       echo "$UNAME_MACHINE"-${VENDOR}-mingw64
        exit ;;
     *:MINGW*:*)
-       echo "$UNAME_MACHINE"-pc-mingw32
+       echo "$UNAME_MACHINE"-${VENDOR}-mingw32
        exit ;;
     *:MSYS*:*)
-       echo "$UNAME_MACHINE"-pc-msys
+       echo "$UNAME_MACHINE"-${VENDOR}-msys
        exit ;;
     i*:PW*:*)
-       echo "$UNAME_MACHINE"-pc-pw32
+       echo "$UNAME_MACHINE"-${VENDOR}-pw32
        exit ;;
     *:Interix*:*)
        case "$UNAME_MACHINE" in
            x86)
-               echo i586-pc-interix"$UNAME_RELEASE"
+               echo i586-${VENDOR}-interix"$UNAME_RELEASE"
                exit ;;
            authenticamd | genuineintel | EM64T)
-               echo x86_64-unknown-interix"$UNAME_RELEASE"
+               echo x86_64-${VENDOR}-interix"$UNAME_RELEASE"
                exit ;;
            IA64)
-               echo ia64-unknown-interix"$UNAME_RELEASE"
+               echo ia64-${VENDOR}-interix"$UNAME_RELEASE"
                exit ;;
        esac ;;
     i*:UWIN*:*)
-       echo "$UNAME_MACHINE"-pc-uwin
+       echo "$UNAME_MACHINE"-${VENDOR}-uwin
        exit ;;
     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
-       echo x86_64-pc-cygwin
+       echo x86_64-${VENDOR}-cygwin
        exit ;;
     prep*:SunOS:5.*:*)
-       echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 
's/[^.]*//'`"
+       echo powerpcle-${VENDOR}-solaris2"$(echo "$UNAME_RELEASE"|sed -e 
's/[^.]*//')"
        exit ;;
     *:GNU:*:*)
        # the GNU system
-       echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo 
"$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
+       echo "$(echo "$UNAME_MACHINE"|sed -e 
's,[-/].*$,,')-${VENDOR}-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')"
        exit ;;
     *:GNU/*:*:*)
        # other systems with GNU libc and userland
-       echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' 
| tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
+       echo "$UNAME_MACHINE-${VENDOR}-$(echo "$UNAME_SYSTEM" | sed 
's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 
's/[-(].*//')-$LIBC"
        exit ;;
     *:Minix:*:*)
-       echo "$UNAME_MACHINE"-unknown-minix
+       echo "$UNAME_MACHINE"-${VENDOR}-minix
        exit ;;
     aarch64:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     aarch64_be:Linux:*:*)
        UNAME_MACHINE=aarch64_be
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     alpha:Linux:*:*)
-       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 
2>/dev/null` in
+       case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 
2>/dev/null) in
          EV5)   UNAME_MACHINE=alphaev5 ;;
          EV56)  UNAME_MACHINE=alphaev56 ;;
          PCA56) UNAME_MACHINE=alphapca56 ;;
@@ -947,29 +947,29 @@
        esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
        if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     arc:Linux:*:* | arceb:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     arm*:Linux:*:*)
        set_cc_for_build
        if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_EABI__
        then
-           echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+           echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        else
            if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
                | grep -q __ARM_PCS_VFP
            then
-               echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
+               echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"eabi
            else
-               echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
+               echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"eabihf
            fi
        fi
        exit ;;
     avr32*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     cris:Linux:*:*)
        echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
@@ -978,28 +978,28 @@
        echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
        exit ;;
     e2k:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     frv:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     hexagon:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     i*86:Linux:*:*)
-       echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     ia64:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     k1om:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     m32r*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     m68*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
        set_cc_for_build
@@ -1045,70 +1045,80 @@
        #endif
        #endif
 EOF
-       eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep 
'^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
-       test "x$CPU" != x && { echo 
"$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
+       eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep 
'^CPU\|^MIPS_ENDIAN\|^LIBCABI')"
+       test "x$CPU" != x && { echo 
"$CPU${MIPS_ENDIAN}-${VENDOR}-linux-$LIBCABI"; exit; }
        ;;
     mips64el:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     openrisc*:Linux:*:*)
-       echo or1k-unknown-linux-"$LIBC"
+       echo or1k-${VENDOR}-linux-"$LIBC"
        exit ;;
     or32:Linux:*:* | or1k*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     padre:Linux:*:*)
-       echo sparc-unknown-linux-"$LIBC"
+       echo sparc-${VENDOR}-linux-"$LIBC"
        exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-"$LIBC"
+       echo hppa64-${VENDOR}-linux-"$LIBC"
        exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
        # Look for CPU level
-       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
-         PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
-         *)    echo hppa-unknown-linux-"$LIBC" ;;
+       case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in
+         PA7*) echo hppa1.1-${VENDOR}-linux-"$LIBC" ;;
+         PA8*) echo hppa2.0-${VENDOR}-linux-"$LIBC" ;;
+         *)    echo hppa-${VENDOR}-linux-"$LIBC" ;;
        esac
        exit ;;
     ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-"$LIBC"
+       echo powerpc64-${VENDOR}-linux-"$LIBC"
        exit ;;
     ppc:Linux:*:*)
-       echo powerpc-unknown-linux-"$LIBC"
+       echo powerpc-${VENDOR}-linux-"$LIBC"
        exit ;;
     ppc64le:Linux:*:*)
-       echo powerpc64le-unknown-linux-"$LIBC"
+       echo powerpc64le-${VENDOR}-linux-"$LIBC"
        exit ;;
     ppcle:Linux:*:*)
-       echo powerpcle-unknown-linux-"$LIBC"
+       echo powerpcle-${VENDOR}-linux-"$LIBC"
        exit ;;
     riscv32:Linux:*:* | riscv64:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
        echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
        exit ;;
     sh64*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     sh*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     tile*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     vax:Linux:*:*)
        echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
        exit ;;
     x86_64:Linux:*:*)
-       echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
+       set_cc_for_build
+       LIBCABI=$LIBC
+       if test "$CC_FOR_BUILD" != no_compiler_found; then
+           if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
+               (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+               grep IS_X32 >/dev/null
+           then
+               LIBCABI="$LIBC"x32
+           fi
+       fi
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBCABI"
        exit ;;
     xtensa*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+       echo "$UNAME_MACHINE"-${VENDOR}-linux-"$LIBC"
        exit ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1122,51 +1132,51 @@
        # I am not positive that other SVR4 systems won't match this,
        # I just have to hope.  -- rms.
        # Use sysv4.2uw... so that sysv4* matches it.
-       echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
+       echo "$UNAME_MACHINE"-${VENDOR}-sysv4.2uw"$UNAME_VERSION"
        exit ;;
     i*86:OS/2:*:*)
        # If we were able to find `uname', then EMX Unix compatibility
        # is probably installed.
-       echo "$UNAME_MACHINE"-pc-os2-emx
+       echo "$UNAME_MACHINE"-${VENDOR}-os2-emx
        exit ;;
     i*86:XTS-300:*:STOP)
-       echo "$UNAME_MACHINE"-unknown-stop
+       echo "$UNAME_MACHINE"-${VENDOR}-stop
        exit ;;
     i*86:atheos:*:*)
-       echo "$UNAME_MACHINE"-unknown-atheos
+       echo "$UNAME_MACHINE"-${VENDOR}-atheos
        exit ;;
     i*86:syllable:*:*)
-       echo "$UNAME_MACHINE"-pc-syllable
+       echo "$UNAME_MACHINE"-${VENDOR}-syllable
        exit ;;
     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
-       echo i386-unknown-lynxos"$UNAME_RELEASE"
+       echo i386-${VENDOR}-lynxos"$UNAME_RELEASE"
        exit ;;
     i*86:*DOS:*:*)
-       echo "$UNAME_MACHINE"-pc-msdosdjgpp
+       echo "$UNAME_MACHINE"-${VENDOR}-msdosdjgpp
        exit ;;
     i*86:*:4.*:*)
-       UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
+       UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//')
        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
                echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
        else
-               echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
+               echo "$UNAME_MACHINE"-${VENDOR}-sysv"$UNAME_REL"
        fi
        exit ;;
     i*86:*:5:[678]*)
        # UnixWare 7.x, OpenUNIX and OpenServer 6.
-       case `/bin/uname -X | grep "^Machine"` in
+       case $(/bin/uname -X | grep "^Machine") in
            *486*)           UNAME_MACHINE=i486 ;;
            *Pentium)        UNAME_MACHINE=i586 ;;
            *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
        esac
-       echo 
"$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
+       echo 
"$UNAME_MACHINE-${VENDOR}-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
        exit ;;
     i*86:*:3.2:*)
        if test -f /usr/options/cb.name; then
-               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-               echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
+               UNAME_REL=$(sed -n 's/.*Version //p' </usr/options/cb.name)
+               echo "$UNAME_MACHINE"-${VENDOR}-isc"$UNAME_REL"
        elif /bin/uname -X 2>/dev/null >/dev/null ; then
-               UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+               UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //'))
                (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
                (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
                        && UNAME_MACHINE=i586
@@ -1174,9 +1184,9 @@
                        && UNAME_MACHINE=i686
                (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
                        && UNAME_MACHINE=i686
-               echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
+               echo "$UNAME_MACHINE"-${VENDOR}-sco"$UNAME_REL"
        else
-               echo "$UNAME_MACHINE"-pc-sysv32
+               echo "$UNAME_MACHINE"-${VENDOR}-sysv32
        fi
        exit ;;
     pc:*:*:*)
@@ -1186,10 +1196,10 @@
        # Note: whatever this is, it MUST be the same as what config.sub
        # prints for the "djgpp" host, or else GDB configure will decide that
        # this is a cross-build.
-       echo i586-pc-msdosdjgpp
+       echo i586-${VENDOR}-msdosdjgpp
        exit ;;
     Intel:Mach:3*:*)
-       echo i386-pc-mach3
+       echo i386-${VENDOR}-mach3
        exit ;;
     paragon:*:*:*)
        echo i860-intel-osf1
@@ -1198,7 +1208,7 @@
        if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
          echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
        else # Add other i860-SVR4 vendors below as they are discovered.
-         echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
+         echo i860-${VENDOR}-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
        fi
        exit ;;
     mini*:CTIX:SYS*5:*)
@@ -1216,7 +1226,7 @@
     3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 
3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | 
SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
        OS_REL=''
        test -r /etc/.relid \
-       && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+       && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid)
        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
          && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
@@ -1227,7 +1237,7 @@
     NCR*:*:4.2:* | MPRAS*:*:4.2:*)
        OS_REL='.3'
        test -r /etc/.relid \
-           && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < 
/etc/.relid`
+           && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < 
/etc/.relid)
        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
            && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
@@ -1235,19 +1245,19 @@
        /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
            && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-       echo m68k-unknown-lynxos"$UNAME_RELEASE"
+       echo m68k-${VENDOR}-lynxos"$UNAME_RELEASE"
        exit ;;
     mc68030:UNIX_System_V:4.*:*)
        echo m68k-atari-sysv4
        exit ;;
     TSUNAMI:LynxOS:2.*:*)
-       echo sparc-unknown-lynxos"$UNAME_RELEASE"
+       echo sparc-${VENDOR}-lynxos"$UNAME_RELEASE"
        exit ;;
     rs6000:LynxOS:2.*:*)
-       echo rs6000-unknown-lynxos"$UNAME_RELEASE"
+       echo rs6000-${VENDOR}-lynxos"$UNAME_RELEASE"
        exit ;;
     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-       echo powerpc-unknown-lynxos"$UNAME_RELEASE"
+       echo powerpc-${VENDOR}-lynxos"$UNAME_RELEASE"
        exit ;;
     SM[BE]S:UNIX_SV:*:*)
        echo mips-dde-sysv"$UNAME_RELEASE"
@@ -1260,7 +1270,7 @@
        exit ;;
     *:SINIX-*:*:*)
        if uname -p 2>/dev/null >/dev/null ; then
-               UNAME_MACHINE=`(uname -p) 2>/dev/null`
+               UNAME_MACHINE=$( (uname -p) 2>/dev/null)
                echo "$UNAME_MACHINE"-sni-sysv4
        else
                echo ns32k-sni-sysv
@@ -1294,10 +1304,10 @@
        echo mips-sony-newsos6
        exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-       if [ -d /usr/nec ]; then
+       if test -d /usr/nec; then
                echo mips-nec-sysv"$UNAME_RELEASE"
        else
-               echo mips-unknown-sysv"$UNAME_RELEASE"
+               echo mips-${VENDOR}-sysv"$UNAME_RELEASE"
        fi
        exit ;;
     BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
@@ -1307,13 +1317,13 @@
        echo powerpc-apple-beos
        exit ;;
     BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
-       echo i586-pc-beos
+       echo i586-${VENDOR}-beos
        exit ;;
     BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
-       echo i586-pc-haiku
+       echo i586-${VENDOR}-haiku
        exit ;;
     x86_64:Haiku:*:*)
-       echo x86_64-unknown-haiku
+       echo x86_64-${VENDOR}-haiku
        exit ;;
     SX-4:SUPER-UX:*:*)
        echo sx4-nec-superux"$UNAME_RELEASE"
@@ -1342,8 +1352,11 @@
     *:Rhapsody:*:*)
        echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
        exit ;;
+    arm64:Darwin:*:*)
+       echo aarch64-apple-darwin"$UNAME_RELEASE"
+       exit ;;
     *:Darwin:*:*)
-       UNAME_PROCESSOR=`uname -p`
+       UNAME_PROCESSOR=$(uname -p)
        case $UNAME_PROCESSOR in
            unknown) UNAME_PROCESSOR=powerpc ;;
        esac
@@ -1356,7 +1369,7 @@
        else
            set_cc_for_build
        fi
-       if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+       if test "$CC_FOR_BUILD" != no_compiler_found; then
            if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
                   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
                   grep IS_64BIT_ARCH >/dev/null
@@ -1380,7 +1393,7 @@
        echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
        exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
-       UNAME_PROCESSOR=`uname -p`
+       UNAME_PROCESSOR=$(uname -p)
        if test "$UNAME_PROCESSOR" = x86; then
                UNAME_PROCESSOR=i386
                UNAME_MACHINE=pc
@@ -1388,7 +1401,7 @@
        echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
        exit ;;
     *:QNX:*:4*)
-       echo i386-pc-qnx
+       echo i386-${VENDOR}-qnx
        exit ;;
     NEO-*:NONSTOP_KERNEL:*:*)
        echo neo-tandem-nsk"$UNAME_RELEASE"
@@ -1424,13 +1437,13 @@
        else
            UNAME_MACHINE="$cputype"
        fi
-       echo "$UNAME_MACHINE"-unknown-plan9
+       echo "$UNAME_MACHINE"-${VENDOR}-plan9
        exit ;;
     *:TOPS-10:*:*)
-       echo pdp10-unknown-tops10
+       echo pdp10-${VENDOR}-tops10
        exit ;;
     *:TENEX:*:*)
-       echo pdp10-unknown-tenex
+       echo pdp10-${VENDOR}-tenex
        exit ;;
     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
        echo pdp10-dec-tops20
@@ -1439,44 +1452,44 @@
        echo pdp10-xkl-tops20
        exit ;;
     *:TOPS-20:*:*)
-       echo pdp10-unknown-tops20
+       echo pdp10-${VENDOR}-tops20
        exit ;;
     *:ITS:*:*)
-       echo pdp10-unknown-its
+       echo pdp10-${VENDOR}-its
        exit ;;
     SEI:*:*:SEIUX)
        echo mips-sei-seiux"$UNAME_RELEASE"
        exit ;;
     *:DragonFly:*:*)
-       echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 
's/[-(].*//'`"
+       echo "$UNAME_MACHINE"-${VENDOR}-dragonfly"$(echo "$UNAME_RELEASE"|sed 
-e 's/[-(].*//')"
        exit ;;
     *:*VMS:*:*)
-       UNAME_MACHINE=`(uname -p) 2>/dev/null`
+       UNAME_MACHINE=$( (uname -p) 2>/dev/null)
        case "$UNAME_MACHINE" in
            A*) echo alpha-dec-vms ; exit ;;
            I*) echo ia64-dec-vms ; exit ;;
            V*) echo vax-dec-vms ; exit ;;
        esac ;;
     *:XENIX:*:SysV)
-       echo i386-pc-xenix
+       echo i386-${VENDOR}-xenix
        exit ;;
     i*86:skyos:*:*)
-       echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ 
.*$//'`"
+       echo "$UNAME_MACHINE"-${VENDOR}-skyos"$(echo "$UNAME_RELEASE" | sed -e 
's/ .*$//')"
        exit ;;
     i*86:rdos:*:*)
-       echo "$UNAME_MACHINE"-pc-rdos
+       echo "$UNAME_MACHINE"-${VENDOR}-rdos
        exit ;;
     i*86:AROS:*:*)
-       echo "$UNAME_MACHINE"-pc-aros
+       echo "$UNAME_MACHINE"-${VENDOR}-aros
        exit ;;
     x86_64:VMkernel:*:*)
-       echo "$UNAME_MACHINE"-unknown-esx
+       echo "$UNAME_MACHINE"-${VENDOR}-esx
        exit ;;
     amd64:Isilon\ OneFS:*:*)
-       echo x86_64-unknown-onefs
+       echo x86_64-${VENDOR}-onefs
        exit ;;
     *:Unleashed:*:*)
-       echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
+       echo "$UNAME_MACHINE"-${VENDOR}-unleashed"$UNAME_RELEASE"
        exit ;;
 esac
 
@@ -1519,7 +1532,7 @@
 #define __ARCHITECTURE__ "m68k"
 #endif
   int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 
2>/dev/null);
   if (version < 4)
     printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
   else
@@ -1611,7 +1624,7 @@
 }
 EOF
 
-$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) &&
        { echo "$SYSTEM_NAME"; exit; }
 
 # Apollos put the system type in the environment.
@@ -1639,6 +1652,12 @@
   https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 and
   https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+EOF
+
+year=$(echo $timestamp | sed 's,-.*,,')
+# shellcheck disable=SC2003
+if test "$(expr "$(date +%Y)" - "$year")" -lt 3 ; then
+   cat >&2 <<EOF
 
 If $0 has already been updated, send the following data and any
 information you think might be pertinent to config-patc...@gnu.org to
@@ -1646,26 +1665,27 @@
 
 config.guess timestamp = $timestamp
 
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo               = `(hostinfo) 2>/dev/null`
-/bin/universe          = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch              = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+uname -m = $( (uname -m) 2>/dev/null || echo unknown)
+uname -r = $( (uname -r) 2>/dev/null || echo unknown)
+uname -s = $( (uname -s) 2>/dev/null || echo unknown)
+uname -v = $( (uname -v) 2>/dev/null || echo unknown)
+
+/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null)
+/bin/uname -X     = $( (/bin/uname -X) 2>/dev/null)
+
+hostinfo               = $( (hostinfo) 2>/dev/null)
+/bin/universe          = $( (/bin/universe) 2>/dev/null)
+/usr/bin/arch -k       = $( (/usr/bin/arch -k) 2>/dev/null)
+/bin/arch              = $( (/bin/arch) 2>/dev/null)
+/usr/bin/oslevel       = $( (/usr/bin/oslevel) 2>/dev/null)
+/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null)
 
 UNAME_MACHINE = "$UNAME_MACHINE"
 UNAME_RELEASE = "$UNAME_RELEASE"
 UNAME_SYSTEM  = "$UNAME_SYSTEM"
 UNAME_VERSION = "$UNAME_VERSION"
 EOF
+fi
 
 exit 1
 
diff -Nru pyatspi-2.38.0/config/config.sub pyatspi-2.38.1/config/config.sub
--- pyatspi-2.38.0/config/config.sub    2020-09-12 21:25:55.000000000 +0200
+++ pyatspi-2.38.1/config/config.sub    2021-03-13 22:36:27.000000000 +0100
@@ -2,7 +2,7 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2020 Free Software Foundation, Inc.
 
-timestamp='2020-01-01'
+timestamp='2020-11-07'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@
 #      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
 # It is wrong to echo any other type of specification.
 
-me=`echo "$0" | sed -e 's,.*/,,'`
+me=$(echo "$0" | sed -e 's,.*/,,')
 
 usage="\
 Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
@@ -124,28 +124,27 @@
                ;;
        *-*-*-*)
                basic_machine=$field1-$field2
-               os=$field3-$field4
+               basic_os=$field3-$field4
                ;;
        *-*-*)
                # Ambiguous whether COMPANY is present, or skipped and 
KERNEL-OS is two
                # parts
                maybe_os=$field2-$field3
                case $maybe_os in
-                       nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc 
\
-                       | linux-newlib* | linux-musl* | linux-uclibc* | 
uclinux-uclibc* \
+                       nto-qnx* | linux-* | uclinux-uclibc* \
                        | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | 
netbsd*-gnu* \
                        | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
                        | storm-chaos* | os2-emx* | rtmk-nova*)
                                basic_machine=$field1
-                               os=$maybe_os
+                               basic_os=$maybe_os
                                ;;
                        android-linux)
                                basic_machine=$field1-unknown
-                               os=linux-android
+                               basic_os=linux-android
                                ;;
                        *)
                                basic_machine=$field1-$field2
-                               os=$field3
+                               basic_os=$field3
                                ;;
                esac
                ;;
@@ -154,7 +153,7 @@
                case $field1-$field2 in
                        decstation-3100)
                                basic_machine=mips-dec
-                               os=
+                               basic_os=
                                ;;
                        *-*)
                                # Second component is usually, but not always 
the OS
@@ -162,7 +161,7 @@
                                        # Prevent following clause from 
handling this valid os
                                        sun*os*)
                                                basic_machine=$field1
-                                               os=$field2
+                                               basic_os=$field2
                                                ;;
                                        # Manufacturers
                                        dec* | mips* | sequent* | encore* | 
pc533* | sgi* | sony* \
@@ -175,11 +174,11 @@
                                        | microblaze* | sim | cisco \
                                        | oki | wec | wrs | winbond)
                                                basic_machine=$field1-$field2
-                                               os=
+                                               basic_os=
                                                ;;
                                        *)
                                                basic_machine=$field1
-                                               os=$field2
+                                               basic_os=$field2
                                                ;;
                                esac
                        ;;
@@ -191,447 +190,451 @@
                case $field1 in
                        386bsd)
                                basic_machine=i386-pc
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        a29khif)
                                basic_machine=a29k-amd
-                               os=udi
+                               basic_os=udi
                                ;;
                        adobe68k)
                                basic_machine=m68010-adobe
-                               os=scout
+                               basic_os=scout
                                ;;
                        alliant)
                                basic_machine=fx80-alliant
-                               os=
+                               basic_os=
                                ;;
                        altos | altos3068)
                                basic_machine=m68k-altos
-                               os=
+                               basic_os=
                                ;;
                        am29k)
                                basic_machine=a29k-none
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        amdahl)
                                basic_machine=580-amdahl
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        amiga)
                                basic_machine=m68k-unknown
-                               os=
+                               basic_os=
                                ;;
                        amigaos | amigados)
                                basic_machine=m68k-unknown
-                               os=amigaos
+                               basic_os=amigaos
                                ;;
                        amigaunix | amix)
                                basic_machine=m68k-unknown
-                               os=sysv4
+                               basic_os=sysv4
                                ;;
                        apollo68)
                                basic_machine=m68k-apollo
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        apollo68bsd)
                                basic_machine=m68k-apollo
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        aros)
                                basic_machine=i386-pc
-                               os=aros
+                               basic_os=aros
                                ;;
                        aux)
                                basic_machine=m68k-apple
-                               os=aux
+                               basic_os=aux
                                ;;
                        balance)
                                basic_machine=ns32k-sequent
-                               os=dynix
+                               basic_os=dynix
                                ;;
                        blackfin)
                                basic_machine=bfin-unknown
-                               os=linux
+                               basic_os=linux
                                ;;
                        cegcc)
                                basic_machine=arm-unknown
-                               os=cegcc
+                               basic_os=cegcc
                                ;;
                        convex-c1)
                                basic_machine=c1-convex
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        convex-c2)
                                basic_machine=c2-convex
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        convex-c32)
                                basic_machine=c32-convex
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        convex-c34)
                                basic_machine=c34-convex
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        convex-c38)
                                basic_machine=c38-convex
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        cray)
                                basic_machine=j90-cray
-                               os=unicos
+                               basic_os=unicos
                                ;;
                        crds | unos)
                                basic_machine=m68k-crds
-                               os=
+                               basic_os=
                                ;;
                        da30)
                                basic_machine=m68k-da30
-                               os=
+                               basic_os=
                                ;;
                        decstation | pmax | pmin | dec3100 | decstatn)
                                basic_machine=mips-dec
-                               os=
+                               basic_os=
                                ;;
                        delta88)
                                basic_machine=m88k-motorola
-                               os=sysv3
+                               basic_os=sysv3
                                ;;
                        dicos)
                                basic_machine=i686-pc
-                               os=dicos
+                               basic_os=dicos
                                ;;
                        djgpp)
                                basic_machine=i586-pc
-                               os=msdosdjgpp
+                               basic_os=msdosdjgpp
                                ;;
                        ebmon29k)
                                basic_machine=a29k-amd
-                               os=ebmon
+                               basic_os=ebmon
                                ;;
                        es1800 | OSE68k | ose68k | ose | OSE)
                                basic_machine=m68k-ericsson
-                               os=ose
+                               basic_os=ose
                                ;;
                        gmicro)
                                basic_machine=tron-gmicro
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        go32)
                                basic_machine=i386-pc
-                               os=go32
+                               basic_os=go32
                                ;;
                        h8300hms)
                                basic_machine=h8300-hitachi
-                               os=hms
+                               basic_os=hms
                                ;;
                        h8300xray)
                                basic_machine=h8300-hitachi
-                               os=xray
+                               basic_os=xray
                                ;;
                        h8500hms)
                                basic_machine=h8500-hitachi
-                               os=hms
+                               basic_os=hms
                                ;;
                        harris)
                                basic_machine=m88k-harris
-                               os=sysv3
+                               basic_os=sysv3
                                ;;
                        hp300 | hp300hpux)
                                basic_machine=m68k-hp
-                               os=hpux
+                               basic_os=hpux
                                ;;
                        hp300bsd)
                                basic_machine=m68k-hp
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        hppaosf)
                                basic_machine=hppa1.1-hp
-                               os=osf
+                               basic_os=osf
                                ;;
                        hppro)
                                basic_machine=hppa1.1-hp
-                               os=proelf
+                               basic_os=proelf
                                ;;
                        i386mach)
                                basic_machine=i386-mach
-                               os=mach
+                               basic_os=mach
                                ;;
                        isi68 | isi)
                                basic_machine=m68k-isi
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        m68knommu)
                                basic_machine=m68k-unknown
-                               os=linux
+                               basic_os=linux
                                ;;
                        magnum | m3230)
                                basic_machine=mips-mips
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        merlin)
                                basic_machine=ns32k-utek
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        mingw64)
                                basic_machine=x86_64-pc
-                               os=mingw64
+                               basic_os=mingw64
                                ;;
                        mingw32)
                                basic_machine=i686-pc
-                               os=mingw32
+                               basic_os=mingw32
                                ;;
                        mingw32ce)
                                basic_machine=arm-unknown
-                               os=mingw32ce
+                               basic_os=mingw32ce
                                ;;
                        monitor)
                                basic_machine=m68k-rom68k
-                               os=coff
+                               basic_os=coff
                                ;;
                        morphos)
                                basic_machine=powerpc-unknown
-                               os=morphos
+                               basic_os=morphos
                                ;;
                        moxiebox)
                                basic_machine=moxie-unknown
-                               os=moxiebox
+                               basic_os=moxiebox
                                ;;
                        msdos)
                                basic_machine=i386-pc
-                               os=msdos
+                               basic_os=msdos
                                ;;
                        msys)
                                basic_machine=i686-pc
-                               os=msys
+                               basic_os=msys
                                ;;
                        mvs)
                                basic_machine=i370-ibm
-                               os=mvs
+                               basic_os=mvs
                                ;;
                        nacl)
                                basic_machine=le32-unknown
-                               os=nacl
+                               basic_os=nacl
                                ;;
                        ncr3000)
                                basic_machine=i486-ncr
-                               os=sysv4
+                               basic_os=sysv4
                                ;;
                        netbsd386)
                                basic_machine=i386-pc
-                               os=netbsd
+                               basic_os=netbsd
                                ;;
                        netwinder)
                                basic_machine=armv4l-rebel
-                               os=linux
+                               basic_os=linux
                                ;;
                        news | news700 | news800 | news900)
                                basic_machine=m68k-sony
-                               os=newsos
+                               basic_os=newsos
                                ;;
                        news1000)
                                basic_machine=m68030-sony
-                               os=newsos
+                               basic_os=newsos
                                ;;
                        necv70)
                                basic_machine=v70-nec
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        nh3000)
                                basic_machine=m68k-harris
-                               os=cxux
+                               basic_os=cxux
                                ;;
                        nh[45]000)
                                basic_machine=m88k-harris
-                               os=cxux
+                               basic_os=cxux
                                ;;
                        nindy960)
                                basic_machine=i960-intel
-                               os=nindy
+                               basic_os=nindy
                                ;;
                        mon960)
                                basic_machine=i960-intel
-                               os=mon960
+                               basic_os=mon960
                                ;;
                        nonstopux)
                                basic_machine=mips-compaq
-                               os=nonstopux
+                               basic_os=nonstopux
                                ;;
                        os400)
                                basic_machine=powerpc-ibm
-                               os=os400
+                               basic_os=os400
                                ;;
                        OSE68000 | ose68000)
                                basic_machine=m68000-ericsson
-                               os=ose
+                               basic_os=ose
                                ;;
                        os68k)
                                basic_machine=m68k-none
-                               os=os68k
+                               basic_os=os68k
                                ;;
                        paragon)
                                basic_machine=i860-intel
-                               os=osf
+                               basic_os=osf
                                ;;
                        parisc)
                                basic_machine=hppa-unknown
-                               os=linux
+                               basic_os=linux
+                               ;;
+                       psp)
+                               basic_machine=mipsallegrexel-sony
+                               basic_os=psp
                                ;;
                        pw32)
                                basic_machine=i586-unknown
-                               os=pw32
+                               basic_os=pw32
                                ;;
                        rdos | rdos64)
                                basic_machine=x86_64-pc
-                               os=rdos
+                               basic_os=rdos
                                ;;
                        rdos32)
                                basic_machine=i386-pc
-                               os=rdos
+                               basic_os=rdos
                                ;;
                        rom68k)
                                basic_machine=m68k-rom68k
-                               os=coff
+                               basic_os=coff
                                ;;
                        sa29200)
                                basic_machine=a29k-amd
-                               os=udi
+                               basic_os=udi
                                ;;
                        sei)
                                basic_machine=mips-sei
-                               os=seiux
+                               basic_os=seiux
                                ;;
                        sequent)
                                basic_machine=i386-sequent
-                               os=
+                               basic_os=
                                ;;
                        sps7)
                                basic_machine=m68k-bull
-                               os=sysv2
+                               basic_os=sysv2
                                ;;
                        st2000)
                                basic_machine=m68k-tandem
-                               os=
+                               basic_os=
                                ;;
                        stratus)
                                basic_machine=i860-stratus
-                               os=sysv4
+                               basic_os=sysv4
                                ;;
                        sun2)
                                basic_machine=m68000-sun
-                               os=
+                               basic_os=
                                ;;
                        sun2os3)
                                basic_machine=m68000-sun
-                               os=sunos3
+                               basic_os=sunos3
                                ;;
                        sun2os4)
                                basic_machine=m68000-sun
-                               os=sunos4
+                               basic_os=sunos4
                                ;;
                        sun3)
                                basic_machine=m68k-sun
-                               os=
+                               basic_os=
                                ;;
                        sun3os3)
                                basic_machine=m68k-sun
-                               os=sunos3
+                               basic_os=sunos3
                                ;;
                        sun3os4)
                                basic_machine=m68k-sun
-                               os=sunos4
+                               basic_os=sunos4
                                ;;
                        sun4)
                                basic_machine=sparc-sun
-                               os=
+                               basic_os=
                                ;;
                        sun4os3)
                                basic_machine=sparc-sun
-                               os=sunos3
+                               basic_os=sunos3
                                ;;
                        sun4os4)
                                basic_machine=sparc-sun
-                               os=sunos4
+                               basic_os=sunos4
                                ;;
                        sun4sol2)
                                basic_machine=sparc-sun
-                               os=solaris2
+                               basic_os=solaris2
                                ;;
                        sun386 | sun386i | roadrunner)
                                basic_machine=i386-sun
-                               os=
+                               basic_os=
                                ;;
                        sv1)
                                basic_machine=sv1-cray
-                               os=unicos
+                               basic_os=unicos
                                ;;
                        symmetry)
                                basic_machine=i386-sequent
-                               os=dynix
+                               basic_os=dynix
                                ;;
                        t3e)
                                basic_machine=alphaev5-cray
-                               os=unicos
+                               basic_os=unicos
                                ;;
                        t90)
                                basic_machine=t90-cray
-                               os=unicos
+                               basic_os=unicos
                                ;;
                        toad1)
                                basic_machine=pdp10-xkl
-                               os=tops20
+                               basic_os=tops20
                                ;;
                        tpf)
                                basic_machine=s390x-ibm
-                               os=tpf
+                               basic_os=tpf
                                ;;
                        udi29k)
                                basic_machine=a29k-amd
-                               os=udi
+                               basic_os=udi
                                ;;
                        ultra3)
                                basic_machine=a29k-nyu
-                               os=sym1
+                               basic_os=sym1
                                ;;
                        v810 | necv810)
                                basic_machine=v810-nec
-                               os=none
+                               basic_os=none
                                ;;
                        vaxv)
                                basic_machine=vax-dec
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        vms)
                                basic_machine=vax-dec
-                               os=vms
+                               basic_os=vms
                                ;;
                        vsta)
                                basic_machine=i386-pc
-                               os=vsta
+                               basic_os=vsta
                                ;;
                        vxworks960)
                                basic_machine=i960-wrs
-                               os=vxworks
+                               basic_os=vxworks
                                ;;
                        vxworks68)
                                basic_machine=m68k-wrs
-                               os=vxworks
+                               basic_os=vxworks
                                ;;
                        vxworks29k)
                                basic_machine=a29k-wrs
-                               os=vxworks
+                               basic_os=vxworks
                                ;;
                        xbox)
                                basic_machine=i686-pc
-                               os=mingw32
+                               basic_os=mingw32
                                ;;
                        ymp)
                                basic_machine=ymp-cray
-                               os=unicos
+                               basic_os=unicos
                                ;;
                        *)
                                basic_machine=$1
-                               os=
+                               basic_os=
                                ;;
                esac
                ;;
@@ -683,17 +686,17 @@
        bluegene*)
                cpu=powerpc
                vendor=ibm
-               os=cnk
+               basic_os=cnk
                ;;
        decsystem10* | dec10*)
                cpu=pdp10
                vendor=dec
-               os=tops10
+               basic_os=tops10
                ;;
        decsystem20* | dec20*)
                cpu=pdp10
                vendor=dec
-               os=tops20
+               basic_os=tops20
                ;;
        delta | 3300 | motorola-3300 | motorola-delta \
              | 3300-motorola | delta-motorola)
@@ -703,7 +706,7 @@
        dpx2*)
                cpu=m68k
                vendor=bull
-               os=sysv3
+               basic_os=sysv3
                ;;
        encore | umax | mmax)
                cpu=ns32k
@@ -712,7 +715,7 @@
        elxsi)
                cpu=elxsi
                vendor=elxsi
-               os=${os:-bsd}
+               basic_os=${basic_os:-bsd}
                ;;
        fx2800)
                cpu=i860
@@ -725,7 +728,7 @@
        h3050r* | hiux*)
                cpu=hppa1.1
                vendor=hitachi
-               os=hiuxwe2
+               basic_os=hiuxwe2
                ;;
        hp3k9[0-9][0-9] | hp9[0-9][0-9])
                cpu=hppa1.0
@@ -766,38 +769,38 @@
                vendor=hp
                ;;
        i*86v32)
-               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               cpu=$(echo "$1" | sed -e 's/86.*/86/')
                vendor=pc
-               os=sysv32
+               basic_os=sysv32
                ;;
        i*86v4*)
-               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               cpu=$(echo "$1" | sed -e 's/86.*/86/')
                vendor=pc
-               os=sysv4
+               basic_os=sysv4
                ;;
        i*86v)
-               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               cpu=$(echo "$1" | sed -e 's/86.*/86/')
                vendor=pc
-               os=sysv
+               basic_os=sysv
                ;;
        i*86sol2)
-               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               cpu=$(echo "$1" | sed -e 's/86.*/86/')
                vendor=pc
-               os=solaris2
+               basic_os=solaris2
                ;;
        j90 | j90-cray)
                cpu=j90
                vendor=cray
-               os=${os:-unicos}
+               basic_os=${basic_os:-unicos}
                ;;
        iris | iris4d)
                cpu=mips
                vendor=sgi
-               case $os in
+               case $basic_os in
                    irix*)
                        ;;
                    *)
-                       os=irix4
+                       basic_os=irix4
                        ;;
                esac
                ;;
@@ -808,26 +811,26 @@
        *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
                cpu=m68k
                vendor=atari
-               os=mint
+               basic_os=mint
                ;;
        news-3600 | risc-news)
                cpu=mips
                vendor=sony
-               os=newsos
+               basic_os=newsos
                ;;
        next | m*-next)
                cpu=m68k
                vendor=next
-               case $os in
+               case $basic_os in
                    openstep*)
                        ;;
                    nextstep*)
                        ;;
                    ns2*)
-                     os=nextstep2
+                     basic_os=nextstep2
                        ;;
                    *)
-                     os=nextstep3
+                     basic_os=nextstep3
                        ;;
                esac
                ;;
@@ -838,12 +841,12 @@
        op50n-* | op60c-*)
                cpu=hppa1.1
                vendor=oki
-               os=proelf
+               basic_os=proelf
                ;;
        pa-hitachi)
                cpu=hppa1.1
                vendor=hitachi
-               os=hiuxwe2
+               basic_os=hiuxwe2
                ;;
        pbd)
                cpu=sparc
@@ -880,12 +883,12 @@
        sde)
                cpu=mipsisa32
                vendor=sde
-               os=${os:-elf}
+               basic_os=${basic_os:-elf}
                ;;
        simso-wrs)
                cpu=sparclite
                vendor=wrs
-               os=vxworks
+               basic_os=vxworks
                ;;
        tower | tower-32)
                cpu=m68k
@@ -902,7 +905,7 @@
        w89k-*)
                cpu=hppa1.1
                vendor=winbond
-               os=proelf
+               basic_os=proelf
                ;;
        none)
                cpu=none
@@ -914,7 +917,7 @@
                ;;
        leon-*|leon[3-9]-*)
                cpu=sparc
-               vendor=`echo "$basic_machine" | sed 's/-.*//'`
+               vendor=$(echo "$basic_machine" | sed 's/-.*//')
                ;;
 
        *-*)
@@ -955,11 +958,11 @@
        # some cases the only manufacturer, in others, it is the most popular.
        craynv-unknown)
                vendor=cray
-               os=${os:-unicosmp}
+               basic_os=${basic_os:-unicosmp}
                ;;
        c90-unknown | c90-cray)
                vendor=cray
-               os=${os:-unicos}
+               basic_os=${Basic_os:-unicos}
                ;;
        fx80-unknown)
                vendor=alliant
@@ -1003,7 +1006,7 @@
        dpx20-unknown | dpx20-bull)
                cpu=rs6000
                vendor=bull
-               os=${os:-bosx}
+               basic_os=${basic_os:-bosx}
                ;;
 
        # Here we normalize CPU types irrespective of the vendor
@@ -1012,7 +1015,7 @@
                ;;
        blackfin-*)
                cpu=bfin
-               os=linux
+               basic_os=linux
                ;;
        c54x-*)
                cpu=tic54x
@@ -1025,7 +1028,7 @@
                ;;
        e500v[12]-*)
                cpu=powerpc
-               os=$os"spe"
+               basic_os=${basic_os}"spe"
                ;;
        mips3*-*)
                cpu=mips64
@@ -1035,7 +1038,7 @@
                ;;
        m68knommu-*)
                cpu=m68k
-               os=linux
+               basic_os=linux
                ;;
        m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
                cpu=s12z
@@ -1045,7 +1048,7 @@
                ;;
        parisc-*)
                cpu=hppa
-               os=linux
+               basic_os=linux
                ;;
        pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
                cpu=i586
@@ -1081,7 +1084,7 @@
                cpu=mipsisa64sb1el
                ;;
        sh5e[lb]-*)
-               cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
+               cpu=$(echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/')
                ;;
        spur-*)
                cpu=spur
@@ -1099,13 +1102,16 @@
                cpu=x86_64
                ;;
        xscale-* | xscalee[bl]-*)
-               cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+               cpu=$(echo "$cpu" | sed 's/^xscale/arm/')
+               ;;
+       arm64-*)
+               cpu=aarch64
                ;;
 
        # Recognize the canonical CPU Types that limit and/or modify the
        # company names they are paired with.
        cr16-*)
-               os=${os:-elf}
+               basic_os=${basic_os:-elf}
                ;;
        crisv32-* | etraxfs*-*)
                cpu=crisv32
@@ -1116,7 +1122,7 @@
                vendor=axis
                ;;
        crx-*)
-               os=${os:-elf}
+               basic_os=${basic_os:-elf}
                ;;
        neo-tandem)
                cpu=neo
@@ -1138,22 +1144,12 @@
                cpu=nsx
                vendor=tandem
                ;;
-       s390)
-               cpu=s390
-               vendor=ibm
-               ;;
-       s390-*)
-               cpu=s390
-               ;;
-       s390x)
-               cpu=s390x
-               vendor=ibm
-               ;;
-       s390x-*)
-               cpu=s390x
+       mipsallegrexel-sony)
+               cpu=mipsallegrexel
+               vendor=sony
                ;;
        tile*-*)
-               os=${os:-linux-gnu}
+               basic_os=${basic_os:-linux-gnu}
                ;;
 
        *)
@@ -1170,7 +1166,7 @@
                        | am33_2.0 \
                        | amdgcn \
                        | arc | arceb \
-                       | arm  | arm[lb]e | arme[lb] | armv* \
+                       | arm | arm[lb]e | arme[lb] | armv* \
                        | avr | avr32 \
                        | asmjs \
                        | ba \
@@ -1235,6 +1231,7 @@
                        | pyramid \
                        | riscv | riscv32 | riscv64 \
                        | rl78 | romp | rs6000 | rx \
+                       | s390 | s390x \
                        | score \
                        | sh | shl \
                        | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] 
| sh[lb]e \
@@ -1281,8 +1278,47 @@
 
 # Decode manufacturer-specific aliases for certain operating systems.
 
-if [ x$os != x ]
+if test x$basic_os != x
 then
+
+# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
+# set os.
+case $basic_os in
+       gnu/linux*)
+               kernel=linux
+               os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|')
+               ;;
+       os2-emx)
+               kernel=os2
+               os=$(echo $basic_os | sed -e 's|os2-emx|emx|')
+               ;;
+       nto-qnx*)
+               kernel=nto
+               os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|')
+               ;;
+       *-*)
+               # shellcheck disable=SC2162
+               IFS="-" read kernel os <<EOF
+$basic_os
+EOF
+               ;;
+       # Default OS when just kernel was specified
+       nto*)
+               kernel=nto
+               os=$(echo $basic_os | sed -e 's|nto|qnx|')
+               ;;
+       linux*)
+               kernel=linux
+               os=$(echo $basic_os | sed -e 's|linux|gnu|')
+               ;;
+       *)
+               kernel=
+               os=$basic_os
+               ;;
+esac
+
+# Now, normalize the OS (knowing we just have one component, it's not a kernel,
+# etc.)
 case $os in
        # First match some system type aliases that might get confused
        # with valid system types.
@@ -1294,7 +1330,7 @@
                os=cnk
                ;;
        solaris1 | solaris1.*)
-               os=`echo $os | sed -e 's|solaris1|sunos4|'`
+               os=$(echo $os | sed -e 's|solaris1|sunos4|')
                ;;
        solaris)
                os=solaris2
@@ -1302,9 +1338,6 @@
        unixware*)
                os=sysv4.2uw
                ;;
-       gnu/linux*)
-               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-               ;;
        # es1800 is here to avoid being matched by es* (a different OS)
        es1800*)
                os=ose
@@ -1326,12 +1359,9 @@
                os=sco3.2v4
                ;;
        sco3.2.[4-9]*)
-               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+               os=$(echo $os | sed -e 's/sco3.2./sco3.2v/')
                ;;
-       sco3.2v[4-9]* | sco5v6*)
-               # Don't forget version if it is 3.2v4 or newer.
-               ;;
-       scout)
+       sco*v* | scout)
                # Don't match below
                ;;
        sco*)
@@ -1340,79 +1370,26 @@
        psos*)
                os=psos
                ;;
-       # Now accept the basic system types.
-       # The portable systems comes first.
-       # Each alternative MUST end in a * to match a version number.
-       # sysv* is not here because it comes later, after sysvr4.
-       gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
-            | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
-            | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
-            | sym* | kopensolaris* | plan9* \
-            | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
-            | aos* | aros* | cloudabi* | sortix* | twizzler* \
-            | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
-            | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
-            | knetbsd* | mirbsd* | netbsd* \
-            | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
-            | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
-            | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
-            | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
-            | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
-            | chorusrdb* | cegcc* | glidix* \
-            | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
-            | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
-            | linux-newlib* | linux-musl* | linux-uclibc* \
-            | uxpv* | beos* | mpeix* | udk* | moxiebox* \
-            | interix* | uwin* | mks* | rhapsody* | darwin* \
-            | openstep* | oskit* | conix* | pw32* | nonstopux* \
-            | storm-chaos* | tops10* | tenex* | tops20* | its* \
-            | os2* | vos* | palmos* | uclinux* | nucleus* \
-            | morphos* | superux* | rtmk* | windiss* \
-            | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
-            | skyos* | haiku* | rdos* | toppers* | drops* | es* \
-            | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
-            | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
-            | nsk* | powerunix)
-       # Remember, each alternative MUST END IN *, to match a version number.
-               ;;
        qnx*)
-               case $cpu in
-                   x86 | i*86)
-                       ;;
-                   *)
-                       os=nto-$os
-                       ;;
-               esac
+               os=qnx
                ;;
        hiux*)
                os=hiuxwe2
                ;;
-       nto-qnx*)
-               ;;
-       nto*)
-               os=`echo $os | sed -e 's|nto|nto-qnx|'`
-               ;;
-       sim | xray | os68k* | v88r* \
-           | windows* | osx | abug | netware* | os9* \
-           | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
-               ;;
-       linux-dietlibc)
-               os=linux-dietlibc
-               ;;
-       linux*)
-               os=`echo $os | sed -e 's|linux|linux-gnu|'`
-               ;;
        lynx*178)
                os=lynxos178
                ;;
        lynx*5)
                os=lynxos5
                ;;
+       lynxos*)
+               # don't get caught up in next wildcard
+               ;;
        lynx*)
                os=lynxos
                ;;
-       mac*)
-               os=`echo "$os" | sed -e 's|mac|macos|'`
+       mac[0-9]*)
+               os=$(echo "$os" | sed -e 's|mac|macos|')
                ;;
        opened*)
                os=openedition
@@ -1421,10 +1398,10 @@
                os=os400
                ;;
        sunos5*)
-               os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+               os=$(echo "$os" | sed -e 's|sunos5|solaris2|')
                ;;
        sunos6*)
-               os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+               os=$(echo "$os" | sed -e 's|sunos6|solaris3|')
                ;;
        wince*)
                os=wince
@@ -1458,7 +1435,7 @@
                ;;
        # Preserve the version number of sinix5.
        sinix5.*)
-               os=`echo $os | sed -e 's|sinix|sysv|'`
+               os=$(echo $os | sed -e 's|sinix|sysv|')
                ;;
        sinix*)
                os=sysv4
@@ -1481,18 +1458,12 @@
        sysvr4)
                os=sysv4
                ;;
-       # This must come after sysvr4.
-       sysv*)
-               ;;
        ose*)
                os=ose
                ;;
        *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
                os=mint
                ;;
-       zvmoe)
-               os=zvmoe
-               ;;
        dicos*)
                os=dicos
                ;;
@@ -1509,19 +1480,11 @@
                        ;;
                esac
                ;;
-       nacl*)
-               ;;
-       ios)
-               ;;
-       none)
-               ;;
-       *-eabi)
-               ;;
        *)
-               echo Invalid configuration \`"$1"\': system \`"$os"\' not 
recognized 1>&2
-               exit 1
+               # No normalization, but not necessarily accepted, that comes 
below.
                ;;
 esac
+
 else
 
 # Here we handle the default operating systems that come with various machines.
@@ -1534,6 +1497,7 @@
 # will signal an error saying that MANUFACTURER isn't an operating
 # system, and we'll never get to this point.
 
+kernel=
 case $cpu-$vendor in
        score-*)
                os=elf
@@ -1545,7 +1509,8 @@
                os=riscix1.2
                ;;
        arm*-rebel)
-               os=linux
+               kernel=linux
+               os=gnu
                ;;
        arm*-semi)
                os=aout
@@ -1711,84 +1676,173 @@
                os=none
                ;;
 esac
+
 fi
 
+# Now, validate our (potentially fixed-up) OS.
+case $os in
+       # Sometimes we do "kernel-abi", so those need to count as OSes.
+       musl* | newlib* | uclibc*)
+               ;;
+       # Likewise for "kernel-libc"
+       eabi | eabihf | gnueabi | gnueabihf)
+               ;;
+       # Now accept the basic system types.
+       # The portable systems comes first.
+       # Each alternative MUST end in a * to match a version number.
+       gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+            | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
+            | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+            | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
+            | hiux* | abug | nacl* | netware* | windows* \
+            | os9* | macos* | osx* | ios* \
+            | mpw* | magic* | mmixware* | mon960* | lnews* \
+            | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+            | aos* | aros* | cloudabi* | sortix* | twizzler* \
+            | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+            | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+            | mirbsd* | netbsd* | dicos* | openedition* | ose* \
+            | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
+            | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
+            | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+            | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+            | udi* | lites* | ieee* | go32* | aux* | hcos* \
+            | chorusrdb* | cegcc* | glidix* \
+            | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+            | midipix* | mingw32* | mingw64* | mint* \
+            | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+            | interix* | uwin* | mks* | rhapsody* | darwin* \
+            | openstep* | oskit* | conix* | pw32* | nonstopux* \
+            | storm-chaos* | tops10* | tenex* | tops20* | its* \
+            | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
+            | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
+            | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+            | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+            | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+            | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
+            | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*)
+               ;;
+       # This one is extra strict with allowed versions
+       sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+               # Don't forget version if it is 3.2v4 or newer.
+               ;;
+       none)
+               ;;
+       *)
+               echo Invalid configuration \`"$1"\': OS \`"$os"\' not 
recognized 1>&2
+               exit 1
+               ;;
+esac
+
+# As a final step for OS-related things, validate the OS-kernel combination
+# (given a valid OS), if there is a kernel.
+case $kernel-$os in
+       linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | 
linux-musl* | linux-uclibc* )
+               ;;
+       uclinux-uclibc* )
+               ;;
+       -dietlibc* | -newlib* | -musl* | -uclibc* )
+               # These are just libc implementations, not actual OSes, and thus
+               # require a kernel.
+               echo "Invalid configuration \`$1': libc \`$os' needs explicit 
kernel." 1>&2
+               exit 1
+               ;;
+       kfreebsd*-gnu* | kopensolaris*-gnu*)
+               ;;
+       nto-qnx*)
+               ;;
+       os2-emx)
+               ;;
+       *-eabi* | *-gnueabi*)
+               ;;
+       -*)
+               # Blank kernel with real OS is always fine.
+               ;;
+       *-*)
+               echo "Invalid configuration \`$1': Kernel \`$kernel' not known 
to work with OS \`$os'." 1>&2
+               exit 1
+               ;;
+esac
+
 # Here we handle the case where we know the os, and the CPU type, but not the
 # manufacturer.  We pick the logical manufacturer.
 case $vendor in
        unknown)
-               case $os in
-                       riscix*)
+               case $cpu-$os in
+                       *-riscix*)
                                vendor=acorn
                                ;;
-                       sunos*)
+                       *-sunos*)
                                vendor=sun
                                ;;
-                       cnk*|-aix*)
+                       *-cnk* | *-aix*)
                                vendor=ibm
                                ;;
-                       beos*)
+                       *-beos*)
                                vendor=be
                                ;;
-                       hpux*)
+                       *-hpux*)
                                vendor=hp
                                ;;
-                       mpeix*)
+                       *-mpeix*)
                                vendor=hp
                                ;;
-                       hiux*)
+                       *-hiux*)
                                vendor=hitachi
                                ;;
-                       unos*)
+                       *-unos*)
                                vendor=crds
                                ;;
-                       dgux*)
+                       *-dgux*)
                                vendor=dg
                                ;;
-                       luna*)
+                       *-luna*)
                                vendor=omron
                                ;;
-                       genix*)
+                       *-genix*)
                                vendor=ns
                                ;;
-                       clix*)
+                       *-clix*)
                                vendor=intergraph
                                ;;
-                       mvs* | opened*)
+                       *-mvs* | *-opened*)
+                               vendor=ibm
+                               ;;
+                       *-os400*)
                                vendor=ibm
                                ;;
-                       os400*)
+                       s390-* | s390x-*)
                                vendor=ibm
                                ;;
-                       ptx*)
+                       *-ptx*)
                                vendor=sequent
                                ;;
-                       tpf*)
+                       *-tpf*)
                                vendor=ibm
                                ;;
-                       vxsim* | vxworks* | windiss*)
+                       *-vxsim* | *-vxworks* | *-windiss*)
                                vendor=wrs
                                ;;
-                       aux*)
+                       *-aux*)
                                vendor=apple
                                ;;
-                       hms*)
+                       *-hms*)
                                vendor=hitachi
                                ;;
-                       mpw* | macos*)
+                       *-mpw* | *-macos*)
                                vendor=apple
                                ;;
-                       *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+                       *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
                                vendor=atari
                                ;;
-                       vos*)
+                       *-vos*)
                                vendor=stratus
                                ;;
                esac
                ;;
 esac
 
-echo "$cpu-$vendor-$os"
+echo "$cpu-$vendor-${kernel:+$kernel-}$os"
 exit
 
 # Local variables:
diff -Nru pyatspi-2.38.0/config/install-sh pyatspi-2.38.1/config/install-sh
--- pyatspi-2.38.0/config/install-sh    2020-09-12 21:25:55.000000000 +0200
+++ pyatspi-2.38.1/config/install-sh    2021-03-13 22:36:27.000000000 +0100
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2018-03-11.20; # UTC
+scriptversion=2020-11-14.01; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -69,6 +69,11 @@
 # Desired mode of installed file.
 mode=0755
 
+# Create dirs (including intermediate dirs) using mode 755.
+# This is like GNU 'install' as of coreutils 8.32 (2020).
+mkdir_umask=22
+
+backupsuffix=
 chgrpcmd=
 chmodcmd=$chmodprog
 chowncmd=
@@ -99,18 +104,28 @@
      --version  display version info and exit.
 
   -c            (ignored)
-  -C            install only if different (preserve the last data modification 
time)
+  -C            install only if different (preserve data modification time)
   -d            create directories instead of installing files.
   -g GROUP      $chgrpprog installed files to GROUP.
   -m MODE       $chmodprog installed files to MODE.
   -o USER       $chownprog installed files to USER.
+  -p            pass -p to $cpprog.
   -s            $stripprog installed files.
+  -S SUFFIX     attempt to back up existing files, with suffix SUFFIX.
   -t DIRECTORY  install into DIRECTORY.
   -T            report an error if DSTFILE is a directory.
 
 Environment variables override the default commands:
   CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
   RMPROG STRIPPROG
+
+By default, rm is invoked with -f; when overridden with RMPROG,
+it's up to you to specify -f if you want it.
+
+If -S is not specified, no backups are attempted.
+
+Email bug reports to bug-autom...@gnu.org.
+Automake home page: https://www.gnu.org/software/automake/
 "
 
 while test $# -ne 0; do
@@ -137,8 +152,13 @@
     -o) chowncmd="$chownprog $2"
         shift;;
 
+    -p) cpprog="$cpprog -p";;
+
     -s) stripcmd=$stripprog;;
 
+    -S) backupsuffix="$2"
+        shift;;
+
     -t)
         is_target_a_directory=always
         dst_arg=$2
@@ -255,6 +275,10 @@
     dstdir=$dst
     test -d "$dstdir"
     dstdir_status=$?
+    # Don't chown directories that already exist.
+    if test $dstdir_status = 0; then
+      chowncmd=""
+    fi
   else
 
     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@@ -301,22 +325,6 @@
   if test $dstdir_status != 0; then
     case $posix_mkdir in
       '')
-        # Create intermediate dirs using mode 755 as modified by the umask.
-        # This is like FreeBSD 'install' as of 1997-10-28.
-        umask=`umask`
-        case $stripcmd.$umask in
-          # Optimize common cases.
-          *[2367][2367]) mkdir_umask=$umask;;
-          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
-          *[0-7])
-            mkdir_umask=`expr $umask + 22 \
-              - $umask % 100 % 40 + $umask % 20 \
-              - $umask % 10 % 4 + $umask % 2
-            `;;
-          *) mkdir_umask=$umask,go-w;;
-        esac
-
         # With -d, create the new directory with the user-specified mode.
         # Otherwise, rely on $mkdir_umask.
         if test -n "$dir_arg"; then
@@ -326,52 +334,49 @@
         fi
 
         posix_mkdir=false
-        case $umask in
-          *[123567][0-7][0-7])
-            # POSIX mkdir -p sets u+wx bits regardless of umask, which
-            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-            ;;
-          *)
-            # Note that $RANDOM variable is not portable (e.g. dash);  Use it
-            # here however when possible just to lower collision chance.
-            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-
-            trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 
2>/dev/null; exit $ret' 0
-
-            # Because "mkdir -p" follows existing symlinks and we likely work
-            # directly in world-writeable /tmp, make sure that the '$tmpdir'
-            # directory is successfully created first before we actually test
-            # 'mkdir -p' feature.
-            if (umask $mkdir_umask &&
-                $mkdirprog $mkdir_mode "$tmpdir" &&
-                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 
2>&1
-            then
-              if test -z "$dir_arg" || {
-                   # Check for POSIX incompatibilities with -m.
-                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-                   # other-writable bit of parent directory when it shouldn't.
-                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
-                   test_tmpdir="$tmpdir/a"
-                   ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
-                   case $ls_ld_tmpdir in
-                     d????-?r-*) different_mode=700;;
-                     d????-?--*) different_mode=755;;
-                     *) false;;
-                   esac &&
-                   $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
-                     ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
-                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-                   }
-                 }
-              then posix_mkdir=:
-              fi
-              rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
-            else
-              # Remove any dirs left behind by ancient mkdir implementations.
-              rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
-            fi
-            trap '' 0;;
-        esac;;
+       # The $RANDOM variable is not portable (e.g., dash).  Use it
+       # here however when possible just to lower collision chance.
+       tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+
+       trap '
+         ret=$?
+         rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
+         exit $ret
+       ' 0
+
+       # Because "mkdir -p" follows existing symlinks and we likely work
+       # directly in world-writeable /tmp, make sure that the '$tmpdir'
+       # directory is successfully created first before we actually test
+       # 'mkdir -p'.
+       if (umask $mkdir_umask &&
+           $mkdirprog $mkdir_mode "$tmpdir" &&
+           exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+       then
+         if test -z "$dir_arg" || {
+              # Check for POSIX incompatibilities with -m.
+              # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+              # other-writable bit of parent directory when it shouldn't.
+              # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+              test_tmpdir="$tmpdir/a"
+              ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+              case $ls_ld_tmpdir in
+                d????-?r-*) different_mode=700;;
+                d????-?--*) different_mode=755;;
+                *) false;;
+              esac &&
+              $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+                ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+                test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+              }
+            }
+         then posix_mkdir=:
+         fi
+         rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+       else
+         # Remove any dirs left behind by ancient mkdir implementations.
+         rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+       fi
+       trap '' 0;;
     esac
 
     if
@@ -382,7 +387,7 @@
     then :
     else
 
-      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # mkdir does not conform to POSIX,
       # or it failed possibly due to a race condition.  Create the
       # directory the slow way, step by step, checking for races as we go.
 
@@ -411,7 +416,7 @@
           prefixes=
         else
           if $posix_mkdir; then
-            (umask=$mkdir_umask &&
+            (umask $mkdir_umask &&
              $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
             # Don't fail if two instances are running concurrently.
             test -d "$prefix" || exit 1
@@ -488,6 +493,13 @@
     then
       rm -f "$dsttmp"
     else
+      # If $backupsuffix is set, and the file being installed
+      # already exists, attempt a backup.  Don't worry if it fails,
+      # e.g., if mv doesn't support -f.
+      if test -n "$backupsuffix" && test -f "$dst"; then
+        $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
+      fi
+
       # Rename the file to the real destination.
       $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
 
@@ -502,9 +514,9 @@
         # file should still install successfully.
         {
           test ! -f "$dst" ||
-          $doit $rmcmd -f "$dst" 2>/dev/null ||
+          $doit $rmcmd "$dst" 2>/dev/null ||
           { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+            { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
           } ||
           { echo "$0: cannot unlink or rename $dst" >&2
             (exit 1); exit 1
diff -Nru pyatspi-2.38.0/config/test-driver pyatspi-2.38.1/config/test-driver
--- pyatspi-2.38.0/config/test-driver   2020-09-12 21:25:56.000000000 +0200
+++ pyatspi-2.38.1/config/test-driver   2021-03-13 22:36:27.000000000 +0100
@@ -42,11 +42,13 @@
 {
   cat <<END
 Usage:
-  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
-              [--expect-failure={yes|no}] [--color-tests={yes|no}]
-              [--enable-hard-errors={yes|no}] [--]
+  test-driver --test-name NAME --log-file PATH --trs-file PATH
+              [--expect-failure {yes|no}] [--color-tests {yes|no}]
+              [--enable-hard-errors {yes|no}] [--]
               TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
+
 The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+See the GNU Automake documentation for information.
 END
 }
 
diff -Nru pyatspi-2.38.0/configure pyatspi-2.38.1/configure
--- pyatspi-2.38.0/configure    2020-09-12 21:25:55.000000000 +0200
+++ pyatspi-2.38.1/configure    2021-03-13 22:36:26.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for pyatspi 2.38.0.
+# Generated by GNU Autoconf 2.69 for pyatspi 2.38.1.
 #
 # Report bugs to <accessibility-at...@lists.linux-foundation.org>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='pyatspi'
 PACKAGE_TARNAME='pyatspi'
-PACKAGE_VERSION='2.38.0'
-PACKAGE_STRING='pyatspi 2.38.0'
+PACKAGE_VERSION='2.38.1'
+PACKAGE_STRING='pyatspi 2.38.1'
 PACKAGE_BUGREPORT='accessibility-at...@lists.linux-foundation.org'
 PACKAGE_URL=''
 
@@ -1384,7 +1384,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 pyatspi 2.38.0 to adapt to many kinds of systems.
+\`configure' configures pyatspi 2.38.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1458,7 +1458,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of pyatspi 2.38.0:";;
+     short | recursive ) echo "Configuration of pyatspi 2.38.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1606,7 +1606,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-pyatspi configure 2.38.0
+pyatspi configure 2.38.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1884,7 +1884,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by pyatspi $as_me 2.38.0, which was
+It was created by pyatspi $as_me 2.38.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2460,12 +2460,7 @@
 am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\    *)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
+  MISSING="\${SHELL} '$am_aux_dir/missing'"
 fi
 # Use eval to expand $SHELL
 if eval "$MISSING --is-lightweight"; then
@@ -2770,7 +2765,7 @@
 
 # Define the identity of the package.
  PACKAGE='pyatspi'
- VERSION='2.38.0'
+ VERSION='2.38.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4042,7 +4037,7 @@
 if ${am_cv_python_version+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  am_cv_python_version=`$PYTHON -c "import sys; 
sys.stdout.write(sys.version[:3])"`
+  am_cv_python_version=`$PYTHON -c "import sys; print('%u.%u' % 
sys.version_info[:2])"`
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
 $as_echo "$am_cv_python_version" >&6; }
@@ -14512,7 +14507,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by pyatspi $as_me 2.38.0, which was
+This file was extended by pyatspi $as_me 2.38.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14578,7 +14573,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-pyatspi config.status 2.38.0
+pyatspi config.status 2.38.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -Nru pyatspi-2.38.0/configure.ac pyatspi-2.38.1/configure.ac
--- pyatspi-2.38.0/configure.ac 2020-09-12 21:25:40.000000000 +0200
+++ pyatspi-2.38.1/configure.ac 2021-03-13 22:36:16.000000000 +0100
@@ -1,4 +1,4 @@
-AC_INIT([pyatspi], [2.38.0], [accessibility-at...@lists.linux-foundation.org])
+AC_INIT([pyatspi], [2.38.1], [accessibility-at...@lists.linux-foundation.org])
 AC_CONFIG_AUX_DIR(config)
 
 # The version of python used is determined by the executable pointed to by the
diff -Nru pyatspi-2.38.0/debian/changelog pyatspi-2.38.1/debian/changelog
--- pyatspi-2.38.0/debian/changelog     2020-09-12 21:49:49.000000000 +0200
+++ pyatspi-2.38.1/debian/changelog     2021-03-13 23:31:55.000000000 +0100
@@ -1,3 +1,13 @@
+pyatspi (2.38.1-1) unstable; urgency=medium
+
+  [ Debian Janitor ]
+  * Update watch file format version to 4.
+
+  [ Samuel Thibault ]
+  * New upstream bugfix release.
+
+ -- Samuel Thibault <sthiba...@debian.org>  Sat, 13 Mar 2021 23:31:55 +0100
+
 pyatspi (2.38.0-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru pyatspi-2.38.0/debian/salsa-ci.yml pyatspi-2.38.1/debian/salsa-ci.yml
--- pyatspi-2.38.0/debian/salsa-ci.yml  1970-01-01 01:00:00.000000000 +0100
+++ pyatspi-2.38.1/debian/salsa-ci.yml  2021-03-13 23:30:42.000000000 +0100
@@ -0,0 +1,6 @@
+---
+include:
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+  - 
https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
+
+# vim: ts=2 sw=2 et sts=2 ft=yaml
diff -Nru pyatspi-2.38.0/debian/watch pyatspi-2.38.1/debian/watch
--- pyatspi-2.38.0/debian/watch 2020-08-09 17:35:32.000000000 +0200
+++ pyatspi-2.38.1/debian/watch 2021-03-13 23:30:42.000000000 +0100
@@ -1,2 +1,2 @@
-version=3
+version=4
 opts=dversionmangle=s/\+dfsg$// 
http://ftp.gnome.org/pub/GNOME/sources/pyatspi/(\d.[0-9]*[02468])/pyatspi-@ANY_VERSION@@ARCHIVE_EXT@
diff -Nru pyatspi-2.38.0/examples/Makefile.in 
pyatspi-2.38.1/examples/Makefile.in
--- pyatspi-2.38.0/examples/Makefile.in 2020-09-12 21:25:55.000000000 +0200
+++ pyatspi-2.38.1/examples/Makefile.in 2021-03-13 22:36:27.000000000 +0100
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2020 Free Software Foundation, Inc.
diff -Nru pyatspi-2.38.0/Makefile.in pyatspi-2.38.1/Makefile.in
--- pyatspi-2.38.0/Makefile.in  2020-09-12 21:25:55.000000000 +0200
+++ pyatspi-2.38.1/Makefile.in  2021-03-13 22:36:27.000000000 +0100
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2020 Free Software Foundation, Inc.
@@ -206,6 +206,8 @@
 GZIP_ENV = --best
 DIST_ARCHIVES = $(distdir).tar.xz
 DIST_TARGETS = dist-xz
+# Exists only to be overridden by the user if desired.
+AM_DISTCHECK_DVI_TARGET = dvi
 distuninstallcheck_listfiles = find . -type f -print
 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -683,7 +685,7 @@
            $(DISTCHECK_CONFIGURE_FLAGS) \
            --srcdir=../.. --prefix="$$dc_install_base" \
          && $(MAKE) $(AM_MAKEFLAGS) \
-         && $(MAKE) $(AM_MAKEFLAGS) dvi \
+         && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
          && $(MAKE) $(AM_MAKEFLAGS) check \
          && $(MAKE) $(AM_MAKEFLAGS) install \
          && $(MAKE) $(AM_MAKEFLAGS) installcheck \
diff -Nru pyatspi-2.38.0/NEWS pyatspi-2.38.1/NEWS
--- pyatspi-2.38.0/NEWS 2020-08-09 00:29:15.000000000 +0200
+++ pyatspi-2.38.1/NEWS 2021-03-13 22:36:07.000000000 +0100
@@ -1,3 +1,8 @@
+What's new in pyatspi 2.38.1:
+
+* Add sanity checks to getPath and findAncestor so that we don't
+  hang if an accessible returns itself as its own parent (#6, #7).
+
 What's new in pyatspi 2.37.90:
 
 * Tests: use libatspi's dbus-gmain implementation, eliminating
diff -Nru pyatspi-2.38.0/pyatspi/Makefile.in pyatspi-2.38.1/pyatspi/Makefile.in
--- pyatspi-2.38.0/pyatspi/Makefile.in  2020-09-12 21:25:55.000000000 +0200
+++ pyatspi-2.38.1/pyatspi/Makefile.in  2021-03-13 22:36:27.000000000 +0100
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2020 Free Software Foundation, Inc.
diff -Nru pyatspi-2.38.0/pyatspi/utils.py pyatspi-2.38.1/pyatspi/utils.py
--- pyatspi-2.38.0/pyatspi/utils.py     2018-08-09 17:07:43.000000000 +0200
+++ pyatspi-2.38.1/pyatspi/utils.py     2021-03-11 00:37:08.000000000 +0100
@@ -296,7 +296,8 @@
         if acc is None:
                 # guard against bad start condition
                 return None
-        while 1:
+        tries = 0
+        while tries < 100:
                 if acc.parent is None:
                         # stop if there is no parent and we haven't returned 
yet
                         return None
@@ -306,6 +307,8 @@
                         pass
                 # move to the parent
                 acc = acc.parent
+                tries = tries + 1
+        return None
 
 def getPath(acc):
         """
@@ -319,7 +322,8 @@
         @raise LookupError: When the application accessible cannot be reached
         """
         path = []
-        while 1:
+        tries = 0
+        while tries < 100:
                 if acc.parent is None:
                         path.reverse()
                         return path
@@ -328,6 +332,8 @@
                 except Exception:
                         raise LookupError
                 acc = acc.parent
+                tries = tries + 1
+        raise LookupError
 
 def pointToList(point):
        return (point.x, point.y)
diff -Nru pyatspi-2.38.0/tests/apps/Makefile.in 
pyatspi-2.38.1/tests/apps/Makefile.in
--- pyatspi-2.38.0/tests/apps/Makefile.in       2020-09-12 21:25:55.000000000 
+0200
+++ pyatspi-2.38.1/tests/apps/Makefile.in       2021-03-13 22:36:27.000000000 
+0100
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2020 Free Software Foundation, Inc.
diff -Nru pyatspi-2.38.0/tests/data/Makefile.in 
pyatspi-2.38.1/tests/data/Makefile.in
--- pyatspi-2.38.0/tests/data/Makefile.in       2020-09-12 21:25:55.000000000 
+0200
+++ pyatspi-2.38.1/tests/data/Makefile.in       2021-03-13 22:36:27.000000000 
+0100
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2020 Free Software Foundation, Inc.
diff -Nru pyatspi-2.38.0/tests/dummyatk/Makefile.in 
pyatspi-2.38.1/tests/dummyatk/Makefile.in
--- pyatspi-2.38.0/tests/dummyatk/Makefile.in   2020-09-12 21:25:56.000000000 
+0200
+++ pyatspi-2.38.1/tests/dummyatk/Makefile.in   2021-03-13 22:36:27.000000000 
+0100
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2020 Free Software Foundation, Inc.
diff -Nru pyatspi-2.38.0/tests/Makefile.in pyatspi-2.38.1/tests/Makefile.in
--- pyatspi-2.38.0/tests/Makefile.in    2020-09-12 21:25:55.000000000 +0200
+++ pyatspi-2.38.1/tests/Makefile.in    2021-03-13 22:36:27.000000000 +0100
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2020 Free Software Foundation, Inc.
diff -Nru pyatspi-2.38.0/tests/pyatspi/Makefile.in 
pyatspi-2.38.1/tests/pyatspi/Makefile.in
--- pyatspi-2.38.0/tests/pyatspi/Makefile.in    2020-09-12 21:25:56.000000000 
+0200
+++ pyatspi-2.38.1/tests/pyatspi/Makefile.in    2021-03-13 22:36:27.000000000 
+0100
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2020 Free Software Foundation, Inc.
@@ -334,6 +334,7 @@
   bases='$(TEST_LOGS)'; \
   bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
   bases=`echo $$bases`
+AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
 RECHECK_LOGS = $(TEST_LOGS)
 TEST_SUITE_LOG = test-suite.log
 TEST_EXTENSIONS = @EXEEXT@ .test
@@ -808,7 +809,7 @@
          test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);               \
        fi;                                                             \
        echo "$${col}$$br$${std}";                                      \
-       echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";   \
+       echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; 
\
        echo "$${col}$$br$${std}";                                      \
        create_testsuite_report --maybe-color;                          \
        echo "$$col$$br$$std";                                          \
diff -Nru pyatspi-2.38.0/tests/pyatspi/pasytest/Makefile.in 
pyatspi-2.38.1/tests/pyatspi/pasytest/Makefile.in
--- pyatspi-2.38.0/tests/pyatspi/pasytest/Makefile.in   2020-09-12 
21:25:56.000000000 +0200
+++ pyatspi-2.38.1/tests/pyatspi/pasytest/Makefile.in   2021-03-13 
22:36:27.000000000 +0100
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2020 Free Software Foundation, Inc.
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/autom4te.cache/output.0 pyatspi-2.38.1/autom4te.cache/output.0
--- pyatspi-2.38.0/autom4te.cache/output.0      2021-03-14 11:52:20.516347992 
+0100
+++ pyatspi-2.38.1/autom4te.cache/output.0      2021-03-14 11:52:32.486301491 
+0100
@@ -1,6 +1,6 @@
 @%:@! /bin/sh
 @%:@ Guess values for system-dependent variables and create Makefiles.
-@%:@ Generated by GNU Autoconf 2.69 for pyatspi 2.38.0.
+@%:@ Generated by GNU Autoconf 2.69 for pyatspi 2.38.1.
 @%:@
 @%:@ Report bugs to <accessibility-at...@lists.linux-foundation.org>.
 @%:@ 
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='pyatspi'
 PACKAGE_TARNAME='pyatspi'
-PACKAGE_VERSION='2.38.0'
-PACKAGE_STRING='pyatspi 2.38.0'
+PACKAGE_VERSION='2.38.1'
+PACKAGE_STRING='pyatspi 2.38.1'
 PACKAGE_BUGREPORT='accessibility-at...@lists.linux-foundation.org'
 PACKAGE_URL=''
 
@@ -1395,7 +1395,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 pyatspi 2.38.0 to adapt to many kinds of systems.
+\`configure' configures pyatspi 2.38.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1470,7 +1470,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of pyatspi 2.38.0:";;
+     short | recursive ) echo "Configuration of pyatspi 2.38.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1618,7 +1618,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-pyatspi configure 2.38.0
+pyatspi configure 2.38.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1896,7 +1896,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by pyatspi $as_me 2.38.0, which was
+It was created by pyatspi $as_me 2.38.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2777,7 +2777,7 @@
 
 # Define the identity of the package.
  PACKAGE='pyatspi'
- VERSION='2.38.0'
+ VERSION='2.38.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14542,7 +14542,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by pyatspi $as_me 2.38.0, which was
+This file was extended by pyatspi $as_me 2.38.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14608,7 +14608,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-pyatspi config.status 2.38.0
+pyatspi config.status 2.38.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/autom4te.cache/output.1 pyatspi-2.38.1/autom4te.cache/output.1
--- pyatspi-2.38.0/autom4te.cache/output.1      2021-03-14 11:52:23.226337468 
+0100
+++ pyatspi-2.38.1/autom4te.cache/output.1      2021-03-14 11:52:35.036291580 
+0100
@@ -1,6 +1,6 @@
 @%:@! /bin/sh
 @%:@ Guess values for system-dependent variables and create Makefiles.
-@%:@ Generated by GNU Autoconf 2.69 for pyatspi 2.38.0.
+@%:@ Generated by GNU Autoconf 2.69 for pyatspi 2.38.1.
 @%:@
 @%:@ Report bugs to <accessibility-at...@lists.linux-foundation.org>.
 @%:@ 
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='pyatspi'
 PACKAGE_TARNAME='pyatspi'
-PACKAGE_VERSION='2.38.0'
-PACKAGE_STRING='pyatspi 2.38.0'
+PACKAGE_VERSION='2.38.1'
+PACKAGE_STRING='pyatspi 2.38.1'
 PACKAGE_BUGREPORT='accessibility-at...@lists.linux-foundation.org'
 PACKAGE_URL=''
 
@@ -1395,7 +1395,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 pyatspi 2.38.0 to adapt to many kinds of systems.
+\`configure' configures pyatspi 2.38.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1470,7 +1470,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of pyatspi 2.38.0:";;
+     short | recursive ) echo "Configuration of pyatspi 2.38.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1618,7 +1618,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-pyatspi configure 2.38.0
+pyatspi configure 2.38.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1896,7 +1896,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by pyatspi $as_me 2.38.0, which was
+It was created by pyatspi $as_me 2.38.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2777,7 +2777,7 @@
 
 # Define the identity of the package.
  PACKAGE='pyatspi'
- VERSION='2.38.0'
+ VERSION='2.38.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14538,7 +14538,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by pyatspi $as_me 2.38.0, which was
+This file was extended by pyatspi $as_me 2.38.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14604,7 +14604,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-pyatspi config.status 2.38.0
+pyatspi config.status 2.38.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/autom4te.cache/requests pyatspi-2.38.1/autom4te.cache/requests
--- pyatspi-2.38.0/autom4te.cache/requests      2021-03-14 11:52:23.236337429 
+0100
+++ pyatspi-2.38.1/autom4te.cache/requests      2021-03-14 11:52:35.046291541 
+0100
@@ -43,197 +43,197 @@
                         'configure.ac'
                       ],
                       {
-                        '_LT_LIBOBJ' => 1,
+                        'AM_AUX_DIR_EXPAND' => 1,
+                        'DBIND_CHECK_ALIGNOF' => 1,
+                        'AM_SANITY_CHECK' => 1,
                         '_LT_AC_SHELL_INIT' => 1,
-                        'AC_LIBTOOL_SETUP' => 1,
-                        'LTDL_CONVENIENCE' => 1,
-                        '_AM_AUTOCONF_VERSION' => 1,
-                        'AC_LIBTOOL_OBJDIR' => 1,
-                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
-                        'AC_LTDL_PREOPEN' => 1,
-                        'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+                        '_LT_AC_PROG_CXXCPP' => 1,
+                        'AC_DISABLE_SHARED' => 1,
+                        '_AM_SUBST_NOTMAKE' => 1,
+                        '_LT_AC_TAGVAR' => 1,
                         'LT_SYS_DLOPEN_DEPLIBS' => 1,
-                        '_LT_AC_LANG_F77' => 1,
-                        'AC_PROG_LD_RELOAD_FLAG' => 1,
-                        'PKG_CHECK_MODULES_STATIC' => 1,
-                        '_LT_PROG_CXX' => 1,
-                        'LT_LANG' => 1,
-                        '_AM_PROG_CC_C_O' => 1,
+                        'AC_DEFUN' => 1,
+                        'AC_PROG_LIBTOOL' => 1,
+                        'AC_ENABLE_FAST_INSTALL' => 1,
                         'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
-                        'AM_ENABLE_SHARED' => 1,
-                        '_LT_AC_LOCK' => 1,
-                        'PKG_CHECK_MODULES' => 1,
-                        'AC_LIBLTDL_CONVENIENCE' => 1,
-                        'AM_PROG_CC_C_O' => 1,
-                        'AM_DEP_TRACK' => 1,
-                        'AC_LTDL_SYSSEARCHPATH' => 1,
-                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        '_LTDL_SETUP' => 1,
-                        'AM_MAKE_INCLUDE' => 1,
-                        'AM_SUBST_NOTMAKE' => 1,
-                        'AU_DEFUN' => 1,
-                        'AC_DISABLE_SHARED' => 1,
+                        'LTVERSION_VERSION' => 1,
+                        '_AM_IF_OPTION' => 1,
+                        '_LT_PROG_LTMAIN' => 1,
+                        'AM_PATH_PYTHON' => 1,
+                        'AM_CHECK_PYMOD' => 1,
                         'AM_RUN_LOG' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        '_LT_AC_LANG_C_CONFIG' => 1,
-                        'AM_PROG_LIBTOOL' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
-                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
-                        'LT_SYS_MODULE_PATH' => 1,
-                        '_LT_AC_SYS_LIBPATH_AIX' => 1,
-                        'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
-                        'AC_ENABLE_STATIC' => 1,
-                        'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
-                        'AC_PATH_TOOL_PREFIX' => 1,
-                        'LT_INIT' => 1,
-                        '_LT_WITH_SYSROOT' => 1,
-                        'AM_AUTOMAKE_VERSION' => 1,
-                        '_LT_AC_TAGVAR' => 1,
-                        'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+                        'AC_LIBTOOL_SETUP' => 1,
+                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
                         'LT_PROG_GO' => 1,
-                        'AC_CONFIG_MACRO_DIR' => 1,
-                        'LT_AC_PROG_RC' => 1,
-                        '_LT_AC_LANG_CXX' => 1,
-                        '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
-                        'AC_LIBLTDL_INSTALLABLE' => 1,
-                        'LT_SYS_DLSEARCH_PATH' => 1,
+                        'LT_SYS_MODULE_EXT' => 1,
                         'AC_LIBTOOL_RC' => 1,
-                        'AC_DISABLE_STATIC' => 1,
-                        'AM_PROG_INSTALL_STRIP' => 1,
-                        '_AM_DEPENDENCIES' => 1,
-                        '_LT_PATH_TOOL_PREFIX' => 1,
-                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
-                        'LT_SYS_SYMBOL_USCORE' => 1,
-                        'AC_LTDL_ENABLE_INSTALL' => 1,
-                        '_LT_AC_LANG_GCJ_CONFIG' => 1,
+                        '_LT_DLL_DEF_P' => 1,
                         'AC_LIBTOOL_DLOPEN_SELF' => 1,
-                        'AC_LIB_LTDL' => 1,
-                        '_AC_PROG_LIBTOOL' => 1,
-                        'AC_PROG_EGREP' => 1,
-                        'AM_PATH_PYTHON' => 1,
-                        'AC_PATH_MAGIC' => 1,
-                        '_LT_CC_BASENAME' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
-                        'AM_CHECK_PYMOD' => 1,
-                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+                        'LT_INIT' => 1,
+                        'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        '_AM_SET_OPTIONS' => 1,
+                        'AC_LIBTOOL_GCJ' => 1,
+                        'AC_LIBTOOL_OBJDIR' => 1,
+                        'AM_SUBST_NOTMAKE' => 1,
+                        'LTSUGAR_VERSION' => 1,
+                        '_LT_PROG_FC' => 1,
+                        'LT_WITH_LTDL' => 1,
                         'AC_LIBTOOL_CONFIG' => 1,
-                        'AC_LIBTOOL_F77' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
-                        'AM_SET_DEPDIR' => 1,
-                        'AM_PYTHON_CHECK_VERSION' => 1,
-                        '_LT_PROG_LTMAIN' => 1,
-                        'include' => 1,
-                        'AM_PROG_NM' => 1,
-                        '_LT_AC_LANG_RC_CONFIG' => 1,
-                        'LT_AC_PROG_EGREP' => 1,
-                        'AC_DEFUN' => 1,
-                        'LT_OUTPUT' => 1,
-                        'AC_PROG_LD' => 1,
-                        'LT_FUNC_ARGZ' => 1,
-                        'AM_MISSING_PROG' => 1,
-                        'AC_LIBTOOL_LINKER_OPTION' => 1,
-                        'LT_PATH_LD' => 1,
-                        'LT_PROG_RC' => 1,
+                        'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+                        'AM_DEP_TRACK' => 1,
                         'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+                        'AM_PYTHON_CHECK_VERSION' => 1,
+                        '_LT_PROG_CXX' => 1,
+                        'AM_SET_LEADING_DOT' => 1,
+                        '_AM_AUTOCONF_VERSION' => 1,
                         'AC_LIBTOOL_CXX' => 1,
-                        'AC_LIBTOOL_DLOPEN' => 1,
-                        'AC_LTDL_DLSYM_USCORE' => 1,
-                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
-                        '_LT_PROG_F77' => 1,
-                        'LTOBSOLETE_VERSION' => 1,
-                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
-                        'AC_LTDL_OBJDIR' => 1,
-                        '_LT_AC_LANG_GCJ' => 1,
-                        'AM_AUX_DIR_EXPAND' => 1,
-                        'LTOPTIONS_VERSION' => 1,
-                        '_AM_CONFIG_MACRO_DIRS' => 1,
-                        'LT_CONFIG_LTDL_DIR' => 1,
-                        'PKG_NOARCH_INSTALLDIR' => 1,
-                        'AM_DISABLE_STATIC' => 1,
-                        'AC_LTDL_SHLIBEXT' => 1,
-                        'AC_LIBTOOL_PICMODE' => 1,
+                        'LT_AC_PROG_EGREP' => 1,
+                        'PKG_PROG_PKG_CONFIG' => 1,
+                        'AC_PATH_TOOL_PREFIX' => 1,
                         'AC_DEPLIBS_CHECK_METHOD' => 1,
-                        '_LT_AC_LANG_CXX_CONFIG' => 1,
-                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
-                        'LT_CMD_MAX_LEN' => 1,
-                        'LTDL_INIT' => 1,
-                        'AC_DEFUN_ONCE' => 1,
-                        '_LT_COMPILER_OPTION' => 1,
-                        'PKG_CHECK_VAR' => 1,
-                        '_LT_AC_SYS_COMPILER' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        '_LT_LINKER_OPTION' => 1,
+                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+                        'AM_PROG_LIBTOOL' => 1,
+                        'AC_CONFIG_MACRO_DIR' => 1,
+                        'AC_LIBTOOL_WIN32_DLL' => 1,
                         'AM_MISSING_HAS_RUN' => 1,
-                        '_AM_SET_OPTION' => 1,
-                        '_LT_AC_CHECK_DLFCN' => 1,
-                        'LT_PATH_NM' => 1,
+                        'AM_DISABLE_SHARED' => 1,
+                        'LT_LIB_DLLOAD' => 1,
+                        '_LT_AC_SYS_COMPILER' => 1,
                         'AC_PROG_LD_GNU' => 1,
                         '_LT_COMPILER_BOILERPLATE' => 1,
-                        'LTVERSION_VERSION' => 1,
-                        'AC_PROG_NM' => 1,
-                        'LT_LIB_DLLOAD' => 1,
-                        'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
-                        'PKG_PROG_PKG_CONFIG' => 1,
-                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
-                        '_LT_REQUIRED_DARWIN_CHECKS' => 1,
-                        '_LT_PROG_FC' => 1,
+                        'AM_PROG_CC_C_O' => 1,
+                        '_AM_MANGLE_OPTION' => 1,
+                        '_AC_PROG_LIBTOOL' => 1,
                         'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
-                        'LT_PROG_GCJ' => 1,
-                        'LTDL_INSTALLABLE' => 1,
-                        'LTSUGAR_VERSION' => 1,
-                        '_AM_IF_OPTION' => 1,
-                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
-                        'DBIND_CHECK_ALIGNOF' => 1,
-                        'AM_PROG_LD' => 1,
+                        '_LT_LIBOBJ' => 1,
+                        '_LT_LINKER_OPTION' => 1,
+                        'AC_PROG_EGREP' => 1,
+                        'm4_pattern_allow' => 1,
+                        '_AM_CONFIG_MACRO_DIRS' => 1,
+                        'AC_LIBTOOL_COMPILER_OPTION' => 1,
+                        '_LT_AC_LOCK' => 1,
+                        'LT_SYS_MODULE_PATH' => 1,
+                        'AC_LTDL_SYMBOL_USCORE' => 1,
+                        'PKG_CHECK_MODULES' => 1,
                         '_LT_LINKER_BOILERPLATE' => 1,
+                        '_LT_WITH_SYSROOT' => 1,
+                        'AC_DEFUN_ONCE' => 1,
+                        '_LT_REQUIRED_DARWIN_CHECKS' => 1,
+                        'LT_AC_PROG_GCJ' => 1,
+                        '_LT_PROG_F77' => 1,
+                        'AM_AUTOMAKE_VERSION' => 1,
+                        '_LTDL_SETUP' => 1,
+                        'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
+                        'LT_AC_PROG_RC' => 1,
+                        'AC_LTDL_PREOPEN' => 1,
+                        'AC_LIBLTDL_INSTALLABLE' => 1,
+                        '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
+                        'AM_PROG_INSTALL_STRIP' => 1,
+                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+                        'AC_PROG_LD_RELOAD_FLAG' => 1,
                         'LT_AC_PROG_SED' => 1,
-                        'PKG_CHECK_EXISTS' => 1,
-                        'LT_SYS_MODULE_EXT' => 1,
-                        'AC_LIBTOOL_COMPILER_OPTION' => 1,
-                        'LT_WITH_LTDL' => 1,
-                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
-                        '_AM_SET_OPTIONS' => 1,
+                        'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+                        'LT_OUTPUT' => 1,
+                        '_AM_DEPENDENCIES' => 1,
+                        'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
+                        'LTDL_INIT' => 1,
+                        'LT_LIB_M' => 1,
+                        'AC_LTDL_DLSYM_USCORE' => 1,
+                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+                        'AM_MISSING_PROG' => 1,
+                        '_AM_PROG_CC_C_O' => 1,
                         '_LT_AC_LANG_F77_CONFIG' => 1,
-                        'AC_LTDL_SYMBOL_USCORE' => 1,
-                        'AC_LTDL_DLLIB' => 1,
+                        'AM_PROG_INSTALL_SH' => 1,
+                        'LT_PATH_LD' => 1,
+                        'AM_DISABLE_STATIC' => 1,
+                        'AC_LIBLTDL_CONVENIENCE' => 1,
+                        'AC_PROG_NM' => 1,
+                        'AM_ENABLE_SHARED' => 1,
+                        'AC_LIBTOOL_DLOPEN' => 1,
+                        'LTDL_INSTALLABLE' => 1,
+                        '_LT_AC_LANG_GCJ' => 1,
+                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+                        '_LT_AC_LANG_CXX' => 1,
+                        'PKG_NOARCH_INSTALLDIR' => 1,
                         '_LT_AC_FILE_LTDLL_C' => 1,
+                        'AC_LTDL_OBJDIR' => 1,
+                        'AC_LIBTOOL_FC' => 1,
+                        'AM_PROG_NM' => 1,
+                        'AC_ENABLE_SHARED' => 1,
+                        'PKG_CHECK_MODULES_STATIC' => 1,
                         'AM_SILENT_RULES' => 1,
+                        'AC_DISABLE_STATIC' => 1,
+                        'AC_LTDL_DLLIB' => 1,
+                        'AC_WITH_LTDL' => 1,
+                        'LT_SYS_DLOPEN_SELF' => 1,
+                        'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
+                        '_LT_PROG_ECHO_BACKSLASH' => 1,
+                        'AC_LIBTOOL_F77' => 1,
+                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+                        '_AM_PROG_TAR' => 1,
+                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
                         'm4_pattern_forbid' => 1,
-                        '_m4_warn' => 1,
+                        'AM_INIT_AUTOMAKE' => 1,
+                        'AC_DISABLE_FAST_INSTALL' => 1,
+                        'LT_SYS_SYMBOL_USCORE' => 1,
                         'm4_include' => 1,
-                        'AC_ENABLE_FAST_INSTALL' => 1,
-                        'AC_ENABLE_SHARED' => 1,
+                        '_LT_AC_SYS_LIBPATH_AIX' => 1,
+                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+                        '_LT_AC_TAGCONFIG' => 1,
+                        'AC_LTDL_ENABLE_INSTALL' => 1,
+                        '_AM_SET_OPTION' => 1,
+                        'LTDL_CONVENIENCE' => 1,
+                        '_LT_AC_LANG_RC_CONFIG' => 1,
+                        'AM_SET_DEPDIR' => 1,
+                        'PKG_CHECK_EXISTS' => 1,
+                        '_LT_AC_CHECK_DLFCN' => 1,
+                        '_LT_COMPILER_OPTION' => 1,
+                        'LT_SYS_DLSEARCH_PATH' => 1,
+                        '_m4_warn' => 1,
+                        'AC_PROG_LD' => 1,
+                        'AC_LTDL_SHLIBEXT' => 1,
+                        '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
+                        'LT_PATH_NM' => 1,
+                        'AC_PATH_MAGIC' => 1,
+                        'LT_FUNC_DLSYM_USCORE' => 1,
                         'PKG_INSTALLDIR' => 1,
-                        'LT_AC_PROG_GCJ' => 1,
+                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+                        'LT_SUPPORTED_TAG' => 1,
+                        'AC_LIB_LTDL' => 1,
+                        'AC_ENABLE_STATIC' => 1,
+                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+                        'AM_MAKE_INCLUDE' => 1,
+                        'LTOBSOLETE_VERSION' => 1,
+                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
+                        'include' => 1,
                         'AC_LTDL_SHLIBPATH' => 1,
-                        'AC_LIBTOOL_GCJ' => 1,
-                        'AM_SANITY_CHECK' => 1,
-                        'AC_LIBTOOL_FC' => 1,
-                        'AM_DISABLE_SHARED' => 1,
-                        'AM_SET_LEADING_DOT' => 1,
-                        'm4_pattern_allow' => 1,
-                        '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
-                        'AM_PROG_INSTALL_SH' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
-                        '_AM_MANGLE_OPTION' => 1,
-                        'LT_LIB_M' => 1,
-                        '_LT_AC_PROG_CXXCPP' => 1,
-                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
-                        'AC_PROG_LIBTOOL' => 1,
-                        'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
-                        '_LT_PROG_ECHO_BACKSLASH' => 1,
-                        'AC_DISABLE_FAST_INSTALL' => 1,
-                        'AC_CHECK_LIBM' => 1,
-                        '_LT_DLL_DEF_P' => 1,
-                        '_AM_PROG_TAR' => 1,
+                        '_LT_CC_BASENAME' => 1,
+                        'AC_LIBTOOL_PICMODE' => 1,
                         'AM_ENABLE_STATIC' => 1,
-                        'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
-                        'LT_SYS_DLOPEN_SELF' => 1,
-                        'LT_FUNC_DLSYM_USCORE' => 1,
-                        'AC_LIBTOOL_WIN32_DLL' => 1,
-                        'AC_WITH_LTDL' => 1
+                        'AC_LIBTOOL_LINKER_OPTION' => 1,
+                        '_LT_AC_LANG_GCJ_CONFIG' => 1,
+                        '_LT_AC_LANG_C_CONFIG' => 1,
+                        '_LT_AC_LANG_CXX_CONFIG' => 1,
+                        'LTOPTIONS_VERSION' => 1,
+                        'LT_LANG' => 1,
+                        'PKG_CHECK_VAR' => 1,
+                        'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
+                        'AU_DEFUN' => 1,
+                        'LT_FUNC_ARGZ' => 1,
+                        'LT_PROG_RC' => 1,
+                        'AC_CHECK_LIBM' => 1,
+                        'LT_CMD_MAX_LEN' => 1,
+                        '_LT_PATH_TOOL_PREFIX' => 1,
+                        'LT_PROG_GCJ' => 1,
+                        '_LT_AC_LANG_F77' => 1,
+                        'LT_CONFIG_LTDL_DIR' => 1,
+                        'AC_LTDL_SYSSEARCHPATH' => 1,
+                        'AM_PROG_LD' => 1
                       }
                     ], 'Autom4te::Request' ),
              bless( [
@@ -248,66 +248,66 @@
                         'configure.ac'
                       ],
                       {
-                        'AC_PROG_LIBTOOL' => 1,
-                        'AM_PROG_LIBTOOL' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
-                        'AM_CONDITIONAL' => 1,
+                        'm4_include' => 1,
                         'AM_NLS' => 1,
-                        'AC_CONFIG_LIBOBJ_DIR' => 1,
-                        'AC_REQUIRE_AUX_FILE' => 1,
-                        'AC_INIT' => 1,
-                        'AC_CONFIG_LINKS' => 1,
-                        'AC_CONFIG_SUBDIRS' => 1,
-                        'AC_CANONICAL_BUILD' => 1,
-                        'AC_FC_SRCEXT' => 1,
                         'AC_CONFIG_AUX_DIR' => 1,
-                        'AM_PROG_FC_C_O' => 1,
-                        'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
-                        '_AM_MAKEFILE_INCLUDE' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
-                        'AM_PROG_CC_C_O' => 1,
+                        '_LT_AC_TAGCONFIG' => 1,
+                        'AC_CANONICAL_TARGET' => 1,
                         'AM_POT_TOOLS' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
-                        '_AM_COND_ELSE' => 1,
-                        'AC_CANONICAL_SYSTEM' => 1,
-                        'AM_GNU_GETTEXT' => 1,
-                        'AH_OUTPUT' => 1,
-                        'include' => 1,
-                        'AM_PROG_AR' => 1,
-                        'm4_pattern_allow' => 1,
-                        'AC_LIBSOURCE' => 1,
-                        'sinclude' => 1,
-                        'AC_CONFIG_FILES' => 1,
-                        'AC_SUBST' => 1,
-                        '_m4_warn' => 1,
-                        'AM_PROG_CXX_C_O' => 1,
-                        'm4_pattern_forbid' => 1,
-                        'AM_SILENT_RULES' => 1,
+                        'AM_XGETTEXT_OPTION' => 1,
+                        'AM_INIT_AUTOMAKE' => 1,
                         'AM_MAKEFILE_INCLUDE' => 1,
-                        'AC_FC_PP_SRCEXT' => 1,
-                        '_AM_COND_ENDIF' => 1,
-                        'AC_CANONICAL_HOST' => 1,
-                        'AM_PROG_MOC' => 1,
-                        'm4_include' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        'AM_ENABLE_MULTILIB' => 1,
-                        'm4_sinclude' => 1,
+                        'AC_DEFINE_TRACE_LITERAL' => 1,
+                        'AM_PROG_CXX_C_O' => 1,
+                        'AC_LIBSOURCE' => 1,
+                        'AM_PROG_LIBTOOL' => 1,
                         'LT_CONFIG_LTDL_DIR' => 1,
                         'AC_FC_PP_DEFINE' => 1,
+                        'AM_GNU_GETTEXT' => 1,
                         'AM_PATH_GUILE' => 1,
-                        'AC_CANONICAL_TARGET' => 1,
-                        'AM_PROG_F77_C_O' => 1,
-                        'AM_AUTOMAKE_VERSION' => 1,
+                        'AC_FC_SRCEXT' => 1,
+                        'AC_CONFIG_SUBDIRS' => 1,
+                        'AC_CONFIG_LINKS' => 1,
+                        'm4_sinclude' => 1,
+                        '_AM_MAKEFILE_INCLUDE' => 1,
+                        'AM_PROG_MOC' => 1,
+                        'AM_SILENT_RULES' => 1,
+                        'm4_pattern_forbid' => 1,
+                        'AC_CONFIG_FILES' => 1,
+                        '_AM_COND_ENDIF' => 1,
                         'AC_FC_FREEFORM' => 1,
+                        'AM_ENABLE_MULTILIB' => 1,
+                        '_AM_COND_IF' => 1,
+                        'AH_OUTPUT' => 1,
+                        'AM_AUTOMAKE_VERSION' => 1,
+                        'AC_SUBST' => 1,
+                        'LT_SUPPORTED_TAG' => 1,
+                        'AC_CANONICAL_HOST' => 1,
                         'AM_MAINTAINER_MODE' => 1,
                         'AC_SUBST_TRACE' => 1,
-                        'LT_INIT' => 1,
+                        'm4_pattern_allow' => 1,
+                        'AM_CONDITIONAL' => 1,
                         'AM_PROG_MKDIR_P' => 1,
+                        'AC_REQUIRE_AUX_FILE' => 1,
+                        'include' => 1,
+                        'AM_PROG_AR' => 1,
+                        'LT_INIT' => 1,
+                        'AC_INIT' => 1,
+                        'sinclude' => 1,
+                        'AM_PROG_CC_C_O' => 1,
+                        '_m4_warn' => 1,
+                        'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+                        'AM_PROG_F77_C_O' => 1,
+                        'AM_PROG_FC_C_O' => 1,
+                        'AC_FC_PP_SRCEXT' => 1,
+                        'AC_CANONICAL_SYSTEM' => 1,
                         'AC_CONFIG_HEADERS' => 1,
-                        'AM_XGETTEXT_OPTION' => 1,
-                        'AC_DEFINE_TRACE_LITERAL' => 1,
-                        '_AM_COND_IF' => 1,
-                        'AM_EXTRA_RECURSIVE_TARGETS' => 1
+                        'AC_CANONICAL_BUILD' => 1,
+                        'AC_PROG_LIBTOOL' => 1,
+                        'AM_EXTRA_RECURSIVE_TARGETS' => 1,
+                        '_AM_COND_ELSE' => 1,
+                        '_AM_SUBST_NOTMAKE' => 1,
+                        'AC_CONFIG_LIBOBJ_DIR' => 1
                       }
                     ], 'Autom4te::Request' )
            );
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/autom4te.cache/traces.1 pyatspi-2.38.1/autom4te.cache/traces.1
--- pyatspi-2.38.0/autom4te.cache/traces.1      2021-03-14 11:52:23.226337468 
+0100
+++ pyatspi-2.38.1/autom4te.cache/traces.1      2021-03-14 11:52:35.036291580 
+0100
@@ -2,7 +2,7 @@
 m4trace:aclocal.m4:10011: -1- AC_SUBST_TRACE([am__quote])
 m4trace:aclocal.m4:10011: -1- m4_pattern_allow([^am__quote$])
 m4trace:aclocal.m4:10703: -1- m4_include([acinclude.m4])
-m4trace:configure.ac:1: -1- AC_INIT([pyatspi], [2.38.0], 
[accessibility-at...@lists.linux-foundation.org])
+m4trace:configure.ac:1: -1- AC_INIT([pyatspi], [2.38.1], 
[accessibility-at...@lists.linux-foundation.org])
 m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?A[CHUM]_])
 m4trace:configure.ac:1: -1- m4_pattern_forbid([_AC_])
 m4trace:configure.ac:1: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS 
directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/configure pyatspi-2.38.1/configure
--- pyatspi-2.38.0/configure    2021-03-14 11:52:22.566340032 +0100
+++ pyatspi-2.38.1/configure    2021-03-14 11:52:34.436293912 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for pyatspi 2.38.0.
+# Generated by GNU Autoconf 2.69 for pyatspi 2.38.1.
 #
 # Report bugs to <accessibility-at...@lists.linux-foundation.org>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='pyatspi'
 PACKAGE_TARNAME='pyatspi'
-PACKAGE_VERSION='2.38.0'
-PACKAGE_STRING='pyatspi 2.38.0'
+PACKAGE_VERSION='2.38.1'
+PACKAGE_STRING='pyatspi 2.38.1'
 PACKAGE_BUGREPORT='accessibility-at...@lists.linux-foundation.org'
 PACKAGE_URL=''
 
@@ -1395,7 +1395,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 pyatspi 2.38.0 to adapt to many kinds of systems.
+\`configure' configures pyatspi 2.38.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1470,7 +1470,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of pyatspi 2.38.0:";;
+     short | recursive ) echo "Configuration of pyatspi 2.38.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1618,7 +1618,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-pyatspi configure 2.38.0
+pyatspi configure 2.38.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1896,7 +1896,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by pyatspi $as_me 2.38.0, which was
+It was created by pyatspi $as_me 2.38.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2777,7 +2777,7 @@
 
 # Define the identity of the package.
  PACKAGE='pyatspi'
- VERSION='2.38.0'
+ VERSION='2.38.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14538,7 +14538,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by pyatspi $as_me 2.38.0, which was
+This file was extended by pyatspi $as_me 2.38.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14604,7 +14604,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-pyatspi config.status 2.38.0
+pyatspi config.status 2.38.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/configure.ac pyatspi-2.38.1/configure.ac
--- pyatspi-2.38.0/configure.ac 2020-09-12 21:25:40.000000000 +0200
+++ pyatspi-2.38.1/configure.ac 2021-03-13 22:36:16.000000000 +0100
@@ -1,4 +1,4 @@
-AC_INIT([pyatspi], [2.38.0], [accessibility-at...@lists.linux-foundation.org])
+AC_INIT([pyatspi], [2.38.1], [accessibility-at...@lists.linux-foundation.org])
 AC_CONFIG_AUX_DIR(config)
 
 # The version of python used is determined by the executable pointed to by the
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/debian/autoreconf.after pyatspi-2.38.1/debian/autoreconf.after
--- pyatspi-2.38.0/debian/autoreconf.after      2021-03-14 11:52:23.436336652 
+0100
+++ pyatspi-2.38.1/debian/autoreconf.after      2021-03-14 11:52:35.246290763 
+0100
@@ -1,13 +1,13 @@
 24d370de87ecf2102abdd7a708d5b145  ./Makefile.in
 dcb4b49720576daca49ac32f643d7c1b  ./config.h.in
 dcb4b49720576daca49ac32f643d7c1b  ./config.h.in~
-73b3aa49b0c54c9207b30728e091ff54  ./configure
+6c9502f7c9205b7adfd4a3a316bee98a  ./configure
 116ec3621a1ac9633edff4ac35016daa  ./aclocal.m4
-20090046a85461e4744e7c56e5dd38c9  ./autom4te.cache/output.1
-f491bf210906e42e6c7ed4f0dda3f39a  ./autom4te.cache/traces.1
-a16fb8162a870237653ea639a36a4a1d  ./autom4te.cache/output.0
+870d9f5699a5612a7c8c0fdcfe20ce3e  ./autom4te.cache/output.1
+72f0032c05ac39a5267171127de59e80  ./autom4te.cache/traces.1
+8dd8bd03cd5daaa3197f391bd6ac7645  ./autom4te.cache/output.0
 b02da45db2e470724ad3daac5061d082  ./autom4te.cache/traces.0
-2f7a8d57f16f46170cd0850d88c2813e  ./autom4te.cache/requests
+cdcad64e35a3b461522d985a7ac73e6a  ./autom4te.cache/requests
 d41d8cd98f00b204e9800998ecf8427e  ./.pc/applied-patches
 e8a673d5d4d69a5fd11c880fd4c3c481  ./.pc/.quilt_series
 266f9759f56277b2751b24d1eb17c50f  ./.pc/.quilt_patches
@@ -87,7 +87,7 @@
 77781dd47f6ba4185277c07a2d581839  ./examples/Makefile.am
 e800bbe5e213a714ed784c38b212e8fb  ./pyatspi/Makefile.in
 9b190c2cb0b55d8479640ce223012278  ./pyatspi/value.py
-e75aa932c3662ec25de8bbe267922b84  ./pyatspi/utils.py
+dfbf025907371670e9eec2530b17509f  ./pyatspi/utils.py
 edc3176fd0fc2f5a591ba020063c4eff  ./pyatspi/text.py
 46552c6c80f647aba308c27f9bb9b822  ./pyatspi/tablecell.py
 bee3c3ed8d06e0cd7a7b3576a0849d35  ./pyatspi/table.py
@@ -114,11 +114,11 @@
 1ab8fb166b97f66a55415795158b5105  ./pyatspi2.doap
 751419260aa954499f7abaabaa882bbe  ./COPYING.GPL
 78df5646d32d3d4e4fb55caf79d76ac3  ./README
-405eb34eb609cd5009e73da5c43593d6  ./NEWS
+0ee091730186447ec3857ee5501b9997  ./NEWS
 6ed8fe83f9ceacb099b3e117f2396f78  ./INSTALL
 db29218e6ba3794c56df7d4987dc7e4d  ./COPYING
 7b9d255ccc33e5342b225879169ecf80  ./AUTHORS
-fb7aef6d1f8e9a594487696bc4024827  ./configure.ac
+01b5cd10f8cf2f0490d86380c62d7ee0  ./configure.ac
 4f1b04a00745276a821212ffae656fbd  ./acinclude.m4
 81bbb4014b4cdfc481bb4b9fc21b6c15  ./Makefile.am
 60b79781f384a7b6fb4900eb257bc6c6  ./config/test-driver
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/debian/autoreconf.before pyatspi-2.38.1/debian/autoreconf.before
--- pyatspi-2.38.0/debian/autoreconf.before     2021-03-14 11:52:18.016357700 
+0100
+++ pyatspi-2.38.1/debian/autoreconf.before     2021-03-14 11:52:30.096310779 
+0100
@@ -6,7 +6,7 @@
 70f3dcf2c2d7f3002caf008db8a1c81e  ./tests/pyatspi/pasytest/__init__.py
 0bc3e907987ac4dff3d56b4367f39420  ./tests/pyatspi/pasytest/Pasy.py
 f686732c5b1aafa61b09adfa4f464edc  ./tests/pyatspi/pasytest/Events.py
-50519228185f3d26bbef3004a6cc0755  ./tests/pyatspi/pasytest/Makefile.in
+7484f4ed0bd000b17276349d374469b1  ./tests/pyatspi/pasytest/Makefile.in
 c61a79f34b8873298e37603220b690c1  ./tests/pyatspi/pasytest/Makefile.am
 1013025d9f9ec41b3f34e670b45ad394  ./tests/pyatspi/testrunner
 13474d0ce71e9455b9cdd8a684e32a13  ./tests/pyatspi/runtests.sh
@@ -19,12 +19,12 @@
 2fc6784b32705f7df567bdb1184f3eba  ./tests/pyatspi/actiontest.py
 30959ab9b70f80a957828c43142d72dd  ./tests/pyatspi/accessibletest.py
 30057d7741802e18946c58c9e40ff366  ./tests/pyatspi/testrunner.in
-fc5589377e3063d48e1c3e104281c940  ./tests/pyatspi/Makefile.in
+205c6ecb751f64c97db681bde4e68482  ./tests/pyatspi/Makefile.in
 bd2dc094fdc890ad6b97e7468853b42c  ./tests/pyatspi/Makefile.am
 0b6430e4543c0cb6acfca1e42ff54f84  
./tests/data/accessible-test-results-stable.xml
 4f44b19c94f1b39ea0c5b48dfd1a3685  ./tests/data/accessible-test-results.xml
 b28dd53fe836a0b38f808d92116c8f2b  ./tests/data/accessible-test.xml
-018b71ce63b20d87e9471fce33147c64  ./tests/data/Makefile.in
+1a8bfd290844b8f2568cd11c5148220c  ./tests/data/Makefile.in
 ed7a1c2603ccaab70a8f6be04a80df23  ./tests/data/Makefile.am
 170bac700e886e230e703b7a630f4bb8  ./tests/apps/test-application.c
 5e021fa36e239c92b24964bb1ee8615f  ./tests/apps/relation-app.c
@@ -34,7 +34,7 @@
 0acc593042aad65b726db77556288fb7  ./tests/apps/atk-object-xml-loader.h
 91a26a67326ce77aa85ce0ee600bced3  ./tests/apps/atk-object-xml-loader.c
 4bf6315f47bb5f2a5961b4641e7e72d7  ./tests/apps/accessible-app.c
-57769cb75f7dc7d096ff7c68bc460470  ./tests/apps/Makefile.in
+f541cbf3049696a70f33821c01c00b92  ./tests/apps/Makefile.in
 5f4fbf972732a0db0282597e2c0122f0  ./tests/apps/Makefile.am
 c0cd7131c00cdd1e0bd8548754457920  ./tests/dummyatk/user_marshal.h
 471702bcfdcb2e4928d79d642e589eb3  ./tests/dummyatk/user_marshal.c
@@ -65,19 +65,19 @@
 9759dae7c872519f04df1238202f4e5c  ./tests/dummyatk/my-atk-component.c
 9f502ad6c6bf3206c3cb9c2fc59573a2  ./tests/dummyatk/my-atk-action.h
 fb5718f4f06168077733418ff94c8cfc  ./tests/dummyatk/my-atk-action.c
-55a8dee30869dca4a4f5c03f9b0ddc83  ./tests/dummyatk/Makefile.in
+56b1cf7c7e49e39392852268ff641911  ./tests/dummyatk/Makefile.in
 5761f0a9eddb5e028e8dacfafd683928  ./tests/dummyatk/Makefile.am
-822ff6baed15824567d8ead8ac867b3d  ./tests/Makefile.in
+47b8dedca26e1f668aabe2fbf2992d9c  ./tests/Makefile.in
 8ace3525d54716a8bd817724c04914e9  ./tests/Makefile.am
 6489c8f0daec105670e6fe6a3d603fd0  ./examples/keypress.py
 34cd0b2674ad8c5daf79a89e7cc2201e  ./examples/runningappcheck.py
 437c5a8eee167053e168a7ca7cedbe63  ./examples/caret.py
 a9397e3483f10c71b187db63b9f47e1b  ./examples/magFocusTracker.py
-235de4135f6cb25ce6fa406a4dbbe8d5  ./examples/Makefile.in
+90766c3738e5493cf6bba439e1f03b4c  ./examples/Makefile.in
 77781dd47f6ba4185277c07a2d581839  ./examples/Makefile.am
-d47f6bba51cb30fa08c1c38af12e1597  ./pyatspi/Makefile.in
+1e3b91981f84c581fe2e630a99f6671a  ./pyatspi/Makefile.in
 9b190c2cb0b55d8479640ce223012278  ./pyatspi/value.py
-e75aa932c3662ec25de8bbe267922b84  ./pyatspi/utils.py
+dfbf025907371670e9eec2530b17509f  ./pyatspi/utils.py
 edc3176fd0fc2f5a591ba020063c4eff  ./pyatspi/text.py
 46552c6c80f647aba308c27f9bb9b822  ./pyatspi/tablecell.py
 bee3c3ed8d06e0cd7a7b3576a0849d35  ./pyatspi/table.py
@@ -104,23 +104,23 @@
 1ab8fb166b97f66a55415795158b5105  ./pyatspi2.doap
 751419260aa954499f7abaabaa882bbe  ./COPYING.GPL
 78df5646d32d3d4e4fb55caf79d76ac3  ./README
-405eb34eb609cd5009e73da5c43593d6  ./NEWS
+0ee091730186447ec3857ee5501b9997  ./NEWS
 6ed8fe83f9ceacb099b3e117f2396f78  ./INSTALL
 db29218e6ba3794c56df7d4987dc7e4d  ./COPYING
 7b9d255ccc33e5342b225879169ecf80  ./AUTHORS
 dcb4b49720576daca49ac32f643d7c1b  ./config.h.in
-e7d7ff3078556631601d2e0b30e61afa  ./Makefile.in
-801bdcba481fc68b5691595e1814edc4  ./aclocal.m4
-fb7aef6d1f8e9a594487696bc4024827  ./configure.ac
+e4c94dd67c357d8a78b8e667565ab7b6  ./Makefile.in
+4e9eefc710829b254d0938e143b74e2b  ./aclocal.m4
+01b5cd10f8cf2f0490d86380c62d7ee0  ./configure.ac
 4f1b04a00745276a821212ffae656fbd  ./acinclude.m4
-c1b9168d5519586e4938b443a93a7b76  ./configure
+4c7400340e4d43fab8b1ba45525680f6  ./configure
 81bbb4014b4cdfc481bb4b9fc21b6c15  ./Makefile.am
-57395007d67444e47e6606e82430f1bb  ./config/test-driver
+60b686b615a4895635192a4eab33192b  ./config/test-driver
 91b287ce6c245893a75bd18dc53fb07a  ./config/depcomp
 8b4afe700a28d450add67fc5097b3f06  ./config/py-compile
 53e627f03d2b741a129da926c51ca8aa  ./config/missing
 df0f18e33ba4242ff9dff54fece82d8c  ./config/ltmain.sh
-d651f428c7739cf424b31c05dfdbed04  ./config/install-sh
-daae3ae42dd020177da31958765f7732  ./config/config.sub
-bfb5772552b42c39f221d0f2309e1c07  ./config/config.guess
+b090c5891571c820e91d345a9551af44  ./config/install-sh
+7efa0e8e26af69d26cb455993dc6587a  ./config/config.sub
+032c5e44d2cb2ccc75858050010152f7  ./config/config.guess
 db0112ab22825d7d6cb9257d34577cfc  ./config/compile
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/debian/changelog pyatspi-2.38.1/debian/changelog
--- pyatspi-2.38.0/debian/changelog     2020-09-12 21:49:49.000000000 +0200
+++ pyatspi-2.38.1/debian/changelog     2021-03-13 23:31:55.000000000 +0100
@@ -1,3 +1,13 @@
+pyatspi (2.38.1-1) unstable; urgency=medium
+
+  [ Debian Janitor ]
+  * Update watch file format version to 4.
+
+  [ Samuel Thibault ]
+  * New upstream bugfix release.
+
+ -- Samuel Thibault <sthiba...@debian.org>  Sat, 13 Mar 2021 23:31:55 +0100
+
 pyatspi (2.38.0-1) unstable; urgency=medium
 
   * New upstream release.
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/debian/files pyatspi-2.38.1/debian/files
--- pyatspi-2.38.0/debian/files 2021-03-14 11:52:00.456425837 +0100
+++ pyatspi-2.38.1/debian/files 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-pyatspi_2.38.0-1_source.buildinfo python optional
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/debian/salsa-ci.yml pyatspi-2.38.1/debian/salsa-ci.yml
--- pyatspi-2.38.0/debian/salsa-ci.yml  1970-01-01 01:00:00.000000000 +0100
+++ pyatspi-2.38.1/debian/salsa-ci.yml  2021-03-13 23:30:42.000000000 +0100
@@ -0,0 +1,6 @@
+---
+include:
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+  - 
https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
+
+# vim: ts=2 sw=2 et sts=2 ft=yaml
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/debian/watch pyatspi-2.38.1/debian/watch
--- pyatspi-2.38.0/debian/watch 2020-08-09 17:35:32.000000000 +0200
+++ pyatspi-2.38.1/debian/watch 2021-03-13 23:30:42.000000000 +0100
@@ -1,2 +1,2 @@
-version=3
+version=4
 opts=dversionmangle=s/\+dfsg$// 
http://ftp.gnome.org/pub/GNOME/sources/pyatspi/(\d.[0-9]*[02468])/pyatspi-@ANY_VERSION@@ARCHIVE_EXT@
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/NEWS pyatspi-2.38.1/NEWS
--- pyatspi-2.38.0/NEWS 2020-08-09 00:29:15.000000000 +0200
+++ pyatspi-2.38.1/NEWS 2021-03-13 22:36:07.000000000 +0100
@@ -1,3 +1,8 @@
+What's new in pyatspi 2.38.1:
+
+* Add sanity checks to getPath and findAncestor so that we don't
+  hang if an accessible returns itself as its own parent (#6, #7).
+
 What's new in pyatspi 2.37.90:
 
 * Tests: use libatspi's dbus-gmain implementation, eliminating
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/pyatspi/utils.py pyatspi-2.38.1/pyatspi/utils.py
--- pyatspi-2.38.0/pyatspi/utils.py     2018-08-09 17:07:43.000000000 +0200
+++ pyatspi-2.38.1/pyatspi/utils.py     2021-03-11 00:37:08.000000000 +0100
@@ -296,7 +296,8 @@
         if acc is None:
                 # guard against bad start condition
                 return None
-        while 1:
+        tries = 0
+        while tries < 100:
                 if acc.parent is None:
                         # stop if there is no parent and we haven't returned 
yet
                         return None
@@ -306,6 +307,8 @@
                         pass
                 # move to the parent
                 acc = acc.parent
+                tries = tries + 1
+        return None
 
 def getPath(acc):
         """
@@ -319,7 +322,8 @@
         @raise LookupError: When the application accessible cannot be reached
         """
         path = []
-        while 1:
+        tries = 0
+        while tries < 100:
                 if acc.parent is None:
                         path.reverse()
                         return path
@@ -328,6 +332,8 @@
                 except Exception:
                         raise LookupError
                 acc = acc.parent
+                tries = tries + 1
+        raise LookupError
 
 def pointToList(point):
        return (point.x, point.y)
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/debian/changelog pyatspi-2.38.1/debian/changelog
--- pyatspi-2.38.0/debian/changelog     2020-09-12 21:49:49.000000000 +0200
+++ pyatspi-2.38.1/debian/changelog     2021-03-13 23:31:55.000000000 +0100
@@ -1,3 +1,13 @@
+pyatspi (2.38.1-1) unstable; urgency=medium
+
+  [ Debian Janitor ]
+  * Update watch file format version to 4.
+
+  [ Samuel Thibault ]
+  * New upstream bugfix release.
+
+ -- Samuel Thibault <sthiba...@debian.org>  Sat, 13 Mar 2021 23:31:55 +0100
+
 pyatspi (2.38.0-1) unstable; urgency=medium
 
   * New upstream release.
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/debian/files pyatspi-2.38.1/debian/files
--- pyatspi-2.38.0/debian/files 2021-03-14 11:52:00.456425837 +0100
+++ pyatspi-2.38.1/debian/files 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-pyatspi_2.38.0-1_source.buildinfo python optional
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/debian/salsa-ci.yml pyatspi-2.38.1/debian/salsa-ci.yml
--- pyatspi-2.38.0/debian/salsa-ci.yml  1970-01-01 01:00:00.000000000 +0100
+++ pyatspi-2.38.1/debian/salsa-ci.yml  2021-03-13 23:30:42.000000000 +0100
@@ -0,0 +1,6 @@
+---
+include:
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+  - 
https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
+
+# vim: ts=2 sw=2 et sts=2 ft=yaml
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/debian/watch pyatspi-2.38.1/debian/watch
--- pyatspi-2.38.0/debian/watch 2020-08-09 17:35:32.000000000 +0200
+++ pyatspi-2.38.1/debian/watch 2021-03-13 23:30:42.000000000 +0100
@@ -1,2 +1,2 @@
-version=3
+version=4
 opts=dversionmangle=s/\+dfsg$// 
http://ftp.gnome.org/pub/GNOME/sources/pyatspi/(\d.[0-9]*[02468])/pyatspi-@ANY_VERSION@@ARCHIVE_EXT@
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/NEWS pyatspi-2.38.1/NEWS
--- pyatspi-2.38.0/NEWS 2020-08-09 00:29:15.000000000 +0200
+++ pyatspi-2.38.1/NEWS 2021-03-13 22:36:07.000000000 +0100
@@ -1,3 +1,8 @@
+What's new in pyatspi 2.38.1:
+
+* Add sanity checks to getPath and findAncestor so that we don't
+  hang if an accessible returns itself as its own parent (#6, #7).
+
 What's new in pyatspi 2.37.90:
 
 * Tests: use libatspi's dbus-gmain implementation, eliminating
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
pyatspi-2.38.0/pyatspi/utils.py pyatspi-2.38.1/pyatspi/utils.py
--- pyatspi-2.38.0/pyatspi/utils.py     2018-08-09 17:07:43.000000000 +0200
+++ pyatspi-2.38.1/pyatspi/utils.py     2021-03-11 00:37:08.000000000 +0100
@@ -296,7 +296,8 @@
         if acc is None:
                 # guard against bad start condition
                 return None
-        while 1:
+        tries = 0
+        while tries < 100:
                 if acc.parent is None:
                         # stop if there is no parent and we haven't returned 
yet
                         return None
@@ -306,6 +307,8 @@
                         pass
                 # move to the parent
                 acc = acc.parent
+                tries = tries + 1
+        return None
 
 def getPath(acc):
         """
@@ -319,7 +322,8 @@
         @raise LookupError: When the application accessible cannot be reached
         """
         path = []
-        while 1:
+        tries = 0
+        while tries < 100:
                 if acc.parent is None:
                         path.reverse()
                         return path
@@ -328,6 +332,8 @@
                 except Exception:
                         raise LookupError
                 acc = acc.parent
+                tries = tries + 1
+        raise LookupError
 
 def pointToList(point):
        return (point.x, point.y)

Reply via email to