public inbox for ipfire-scm@lists.ipfire.org
 help / color / mirror / Atom feed
* [git.ipfire.org] IPFire 2.x development tree branch, next, updated. e043f7b78759ee9aa130e29ff0f6f11413dc7557
@ 2022-12-27 15:59 Peter Müller
  0 siblings, 0 replies; only message in thread
From: Peter Müller @ 2022-12-27 15:59 UTC (permalink / raw)
  To: ipfire-scm

[-- Attachment #1: Type: text/plain, Size: 473446 bytes --]

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 2.x development tree".

The branch, next has been updated
       via  e043f7b78759ee9aa130e29ff0f6f11413dc7557 (commit)
       via  b000e8e46680558c7415952a53779d5dc09bccd3 (commit)
       via  83104495ee8a55ffa641bdc508aa47964933f076 (commit)
       via  1d087b0bc0f0d980255430c670d4d4ca7b232ce6 (commit)
       via  4652d382070f1395bbfddab4ac0adb3a9ba006e4 (commit)
       via  bdfe67598735ad28aa2ed705d3de7ebfad4930fc (commit)
       via  aadc6c8a655b881fc3ea8dd96400cff53fdaa4b7 (commit)
       via  75b473e2d667fe6718b07472d3c761e3a8b066e1 (commit)
       via  199217cfc96a18787b63575b7326314d4218a904 (commit)
       via  a39a7ffdadd898d69a1f6b746708aea3eec4a5af (commit)
       via  c567d55e58ecdf044fc3858c5e784157f8ee0a7b (commit)
       via  8e93f8a545c077ba5da6412cd1249e2eb8fd4cd9 (commit)
       via  01e65b0902270179c807f4cc8ebf61ad7b397e83 (commit)
       via  776419475f3067b0861f3d0180bb5a7f06bf1dd2 (commit)
       via  6d144d259f90c1591a1f53deee665207fc7f4f1f (commit)
       via  a32aad7548c0d162ea5de9fbf0ebb01d51529367 (commit)
       via  0da1e37ada91a4b1d580c551877582585c118d3a (commit)
       via  15214970e65ae371852305c97743205803d0847e (commit)
       via  53dae68c59059705338cae6a60b227d3fd94c192 (commit)
       via  e10a8583ae069c075429634188fdc619a3cf1758 (commit)
       via  09bf147878a16af6949969bcfd24620067ddb257 (commit)
       via  410dcc25ca1b38a47f8799bfdec32789e0ac553e (commit)
       via  1302f0cde8ed3225841a51c75e341698460c41fa (commit)
       via  349fc481b81bbaaaff9a46100384f61858377019 (commit)
       via  d78ff61511fe2ea540d5cfa87cd9a8120ce232da (commit)
       via  f2171fc9d6106ecf0a2ce796ee9e725832168690 (commit)
       via  366bae41ff322b42e58e920cadb3b406b000fe4b (commit)
       via  5e1db85c4f5f7a0287ee390f3a1522dc0a948ed7 (commit)
       via  9f39e8c13ecb7931e9cfaebae0fd20df0bc11b32 (commit)
       via  5d34a9171ce66443bf777d22b364714788b3760e (commit)
       via  a5e11a4cc26fa0185e9e9f24b5470ddaf8301640 (commit)
       via  15e496e4964ef2e059912c5cbea9178c41a2aaa7 (commit)
       via  6202651723f744d44c8536a94f02fe27ccbf1f57 (commit)
       via  883ec31e3c3e7ec9fa27e65a6c15e2c9effd7e9f (commit)
       via  3392be3a57cb8f642d9d0d25690015510655154e (commit)
       via  5b5facc3ca025d648bbfc7161e4b6bbab787acce (commit)
       via  b1ff8adbf0271c37139303441f30a485ea0c85b9 (commit)
       via  580c249a5b8d5800d62c98ca50f8936e7a906452 (commit)
       via  8d09028b69202788d92631655764b78f70b6dc23 (commit)
       via  86ba5ce3161d2fce3a7190e761ba72dee63889ae (commit)
       via  ece96c6f5648421a1adf79770d7c92a12e963a64 (commit)
       via  e3da49123860f1247affe903f3425f2af4afd33c (commit)
       via  1f568cc0edabca40d07add4e160ca642070a4678 (commit)
       via  cb4b6f433ea588cd1e79f0ce90e56b7acc511981 (commit)
       via  c2e2c2824ac01c37639091d881df4601c007cd8b (commit)
       via  7a67f77f10c05436960a3a9097e8019a34f07167 (commit)
       via  4ffd18a7747b43c00df00e0cd0b914beaf785833 (commit)
       via  ccf36e9e8c1361b8addf1508444276e79310afe0 (commit)
       via  261727435df172b80ebf940c9bdd5e8cef9c1179 (commit)
       via  36914cce704b95445acf565d5e2ede01e05e513b (commit)
       via  11f6226f6553e893c4b3530c0ce193f13485f46d (commit)
       via  a22e3c8ec7e0411a6976fcc43dc132395e5cf0f7 (commit)
       via  effe5c73394138fd86587a1eaecec1f151e1986b (commit)
       via  f28d5fa8cc95be27ee836c63ed53e39926fd80f9 (commit)
       via  7c3369a623d3fe7bf9191bc9bc9d1b2d7407521d (commit)
       via  80989cc935682e637b55d262e8e0e0a0077937c3 (commit)
       via  38f02ae3a1647630008be14dba7f4a0b94c9af9a (commit)
       via  a0918657c93766809ef442543932240a2ae225f3 (commit)
       via  957863f754deb9351bd1c53c16f53ef84ac86add (commit)
       via  c6551e73c23d4661f70a7e4f342035bc6f901a86 (commit)
       via  33d2aa6d02693d9354cc55c9adaa9361cd6a43f4 (commit)
       via  177ec16705ccbaf8755124a0038ab123477cbfa6 (commit)
       via  1d66c3509f1c74c9960715bc1e2e3860e7801711 (commit)
       via  47a57621b0adf2506515d3602a1177a71afcb9e5 (commit)
       via  a8dcce1aad19a5bbeadc5544acd59ef8d6087322 (commit)
      from  9ea8de7c39ee35d6fcabc3bfca4a7754344e6610 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit e043f7b78759ee9aa130e29ff0f6f11413dc7557
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Mon Dec 26 08:56:31 2022 +0000

    Core Update 173: Ship psmisc
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit b000e8e46680558c7415952a53779d5dc09bccd3
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Sat Dec 17 13:14:25 2022 +0100

    psmisc: Update to version 23.6
    
    - Update from version 23.4 to 23.6
    - Update of rootfile
    - Changelog
        Changes in 23.6
            * buildsys: Fix DEJAGNU work-around Debian #1015089
    	* killall: Use kill if pidfd_send_signal fails Debian #1015228
    	* fuser: Do not mention nonexistent - reset option #42
    	* fuser: Use modern statn where possible
    	* pstree: Better AppArmor support !30
        Changes in 23.5
    	* killall: Check truncated names !28
    	* killall: Use openat and pidfd_send_signal #37
    	* killall: Don't check paths of sockets #35
            * pstree: Check for process with show_parents #38
    	* pstree: Don't disable compaction with show pgids #34
    	* pstree: Fix storage leak !29
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 83104495ee8a55ffa641bdc508aa47964933f076
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Mon Dec 26 08:54:16 2022 +0000

    Core Update 173: Ship iproute2
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 1d087b0bc0f0d980255430c670d4d4ca7b232ce6
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Sat Dec 17 13:14:20 2022 +0100

    iproute2: Update to version 6.1.0
    
    - Update from version 6.0.0 to 6.1.0
    - Update of rootfile not required
    - Changelog is only available from the commits in the git repositry
       https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/log/
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 4652d382070f1395bbfddab4ac0adb3a9ba006e4
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Mon Dec 26 08:53:46 2022 +0000

    Core Update 173: Ship libarchive
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit bdfe67598735ad28aa2ed705d3de7ebfad4930fc
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Sat Dec 17 13:14:22 2022 +0100

    libarchive: Update to version 3.6.2
    
    - Update from version 3.6.1 to 3.6.2
    - Update of rootfile
    - patch to fix glibc 2.36 headers is now part of the source code
    - Changelog
        Libarchive 3.6.2 is a bugfix and security release.
    	Important bug fixes:
    	    include ZSTD in Windows builds (#1688)
    	    SSL fixes on Windows (#1714, #1723, #1724)
    	    rar5 reader: fix possible garbled output with bsdtar -O (#1745)
    	    mtree reader: support reading mtree files with tabs (#1783)
    	    various small fixes for issues found by CodeQL
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit aadc6c8a655b881fc3ea8dd96400cff53fdaa4b7
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Mon Dec 26 08:49:55 2022 +0000

    Core Update 173: Ship krb5
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 75b473e2d667fe6718b07472d3c761e3a8b066e1
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Sat Dec 17 13:14:21 2022 +0100

    krb5: Update to version 1.20.1
    
    - Update from version 1.20 to 1.20.1
    - Update of rootfile not required
    - Changelog
        Major changes in 1.20.1 (2022-11-15)
    	    Fix integer overflows in PAC parsing [CVE-2022-42898].
    	    Fix null deref in KDC when decoding invalid NDR.
    	    Fix memory leak in OTP kdcpreauth module.
    	    Fix PKCS11 module path search.
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 199217cfc96a18787b63575b7326314d4218a904
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Mon Dec 26 08:48:43 2022 +0000

    Core Update 173: Ship libstatgrab
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit a39a7ffdadd898d69a1f6b746708aea3eec4a5af
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Sun Dec 11 13:33:28 2022 +0100

    libstatgrab: Update to version 0.92.1
    
    - Update from vesrion 0.92 to 0.92.1
    - Update of rootfile
    - Changelog
        libstatgrab 0.92.1 (27 July 2021)
    	 * Fix build with autoconf 2.70+.
    	 * Fix CPU stats on older Linux kernels.
    	 * Make sure to count processes in an unknown state.
    	 * Check if -ltinfo is needed when linking ncurses.
    	 * Fixes to build when cross-compiling.
    	 * Fix build with -DNDEBUG.
    	 * Handle vmmeter changes in FreeBSD 12.
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit c567d55e58ecdf044fc3858c5e784157f8ee0a7b
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Mon Dec 26 08:46:39 2022 +0000

    Core Update 173: Ship libssh
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 8e93f8a545c077ba5da6412cd1249e2eb8fd4cd9
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Sun Dec 11 13:33:27 2022 +0100

    libssh: Update to version 0.10.4
    
    - Update from version 0.9.6 to 0.10.4
    - Update of rootfile
    - Changelog
    	version 0.10.4 (released 2022-09-07)
    	  * Fixed issues with KDF on big endian
    	version 0.10.3 (released 2022-09-05)
    	  * Fixed possible infinite loop in known hosts checking
    	version 0.10.2 (released 2022-09-02)
    	  * Fixed tilde expansion when handling include directives
    	  * Fixed building the shared torture library
    	  * Made rekey test more robust (fixes running on i586 build systems e.g koji)
    	version 0.10.1 (released 2022-08-30)
    	  * Fixed proxycommand support
    	  * Fixed musl libc support
    	version 0.10.0 (released 2022-08-26)
    	  * Added support for OpenSSL 3.0
    	  * Added support for mbedTLS 3
    	  * Added support for Smart Cards  (through openssl pkcs11 engine)
    	  * Added support for chacha20-poly1305(a)openssh.com with libgcrypt
    	  * Added support ed25519 keys in PEM files
    	  * Added support for sk-ecdsa and sk-ed25519 (server side)
    	  * Added support for limiting RSA key sizes and not accepting small one by
    	    default
    	  * Added support for ssh-agent on Windows
    	  * Added ssh_userauth_publickey_auto_get_current_identity() API
    	  * Added ssh_vlog() API
    	  * Added ssh_send_issue_banner() API
    	  * Added ssh_session_set_disconnect_message() API
    	  * Added new configuration options:
    	    + IdentityAgent
    	    + ModuliFile
    	  * Provided X11 client example
    	  * Disabled DSA support at build time by default (will be removed in the next
    	    release)
    	  * Deprecated the SCP API!
    	  * Deprecated old pubkey, privatekey API
    	  * Avoided some needless large stack buffers to minimize memory footprint
    	  * Removed support for OpenSSL < 1.0.1
    	  * Fixed parsing username(a)host in login name
    	  * Free global init mutex in the destructor on Windows
    	  * Fixed PEM parsing in mbedtls to support both legacy and new PKCS8 formats
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 01e65b0902270179c807f4cc8ebf61ad7b397e83
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Sun Dec 11 13:33:26 2022 +0100

    libshout: Update to version 2.4.6
    
    - Update from version 2.4.3 to 2.4.6
    - Update of rootfile
    - Changelog
        libshout 2.4.6 (20220410)
    	* Fixed pkg-config file (#2329)
    	* Made vorbis an optional codec
    	* Do not pass to small headers to libspeex
    	  (see also the same mirror-patch in Icecast)
    	* Updated documentation, mostly in regard of making it clearer
    	  which functions are now obsoleted
    	* General code cleanup
    	* Added compiler warnings about obsoleted functions and
    	  ignored return values
    	* Replaced old shout_set_metadata() with new shout_set_metadata_utf8()
    	* Added support for plain text streaming
    	* Fixed shout_set_metadata*() sometimes returning SHOUTERR_RETRY (#2328)
    	* Workaround old clients by emulating SHOUTERR_RETRY with SHOUTERR_BUSY (#2316)
    	* Remove our re-implementation of X509_check_host()
    	* Allow to disable building tools (#2331)
        libshout 2.4.5 (20201219)
    	* Improved shout.h for reading, and understanding.
    	* Marked dumpfile support as obsolete (as SHOUT_PROTOCOL_XAUDIOCAST already is).
    	* Added Support for setting the content language.
    	* Avoid the use of obsolete functions (#2317).
    	* Several small fixes for non-blocking mode (#2321, #2315).
    	* Corrected detection of libogg (mostly for windows targets).
    	* Now accept TLS mode "auto" when build without TLS support.
    	* Added new tool shout(1).
        libshout 2.4.4 (20201001)
    	* Fixed handling of blocking/non-blocking mode
    	* Fixed ICY port increment
    	* Fixed reusing of handles
    	* Fixed error handling of Ogg sync layer
    	* Fixed Passing of errors between connection and instance layer
    	  Without this fix died connections were not correctly detected.
    	* Fixed and improved build scripts
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 776419475f3067b0861f3d0180bb5a7f06bf1dd2
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Sun Dec 11 13:33:25 2022 +0100

    libpciaccess: Update to version 0.17
    
    - Update from version 0.16 to 0.17
    - Update of rootfile not required
    - bz2 source file no longer available - xz supplied
    - Changelog is available in the source file and lists each of the commits that have been
       added between version 0.16 and 0.17 A bit too long to include fully here.
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 6d144d259f90c1591a1f53deee665207fc7f4f1f
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Sun Dec 11 13:33:23 2022 +0100

    dbus: Update to version 1.14.4
    
    - Update from version 1.14.0 to 1.14.4
    - Update of rootfile
    - Changelog
        dbus 1.14.4 (2022-10-05)
         This is a security update for the dbus 1.14.x stable branch, fixing
         denial-of-service issues (CVE-2022-42010, -42011, -42012) and applying
         security hardening (dbus#416).
    	Behaviour changes:
    		• On Linux, dbus-daemon and other uses of DBusServer now create a
    		  path-based Unix socket, unix:path=..., when asked to listen on a
    		  unix:tmpdir=... address. This makes unix:tmpdir=... equivalent to
    		  unix:dir=... on all platforms.
    		  Previous versions would have created an abstract socket, unix:abstract=...,
    		  in this situation.
    		  This change primarily affects the well-known session bus when run via
    		  dbus-launch(1) or dbus-run-session(1). The user bus, enabled by configuring
    		  dbus with --enable-user-session and running it on a systemd system,
    		  already used path-based Unix sockets and is unaffected by this change.
    		  This behaviour change prevents a sandbox escape via the session bus socket
    		  in sandboxing frameworks that can share the network namespace with the host
    		  system, such as Flatpak.
    		  This change might cause a regression in situations where the abstract socket
    		  is intentionally shared between the host system and a chroot or container,
    		  such as some use-cases of schroot(1). That regression can be resolved by
    		  using a bind-mount to share either the D-Bus socket, or the whole /tmp
    		  directory, with the chroot or container.
    		  (dbus#416, Simon McVittie)
    	Denial of service fixes:
    		Evgeny Vereshchagin discovered several ways in which an authenticated
    		local attacker could cause a crash (denial of service) in
    		dbus-daemon --system or a custom DBusServer. In uncommon configurations
    		these could potentially be carried out by an authenticated remote attacker.
    		• An invalid array of fixed-length elements where the length of the array
    		  is not a multiple of the length of the element would cause an assertion
    		  failure in debug builds or an out-of-bounds read in production builds.
    		  This was a regression in version 1.3.0.
    		  (dbus#413, CVE-2022-42011; Simon McVittie)
    		• A syntactically invalid type signature with incorrectly nested parentheses
    		  and curly brackets would cause an assertion failure in debug builds.
    		  Similar messages could potentially result in a crash or incorrect message
    		  processing in a production build, although we are not aware of a practical
    		  example. (dbus#418, CVE-2022-42010; Simon McVittie)
    		• A message in non-native endianness with out-of-band Unix file descriptors
    		  would cause a use-after-free and possible memory corruption in production
    		  builds, or an assertion failure in debug builds. This was a regression in
    		  version 1.3.0. (dbus#417, CVE-2022-42012; Simon McVittie)
        dbus 1.14.2 (2022-09-26)
    	Fixes:
    		• Fix build failure on FreeBSD (dbus!277, Alex Richardson)
    		• Fix build failure on macOS with launchd enabled
    		  (dbus!287, Dawid Wróbel)
    		• Preserve errno on failure to open /proc/self/oom_score_adj
    		  (dbus!285, Gentoo#834725; Mike Gilbert)
    		• On Linux, don't log warnings if oom_score_adj is read-only but does not
    		  need to be changed (dbus!291, Simon McVittie)
    		• Slightly improve error-handling for inotify
    		  (dbus!235, Simon McVittie)
    		• Don't crash if dbus-daemon is asked to watch more than 128 directories
    		  for changes (dbus!302, Jan Tojnar)
    		• Autotools build system fixes:
    			  · Don't treat --with-x or --with-x=yes as a request to disable X11,
    			    fixing a regression in 1.13.20. Instead, require X11 libraries and
    			    fail if they cannot be detected. (dbus!263, Lars Wendler)
    			  · When a CMake project uses an Autotools-built libdbus in a
    			    non-standard prefix, find dbus-arch-deps.h successfully
    			    (dbus#314, Simon McVittie)
    			  · Don't include generated XML catalog in source releases
    			    (dbus!317, Jan Tojnar)
    			  · Improve robustness of detecting gcc __sync atomic builtins
    			    (dbus!320, Alex Richardson)
    		• CMake build system fixes:
    			  · Detect endianness correctly, fixing interoperability with other D-Bus
    			    implementations on big-endian systems (dbus#375, Ralf Habacker)
    			  · When building for Unix, install session and system bus setup
    			    in the intended locations
    			    (dbus!267, dbus!297; Ralf Habacker, Alex Richardson)
    			  · Detect setresuid() and getresuid() (dbus!319, Alex Richardson)
    			  · Detect backtrace() on FreeBSD (dbus!281, Alex Richardson)
    			  · Don't include headers from parent directory (dbus!282, Alex Richardson)
    			  · Distinguish between host and target TMPDIR when cross-compiling
    			    (dbus!279, Alex Richardson)
    			  · Fix detection of atomic operations (dbus!306, Alex Richardson)
    		Tests and CI enhancements:
    			• On Unix, skip tests that switch uid if run in a container that is
    			  unable to do so, instead of failing (dbus#407, Simon McVittie)
    			• Use the latest MSYS2 packages for CI
    			  (Ralf Habacker, Simon McVittie)
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit a32aad7548c0d162ea5de9fbf0ebb01d51529367
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Mon Dec 26 08:42:52 2022 +0000

    Core Update 173: Ship hwdata
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 0da1e37ada91a4b1d580c551877582585c118d3a
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Sun Dec 11 13:33:24 2022 +0100

    hwdata: Update of pci and usb ids files
    
    - Update pci.ids from version 2022.03.22 to 2022.12.04
    - Update usb.ids from version 2022.03.18 to 2022.12.09
    - No update of rootfile
    - No change to lfs
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>

commit 15214970e65ae371852305c97743205803d0847e
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Sun Dec 11 13:33:22 2022 +0100

    avahi: Fix bug #13017 - - dbus[n]: Unknown group "netdev" in message bus configuration file
    
    - add command into avahi install.sh paks file to add netdev group if it doesn't exist
    - Update avahi PAK_VER to ensure that change is shipped
    
    Tested-by: Jon Murphy <jon.murphy(a)ipfire.org>
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>

commit 53dae68c59059705338cae6a60b227d3fd94c192
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Mon Dec 26 08:41:09 2022 +0000

    Core Update 173: Ship libyang
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit e10a8583ae069c075429634188fdc619a3cf1758
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Fri Dec 9 22:48:25 2022 +0100

    libyang: Update to version 2.1.4
    
    - Update from version 2.0.194 to 2.1.4
    - Update of rootfile
    - Changelog
        Version 2.1.4 Latest
    	Main changes of this release are:
    	    large extensions refactoring
    	        increased ext plugin API version
    	        new callbacks and capabilities of plugins
    	        changes in the parsed and compiled ext instance structures
    	    native support for structure extension
    	    error path logging improvements
    	    fixed unions with leafrefs
    	    yanglint schema mount support
    	    huge number of other fixes and improvements
        Version 2.0.231
    	Main changes of this release are:
    	    XPath axes support
    	    schema-mount fixes
    	    many other fixes in various parts of the library
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 09bf147878a16af6949969bcfd24620067ddb257
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Mon Dec 26 08:40:29 2022 +0000

    Core Update 173: Ship libxslt
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 410dcc25ca1b38a47f8799bfdec32789e0ac553e
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Fri Dec 9 22:48:14 2022 +0100

    libxslt: Update to version 1.1.37
    
    - Update from version 1.1.35 to 1.1.37
    - Update of rootfile
    - Changelog
        v1.1.37: Aug 29 2022
    	### Improvements
    		- Don't use deprecated libxml2 macros
    		- Don't mess with xmlDefaultSAXHandler
    	### Build system
    		- Require automake-1.16.3 or later
    		- Remove generated files from distribution
    		- Add missing compile definition for static builds to Autotools (Mike Dalessio)
        v1.1.36: Aug 17 2022
    	### Removals and deprecations
    		- Remove SVN keyword anchors
    		- Remove CVS and SVN-related code
    		- Remove README.cvs-commits
    		- Remove ChangeLog
    		- Remove xsltwin32config.h
    	### Improvements
    		- Simplify xsltexports.h and exsltexports.h
    		- Don't overlink executables with gcrypt
    		- Fix quadratic behavior with variables and parameters
    		- Remove case labels with XPointer location types
    		- Add configure~ to .gitignore
    		- Stop calling deprecated libxml2 functions
    	### Portability
    		- Use portable python shebangs (David Seifert)
    		- Remove useless __CYGWIN__ checks
    		- Remove cruft from win32config.h
    		- crypto.c: Silence a compiler warning on Windows (Chun-wei Fan)
    	### Build system
    		- Add missing compile definition for static builds to CMake
    		- Avoid obsolescent `test -a` constructs (David Seifert)
    		- Only link libxml2 statically in purely static build
    		- Set AC_CONFIG_MACRO_DIR
    		- Allow AM_MAINTAINER_MODE to be disabled
    		- Streamline and fix documentation installation
    		- Don't try to recreate COPYING symlink
    		- Remove special configuration for certain maintainers
    		- configure.ac: produce tar.xz only (GNOME policy) (David Seifert)
    		- Detect libm using libtool's macros (David Seifert)
    		- configure.ac: disable static libraries by default (David Seifert)
    		- python/Makefile.am: nest python docs in $(docdir) (David Seifert)
    		- python/Makefile.am: rely on global AM_INIT_AUTOMAKE (David Seifert)
    		- configure.ac: remove useless AC_SUBST (David Seifert)
    		- Use AM_PATH_PYTHON/PKG_CHECK_MODULES for python bindings (David Seifert)
    		- Change libxml2 Python config
    		- Don't check for standard C89 library functions
    		- Don't check for standard C89 headers
    		- Remove --with-html-dir option
    		- Also check for glibtoolize in autogen.sh
    		- Rework documentation build system
    		- Remove old website
    		- CMake: Relax check for enabling crypto support on Windows (Chun-wei Fan)
    		- Remove obsolete AC_HEADER_STDC autoconf macro (Vadim Zeitlin)
    		- Remove special configuration for old maintainers
    	### Test suite, CI
    		- Remove test involving XPointer range-to function
    		- Test recursion in EXSLT dynamic functions
    		- Add CI job for static build
    	### Documentation
    		- Move tutorial images
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 1302f0cde8ed3225841a51c75e341698460c41fa
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Fri Dec 9 22:48:02 2022 +0100

    libvirt: Update version to 8.10.0
    
    - Update from version 8.9.0 to 8.10.0
    - Update of rootfile
    - Changelog
        v8.10.0 (2022-12-01)
    	**New features**
    		  * Tool for validating SEV firmware boot measurement of QEMU VMs
    		     The ``virt-qemu-sev-validate`` program will compare a reported SEV/SEV-ES
    		     domain launch measurement, to a computed launch measurement. This
    		     determines whether the domain has been tampered with during launch.
    		  * Support for SGX EPC (enclave page cache)
    		     Users can add a ``<memory model='sgx-epc'>`` device to lauch a VM with
    		     ``Intel Software Guard Extensions``.
    		  * Support migration of vTPM state of QEMU vms on shared storage
    		     Pass ``--migration`` option if appropriate in order for ``swtpm`` to
    		     properly migrate on shared storage.
    	**Improvements**
    		  * Mark close callback (un-)register API as high priority
    		     High priority APIs use a separate thread pool thus can help in eliminating
    		     problems with stuck VMs. Marking the close callback API as high priority
    		     allows ``virsh`` to properly connect to the daemon in case the normal
    		     priority workers are stuck allowing other high priority API usage.
    		  * Updated x86 CPU features
    		     The following features for the x86 platform were added:
    		      ``v-vmsave-vmload``, ``vgif``, ``avx512-vp2intersect``, ``avx512-fp16``,
    		      ``serialize``, ``tsx-ldtrk``, ``arch-lbr``, ``xfd``, ``intel-pt-lip``,
    		      ``avic``, ``sgx``, ``sgxlc``, ``sgx-exinfo``, ``sgx1``, ``sgx2``,
    		      ``sgx-debug``, ``sgx-mode64``, ``sgx-provisionkey``, ``sgx-tokenkey``,
    		      ``sgx-kss``, ``bus-lock-detect``, ``pks``, ``amx``.
    		  * Add support for ``hv-avic`` Hyper-V enlightenment
    		     ``qemu-6.2`` introduced support for the ``hv-avic`` enlightenment which
    		     allows to use Hyper-V SynIC with hardware APICv/AVIC enabled.
    		  * qemu: Run memory preallocation with numa-pinned threads
    		     Run the thread allocating memory in the proper NUMA node to reduce overhead.
    		  * RPM packaging changes
    		    - add optional dependancy of ``libvirt-daemon`` on ``libvirt-client``
    		       The ``libvirt-guests.`` tool requires the ``virsh`` client to work
    		       properly, but we don't want to require the installation of the daemon
    		       if the tool is not used.
    		    - relax required ``python3-libvirt`` version for ``libvirt-client-qemu``
    		       The ``virt-qemu-qmp-proxy`` tool requires python but doesn't strictly
    		       need the newest version. Remove the strict versioning requirement in
    		       order to prevent cyclic dependency when building.
    	**Bug fixes**
    		  * Skip initialization of ``cache`` capabilities if host doesn't support them
    		     Hypervisor drivers would fail to initialize on ``aarch64`` hosts with
    		     following error ::
    		       virStateInitialize:657 : Initialisation of cloud-hypervisor state driver failed: no error
    		     which prevented the startup of the daemon.
    		  * Allow incoming connections to guests on routed networks w/firewalld
    		     A change in handling of implicit rules in ``firewalld 1.0.0`` broke
    		     incomming connections to VMs when using ``routed`` network. This is fixed
    		     by adding a new ``libvirt-routed`` zone configured to once again allow
    		     incoming sessions to guests on routed networks.
    		  * Fix infinite loop in nodedev driver
    		     Certain udev entries might be of a size that makes libudev emit EINVAL
    		     which caused a busy loop burning CPU. Fix it by ignoring the return code.
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 349fc481b81bbaaaff9a46100384f61858377019
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Fri Dec 9 22:47:51 2022 +0100

    libusbredir: Update to version 0.13.0
    
    - Update from version 0.8.0 to 0.13.0
    - Update of rootfile
    - bz2 version no longer supplied only xz version
    - Build changed from autotyools to meson/ninja
    - Changelog
    	# usbredir-0.13.0 - 01 Aug 2022
    		- !61 Fix regression on unserialize data
    		- !59 Removes usbredirserver
    		- !58 Improved header length checks when unserialising data
    		- !62 Fix usage of command line argument in usbredirect
    		- !57 Fix small memory leak on usbredirect
    	# usbredir-0.12.0 - 12 Nov 2021
    		- !47 Implement dropping packets from isochronous devices
    		  when buffer is owned by usbredirparser library
    		- !50 Use packet size limit on deserialization
    		- !54 Fix possible bad state in deserialization logic
    		- !48 Fix possible memory leak in serialization logic
    		- !45 Fix (un)serialization with empty write buffers
    		- !42 !46 !52 Improvements to usbredirparserfuzz
    	# usbredir-0.11.0 - 10 Aug 2021
    		- !40 Fixes use-after-free on usbredirparser serialization
    		- !25 Fixes memory leak in usbredirparser
    		- !32 Fixes build in MacOS related to visibility of exported symbols
    		- !36 Adds usbredirfilter_free function
    		- !29 Adds Fuzzing for Filters
    		- !34 Improvements to usbredirfilter_string_to_rules()
    	# usbredir-0.10.0 - 27 May 2021
    		- !23 Fixes 0.9.0 regression in bulk transfer message size
    		- !20 Drops autotools, only meson is supported now
    		- !15, !16, !18, !21 Improves fuzzing code base and meson builds
    		- !17 Fixes libusbredirhost.pc when generated by meson
    	# usbredir-0.9.0 - 02 Apr 2021
    		-  !2 Add usbredirect tool with feature parity with usbredirserver
    		-  !6 Add fuzzer for usbredirparser
    		- !12 Add MSI installer for usbredirect tool
    		- !11 Add meson build: autotool will be removed in a future release
    		-  !5 Limit packet's length to 65 kB
    		-  !4 Fix wrong up-cast when checking for package's length
    		- Require LLVM's compiler-rt (optional: for fuzzer)
    		- Require glib2 >= 2.44 (optional: for usbredirect)
    		- Deprecate usbredirserver in favor of usbredirect
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit d78ff61511fe2ea540d5cfa87cd9a8120ce232da
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Mon Dec 26 08:36:20 2022 +0000

    Core Update 173: Ship libusb
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit f2171fc9d6106ecf0a2ce796ee9e725832168690
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Fri Dec 9 22:47:38 2022 +0100

    libusb: Update to version 1.0.26
    
    - Update from version 1.0.25 to 1.0.26
    - Update of rootfile not required
    - Changelog
        2022-04-10: v1.0.26
    	* Fix regression with transfer free's after closing device
    	* Fix regression with destroyed context if API is misused
    	* Workaround for applications using missing default context
    	* Fix hotplog enumeration regression
    	* Fix Windows isochronous transfer regression since 1.0.24
    	* Fix macOS exit crash in some multi-context cases
    	* Build fixes for various platforms and configurations
    	* Fix Windows HID multi-interface product string retrieval
    	* Update isochronous OUT packet actual lengths on Windows
    	* Add interface bound checking for broken devices
    	* Add umockdev tests on Linux
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 366bae41ff322b42e58e920cadb3b406b000fe4b
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Mon Dec 26 08:34:23 2022 +0000

    Core Update 173: Ship mpfr
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 5e1db85c4f5f7a0287ee390f3a1522dc0a948ed7
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Thu Dec 1 22:21:02 2022 +0100

    mpfr: Update to version 4.1.1 with patch 1
    
    - Update from version 4.1.0 with patch set 1 to 13 to 4.1.1 with aptch set 1 to 1
    - Update of rootfile
    - Changelog
        Changes from version 4.1.0 to version 4.1.1:
    	- Bug fixes (see <https://www.mpfr.org/mpfr-4.1.0/#fixed> and/or the
    	  ChangeLog file), in particular for macros implementing functions.
    	- Improved manual formatting.
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 9f39e8c13ecb7931e9cfaebae0fd20df0bc11b32
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Mon Dec 26 08:30:49 2022 +0000

    Core Update 173: Ship libconfig
    
    Note to self: Does the filesystem cleanup routine called in update.sh
    handle the rootfile changes of this properly?
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 5d34a9171ce66443bf777d22b364714788b3760e
Author: Matthias Fischer <matthias.fischer(a)ipfire.org>
Date:   Sun Dec 18 16:30:23 2022 +0100

    libconfig: Update to 1.7.3
    
    ...it just came my way...
    
    For details see:
    https://github.com/hyperrealm/libconfig/releases/tag/v1.7.3
    
    This release includes some bugfixes and enhancements.
    
        Fixed a memory access violation bug in config_clear()
        Various fixes to CMake and Visual Studio build files
        Added a Setting::isString() method
        Fixed a bug in config_setting_lookup() where the setting itself
        (instead of NULL) would be returned if the path was not found.
        Renamed all remaining internal methods that lacked a 'libconfig_'
        prefix.
    
    Signed-off-by: Matthias Fischer <matthias.fischer(a)ipfire.org>
    Reviewed-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit a5e11a4cc26fa0185e9e9f24b5470ddaf8301640
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Mon Dec 26 08:29:36 2022 +0000

    Run ./make.sh update-contributors
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 15e496e4964ef2e059912c5cbea9178c41a2aaa7
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Fri Dec 23 09:41:27 2022 +0000

    make.sh: Commit leftovers
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 6202651723f744d44c8536a94f02fe27ccbf1f57
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Wed Dec 21 07:30:08 2022 +0000

    make.sh: Fix build order to build glib properly
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 883ec31e3c3e7ec9fa27e65a6c15e2c9effd7e9f
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Fri Oct 21 16:15:20 2022 +0200

    QMI: Update red/iface file when using QMI.
    
    Signed-off-by: Stefan Schantl <stefan.schantl(a)ipfire.org>

commit 3392be3a57cb8f642d9d0d25690015510655154e
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Sat Dec 17 17:25:21 2022 +0000

    Core Update 173: Ship QMI-related changes
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

commit 5b5facc3ca025d648bbfc7161e4b6bbab787acce
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:18 2022 +0000

    make.sh: Build some dependencies for glib earlier
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit b1ff8adbf0271c37139303441f30a485ea0c85b9
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:17 2022 +0000

    network: Silence any output during the QMI setup
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 580c249a5b8d5800d62c98ca50f8936e7a906452
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:16 2022 +0000

    network: Assign "static" MAC addresses to QMI interfaces
    
    This is really badly hacky, but I do not know a better way to solve this
    with our existing "setup" program which would be a nightmare to extend.
    
    So we are using the device number to generate a static MAC address which
    can then be used as usual. I doubt many people will have more than one
    device.
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 8d09028b69202788d92631655764b78f70b6dc23
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:15 2022 +0000

    network: Force dhcpcd to ask for an IP address
    
    So since all this static nonsense wasn't feeling right, I opened a
    ticket upstream and got a lead how to actually get some proper DHCP
    working.
    
      https://github.com/NetworkConfiguration/dhcpcd/issues/129
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 86ba5ce3161d2fce3a7190e761ba72dee63889ae
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:14 2022 +0000

    dhcpcd.exe: Add a safety net to make sure we always have a route
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit ece96c6f5648421a1adf79770d7c92a12e963a64
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:13 2022 +0000

    dhcpcd.exe: Ignore some events
    
    We don't want any log messages printed.
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit e3da49123860f1247affe903f3425f2af4afd33c
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:12 2022 +0000

    dhcpcd.exe: Reformat the reason dispatcher
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 1f568cc0edabca40d07add4e160ca642070a4678
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:11 2022 +0000

    network: dhcpcd fails to check link state for QMI interfaces
    
    When acquiring an IP address, dhcpcd seems to think that the interface
    is down or does not work properly for some reason. It will
    subsequentially decide to exit which is not what we want here.
    
    Therefore this patch tells dhcpcd to ignore the link state and keep
    happily running.
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit cb4b6f433ea588cd1e79f0ce90e56b7acc511981
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:10 2022 +0000

    dhcpcd.exe: Fix typo in configuring DNS server
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit c2e2c2824ac01c37639091d881df4601c007cd8b
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:09 2022 +0000

    dhcpcd.exe: Run everything no matter how RED is configured
    
    This could potentially create problems when we abuse these functions to
    launch the DHCP client on IPTV interfaces. This would have to be tested
    and confirmed or potentially we would need some more changes to keep
    supporting that use-case, too.
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 7a67f77f10c05436960a3a9097e8019a34f07167
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:08 2022 +0000

    dhcpcd.exe: Only touch /var/ipfire/red/active once
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 4ffd18a7747b43c00df00e0cd0b914beaf785833
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:07 2022 +0000

    dhcpcd.exe: Do not overwrite the default gateway when empty
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit ccf36e9e8c1361b8addf1508444276e79310afe0
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:06 2022 +0000

    dhcpcd.exe: Use DNS servers from QMI
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 261727435df172b80ebf940c9bdd5e8cef9c1179
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:05 2022 +0000

    dhcpcd.exe: Store the default gateway when in QMI mode
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 36914cce704b95445acf565d5e2ede01e05e513b
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:04 2022 +0000

    dhcpcd.exe: Only set gateway when we have received one
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 11f6226f6553e893c4b3530c0ce193f13485f46d
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:03 2022 +0000

    dhcpcd.exe: Actually use the received MTU
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit a22e3c8ec7e0411a6976fcc43dc132395e5cf0f7
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:02 2022 +0000

    dhcpcd.exe: Flush any configured IP addresses on shutdown
    
    This allows us to start with a fresh interface every time dhcpcd is
    being restarted.
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit effe5c73394138fd86587a1eaecec1f151e1986b
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:01 2022 +0000

    dhcpcd: Only try to obtain an IP address for IPv4
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit f28d5fa8cc95be27ee836c63ed53e39926fd80f9
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:23:00 2022 +0000

    network: Remove --debug switch for dhcpcd in QMI mode
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 7c3369a623d3fe7bf9191bc9bc9d1b2d7407521d
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:22:59 2022 +0000

    pppsetup.cgi: Move authentication above MTU
    
    I feel that authentication is more important.
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 80989cc935682e637b55d262e8e0e0a0077937c3
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:22:58 2022 +0000

    pppsetup.cgi: Add support for QMI profiles
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 38f02ae3a1647630008be14dba7f4a0b94c9af9a
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:22:57 2022 +0000

    pppsetup.cgi: Add support for QMI profiles
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit a0918657c93766809ef442543932240a2ae225f3
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:22:56 2022 +0000

    network: Drop any traces of ISDN
    
    This has been removed a long time ago and we should probably spend a
    little bit more time on keeping the networking code tidy :)
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 957863f754deb9351bd1c53c16f53ef84ac86add
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:22:55 2022 +0000

    network: Add support for QMI modems
    
    QMI is a proprietary interface from Qualcomm which are absolute pioneers
    when it comes to interfacing with modems. I don't think there would be
    any way to make this any more complicated and bloated.
    
    So, bascially we will put the modem into a raw IP mode which changes the
    interface into Point-to-Point mode.
    
    We then configure the provider settings using qmicli. After that, the
    modem will try to connect to the provider and obtain an IP address.
    
    We will then start a DHCP client which does not do any DHCP-ing because
    implementing that would be too complicated. Instead we do something even
    *more* complicated where we would launch a custom script which asks the
    modem for the allocated IP address and will configure it into the
    device. The DHCP client then reads that IP address from the device and
    pretends it came up with it by itself. Such an easy way to do this.
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit c6551e73c23d4661f70a7e4f342035bc6f901a86
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:22:54 2022 +0000

    network: Allow passing custom options to dhcpcd
    
    This is useful for debugging.
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 33d2aa6d02693d9354cc55c9adaa9361cd6a43f4
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:22:53 2022 +0000

    dhcpcd.exe: Allow using the DHCP setup scripts when RED is not configured as DHCP
    
    This is useful for dial-up methods that use DHCP, but when RED_TYPE is
    configured as PPP.
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 177ec16705ccbaf8755124a0038ab123477cbfa6
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:22:52 2022 +0000

    dhcpcd: Log any unhandled client events
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 1d66c3509f1c74c9960715bc1e2e3860e7801711
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:22:51 2022 +0000

    libqmi: New package
    
    This library implements the QMI modem protocol.
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 47a57621b0adf2506515d3602a1177a71afcb9e5
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu Dec 1 17:22:50 2022 +0000

    libgudev: New package
    
    This is required for libqmi.
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit a8dcce1aad19a5bbeadc5544acd59ef8d6087322
Author: Peter Müller <peter.mueller(a)ipfire.org>
Date:   Sat Dec 17 17:19:13 2022 +0000

    Start Core Update 173
    
    Signed-off-by: Peter Müller <peter.mueller(a)ipfire.org>

-----------------------------------------------------------------------

Summary of changes:
 config/dhcpc/dhcpcd.conf                           |    3 +
 config/rootfiles/common/configroot                 |    2 -
 config/rootfiles/common/libarchive                 |    2 +-
 config/rootfiles/common/libconfig                  |    4 +-
 config/rootfiles/common/libgudev                   |   13 +
 config/rootfiles/common/libqmi                     |  468 +++
 config/rootfiles/common/libssh                     |    2 +-
 config/rootfiles/common/libstatgrab                |    2 +-
 config/rootfiles/common/libxslt                    |  117 +-
 config/rootfiles/common/libyang                    |   16 +-
 config/rootfiles/common/mpfr                       |    2 +-
 config/rootfiles/common/psmisc                     |   44 +-
 config/rootfiles/core/{172 => 173}/core-files      |    0
 config/rootfiles/core/{172 => 173}/exclude         |    0
 .../core/{172 => 173}/filelists/core-files         |    0
 config/rootfiles/core/173/filelists/files          |    7 +
 .../{oldcore/132 => core/173}/filelists/hwdata     |    0
 .../rootfiles/core/{172 => 173}/filelists/iproute2 |    0
 .../{oldcore/169 => core/173}/filelists/krb5       |    0
 .../{oldcore/104 => core/173}/filelists/libarchive |    0
 .../{oldcore/126 => core/173}/filelists/libconfig  |    0
 config/rootfiles/core/173/filelists/libgudev       |    1 +
 config/rootfiles/core/173/filelists/libqmi         |    1 +
 .../{oldcore/137 => core/173}/filelists/libssh     |    0
 .../159 => core/173}/filelists/libstatgrab         |    0
 .../{oldcore/145 => core/173}/filelists/libusb     |    0
 .../{oldcore/157 => core/173}/filelists/libxslt    |    0
 .../{oldcore/164 => core/173}/filelists/libyang    |    0
 .../{oldcore/101 => core/173}/filelists/mpfr       |    0
 .../{oldcore/167 => core/173}/filelists/psmisc     |    0
 .../rootfiles/{oldcore/152 => core/173}/update.sh  |   12 +-
 config/rootfiles/{core => oldcore}/172/core-files  |    0
 config/rootfiles/{core => oldcore}/172/exclude     |    0
 .../{core => oldcore}/172/filelists/aarch64/u-boot |    0
 .../{core => oldcore}/172/filelists/apache2        |    0
 .../{core => oldcore}/172/filelists/armv6l/python3 |    0
 .../{core => oldcore}/172/filelists/armv6l/u-boot  |    0
 .../rootfiles/{core => oldcore}/172/filelists/bash |    0
 .../rootfiles/{core => oldcore}/172/filelists/bind |    0
 .../172/filelists/ca-certificates                  |    0
 .../172/filelists/conntrack-tools                  |    0
 .../{core => oldcore}/172/filelists/core-files     |    0
 .../rootfiles/{core => oldcore}/172/filelists/curl |    0
 .../{core => oldcore}/172/filelists/elinks         |    0
 .../{core => oldcore}/172/filelists/ethtool        |    0
 .../{core => oldcore}/172/filelists/expat          |    0
 .../{core => oldcore}/172/filelists/files          |    0
 .../{core => oldcore}/172/filelists/iana-etc       |    0
 .../{core => oldcore}/172/filelists/iproute2       |    0
 .../rootfiles/{core => oldcore}/172/filelists/kmod |    0
 .../{core => oldcore}/172/filelists/libedit        |    0
 .../{core => oldcore}/172/filelists/libhtp         |    0
 .../{core => oldcore}/172/filelists/libloc         |    0
 .../172/filelists/libnetfilter_conntrack           |    0
 .../{core => oldcore}/172/filelists/libpng         |    0
 .../{core => oldcore}/172/filelists/libtasn1       |    0
 .../{core => oldcore}/172/filelists/libtiff        |    0
 .../{core => oldcore}/172/filelists/libuv          |    0
 .../{core => oldcore}/172/filelists/libxcrypt      |    0
 .../{core => oldcore}/172/filelists/libxml2        |    0
 .../rootfiles/{core => oldcore}/172/filelists/lsof |    0
 .../rootfiles/{core => oldcore}/172/filelists/nano |    0
 .../{core => oldcore}/172/filelists/openssh        |    0
 .../{core => oldcore}/172/filelists/openssl        |    0
 .../{core => oldcore}/172/filelists/openvpn        |    0
 .../{core => oldcore}/172/filelists/pciutils       |    0
 .../{core => oldcore}/172/filelists/poppler        |    0
 .../{core => oldcore}/172/filelists/python3        |    0
 .../{core => oldcore}/172/filelists/python3-daemon |    0
 .../172/filelists/python3-setuptools-rust          |    0
 .../{core => oldcore}/172/filelists/readline       |    0
 .../rootfiles/{core => oldcore}/172/filelists/sed  |    0
 .../{core => oldcore}/172/filelists/sqlite         |    0
 .../{core => oldcore}/172/filelists/strongswan     |    0
 .../rootfiles/{core => oldcore}/172/filelists/sudo |    0
 .../{core => oldcore}/172/filelists/suricata       |    0
 .../{core => oldcore}/172/filelists/sysstat        |    0
 .../{core => oldcore}/172/filelists/tzdata         |    0
 .../rootfiles/{core => oldcore}/172/filelists/udev |    0
 .../{core => oldcore}/172/filelists/unbound        |    0
 .../{core => oldcore}/172/filelists/usbutils       |    0
 .../{core => oldcore}/172/filelists/vnstat         |    0
 .../172/filelists/x86_64/intel-microcode           |    0
 .../rootfiles/{core => oldcore}/172/filelists/xz   |    0
 .../rootfiles/{core => oldcore}/172/filelists/zlib |    0
 config/rootfiles/{core => oldcore}/172/update.sh   |    0
 config/rootfiles/packages/dbus                     |    2 +-
 config/rootfiles/packages/libshout                 |    2 +
 config/rootfiles/packages/libusbredir              |   12 +-
 config/rootfiles/packages/libvirt                  |   10 +-
 config/udev/network-hotplug-rename                 |    9 +
 doc/language_issues.de                             |    8 +-
 doc/language_issues.en                             |    3 +
 doc/language_issues.es                             |    4 +-
 doc/language_issues.fr                             |    8 +-
 doc/language_issues.it                             |    8 +-
 doc/language_issues.nl                             |    8 +-
 doc/language_issues.pl                             |    8 +-
 doc/language_issues.ru                             |    8 +-
 doc/language_issues.tr                             |    8 +-
 doc/language_missings                              |   24 +
 html/cgi-bin/credits.cgi                           |    6 +-
 html/cgi-bin/pppsetup.cgi                          |   80 +-
 langs/de/cgi-bin/de.pl                             |    5 -
 langs/en/cgi-bin/en.pl                             |    8 +-
 langs/es/cgi-bin/es.pl                             |    1 -
 langs/fr/cgi-bin/fr.pl                             |    5 -
 langs/it/cgi-bin/it.pl                             |    5 -
 langs/nl/cgi-bin/nl.pl                             |    5 -
 langs/pl/cgi-bin/pl.pl                             |    5 -
 langs/ru/cgi-bin/ru.pl                             |    5 -
 langs/tr/cgi-bin/tr.pl                             |    5 -
 lfs/avahi                                          |    4 +-
 lfs/configroot                                     |    4 +-
 lfs/dbus                                           |    6 +-
 lfs/iproute2                                       |    6 +-
 lfs/krb5                                           |    4 +-
 lfs/libarchive                                     |    7 +-
 lfs/libconfig                                      |    6 +-
 lfs/{glib => libgudev}                             |   12 +-
 lfs/libpciaccess                                   |   10 +-
 lfs/{libsodium => libqmi}                          |    8 +-
 lfs/libshout                                       |    8 +-
 lfs/libssh                                         |    6 +-
 lfs/libstatgrab                                    |    6 +-
 lfs/libusb                                         |    4 +-
 lfs/libusbredir                                    |   18 +-
 lfs/libvirt                                        |    6 +-
 lfs/libxslt                                        |    6 +-
 lfs/libyang                                        |    6 +-
 lfs/mpfr                                           |    8 +-
 lfs/psmisc                                         |    4 +-
 make.sh                                            |   28 +-
 src/hwdata/pci.ids                                 | 1112 +++++++-
 src/hwdata/usb.ids                                 |  181 +-
 src/initscripts/networking/dhcpcd.exe              |   84 +-
 src/initscripts/networking/functions.network       |  118 +-
 src/initscripts/networking/red                     |   39 +
 src/paks/avahi/install.sh                          |    1 +
 .../libarchive-3.6-fix-glibc-2.36-headers.patch    |   41 -
 .../mpfr-4.1.0-cumulative-patches-1-to-13.patch    | 2976 --------------------
 .../mpfr-4.1.1-cumulative-patches-1-to-1.patch     |   83 +
 src/ppp/ip-up                                      |    5 -
 143 files changed, 2235 insertions(+), 3520 deletions(-)
 create mode 100644 config/rootfiles/common/libgudev
 create mode 100644 config/rootfiles/common/libqmi
 copy config/rootfiles/core/{172 => 173}/core-files (100%)
 copy config/rootfiles/core/{172 => 173}/exclude (100%)
 copy config/rootfiles/core/{172 => 173}/filelists/core-files (100%)
 create mode 100644 config/rootfiles/core/173/filelists/files
 copy config/rootfiles/{oldcore/132 => core/173}/filelists/hwdata (100%)
 copy config/rootfiles/core/{172 => 173}/filelists/iproute2 (100%)
 copy config/rootfiles/{oldcore/169 => core/173}/filelists/krb5 (100%)
 copy config/rootfiles/{oldcore/104 => core/173}/filelists/libarchive (100%)
 copy config/rootfiles/{oldcore/126 => core/173}/filelists/libconfig (100%)
 create mode 120000 config/rootfiles/core/173/filelists/libgudev
 create mode 120000 config/rootfiles/core/173/filelists/libqmi
 copy config/rootfiles/{oldcore/137 => core/173}/filelists/libssh (100%)
 copy config/rootfiles/{oldcore/159 => core/173}/filelists/libstatgrab (100%)
 copy config/rootfiles/{oldcore/145 => core/173}/filelists/libusb (100%)
 copy config/rootfiles/{oldcore/157 => core/173}/filelists/libxslt (100%)
 copy config/rootfiles/{oldcore/164 => core/173}/filelists/libyang (100%)
 copy config/rootfiles/{oldcore/101 => core/173}/filelists/mpfr (100%)
 copy config/rootfiles/{oldcore/167 => core/173}/filelists/psmisc (100%)
 copy config/rootfiles/{oldcore/152 => core/173}/update.sh (93%)
 rename config/rootfiles/{core => oldcore}/172/core-files (100%)
 rename config/rootfiles/{core => oldcore}/172/exclude (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/aarch64/u-boot (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/apache2 (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/armv6l/python3 (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/armv6l/u-boot (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/bash (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/bind (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/ca-certificates (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/conntrack-tools (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/core-files (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/curl (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/elinks (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/ethtool (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/expat (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/files (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/iana-etc (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/iproute2 (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/kmod (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/libedit (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/libhtp (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/libloc (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/libnetfilter_conntrack (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/libpng (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/libtasn1 (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/libtiff (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/libuv (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/libxcrypt (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/libxml2 (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/lsof (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/nano (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/openssh (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/openssl (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/openvpn (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/pciutils (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/poppler (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/python3 (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/python3-daemon (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/python3-setuptools-rust (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/readline (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/sed (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/sqlite (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/strongswan (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/sudo (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/suricata (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/sysstat (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/tzdata (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/udev (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/unbound (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/usbutils (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/vnstat (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/x86_64/intel-microcode (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/xz (100%)
 rename config/rootfiles/{core => oldcore}/172/filelists/zlib (100%)
 rename config/rootfiles/{core => oldcore}/172/update.sh (100%)
 copy lfs/{glib => libgudev} (91%)
 copy lfs/{libsodium => libqmi} (92%)
 delete mode 100644 src/patches/libarchive-3.6-fix-glibc-2.36-headers.patch
 delete mode 100644 src/patches/mpfr-4.1.0-cumulative-patches-1-to-13.patch
 create mode 100644 src/patches/mpfr-4.1.1-cumulative-patches-1-to-1.patch

Difference in files:
diff --git a/config/dhcpc/dhcpcd.conf b/config/dhcpc/dhcpcd.conf
index 29f10d1c9..062e3c975 100644
--- a/config/dhcpc/dhcpcd.conf
+++ b/config/dhcpc/dhcpcd.conf
@@ -1,6 +1,9 @@
 # A sample configuration for dhcpcd.
 # See dhcpcd.conf(5) for details.
 
+# Only obtain an IP address for IPv4
+ipv4only
+
 # Allow users of this group to interact with dhcpcd via the control socket.
 #controlgroup wheel
 
diff --git a/config/rootfiles/common/configroot b/config/rootfiles/common/configroot
index 4d631cea5..bc979cf2c 100644
--- a/config/rootfiles/common/configroot
+++ b/config/rootfiles/common/configroot
@@ -85,8 +85,6 @@ var/ipfire/ipblocklist-functions.pl
 var/ipfire/ipblocklist
 #var/ipfire/ipblocklist/modified
 #var/ipfire/ipblocklist/settings
-var/ipfire/isdn
-#var/ipfire/isdn/settings
 var/ipfire/key
 var/ipfire/lang.pl
 var/ipfire/langs
diff --git a/config/rootfiles/common/libarchive b/config/rootfiles/common/libarchive
index d6860041b..df0ab03c4 100644
--- a/config/rootfiles/common/libarchive
+++ b/config/rootfiles/common/libarchive
@@ -6,7 +6,7 @@
 #usr/lib/libarchive.la
 #usr/lib/libarchive.so
 usr/lib/libarchive.so.13
-usr/lib/libarchive.so.13.6.1
+usr/lib/libarchive.so.13.6.2
 #usr/lib/pkgconfig/libarchive.pc
 #usr/share/man/man1/bsdcat.1
 #usr/share/man/man1/bsdcpio.1
diff --git a/config/rootfiles/common/libconfig b/config/rootfiles/common/libconfig
index 633e1baf9..6c1e245ca 100644
--- a/config/rootfiles/common/libconfig
+++ b/config/rootfiles/common/libconfig
@@ -9,12 +9,12 @@
 #usr/lib/libconfig++.la
 #usr/lib/libconfig++.so
 usr/lib/libconfig++.so.11
-usr/lib/libconfig++.so.11.0.2
+usr/lib/libconfig++.so.11.1.0
 #usr/lib/libconfig.a
 #usr/lib/libconfig.la
 #usr/lib/libconfig.so
 usr/lib/libconfig.so.11
-usr/lib/libconfig.so.11.0.2
+usr/lib/libconfig.so.11.1.0
 #usr/lib/pkgconfig/libconfig++.pc
 #usr/lib/pkgconfig/libconfig.pc
 #usr/share/info/libconfig.info
diff --git a/config/rootfiles/common/libgudev b/config/rootfiles/common/libgudev
new file mode 100644
index 000000000..2caf7f2c8
--- /dev/null
+++ b/config/rootfiles/common/libgudev
@@ -0,0 +1,13 @@
+#usr/include/gudev-1.0
+#usr/include/gudev-1.0/gudev
+#usr/include/gudev-1.0/gudev/gudev.h
+#usr/include/gudev-1.0/gudev/gudevclient.h
+#usr/include/gudev-1.0/gudev/gudevdevice.h
+#usr/include/gudev-1.0/gudev/gudevenumerator.h
+#usr/include/gudev-1.0/gudev/gudevenums.h
+#usr/include/gudev-1.0/gudev/gudevenumtypes.h
+#usr/include/gudev-1.0/gudev/gudevtypes.h
+#usr/lib/libgudev-1.0.so
+usr/lib/libgudev-1.0.so.0
+usr/lib/libgudev-1.0.so.0.3.0
+#usr/lib/pkgconfig/gudev-1.0.pc
diff --git a/config/rootfiles/common/libqmi b/config/rootfiles/common/libqmi
new file mode 100644
index 000000000..ba26300c3
--- /dev/null
+++ b/config/rootfiles/common/libqmi
@@ -0,0 +1,468 @@
+usr/bin/qmi-firmware-update
+usr/bin/qmi-network
+usr/bin/qmicli
+#usr/include/libqmi-glib
+#usr/include/libqmi-glib/libqmi-glib.h
+#usr/include/libqmi-glib/qmi-client.h
+#usr/include/libqmi-glib/qmi-compat.h
+#usr/include/libqmi-glib/qmi-device.h
+#usr/include/libqmi-glib/qmi-dms.h
+#usr/include/libqmi-glib/qmi-dpm.h
+#usr/include/libqmi-glib/qmi-dsd.h
+#usr/include/libqmi-glib/qmi-enum-types.h
+#usr/include/libqmi-glib/qmi-enums-dms.h
+#usr/include/libqmi-glib/qmi-enums-dsd.h
+#usr/include/libqmi-glib/qmi-enums-gas.h
+#usr/include/libqmi-glib/qmi-enums-loc.h
+#usr/include/libqmi-glib/qmi-enums-nas.h
+#usr/include/libqmi-glib/qmi-enums-oma.h
+#usr/include/libqmi-glib/qmi-enums-pbm.h
+#usr/include/libqmi-glib/qmi-enums-pdc.h
+#usr/include/libqmi-glib/qmi-enums-pds.h
+#usr/include/libqmi-glib/qmi-enums-private.h
+#usr/include/libqmi-glib/qmi-enums-qos.h
+#usr/include/libqmi-glib/qmi-enums-sar.h
+#usr/include/libqmi-glib/qmi-enums-uim.h
+#usr/include/libqmi-glib/qmi-enums-voice.h
+#usr/include/libqmi-glib/qmi-enums-wda.h
+#usr/include/libqmi-glib/qmi-enums-wds.h
+#usr/include/libqmi-glib/qmi-enums-wms.h
+#usr/include/libqmi-glib/qmi-enums.h
+#usr/include/libqmi-glib/qmi-error-types.h
+#usr/include/libqmi-glib/qmi-errors.h
+#usr/include/libqmi-glib/qmi-flags64-dms.h
+#usr/include/libqmi-glib/qmi-flags64-dsd.h
+#usr/include/libqmi-glib/qmi-flags64-loc.h
+#usr/include/libqmi-glib/qmi-flags64-nas.h
+#usr/include/libqmi-glib/qmi-flags64-types.h
+#usr/include/libqmi-glib/qmi-flags64-wds.h
+#usr/include/libqmi-glib/qmi-gas.h
+#usr/include/libqmi-glib/qmi-gms.h
+#usr/include/libqmi-glib/qmi-loc.h
+#usr/include/libqmi-glib/qmi-message-context.h
+#usr/include/libqmi-glib/qmi-message.h
+#usr/include/libqmi-glib/qmi-nas.h
+#usr/include/libqmi-glib/qmi-oma.h
+#usr/include/libqmi-glib/qmi-pbm.h
+#usr/include/libqmi-glib/qmi-pdc.h
+#usr/include/libqmi-glib/qmi-pds.h
+#usr/include/libqmi-glib/qmi-proxy.h
+#usr/include/libqmi-glib/qmi-qos.h
+#usr/include/libqmi-glib/qmi-sar.h
+#usr/include/libqmi-glib/qmi-uim.h
+#usr/include/libqmi-glib/qmi-utils.h
+#usr/include/libqmi-glib/qmi-version.h
+#usr/include/libqmi-glib/qmi-voice.h
+#usr/include/libqmi-glib/qmi-wda.h
+#usr/include/libqmi-glib/qmi-wds.h
+#usr/include/libqmi-glib/qmi-wms.h
+#usr/lib/libqmi-glib.la
+#usr/lib/libqmi-glib.so
+usr/lib/libqmi-glib.so.5
+usr/lib/libqmi-glib.so.5.8.0
+#usr/lib/pkgconfig/qmi-glib.pc
+usr/libexec/qmi-proxy
+#usr/share/bash-completion/completions/qmicli
+#usr/share/gtk-doc/html/libqmi-glib
+#usr/share/gtk-doc/html/libqmi-glib/QmiClient.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientDms.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientDpm.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientDsd.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientGas.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientGms.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientLoc.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientNas.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientOma.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientPbm.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientPdc.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientPds.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientQos.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientSar.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientUim.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientVoice.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientWda.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientWds.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientWms.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiDevice.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiMessageContext.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiProxy.html
+#usr/share/gtk-doc/html/libqmi-glib/annotation-glossary.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-0.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-10.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-12.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-14.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-16.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-18.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-20.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-22-4.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-22.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-24-6.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-24.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-26-2.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-26-6.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-26.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-28-6.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-28.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-30-2.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-30-8.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-30.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-4.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-6.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-8.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-deprecated.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-full.html
+#usr/share/gtk-doc/html/libqmi-glib/ch01.html
+#usr/share/gtk-doc/html/libqmi-glib/ch02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch02s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch03.html
+#usr/share/gtk-doc/html/libqmi-glib/ch03s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch04.html
+#usr/share/gtk-doc/html/libqmi-glib/ch04s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch05.html
+#usr/share/gtk-doc/html/libqmi-glib/ch05s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch06.html
+#usr/share/gtk-doc/html/libqmi-glib/ch06s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch07.html
+#usr/share/gtk-doc/html/libqmi-glib/ch07s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch08.html
+#usr/share/gtk-doc/html/libqmi-glib/ch09.html
+#usr/share/gtk-doc/html/libqmi-glib/ch09s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch10.html
+#usr/share/gtk-doc/html/libqmi-glib/ch10s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch11.html
+#usr/share/gtk-doc/html/libqmi-glib/ch12.html
+#usr/share/gtk-doc/html/libqmi-glib/ch12s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch13.html
+#usr/share/gtk-doc/html/libqmi-glib/ch13s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch14.html
+#usr/share/gtk-doc/html/libqmi-glib/ch14s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch15.html
+#usr/share/gtk-doc/html/libqmi-glib/ch16.html
+#usr/share/gtk-doc/html/libqmi-glib/ch17.html
+#usr/share/gtk-doc/html/libqmi-glib/ch18.html
+#usr/share/gtk-doc/html/libqmi-glib/ch19.html
+#usr/share/gtk-doc/html/libqmi-glib/ch20.html
+#usr/share/gtk-doc/html/libqmi-glib/home.png
+#usr/share/gtk-doc/html/libqmi-glib/index.html
+#usr/share/gtk-doc/html/libqmi-glib/left-insensitive.png
+#usr/share/gtk-doc/html/libqmi-glib/left.png
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-Common-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-Common-utilities.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Activate-Automatic-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Activate-Manual-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Delete-Stored-Image-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Event-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Foxconn-Change-Device-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Foxconn-Get-Firmware-Version-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Foxconn-Set-FCC-Authentication-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Foxconn-Set-FCC-Authentication-v2-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Activation-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Alt-Net-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Band-Capabilities-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Boot-Image-Download-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Capabilities-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Factory-SKU-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Firmware-Preference-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Hardware-Revision-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-IDs-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-MAC-Address-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-MSISDN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Manufacturer-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Model-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Operating-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-PRL-Version-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Power-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Revision-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Software-Version-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Stored-Image-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Time-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-User-Lock-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-HP-Change-Device-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-List-Stored-Images-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Read-ERI-File-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Read-User-Data-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Restore-Factory-Defaults-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Alt-Net-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Boot-Image-Download-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Event-Report-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-FCC-Authentication-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Firmware-ID-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Firmware-Preference-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Operating-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Service-Programming-Code-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Time-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-User-Lock-Code-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-User-Lock-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Swi-Get-Current-Firmware-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Swi-Get-USB-Composition-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Swi-Set-USB-Composition-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Change-PIN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Get-CK-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Get-ICCID-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Get-IMSI-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Get-PIN-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Get-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Set-CK-Protection-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Set-PIN-Protection-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Unblock-CK-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Unblock-PIN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Verify-PIN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Validate-Service-Programming-Code-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Write-User-Data-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DPM-Close-Port-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DPM-Open-Port-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DSD-Get-APN-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DSD-Set-APN-Type-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DSD-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-Deprecated-Interface.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-Errors.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-GAS-DMS-Get-Firmware-List-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-GAS-DMS-Set-Active-Firmware-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-GAS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-GMS-Test-Get-Value-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-GMS-Test-Set-Value-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Delete-Assistance-Data-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Delete-Assistance-Data-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Engine-State-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Fix-Recurrence-Type-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-GNSS-Sv-Info-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Engine-Lock-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Engine-Lock-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-NMEA-Types-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-NMEA-Types-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Operation-Mode-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Operation-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Predicted-Orbits-Data-Source-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Predicted-Orbits-Data-Source-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Server-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Server-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Inject-Predicted-Orbits-Data-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Inject-Predicted-Orbits-Data-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Inject-Xtra-Data-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Inject-Xtra-Data-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-NMEA-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Position-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Register-Events-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-Engine-Lock-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-Engine-Lock-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-NMEA-Types-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-NMEA-Types-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-Operation-Mode-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-Operation-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-Server-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-Server-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Start-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Stop-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Attach-Detach-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Config-Signal-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Event-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Force-Network-Search-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-CDMA-Position-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Cell-Location-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-DRX-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Home-Network-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-LTE-Cphy-CA-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Operator-Name-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-PLMN-Name-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Preferred-Networks-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-RF-Band-Information-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Serving-System-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Signal-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Signal-Strength-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-System-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-System-Selection-Preference-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Technology-Preference-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Tx-Rx-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Initiate-Network-Register-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Network-Reject-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Network-Scan-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Network-Time-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Operator-Name-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Register-Indications-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Serving-System-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Set-Event-Report-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Set-Preferred-Networks-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Set-System-Selection-Preference-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Set-Technology-Preference-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Signal-Info-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Swi-Get-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-System-Info-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Cancel-Session-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Event-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Get-Feature-Setting-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Get-Session-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Send-Selection-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Set-Event-Report-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Set-Feature-Setting-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Start-Session-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PBM-Get-All-Capabilities-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PBM-Get-Capabilities-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PBM-Indication-Register-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PBM-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Activate-Config-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Activate-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Config-Change-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Deactivate-Config-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Deactivate-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Delete-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Get-Config-Info-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Get-Config-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Get-Config-Limits-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Get-Default-Config-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Get-Selected-Config-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Get-Selected-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-List-Configs-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-List-Configs-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Load-Config-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Load-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Register-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Set-Selected-Config-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Set-Selected-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Event-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Get-AGPS-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Get-Auto-Tracking-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Get-Default-Tracking-Session-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Get-GPS-Service-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Set-AGPS-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Set-Auto-Tracking-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Set-Default-Tracking-Session-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Set-Event-Report-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Set-GPS-Service-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-Flow-Status-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-Get-Flow-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-Get-Network-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-Network-Status-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-Swi-Read-Data-Stats-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QmiMessage.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-SAR-RF-Get-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-SAR-RF-Set-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-SAR-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Card-Status-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Change-PIN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Change-Provisioning-Session-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Depersonalization-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Get-Card-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Get-Configuration-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Get-File-Attributes-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Get-Slot-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Power-Off-SIM-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Power-On-SIM-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Read-Record-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Read-Transparent-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Refresh-Complete-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Refresh-Register-All-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Refresh-Register-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Refresh-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Register-Events-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Set-PIN-Protection-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Slot-Status-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Switch-Slot-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Unblock-PIN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Verify-PIN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-All-Call-Status-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Answer-Call-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Answer-USSD-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Cancel-USSD-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Dial-Call-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-End-Call-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Get-All-Call-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Get-Call-Waiting-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Get-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Indication-Register-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Manage-Calls-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Originate-USSD-No-Wait-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Originate-USSD-No-Wait-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Originate-USSD-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Release-USSD-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Set-Supplementary-Service-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Supplementary-Service-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-USSD-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-Version-and-feature-checks.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-Voice-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDA-Get-Data-Format-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDA-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDA-Set-Data-Format-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDA-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Bind-Data-Port-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Bind-Mux-Data-Port-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Create-Profile-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Delete-Profile-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Event-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Autoconnect-Settings-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Channel-Rates-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Current-Data-Bearer-Technology-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Current-Settings-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Data-Bearer-Technology-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Default-Profile-Number-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Default-Settings-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Dormancy-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-LTE-Attach-PDN-List-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-LTE-Attach-Parameters-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Max-LTE-Attach-PDN-Number-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-PDN-Throttle-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Packet-Service-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Packet-Statistics-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Profile-List-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Profile-Settings-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Go-Active-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Go-Dormant-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Modify-Profile-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Packet-Service-Status-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Set-Autoconnect-Settings-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Set-Default-Profile-Number-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Set-Event-Report-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Set-IP-Family-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Set-LTE-Attach-PDN-List-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Set-LTE-Attach-PDN-List-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Start-Network-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Stop-Network-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Swi-Create-Profile-Indexed-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Delete-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Event-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Get-Message-Protocol-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Get-Routes-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-List-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Modify-Tag-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Raw-Read-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Raw-Send-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Raw-Write-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-SMSC-Address-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Send-Ack-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Send-From-Memory-Storage-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Set-Event-Report-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Set-Routes-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib.devhelp2
+#usr/share/gtk-doc/html/libqmi-glib/object-tree.html
+#usr/share/gtk-doc/html/libqmi-glib/right-insensitive.png
+#usr/share/gtk-doc/html/libqmi-glib/right.png
+#usr/share/gtk-doc/html/libqmi-glib/style.css
+#usr/share/gtk-doc/html/libqmi-glib/up-insensitive.png
+#usr/share/gtk-doc/html/libqmi-glib/up.png
+#usr/share/man/man1/qmi-firmware-update.1
+#usr/share/man/man1/qmi-network.1
+#usr/share/man/man1/qmicli.1
diff --git a/config/rootfiles/common/libssh b/config/rootfiles/common/libssh
index ffb5ad59e..464bf28c2 100644
--- a/config/rootfiles/common/libssh
+++ b/config/rootfiles/common/libssh
@@ -13,5 +13,5 @@
 #usr/lib/cmake/libssh/libssh-config.cmake
 #usr/lib/libssh.so
 usr/lib/libssh.so.4
-usr/lib/libssh.so.4.8.7
+usr/lib/libssh.so.4.9.4
 #usr/lib/pkgconfig/libssh.pc
diff --git a/config/rootfiles/common/libstatgrab b/config/rootfiles/common/libstatgrab
index 8f0b15296..b1a4d2eb8 100644
--- a/config/rootfiles/common/libstatgrab
+++ b/config/rootfiles/common/libstatgrab
@@ -7,7 +7,7 @@ usr/bin/statgrab
 #usr/lib/libstatgrab.la
 #usr/lib/libstatgrab.so
 usr/lib/libstatgrab.so.10
-usr/lib/libstatgrab.so.10.0.1
+usr/lib/libstatgrab.so.10.0.2
 #usr/lib/pkgconfig/libstatgrab.pc
 #usr/share/doc/libstatgrab
 #usr/share/doc/libstatgrab/AUTHORS
diff --git a/config/rootfiles/common/libxslt b/config/rootfiles/common/libxslt
index eae4b26bd..a41c536b4 100644
--- a/config/rootfiles/common/libxslt
+++ b/config/rootfiles/common/libxslt
@@ -37,106 +37,31 @@ usr/lib/libexslt.so.0.8.20
 #usr/lib/libxslt.la
 #usr/lib/libxslt.so
 usr/lib/libxslt.so.1
-usr/lib/libxslt.so.1.1.35
+usr/lib/libxslt.so.1.1.37
 #usr/lib/pkgconfig/libexslt.pc
 #usr/lib/pkgconfig/libxslt.pc
 #usr/lib/xsltConf.sh
 #usr/share/aclocal/libxslt.m4
-#usr/share/doc/libxslt-1.1.35
-#usr/share/doc/libxslt-1.1.35/html
-#usr/share/doc/libxslt-1.1.35/html/API.html
-#usr/share/doc/libxslt-1.1.35/html/APIchunk0.html
-#usr/share/doc/libxslt-1.1.35/html/APIchunk1.html
-#usr/share/doc/libxslt-1.1.35/html/APIchunk10.html
-#usr/share/doc/libxslt-1.1.35/html/APIchunk11.html
-#usr/share/doc/libxslt-1.1.35/html/APIchunk12.html
-#usr/share/doc/libxslt-1.1.35/html/APIchunk2.html
-#usr/share/doc/libxslt-1.1.35/html/APIchunk3.html
-#usr/share/doc/libxslt-1.1.35/html/APIchunk4.html
-#usr/share/doc/libxslt-1.1.35/html/APIchunk5.html
-#usr/share/doc/libxslt-1.1.35/html/APIchunk6.html
-#usr/share/doc/libxslt-1.1.35/html/APIchunk7.html
-#usr/share/doc/libxslt-1.1.35/html/APIchunk8.html
-#usr/share/doc/libxslt-1.1.35/html/APIchunk9.html
-#usr/share/doc/libxslt-1.1.35/html/APIconstructors.html
-#usr/share/doc/libxslt-1.1.35/html/APIfiles.html
-#usr/share/doc/libxslt-1.1.35/html/APIfunctions.html
-#usr/share/doc/libxslt-1.1.35/html/APIsymbols.html
-#usr/share/doc/libxslt-1.1.35/html/EXSLT
-#usr/share/doc/libxslt-1.1.35/html/EXSLT/APIchunk0.html
-#usr/share/doc/libxslt-1.1.35/html/EXSLT/APIconstructors.html
-#usr/share/doc/libxslt-1.1.35/html/EXSLT/APIfiles.html
-#usr/share/doc/libxslt-1.1.35/html/EXSLT/APIfunctions.html
-#usr/share/doc/libxslt-1.1.35/html/EXSLT/APIsymbols.html
-#usr/share/doc/libxslt-1.1.35/html/EXSLT/bugs.html
-#usr/share/doc/libxslt-1.1.35/html/EXSLT/docs.html
-#usr/share/doc/libxslt-1.1.35/html/EXSLT/downloads.html
-#usr/share/doc/libxslt-1.1.35/html/EXSLT/exslt.html
-#usr/share/doc/libxslt-1.1.35/html/EXSLT/help.html
-#usr/share/doc/libxslt-1.1.35/html/EXSLT/index.html
-#usr/share/doc/libxslt-1.1.35/html/EXSLT/intro.html
-#usr/share/doc/libxslt-1.1.35/html/FAQ.html
-#usr/share/doc/libxslt-1.1.35/html/Libxslt-Logo-180x168.gif
-#usr/share/doc/libxslt-1.1.35/html/Libxslt-Logo-90x34.gif
-#usr/share/doc/libxslt-1.1.35/html/bugs.html
-#usr/share/doc/libxslt-1.1.35/html/contexts.gif
-#usr/share/doc/libxslt-1.1.35/html/contribs.html
-#usr/share/doc/libxslt-1.1.35/html/docbook.html
-#usr/share/doc/libxslt-1.1.35/html/docs.html
-#usr/share/doc/libxslt-1.1.35/html/downloads.html
-#usr/share/doc/libxslt-1.1.35/html/extensions.html
-#usr/share/doc/libxslt-1.1.35/html/help.html
-#usr/share/doc/libxslt-1.1.35/html/html
-#usr/share/doc/libxslt-1.1.35/html/html/book1.html
-#usr/share/doc/libxslt-1.1.35/html/html/home.png
-#usr/share/doc/libxslt-1.1.35/html/html/index.html
-#usr/share/doc/libxslt-1.1.35/html/html/left.png
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-attributes.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-documents.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-extensions.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-extra.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-functions.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-imports.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-keys.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-lib.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-namespaces.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-numbersInternals.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-pattern.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-preproc.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-security.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-templates.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-transform.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-variables.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-xslt.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-xsltInternals.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-xsltexports.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-xsltlocale.html
-#usr/share/doc/libxslt-1.1.35/html/html/libxslt-xsltutils.html
-#usr/share/doc/libxslt-1.1.35/html/html/right.png
-#usr/share/doc/libxslt-1.1.35/html/html/up.png
-#usr/share/doc/libxslt-1.1.35/html/index.html
-#usr/share/doc/libxslt-1.1.35/html/internals.html
-#usr/share/doc/libxslt-1.1.35/html/intro.html
-#usr/share/doc/libxslt-1.1.35/html/news.html
-#usr/share/doc/libxslt-1.1.35/html/node.gif
-#usr/share/doc/libxslt-1.1.35/html/object.gif
-#usr/share/doc/libxslt-1.1.35/html/processing.gif
-#usr/share/doc/libxslt-1.1.35/html/python.html
-#usr/share/doc/libxslt-1.1.35/html/redhat.gif
-#usr/share/doc/libxslt-1.1.35/html/smallfootonly.gif
-#usr/share/doc/libxslt-1.1.35/html/stylesheet.gif
-#usr/share/doc/libxslt-1.1.35/html/templates.gif
-#usr/share/doc/libxslt-1.1.35/html/tutorial
-#usr/share/doc/libxslt-1.1.35/html/tutorial/libxslt_tutorial.c
-#usr/share/doc/libxslt-1.1.35/html/tutorial/libxslttutorial.html
-#usr/share/doc/libxslt-1.1.35/html/tutorial/libxslttutorial.xml
-#usr/share/doc/libxslt-1.1.35/html/tutorial2
-#usr/share/doc/libxslt-1.1.35/html/tutorial2/libxslt_pipes.c
-#usr/share/doc/libxslt-1.1.35/html/tutorial2/libxslt_pipes.html
-#usr/share/doc/libxslt-1.1.35/html/tutorial2/libxslt_pipes.xml
-#usr/share/doc/libxslt-1.1.35/html/xslt.html
-#usr/share/doc/libxslt-1.1.35/html/xsltproc.html
-#usr/share/doc/libxslt-1.1.35/html/xsltproc2.html
+#usr/share/doc/libxslt
+#usr/share/doc/libxslt/tutorial
+#usr/share/doc/libxslt/tutorial/images
+#usr/share/doc/libxslt/tutorial/images/callouts
+#usr/share/doc/libxslt/tutorial/images/callouts/1.png
+#usr/share/doc/libxslt/tutorial/images/callouts/10.png
+#usr/share/doc/libxslt/tutorial/images/callouts/2.png
+#usr/share/doc/libxslt/tutorial/images/callouts/3.png
+#usr/share/doc/libxslt/tutorial/images/callouts/4.png
+#usr/share/doc/libxslt/tutorial/images/callouts/5.png
+#usr/share/doc/libxslt/tutorial/images/callouts/6.png
+#usr/share/doc/libxslt/tutorial/images/callouts/7.png
+#usr/share/doc/libxslt/tutorial/images/callouts/8.png
+#usr/share/doc/libxslt/tutorial/images/callouts/9.png
+#usr/share/doc/libxslt/tutorial/libxslt_tutorial.c
+#usr/share/doc/libxslt/tutorial/libxslttutorial.html
+#usr/share/doc/libxslt/tutorial2
+#usr/share/doc/libxslt/tutorial2/libxslt_pipes.c
+#usr/share/doc/libxslt/tutorial2/libxslt_pipes.html
+#usr/share/doc/libxslt/xsltproc.html
 #usr/share/gtk-doc/html/libexslt
 #usr/share/gtk-doc/html/libexslt/general.html
 #usr/share/gtk-doc/html/libexslt/home.png
diff --git a/config/rootfiles/common/libyang b/config/rootfiles/common/libyang
index 898160158..b0dd54cda 100644
--- a/config/rootfiles/common/libyang
+++ b/config/rootfiles/common/libyang
@@ -7,13 +7,12 @@
 #usr/include/libyang/in.h
 #usr/include/libyang/libyang.h
 #usr/include/libyang/log.h
+#usr/include/libyang/metadata.h
 #usr/include/libyang/out.h
 #usr/include/libyang/parser_data.h
 #usr/include/libyang/parser_schema.h
 #usr/include/libyang/plugins.h
 #usr/include/libyang/plugins_exts.h
-#usr/include/libyang/plugins_exts_compile.h
-#usr/include/libyang/plugins_exts_print.h
 #usr/include/libyang/plugins_types.h
 #usr/include/libyang/printer_data.h
 #usr/include/libyang/printer_schema.h
@@ -25,7 +24,18 @@
 #usr/include/libyang/version.h
 #usr/lib/libyang.so
 usr/lib/libyang.so.2
-usr/lib/libyang.so.2.20.15
+usr/lib/libyang.so.2.25.4
 #usr/lib/pkgconfig/libyang.pc
 #usr/share/man/man1/yanglint.1
 #usr/share/man/man1/yangre.1
+#usr/share/yang
+#usr/share/yang/modules
+#usr/share/yang/modules/libyang
+#usr/share/yang/modules/libyang/ietf-datastores(a)2018-02-14.yang
+#usr/share/yang/modules/libyang/ietf-inet-types(a)2013-07-15.yang
+#usr/share/yang/modules/libyang/ietf-yang-library(a)2019-01-04.yang
+#usr/share/yang/modules/libyang/ietf-yang-metadata(a)2016-08-05.yang
+#usr/share/yang/modules/libyang/ietf-yang-schema-mount(a)2019-01-14.yang
+#usr/share/yang/modules/libyang/ietf-yang-structure-ext(a)2020-06-17.yang
+#usr/share/yang/modules/libyang/ietf-yang-types(a)2013-07-15.yang
+#usr/share/yang/modules/libyang/yang(a)2022-06-16.yang
diff --git a/config/rootfiles/common/mpfr b/config/rootfiles/common/mpfr
index ae0701d0f..2b2a04257 100644
--- a/config/rootfiles/common/mpfr
+++ b/config/rootfiles/common/mpfr
@@ -4,7 +4,7 @@
 #usr/lib/libmpfr.la
 #usr/lib/libmpfr.so
 usr/lib/libmpfr.so.6
-usr/lib/libmpfr.so.6.1.0
+usr/lib/libmpfr.so.6.1.1
 #usr/lib/pkgconfig/mpfr.pc
 #usr/share/doc/mpfr
 #usr/share/doc/mpfr/AUTHORS
diff --git a/config/rootfiles/common/psmisc b/config/rootfiles/common/psmisc
index 759e7f0ab..8a658fd1c 100644
--- a/config/rootfiles/common/psmisc
+++ b/config/rootfiles/common/psmisc
@@ -5,20 +5,38 @@ bin/killall
 #bin/pslog
 usr/bin/pstree
 #usr/bin/pstree.x11
+#usr/share/man/da
+#usr/share/man/da/man1
+#usr/share/man/da/man1/prtstat.1
+#usr/share/man/da/man1/pslog.1
 #usr/share/man/de/man1/fuser.1
 #usr/share/man/de/man1/killall.1
 #usr/share/man/de/man1/peekfd.1
 #usr/share/man/de/man1/prtstat.1
 #usr/share/man/de/man1/pslog.1
 #usr/share/man/de/man1/pstree.1
-#usr/share/man/fr
-#usr/share/man/fr/man1
 #usr/share/man/fr/man1/fuser.1
 #usr/share/man/fr/man1/killall.1
 #usr/share/man/fr/man1/peekfd.1
 #usr/share/man/fr/man1/prtstat.1
 #usr/share/man/fr/man1/pslog.1
 #usr/share/man/fr/man1/pstree.1
+#usr/share/man/hr
+#usr/share/man/hr/man1
+#usr/share/man/hr/man1/fuser.1
+#usr/share/man/hr/man1/killall.1
+#usr/share/man/hr/man1/peekfd.1
+#usr/share/man/hr/man1/prtstat.1
+#usr/share/man/hr/man1/pslog.1
+#usr/share/man/hr/man1/pstree.1
+#usr/share/man/ko
+#usr/share/man/ko/man1
+#usr/share/man/ko/man1/fuser.1
+#usr/share/man/ko/man1/killall.1
+#usr/share/man/ko/man1/peekfd.1
+#usr/share/man/ko/man1/prtstat.1
+#usr/share/man/ko/man1/pslog.1
+#usr/share/man/ko/man1/pstree.1
 #usr/share/man/man1/fuser.1
 #usr/share/man/man1/killall.1
 #usr/share/man/man1/peekfd.1
@@ -33,6 +51,12 @@ usr/bin/pstree
 #usr/share/man/pt_BR/man1/prtstat.1
 #usr/share/man/pt_BR/man1/pslog.1
 #usr/share/man/pt_BR/man1/pstree.1
+#usr/share/man/ro/man1/fuser.1
+#usr/share/man/ro/man1/killall.1
+#usr/share/man/ro/man1/peekfd.1
+#usr/share/man/ro/man1/prtstat.1
+#usr/share/man/ro/man1/pslog.1
+#usr/share/man/ro/man1/pstree.1
 #usr/share/man/ru
 #usr/share/man/ru/man1
 #usr/share/man/ru/man1/fuser.1
@@ -41,6 +65,22 @@ usr/bin/pstree
 #usr/share/man/ru/man1/prtstat.1
 #usr/share/man/ru/man1/pslog.1
 #usr/share/man/ru/man1/pstree.1
+#usr/share/man/sr
+#usr/share/man/sr/man1
+#usr/share/man/sr/man1/fuser.1
+#usr/share/man/sr/man1/killall.1
+#usr/share/man/sr/man1/peekfd.1
+#usr/share/man/sr/man1/prtstat.1
+#usr/share/man/sr/man1/pslog.1
+#usr/share/man/sr/man1/pstree.1
+#usr/share/man/sv
+#usr/share/man/sv/man1
+#usr/share/man/sv/man1/fuser.1
+#usr/share/man/sv/man1/killall.1
+#usr/share/man/sv/man1/peekfd.1
+#usr/share/man/sv/man1/prtstat.1
+#usr/share/man/sv/man1/pslog.1
+#usr/share/man/sv/man1/pstree.1
 #usr/share/man/uk
 #usr/share/man/uk/man1
 #usr/share/man/uk/man1/fuser.1
diff --git a/config/rootfiles/core/172/core-files b/config/rootfiles/core/173/core-files
similarity index 100%
rename from config/rootfiles/core/172/core-files
rename to config/rootfiles/core/173/core-files
diff --git a/config/rootfiles/core/172/exclude b/config/rootfiles/core/173/exclude
similarity index 100%
rename from config/rootfiles/core/172/exclude
rename to config/rootfiles/core/173/exclude
diff --git a/config/rootfiles/core/172/filelists/core-files b/config/rootfiles/core/173/filelists/core-files
similarity index 100%
rename from config/rootfiles/core/172/filelists/core-files
rename to config/rootfiles/core/173/filelists/core-files
diff --git a/config/rootfiles/core/173/filelists/files b/config/rootfiles/core/173/filelists/files
new file mode 100644
index 000000000..2d8353e65
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/files
@@ -0,0 +1,7 @@
+etc/ppp/ip-up
+etc/rc.d/init.d/networking/dhcpcd.exe
+etc/rc.d/init.d/networking/functions.network
+etc/rc.d/init.d/networking/red
+lib/udev/network-hotplug-rename
+srv/web/ipfire/cgi-bin/pppsetup.cgi
+var/ipfire/dhcpc/dhcpcd.conf
diff --git a/config/rootfiles/core/173/filelists/hwdata b/config/rootfiles/core/173/filelists/hwdata
new file mode 120000
index 000000000..ced911666
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/hwdata
@@ -0,0 +1 @@
+../../../common/hwdata
\ No newline at end of file
diff --git a/config/rootfiles/core/172/filelists/iproute2 b/config/rootfiles/core/173/filelists/iproute2
similarity index 100%
rename from config/rootfiles/core/172/filelists/iproute2
rename to config/rootfiles/core/173/filelists/iproute2
diff --git a/config/rootfiles/core/173/filelists/krb5 b/config/rootfiles/core/173/filelists/krb5
new file mode 120000
index 000000000..082c3cbcd
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/krb5
@@ -0,0 +1 @@
+../../../common/krb5
\ No newline at end of file
diff --git a/config/rootfiles/core/173/filelists/libarchive b/config/rootfiles/core/173/filelists/libarchive
new file mode 120000
index 000000000..551f1f743
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/libarchive
@@ -0,0 +1 @@
+../../../common/libarchive
\ No newline at end of file
diff --git a/config/rootfiles/core/173/filelists/libconfig b/config/rootfiles/core/173/filelists/libconfig
new file mode 120000
index 000000000..6e4e0678f
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/libconfig
@@ -0,0 +1 @@
+../../../common/libconfig
\ No newline at end of file
diff --git a/config/rootfiles/core/173/filelists/libgudev b/config/rootfiles/core/173/filelists/libgudev
new file mode 120000
index 000000000..c30335fa7
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/libgudev
@@ -0,0 +1 @@
+../../../common/libgudev
\ No newline at end of file
diff --git a/config/rootfiles/core/173/filelists/libqmi b/config/rootfiles/core/173/filelists/libqmi
new file mode 120000
index 000000000..20df7b9c2
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/libqmi
@@ -0,0 +1 @@
+../../../common/libqmi
\ No newline at end of file
diff --git a/config/rootfiles/core/173/filelists/libssh b/config/rootfiles/core/173/filelists/libssh
new file mode 120000
index 000000000..ecbb67053
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/libssh
@@ -0,0 +1 @@
+../../../common/libssh
\ No newline at end of file
diff --git a/config/rootfiles/core/173/filelists/libstatgrab b/config/rootfiles/core/173/filelists/libstatgrab
new file mode 120000
index 000000000..17109d85a
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/libstatgrab
@@ -0,0 +1 @@
+../../../common/libstatgrab
\ No newline at end of file
diff --git a/config/rootfiles/core/173/filelists/libusb b/config/rootfiles/core/173/filelists/libusb
new file mode 120000
index 000000000..edbe8c215
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/libusb
@@ -0,0 +1 @@
+../../../common/libusb
\ No newline at end of file
diff --git a/config/rootfiles/core/173/filelists/libxslt b/config/rootfiles/core/173/filelists/libxslt
new file mode 120000
index 000000000..bf9d76609
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/libxslt
@@ -0,0 +1 @@
+../../../common/libxslt
\ No newline at end of file
diff --git a/config/rootfiles/core/173/filelists/libyang b/config/rootfiles/core/173/filelists/libyang
new file mode 120000
index 000000000..50c26d048
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/libyang
@@ -0,0 +1 @@
+../../../common/libyang
\ No newline at end of file
diff --git a/config/rootfiles/core/173/filelists/mpfr b/config/rootfiles/core/173/filelists/mpfr
new file mode 120000
index 000000000..c8468bf42
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/mpfr
@@ -0,0 +1 @@
+../../../common/mpfr
\ No newline at end of file
diff --git a/config/rootfiles/core/173/filelists/psmisc b/config/rootfiles/core/173/filelists/psmisc
new file mode 120000
index 000000000..0b07b1bf5
--- /dev/null
+++ b/config/rootfiles/core/173/filelists/psmisc
@@ -0,0 +1 @@
+../../../common/psmisc
\ No newline at end of file
diff --git a/config/rootfiles/core/173/update.sh b/config/rootfiles/core/173/update.sh
new file mode 100644
index 000000000..c72971226
--- /dev/null
+++ b/config/rootfiles/core/173/update.sh
@@ -0,0 +1,67 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire is free software; you can redistribute it and/or modify           #
+# it under the terms of the GNU General Public License as published by     #
+# the Free Software Foundation; either version 3 of the License, or        #
+# (at your option) any later version.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2022 IPFire-Team <info(a)ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+/usr/local/bin/backupctrl exclude >/dev/null 2>&1
+
+core=173
+
+# Remove old core updates from pakfire cache to save space...
+for (( i=1; i<=$core; i++ )); do
+	rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
+done
+
+# Stop services
+
+# Extract files
+extract_files
+
+# update linker config
+ldconfig
+
+# Remove files
+
+# Update Language cache
+/usr/local/bin/update-lang-cache
+
+# Filesytem cleanup
+/usr/local/bin/filesystem-cleanup
+
+# Start services
+
+# This update needs a reboot...
+touch /var/run/need_reboot
+
+# Finish
+/etc/init.d/fireinfo start
+sendprofile
+
+# Update grub config to display new core version
+if [ -e /boot/grub/grub.cfg ]; then
+	grub-mkconfig -o /boot/grub/grub.cfg
+fi
+
+sync
+
+# Don't report the exitcode last command
+exit 0
diff --git a/config/rootfiles/oldcore/172/core-files b/config/rootfiles/oldcore/172/core-files
new file mode 100644
index 000000000..0dec37e53
--- /dev/null
+++ b/config/rootfiles/oldcore/172/core-files
@@ -0,0 +1,5 @@
+etc/system-release
+etc/issue
+etc/os-release
+srv/web/ipfire/cgi-bin/credits.cgi
+var/ipfire/langs
diff --git a/config/rootfiles/oldcore/172/exclude b/config/rootfiles/oldcore/172/exclude
new file mode 100644
index 000000000..378c2d563
--- /dev/null
+++ b/config/rootfiles/oldcore/172/exclude
@@ -0,0 +1,34 @@
+boot/config.txt
+boot/grub/grub.cfg
+boot/grub/grubenv
+boot/uEnv.txt
+etc/alternatives
+etc/collectd.custom
+etc/default/grub
+etc/ipsec.conf
+etc/ipsec.secrets
+etc/ipsec.user.conf
+etc/ipsec.user.secrets
+etc/localtime
+etc/shadow
+etc/snort/snort.conf
+etc/ssl/openssl.cnf
+etc/sudoers
+etc/sysconfig/firewall.local
+etc/sysconfig/rc.local
+etc/udev/rules.d/30-persistent-network.rules
+srv/web/ipfire/html/proxy.pac
+var/ipfire/dma
+var/ipfire/time
+var/ipfire/firewall/locationblock
+var/ipfire/fwhosts/customlocationgrp
+var/ipfire/ovpn
+var/ipfire/urlfilter/blacklist
+var/ipfire/urlfilter/settings
+var/lib/alternatives
+var/lib/location/database.db
+var/log/cache
+var/log/dhcpcd.log
+var/log/messages
+var/state/dhcp/dhcpd.leases
+var/updatecache
diff --git a/config/rootfiles/core/172/filelists/aarch64/u-boot b/config/rootfiles/oldcore/172/filelists/aarch64/u-boot
similarity index 100%
rename from config/rootfiles/core/172/filelists/aarch64/u-boot
rename to config/rootfiles/oldcore/172/filelists/aarch64/u-boot
diff --git a/config/rootfiles/core/172/filelists/apache2 b/config/rootfiles/oldcore/172/filelists/apache2
similarity index 100%
rename from config/rootfiles/core/172/filelists/apache2
rename to config/rootfiles/oldcore/172/filelists/apache2
diff --git a/config/rootfiles/core/172/filelists/armv6l/python3 b/config/rootfiles/oldcore/172/filelists/armv6l/python3
similarity index 100%
rename from config/rootfiles/core/172/filelists/armv6l/python3
rename to config/rootfiles/oldcore/172/filelists/armv6l/python3
diff --git a/config/rootfiles/core/172/filelists/armv6l/u-boot b/config/rootfiles/oldcore/172/filelists/armv6l/u-boot
similarity index 100%
rename from config/rootfiles/core/172/filelists/armv6l/u-boot
rename to config/rootfiles/oldcore/172/filelists/armv6l/u-boot
diff --git a/config/rootfiles/core/172/filelists/bash b/config/rootfiles/oldcore/172/filelists/bash
similarity index 100%
rename from config/rootfiles/core/172/filelists/bash
rename to config/rootfiles/oldcore/172/filelists/bash
diff --git a/config/rootfiles/core/172/filelists/bind b/config/rootfiles/oldcore/172/filelists/bind
similarity index 100%
rename from config/rootfiles/core/172/filelists/bind
rename to config/rootfiles/oldcore/172/filelists/bind
diff --git a/config/rootfiles/core/172/filelists/ca-certificates b/config/rootfiles/oldcore/172/filelists/ca-certificates
similarity index 100%
rename from config/rootfiles/core/172/filelists/ca-certificates
rename to config/rootfiles/oldcore/172/filelists/ca-certificates
diff --git a/config/rootfiles/core/172/filelists/conntrack-tools b/config/rootfiles/oldcore/172/filelists/conntrack-tools
similarity index 100%
rename from config/rootfiles/core/172/filelists/conntrack-tools
rename to config/rootfiles/oldcore/172/filelists/conntrack-tools
diff --git a/config/rootfiles/oldcore/172/filelists/core-files b/config/rootfiles/oldcore/172/filelists/core-files
new file mode 120000
index 000000000..709d6c14c
--- /dev/null
+++ b/config/rootfiles/oldcore/172/filelists/core-files
@@ -0,0 +1 @@
+../core-files
\ No newline at end of file
diff --git a/config/rootfiles/core/172/filelists/curl b/config/rootfiles/oldcore/172/filelists/curl
similarity index 100%
rename from config/rootfiles/core/172/filelists/curl
rename to config/rootfiles/oldcore/172/filelists/curl
diff --git a/config/rootfiles/core/172/filelists/elinks b/config/rootfiles/oldcore/172/filelists/elinks
similarity index 100%
rename from config/rootfiles/core/172/filelists/elinks
rename to config/rootfiles/oldcore/172/filelists/elinks
diff --git a/config/rootfiles/core/172/filelists/ethtool b/config/rootfiles/oldcore/172/filelists/ethtool
similarity index 100%
rename from config/rootfiles/core/172/filelists/ethtool
rename to config/rootfiles/oldcore/172/filelists/ethtool
diff --git a/config/rootfiles/core/172/filelists/expat b/config/rootfiles/oldcore/172/filelists/expat
similarity index 100%
rename from config/rootfiles/core/172/filelists/expat
rename to config/rootfiles/oldcore/172/filelists/expat
diff --git a/config/rootfiles/core/172/filelists/files b/config/rootfiles/oldcore/172/filelists/files
similarity index 100%
rename from config/rootfiles/core/172/filelists/files
rename to config/rootfiles/oldcore/172/filelists/files
diff --git a/config/rootfiles/core/172/filelists/iana-etc b/config/rootfiles/oldcore/172/filelists/iana-etc
similarity index 100%
rename from config/rootfiles/core/172/filelists/iana-etc
rename to config/rootfiles/oldcore/172/filelists/iana-etc
diff --git a/config/rootfiles/oldcore/172/filelists/iproute2 b/config/rootfiles/oldcore/172/filelists/iproute2
new file mode 120000
index 000000000..05f0f71fb
--- /dev/null
+++ b/config/rootfiles/oldcore/172/filelists/iproute2
@@ -0,0 +1 @@
+../../../common/iproute2
\ No newline at end of file
diff --git a/config/rootfiles/core/172/filelists/kmod b/config/rootfiles/oldcore/172/filelists/kmod
similarity index 100%
rename from config/rootfiles/core/172/filelists/kmod
rename to config/rootfiles/oldcore/172/filelists/kmod
diff --git a/config/rootfiles/core/172/filelists/libedit b/config/rootfiles/oldcore/172/filelists/libedit
similarity index 100%
rename from config/rootfiles/core/172/filelists/libedit
rename to config/rootfiles/oldcore/172/filelists/libedit
diff --git a/config/rootfiles/core/172/filelists/libhtp b/config/rootfiles/oldcore/172/filelists/libhtp
similarity index 100%
rename from config/rootfiles/core/172/filelists/libhtp
rename to config/rootfiles/oldcore/172/filelists/libhtp
diff --git a/config/rootfiles/core/172/filelists/libloc b/config/rootfiles/oldcore/172/filelists/libloc
similarity index 100%
rename from config/rootfiles/core/172/filelists/libloc
rename to config/rootfiles/oldcore/172/filelists/libloc
diff --git a/config/rootfiles/core/172/filelists/libnetfilter_conntrack b/config/rootfiles/oldcore/172/filelists/libnetfilter_conntrack
similarity index 100%
rename from config/rootfiles/core/172/filelists/libnetfilter_conntrack
rename to config/rootfiles/oldcore/172/filelists/libnetfilter_conntrack
diff --git a/config/rootfiles/core/172/filelists/libpng b/config/rootfiles/oldcore/172/filelists/libpng
similarity index 100%
rename from config/rootfiles/core/172/filelists/libpng
rename to config/rootfiles/oldcore/172/filelists/libpng
diff --git a/config/rootfiles/core/172/filelists/libtasn1 b/config/rootfiles/oldcore/172/filelists/libtasn1
similarity index 100%
rename from config/rootfiles/core/172/filelists/libtasn1
rename to config/rootfiles/oldcore/172/filelists/libtasn1
diff --git a/config/rootfiles/core/172/filelists/libtiff b/config/rootfiles/oldcore/172/filelists/libtiff
similarity index 100%
rename from config/rootfiles/core/172/filelists/libtiff
rename to config/rootfiles/oldcore/172/filelists/libtiff
diff --git a/config/rootfiles/core/172/filelists/libuv b/config/rootfiles/oldcore/172/filelists/libuv
similarity index 100%
rename from config/rootfiles/core/172/filelists/libuv
rename to config/rootfiles/oldcore/172/filelists/libuv
diff --git a/config/rootfiles/core/172/filelists/libxcrypt b/config/rootfiles/oldcore/172/filelists/libxcrypt
similarity index 100%
rename from config/rootfiles/core/172/filelists/libxcrypt
rename to config/rootfiles/oldcore/172/filelists/libxcrypt
diff --git a/config/rootfiles/core/172/filelists/libxml2 b/config/rootfiles/oldcore/172/filelists/libxml2
similarity index 100%
rename from config/rootfiles/core/172/filelists/libxml2
rename to config/rootfiles/oldcore/172/filelists/libxml2
diff --git a/config/rootfiles/core/172/filelists/lsof b/config/rootfiles/oldcore/172/filelists/lsof
similarity index 100%
rename from config/rootfiles/core/172/filelists/lsof
rename to config/rootfiles/oldcore/172/filelists/lsof
diff --git a/config/rootfiles/core/172/filelists/nano b/config/rootfiles/oldcore/172/filelists/nano
similarity index 100%
rename from config/rootfiles/core/172/filelists/nano
rename to config/rootfiles/oldcore/172/filelists/nano
diff --git a/config/rootfiles/core/172/filelists/openssh b/config/rootfiles/oldcore/172/filelists/openssh
similarity index 100%
rename from config/rootfiles/core/172/filelists/openssh
rename to config/rootfiles/oldcore/172/filelists/openssh
diff --git a/config/rootfiles/core/172/filelists/openssl b/config/rootfiles/oldcore/172/filelists/openssl
similarity index 100%
rename from config/rootfiles/core/172/filelists/openssl
rename to config/rootfiles/oldcore/172/filelists/openssl
diff --git a/config/rootfiles/core/172/filelists/openvpn b/config/rootfiles/oldcore/172/filelists/openvpn
similarity index 100%
rename from config/rootfiles/core/172/filelists/openvpn
rename to config/rootfiles/oldcore/172/filelists/openvpn
diff --git a/config/rootfiles/core/172/filelists/pciutils b/config/rootfiles/oldcore/172/filelists/pciutils
similarity index 100%
rename from config/rootfiles/core/172/filelists/pciutils
rename to config/rootfiles/oldcore/172/filelists/pciutils
diff --git a/config/rootfiles/core/172/filelists/poppler b/config/rootfiles/oldcore/172/filelists/poppler
similarity index 100%
rename from config/rootfiles/core/172/filelists/poppler
rename to config/rootfiles/oldcore/172/filelists/poppler
diff --git a/config/rootfiles/core/172/filelists/python3 b/config/rootfiles/oldcore/172/filelists/python3
similarity index 100%
rename from config/rootfiles/core/172/filelists/python3
rename to config/rootfiles/oldcore/172/filelists/python3
diff --git a/config/rootfiles/core/172/filelists/python3-daemon b/config/rootfiles/oldcore/172/filelists/python3-daemon
similarity index 100%
rename from config/rootfiles/core/172/filelists/python3-daemon
rename to config/rootfiles/oldcore/172/filelists/python3-daemon
diff --git a/config/rootfiles/core/172/filelists/python3-setuptools-rust b/config/rootfiles/oldcore/172/filelists/python3-setuptools-rust
similarity index 100%
rename from config/rootfiles/core/172/filelists/python3-setuptools-rust
rename to config/rootfiles/oldcore/172/filelists/python3-setuptools-rust
diff --git a/config/rootfiles/core/172/filelists/readline b/config/rootfiles/oldcore/172/filelists/readline
similarity index 100%
rename from config/rootfiles/core/172/filelists/readline
rename to config/rootfiles/oldcore/172/filelists/readline
diff --git a/config/rootfiles/core/172/filelists/sed b/config/rootfiles/oldcore/172/filelists/sed
similarity index 100%
rename from config/rootfiles/core/172/filelists/sed
rename to config/rootfiles/oldcore/172/filelists/sed
diff --git a/config/rootfiles/core/172/filelists/sqlite b/config/rootfiles/oldcore/172/filelists/sqlite
similarity index 100%
rename from config/rootfiles/core/172/filelists/sqlite
rename to config/rootfiles/oldcore/172/filelists/sqlite
diff --git a/config/rootfiles/core/172/filelists/strongswan b/config/rootfiles/oldcore/172/filelists/strongswan
similarity index 100%
rename from config/rootfiles/core/172/filelists/strongswan
rename to config/rootfiles/oldcore/172/filelists/strongswan
diff --git a/config/rootfiles/core/172/filelists/sudo b/config/rootfiles/oldcore/172/filelists/sudo
similarity index 100%
rename from config/rootfiles/core/172/filelists/sudo
rename to config/rootfiles/oldcore/172/filelists/sudo
diff --git a/config/rootfiles/core/172/filelists/suricata b/config/rootfiles/oldcore/172/filelists/suricata
similarity index 100%
rename from config/rootfiles/core/172/filelists/suricata
rename to config/rootfiles/oldcore/172/filelists/suricata
diff --git a/config/rootfiles/core/172/filelists/sysstat b/config/rootfiles/oldcore/172/filelists/sysstat
similarity index 100%
rename from config/rootfiles/core/172/filelists/sysstat
rename to config/rootfiles/oldcore/172/filelists/sysstat
diff --git a/config/rootfiles/core/172/filelists/tzdata b/config/rootfiles/oldcore/172/filelists/tzdata
similarity index 100%
rename from config/rootfiles/core/172/filelists/tzdata
rename to config/rootfiles/oldcore/172/filelists/tzdata
diff --git a/config/rootfiles/core/172/filelists/udev b/config/rootfiles/oldcore/172/filelists/udev
similarity index 100%
rename from config/rootfiles/core/172/filelists/udev
rename to config/rootfiles/oldcore/172/filelists/udev
diff --git a/config/rootfiles/core/172/filelists/unbound b/config/rootfiles/oldcore/172/filelists/unbound
similarity index 100%
rename from config/rootfiles/core/172/filelists/unbound
rename to config/rootfiles/oldcore/172/filelists/unbound
diff --git a/config/rootfiles/core/172/filelists/usbutils b/config/rootfiles/oldcore/172/filelists/usbutils
similarity index 100%
rename from config/rootfiles/core/172/filelists/usbutils
rename to config/rootfiles/oldcore/172/filelists/usbutils
diff --git a/config/rootfiles/core/172/filelists/vnstat b/config/rootfiles/oldcore/172/filelists/vnstat
similarity index 100%
rename from config/rootfiles/core/172/filelists/vnstat
rename to config/rootfiles/oldcore/172/filelists/vnstat
diff --git a/config/rootfiles/core/172/filelists/x86_64/intel-microcode b/config/rootfiles/oldcore/172/filelists/x86_64/intel-microcode
similarity index 100%
rename from config/rootfiles/core/172/filelists/x86_64/intel-microcode
rename to config/rootfiles/oldcore/172/filelists/x86_64/intel-microcode
diff --git a/config/rootfiles/core/172/filelists/xz b/config/rootfiles/oldcore/172/filelists/xz
similarity index 100%
rename from config/rootfiles/core/172/filelists/xz
rename to config/rootfiles/oldcore/172/filelists/xz
diff --git a/config/rootfiles/core/172/filelists/zlib b/config/rootfiles/oldcore/172/filelists/zlib
similarity index 100%
rename from config/rootfiles/core/172/filelists/zlib
rename to config/rootfiles/oldcore/172/filelists/zlib
diff --git a/config/rootfiles/core/172/update.sh b/config/rootfiles/oldcore/172/update.sh
similarity index 100%
rename from config/rootfiles/core/172/update.sh
rename to config/rootfiles/oldcore/172/update.sh
diff --git a/config/rootfiles/packages/dbus b/config/rootfiles/packages/dbus
index 82817a942..3f752c21e 100644
--- a/config/rootfiles/packages/dbus
+++ b/config/rootfiles/packages/dbus
@@ -40,7 +40,7 @@ usr/bin/dbus-uuidgen
 #usr/lib/libdbus-1.la
 #usr/lib/libdbus-1.so
 usr/lib/libdbus-1.so.3
-usr/lib/libdbus-1.so.3.32.0
+usr/lib/libdbus-1.so.3.32.1
 #usr/lib/pkgconfig/dbus-1.pc
 usr/libexec/dbus-daemon-launch-helper
 #usr/share/dbus-1
diff --git a/config/rootfiles/packages/libshout b/config/rootfiles/packages/libshout
index ed781ffdf..411b786b9 100644
--- a/config/rootfiles/packages/libshout
+++ b/config/rootfiles/packages/libshout
@@ -1,3 +1,4 @@
+#usr/bin/shout
 #usr/include/shout
 #usr/include/shout/shout.h
 #usr/lib/ckport
@@ -16,3 +17,4 @@ usr/lib/libshout.so.3.2.0
 #usr/share/doc/libshout/README
 #usr/share/doc/libshout/example.c
 #usr/share/doc/libshout/nonblocking.c
+#usr/share/man/man1/shout.1
diff --git a/config/rootfiles/packages/libusbredir b/config/rootfiles/packages/libusbredir
index d5f8817f2..cc8f5dc8e 100644
--- a/config/rootfiles/packages/libusbredir
+++ b/config/rootfiles/packages/libusbredir
@@ -1,18 +1,14 @@
+#usr/bin/usbredirect
 #usr/include/usbredirfilter.h
 #usr/include/usbredirhost.h
 #usr/include/usbredirparser.h
 #usr/include/usbredirproto.h
-#usr/lib/libusbredirhost.a
-#usr/lib/libusbredirhost.la
 usr/lib/libusbredirhost.so
 usr/lib/libusbredirhost.so.1
-usr/lib/libusbredirhost.so.1.0.1
-#usr/lib/libusbredirparser.a
-#usr/lib/libusbredirparser.la
+usr/lib/libusbredirhost.so.1.0.3
 usr/lib/libusbredirparser.so
 usr/lib/libusbredirparser.so.1
-usr/lib/libusbredirparser.so.1.0.1
+usr/lib/libusbredirparser.so.1.2.1
 #usr/lib/pkgconfig/libusbredirhost.pc
 #usr/lib/pkgconfig/libusbredirparser-0.5.pc
-#usr/sbin/usbredirserver
-#usr/share/man/man1/usbredirserver.1
+#usr/share/man/man1/usbredirect.1
diff --git a/config/rootfiles/packages/libvirt b/config/rootfiles/packages/libvirt
index 5682b73c8..8b3819aa5 100644
--- a/config/rootfiles/packages/libvirt
+++ b/config/rootfiles/packages/libvirt
@@ -60,6 +60,7 @@ usr/bin/virt-pki-query-dn
 usr/bin/virt-pki-validate
 usr/bin/virt-qemu-qmp-proxy
 usr/bin/virt-qemu-run
+usr/bin/virt-qemu-sev-validate
 usr/bin/virt-ssh-helper
 usr/bin/virt-xml-validate
 #usr/include/libvirt
@@ -84,16 +85,16 @@ usr/bin/virt-xml-validate
 #usr/lib/libvirt
 #usr/lib/libvirt-admin.so
 usr/lib/libvirt-admin.so.0
-usr/lib/libvirt-admin.so.0.8009.0
+usr/lib/libvirt-admin.so.0.8010.0
 #usr/lib/libvirt-lxc.so
 usr/lib/libvirt-lxc.so.0
-usr/lib/libvirt-lxc.so.0.8009.0
+usr/lib/libvirt-lxc.so.0.8010.0
 #usr/lib/libvirt-qemu.so
 usr/lib/libvirt-qemu.so.0
-usr/lib/libvirt-qemu.so.0.8009.0
+usr/lib/libvirt-qemu.so.0.8010.0
 #usr/lib/libvirt.so
 usr/lib/libvirt.so.0
-usr/lib/libvirt.so.0.8009.0
+usr/lib/libvirt.so.0.8010.0
 #usr/lib/libvirt/connection-driver
 usr/lib/libvirt/connection-driver/libvirt_driver_ch.so
 usr/lib/libvirt/connection-driver/libvirt_driver_interface.so
@@ -317,6 +318,7 @@ usr/share/libvirt/schemas/nodedev.rng
 usr/share/libvirt/schemas/nwfilter.rng
 usr/share/libvirt/schemas/nwfilter_params.rng
 usr/share/libvirt/schemas/nwfilterbinding.rng
+usr/share/libvirt/schemas/privatedata.rng
 usr/share/libvirt/schemas/secret.rng
 usr/share/libvirt/schemas/storagecommon.rng
 usr/share/libvirt/schemas/storagepool.rng
diff --git a/config/udev/network-hotplug-rename b/config/udev/network-hotplug-rename
index 73e811e94..7c81bdb78 100644
--- a/config/udev/network-hotplug-rename
+++ b/config/udev/network-hotplug-rename
@@ -19,6 +19,8 @@
 #                                                                             #
 ###############################################################################
 
+. /etc/rc.d/init.d/networking/functions.network
+
 # Check if all appropriate variables are set
 [ -n "${INTERFACE}" ] || exit 2
 
@@ -44,6 +46,13 @@ if [ ! -r "/var/ipfire/ethernet/settings" ]; then
 	exit 1
 fi
 
+# Change MAC addresses of QMI interface
+if [ -d "/sys/class/net/${INTERFACE}/qmi" ]; then
+	if ! qmi_assign_address "${INTERFACE}"; then
+		exit 1
+	fi
+fi
+
 # Read network settings
 eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
 
diff --git a/doc/language_issues.de b/doc/language_issues.de
index c3db84863..88c7879be 100644
--- a/doc/language_issues.de
+++ b/doc/language_issues.de
@@ -376,7 +376,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -424,10 +423,6 @@ WARNING: translation string unused: ipblocklist category scanner
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: ipsec no connections
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
@@ -868,6 +863,9 @@ WARNING: translation string unused: zoneconf val vlan amount assignment error
 WARNING: translation string unused: zoneconf val vlan tag assignment error
 WARNING: translation string unused: zoneconf val vlan tag range error
 WARNING: translation string unused: zoneconf val zoneslave amount error
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: aliases default interface = - Default Interface -
 WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
 WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
diff --git a/doc/language_issues.en b/doc/language_issues.en
index 0bf7bf977..c29e3bed6 100644
--- a/doc/language_issues.en
+++ b/doc/language_issues.en
@@ -89,6 +89,9 @@ WARNING: untranslated string: a ca certificate with this name already exists = A
 WARNING: untranslated string: a connection with this common name already exists = A connection with this common name already exists.
 WARNING: untranslated string: a connection with this name already exists = A connection with this name already exists.
 WARNING: untranslated string: abort = abort
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: action = Action
 WARNING: untranslated string: activate = Activate
diff --git a/doc/language_issues.es b/doc/language_issues.es
index 2254e484f..0bd390d5d 100644
--- a/doc/language_issues.es
+++ b/doc/language_issues.es
@@ -415,7 +415,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -939,6 +938,9 @@ WARNING: translation string unused: zoneconf val zoneslave amount error
 WARNING: untranslated string: Captive ACTIVATE = unknown string
 WARNING: untranslated string: Captive clients = unknown string
 WARNING: untranslated string: Scan for Songs = unknown string
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: bytes = unknown string
 WARNING: untranslated string: cpu frequency = CPU frequency
 WARNING: untranslated string: dns servers = DNS Servers
diff --git a/doc/language_issues.fr b/doc/language_issues.fr
index 1a6a877d7..56d69d86e 100644
--- a/doc/language_issues.fr
+++ b/doc/language_issues.fr
@@ -404,7 +404,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -454,10 +453,6 @@ WARNING: translation string unused: ipblocklist category scanner
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: ipsec no connections
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
@@ -910,6 +905,9 @@ WARNING: translation string unused: zoneconf val vlan amount assignment error
 WARNING: translation string unused: zoneconf val vlan tag assignment error
 WARNING: translation string unused: zoneconf val vlan tag range error
 WARNING: translation string unused: zoneconf val zoneslave amount error
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: advproxy errmsg invalid url = Invalid URL
 WARNING: untranslated string: core notice 3 = available.
 WARNING: untranslated string: dh = Diffie-Hellman-Parameter
diff --git a/doc/language_issues.it b/doc/language_issues.it
index e0c87ea2c..9999f947c 100644
--- a/doc/language_issues.it
+++ b/doc/language_issues.it
@@ -372,7 +372,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -417,10 +416,6 @@ WARNING: translation string unused: ip address in use
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: ipsec no connections
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
@@ -888,6 +883,9 @@ WARNING: untranslated string: Captive wrong ext = Uploaded file has wrong filety
 WARNING: untranslated string: MTU settings = MTU settings:
 WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs = unknown string
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: administrator password = Administrator password
 WARNING: untranslated string: administrator username = Administrator username
diff --git a/doc/language_issues.nl b/doc/language_issues.nl
index da08fb913..14a7b420e 100644
--- a/doc/language_issues.nl
+++ b/doc/language_issues.nl
@@ -374,7 +374,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -419,10 +418,6 @@ WARNING: translation string unused: ip address in use
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: ipsec no connections
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
@@ -888,6 +883,9 @@ WARNING: untranslated string: Captive wrong ext = Uploaded file has wrong filety
 WARNING: untranslated string: MTU settings = MTU settings:
 WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs = unknown string
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: administrator password = Administrator password
 WARNING: untranslated string: administrator username = Administrator username
diff --git a/doc/language_issues.pl b/doc/language_issues.pl
index 5de989453..a53a208d9 100644
--- a/doc/language_issues.pl
+++ b/doc/language_issues.pl
@@ -315,7 +315,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -359,10 +358,6 @@ WARNING: translation string unused: invert
 WARNING: translation string unused: ip address in use
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
@@ -808,6 +803,9 @@ WARNING: untranslated string: MB written = MB written
 WARNING: untranslated string: MTU settings = MTU settings:
 WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs = unknown string
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: addons = Add-Ons
 WARNING: untranslated string: administrator password = Administrator password
diff --git a/doc/language_issues.ru b/doc/language_issues.ru
index 81a492358..c5dc1aa61 100644
--- a/doc/language_issues.ru
+++ b/doc/language_issues.ru
@@ -312,7 +312,6 @@ WARNING: translation string unused: host configuration
 WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -356,10 +355,6 @@ WARNING: translation string unused: invert
 WARNING: translation string unused: ip address in use
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
@@ -804,6 +799,9 @@ WARNING: untranslated string: MB written = MB written
 WARNING: untranslated string: MTU settings = MTU settings:
 WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs = unknown string
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: addons = Add-Ons
 WARNING: untranslated string: administrator password = Administrator password
diff --git a/doc/language_issues.tr b/doc/language_issues.tr
index d1bd0f4e9..552082a96 100644
--- a/doc/language_issues.tr
+++ b/doc/language_issues.tr
@@ -398,7 +398,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -443,10 +442,6 @@ WARNING: translation string unused: ip address in use
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: ipsec no connections
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
@@ -882,6 +877,9 @@ WARNING: translation string unused: yearly firewallhits
 WARNING: untranslated string: Captive clients = unknown string
 WARNING: untranslated string: Captive delete logo = Delete Logo
 WARNING: untranslated string: Scan for Songs = unknown string
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: advproxy asbased anomaly detection = Anomaly detections based on Autonomous Systems information
 WARNING: untranslated string: advproxy errmsg invalid url = Invalid URL
diff --git a/doc/language_missings b/doc/language_missings
index 47b314981..65d38b422 100644
--- a/doc/language_missings
+++ b/doc/language_missings
@@ -1,6 +1,9 @@
 ############################################################################
 # Checking cgi-bin translations for language: de                           #
 ############################################################################
+< access point name
+< access point name is invalid
+< access point name is required
 < advproxy update information
 < aliases default interface
 < ansi t1.483
@@ -94,6 +97,9 @@
 ############################################################################
 # Checking cgi-bin translations for language: es                           #
 ############################################################################
+< access point name
+< access point name is invalid
+< access point name is required
 < addon
 < cpu frequency
 < dns servers
@@ -106,6 +112,9 @@
 ############################################################################
 # Checking cgi-bin translations for language: fr                           #
 ############################################################################
+< access point name
+< access point name is invalid
+< access point name is required
 < advproxy errmsg invalid url
 < ansi t1.483
 < bewan adsl pci st
@@ -123,6 +132,9 @@
 # Checking cgi-bin translations for language: it                           #
 ############################################################################
 < 24 hours
+< access point name
+< access point name is invalid
+< access point name is required
 < acpitemp
 < addon
 < administrator password
@@ -622,6 +634,9 @@
 # Checking cgi-bin translations for language: nl                           #
 ############################################################################
 < 24 hours
+< access point name
+< access point name is invalid
+< access point name is required
 < acpitemp
 < administrator password
 < administrator username
@@ -1149,6 +1164,9 @@
 # Checking cgi-bin translations for language: pl                           #
 ############################################################################
 < 24 hours
+< access point name
+< access point name is invalid
+< access point name is required
 < acpitemp
 < addon
 < addons
@@ -2121,6 +2139,9 @@
 # Checking cgi-bin translations for language: ru                           #
 ############################################################################
 < 24 hours
+< access point name
+< access point name is invalid
+< access point name is required
 < acpitemp
 < Add a route
 < addon
@@ -3099,6 +3120,9 @@
 ############################################################################
 # Checking cgi-bin translations for language: tr                           #
 ############################################################################
+< access point name
+< access point name is invalid
+< access point name is required
 < acpitemp
 < addon
 < advproxy asbased anomaly detection
diff --git a/html/cgi-bin/credits.cgi b/html/cgi-bin/credits.cgi
index f4a7fee9f..4d88eb5f2 100644
--- a/html/cgi-bin/credits.cgi
+++ b/html/cgi-bin/credits.cgi
@@ -82,14 +82,14 @@ Peter Pfeiffer,
 Daniel Glanzmann,
 Heiner Schmeling,
 Stephan Feddersen,
-Stéphane Pautrel,
 Robin Roevens,
+Stéphane Pautrel,
 Tim FitzGeorge,
 Jan Lentfer,
 Marcus Scholz,
 Ersan Yildirim,
-Jörn-Ingo Weigert,
 Jon Murphy,
+Jörn-Ingo Weigert,
 Alexander Koch,
 Wolfgang Apolinarski,
 Alfred Haas,
@@ -100,6 +100,7 @@ Bernhard Bitsch,
 Ronald Wiesinger,
 Florian Bührle,
 Justin Luth,
+Mathew McBride,
 Michael Eitelwein,
 Rob Brewer,
 Alex Koch,
@@ -137,7 +138,6 @@ Kay-Michael Köhler,
 Kim Wölfel,
 Logan Schmidt,
 Markus Untersee,
-Mathew McBride,
 Nico Prenzel,
 Oliver Fuhrer,
 Osmar Gonzalez,
diff --git a/html/cgi-bin/pppsetup.cgi b/html/cgi-bin/pppsetup.cgi
index 7fbb46a77..ef9a4b3f0 100644
--- a/html/cgi-bin/pppsetup.cgi
+++ b/html/cgi-bin/pppsetup.cgi
@@ -32,7 +32,6 @@ require "${General::swroot}/header.pl";
 our %pppsettings=();
 my %temppppsettings=();
 our %modemsettings=();
-our %isdnsettings=();
 our %netsettings=();
 my %selected=();
 my %checked=();
@@ -63,7 +62,7 @@ if ($pppsettings{'ACTION'} ne '' &&
         &General::readhash("${General::swroot}/ppp/settings", \%pppsettings);}
 elsif ($pppsettings{'ACTION'} eq $Lang::tr{'refresh'})
 {
-        unless ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn|pppoe|pptp|vdsl|pppoeatm|pptpatm)$/) {
+        unless ($pppsettings{'TYPE'} =~ /^(modem|serial|pppoe|pptp|vdsl|pppoeatm|pptpatm)$/) {
                 $errormessage = $Lang::tr{'invalid input'};
                 goto ERROR; }
         my $type = $pppsettings{'TYPE'};
@@ -72,10 +71,10 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'refresh'})
 }
 elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'})
 {
-        if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/ && $pppsettings{'COMPORT'} !~ /^(ttyS0|ttyS1|ttyS2|ttyS3|ttyS4|ttyACM[0-9]|ttyUSB[0-9]|rfcomm0|rfcomm1|isdn1|isdn2)$/) {
+        if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ && $pppsettings{'COMPORT'} !~ /^(ttyS0|ttyS1|ttyS2|ttyS3|ttyS4|ttyACM[0-9]|ttyUSB[0-9]|rfcomm0|rfcomm1)$/) {
                 $errormessage = $Lang::tr{'invalid input'};
                 goto ERROR; }
-        if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/ && $pppsettings{'MONPORT'} !~ /^(|ttyACM[0-9]|ttyUSB[0-9]|rfcomm0|rfcomm1)$/) {
+        if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ && $pppsettings{'MONPORT'} !~ /^(|ttyACM[0-9]|ttyUSB[0-9]|rfcomm0|rfcomm1)$/) {
                 $errormessage = $Lang::tr{'invalid input'};
                 goto ERROR; }
         if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ && $pppsettings{'DTERATE'} !~ /^(9600|19200|38400|57600|115200|230400|460800|921600)$/) {
@@ -88,12 +87,22 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'})
                 $errormessage = $Lang::tr{'invalid input'};
                 goto ERROR;
         }
+	if ($pppsettings{'TYPE'} eq "qmi") {
+		# APN cannot be empty
+		if ($pppsettings{'APN'} eq "") {
+			$errormessage = $Lang::tr{'access point name is required'};
+			goto ERROR;
+		} elsif (!&General::validdomainname($pppsettings{'APN'})) {
+			$errormessage = $Lang::tr{'access point name is invalid'};
+			goto ERROR;
+		}
+	}
 
         if ($pppsettings{'PROFILENAME'} eq '') {
                 $errormessage = $Lang::tr{'profile name not given'};
                 $pppsettings{'PROFILENAME'} = '';
                 goto ERROR; }
-        if ($pppsettings{'TYPE'} =~ /^(modem|isdn)$/) {
+        if ($pppsettings{'TYPE'} =~ /^(modem)$/) {
                 if ($pppsettings{'TELEPHONE'} eq '') {
                         $errormessage = $Lang::tr{'telephone not set'};
                         goto ERROR; }
@@ -524,6 +533,7 @@ print <<END
 	<option value='pppoe' $selected{'TYPE'}{'pppoe'}>PPPoE</option>
 	<option value='pptp' $selected{'TYPE'}{'pptp'}>PPTP</option>
 	<option value='vdsl' $selected{'TYPE'}{'vdsl'}>VDSL</option>
+	<option value='qmi' $selected{'TYPE'}{'qmi'}>QMI</option>
 END
 ;
 
@@ -720,7 +730,8 @@ END
 ;
 }
 
-print <<END
+if ($pppsettings{'TYPE'} ne "qmi") {
+	print <<END
 <tr>
         <td colspan='3' width='75%'>$Lang::tr{'idle timeout'}&nbsp;<img src='/blob.gif' alt='*' /></td>
         <td width='25%'><input type='text' name='TIMEOUT' value='$pppsettings{'TIMEOUT'}' /></td>
@@ -739,8 +750,7 @@ print <<END
  </tr>
 END
 ;
-if ($pppsettings{'TYPE'} ne 'isdn') {
-print <<END
+	print <<END
  <tr>
         <td colspan='4' width='100%'><input type='radio' name='RECONNECTION' value='persistent' $checked{'RECONNECTION'}{'persistent'}>$Lang::tr{'persistent'}</td>
  </tr>
@@ -755,11 +765,7 @@ END
         print <<END
         </select></td>
 </tr>
-END
-;
-}
-print <<END
- <tr>
+<tr>
         <td colspan='3' width='75%'>$Lang::tr{'dod for dns'}</td>
   <td width='25%'><input type='checkbox' name='DIALONDEMANDDNS' $checked{'DIALONDEMANDDNS'}{'on'} /></td>
 </tr>
@@ -773,6 +779,7 @@ print <<END
 </tr>
 END
 ;
+}
 
 if ($pppsettings{'TYPE'} eq 'pptp')
 {
@@ -892,28 +899,30 @@ END
 ;
 }
 
-print <<END
+print <<END;
 <tr><td colspan='4' width='100%'><br></br></td></tr>
 <tr>
-        <td bgcolor='$color{'color20'}' colspan='4' width='100%'><b>MTU/MRU</b></td>
-</tr>
-<tr>
-<tr>
-        <td width='25%'>MTU:</td>
-        <td width='25%'><input type='text' name='MTU' value='$pppsettings{'MTU'}' /></td>
-</tr>
-<tr>
-        <td width='25%'>MRU:</td>
-        <td width='25%'><input type='text' name='MRU' value='$pppsettings{'MRU'}' /></td>
+        <td bgcolor='$color{'color20'}' colspan='4' width='100%'><b>$Lang::tr{'authentication'}</b></td>
 </tr>
 END
-;
+
+# Ask for the APN for QMI
+if ($pppsettings{'TYPE'} eq 'qmi') {
+	print <<END;
+		<tr>
+			<td width="25%">
+				$Lang::tr{'access point name'}
+				&nbsp;
+				<img src='/blob.gif' alt='*'/>
+			</td>
+			<td colspan="3" width="75%">
+				<input type="text" name="APN" value="$pppsettings{'APN'}" />
+			</td>
+		</tr>
+END
+}
 
 print <<END
-<tr><td colspan='4' width='100%'><br></br></td></tr>
-<tr>
-        <td bgcolor='$color{'color20'}' colspan='4' width='100%'><b>$Lang::tr{'authentication'}</b></td>
-</tr>
 <tr>
         <td width='25%'>$Lang::tr{'username'}&nbsp;<img src='/blob.gif' alt='*' /></td>
         <td width='25%'><input type='text' name='USERNAME' value='$pppsettings{'USERNAME'}' /></td>
@@ -941,6 +950,19 @@ print <<END
         <td width='25%'>$Lang::tr{'script name'}</td>
         <td width='25%'><input type='text' name='LOGINSCRIPT' value='$pppsettings{'LOGINSCRIPT'}' /></td>
 </tr>
+<tr><td colspan='4' width='100%'><br></br></td></tr>
+<tr>
+        <td bgcolor='$color{'color20'}' colspan='4' width='100%'><b>MTU/MRU</b></td>
+</tr>
+<tr>
+<tr>
+        <td width='25%'>MTU:</td>
+        <td width='25%'><input type='text' name='MTU' value='$pppsettings{'MTU'}' /></td>
+</tr>
+<tr>
+        <td width='25%'>MRU:</td>
+        <td width='25%'><input type='text' name='MRU' value='$pppsettings{'MRU'}' /></td>
+</tr>
 <tr><td colspan='4' width='100%'><br></br><hr></hr><br></br></td></tr>
 <tr>
         <td width='25%'>$Lang::tr{'profile name'}&nbsp;<img src='/blob.gif' alt='*' /></td>
diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl
index 457a7108c..5fbab2ff8 100644
--- a/langs/de/cgi-bin/de.pl
+++ b/langs/de/cgi-bin/de.pl
@@ -1366,7 +1366,6 @@
 'hour-graph' => 'Stunde',
 'hours' => 'Stunden',
 'hours2' => 'Stunden',
-'ibod for dual isdn only' => 'iBOD kann nur bei ISDN-Kanalbündelung genutzt werden.',
 'icmp selected but no type' => 'ICMP wurde zwar als Protokoll gewählt, es wurde aber kein ICMP-Typ angegeben.',
 'icmp type' => 'ICMP-Typ',
 'id' => 'ID',
@@ -1579,10 +1578,6 @@
 'iptmangles' => 'IPTable Mangles',
 'iptnats' => 'IPTable Network Address Translation',
 'ipts' => 'iptables',
-'isdn' => 'ISDN',
-'isdn settings' => 'Zusätzliche ISDN-Einstellungen:',
-'isdn1' => 'Einfaches ISDN',
-'isdn2' => 'ISDN-Kanalbündelung',
 'itlb multihit' => 'iTLB MultiHit',
 'january' => 'Januar',
 'javascript menu error1' => 'Wenn die Drop-down-Menus nicht funktionieren, deaktivieren Sie Javascript auf der',
diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
index 72cef9a11..80753b841 100644
--- a/langs/en/cgi-bin/en.pl
+++ b/langs/en/cgi-bin/en.pl
@@ -129,6 +129,9 @@
 'a connection with this name already exists' => 'A connection with this name already exists.',
 'abort' => 'abort',
 'access allowed' => 'Access allowed from:',
+'access point name' => 'Access Point Name',
+'access point name is invalid' => 'Access Point Name is invalid',
+'access point name is required' => 'Access Point Name is required',
 'access refused with this oinkcode' => 'Access refused with this Oink Code',
 'accounting' => 'Accounting',
 'accounting user nonpdc' => 'Accounting - none PDC Mode',
@@ -1411,7 +1414,6 @@
 'hour-graph' => 'Hour',
 'hours' => 'Hours',
 'hours2' => 'Hours',
-'ibod for dual isdn only' => 'iBOD can only be used with Dual ISDN.',
 'icmp selected but no type' => 'ICMP selected for protocol, but no ICMP type specified.',
 'icmp type' => 'ICMP Type',
 'id' => 'ID',
@@ -1628,10 +1630,6 @@
 'iptmangles' => 'IPTable Mangles',
 'iptnats' => 'IPTable Network Address Translation',
 'ipts' => 'iptables',
-'isdn' => 'ISDN',
-'isdn settings' => 'Additional ISDN settings:',
-'isdn1' => 'Single ISDN',
-'isdn2' => 'Dual ISDN',
 'itlb multihit' => 'iTLB MultiHit',
 'january' => 'January',
 'javascript menu error1' => 'If the drop down menus aren\'t working, disable javascript on the',
diff --git a/langs/es/cgi-bin/es.pl b/langs/es/cgi-bin/es.pl
index 022d390fa..3daca873c 100644
--- a/langs/es/cgi-bin/es.pl
+++ b/langs/es/cgi-bin/es.pl
@@ -1420,7 +1420,6 @@
 'hour-graph' => 'Hora',
 'hours' => 'horas',
 'hours2' => 'Horas',
-'ibod for dual isdn only' => 'iBPD sólo puede usarse con ISDN dual',
 'icmp selected but no type' => 'ICMP seleccionado como protocolo, pero no se ha seleccionado tipo de ICMP.',
 'icmp type' => 'Tipo de  ICMP',
 'id' => 'ID',
diff --git a/langs/fr/cgi-bin/fr.pl b/langs/fr/cgi-bin/fr.pl
index bfd3f9b5e..aa0697efc 100644
--- a/langs/fr/cgi-bin/fr.pl
+++ b/langs/fr/cgi-bin/fr.pl
@@ -1411,7 +1411,6 @@
 'hour-graph' => 'Heure',
 'hours' => 'heure(s)',
 'hours2' => 'Heures',
-'ibod for dual isdn only' => 'iBOD peut seulement être utilisé avec un double ISDN.',
 'icmp selected but no type' => 'ICMP est le protocole sélectionné, mais il n\'y a aucun type ICMP spécifié.',
 'icmp type' => 'Type ICMP',
 'id' => 'ID',
@@ -1631,10 +1630,6 @@
 'iptmangles' => 'Table IP Mangle ',
 'iptnats' => 'Traduction d\'adresses réseaux table IP ',
 'ipts' => 'Tables IP ',
-'isdn' => 'RNIS',
-'isdn settings' => 'Réglages RNIS supplémentaires :',
-'isdn1' => 'RNIS unique',
-'isdn2' => 'RNIS double',
 'itlb multihit' => 'ITLB - erreur vérification machine',
 'january' => 'Janvier',
 'javascript menu error1' => 'Si les menus déroulants ne fonctionnent pas, désactivez le Javascript sur la',
diff --git a/langs/it/cgi-bin/it.pl b/langs/it/cgi-bin/it.pl
index 40575b404..7526d67ad 100644
--- a/langs/it/cgi-bin/it.pl
+++ b/langs/it/cgi-bin/it.pl
@@ -1204,7 +1204,6 @@
 'hour-graph' => 'Ora',
 'hours' => 'Ore',
 'hours2' => 'Ore',
-'ibod for dual isdn only' => 'iBOD can only be used with Dual ISDN.',
 'icmp selected but no type' => 'ICMP selected for protocol, but no ICMP type specified.',
 'icmp type' => 'ICMP Type',
 'id' => 'ID',
@@ -1339,10 +1338,6 @@
 'iptmangles' => 'IPTable Mangles',
 'iptnats' => 'IPTable Network Address Translation',
 'ipts' => 'iptables',
-'isdn' => 'ISDN',
-'isdn settings' => 'Additional ISDN settings:',
-'isdn1' => 'Single ISDN',
-'isdn2' => 'Dual ISDN',
 'january' => 'Gennaio',
 'javascript menu error1' => 'If the drop down menus aren\'t working, disable javascript on the',
 'javascript menu error2' => 'page.',
diff --git a/langs/nl/cgi-bin/nl.pl b/langs/nl/cgi-bin/nl.pl
index 865cfc5b3..4da924a74 100644
--- a/langs/nl/cgi-bin/nl.pl
+++ b/langs/nl/cgi-bin/nl.pl
@@ -1200,7 +1200,6 @@
 'hour-graph' => 'Uur',
 'hours' => 'uren',
 'hours2' => 'Uren',
-'ibod for dual isdn only' => 'iBOD kan alleen gebruikt worden met Dual ISDN.',
 'icmp selected but no type' => 'ICMP als protocol geselecteerd, maar er is geen ICMP type gespecificeerd.',
 'icmp type' => 'ICMP Type',
 'id' => 'ID',
@@ -1333,10 +1332,6 @@
 'iptmangles' => 'IPTable Mangles',
 'iptnats' => 'IPTable Network Adrestranslatie',
 'ipts' => 'iptables',
-'isdn' => 'ISDN',
-'isdn settings' => 'Extra ISDN instellingen:',
-'isdn1' => 'Single ISDN',
-'isdn2' => 'Dual ISDN',
 'january' => 'Januari',
 'javascript menu error1' => 'Als de menu\'s niet werken, schakel dan javascript uit op de',
 'javascript menu error2' => 'pagina.',
diff --git a/langs/pl/cgi-bin/pl.pl b/langs/pl/cgi-bin/pl.pl
index eba6fd098..6ff2dab7b 100644
--- a/langs/pl/cgi-bin/pl.pl
+++ b/langs/pl/cgi-bin/pl.pl
@@ -912,7 +912,6 @@
 'hour-graph' => 'Godzina',
 'hours' => 'Godziny',
 'hours2' => 'Godziny',
-'ibod for dual isdn only' => 'iBOD can only be used with Dual ISDN.',
 'icmp selected but no type' => 'Wybrano protokół ICMP, ale nie określono typu ICMP.',
 'icmp type' => 'Typ ICMP',
 'id' => 'ID',
@@ -1038,10 +1037,6 @@
 'iptmangles' => 'IPTable Mangles',
 'iptnats' => 'IPTable Network Address Translation',
 'ipts' => 'iptables',
-'isdn' => 'ISDN',
-'isdn settings' => 'Dodatkowe ustawienia ISDN:',
-'isdn1' => 'Pojedynczy ISDN',
-'isdn2' => 'Podwójny ISDN',
 'january' => 'Styczeń',
 'javascript menu error1' => 'Jeżeli rozwijane menu nie działają poprawnie wyłącz javascript na',
 'javascript menu error2' => 'stronie.',
diff --git a/langs/ru/cgi-bin/ru.pl b/langs/ru/cgi-bin/ru.pl
index 9e2b02d71..78a43c7d6 100644
--- a/langs/ru/cgi-bin/ru.pl
+++ b/langs/ru/cgi-bin/ru.pl
@@ -906,7 +906,6 @@
 'hour' => 'Час',
 'hours' => 'Часы',
 'hours2' => 'Часы',
-'ibod for dual isdn only' => 'iBOD can only be used with Dual ISDN.',
 'icmp selected but no type' => 'ICMP selected for protocol, but no ICMP type specified.',
 'icmp type' => 'ICMP Type',
 'id' => 'ID',
@@ -1031,10 +1030,6 @@
 'iptmangles' => 'IPTable Mangles',
 'iptnats' => 'IPTable Network Address Translation',
 'ipts' => 'iptables',
-'isdn' => 'ISDN',
-'isdn settings' => 'Additional ISDN settings:',
-'isdn1' => 'Single ISDN',
-'isdn2' => 'Dual ISDN',
 'january' => 'Январь',
 'javascript menu error1' => 'If the drop down menus aren\'t working, disable javascript on the',
 'javascript menu error2' => 'page.',
diff --git a/langs/tr/cgi-bin/tr.pl b/langs/tr/cgi-bin/tr.pl
index ad5567ce1..45fc16144 100644
--- a/langs/tr/cgi-bin/tr.pl
+++ b/langs/tr/cgi-bin/tr.pl
@@ -1317,7 +1317,6 @@
 'hour-graph' => 'saat',
 'hours' => 'saat',
 'hours2' => 'saat',
-'ibod for dual isdn only' => 'iBOD yalnızca çift ISDN ile kullanılabilir.',
 'icmp selected but no type' => 'ICMP kuralı için seçildi ancak ICMP türü belirtildi.',
 'icmp type' => 'ICMP Türü',
 'id' => 'Kimlik Numarası (ID)',
@@ -1457,10 +1456,6 @@
 'iptmangles' => 'IPTablo sıkıştırmaları',
 'iptnats' => 'IPTablo ağ adres çevrimi',
 'ipts' => 'IPTablolar',
-'isdn' => 'ISDN',
-'isdn settings' => 'Ek ISDN ayarları:',
-'isdn1' => 'Tek ISDN',
-'isdn2' => 'Çift ISDN',
 'january' => 'Ocak',
 'javascript menu error1' => 'Eğer aşağı açılır listeler çalışmıyorsa javascript seçeneğini devre dışı bırakın',
 'javascript menu error2' => 'sayfa.',
diff --git a/lfs/avahi b/lfs/avahi
index 1628fe17b..17857bfe3 100644
--- a/lfs/avahi
+++ b/lfs/avahi
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info(a)ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info(a)ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -34,7 +34,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET = $(DIR_INFO)/$(THISAPP)
 PROG       = avahi
-PAK_VER    = 10
+PAK_VER    = 11
 
 DEPS       = dbus libdaemon
 
diff --git a/lfs/configroot b/lfs/configroot
index ef92f5f08..2c09ae4a8 100644
--- a/lfs/configroot
+++ b/lfs/configroot
@@ -51,7 +51,7 @@ $(TARGET) :
 
 	# Create all directories
 	for i in addon-lang auth backup ca captive certs connscheduler crls ddns dhcp dhcpc dns dnsforward \
-			ethernet extrahd/bin fwlogs fwhosts firewall ipblocklist isdn key langs logging mac main \
+			ethernet extrahd/bin fwlogs fwhosts firewall ipblocklist key langs logging mac main \
 			menu.d modem optionsfw \
 			ovpn patches pakfire portfw ppp private proxy/advanced/cre \
 			proxy/calamaris/bin qos/bin red remote sensors suricata time \
@@ -66,7 +66,7 @@ $(TARGET) :
 	    dhcp/fixleases dhcp/advoptions dhcp/dhcpd.conf.local dns/settings dns/servers dnsforward/config ethernet/aliases ethernet/settings ethernet/known_nics ethernet/scanned_nics \
 	    ethernet/wireless extrahd/scan extrahd/devices extrahd/partitions extrahd/settings firewall/settings firewall/config firewall/locationblock firewall/input firewall/outgoing \
 	    fwhosts/customnetworks fwhosts/customhosts fwhosts/customgroups fwhosts/customservicegrp fwhosts/customlocationgrp fwlogs/ipsettings fwlogs/portsettings ipblocklist/modified \
-	    ipblocklist/settings isdn/settings mac/settings main/hosts main/routing main/security main/settings optionsfw/settings \
+	    ipblocklist/settings mac/settings main/hosts main/routing main/security main/settings optionsfw/settings \
 	    ovpn/ccd.conf ovpn/ccdroute ovpn/ccdroute2 pakfire/settings portfw/config ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4 \
 	    ppp/settings-5 ppp/settings proxy/settings proxy/squid.conf proxy/advanced/settings proxy/advanced/cre/enable remote/settings qos/settings qos/classes qos/subclasses qos/level7config qos/portconfig \
 	    qos/tosconfig suricata/settings vpn/config vpn/settings vpn/ipsec.conf \
diff --git a/lfs/dbus b/lfs/dbus
index 9e80718e4..9aceceb08 100644
--- a/lfs/dbus
+++ b/lfs/dbus
@@ -26,7 +26,7 @@ include Config
 
 SUMMARY    = D-Bus Message Bus System
 
-VER        = 1.14.0
+VER        = 1.14.4
 
 THISAPP    = dbus-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -34,7 +34,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = dbus
-PAK_VER    = 7
+PAK_VER    = 8
 
 DEPS       =
 
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = ae0ebc2779e840e2d83f633029f81fba0e35969648dddce0280640dd9bee3f9508aa7fb6aef696d1c4c56d40f91b754941f847525afaee5cc3170ad23a7eddbf
+$(DL_FILE)_BLAKE2 = 7da5cd8f09eaef7a64f35f8ccbeb81c5687b3fad02d6ac05dd4c232e0f731dbcf4c76c36b615e6216815c8f8631bf9cb32543665440153a1199b1b35922cdda4
 
 install : $(TARGET)
 
diff --git a/lfs/iproute2 b/lfs/iproute2
index 825b071c3..62d3483d9 100644
--- a/lfs/iproute2
+++ b/lfs/iproute2
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2020  IPFire Team  <info(a)ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info(a)ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 6.0.0
+VER        = 6.1.0
 
 THISAPP    = iproute2-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE)             = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 1cfb9b5a7892dec2b35e0eadbd957083e95fdc5077a1aa193329801ff25f9ed90a1fc4152756547be1fab8fe18d9a399001a4c3a61e951f64946156af6a90bae
+$(DL_FILE)_BLAKE2 = 38249703e0a9ba74405aebdb97560b286deefa959a9c3f0e0893962b6966f5da2da46199dda6a0f9584bb473f8ba529440643d97f66e9b7619df029e3091d163
 
 install : $(TARGET)
 
diff --git a/lfs/krb5 b/lfs/krb5
index ce7d52d11..0b4dae8cc 100644
--- a/lfs/krb5
+++ b/lfs/krb5
@@ -26,7 +26,7 @@ include Config
 
 SUMMARY    = Kerberos
 
-VER        = 1.20
+VER        = 1.20.1
 
 THISAPP    = krb5-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = fdaaab6c16dbe073c4308f312e321536b582b75fad10e5450be66b6b828825c8c775e56f5287d4a7df819d20889e5c0d9cc1d179d861c9caba185332c0db7387
+$(DL_FILE)_BLAKE2 = ead16f8b1aec8bba3776628b74257c9aec891770c1fa6d5c5e66275db5f078ca59c9944cd2b017453b777ce080f8e5a322f735fab77691479cfad7b881b92830
 
 install : $(TARGET)
 
diff --git a/lfs/libarchive b/lfs/libarchive
index c6531ce12..f88753017 100644
--- a/lfs/libarchive
+++ b/lfs/libarchive
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2019  IPFire Team  <info(a)ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info(a)ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.6.1
+VER        = 3.6.2
 
 THISAPP    = libarchive-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -41,7 +41,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = e7b79e97545dabeac164069e87adbd2081d3bd75c22f80b3797c6e487a477b3f6347b6fc14c76668eb69f2f2e5dcdd5a33a694e0a292ce426b8d0d93435218cf
+$(DL_FILE)_BLAKE2 = 355b5d402e352dee802513485ce7e047af58d6de5b9bf6a49f3fd8d7b94117007598820ac979585c0da79747e8b63b70ab151131182368a11f97a047cf9029d4
 
 install : $(TARGET)
 
@@ -74,7 +74,6 @@ $(subst %,%_BLAKE2,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@$(PREBUILD)
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libarchive-3.6-fix-glibc-2.36-headers.patch
 	cd $(DIR_APP) && ./configure --prefix=/usr --disable-static
 	cd $(DIR_APP) && make $(MAKETUNING)
 	cd $(DIR_APP) && make install
diff --git a/lfs/libconfig b/lfs/libconfig
index 58dbd8bff..4a34a878e 100644
--- a/lfs/libconfig
+++ b/lfs/libconfig
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info(a)ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info(a)ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.7.2
+VER        = 1.7.3
 
 THISAPP    = libconfig-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 1b8bc54857feff506d5cd62312a35f0f8a123380567881bdb8241f2232c5281399e4283687a3254b8f43a92b8f7d5ff3f72ec4fd875bf1b9d5d6c7703014cc3c
+$(DL_FILE)_BLAKE2 = 05d43022a937ed5ba35120170eca506051310cd7386b0a6a6c2f30186a079a02803c3d7ecb8dd49b50b5a706b282704605c250a306ada76b5241788eb1c575e6
 
 install : $(TARGET)
 
diff --git a/lfs/libgudev b/lfs/libgudev
new file mode 100644
index 000000000..bf0fec9b8
--- /dev/null
+++ b/lfs/libgudev
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2021  IPFire Team  <info(a)ipfire.org>                     #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 237
+
+THISAPP    = libgudev-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_BLAKE2 = 5d39d4d26d8c8b3fa877319c294036294dbda96b340d2d04d7a35449d91b58de876b96b5e3d9423cdf3e1d3e2a94f5a861b1ac1e74a610637e0fc66248c68309
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+b2 : $(subst %,%_BLAKE2,$(objects))
+
+###############################################################################
+# Downloading, checking, b2sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+	@$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+	@$(LOAD)
+
+$(subst %,%_BLAKE2,$(objects)) :
+	@$(B2SUM)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+	@$(PREBUILD)
+	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+	cd $(DIR_APP) && meson	--prefix=/usr \
+				--sysconfdir=/etc \
+				--buildtype=release \
+				builddir/
+	cd $(DIR_APP) && ninja -C builddir/ $(MAKETUNING)
+	cd $(DIR_APP) && ninja -C builddir/ install
+	@rm -rf $(DIR_APP)
+	@$(POSTBUILD)
diff --git a/lfs/libpciaccess b/lfs/libpciaccess
index 15b662c70..576c722f9 100644
--- a/lfs/libpciaccess
+++ b/lfs/libpciaccess
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info(a)ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info(a)ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -26,15 +26,15 @@ include Config
 
 SUMMARY    = Generic PCI access library
 
-VER        = 0.16
+VER        = 0.17
 
 THISAPP    = libpciaccess-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = libpciaccess
-PAK_VER    = 2
+PAK_VER    = 3
 
 DEPS       =
 
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = aab7d49887f7f21e0a6abf1e2aedc50159a47c7aef67eb8605a30e246463a14f9a9993db9cbd2705ef59c93d1ff41080668f8f3723557a927ab4d1edb5dfa4ad
+$(DL_FILE)_BLAKE2 = 41539b3d6385fe7c42b562c7602f87b07730bbbeea7d65d3cc8e5af974ed5f9985b0779d51891493dd241a36bb171a3744e3b1f3fd30bee8a19bb5bd785f4c5f
 
 install : $(TARGET)
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
diff --git a/lfs/libqmi b/lfs/libqmi
new file mode 100644
index 000000000..146c497aa
--- /dev/null
+++ b/lfs/libqmi
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2019  IPFire Team  <info(a)ipfire.org>                     #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.30.8
+
+THISAPP    = libqmi-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_BLAKE2 = c8d98106783eb22571ee82c0012e1ce7ed79e94818350134b80853e16fa287c77bafb34d2913690ae593d02112dc5d2b0ff77606a24c4ce63733fd64245961a1
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+b2 : $(subst %,%_BLAKE2,$(objects))
+
+dist:
+	@$(PAK)
+
+###############################################################################
+# Downloading, checking, b2sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+	@$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+	@$(LOAD)
+
+$(subst %,%_BLAKE2,$(objects)) :
+	@$(B2SUM)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+	@$(PREBUILD)
+	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+	cd $(DIR_APP) && ./configure --prefix=/usr --disable-static
+	cd $(DIR_APP) && make $(MAKETUNING)
+	cd $(DIR_APP) && make install
+	@rm -rf $(DIR_APP)
+	@$(POSTBUILD)
diff --git a/lfs/libshout b/lfs/libshout
index d48918e04..3058a9af5 100644
--- a/lfs/libshout
+++ b/lfs/libshout
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2020  IPFire Team  <info(a)ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info(a)ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -26,7 +26,7 @@ include Config
 
 SUMMARY    = Library for communcating with Icecast servers
 
-VER        = 2.4.3
+VER        = 2.4.6
 
 THISAPP    = libshout-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -34,7 +34,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = libshout
-PAK_VER    = 2
+PAK_VER    = 3
 
 DEPS       =
 
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 30d982fcf52507e07af23113560cfc9e43ca4ce37c286854326ea09215dc30c3c0d57320dce46dd4faec43b3d473df2f7882ad759479fb023166cec3f24327c5
+$(DL_FILE)_BLAKE2 = 68a24ecd3fa8c1057883d2d9013b18b9b7507d0ee79876efe79c8ad1ae32c408421879340968b77c3d6bf6e8eb3c3c87a8ee5447f351fd871f13683fcbb5ab52
 
 install : $(TARGET)
 
diff --git a/lfs/libssh b/lfs/libssh
index e172f6230..36ff9f176 100644
--- a/lfs/libssh
+++ b/lfs/libssh
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2020  IPFire Team  <info(a)ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info(a)ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.9.6
+VER        = 0.10.4
 
 THISAPP    = libssh-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = e8565279a430786b8877386a26700a39386e908546a209815b135a2bf4ef42c37b9890dc29cda9ce6c8bfe3f3bae4942097dc794302aec767d106a45c44b811d
+$(DL_FILE)_BLAKE2 = 9349a688bdbd7c0d3bc93d6d0d6d55122ae9f918b922baeae8a7c6d4ae3ec340e6607afdd8a47055176f31531aefa94b6cc2bda25d59625fe1a7f83823dd75f9
 
 install : $(TARGET)
 
diff --git a/lfs/libstatgrab b/lfs/libstatgrab
index 997880efc..50de9b490 100644
--- a/lfs/libstatgrab
+++ b/lfs/libstatgrab
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info(a)ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info(a)ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.92
+VER        = 0.92.1
 
 THISAPP    = libstatgrab-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = d8ca538f01d9e0b1d5c459c9c0da6df5b6806e02649d726c3ee8a2f69233a7183df6dda95980a8e6f8b438478ec28f4baa9d623d5372e5e3e28ea4909e905872
+$(DL_FILE)_BLAKE2 = 5315772da07a9229f7f5d85dc7563333892e2a7293d7b331bd65edbebc08841103e6cf695d8faf25b83135545dda767bfc358517afa866981657dc8205d319be
 
 install : $(TARGET)
 
diff --git a/lfs/libusb b/lfs/libusb
index 82bc3169e..89b8a51fe 100644
--- a/lfs/libusb
+++ b/lfs/libusb
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.0.25
+VER        = 1.0.26
 
 THISAPP    = libusb-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 3aecfbf9fc068fdfb8e612918bb895988f8400dc2c3ffd96a81792ab844d632f0c098947200512ddc37cfa9003956f8454c1d0362973a5d646a225f81cc2923b
+$(DL_FILE)_BLAKE2 = 0cc397ecf4de0066abbff9b286a9e4fcd48658698d5e0d6b736abf56b48c1b55a05f15fff7be53fd33f767621e0c25d87275a47e05a4bcb44c4b8ac9221cd081
 
 install : $(TARGET)
 
diff --git a/lfs/libusbredir b/lfs/libusbredir
index e1df9c4a8..531420ea4 100644
--- a/lfs/libusbredir
+++ b/lfs/libusbredir
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2020  IPFire Team  <info(a)ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info(a)ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -26,15 +26,15 @@ include Config
 
 SUMMARY    = USB Network Redirection protocol
 
-VER        = 0.8.0
+VER        = 0.13.0
 
 THISAPP    = usbredir-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = libusbredir
-PAK_VER    = 2
+PAK_VER    = 3
 
 DEPS       =
 
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 0190b4ab35cd554c13b65d30756b7b018e7ce82c72e7dddbaf05b8a704bd8a25724c4ac4759e1b86dfadb64ad7ade75c05365ab9ae3152f8fa60e909bc5e183b
+$(DL_FILE)_BLAKE2 = 20a1e28be290d59d3ef25f432d6bbd4b50b40f5df434efb9013a39df77ce1aa563e7dec1cdf6abbfa703bb9c4b32dd05258011b5ce8e79812e89203f51f41f8f
 
 install : $(TARGET)
 
@@ -80,9 +80,9 @@ $(subst %,%_BLAKE2,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@$(PREBUILD)
-	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && ./configure --prefix=/usr
-	cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
-	cd $(DIR_APP) && make install
+	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+	cd $(DIR_APP) && meson --prefix=/usr builddir/
+	cd $(DIR_APP) && ninja -C builddir/ $(MAKETUNING)
+	cd $(DIR_APP) && ninja -C builddir/ install
 	@rm -rf $(DIR_APP)
 	@$(POSTBUILD)
diff --git a/lfs/libvirt b/lfs/libvirt
index aa28ef2dc..bb7abbb28 100644
--- a/lfs/libvirt
+++ b/lfs/libvirt
@@ -26,7 +26,7 @@ include Config
 
 SUMMARY	   = Server side daemon and supporting files for libvirt
 
-VER        = 8.9.0
+VER        = 8.10.0
 
 THISAPP    = libvirt-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -35,7 +35,7 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 SUP_ARCH   = x86_64 aarch64
 PROG       = libvirt
-PAK_VER    = 30
+PAK_VER    = 31
 
 DEPS       = ebtables libpciaccess libtirpc libyajl ncat qemu
 
@@ -49,7 +49,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 537b6badb6171110e99561613fb1318144991107139401296248afb747ae6f9cfafcd17b2292b8d8dcc9188ff4206035ea814efa6c129bae50c0518f61be9b81
+$(DL_FILE)_BLAKE2 = 6c99428dd74ae1e535d0918bb48da0a851b03e9dfc38f96fca060a33b6be6c23c8b4a789695e8cf930536c156c8a893e18753a58c8a827f464b83a61b47c4846
 
 install : $(TARGET)
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
diff --git a/lfs/libxslt b/lfs/libxslt
index 21767b2e3..710088418 100644
--- a/lfs/libxslt
+++ b/lfs/libxslt
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info(a)ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info(a)ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.1.35
+VER        = 1.1.37
 
 THISAPP    = libxslt-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 9667a93e61f50098a512c1351bce2ee937fc5d29488d010b525122d28ffedc73e0930402f3df2d378161a031dc016a15f0f03bdc343f0c4aa5d0b5c454f8002d
+$(DL_FILE)_BLAKE2 = 096d93dd7178bf4483207514b1435f5bf426eea4952ffab7cc00c3e85aa736534c4acb5377af9647aa77a0cd793205194509d997a7bb5cae692f65e326566cd8
 
 install : $(TARGET)
 
diff --git a/lfs/libyang b/lfs/libyang
index f97cd0742..ae807fa8a 100644
--- a/lfs/libyang
+++ b/lfs/libyang
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info(a)ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info(a)ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.0.194
+VER        = 2.1.4
 
 THISAPP    = libyang-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = aa323b39752ac426f35e1ef17ca4a61d726c48916b740511ed03b06b8132747207dd4620842f9730ff1d05f216086310bc1634f393163067c119f5eec0aa91b1
+$(DL_FILE)_BLAKE2 = 0322d5c9003b4ae49a91da981c3c7063ebc783c1ddc964b9ec89a1f75f512fadda1664a8e2add63a81ed694bd10dda1fcdc70f7a31cc947b2835d210e8e454f5
 
 install : $(TARGET)
 
diff --git a/lfs/mpfr b/lfs/mpfr
index 221c9c527..f0c0109b2 100644
--- a/lfs/mpfr
+++ b/lfs/mpfr
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info(a)ipfire.org>                     #
+# Copyright (C) 2007-2022  IPFire Team  <info(a)ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.1.0
+VER        = 4.1.1
 
 THISAPP    = mpfr-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 41d1be0c4b557760f12a4525ad3a84b6e2cd6f0927c935fcfba577ac0490e582d1ae4b581dce58e21e705cf9d7c88373054d7fb7a94bb32c69b339f99a25dc68
+$(DL_FILE)_BLAKE2 = ce20baee2f060acb28b877ffe6fc40c5619cf6af231bd54ca6cfb3e42ef2d74a4ffbab96cf0b5dd6a162e558099a54701d42f34f5bf2256f256fe6f5ae2505d0
 
 install : $(TARGET)
 
@@ -70,7 +70,7 @@ $(subst %,%_BLAKE2,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@$(PREBUILD)
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/mpfr-4.1.0-cumulative-patches-1-to-13.patch
+	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/mpfr-4.1.1-cumulative-patches-1-to-1.patch
 	cd $(DIR_APP) && $(CONFIGURE_ARGS) ./configure --prefix=/usr \
 		--enable-thread-safe
 	cd $(DIR_APP) && make $(MAKETUNING)
diff --git a/lfs/psmisc b/lfs/psmisc
index 4ca6b6810..3340879c3 100644
--- a/lfs/psmisc
+++ b/lfs/psmisc
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 23.4
+VER        = 23.6
 
 THISAPP    = psmisc-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = e762171c4d3252421a49b352fadb3e892f66862f003a313a0cc692f973364b06d2652a51d331314462784d94ad55189e74c4d7a023d5d7c917c5e5c05009f46b
+$(DL_FILE)_BLAKE2 = 468bf4e84695efcedb832f890b6201b7bc4aca7c5aabaf30e67f4471671421897ee7cd67f01d4b3d60c3e1c63752eb7384e627e75fa7db290cd749da08e2f788
 
 install : $(TARGET)
 
diff --git a/make.sh b/make.sh
index 7d9a278b5..ae1ebb5af 100755
--- a/make.sh
+++ b/make.sh
@@ -23,7 +23,7 @@ NAME="IPFire"							# Software name
 SNAME="ipfire"							# Short name
 # If you update the version don't forget to update backupiso and add it to core update
 VERSION="2.27"							# Version number
-CORE="172"							# Core Level (Filename)
+CORE="173"							# Core Level (Filename)
 SLOGAN="www.ipfire.org"						# Software slogan
 CONFIG_ROOT=/var/ipfire						# Configuration rootdir
 MAX_RETRIES=1							# prefetch/check loop
@@ -1176,15 +1176,25 @@ buildipfire() {
   lfsmake2 xradio		KCFG=""
   lfsmake2 linux-initrd		KCFG=""
 
+  lfsmake2 expat
+  lfsmake2 libconfig
+  lfsmake2 json-c
+  lfsmake2 tcl
+  lfsmake2 libffi
+  lfsmake2 gdbm
+  lfsmake2 sqlite
+  lfsmake2 python3
+  lfsmake2 python3-setuptools
+  lfsmake2 ninja
+  lfsmake2 meson
+  lfsmake2 glib
+  lfsmake2 libgudev
   lfsmake2 libgpg-error
   lfsmake2 libgcrypt
   lfsmake2 libassuan
   lfsmake2 nettle
   lfsmake2 libsodium
-  lfsmake2 json-c
-  lfsmake2 libconfig
   lfsmake2 libevent2
-  lfsmake2 expat
   lfsmake2 apr
   lfsmake2 aprutil
   lfsmake2 unbound
@@ -1195,14 +1205,10 @@ buildipfire() {
   lfsmake2 dhcpcd
   lfsmake2 boost
   lfsmake2 linux-atm
-  lfsmake2 gdbm
+  lfsmake2 libqmi
   lfsmake2 pam
   lfsmake2 c-ares
   lfsmake2 curl
-  lfsmake2 tcl
-  lfsmake2 sqlite
-  lfsmake2 libffi
-  lfsmake2 python3
   lfsmake2 rust
   lfsmake2 rust-dissimilar
   lfsmake2 rust-cfg-if
@@ -1321,8 +1327,6 @@ buildipfire() {
   lfsmake2 nasm
   lfsmake2 libarchive
   lfsmake2 cmake
-  lfsmake2 ninja
-  lfsmake2 meson
   lfsmake2 libjpeg
   lfsmake2 openjpeg
   lfsmake2 libexif
@@ -1417,11 +1421,9 @@ buildipfire() {
   lfsmake2 perl-Crypt-PasswdMD5
   lfsmake2 perl-Net-Telnet
   lfsmake2 perl-JSON
-  lfsmake2 python3-setuptools
   lfsmake2 python3-inotify
   lfsmake2 python3-docutils
   lfsmake2 python3-daemon
-  lfsmake2 glib
   lfsmake2 ntp
   lfsmake2 openssh
   lfsmake2 fontconfig
diff --git a/src/hwdata/pci.ids b/src/hwdata/pci.ids
index 19832a58b..97220fd5c 100644
--- a/src/hwdata/pci.ids
+++ b/src/hwdata/pci.ids
@@ -1,8 +1,8 @@
 #
 #	List of PCI ID's
 #
-#	Version: 2022.03.22
-#	Date:    2022-03-22 03:15:02
+#	Version: 2022.12.04
+#	Date:    2022-12-04 03:15:02
 #
 #	Maintained by Albert Pool, Martin Mares, and other volunteers from
 #	the PCI ID Project at https://pci-ids.ucw.cz/.
@@ -70,11 +70,15 @@
 018a  LevelOne
 	0106  FPC-0106TX misprogrammed [RTL81xx]
 01de  Oxide Computer Company
+	0000  Propolis NVMe Controller
+	0001  Propolis xHCI Controller
+	0002  Propolis PCI-PCI Bridge
 # probably misprogrammed Intel Atom C2338 on Dell 0K8Y0N board
 0200  Dell (wrong ID)
 # 021b is not Compaq but there is a board misprogrammed
 021b  Compaq Computer Corporation
 	8139  HNE-300 (RealTek RTL8139c) [iPaq Networking]
+025e  Solidigm
 0270  Hauppauge computer works Inc. (Wrong ID)
 0291  Davicom Semiconductor, Inc. (Wrong ID)
 # SpeedStream is Efficient Networks, Inc, a Siemens Company
@@ -103,6 +107,14 @@
 		0731 7212  JM7200
 		0731 7214  JM7500
 		0731 7215  JM7200
+	9100  JM9100
+		0731 9101  JM9100
+		0731 9102  JM9100-I
+		0731 9103  JM9100M
+	910a  JH910
+		0731 910a  JH910
+		0731 910b  JH910-I
+		0731 910c  JH910-M
 	9200  JM9200
 	920a  JH920
 		0731 920a  JH920
@@ -123,6 +135,7 @@
 	930a  JH930-I
 		0731 930a  JH930-I
 		0731 930b  JH930-M
+		0731 930c  JH930
 	930b  JH930-M
 0777  Ubiquiti Networks, Inc.
 0795  Wired Inc.
@@ -147,6 +160,7 @@
 	0905  R1T3 Single T3 Digital Telephony Card
 	0906  RCB24FXX 24-channel modular analog telephony card
 	0a06  RCB672FXX 672-channel modular analog telephony card
+0bae  Bachmann electronic GmbH
 0ccd  Preferred Networks, Inc.
 0e11  Compaq Computer Corporation
 	0001  PCI to EISA Bridge
@@ -251,7 +265,9 @@
 	b1a4  NC7131 Gigabit Server Adapter
 	b200  Memory Hot-Plug Controller
 	b203  Integrated Lights Out Controller
+		103c 3305  iLO2
 	b204  Integrated Lights Out  Processor
+		103c 3305  iLO2
 	c000  Remote Insight Lights-Out Edition
 	f130  NetFlex-3/P ThunderLAN 1.0
 	f150  NetFlex-3/P ThunderLAN 2.3
@@ -480,6 +496,7 @@
 		1028 1f4f  PERC H730P Slim
 		1028 1f54  PERC FD33xD
 		1028 1fd1  PERC H730P MX
+		1734 11f6  PRAID EP400i
 		17aa 1052  ThinkServer RAID 720i
 		17aa 1053  ThinkServer RAID 720ix
 		1bd4 0014  12G SAS3108 2G
@@ -547,6 +564,7 @@
 		1014 040e  ServeRAID H1110
 	0071  MR SAS HBA 2004
 	0072  SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon]
+		1000 3020  9211-8i
 		1000 3040  9210-8i
 		1000 3080  9200-8e [LSI SAS 6Gb/s SAS/SATA PCIe x8 External HBA]
 		1000 30b0  9200-8e [LSI SAS 6Gb/s SAS/SATA PCIe x8 External HBA]
@@ -668,6 +686,7 @@
 		1000 3050  SAS9217-8i
 		1000 3060  SAS9217-4i4e
 		1014 0472  N2125 External Host Bus Adapter
+		1014 047a  N2115 Internal Host Bus Adapter
 		1590 0041  H220i
 		1590 0042  H221 / 9207-8e
 		1590 0044  H220i
@@ -725,18 +744,23 @@
 		1000 46a0  MegaRAID 9660-24i Tri-Mode Storage Adapter
 		1000 46c0  eHBA 9680W-16e Tri-Mode Storage Adapter
 		1000 46d0  eHBA 9600-8i8e Tri-Mode Storage Adapter
-		1028 2114  PERC H965 Adapter
-		1028 2115  PERC H965 Front
-		1028 2117  PERC H965 MX
+# eHBA 9602W-16e Tri-Mode Storage Adapter
+		1000 46e0  eHBA 9602W-16e Tri-Mode Storage Adapter
+		1028 2114  PERC H965i Adapter
+		1028 2115  PERC H965i Front
+		1028 2117  PERC H965i MX
 		1028 213a  PERC H965e Adapter
-		1028 213b  PERC H765 Adapter
-		1028 213c  PERC H765 Front
+		1028 213b  PERC H765i Adapter
+		1028 213c  PERC H765i Front
 		1028 213d  PERC H765N Front
-		1028 213e  PERC H765 MX
-		1028 213f  PERC H365 Adapter
-		1028 2140  PERC H365 Front
-		1028 2141  PERC H360 MX
-		1028 2142  HBA 465e Adapter
+		1028 213e  PERC H765i MX
+		1028 213f  PERC H365i Adapter
+		1028 2140  PERC H365i Front
+		1028 2141  PERC H365i MX
+		1028 2142  HBA465e Adapter
+		1028 2209  HBA465i Adapter
+		1028 220a  HBA465i Front
+		1d49 020a  ThinkSystem 450W-16e SAS/SATA PCIe Gen4 24Gb HBA
 	00ab  SAS3516 Fusion-MPT Tri-Mode RAID On Chip (ROC)
 # 8 Internal and 8 External port channel 9400 HBA
 		1000 3040  HBA 9400-8i8e
@@ -834,6 +858,7 @@
 		1028 2170  HBA350i MM
 		1028 2175  HBA350i Adapter
 		1028 2197  HBA350i MM LP
+		1028 2212  HBA355e-s Adapter
 		1d49 0205  ThinkSystem 440-16i SAS/SATA PCIe Gen4 12Gb Internal HBA
 		1d49 0206  ThinkSystem 440-16e SAS/SATA PCIe Gen4 12Gb HBA
 		1d49 0207  ThinkSystem 440-8i SAS/SATA PCIe Gen4 12Gb HBA
@@ -855,6 +880,8 @@
 		1d49 0002  ThinkSystem 810-4P NVMe Switch Adapter
 	02b1  Virtual Endpoint on PCIe Switch (9749)
 		1d49 0004  ThinkSystem 1610-8P NVMe Switch Adapter
+# Virtual endpoint used in Broadcom synthetic PCIe switches for resource reservation
+	02b2  Virtual PCIe Placeholder Endpoint
 	0407  MegaRAID
 		1000 0530  MegaRAID 530 SCSI 320-0X RAID Controller
 		1000 0531  MegaRAID 531 SCSI 320-4X RAID Controller
@@ -975,6 +1002,7 @@
 	10e4  MegaRAID 12GSAS/PCIe Unsupported SAS38xx
 	10e5  MegaRAID 12GSAS/PCIe SAS38xx
 	10e6  MegaRAID 12GSAS/PCIe Secure SAS38xx
+		1000 40e0  MegaRAID 9540-2M2
 		1028 2172  PERC H355 Adapter
 		1028 2173  PERC H355 Front
 		1028 2174  PERC H350 Mini
@@ -998,10 +1026,29 @@
 		8086 0523  MegaRAID RAID Controller SRCS16
 	3050  SAS2008 PCI-Express Fusion-MPT SAS-2
 	6001  DX1 Multiformat Broadcast HD/SD Encoder/Decoder
-	c010  PEX88048 50 lane, 50 port, PCI Express Gen 4.0 ExpressFabric Platform
+	c010  PEX880xx PCIe Gen 4 Switch
+		1000 100b  PEX88000 PCIe Gen 4 Virtual Upstream/Downstream Port
+		1000 2004  PEX88000 Virtual PCIe TWC/NT2 Endpoint
+		1000 2005  PEX88000 Virtual PCIe gDMA Endpoint
+		1000 a024  PEX88024 24 lane/port PCIe Gen 4.0 Switch
+		1000 a032  PEX88032 32 lane/port PCIe Gen 4 Switch
+		1000 a048  PEX88048 50 lane/port PCIe Gen 4.0 Switch
+		1000 a064  PEX88064 64 lane/port PCIe Gen 4 Switch
+		1000 a080  PEX88080 80 lane/port PCIe Gen 4 Switch
+		1000 a096  PEX88096 98 lane/port PCIe Gen 4.0 Switch
 	c012  PEX880xx PCIe Gen 4 Switch
 		1d49 0003  ThinkSystem 1611-8P PCIe Gen4 NVMe Switch Adapter
 	c030  PEX890xx PCIe Gen 5 Switch
+		1000 0024  PEX89024 PCIe Gen 5 24 port/lane Switch Upstream/Downstream Port
+		1000 0032  PEX89032 PCIe Gen 5 32 port/lane Switch Upstream/Downstream Port
+		1000 0048  PEX89048 PCIe Gen 5 48 port/lane Switch Upstream/Downstream Port
+		1000 0072  PEX89072 PCIe Gen 5 36 port/72 lane Switch Upstream/Downstream Port
+		1000 0088  PEX89088 PCIe Gen 5 44 port/88 lane Switch Upstream/Downstream Port
+		1000 0104  PEX89104 PCIe Gen 5 52 port/104 lane Switch Upstream/Downstream Port
+		1000 0144  PEX89144 PCIe Gen 5 72 port/144 lane Switch Upstream/Downstream Port
+		1000 100b  PEX89000 PCIe Gen 5 Virtual Upstream/Downstream Port
+		1000 2004  PEX89000 Virtual PCIe TWC/NT 2.0 Endpoint
+		1000 2005  PEX89000 Virtual PCIe gDMA Endpoint
 1001  Kolter Electronic
 	0010  PCI 1616 Measurement card with 32 digital I/O lines
 	0011  OPTO-PCI Opto-Isolated digital I/O board
@@ -1041,16 +1088,19 @@
 	131b  Kaveri [Radeon R4 Graphics]
 	131c  Kaveri [Radeon R7 Graphics]
 	131d  Kaveri [Radeon R6 Graphics]
-	13e9  Ariel
-	13fe  Cyan Skillfish
+	13e9  Ariel/Navi10Lite
+	13f9  Oberon/Navi12Lite
+	13fe  Cyan Skillfish [BC-250]
 	1478  Navi 10 XL Upstream Port of PCI Express Switch
 	1479  Navi 10 XL Downstream Port of PCI Express Switch
+	1506  Mendocino
 	154c  Kryptos [Radeon RX 350]
 		1462 7c28  MS-7C28 Motherboard
 	154e  Garfield
 	1551  Arlene
 	1552  Pooky
 	1561  Anubis
+	15bf  Phoenix
 	15d8  Picasso/Raven 2 [Radeon Vega Series / Radeon Vega Mobile Series]
 		103c 8615  Pavilion Laptop 15-cw1xxx
 		17aa 3181  ThinkCentre M75n IoT
@@ -1074,10 +1124,15 @@
 	1607  Arden
 	1636  Renoir
 	1637  Renoir Radeon High Definition Audio Controller
-	1638  Cezanne
-	163f  VanGogh
+	1638  Cezanne [Radeon Vega Series / Radeon Vega Mobile Series]
+		1043 16c2  Radeon Vega 8
+# Used in the Steam Deck
+	163f  VanGogh [AMD Custom GPU 0405]
+	1640  Rembrandt Radeon High Definition Audio Controller
 	164c  Lucienne
 	164d  Rembrandt
+	164e  Raphael
+	164f  Phoenix
 	1681  Rembrandt [Radeon 680M]
 	1714  BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series]
 		103c 168b  ProBook 4535s
@@ -1594,6 +1649,7 @@
 		1028 00bb  Latitude CPx
 		1179 ff00  Satellite 1715XCDS laptop
 		13bd 1019  PC-AR10
+	4c4e  Rage Mobility L AGP 2x
 	4c50  Rage 3 LT [3D Rage LT PRO PCI]
 		1002 4c50  Rage LT Pro
 	4c52  M1 [Rage Mobility-M1 PCI]
@@ -1756,6 +1812,7 @@
 		1028 0225  PowerEdge T105 Embedded ATI ES1000
 		1028 023c  PowerEdge R200 Embedded ATI ES1000
 		103c 1304  Integrity iLO2 Advanced KVM VGA [AD307A]
+		103c 31fb  ProLiant DL360 G5
 		15d9 8680  X7DVL-E-O motherboard
 		15d9 9680  X7DBN Motherboard
 		8086 3476  S5000PSLSATA Server Board
@@ -1877,7 +1934,7 @@
 	5964  RV280 [Radeon 9200 SE]
 		1002 5964  Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz
 		1043 c006  Radeon 9200 SE / TD / 128M
-		1458 4018  R92S128T (Radeon 9200 SE 128MB)
+		1458 4018  R92S128T [Radeon 9200 SE 128MB]
 		1458 4032  Radeon 9200 SE 128MB
 		147b 6191  R9200SE-DT
 		148c 2073  CN-AG92E
@@ -2052,6 +2109,7 @@
 		148c 7340  Radeon R7 340
 		1682 7240  R7 240 2048 MB
 		1dcf 3000  Oland PRO [Radeon R7 240/340 / Radeon 520]
+	6617  Oland LE [Radeon R7 240]
 	6631  Oland
 	6640  Saturn XT [FirePro M6100]
 		106b 014b  Tropo XT [Radeon R9 M380 Mac Edition]
@@ -2651,7 +2709,7 @@
 # FX-797A-TNBC
 		1682 3213  HD 7970 Black Edition
 		1682 3214  Double D HD 7970
-		1787 201c  HD 7970 IceQ X²
+		1787 201c  HD 7970 IceQ X²
 # Radeon HD 7970 X2
 		1787 2317  Radeon HD 7990
 		1787 3000  Tahiti XT2 [Radeon HD 7970 GHz Edition]
@@ -2714,7 +2772,7 @@
 		174b e282  Vapor-X R9 290X Tri-X OC
 		174b e285  R9 290X Tri-X OC
 		174b e324  Grenada XT2 [Radeon R9 390X]
-		1787 2020  R9 290X IceQ X² Turbo
+		1787 2020  R9 290X IceQ X² Turbo
 		1787 2357  Grenada XT [Radeon R9 390X]
 	67b1  Hawaii PRO [Radeon R9 290/390]
 		1043 04dd  STRIX R9 390
@@ -3030,20 +3088,20 @@
 		144d c0c7  Radeon HD 7550M
 	6842  Thames LE [Radeon HD 7000M Series]
 	6843  Thames [Radeon HD 7670M]
-	6860  Vega 10 [Radeon Instinct MI25]
+	6860  Vega 10 [Instinct MI25/MI25x2/V340/V320]
 		1002 0c35  Radeon PRO V320
 		1002 6c75  Radeon PRO V320
 		106b 017c  Radeon Pro Vega 64
 	6861  Vega 10 XT [Radeon PRO WX 9100]
 	6862  Vega 10 XT [Radeon PRO SSG]
 	6863  Vega 10 XTX [Radeon Vega Frontier Edition]
-	6864  Vega 10 [Radeon Pro V340]
+	6864  Vega 10 [Radeon Pro V340/Instinct MI25x2]
 	6867  Vega 10 XL [Radeon Pro Vega 56]
 	6868  Vega 10 [Radeon PRO WX 8100/8200]
 	6869  Vega 10 XGA [Radeon Pro Vega 48]
 	686a  Vega 10 LEA
 	686b  Vega 10 XTXA [Radeon Pro Vega 64X]
-	686c  Vega 10 [Radeon Instinct MI25 MxGPU]
+	686c  Vega 10 [Instinct MI25 MxGPU/MI25x2 MxGPU/V340 MxGPU/V340L MxGPU]
 	686d  Vega 10 GLXTA
 	686e  Vega 10 GLXLA
 	687f  Vega 10 XL/XT [Radeon RX Vega 56/64]
@@ -3064,7 +3122,7 @@
 	688c  Cypress XT GL [FireStream 9370]
 	688d  Cypress PRO GL [FireStream 9350]
 	6898  Cypress XT [Radeon HD 5870]
-		1002 0b00  Radeon HD 5870 Eyefinity⁶ Edition
+		1002 0b00  Radeon HD 5870 Eyefinity Edition
 		106b 00d0  Radeon HD 5870 Mac Edition
 # R5870-PM2D1G
 		1462 8032  Radeon HD 5870 1 GB GDDR5
@@ -3605,7 +3663,7 @@
 		1002 0322  All-in-Wonder X1800XL
 		1002 0d02  Radeon X1800 CrossFire Edition
 	710a  R520 [Radeon X1800 GTO]
-		1002 0b12  Radeon X1800 GTO²
+		1002 0b12  Radeon X1800 GTO²
 	710b  R520 [Radeon X1800 GTO]
 	710e  R520 GL [FireGL V7300]
 		13cc 3d0c  MXRT-5150
@@ -3740,48 +3798,72 @@
 	7310  Navi 10 [Radeon Pro W5700X]
 	7312  Navi 10 [Radeon Pro W5700]
 	7314  Navi 10 USB
+	731e  TDC-150
 	731f  Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT]
 		1002 0b36  Reference RX 5700 XT
 		1458 2313  Radeon RX 5700 XT Gaming OC
+		148c 2398  AXRX 5700 XT 8GBD6-3DHE/OC [PowerColor Red Devil Radeon RX 5700 XT]
 		1682 5701  RX 5700 XT RAW II
 		1849 5120  Radeon RX 5600 XT
 		1da2 e409  Sapphire Technology Limited Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT]
+		1da2 e410  Sapphire NITRO+ RX 5700 XT
 		1da2 e411  Radeon RX 5600 XT
 	7340  Navi 14 [Radeon RX 5500/5500M / Pro 5500M]
 	7341  Navi 14 [Radeon Pro W5500]
 	7347  Navi 14 [Radeon Pro W5500M]
 	734f  Navi 14 [Radeon Pro W5300M]
-	7360  Navi 12 [Radeon Pro 5600M / V520]
-	7362  Navi 12 [Radeon Pro V520]
+	7360  Navi 12 [Radeon Pro 5600M/V520/BC-160]
+	7362  Navi 12 [Radeon Pro V520/V540]
 	7388  Arcturus GL-XL
 	738c  Arcturus GL-XL [Instinct MI100]
 	738e  Arcturus GL-XL [Instinct MI100]
+	73a1  Navi 21 [Radeon Pro V620]
 	73a2  Navi 21 Pro-XTA [Radeon Pro W6900X]
 	73a3  Navi 21 GL-XL [Radeon PRO W6800]
 	73a4  Navi 21 USB
 	73a5  Navi 21 [Radeon RX 6950 XT]
+		1da2 441d  Navi 21 [Sapphire Nitro+ Radeon RX 6950 XT]
 	73ab  Navi 21 Pro-XLA [Radeon Pro W6800X/Radeon Pro W6800X Duo]
+	73ae  Navi 21 [Radeon Pro V620 MxGPU]
 	73af  Navi 21 [Radeon RX 6900 XT]
 		148c 2414  Navi 21 XTXH [PowerColor Red Devil RX 6900 XT Ultimate]
 	73bf  Navi 21 [Radeon RX 6800/6800 XT / 6900 XT]
 		1002 0e3a  Radeon RX 6900 XT
 		148c 2408  Red Devil AMD Radeon RX 6900 XT
-		1eae 6701  XFX Speedster MERC 319 AMD Radeon RX 6800 XT Black
+		1da2 440f  TOXIC RX 6900 XT
+		1eae 6701  Speedster MERC 319 AMD Radeon RX 6800 XT Black
+		1eae 6901  Speedster MERC 319 AMD Radeon RX 6900 XT Black
 	73c3  Navi 22
 	73c4  Navi 22 USB
+	73ce  Navi22-XL SRIOV MxGPU
 	73df  Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M]
+		1043 16c2  Radeon RX 6800M
+		1458 2408  Radeon RX 6750 XT GAMING OC 12G
+		1849 5219  Radeon RX 6700 XT Challenger D
+		1da2 e445  Sapphire Radeon RX 6700
+		1eae 6601  Speedster QICK 319 RX 6700 XT
 	73e0  Navi 23
 	73e1  Navi 23 WKS-XM [Radeon PRO W6600M]
 	73e3  Navi 23 WKS-XL [Radeon PRO W6600]
 	73e4  Navi 23 USB
 	73ef  Navi 23 [Radeon RX 6650 XT]
+		1002 73ef  Navi 23 [Radeon RX 6700S / 6800S / 6650 XT]
+		1458 2405  Navi 23 [Radeon RX 6650 XT]
 	73ff  Navi 23 [Radeon RX 6600/6600 XT/6600M]
+		1462 5022  RX 6600 MECH 2X
 		148c 2412  PowerColor Red Devil RX 6600 XT
-	7408  Aldebaran
-	740c  Aldebaran
-	740f  Aldebaran
-	743f  Navi 24 [Radeon RX 6400 / 6500 XT]
+# This is the non-XT version
+		1849 5218  Radeon RX 6600 Challenger ITX 8GB
+	7408  Aldebaran/MI200 [Instinct MI250X]
+	740c  Aldebaran/MI200 [Instinct MI250X/MI250]
+	740f  Aldebaran/MI200 [Instinct MI210]
+	7421  Navi 24 [Radeon PRO W6500M]
+	7422  Navi 24 [Radeon PRO W6400]
+	7423  Navi 24 [Radeon PRO W6300/W6300M]
+	7424  Navi 24 [Radeon RX 6300]
+	743f  Navi 24 [Radeon RX 6400/6500 XT/6500M]
 		1da2 e457  PULSE AMD Radeon RX 6500 XT
+	744c  Navi 31 [Radeon RX 7900 XT/7900 XTX]
 	7833  RS350 Host Bridge
 	7834  RS350 [Radeon 9100 PRO/XT IGP]
 	7835  RS350M [Mobility Radeon 9000 IGP]
@@ -4834,6 +4916,7 @@
 	1481  Starship/Matisse IOMMU
 	1482  Starship/Matisse PCIe Dummy Host Bridge
 	1483  Starship/Matisse GPP Bridge
+		01de fff9  Gimlet Baseboard
 	1484  Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B]
 	1485  Starship/Matisse Reserved SPP
 	1486  Starship/Matisse Cryptographic Coprocessor PSPCPP
@@ -4863,6 +4946,12 @@
 	149c  Matisse USB 3.0 Host Controller
 		1462 7c37  X570-A PRO motherboard
 	149d  Vangogh CVIP
+	14b5  Family 17h-19h PCIe Root Complex
+	14b6  Family 17h-19h IOMMU
+	14b7  Family 17h-19h PCIe Dummy Host Bridge
+	14b9  Family 17h-19h Internal PCIe GPP Bridge
+	14ba  Family 17h-19h PCIe GPP Bridge
+	14cd  Family 19h USB4/Thunderbolt PCIe tunnel
 	1510  Family 14h Processor Root Complex
 		174b 1001  PURE Fusion Mini
 	1512  Family 14h Processor Root Port
@@ -4959,6 +5048,8 @@
 		ea50 ce19  mCOM10-L1900
 	15d4  FireFlight USB 3.1
 	15d5  FireFlight USB 3.1
+	15d6  Rembrandt USB4 XHCI controller #5
+	15d7  Rembrandt USB4 XHCI controller #6
 	15da  Raven/Raven2 PCIe Dummy Host Bridge
 	15db  Raven/Raven2 Internal PCIe GPP Bridge 0 to Bus A
 		ea50 ce19  mCOM10-L1900
@@ -5031,6 +5122,12 @@
 	160d  Arden Device 18h: Function 5
 	160e  Arden Device 18h: Function 6
 	160f  Arden Device 18h: Function 7
+	161a  Rembrandt USB4 XHCI controller #1
+	161b  Rembrandt USB4 XHCI controller #2
+	161c  Rembrandt USB4 XHCI controller #7
+	161d  Rembrandt USB4 XHCI controller #3
+	161e  Rembrandt USB4 XHCI controller #4
+	161f  Rembrandt USB4 XHCI controller #8
 	1620  Anubis HT Configuration
 	1621  Anubis Address Maps
 	1622  Anubis DRAM Configuration
@@ -5043,6 +5140,9 @@
 	1629  Arden PCIe GPP Bridge
 	162a  Arden Internal PCIe GPP Bridge 0 to bus X
 	162b  Arden PCIe Non-Transparent Bridge
+	162c  VanGogh USB2
+	162e  Rembrandt USB4/Thunderbolt NHI controller #1
+	162f  Rembrandt USB4/Thunderbolt NHI controller #2
 	1630  Renoir/Cezanne Root Complex
 	1631  Renoir/Cezanne IOMMU
 	1632  Renoir PCIe Dummy Host Bridge
@@ -5060,7 +5160,10 @@
 	1642  Renoir WLAN
 	1643  Renoir BT
 	1644  Renoir I2S
-	1648  VanGogh Root Complex
+	1645  VanGogh Root Complex
+	1646  VanGogh IOMMU
+	1647  VanGogh PCIe GPP Bridge
+	1648  VanGogh Internal PCIe GPP Bridge to Bus
 	1649  VanGogh PSP/CCP
 	164f  Milan IOMMU
 	1650  Milan Data Fabric; Function 0
@@ -5071,6 +5174,14 @@
 	1655  Milan Data Fabric; Function 5
 	1656  Milan Data Fabric; Function 6
 	1657  Milan Data Fabric; Function 7
+	1660  VanGogh Data Fabric; Function 0
+	1661  VanGogh Data Fabric; Function 1
+	1662  VanGogh Data Fabric; Function 2
+	1663  VanGogh Data Fabric; Function 3
+	1664  VanGogh Data Fabric; Function 4
+	1665  VanGogh Data Fabric; Function 5
+	1666  VanGogh Data Fabric; Function 6
+	1667  VanGogh Data Fabric; Function 7
 	166a  Cezanne Data Fabric; Function 0
 	166b  Cezanne Data Fabric; Function 1
 	166c  Cezanne Data Fabric; Function 2
@@ -5079,6 +5190,14 @@
 	166f  Cezanne Data Fabric; Function 5
 	1670  Cezanne Data Fabric; Function 6
 	1671  Cezanne Data Fabric; Function 7
+	1679  Rembrandt Data Fabric: Device 18h; Function 0
+	167a  Rembrandt Data Fabric: Device 18h; Function 1
+	167b  Rembrandt Data Fabric: Device 18h; Function 2
+	167c  Rembrandt Data Fabric: Device 18h; Function 3
+	167d  Rembrandt Data Fabric: Device 18h; Function 4
+	167e  Rembrandt Data Fabric: Device 18h; Function 5
+	167f  Rembrandt Data Fabric: Device 18h; Function 6
+	1680  Rembrandt Data Fabric: Device 18h; Function 7
 	1700  Family 12h/14h Processor Function 0
 	1701  Family 12h/14h Processor Function 1
 	1702  Family 12h/14h Processor Function 2
@@ -5388,7 +5507,7 @@
 	9910  CyberBlade/XP
 	9930  CyberBlade/XPm
 	9960  CyberBlade XP2
-1024  Zenith Data Systems
+1024  Beijing Dajia Internet Information Technology Co.
 1025  Acer Incorporated [ALI]
 	1435  M1435
 	1445  M1445
@@ -5492,6 +5611,12 @@
 		1028 1f24  PERC S300 Controller
 # NV-RAM Adapter used in Dell DR appliances
 	0073  NV-RAM Adapter
+	1028  PCIe Bridge riser
+	2600  ENT NVMe RT1
+		1028 215e  ENT NVMe RT1 RI 3.84TB
+		1028 215f  ENT NVMe RT1 RI 7.68TB
+		1028 2160  ENT NVMe RT1 FIPS RI 3.84TB
+		1028 2161  ENT NVMe RT1 FIPS RI 7.68TB
 1029  Siemens Nixdorf IS
 102a  LSI Logic
 	0000  HYDRA
@@ -6741,6 +6866,7 @@
 	90a3  Aeolia Memory (DDR3/SPM)
 	90a4  Aeolia USB 3.0 xHCI Host Controller
 	90bc  SxS Pro+ memory card
+	90c0  PCIe x8 XAVC Codec Board
 	90c8  Belize ACPI
 	90c9  Belize Ethernet Controller
 	90ca  Belize SATA AHCI Controller
@@ -6806,6 +6932,8 @@
 	3505  SH7751 PCI Controller (PCIC)
 	350e  SH7751R PCI Controller (PCIC)
 1055  Microchip Technology / SMSC
+	7430  LAN7430
+	7431  LAN7431
 	9130  SLC90E66 [Victory66] IDE
 	9460  SLC90E66 [Victory66] ISA
 	9462  SLC90E66 [Victory66] USB
@@ -7312,7 +7440,7 @@
 		1077 02f2  QLogic 1x32Gb QLE2770 FC HBA
 		1077 02f3  QLogic 2x32Gb QLE2772 FC HBA
 		1590 02d3  SN1610Q - 1P Enhanced 32GFC Single Port Fibre Channel Host Bus Adapter
-		1590 02d4  SN1610Q – 2P Enhanced 32GFC Dual Port Fibre Channel Host Bus Adapter
+		1590 02d4  SN1610Q – 2P Enhanced 32GFC Dual Port Fibre Channel Host Bus Adapter
 	2289  ISP2852-based 64/32G Fibre Channel to PCIe Controller with StorCryption
 		1077 02e9  QLE2882 Dual Port 64GFC PCIe Gen4 x8 Adapter with StorCryption
 		1077 02eb  QLE2782 Dual Port 32GFC PCIe Gen4 x8 Adapter with StorCryption
@@ -7560,7 +7688,7 @@
 	0022  ATM Adapter
 108e  Oracle/SUN
 	0001  EBUS
-	1000  EBUS
+	1000  STP2003QFP [PCIO] EBUS
 	1001  Happy Meal 10/100 Ethernet [hme]
 	1100  RIO EBUS
 		108e 1100  RIO EBUS on Blade 100 motherboard
@@ -8915,10 +9043,10 @@
 		10b5 3334  Cambridge Pixel HPx Radar Input Card
 		10b5 3352  Alpermann+Velte PCL PCIe HD: Timecode Reader Board
 		10b5 3353  Alpermann+Velte PCL PCIe D: Timecode Reader Board
-		10b5 3354  Alpermann+Velte PCL PCIe LV: Timecode Reader Board
-		10b5 3355  Alpermann+Velte PCL PCIe L: Timecode Reader Board
-		10b5 3415  Alpermann+Velte PCIe TS: Time Synchronisation Board
-		10b5 3493  Alpermann+Velte PCL PCIe 3G: Timecode Reader Board
+		10b5 3354  Plura PCL PCIe LV: Timecode Reader Board
+		10b5 3355  Plura PCL PCIe L: Timecode Reader Board
+		10b5 3415  Plura PCIe TS: Time Synchronisation Board
+		10b5 3493  Plura PCL PCIe 3G: Timecode Reader Board
 		10b5 3565  Cambridge Pixel HPx Radar Output Card
 		1369 c001  LX6464ES
 		1369 c201  LX1616ES
@@ -11381,7 +11509,7 @@
 # GRID K1 USM
 	0fe7  GK107GL [GRID K100 vGPU]
 		10de 101e  GRID K100
-	0fe8  GK107M
+	0fe8  GK107M [N14P-GS]
 	0fe9  GK107M [GeForce GT 750M Mac Edition]
 	0fea  GK107M [GeForce GT 755M Mac Edition]
 	0fec  GK107M [GeForce 710A]
@@ -11908,6 +12036,7 @@
 	11a3  GK104M [GeForce GTX 680MX]
 		106b 010d  iMac 13,2
 	11a7  GK104M [GeForce GTX 675MX]
+	11a8  GK104GLM [Quadro K5100M]
 	11a9  GK104M [GeForce GTX 870M]
 	11af  GK104GLM [GRID IceCube]
 	11b0  GK104GL [GRID K240Q / K260Q vGPU]
@@ -12170,6 +12299,7 @@
 	1aec  TU116 USB 3.1 Host Controller
 	1aed  TU116 USB Type-C UCSI Controller
 	1aef  GA102 High Definition Audio Controller
+	1af1  GA100 [A100 NVSwitch]
 	1b00  GP102 [TITAN X]
 	1b01  GP102 [GeForce GTX 1080 Ti 10GB]
 	1b02  GP102 [TITAN Xp]
@@ -12301,11 +12431,13 @@
 		10de 131d  Tesla V100-SXM3-32GB-H
 	1dba  GV100GL [Quadro GV100]
 		10de 12eb  TITAN V CEO Edition
+	1dbe  GV100 Engineering Sample
 	1df0  GV100GL [Tesla PG500-216]
 	1df2  GV100GL [Tesla PG503-216]
 	1df5  GV100GL [Tesla V100 SXM2 16GB]
 	1df6  GV100GL [Tesla V100S PCIe 32GB]
 	1e02  TU102 [TITAN RTX]
+	1e03  TU102 [GeForce RTX 2080 Ti 12GB]
 	1e04  TU102 [GeForce RTX 2080 Ti]
 	1e07  TU102 [GeForce RTX 2080 Ti Rev. A]
 		1462 3715  RTX 2080 Ti GAMING X TRIO
@@ -12336,7 +12468,7 @@
 	1e91  TU104M [GeForce RTX 2070 SUPER Mobile / Max-Q]
 	1e93  TU104M [GeForce RTX 2080 SUPER Mobile / Max-Q]
 	1eab  TU104M
-	1eae  TU104M
+	1eae  TU104M [GeForce GTX 2080 Engineering Sample]
 	1eb0  TU104GL [Quadro RTX 5000]
 	1eb1  TU104GL [Quadro RTX 4000]
 	1eb4  TU104GL [T4G]
@@ -12377,6 +12509,7 @@
 	1f76  TU106GLM [Quadro RTX 3000 Mobile Refresh]
 	1f81  TU117
 	1f82  TU117 [GeForce GTX 1650]
+	1f83  TU117 [GeForce GTX 1630]
 	1f91  TU117M [GeForce GTX 1650 Mobile / Max-Q]
 	1f92  TU117M [GeForce GTX 1650 Mobile]
 	1f94  TU117M [GeForce GTX 1650 Mobile]
@@ -12390,11 +12523,13 @@
 # via Lenovo 496.90
 	1f9f  TU117M [GeForce MX550]
 	1fa0  TU117M [GeForce MX550]
+	1fa1  TU117M
 	1fae  TU117GL
 	1fb0  TU117GLM [Quadro T1000 Mobile]
 	1fb1  TU117GL [T600]
 	1fb2  TU117GLM [Quadro T400 Mobile]
 	1fb6  TU117GLM [T600 Laptop GPU]
+		1028 0b10  Precision 3571
 	1fb7  TU117GLM [T550 Laptop GPU]
 	1fb8  TU117GLM [Quadro T2000 Mobile / Max-Q]
 	1fb9  TU117GLM [Quadro T1000 Mobile]
@@ -12416,6 +12551,8 @@
 	20b5  GA100 [A100 PCIe 80GB]
 	20b6  GA100GL [PG506-232]
 	20b7  GA100GL [A30 PCIe]
+	20b8  GA100 [A100X]
+	20b9  GA100 [A30X]
 	20bb  GA100 [DRIVE A100 PROD]
 	20be  GA100 [GRID A100A]
 	20bf  GA100 [GRID A100B]
@@ -12423,6 +12560,9 @@
 	20f0  GA100 [A100-PG506-207]
 	20f1  GA100 [A100 PCIe 40GB]
 	20f2  GA100 [A100-PG506-217]
+	20f3  GA100 [A800-SXM4-80GB]
+	20f5  GA100 [A800 80GB PCIe]
+	20f6  GA100 [A800 40GB PCIe]
 	2182  TU116 [GeForce GTX 1660 Ti]
 	2183  TU116
 	2184  TU116 [GeForce GTX 1660]
@@ -12437,6 +12577,7 @@
 	21c4  TU116 [GeForce GTX 1660 SUPER]
 	21d1  TU116BM [GeForce GTX 1660 Ti Mobile]
 	2200  GA102
+	2203  GA102 [GeForce RTX 3090 Ti]
 	2204  GA102 [GeForce RTX 3090]
 		147d 10de  NVIDIA Geforce RTX 3090 Founders Edition
 	2205  GA102 [GeForce RTX 3080 Ti 20GB]
@@ -12444,6 +12585,7 @@
 		10de 1467  GA102 [GeForce RTX 3080]
 		10de 146d  GA102 [GeForce RTX 3080 20GB]
 		1462 3892  RTX 3080 10GB GAMING X TRIO
+	2207  GA102 [GeForce RTX 3070 Ti]
 	2208  GA102 [GeForce RTX 3080 Ti]
 	220a  GA102 [GeForce RTX 3080 12GB]
 	220d  GA102 [CMP 90HX]
@@ -12460,9 +12602,14 @@
 	2238  GA102GL [A10M]
 	223f  GA102GL
 	228b  GA104 High Definition Audio Controller
+	228e  GA106 High Definition Audio Controller
 	2296  Tegra PCIe Endpoint Virtual Network
-	2302  GA103
-	2321  GA103
+	2302  GH100
+	2321  GH100
+	2322  GH100 [H800]
+	2330  GH100[H100 SXM5 80GB]
+	2331  GH100 [H100 PCIe]
+	2336  GH100 [H100 96GB]
 	2414  GA103 [GeForce RTX 3060 Ti]
 	2420  GA103M [GeForce RTX 3080 Ti Mobile]
 	2438  GA103GLM [RTX A5500 Laptop GPU]
@@ -12473,6 +12620,7 @@
 		10de 146b  GA104 [GeForce RTX 3070]
 		10de 14ae  GA104 [GeForce RTX 3070 16GB]
 	2486  GA104 [GeForce RTX 3060 Ti]
+		19da 6630  ZT-A30610H-10M [RTX 3060 Ti Twin Edge OC]
 	2487  GA104 [GeForce RTX 3060]
 	2488  GA104 [GeForce RTX 3070 Lite Hash Rate]
 	2489  GA104 [GeForce RTX 3060 Ti Lite Hash Rate]
@@ -12481,10 +12629,12 @@
 	249d  GA104M [GeForce RTX 3070 Mobile / Max-Q]
 	249f  GA104M
 	24a0  GA104 [Geforce RTX 3070 Ti Laptop GPU]
+	24a4  GA104M
 	24ac  GA104 [GeForce RTX 30x0 Engineering Sample]
 	24ad  GA104 [GeForce RTX 3060 Engineering Sample]
 	24af  GA104 [GeForce RTX 3070 Engineering Sample]
 	24b0  GA104GL [RTX A4000]
+	24b1  GA104GL [RTX A4000H]
 	24b6  GA104GLM [RTX A5000 Mobile]
 	24b7  GA104GLM [RTX A4000 Mobile]
 	24b8  GA104GLM [RTX A3000 Mobile]
@@ -12492,8 +12642,10 @@
 	24ba  GA104GLM [RTX A4500 Laptop GPU]
 	24bb  GA104GLM [RTX A3000 Laptop GPU]
 	24bf  GA104 [GeForce RTX 3070 Engineering Sample]
+	24c9  GA104 [GeForce RTX 3060 Ti]
 	24dc  GA104M [GeForce RTX 3080 Mobile / Max-Q 8GB/16GB]
 	24dd  GA104M [GeForce RTX 3070 Mobile / Max-Q]
+	24df  GA104M
 	24e0  GA104M [Geforce RTX 3070 Ti Laptop GPU]
 	24fa  GA104 [RTX A4500 Embedded GPU ]
 	2501  GA106 [GeForce RTX 3060]
@@ -12501,21 +12653,31 @@
 	2504  GA106 [GeForce RTX 3060 Lite Hash Rate]
 	2505  GA106
 	2507  GA106 [Geforce RTX 3050]
+	2508  GA106 [GeForce RTX 3050 OEM]
+	2509  GA106 [GeForce RTX 3060 12GB Rev. 2]
 	2520  GA106M [GeForce RTX 3060 Mobile / Max-Q]
+	2521  GA106M [GeForce RTX 3060 Laptop GPU]
 	2523  GA106M [GeForce RTX 3050 Ti Mobile / Max-Q]
 	252f  GA106 [GeForce RTX 3060 Engineering Sample]
 	2531  GA106 [RTX A2000]
+	2544  GA106 [GeForce RTX 3060]
 	2560  GA106M [GeForce RTX 3060 Mobile / Max-Q]
+	2561  GA106M [GeForce RTX 3060 Laptop GPU]
 	2563  GA106M [GeForce RTX 3050 Ti Mobile / Max-Q]
 	2571  GA106 [RTX A2000 12GB]
+	2582  GA107 [GeForce RTX 3050]
 	2583  GA107 [GeForce RTX 3050]
 	25a0  GA107M [GeForce RTX 3050 Ti Mobile]
 	25a2  GA107M [GeForce RTX 3050 Mobile]
+	25a3  GA107
 	25a4  GA107
 	25a5  GA107M [GeForce RTX 3050 Mobile]
 	25a6  GA107M [GeForce MX570]
 	25a7  GA107M [GeForce MX570]
 	25a9  GA107M [GeForce RTX 2050]
+	25aa  GA107M [GeForce MX570 A]
+# GN20-P0 Refresh
+	25ac  GN20-P0-R-K2
 	25af  GA107 [GeForce RTX 3050 Engineering Sample]
 	25b5  GA107GLM [RTX A4 Mobile]
 # A16 - 25B6 10DE 14A9 / A2 - 25B6 10DE 157E
@@ -12523,11 +12685,33 @@
 	25b8  GA107GLM [RTX A2000 Mobile]
 	25b9  GA107GLM [RTX A1000 Laptop GPU]
 	25ba  GA107GLM [RTX A2000 8GB Laptop GPU]
+	25bb  GA107GLM [RTX A500 Laptop GPU]
 	25e0  GA107BM [GeForce RTX 3050 Ti Mobile]
 	25e2  GA107BM [GeForce RTX 3050 Mobile]
 	25e5  GA107BM [GeForce RTX 3050 Mobile]
+# GN20-P0 Refresh
+	25ec  GN20-P0-R-K2
 	25f9  GA107 [RTX A1000 Embedded GPU ]
 	25fa  GA107 [RTX A2000 Embedded GPU]
+	25fb  GA107 [RTX A500 Embedded GPU]
+	2684  AD102 [GeForce RTX 4090]
+	26b1  AD102GL [L6000 / RTX 6000 Ada Generation]
+	26b5  AD102GL [L40]
+	26b8  AD102GL [L40G]
+	26f5  AD102GL [L40 CNX]
+	2704  AD103 [GeForce RTX 4080]
+	2717  GN21-X11
+	2757  GN21-X11
+	2785  AD104
+	27a0  GN21-X9
+	27b8  AD104GL [L4]
+	27e0  GN21-X9
+	2820  GN21-X6
+	2860  GN21-X6
+	28a0  GN21-X4
+	28a1  GN21-X2
+	28e0  GN21-X4
+	28e1  GN21-X2
 10df  Emulex Corporation
 	0720  OneConnect NIC (Skyhawk)
 		103c 1934  FlexFabric 20Gb 2-port 650M Adapter
@@ -12568,6 +12752,7 @@
 	e300  LPe31000/LPe32000 Series 16Gb/32Gb Fibre Channel Adapter
 		1014 0614  PCIe3 4-Port 16Gb Fibre Channel Adapter for POWER (FC EN1C/EN1D; CCIN 578E)
 		1014 0615  PCIe3 2-Port 32Gb Fibre Channel Adapter for POWER (FC EN1A/EN1B; CCIN 578F)
+		1014 06a0  PCIe3 2-Port 16Gb Fibre Channel Adapter for POWER (FC EN1L/EN1M; CCIN 2CFC)
 		10df e300  LPe32002-M2 2-Port 32Gb Fibre Channel Adapter
 		10df e301  LPe32000-M2 1-Port 32Gb Fibre Channel Adapter
 		10df e310  LPe31002-M6 2-Port 16Gb Fibre Channel Adapter
@@ -12621,9 +12806,13 @@
 		10df f411  LPe35000-M2-D 1-Port 32Gb Fibre Channel Adapter
 		10df f418  LPe35000-M2-L 1-Port 32Gb PCIe Fibre Channel Adapter
 		10df f419  LPe35002-M2-L 2-Port 32Gb PCIe Fibre Channel Adapter
+		10df f421  LPe36002-M2-L 2-Port 64Gb PCIe Fibre Channel Adapter
+		10df f422  LPe36002-M64-D 2-Port 64Gb Fibre Channel Adapter
 		1590 02d5  StoreFabric SN1610E 1-Port 32Gb Fibre Channel Adapter
 		1590 02d6  StoreFabric SN1610E 2-Port 32Gb Fibre Channel Adapter
 	f500  LPe37000/LPe38000 Series 32Gb/64Gb Fibre Channel Adapter
+		1014 06c1  PCIe4 4-Port 32Gb Fibre Channel Adapter for POWER (FC EN1L/EN1M; CCIN 2CFC)
+		1014 06c2  PCIe4 2-Port 64Gb Fibre Channel Adapter for POWER (FC EN1N/EN1P; CCIN 2CFD)
 	f700  LP7000 Fibre Channel Host Adapter
 	f701  LP7000 Fibre Channel Host Adapter Alternate ID (JX1:2-3, JX2:1-2)
 	f800  LP8000 Fibre Channel Host Adapter
@@ -12756,6 +12945,7 @@
 		1028 06e4  XPS 15 9550
 		1028 06e6  Latitude 11 5175 2-in-1
 		1028 09be  Latitude 7410
+		1028 0b10  Precision 3571
 		17aa 224f  ThinkPad X1 Carbon 5th Gen
 	5260  RTS5260 PCI Express Card Reader
 	5261  RTS5261 PCI Express Card Reader
@@ -12860,6 +13050,7 @@
 		103c 2a6f  Asus IPIBL-LB Motherboard
 		103c 825b  OMEN-17-w001nv
 		103c 8615  Pavilion Laptop 15-cw1xxx
+		103c 86d4  Pavilion Laptop 15-ec0xxx
 # Rev 29, uses r8169 Driver on Linux
 		103c 8882  HP ProDesk 405 G8 Desktop Mini PC
 		1043 11f5  Notebook motherboard (one of many models)
@@ -12950,7 +13141,7 @@
 		10ec 8739  Dell Wireless 1801
 		17aa b736  Z50-75
 	b822  RTL8822BE 802.11a/b/g/n/ac WiFi adapter
-		103c 831b  Realtek RTL8822BE 802.11ac 2 × 2 Wi-Fi + Bluetooth 4.2 Combo Adapter (MU-MIMO supported)
+		103c 831b  Realtek RTL8822BE 802.11ac 2 × 2 Wi-Fi + Bluetooth 4.2 Combo Adapter (MU-MIMO supported)
 		17aa 5124  ThinkPad E595
 		17aa b023  ThinkPad E595
 	c821  RTL8821CE 802.11ac PCIe Wireless Network Adapter
@@ -12977,13 +13168,37 @@
 	3fc4  RME Digi9652 (Hammerfall)
 	3fc5  RME Hammerfall DSP
 	3fc6  RME Hammerfall DSP MADI
+# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html
+	5000  Alveo U200 XDMA Platform
+# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html
+	5004  Alveo U250 XDMA Platform
 	5005  Alveo U250
+# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html
+	500c  Alveo U280 XDMA Platform
+# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html
+	5020  Alveo U50 XMDA Platform
+# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html
+	505c  Alveo U55C
+	6987  SmartSSD
+	6988  SmartSSD
+	7011  7-Series FPGA Hard PCIe block (AXI/debug)
 	7038  FPGA Card XC7VX690T
 		17aa 402f  FPGA XC7VX690T-3FFG1157E
 	8019  Memory controller
 		1eec 0201  VSEC10232X Dual-port 100Gb/s Etherent PCIe
 	8380  Ellips ProfiXpress Profibus Master
 	8381  Ellips Santos Frame Grabber
+	9134  SmartSSD
+	9234  SmartSSD
+	9434  SmartSSD
+# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html
+	d000  Alveo U200 Golden Image
+# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html
+	d004  Alveo U250 Golden Image
+# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html
+	d00c  Alveo U280 Golden Image
+# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html
+	d020  Alveo U50 Golden Image
 	d154  Copley Controls CAN card (PCI-CAN-02)
 # SED is assigned Xilinx PCI device IDs ebf0 through ebff
 	ebf0  SED Systems Modulator/Demodulator
@@ -13146,8 +13361,9 @@
 	000b  EMU20k2 [Sound Blaster X-Fi Titanium Series]
 		1102 0041  SB0880 [SoundBlaster X-Fi Titanium PCI-e]
 		1102 0062  SB1270 [SoundBlaster X-Fi Titanium HD]
-	0012  Sound Core3D [Sound Blaster Recon3D / Z-Series]
+	0012  CA0132 Sound Core3D [Sound Blaster Recon3D / Z-Series / Sound BlasterX AE-5 Plus]
 		1102 0010  SB1570 SB Audigy Fx
+		1102 0191  CA0132 Sound Core3D - CA0113 [ Sound BlasterX AE-5 Plus]
 	4001  SB Audigy FireWire Port
 		1102 0010  SB Audigy FireWire Port
 	7002  SB Live! Game Port
@@ -13220,6 +13436,7 @@
 	3320  RocketRAID 3320
 	4310  RocketRaid 4310
 	7505  SSD7505 PCIe Gen4 x16 4-Port M.2 NVMe RAID Controller
+	7540  SSD7540 PCIe Gen4 x16 8-Port M.2 NVMe RAID Controller
 1104  RasterOps Corp.
 1105  Sigma Designs, Inc.
 	1105  REALmagic Xcard MPEG 1/2/3/4 DVD Decoder
@@ -14106,7 +14323,7 @@
 1129  Firmworks
 112a  Hermes Electronics Company, Ltd.
 # nee Linotype - Hell AG
-112b  Heidelberger Druckmaschinen AGHeidelberger Druckmaschinen AG
+112b  Heidelberger Druckmaschinen AG
 112c  Zenith Data Systems
 112d  Ravicad
 112e  Infomedia Microelectronics Inc.
@@ -14954,6 +15171,8 @@
 	0113  BG3 NVMe SSD Controller
 		1179 0001  Toshiba KBG30ZMS128G 128GB NVMe SSD
 	0115  XG4 NVMe SSD Controller
+	0116  XG5 NVMe SSD Controller
+		1179 0001  XG5 NVMe SSD Controller
 	011a  XG6 NVMe SSD Controller
 	0404  DVD Decoder card
 	0406  Tecra Video Capture device
@@ -15877,6 +16096,7 @@
 	8534  PM8534 PFX 64xG3 PCIe Fanout Switch
 	8535  PM8535 PFX 80xG3 PCIe Fanout Switch
 	8536  PM8536 PFX 96xG3 PCIe Fanout Switch
+		1bd4 0081  PM8536 PFX 96xG3 PCIe Fanout Switch
 	8546  PM8546 B-FEIP PSX 96xG3 PCIe Storage Switch
 	8562  PM8562 Switchtec PFX-L 32xG3 Fanout-Lite PCIe Gen3 Switch
 11f9  I-Cube Inc
@@ -16679,6 +16899,7 @@
 1299  Knowledge Technology Lab.
 129a  VMetro, inc.
 	0615  PBT-615 PCI-X Bus Analyzer
+	0715  cPCI Bus Analyzer
 	1100  PMC-FPGA05
 	1106  XMC-FPGA05F, PCI interface
 	1107  XMC-FPGA05F, PCIe interface
@@ -17187,6 +17408,64 @@
 	5190  9200 ECO NVMe SSD
 	5191  9200 PRO NVMe SSD
 	5192  9200 MAX NVMe SSD
+	51a2  7300 PRO NVMe SSD
+		1344 2000  960GB U.2
+		1344 3000  1920GB U.2
+		1344 4000  3480GB U.2
+		1344 5000  7680GB U.2
+	51a3  7300 MAX NVMe SSD
+		1344 1100  400GB M.2
+		1344 2000  800GB U.2
+		1344 2100  800GB M.2
+		1344 3000  1600GB U.2
+		1344 4000  3200GB U.2
+		1344 5000  6400GB U.2
+	51b1  9300 PRO NVMe SSD
+		1344 4000  3.84TB U.2
+		1344 5000  7.68TB U.2
+		1344 6000  15.36TB U.2
+	51b2  9300 MAX NVMe SSD
+		1344 4000  3.2TB U.2
+		1344 5000  6.4 TB U.2
+		1344 6000  12.8TB U.2
+	51c0  7400 PRO NVMe SSD
+		1028 2162  EC NVMe OPAL 7400 RI M.2 480GB
+		1028 2163  EC NVMe OPAL 7400 RI M.2 960GB
+		1028 2164  EC NVMe ISE 7400 RI M.2 480GB
+		1028 2165  EC NVMe ISE 7400 RI M.2 960GB
+		1028 216c  EC NVMe ISE 7400 RI M.2 110 1.92TB
+		1028 216d  EC NVMe ISE 7400 RI M.2 110 3.84TB
+		1028 216e  EC NVMe OPAL 7400 RI M.2 110 1.92TB
+		1028 216f  EC NVMe OPAL 7400 RI M.2 110 3.84TB
+		1028 2197  EC NVMe OPAL 7400 RI M.2 110 960GB
+		1028 224d  EC NVMe ISE 7400 RI M.2 110 960GB
+		1344 1100  M.2 480GB
+		1344 2000  U.3 960GB
+		1344 2100  M.2 960GB
+		1344 2600  E1.S 960GB
+		1344 2b00  M.2 1920GB
+		1344 2d00  E1.2 1920GB
+		1344 3000  U.3 1920GB
+		1344 3e00  M.2 3840GB
+		1344 3f00  E1.S 3840GB
+		1344 4000  U.3 3840GB
+		1344 5000  U.3 7680GB
+	51c1  7400 MAX NVMe SSD
+		1028 216a  EC NVMe ISE 7400 MU M.2 80 800GB
+		1028 216b  EC NVMe OPAL 7400 MU M.2 80 800GB
+		1344 1100  M.2 400GB
+		1344 2000  U.3 800GB
+		1344 2100  M.2 800GB
+		1344 2600  E1.S 800GB
+		1344 2b00  M.2 1600GB
+		1344 2d00  E1.S 1600GB
+		1344 3000  U.3 1600GB
+		1344 3e00  M.2 3200GB
+		1344 3f00  E1.S 3200GB
+		1344 4000  U.3 3200GB
+		1344 5000  U.3 6400GB
+	51c3  7450 PRO NVMe SSD
+	51c4  7450 MAX NVMe SSD
 1345  Arescom Inc
 1347  Odetics
 1349  Sumitomo Electric Industries, Ltd.
@@ -17932,6 +18211,7 @@
 	0002  MN-130 (ADMtek Centaur-P based)
 # Virtual Video Card Device for Windows Remote Desktop (RDP)
 	008c  Basic Render Driver
+	008e  Basic Render Driver
 	5353  Hyper-V virtual VGA
 	5801  XMA Decoder (Xenon)
 	5802  SATA Controller - CdRom (Xenon)
@@ -18703,6 +18983,8 @@
 	6088  T62100-6088 Unified Wire Ethernet Controller
 	6089  T62100-6089 Unified Wire Ethernet Controller
 	608a  T62100-608a Unified Wire Ethernet Controller
+	6092  T62100-KR Unified Wire Ethernet Controller
+		01de fff9  Gimlet Baseboard
 	6401  T6225-CR Unified Wire Ethernet Controller
 	6402  T6225-SO-CR Unified Wire Ethernet Controller
 	6403  T6425-CR Unified Wire Ethernet Controller
@@ -18727,6 +19009,8 @@
 	6488  T62100-6088 Unified Wire Ethernet Controller
 	6489  T62100-6089 Unified Wire Ethernet Controller
 	648a  T62100-608a Unified Wire Ethernet Controller
+	6492  T62100-KR Unified Wire Ethernet Controller
+		01de fff9  Gimlet Baseboard
 	6501  T6225-CR Unified Wire Storage Controller
 	6502  T6225-SO-CR Unified Wire Storage Controller
 	6503  T6425-CR Unified Wire Storage Controller
@@ -18751,6 +19035,7 @@
 	6588  T62100-6088 Unified Wire Storage Controller
 	6589  T62100-6089 Unified Wire Storage Controller
 	658a  T62100-608a Unified Wire Storage Controller
+	6592  T62100-KR Unified Wire Storage Controller
 	6601  T6225-CR Unified Wire Storage Controller
 	6602  T6225-SO-CR Unified Wire Storage Controller
 	6603  T6425-CR Unified Wire Storage Controller
@@ -18775,6 +19060,7 @@
 	6688  T62100-6088 Unified Wire Storage Controller
 	6689  T62100-6089 Unified Wire Storage Controller
 	668a  T62100-608a Unified Wire Storage Controller
+	6692  T62100-KR Unified Wire Storage Controller
 	6801  T6225-CR Unified Wire Ethernet Controller [VF]
 	6802  T6225-SO-CR Unified Wire Ethernet Controller [VF]
 	6803  T6425-CR Unified Wire Ethernet Controller [VF]
@@ -18876,7 +19162,7 @@
 	a804  NVMe SSD Controller SM961/PM961/SM963
 		144d a801  SM963 2.5" NVMe PCIe SSD
 	a808  NVMe SSD Controller SM981/PM981/PM983
-		144d a801  SSD 970 EVO Plus 1TB
+		144d a801  SSD 970 EVO Plus
 		1d49 403b  Thinksystem U.2 PM983 NVMe SSD
 	a809  NVMe SSD Controller 980
 	a80a  NVMe SSD Controller PM9A1/PM9A3/980PRO
@@ -18889,6 +19175,7 @@
 		0128 2168  DC NVMe PM9A3 RI 80M.2 480GB
 		0128 2169  DC NVMe PM9A3 RI 80M.2 960GB
 		144d a813  General DC NVMe PM9A3
+	a80b  NVMe SSD Controller PM9B1
 	a820  NVMe SSD Controller 171X
 		1028 1f95  Express Flash NVMe XS1715 SSD 400GB
 		1028 1f96  Express Flash NVMe XS1715 SSD 800GB
@@ -19052,6 +19339,7 @@
 148b  INNOMEDIALOGIC Inc.
 148c  Tul Corporation / PowerColor
 	2391  Radeon RX 590 [Red Devil]
+	2398  AXRX 5700 XT 8GBD6-3DHE/OC [PowerColor Red Devil Radeon RX 5700 XT]
 148d  DIGICOM Systems, Inc.
 	1003  HCF 56k Data/Fax Modem
 148e  OSI Plus Corporation
@@ -19154,7 +19442,7 @@
 		103c 1240  Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM)
 14c2  DTK Computer
 14c3  MEDIATEK Corp.
-	0608  RZ608 Wi-Fi 6E 80MHz
+	0608  MT7921K (RZ608) Wi-Fi 6E 80MHz
 	0616  MT7922 802.11ax PCI Express Wireless Network Adapter
 	7612  MT7612E 802.11acbgn PCI Express Wireless Network Adapter
 	7615  MT7615E 802.11ac PCI Express Wireless Network Adapter
@@ -19266,6 +19554,8 @@
 	1609  BCM5745X NetXtreme-E Ethernet Virtual Function
 	1612  BCM70012 Video Decoder [Crystal HD]
 	1614  BCM57454 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb Ethernet
+		14e4 d140  NetXtreme-E Quad-port 10GBASE-T Ethernet PCIe Adapter (BCM957454-P410SDBT)
+		14e4 d340  NetXtreme-E Quad-port 10GBASE-T Ethernet OCP 3.0 Adapter (BCM957454-N410SDBT)
 	1615  BCM70015 Video Decoder [Crystal HD]
 	1639  NetXtreme II BCM5709 Gigabit Ethernet
 		1028 0235  PowerEdge R710 BCM5709 Gigabit Ethernet
@@ -19404,6 +19694,7 @@
 		103c 22be  Ethernet 1Gb 4-port 331i Adapter
 		103c 3383  Ethernet 1Gb 4-port 331T Adapter
 		14e4 1904  4-port 1Gb Ethernet Adapter
+		193d 1025  NIC-ETH330T-LP-4P
 	1659  NetXtreme BCM5721 Gigabit Ethernet PCI Express
 		1014 02c6  eServer xSeries server mainboard
 		1028 01e6  PowerEdge 860
@@ -19675,12 +19966,16 @@
 	16d4  BCM57402 NetXtreme-E Ethernet Partition
 	16d5  BCM57407 NetXtreme-E 10GBase-T Ethernet Controller
 	16d6  BCM57412 NetXtreme-E 10Gb RDMA Ethernet Controller
+		117c 00cd  FastFrame N4S2 Dual-port 10Gb Ethernet Adapter
 		14e4 1202  BCM957412M4122C OCP 1x25G Type1 wRoCE
 		14e4 4120  NetXtreme E-Series Advanced Dual-port 10Gb SFP+ Ethernet Network Daughter Card
 		14e4 4126  NetXtreme-E Dual-port 10G SFP+ Ethernet OCP 3.0 Adapter (BCM957412N4120C)
 		152d 8b20  BCM57412 NetXtreme-E 10Gb RDMA Ethernet Controller
 		152d 8b22  BCM57412 NetXtreme-E 25Gb RDMA Ethernet Controller
+# NIC-ETH531F-LP-2P BCM57412 2 x 10G SFP+ Ethernet PCIe Card
+		193d 1024  NIC-ETH531F-LP-2P
 	16d7  BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller
+		117c 00cc  FastFrame N422 Dual-port 25Gb Ethernet Adapter
 		14e4 1402  BCM957414A4142CC 10Gb/25Gb Ethernet PCIe
 		14e4 1404  BCM957414M4142C OCP 2x25G Type1 wRoCE
 		14e4 4140  NetXtreme E-Series Advanced Dual-port 25Gb SFP28 Network Daughter Card
@@ -19689,9 +19984,13 @@
 		14e4 4146  NetXtreme-E Dual-port 25G SFP28 Ethernet OCP 3.0 Adapter (BCM957414N4140C)
 		1590 020e  Ethernet 25Gb 2-port 631SFP28 Adapter
 		1590 0211  Ethernet 25Gb 2-port 631FLR-SFP28 Adapter
-		1eec 0101  VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe
+		1bd4 008e  ENFB2251-SP2
+		1bd4 008f  ENPB2251-SP2
+# VSE-225-31S Dual-port 10Gb/25Gb Ethernet PCIe
+		1eec 0101  VSE-225-31S Dual-port 10Gb/25Gb Ethernet PCIe
 	16d8  BCM57416 NetXtreme-E Dual-Media 10G RDMA Ethernet Controller
 		1028 1feb  NetXtreme-E 10Gb SFP+ Adapter
+		117c 00ce  FastFrame N4T2 Dual-port 10GBASE-T Ethernet Adapter
 		14e4 4163  NetXtreme-E Dual-port 10GBASE-T Ethernet OCP 2.0 Adapter (BCM957416M4163C)
 		14e4 4166  NetXtreme-E Dual-port 10GBASE-T Ethernet OCP 3.0 Adapter (BCM957416N4160C)
 		1590 020c  Ethernet 10Gb 2-port 535T Adapter
@@ -19743,13 +20042,16 @@
 		103c 30c0  Compaq 6710b
 		17aa 3a23  IdeaPad S10e
 	1750  BCM57508 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb/200Gb Ethernet
+		117c 00cf  FastFrame N412 Dual-port 100Gb Ethernet Adapter
 		14e4 2100  NetXtreme-E Dual-port 100G QSFP56 Ethernet PCIe4.0 x16 Adapter (BCM957508-P2100G)
 		14e4 5208  NetXtreme-E Dual-port 100G QSFP56 Ethernet OCP 3.0 Adapter (BCM957508-N2100G)
 		14e4 d124  NetXtreme-E P2100D BCM57508 2x100G QSFP PCIE
-		14e4 df24  BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz Ethernet
+		14e4 df24  NetXtreme-E NGM2100D BCM57508 2x100G KR Mezz Ethernet
 	1751  BCM57504 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb/200Gb Ethernet
 		1028 09d4  PowerEdge XR11/XR12 LOM
 		14e4 5045  NetXtreme-E BCM57504 4x25G OCP3.0
+		14e4 5100  NetXtreme-E Single-port 100G QSFP56 Ethernet OCP 3.0 Adapter (BCM957504-N1100G)
+		14e4 5105  NetXtreme-E Single-port 100G DSFP Ethernet OCP 3.0 Adapter (BCM957504-N1100GD)
 		14e4 5250  NetXtreme-E BCM57504 4x25G KR Mezz
 		14e4 d142  NetXtreme-E P425D BCM57504 4x25G SFP28 PCIE
 	1752  BCM57502 NetXtreme-E 10Gb/25Gb/40Gb/50Gb Ethernet
@@ -20028,11 +20330,18 @@
 	5850  BCM5850 Crypto Accelerator
 	5e87  Valkyrie offload engine
 	5e88  Viper Offload Engine
+# bluetooth PCI function of the BRCM4378 Wireless Network Adapter
+	5f69  BRCM4378 Bluetooth Controller
+# Bluetooth PCI function of the BRCM4387 Wireless Network Adapter
+	5f71  BRCM4387 Bluetooth Controller
+# Bluetooth PCI function of the BRCM4377 Wireless Network Adapter
+	5fa0  BRCM4377 Bluetooth Controller
 	8602  BCM7400/BCM7405 Serial ATA Controller
 	9026  CN99xx [ThunderX2] Integrated USB 3.0 xHCI Host Controller
 	9027  CN99xx [ThunderX2] Integrated AHCI/SATA 3 Host Controller
 	a8d8  BCM43224/5 Wireless Network Adapter
 	aa52  BCM43602 802.11ac Wireless LAN SoC
+	b080  BCM56080 Firelight2 Switch ASIC
 	b302  BCM56302 StrataXGS 24x1GE 2x10GE Switch Controller
 	b334  BCM56334 StrataXGS 24x1GE 4x10GE Switch Controller
 	b370  BCM56370 Switch ASIC
@@ -20068,6 +20377,8 @@
 		14e4 8028  Stingray Dual-Port 25Gb Ethernet PCIe SmartNIC w8GB DRAM (Part No BCM958802A8048C)
 		1bb0 0021  HPE SimpliVity Accelerator
 	d804  BCM58804 Stingray 100Gb Ethernet SoC
+# Trident5-X12 Switch ASIC
+	f800  BCM78800 switch ASIC for f800
 14e5  Pixelfusion Ltd
 14e6  SHINING Technology Inc
 14e7  3CX
@@ -20729,6 +21040,7 @@
 15b0  Zoltrix International Ltd
 15b1  Source Technology Inc
 15b2  Mosaid Technologies Inc
+# now NVIDIA
 15b3  Mellanox Technologies
 	0191  MT25408 [ConnectX IB Flash Recovery]
 	01f6  MT27500 Family [ConnectX-3 Flash Recovery]
@@ -20768,6 +21080,10 @@
 	0257  Quantum-2 in Flash Recovery Mode
 	0258  Quantum-2 RMA
 	0259  Abir Chiplet
+	025b  Quantum-3 in Flash Recovery Mode
+	025c  Quantum-3 RMA
+	025d  Quantum-3CPO in Flash Recovery Mode
+	025e  Quantum-3CPO RMA
 	0262  MT27710 [ConnectX-4 Lx Programmable] EN
 	0263  MT27710 [ConnectX-4 Lx Programmable Virtual Function] EN
 	0264  Innova-2 Flex Burn image
@@ -20777,6 +21093,8 @@
 	0275  Spectrum-4C RMA
 	0277  Spectrum-4TOR RMA
 	0281  NPS-600 Flash Recovery
+	0282  ArcusE Flash recovery
+	0283  ArcusE RMA
 	1002  MT25400 Family [ConnectX-2 Virtual Function]
 	1003  MT27500 Family [ConnectX-3]
 		1014 04b5  PCIe3 40GbE RoCE Converged Host Bus Adapter for Power
@@ -20788,6 +21106,7 @@
 		15b3 0025  ConnectX-3 IB QDR Dual Port Mezzanine Card
 		15b3 0026  ConnectX-3 IB FDR Dual Port Mezzanine Card
 		15b3 0028  ConnectX-3 VPI Dual QSFP+ Port QDR Infiniband 40Gb/s or 10Gb Ethernet
+		15b3 0055  ConnectX-3 10 GbE Single Port SFP+ Adapter
 		15b3 0059  ConnectX-3 VPI IB FDR/40 GbE Single Port QSFP+ Mezzanine Card
 		15b3 0064  ConnectX-3 EN 10/40 GbE Single Port QSFP+ Adapter (MCX313A-BCBT)
 		15b3 0065  ConnectX-3 VPI IB FDR/40 GbE Dual Port QSFP+ Adapter
@@ -20855,10 +21174,10 @@
 		193d 1084  NIC-ETH540F-3S-2P
 	1016  MT27710 Family [ConnectX-4 Lx Virtual Function]
 	1017  MT27800 Family [ConnectX-5]
-		15b3 0006  ConnectX®-5 EN network interface card, 100GbE single-port QSFP28, PCIe3.0 x16, tall bracket; MCX515A-CCAT
-		15b3 0007  Mellanox ConnectX®-5 MCX516A-CCAT
-		15b3 0020  ConnectX®-5 EN network interface card, 10/25GbE dual-port SFP28, PCIe3.0 x8, tall bracket ; MCX512A-ACAT
-		15b3 0068  ConnectX®-5 EN network interface card for OCP2.0, Type 1, with host management, 25GbE dual-port SFP28, PCIe3.0 x8, no bracket Halogen free ; MCX542B-ACAN
+		15b3 0006  ConnectX®-5 EN network interface card, 100GbE single-port QSFP28, PCIe3.0 x16, tall bracket; MCX515A-CCAT
+		15b3 0007  Mellanox ConnectX®-5 MCX516A-CCAT
+		15b3 0020  ConnectX®-5 EN network interface card, 10/25GbE dual-port SFP28, PCIe3.0 x8, tall bracket ; MCX512A-ACAT
+		15b3 0068  ConnectX®-5 EN network interface card for OCP2.0, Type 1, with host management, 25GbE dual-port SFP28, PCIe3.0 x8, no bracket Halogen free ; MCX542B-ACAN
 		193d 1051  NIC-IB1040i-Mb-2P
 	1018  MT27800 Family [ConnectX-5 Virtual Function]
 	1019  MT28800 Family [ConnectX-5 Ex]
@@ -20950,6 +21269,7 @@
 	a2dd  BF4 Family Crypto enabled [BlueField-4 SoC Crypto enabled]
 	a2de  BF4 Family Crypto disabled [BlueField-4 SoC Crypto disabled]
 	a2df  BF4 Family integrated network controller [BlueField-4 integrated network controller]
+	b200  ArcusE
 	c2d2  MT416842 BlueField SoC management interfac
 	c2d3  MT42822 BlueField-2 SoC Management Interface
 	c2d4  MT43162 BlueField-3 Lx SoC Management Interface
@@ -20971,6 +21291,8 @@
 	cf84  Spectrum-4C
 	d2f0  Quantum HDR (200Gbps) switch
 	d2f2  Quantum-2 NDR (400Gbps) switch
+	d2f4  Quantum-3
+	d2f6  Quantum-3CPO
 15b4  CCI/TRIAD
 15b5  Cimetrics Inc
 15b6  Texas Memory Systems Inc
@@ -21051,7 +21373,7 @@
 15cd  Dreamtech Co Ltd
 15ce  Genrad Inc
 # https://www.hilscher.com/imprint/
-15cf  Hilscher Gesellschaft für Systemautomation mbH
+15cf  Hilscher Gesellschaft für Systemautomation mbH
 	0000  CIFX PCI/PCIe
 15d1  Infineon Technologies AG
 15d2  FIC (First International Computer Inc)
@@ -21062,6 +21384,7 @@
 15d7  Rockwell-Collins Inc
 15d8  Cybernetics Technology Co Ltd
 15d9  Super Micro Computer Inc
+	1b67  AOC-S3916L-H16iR-32DD
 15da  Cyberfirm Inc
 15db  Applied Computing Systems Inc
 15dc  Litronic Inc
@@ -21521,14 +21844,14 @@
 	002e  AR9287 Wireless Network Adapter (PCI-Express)
 		105b e034  T77H167.00
 	0030  AR93xx Wireless Network Adapter
-		103c 1627  AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter
+		103c 1627  AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter
 		106b 009a  AirPort Extreme
 		1186 3a7e  DWA-566 Wireless N 300 Dual Band PCIe Desktop Adapter
 		1a56 2000  Killer Wireless-N 1102 Half-size Mini PCIe Card [AR9382]
 		1a56 2001  Killer Wireless-N 1103 Half-size Mini PCIe Card [AR9380]
 	0032  AR9485 Wireless Network Adapter
 		1028 0208  Wireless 1506 WLAN Half Mini-Card
-		103c 1838  AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter
+		103c 1838  AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter
 		105b e044  Unex DHXA-225
 		144d 410e  AR9485WB-EG 802.11b/g/n mini-PCIe card on a series 3 laptop
 		1a3b 1186  AW-NE186H
@@ -22053,8 +22376,8 @@
 	0400  Datacenter Technologies QDF2432 PCI Express Root Port
 	0401  Datacenter Technologies QDF2400 PCI Express Root Port
 	1000  QCS405 PCIe Root Complex
-	1101  QCA6390 Wireless Network Adapter [AX500-DBS (2x2)]
-	1103  Atheros QCNFA765
+	1101  QCA6390 Wireless Network Adapter
+	1103  QCNFA765 Wireless Network Adapter
 	1104  QCN6024/9024/9074 Wireless Network Adapter
 17cc  NetChip Technology, Inc
 	2280  USB 2.0
@@ -22099,6 +22422,10 @@
 		17d3 1883  ARC-1883 8/12/16/24 Port PCIe 3.0 to SAS/SATA 12Gb RAID Controller
 	1884  ARC-1884 series PCIe 3.0 to SAS/SATA 12/6Gb RAID Controller
 	188a  ARC-1886 series PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller
+		17d3 1217  ARC-1217 4-Port PCIe 4.0 to SAS/SATA 12/6Gb RAID Controller
+		17d3 1227  ARC-1227 8-Port PCIe 4.0 to SAS/SATA 12/6Gb RAID Controller
+		17d3 1686  ARC-1686 PCIe 4.0 to SAS/SATA 12/6Gb Tape drive Controller
+		17d3 1886  ARC-1886 PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller
 # nee Neterion Inc., previously S2io Inc.
 17d5  Exar Corp.
 	5731  Xframe 10-Gigabit Ethernet PCI-X
@@ -22541,6 +22868,7 @@
 	01c5  NT200A02 Network Adapter
 	01d5  NT50B01 Network Adapter
 	01e5  NT100A01 Network Adapter
+	0225  NT40A11 Network Adapter
 18f6  NextIO
 	1000  [Nexsis] Switch Virtual P2P PCIe Bridge
 	1001  [Texsis] Switch Virtual P2P PCIe Bridge
@@ -23084,6 +23412,10 @@
 	0212  Hi1822 Family (2*8G FC)
 		19e5 d303  Hi1822 SP522 (2*8G FC)
 		19e5 d306  Hi1822 SP523 (2*8G FC)
+	0222  Hi1822 Family
+		19e5 0051  Hi1822 SP681 (2*25/10GE)
+		19e5 0052  Hi1822 SP680 (4*25/10GE)
+		19e5 00a1  Hi1822 SP670 (2*100GE)
 	1710  iBMA Virtual Network Adapter
 	1711  Hi171x Series [iBMC Intelligent Management system chip w/VGA support]
 	1822  Hi1822 Family (4*25GE)
@@ -23105,7 +23437,9 @@
 		19e5 6214  NVMe SSD ES3500P V6 7680GB 2.5" U.2
 		19e5 6215  NVMe SSD ES3500P V6 15360GB 2.5" U.2
 	375e  Hi1822 Family Virtual Function
+	375f  Hi1822 Family Virtual Function
 	379e  Hi1822 Family Virtual Function
+	379f  Hi1822 Family Virtual Function
 	a120  HiSilicon PCIe Root Port with Gen4
 	a121  HiSilicon PCI-PCI Bridge
 	a122  HiSilicon Embedded DMA Engine
@@ -23268,7 +23602,11 @@
 	000d  SEL-3390S8 Serial Adapter
 	000e  SEL-3390E4 Ethernet Adapter
 	0014  SEL-3390T Time and Ethernet Adapter
+	0015  SEL-3350 Mainboard
+	0016  SEL-3350 Serial Expansion Board
+	0017  SEL-3350 GPIO Expansion Board
 	0018  SEL-3390E4 Ethernet Adapter
+	001c  SEL-3390E4 Ethernet Adapter
 1aae  Global Velocity, Inc.
 1ab4  Distributed Management Task Force, Inc. (DMTF)
 1ab6  CalDigit, Inc.
@@ -23292,6 +23630,8 @@
 		13c2 3016  TT-budget S2-4200 Twin
 		4254 0552  S952 v3
 1ae0  Google, Inc.
+# NVMe drive in GCP
+	001f  NVMe device
 	0042  Compute Engine Virtual Ethernet [gVNIC]
 	abcd  Airbrush Combined Paintbox IPU/Oscar Edge TPU [Pixel Neural Core]
 1ae3  SANBlaze Technology, Inc.
@@ -23393,7 +23733,9 @@
 # nee Qumranet, Inc.
 1af4  Red Hat, Inc.
 	1000  Virtio network device
+		01de fffb  Propolis Virtio network device
 	1001  Virtio block device
+		01de fffa  Propolis Virtio block device
 	1002  Virtio memory balloon
 	1003  Virtio console
 	1004  Virtio SCSI
@@ -23424,6 +23766,7 @@
 		1af4 1100  QEMU Virtual Machine
 1af5  Netezza Corp.
 1afa  J & W Electronics Co., Ltd.
+1b00  Montage Technology Co., Ltd.
 1b03  Magnum Semiconductor, Inc,
 	6100  DXT/DXTPro Multiformat Broadcast HD/SD Encoder/Decoder/Transcoder
 	7000  D7 Multiformat Broadcast HD/SD Encoder/Decoder/Transcoder
@@ -23437,6 +23780,7 @@
 	0611  ASM1061 SATA IDE Controller
 	0612  ASM1062 Serial ATA Controller
 		1849 0612  Motherboard
+	0625  106x SATA/RAID Controller
 	1040  ASM1040 XHCI Controller
 	1042  ASM1042 SuperSpeed USB Host Controller
 		1043 1059  K53SM motherboard
@@ -23454,7 +23798,7 @@
 	1242  ASM1142 USB 3.1 Host Controller
 	1343  ASM1143 USB 3.1 Host Controller
 	1812  ASM1812 6-Port PCIe x4 Gen2 Packet Switch
-	2142  ASM2142 USB 3.1 Host Controller
+	2142  ASM2142/ASM3142 USB 3.1 Host Controller
 		1462 7a72  H270 PC MATE
 	2824  ASM2824 PCIe Gen3 Packet Switch
 	3242  ASM3242 USB 3.2 Host Controller
@@ -23531,6 +23875,7 @@
 		1028 2113  BOSS-N1 Modular
 		1028 2151  BOSS-N1 Modular ET
 		1028 2196  ROR-N100
+		1b4b 2241  Santa Cruz NVMe Host Adapter
 		1d49 0306  ThinkSystem M.2 NVMe 2-Bay RAID Enablement Kit
 		1d49 0307  ThinkSystem 7mm NVMe 2-Bay Rear RAID Enablement Kit
 	9120  88SE9120 SATA 6Gb/s Controller
@@ -23556,6 +23901,8 @@
 		1028 1fdf  BOSS-S1 Modular
 		1028 1fe2  BOSS-S1 Adapter
 		1028 2010  BOSS-S2 Adapter
+		1028 2260  BOSS-S1 Modular
+		1028 2261  BOSS-S2 Adapter
 # RS0200L6R2iM2
 		1bd4 0073  RS0200L6R2iM2
 		1d49 0300  ThinkSystem M.2 with Mirroring Enablement Kit
@@ -23684,6 +24031,38 @@
 		1bb1 0157  Nytro 5050M 7mm
 # Nytro 5050M (Ebonhawk Mainstream Performance) TCG - 7mm
 		1bb1 0158  Nytro 5050M TCG 7mm
+# Nytro 5060M (Rocinante Mainstream Performance) - 15mm
+		1bb1 0159  Nytro 5060M
+# Nytro 5050M TCG (Rocinante Mainstream Performance) - 15mm
+		1bb1 0160  Nytro 5060M TCG
+# Nytro 5060M 7mm (Rocinante Mainstream Performance)
+		1bb1 0161  Nytro 5060M 7mm
+# Nytro 5060M TCG (Rocinante Mainstream Performance) - 7mm
+		1bb1 0162  Nytro 5060M TCG 7mm
+# Nytro 5060H (Rocinante High Performance)
+		1bb1 0163  Nytro 5060H
+# Nytro 5060H TCG (Rocinante High Performance)
+		1bb1 0164  Nytro 5060H TCG
+# Nytro 5060H (Rocinante - High Performance) - E3.S 1T
+		1bb1 0165  Nytro 5060H E3.S 1T
+# Nytro 5060H (Rocinante - High Performance) - E3.S 1T TCG
+		1bb1 0166  Nytro 5060H E3.S 1T TCG
+# Nytro 5060H (Rocinante - High Performance) - E3.L 1T
+		1bb1 0167  Nytro 5060H E3.L 1T
+# Nytro 5060H (Rocinante - High Performance) - E3.L 1T TCG
+		1bb1 0168  Nytro 5060H E3.L 1T TCG
+# Nytro 5060M (Rocinante Mainstream Performance) - E3.S 1T
+		1bb1 0169  Nytro 5060M E3.S 1T
+# Nytro 5060M (Rocinante Mainstream Performance) - E3.S 1T TCG
+		1bb1 0170  Nytro 5060M E3.S 1T TCG
+# Nytro 5060M (Rocinante Mainstream Performance) - E3.L 1T
+		1bb1 0171  Nytro 5060M E3.L 1T
+# Nytro 5060M (Rocinante Mainstream Performance) - E3.L 1T TCG
+		1bb1 0172  Nytro 5060M E3.L 1T TCG
+# Nytro 5060M (Rocinante Mainstream Performance) - E1.S
+		1bb1 0173  Nytro 5060M E1.S
+# Nytro 5060M (Rocinante Mainstream Performance) - E1.S TCG
+		1bb1 0174  Nytro 5060M E1.S TCG
 		1bb1 01a1  Nytro XP7102
 	5012  FireCuda 510 SSD
 	5016  FireCuda 520 SSD
@@ -23723,6 +24102,8 @@
 	1007  AB3000 Series Rugged Computer (Series N)
 	1008  ME1000 mPCIe Avionics Interface Card
 	100a  NG1 Series Avionics Converter
+	100b  LE5 429 Databus Interface Card
+	100c  LE5 1553 Databus Interface Card
 	1101  OmniBus II PCIe Multi-Protocol Interface Card
 	1102  OmniBusBox II Multi-Protocol Interface Core
 	1103  OmniBus II cPCIe/PXIe Multi-Protocol Interface Card
@@ -23763,6 +24144,7 @@
 	001c  FD922
 	001d  Vega
 	001f  FD940
+	0020  FD2110
 1c28  Lite-On IT Corp. / Plextor
 	0122  M6e PCI Express SSD [Marvell 88SS9183]
 # previously Fiberblaze
@@ -23785,6 +24167,8 @@
 	00e5  PacketMover 2x10Gb [Corfu]
 	1000  SmartNIC N5010 4x100Gb
 	1001  SmartNIC N5011 w/2xE810 4x100Gb
+	1002  SmartNIC N5013 4x100Gb
+	1003  SmartNIC N5014 w/2xE810 4x100Gb
 	a000  FBC2CGG3 Capture 2x40Gb [Mango_02]
 	a001  FBC2CGG3 Capture 2x100Gb [Mango_02]
 	a003  FBC2CGG3 Capture 16x10Gb [Mango]
@@ -23826,9 +24210,10 @@
 	1285  PC300 NVMe Solid State Drive 1TB
 	1327  BC501 NVMe Solid State Drive
 	1339  BC511
-	1504  SC300 512GB M.2 2280 SATA Solid State Drive
+	1504  PC400 NVMe SSD
 	1527  PC401 NVMe Solid State Drive 256GB
-	174a  Gold P31 SSD
+	174a  Gold P31/PC711 NVMe Solid State Drive
+	2204  960GB TLC PCIe Gen3 x4 NVMe M.2 22110
 	243b  PE6110 NVMe Solid State Drive
 		1c5c 0100  PE6110 NVMe Solid State Drive
 	2839  PE8000 Series NVMe Solid State Drive
@@ -23842,8 +24227,17 @@
 		1028 214a  DC NVMe PE8010 RI U.2 7.68TB
 		1c5c 0100  PE8000 Series NVMe Solid State Drive
 	2849  PE81x0 U.2/3 NVMe Solid State Drive
+		1c5c 0101  PE81x0 U.2/3 NVMe Solid State Drive
 1c5f  Beijing Memblaze Technology Co. Ltd.
 	000d  PBlaze5 520/526
+		1c5f 0220  NVMe SSD PBlaze5 520 1920G AIC
+		1c5f 0221  NVMe SSD PBlaze5 520 1920G 2.5" U.2
+		1c5f 0230  NVMe SSD PBlaze5 520 3840G AIC
+		1c5f 0231  NVMe SSD PBlaze5 520 3840G 2.5" U.2
+		1c5f 4220  NVMe SSD PBlaze5 526 1600G AIC
+		1c5f 4221  NVMe SSD PBlaze5 526 1600G 2.5" U.2
+		1c5f 4230  NVMe SSD PBlaze5 526 3200G AIC
+		1c5f 4231  NVMe SSD PBlaze5 526 3200G 2.5" U.2
 	000e  PBlaze6 6530
 		1c5f 0b20  NVMe SSD PBlaze6 6530 1920G AIC
 		1c5f 0b21  NVMe SSD PBlaze6 6530 1920G 2.5" U.2
@@ -23851,13 +24245,25 @@
 		1c5f 0b31  NVMe SSD PBlaze6 6530 3840G 2.5" U.2
 		1c5f 0b40  NVMe SSD PBlaze6 6530 7680G AIC
 		1c5f 0b41  NVMe SSD PBlaze6 6530 7680G 2.5" U.2
-		1c5f 4b20  NVMe SSD PBlaze6 6530 1600G AIC
-		1c5f 4b21  NVMe SSD PBlaze6 6530 1600G 2.5" U.2
-		1c5f 4b30  NVMe SSD PBlaze6 6530 3200G AIC
-		1c5f 4b31  NVMe SSD PBlaze6 6530 3200G 2.5" U.2
-		1c5f 4b40  NVMe SSD PBlaze6 6530 6400G AIC
-		1c5f 4b41  NVMe SSD PBlaze6 6530 6400G 2.5" U.2
+		1c5f 1331  NVMe SSD PBlaze6 6531 3840G 2.5" U.2
+		1c5f 1341  NVMe SSD PBlaze6 6531 7680G 2.5" U.2
+		1c5f 4b20  NVMe SSD PBlaze6 6536 1600G AIC
+		1c5f 4b21  NVMe SSD PBlaze6 6536 1600G 2.5" U.2
+		1c5f 4b30  NVMe SSD PBlaze6 6536 3200G AIC
+		1c5f 4b31  NVMe SSD PBlaze6 6536 3200G 2.5" U.2
+		1c5f 4b40  NVMe SSD PBlaze6 6536 6400G AIC
+		1c5f 4b41  NVMe SSD PBlaze6 6536 6400G 2.5" U.2
+		1c5f 5331  NVMe SSD PBlaze6 6537 3200G 2.5" U.2
+		1c5f 5341  NVMe SSD PBlaze6 6537 6400G 2.5" U.2
 	003d  PBlaze5 920/926
+		1c5f 0a30  NVMe SSD PBlaze5 920 3840G AIC
+		1c5f 0a31  NVMe SSD PBlaze5 920 3840G 2.5" U.2
+		1c5f 0a40  NVMe SSD PBlaze5 920 7680G AIC
+		1c5f 0a41  NVMe SSD PBlaze5 920 7680G 2.5" U.2
+		1c5f 4a30  NVMe SSD PBlaze5 926 3200G AIC
+		1c5f 4a31  NVMe SSD PBlaze5 926 3200G 2.5" U.2
+		1c5f 4a40  NVMe SSD PBlaze5 926 6400G AIC
+		1c5f 4a41  NVMe SSD PBlaze5 926 6400G 2.5" U.2
 	003e  PBlaze6 6920
 		1c5f 0a31  NVMe SSD PBlaze6 6920 3840GB 2.5" U.2
 		1c5f 0a41  NVMe SSD PBlaze6 6920 7680GB 2.5" U.2
@@ -23905,10 +24311,12 @@
 	0002  Clarett
 1cb8  Dawning Information Industry Co., Ltd.
 1cc1  ADATA Technology Co., Ltd.
+	33f8  IM2P33F8ABR1 NVMe SSD
+	5350  XPG GAMMIX S50 NVMe SSD
 # 256GB NVMe SSD
 	5766  ADATA XPG GAMMIXS1 1L Media
 	8201  XPG SX8200 Pro PCIe Gen3x4 M.2 2280 Solid State Drive
-1cc4  Union Memory (Shenzhen)
+1cc4  Shenzhen Unionmemory Information System Ltd.
 	1203  NVMe SSD Controller UHXXXa series
 		1cc4 a121  NVMe SSD UHXXXa series U.2 960GB
 		1cc4 a122  NVMe SSD UHXXXa series U.2 1920GB
@@ -23919,10 +24327,14 @@
 		1cc4 a212  NVMe SSD UHXXXa series U.2 1600GB
 		1cc4 a213  NVMe SSD UHXXXa series U.2 3200GB
 		1cc4 a214  NVMe SSD UHXXXa series U.2 6400GB
+		1cc4 e122  VNMe SSD UH711a series U.2 1920GB
+		1cc4 e123  VNMe SSD UH711a series U.2 3840GB
+		1cc4 e124  VNMe SSD UH711a series U.2 7680GB
 	17ab  NVMe 256G SSD device
 	6303  AM630 PCIe 4.0 x4 NVMe SSD Controller
 1cc5  Embedded Intelligence, Inc.
-	0100  CAN-PCIe-02
+	0100  PCIe-CAN-02 Dual CAN bus (9-pin male). PCI Express x1.
+	0101  PCIe-CAN-01 Single CAN bus (9-pin male). PCI Express x1.
 1cc7  Radian Memory Systems Inc.
 	0200  RMS-200
 	0250  RMS-250
@@ -23966,11 +24378,16 @@
 1d00  Pure Storage
 1d05  Tongfang Hongkong Limited
 1d0f  Amazon.com, Inc.
+	7064  NeuronDevice (Inferentia)
+	7164  NeuronDevice (Trainium)
+		1d0f 0000  Trainium
+	7264  NeuronDevice (Inferentia2)
 	8061  NVMe EBS Controller
 	cd01  NVMe SSD Controller
 	ec20  Elastic Network Adapter (ENA)
 	efa0  Elastic Fabric Adapter (EFA)
 	efa1  Elastic Fabric Adapter (EFA)
+	efa2  Elastic Fabric Adapter (EFA)
 1d17  Zhaoxin
 	070f  ZX-100 PCI Express Root Port
 	0710  ZX-100/ZX-200 PCI Express Root Port
@@ -23980,14 +24397,14 @@
 	0714  ZX-100/ZX-200 PCI Express Root Port
 	0715  ZX-100/ZX-200 PCI Express Root Port
 	0716  ZX-D PCI Express Root Port
-	0717  ZX-D/ZX-E PCI Express Root Port
-	0718  ZX-D/ZX-E PCI Express Root Port
-	0719  ZX-D/ZX-E PCI Express Root Port
-	071a  ZX-D/ZX-E PCI Express Root Port
-	071b  ZX-D/ZX-E PCI Express Root Port
-	071c  ZX-D/ZX-E PCI Express Root Port
-	071d  ZX-D/ZX-E PCI Express Root Port
-	071e  ZX-D/ZX-E PCI Express Root Port
+	0717  KX-5000/KX-6000/KX-6000G Express Root Port
+	0718  KX-5000/KX-6000/KX-6000G Express Root Port
+	0719  KX-5000/KX-6000/KX-6000G Express Root Port
+	071a  KX-5000/KX-6000/KX-6000G Express Root Port
+	071b  KX-5000/KX-6000/KX-6000G Express Root Port
+	071c  KX-5000/KX-6000/KX-6000G Express Root Port
+	071d  KX-5000/KX-6000/KX-6000G Express Root Port
+	071e  KX-5000/KX-6000/KX-6000G Express Root Port
 	071f  ZX-200 Upstream Port of PCI Express Switch
 	0720  ZX-200 PCIE RC6 controller
 	0721  ZX-200 Downstream Port of PCI Express Switch
@@ -23995,42 +24412,47 @@
 	1000  ZX-D Standard Host Bridge
 	1001  ZX-D/ZX-E Miscellaneous Bus
 	1003  ZX-E Standard Host Bridge
+	1006  KX-6000G Standard Host Bridge
 	3001  ZX-100 Standard Host Bridge
 	300a  ZX-100 Miscellaneous Bus
-	3038  ZX-100/ZX-200/ZX-E Standard Universal PCI to USB Host Controller
-	3104  ZX-100/ZX-200/ZX-E Standard Enhanced PCI to USB Host Controller
-	31b0  ZX-100/ZX-D Standard Host Bridge
-	31b1  ZX-100/ZX-D Standard Host Bridge
-	31b2  ZX-100/ZX-D DRAM Controller
-	31b3  ZX-100/ZX-D Power Management Controller
-	31b4  ZX-100/ZX-D I/O APIC
-	31b5  ZX-100/ZX-D Scratch Device
-	31b7  ZX-100/ZX-D/ZX-E Standard Host Bridge
+	3038  ZX-100/ZX-200/KX-6000/KX-6000G Standard Universal PCI to USB Host Controller
+	3104  ZX-100/ZX-200/KX-6000/KX-6000G Standard Enhanced PCI to USB Host Controller
+	31b0  ZX-100/KX-5000/KX-6000/KX-6000G Standard Host Bridge
+	31b1  ZX-100/KX-5000/KX-6000/KX-6000G Standard Host Bridge
+	31b2  ZX-100/KX-5000/KX-6000/KX-6000G DRAM Controller
+	31b3  ZX-100/KX-5000/KX-6000/KX-6000G Power Management Controller
+	31b4  ZX-100/KX-5000/KX-6000/KX-6000G I/O APIC
+	31b5  ZX-100/KX-5000/KX-6000/KX-6000G Scratch Device
+	31b7  ZX-100/KX-5000/KX-6000/KX-6000G Standard Host Bridge
 	31b8  ZX-100/ZX-D PCI to PCI Bridge
-	3288  ZX-100/ZX-D/ZX-E High Definition Audio Controller
-	345b  ZX-100/ZX-D/ZX-E Miscellaneous Bus
+	3288  ZX-100/KX-5000/KX-6000/KX-6000G High Definition Audio Controller
+	345b  ZX-100/KX-5000/KX-6000/KX-6000G Miscellaneous Bus
 	3a02  ZX-100 C-320 GPU
 	3a03  ZX-D C-860 GPU
 	3a04  ZX-E C-960 GPU
+	3c02  KX-6000G DRAM Controller
+	3d01  KX-6000G C-1080 GPU
 	9002  ZX-100/ZX-200 EIDE Controller
-	9003  ZX-100/ZX-E EIDE Controller
+	9003  ZX-100/KX-6000/KX-6000G EIDE Controller
+	9043  KX-6000G RAID Controller
 	9045  ZX-100/ZX-D/ZX-E RAID Accelerator 0
 	9046  ZX-D/ZX-E RAID Accelerator 1
-	9083  ZX-100/ZX-200/ZX-E StorX AHCI Controller
+	9083  ZX-100/ZX-200/KX-6000/KX-6000G StorX AHCI Controller
 	9084  ZX-100 StorX AHCI Controller
 	9100  ZX-200 Cross bus
 	9101  ZX-200 Traffic Controller
 	9141  ZX-100 High Definition Audio Controller
 	9142  ZX-D High Definition Audio Controller
 	9144  ZX-E High Definition Audio Controller
+	9145  KX-6000G High Definition Audio Controller
 	9180  ZX-200 Networking Gigabit Ethernet Adapter
 	9202  ZX-100 USB eXtensible Host Controller
 	9203  ZX-200 USB eXtensible Host Controller
-	9204  ZX-E USB eXtensible Host Controller
+	9204  KX-6000/KX-6000G USB eXtensible Host Controller
 	9286  ZX-D eMMC Host Controller
-	9300  ZX-D/ZX-E eSPI Host Controller
+	9300  ZX-100/KX-5000/KX-6000/KX-6000G eSPI Host Controller
 	95d0  ZX-100 Universal SD Host Controller
-	f410  ZX-100/ZX-D/ZX-E PCI Com Port
+	f410  ZX-100/KX-5000/KX-6000/KX-6000G PCI Com Port
 1d18  RME
 	0001  Fireface UFX+
 # acquired by Intel
@@ -24076,10 +24498,16 @@
 	0001  AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
 	00b1  AQC100 10G Ethernet MAC controller [AQtion]
 	07b1  AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
+# Older revision of QNAP QM2 M.2 2280 PCIe SSD & 10GbE Expansion Card
+		1baa 07b1  QM2-2P10G1TA [QXG 10GbE Network Adapter]
+# Newer revision of QNAP QM2 M.2 2280 PCIe SSD & 10GbE Expansion Card
+		1baa 07b2  QM2-2P10G1TA [QM2 Expansion Adapter]
 	08b1  AQC108 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
 	11b1  AQC111 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
 	12b1  AQC112 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
 	87b1  AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
+	94c0  AQC113CS NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
+		1043 87f5  ProArt X570-CREATOR WIFI
 	d107  AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
 		1043 8741  XG-C100C
 	d108  AQC108 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
@@ -24117,6 +24545,10 @@
 	101d  AR-ARK-NIC [Arkville ArkNIC Kernel Path Device]
 	101e  AR-ARKA-FX1 [Arkville 64B DPDK Data Mover for Agilex R-Tile]
 	101f  AR-TK242 [2x100GbE Packet Capture Device]
+	1020  AR-GP-PF [General-Purpose Physical Function]
+	1021  AR-MGMT-PF [Board-Generic Management Physical Function]
+	1022  AR-ARKA-FX2 [Arkville 128B DPDK Data Mover for Agilex]
+	1023  AR-BD-FX1 [BufferDirect Zero-Bounce Data Motion Endpoint]
 	4200  A5PL-E1-10GETI [10 GbE Ethernet Traffic Instrument]
 1d72  Xiaomi
 1d78  DERA Storage
@@ -24133,6 +24565,52 @@
 		1d78 3103  D5457 U.2 1.6TB NVMe SSD
 		1d78 3105  D5457 U.2 3.2TB NVMe SSD
 		1d78 3107  D5457 U.2 6.4TB NVMe SSD
+		1d78 3108  D5437 U.2 7.68TB NVMe SSD
+		1d78 5003  D5447 HHHL 1.6TB NVMe SSD
+		1d78 5004  D5427 HHHL 1.92TB NVMe SSD
+		1d78 5005  D5447 HHHL 3.2TB NVMe SSD
+		1d78 5006  D5427 HHHL 3.84TB NVMe SSD
+		1d78 5007  D5447 HHHL 6.4TB NVMe SSD
+		1d78 5008  D5427 HHHL 7.68TB NVMe SSD
+		1d78 5103  D5447 U.2 1.6TB NVMe SSD
+		1d78 5105  D5447 U.2 3.2TB NVMe SSD
+		1d78 5106  AF3UP34DTCUN3T8B SSD
+		1d78 5107  D5447 U.2 6.4TB NVMe SSD
+		1d78 5114  D5427 U.2 1.92TB NVMe SSD
+		1d78 5116  D5427 U.2 3.84TB NVMe SSD
+		1d78 5118  D5427 U.2 7.68TB NVMe SSD
+		1d78 8107  D5457 U.2 6.4TB NVMe SSD
+	1513  DERA MENG NVMe Controller
+		1d78 6015  D6456 HHHL 3.2TB NVMe SSD
+		1d78 6016  D6436 HHHL 3.84TB NVMe SSD
+		1d78 6017  D6456 HHHL 6.4TB NVMe SSD
+		1d78 6018  D6436 HHHL 7.68TB NVMe SSD
+		1d78 6105  D6457 U.2 3.2TB NVMe SSD
+		1d78 6106  D6437 U.2 3.84TB NVMe SSD
+		1d78 6107  D6457 U.2 6.4TB NVMe SSD
+		1d78 6108  D6437 U.2 7.68TB NVMe SSD
+		1d78 6115  D6456 U.2 3.2TB NVMe SSD
+		1d78 6116  D6436 U.2 3.84TB NVMe SSD
+		1d78 6117  D6456 U.2 6.4TB NVMe SSD
+		1d78 6118  D6436 U.2 7.68TB NVMe SSD
+	1515  DERA EMEI NVMe Controller
+		1d78 7002  D7436 HHHL 1.92TB NVMe SSD
+		1d78 7003  D7456 HHHL 1.6TB NVMe SSD
+		1d78 7004  D7436 HHHL 3.84TB NVMe SSD
+		1d78 7005  D7456 HHHL 3.2TB NVMe SSD
+		1d78 7007  D7456 HHHL 6.4TB NVMe SSD
+		1d78 7008  D7436 HHHL 7.68TB NVMe SSD
+		1d78 7009  D7456 HHHL 12.8TB NVMe SSD
+		1d78 700a  D7436 HHHL 15.36TB NVMe SSD
+		1d78 7102  D7436 U.2 15mm 1.92TB NVMe SSD
+		1d78 7103  D7456 U.2 15mm 1.6TB NVMe SSD
+		1d78 7104  D7436 U.2 15mm 3.84TB NVMe SSD
+		1d78 7105  D7456 U.2 15mm 3.2TB NVMe SSD
+		1d78 7107  D7456 U.2 15mm 6.4TB NVMe SSD
+		1d78 7108  D7436 U.2 15mm 7.68TB NVMe SSD
+		1d78 7109  D7456 U.2 15mm 12.8TB NVMe SSD
+		1d78 710a  D7436 U.2 15mm 15.36TB NVMe SSD
+1d79  Transcend Information, Inc.
 1d7c  Aerotech, Inc.
 # Fiber-optic HyperWire motion control bus from Aerotech.
 	0001  HyperWire Adapter
@@ -24145,6 +24623,7 @@
 	0100  RK3399 PCI Express Root Port
 	1808  RK1808 Neural Network Processor Card
 	3566  RK3568 Remote Signal Processor
+	3588  RK3588
 1d89  YEESTOR Microelectronics Co., Ltd
 	0280  PCIe NVMe SSD
 1d8f  Enyx
@@ -24191,12 +24670,18 @@
 1da1  Teko Telecom S.r.l.
 1da2  Sapphire Technology Limited
 	e26a  Radeon R7 250
+	e445  Sapphire Radeon RX 6700
 1da3  Habana Labs Ltd.
 	0001  HL-1000 AI Inference Accelerator [Goya]
+# PCIe accelerator card for Deep Learning inference tasks
+	0030  Greco AI Inference Accelerator
 # PCIe accelerator card for Deep Learning training tasks
 	1000  HL-2000 AI Training Accelerator [Gaudi]
 # PCIe accelerator card for Deep Learning training tasks with secured firmware
 	1010  HL-2000 AI Training Accelerator [Gaudi secured]
+# PCIe accelerator card for Deep Learning training tasks
+	1020  Gaudi2 AI Training Accelerator
+1da8  Corigine, Inc.
 1dad  Fungible
 1db2  ATP ELECTRONICS INC
 1db7  Phytium Technology Co., Ltd.
@@ -24204,6 +24689,7 @@
 	dc21  VPU Controller [X100 Series]
 	dc22  DC Controller [X100 Series]
 	dc23  I2S/DMA Controller [X100 Series]
+	dc24  NPU Controller [X100 Series]
 	dc26  SATA Controller [X100 Series]
 	dc27  USB Controller [X100 Series]
 	dc29  NANDFLASH Controller [X100 Series]
@@ -24222,12 +24708,20 @@
 	dc3a  SWITCH Controller [X100 Series]
 	dc3c  GPU_DMA Controller [X100 Series]
 1dbb  NGD Systems, Inc.
+1dbe  INNOGRIT Corporation
+	5636  NVMe DC SSD IG5636
+		1dbe 0001  DONGTING-N1 DC SSD U.2
+		1dbe 1001  DONGHU-Z1 DC ZNS SSD U.2
+	5638  NVMe DC SSD IG5638
+		1dbe 2001  DONGTING-N1 DC SSD U.2
+		1dbe 3001  DONGHU-Z1 DC ZNS SSD U.2
 1dbf  Guizhou Huaxintong Semiconductor Technology Co., Ltd
 	0401  StarDragon4800 PCI Express Root Port
 1dc5  FADU Inc.
 1dcd  Liqid Inc.
 1dcf  Beijing Sinead Technology Co., Ltd.
 1dd3  Sage Microelectronics Corp.
+1dd4  Swissbit AG
 1dd8  Pensando Systems
 	0002  DSC2 Elba Upstream Port
 		1dd8 5001  DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 Services Card
@@ -24418,6 +24912,7 @@
 1dfc  JSC NT-COM
 	1181  TDM 8 Port E1/T1/J1 Adapter
 1e0f  KIOXIA Corporation
+	0001  NVMe SSD Controller BG4
 	0007  NVMe SSD Controller Cx6
 		1028 2078  DC NVMe CD6 RI 960GB
 		1028 2079  DC NVMe CD6 RI 1.92TB
@@ -24452,6 +24947,9 @@
 		1028 2190  DC NVMe CD7 RI 7.68TB
 		1028 2191  DC NVMe SED CD7 RI 15.36TB
 		1028 2192  DC NVMe CD7 RI 15.36TB
+		1028 2193  NVMe CD7 E3.S 1.92TB
+		1028 2194  NVMe CD7 E3.S 3.84TB
+		1028 2195  NVMe CD7 E3.S 7.68TB
 1e17  Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
 1e24  Squirrels Research Labs
 	0101  Acorn CLE-101
@@ -24543,7 +25041,9 @@
 		1e3b 008b  Enterprise NVMe SSD HHHL 1.6TB (H3900)
 		1e3b 0091  Enterprise NVMe SSD HHHL 0.75TB (H3900)
 1e3d  Burlywood, Inc
+1e44  Valve Software
 1e49  Yangtze Memory Technologies Co.,Ltd
+	0021  ZHITAI TiPro5000 NVMe SSD
 	0041  ZHITAI TiPro7000
 # YMTC PCIe/NVMe SSD
 	1013  PC210
@@ -24558,6 +25058,7 @@
 # Associative Processing Unit (APU)
 	0010  APU [Leda]
 		1e4c 0120  SE120
+1e50  IP3 Tech (HK) Limited
 1e57  Beijing Panyi Technology Co., Ltd
 	0100  The device has already been deleted.
 		0000 0100  PY8800 64GB Accelerator
@@ -24568,35 +25069,43 @@
 	7010  AI controller A7010
 1e60  Hailo Technologies Ltd.
 	2864  Hailo-8 AI Processor
+1e67  Untether AI
+	0002  runAI200 AI Inference Accelerator
 1e68  Jiangsu Xinsheng Intelligent Technology Co., Ltd
 1e6b  Axiado Corp.
 1e7b  Dataland
 1e7c  Brainchip Inc
 	bca1  AKD1000 Neural Network Coprocessor [Akida]
+1e7e  9034 Pliops-Data Processor [XDP1.0]
 1e81  Ramaxel Technology(Shenzhen) Limited
 	1203  NVMe SSD Controller UHXXXa series
 		1e81 a121  NVMe SSD UHXXXa series U.2 960GB
 		1e81 a122  NVMe SSD UHXXXa series U.2 1920GB
-		1e81 a123  NVMe SSD UHXXXa series U.2 3840GB 
-		1e81 a124  NVMe SSD UHXXXa series U.2 7680GB 
+		1e81 a123  NVMe SSD UHXXXa series U.2 3840GB 
+		1e81 a124  NVMe SSD UHXXXa series U.2 7680GB 
 		1e81 a125  NVMe SSD UHXXXa series U.2 15360GB
-		1e81 a211  NVMe SSD UHXXXa series U.2 800GB 
-		1e81 a212  NVMe SSD UHXXXa series U.2 1600GB 
-		1e81 a213  NVMe SSD UHXXXa series U.2 3200GB 
-		1e81 a214  NVMe SSD UHXXXa series U.2 6400GB 
+		1e81 a211  NVMe SSD UHXXXa series U.2 800GB 
+		1e81 a212  NVMe SSD UHXXXa series U.2 1600GB 
+		1e81 a213  NVMe SSD UHXXXa series U.2 3200GB 
+		1e81 a214  NVMe SSD UHXXXa series U.2 6400GB 
+		1e81 f123  NVMe SSD TP6500 series U.2 3840GB
+1e83  Huaqin Technology Co.Ltd
 1e85  Heitec AG
 1e89  ID Quantique SA
 	0002  Quantis-PCIe-40M
 	0003  Quantis-PCIe-240M
+1e93  Beijing Bytedance Network Technology Co., Ltd.
 # aka SED Systems
 1e94  Calian SED
 1e95  Solid State Storage Technology Corporation
-	1002  NVMe Datacenter LJ1 SSD [3DNAND, Rainier Controller]
+	1002  NVMe SSD [3DNAND] 2.5" U.2 (LJ1)
+		1e95 1101  NVMe SSD [3DNAND] 2.5" U.2 (LJ1)
 		1ea0 5636  TP1500 Series U.2 NVMe Datacenter SSD
 1e9f  Lynxi Technologies Co., Ltd.
 1ea0  Tencent Technology (Shenzhen) Company Limited
 	2a16  Cloud Intelligent Inference Controller
 	2a18  Video Transcode Controller
+	2a20  Cloud Intelligent Inference and Training Controller
 1ea7  Intelliprop, Inc
 	223a  Typhon+ PCIe to Gen-Z Bridge
 	224a  IPA-PE224A CXL to Gen-Z Bridge [Sphinx]
@@ -24613,19 +25122,71 @@
 	3401  SSD Contoller
 1ebd  EMERGETECH Company Ltd.
 	0101  Seirios 2063 Video Codec
+1ec8  Innosilicon Co Ltd
+	8800  Fantasy I
+		1ec8 12a2  Fantasy I Device
+	9800  Fantasy II
+		1ec8 12a2  Fantasy II Device
+	9802  Fantasy II
+		1ec8 12a2  Fantasy II Device
+	9804  Fantasy II
+		1ec8 12a2  Fantasy II Device
+1ec9  Wingtech Group(HongKong)Limited
 1ed2  FuriosaAI, Inc.
 	0000  Warboy
 1ed3  Yeston
 1ed5  Moore Threads Technology Co.,Ltd
 	0100  MTT S10
-	0101  MTT S30
+	0101  MTT S10
+	0102  MTT S30
+	0105  MTT S50
+	0106  MTT S60
+	0111  MTT S100
+	0121  MTT S1000M
+	0122  MTT S1000
+	0123  MTT S2000
+	01ff  MTT HDMI/DP Audio
+	0200  MTT S80 Engineering Sample
+	0201  MTT S80
+	0202  MTT S70
+	0203  G2D10
+	0211  G2D40
+	0221  G2S80
+	0222  MTT S3000
+	0223  G2S4
+	0251  G2N10
+	02ff  MTT HDMI/DP Audio
 1ed8  Digiteq Automotive
 	0101  FG4 PCIe Frame Grabber
 1ed9  Myrtle.ai
+1ee1  Suzhou Kuhan Information Technologies
+	0050  Aurora NVMe SSD Controller
+		1ee1 0009  Airglow A430 NVMe SSD U.2 1.6TB
+		1ee1 000a  Airglow A430 NVMe SSD U.2 3.2TB
+		1ee1 000b  Airglow A430 NVMe SSD U.2 4.8TB
+1ee4  PETAIO INC
+	1180  P8118 U.2 Single Port SSD
 1ee9  SUSE LLC
 1eec  Viscore Technologies Ltd
 	0102  VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe
 	1eec  VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe
+1eed  XDX Computing Technology Ltd.
+	10a0  XDX110 Graphic/VGA Controller
+	10a1  XDX110 Audio Controller
+	1140  XDX120 Graphic/VGA Controller
+	1141  XDX120 Audio Controller
+	1320  XDX150 Graphic/VGA Controller
+	1321  XDX150 Audio Controller
+	13c0  XDX160 Graphic/VGA Controller
+	13c1  XDX160 Audio Controller
+	13d0  XDX161 Graphic/VGA Controller
+	13d1  XDX161 Audio Controller
+	1500  XDX180 Graphic/VGA Controller
+	1501  XDX180 Audio Controller
+	15a0  XDX190 Graphic/VGA Controller
+	15a1  XDX190 Audio Controller
+1ef6  GrAI Matter Labs
+1ef7  Shenzhen Gunnir Technology Development Co., Ltd
 1efb  Flexxon Pte Ltd
 1f02  Beijing Dayu Technology
 1f03  Shenzhen Shichuangyi Electronics Co., Ltd
@@ -24636,6 +25197,10 @@
 	5220  IG5220-Based NVMe SSD
 	5236  IG5236-Based NVMe SSD
 	5636  IG5636-Based NVMe SSD
+1f24  xFusion Digital Technologies Co., Ltd.
+	1058  EP500/EP600 NVMe SSD
+		1f24 1114  EP500 NVMe SSD(RI)
+		1f24 1115  EP600 NVMe SSD(MU)
 1f2f  China Mobile (Hangzhou) Information Technology Co.Ltd.
 	1513  DERA MENG NVMe Controller
 		1f2f 6113  KM660 U.2 1.6TB NVMe SSD
@@ -24643,6 +25208,54 @@
 		1f2f 6115  KM660 U.2 3.2TB NVMe SSD
 		1f2f 6116  KM560 U.2 3.84TB NVMe SSD
 		1f2f 6118  KM560 U.2 7.68TB NVMe SSD
+1f3f  3SNIC Ltd
+	2100  SSSRAID SAS/SATA HBA
+		1f3f 0120  HBA 32 Ports
+		1f3f 0125  HBA 40 Ports
+		1f3f 0180  HBA 16 Ports
+		1f3f 0185  HBA 8 Ports
+	2200  SSSRAID RAID controller
+		1f3f 0185  RAID Controller 16 Ports with 2G Cache
+		1f3f 01a1  RAID Controller 40 Ports with 2G Cache
+		1f3f 01a4  RAID Controller 16 Ports with 4G Cache
+		1f3f 01a8  RAID Controller 32 Ports with 4G Cache
+		1f3f 01ad  RAID Controller 40 Ports with 4G Cache
+	9001  SSSNIC Ethernet VF
+		1f3f 1000  Ethernet VF
+	9002  SSSNIC Ethernet VF Hyper-V
+		1f3f 1000  Ethernet VF Hyper-V
+	9003  SSSNIC Ethernet SDI VF
+		1f3f 1000  Ethernet SDI VF
+	9004  SSSNIC Ethernet SDI VF Hyper-V
+		1f3f 1000  Ethernet SDI VF Hyper-V
+	9008  SSSFC VF
+		1f3f 1000  3SFC VF
+	9009  SSSFC VF Hyper-V
+		1f3f 1000  3SFC VF Hyper-V
+	9010  SSSFC FC Controller
+		1f3f 0041  Dual Port 16GE FC to PCIe Gen4 x16 Adapter
+		1f3f 0061  Dual Port 32GE FC to PCIe Gen4 x16 Adapter
+	9020  SSSNIC Ethernet Network Adapter
+		1f3f 0051  Dual Port 25GE Ethernet Network Adapter
+		1f3f 0052  Quad Port 25GE Ethernet Network Adapter
+		1f3f 00a1  Dual Port 100GE Ethernet Network Adapter
+	9030  SSSNIC IPU
+		1f3f 0051  Dual Port 25GE IPU
+	9031  SSSNIC SDI5.0
+		1f3f 0051  Dual Port 25GE SDI5.0lite
+		1f3f 00a1  Dual Port 100GE SDI5.0
+	9032  SSSNIC SDI5.1
+		1f3f 00a1  Dual Port 100GE SDI5.1
+1f40  Netac Technology Co.,Ltd
+1f44  VVDN Technologies Private Limited
+1f4b  Axera Semiconductor Co., Ltd
+1f52  MangoBoost Inc.
+1f60  Accelecom
+	0001  XELE-NIC 25K5
+	0054  XELE-NIC 25K5
+1faa  Hexaflake (Shanghai) Information Technology Co., Ltd.
+	0c10  Compass C10 PF
+	0c11  Compass C10 VF
 1fab  Unifabrix Ltd.
 	0000  Nexus Alpha IVPU
 # nee Tumsan Oy
@@ -25156,6 +25769,8 @@
 	0d10  SB-365x Motion Feedback Device
 	2f00  SB-3642 Motion Feedback Device
 	3000  SB-3644 Motion Feedback Device
+4e58  Nutanix, Inc.
+	0001  Virtual NVMe Controller
 5045  University of Toronto
 	4243  BLASTbus PCI Interface Card v1
 5046  GemTek Technology Corporation
@@ -25388,9 +26003,11 @@
 	1800  CooVOX TDM BRI Module
 6766  Glenfly Tech Co., Ltd.
 	3d00  Arise-GT-10C0
-	3d02  Arise 1020
+	3d02  Arise1020
+	3d03  Arise-GT-1040
+	3d04  Arise1010
 	3d40  Arise-GT-10C0 High Definition Audio Controller
-	3d41  Arise 1020 High Definition Audio Controller
+	3d41  Arise1020 High Definition Audio Controller
 6899  ZT Systems
 # nee Qumranet
 6900  Red Hat, Inc.
@@ -25401,6 +26018,7 @@
 7284  HT OMEGA Inc.
 7357  IOxOS Technologies SA
 	7910  7910 [Althea]
+7377  Shenzhen Colorful Yugong Technology and Development Co.
 7401  EndRun Technologies
 	e100  PTP3100 PCIe PTP Slave Clock
 7470  TP-LINK Technologies Co., Ltd.
@@ -25408,6 +26026,7 @@
 	0082  HQ SSD 1TB
 	0083  HQ SSD 2TB M.2 NVMe
 7604  O.N. Electronic Co Ltd.
+78c0  Herrick Technology Laboratories, Inc. [HTL]
 7bde  MIDAC Corporation
 7fed  PowerTV
 8008  Quancom Electronic GmbH
@@ -25702,6 +26321,7 @@
 # uninitialized SRCU32 RAID Controller
 	061f  80303 I/O Processor
 	0684  H470 Chipset LPC/eSPI Controller
+	0685  Z490 Chipset LPC/eSPI Controller
 	0687  Q470 Chipset LPC/eSPI Controller
 	068d  Comet Lake LPC Controller
 	06a3  Comet Lake PCH SMBus Controller
@@ -25712,6 +26332,8 @@
 	06ab  Comet Lake PCH Serial IO SPI Controller #1
 	06ac  Comet Lake PCI Express Root Port #21
 	06b0  Comet Lake PCI Express Root Port #9
+	06ba  Comet Lake PCI Express Root Port #1
+	06bb  Comet Lake PCI Express Root Port #4
 	06bd  Comet Lake PCIe Port #6
 	06c0  Comet Lake PCI Express Root Port #17
 	06c8  Comet Lake PCH cAVS
@@ -26131,6 +26753,14 @@
 	0960  80960RP (i960RP) Microprocessor/Bridge
 	0962  80960RM (i960RM) Bridge
 	0964  80960RP (i960RP) Microprocessor/Bridge
+	0998  Ice Lake IEH
+	09a2  Ice Lake Memory Map/VT-d
+	09a3  Ice Lake RAS
+	09a4  Ice Lake Mesh 2 PCIe
+	09a6  Ice Lake MSM
+	09a7  Ice Lake PMON MSM
+	09ab  RST VMD Managed Controller
+	09c4  PAC with Intel Arria 10 GX FPGA
 	0a03  Haswell-ULT Thermal Subsystem
 	0a04  Haswell-ULT DRAM Controller
 		17aa 2214  ThinkPad X240
@@ -26204,8 +26834,10 @@
 		1028 1fe7  Express Flash NVMe 3.2TB 2.5" U.2 (P4600)
 		1028 1fe8  Express Flash NVMe 2.0TB HHHL AIC (P4600)
 		1028 1fe9  Express Flash NVMe 4.0TB HHHL AIC (P4600)
+	0b00  Ice Lake CBDMA [QuickData Technology]
 	0b26  Thunderbolt 4 Bridge [Goshen Ridge 2020]
 	0b27  Thunderbolt 4 USB Controller [Goshen Ridge 2020]
+	0b2b  PAC with Intel Stratix 10 SX FPGA [FPGA PAC D5005]
 	0b60  NVMe DC SSD [3DNAND, Sentinel Rock Controller]
 		1028 2060  NVMe SED MU U.2 1.6TB (P5600)
 		1028 2061  NVMe SED MU U.2 3.2TB (P5600)
@@ -26324,6 +26956,7 @@
 	0d36  Crystal Well Integrated Graphics Controller
 	0d4c  Ethernet Connection (11) I219-LM
 	0d4d  Ethernet Connection (11) I219-V
+		8086 0d4d  Ethernet Connection (11) I219-V
 	0d4e  Ethernet Connection (10) I219-LM
 	0d4f  Ethernet Connection (10) I219-V
 	0d53  Ethernet Connection (12) I219-LM
@@ -26340,8 +26973,10 @@
 		8086 0010  Ethernet Network Adapter I710-T4L for OCP 3.0
 		8086 401a  Ethernet Network Adapter I710-T4L
 		8086 401b  Ethernet Network Adapter I710-T4L for OCP 3.0
+	0dd5  Ethernet Adaptive Virtual Function
 	0dda  Ethernet Connection X722 for 10GbE SFP+
-		1bd4 0076  Ethernet Connection X722 for 10GbE SFP+
+		1bd4 0076  Ethernet Connection F102IX722 for 10GbE SFP
+		1bd4 0082  Ethernet Connection F102IX722 for 10GbE SFP
 	0e00  Xeon E7 v2/Xeon E5 v2/Core i7 DMI2
 		1028 04f7  Xeon E5 v2 on PowerEdge R320 server
 		15d9 066b  X9SRL-F
@@ -27265,6 +27900,7 @@
 	1234  430MX - 82371MX Mobile PCI I/O IDE Xcelerator (MPIIX)
 	1235  430MX - 82437MX Mob. System Ctrlr (MTSC) & 82438MX Data Path (MTDP)
 	1237  440FX - 82441FX PMC [Natoma]
+		01de fffe  Propolis Virtual 440FX
 		1af4 1100  Qemu virtual machine
 	1239  82371FB PIIX IDE Interface
 	123b  82380PB PCI to PCI Docking Bridge
@@ -27279,6 +27915,8 @@
 	124e  Ethernet Connection E823-L/X557-AT 10GBASE-T
 	124f  Ethernet Connection E823-L 1GbE
 	1250  430HX - 82439HX TXC [Triton II]
+	125b  Ethernet Controller I226-LM
+	125c  Ethernet Controller I226-V
 	1360  82806AA PCI64 Hub PCI Bridge
 	1361  82806AA PCI64 Hub Controller (HRes)
 		8086 1361  82806AA PCI64 Hub Controller (HRes)
@@ -27371,6 +28009,8 @@
 		1bd4 001d  1G base-T QP EP014Ti1 Adapter
 		1bd4 0035  1G base-T QP EP014Ti1 Adapter
 		1bd4 0066  F014I350
+		1bd4 008a  F012I350
+		1bd4 008d  ENFI1100-T4
 		8086 0001  Ethernet Server Adapter I350-T4
 		8086 0002  Ethernet Server Adapter I350-T2
 		8086 0003  Ethernet Network Adapter I350-T4 for OCP NIC 3.0
@@ -27444,7 +28084,10 @@
 		1093 7706  Compact Vision System Ethernet Adapter
 		10a9 802c  UV300 BaseIO single-port GbE
 		10a9 802d  UV3000 BaseIO GbE Network
+		17aa 1059  I210 Gigabit Network Connection
 		17aa 1100  ThinkServer Ethernet Server Adapter
+		17aa 1509  I210 Gigabit Network Connection
+		17aa 404d  I210 PCIe 1Gb 1-Port RJ45 LOM
 		8086 0001  Ethernet Server Adapter I210-T1
 		8086 0002  Ethernet Server Adapter I210-T1
 	1536  I210 Gigabit Fiber Network Connection
@@ -27491,7 +28134,7 @@
 		8086 0001  Ethernet Server Bypass Adapter X520-SR2
 		8086 0002  Ethernet Server Bypass Adapter X520-LR2
 	1560  Ethernet Controller X540
-	1563  Ethernet Controller 10G X550T
+	1563  Ethernet Controller X550
 		1028 1fa8  Ethernet 10G 4P X550/I350 rNDC
 		1028 1fa9  Ethernet 10G 4P X550 rNDC
 		1137 02b2  X550-TX 10 Gig LOM
@@ -27551,6 +28194,7 @@
 		1bd4 0056  Ethernet Network Adapter X710-BM2 for OCP NIC 3.0
 		1bd4 0065  F102IX710
 		1bd4 0074  Ethernet Network Adapter X710-BM2 for lldp
+		1bd4 008b  F102IX710
 		8086 0000  Ethernet Converged Network Adapter X710
 		8086 0001  Ethernet Converged Network Adapter X710-4
 		8086 0002  Ethernet Converged Network Adapter X710-4
@@ -27676,8 +28320,11 @@
 		8086 0008  Ethernet Network Adapter OCP XXV710-1
 		8086 0009  Ethernet 25G 2P XXV710 Adapter
 		8086 000a  Ethernet 25G 2P XXV710 OCP
+		8086 000c  Ethernet Network Adapter XXV710-DA2 for OCP 3.0
+		8086 000d  Ethernet 25G 2P XXV710 OCP
 		8086 4001  Ethernet Network Adapter XXV710-2
 	1591  Ethernet Controller E810-C for backplane
+		8086 bcce  Ethernet Controller E810-C for Intel(R) Open FPGA Stack
 	1592  Ethernet Controller E810-C for QSFP
 		1137 02bf  E810CQDA2 2x100 GbE QSFP28 PCIe NIC
 		193d 1050  NIC-ETH1060F-LP-2P 2x100GbE Ethernet PCIe Card
@@ -27692,9 +28339,14 @@
 		8086 000c  Ethernet 100G 2P E810-C OCP
 		8086 000d  Ethernet Network Adapter E810-L-Q2 for OCP 3.0
 		8086 000e  Ethernet Network Adapter E810-2C-Q2
+		8086 000f  Ethernet Network Adapter E810-C-Q2T
 		8086 0010  Ethernet 100G 2P E810-C-stg Adapter
+		8086 0011  Ethernet Network Adapter E810-C-Q1 for OCP3.0
+		8086 0012  Ethernet 100G 2P E810-C-st Adapter
 	1593  Ethernet Controller E810-C for SFP
 		1137 02c3  E810XXVDA4 4x25/10 GbE SFP28 PCIe NIC
+		1137 02e9  E810XXVDA4TG 4x25/10 GbE SFP28 PCIe NIC
+		1137 02ea  E810XXVDA4T 4x25/10 GbE SFP28 PCIe NIC
 		8086 0002  Ethernet Network Adapter E810-L-2
 		8086 0005  Ethernet Network Adapter E810-XXV-4
 		8086 0006  Ethernet Network Adapter E810-XXV-4
@@ -27707,6 +28359,8 @@
 		8086 000e  Ethernet Network Adapter E810-XXV-4T
 		8086 000f  Ethernet 25G 4P E810-XXV-stg Adapter
 		8086 0010  Ethernet 25G 4P E810-XXV-st Adapter
+		8086 4010  Ethernet Network Adapter E810-XXV-4
+		8086 4013  Ethernet Network Adapter E810-XXV-4 for OCP 3.0
 	1599  Ethernet Controller E810-XXV for backplane
 		8086 0001  Ethernet 25G 2P E810-XXV-k Mezz
 	159a  Ethernet Controller E810-XXV for QSFP
@@ -27715,7 +28369,8 @@
 		1bd4 0057  Ethernet Network Adapter E810-XXVAM2
 		1bd4 0058  Ethernet Network Adapter E810-XXVAM2 for OCP 3.0
 		1bd4 006e  Ethernet Network Adapter E810-XXVAM2 for BD
-		1eec 0102  VSE250241E Dual-port 10Gb/25Gb Ethernet PCIe
+		1bd4 0083  Ethernet Network Adapter E810-XXVAM2 for lldp
+		1eec 0102  VSE-225-41E Dual-port 10Gb/25Gb Etherent PCIe
 		8086 0001  Ethernet 25G 2P E810-XXV OCP
 		8086 0002  Ethernet 25G 2P E810-XXV Adapter
 		8086 0003  Ethernet Network Adapter E810-XXV-2
@@ -27723,6 +28378,7 @@
 		8086 4001  Ethernet Network Adapter E810-XXV-2
 		8086 4002  Ethernet Network Adapter E810-XXV-2 for OCP 3.0
 		8086 4003  Ethernet Network Adapter E810-XXV-2
+		8086 4015  Ethernet Network Adapter E810-XXV-2 for OCP 3.0
 	15a0  Ethernet Connection (2) I218-LM
 	15a1  Ethernet Connection (2) I218-V
 	15a2  Ethernet Connection (3) I218-LM
@@ -27835,6 +28491,7 @@
 		8086 000a  Ethernet Network Adapter X710-T4L for OCP 3.0
 		8086 000b  Ethernet Network Adapter X710-T2L for OCP 3.0
 		8086 000c  Ethernet Network Adapter X710-T2L for OCP 3.0
+		8086 000d  Ethernet 10G 2P X710-T2L-t OCP
 		8086 000f  Ethernet Network Adapter X710-T2L for OCP 3.0
 		8086 4009  Ethernet Network Adapter X710-T2L
 		8086 4012  Ethernet Network Adapter X710-T4L for OCP 3.0
@@ -27879,6 +28536,12 @@
 	163d  Broadwell-U Integrated Graphics
 	163e  Broadwell-U Integrated Graphics
 	1889  Ethernet Adaptive Virtual Function
+	188a  Ethernet Connection E823-C for backplane
+	188b  Ethernet Connection E823-C for QSFP
+	188c  Ethernet Connection E823-C for SFP
+		1028 0abd  Ethernet Connection 25G 4P E823-C LOM
+	188d  Ethernet Connection E823-C/X557-AT 10GBASE-T
+	188e  Ethernet Connection E823-C 1GbE
 	1890  Ethernet Connection E822-C for backplane
 	1891  Ethernet Connection E822-C for QSFP
 	1892  Ethernet Connection E822-C for SFP
@@ -27914,6 +28577,7 @@
 		17aa 382a  B51-80 Laptop
 	1908  Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
 	1909  Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x4)
+	190b  HD Graphics 510
 	190c  Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
 		1028 06d6  Latitude 7275 tablet
 		1028 06e6  Latitude 11 5175 2-in-1
@@ -27947,6 +28611,7 @@
 		1028 06e6  Latitude 11 5175 2-in-1
 	191f  Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
 	1921  HD Graphics 520
+	1923  HD Graphics 535
 	1926  Iris Graphics 540
 	1927  Iris Graphics 550
 	192b  Iris Graphics 555
@@ -28034,6 +28699,7 @@
 	1a1c  Ethernet Connection (17) I219-LM
 	1a1d  Ethernet Connection (17) I219-V
 	1a1e  Ethernet Connection (16) I219-LM
+		1028 0b10  Precision 3571
 	1a1f  Ethernet Connection (16) I219-V
 	1a21  82840 840 [Carmel] Chipset Host Bridge (Hub A)
 	1a23  82840 840 [Carmel] Chipset AGP Bridge
@@ -29500,6 +30166,7 @@
 	25d4  5000V Chipset Memory Controller Hub
 		15d9 8680  X7DVL-E-O motherboard
 	25d8  5000P Chipset Memory Controller Hub
+		103c 31fd  ProLiant DL360 G5
 		15d9 9680  X7DBN Motherboard
 		8086 3476  S5000PSLSATA Server Board
 	25e2  5000 Series Chipset PCI Express x4 Port 2
@@ -29510,27 +30177,27 @@
 	25e7  5000 Series Chipset PCI Express x4 Port 7
 	25f0  5000 Series Chipset FSB Registers
 		1028 01bb  PowerEdge 1955 FSB Registers
-		103c 31fd  ProLiant DL140 G3
+		103c 31fd  ProLiant DL140 G3, DL360 G5
 		15d9 8680  X7DVL-E-O motherboard
 		15d9 9680  X7DBN Motherboard
 		8086 3476  S5000PSLSATA Server Board
 	25f1  5000 Series Chipset Reserved Registers
-		103c 31fd  ProLiant DL140 G3
+		103c 31fd  ProLiant DL140 G3, DL360 G5
 		15d9 8680  X7DVL-E-O motherboard
 		15d9 9680  X7DBN Motherboard
 		8086 3476  S5000PSLSATA Server Board
 	25f3  5000 Series Chipset Reserved Registers
-		103c 31fd  ProLiant DL140 G3
+		103c 31fd  ProLiant DL140 G3, DL360 G5
 		15d9 8680  X7DVL-E-O motherboard
 		15d9 9680  X7DBN Motherboard
 		8086 3476  S5000PSLSATA Server Board
 	25f5  5000 Series Chipset FBD Registers
-		103c 31fd  ProLiant DL140 G3
+		103c 31fd  ProLiant DL140 G3, DL360 G5
 		15d9 8680  X7DVL-E-O motherboard
 		15d9 9680  X7DBN Motherboard
 		8086 3476  S5000PSLSATA Server Board
 	25f6  5000 Series Chipset FBD Registers
-		103c 31fd  ProLiant DL140 G3
+		103c 31fd  ProLiant DL140 G3, DL360 G5
 		15d9 8680  X7DVL-E-O motherboard
 		15d9 9680  X7DBN Motherboard
 		8086 3476  S5000PSLSATA Server Board
@@ -29764,31 +30431,32 @@
 	2688  631xESB/632xESB/3100 Chipset UHCI USB Controller #1
 		1028 01bb  PowerEdge 1955 onboard USB
 		1028 01f0  PowerEdge R900 onboard USB
-		103c 31fe  ProLiant DL140 G3
+		103c 31fe  ProLiant DL140 G3, DL360 G5
 		15d9 8680  X7DVL-E-O motherboard
 		15d9 9680  X7DBN Motherboard
 		8086 3476  S5000PSLSATA Server Board
 	2689  631xESB/632xESB/3100 Chipset UHCI USB Controller #2
 		1028 01bb  PowerEdge 1955 onboard USB
 		1028 01f0  PowerEdge R900 onboard USB
-		103c 31fe  ProLiant DL140 G3
+		103c 31fe  ProLiant DL140 G3, DL360 G5
 		15d9 8680  X7DVL-E-O motherboard
 		15d9 9680  X7DBN Motherboard
 		8086 3476  S5000PSLSATA Server Board
 	268a  631xESB/632xESB/3100 Chipset UHCI USB Controller #3
 		1028 01f0  PowerEdge R900 onboard USB
-		103c 31fe  ProLiant DL140 G3
+		103c 31fe  ProLiant DL140 G3, DL360 G5
 		15d9 8680  X7DVL-E-O motherboard
 		15d9 9680  X7DBN Motherboard
 		8086 3476  S5000PSLSATA Server Board
 	268b  631xESB/632xESB/3100 Chipset UHCI USB Controller #4
 		1028 01f0  PowerEdge R900 onboard USB
+		103c 31fe  ProLiant DL360 G5
 		15d9 8680  X7DVL-E-O motherboard
 		8086 3476  S5000PSLSATA Server Board
 	268c  631xESB/632xESB/3100 Chipset EHCI USB2 Controller
 		1028 01bb  PowerEdge 1955 onboard USB
 		1028 01f0  PowerEdge R900 onboard USB
-		103c 31fe  ProLiant DL140 G3
+		103c 31fe  ProLiant DL140 G3, DL360 G5
 		15d9 8680  X7DVL-E-O motherboard
 		15d9 9680  X7DBN Motherboard
 		8086 3476  S5000PSLSATA Server Board
@@ -29808,7 +30476,7 @@
 		15d9 9680  X7DBN Motherboard
 		8086 3476  S5000PSLSATA Server Board
 	269e  631xESB/632xESB IDE Controller
-		103c 31fe  ProLiant DL140 G3
+		103c 31fe  ProLiant DL140 G3, DL360 G5
 		15d9 8680  X7DVL-E-O motherboard
 		15d9 9680  X7DBN Motherboard
 	2700  Optane SSD 900P Series
@@ -29822,7 +30490,7 @@
 		8086 3904  NVMe Datacenter SSD [Optane] x4 AIC (P4800X)
 		8086 3905  NVMe Datacenter SSD [Optane] 15mm 2.5" U.2 (P4800X)
 	2723  Wi-Fi 6 AX200
-		1a56 1654  Killer™ Wi-Fi 6 AX1650x (AX200NGW)
+		1a56 1654  Killerâ„¢ Wi-Fi 6 AX1650x (AX200NGW)
 		8086 0084  Wi-Fi 6 AX200NGW
 	2725  Wi-Fi 6 AX210/AX211/AX411 160MHz
 		8086 0020  Wi-Fi 6 AX210 160MHz
@@ -31319,8 +31987,14 @@
 	31a2  Celeron/Pentium Silver Processor Integrated Sensor Solution
 	31a8  Celeron/Pentium Silver Processor USB 3.0 xHCI Controller
 		1849 31a8  Celeron/Pentium Silver Processor USB 3.0 xHCI Controller
-	31ac  Celeron/Pentium Silver Processor Serial IO I2C Host Controller
-	31ae  Celeron/Pentium Silver Processor Serial IO I2C Host Controller
+	31ac  Celeron/Pentium Silver Processor I2C 0
+	31ae  Celeron/Pentium Silver Processor I2C 1
+	31b0  Celeron/Pentium Silver Processor I2C 2
+	31b2  Celeron/Pentium Silver Processor I2C 3
+	31b4  Celeron/Pentium Silver Processor I2C 4
+	31b6  Celeron/Pentium Silver Processor I2C 5
+	31b8  Celeron/Pentium Silver Processor I2C 6
+	31ba  Celeron/Pentium Silver Processor I2C 7
 	31bc  Celeron/Pentium Silver Processor Serial IO UART Host Controller
 	31be  Celeron/Pentium Silver Processor Serial IO UART Host Controller
 	31c0  Celeron/Pentium Silver Processor Serial IO UART Host Controller
@@ -31417,6 +32091,9 @@
 	3432  5520/5500/X58 Chipset QuickData Technology Device
 	3433  5520/5500/X58 Chipset QuickData Technology Device
 	3438  7500/5520/5500/X58 I/O Hub Throttle Registers
+	3440  Ice Lake UPI Misc
+	3441  Ice Lake UPI Link/Phy0
+	3456  Ice Lake NorthPeak
 	347e  Ice Lake Xeon Non-Transparent Bridge
 	3482  Ice Lake-LP LPC Controller
 	34a3  Ice Lake-LP SMBus Controller
@@ -31429,6 +32106,7 @@
 	34b7  Ice Lake-LP PCI Express Root Port #16
 	34ba  Ice Lake-LP PCI Express Root Port #3
 	34bc  Ice Lake-LP PCI Express Root Port #5
+	34c4  Ice Lake-LP SD Host Controller
 	34c5  Ice Lake-LP Serial IO I2c Controller #4
 	34c6  Ice Lake-LP Serial IO I2c Controller #5
 	34c8  Ice Lake-LP Smart Sound Technology Audio Controller
@@ -32068,12 +32746,19 @@
 	3e92  CoffeeLake-S GT2 [UHD Graphics 630]
 		1028 0869  Vostro 3470
 	3e93  CoffeeLake-S GT1 [UHD Graphics 610]
+	3e94  Coffee Lake-S GT2 [UHD Graphics P630]
 	3e96  CoffeeLake-S GT2 [UHD Graphics P630]
 	3e98  CoffeeLake-S GT2 [UHD Graphics 630]
+	3e9a  Coffee Lake-S GT2 [UHD Graphics P630]
 	3e9b  CoffeeLake-H GT2 [UHD Graphics 630]
+	3e9c  Coffee Lake-S GT1 [UHD Graphics 610]
 	3ea0  WhiskeyLake-U GT2 [UHD Graphics 620]
 		1028 089e  Inspiron 5482
+	3ea1  Whiskey Lake-U GT1 [UHD Graphics 610]
 	3ea5  CoffeeLake-U GT3e [Iris Plus Graphics 655]
+	3ea6  Coffee Lake-U GT3 [Iris Plus Graphics 645]
+	3ea8  Coffee Lake-U GT3 [Iris Plus Graphics 655]
+	3ea9  Coffee Lake-U GT2 [UHD Graphics 620]
 	3ec2  8th Gen Core Processor Host Bridge/DRAM Registers
 		1028 0869  Vostro 3470
 		1043 8694  PRIME H310M-D
@@ -32219,6 +32904,7 @@
 	43c8  Tiger Lake-H HD Audio Controller
 	43e0  Tiger Lake-H Management Engine Interface
 	43e8  Tiger Lake-H Serial IO I2C Controller #0
+	43e9  Tiger Lake-H Serial IO I2C Controller #1
 	43ed  Tiger Lake-H USB 3.2 Gen 2x1 xHCI Host Controller
 	43ef  Tiger Lake-H Shared SRAM
 	43f0  Tiger Lake PCH CNVi WiFi
@@ -32226,36 +32912,68 @@
 		8086 0074  Wi-Fi 6 AX201 160MHz
 		8086 0264  Wireless-AC 9461
 		8086 02a4  Wireless-AC 9462
+	43fc  Tiger Lake-H Integrated Sensor Hub
 	444e  Turbo Memory Controller
+	4555  Elkhart Lake [UHD Graphics Gen11 16EU]
+	4571  Elkhart Lake [UHD Graphics Gen11 32EU]
 	460d  12th Gen Core Processor PCI Express x16 Controller #1
 	461d  Alder Lake Innovation Platform Framework Processor Participant
+		1028 0b10  Precision 3571
 	461e  Alder Lake-P Thunderbolt 4 USB Controller
+		1028 0b10  Precision 3571
 	461f  Alder Lake-P Thunderbolt 4 PCI Express Root Port #3
 	4626  Alder Lake-P Integrated Graphics Controller
+	4628  Alder Lake-UP3 GT2 [UHD Graphics]
 	4629  12th Gen Core Processor Host Bridge/DRAM Registers
+	462a  AlderLake-P [UHD Graphics]
 	462f  Alder Lake-P Thunderbolt 4 PCI Express Root Port #2
+	4636  AlderLake-P [UHD Graphics]
+	4638  AlderLake-P [UHD Graphics]
+	463a  AlderLake-P [UHD Graphics]
 	463d  12th Gen Core Processor PCI Express x4 Controller #2
 	463e  Alder Lake-P Thunderbolt 4 NHI #0
+		1028 0b10  Precision 3571
 	463f  Alder Lake-P Thunderbolt 4 PCI Express Root Port #1
 	4641  12th Gen Core Processor Host Bridge/DRAM Registers
+		1028 0b10  Precision 3571
 	464d  12th Gen Core Processor PCI Express x4 Controller #0
 	464f  12th Gen Core Processor Gaussian & Neural Accelerator
+		1028 0b10  Precision 3571
 	4660  12th Gen Core Processor Host Bridge/DRAM Registers
+	4668  12th Gen Core Processor Host Bridge/DRAM Registers
 	466d  Alder Lake-P Thunderbolt 4 NHI #1
 	466e  Alder Lake-P Thunderbolt 4 PCI Express Root Port #0
 	467d  Platform Monitoring Technology
 	467f  Volume Management Device NVMe RAID Controller
 	4680  AlderLake-S GT1
+	4682  Alder Lake-S GT1 [UHD Graphics 730]
+	4688  Alder Lake-HX GT1 [UHD Graphics 770]
+	468a  Alder Lake-S [UHD Graphics]
+	468b  Alder Lake-S [UHD Graphics]
+	4690  Alder Lake-S GT1 [UHD Graphics 770]
+	4692  Alder Lake-S GT1 [UHD Graphics 730]
+	4693  Alder Lake-S GT1 [UHD Graphics 710]
 	46a0  AlderLake-P GT2
 	46a1  UHD Graphics
 	46a3  Alder Lake-P GT1 [UHD Graphics]
 	46a6  Alder Lake-P Integrated Graphics Controller
+	46a8  Alder Lake-UP3 GT2 [Iris Xe Graphics]
+	46aa  Alder Lake-UP4 GT2 [Iris Xe Graphics]
+	46b0  AlderLake-P [Iris Xe Graphics]
+	46b1  AlderLake-P [Iris Xe Graphics]
+	46b3  Alder Lake-UP3 GT1 [UHD Graphics]
+	46b6  AlderLake-P [Iris Xe Graphics]
+	46b8  AlderLake-P [Iris Xe Graphics]
+	46ba  AlderLake-P [Iris Xe Graphics]
 	46c0  AlderLake-M GT1
+	46c1  AlderLake-M [Iris Xe Graphics]
+	46c3  Alder Lake-UP4 GT1 [UHD Graphics]
 	4905  DG1 [Iris Xe MAX Graphics]
 	4906  DG1 [Iris Xe Pod]
 	4907  SG1 [Server GPU SG-18M]
 		193d 4000  UN-GPU-XG310-32GB-FHFL
 	4908  DG1 [Iris Xe Graphics]
+	4909  DG1 [Iris Xe MAX 100]
 	4c3d  Volume Management Device NVMe RAID Controller
 	4c8a  RocketLake-S GT1 [UHD Graphics 750]
 	4c8b  RocketLake-S GT1 [UHD Graphics 730]
@@ -32325,33 +33043,66 @@
 	504c  EP80579 Integrated Processor with QuickAssist TDM
 	5181  Alder Lake PCH-P LPC/eSPI Controller
 	5182  Alder Lake PCH eSPI Controller
+		1028 0b10  Precision 3571
 	51a3  Alder Lake PCH-P SMBus Host Controller
+		1028 0b10  Precision 3571
 	51a4  Alder Lake-P PCH SPI Controller
+		1028 0b10  Precision 3571
 	51a8  Alder Lake PCH UART #0
 	51a9  Alder Lake PCH UART #1
+	51b1  Alder Lake PCI Express x1 Root Port #10
 	51bf  Alder Lake PCH-P PCI Express Root Port #9
 	51c5  Alder Lake-P Serial IO I2C Controller #0
 	51c6  Alder Lake-P Serial IO I2C Controller #1
 	51c8  Alder Lake PCH-P High Definition Audio Controller
+		1028 0b10  Precision 3571
 	51d3  Alder Lake-P SATA AHCI Controller
+		1028 0b10  Precision 3571
+	51d8  Alder Lake-P Serial IO I2C Controller #2
+	51d9  Alder Lake-P Serial IO I2C Controller #3
 	51e0  Alder Lake PCH HECI Controller
+		1028 0b10  Precision 3571
+	51e3  Alder Lake AMT SOL Redirection
+		1028 0b10  Precision 3571
 	51e8  Alder Lake PCH Serial IO I2C Controller #0
+		1028 0b10  Precision 3571
 	51e9  Alder Lake PCH Serial IO I2C Controller #1
+		1028 0b10  Precision 3571
 	51ea  Alder Lake PCH Serial IO I2C Controller #2
 	51eb  Alder Lake PCH Serial IO I2C Controller #3
 	51ed  Alder Lake PCH USB 3.2 xHCI Host Controller
+		1028 0b10  Precision 3571
 	51ef  Alder Lake PCH Shared SRAM
+		1028 0b10  Precision 3571
 	51f0  Alder Lake-P PCH CNVi WiFi
 		8086 0034  Wireless-AC 9560 160MHz
 		8086 0070  Wi-Fi 6 AX201 160MHz
 		8086 0074  Wi-Fi 6 AX201 160MHz
 		8086 4070  Wi-Fi 6 AX201 160MHz
+		8086 4090  Wi-Fi 6E AX211 160MHz
+	51fc  Alder Lake-P Integrated Sensor Hub
+		1028 0b10  Precision 3571
 	5200  EtherExpress PRO/100 Intelligent Server PCI Bridge
 	5201  EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller
 		8086 0001  EtherExpress PRO/100 Server Ethernet Adapter
 	530d  80310 (IOP) IO Processor
 	5502  Ethernet Controller (2) I225-LMvP
-	5504  Ethernet Controller I226-K
+		1ab6 0225  TS4 On-Board 2.5GbE Ethernet Adaptor
+	5690  DG2 [Arc A770M]
+	5691  DG2 [Arc A730M]
+	5692  DG2 [Arc A550M]
+	5693  DG2 [Arc A370M]
+	5694  DG2 [Arc A350M]
+	5695  DG2 [Iris Xe MAX A200M]
+	56a0  DG2 [Arc A770]
+	56a1  DG2 [Arc A750]
+	56a2  DG2 [Arc A580]
+	56a5  DG2 [Arc A380]
+	56a6  DG2 [Arc A310]
+	56b0  DG2 [Arc Pro A30M]
+	56b1  DG2 [Arc Pro A40/A50]
+	56c0  Data Center GPU Flex 170
+	56c1  Data Center GPU Flex 140
 	5845  QEMU NVM Express Controller
 		1af4 1100  QEMU Virtual Machine
 	5900  Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
@@ -32362,7 +33113,9 @@
 		17aa 2247  ThinkPad T570
 		17aa 224f  ThinkPad X1 Carbon 5th Gen
 	5905  Xeon E3-1200 v6/7th Gen Core Processor PCIe Controller (x8)
+	5906  HD Graphics 610
 	5909  Xeon E3-1200 v6/7th Gen Core Processor PCIe Controller (x4)
+	590b  HD Graphics 610
 	590c  Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
 	590f  Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
 		1462 7a68  B250 KRAIT GAMING (MS-7A68)
@@ -32385,10 +33138,11 @@
 	591d  HD Graphics P630
 	591e  HD Graphics 615
 	591f  Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
+	5921  HD Graphics 620
 	5923  HD Graphics 635
 	5926  Iris Plus Graphics 640
 	5927  Iris Plus Graphics 650
-	5a84  Celeron N3350/Pentium N4200/Atom E3900 Series Integrated Graphics Controller
+	5a84  Apollo Lake [HD Graphics 505]
 	5a85  HD Graphics 500
 	5a88  Celeron N3350/Pentium N4200/Atom E3900 Series Imaging Unit
 	5a98  Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster
@@ -32625,6 +33379,7 @@
 	6ffd  Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Caching Agent
 	6ffe  Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Caching Agent
 	7000  82371SB PIIX3 ISA [Natoma/Triton II]
+		01de fffd  Propolis Virtual PIIX3 ISA Controller
 		1af4 1100  Qemu virtual machine
 	7010  82371SB PIIX3 IDE [Natoma/Triton II]
 		1af4 1100  Qemu virtual machine
@@ -32642,6 +33397,7 @@
 		15ad 1976  Virtual Machine Chipset
 		1af4 1100  QEMU Virtual Machine
 	7113  82371AB/EB/MB PIIX4 ACPI
+		01de fffc  Propolis Virtual PIIX4 PM Controller
 		15ad 1976  Virtual Machine Chipset
 		1af4 1100  Qemu virtual machine
 	7120  82810 GMCH (Graphics Memory Controller Hub)
@@ -32698,6 +33454,7 @@
 	71a2  440GX - 82443GX Host bridge (AGP disabled)
 		4c53 1000  CC7/CR7/CP7/VC7/VP7/VR7 mainboard
 	7360  XMM7360 LTE Advanced Modem
+	7560  XMM7560 LTE Advanced Pro Modem
 	7600  82372FB PIIX5 ISA
 	7601  82372FB PIIX5 IDE
 	7602  82372FB PIIX5 USB
@@ -32715,15 +33472,56 @@
 	7aa3  Alder Lake-S PCH SMBus Controller
 	7aa4  Alder Lake-S PCH SPI Controller
 	7aa7  Alder Lake-S PCH Shared SRAM
+	7aa8  Alder Lake-S PCH Serial IO UART #0
+	7aab  Alder Lake-S PCH Serial IO SPI Controller #1
+	7ab0  Alder Lake-S PCH PCI Express Root Port #9
 	7ab4  Alder Lake-S PCH PCI Express Root Port #13
+	7ab8  Alder Lake-S PCH PCI Express Root Port #1
+	7ab9  Alder Lake-S PCH PCI Express Root Port #2
+	7abc  Alder Lake-S PCH PCI Express Root Port #5
 	7abd  Alder Lake-S PCH PCI Express Root Port #6
-	7acc  Alder Lake-S PCH I2C Controller #0
+	7abf  Alder Lake-S PCH PCI Express Root Port #8
+	7acc  Alder Lake-S PCH Serial IO I2C Controller #0
+	7acd  Alder Lake-S PCH Serial IO I2C Controller #1
+	7ace  Alder Lake-S PCH Serial IO I2C Controller #2
+	7acf  Alder Lake-S PCH Serial IO I2C Controller #3
 	7ad0  Alder Lake-S HD Audio Controller
 	7ae0  Alder Lake-S PCH USB 3.2 Gen 2x2 XHCI Controller
 	7ae2  Alder Lake-S PCH SATA Controller [AHCI Mode]
 	7ae8  Alder Lake-S PCH HECI Controller #1
 	7af0  Alder Lake-S PCH CNVi WiFi
+		8086 0034  Wireless-AC 9560
+		8086 0070  Wi-Fi 6 AX201 160MHz
 		8086 0094  Wi-Fi 6 AX201 160MHz
+	7afc  Alder Lake-S PCH Serial IO I2C Controller #4
+	7afd  Alder Lake-S PCH Serial IO I2C Controller #5
+	7d0b  Volume Management Device NVMe RAID Controller Intel Corporation
+	7e01  Meteor Lake-P LPC/eSPI Controller
+	7e22  Meteor Lake-P SMBus Controller
+	7e23  Meteor Lake-P SPI Controller
+	7e24  Meteor Lake-P Trace Hub
+	7e25  Meteor Lake-P Serial IO UART Controller #0
+	7e26  Meteor Lake-P Serial IO UART Controller #1
+	7e27  Meteor Lake-P Serial IO SPI Controller #0
+	7e28  Meteor Lake-P HD Audio Controller
+	7e30  Meteor Lake-P Serial IO SPI Controller #1
+	7e46  Meteor Lake-P Serial IO SPI Controller #2
+	7e50  Meteor Lake-P Serial IO I2C Controller #4
+	7e51  Meteor Lake-P Serial IO I2C Controller #5
+	7e52  Meteor Lake-P Serial IO UART Controller #2
+	7e78  Meteor Lake-P Serial IO I2C Controller #0
+	7e79  Meteor Lake-P Serial IO I2C Controller #1
+	7e7a  Meteor Lake-P Serial IO I2C Controller #2
+	7e7b  Meteor Lake-P Serial IO I2C Controller #3
+	7e7d  Meteor Lake-P USB 3.2 Gen 2x1 xHCI Host Controller
+	7e7e  Meteor Lake-P USB Device Controller
+	7ec0  Meteor Lake-P Thunderbolt 4 USB Controller
+	7ec2  Meteor Lake-P Thunderbolt 4 NHI #0
+	7ec3  Meteor Lake-P Thunderbolt 4 NHI #1
+	7ec4  Meteor Lake-P Thunderbolt 4 PCI Express Root Port #0
+	7ec5  Meteor Lake-P Thunderbolt 4 PCI Express Root Port #1
+	7ec6  Meteor Lake-P Thunderbolt 4 PCI Express Root Port #2
+	7ec7  Meteor Lake-P Thunderbolt 4 PCI Express Root Port #3
 	8002  Trusted Execution Technology Registers
 	8003  Trusted Execution Technology Registers
 	8100  US15W/US15X SCH [Poulsbo] Host Bridge
@@ -32767,6 +33565,7 @@
 		1993 0def  mGuard-PCI AV#0
 	8603  Ice Lake-LP Dynamic Tuning Processor Participant
 	87c0  UHD Graphics 617
+	87ca  UHD Graphics 617
 	8800  Platform Controller Hub EG20T PCI Express Port
 	8801  Platform Controller Hub EG20T Packet Hub
 	8802  Platform Controller Hub EG20T Gigabit Ethernet Controller
@@ -32793,7 +33592,9 @@
 	8817  Platform Controller Hub EG20T I2C Controller
 	8818  Platform Controller Hub EG20T Controller Area Network (CAN) Controller
 	8819  Platform Controller Hub EG20T IEEE 1588 Hardware Assist
+	8a03  Processor Power and Thermal Controller
 	8a0d  Ice Lake Thunderbolt 3 NHI #1
+	8a11  GNA Scoring Accelerator Module
 	8a12  Ice Lake-LP Processor Host Bridge/DRAM Registers
 	8a13  Ice Lake Thunderbolt 3 USB Controller
 	8a14  Ice Lake Processor Host Bridge/DRAM Registers
@@ -32805,7 +33606,9 @@
 	8a23  Ice Lake Thunderbolt 3 PCI Express Root Port #3
 	8a51  Iris Plus Graphics G7 (Ice Lake)
 	8a52  Iris Plus Graphics G7
+	8a53  Iris Plus Graphics G7
 	8a56  Iris Plus Graphics G1 (Ice Lake)
+	8a58  Ice Lake-Y GT1 [UHD Graphics G1]
 	8a5a  Iris Plus Graphics G4 (Ice Lake)
 	8a5c  Iris Plus Graphics G4 (Ice Lake)
 	8c00  8 Series/C220 Series Chipset Family 4-port SATA Controller 1 [IDE mode]
@@ -33054,6 +33857,8 @@
 	9622  Integrated RAID
 	9641  Integrated RAID
 	96a1  Integrated RAID
+	9840  Lakefield GT2 [UHD Graphics]
+	9841  Lakefield GT1.5 [UHD Graphics]
 	9a01  11th Gen Core Processor PCIe Controller #1
 	9a03  TigerLake-LP Dynamic Tuning Processor Participant
 	9a09  11th Gen Core Processor PCIe Controller
@@ -33079,13 +33884,18 @@
 	9a31  Tiger Lake-H Thunderbolt 4 PCI Express Root Port #3
 	9a33  Tiger Lake Trace Hub
 	9a36  11th Gen Core Processor Host Bridge/DRAM Registers
+	9a40  Tiger Lake-UP4 GT2 [Iris Xe Graphics]
 	9a49  TigerLake-LP GT2 [Iris Xe Graphics]
 	9a60  TigerLake-H GT1 [UHD Graphics]
 	9a68  TigerLake-H GT1 [UHD Graphics]
+	9a70  Tiger Lake-H GT1 [UHD Graphics]
+	9a78  Tiger Lake-LP GT2 [UHD Graphics G4]
+	9b21  Comet Lake-U GT2 [UHD Graphics 620]
 	9b33  Comet Lake-S 6c Host Bridge/DRAM Controller
 	9b41  CometLake-U GT2 [UHD Graphics]
 		1028 09bd  Latitude 7310
 		1028 09be  Latitude 7410
+	9b43  10th Gen Core Processor Host Bridge/DRAM Registers
 	9b44  10th Gen Core Processor Host Bridge/DRAM Registers
 	9b53  Comet Lake-S 6c Host Bridge/DRAM Controller
 	9b54  10th Gen Core Processor Host Bridge/DRAM Registers
@@ -33093,11 +33903,18 @@
 		1028 09be  Latitude 7410
 	9b63  10th Gen Core Processor Host Bridge/DRAM Registers
 	9b64  10th Gen Core Processor Host Bridge/DRAM Registers
+	9ba4  Comet Lake-H GT1 [UHD Graphics 610]
 	9ba8  CometLake-S GT1 [UHD Graphics 610]
+	9baa  Comet Lake UHD Graphics
+	9bac  Comet Lake UHD Graphics
 	9bc4  CometLake-H GT2 [UHD Graphics]
 	9bc5  CometLake-S GT2 [UHD Graphics 630]
+	9bc6  Comet Lake-S GT2 [UHD Graphics P630]
 	9bc8  CometLake-S GT2 [UHD Graphics 630]
 	9bca  Comet Lake UHD Graphics
+	9bcc  Comet Lake UHD Graphics
+	9be6  Comet Lake-S GT2 [UHD Graphics P630]
+	9bf6  Coffee Lake-S GT2 [UHD Graphics P630]
 	9c00  8 Series SATA Controller 1 [IDE mode]
 	9c01  8 Series SATA Controller 1 [IDE mode]
 	9c02  8 Series SATA Controller 1 [AHCI mode]
@@ -33410,6 +34227,8 @@
 	a0c5  Tiger Lake-LP Serial IO I2C Controller #4
 	a0c6  Tiger Lake-LP Serial IO I2C Controller #5
 	a0c8  Tiger Lake-LP Smart Sound Technology Audio Controller
+# SATA controller on Intel Tiger Lake based mobile platforms in AHCI mode. Could be found on Panasonic Let's Note CF-SV2.
+	a0d3  Tiger Lake-LP SATA Controller
 	a0e0  Tiger Lake-LP Management Engine Interface
 	a0e3  Tiger Lake-LP Active Management Technology - SOL
 	a0e8  Tiger Lake-LP Serial IO I2C Controller #0
@@ -33734,7 +34553,17 @@
 	a3eb  Comet Lake PCI Express Root Port #21
 	a3f0  Comet Lake PCH-V cAVS
 	a620  6400/6402 Advanced Memory Buffer (AMB)
+	a77f  Volume Management Device NVMe RAID Controller Intel Corporation
+	a780  Raptor Lake-S UHD Graphics
+	a781  Raptor Lake-S UHD Graphics
+	a782  Raptor Lake-S UHD Graphics
+	a783  Raptor Lake-S UHD Graphics
+	a788  Raptor Lake-S UHD Graphics
+	a789  Raptor Lake-S UHD Graphics
+	a78a  Raptor Lake-S UHD Graphics
+	a78b  Raptor Lake-S UHD Graphics
 	abc0  Omni-Path Fabric Switch Silicon 100 Series
+	ad0b  Volume Management Device NVMe RAID Controller Intel Corporation
 	b152  21152 PCI-to-PCI Bridge
 		8086 b152  21152 PCI-to-PCI Bridge
 # observed, and documented in Intel revision note; new mask of 1011:0026
@@ -33825,6 +34654,8 @@
 	011b  WX1860AL1 Gigabit Ethernet Controller Virtual Function
 	1000  Ethernet Controller RP1000 Virtual Function for 10GbE SFP+
 	1001  Ethernet Controller RP1000 for 10GbE SFP+
+		1bd4 0084  Ethernet Controller RP1000 for 10GbE SFP+(lldp)
+		1bd4 0085  Ethernet Controller SP1000A for 10GBASE-T
 		8088 0000  Ethernet Network Adaptor RP1000 for 10GbE SFP+
 	2000  Ethernet Controller RP2000 Virtual Function for 10GbE SFP+
 	2001  Ethernet Controller RP2000 for 10GbE SFP+
@@ -33843,6 +34674,15 @@
 	2008  Video assistant component
 8820  Stryker Corporation
 	2724  Mako Front Side Motor Controller [cPCI]
+# Wuxi Micro Innovation Integrated Circuit Design Co.,Ltd.
+8848  MUCSE
+	1000  Ethernet Controller N10 Series for 10GbE or 40GbE (Dual-port)
+	1001  Ethernet Controller N400 Series for 1GbE (Dual-port)
+	1020  Ethernet Controller N10 Series for 10GbE (Quad-port)
+	1021  Ethernet Controller N400 Series for 1GbE (Quad-port)
+	1060  Ethernet Controller N10 Series for 10GbE (8-port)
+	1080  Ethernet Controller N10 Series Virtual Function
+	1081  Ethernet Controller N400 Series Virtual Function
 8866  T-Square Design Inc.
 8888  Silicon Magic
 8912  TRX
@@ -34215,6 +35055,14 @@
 		1bd4 0070  RS0800M5E24i
 		1bd4 0071  RS0800M5H16i
 		1bd4 0072  RS0800M5E16i
+		1bd4 0077  RS0800M5E16iM
+		1bd4 0078  RS0800M5E24iM
+		1bd4 0079  RS0800M5H24iM
+		1bd4 0080  RS0804M5R16iM
+		1bd4 0086  RT0800M7E
+		1bd4 0087  RT0800M7H
+		1bd4 0088  RT0804M7R
+		1bd4 0089  RT0808M7R
 		1cc4 0101  Ramaxel FBGF-RAD PM8204
 		1cc4 0201  Ramaxel FBGF-RAD PM8222
 		1d49 0220  ThinkSystem 4350-8i SAS/SATA 12Gb HBA
@@ -34265,11 +35113,17 @@
 		9005 1462  HBA 1200-8i
 		9005 1471  SmartRAID 3254-16i /e
 		9005 1472  SmartRAID 3258-16i /e
+		9005 1475  SmartRAID 3254-16e /e
 		9005 14a0  SmartRAID 3254-8i
 		9005 14a1  SmartRAID 3204-8i
 		9005 14a2  SmartRAID 3252-8i
+		9005 14a4  SmartRAID 3254-8i /e
+		9005 14a5  SmartRAID 3252-8i /e
+		9005 14a6  SmartRAID 3204-8i /e
 		9005 14c0  SmartHBA 2200-16i
 		9005 14c1  HBA 1200-16i
+		9005 14c3  HBA 1200-16e
+		9005 14c4  HBA 1200-8e
 	0410  AIC-9410W SAS (Razor HBA RAID)
 		9005 0410  ASC-48300(Spirit RAID)
 		9005 0411  ASC-58300 (Oakmont RAID)
@@ -34377,7 +35231,7 @@
 # 2-port Serial 1-port Parallel Adaptor
 	9912  PCIe 9912 Multi-I/O Controller
 	9922  MCS9922 PCIe Multi-I/O Controller
-	9990  MCS9990 PCIe to 4‐Port USB 2.0 Host Controller
+	9990  MCS9990 PCIe to 4‐Port USB 2.0 Host Controller
 # Subsystem ID on a 3c985B-SX network card
 9850  3Com (wrong ID)
 9902  Stargen Inc.
@@ -34392,6 +35246,11 @@
 	1202  STAR1200I NVMe SSD
 	1203  STAR1200L NVMe SSD
 	1204  STAR1200E NVMe SSD
+	1500  STAR1500 PCIe NVMe SSD Controller
+	1501  STAR1500C NVMe SSD
+	1502  STAR1500E NVMe SSD
+	2000  STAR2000 NVMe Controller
+	2001  STAR2000E NVMe SSD
 a000  Asix Electronics Corporation (Wrong ID)
 a0a0  AOPEN Inc.
 a0f1  UNISYS Corporation
@@ -34481,6 +35340,7 @@ bdbd  Blackmagic Design
 c001  TSI Telsys
 c0a9  Micron/Crucial Technology
 	2263  P1 NVMe PCIe SSD
+	5407  P5 Plus NVMe PCIe SSD
 	540a  P2 NVMe PCIe SSD
 c0de  Motorola
 c0fe  Motion Engineering, Inc.
@@ -34505,6 +35365,7 @@ cddd  Tyzx, Inc.
 ceba  KEBA AG
 cf86  Spectrum-4TOR
 	0276  Spectrum-4TOR in Flash Recovery Mode
+d063  SolidRun
 d161  Digium, Inc.
 	0120  Wildcard TE120P single-span T1/E1/J1 card
 	0205  Wildcard TE205P/TE207P dual-span T1/E1/J1 card 5.0V
@@ -34844,7 +35705,6 @@ C 05  Memory controller
 	01  FLASH memory
 	02  CXL
 		00  CXL Memory Device - vendor specific
-# Devices compliant to CXL spec
 		10  CXL Memory Device (CXL 2.x)
 	80  Memory controller
 C 06  Bridge
diff --git a/src/hwdata/usb.ids b/src/hwdata/usb.ids
index d02e59f5e..368571b5e 100644
--- a/src/hwdata/usb.ids
+++ b/src/hwdata/usb.ids
@@ -9,8 +9,8 @@
 #	The latest version can be obtained from
 #		http://www.linux-usb.org/usb.ids
 #
-# Version: 2022.03.18
-# Date:    2022-03-18 20:34:09
+# Version: 2022.12.09
+# Date:    2022-12-09 20:34:10
 #
 
 # Vendors, devices and interfaces. Please keep sorted.
@@ -24,10 +24,14 @@
 	7778  Counterfeit flash drive [Kingston]
 0002  Ingram
 	0002  passport00
+	7007  HPRT XT300
 0003  Club Mac
 0004  Nebraska Furniture Mart
 0011  Unknown
 	7788  counterfeit flash drive
+0040  Anyware Corporation
+	073d  Mini Multimedia 2.4GHz Wireless Keyboard with Touch Pad
+0042  DMT
 0053  Planex
 	5301  GW-US54ZGL 802.11bg
 0078  Microntek
@@ -60,6 +64,7 @@
 	6026  CBM1180 Flash drive controller
 0218  Hangzhou Worlde
 	0301  MIDI Port
+0231  Sonuus Limited
 02ad  HUMAX Co., Ltd.
 	138c  PVR Mass Storage
 0303  Mini Automation Controller
@@ -72,6 +77,8 @@
 	0001  PSX for USB Converter
 03c3  ZWO
 	120e  ASI120MC-S Planetary Camera
+	1f10  EFF
+	294f  ASI294MC Pro
 03d9  Shenzhen Sinote Tech-Electron Co., Ltd
 	0499  SE340D PC Remote Control
 03da  Bernd Walter Computer Technology
@@ -227,7 +234,7 @@
 	0218  APOLLO P2500/2600
 	0221  StreamSmart 400 [F2235AA]
 	0223  Digital Drive Flash Reader
-	022a  Laserjet CP1525nw
+	022a  LaserJet CP1525nw/x
 	0241  Link-5 micro dongle
 	0304  DeskJet 810c/812c
 	0305  ScanJet 4300c
@@ -277,6 +284,7 @@
 	0805  HP4470C
 	0811  OfficeJet K80xi
 	0817  LaserJet 3300
+	0853  ENVY 5000 series
 	0901  ScanJet 2300c
 	0904  DeskJet 845c
 	0912  Printing Support
@@ -457,6 +465,7 @@
 	2d05  Scanjet 7000
 	2d11  OfficeJet 6110
 	2d17  Printing Support
+	2d2a  LaserJet Pro MFP M225dw
 	2e11  PSC 1000
 	2e17  LaserJet 2600n
 	2e24  LP2275w Monitor Hub
@@ -522,6 +531,7 @@
 	3d11  OfficeJet 4215
 	3d17  LaserJet P1005
 	3e02  PhotoSmart 7550
+	3e07  x755w Flash Drive
 	3e17  LaserJet P1006
 	3f02  PhotoSmart 7550~
 	3f11  PSC-1315/PSC-1317
@@ -552,6 +562,7 @@
 	4611  PhotoSmart 2700
 	4717  Color LaserJet CP1215
 	4811  PSC 1600
+	484a  Elite Dock G4
 	4911  PSC 2350
 	4b11  OfficeJet 6200
 	4c11  PSC 1500 series
@@ -805,7 +816,8 @@
 	6011  FT4232H Quad HS USB-UART/FIFO IC
 	6014  FT232H Single HS USB-UART/FIFO IC
 	6015  Bridge(I2C/SPI/UART/FIFO)
-	601f  Myriad-RF LimeSDR-Mini
+	601e  FT600 16-bit FIFO IC
+	601f  FT601 32-bit FIFO IC
 	6ee0  EZO Carrier Board
 	6f70  HB-RF-USB
 	7be8  FT232R
@@ -895,6 +907,7 @@
 	d38f  Xsens serial converter
 	d491  Zolix Omni 1509 monochromator
 	d578  Accesio USB-COM-4SM
+	d678  GammaScout
 	d6f8  UNI Black BOX
 	d738  Propox JTAGcable II
 	d739  Propox ISPcable III
@@ -1204,7 +1217,9 @@
 040c  VTech Computers, Ltd
 040d  VIA Technologies, Inc.
 	3184  VNT VT6656 USB-802.11 Wireless LAN Adapter
+	340b  FX-Audio DAC-X6
 	340f  Audinst HUD-mx2
+	6204  Vectro VT6204 IDE bridge
 	6205  USB 2.0 Card Reader
 040e  MCCI
 040f  Echo Speech Corp.
@@ -1341,7 +1356,7 @@
 	7721  Memory Stick Reader/Writer
 	7722  Memory Stick Reader/Writer
 	7723  SD Card Reader
-	b23c  KT108 keyboard
+	b23c  Gaming Keyboard
 	c141  Barcode Scanner
 0417  Symbios Logic
 0418  AST Research
@@ -1382,6 +1397,7 @@
 	3020  SoundBlaster Audigy 2 NX
 	3030  SB External Composite Device
 	3040  SoundBlaster Live! 24-bit External SB0490
+	3042  Sound Blaster X-Fi Surround 5.1
 	3060  Sound Blaster Audigy 2 ZS External
 	3061  SoundBlaster Audigy 2 ZS Video Editor
 	3090  Sound Blaster Digital Music SX
@@ -1398,6 +1414,7 @@
 	3f02  E-Mu 0202
 	3f04  E-Mu 0404
 	3f07  E-Mu Xmidi 1x1
+	3f0a  E-Mu Tracker Pre
 	3f0e  Xmidi 1x1 Tab
 	4003  VideoBlaster Webcam Go Plus [W9967CF]
 	4004  Nomad II MG
@@ -1459,7 +1476,7 @@
 	4087  Live! Cam Socialize HD 1080 [VF0680]
 	4088  Live! Cam Chat HD [VF0700]
 	4095  Live! Cam Sync HD [VF0770]
-	4097  Live! Cam Chat HD [VF0700]
+	4097  Live! Cam Chat HD [VF0700/VF0790]
 	4099  Creative VF0800 [RealSense Camera SR300]
 	4100  Nomad Jukebox 2
 	4101  Nomad Jukebox 3
@@ -1667,6 +1684,7 @@
 	1237  Andromeda Hub
 0424  Microchip Technology, Inc. (formerly SMSC)
 	0001  Integrated Hub
+	0007  ULPI Transciever [USB3320]
 	0140  LPC47M14x hub
 	0acd  Sitecom Internal Multi Memory reader/writer MD-005
 	0fdc  Floppy
@@ -1758,6 +1776,7 @@
 	0083  109 Japanese Keyboard
 	00a2  Type 7 Keyboard
 	0100  3-button Mouse
+	0406  KVM Switch
 	0502  Panasonic CF-19 HID Touch Panel
 	100e  24.1" LCD Monitor v4 / FID-638 Mouse
 	36ba  Bus Powered Hub
@@ -1932,6 +1951,7 @@
 	010f  6500 series
 	0142  X3650 (Printer, Scanner, Copier)
 	01fa  S310 series
+	020e  RICOH Aficio SP 4410SF
 	4303  Xerox WorkCentre Pro 412
 043e  LG Electronics USA, Inc.
 	3001  AN-WF100 802.11abgn Wireless Adapter [Broadcom BCM4323]
@@ -2095,6 +2115,9 @@
 0454  Vobis Microcomputer AG
 0455  Telematics International, Inc.
 0456  Analog Devices, Inc.
+	7031  FX2 SPI/I2C Interface
+	b672  Libiio based instrument [ADALM2000]
+	b673  LibIIO based AD9363 Software Defined Radio [ADALM-PLUTO]
 	f000  FT2232 JTAG ICE [gnICE]
 	f001  FT2232H Hi-Speed JTAG ICE [gnICE+]
 0457  Silicon Integrated Systems Corp.
@@ -2196,6 +2219,7 @@
 	7020  Sim 321C
 	7025  Eye 311Q Camera
 	7029  Genius Look 320s (SN9C201 + HV7131R)
+	702c  Trek 320R Camera
 	702f  Genius Slim 322
 	7035  i-Look 325T Camera
 	7045  Genius Look 1320 V2
@@ -2340,7 +2364,7 @@
 	028b  Xbox360 DVD Emulator
 	028d  Xbox360 Memory Unit 64MB
 	028e  Xbox360 Controller
-	028f  Xbox360 Wireless Controller
+	028f  Xbox360 Wireless Controller via Plug & Charge Cable
 	0290  Xbox360 Performance Pipe (PIX)
 	0291  Xbox 360 Wireless Receiver for Windows
 	0292  Xbox360 Wireless Networking Adapter
@@ -2361,10 +2385,13 @@
 	02d1  Xbox One Controller
 	02d5  Xbox One Digital TV Tuner
 	02dd  Xbox One Controller (Firmware 2015)
+	02e0  Xbox One Wireless Controller
 	02e3  Xbox One Elite Controller
 	02e6  Wireless XBox Controller Dongle
 	02ea  Xbox One S Controller
 	02fd  Xbox One S Controller [Bluetooth]
+	02fe  Xbox Wireless Adapter for Windows
+	02ff  Xbox One S Controller [Bluetooth]
 	0400  Windows Powered Pocket PC 2002
 	0401  Windows Powered Pocket PC 2002
 	0402  Windows Powered Pocket PC 2002
@@ -2553,9 +2580,15 @@
 	0927  RTL8153B GigE [Surface Ethernet Adapter]
 	0955  Hub
 	0957  Hub
+	097a  Generic Superspeed Hub [Azure Kinect]
+	097b  Generic Hub [Azure Kinect]
+	097c  Azure Kinect Depth Camera
+	097d  Azure Kinect 4K Camera
+	097e  Azure Kinect Microphone Array
 	09a0  RTL8153B GigE [Surface Ethernet Adapter]
 	09c0  Surface Type Cover
-	0a00  Lumia 950 Dual SIM (RM-1118)
+	0a00  Lumia 950 (RM-1104/RM-1118)
+	0b00  Xbox Elite Series 2 Controller (model 1797)
 	0b12  Xbox Wireless Controller (model 1914)
 	930a  ISOUSB.SYS Intel 82930 Isochronous IO Test Board
 	ffca  Catalina
@@ -2621,6 +2654,7 @@
 	4d2e  Optical Mobile Mouse (HID)
 	4d51  0Y357C PMX-MMOCZUL (B) [Dell Laser Mouse]
 	4d62  HP Laser Mobile Mini Mouse
+	4d64  Asus wired optical mouse - Model MOEWUO
 	4d75  Rocketfish RF-FLBTAD Bluetooth Adapter
 	4d81  Dell N889 Optical Mouse
 	4d8a  HP Multimedia Keyboard
@@ -2631,6 +2665,7 @@
 	4de7  webcam
 	4e04  Lenovo Keyboard KB1021
 	4e22  Dell Mouse, 2 Buttons, Modell: MS111-P
+	4e26  Asus wired keyboard - model KB73211
 	4e6f  Acer Wired Keyboard Model KBAY211
 	4e72  Acer Wired Keyboard Model KBAY211
 0463  MGE UPS Systems
@@ -2656,14 +2691,42 @@
 	003d  Raptor Gaming Keyboard Integrated Hub
 	003e  SmartTerminal ST-2xxx
 	0041  G86 6240 Keyboard
+	0076  MX-Board 3.0 G80-3850
+	0077  MX BOARD 3.0S FL NBL Keyboard
+	0079  MX BOARD 3.0S FL RGB Keyboard
 	0080  eHealth Terminal ST 1503
 	0081  eHealth Keyboard G87 1504
+	0083  MX BOARD 3.0S FL RGB (KOREAN) Keyboard
+	0084  eHealth Terminal ST1506
+	0085  eHealth PIN-Pad PP1516
 	00a1  SmartCard Reader Keyboard KC 1000 SC
+	00ab  MX 1.0 FL BL Keyboard
+	00ac  MX BOARD 1.0 TKL RGB Keyboard
+	00b7  MX BOARD 8.0 TKL RGB Keyboard
+	00bb  MX BOARD 10.0 FL RGB Keyboard
+	00c3  G80 3000 TKL NBL Keyboard
+	00c4  MX BOARD 2.0S FL RGB Keyboard
+	00c5  G80 3000 TKL RGB Keyboard
+	00c7  MV BOARD 3.0 FL RGB
+	00c9  CCF MX 8.0 TKL BL Keyboard
+	00ca  CCF MX 1.0 TKL BL Keyboard
+	00cb  CCF MX 1.0 TKL NBL Keyboard
+	00cd  G80 3000 TKL NBL (KOREAN) Keyboard
+	00ce  MX BOARD 2.0S FL NBL Keyboard
+	00d2  MX 1.0 FL NBL Keyboard
+	00d3  MX 1.0 FL RGB Keyboard
+	00dd  G80-3000N RGB TKL Keyboard
+	00de  G80-3000N FL RGB Keyboard
+	00df  MX BOARD 10.0N FL RGB Keyboard
 	0106  R-300 Wireless Mouse Receiver
 	010d  MX-Board 3.0 Keyboard
 	0180  Strait 3.0
+	01a4  MC 2.1 Mouse
+	01a6  MX BOARD 2.0S FL RGB DE Keyboard
 	b090  Keyboard
 	b091  Mouse
+	c099  Stream Keyboard TKL
+	c110  KC 4500 Ergo Keyboard
 046b  American Megatrends, Inc.
 	0001  Keyboard
 	0101  PS/2 Keyboard, Mouse & Joystick Ports
@@ -2707,6 +2770,8 @@
 	0830  QuickClip
 	0836  B525 HD Webcam
 	0837  BCC950 ConferenceCam
+	0838  BCC950 ConferenceCam audio
+	0839  BCC950 ConferenceCam integated hub
 	0840  QuickCam Express
 	0843  Webcam C930e
 	0845  ConferenceCam CC3000e Camera
@@ -2718,6 +2783,7 @@
 	0857  Logi Group Speakerphone
 	085c  C922 Pro Stream Webcam
 	085e  BRIO Ultra HD Webcam
+	086b  BRIO 4K Stream Edition
 	0870  QuickCam Express
 	0882  Logi Group Speakerphone
 	0890  QuickCam Traveler
@@ -2829,10 +2895,12 @@
 	0a44  Headset H390
 	0a45  960 Headset
 	0a4d  G430 Surround Sound Gaming Headset
+	0a4f  MINI BOOM
 	0a5b  G933 Wireless Headset Dongle
 	0a5d  G933 Headset Battery Charger
 	0a66  [G533 Wireless Headset Dongle]
 	0a8f  H390 headset with microphone
+	0a90  Zone Receiver
 	0aaa  Logitech G PRO X Gaming Headset
 	0b02  C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode)
 	8801  Video Camera
@@ -2912,6 +2980,7 @@
 	c080  G303 Gaming Mouse
 	c083  G403 Prodigy Gaming Mouse
 	c084  G203 Gaming Mouse
+	c088  G Pro Wireless gaming mouse (wired mode)
 	c08b  G502 SE HERO Gaming Mouse
 	c092  G102/G203 LIGHTSYNC Gaming Mouse
 	c101  UltraX Media Remote
@@ -3062,9 +3131,11 @@
 	c532  Unifying Receiver
 	c534  Unifying Receiver
 	c537  Cordless Mouse Receiver
-	c539  Cordless Mouse Receiver
+	c539  Lightspeed Receiver
 	c53a  PowerPlay Wireless Charging System
 	c53d  G631 Keyboard
+	c542  M185 compact wireless mouse
+	c548  Logi Bolt Receiver
 	c603  3Dconnexion Spacemouse Plus XT
 	c605  3Dconnexion CADman
 	c606  3Dconnexion Spacemouse Classic
@@ -3363,10 +3434,12 @@
 	aa05  DA45
 	ac01  Savi 7xx
 	ad01  GameCom 777 5.1 Headset
+	af00  DA70
 	af01  DA80
 	c008  Audio 655 DSP
 	c00e  Blackwire C310 headset
 	c03b  HD1
+	c053  Blackwire C5220 headset (remote control and 3.5mm audio adapter)
 	ca01  Calisto 800 Series
 	da60  DA60
 0480  Toshiba America Inc
@@ -3412,6 +3485,12 @@
 	069b  ECOSYS M2635dn
 	06b4  ECOSYS M5526cdw
 0483  STMicroelectronics
+	0102  Remote NDIS Network device with Android debug (ADB)
+	0103  Remote NDIS Network device
+	0104  MTP device with Android debug (ADB)
+	0105  MTP device
+	0106  PTP device with Android debug (ADB)
+	0107  PTP device
 	0137  BeWAN ADSL USB ST (blue or green)
 	0138  Unicorn II (ST70138B + MTC-20174TQ chipset)
 	0adb  Android Debug Bridge (ADB) device
@@ -3451,6 +3530,7 @@
 	91d1  Sensor Hub
 	a171  ThermaData WiFi
 	a2e0  BMeasure instrument
+	a43f  inbed.io - Unified Controller (Gen 2)
 	df11  STM Device in DFU Mode
 	ff10  Swann ST56 Modem
 0484  Specialix
@@ -3475,6 +3555,9 @@
 	e042  Broadcom BCM20702 Bluetooth
 	e04d  Atheros AR3012 Bluetooth
 	e055  BCM43142A0 broadcom bluetooth
+	e07a  Broadcom BCM20702A1 Bluetooth
+	e0c8  MediaTek MT7921 Bluetooth
+	e0cd  MediaTek Bluetooth Adapter
 048a  S-MOS Systems, Inc.
 048c  Alps Electric Ireland, Ltd
 048d  Integrated Technology Express, Inc.
@@ -3483,6 +3566,8 @@
 	1234  Chipsbank CBM2199 Flash Drive
 	1336  SD/MMC Cardreader
 	1345  Multi Cardreader
+	5702  RGB LED Controller
+	6008  8291 RGB keyboard backlight controller
 	8297  IT8297 RGB LED Controller
 	9006  IT9135 BDA Afatech DVB-T HDTV Dongle
 	9009  Zolid HD DVD Maker
@@ -3691,6 +3776,7 @@
 	0180  Hub Type P
 	0181  HID Monitor Controls
 04a7  Visioneer
+	0063  Visioneer DocuMate 152i
 	0100  StrobePro
 	0101  Strobe Pro Scanner (1.01)
 	0102  StrobePro Scanner
@@ -4429,6 +4515,7 @@
 	32d4  Powershot ELPH 185 / IXUS 185 / IXY 200
 	32d5  PowerShot SX430 IS
 	32db  SELPHY CP1300
+	3302  SELPHY CP1500
 04aa  DaeWoo Telecom, Ltd
 04ab  Chromatic Research
 04ac  Micro Audiometrics Corp.
@@ -4508,6 +4595,7 @@
 	0429  D5100
 	042a  D800 (ptp)
 	0430  D7100
+	0434  D610
 	0436  D810
 	043f  D5600
 	0f03  PD-10 Wireless Printer Adapter
@@ -4524,6 +4612,7 @@
 	301a  2-port low-power hub
 	301b  SK-8815 Keyboard
 	301c  Enhanced Performance Keyboard
+	301e  Keyboard with UltraNav (SK-8845RC)
 	3020  Enhanced Performance Keyboard
 	3025  NetVista Full Width Keyboard
 	3100  NetVista Mouse
@@ -4797,6 +4886,7 @@
 	0893  EP-774A
 	0e03  Thermal Receipt Printer [TM-T20]
 	1114  XP-440 [Expression Home Small-in-One Printer]
+	1115  ES-0133 [Expression Home XP-342]
 	1129  ET-4750 [WorkForce ET-4750 EcoTank All-in-One]
 	1168  Workforce WF-7820/7840 Series
 04b9  Rainbow Technologies, Inc.
@@ -4937,6 +5027,7 @@
 	004b  Keyboard
 	004f  SK-9020 keyboard
 	008a  Acer Wired Mouse Model SM-9023
+	00f9  Multimedia Keyboard
 	1766  HID Monitor Controls
 	2004  Bluetooth 4.0 [Broadcom BCM20702A0]
 	2006  Broadcom BCM43142A0 Bluetooth Device
@@ -4951,6 +5042,7 @@
 	7025  HP HD Webcam
 	7046  TOSHIBA Web Camera - HD
 	7054  HP HD Webcam
+	705a  HD Webcam (960×540)
 	9304  Hub
 	f01c  TT1280DA DVB-T TV Tuner
 04cb  Fuji Photo Film Co., Ltd
@@ -5086,6 +5178,8 @@
 04d4  LSI Logic, Inc.
 04d5  Forte Technologies, Inc.
 04d6  Mentor Graphics
+	e301  Bio-Key TouchLock XL All Weather Keyless Bio-Lock with Fingerprint Recognition
+	e302  ZC3202 [4GB Green Book Digital Quran Reading Pen For Home Teaching Quran]
 04d7  Oki Semiconductor
 	1be4  Bluetooth Device
 04d8  Microchip Technology, Inc.
@@ -5096,6 +5190,7 @@
 	0032  PICkit1
 	0033  PICkit2
 	0036  PICkit Serial Analyzer
+	00dd  MCP2221(a) UART/I2C Bridge
 	00e0  PIC32 Starter Board
 	04cd  28Cxxx EEPROM Programmer
 	0a04  AGP LIN Serial Analyzer
@@ -5111,6 +5206,9 @@
 	9015  ICD 4 In-Circuit Debugger
 	c001  PicoLCD 20x4
 	e11c  TL866CS EEPROM Programmer [MiniPRO]
+	e72e  YuanCon
+	e7ee  travisgeis.com Bike Light
+	ec72  Joystick with Rotary Switch Creative Electronics Ltd
 	ed16  BeamiRC 2.0 CNC remote controller analoge
 	edb4  micro PLC (ATSAMD51G19A) [Black Brix ECU II]
 	edb5  ATMEGA32U4 [Black Brix ECU]
@@ -5136,6 +5234,8 @@
 	0006  Wired Keyboard (78/79 key) [RPI Wired Keyboard 5]
 	0022  Portable Keyboard
 	0129  Keyboard [KBPV8000]
+	0169  Keyboard
+	0198  Keyboard
 	0348  Keyboard
 	0407  Keyboard [TEX Shinobi]
 	048e  Optical Mouse
@@ -5559,7 +5659,7 @@
 	685c  GT-I9250 Phone [Galaxy Nexus] (Mass storage mode)
 	685d  GT-I9100 Phone [Galaxy S II] (Download mode)
 	685e  GT-I9100 / GT-C3350 Phones (USB Debugging mode)
-	6860  Galaxy A5 (MTP)
+	6860  Galaxy series, misc. (MTP mode)
 	6863  Galaxy series, misc. (tethering mode)
 	6864  GT-I9070 (network tethering, USB debugging enabled)
 	6865  Galaxy (PTP mode)
@@ -5717,6 +5817,8 @@
 	b5db  HP Webcam
 	b604  Integrated Camera (1280x720(a)30)
 	b681  ThinkPad T490 Webcam
+	b71a  Integrated IR Camera
+	b76b  SunplusIT Inc [HP HD Camera]
 04f3  Elan Microelectronics Corp.
 	000a  Touchscreen
 	0103  ActiveJet K-2024 Multimedia Keyboard
@@ -5734,6 +5836,7 @@
 	0381  Touchscreen
 	04a0  Dream Cheeky Stress/Panic Button
 	0c28  fingerprint sensor [FeinTech FPS00200]
+	0c3d  Elan:Fingerprint
 	2234  Touchscreen
 04f4  Harting Elektronik, Inc.
 04f5  Fujitsu-ICL Systems, Inc.
@@ -5998,6 +6101,7 @@
 	0240  MFC-J950DN
 	0245  MFC-9560CDW
 	0248  DCP-7055 scanner/printer
+	024a  DCP-7065DN
 	024e  MFC-7460DN
 	0253  DCP-J125
 	0254  DCP-J315W
@@ -6274,6 +6378,7 @@
 	2043  QL-710W Label Printer
 	2044  QL-720NW Label Printer
 	204d  QL-720NW Label Printer (mass storage mode)
+	2060  PT-E550W P-touch Label Printer
 	2061  PT-P700 P-touch Label Printer
 	2064  PT-P700 P-touch Label Printer RemovableDisk
 	2074  PT-D600 P-touch Label Printer
@@ -6597,6 +6702,7 @@
 0535  LIH TZU Electric Co., Ltd
 0536  Hand Held Products (Welch Allyn, Inc.)
 	01a0  PDT
+	01ca  IT4800 Area Imager
 0537  Inventec Corp.
 0538  Caldera International, Inc. (SCO)
 0539  Shyh Shiun Terminals Co., Ltd
@@ -6870,7 +6976,9 @@
 	0485  MHS-PM5 HD camcorder
 	04cb  WALKMAN NWZ-E354
 	0541  DSC-HX100V [Cybershot Digital Still Camera]
+	0568  DSC-H100 in Mass Storage mode
 	05c4  DualShock 4 [CUH-ZCT1x]
+	0643  DSC-H100 in PTP/MTP mode
 	0689  Walkman NWZ-B173F
 	06bb  WALKMAN NWZ-F805
 	06c3  RC-S380
@@ -6884,7 +6992,9 @@
 	088c  Portable Headphone Amplifier
 	08b7  ILCE-6000 (aka Alpha-6000) in MTP mode
 	094e  ILCE-6000 (aka Alpha-6000) in PC Remote mode
+	098d  Walkman NWZ-B183F
 	0994  ILCE-6000 (aka Alpha-6000) in charging mode
+	09c2  D33021 Storage
 	09cc  DualShock 4 [CUH-ZCT2x]
 	0ba0  Dualshock4 Wireless Adaptor
 	0bb5  Headset MDR-1000X
@@ -7255,8 +7365,12 @@
 	039d  DTH-W1320 [MobileStudio Pro 16] internal hub
 	03aa  DTH-W1620 [MobileStudio Pro 16] tablet
 	03ac  DTH-W1620 [MobileStudio Pro 16] touchscreen
+	03b2  DTH167 [Cintiq Pro 16] tablet
+	03b3  DTH167 [Cintiq Pro 16] touchscreen
 	03c5  CTL-4100WL [Intuos BT (S)]
 	03c7  CTL-6100WL [Intuos BT (M)]
+	03dc  PTH-460 [Intuos Pro (S)] tablet
+	03dd  PTH-460 [Intuos Pro BT (S)] tablet
 	0400  PenPartner 4x5
 	4001  TPC4001
 	4004  TPC4004
@@ -7430,6 +7544,7 @@
 	1300  SoftK56 Data Fax Voice CARP
 	1301  Modem Enumerator
 	1328  TrendNet TFM-561 modem
+	1340  CX93010 ACF Modem
 	1804  HP Dock Audio
 	2000  SoftGate 802.11 Adapter
 	2002  SoftGate 802.11 Adapter
@@ -7558,9 +7673,10 @@
 057e  Nintendo Co., Ltd
 	0300  USB-EXI Adapter (GCP-2000)
 	0304  RVT-H Reader
-	0305  Broadcom BCM2045A Bluetooth Radio [Nintendo Wii]
+	0305  Broadcom BCM2045A Bluetooth Radio [Nintendo Wii/Wii U]
 	0306  Wii Remote Controller RVL-003
 	0337  Wii U GameCube Controller Adapter
+	0341  DRH GamePad Host [Nintendo Wii U]
 	2000  Switch
 	2006  Joy-Con L
 	2007  Joy-Con R
@@ -7810,6 +7926,7 @@
 	0304  U2SCX-LVD (SCSI Converter)
 	b000  REX-USB60
 	b020  REX-USB60F
+	b022  RTX-USB60F
 0585  FlashPoint Technology, Inc.
 	0001  Digital Camera
 	0002  Digital Camera
@@ -8043,6 +8160,7 @@
 	106b  Rugged Mini HDD
 	106d  Porsche Design Mobile Drive
 	106e  Porsche Design Desktop Drive
+	1093  Rugged
 	1094  Rugged THB
 	1095  Rugged
 	a601  HardDrive
@@ -8075,6 +8193,7 @@
 	0003  CVA124E Cable Voice Adapter (WDM)
 	0004  CVA122E Cable Voice Adapter (WDM)
 	0008  STA1520 Tuning Adapter
+	0009  Console
 	0a00  Integrated Management Controller Hub
 	0a01  Virtual Keyboard/Mouse
 	0a02  Virtual Mass Storage
@@ -8085,7 +8204,7 @@
 	4002  Bluetooth Headset Series 2
 	4003  Bluetooth Headset Series 2 in DFU mode
 	400d  SoundLink Color II speaker in DFU mode
-	40fe  SoundLink Color II speaker
+	40fe  SoundLink Color II / Flex
 	bc50  SoundLink Wireless Mobile speaker
 	bc51  SoundLink Wireless Mobile speaker in DFU mode
 05a8  Spacetec IMC Corp.
@@ -8202,6 +8321,8 @@
 	1003  Hub in Pro Keyboard [Mitsumi, A1048]
 	1006  Hub in Aluminum Keyboard
 	1008  Mini DisplayPort to Dual-Link DVI Adapter
+	1009  iBus Hub
+	100c  Nova Hub
 	1101  Speakers
 	1105  Audio in LED Cinema Display
 	1107  Thunderbolt Display Audio
@@ -8245,18 +8366,24 @@
 	1299  iPod Touch 3.Gen
 	129a  iPad
 	129c  iPhone 4(CDMA)
+	129d  iPhone
 	129e  iPod Touch 4.Gen
 	129f  iPad 2
 	12a0  iPhone 4S
+	12a1  iPhone
 	12a2  iPad 2 (3G; 64GB)
 	12a3  iPad 2 (CDMA)
 	12a4  iPad 3 (wifi)
 	12a5  iPad 3 (CDMA)
 	12a6  iPad 3 (3G, 16 GB)
-	12a8  iPhone 5/5C/5S/6/SE
+	12a7  TV Device
+	12a8  iPhone 5/5C/5S/6/SE/7/8/X
 	12a9  iPad 2
 	12aa  iPod Touch 5.Gen [A1421]
 	12ab  iPad 4/Mini1
+	12ac  iPhone
+	12af  Watch
+	12b0  HomePod
 	1300  iPod Shuffle
 	1301  iPod Shuffle 2.Gen
 	1302  iPod Shuffle 3.Gen
@@ -8267,7 +8394,12 @@
 	1398  Smart Battery Case
 	1401  Modem
 	1402  Ethernet Adapter [A1277]
+	1460  Digital AV Multiport Adapter
+	1461  VGA Multiport Adapter
+	1463  HDMI Adapter
 	1500  SuperDrive [A1379]
+	1624  Nova
+	1625  iBus
 	8005  OHCI Root Hub Simulation
 	8006  EHCI Root Hub Simulation
 	8007  XHCI Root Hub USB 2.0 Simulation
@@ -8295,6 +8427,7 @@
 	8286  Bluetooth Host Controller
 	8289  Bluetooth Host Controller
 	828c  Bluetooth Host Controller
+	828d  Bluetooth Host Controller
 	8290  Bluetooth Host Controller
 	8300  Built-in iSight (no firmware loaded)
 	8403  Internal Memory Card Reader
@@ -8434,6 +8567,7 @@
 	03b1  Webcam
 	03bc  HP Wide Vision HD Integrated Webcam
 	03cb  HP Wide Vision HD Integrated Webcam
+	03d2  HP TrueVision HD Camera
 	0403  Webcam
 	041b  HP 2.0MP High Definition Webcam
 05c9  Semtech Corp.
@@ -8724,6 +8858,7 @@
 	b018  Multi-Card Reader
 	b047  SDHC Reader [RW047-7000]
 	b051  microSD RDR UHS-I Card Reader [LRWM03U-7000]
+	b054  Dual-Slot Reader [LRW400U]
 	ba02  Workflow CFR1
 	ba0a  Workflow DD512
 	c753  JumpDrive TwistTurn
@@ -8930,7 +9065,7 @@
 	00f2  Keyboard (Labtec Ultra Flat Keyboard)
 	1002  Mobius actioncam (webcam mode)
 	6871  Mouse
-	8611  NTK96550 based camera
+	8611  NTK96550-based camera (mass storage mode)
 0604  Jean Co., Ltd
 0605  Anchor C&C Co., Ltd
 0606  Royal Information Electronics Co., Ltd
@@ -14964,6 +15099,10 @@
 0e23  Liou Yuane Enterprise Co., Ltd
 0e25  VinChip Systems, Inc.
 0e26  J-Phone East Co., Ltd
+0e2e  Brady Worldwide, Inc.
+	000b  BMP 51
+	000c  BMP 61
+	000d  BMP 41
 0e30  HeartMath LLC
 0e34  Micro Computer Control Corp.
 0e35  3Pea Technologies, Inc.
@@ -17291,7 +17430,7 @@
 	a001  Bandit Action Camera Batt-Stick
 1391  IdealTEK, Inc.
 	1000  URTC-1000
-1395  Sennheiser Communications
+1395  DSEA A/S
 	0025  Headset [PC 8]
 	0026  SC230
 	0027  SC260
@@ -17333,7 +17472,7 @@
 	0065  MB 660
 	0066  SP 20 D UC
 	0067  SP 20 D MS
-	006b  SC5x5 MS
+	006b  SC6x5
 	0072  Headset
 	3556  USB Headset
 1397  BEHRINGER International GmbH
@@ -21548,6 +21687,12 @@
 	061d  PCTV Deluxe (NTSC) Device
 	061e  PCTV Deluxe (PAL) Device
 	2304  1689
+2309  TimeLink Technology Co., Ltd
+	1001  Touch Device(hid)
+	1005  Touch Device
+	1006  Touch Device(2)
+	1007  MulTouch Device(hid)
+	1009  Touch Device(hid)
 230d  Teracom
 	0103  Huwaii 3g wireless modem
 2314  INQ Mobile
@@ -22323,13 +22468,15 @@
 	5440  TimVideos' HDMI2USB Opsis (FX2) - Unconfigured device
 	5441  TimVideos' HDMI2USB Opsis (FX2) - Firmware load/upgrade
 	5442  TimVideos' HDMI2USB Opsis (FX2) - HDMI/DVI Capture Device
-2a1d  Oxford Nanopore Technologies, Ltd
+2a1d  Oxford Nanopore Technologies plc
 	0000  MinION
 	0001  MinION
 	0010  VolTRAX
 	0011  VolTRAX
 	0020  GridION
 	0021  GridION
+	0120  GridION Mk1 Bay
+	0121  GridION Mk1 Bay
 2a37  RTD Embedded Technologies, Inc.
 	5110  UPS35110/UPS25110
 2a39  RME
diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index c243ce1a7..c8a79999d 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -20,6 +20,7 @@
 
 . /etc/sysconfig/rc
 . $rc_functions
+. /etc/init.d/networking/functions.network
 
 eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
 
@@ -33,39 +34,42 @@ dhcpcd_up()
 		exit 0;
 	fi
 
-	# Only if RED_TYPE=DHCP update /var/ipfire/red
-	if [ "$RED_TYPE" == "DHCP" ]; then
-		# Check if we have to restart the services at update
-		[ ! -e "/var/ipfire/red/active" ] && update=1;
-		if [ "$old_domain_name_service" != "$new_domain_name_service" ]; then
-			update=1;
-		fi
-		if [ "$old_ip_address" != "$new_ip_address" ]; then
-			update=1;
-		fi
-		if [ "$old_routers" != "$new_routers" ]; then
-			update=1;
-		fi
+	# Check if we have to restart the services at update
+	[ ! -e "/var/ipfire/red/active" ] && update=1;
+	if [ "$old_domain_name_service" != "$new_domain_name_service" ]; then
+		update=1;
+	fi
+	if [ "$old_ip_address" != "$new_ip_address" ]; then
+		update=1;
+	fi
+	if [ "$old_routers" != "$new_routers" ]; then
+		update=1;
+	fi
 
-		# Get DNS from dhcp
-		/etc/rc.d/helper/getdnsfromdhcpc.pl 1 > /var/run/dns1
-		/etc/rc.d/helper/getdnsfromdhcpc.pl 2 > /var/run/dns2
+	# Get DNS from dhcp
+	/etc/rc.d/helper/getdnsfromdhcpc.pl 1 > /var/run/dns1
+	/etc/rc.d/helper/getdnsfromdhcpc.pl 2 > /var/run/dns2
 
-		#Get IP Address
-		echo -n "$new_ip_address"  > /var/ipfire/red/local-ipaddress
+	#Get IP Address
+	echo -n "$new_ip_address"  > /var/ipfire/red/local-ipaddress
 
-		#Get default gateway
+	# Get default gateway
+	if [ -n "${new_routers}" ]; then
 		grep -v -E "\<gateway\>" /etc/hosts > /tmp/hosts
 		echo "$new_routers	gateway"  >> /tmp/hosts
 		mv /tmp/hosts /etc/hosts
-
 	fi
+
 	if [ $update ]; then
-		[ -e "/var/ipfire/red/active" ] || touch /var/ipfire/red/active
-		echo -n "$new_routers" > /var/ipfire/red/remote-ipaddress
+		# Consider RED being active
+		touch /var/ipfire/red/active
+
+		if [ -n "${new_routers}" ]; then
+			echo -n "${new_routers}" > /var/ipfire/red/remote-ipaddress
+		fi
+
 		logger -p local0.info -t dhcpcd.exe[$$] "$interface has been (re)configured with IP=$new_ip_address"
 		run_subdir ${rc_base}/init.d/networking/red.up/
-		touch /var/ipfire/red/active
 	fi
 }
 
@@ -77,17 +81,31 @@ dhcpcd_down()
 	# Remove DNS servers
 	rm -f /var/run/dns1 /var/run/dns2
 
-	# Only if RED_TYPE=DHCP update /var/ipfire/red
-	if [ "$RED_TYPE" == "DHCP" ]; then
-		rm -f /var/ipfire/red/active
-		if [ ! $reason == "PREINIT" ]; then
-			logger -p local0.info -t dhcpcd.exe[$$] "${interface} has been brought down ($reason)"
-			run_subdir ${rc_base}/init.d/networking/red.down/
-		fi
+	# Consider RED to be no longer active
+	rm -f /var/ipfire/red/active
+
+	if [ ! $reason == "PREINIT" ]; then
+		logger -p local0.info -t dhcpcd.exe[$$] "${interface} has been brought down ($reason)"
+		run_subdir ${rc_base}/init.d/networking/red.down/
 	fi
+
+	# Remove any configured IP address from the device
+	ip addr flush dev "${interface}" &>/dev/null
+
+	return 0
 }
 
-case "$reason" in
-BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC)	dhcpcd_up;;
-PREINIT|EXPIRE|FAIL|IPV4LL|NAK|RELEASE|STOP)		dhcpcd_down;;
+case "${reason}" in
+	BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC)
+		dhcpcd_up
+		;;
+	PREINIT|EXPIRE|FAIL|IPV4LL|NAK|RELEASE|STOP)
+		dhcpcd_down
+		;;
+	# Ignored events where we do not need to do anything
+	STOPPED|CARRIER|NOCARRIER)
+		;;
+	*)
+		logger -p "local0.info" -t "dhcpcd.exe[$$]" "Unhandled DHCP event: ${reason}"
+		;;
 esac
diff --git a/src/initscripts/networking/functions.network b/src/initscripts/networking/functions.network
index eae4a7b7c..36541eb13 100644
--- a/src/initscripts/networking/functions.network
+++ b/src/initscripts/networking/functions.network
@@ -59,8 +59,9 @@ dhcpcd_is_running() {
 
 dhcpcd_start() {
 	# This function will start a dhcpcd on a speciefied device.
-
 	local device="$1"
+	shift
+
 	local dhcp_start=()
 
 	boot_mesg -n "Starting dhcpcd on the ${device} interface..."
@@ -84,6 +85,9 @@ dhcpcd_start() {
 		dhcp_start+=( "--static" "mtu=${RED_DHCP_FORCE_MTU}" )
 	fi
 
+	# Append any further command line options
+	dhcp_start+=( $@ )
+
 	# Start dhcpcd.
 	/sbin/dhcpcd "${dhcp_start[@]}" ${device} >/dev/null 2>&1
 	ret="$?"
@@ -165,3 +169,115 @@ dhcpcd_stop() {
 		echo_failure
 	fi
 }
+
+# QMI stuff
+
+qmi_find_device() {
+	local intf="${1}"
+	local _intf
+
+	local path
+	for path in /dev/cdc-*; do
+		if [ -c "${path}" ]; then
+			_intf="$(qmi_find_interface "${path}")"
+
+			# Check if the interface matches
+			if [ "${intf}" = "${_intf}" ]; then
+				echo "${path}"
+				return 0
+			fi
+		fi
+	done
+
+	# Nothing found
+	return 1
+}
+
+qmi_find_interface() {
+	local device="${1}"
+
+	qmicli --device="${device}" --device-open-proxy --get-wwan-iface
+}
+
+qmi_enable_rawip_mode() {
+	local intf="${1}"
+
+	# Shut down the device first
+	ip link set "${intf}" down &>/dev/null
+
+	echo "Y" > "/sys/class/net/${intf}/qmi/raw_ip"
+}
+
+qmi_configure_apn() {
+	local device="${1}"
+
+	# APN settings
+	local apn="${2}"
+	local auth="${3}"
+	local username="${4}"
+	local password="${5}"
+
+	local args=(
+		# We only support IPv4 right now
+		"ip-type=4"
+	)
+
+	# Set APN
+	if [ -n "${apn}" ]; then
+		args+=( "apn=${apn}" )
+	fi
+
+	# Set auth
+	case "${auth}" in
+		PAP|CHAP)
+			args+=( "auth=${auth}" )
+			;;
+	esac
+
+	# Set username
+	if [ -n "${username}" ]; then
+		args+=( "username=${username}" )
+	fi
+
+	# Set password
+	if [ -n "${password}" ]; then
+		args+=( "password=${password}" )
+	fi
+
+	local _args
+
+	local arg
+	for arg in ${args[@]}; do
+		if [ -n "${_args}" ]; then
+			_args="${_args},"
+		fi
+		_args="${_args}${arg}"
+	done
+
+	qmicli --device="${device}" --device-open-proxy \
+		--wds-start-network="${_args}" \
+		--client-no-release-cid &>/dev/null
+}
+
+qmi_reset() {
+	local device="${1}"
+
+	qmicli --device="${device}" --device-open-proxy \
+		--wds-reset &>/dev/null
+}
+
+# Assigns a "static" MAC address
+qmi_assign_address() {
+	local intf="${1}"
+
+	# Find the device
+	local device="$(qmi_find_device "${intf}")"
+
+	local address
+
+	# Generate a "random" MAC address using the device number
+	printf -v address "02:ff:ff:ff:ff:%02x" "${device:12}"
+
+	# Change the MAC address
+	ip link set "${intf}" address "${address}"
+}
diff --git a/src/initscripts/networking/red b/src/initscripts/networking/red
index fc10e077a..16d48f3ac 100644
--- a/src/initscripts/networking/red
+++ b/src/initscripts/networking/red
@@ -210,6 +210,30 @@ case "${1}" in
 				if [ "$TYPE" == "pptpatm" ]; then
 					TYPE="pptp"
 				fi
+
+			# QMI
+			elif [ "$TYPE" = "qmi" ]; then
+				DEVICE="$(qmi_find_device "${RED_DEV}")"
+
+				boot_mesg "Bringing up QMI on ${RED_DEV} (${DEVICE})..."
+
+				# Enable RAW-IP mode
+				qmi_enable_rawip_mode "${RED_DEV}"
+
+				# Configure APN
+				qmi_configure_apn "${DEVICE}" "${APN}" "${AUTH}" "${USERNAME}" "${PASSWORD}"
+
+				# Set up the interface
+				ip link set "${RED_DEV}" up &>/dev/null
+
+				# Write red device name to the corresponding file.
+				echo -n "${RED_DEV}" > /var/ipfire/red/iface
+
+				# Start the DHCP client
+				dhcpcd_start "${RED_DEV}" --dhcp
+
+				# Done
+				exit 0
 			fi
 
 			if [ "$TYPE" == "vdsl" ]; then
@@ -477,6 +501,21 @@ case "${1}" in
 			run_subdir ${rc_base}/init.d/networking/red.down/
 
 		elif [ "$TYPE" == "PPPOE" ]; then
+			eval $(/usr/local/bin/readhash /var/ipfire/ppp/settings)
+
+			if [ "${TYPE}" = "qmi" ]; then
+				boot_mesg "Bringing down the QMI interface ${RED_DEV}..."
+				DEVICE="$(qmi_find_device "${RED_DEV}")"
+
+				# Stop the DHCP client on RED
+				dhcpcd_stop "${RED_DEV}"
+
+				# Reset any QMI settings
+				qmi_reset "${DEVICE}"
+
+				exit 0
+			fi
+
 			boot_mesg "Bringing down the PPP interface ..."
 			rm -f /var/ipfire/red/keepconnected
 			killall -w -s TERM /usr/sbin/pppd 2>/dev/null
diff --git a/src/paks/avahi/install.sh b/src/paks/avahi/install.sh
index 9ec3050a1..63627a4db 100644
--- a/src/paks/avahi/install.sh
+++ b/src/paks/avahi/install.sh
@@ -28,6 +28,7 @@ getent group avahi >/dev/null || groupadd -r avahi
 getent passwd avahi >/dev/null || \
       useradd -r -g avahi -d /var/run/avahi-daemon -s /sbin/nologin \
       -c "Avahi mDNS daemon" avahi
+getent group netdev > /dev/null || groupadd -r netdev
 
 extract_files
 ln -svf  ../init.d/avahi /etc/rc.d/rc3.d/S65avahi
diff --git a/src/patches/libarchive-3.6-fix-glibc-2.36-headers.patch b/src/patches/libarchive-3.6-fix-glibc-2.36-headers.patch
deleted file mode 100644
index 7c88ca1b1..000000000
--- a/src/patches/libarchive-3.6-fix-glibc-2.36-headers.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From a2f68263a1da5ad227bcb9cd8fa91b93c8b6c99f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem(a)gmail.com>
-Date: Mon, 25 Jul 2022 10:56:53 -0700
-Subject: [PATCH] libarchive: Do not include sys/mount.h when linux/fs.h is
- present
-
-These headers are in conflict and only one is needed by
-archive_read_disk_posix.c therefore include linux/fs.h if it exists
-otherwise include sys/mount.h
-
-It also helps compiling with glibc 2.36
-where sys/mount.h conflicts with linux/mount.h see [1]
-
-[1] https://sourceware.org/glibc/wiki/Release/2.36
----
- libarchive/archive_read_disk_posix.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/libarchive/archive_read_disk_posix.c b/libarchive/archive_read_disk_posix.c
-index 2b39e672b..a96008db7 100644
---- a/libarchive/archive_read_disk_posix.c
-+++ b/libarchive/archive_read_disk_posix.c
-@@ -34,9 +34,6 @@ __FBSDID("$FreeBSD$");
- #ifdef HAVE_SYS_PARAM_H
- #include <sys/param.h>
- #endif
--#ifdef HAVE_SYS_MOUNT_H
--#include <sys/mount.h>
--#endif
- #ifdef HAVE_SYS_STAT_H
- #include <sys/stat.h>
- #endif
-@@ -54,6 +51,8 @@ __FBSDID("$FreeBSD$");
- #endif
- #ifdef HAVE_LINUX_FS_H
- #include <linux/fs.h>
-+#elif HAVE_SYS_MOUNT_H
-+#include <sys/mount.h>
- #endif
- /*
-  * Some Linux distributions have both linux/ext2_fs.h and ext2fs/ext2_fs.h.
diff --git a/src/patches/mpfr-4.1.0-cumulative-patches-1-to-13.patch b/src/patches/mpfr-4.1.0-cumulative-patches-1-to-13.patch
deleted file mode 100644
index 3ecb16f1b..000000000
--- a/src/patches/mpfr-4.1.0-cumulative-patches-1-to-13.patch
+++ /dev/null
@@ -1,2976 +0,0 @@
-diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
---- mpfr-4.1.0-a/PATCHES	2021-02-11 12:40:40.079363480 +0000
-+++ mpfr-4.1.0-b/PATCHES	2021-02-11 12:40:40.119363040 +0000
-@@ -0,0 +1 @@
-+decimal128-conv
-diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
---- mpfr-4.1.0-a/VERSION	2020-07-10 11:52:33.000000000 +0000
-+++ mpfr-4.1.0-b/VERSION	2021-02-11 12:40:40.119363040 +0000
-@@ -1 +1 @@
--4.1.0
-+4.1.0-p1
-diff -Naurd mpfr-4.1.0-a/src/get_d128.c mpfr-4.1.0-b/src/get_d128.c
---- mpfr-4.1.0-a/src/get_d128.c	2020-04-08 22:39:35.000000000 +0000
-+++ mpfr-4.1.0-b/src/get_d128.c	2021-02-11 12:40:40.103363216 +0000
-@@ -40,22 +40,21 @@
- static _Decimal128
- get_decimal128_nan (void)
- {
--  return (_Decimal128) MPFR_DBL_NAN;
-+  return 0.0dl / 0.0dl;
- }
- 
- /* construct the decimal128 Inf with given sign */
- static _Decimal128
- get_decimal128_inf (int negative)
- {
--  return (_Decimal128) (negative ? MPFR_DBL_INFM : MPFR_DBL_INFP);
-+  return negative ? - 1.0dl / 0.0dl : 1.0dl / 0.0dl;
- }
- 
- /* construct the decimal128 zero with given sign */
- static _Decimal128
- get_decimal128_zero (int negative)
- {
--  _Decimal128 zero = 0;
--  return (_Decimal128) (negative ? -zero : zero);
-+  return negative ? - 0.0dl : 0.0dl;
- }
- 
- /* construct the decimal128 smallest non-zero with given sign:
-diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
---- mpfr-4.1.0-a/src/mpfr.h	2020-07-10 11:52:33.000000000 +0000
-+++ mpfr-4.1.0-b/src/mpfr.h	2021-02-11 12:40:40.115363084 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 4
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "4.1.0"
-+#define MPFR_VERSION_STRING "4.1.0-p1"
- 
- /* User macros:
-    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
-diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
---- mpfr-4.1.0-a/src/version.c	2020-07-10 11:52:33.000000000 +0000
-+++ mpfr-4.1.0-b/src/version.c	2021-02-11 12:40:40.119363040 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "4.1.0";
-+  return "4.1.0-p1";
- }
-diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
---- mpfr-4.1.0-a/PATCHES	2021-02-11 12:43:51.761257868 +0000
-+++ mpfr-4.1.0-b/PATCHES	2021-02-11 12:43:51.801257430 +0000
-@@ -0,0 +1 @@
-+random_deviate
-diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
---- mpfr-4.1.0-a/VERSION	2021-02-11 12:40:40.119363040 +0000
-+++ mpfr-4.1.0-b/VERSION	2021-02-11 12:43:51.801257430 +0000
-@@ -1 +1 @@
--4.1.0-p1
-+4.1.0-p2
-diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
---- mpfr-4.1.0-a/src/mpfr.h	2021-02-11 12:40:40.115363084 +0000
-+++ mpfr-4.1.0-b/src/mpfr.h	2021-02-11 12:43:51.801257430 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 4
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "4.1.0-p1"
-+#define MPFR_VERSION_STRING "4.1.0-p2"
- 
- /* User macros:
-    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
-diff -Naurd mpfr-4.1.0-a/src/random_deviate.c mpfr-4.1.0-b/src/random_deviate.c
---- mpfr-4.1.0-a/src/random_deviate.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/random_deviate.c	2021-02-11 12:43:51.789257562 +0000
-@@ -289,6 +289,7 @@
-   mpfr_random_size_t p = mpfr_get_prec (z); /* Number of bits in result */
-   mpz_t t;
-   int inex;
-+  mpfr_exp_t negxe;
- 
-   if (n == 0)
-     {
-@@ -370,14 +371,22 @@
-   mpz_setbit (t, 0);     /* Set the trailing bit so result is always inexact */
-   if (neg)
-     mpz_neg (t, t);
--  /* Is -x->e representable as a mpfr_exp_t? */
--  MPFR_ASSERTN (x->e <= (mpfr_uexp_t)(-1) >> 1);
-+  /* Portable version of the negation of x->e, with a check of overflow. */
-+  if (MPFR_UNLIKELY (x->e > MPFR_EXP_MAX))
-+    {
-+      /* Overflow, except when x->e = MPFR_EXP_MAX + 1 = - MPFR_EXP_MIN. */
-+      MPFR_ASSERTN (MPFR_EXP_MIN + MPFR_EXP_MAX == -1 &&
-+                    x->e == (mpfr_random_size_t) MPFR_EXP_MAX + 1);
-+      negxe = MPFR_EXP_MIN;
-+    }
-+  else
-+    negxe = - (mpfr_exp_t) x->e;
-   /*
-    * Let mpfr_set_z_2exp do all the work of rounding to the requested
-    * precision, setting overflow/underflow flags, and returning the right
-    * inexact value.
-    */
--  inex = mpfr_set_z_2exp (z, t, -x->e, rnd);
-+  inex = mpfr_set_z_2exp (z, t, negxe, rnd);
-   mpz_clear (t);
-   return inex;
- }
-diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
---- mpfr-4.1.0-a/src/version.c	2021-02-11 12:40:40.119363040 +0000
-+++ mpfr-4.1.0-b/src/version.c	2021-02-11 12:43:51.801257430 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "4.1.0-p1";
-+  return "4.1.0-p2";
- }
-diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
---- mpfr-4.1.0-a/PATCHES	2021-02-11 12:46:49.075316772 +0000
-+++ mpfr-4.1.0-b/PATCHES	2021-02-11 12:46:49.115316335 +0000
-@@ -0,0 +1 @@
-+set_z_2exp-overflow
-diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
---- mpfr-4.1.0-a/VERSION	2021-02-11 12:43:51.801257430 +0000
-+++ mpfr-4.1.0-b/VERSION	2021-02-11 12:46:49.115316335 +0000
-@@ -1 +1 @@
--4.1.0-p2
-+4.1.0-p3
-diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
---- mpfr-4.1.0-a/src/mpfr.h	2021-02-11 12:43:51.801257430 +0000
-+++ mpfr-4.1.0-b/src/mpfr.h	2021-02-11 12:46:49.115316335 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 4
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "4.1.0-p2"
-+#define MPFR_VERSION_STRING "4.1.0-p3"
- 
- /* User macros:
-    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
-diff -Naurd mpfr-4.1.0-a/src/set_z_exp.c mpfr-4.1.0-b/src/set_z_exp.c
---- mpfr-4.1.0-a/src/set_z_exp.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/set_z_exp.c	2021-02-11 12:46:49.103316466 +0000
-@@ -28,10 +28,11 @@
- int
- mpfr_set_z_2exp (mpfr_ptr f, mpz_srcptr z, mpfr_exp_t e, mpfr_rnd_t rnd_mode)
- {
--  mp_size_t fn, zn, dif, en;
-+  mp_size_t fn, zn, dif;
-   int k, sign_z, inex;
-   mp_limb_t *fp, *zp;
--  mpfr_exp_t exp;
-+  mpfr_exp_t exp, nmax;
-+  mpfr_uexp_t uexp;
- 
-   sign_z = mpz_sgn (z);
-   if (MPFR_UNLIKELY (sign_z == 0)) /* ignore the exponent for 0 */
-@@ -43,10 +44,15 @@
-   MPFR_ASSERTD (sign_z == MPFR_SIGN_POS || sign_z == MPFR_SIGN_NEG);
- 
-   zn = ABSIZ(z); /* limb size of z */
--  /* compute en = floor(e/GMP_NUMB_BITS) */
--  en = (e >= 0) ? e / GMP_NUMB_BITS : (e + 1) / GMP_NUMB_BITS - 1;
-   MPFR_ASSERTD (zn >= 1);
--  if (MPFR_UNLIKELY (zn + en > MPFR_EMAX_MAX / GMP_NUMB_BITS + 1))
-+  nmax = MPFR_EMAX_MAX / GMP_NUMB_BITS + 1;
-+  /* Detect early overflow with zn + en > nmax,
-+     where en = floor(e / GMP_NUMB_BITS).
-+     This is checked without an integer overflow (even assuming some
-+     future version of GMP, where limitations may be removed). */
-+  if (MPFR_UNLIKELY (e >= 0 ?
-+                     zn > nmax - e / GMP_NUMB_BITS :
-+                     zn + (e + 1) / GMP_NUMB_BITS - 1 > nmax))
-     return mpfr_overflow (f, rnd_mode, sign_z);
-   /* because zn + en >= MPFR_EMAX_MAX / GMP_NUMB_BITS + 2
-      implies (zn + en) * GMP_NUMB_BITS >= MPFR_EMAX_MAX + GMP_NUMB_BITS + 1
-@@ -64,8 +70,21 @@
-      and exp = zn * GMP_NUMB_BITS + e - k
-              <= (zn + en) * GMP_NUMB_BITS - k + GMP_NUMB_BITS - 1
-              <= MPFR_EMAX_MAX + 2 * GMP_NUMB_BITS - 1 */
--  exp = (mpfr_prec_t) zn * GMP_NUMB_BITS + e - k;
-+  /* We need to compute exp = zn * GMP_NUMB_BITS + e - k with well-defined
-+     operations (no integer overflows / no implementation-defined results).
-+     The mathematical result of zn * GMP_NUMB_BITS may be larger than
-+     the largest value of mpfr_exp_t while exp could still be less than
-+     __gmpfr_emax. Thanks to early overflow detection, we can compute the
-+     result in modular arithmetic, using mpfr_uexp_t, and convert it to
-+     mpfr_exp_t. */
-+  uexp = (mpfr_uexp_t) zn * GMP_NUMB_BITS + (mpfr_uexp_t) e - k;
-+
-+  /* Convert to signed in a portable way (see doc/README.dev).
-+     On most platforms, this can be optimized to identity (no-op). */
-+  exp = uexp > MPFR_EXP_MAX ? -1 - (mpfr_exp_t) ~uexp : (mpfr_exp_t) uexp;
-+
-   /* The exponent will be exp or exp + 1 (due to rounding) */
-+
-   if (MPFR_UNLIKELY (exp > __gmpfr_emax))
-     return mpfr_overflow (f, rnd_mode, sign_z);
-   if (MPFR_UNLIKELY (exp + 1 < __gmpfr_emin))
-diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
---- mpfr-4.1.0-a/src/version.c	2021-02-11 12:43:51.801257430 +0000
-+++ mpfr-4.1.0-b/src/version.c	2021-02-11 12:46:49.115316335 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "4.1.0-p2";
-+  return "4.1.0-p3";
- }
-diff -Naurd mpfr-4.1.0-a/tests/tset_z_exp.c mpfr-4.1.0-b/tests/tset_z_exp.c
---- mpfr-4.1.0-a/tests/tset_z_exp.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tset_z_exp.c	2021-02-11 12:46:49.103316466 +0000
-@@ -97,49 +97,149 @@
-    mpfr_get_si is a rather indirect test of a low level routine.  */
- 
- static void
--check (long i, mpfr_rnd_t rnd)
-+check (long i, mpfr_rnd_t rnd, int reduced)
- {
--  mpfr_t f;
-+  mpfr_t f1, f2, f3;
-   mpz_t z;
--  mpfr_exp_t e;
-+  mpfr_exp_t e, old_emin, old_emax;
-   int inex;
-+  mpfr_flags_t flags;
-+
-+  old_emin = mpfr_get_emin ();
-+  old_emax = mpfr_get_emax ();
- 
-   /* using CHAR_BIT * sizeof(long) bits of precision ensures that
-      mpfr_set_z_2exp is exact below */
--  mpfr_init2 (f, CHAR_BIT * sizeof(long));
-+  mpfr_inits2 (CHAR_BIT * sizeof(long), f1, f2, f3, (mpfr_ptr) 0);
-   mpz_init (z);
-   mpz_set_ui (z, i);
-   /* the following loop ensures that no overflow occurs */
-   do
-     e = randexp ();
-   while (e > mpfr_get_emax () - CHAR_BIT * sizeof(long));
--  inex = mpfr_set_z_2exp (f, z, e, rnd);
--  if (inex != 0)
-+
-+  mpfr_clear_flags ();
-+  inex = mpfr_set_z_2exp (f1, z, e, rnd);
-+  flags = __gmpfr_flags;
-+
-+  if (inex != 0 || flags != 0 ||
-+      (mpfr_div_2si (f2, f1, e, rnd), mpfr_get_si (f2, MPFR_RNDZ) != i))
-     {
--      printf ("Error in mpfr_set_z_2exp for i=%ld, e=%ld,"
--              " wrong ternary value\n", i, (long) e);
--      printf ("expected 0, got %d\n", inex);
-+      printf ("Error in mpfr_set_z_2exp for i=%ld e=%" MPFR_EXP_FSPEC
-+              "d rnd_mode=%d\n", i, (mpfr_eexp_t) e, rnd);
-+      mpfr_set_si_2exp (f2, i, e, MPFR_RNDN);
-+      printf ("expected "); mpfr_dump (f2);
-+      printf ("with inex = %d and flags =", 0);
-+      flags_out (0);
-+      printf ("got      "); mpfr_dump (f1);
-+      printf ("with inex = %d and flags =", inex);
-+      flags_out (flags);
-       exit (1);
-     }
--  mpfr_div_2si (f, f, e, rnd);
--  if (mpfr_get_si (f, MPFR_RNDZ) != i)
-+
-+  if (reduced)
-     {
--      printf ("Error in mpfr_set_z_2exp for i=%ld e=", i);
--      if (e < LONG_MIN)
--        printf ("(<LONG_MIN)");
--      else if (e > LONG_MAX)
--        printf ("(>LONG_MAX)");
--      else
--        printf ("%ld", (long) e);
--      printf (" rnd_mode=%d\n", rnd);
--      printf ("expected %ld\n", i);
--      printf ("got      "); mpfr_dump (f);
--      exit (1);
-+      mpfr_exp_t ef, emin, emax;
-+      int inex2, inex3;
-+      mpfr_flags_t flags2, flags3;
-+
-+      ef = i == 0 ? 0 : mpfr_get_exp (f1);
-+      for (emin = ef - 2; emin <= ef + 2; emin++)
-+        for (emax = emin; emax <= ef + 2; emax++)
-+          {
-+            inex3 = mpfr_set (f3, f1, rnd);
-+            MPFR_ASSERTN (inex3 == 0);
-+            mpfr_set_emin (emin);
-+            mpfr_set_emax (emax);
-+            mpfr_clear_flags ();
-+            inex2 = mpfr_set_z_2exp (f2, z, e, rnd);
-+            flags2 = __gmpfr_flags;
-+            mpfr_clear_flags ();
-+            inex3 = mpfr_check_range (f3, 0, rnd);
-+            flags3 = __gmpfr_flags;
-+            if (!(mpfr_equal_p (f2, f3) &&
-+                  SAME_SIGN (inex2, inex3) &&
-+                  flags2 == flags3))
-+              {
-+                printf ("Error in mpfr_set_z_2exp for i=%ld e=%"
-+                        MPFR_EXP_FSPEC "d rnd_mode=%d\nand emin=%"
-+                        MPFR_EXP_FSPEC "d emax=%" MPFR_EXP_FSPEC
-+                        "d\n", i, (mpfr_eexp_t) e, rnd,
-+                        (mpfr_eexp_t) emin, (mpfr_eexp_t) emax);
-+                printf ("expected "); mpfr_dump (f3);
-+                printf ("with inex = %d and flags =", inex3);
-+                flags_out (flags3);
-+                printf ("got      "); mpfr_dump (f2);
-+                printf ("with inex = %d and flags =", inex2);
-+                flags_out (flags2);
-+                exit (1);
-+              }
-+          }
-+      mpfr_set_emin (old_emin);
-+      mpfr_set_emax (old_emax);
-     }
--  mpfr_clear (f);
-+
-+  mpfr_clears (f1, f2, f3, (mpfr_ptr) 0);
-   mpz_clear (z);
- }
- 
-+static void
-+check_huge (void)
-+{
-+  if (getenv ("MPFR_CHECK_LARGEMEM") != NULL)
-+    {
-+      mpfr_t x;
-+      mpz_t z;
-+      long e;
-+
-+      /* Increase tests_memory_limit to the maximum in order to avoid
-+         an obvious failure due to insufficient memory. */
-+      tests_memory_limit = (size_t) -1;  /* no memory limit */
-+
-+      mpfr_init2 (x, 32);
-+
-+      /* In r14140, with a 32-bit ABI (GCC's -m32):
-+         - With UBsan (-fsanitize=undefined -fno-sanitize-recover),
-+           this fails with:
-+             set_z_2exp.c:71:26: runtime error: signed integer overflow:
-+             67108864 * 32 cannot be represented in type 'long int'
-+         - With -D_MPFR_EXP_FORMAT=4, this fails with:
-+             Expected 0.10001000000000000000000000000000E5
-+             Got      0
-+      */
-+      mpz_init_set_ui (z, 17);
-+      e = 0x7ffffff0;
-+      mpz_mul_2exp (z, z, e);
-+      mpz_add_ui (z, z, 1);
-+      mpfr_set_z_2exp (x, z, -e, MPFR_RNDN);
-+      if (mpfr_cmp_ui0 (x, 17) != 0)
-+        {
-+          printf ("Error 1 in check_huge\n");
-+          printf ("Expected 0.10001000000000000000000000000000E5\n");
-+          printf ("Got      ");
-+          mpfr_dump (x);
-+          exit (1);
-+        }
-+      mpz_clear (z);
-+
-+      mpz_init_set_ui (z, 17);
-+      mpz_mul_2exp (z, z, 0xffffffb0);
-+      mpz_add_ui (z, z, 1);
-+      mpfr_set_z_2exp (x, z, -1, MPFR_RNDN);
-+      if (! MPFR_IS_INF (x) || MPFR_IS_NEG (x))
-+        {
-+          printf ("Error 2 in check_huge\n");
-+          printf ("Expected @Inf@\n");
-+          printf ("Got      ");
-+          mpfr_dump (x);
-+          exit (1);
-+        }
-+      mpz_clear (z);
-+
-+      mpfr_clear (x);
-+    }
-+}
-+
- int
- main (int argc, char *argv[])
- {
-@@ -147,11 +247,13 @@
- 
-   tests_start_mpfr ();
- 
--  check (0, MPFR_RNDN);
-+  check (0, MPFR_RNDN, 0);
-   for (j = 0; j < 200000; j++)
--    check (randlimb () & LONG_MAX, RND_RAND ());
-+    check (randlimb () & LONG_MAX, RND_RAND (), j < 200);
-   check0 ();
- 
-+  check_huge ();
-+
-   tests_end_mpfr ();
- 
-   return 0;
-diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
---- mpfr-4.1.0-a/PATCHES	2021-02-11 12:48:27.322243271 +0000
-+++ mpfr-4.1.0-b/PATCHES	2021-02-11 12:48:27.370242746 +0000
-@@ -0,0 +1 @@
-+prototypes
-diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
---- mpfr-4.1.0-a/VERSION	2021-02-11 12:46:49.115316335 +0000
-+++ mpfr-4.1.0-b/VERSION	2021-02-11 12:48:27.370242746 +0000
-@@ -1 +1 @@
--4.1.0-p3
-+4.1.0-p4
-diff -Naurd mpfr-4.1.0-a/src/atan.c mpfr-4.1.0-b/src/atan.c
---- mpfr-4.1.0-a/src/atan.c	2020-04-22 15:27:07.000000000 +0000
-+++ mpfr-4.1.0-b/src/atan.c	2021-02-11 12:48:27.354242922 +0000
-@@ -56,7 +56,7 @@
-   };
- 
- static void
--set_table (mpfr_t y, const mp_limb_t x[3])
-+set_table (mpfr_ptr y, const mp_limb_t x[3])
- {
-   mpfr_prec_t p = MPFR_PREC(y);
-   mp_size_t n = MPFR_PREC2LIMBS(p);
-diff -Naurd mpfr-4.1.0-a/src/const_euler.c mpfr-4.1.0-b/src/const_euler.c
---- mpfr-4.1.0-a/src/const_euler.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/const_euler.c	2021-02-11 12:48:27.354242922 +0000
-@@ -181,7 +181,7 @@
- }
- 
- int
--mpfr_const_euler_internal (mpfr_t x, mpfr_rnd_t rnd)
-+mpfr_const_euler_internal (mpfr_ptr x, mpfr_rnd_t rnd)
- {
-   mpfr_const_euler_bs_t sum;
-   mpz_t t, u, v;
-diff -Naurd mpfr-4.1.0-a/src/eint.c mpfr-4.1.0-b/src/eint.c
---- mpfr-4.1.0-a/src/eint.c	2020-03-09 15:31:45.000000000 +0000
-+++ mpfr-4.1.0-b/src/eint.c	2021-02-11 12:48:27.354242922 +0000
-@@ -36,7 +36,7 @@
-    Return PREC(y) when the truncated series does not converge.
- */
- static mpfr_exp_t
--mpfr_eint_aux (mpfr_t y, mpfr_srcptr x)
-+mpfr_eint_aux (mpfr_ptr y, mpfr_srcptr x)
- {
-   mpfr_t eps; /* dynamic (absolute) error bound on t */
-   mpfr_t erru, errs;
-diff -Naurd mpfr-4.1.0-a/src/erandom.c mpfr-4.1.0-b/src/erandom.c
---- mpfr-4.1.0-a/src/erandom.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/erandom.c	2021-02-11 12:48:27.354242922 +0000
-@@ -80,7 +80,7 @@
- 
- /* return an exponential random deviate with mean 1 as a MPFR  */
- int
--mpfr_erandom (mpfr_t z, gmp_randstate_t r, mpfr_rnd_t rnd)
-+mpfr_erandom (mpfr_ptr z, gmp_randstate_t r, mpfr_rnd_t rnd)
- {
-   mpfr_random_deviate_t x, p, q;
-   int inex;
-diff -Naurd mpfr-4.1.0-a/src/fpif.c mpfr-4.1.0-b/src/fpif.c
---- mpfr-4.1.0-a/src/fpif.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/fpif.c	2021-02-11 12:48:27.354242922 +0000
-@@ -291,7 +291,8 @@
-  *   until one has integer types larger than 128 bits).
-  */
- static unsigned char*
--mpfr_fpif_store_exponent (unsigned char *buffer, size_t *buffer_size, mpfr_t x)
-+mpfr_fpif_store_exponent (unsigned char *buffer, size_t *buffer_size,
-+                          mpfr_ptr x)
- {
-   unsigned char *result;
-   mpfr_uexp_t uexp;
-@@ -372,7 +373,7 @@
-  *   than 128 bits).
-  */
- static int
--mpfr_fpif_read_exponent_from_file (mpfr_t x, FILE * fh)
-+mpfr_fpif_read_exponent_from_file (mpfr_ptr x, FILE * fh)
- {
-   mpfr_exp_t exponent;
-   mpfr_uexp_t uexp;
-@@ -456,7 +457,7 @@
-  *        format
-  */
- static unsigned char*
--mpfr_fpif_store_limbs (unsigned char *buffer, size_t *buffer_size, mpfr_t x)
-+mpfr_fpif_store_limbs (unsigned char *buffer, size_t *buffer_size, mpfr_ptr x)
- {
-   unsigned char *result;
-   mpfr_prec_t precision;
-@@ -492,7 +493,7 @@
-  * Assume buffer is not NULL.
-  */
- static void
--mpfr_fpif_read_limbs (mpfr_t x, unsigned char *buffer, size_t nb_byte)
-+mpfr_fpif_read_limbs (mpfr_ptr x, unsigned char *buffer, size_t nb_byte)
- {
-   size_t mp_bytes_per_limb;
-   size_t nb_partial_byte;
-@@ -522,7 +523,7 @@
-  * return 0 if successful
-  */
- int
--mpfr_fpif_export (FILE *fh, mpfr_t x)
-+mpfr_fpif_export (FILE *fh, mpfr_ptr x)
- {
-   int status;
-   unsigned char *buf;
-@@ -582,7 +583,7 @@
-  * Return 0 if the import was successful.
-  */
- int
--mpfr_fpif_import (mpfr_t x, FILE *fh)
-+mpfr_fpif_import (mpfr_ptr x, FILE *fh)
- {
-   int status;
-   mpfr_prec_t precision;
-diff -Naurd mpfr-4.1.0-a/src/li2.c mpfr-4.1.0-b/src/li2.c
---- mpfr-4.1.0-a/src/li2.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/li2.c	2021-02-11 12:48:27.354242922 +0000
-@@ -31,7 +31,7 @@
-    for determinating the relative error.
- */
- static int
--li2_series (mpfr_t sum, mpfr_srcptr z, mpfr_rnd_t rnd_mode)
-+li2_series (mpfr_ptr sum, mpfr_srcptr z, mpfr_rnd_t rnd_mode)
- {
-   int i;
-   mpfr_t s, u, v, w;
-diff -Naurd mpfr-4.1.0-a/src/lngamma.c mpfr-4.1.0-b/src/lngamma.c
---- mpfr-4.1.0-a/src/lngamma.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/lngamma.c	2021-02-11 12:48:27.354242922 +0000
-@@ -31,7 +31,7 @@
-    precision should be >= 4.
- */
- static void
--mpfr_gamma_alpha (mpfr_t s, mpfr_prec_t p)
-+mpfr_gamma_alpha (mpfr_ptr s, mpfr_prec_t p)
- {
-   MPFR_LOG_FUNC
-     (("p=%Pu", p),
-diff -Naurd mpfr-4.1.0-a/src/mpfr-impl.h mpfr-4.1.0-b/src/mpfr-impl.h
---- mpfr-4.1.0-a/src/mpfr-impl.h	2020-06-10 21:50:12.000000000 +0000
-+++ mpfr-4.1.0-b/src/mpfr-impl.h	2021-02-11 12:48:27.354242922 +0000
-@@ -2474,7 +2474,8 @@
- __MPFR_DECLSPEC mpz_srcptr mpfr_bernoulli_cache (unsigned long);
- __MPFR_DECLSPEC void mpfr_bernoulli_freecache (void);
- 
--__MPFR_DECLSPEC int mpfr_sincos_fast (mpfr_t, mpfr_t, mpfr_srcptr, mpfr_rnd_t);
-+__MPFR_DECLSPEC int mpfr_sincos_fast (mpfr_ptr, mpfr_ptr, mpfr_srcptr,
-+                                      mpfr_rnd_t);
- 
- __MPFR_DECLSPEC double mpfr_scale2 (double, int);
- 
-@@ -2485,7 +2486,7 @@
-                                                    mpfr_prec_t);
- 
- __MPFR_DECLSPEC void mpfr_mpz_init (mpz_ptr);
--__MPFR_DECLSPEC void mpfr_mpz_init2 (mpz_t, mp_bitcnt_t);
-+__MPFR_DECLSPEC void mpfr_mpz_init2 (mpz_ptr, mp_bitcnt_t);
- __MPFR_DECLSPEC void mpfr_mpz_clear (mpz_ptr);
- 
- __MPFR_DECLSPEC int mpfr_odd_p (mpfr_srcptr);
-diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
---- mpfr-4.1.0-a/src/mpfr.h	2021-02-11 12:46:49.115316335 +0000
-+++ mpfr-4.1.0-b/src/mpfr.h	2021-02-11 12:48:27.366242791 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 4
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "4.1.0-p3"
-+#define MPFR_VERSION_STRING "4.1.0-p4"
- 
- /* User macros:
-    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
-@@ -781,8 +781,8 @@
- __MPFR_DECLSPEC int mpfr_strtofr (mpfr_ptr, const char *, char **, int,
-                                   mpfr_rnd_t);
- 
--__MPFR_DECLSPEC void mpfr_round_nearest_away_begin (mpfr_t);
--__MPFR_DECLSPEC int mpfr_round_nearest_away_end (mpfr_t, int);
-+__MPFR_DECLSPEC void mpfr_round_nearest_away_begin (mpfr_ptr);
-+__MPFR_DECLSPEC int mpfr_round_nearest_away_end (mpfr_ptr, int);
- 
- __MPFR_DECLSPEC size_t mpfr_custom_get_size (mpfr_prec_t);
- __MPFR_DECLSPEC void mpfr_custom_init (void *, mpfr_prec_t);
-@@ -1080,10 +1080,12 @@
- #define mpfr_set_uj_2exp __gmpfr_set_uj_2exp
- #define mpfr_get_sj __gmpfr_mpfr_get_sj
- #define mpfr_get_uj __gmpfr_mpfr_get_uj
--__MPFR_DECLSPEC int mpfr_set_sj (mpfr_t, intmax_t, mpfr_rnd_t);
--__MPFR_DECLSPEC int mpfr_set_sj_2exp (mpfr_t, intmax_t, intmax_t, mpfr_rnd_t);
--__MPFR_DECLSPEC int mpfr_set_uj (mpfr_t, uintmax_t, mpfr_rnd_t);
--__MPFR_DECLSPEC int mpfr_set_uj_2exp (mpfr_t, uintmax_t, intmax_t, mpfr_rnd_t);
-+__MPFR_DECLSPEC int mpfr_set_sj (mpfr_ptr, intmax_t, mpfr_rnd_t);
-+__MPFR_DECLSPEC int mpfr_set_sj_2exp (mpfr_ptr, intmax_t, intmax_t,
-+                                      mpfr_rnd_t);
-+__MPFR_DECLSPEC int mpfr_set_uj (mpfr_ptr, uintmax_t, mpfr_rnd_t);
-+__MPFR_DECLSPEC int mpfr_set_uj_2exp (mpfr_ptr, uintmax_t, intmax_t,
-+                                      mpfr_rnd_t);
- __MPFR_DECLSPEC intmax_t mpfr_get_sj (mpfr_srcptr, mpfr_rnd_t);
- __MPFR_DECLSPEC uintmax_t mpfr_get_uj (mpfr_srcptr, mpfr_rnd_t);
- 
-diff -Naurd mpfr-4.1.0-a/src/nrandom.c mpfr-4.1.0-b/src/nrandom.c
---- mpfr-4.1.0-a/src/nrandom.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/nrandom.c	2021-02-11 12:48:27.354242922 +0000
-@@ -155,7 +155,7 @@
- 
- /* return a normal random deviate with mean 0 and variance 1 as a MPFR  */
- int
--mpfr_nrandom (mpfr_t z, gmp_randstate_t r, mpfr_rnd_t rnd)
-+mpfr_nrandom (mpfr_ptr z, gmp_randstate_t r, mpfr_rnd_t rnd)
- {
-   mpfr_random_deviate_t x, p, q;
-   int inex;
-diff -Naurd mpfr-4.1.0-a/src/pool.c mpfr-4.1.0-b/src/pool.c
---- mpfr-4.1.0-a/src/pool.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/pool.c	2021-02-11 12:48:27.354242922 +0000
-@@ -35,7 +35,7 @@
- static MPFR_THREAD_ATTR __mpz_struct mpz_tab[MPFR_POOL_NENTRIES];
- 
- MPFR_HOT_FUNCTION_ATTR void
--mpfr_mpz_init (mpz_t z)
-+mpfr_mpz_init (mpz_ptr z)
- {
-   if (MPFR_LIKELY (n_alloc > 0))
-     {
-@@ -54,7 +54,7 @@
- }
- 
- MPFR_HOT_FUNCTION_ATTR void
--mpfr_mpz_init2 (mpz_t z, mp_bitcnt_t n)
-+mpfr_mpz_init2 (mpz_ptr z, mp_bitcnt_t n)
- {
-   /* The condition on n is used below as the argument n will be ignored if
-      the mpz_t is obtained from the MPFR stack of previously used mpz_t.
-@@ -82,7 +82,7 @@
- 
- 
- MPFR_HOT_FUNCTION_ATTR void
--mpfr_mpz_clear (mpz_t z)
-+mpfr_mpz_clear (mpz_ptr z)
- {
-   /* We only put objects with at most MPFR_POOL_MAX_SIZE in the mpz_t pool,
-      to avoid it takes too much memory (and anyway the speedup is mainly
-diff -Naurd mpfr-4.1.0-a/src/random_deviate.c mpfr-4.1.0-b/src/random_deviate.c
---- mpfr-4.1.0-a/src/random_deviate.c	2021-02-11 12:43:51.789257562 +0000
-+++ mpfr-4.1.0-b/src/random_deviate.c	2021-02-11 12:48:27.354242922 +0000
-@@ -64,7 +64,7 @@
- 
- /* allocate and set to (0,1) */
- void
--mpfr_random_deviate_init (mpfr_random_deviate_t x)
-+mpfr_random_deviate_init (mpfr_random_deviate_ptr x)
- {
-   mpz_init (x->f);
-   x->e = 0;
-@@ -72,21 +72,22 @@
- 
- /* reset to (0,1) */
- void
--mpfr_random_deviate_reset (mpfr_random_deviate_t x)
-+mpfr_random_deviate_reset (mpfr_random_deviate_ptr x)
- {
-   x->e = 0;
- }
- 
- /* deallocate */
- void
--mpfr_random_deviate_clear (mpfr_random_deviate_t x)
-+mpfr_random_deviate_clear (mpfr_random_deviate_ptr x)
- {
-   mpz_clear (x->f);
- }
- 
- /* swap two random deviates */
- void
--mpfr_random_deviate_swap (mpfr_random_deviate_t x, mpfr_random_deviate_t y)
-+mpfr_random_deviate_swap (mpfr_random_deviate_ptr x,
-+                          mpfr_random_deviate_ptr y)
- {
-   mpfr_random_size_t s;
-   unsigned long t;
-@@ -107,7 +108,7 @@
- 
- /* ensure x has at least k bits */
- static void
--random_deviate_generate (mpfr_random_deviate_t x, mpfr_random_size_t k,
-+random_deviate_generate (mpfr_random_deviate_ptr x, mpfr_random_size_t k,
-                          gmp_randstate_t r, mpz_t t)
- {
-   /* Various compile time checks on mpfr_random_deviate_t */
-@@ -223,7 +224,7 @@
- 
- /* return position of leading bit, counting from 1 */
- static mpfr_random_size_t
--random_deviate_leading_bit (mpfr_random_deviate_t x, gmp_randstate_t r)
-+random_deviate_leading_bit (mpfr_random_deviate_ptr x, gmp_randstate_t r)
- {
-   mpfr_random_size_t l;
-   random_deviate_generate (x, W, r, 0);
-@@ -243,7 +244,7 @@
- 
- /* return kth bit of fraction, representing 2^-k */
- int
--mpfr_random_deviate_tstbit (mpfr_random_deviate_t x, mpfr_random_size_t k,
-+mpfr_random_deviate_tstbit (mpfr_random_deviate_ptr x, mpfr_random_size_t k,
-                             gmp_randstate_t r)
- {
-   if (k == 0)
-@@ -256,7 +257,8 @@
- 
- /* compare two random deviates, x < y */
- int
--mpfr_random_deviate_less (mpfr_random_deviate_t x, mpfr_random_deviate_t y,
-+mpfr_random_deviate_less (mpfr_random_deviate_ptr x,
-+                          mpfr_random_deviate_ptr y,
-                           gmp_randstate_t r)
- {
-   mpfr_random_size_t k = 1;
-@@ -280,7 +282,7 @@
- /* set mpfr_t z = (neg ? -1 : 1) * (n + x) */
- int
- mpfr_random_deviate_value (int neg, unsigned long n,
--                           mpfr_random_deviate_t x, mpfr_t z,
-+                           mpfr_random_deviate_ptr x, mpfr_ptr z,
-                            gmp_randstate_t r, mpfr_rnd_t rnd)
- {
-   /* r is used to add as many bits as necessary to match the precision of z */
-diff -Naurd mpfr-4.1.0-a/src/random_deviate.h mpfr-4.1.0-b/src/random_deviate.h
---- mpfr-4.1.0-a/src/random_deviate.h	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/random_deviate.h	2021-02-11 12:48:27.354242922 +0000
-@@ -76,7 +76,7 @@
- /* set mpfr_t z = (neg ? -1 : 1) * (n + x) */
- __MPFR_DECLSPEC int
-   mpfr_random_deviate_value (int, unsigned long,
--                             mpfr_random_deviate_ptr, mpfr_t,
-+                             mpfr_random_deviate_ptr, mpfr_ptr,
-                              gmp_randstate_t, mpfr_rnd_t);
- 
- #if defined(__cplusplus)
-diff -Naurd mpfr-4.1.0-a/src/rndna.c mpfr-4.1.0-b/src/rndna.c
---- mpfr-4.1.0-a/src/rndna.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/rndna.c	2021-02-11 12:48:27.354242922 +0000
-@@ -61,7 +61,7 @@
-    and prepares rop to give it one more bit of precision
-    and to save its old value within it. */
- void
--mpfr_round_nearest_away_begin (mpfr_t rop)
-+mpfr_round_nearest_away_begin (mpfr_ptr rop)
- {
-   mpfr_t tmp;
-   mp_size_t xsize;
-@@ -129,7 +129,7 @@
-    copying it back the result of the applied function
-    and performing additional roundings. */
- int
--mpfr_round_nearest_away_end (mpfr_t rop, int inex)
-+mpfr_round_nearest_away_end (mpfr_ptr rop, int inex)
- {
-   mpfr_t    tmp;
-   mp_size_t xsize;
-diff -Naurd mpfr-4.1.0-a/src/set_sj.c mpfr-4.1.0-b/src/set_sj.c
---- mpfr-4.1.0-a/src/set_sj.c	2020-06-01 10:39:52.000000000 +0000
-+++ mpfr-4.1.0-b/src/set_sj.c	2021-02-11 12:48:27.354242922 +0000
-@@ -26,13 +26,13 @@
- #ifdef _MPFR_H_HAVE_INTMAX_T
- 
- int
--mpfr_set_sj (mpfr_t x, intmax_t j, mpfr_rnd_t rnd)
-+mpfr_set_sj (mpfr_ptr x, intmax_t j, mpfr_rnd_t rnd)
- {
-   return mpfr_set_sj_2exp (x, j, 0, rnd);
- }
- 
- int
--mpfr_set_sj_2exp (mpfr_t x, intmax_t j, intmax_t e, mpfr_rnd_t rnd)
-+mpfr_set_sj_2exp (mpfr_ptr x, intmax_t j, intmax_t e, mpfr_rnd_t rnd)
- {
-   if (j >= 0)
-     return mpfr_set_uj_2exp (x, j, e, rnd);
-diff -Naurd mpfr-4.1.0-a/src/set_str.c mpfr-4.1.0-b/src/set_str.c
---- mpfr-4.1.0-a/src/set_str.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/set_str.c	2021-02-11 12:48:27.354242922 +0000
-@@ -23,7 +23,7 @@
- #include "mpfr-impl.h"
- 
- int
--mpfr_set_str (mpfr_t x, const char *str, int base, mpfr_rnd_t rnd)
-+mpfr_set_str (mpfr_ptr x, const char *str, int base, mpfr_rnd_t rnd)
- {
-   char *p;
- 
-diff -Naurd mpfr-4.1.0-a/src/set_uj.c mpfr-4.1.0-b/src/set_uj.c
---- mpfr-4.1.0-a/src/set_uj.c	2020-06-01 10:39:52.000000000 +0000
-+++ mpfr-4.1.0-b/src/set_uj.c	2021-02-11 12:48:27.354242922 +0000
-@@ -29,13 +29,13 @@
- #define uintmaxpml (sizeof(uintmax_t) / sizeof(mp_limb_t))
- 
- int
--mpfr_set_uj (mpfr_t x, uintmax_t j, mpfr_rnd_t rnd)
-+mpfr_set_uj (mpfr_ptr x, uintmax_t j, mpfr_rnd_t rnd)
- {
-   return mpfr_set_uj_2exp (x, j, 0, rnd);
- }
- 
- int
--mpfr_set_uj_2exp (mpfr_t x, uintmax_t j, intmax_t e, mpfr_rnd_t rnd)
-+mpfr_set_uj_2exp (mpfr_ptr x, uintmax_t j, intmax_t e, mpfr_rnd_t rnd)
- {
-   int cnt, inex;
-   mp_size_t i, k;
-diff -Naurd mpfr-4.1.0-a/src/sin_cos.c mpfr-4.1.0-b/src/sin_cos.c
---- mpfr-4.1.0-a/src/sin_cos.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/sin_cos.c	2021-02-11 12:48:27.354242922 +0000
-@@ -463,7 +463,7 @@
-    Return err such that the relative error is bounded by 2^err ulps.
- */
- static int
--sincos_aux (mpfr_t s, mpfr_t c, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-+sincos_aux (mpfr_ptr s, mpfr_ptr c, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
- {
-   mpfr_prec_t prec_s, sh;
-   mpz_t Q, S, C, Q2, S2, C2, y;
-@@ -577,7 +577,7 @@
-    Assumes s differs from c.
-  */
- int
--mpfr_sincos_fast (mpfr_t s, mpfr_t c, mpfr_srcptr x, mpfr_rnd_t rnd)
-+mpfr_sincos_fast (mpfr_ptr s, mpfr_ptr c, mpfr_srcptr x, mpfr_rnd_t rnd)
- {
-   int inexs, inexc;
-   mpfr_t x_red, ts, tc;
-diff -Naurd mpfr-4.1.0-a/src/strtofr.c mpfr-4.1.0-b/src/strtofr.c
---- mpfr-4.1.0-a/src/strtofr.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/strtofr.c	2021-02-11 12:48:27.354242922 +0000
-@@ -226,7 +226,7 @@
-    BUT if it returns 0 (NAN or INF), the ternary value is also '0'
-    (ie NAN and INF are exact) */
- static int
--parse_string (mpfr_t x, struct parsed_string *pstr,
-+parse_string (mpfr_ptr x, struct parsed_string *pstr,
-               const char **string, int base)
- {
-   const char *str = *string;
-@@ -451,7 +451,7 @@
-    and the precision of x.
-    Returns the ternary value. */
- static int
--parsed_string_to_mpfr (mpfr_t x, struct parsed_string *pstr, mpfr_rnd_t rnd)
-+parsed_string_to_mpfr (mpfr_ptr x, struct parsed_string *pstr, mpfr_rnd_t rnd)
- {
-   mpfr_prec_t precx, prec, ysize_bits, pstr_size;
-   mpfr_exp_t exp;
-@@ -934,7 +934,7 @@
- }
- 
- int
--mpfr_strtofr (mpfr_t x, const char *string, char **end, int base,
-+mpfr_strtofr (mpfr_ptr x, const char *string, char **end, int base,
-               mpfr_rnd_t rnd)
- {
-   int res;
-diff -Naurd mpfr-4.1.0-a/src/vasprintf.c mpfr-4.1.0-b/src/vasprintf.c
---- mpfr-4.1.0-a/src/vasprintf.c	2020-06-01 10:39:52.000000000 +0000
-+++ mpfr-4.1.0-b/src/vasprintf.c	2021-02-11 12:48:27.354242922 +0000
-@@ -963,7 +963,7 @@
- #define NDIGITS 8
- 
- MPFR_RETURNS_NONNULL static char *
--mpfr_get_str_wrapper (mpfr_exp_t *exp, int base, size_t n, const mpfr_t op,
-+mpfr_get_str_wrapper (mpfr_exp_t *exp, int base, size_t n, mpfr_srcptr op,
-                       const struct printf_spec spec)
- {
-   size_t ndigits;
-diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
---- mpfr-4.1.0-a/src/version.c	2021-02-11 12:46:49.115316335 +0000
-+++ mpfr-4.1.0-b/src/version.c	2021-02-11 12:48:27.370242746 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "4.1.0-p3";
-+  return "4.1.0-p4";
- }
-diff -Naurd mpfr-4.1.0-a/src/zeta.c mpfr-4.1.0-b/src/zeta.c
---- mpfr-4.1.0-a/src/zeta.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/src/zeta.c	2021-02-11 12:48:27.354242922 +0000
-@@ -35,7 +35,7 @@
-    sum(tc[i]*product((s+2j)*(s+2j-1)/n^2,j=1..i-1), i=1..p)*s*n^(-s-1)
- */
- static void
--mpfr_zeta_part_b (mpfr_t b, mpfr_srcptr s, int n, int p, mpfr_t *tc)
-+mpfr_zeta_part_b (mpfr_ptr b, mpfr_srcptr s, int n, int p, mpfr_t *tc)
- {
-   mpfr_t s1, d, u;
-   unsigned long n2;
-@@ -130,7 +130,7 @@
-           n - an integer
-    Output: sum - a floating-point number approximating sum(1/i^s, i=1..n-1) */
- static void
--mpfr_zeta_part_a (mpfr_t sum, mpfr_srcptr s, int n)
-+mpfr_zeta_part_a (mpfr_ptr sum, mpfr_srcptr s, int n)
- {
-   mpfr_t u, s1;
-   int i;
-@@ -158,7 +158,7 @@
-    Output: z - Zeta(s) rounded to the precision of z with direction rnd_mode
- */
- static int
--mpfr_zeta_pos (mpfr_t z, mpfr_srcptr s, mpfr_rnd_t rnd_mode)
-+mpfr_zeta_pos (mpfr_ptr z, mpfr_srcptr s, mpfr_rnd_t rnd_mode)
- {
-   mpfr_t b, c, z_pre, f, s1;
-   double beta, sd, dnep;
-@@ -356,8 +356,8 @@
-    At input, p is Pi rounded down.
-    The comments in the code are for rnd = RNDD. */
- static void
--mpfr_reflection_overflow (mpfr_t z, mpfr_t s1, const mpfr_t s, mpfr_t y,
--                          mpfr_t p, mpfr_rnd_t rnd)
-+mpfr_reflection_overflow (mpfr_ptr z, mpfr_ptr s1, mpfr_srcptr s, mpfr_ptr y,
-+                          mpfr_ptr p, mpfr_rnd_t rnd)
- {
-   mpz_t sint;
- 
-@@ -432,7 +432,7 @@
- }
- 
- int
--mpfr_zeta (mpfr_t z, mpfr_srcptr s, mpfr_rnd_t rnd_mode)
-+mpfr_zeta (mpfr_ptr z, mpfr_srcptr s, mpfr_rnd_t rnd_mode)
- {
-   mpfr_t z_pre, s1, y, p;
-   long add;
-diff -Naurd mpfr-4.1.0-a/tests/tcmp2.c mpfr-4.1.0-b/tests/tcmp2.c
---- mpfr-4.1.0-a/tests/tcmp2.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tcmp2.c	2021-02-11 12:48:27.350242965 +0000
-@@ -24,7 +24,7 @@
- 
- /* set bit n of x to b, where bit 0 is the most significant one */
- static void
--set_bit (mpfr_t x, unsigned int n, int b)
-+set_bit (mpfr_ptr x, unsigned int n, int b)
- {
-   unsigned l;
-   mp_size_t xn;
-diff -Naurd mpfr-4.1.0-a/tests/tdiv.c mpfr-4.1.0-b/tests/tdiv.c
---- mpfr-4.1.0-a/tests/tdiv.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tdiv.c	2021-02-11 12:48:27.350242965 +0000
-@@ -369,7 +369,7 @@
- /* given y = o(x/u), x, u, find the inexact flag by
-    multiplying y by u */
- static int
--get_inexact (mpfr_t y, mpfr_t x, mpfr_t u)
-+get_inexact (mpfr_ptr y, mpfr_ptr x, mpfr_ptr u)
- {
-   mpfr_t xx;
-   int inex;
-diff -Naurd mpfr-4.1.0-a/tests/teq.c mpfr-4.1.0-b/tests/teq.c
---- mpfr-4.1.0-a/tests/teq.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/teq.c	2021-02-11 12:48:27.350242965 +0000
-@@ -23,7 +23,7 @@
- #include "mpfr-test.h"
- 
- static void
--teq (mpfr_t x)
-+teq (mpfr_ptr x)
- {
-   mpfr_t y;
-   unsigned long k, px, mx;
-diff -Naurd mpfr-4.1.0-a/tests/terandom_chisq.c mpfr-4.1.0-b/tests/terandom_chisq.c
---- mpfr-4.1.0-a/tests/terandom_chisq.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/terandom_chisq.c	2021-02-11 12:48:27.350242965 +0000
-@@ -26,7 +26,7 @@
-  * exponential distribution.  We only take differences of this function so the
-  * offset doesn't matter; here Phi(0) = 0. */
- static void
--exponential_cumulative (mpfr_t z, mpfr_t x, mpfr_rnd_t rnd)
-+exponential_cumulative (mpfr_ptr z, mpfr_ptr x, mpfr_rnd_t rnd)
- {
-   mpfr_neg (z, x, rnd);
-   mpfr_expm1 (z, z, rnd);
-@@ -43,7 +43,7 @@
-  * TAOCP, Vol 2, 3.3.1, Table 1.  It more accurate than the similar formula,
-  * DLMF 8.11.10. */
- static void
--chisq_prob (mpfr_t q, long nu, mpfr_t chisqp)
-+chisq_prob (mpfr_ptr q, long nu, mpfr_ptr chisqp)
- {
-   mpfr_t t;
-   mpfr_rnd_t rnd;
-@@ -170,7 +170,7 @@
-  * this function.  low precision means prec = 2, 3, or 4.  High values of
-  * precision will result in integer overflow. */
- static long
--sequential (mpfr_t x)
-+sequential (mpfr_ptr x)
- {
-   long expt, prec;
- 
-diff -Naurd mpfr-4.1.0-a/tests/tfmma.c mpfr-4.1.0-b/tests/tfmma.c
---- mpfr-4.1.0-a/tests/tfmma.c	2020-03-24 13:47:38.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tfmma.c	2021-02-11 12:48:27.350242965 +0000
-@@ -24,7 +24,7 @@
- 
- /* check both mpfr_fmma and mpfr_fmms */
- static void
--random_test (mpfr_t a, mpfr_t b, mpfr_t c, mpfr_t d, mpfr_rnd_t rnd)
-+random_test (mpfr_ptr a, mpfr_ptr b, mpfr_ptr c, mpfr_ptr d, mpfr_rnd_t rnd)
- {
-   mpfr_t ref, res, ab, cd;
-   int inex_ref, inex_res;
-diff -Naurd mpfr-4.1.0-a/tests/tfmod.c mpfr-4.1.0-b/tests/tfmod.c
---- mpfr-4.1.0-a/tests/tfmod.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tfmod.c	2021-02-11 12:48:27.350242965 +0000
-@@ -62,8 +62,8 @@
- }
- 
- static void
--test_failed (mpfr_t erem, mpfr_t grem, int eret, int gret, mpfr_t x, mpfr_t y,
--             mpfr_rnd_t rnd)
-+test_failed (mpfr_ptr erem, mpfr_ptr grem, int eret, int gret,
-+             mpfr_ptr x, mpfr_ptr y, mpfr_rnd_t rnd)
- {
-   printf ("error: mpfr_fmod (r, x, y, rnd)\n  x = ");
-   mpfr_out_str (stdout, 10, 0, x, MPFR_RNDD);
-@@ -83,7 +83,7 @@
- }
- 
- static void
--check (mpfr_t r0, mpfr_t x, mpfr_t y, mpfr_rnd_t rnd)
-+check (mpfr_ptr r0, mpfr_ptr x, mpfr_ptr y, mpfr_rnd_t rnd)
- {
-   int inex0, inex1;
-   mpfr_t r1;
-diff -Naurd mpfr-4.1.0-a/tests/tfprintf.c mpfr-4.1.0-b/tests/tfprintf.c
---- mpfr-4.1.0-a/tests/tfprintf.c	2020-06-01 10:39:52.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tfprintf.c	2021-02-11 12:48:27.350242965 +0000
-@@ -65,7 +65,7 @@
- const int prec_max_printf = 5000;
- 
- static void
--check (FILE *fout, const char *fmt, mpfr_t x)
-+check (FILE *fout, const char *fmt, mpfr_ptr x)
- {
-   if (mpfr_fprintf (fout, fmt, x) == -1)
-     {
-diff -Naurd mpfr-4.1.0-a/tests/tgamma.c mpfr-4.1.0-b/tests/tgamma.c
---- mpfr-4.1.0-a/tests/tgamma.c	2020-06-01 00:15:37.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tgamma.c	2021-02-11 12:48:27.350242965 +0000
-@@ -890,7 +890,7 @@
-    computing with a working precision p2. Assume that x is not an
-    integer <= 2. */
- static void
--exp_lgamma (mpfr_t x, mpfr_prec_t p1, mpfr_prec_t p2)
-+exp_lgamma (mpfr_ptr x, mpfr_prec_t p1, mpfr_prec_t p2)
- {
-   mpfr_t yd, yu, zd, zu;
-   int inexd, inexu, sign;
-diff -Naurd mpfr-4.1.0-a/tests/tnrandom_chisq.c mpfr-4.1.0-b/tests/tnrandom_chisq.c
---- mpfr-4.1.0-a/tests/tnrandom_chisq.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tnrandom_chisq.c	2021-02-11 12:48:27.350242965 +0000
-@@ -26,7 +26,7 @@
-  * for the normal distribution.  We only take differences of this function so
-  * the offset doesn't matter; here Phi(0) = 0. */
- static void
--normal_cumulative (mpfr_t z, mpfr_t x, mpfr_rnd_t rnd)
-+normal_cumulative (mpfr_ptr z, mpfr_ptr x, mpfr_rnd_t rnd)
- {
-   mpfr_sqrt_ui (z, 2, rnd);
-   mpfr_div (z, x, z, rnd);
-@@ -44,7 +44,7 @@
-  * TAOCP, Vol 2, 3.3.1, Table 1.  It more accurate than the similar formula,
-  * DLMF 8.11.10. */
- static void
--chisq_prob (mpfr_t q, long nu, mpfr_t chisqp)
-+chisq_prob (mpfr_ptr q, long nu, mpfr_ptr chisqp)
- {
-   mpfr_t t;
-   mpfr_rnd_t rnd;
-@@ -166,7 +166,7 @@
-  * this function.  low precision means prec = 2, 3, or 4.  High values of
-  * precision will result in integer overflow. */
- static long
--sequential (mpfr_t x)
-+sequential (mpfr_ptr x)
- {
-   long expt, prec;
- 
-diff -Naurd mpfr-4.1.0-a/tests/tprintf.c mpfr-4.1.0-b/tests/tprintf.c
---- mpfr-4.1.0-a/tests/tprintf.c	2020-06-01 10:39:52.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tprintf.c	2021-02-11 12:48:27.350242965 +0000
-@@ -74,7 +74,7 @@
- int stdout_redirect;
- 
- static void
--check (const char *fmt, mpfr_t x)
-+check (const char *fmt, mpfr_ptr x)
- {
-   if (mpfr_printf (fmt, x) == -1)
-     {
-diff -Naurd mpfr-4.1.0-a/tests/trint.c mpfr-4.1.0-b/tests/trint.c
---- mpfr-4.1.0-a/tests/trint.c	2020-02-12 13:04:50.000000000 +0000
-+++ mpfr-4.1.0-b/tests/trint.c	2021-02-11 12:48:27.350242965 +0000
-@@ -367,7 +367,7 @@
- #endif
- 
- static void
--err (const char *str, mp_size_t s, mpfr_t x, mpfr_t y, mpfr_prec_t p,
-+err (const char *str, mp_size_t s, mpfr_ptr x, mpfr_ptr y, mpfr_prec_t p,
-      mpfr_rnd_t r, int trint, int inexact)
- {
-   printf ("Error: %s\ns = %u, p = %u, r = %s, trint = %d, inexact = %d\nx = ",
-diff -Naurd mpfr-4.1.0-a/tests/tsinh_cosh.c mpfr-4.1.0-b/tests/tsinh_cosh.c
---- mpfr-4.1.0-a/tests/tsinh_cosh.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tsinh_cosh.c	2021-02-11 12:48:27.350242965 +0000
-@@ -23,7 +23,7 @@
- #include "mpfr-test.h"
- 
- static void
--failed (mpfr_t x, mpfr_t esh, mpfr_t gsh, mpfr_t ech, mpfr_t gch)
-+failed (mpfr_ptr x, mpfr_ptr esh, mpfr_ptr gsh, mpfr_ptr ech, mpfr_ptr gch)
- {
-   printf ("error : mpfr_sinh_cosh (x) x = ");
-   mpfr_out_str (stdout, 10, 0, x, MPFR_RNDD);
-@@ -43,7 +43,7 @@
- 
- /* check against sinh, cosh */
- static void
--check (mpfr_t x, mpfr_rnd_t rnd)
-+check (mpfr_ptr x, mpfr_rnd_t rnd)
- {
-   mpfr_t s, c, sx, cx;
-   int isc, is, ic;
-diff -Naurd mpfr-4.1.0-a/tests/tsqr.c mpfr-4.1.0-b/tests/tsqr.c
---- mpfr-4.1.0-a/tests/tsqr.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tsqr.c	2021-02-11 12:48:27.350242965 +0000
-@@ -33,7 +33,7 @@
- 
- static void
- error1 (mpfr_rnd_t rnd, mpfr_prec_t prec,
--        mpfr_t in, mpfr_t outmul, mpfr_t outsqr)
-+        mpfr_t in, mpfr_ptr outmul, mpfr_ptr outsqr)
- {
-   printf("ERROR: for %s and prec=%lu\nINPUT=", mpfr_print_rnd_mode(rnd),
-          (unsigned long) prec);
-@@ -44,7 +44,7 @@
- }
- 
- static void
--error2 (mpfr_rnd_t rnd, mpfr_prec_t prec, mpfr_t in, mpfr_t out,
-+error2 (mpfr_rnd_t rnd, mpfr_prec_t prec, mpfr_ptr in, mpfr_ptr out,
-         int inexactmul, int inexactsqr)
- {
-   printf("ERROR: for %s and prec=%lu\nINPUT=", mpfr_print_rnd_mode(rnd),
-diff -Naurd mpfr-4.1.0-a/tests/tsum.c mpfr-4.1.0-b/tests/tsum.c
---- mpfr-4.1.0-a/tests/tsum.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tsum.c	2021-02-11 12:48:27.350242965 +0000
-@@ -59,7 +59,7 @@
- }
- 
- static void
--get_exact_sum (mpfr_t sum, mpfr_t *tab, int n)
-+get_exact_sum (mpfr_ptr sum, mpfr_t *tab, int n)
- {
-   int i;
- 
-@@ -1198,7 +1198,7 @@
- }
- 
- static int
--mpfr_sum_naive (mpfr_t s, mpfr_t *x, int n, mpfr_rnd_t rnd)
-+mpfr_sum_naive (mpfr_ptr s, mpfr_t *x, int n, mpfr_rnd_t rnd)
- {
-   int ret, i;
-   switch (n)
-diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
---- mpfr-4.1.0-a/PATCHES	2021-02-11 12:50:22.384987438 +0000
-+++ mpfr-4.1.0-b/PATCHES	2021-02-11 12:50:22.424987002 +0000
-@@ -0,0 +1 @@
-+digamma-hugemem
-diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
---- mpfr-4.1.0-a/VERSION	2021-02-11 12:48:27.370242746 +0000
-+++ mpfr-4.1.0-b/VERSION	2021-02-11 12:50:22.424987002 +0000
-@@ -1 +1 @@
--4.1.0-p4
-+4.1.0-p5
-diff -Naurd mpfr-4.1.0-a/src/digamma.c mpfr-4.1.0-b/src/digamma.c
---- mpfr-4.1.0-a/src/digamma.c	2020-06-18 17:17:18.000000000 +0000
-+++ mpfr-4.1.0-b/src/digamma.c	2021-02-11 12:50:22.412987133 +0000
-@@ -214,19 +214,27 @@
-     (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec(x), mpfr_log_prec, x, rnd_mode),
-      ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec(y), mpfr_log_prec, y, inex));
- 
--  /* compute a precision q such that x+1 is exact */
--  if (MPFR_PREC(x) < MPFR_GET_EXP(x))
--    q = MPFR_EXP(x);
--  else
--    q = MPFR_PREC(x) + 1;
--
--  /* for very large x, use |digamma(x) - log(x)| < 1/x < 2^(1-EXP(x)) */
--  if (MPFR_PREC(y) + 10 < MPFR_EXP(x))
-+  /* For very large x, use |digamma(x) - log(x)| < 1/x < 2^(1-EXP(x)).
-+     However, for a fixed value of GUARD, MPFR_CAN_ROUND() might fail
-+     with probability 1/2^GUARD, in which case the default code will
-+     fail since it requires x+1 to be exact, thus a huge precision if
-+     x is huge. There are two workarounds:
-+     * either perform a Ziv's loop, by increasing GUARD at each step.
-+       However, this might fail if x is moderately large, in which case
-+       more terms of the asymptotic expansion would be needed.
-+     * implement a full asymptotic expansion (with Ziv's loop). */
-+#define GUARD 30
-+  if (MPFR_PREC(y) + GUARD < MPFR_EXP(x))
-     {
-       /* this ensures EXP(x) >= 3, thus x >= 4, thus log(x) > 1 */
--      mpfr_init2 (t, MPFR_PREC(y) + 10);
--      mpfr_log (t, x, MPFR_RNDZ);
--      if (MPFR_CAN_ROUND (t, MPFR_PREC(y) + 10, MPFR_PREC(y), rnd_mode))
-+      mpfr_init2 (t, MPFR_PREC(y) + GUARD);
-+      mpfr_log (t, x, MPFR_RNDN);
-+      /* |t - digamma(x)| <= 1/2*ulp(t) + |digamma(x) - log(x)|
-+                          <= 1/2*ulp(t) + 2^(1-EXP(x))
-+                          <= 1/2*ulp(t) + 2^(-PREC(y)-GUARD)
-+                          <= ulp(t)
-+         since |t| >= 1 thus ulp(t) >= 2^(1-PREC(y)-GUARD) */
-+      if (MPFR_CAN_ROUND (t, MPFR_PREC(y) + GUARD, MPFR_PREC(y), rnd_mode))
-         {
-           inex = mpfr_set (y, t, rnd_mode);
-           mpfr_clear (t);
-@@ -235,6 +243,21 @@
-       mpfr_clear (t);
-     }
- 
-+  /* compute a precision q such that x+1 is exact */
-+  if (MPFR_PREC(x) < MPFR_GET_EXP(x))
-+    {
-+      /* The goal of the first assertion is to let the compiler ignore
-+         the second one when MPFR_EMAX_MAX <= MPFR_PREC_MAX. */
-+      MPFR_ASSERTD (MPFR_EXP(x) <= MPFR_EMAX_MAX);
-+      MPFR_ASSERTN (MPFR_EXP(x) <= MPFR_PREC_MAX);
-+      q = MPFR_EXP(x);
-+    }
-+  else
-+    q = MPFR_PREC(x) + 1;
-+
-+  /* FIXME: q can be much too large, e.g. equal to the maximum exponent! */
-+  MPFR_LOG_MSG (("q=%Pu\n", q));
-+
-   mpfr_init2 (x_plus_j, q);
- 
-   mpfr_init2 (t, p);
-diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
---- mpfr-4.1.0-a/src/mpfr.h	2021-02-11 12:48:27.366242791 +0000
-+++ mpfr-4.1.0-b/src/mpfr.h	2021-02-11 12:50:22.424987002 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 4
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "4.1.0-p4"
-+#define MPFR_VERSION_STRING "4.1.0-p5"
- 
- /* User macros:
-    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
-diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
---- mpfr-4.1.0-a/src/version.c	2021-02-11 12:48:27.370242746 +0000
-+++ mpfr-4.1.0-b/src/version.c	2021-02-11 12:50:22.424987002 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "4.1.0-p4";
-+  return "4.1.0-p5";
- }
-diff -Naurd mpfr-4.1.0-a/tests/tdigamma.c mpfr-4.1.0-b/tests/tdigamma.c
---- mpfr-4.1.0-a/tests/tdigamma.c	2020-06-18 17:17:18.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tdigamma.c	2021-02-11 12:50:22.412987133 +0000
-@@ -49,12 +49,54 @@
-   mpfr_clear (y);
- }
- 
-+/* With some GMP_CHECK_RANDOMIZE values, test_generic triggers an error
-+     tests_addsize(): too much memory (576460752303432776 bytes)
-+  Each time on prec = 200, n = 3, xprec = 140.
-+  The following test is a more general testcase.
-+*/
-+static void
-+bug20210206 (void)
-+{
-+#define NPREC 4
-+  mpfr_t x, y[NPREC], z;
-+  mpfr_exp_t emin, emax;
-+  int i, precx, precy[NPREC] = { 200, 400, 520, 1416 };
-+
-+  emin = mpfr_get_emin ();
-+  emax = mpfr_get_emax ();
-+  set_emin (MPFR_EMIN_MIN);
-+  set_emax (MPFR_EMAX_MAX);
-+
-+  for (i = 0; i < NPREC; i++)
-+    mpfr_init2 (y[i], precy[i]);
-+  mpfr_init2 (z, precy[0]);
-+
-+  for (precx = MPFR_PREC_MIN; precx < 150; precx++)
-+    {
-+      mpfr_init2 (x, precx);
-+      mpfr_setmax (x, __gmpfr_emax);
-+      for (i = 0; i < NPREC; i++)
-+        mpfr_digamma (y[i], x, MPFR_RNDA);
-+      mpfr_set (z, y[1], MPFR_RNDA);
-+      MPFR_ASSERTN (mpfr_equal_p (y[0], z));
-+      mpfr_clear (x);
-+    }
-+
-+  for (i = 0; i < NPREC; i++)
-+    mpfr_clear (y[i]);
-+  mpfr_clear (z);
-+
-+  set_emin (emin);
-+  set_emax (emax);
-+}
-+
- int
- main (int argc, char *argv[])
- {
-   tests_start_mpfr ();
- 
-   special ();
-+  bug20210206 ();
- 
-   test_generic (MPFR_PREC_MIN, 200, 20);
- 
-diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
---- mpfr-4.1.0-a/PATCHES	2021-02-11 12:52:52.519350662 +0000
-+++ mpfr-4.1.0-b/PATCHES	2021-02-11 12:52:52.563350183 +0000
-@@ -0,0 +1 @@
-+digamma-interm-zero
-diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
---- mpfr-4.1.0-a/VERSION	2021-02-11 12:50:22.424987002 +0000
-+++ mpfr-4.1.0-b/VERSION	2021-02-11 12:52:52.563350183 +0000
-@@ -1 +1 @@
--4.1.0-p5
-+4.1.0-p6
-diff -Naurd mpfr-4.1.0-a/src/digamma.c mpfr-4.1.0-b/src/digamma.c
---- mpfr-4.1.0-a/src/digamma.c	2021-02-11 12:50:22.412987133 +0000
-+++ mpfr-4.1.0-b/src/digamma.c	2021-02-11 12:52:52.547350357 +0000
-@@ -296,21 +296,26 @@
-       errt = mpfr_digamma_approx (t, x_plus_j);
-       expt = MPFR_GET_EXP (t);
-       mpfr_sub (t, t, u, MPFR_RNDN);
--      if (MPFR_GET_EXP (t) < expt)
--        errt += expt - MPFR_EXP(t);
--      /* Warning: if u is zero (which happens when x_plus_j >= min at the
--         beginning of the while loop above), EXP(u) is not defined.
--         In this case we have no error from u. */
--      if (MPFR_NOTZERO(u) && MPFR_GET_EXP (t) < MPFR_GET_EXP (u))
--        erru += MPFR_EXP(u) - MPFR_EXP(t);
--      if (errt > erru)
--        errt = errt + 1;
--      else if (errt == erru)
--        errt = errt + 2;
--      else
--        errt = erru + 1;
--      if (MPFR_CAN_ROUND (t, p - errt, MPFR_PREC(y), rnd_mode))
--        break;
-+      /* Warning! t may be zero (more likely in small precision). Note
-+         that in this case, this is an exact zero, not an underflow. */
-+      if (MPFR_NOTZERO(t))
-+        {
-+          if (MPFR_GET_EXP (t) < expt)
-+            errt += expt - MPFR_EXP(t);
-+          /* Warning: if u is zero (which happens when x_plus_j >= min at the
-+             beginning of the while loop above), EXP(u) is not defined.
-+             In this case we have no error from u. */
-+          if (MPFR_NOTZERO(u) && MPFR_GET_EXP (t) < MPFR_GET_EXP (u))
-+            erru += MPFR_EXP(u) - MPFR_EXP(t);
-+          if (errt > erru)
-+            errt = errt + 1;
-+          else if (errt == erru)
-+            errt = errt + 2;
-+          else
-+            errt = erru + 1;
-+          if (MPFR_CAN_ROUND (t, p - errt, MPFR_PREC(y), rnd_mode))
-+            break;
-+        }
-       MPFR_ZIV_NEXT (loop, p);
-       mpfr_set_prec (t, p);
-       mpfr_set_prec (u, p);
-diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
---- mpfr-4.1.0-a/src/mpfr.h	2021-02-11 12:50:22.424987002 +0000
-+++ mpfr-4.1.0-b/src/mpfr.h	2021-02-11 12:52:52.559350226 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 4
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "4.1.0-p5"
-+#define MPFR_VERSION_STRING "4.1.0-p6"
- 
- /* User macros:
-    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
-diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
---- mpfr-4.1.0-a/src/version.c	2021-02-11 12:50:22.424987002 +0000
-+++ mpfr-4.1.0-b/src/version.c	2021-02-11 12:52:52.559350226 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "4.1.0-p5";
-+  return "4.1.0-p6";
- }
-diff -Naurd mpfr-4.1.0-a/tests/tdigamma.c mpfr-4.1.0-b/tests/tdigamma.c
---- mpfr-4.1.0-a/tests/tdigamma.c	2021-02-11 12:50:22.412987133 +0000
-+++ mpfr-4.1.0-b/tests/tdigamma.c	2021-02-11 12:52:52.547350357 +0000
-@@ -90,6 +90,26 @@
-   set_emax (emax);
- }
- 
-+/* another test that fails with GMP_CHECK_RANDOMIZE=1612741376857003
-+   on revision 14398 */
-+static void
-+bug20210208 (void)
-+{
-+  mpfr_t x, y;
-+  int inex;
-+
-+  mpfr_init2 (x, 73);
-+  mpfr_init2 (y, 1);
-+  mpfr_set_str (x, "1.4613470547060071827450", 10, MPFR_RNDN);
-+  mpfr_clear_flags ();
-+  inex = mpfr_digamma (y, x, MPFR_RNDU);
-+  MPFR_ASSERTN (mpfr_cmp_si_2exp (y, -1, -12) == 0);
-+  MPFR_ASSERTN (inex > 0);
-+  MPFR_ASSERTN (__gmpfr_flags == MPFR_FLAGS_INEXACT);
-+  mpfr_clear (x);
-+  mpfr_clear (y);
-+}
-+
- int
- main (int argc, char *argv[])
- {
-@@ -97,6 +117,7 @@
- 
-   special ();
-   bug20210206 ();
-+  bug20210208 ();
- 
-   test_generic (MPFR_PREC_MIN, 200, 20);
- 
-diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
---- mpfr-4.1.0-a/PATCHES	2021-02-11 12:53:38.382850990 +0000
-+++ mpfr-4.1.0-b/PATCHES	2021-02-11 12:53:38.426850512 +0000
-@@ -0,0 +1 @@
-+jn-interm-zero
-diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
---- mpfr-4.1.0-a/VERSION	2021-02-11 12:52:52.563350183 +0000
-+++ mpfr-4.1.0-b/VERSION	2021-02-11 12:53:38.426850512 +0000
-@@ -1 +1 @@
--4.1.0-p6
-+4.1.0-p7
-diff -Naurd mpfr-4.1.0-a/src/jyn_asympt.c mpfr-4.1.0-b/src/jyn_asympt.c
---- mpfr-4.1.0-a/src/jyn_asympt.c	2020-07-10 10:33:32.000000000 +0000
-+++ mpfr-4.1.0-b/src/jyn_asympt.c	2021-02-11 12:53:38.410850685 +0000
-@@ -69,6 +69,8 @@
-   MPFR_ZIV_INIT (loop, w);
-   for (;;)
-     {
-+      int ok = 1;
-+
-       mpfr_set_prec (c, w);
-       mpfr_init2 (s, w);
-       mpfr_init2 (P, w);
-@@ -92,6 +94,13 @@
-       /* now s approximates sin(z)+cos(z), and c approximates sin(z)-cos(z),
-          with total absolute error bounded by 2^(1-w). */
- 
-+      /* if s or c is zero, MPFR_GET_EXP will fail below */
-+      if (MPFR_IS_ZERO(s) || MPFR_IS_ZERO(c))
-+        {
-+          ok = 0;
-+          goto clear;
-+        }
-+
-       /* precompute 1/(8|z|) */
-       mpfr_si_div (iz, MPFR_IS_POS(z) ? 1 : -1, z, MPFR_RNDN);   /* err <= 1 */
-       mpfr_div_2ui (iz, iz, 3, MPFR_RNDN);
-@@ -257,6 +266,9 @@
-       err = (err >= err2) ? err + 1 : err2 + 1;
-       /* the absolute error on c is bounded by 2^(err - w) */
- 
-+      err -= MPFR_GET_EXP (c);
-+
-+    clear:
-       mpfr_clear (s);
-       mpfr_clear (P);
-       mpfr_clear (Q);
-@@ -266,8 +278,7 @@
-       mpfr_clear (err_s);
-       mpfr_clear (err_u);
- 
--      err -= MPFR_GET_EXP (c);
--      if (MPFR_LIKELY (MPFR_CAN_ROUND (c, w - err, MPFR_PREC(res), r)))
-+      if (ok && MPFR_LIKELY (MPFR_CAN_ROUND (c, w - err, MPFR_PREC(res), r)))
-         break;
-       if (diverge != 0)
-         {
-diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
---- mpfr-4.1.0-a/src/mpfr.h	2021-02-11 12:52:52.559350226 +0000
-+++ mpfr-4.1.0-b/src/mpfr.h	2021-02-11 12:53:38.422850555 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 4
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "4.1.0-p6"
-+#define MPFR_VERSION_STRING "4.1.0-p7"
- 
- /* User macros:
-    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
-diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
---- mpfr-4.1.0-a/src/version.c	2021-02-11 12:52:52.559350226 +0000
-+++ mpfr-4.1.0-b/src/version.c	2021-02-11 12:53:38.426850512 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "4.1.0-p6";
-+  return "4.1.0-p7";
- }
-diff -Naurd mpfr-4.1.0-a/tests/tj0.c mpfr-4.1.0-b/tests/tj0.c
---- mpfr-4.1.0-a/tests/tj0.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tj0.c	2021-02-11 12:53:38.410850685 +0000
-@@ -27,6 +27,25 @@
- #define REDUCE_EMAX 262143 /* otherwise arg. reduction is too expensive */
- #include "tgeneric.c"
- 
-+/* bug found in revision 14399 with GMP_CHECK_RANDOMIZE=1612721106588971 */
-+static void
-+bug20210208 (void)
-+{
-+  mpfr_t x, y;
-+  int inex;
-+
-+  mpfr_init2 (x, 79);
-+  mpfr_init2 (y, 1);
-+  mpfr_set_str (x, "2.552495117262005805960565e+02", 10, MPFR_RNDN);
-+  mpfr_clear_flags ();
-+  inex = mpfr_j0 (y, x, MPFR_RNDZ);
-+  MPFR_ASSERTN (mpfr_cmp_si_2exp (y, -1, -5) == 0);
-+  MPFR_ASSERTN (inex > 0);
-+  MPFR_ASSERTN (__gmpfr_flags == MPFR_FLAGS_INEXACT);
-+  mpfr_clear (x);
-+  mpfr_clear (y);
-+}
-+
- int
- main (int argc, char *argv[])
- {
-@@ -35,6 +54,8 @@
- 
-   tests_start_mpfr ();
- 
-+  bug20210208 ();
-+
-   mpfr_init (x);
-   mpfr_init (y);
- 
-diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
---- mpfr-4.1.0-a/PATCHES	2021-02-17 17:22:34.594973310 +0000
-+++ mpfr-4.1.0-b/PATCHES	2021-02-17 17:22:34.702972090 +0000
-@@ -0,0 +1 @@
-+digamma-interm-zero2
-diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
---- mpfr-4.1.0-a/VERSION	2021-02-11 12:53:38.426850512 +0000
-+++ mpfr-4.1.0-b/VERSION	2021-02-17 17:22:34.702972090 +0000
-@@ -1 +1 @@
--4.1.0-p7
-+4.1.0-p8
-diff -Naurd mpfr-4.1.0-a/src/digamma.c mpfr-4.1.0-b/src/digamma.c
---- mpfr-4.1.0-a/src/digamma.c	2021-02-11 12:52:52.547350357 +0000
-+++ mpfr-4.1.0-b/src/digamma.c	2021-02-17 17:22:34.690972226 +0000
-@@ -173,16 +173,19 @@
-       mpfr_digamma (v, u, MPFR_RNDN);   /* error <= 1/2 ulp */
-       expv = MPFR_GET_EXP (v);
-       mpfr_sub (v, v, t, MPFR_RNDN);
--      if (MPFR_GET_EXP (v) < MPFR_GET_EXP (t))
--        e1 += MPFR_EXP(t) - MPFR_EXP(v); /* scale error for t wrt new v */
--      /* now take into account the 1/2 ulp error for v */
--      if (expv - MPFR_EXP(v) - 1 > e1)
--        e1 = expv - MPFR_EXP(v) - 1;
--      else
--        e1 ++;
--      e1 ++; /* rounding error for mpfr_sub */
--      if (MPFR_CAN_ROUND (v, p - e1, MPFR_PREC(y), rnd_mode))
--        break;
-+      if (MPFR_NOTZERO(v))
-+        {
-+          if (MPFR_GET_EXP (v) < MPFR_GET_EXP (t))
-+            e1 += MPFR_EXP(t) - MPFR_EXP(v); /* scale error for t wrt new v */
-+          /* now take into account the 1/2 ulp error for v */
-+          if (expv - MPFR_EXP(v) - 1 > e1)
-+            e1 = expv - MPFR_EXP(v) - 1;
-+          else
-+            e1 ++;
-+          e1 ++; /* rounding error for mpfr_sub */
-+          if (MPFR_CAN_ROUND (v, p - e1, MPFR_PREC(y), rnd_mode))
-+            break;
-+        }
-       MPFR_ZIV_NEXT (loop, p);
-       mpfr_set_prec (t, p);
-       mpfr_set_prec (v, p);
-@@ -416,10 +419,8 @@
-         }
-     }
- 
--  if (MPFR_IS_NEG(x))
--    inex = mpfr_digamma_reflection (y, x, rnd_mode);
-   /* if x < 1/2 we use the reflection formula */
--  else if (MPFR_EXP(x) < 0)
-+  if (MPFR_IS_NEG(x) || MPFR_EXP(x) < 0)
-     inex = mpfr_digamma_reflection (y, x, rnd_mode);
-   else
-     inex = mpfr_digamma_positive (y, x, rnd_mode);
-diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
---- mpfr-4.1.0-a/src/mpfr.h	2021-02-11 12:53:38.422850555 +0000
-+++ mpfr-4.1.0-b/src/mpfr.h	2021-02-17 17:22:34.702972090 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 4
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "4.1.0-p7"
-+#define MPFR_VERSION_STRING "4.1.0-p8"
- 
- /* User macros:
-    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
-diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
---- mpfr-4.1.0-a/src/version.c	2021-02-11 12:53:38.426850512 +0000
-+++ mpfr-4.1.0-b/src/version.c	2021-02-17 17:22:34.702972090 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "4.1.0-p7";
-+  return "4.1.0-p8";
- }
-diff -Naurd mpfr-4.1.0-a/tests/tdigamma.c mpfr-4.1.0-b/tests/tdigamma.c
---- mpfr-4.1.0-a/tests/tdigamma.c	2021-02-11 12:52:52.547350357 +0000
-+++ mpfr-4.1.0-b/tests/tdigamma.c	2021-02-17 17:22:34.690972226 +0000
-@@ -110,6 +110,26 @@
-   mpfr_clear (y);
- }
- 
-+/* another test that fails with GMP_CHECK_RANDOMIZE=1613197421465830
-+   on revision 14429 */
-+static void
-+bug20210215 (void)
-+{
-+  mpfr_t x, y;
-+  int inex;
-+
-+  mpfr_init2 (x, 510);
-+  mpfr_init2 (y, 4);
-+  mpfr_set_str (x, "-8.2923051438433494998166335341807999322052669984208422481227138906096000469898717007386115912802685588348601663465077353194268894939972221117314512518182580e+35", 10, MPFR_RNDN);
-+  mpfr_clear_flags ();
-+  inex = mpfr_digamma (y, x, MPFR_RNDU);
-+  MPFR_ASSERTN (mpfr_cmp_ui0 (y, 88) == 0);
-+  MPFR_ASSERTN (inex > 0);
-+  MPFR_ASSERTN (__gmpfr_flags == MPFR_FLAGS_INEXACT);
-+  mpfr_clear (x);
-+  mpfr_clear (y);
-+}
-+
- int
- main (int argc, char *argv[])
- {
-@@ -118,6 +138,7 @@
-   special ();
-   bug20210206 ();
-   bug20210208 ();
-+  bug20210215 ();
- 
-   test_generic (MPFR_PREC_MIN, 200, 20);
- 
-diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
---- mpfr-4.1.0-a/PATCHES	2021-02-17 17:25:46.396981483 +0000
-+++ mpfr-4.1.0-b/PATCHES	2021-02-17 17:25:46.440981068 +0000
-@@ -0,0 +1 @@
-+jyn_asympt-interm-zero
-diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
---- mpfr-4.1.0-a/VERSION	2021-02-17 17:22:34.702972090 +0000
-+++ mpfr-4.1.0-b/VERSION	2021-02-17 17:25:46.440981068 +0000
-@@ -1 +1 @@
--4.1.0-p8
-+4.1.0-p9
-diff -Naurd mpfr-4.1.0-a/src/jyn_asympt.c mpfr-4.1.0-b/src/jyn_asympt.c
---- mpfr-4.1.0-a/src/jyn_asympt.c	2021-02-11 12:53:38.410850685 +0000
-+++ mpfr-4.1.0-b/src/jyn_asympt.c	2021-02-17 17:25:46.424981219 +0000
-@@ -69,7 +69,7 @@
-   MPFR_ZIV_INIT (loop, w);
-   for (;;)
-     {
--      int ok = 1;
-+      int ok = 0;
- 
-       mpfr_set_prec (c, w);
-       mpfr_init2 (s, w);
-@@ -96,10 +96,7 @@
- 
-       /* if s or c is zero, MPFR_GET_EXP will fail below */
-       if (MPFR_IS_ZERO(s) || MPFR_IS_ZERO(c))
--        {
--          ok = 0;
--          goto clear;
--        }
-+        goto clear; /* with ok=0 */
- 
-       /* precompute 1/(8|z|) */
-       mpfr_si_div (iz, MPFR_IS_POS(z) ? 1 : -1, z, MPFR_RNDN);   /* err <= 1 */
-@@ -227,6 +224,9 @@
-           mpfr_sub (s, c, s, MPFR_RNDN);
- #endif
-         }
-+      if (MPFR_IS_ZERO(s))
-+        goto clear; /* with ok=0 */
-+      ok = 1;
-       if ((n & 2) != 0)
-         mpfr_neg (s, s, MPFR_RNDN);
-       if (MPFR_GET_EXP (s) > err)
-diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
---- mpfr-4.1.0-a/src/mpfr.h	2021-02-17 17:22:34.702972090 +0000
-+++ mpfr-4.1.0-b/src/mpfr.h	2021-02-17 17:25:46.436981105 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 4
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "4.1.0-p8"
-+#define MPFR_VERSION_STRING "4.1.0-p9"
- 
- /* User macros:
-    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
-diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
---- mpfr-4.1.0-a/src/version.c	2021-02-17 17:22:34.702972090 +0000
-+++ mpfr-4.1.0-b/src/version.c	2021-02-17 17:25:46.440981068 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "4.1.0-p8";
-+  return "4.1.0-p9";
- }
-diff -Naurd mpfr-4.1.0-a/tests/mpfr-test.h mpfr-4.1.0-b/tests/mpfr-test.h
---- mpfr-4.1.0-a/tests/mpfr-test.h	2020-06-29 13:57:32.000000000 +0000
-+++ mpfr-4.1.0-b/tests/mpfr-test.h	2021-02-17 17:25:46.424981219 +0000
-@@ -191,6 +191,8 @@
- 
- #define mpfr_cmp0(x,y) (MPFR_ASSERTN (!MPFR_IS_NAN (x) && !MPFR_IS_NAN (y)), mpfr_cmp (x,y))
- #define mpfr_cmp_ui0(x,i) (MPFR_ASSERTN (!MPFR_IS_NAN (x)), mpfr_cmp_ui (x,i))
-+#define mpfr_cmp_si_2exp0(x,i,e) (MPFR_ASSERTN (!MPFR_IS_NAN (x)), \
-+                                  mpfr_cmp_si_2exp (x,i,e))
- 
- /* define CHECK_EXTERNAL if you want to check mpfr against another library
-    with correct rounding. You'll probably have to modify mpfr_print_raw()
-diff -Naurd mpfr-4.1.0-a/tests/tj1.c mpfr-4.1.0-b/tests/tj1.c
---- mpfr-4.1.0-a/tests/tj1.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tj1.c	2021-02-17 17:25:46.424981219 +0000
-@@ -55,14 +55,14 @@
-               /* since |x| is just above 2^e, |j1(x)| is just above 2^(e-1),
-                  thus y should be 2^(e-1) and the inexact flag should be
-                  of opposite sign of x */
--              MPFR_ASSERTN(mpfr_cmp_si_2exp (y, sign, e - 1) == 0);
-+              MPFR_ASSERTN(mpfr_cmp_si_2exp0 (y, sign, e - 1) == 0);
-               MPFR_ASSERTN(VSIGN (inex) * sign < 0);
-             }
-           else
-             {
-               /* here |y| should be 0.5*2^emin and the inexact flag should
-                  have the sign of x */
--              MPFR_ASSERTN(mpfr_cmp_si_2exp (y, sign, e) == 0);
-+              MPFR_ASSERTN(mpfr_cmp_si_2exp0 (y, sign, e) == 0);
-               MPFR_ASSERTN(VSIGN (inex) * sign > 0);
-             }
-         }
-@@ -72,6 +72,26 @@
-   mpfr_clear (y);
- }
- 
-+/* a test that fails with GMP_CHECK_RANDOMIZE=1613146232984428
-+   on revision 14429 */
-+static void
-+bug20210215 (void)
-+{
-+  mpfr_t x, y;
-+  int inex;
-+
-+  mpfr_init2 (x, 221);
-+  mpfr_init2 (y, 1);
-+  mpfr_set_str (x, "1.6484611511696130037307738844228498447763863563070374544054791168614e+01", 10, MPFR_RNDN);
-+  mpfr_clear_flags ();
-+  inex = mpfr_j1 (y, x, MPFR_RNDZ);
-+  MPFR_ASSERTN (mpfr_cmp_si_2exp0 (y, -1, -9) == 0);
-+  MPFR_ASSERTN (inex > 0);
-+  MPFR_ASSERTN (__gmpfr_flags == MPFR_FLAGS_INEXACT);
-+  mpfr_clear (x);
-+  mpfr_clear (y);
-+}
-+
- int
- main (int argc, char *argv[])
- {
-@@ -79,6 +99,8 @@
- 
-   tests_start_mpfr ();
- 
-+  bug20210215 ();
-+
-   test_small ();
- 
-   mpfr_init (x);
-diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
---- mpfr-4.1.0-a/PATCHES	2021-03-09 13:55:43.183158946 +0000
-+++ mpfr-4.1.0-b/PATCHES	2021-03-09 13:55:43.223158508 +0000
-@@ -0,0 +1 @@
-+macros
-diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
---- mpfr-4.1.0-a/VERSION	2021-02-17 17:25:46.440981068 +0000
-+++ mpfr-4.1.0-b/VERSION	2021-03-09 13:55:43.223158508 +0000
-@@ -1 +1 @@
--4.1.0-p9
-+4.1.0-p10
-diff -Naurd mpfr-4.1.0-a/doc/mpfr.info mpfr-4.1.0-b/doc/mpfr.info
---- mpfr-4.1.0-a/doc/mpfr.info	2020-07-10 11:59:13.000000000 +0000
-+++ mpfr-4.1.0-b/doc/mpfr.info	2021-03-09 13:55:51.167071327 +0000
-@@ -3217,7 +3217,11 @@
- 
-    Each function in this interface is also implemented as a macro for
- efficiency reasons: for example ‘mpfr_custom_init (s, p)’ uses the
--macro, while ‘(mpfr_custom_init) (s, p)’ uses the function.
-+macro, while ‘(mpfr_custom_init) (s, p)’ uses the function.  Note that
-+the macro may evaluate arguments multiple times (or none).  Moreover,
-+macros implementing functions with the ‘void’ return type may not be
-+used in contexts where an expression is expected, e.g., inside
-+‘for(...)’ or before a comma operator.
- 
-    Note 1: MPFR functions may still initialize temporary floating-point
- numbers using ‘mpfr_init’ and similar functions.  See Custom Allocation
-@@ -4579,13 +4583,13 @@
-                                                               (line 115)
- * mpfr_csch:                             Transcendental Functions.
-                                                               (line 180)
--* mpfr_custom_get_exp:                   Custom Interface.    (line  76)
--* mpfr_custom_get_kind:                  Custom Interface.    (line  66)
--* mpfr_custom_get_significand:           Custom Interface.    (line  71)
--* mpfr_custom_get_size:                  Custom Interface.    (line  37)
--* mpfr_custom_init:                      Custom Interface.    (line  41)
--* mpfr_custom_init_set:                  Custom Interface.    (line  48)
--* mpfr_custom_move:                      Custom Interface.    (line  85)
-+* mpfr_custom_get_exp:                   Custom Interface.    (line  80)
-+* mpfr_custom_get_kind:                  Custom Interface.    (line  70)
-+* mpfr_custom_get_significand:           Custom Interface.    (line  75)
-+* mpfr_custom_get_size:                  Custom Interface.    (line  41)
-+* mpfr_custom_init:                      Custom Interface.    (line  45)
-+* mpfr_custom_init_set:                  Custom Interface.    (line  52)
-+* mpfr_custom_move:                      Custom Interface.    (line  89)
- * MPFR_DECL_INIT:                        Initialization Functions.
-                                                               (line  77)
- * mpfr_digamma:                          Transcendental Functions.
-@@ -5165,19 +5169,19 @@
- Node: Memory Handling Functions\x7f155904
- Node: Compatibility with MPF\x7f157792
- Node: Custom Interface\x7f160961
--Node: Internals\x7f165592
--Node: API Compatibility\x7f167136
--Node: Type and Macro Changes\x7f169084
--Node: Added Functions\x7f172267
--Node: Changed Functions\x7f177074
--Node: Removed Functions\x7f184433
--Node: Other Changes\x7f185163
--Node: MPFR and the IEEE 754 Standard\x7f186864
--Node: Contributors\x7f189481
--Node: References\x7f192620
--Node: GNU Free Documentation License\x7f194501
--Node: Concept Index\x7f217095
--Node: Function and Type Index\x7f223168
-+Node: Internals\x7f165852
-+Node: API Compatibility\x7f167396
-+Node: Type and Macro Changes\x7f169344
-+Node: Added Functions\x7f172527
-+Node: Changed Functions\x7f177334
-+Node: Removed Functions\x7f184693
-+Node: Other Changes\x7f185423
-+Node: MPFR and the IEEE 754 Standard\x7f187124
-+Node: Contributors\x7f189741
-+Node: References\x7f192880
-+Node: GNU Free Documentation License\x7f194761
-+Node: Concept Index\x7f217355
-+Node: Function and Type Index\x7f223428
- \x1f
- End Tag Table
- 
-diff -Naurd mpfr-4.1.0-a/doc/mpfr.texi mpfr-4.1.0-b/doc/mpfr.texi
---- mpfr-4.1.0-a/doc/mpfr.texi	2020-07-10 11:52:33.000000000 +0000
-+++ mpfr-4.1.0-b/doc/mpfr.texi	2021-03-09 13:55:43.211158639 +0000
-@@ -3817,6 +3817,12 @@
- Each function in this interface is also implemented as a macro for
- efficiency reasons: for example @code{mpfr_custom_init (s, p)}
- uses the macro, while @code{(mpfr_custom_init) (s, p)} uses the function.
-+Note that the macro may evaluate arguments multiple times (or none).
-+Moreover, macros implementing functions with the @code{void} return type
-+may not be used in contexts where an expression is expected, e.g., inside
-+(a)code{for(...)} or before a comma operator.
-+(a)c These limitations with macros cannot be avoided in a C90 compatible way.
-+(a)c In the future, inline functions could be used.
- 
- Note 1: MPFR functions may still initialize temporary floating-point numbers
- using @code{mpfr_init} and similar functions. See Custom Allocation (GNU MP)@.
-diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
---- mpfr-4.1.0-a/src/mpfr.h	2021-02-17 17:25:46.436981105 +0000
-+++ mpfr-4.1.0-b/src/mpfr.h	2021-03-09 13:55:43.223158508 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 4
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "4.1.0-p9"
-+#define MPFR_VERSION_STRING "4.1.0-p10"
- 
- /* User macros:
-    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
-@@ -833,23 +833,39 @@
-    even if it produces faster and smaller code. */
- #ifndef MPFR_USE_NO_MACRO
- 
--/* Inlining these functions is both faster and smaller */
--#define mpfr_nan_p(_x)      ((_x)->_mpfr_exp == __MPFR_EXP_NAN)
--#define mpfr_inf_p(_x)      ((_x)->_mpfr_exp == __MPFR_EXP_INF)
--#define mpfr_zero_p(_x)     ((_x)->_mpfr_exp == __MPFR_EXP_ZERO)
--#define mpfr_regular_p(_x)  ((_x)->_mpfr_exp >  __MPFR_EXP_INF)
-+/* In the implementation of these macros, we need to make sure that the
-+   arguments are evaluated one time exactly and that type conversion is
-+   done as it would be with a function. Tests should be added to ensure
-+   that.
-+   Note that the macros for the custom interface are not concerned; the
-+   MPFR manual has been clarified. */
-+
-+/* Prevent x from being used as an lvalue.
-+   Thanks to Wojtek Lerch and Tim Rentsch for the idea. */
-+#define MPFR_VALUE_OF(x)  (0 ? (x) : (x))
-+
-+/* The following macro converts the argument to mpfr_srcptr, as in type
-+   conversion for function parameters. But it will detect disallowed
-+   implicit conversions, e.g. when the argument has an integer type. */
-+#define MPFR_SRCPTR(x) ((mpfr_srcptr) (0 ? (x) : (mpfr_srcptr) (x)))
-+#define MPFR_GET_SIGN(_x) MPFR_VALUE_OF(MPFR_SIGN(MPFR_SRCPTR(_x)))
-+
-+#define mpfr_nan_p(_x)      (MPFR_SRCPTR(_x)->_mpfr_exp == __MPFR_EXP_NAN)
-+#define mpfr_inf_p(_x)      (MPFR_SRCPTR(_x)->_mpfr_exp == __MPFR_EXP_INF)
-+#define mpfr_zero_p(_x)     (MPFR_SRCPTR(_x)->_mpfr_exp == __MPFR_EXP_ZERO)
-+#define mpfr_regular_p(_x)  (MPFR_SRCPTR(_x)->_mpfr_exp >  __MPFR_EXP_INF)
-+
-+/* mpfr_sgn is documented as a macro, thus the following code is fine.
-+   But it would be safer to regard it as a function in some future
-+   MPFR version. */
- #define mpfr_sgn(_x)                                               \
-   ((_x)->_mpfr_exp < __MPFR_EXP_INF ?                              \
-    (mpfr_nan_p (_x) ? mpfr_set_erangeflag () : (mpfr_void) 0), 0 : \
-    MPFR_SIGN (_x))
- 
--/* Prevent them from using as lvalues */
--#define MPFR_VALUE_OF(x)  (0 ? (x) : (x))
--#define mpfr_get_prec(_x) MPFR_VALUE_OF((_x)->_mpfr_prec)
--#define mpfr_get_exp(_x)  MPFR_VALUE_OF((_x)->_mpfr_exp)
--/* Note 1: If need be, the MPFR_VALUE_OF can be used for other expressions
--   (of any type). Thanks to Wojtek Lerch and Tim Rentsch for the idea.
--   Note 2: Defining mpfr_get_exp() as a macro has the effect to disable
-+#define mpfr_get_prec(_x) MPFR_VALUE_OF(MPFR_SRCPTR(_x)->_mpfr_prec)
-+#define mpfr_get_exp(_x)  MPFR_VALUE_OF(MPFR_SRCPTR(_x)->_mpfr_exp)
-+/* Note: Defining mpfr_get_exp() as a macro has the effect to disable
-    the check that the argument is a pure FP number (done in the function);
-    this increases the risk of undetected error and makes debugging more
-    complex. Is it really worth in practice? (Potential FIXME) */
-@@ -861,11 +877,17 @@
- 
- #define mpfr_cmp_ui(b,i) mpfr_cmp_ui_2exp((b),(i),0)
- #define mpfr_cmp_si(b,i) mpfr_cmp_si_2exp((b),(i),0)
--#define mpfr_set(a,b,r)  mpfr_set4(a,b,r,MPFR_SIGN(b))
-+#if __GNUC__ > 2 || __GNUC_MINOR__ >= 95
-+#define mpfr_set(a,b,r)                         \
-+  __extension__ ({                              \
-+      mpfr_srcptr _p = (b);                     \
-+      mpfr_set4(a,_p,r,MPFR_SIGN(_p));          \
-+    })
-+#endif
- #define mpfr_abs(a,b,r)  mpfr_set4(a,b,r,1)
--#define mpfr_copysign(a,b,c,r) mpfr_set4(a,b,r,MPFR_SIGN(c))
-+#define mpfr_copysign(a,b,c,r) mpfr_set4(a,b,r,MPFR_GET_SIGN(c))
- #define mpfr_setsign(a,b,s,r) mpfr_set4(a,b,r,(s) ? -1 : 1)
--#define mpfr_signbit(x)  (MPFR_SIGN(x) < 0)
-+#define mpfr_signbit(x)  (MPFR_GET_SIGN(x) < 0)
- #define mpfr_cmp(b, c)   mpfr_cmp3(b, c, 1)
- #define mpfr_mul_2exp(y,x,n,r) mpfr_mul_2ui((y),(x),(n),(r))
- #define mpfr_div_2exp(y,x,n,r) mpfr_div_2ui((y),(x),(n),(r))
-diff -Naurd mpfr-4.1.0-a/src/ubf.c mpfr-4.1.0-b/src/ubf.c
---- mpfr-4.1.0-a/src/ubf.c	2020-02-12 01:38:57.000000000 +0000
-+++ mpfr-4.1.0-b/src/ubf.c	2021-03-09 13:55:43.211158639 +0000
-@@ -78,7 +78,7 @@
-       mpfr_get_prec (b), mpfr_log_prec, b,
-       mpfr_get_prec (c), mpfr_log_prec, c),
-      ("a[%Pu]=%.*Rg",
--      mpfr_get_prec (a), mpfr_log_prec, a));
-+      mpfr_get_prec ((mpfr_ptr) a), mpfr_log_prec, a));
- 
-   MPFR_ASSERTD ((mpfr_ptr) a != b);
-   MPFR_ASSERTD ((mpfr_ptr) a != c);
-diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
---- mpfr-4.1.0-a/src/version.c	2021-02-17 17:25:46.440981068 +0000
-+++ mpfr-4.1.0-b/src/version.c	2021-03-09 13:55:43.223158508 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "4.1.0-p9";
-+  return "4.1.0-p10";
- }
-diff -Naurd mpfr-4.1.0-a/tests/mpfr-test.h mpfr-4.1.0-b/tests/mpfr-test.h
---- mpfr-4.1.0-a/tests/mpfr-test.h	2021-02-17 17:25:46.424981219 +0000
-+++ mpfr-4.1.0-b/tests/mpfr-test.h	2021-03-09 13:55:43.211158639 +0000
-@@ -92,6 +92,32 @@
- #define STRINGIZE(S) #S
- #define MAKE_STR(S) STRINGIZE(S)
- 
-+/* In C (but not C++), mpfr_ptr and mpfr_srcptr arguments can be provided
-+   in a different pointer type, such as void *. For functions implemented
-+   as macros, the type conversion for the function parameters will not be
-+   done by the compiler, which means potential bugs in these implementations
-+   if we forget to take these unusual cases into account. So we need to test
-+   such arguments, in order to make sure that the arguments are converted to
-+   the expected type when needed.
-+
-+   However, at least when the function is not implemented as a macro (which
-+   is the case when MPFR_USE_NO_MACRO is defined), such tests with void *
-+   arguments are not valid in C++; therefore, we will not do the cast to
-+   void * if the __cplusplus macro is defined. And with GCC compilers (and
-+   compatible), we will ignore the -Wc++-compat option around these tests.
-+
-+   Note: in the future, inline functions could be used instead of macros,
-+   and such tests would become useless (except to detect compiler bugs).
-+*/
-+#if defined (__cplusplus)
-+#define VOIDP_CAST(X) (X)
-+#else
-+#define VOIDP_CAST(X) ((void *) (X))
-+#if defined (__GNUC__)
-+#define IGNORE_CPP_COMPAT
-+#endif
-+#endif
-+
- #if defined (__cplusplus)
- extern "C" {
- #endif
-diff -Naurd mpfr-4.1.0-a/tests/tcopysign.c mpfr-4.1.0-b/tests/tcopysign.c
---- mpfr-4.1.0-a/tests/tcopysign.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tcopysign.c	2021-03-09 13:55:43.211158639 +0000
-@@ -26,26 +26,72 @@
- copysign_variant (mpfr_ptr z, mpfr_srcptr x, mpfr_srcptr y,
-                   mpfr_rnd_t rnd_mode, int k)
- {
-+  mpfr_srcptr p;
-+  int a = 0, b = 0, c = 0;
-+
-+  /* invalid sign, to test that the sign is always correctly set */
-+  MPFR_SIGN (z) = 0;
-+
-+  if (k >= 8)
-+    {
-+      MPFR_ASSERTN (MPFR_PREC (z) >= MPFR_PREC (x));
-+      mpfr_set (z, x, MPFR_RNDN);
-+      p = z;
-+      k -= 8;
-+    }
-+  else
-+    p = x;
-+
-   mpfr_clear_flags ();
-   switch (k)
-     {
-     case 0:
--      mpfr_copysign (z, x, y, MPFR_RNDN);
-+      mpfr_copysign (z, p, y, rnd_mode);
-       return;
-     case 1:
--      (mpfr_copysign) (z, x, y, MPFR_RNDN);
-+      (mpfr_copysign) (z, p, y, rnd_mode);
-       return;
-     case 2:
--      mpfr_setsign (z, x, mpfr_signbit (y), MPFR_RNDN);
-+#ifdef IGNORE_CPP_COMPAT
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wc++-compat"
-+#endif
-+      mpfr_copysign ((a++, VOIDP_CAST(z)),
-+                     (b++, VOIDP_CAST(p)),
-+                     (c++, VOIDP_CAST(y)), rnd_mode);
-+#ifdef IGNORE_CPP_COMPAT
-+#pragma GCC diagnostic pop
-+#endif
-+      MPFR_ASSERTN (a == 1);
-+      MPFR_ASSERTN (b == 1);
-+      MPFR_ASSERTN (c == 1);
-       return;
-     case 3:
--      mpfr_setsign (z, x, (mpfr_signbit) (y), MPFR_RNDN);
-+      mpfr_setsign (z, p, mpfr_signbit (y), rnd_mode);
-       return;
-     case 4:
--      (mpfr_setsign) (z, x, mpfr_signbit (y), MPFR_RNDN);
-+      mpfr_setsign (z, p, (mpfr_signbit) (y), rnd_mode);
-       return;
-     case 5:
--      (mpfr_setsign) (z, x, (mpfr_signbit) (y), MPFR_RNDN);
-+      (mpfr_setsign) (z, p, mpfr_signbit (y), rnd_mode);
-+      return;
-+    case 6:
-+      (mpfr_setsign) (z, p, (mpfr_signbit) (y), rnd_mode);
-+      return;
-+    case 7:
-+#ifdef IGNORE_CPP_COMPAT
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wc++-compat"
-+#endif
-+      mpfr_setsign ((a++, VOIDP_CAST(z)),
-+                    (b++, VOIDP_CAST(p)),
-+                    mpfr_signbit ((c++, VOIDP_CAST(y))), rnd_mode);
-+#ifdef IGNORE_CPP_COMPAT
-+#pragma GCC diagnostic pop
-+#endif
-+      MPFR_ASSERTN (a == 1);
-+      MPFR_ASSERTN (b == 1);
-+      MPFR_ASSERTN (c == 1);
-       return;
-     }
- }
-@@ -64,7 +110,7 @@
- 
-   for (i = 0; i <= 1; i++)
-     for (j = 0; j <= 1; j++)
--      for (k = 0; k <= 5; k++)
-+      for (k = 0; k < 16; k++)
-         {
-           mpfr_set_nan (x);
-           i ? MPFR_SET_NEG (x) : MPFR_SET_POS (x);
-diff -Naurd mpfr-4.1.0-a/tests/texceptions.c mpfr-4.1.0-b/tests/texceptions.c
---- mpfr-4.1.0-a/tests/texceptions.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/texceptions.c	2021-03-09 13:55:43.211158639 +0000
-@@ -103,10 +103,26 @@
- check_get_prec (void)
- {
-   mpfr_t x;
-+  int i = 0;
- 
-   mpfr_init2 (x, 17);
--  if (mpfr_get_prec (x) != 17 || (mpfr_get_prec)(x) != 17)
-+
-+  if (mpfr_get_prec (x) != 17 || (mpfr_get_prec) (x) != 17)
-     PRINT_ERROR ("mpfr_get_prec");
-+
-+#ifdef IGNORE_CPP_COMPAT
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wc++-compat"
-+#endif
-+
-+  if (mpfr_get_prec ((i++, VOIDP_CAST(x))) != 17)
-+    PRINT_ERROR ("mpfr_get_prec (2)");
-+
-+#ifdef IGNORE_CPP_COMPAT
-+#pragma GCC diagnostic pop
-+#endif
-+
-+  MPFR_ASSERTN (i == 1);
-   mpfr_clear (x);
- }
- 
-diff -Naurd mpfr-4.1.0-a/tests/tisnan.c mpfr-4.1.0-b/tests/tisnan.c
---- mpfr-4.1.0-a/tests/tisnan.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tisnan.c	2021-03-09 13:55:43.211158639 +0000
-@@ -27,180 +27,235 @@
- main (void)
- {
-   mpfr_t  x;
-+  int i = 0, j = 0;
-+
-+  /* We need to check that when the function is implemented by a macro,
-+     it behaves correctly. */
-+#define ARG     (i++, VOIDP_CAST(x))
-+#define CHECK   MPFR_ASSERTN (i == ++j)
- 
-   tests_start_mpfr ();
- 
-   mpfr_init (x);
- 
-+#if 0
-+  /* The following should yield a compilation error when the functions
-+     are implemented as macros. Change 0 to 1 above in order to test. */
-+  (void) (mpfr_nan_p (1L));
-+  (void) (mpfr_inf_p (1L));
-+  (void) (mpfr_number_p (1L));
-+  (void) (mpfr_zero_p (1L));
-+  (void) (mpfr_regular_p (1L));
-+#endif
-+
-+#ifdef IGNORE_CPP_COMPAT
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wc++-compat"
-+#endif
-+
-   /* check +infinity gives non-zero for mpfr_inf_p only */
-   mpfr_set_ui (x, 1L, MPFR_RNDZ);
-   mpfr_div_ui (x, x, 0L, MPFR_RNDZ);
--  if (mpfr_nan_p (x) || (mpfr_nan_p) (x) )
-+  if (mpfr_nan_p (x) || (mpfr_nan_p) (x) || mpfr_nan_p (ARG))
-     {
-       printf ("Error: mpfr_nan_p(+Inf) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_inf_p (x) == 0)
-+  CHECK;
-+  if (!mpfr_inf_p (x) || !(mpfr_inf_p) (x) || !mpfr_inf_p (ARG))
-     {
-       printf ("Error: mpfr_inf_p(+Inf) gives zero\n");
-       exit (1);
-     }
--  if (mpfr_number_p (x) || (mpfr_number_p) (x) )
-+  CHECK;
-+  if (mpfr_number_p (x) || (mpfr_number_p) (x) || mpfr_number_p (ARG))
-     {
-       printf ("Error: mpfr_number_p(+Inf) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_zero_p (x) || (mpfr_zero_p) (x) )
-+  CHECK;
-+  if (mpfr_zero_p (x) || (mpfr_zero_p) (x) || mpfr_zero_p (ARG))
-     {
-       printf ("Error: mpfr_zero_p(+Inf) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_regular_p (x) || (mpfr_regular_p) (x) )
-+  CHECK;
-+  if (mpfr_regular_p (x) || (mpfr_regular_p) (x) || mpfr_regular_p (ARG))
-     {
-       printf ("Error: mpfr_regular_p(+Inf) gives non-zero\n");
-       exit (1);
-     }
-+  CHECK;
- 
-   /* same for -Inf */
-   mpfr_neg (x, x, MPFR_RNDN);
--  if (mpfr_nan_p (x) || (mpfr_nan_p(x)))
-+  if (mpfr_nan_p (x) || (mpfr_nan_p) (x) || mpfr_nan_p (ARG))
-     {
-       printf ("Error: mpfr_nan_p(-Inf) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_inf_p (x) == 0)
-+  CHECK;
-+  if (!mpfr_inf_p (x) || !(mpfr_inf_p) (x) || !mpfr_inf_p (ARG))
-     {
-       printf ("Error: mpfr_inf_p(-Inf) gives zero\n");
-       exit (1);
-     }
--  if (mpfr_number_p (x) || (mpfr_number_p)(x) )
-+  CHECK;
-+  if (mpfr_number_p (x) || (mpfr_number_p) (x) || mpfr_number_p (ARG))
-     {
-       printf ("Error: mpfr_number_p(-Inf) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_zero_p (x) || (mpfr_zero_p)(x) )
-+  CHECK;
-+  if (mpfr_zero_p (x) || (mpfr_zero_p) (x) || mpfr_zero_p (ARG))
-     {
-       printf ("Error: mpfr_zero_p(-Inf) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_regular_p (x) || (mpfr_regular_p) (x) )
-+  CHECK;
-+  if (mpfr_regular_p (x) || (mpfr_regular_p) (x) || mpfr_regular_p (ARG))
-     {
-       printf ("Error: mpfr_regular_p(-Inf) gives non-zero\n");
-       exit (1);
-     }
-+  CHECK;
- 
-   /* same for NaN */
-   mpfr_sub (x, x, x, MPFR_RNDN);
--  if (mpfr_nan_p (x) == 0)
-+  if (!mpfr_nan_p (x) || !(mpfr_nan_p) (x) || !mpfr_nan_p (ARG))
-     {
-       printf ("Error: mpfr_nan_p(NaN) gives zero\n");
-       exit (1);
-     }
--  if (mpfr_inf_p (x) || (mpfr_inf_p)(x) )
-+  CHECK;
-+  if (mpfr_inf_p (x) || (mpfr_inf_p) (x) || mpfr_inf_p (ARG))
-     {
-       printf ("Error: mpfr_inf_p(NaN) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_number_p (x) || (mpfr_number_p) (x) )
-+  CHECK;
-+  if (mpfr_number_p (x) || (mpfr_number_p) (x) || mpfr_number_p (ARG))
-     {
-       printf ("Error: mpfr_number_p(NaN) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_zero_p (x) || (mpfr_zero_p)(x) )
-+  CHECK;
-+  if (mpfr_zero_p (x) || (mpfr_zero_p) (x) || mpfr_zero_p (ARG))
-     {
-       printf ("Error: mpfr_number_p(NaN) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_regular_p (x) || (mpfr_regular_p) (x) )
-+  CHECK;
-+  if (mpfr_regular_p (x) || (mpfr_regular_p) (x) || mpfr_regular_p (ARG))
-     {
-       printf ("Error: mpfr_regular_p(NaN) gives non-zero\n");
-       exit (1);
-     }
-+  CHECK;
- 
-   /* same for a regular number */
-   mpfr_set_ui (x, 1, MPFR_RNDN);
--  if (mpfr_nan_p (x) || (mpfr_nan_p)(x))
-+  if (mpfr_nan_p (x) || (mpfr_nan_p) (x) || mpfr_nan_p (ARG))
-     {
-       printf ("Error: mpfr_nan_p(1) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_inf_p (x) || (mpfr_inf_p)(x) )
-+  CHECK;
-+  if (mpfr_inf_p (x) || (mpfr_inf_p) (x) || mpfr_inf_p (ARG))
-     {
-       printf ("Error: mpfr_inf_p(1) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_number_p (x) == 0)
-+  CHECK;
-+  if (!mpfr_number_p (x) || !(mpfr_number_p) (x) || !mpfr_number_p (ARG))
-     {
-       printf ("Error: mpfr_number_p(1) gives zero\n");
-       exit (1);
-     }
--  if (mpfr_zero_p (x) || (mpfr_zero_p) (x) )
-+  CHECK;
-+  if (mpfr_zero_p (x) || (mpfr_zero_p) (x) || mpfr_zero_p (ARG))
-     {
-       printf ("Error: mpfr_zero_p(1) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_regular_p (x) == 0 || (mpfr_regular_p) (x) == 0)
-+  CHECK;
-+  if (!mpfr_regular_p (x) || !(mpfr_regular_p) (x) || !mpfr_regular_p (ARG))
-     {
-       printf ("Error: mpfr_regular_p(1) gives zero\n");
-       exit (1);
-     }
-+  CHECK;
- 
-   /* Same for +0 */
-   mpfr_set_ui (x, 0, MPFR_RNDN);
--  if (mpfr_nan_p (x) || (mpfr_nan_p)(x))
-+  if (mpfr_nan_p (x) || (mpfr_nan_p) (x) || mpfr_nan_p (ARG))
-     {
-       printf ("Error: mpfr_nan_p(+0) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_inf_p (x) || (mpfr_inf_p)(x) )
-+  CHECK;
-+  if (mpfr_inf_p (x) || (mpfr_inf_p) (x) || mpfr_inf_p (ARG))
-     {
-       printf ("Error: mpfr_inf_p(+0) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_number_p (x) == 0)
-+  CHECK;
-+  if (!mpfr_number_p (x) || !(mpfr_number_p) (x) || !mpfr_number_p (ARG))
-     {
-       printf ("Error: mpfr_number_p(+0) gives zero\n");
-       exit (1);
-     }
--  if (mpfr_zero_p (x) == 0 )
-+  CHECK;
-+  if (!mpfr_zero_p (x) || !(mpfr_zero_p) (x) || !mpfr_zero_p (ARG))
-     {
-       printf ("Error: mpfr_zero_p(+0) gives zero\n");
-       exit (1);
-     }
--  if (mpfr_regular_p (x) || (mpfr_regular_p) (x) )
-+  CHECK;
-+  if (mpfr_regular_p (x) || (mpfr_regular_p) (x) || mpfr_regular_p (ARG))
-     {
-       printf ("Error: mpfr_regular_p(+0) gives non-zero\n");
-       exit (1);
-     }
-+  CHECK;
- 
-   /* Same for -0 */
-   mpfr_set_ui (x, 0, MPFR_RNDN);
-   mpfr_neg (x, x, MPFR_RNDN);
--  if (mpfr_nan_p (x) || (mpfr_nan_p)(x))
-+  if (mpfr_nan_p (x) || (mpfr_nan_p) (x) || mpfr_nan_p (ARG))
-     {
-       printf ("Error: mpfr_nan_p(-0) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_inf_p (x) || (mpfr_inf_p)(x) )
-+  CHECK;
-+  if (mpfr_inf_p (x) || (mpfr_inf_p) (x) || mpfr_inf_p (ARG))
-     {
-       printf ("Error: mpfr_inf_p(-0) gives non-zero\n");
-       exit (1);
-     }
--  if (mpfr_number_p (x) == 0)
-+  CHECK;
-+  if (!mpfr_number_p (x) || !(mpfr_number_p) (x) || !mpfr_number_p (ARG))
-     {
-       printf ("Error: mpfr_number_p(-0) gives zero\n");
-       exit (1);
-     }
--  if (mpfr_zero_p (x) == 0 )
-+  CHECK;
-+  if (!mpfr_zero_p (x) || !(mpfr_zero_p) (x) || !mpfr_zero_p (ARG))
-     {
-       printf ("Error: mpfr_zero_p(-0) gives zero\n");
-       exit (1);
-     }
--  if (mpfr_regular_p (x) || (mpfr_regular_p) (x) )
-+  CHECK;
-+  if (mpfr_regular_p (x) || (mpfr_regular_p) (x) || mpfr_regular_p (ARG))
-     {
-       printf ("Error: mpfr_regular_p(-0) gives non-zero\n");
-       exit (1);
-     }
-+  CHECK;
-+
-+#ifdef IGNORE_CPP_COMPAT
-+#pragma GCC diagnostic pop
-+#endif
- 
-   mpfr_clear (x);
- 
-diff -Naurd mpfr-4.1.0-a/tests/tset.c mpfr-4.1.0-b/tests/tset.c
---- mpfr-4.1.0-a/tests/tset.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tset.c	2021-03-09 13:55:43.207158683 +0000
-@@ -207,7 +207,7 @@
- static void
- check_ternary_value (void)
- {
--  int p, q, rnd;
-+  int k, p, q, rnd;
-   int inexact, cmp;
-   mpfr_t x, y;
- 
-@@ -226,28 +226,45 @@
-             {
-               if (rnd == MPFR_RNDF) /* the test below makes no sense */
-                 continue;
--              inexact = mpfr_set (y, x, (mpfr_rnd_t) rnd);
--              cmp = mpfr_cmp (y, x);
--              if (((inexact == 0) && (cmp != 0)) ||
--                  ((inexact > 0) && (cmp <= 0)) ||
--                  ((inexact < 0) && (cmp >= 0)))
--                {
--                  printf ("Wrong ternary value in mpfr_set for %s: expected"
--                          " %d, got %d\n",
--                          mpfr_print_rnd_mode ((mpfr_rnd_t) rnd), cmp,
--                          inexact);
--                  exit (1);
--                }
--              /* Test mpfr_set function too */
--              inexact = (mpfr_set) (y, x, (mpfr_rnd_t) rnd);
--              cmp = mpfr_cmp (y, x);
--              if (((inexact == 0) && (cmp != 0)) ||
--                  ((inexact > 0) && (cmp <= 0)) ||
--                  ((inexact < 0) && (cmp >= 0)))
-+              for (k = 0; k < 3; k++)
-                 {
--                  printf ("Wrong ternary value in mpfr_set(2): expected %d,"
--                          " got %d\n", cmp, inexact);
--                  exit (1);
-+                  int a = 0, b = 0, c = 0;
-+
-+                  switch (k)
-+                    {
-+                    case 0:
-+                      inexact = mpfr_set (y, x, (mpfr_rnd_t) rnd);
-+                      break;
-+                    case 1:
-+                      inexact = (mpfr_set) (y, x, (mpfr_rnd_t) rnd);
-+                      break;
-+                    case 2:
-+#ifdef IGNORE_CPP_COMPAT
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wc++-compat"
-+#endif
-+                      inexact = mpfr_set ((a++, VOIDP_CAST(y)),
-+                                          (b++, VOIDP_CAST(x)),
-+                                          (c++, (mpfr_rnd_t) rnd));
-+#ifdef IGNORE_CPP_COMPAT
-+#pragma GCC diagnostic pop
-+#endif
-+                      MPFR_ASSERTN (a == 1);
-+                      MPFR_ASSERTN (b == 1);
-+                      MPFR_ASSERTN (c == 1);
-+                      break;
-+                    }
-+                  cmp = mpfr_cmp (y, x);
-+                  if (((inexact == 0) && (cmp != 0)) ||
-+                      ((inexact > 0) && (cmp <= 0)) ||
-+                      ((inexact < 0) && (cmp >= 0)))
-+                    {
-+                      printf ("Wrong ternary value in mpfr_set for %s (%d):"
-+                              " expected %d, got %d\n",
-+                              mpfr_print_rnd_mode ((mpfr_rnd_t) rnd),
-+                              k, cmp, inexact);
-+                      exit (1);
-+                    }
-                 }
-             }
-         }
-diff -Naurd mpfr-4.1.0-a/tests/tset_exp.c mpfr-4.1.0-b/tests/tset_exp.c
---- mpfr-4.1.0-a/tests/tset_exp.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tset_exp.c	2021-03-09 13:55:43.211158639 +0000
-@@ -28,6 +28,7 @@
-   mpfr_t x;
-   int ret;
-   mpfr_exp_t emin, emax, e;
-+  int i = 0;
- 
-   tests_start_mpfr ();
- 
-@@ -63,6 +64,17 @@
-   e = (mpfr_get_exp) (x);
-   MPFR_ASSERTN (e == emin);
- 
-+#ifdef IGNORE_CPP_COMPAT
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wc++-compat"
-+#endif
-+  e = mpfr_get_exp ((i++, VOIDP_CAST(x)));
-+#ifdef IGNORE_CPP_COMPAT
-+#pragma GCC diagnostic pop
-+#endif
-+  MPFR_ASSERTN (e == emin);
-+  MPFR_ASSERTN (i == 1);
-+
-   ret = mpfr_set_exp (x, -1);
-   MPFR_ASSERTN (ret == 0 && mpfr_cmp_ui_2exp (x, 1, -2) == 0);
- 
-diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
---- mpfr-4.1.0-a/PATCHES	2021-03-09 13:58:00.889650773 +0000
-+++ mpfr-4.1.0-b/PATCHES	2021-03-09 13:58:00.937650249 +0000
-@@ -0,0 +1 @@
-+tset_sij
-diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
---- mpfr-4.1.0-a/VERSION	2021-03-09 13:55:43.223158508 +0000
-+++ mpfr-4.1.0-b/VERSION	2021-03-09 13:58:00.937650249 +0000
-@@ -1 +1 @@
--4.1.0-p10
-+4.1.0-p11
-diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
---- mpfr-4.1.0-a/src/mpfr.h	2021-03-09 13:55:43.223158508 +0000
-+++ mpfr-4.1.0-b/src/mpfr.h	2021-03-09 13:58:00.933650293 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 4
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "4.1.0-p10"
-+#define MPFR_VERSION_STRING "4.1.0-p11"
- 
- /* User macros:
-    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
-diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
---- mpfr-4.1.0-a/src/version.c	2021-03-09 13:55:43.223158508 +0000
-+++ mpfr-4.1.0-b/src/version.c	2021-03-09 13:58:00.933650293 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "4.1.0-p10";
-+  return "4.1.0-p11";
- }
-diff -Naurd mpfr-4.1.0-a/tests/tset_si.c mpfr-4.1.0-b/tests/tset_si.c
---- mpfr-4.1.0-a/tests/tset_si.c	2020-03-26 11:51:33.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tset_si.c	2021-03-09 13:58:00.917650467 +0000
-@@ -127,27 +127,29 @@
-              power of 2 is exact, unless underflow/overflow occurs.
-              The tests on the exponent below avoid integer overflows
-              (ep[i] may take extreme values). */
--          e = mpfr_get_exp (x1);
-           mpfr_clear_flags ();
--          if (j != 0 && ep[i] < __gmpfr_emin - e)  /* underflow */
-+          if (j == 0)
-+            goto zero;
-+          e = MPFR_GET_EXP (x1);
-+          if (ep[i] < __gmpfr_emin - e)  /* underflow */
-             {
-               mpfr_rnd_t r =
-                 (rnd == MPFR_RNDN &&
--                 (ep[i] < __gmpfr_emin - mpfr_get_exp (y) - 1 ||
-+                 (ep[i] < __gmpfr_emin - MPFR_GET_EXP (y) - 1 ||
-                   IS_POW2 (sign * j))) ?
-                 MPFR_RNDZ : (mpfr_rnd_t) rnd;
-               inex1 = mpfr_underflow (x1, r, sign);
-               flags1 = __gmpfr_flags;
-             }
--          else if (j != 0 && ep[i] > __gmpfr_emax - e)  /* overflow */
-+          else if (ep[i] > __gmpfr_emax - e)  /* overflow */
-             {
-               inex1 = mpfr_overflow (x1, (mpfr_rnd_t) rnd, sign);
-               flags1 = __gmpfr_flags;
-             }
-           else
-             {
--              if (j != 0)
--                mpfr_set_exp (x1, ep[i] + e);
-+              mpfr_set_exp (x1, ep[i] + e);
-+            zero:
-               flags1 = inex1 != 0 ? MPFR_FLAGS_INEXACT : 0;
-             }
- 
-diff -Naurd mpfr-4.1.0-a/tests/tset_sj.c mpfr-4.1.0-b/tests/tset_sj.c
---- mpfr-4.1.0-a/tests/tset_sj.c	2020-06-01 10:39:52.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tset_sj.c	2021-03-09 13:58:00.917650467 +0000
-@@ -225,27 +225,29 @@
-                  power of 2 is exact, unless underflow/overflow occurs.
-                  The tests on the exponent below avoid integer overflows
-                  (ep[i] may take extreme values). */
--              e = mpfr_get_exp (x1);
-               mpfr_clear_flags ();
--              if (j != 0 && ep[i] < __gmpfr_emin - e)  /* underflow */
-+              if (j == 0)
-+                goto zero;
-+              e = MPFR_GET_EXP (x1);
-+              if (ep[i] < __gmpfr_emin - e)  /* underflow */
-                 {
-                   mpfr_rnd_t r =
-                     (rnd == MPFR_RNDN &&
--                     (ep[i] < __gmpfr_emin - mpfr_get_exp (y) - 1 ||
-+                     (ep[i] < __gmpfr_emin - MPFR_GET_EXP (y) - 1 ||
-                       IS_POW2 (sign * j))) ?
-                     MPFR_RNDZ : (mpfr_rnd_t) rnd;
-                   inex1 = mpfr_underflow (x1, r, sign);
-                   flags1 = __gmpfr_flags;
-                 }
--              else if (j != 0 && ep[i] > __gmpfr_emax - e)  /* overflow */
-+              else if (ep[i] > __gmpfr_emax - e)  /* overflow */
-                 {
-                   inex1 = mpfr_overflow (x1, (mpfr_rnd_t) rnd, sign);
-                   flags1 = __gmpfr_flags;
-                 }
-               else
-                 {
--                  if (j != 0)
--                    mpfr_set_exp (x1, ep[i] + e);
-+                  mpfr_set_exp (x1, ep[i] + e);
-+                zero:
-                   flags1 = inex1 != 0 ? MPFR_FLAGS_INEXACT : 0;
-                 }
-             }
-diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
---- mpfr-4.1.0-a/PATCHES	2021-04-23 09:49:34.648281897 +0000
-+++ mpfr-4.1.0-b/PATCHES	2021-04-23 09:49:34.696281616 +0000
-@@ -0,0 +1 @@
-+get_str_ndigits
-diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
---- mpfr-4.1.0-a/VERSION	2021-03-09 13:58:00.937650249 +0000
-+++ mpfr-4.1.0-b/VERSION	2021-04-23 09:49:34.696281616 +0000
-@@ -1 +1 @@
--4.1.0-p11
-+4.1.0-p12
-diff -Naurd mpfr-4.1.0-a/src/get_str.c mpfr-4.1.0-b/src/get_str.c
---- mpfr-4.1.0-a/src/get_str.c	2020-06-18 17:17:18.000000000 +0000
-+++ mpfr-4.1.0-b/src/get_str.c	2021-04-23 09:49:34.680281710 +0000
-@@ -2484,6 +2484,8 @@
- size_t
- mpfr_get_str_ndigits (int b, mpfr_prec_t p)
- {
-+  MPFR_SAVE_EXPO_DECL (expo);
-+
-   MPFR_ASSERTN (2 <= b && b <= 62);
- 
-   /* deal first with power of two bases, since even for those, mpfr_ceil_mul
-@@ -2497,17 +2499,26 @@
-       return 1 + (p + k - 2) / k;
-     }
- 
-+  MPFR_SAVE_EXPO_MARK (expo);
-+
-   /* the value returned by mpfr_ceil_mul is guaranteed to be
-      1 + ceil(p*log(2)/log(b)) for p < 186564318007 (it returns one more
-      for p=186564318007 and b=7 or 49) */
-   MPFR_STAT_STATIC_ASSERT (MPFR_PREC_BITS >= 64 || MPFR_PREC_BITS <= 32);
-+  if
- #if MPFR_PREC_BITS >= 64
-   /* 64-bit numbers are supported by the C implementation, so that we can
-      use the large constant below. If MPFR_PREC_BITS <= 32, the condition
-      is always satisfied, so that we do not need any test. */
--  if (MPFR_LIKELY (p < 186564318007))
-+    (MPFR_LIKELY (p < 186564318007))
-+#else
-+    (1)
- #endif
--    return 1 + mpfr_ceil_mul (IS_POW2(b) ? p - 1 : p, b, 1);
-+  {
-+    size_t ret = 1 + mpfr_ceil_mul (IS_POW2(b) ? p - 1 : p, b, 1);
-+    MPFR_SAVE_EXPO_FREE (expo);
-+    return ret;
-+  }
- 
-   /* Now p is large and b is not a power of two. The code below works for any
-      value of p and b, as long as b is not a power of two. Indeed, in such a
-@@ -2541,6 +2552,8 @@
-         mpfr_clear (d);
-         mpfr_clear (u);
-       }
-+
-+    MPFR_SAVE_EXPO_FREE (expo);
-     return 1 + ret;
-   }
- }
-diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
---- mpfr-4.1.0-a/src/mpfr.h	2021-03-09 13:58:00.933650293 +0000
-+++ mpfr-4.1.0-b/src/mpfr.h	2021-04-23 09:49:34.692281639 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 4
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "4.1.0-p11"
-+#define MPFR_VERSION_STRING "4.1.0-p12"
- 
- /* User macros:
-    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
-diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
---- mpfr-4.1.0-a/src/version.c	2021-03-09 13:58:00.933650293 +0000
-+++ mpfr-4.1.0-b/src/version.c	2021-04-23 09:49:34.696281616 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "4.1.0-p11";
-+  return "4.1.0-p12";
- }
-diff -Naurd mpfr-4.1.0-a/tests/tget_str.c mpfr-4.1.0-b/tests/tget_str.c
---- mpfr-4.1.0-a/tests/tget_str.c	2020-01-08 18:11:13.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tget_str.c	2021-04-23 09:49:34.680281710 +0000
-@@ -1311,6 +1311,33 @@
-   mpfr_clear (x);
- }
- 
-+static void
-+test_ndigits_aux (int b, mpfr_prec_t p, size_t expected_m)
-+{
-+  size_t m;
-+  mpfr_exp_t old_emin, old_emax, e[] = { MPFR_EMIN_MIN, 0, MPFR_EMAX_MAX };
-+  mpfr_flags_t flags;
-+  int i;
-+
-+  old_emin = mpfr_get_emin ();
-+  old_emax = mpfr_get_emax ();
-+
-+  i = randlimb () % (numberof (e) + 1);
-+  if (i < numberof (e))
-+    {
-+      set_emin (e[i]);
-+      set_emax (e[i]);
-+    }
-+
-+  __gmpfr_flags = flags = randlimb () & MPFR_FLAGS_ALL;
-+  m = mpfr_get_str_ndigits (b, p);
-+  MPFR_ASSERTN (m == expected_m);
-+  MPFR_ASSERTN (__gmpfr_flags == flags);
-+
-+  set_emin (old_emin);
-+  set_emax (old_emax);
-+}
-+
- /* test of mpfr_get_str_ndigits */
- static void
- test_ndigits (void)
-@@ -1319,61 +1346,61 @@
- 
-   /* for b=2, we have 1 + ceil((p-1)*log(2)/log(b)) = p */
-   for (p = MPFR_PREC_MIN; p <= 1024; p++)
--    MPFR_ASSERTN(mpfr_get_str_ndigits (2, p) == p);
-+    test_ndigits_aux (2, p, p);
- 
-   /* for b=4, we have 1 + ceil((p-1)*log(2)/log(b)) = 1 + ceil((p-1)/2)
-      = 1 + floor(p/2) */
-   for (p = MPFR_PREC_MIN; p <= 1024; p++)
--    MPFR_ASSERTN(mpfr_get_str_ndigits (4, p) == 1 + (p / 2));
-+    test_ndigits_aux (4, p, 1 + (p / 2));
- 
-   /* for b=8, we have 1 + ceil((p-1)*log(2)/log(b)) = 1 + ceil((p-1)/3)
-      = 1 + floor((p+1)/3) */
-   for (p = MPFR_PREC_MIN; p <= 1024; p++)
--    MPFR_ASSERTN(mpfr_get_str_ndigits (8, p) == 1 + ((p + 1) / 3));
-+    test_ndigits_aux (8, p, 1 + ((p + 1) / 3));
- 
-   /* for b=16, we have 1 + ceil((p-1)*log(2)/log(b)) = 1 + ceil((p-1)/4)
-      = 1 + floor((p+2)/4) */
-   for (p = MPFR_PREC_MIN; p <= 1024; p++)
--    MPFR_ASSERTN(mpfr_get_str_ndigits (16, p) == 1 + ((p + 2) / 4));
-+    test_ndigits_aux (16, p, 1 + ((p + 2) / 4));
- 
-   /* for b=32, we have 1 + ceil((p-1)*log(2)/log(b)) = 1 + ceil((p-1)/5)
-      = 1 + floor((p+3)/5) */
-   for (p = MPFR_PREC_MIN; p <= 1024; p++)
--    MPFR_ASSERTN(mpfr_get_str_ndigits (32, p) == 1 + ((p + 3) / 5));
-+    test_ndigits_aux (32, p, 1 + ((p + 3) / 5));
- 
-   /* error < 1e-3 */
--  MPFR_ASSERTN(mpfr_get_str_ndigits (57, 35) == 8);
-+  test_ndigits_aux (57, 35, 8);
- 
-   /* error < 1e-4 */
--  MPFR_ASSERTN(mpfr_get_str_ndigits (31, 649) == 133);
-+  test_ndigits_aux (31, 649, 133);
- 
-   /* error < 1e-5 */
--  MPFR_ASSERTN(mpfr_get_str_ndigits (43, 5041) == 931);
-+  test_ndigits_aux (43, 5041, 931);
- 
-   /* error < 1e-6 */
--  MPFR_ASSERTN(mpfr_get_str_ndigits (41, 17771) == 3319);
-+  test_ndigits_aux (41, 17771, 3319);
- 
-   /* 20th convergent of log(2)/log(3) */
--  MPFR_ASSERTN(mpfr_get_str_ndigits (3, 630138897) == 397573381);
-+  test_ndigits_aux (3, 630138897, 397573381);
- 
- #if MPFR_PREC_BITS >= 64
-   /* 21st convergent of log(2)/log(3) */
--  MPFR_ASSERTN(mpfr_get_str_ndigits (3, 9809721694) == 6189245292);
-+  test_ndigits_aux (3, 9809721694, 6189245292);
- 
-   /* 22nd convergent of log(2)/log(3) */
--  MPFR_ASSERTN(mpfr_get_str_ndigits (3, 10439860591) == 6586818672);
-+  test_ndigits_aux (3, 10439860591, 6586818672);
- 
-   /* 23rd convergent of log(2)/log(3) */
--  MPFR_ASSERTN(mpfr_get_str_ndigits (3, 103768467013) == 65470613322);
-+  test_ndigits_aux (3, 103768467013, 65470613322);
- 
-   /* 24th convergent of log(2)/log(3) */
--  MPFR_ASSERTN(mpfr_get_str_ndigits (3, 217976794617) == 137528045314);
-+  test_ndigits_aux (3, 217976794617, 137528045314);
- 
--  MPFR_ASSERTN(mpfr_get_str_ndigits (3, 1193652440098) == 753110839882);
-+  test_ndigits_aux (3, 1193652440098, 753110839882);
- 
--  MPFR_ASSERTN(mpfr_get_str_ndigits (3, 683381996816440) == 431166034846569);
-+  test_ndigits_aux (3, 683381996816440, 431166034846569);
- 
--  MPFR_ASSERTN(mpfr_get_str_ndigits (7, 186564318007) == 66455550933);
-+  test_ndigits_aux (7, 186564318007, 66455550933);
- #endif
- }
- 
-diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
---- mpfr-4.1.0-a/PATCHES	2021-05-17 16:09:00.574477185 +0000
-+++ mpfr-4.1.0-b/PATCHES	2021-05-17 16:09:00.754476587 +0000
-@@ -0,0 +1 @@
-+vasprintf-prec-zero
-diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
---- mpfr-4.1.0-a/VERSION	2021-04-23 09:49:34.696281616 +0000
-+++ mpfr-4.1.0-b/VERSION	2021-05-17 16:09:00.754476587 +0000
-@@ -1 +1 @@
--4.1.0-p12
-+4.1.0-p13
-diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
---- mpfr-4.1.0-a/src/mpfr.h	2021-04-23 09:49:34.692281639 +0000
-+++ mpfr-4.1.0-b/src/mpfr.h	2021-05-17 16:09:00.754476587 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 4
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "4.1.0-p12"
-+#define MPFR_VERSION_STRING "4.1.0-p13"
- 
- /* User macros:
-    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
-diff -Naurd mpfr-4.1.0-a/src/vasprintf.c mpfr-4.1.0-b/src/vasprintf.c
---- mpfr-4.1.0-a/src/vasprintf.c	2021-02-11 12:48:27.354242922 +0000
-+++ mpfr-4.1.0-b/src/vasprintf.c	2021-05-17 16:09:00.598477107 +0000
-@@ -635,7 +635,13 @@
- static int
- buffer_cat (struct string_buffer *b, const char *s, size_t len)
- {
--  MPFR_ASSERTD (len > 0);
-+  /* If len == 0, which is possible when outputting an integer 0
-+     (either a native one or mpfr_prec_t) with precision field = 0,
-+     do nothing. This test is not necessary since the code below is
-+     valid for len == 0, but this is safer, just in case. */
-+  if (len == 0)
-+    return 0;
-+
-   MPFR_ASSERTD (len <= strlen (s));
- 
-   if (buffer_incr_len (b, len))
-diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
---- mpfr-4.1.0-a/src/version.c	2021-04-23 09:49:34.696281616 +0000
-+++ mpfr-4.1.0-b/src/version.c	2021-05-17 16:09:00.754476587 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "4.1.0-p12";
-+  return "4.1.0-p13";
- }
-diff -Naurd mpfr-4.1.0-a/tests/tsprintf.c mpfr-4.1.0-b/tests/tsprintf.c
---- mpfr-4.1.0-a/tests/tsprintf.c	2020-04-08 22:39:35.000000000 +0000
-+++ mpfr-4.1.0-b/tests/tsprintf.c	2021-05-17 16:09:00.598477107 +0000
-@@ -193,6 +193,10 @@
-   sprintf (buf, "%d", i);
-   check_vsprintf (buf, "%d", i);
- 
-+  check_vsprintf ("0", "%d", 0);
-+  check_vsprintf ("", "%.d", 0);
-+  check_vsprintf ("", "%.0d", 0);
-+
-   sprintf (buf, "%e", d);
-   check_vsprintf (buf, "%e", d);
- 
-@@ -227,9 +231,6 @@
-   mpfr_prec_t p = 128;
-   mpfr_t x, y, z;
- 
--  mpfr_init (z);
--  mpfr_init2 (x, p);
--
-   /* specifier 'P' for precision */
-   check_vsprintf ("128", "%Pu", p);
-   check_vsprintf ("00128", "%.5Pu", p);
-@@ -247,9 +248,19 @@
-   check_vsprintf ("0200:", "%0#+ -Po:", p);
-   check_vsprintf ("+0000128 :", "%0+ *.*Pd:", -9, 7, p);
-   check_vsprintf ("+12345   :", "%0+ -*.*Pd:", -9, -3, (mpfr_prec_t) 12345);
-+  check_vsprintf ("0", "%Pu", (mpfr_prec_t) 0);
-   /* Do not add a test like "%05.1Pd" as MS Windows is buggy: when
-      a precision is given, the '0' flag must be ignored. */
- 
-+  /* specifier 'P' with precision field 0 */
-+  check_vsprintf ("128", "%.Pu", p);
-+  check_vsprintf ("128", "%.0Pd", p);
-+  /* check_vsprintf ("", "%.Pu", (mpfr_prec_t) 0); */
-+  check_vsprintf ("", "%.0Pd", (mpfr_prec_t) 0);
-+
-+  mpfr_init (z);
-+  mpfr_init2 (x, 128);
-+
-   /* special numbers */
-   mpfr_set_inf (x, 1);
-   check_sprintf (pinf_str, "%Re", x);
diff --git a/src/patches/mpfr-4.1.1-cumulative-patches-1-to-1.patch b/src/patches/mpfr-4.1.1-cumulative-patches-1-to-1.patch
new file mode 100644
index 000000000..0566c80b3
--- /dev/null
+++ b/src/patches/mpfr-4.1.1-cumulative-patches-1-to-1.patch
@@ -0,0 +1,83 @@
+diff -Naurd mpfr-4.1.1-a/PATCHES mpfr-4.1.1-b/PATCHES
+--- mpfr-4.1.1-a/PATCHES	2022-11-23 11:45:26.800476079 +0000
++++ mpfr-4.1.1-b/PATCHES	2022-11-23 11:45:26.844475966 +0000
+@@ -0,0 +1 @@
++mpfr_custom_get_kind
+diff -Naurd mpfr-4.1.1-a/VERSION mpfr-4.1.1-b/VERSION
+--- mpfr-4.1.1-a/VERSION	2022-11-17 13:28:44.000000000 +0000
++++ mpfr-4.1.1-b/VERSION	2022-11-23 11:45:26.844475966 +0000
+@@ -1 +1 @@
+-4.1.1
++4.1.1-p1
+diff -Naurd mpfr-4.1.1-a/src/mpfr.h mpfr-4.1.1-b/src/mpfr.h
+--- mpfr-4.1.1-a/src/mpfr.h	2022-11-17 13:28:44.000000000 +0000
++++ mpfr-4.1.1-b/src/mpfr.h	2022-11-23 11:45:26.840475978 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 4
+ #define MPFR_VERSION_MINOR 1
+ #define MPFR_VERSION_PATCHLEVEL 1
+-#define MPFR_VERSION_STRING "4.1.1"
++#define MPFR_VERSION_STRING "4.1.1-p1"
+ 
+ /* User macros:
+    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
+@@ -1027,7 +1027,7 @@
+ #if __GNUC__ > 2 || __GNUC_MINOR__ >= 95
+ #define mpfr_custom_get_kind(x)                                         \
+   __extension__ ({                                                      \
+-    mpfr_ptr _x = (x);                                                  \
++    mpfr_srcptr _x = (x);                                               \
+     _x->_mpfr_exp >  __MPFR_EXP_INF ?                                   \
+       (mpfr_int) MPFR_REGULAR_KIND * MPFR_SIGN (_x)                     \
+       : _x->_mpfr_exp == __MPFR_EXP_INF ?                               \
+diff -Naurd mpfr-4.1.1-a/src/version.c mpfr-4.1.1-b/src/version.c
+--- mpfr-4.1.1-a/src/version.c	2022-11-17 13:28:44.000000000 +0000
++++ mpfr-4.1.1-b/src/version.c	2022-11-23 11:45:26.844475966 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+-  return "4.1.1";
++  return "4.1.1-p1";
+ }
+diff -Naurd mpfr-4.1.1-a/tests/tstckintc.c mpfr-4.1.1-b/tests/tstckintc.c
+--- mpfr-4.1.1-a/tests/tstckintc.c	2022-05-06 13:47:17.000000000 +0000
++++ mpfr-4.1.1-b/tests/tstckintc.c	2022-11-23 11:45:26.836475987 +0000
+@@ -295,14 +295,16 @@
+ test_nan_inf_zero (void)
+ {
+   mpfr_ptr val;
++  mpfr_srcptr sval;  /* for compilation error checking */
+   int sign;
+   int kind;
+ 
+   reset_stack ();
+ 
+   val = new_mpfr (MPFR_PREC_MIN);
++  sval = val;
+   mpfr_set_nan (val);
+-  kind = (mpfr_custom_get_kind) (val);
++  kind = (mpfr_custom_get_kind) (sval);
+   if (kind != MPFR_NAN_KIND)
+     {
+       printf ("mpfr_custom_get_kind error: ");
+@@ -380,7 +382,8 @@
+ dummy_set_si (long si)
+ {
+   mpfr_t x;
+-  long * r = dummy_new ();
++  mpfr_srcptr px;  /* for compilation error checking */
++  long *r = dummy_new ();
+   int i1, i2, i3, i4, i5;
+ 
+   /* Check that the type "void *" can be used, like with the function.
+@@ -405,7 +408,8 @@
+   MPFR_ASSERTN (i5 == 1);
+ 
+   mpfr_set_si (x, si, MPFR_RNDN);
+-  r[0] = mpfr_custom_get_kind (x);
++  px = x;
++  r[0] = mpfr_custom_get_kind (px);
+ 
+   /* Check that the type "void *" can be used in C, like with the function
+      (forbidden in C++). Also check side effects. */
diff --git a/src/ppp/ip-up b/src/ppp/ip-up
index ee1683fdd..2e636e72d 100644
--- a/src/ppp/ip-up
+++ b/src/ppp/ip-up
@@ -24,11 +24,6 @@
 
 eval $(/usr/local/bin/readhash /var/ipfire/ppp/settings)
 
-if [ "$TYPE" = "isdn" ]; then
-	DNS1="${MS_DNS1}"
-	DNS2="${MS_DNS2}"
-fi
-
 # Write DNS servers to configuration
 echo "${DNS1}" > /var/run/dns1
 echo "${DNS2}" > /var/run/dns2


hooks/post-receive
--
IPFire 2.x development tree

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-12-27 15:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-27 15:59 [git.ipfire.org] IPFire 2.x development tree branch, next, updated. e043f7b78759ee9aa130e29ff0f6f11413dc7557 Peter Müller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox