diff options
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 544 |
1 files changed, 544 insertions, 0 deletions
@@ -0,0 +1,544 @@ +kmod 24 +======= + +- Improvements: + - Add more information on dependency loop + + - Sanitize use of strcpy and allow to grow from small strings on stack + (common case) to bigger strings on heap when needed + +- Bug fixes + - Fix wrong dependency loops being reported by depmod + + - Fix crashes when reporting dependency loops + + - Fix parsing kernel command line containing quotes + + - Fix leaks on error paths + +kmod 23 +======= + +- Improvements: + - Don't add comment to modules.devname if it would otherwise be empty + to play nice with tools detecting empty files + + - Allow building with BSD sed, that doesn't have -E flag + + - Ignore .TOC. symbols in depmod parsing as it's for PPC64 the + equivalent of _GLOBAL_OFFSET_TABLE_ + + - Teach modinfo about PKCS#7 module signatures: it doesn't add any + other info besides telling the user the module is signed since + kernel doesn't add other info on the module section + +- Bug fixes + + - Fix -s and -p compat options to insmod triggering force flag + + - Fix long lines from /proc/modules not being handled correctly by + kmod_module_new_from_loaded() and kmod_module_get_size() and several + other library functions that use them + + - Fix crash on modinfo while checking for available signature of + unknown type + + - Fix documentation generation with gtk-doc + +kmod 22 +======= + +- Tools: + - Change defaul log level for tools to WARNING rather than ERROR and update + some log levels for current messages + + - depmod doesn't fallback to uname if a bad version is passed in the command + line anymore. We just exit with an error. + + - insmod was taught the -f flag, just like in modprobe. It was previously + silently ignoring it. + +- libkmod + - New kmod_get_dirname() API to get the module directory set in the + context + +- Bug fixes: + - Fix return code in error path of kmod_module_insert_module(). We were + previously returning ENOSYS rather than ENOENT. + +kmod 21 +======= + +- New features: + - kmod tool started to learn the "insert" and "remove" commands that + are the simplified versions of the older modprobe tool. These + commands are still work in progress so they are hidden behind a + --enable-experimental flag during build. It should not be enabled + unless you know what you're doing. + - kmod tool now prints the relevant configuration options it was built + with when the "--version" argument is passed. This helps to mitigate + problems for example when the user is trying to load a compressed + module but kmod was built without support for the compression method. + +- Improvements to testsuite: + - Cache built modules so it is easier to run "make check" on build + servers by distro maintainers. If kmod is configured with + --disable-test-modules the modules from cache will be used by + "make check". No changes to the tests are needed and all of them + can run fine. + +kmod 20 +======= +- Bug fixes: + - Handle bogus values from ELF, making sure they don't overflow while + parsing the file + - Fix leak in depmod when -b flag is passed multiple times + - Multiple minor fixes from static analysis by coverity and + clang-analyze + - Fix race between loading modules and checking if it's loaded in the + kernel + +- New features: + - There's a change in behavior regarding builtin modules: we now only + consider as builtin those that are present in modules.builtin index. + Previously we were also checking the presence of + /sys/module/<module-name>, but this is racy and only modules that + contain parameters are the ones creating a directory in sysfs. + + Now some commands will start to fail, e.g. "modprobe vt". Since vt + can't be compiled as a module it's not present in modules.builtin + index. Previously we would report at as builtin, but now we fail + because we couldn't find the module. + +- Improvements: + - Integration of gcov into the build. Currently libkmod is at ~70% + covered and tools at ~50% by tests in the testsuite. Utility + functions and structures in shared have more than 90% of coverage. + - Upload build to coverity + +- Improvements to testsuite: + - Fix parsing return codes of init_module() calls + - Add tests for utility functions in shared/ + - Add tests for kmod_module_remove_module() + - Add playground, in which our own modules are compiled + - Port all tests to use modules from module-playground instead of + copying prebuilt modules to the repository + - Properly handle binaries that exit with no output + - Besides comparing the output of commands, allow to copy to + stdout/stderr + +kmod 19 +======= + +- Bug fixes: + - Fix missing CLOEXEC in library + - Fix error message while opening kmod's index + +- New features: + - Add kmod(8) man page + - Allow to build with libc's without be32toh() + - Move code around separating common code and data structures into a + shared directory. This allows to share more code between library and + tools, making the binary size of tools smaller. + - Clarify tools vs library licenses + - static-nodes: when writing in tmpfiles format, indicate that + creation of static nodes should only happen at boot. This is used and + required by systemd-217+. + +- Improvements to testsuite: + - Add tests for newly created shared/ code + - Improve how tests are declared so there's less boilerplate code for + each test. + +kmod 18 +======= + +- Bug fixes: + - Fix leaks in error paths + - Fix use-after-free in hash implementation causing a wrong index to be + generated by depmod with out-of-tree modules + +- New features: + - Calling depmod with modules creating a dependency loop will now make + depmod return an error and not update the indexes. This is to protect + the current index not being overridden by another index that may cause + a boot failure, depending on the buggy module. It's a necessary + change in behavior regarding previous kmod releases and + module-init-tools. The error message was also improved to output + the modules that caused the dependency cycle. + +- Improvements to testsuite: + - Fix and improve expected-fail test + - Add tests for hashmap implementation + +kmod 17 +======= + +- Bug fixes: + - Fix matching a "." in kernel cmdline, making garbage in the command + line be parsed as kmod options + - Fix man pages to clarify we don't fallback to parsing modules.dep + but instead we depend on modules.dep.bin (generated by depmod) to + be present + - Fix ELF parsing on 32 bit systems assigning the wrong class. + - Fix partial matches of search directives in depmod. Previously having + a line in depmod.conf such as "search foo foobar built-in" would cause + unpretictable results because foo is a partial match of foobar as well. + - Fix unaligned access in modinfo when getting the signature from a + module + - Make sure softdeps are treated as optional dependencies + +- New features: + - Accept special files given to "-C" switch in modprobe. This way it's + possible to skip system configuration with "modprobe -C /dev/null" + - Do not require xsltproc on released tarballs + - Don't use Werror anymore + - Add experimental python bindings, merged from python-kmod repository + (https://github.com/agrover/python-kmod) + - Parse softdeps exported by the kernel as + /lib/modules/`uname -r`/modules.softdep + +- Improvements to testsuite: + - Check the list of loaded modules after a test + +kmod 16 +======= + +- Bug fixes: + - Fix usage of readdir_r() + - Add some missing checks for memory allocation errors + +- New features: + - Remove option from libkmod to allow waiting on module removal if + the module is being used. It's dangerous since it can block the + caller indefinitely. + - Improve compatibility with musl libc + - Add fallback implementation for compilers without _Static_assert(), + e.g. gcc < 4.6 + - Minor optimizations to the hash table + - Make depmod warn if a module has incorrect devname specification + - Use cleanup attribute + +kmod 15 +======= + +- Bug fixes: + - kmod static-nodes doesn't fail if modules.devname isn't available + - Fix getting boolean parameter from kernel cmdline in case the value + is omitted + - Fix some mkdir_p() corner cases (used in testsuite and static-nodes) + +- New features: + - kmod static-nodes creates parent directories if given a -o option + - kmod binary statically links to libkmod - if distro is only interested + in the kmod tool (for example in an initrd) it can refrain from + installing the library + - Add shell completion for kmod tool + +kmod 14 +======= + +- Bug fixes: + - Fix some format strings + - Protect against NULL being passed around to index + - Avoid calling syscall() with -1 when finit_module() is not available, + since this doesn't always work + - Fix not being able to remove alias due to checking the module's + refcount + - Minor fixes and refactors + +- New features: + - Improve libkmod documentation, particularly on how flags are dealt + with. + - Remove ability to build a static libkmod + - Add static-nodes command to kmod that parses modules.devname + generating output in useful formats + +kmod 13 +======= + +- Bug fixes: + - Add the long option --symbol-prefix option to depmod (it was absent) + and fix its behavior + - Don't abort if there's a bogus line in configuration file like "alias + psmouse off". Some distros are carrying this since the days of + modutils + +- New features: + - Add support for finit_module(2). If the module is load straight from + the disk and without compression we use finit_module() syscall when + available, falling back to init_module() otherwise + - kmod_module_get_info() also returns the signature if the module is + signed and modinfo uses it + - Use secure_getenv if available + - rmmod understands builtin modules, just like modprobe does + - Improve compatibility with musl-libc + - Test cases exit with success when receiving a signal if they are + xfail tests + +kmod 12 +======= + +- Bug fixes: + - Fix removing vermagic from module when told to force load a module + - Fix removing __versions section when told to force load a module: we + need to mangle the section header, not the section. + - modinfo no longer fails while loading a module from file when path + contains ".ko" substring + +kmod 11 +======= + +- Improvements to testsuite: + - Fix testsuite defining symbols twice on 32 bit systems + - Allow to check generated files against correct ones + +- New features: + - libkmod now keeps a file opened after the first call to + kmod_module_get_{info,versions,symbols,dependency_symbols}. This + reduces signficantly the amount of time depmod tool takes to + execute. Particularly if compressed modules are used. + - Remove --with-rootprefix from build system. It was not a great idea + after all and should not be use since it causes more harm then + benefits. + - Hide --wait option on rmmod. This feature is being targeted for + removal from kernel. rmmod still accepts this option, but it's hidden + now: man page and usage() say nothing about it and if it's used, + user will get a 10s sleep. This way we can check and help if anyone + is using this feature. + - Refactor message logging on all tools, giving proper prefix, routing + everything to syslog when asked for, etc. + +- Bug fixes: + - Fix parsing of modules.order when using compressed modules + - Usage messages go to stdout instead of stderr + - Fix memory leak in hash implementation + +kmod 10 +======= + +- New features: + - Read coresize from /sys if supported + + - Add flag to kmod_module_probe_insert() to apply blacklisting during + probe only if mod is an alias. Now modprobe uses this flag by default. + This is needed to fix a change in behavior regarding module-init-tools + and ultimately makes us loading a blacklisted module. + +- Better formatting in man pages + +- Add option to disable building man pages at build time + +- Fixes in the testsuite and refactoring of LDPRELOAD'ed libraries + +- Re-licensing testsuite as LGPL + +kmod 9 +====== + +- Improvements to the testsuite: + - Check for correct handling of softdep loops + - Check for correct handling of install command loops + +- Bug fixes: + - Fix build with compilers that don't support --gc-sections + - Handle errors when dealing with gzipped modules + - depmod now handles errors while writing indices, so it doesn't end up + with a corrupted index without telling the user + +kmod 8 +====== + +- No new features, small bug fixes only. + - Fix a bug in "modprobe -c" output: be compatible with + module-init-tools + + - Give a useful error message when init_module fails due to bad + parameter or unknown symbols + + - Fix doc generation + +kmod 7 +====== + +- Re-order dirs for configuration files to match the change in systemd and + udev: now the priority is: + 1. /etc/modprobe.d + 2. /run/modprobe.d + 3. /lib/modprobe.d + +- Fix setting CFLAGS/LDFLAGS in build system. This prevented us from not + allowing the user to set his preferences. + +- Bug fixes: + - Return same error codes of module-init-tools when removing modules + with modprobe + - Fix builtin output in "--show-depends" when target kernel is not the + same of the running kernel + - 'modprobe -r' always look at all command line arguments + - Fix '-q' usage in modprobe + +kmod 6 +====== + +- New API in libkmod: + - kmod_module_apply_filter(): a generic function to apply filters in a + list of modules. This deprecates the use of + kmod_module_get_filtered_blacklist() + +- More tests in testsuite + +- Add compatibility with uClibc again + +- Lookup modules.builtin.bin to decide if a module is built in kernel + +- Downgrade some log messages so we don't annoy people with useless messages + +- Bug fixes: + - Flag --ignore-loaded was not being properly handled + - Infinite loop with softdeps + - Infinite loop with dumb user configuration with install commands + - Fix leak in index when there's a partial match + +- Move repository and tarballs to kernel.org + +kmod 5 +====== + +- Break libkmod's API to insert a module like modprobe does. It now accepts + extra an extra argument to print its action and acceptable flags were + sanitized. + +- Share more code between modprobe and libkmod: using the new version of + kmod_module_probe_insert_module() it's possible to share a great amount of + code between modprobe and libkmod + +- modprobe no longer works with paths: it only accepts module names and/or + aliases now. + +- testsuite was added to repository, allowing automated tests to be run and + easing the way bugs are reproduced. + +- modprobe: when dumping configuration ('-c' option) separate config + and indexes by adding a commented line between them. + +- Fix bugs wrt normalizing aliases and module names + +- Fix bug wrt inserting an alias that resolves to multiple modules: we should + not stop on the first error, but rather continue to try loading other + modules. + +- Fix unaligned memory access in hash function, causing depmod to output wrong + information in ARMv5 + +- Fix man page build and install: now they are only installed if tools are + enabled + +kmod 4 +====== + +- New APIs in libkmod to: + - Get configuration lists: blacklists, install commands, remove + commands, aliases, options and softdeps + - Dump indexes + +- Several bugs fixed in libkmod, modprobe, depmod and modinfo + +- API documentation: if configure with run with --enable-gtk-doc, the API doc + will be generated by make. Gtk-doc is required for that. + +- Man pages are built, which replace man pages from module-init-tools + +- 'include' and 'config' options in *.conf files were deprecated + +- configure is not run by autogen.sh. Instead, a common set of options is + printed. If you are hacking on kmod, consider using bootstrap-configure + script. + +- 'modprobe -c' works as expected now. As opposed to module-init-tools, it + dumps the parsed configuration, not only the file contents. + +kmod 3 +====== + +- New APIs in libkmod to: + - Get symbols from module, parsing the ELF section + - Get dependency symbols + - Check if resources are still valid or if libkmod must be reloaded + - Insert module like modprobe, checking (soft-)dependencies, commands, + blacklist. It can run commands by itself and to call a callback + function. + +- Support to load modules compressed with xz + +- Tools are now bundled together in a single tool called kmod. It can be + called using symlinks with the same names as tools from module-init-tools. + E.g: /usr/bin/lsmod -> /usr/bin/kmod. With this we are aiming to complete a + 1:1 replacement of module-init-tools. + +- The only missing tool, depmod, was added to kmod together with the necessary + APIs in libkmod. + +- If a program using libkmod runs for a long time, as for example udev, it must + check if it doesn't have to re-load libkmod. A new helper function was added + in libkmod to check if context is still valid and udev is already using it. + +- An 'unaligned access' bug was fixed. So those architecture that does not + handle unaligned access can use kmod, too. + +kmod 2 +====== + +Some bugs fixed: the worst of them was with an infinite loop when an alias +matched more than one module. + +- New APIs in libkmod to: + - Get soft dependencies + - Get info from module files parsing ELF + - Get modversions from files parsing ELF + +- Support to load gzipped kernel modules: kmod can be compiled with support to + gzipped modules by giving the --enable-zlib flag + +- Support to forcefully load modules, both vermagic and modversion + +- Support to force and nowait removal flags + +- Configuration files are parsed in the same order as modprobe: files are + sorted alphabetically (independently of their dir) and files with the same + name obey a precedence order + +- New tool: kmod-modinfo + +- kmod-modprobe gained several features to be a 1:1 replacement for modprobe. + The only missing things are the options '--showconfig' and '-t / -l'. These + last ones have been deprecated long ago and they will be removed from + modprobe. A lot of effort has been put on kmod-modprobe to ensure it + maintains compabitility with modprobe. + +- linux-modules@vger.kernel.org became the official mailing list for kmod + +kmod 1 +====== + +First version of kmod and its library, libkmod. + +In the libkmod it's currently possible to: + - List modules currently loaded + - Get information about loaded modules such as initstate, refcount, + holders, sections, address and size + - Lookup modules by alias, module name or path + - Insert modules: options from configuration and extra options can be + passed, but flags are not implemented, yet + - Remove modules + - Filter list of modules using blacklist + - For each module, get the its list of options and install/remove + commands + - Indexes can be loaded on startup to speedup lookups later + +Tools provided with the same set of options as in module-init-tools: + - kmod-lsmod + - kmod-insmod + - kmod-rmmod + - kmod-modprobe, with some functionality still missing (use of softdep, + dump configuration, show modversions) |