]> git.ipfire.org Git - thirdparty/kmod.git/blob - NEWS
kmod 22
[thirdparty/kmod.git] / NEWS
1 kmod 22
2 =======
3
4 - Tools:
5 - Change defaul log level for tools to WARNING rather than ERROR and update
6 some log levels for current messages
7
8 - depmod doesn't fallback to uname if a bad version is passed in the command
9 line anymore. We just exit with an error.
10
11 - insmod was taught the -f flag, just like in modprobe. It was previously
12 silently ignoring it.
13
14 - libkmod
15 - New kmod_get_dirname() API to get the module directory set in the
16 context
17
18 - Bug fixes:
19 - Fix return code in error path of kmod_module_insert_module(). We were
20 previously returning ENOSYS rather than ENOENT.
21
22 kmod 21
23 =======
24
25 - New features:
26 - kmod tool started to learn the "insert" and "remove" commands that
27 are the simplified versions of the older modprobe tool. These
28 commands are still work in progress so they are hidden behind a
29 --enable-experimental flag during build. It should not be enabled
30 unless you know what you're doing.
31 - kmod tool now prints the relevant configuration options it was built
32 with when the "--version" argument is passed. This helps to mitigate
33 problems for example when the user is trying to load a compressed
34 module but kmod was built without support for the compression method.
35
36 - Improvements to testsuite:
37 - Cache built modules so it is easier to run "make check" on build
38 servers by distro maintainers. If kmod is configured with
39 --disable-test-modules the modules from cache will be used by
40 "make check". No changes to the tests are needed and all of them
41 can run fine.
42
43 kmod 20
44 =======
45 - Bug fixes:
46 - Handle bogus values from ELF, making sure they don't overflow while
47 parsing the file
48 - Fix leak in depmod when -b flag is passed multiple times
49 - Multiple minor fixes from static analysis by coverity and
50 clang-analyze
51 - Fix race between loading modules and checking if it's loaded in the
52 kernel
53
54 - New features:
55 - There's a change in behavior regarding builtin modules: we now only
56 consider as builtin those that are present in modules.builtin index.
57 Previously we were also checking the presence of
58 /sys/module/<module-name>, but this is racy and only modules that
59 contain parameters are the ones creating a directory in sysfs.
60
61 Now some commands will start to fail, e.g. "modprobe vt". Since vt
62 can't be compiled as a module it's not present in modules.builtin
63 index. Previously we would report at as builtin, but now we fail
64 because we couldn't find the module.
65
66 - Improvements:
67 - Integration of gcov into the build. Currently libkmod is at ~70%
68 covered and tools at ~50% by tests in the testsuite. Utility
69 functions and structures in shared have more than 90% of coverage.
70 - Upload build to coverity
71
72 - Improvements to testsuite:
73 - Fix parsing return codes of init_module() calls
74 - Add tests for utility functions in shared/
75 - Add tests for kmod_module_remove_module()
76 - Add playground, in which our own modules are compiled
77 - Port all tests to use modules from module-playground instead of
78 copying prebuilt modules to the repository
79 - Properly handle binaries that exit with no output
80 - Besides comparing the output of commands, allow to copy to
81 stdout/stderr
82
83 kmod 19
84 =======
85
86 - Bug fixes:
87 - Fix missing CLOEXEC in library
88 - Fix error message while opening kmod's index
89
90 - New features:
91 - Add kmod(8) man page
92 - Allow to build with libc's without be32toh()
93 - Move code around separating common code and data structures into a
94 shared directory. This allows to share more code between library and
95 tools, making the binary size of tools smaller.
96 - Clarify tools vs library licenses
97 - static-nodes: when writing in tmpfiles format, indicate that
98 creation of static nodes should only happen at boot. This is used and
99 required by systemd-217+.
100
101 - Improvements to testsuite:
102 - Add tests for newly created shared/ code
103 - Improve how tests are declared so there's less boilerplate code for
104 each test.
105
106 kmod 18
107 =======
108
109 - Bug fixes:
110 - Fix leaks in error paths
111 - Fix use-after-free in hash implementation causing a wrong index to be
112 generated by depmod with out-of-tree modules
113
114 - New features:
115 - Calling depmod with modules creating a dependency loop will now make
116 depmod return an error and not update the indexes. This is to protect
117 the current index not being overridden by another index that may cause
118 a boot failure, depending on the buggy module. It's a necessary
119 change in behavior regarding previous kmod releases and
120 module-init-tools. The error message was also improved to output
121 the modules that caused the dependency cycle.
122
123 - Improvements to testsuite:
124 - Fix and improve expected-fail test
125 - Add tests for hashmap implementation
126
127 kmod 17
128 =======
129
130 - Bug fixes:
131 - Fix matching a "." in kernel cmdline, making garbage in the command
132 line be parsed as kmod options
133 - Fix man pages to clarify we don't fallback to parsing modules.dep
134 but instead we depend on modules.dep.bin (generated by depmod) to
135 be present
136 - Fix ELF parsing on 32 bit systems assigning the wrong class.
137 - Fix partial matches of search directives in depmod. Previously having
138 a line in depmod.conf such as "search foo foobar built-in" would cause
139 unpretictable results because foo is a partial match of foobar as well.
140 - Fix unaligned access in modinfo when getting the signature from a
141 module
142 - Make sure softdeps are treated as optional dependencies
143
144 - New features:
145 - Accept special files given to "-C" switch in modprobe. This way it's
146 possible to skip system configuration with "modprobe -C /dev/null"
147 - Do not require xsltproc on released tarballs
148 - Don't use Werror anymore
149 - Add experimental python bindings, merged from python-kmod repository
150 (https://github.com/agrover/python-kmod)
151 - Parse softdeps exported by the kernel as
152 /lib/modules/`uname -r`/modules.softdep
153
154 - Improvements to testsuite:
155 - Check the list of loaded modules after a test
156
157 kmod 16
158 =======
159
160 - Bug fixes:
161 - Fix usage of readdir_r()
162 - Add some missing checks for memory allocation errors
163
164 - New features:
165 - Remove option from libkmod to allow waiting on module removal if
166 the module is being used. It's dangerous since it can block the
167 caller indefinitely.
168 - Improve compatibility with musl libc
169 - Add fallback implementation for compilers without _Static_assert(),
170 e.g. gcc < 4.6
171 - Minor optimizations to the hash table
172 - Make depmod warn if a module has incorrect devname specification
173 - Use cleanup attribute
174
175 kmod 15
176 =======
177
178 - Bug fixes:
179 - kmod static-nodes doesn't fail if modules.devname isn't available
180 - Fix getting boolean parameter from kernel cmdline in case the value
181 is omitted
182 - Fix some mkdir_p() corner cases (used in testsuite and static-nodes)
183
184 - New features:
185 - kmod static-nodes creates parent directories if given a -o option
186 - kmod binary statically links to libkmod - if distro is only interested
187 in the kmod tool (for example in an initrd) it can refrain from
188 installing the library
189 - Add shell completion for kmod tool
190
191 kmod 14
192 =======
193
194 - Bug fixes:
195 - Fix some format strings
196 - Protect against NULL being passed around to index
197 - Avoid calling syscall() with -1 when finit_module() is not available,
198 since this doesn't always work
199 - Fix not being able to remove alias due to checking the module's
200 refcount
201 - Minor fixes and refactors
202
203 - New features:
204 - Improve libkmod documentation, particularly on how flags are dealt
205 with.
206 - Remove ability to build a static libkmod
207 - Add static-nodes command to kmod that parses modules.devname
208 generating output in useful formats
209
210 kmod 13
211 =======
212
213 - Bug fixes:
214 - Add the long option --symbol-prefix option to depmod (it was absent)
215 and fix its behavior
216 - Don't abort if there's a bogus line in configuration file like "alias
217 psmouse off". Some distros are carrying this since the days of
218 modutils
219
220 - New features:
221 - Add support for finit_module(2). If the module is load straight from
222 the disk and without compression we use finit_module() syscall when
223 available, falling back to init_module() otherwise
224 - kmod_module_get_info() also returns the signature if the module is
225 signed and modinfo uses it
226 - Use secure_getenv if available
227 - rmmod understands builtin modules, just like modprobe does
228 - Improve compatibility with musl-libc
229 - Test cases exit with success when receiving a signal if they are
230 xfail tests
231
232 kmod 12
233 =======
234
235 - Bug fixes:
236 - Fix removing vermagic from module when told to force load a module
237 - Fix removing __versions section when told to force load a module: we
238 need to mangle the section header, not the section.
239 - modinfo no longer fails while loading a module from file when path
240 contains ".ko" substring
241
242 kmod 11
243 =======
244
245 - Improvements to testsuite:
246 - Fix testsuite defining symbols twice on 32 bit systems
247 - Allow to check generated files against correct ones
248
249 - New features:
250 - libkmod now keeps a file opened after the first call to
251 kmod_module_get_{info,versions,symbols,dependency_symbols}. This
252 reduces signficantly the amount of time depmod tool takes to
253 execute. Particularly if compressed modules are used.
254 - Remove --with-rootprefix from build system. It was not a great idea
255 after all and should not be use since it causes more harm then
256 benefits.
257 - Hide --wait option on rmmod. This feature is being targeted for
258 removal from kernel. rmmod still accepts this option, but it's hidden
259 now: man page and usage() say nothing about it and if it's used,
260 user will get a 10s sleep. This way we can check and help if anyone
261 is using this feature.
262 - Refactor message logging on all tools, giving proper prefix, routing
263 everything to syslog when asked for, etc.
264
265 - Bug fixes:
266 - Fix parsing of modules.order when using compressed modules
267 - Usage messages go to stdout instead of stderr
268 - Fix memory leak in hash implementation
269
270 kmod 10
271 =======
272
273 - New features:
274 - Read coresize from /sys if supported
275
276 - Add flag to kmod_module_probe_insert() to apply blacklisting during
277 probe only if mod is an alias. Now modprobe uses this flag by default.
278 This is needed to fix a change in behavior regarding module-init-tools
279 and ultimately makes us loading a blacklisted module.
280
281 - Better formatting in man pages
282
283 - Add option to disable building man pages at build time
284
285 - Fixes in the testsuite and refactoring of LDPRELOAD'ed libraries
286
287 - Re-licensing testsuite as LGPL
288
289 kmod 9
290 ======
291
292 - Improvements to the testsuite:
293 - Check for correct handling of softdep loops
294 - Check for correct handling of install command loops
295
296 - Bug fixes:
297 - Fix build with compilers that don't support --gc-sections
298 - Handle errors when dealing with gzipped modules
299 - depmod now handles errors while writing indices, so it doesn't end up
300 with a corrupted index without telling the user
301
302 kmod 8
303 ======
304
305 - No new features, small bug fixes only.
306 - Fix a bug in "modprobe -c" output: be compatible with
307 module-init-tools
308
309 - Give a useful error message when init_module fails due to bad
310 parameter or unknown symbols
311
312 - Fix doc generation
313
314 kmod 7
315 ======
316
317 - Re-order dirs for configuration files to match the change in systemd and
318 udev: now the priority is:
319 1. /etc/modprobe.d
320 2. /run/modprobe.d
321 3. /lib/modprobe.d
322
323 - Fix setting CFLAGS/LDFLAGS in build system. This prevented us from not
324 allowing the user to set his preferences.
325
326 - Bug fixes:
327 - Return same error codes of module-init-tools when removing modules
328 with modprobe
329 - Fix builtin output in "--show-depends" when target kernel is not the
330 same of the running kernel
331 - 'modprobe -r' always look at all command line arguments
332 - Fix '-q' usage in modprobe
333
334 kmod 6
335 ======
336
337 - New API in libkmod:
338 - kmod_module_apply_filter(): a generic function to apply filters in a
339 list of modules. This deprecates the use of
340 kmod_module_get_filtered_blacklist()
341
342 - More tests in testsuite
343
344 - Add compatibility with uClibc again
345
346 - Lookup modules.builtin.bin to decide if a module is built in kernel
347
348 - Downgrade some log messages so we don't annoy people with useless messages
349
350 - Bug fixes:
351 - Flag --ignore-loaded was not being properly handled
352 - Infinite loop with softdeps
353 - Infinite loop with dumb user configuration with install commands
354 - Fix leak in index when there's a partial match
355
356 - Move repository and tarballs to kernel.org
357
358 kmod 5
359 ======
360
361 - Break libkmod's API to insert a module like modprobe does. It now accepts
362 extra an extra argument to print its action and acceptable flags were
363 sanitized.
364
365 - Share more code between modprobe and libkmod: using the new version of
366 kmod_module_probe_insert_module() it's possible to share a great amount of
367 code between modprobe and libkmod
368
369 - modprobe no longer works with paths: it only accepts module names and/or
370 aliases now.
371
372 - testsuite was added to repository, allowing automated tests to be run and
373 easing the way bugs are reproduced.
374
375 - modprobe: when dumping configuration ('-c' option) separate config
376 and indexes by adding a commented line between them.
377
378 - Fix bugs wrt normalizing aliases and module names
379
380 - Fix bug wrt inserting an alias that resolves to multiple modules: we should
381 not stop on the first error, but rather continue to try loading other
382 modules.
383
384 - Fix unaligned memory access in hash function, causing depmod to output wrong
385 information in ARMv5
386
387 - Fix man page build and install: now they are only installed if tools are
388 enabled
389
390 kmod 4
391 ======
392
393 - New APIs in libkmod to:
394 - Get configuration lists: blacklists, install commands, remove
395 commands, aliases, options and softdeps
396 - Dump indexes
397
398 - Several bugs fixed in libkmod, modprobe, depmod and modinfo
399
400 - API documentation: if configure with run with --enable-gtk-doc, the API doc
401 will be generated by make. Gtk-doc is required for that.
402
403 - Man pages are built, which replace man pages from module-init-tools
404
405 - 'include' and 'config' options in *.conf files were deprecated
406
407 - configure is not run by autogen.sh. Instead, a common set of options is
408 printed. If you are hacking on kmod, consider using bootstrap-configure
409 script.
410
411 - 'modprobe -c' works as expected now. As opposed to module-init-tools, it
412 dumps the parsed configuration, not only the file contents.
413
414 kmod 3
415 ======
416
417 - New APIs in libkmod to:
418 - Get symbols from module, parsing the ELF section
419 - Get dependency symbols
420 - Check if resources are still valid or if libkmod must be reloaded
421 - Insert module like modprobe, checking (soft-)dependencies, commands,
422 blacklist. It can run commands by itself and to call a callback
423 function.
424
425 - Support to load modules compressed with xz
426
427 - Tools are now bundled together in a single tool called kmod. It can be
428 called using symlinks with the same names as tools from module-init-tools.
429 E.g: /usr/bin/lsmod -> /usr/bin/kmod. With this we are aiming to complete a
430 1:1 replacement of module-init-tools.
431
432 - The only missing tool, depmod, was added to kmod together with the necessary
433 APIs in libkmod.
434
435 - If a program using libkmod runs for a long time, as for example udev, it must
436 check if it doesn't have to re-load libkmod. A new helper function was added
437 in libkmod to check if context is still valid and udev is already using it.
438
439 - An 'unaligned access' bug was fixed. So those architecture that does not
440 handle unaligned access can use kmod, too.
441
442 kmod 2
443 ======
444
445 Some bugs fixed: the worst of them was with an infinite loop when an alias
446 matched more than one module.
447
448 - New APIs in libkmod to:
449 - Get soft dependencies
450 - Get info from module files parsing ELF
451 - Get modversions from files parsing ELF
452
453 - Support to load gzipped kernel modules: kmod can be compiled with support to
454 gzipped modules by giving the --enable-zlib flag
455
456 - Support to forcefully load modules, both vermagic and modversion
457
458 - Support to force and nowait removal flags
459
460 - Configuration files are parsed in the same order as modprobe: files are
461 sorted alphabetically (independently of their dir) and files with the same
462 name obey a precedence order
463
464 - New tool: kmod-modinfo
465
466 - kmod-modprobe gained several features to be a 1:1 replacement for modprobe.
467 The only missing things are the options '--showconfig' and '-t / -l'. These
468 last ones have been deprecated long ago and they will be removed from
469 modprobe. A lot of effort has been put on kmod-modprobe to ensure it
470 maintains compabitility with modprobe.
471
472 - linux-modules@vger.kernel.org became the official mailing list for kmod
473
474 kmod 1
475 ======
476
477 First version of kmod and its library, libkmod.
478
479 In the libkmod it's currently possible to:
480 - List modules currently loaded
481 - Get information about loaded modules such as initstate, refcount,
482 holders, sections, address and size
483 - Lookup modules by alias, module name or path
484 - Insert modules: options from configuration and extra options can be
485 passed, but flags are not implemented, yet
486 - Remove modules
487 - Filter list of modules using blacklist
488 - For each module, get the its list of options and install/remove
489 commands
490 - Indexes can be loaded on startup to speedup lookups later
491
492 Tools provided with the same set of options as in module-init-tools:
493 - kmod-lsmod
494 - kmod-insmod
495 - kmod-rmmod
496 - kmod-modprobe, with some functionality still missing (use of softdep,
497 dump configuration, show modversions)