]> git.ipfire.org Git - thirdparty/kmod.git/blame - NEWS
Install kmod.pc in ${datadir}/pkgconfig
[thirdparty/kmod.git] / NEWS
CommitLineData
41faa597
LDM
1kmod 32
2=======
3
4- Improvements
5
6 - Use any hash algo known by kernel/openssl instead of keep needing
7 to update the mapping
8
9 - Teach kmod to load modprobe.d/depmod.d configuration from ${prefix}/lib
10 and allow it to be overriden during build with --with-distconfdir=DIR
11
12 - Make kernel modules directory configurable. This allows distro to
13 make kmod use only files from /usr regardless of having a compat
14 symlink in place.
15
16 - Install kmod.pc containing the features selected at build time.
17
18 - Install all tools and symlinks by default. Previously kmod relied on
19 distro packaging to set up the symlinks in place like modprobe,
20 depmod, lsmod, etc. Now those symlinks are created by kmod itself
21 and they are always placed in $bindir.
22
23- Bug Fixes
24
25 - Fix warnings due to -Walloc-size
26
27- Others
28
29 - Drop python bindings. Those were not update in ages and not compatible
30 with latest python releases.
31
32 - Cleanup test infra, dropping what was not used anymore
33
34 - Drop experimental tools `kmod insert` / `kmod remove`. Building those
35 was protected by a configure option never set by distros. They also
36 didn't gain enough traction to replace the older interfaces via
37 modprobe/insmod/rmmod.
38
aff617ea
LDM
39kmod 31
40=======
41
42- Improvements
43
44 - Allow passing a path to modprobe so the module is loaded from
45 anywhere from the filesystem, but still handling the module
46 dependencies recorded in the indexes. This is mostly intended for kernel
47 developers to speedup testing their kernel modules without having to load the
48 dependencies manually or override the module in /usr/lib/modules/.
49 Now it's possible to do:
50
51 # modprobe ./drivers/gpu/drm/i915/i915.ko
52
53 As long as the dependencies didn't change, this should do the right thing
54
55 - Use in-kernel decompression if available. This will check the runtime support
56 in the kernel for decompressing modules and use it through finit_module().
57 Previously kmod would fallback to the older init_module() when using
58 compressed modules since there wasn't a way to instruct the kernel to
59 uncompress it on load or check if the kernel supported it or not.
60 This requires a recent kernel (>= 6.4) to have that support and
61 in-kernel decompression properly working in the kernel.
62
63 - Make modprobe fallback to syslog when stderr is not available, as was
64 documented in the man page, but not implemented
65
66 - Better explaing `modprobe -r` and how it differentiates from rmmod
67
68 - depmod learned a `-o <dir>` option to allow using a separate output
69 directory. With this, it's possible to split the output files from
70 the ones used as input from the kernel build system
71
72 - Add compat with glibc >= 2.32.9000 that dropped __xstat
73
74 - Improve testsuite to stop skipping tests when sysconfdir is something
75 other than /etc
76
77 - Build system improvements and updates
78
79 - Change a few return codes from -ENOENT to -ENODATA to avoid confusing output
80 in depmod when the module itself lacks a particular ELF section due to e.g.
81 CONFIG_MODVERSIONS=n in the kernel.
82
83
84- Bug Fixes
85
86 - Fix testsuite using uninitialized memory when testing module removal
87 with --wait
88
89 - Fix testsuite not correctly overriding the stat syscall on 32-bit
90 platforms. For most architectures this was harmless, but for MIPS it
91 was causing some tests to fail.
92
93 - Fix handling unknown signature algorithm
94
95 - Fix linking with a static liblzma, libzstd or zlib
96
97 - Fix memory leak when removing module holders
98
99 - Fix out-of-bounds access when using very long paths as argument to rmmod
100
101 - Fix warnings reported by UBSan
102
5d46434a
LDM
103kmod 30
104=======
105
106- Improvements
107 - Stop adding duplicate information on modules.builtin.alias.bin, just use
108 the modules.builtin.bin index
109
110 - Speedup depmod, particularly under qemu with emulated arch, by
111 avoiding a lot of open/read/close of modules.alias.bin. On an
112 emulated ARM rootfs, depmod with only 2 modules was taking ~32s
113 vs ~0.07s now.
114
115 - Add kmod_module_new_from_name_lookup() which allows doing a lookup by
116 module name, without considering the aliases. Other than that search
117 order is similar to kmod_module_new_from_lookup().
118
119 - modinfo learned the --modname option to explicitely show information
120 about the module, even if there is an alias with the same name. This
121 allows showing information about e.g. kernel/lib/crc32.ko, even if
122 kernel also exports a crc32 alias in modules.alias:
123
124 alias crc32 crc32_pclmul
125 alias crc32 crc32_generic
126
127 Same behavior will be used to other modules and to aliases provided
128 by user/distro.
129
130 - depmod.conf learned a new "excludedir" directive so distro/user can
131 configure more directories to be excluded from its search, besides
132 the hardcoded values "build" and "source".
133
134 - Better group modprobe options on help output under "Management, Query and General".
135
136 - modprobe learned a --wait <MSEC> option to be used together with -r
137 when removing a module. This allows modprobe to keep trying the
138 removal if it fails because the module is still in use. An exponential backoff
139 time is used for further retries.
140
141 The wait behavior provided by the kernel when not passing O_NONBLOCK
142 to delete_module() was removed in v3.13 due to not be used and the
143 consequences of having to support it in the kernel. However there may
144 be some users, particularly on testsuites for individual susbsystems, that
145 would want that. So provide a userspace implementation inside modprobe for
146 such users. "rmmod" doesn't have a --wait as it remains a bare minimal over
147 the API provided by the kernel. In future the --wait behavior can be added
148 to libkmod for testsuites not exec'ing modprobe for module removal.
149
150 - kmod_module_remove_module() learned a new flag to silence output when
151 caller wants to handle them - this is particularly important for the
152 --wait flag to modprobe, as it's not desired to keep seeing error messages
153 while waiting for the module to be unused.
154
155 - Add SM3 hash algo support to modinfo output, as already available in the kernel.
156
157- Bug Fixes
158 - Fix modinfo output when showing information for a .ko module when running
159 on a kernel that has that module as builtin.
160
161 - Fix kmod_module_new_from_lookup() returning > 0 rather than 0
162 when it matches an alias.
163
164 - Fix modinfo segfault when module doesn't exist.
165
166 - Add missing function in the html documentation: kmod_get_dirname().
167
168 - Fix modprobe incorrectly handling number of arguments when prepending values from
169 MODPROBE_OPTIONS environment variable.
170
171 - Fix modprobe -r --remove-dependencies and since "dependencies" was a
172 misnomer, add the preferred argument option: "--remove-holders". This
173 is the same name used by the kernel. It allows users to also remove
174 other modules holding the one that is being removed.
175
176 - Fix off-by-one in max module name length in depmod.
177
178- Infra/internal
179 - Start some changes in the out-of-tree test modules in kmod so they are useful
180 for being really inserted in the kernel rather than relying on kmod's mock
181 interface. This helps manual testing and may be used to exercise to test
182 changes in the kernel.
183
b6ecfc91
LDM
184kmod 29
185=======
186
187- Improvements
188 - Add support to use /usr/local as a place for configuration files. This makes it easier
189 to install locally without overriding distro files.
190
191- Bug fixes
192 - Fix `modinfo -F` when module is builtin: when we asked by a specific field from modinfo,
193 it was not working correctly if the module was builtin
194
195 - Documentation fixes on precedence order of /etc and /run: the correct order is
196 /etc/modprobe.d, /run/modprobe.d, /lib/modprobe.d
197
198 - Fix the priority order that we use for searching configuration files. The
199 correct one is /etc, /run, /usr/local/lib, /lib, for both modprobe.d
200 and depmo.d
201
202 - Fix kernel command line parsing when there are quotes present. Grub
203 mangles the command line and changes it from 'module.option="val with
204 spaces"' to '"module.option=val with spaces"'. Although this is weird
205 behavior and grub could have been fixed, the kernel understands it
206 correctly for builtin modules. So change libkmod to also parse it
207 correctly. This also brings another hidden behavior from the kernel:
208 newline in the kernel command line is also allowed and can be used to
209 separate options.
210
211 - Fix a memory leak, overflow and double free on error path
212
213 - Fix documentation for return value from kmod_module_get_info(): we
214 return the number of entries we added to the list
215
216 - Fix output of modules.builtin.alias.bin index: we were writing an empty file due to
217 the misuse of kmod_module_get_info()
218
219- Infra/internal
220 - Retire integration with semaphoreci
221
222 - Declare the github mirror also as an official upstream source: now besides accepting
223 patches via mailing list, PRs on github are also acceptable
224
225 - Misc improvements to testsuite, so we can use it reliably regardless
226 of the configuration used: now tests will skip if we don't have the
227 build dependencies)
228
1ccfe994
LDM
229kmod 28
230=======
231
232- Improvements
233 - Add Zstandard to the supported compression formats using libzstd
234 (pass --with-zstd to configure)
235
236- Bug fixes
237 - Ignore ill-formed kernel command line, e.g. with "ivrs_acpihid[00:14.5]=AMD0020:0"
238 option in it
239 - Fix some memory leaks
240 - Fix 0-length builtin.alias.bin: it needs at least the index header
241
819a125c
LDM
242kmod 27
243=======
244
245- Improvements
246 - Link to libcrypto rather than requiring openssl
247
248 - Print a better error message when kernel doesn't support module unload
249
250 - Use PKCS#7 instead of CMS for parsing module signature to be
251 compatible with LibreSSL and OpenSSL < 1.1.0
252
253 - Teach modinfo to parse modules.builtin.modinfo. When using Linux kernel
254 >= v5.2-rc1 it's possible to get module information from this new file. Now
255 modinfo is able to show it instead of an error message that the module is
256 built-in:
257
258 Before:
259 $ modinfo ext4
260 modinfo: ERROR: Module ext4 not found.
261
262 After:
263 $ modinfo ext4
264 name: ext4
265 filename: (builtin)
266 softdep: pre: crc32c
267 license: GPL
268 description: Fourth Extended Filesystem
269 author: Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others
270 alias: fs-ext4
271 alias: ext3
272 alias: fs-ext3
273 alias: ext2
274 alias: fs-ext2
275
276- Bug fixes
277 - Do not link python bindings with libpython to be compatible with
278 python3.8
279
280 - Fix module removal with `modprobe -r` when a dependency is built-in.
281 Now it properly ignores them and proceed with removal of other
282 dependencies
283
284 - Fix propagation of return code from install/remove commands to the
285 the probe function. The return values of kmod_module_probe_insert_module()
286 have very specific meanings, do not confuse the caller by return codes
287 from system()
288
289 - Fix softdep config parsing leading to buffer overflow
290
58133a96
LDM
291kmod 26
292=======
293
294- Improvements
295 - Add more error-checking in library functions and remove warnings on newer
296 toolchains
297
298 - Depmod now handles parallel invoctions better by protecting the temporary
299 files being used
300
301 - Improvements to testsuite and added tests to check the our behavior
302 regardless of the features enabled in the kernel, or libraries we link to
303
304 - Teach the --show-exports option to modprobe. This works similarly to
305 --show-modversions, but it reports the exported symbols from that module.
306 Under the hood this reads the .symtab and .strtab section rather than
307 __versions so it shows useful data even if kernel is configured without
308 modversions (CONFIG_MODVERSIONS)
309
310 - Teach pkcs7 parsing to modinfo by using openssl. This allows modinfo to
311 correctly parse the signature appended to a module by the kernel build
312 system when configured with CONFIG_MODULE_SIG_ALL, or when externally
313 signed by the distro. Traditionally modules were signed and a struct
314 was appended together with the signature to the end of the module.
315 This has changed on the kernel for pkcs#7 and now the structure isn't
316 filled out with useful information. So we have to parse the signature
317 block in order to return useful data to the user.
318
319 If kmod is linked with openssl we parse the signature and return the
320 fields as we do for other signatures. An example of the relevant part
321 on the output of modinfo is below:
322
323 Before:
324 sig_id: PKCS#7
325 signer:
326 sig_key:
327 sig_hashalgo: md4
328 After:
329 sig_id: PKCS#7
330 signer: Fedora kernel signing key
331 sig_key: 51:C4:0C:6D:7E:A5:6C:D8:8F:B4:3A:DF:91:78:4F:18:BC:D5:E4:C5
332 sig_hashalgo: sha256
333
334 If kmod is not linked to openssl we just start printing "unknonwn" in the
335 sig_hashalgo field rather than the bogus value.
336
337
aca4eca1
LDM
338kmod 25
339=======
340
341- Improvements
342 - Add module signature to modinfo output
343
344 - Add support for external directories in depmod: now there's a new
345 "external" keyword parsed by depmod when calculating the dependencies.
346 It allows to add modules to other directories which are not relative
347 to where the modules are commonly installed. This results in
348 modules.dep and friends now understanding absolute paths rather than
349 relative paths only. For more information see depmod.d(1).
350
351 - Add support for CONFIG_MODULE_REL_CRCS
352
353 - Add missing documentation references in man pages
354
355 - Handle the case in which module has a .TOC symbol already while
356 calculating dependencies
357
358 - Improve testsuite and allow to use mkosi to run testsuite in different
359 distros
360
ef4257b5
LDM
361kmod 24
362=======
363
364- Improvements:
365 - Add more information on dependency loop
366
367 - Sanitize use of strcpy and allow to grow from small strings on stack
368 (common case) to bigger strings on heap when needed
369
370- Bug fixes
371 - Fix wrong dependency loops being reported by depmod
372
373 - Fix crashes when reporting dependency loops
374
375 - Fix parsing kernel command line containing quotes
376
377 - Fix leaks on error paths
378
a29268d0
LDM
379kmod 23
380=======
381
382- Improvements:
383 - Don't add comment to modules.devname if it would otherwise be empty
384 to play nice with tools detecting empty files
385
386 - Allow building with BSD sed, that doesn't have -E flag
387
388 - Ignore .TOC. symbols in depmod parsing as it's for PPC64 the
389 equivalent of _GLOBAL_OFFSET_TABLE_
390
391 - Teach modinfo about PKCS#7 module signatures: it doesn't add any
392 other info besides telling the user the module is signed since
393 kernel doesn't add other info on the module section
394
395- Bug fixes
396
397 - Fix -s and -p compat options to insmod triggering force flag
398
399 - Fix long lines from /proc/modules not being handled correctly by
400 kmod_module_new_from_loaded() and kmod_module_get_size() and several
401 other library functions that use them
402
403 - Fix crash on modinfo while checking for available signature of
404 unknown type
405
406 - Fix documentation generation with gtk-doc
407
42f32b8a
LDM
408kmod 22
409=======
410
411- Tools:
412 - Change defaul log level for tools to WARNING rather than ERROR and update
413 some log levels for current messages
414
415 - depmod doesn't fallback to uname if a bad version is passed in the command
416 line anymore. We just exit with an error.
417
418 - insmod was taught the -f flag, just like in modprobe. It was previously
419 silently ignoring it.
420
421- libkmod
422 - New kmod_get_dirname() API to get the module directory set in the
423 context
424
425- Bug fixes:
426 - Fix return code in error path of kmod_module_insert_module(). We were
427 previously returning ENOSYS rather than ENOENT.
428
2bfcd7ef
LDM
429kmod 21
430=======
431
432- New features:
433 - kmod tool started to learn the "insert" and "remove" commands that
434 are the simplified versions of the older modprobe tool. These
435 commands are still work in progress so they are hidden behind a
436 --enable-experimental flag during build. It should not be enabled
437 unless you know what you're doing.
438 - kmod tool now prints the relevant configuration options it was built
439 with when the "--version" argument is passed. This helps to mitigate
440 problems for example when the user is trying to load a compressed
441 module but kmod was built without support for the compression method.
442
443- Improvements to testsuite:
444 - Cache built modules so it is easier to run "make check" on build
445 servers by distro maintainers. If kmod is configured with
446 --disable-test-modules the modules from cache will be used by
447 "make check". No changes to the tests are needed and all of them
448 can run fine.
449
d9c71758
LDM
450kmod 20
451=======
452- Bug fixes:
453 - Handle bogus values from ELF, making sure they don't overflow while
454 parsing the file
455 - Fix leak in depmod when -b flag is passed multiple times
456 - Multiple minor fixes from static analysis by coverity and
457 clang-analyze
458 - Fix race between loading modules and checking if it's loaded in the
459 kernel
460
461- New features:
462 - There's a change in behavior regarding builtin modules: we now only
463 consider as builtin those that are present in modules.builtin index.
464 Previously we were also checking the presence of
465 /sys/module/<module-name>, but this is racy and only modules that
466 contain parameters are the ones creating a directory in sysfs.
467
468 Now some commands will start to fail, e.g. "modprobe vt". Since vt
469 can't be compiled as a module it's not present in modules.builtin
470 index. Previously we would report at as builtin, but now we fail
471 because we couldn't find the module.
472
473- Improvements:
474 - Integration of gcov into the build. Currently libkmod is at ~70%
475 covered and tools at ~50% by tests in the testsuite. Utility
476 functions and structures in shared have more than 90% of coverage.
477 - Upload build to coverity
478
479- Improvements to testsuite:
480 - Fix parsing return codes of init_module() calls
481 - Add tests for utility functions in shared/
482 - Add tests for kmod_module_remove_module()
483 - Add playground, in which our own modules are compiled
484 - Port all tests to use modules from module-playground instead of
485 copying prebuilt modules to the repository
486 - Properly handle binaries that exit with no output
487 - Besides comparing the output of commands, allow to copy to
488 stdout/stderr
489
f9e2167b
LDM
490kmod 19
491=======
492
493- Bug fixes:
494 - Fix missing CLOEXEC in library
495 - Fix error message while opening kmod's index
496
497- New features:
498 - Add kmod(8) man page
499 - Allow to build with libc's without be32toh()
500 - Move code around separating common code and data structures into a
501 shared directory. This allows to share more code between library and
3b058610 502 tools, making the binary size of tools smaller.
f9e2167b 503 - Clarify tools vs library licenses
3b058610 504 - static-nodes: when writing in tmpfiles format, indicate that
f9e2167b
LDM
505 creation of static nodes should only happen at boot. This is used and
506 required by systemd-217+.
507
508- Improvements to testsuite:
509 - Add tests for newly created shared/ code
510 - Improve how tests are declared so there's less boilerplate code for
511 each test.
512
ae58de0f
LDM
513kmod 18
514=======
515
516- Bug fixes:
517 - Fix leaks in error paths
518 - Fix use-after-free in hash implementation causing a wrong index to be
519 generated by depmod with out-of-tree modules
520
521- New features:
522 - Calling depmod with modules creating a dependency loop will now make
523 depmod return an error and not update the indexes. This is to protect
524 the current index not being overridden by another index that may cause
525 a boot failure, depending on the buggy module. It's a necessary
526 change in behavior regarding previous kmod releases and
527 module-init-tools. The error message was also improved to output
528 the modules that caused the dependency cycle.
529
530- Improvements to testsuite:
531 - Fix and improve expected-fail test
532 - Add tests for hashmap implementation
533
49d8e0b5
LDM
534kmod 17
535=======
536
537- Bug fixes:
538 - Fix matching a "." in kernel cmdline, making garbage in the command
539 line be parsed as kmod options
540 - Fix man pages to clarify we don't fallback to parsing modules.dep
541 but instead we depend on modules.dep.bin (generated by depmod) to
542 be present
543 - Fix ELF parsing on 32 bit systems assigning the wrong class.
544 - Fix partial matches of search directives in depmod. Previously having
545 a line in depmod.conf such as "search foo foobar built-in" would cause
546 unpretictable results because foo is a partial match of foobar as well.
547 - Fix unaligned access in modinfo when getting the signature from a
548 module
549 - Make sure softdeps are treated as optional dependencies
550
551- New features:
552 - Accept special files given to "-C" switch in modprobe. This way it's
553 possible to skip system configuration with "modprobe -C /dev/null"
554 - Do not require xsltproc on released tarballs
555 - Don't use Werror anymore
556 - Add experimental python bindings, merged from python-kmod repository
557 (https://github.com/agrover/python-kmod)
558 - Parse softdeps exported by the kernel as
559 /lib/modules/`uname -r`/modules.softdep
560
561- Improvements to testsuite:
562 - Check the list of loaded modules after a test
563
7ab88044
LDM
564kmod 16
565=======
566
8f67ab53
LDM
567- Bug fixes:
568 - Fix usage of readdir_r()
36c4bb92 569 - Add some missing checks for memory allocation errors
8f67ab53 570
7ab88044
LDM
571- New features:
572 - Remove option from libkmod to allow waiting on module removal if
573 the module is being used. It's dangerous since it can block the
574 caller indefinitely.
8f67ab53
LDM
575 - Improve compatibility with musl libc
576 - Add fallback implementation for compilers without _Static_assert(),
577 e.g. gcc < 4.6
578 - Minor optimizations to the hash table
579 - Make depmod warn if a module has incorrect devname specification
36c4bb92 580 - Use cleanup attribute
7ab88044 581
b3e19ce9
LDM
582kmod 15
583=======
584
585- Bug fixes:
586 - kmod static-nodes doesn't fail if modules.devname isn't available
18811d22
LDM
587 - Fix getting boolean parameter from kernel cmdline in case the value
588 is omitted
589 - Fix some mkdir_p() corner cases (used in testsuite and static-nodes)
b3e19ce9
LDM
590
591- New features:
592 - kmod static-nodes creates parent directories if given a -o option
18811d22
LDM
593 - kmod binary statically links to libkmod - if distro is only interested
594 in the kmod tool (for example in an initrd) it can refrain from
595 installing the library
596 - Add shell completion for kmod tool
b3e19ce9 597
3b38c7fc
LDM
598kmod 14
599=======
600
601- Bug fixes:
602 - Fix some format strings
603 - Protect against NULL being passed around to index
604 - Avoid calling syscall() with -1 when finit_module() is not available,
605 since this doesn't always work
606 - Fix not being able to remove alias due to checking the module's
607 refcount
608 - Minor fixes and refactors
609
610- New features:
611 - Improve libkmod documentation, particularly on how flags are dealt
612 with.
613 - Remove ability to build a static libkmod
614 - Add static-nodes command to kmod that parses modules.devname
615 generating output in useful formats
616
abb910eb
LDM
617kmod 13
618=======
619
620- Bug fixes:
621 - Add the long option --symbol-prefix option to depmod (it was absent)
622 and fix its behavior
623 - Don't abort if there's a bogus line in configuration file like "alias
624 psmouse off". Some distros are carrying this since the days of
625 modutils
626
627- New features:
628 - Add support for finit_module(2). If the module is load straight from
629 the disk and without compression we use finit_module() syscall when
630 available, falling back to init_module() otherwise
631 - kmod_module_get_info() also returns the signature if the module is
632 signed and modinfo uses it
633 - Use secure_getenv if available
634 - rmmod understands builtin modules, just like modprobe does
635 - Improve compatibility with musl-libc
636 - Test cases exit with success when receiving a signal if they are
637 xfail tests
638
6feba028
LDM
639kmod 12
640=======
641
642- Bug fixes:
643 - Fix removing vermagic from module when told to force load a module
644 - Fix removing __versions section when told to force load a module: we
645 need to mangle the section header, not the section.
646 - modinfo no longer fails while loading a module from file when path
647 contains ".ko" substring
648
c599606f
LDM
649kmod 11
650=======
651
652- Improvements to testsuite:
653 - Fix testsuite defining symbols twice on 32 bit systems
654 - Allow to check generated files against correct ones
655
656- New features:
657 - libkmod now keeps a file opened after the first call to
658 kmod_module_get_{info,versions,symbols,dependency_symbols}. This
c7243325 659 reduces significantly the amount of time depmod tool takes to
c599606f
LDM
660 execute. Particularly if compressed modules are used.
661 - Remove --with-rootprefix from build system. It was not a great idea
662 after all and should not be use since it causes more harm then
663 benefits.
664 - Hide --wait option on rmmod. This feature is being targeted for
665 removal from kernel. rmmod still accepts this option, but it's hidden
7ab88044 666 now: man page and usage() say nothing about it and if it's used,
c599606f
LDM
667 user will get a 10s sleep. This way we can check and help if anyone
668 is using this feature.
669 - Refactor message logging on all tools, giving proper prefix, routing
670 everything to syslog when asked for, etc.
671
672- Bug fixes:
673 - Fix parsing of modules.order when using compressed modules
674 - Usage messages go to stdout instead of stderr
675 - Fix memory leak in hash implementation
676
40758602
LDM
677kmod 10
678=======
679
680- New features:
681 - Read coresize from /sys if supported
682
a7fbae03
JE
683 - Add flag to kmod_module_probe_insert() to apply blacklisting during
684 probe only if mod is an alias. Now modprobe uses this flag by default.
40758602 685 This is needed to fix a change in behavior regarding module-init-tools
a7fbae03 686 and ultimately makes us loading a blacklisted module.
40758602
LDM
687
688- Better formatting in man pages
689
a7fbae03 690- Add option to disable building man pages at build time
40758602 691
a7fbae03 692- Fixes in the testsuite and refactoring of LDPRELOAD'ed libraries
40758602
LDM
693
694- Re-licensing testsuite as LGPL
695
62081c0f
LDM
696kmod 9
697======
698
a7fbae03 699- Improvements to the testsuite:
62081c0f
LDM
700 - Check for correct handling of softdep loops
701 - Check for correct handling of install command loops
702
703- Bug fixes:
704 - Fix build with compilers that don't support --gc-sections
a7fbae03
JE
705 - Handle errors when dealing with gzipped modules
706 - depmod now handles errors while writing indices, so it doesn't end up
707 with a corrupted index without telling the user
62081c0f 708
46684bc2
LDM
709kmod 8
710======
711
712- No new features, small bug fixes only.
a7fbae03 713 - Fix a bug in "modprobe -c" output: be compatible with
46684bc2
LDM
714 module-init-tools
715
a7fbae03
JE
716 - Give a useful error message when init_module fails due to bad
717 parameter or unknown symbols
46684bc2
LDM
718
719 - Fix doc generation
720
8885ced0
LDM
721kmod 7
722======
723
724- Re-order dirs for configuration files to match the change in systemd and
725 udev: now the priority is:
726 1. /etc/modprobe.d
727 2. /run/modprobe.d
728 3. /lib/modprobe.d
729
a7fbae03
JE
730- Fix setting CFLAGS/LDFLAGS in build system. This prevented us from not
731 allowing the user to set his preferences.
8885ced0
LDM
732
733- Bug fixes:
734 - Return same error codes of module-init-tools when removing modules
735 with modprobe
736 - Fix builtin output in "--show-depends" when target kernel is not the
737 same of the running kernel
738 - 'modprobe -r' always look at all command line arguments
739 - Fix '-q' usage in modprobe
8885ced0 740
26906fe7
LDM
741kmod 6
742======
743
744- New API in libkmod:
745 - kmod_module_apply_filter(): a generic function to apply filters in a
746 list of modules. This deprecates the use of
747 kmod_module_get_filtered_blacklist()
748
749- More tests in testsuite
750
751- Add compatibility with uClibc again
752
753- Lookup modules.builtin.bin to decide if a module is built in kernel
754
755- Downgrade some log messages so we don't annoy people with useless messages
756
757- Bug fixes:
758 - Flag --ignore-loaded was not being properly handled
759 - Infinite loop with softdeps
760 - Infinite loop with dumb user configuration with install commands
761 - Fix leak in index when there's a partial match
762
763- Move repository and tarballs to kernel.org
764
e479598b
LDM
765kmod 5
766======
767
768- Break libkmod's API to insert a module like modprobe does. It now accepts
769 extra an extra argument to print its action and acceptable flags were
770 sanitized.
771
772- Share more code between modprobe and libkmod: using the new version of
773 kmod_module_probe_insert_module() it's possible to share a great amount of
774 code between modprobe and libkmod
775
776- modprobe no longer works with paths: it only accepts module names and/or
777 aliases now.
778
779- testsuite was added to repository, allowing automated tests to be run and
780 easing the way bugs are reproduced.
781
782- modprobe: when dumping configuration ('-c' option) separate config
783 and indexes by adding a commented line between them.
784
785- Fix bugs wrt normalizing aliases and module names
786
787- Fix bug wrt inserting an alias that resolves to multiple modules: we should
788 not stop on the first error, but rather continue to try loading other
789 modules.
790
791- Fix unaligned memory access in hash function, causing depmod to output wrong
792 information in ARMv5
793
794- Fix man page build and install: now they are only installed if tools are
795 enabled
796
b53b7e32
LDM
797kmod 4
798======
799
800- New APIs in libkmod to:
801 - Get configuration lists: blacklists, install commands, remove
802 commands, aliases, options and softdeps
803 - Dump indexes
804
805- Several bugs fixed in libkmod, modprobe, depmod and modinfo
806
807- API documentation: if configure with run with --enable-gtk-doc, the API doc
808 will be generated by make. Gtk-doc is required for that.
809
810- Man pages are built, which replace man pages from module-init-tools
811
812- 'include' and 'config' options in *.conf files were deprecated
813
814- configure is not run by autogen.sh. Instead, a common set of options is
815 printed. If you are hacking on kmod, consider using bootstrap-configure
816 script.
817
818- 'modprobe -c' works as expected now. As opposed to module-init-tools, it
819 dumps the parsed configuration, not only the file contents.
820
b30a71b8
LDM
821kmod 3
822======
823
824- New APIs in libkmod to:
825 - Get symbols from module, parsing the ELF section
826 - Get dependency symbols
827 - Check if resources are still valid or if libkmod must be reloaded
828 - Insert module like modprobe, checking (soft-)dependencies, commands,
829 blacklist. It can run commands by itself and to call a callback
830 function.
831
832- Support to load modules compressed with xz
833
834- Tools are now bundled together in a single tool called kmod. It can be
835 called using symlinks with the same names as tools from module-init-tools.
836 E.g: /usr/bin/lsmod -> /usr/bin/kmod. With this we are aiming to complete a
837 1:1 replacement of module-init-tools.
838
839- The only missing tool, depmod, was added to kmod together with the necessary
840 APIs in libkmod.
841
842- If a program using libkmod runs for a long time, as for example udev, it must
843 check if it doesn't have to re-load libkmod. A new helper function was added
844 in libkmod to check if context is still valid and udev is already using it.
845
846- An 'unaligned access' bug was fixed. So those architecture that does not
847 handle unaligned access can use kmod, too.
848
acc18b14
LDM
849kmod 2
850======
851
852Some bugs fixed: the worst of them was with an infinite loop when an alias
853matched more than one module.
854
855- New APIs in libkmod to:
856 - Get soft dependencies
857 - Get info from module files parsing ELF
858 - Get modversions from files parsing ELF
859
860- Support to load gzipped kernel modules: kmod can be compiled with support to
861 gzipped modules by giving the --enable-zlib flag
862
863- Support to forcefully load modules, both vermagic and modversion
864
865- Support to force and nowait removal flags
866
867- Configuration files are parsed in the same order as modprobe: files are
868 sorted alphabetically (independently of their dir) and files with the same
869 name obey a precedence order
870
871- New tool: kmod-modinfo
872
873- kmod-modprobe gained several features to be a 1:1 replacement for modprobe.
874 The only missing things are the options '--showconfig' and '-t / -l'. These
875 last ones have been deprecated long ago and they will be removed from
876 modprobe. A lot of effort has been put on kmod-modprobe to ensure it
877 maintains compabitility with modprobe.
878
879- linux-modules@vger.kernel.org became the official mailing list for kmod
880
89eba7cb
LDM
881kmod 1
882======
ecd40ee4 883
89eba7cb
LDM
884First version of kmod and its library, libkmod.
885
886In the libkmod it's currently possible to:
887 - List modules currently loaded
888 - Get information about loaded modules such as initstate, refcount,
889 holders, sections, address and size
890 - Lookup modules by alias, module name or path
891 - Insert modules: options from configuration and extra options can be
892 passed, but flags are not implemented, yet
893 - Remove modules
894 - Filter list of modules using blacklist
895 - For each module, get the its list of options and install/remove
896 commands
897 - Indexes can be loaded on startup to speedup lookups later
898
899Tools provided with the same set of options as in module-init-tools:
900 - kmod-lsmod
901 - kmod-insmod
902 - kmod-rmmod
903 - kmod-modprobe, with some functionality still missing (use of softdep,
904 dump configuration, show modversions)