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