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