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