[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#985204: marked as done (unblock: pyatspi/2.38.1-1)



Your message dated Sun, 14 Mar 2021 13:27:58 +0000
with message-id <E1lLQmk-0004Zs-Ot@respighi.debian.org>
and subject line unblock pyatspi
has caused the Debian Bug report #985204,
regarding unblock: pyatspi/2.38.1-1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
985204: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=985204
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@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-patches@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*:*:*)
 	# akee@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-patches@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-automake@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-atspi@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-atspi@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-atspi@lists.linux-foundation.org])
+AC_INIT([pyatspi], [2.38.1], [accessibility-atspi@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 <sthibault@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-atspi@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-atspi@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-atspi@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-atspi@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-atspi@lists.linux-foundation.org])
+m4trace:configure.ac:1: -1- AC_INIT([pyatspi], [2.38.1], [accessibility-atspi@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-atspi@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-atspi@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-atspi@lists.linux-foundation.org])
+AC_INIT([pyatspi], [2.38.1], [accessibility-atspi@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 <sthibault@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 <sthibault@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)

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply to: