]>
Commit | Line | Data |
---|---|---|
ef4257b5 LDM |
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 | ||
a29268d0 LDM |
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 | ||
42f32b8a LDM |
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 | ||
2bfcd7ef LDM |
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 | ||
d9c71758 LDM |
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 | ||
f9e2167b LDM |
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 | |
3b058610 | 142 | tools, making the binary size of tools smaller. |
f9e2167b | 143 | - Clarify tools vs library licenses |
3b058610 | 144 | - static-nodes: when writing in tmpfiles format, indicate that |
f9e2167b LDM |
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 | ||
ae58de0f LDM |
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 | ||
49d8e0b5 LDM |
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 | ||
7ab88044 LDM |
204 | kmod 16 |
205 | ======= | |
206 | ||
8f67ab53 LDM |
207 | - Bug fixes: |
208 | - Fix usage of readdir_r() | |
36c4bb92 | 209 | - Add some missing checks for memory allocation errors |
8f67ab53 | 210 | |
7ab88044 LDM |
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. | |
8f67ab53 LDM |
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 | |
36c4bb92 | 220 | - Use cleanup attribute |
7ab88044 | 221 | |
b3e19ce9 LDM |
222 | kmod 15 |
223 | ======= | |
224 | ||
225 | - Bug fixes: | |
226 | - kmod static-nodes doesn't fail if modules.devname isn't available | |
18811d22 LDM |
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) | |
b3e19ce9 LDM |
230 | |
231 | - New features: | |
232 | - kmod static-nodes creates parent directories if given a -o option | |
18811d22 LDM |
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 | |
b3e19ce9 | 237 | |
3b38c7fc LDM |
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 | ||
abb910eb LDM |
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 | ||
6feba028 LDM |
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 | ||
c599606f LDM |
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 | |
7ab88044 | 306 | now: man page and usage() say nothing about it and if it's used, |
c599606f LDM |
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 | ||
40758602 LDM |
317 | kmod 10 |
318 | ======= | |
319 | ||
320 | - New features: | |
321 | - Read coresize from /sys if supported | |
322 | ||
a7fbae03 JE |
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. | |
40758602 | 325 | This is needed to fix a change in behavior regarding module-init-tools |
a7fbae03 | 326 | and ultimately makes us loading a blacklisted module. |
40758602 LDM |
327 | |
328 | - Better formatting in man pages | |
329 | ||
a7fbae03 | 330 | - Add option to disable building man pages at build time |
40758602 | 331 | |
a7fbae03 | 332 | - Fixes in the testsuite and refactoring of LDPRELOAD'ed libraries |
40758602 LDM |
333 | |
334 | - Re-licensing testsuite as LGPL | |
335 | ||
62081c0f LDM |
336 | kmod 9 |
337 | ====== | |
338 | ||
a7fbae03 | 339 | - Improvements to the testsuite: |
62081c0f LDM |
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 | |
a7fbae03 JE |
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 | |
62081c0f | 348 | |
46684bc2 LDM |
349 | kmod 8 |
350 | ====== | |
351 | ||
352 | - No new features, small bug fixes only. | |
a7fbae03 | 353 | - Fix a bug in "modprobe -c" output: be compatible with |
46684bc2 LDM |
354 | module-init-tools |
355 | ||
a7fbae03 JE |
356 | - Give a useful error message when init_module fails due to bad |
357 | parameter or unknown symbols | |
46684bc2 LDM |
358 | |
359 | - Fix doc generation | |
360 | ||
8885ced0 LDM |
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 | ||
a7fbae03 JE |
370 | - Fix setting CFLAGS/LDFLAGS in build system. This prevented us from not |
371 | allowing the user to set his preferences. | |
8885ced0 LDM |
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 | |
8885ced0 | 380 | |
26906fe7 LDM |
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 | ||
e479598b LDM |
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 | ||
b53b7e32 LDM |
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 | ||
b30a71b8 LDM |
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 | ||
acc18b14 LDM |
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 | ||
89eba7cb LDM |
521 | kmod 1 |
522 | ====== | |
ecd40ee4 | 523 | |
89eba7cb LDM |
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) |