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