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