kmod 30 is out: https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-31.tar.xz https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-31.tar.sign Improvements - Allow passing a path to modprobe so the module is loaded from anywhere from the filesystem, but still handling the module dependencies recorded in the indexes. This is mostly intended for kernel developers to speedup testing their kernel modules without having to load the dependencies manually or override the module in /usr/lib/modules/. Now it's possible to do: # modprobe ./drivers/gpu/drm/i915/i915.ko As long as the dependencies didn't change, this should do the right thing - Use in-kernel decompression if available. This will check the runtime support in the kernel for decompressing modules and use it through finit_module(). Previously kmod would fallback to the older init_module() when using compressed modules since there wasn't a way to instruct the kernel to uncompress it on load or check if the kernel supported it or not. This requires a recent kernel (>= 6.4) to have that support and in-kernel decompression properly working in the kernel. - Make modprobe fallback to syslog when stderr is not available, as was documented in the man page, but not implemented - Better explaing `modprobe -r` and how it differentiates from rmmod - depmod learned a `-o <dir>` option to allow using a separate output directory. With this, it's possible to split the output files from the ones used as input from the kernel build system - Add compat with glibc >= 2.32.9000 that dropped __xstat - Improve testsuite to stop skipping tests when sysconfdir is something other than /etc - Build system improvements and updates - Change a few return codes from -ENOENT to -ENODATA to avoid confusing output in depmod when the module itself lacks a particular ELF section due to e.g. CONFIG_MODVERSIONS=n in the kernel. Bug Fixes - Fix testsuite using uninitialized memory when testing module removal with --wait - Fix testsuite not correctly overriding the stat syscall on 32-bit platforms. For most architectures this was harmless, but for MIPS it was causing some tests to fail. - Fix handling unknown signature algorithm - Fix linking with a static liblzma, libzstd or zlib - Fix memory leak when removing module holders - Fix out-of-bounds access when using very long paths as argument to rmmod - Fix warnings reported by UBSan Shortlog is below: Adam Gołębiowski (1): autogen.sh: remove --with-rootprefix, it is gone since kmod-11 Dimitri John Ledkov (1): build: enable building & running tests from a subdir Dmitry Antipov (3): libkmod, depmod: prefer -ENODATA over -ENOENT if no section found libkmod: fix possible out-of-bounds memory access shared: avoid passing {NULL, 0} array to bsearch() Emil Velikov (10): depmod: Introduce outdir option treewide: add some static const notations testsuite: add function declarations for __xstat family testsuite/depmod: use defines for the rootfs/lib_modules libkmod: error out on unknown hash algorithm libkmod: remove unused kmod_module_get_builtin libkmod: annotate kmod_builtin_iter API as static shared: annotate local API as static configure: manage libkmod.pc.in and version.py.in via AC_CONFIG_FILES libkmod: add fallback MODULE_INIT_COMPRESSED_FILE define Fabrice Fontaine (1): configure.ac: fix link with -llzma Florian Weimer (1): kmod: configure.ac: In _Noreturn check, include <stdlib.h> for exit Gustavo Sousa (3): testsuite: Wrap chdir() modprobe: Move insertion block into separate function modprobe: Allow passing path to module Jan Engelhardt (1): testsuite: repair read of uninitialized memory Julien Cristau (1): testsuite: fix override of `stat` on 32-bit architectures Lucas De Marchi (8): testsuite: Move setup-rootfs logic from Makefile to script testsuite: Handle different sysconfdir libkmod: Do not inititialize file->memory on open libkmod: Extract finit_module vs init_module paths libkmod: Keep track of compression type libkmod: Keep track of in-kernel compression support libkmod: Use kernel decompression when available kmod 31 Mikhail Novosyolov (1): libkmod: do not crash on unknown signature algorithm Nicolas Schier (1): modprobe: rmmod_do_module: Free kmod list of holders Quentin Armitage (1): modprobe: Write error messages to syslog if stderr is unavailable Yauheni Kaliuta (1): man/rmmod: explain why modprobe -r is more useful Thank y'all for the contributions, Lucas De Marchi