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