]> git.ipfire.org Git - thirdparty/kmod.git/blobdiff - NEWS
Install kmod.pc in ${datadir}/pkgconfig
[thirdparty/kmod.git] / NEWS
diff --git a/NEWS b/NEWS
index a8c9194b366984d62bd5cdb7b5c1de7553114695..6b628f9382e993bd557d1b13e4500058ab6e60f9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,186 @@
+kmod 32
+=======
+
+- Improvements
+
+       - Use any hash algo known by kernel/openssl instead of keep needing
+         to update the mapping
+
+       - Teach kmod to load modprobe.d/depmod.d configuration from ${prefix}/lib
+         and allow it to be overriden during build with --with-distconfdir=DIR
+
+       - Make kernel modules directory configurable. This allows distro to
+         make kmod use only files from /usr regardless of having a compat
+         symlink in place.
+
+       - Install kmod.pc containing the features selected at build time.
+
+       - Install all tools and symlinks by default. Previously kmod relied on
+         distro packaging to set up the symlinks in place like modprobe,
+         depmod, lsmod, etc. Now those symlinks are created by kmod itself
+         and they are always placed in $bindir.
+
+- Bug Fixes
+
+       - Fix warnings due to -Walloc-size
+
+- Others
+
+       - Drop python bindings. Those were not update in ages and not compatible
+         with latest python releases.
+
+       - Cleanup test infra, dropping what was not used anymore
+
+       - Drop experimental tools `kmod insert` / `kmod remove`. Building those
+         was protected by a configure option never set by distros. They also
+         didn't gain enough traction to replace the older interfaces via
+         modprobe/insmod/rmmod.
+
+kmod 31
+=======
+
+- 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
+
+kmod 30
+=======
+
+- Improvements
+       - Stop adding duplicate information on modules.builtin.alias.bin, just use
+         the modules.builtin.bin index
+
+       - Speedup depmod, particularly under qemu with emulated arch, by
+         avoiding a lot of open/read/close of modules.alias.bin. On an
+         emulated ARM rootfs, depmod with only 2 modules was taking ~32s
+         vs ~0.07s now.
+
+       - Add kmod_module_new_from_name_lookup() which allows doing a lookup by
+         module name, without considering the aliases. Other than that search
+         order is similar to kmod_module_new_from_lookup().
+
+       - modinfo learned the --modname option to explicitely show information
+         about the module, even if there is an alias with the same name. This
+         allows showing information about e.g. kernel/lib/crc32.ko, even if
+         kernel also exports a crc32 alias in modules.alias:
+
+               alias crc32 crc32_pclmul
+               alias crc32 crc32_generic
+
+         Same behavior will be used to other modules and to aliases provided
+         by user/distro.
+
+       - depmod.conf learned a new "excludedir" directive so distro/user can
+         configure more directories to be excluded from its search, besides
+         the hardcoded values "build" and "source".
+
+       - Better group modprobe options on help output under "Management, Query and General".
+
+       - modprobe learned a --wait <MSEC> option to be used together with -r
+         when removing a module. This allows modprobe to keep trying the
+         removal if it fails because the module is still in use. An exponential backoff
+         time is used for further retries.
+
+         The wait behavior provided by the kernel when not passing O_NONBLOCK
+         to delete_module() was removed in v3.13 due to not be used and the
+         consequences of having to support it in the kernel. However there may
+         be some users, particularly on testsuites for individual susbsystems, that
+         would want that. So provide a userspace implementation inside modprobe for
+         such users. "rmmod" doesn't have a --wait as it remains a bare minimal over
+         the API provided by the kernel. In future the --wait behavior can be added
+         to libkmod for testsuites not exec'ing modprobe for module removal.
+
+       - kmod_module_remove_module() learned a new flag to silence output when
+         caller wants to handle them - this is particularly important for the
+         --wait flag to modprobe, as it's not desired to keep seeing error messages
+         while waiting for the module to be unused.
+
+       - Add SM3 hash algo support to modinfo output, as already available in the kernel.
+
+- Bug Fixes
+       - Fix modinfo output when showing information for a .ko module when running
+         on a kernel that has that module as builtin.
+
+       - Fix kmod_module_new_from_lookup() returning > 0 rather than 0
+         when it matches an alias.
+
+       - Fix modinfo segfault when module doesn't exist.
+
+       - Add missing function in the html documentation: kmod_get_dirname().
+
+       - Fix modprobe incorrectly handling number of arguments when prepending values from
+         MODPROBE_OPTIONS environment variable.
+
+       - Fix modprobe -r --remove-dependencies and since "dependencies" was a
+         misnomer, add the preferred argument option: "--remove-holders". This
+         is the same name used by the kernel. It allows users to also remove
+         other modules holding the one that is being removed.
+
+       - Fix off-by-one in max module name length in depmod.
+
+- Infra/internal
+       - Start some changes in the out-of-tree test modules in kmod so they are useful
+         for being really inserted in the kernel rather than relying on kmod's mock
+         interface. This helps manual testing and may be used to exercise to test
+         changes in the kernel.
+
 kmod 29
 =======
 
@@ -43,7 +226,6 @@ kmod 29
          of the configuration used: now tests will skip if we don't have the
          build dependencies)
 
-
 kmod 28
 =======