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