+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
======
2. /run/modprobe.d
3. /lib/modprobe.d
-- Fix setting CFLAGS/LDFLAGS in build system. This prevents us from not
- allowing user to set his preference
+- 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
same of the running kernel
- 'modprobe -r' always look at all command line arguments
- Fix '-q' usage in modprobe
- -
kmod 6
======