Features:
=========
+* Add command for signing modules
+ - There is a script to sign modules in kernel tree, but we should be able to
+ sign modules by ourselves
+
+* Stop using NOFAIL() and fatal()
+
+* Protect index against OOM
+
+* Implement actions in kmod tool like 'insert', 'remove', 'info', etc
+
* testsuite:
- when fake delete_module() succeeds, remove its entry from /sys/module
+ - improve coverage (use --enable-coverage to check the current state)
+
+* Stop using system() inside the library and use fork + exec instead
+
+* config: configs that do not need to be matched by fnmatch() could be using a
+ vector instead of a list. This way we could search in it by calling
+ bsearch().
+
+* config: implement the config handling in shared/ and use it in both depmod
+and libkmod
* review API, maybe unify all of these getters:
- kmod_module_version_get_symbol()
- kmod_module_symbols_free_list()
- kmod_module_dependency_symbols_free_list()
-* Stop using system() inside the library and use fork + exec instead
-
-* config: configs that do not need to be matched by fnmatch() could be using a
- vector instead of a list. This way we could search in it by calling
- bsearch().
+* libkmod API breaking changes:
+ - dedicated error value for all kmod_*_get_crc() functions. Currently there
+ is no way for callers to distinguish between a valid CRC=0 and the error
+ code 0.
* index: drop the "open(), seek(), read()" implementation and use another one
with mmap(). When lookup() is called and the file is not mmaped, mmap it.
+ Another possibility is to drop the mmap implementation relying on VFS to have
+ the pages cached. This would simplify the interface exported by libkmod.
+ Measure performance before deciding.
-* Implement actions in kmod tool like 'insert', 'remove', 'info', etc
-
-* Finish removal of "rmmod -w" when it's gone from kernel.
-
-* Deprecate not using KMOD_REMOVE_NOWAIT on libkmod.
+* depmod:
+ - join functions for text/binary outputs
+ - use new O_TMPFILE for tmp file creation
Things to be added/removed in kernel (check what is really needed):
===================================================================
- readdir() in /sys/modules: dir without a 'initstate' file means the
module is builtin.
-* module's size should be available under /sys
- - DONE in 3.3: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=cca3e707301862ca9b9327e6a732463982f8cd1b
-
* kill /proc/modules ?
- Unlikely, given other tools might depend on it
-
-Things that are different from module-init-tools on purpose (!TODO)
-===================================================================
-
-modprobe
---------
-
-* 'modprobe -l' was marked as deprecated and does not exist anymore
-
-* 'modprobe -t' is gone, together with 'modprobe -l'
-
-* there's and additional '--remove-dependencies' flags to modprobe so we
- can remove modules depending on that one
-
-* modprobe doesn't parse configuration files with names not ending in
- '.alias' or '.conf'. modprobe used to warn about these files.
-
-* modprobe doesn't parse 'config' and 'include' commands in configuration
- files.
-
-* modprobe from m-i-t does not honour softdeps for install commands. E.g.:
- config:
-
- install bli "echo bli"
- install bla "echo bla"
- softdep bla pre: bli
-
- With m-i-t, the output of 'modprobe --show-depends bla' will be:
- install "echo bla"
-
- While with kmod:
- install "echo bli"
- install "echo bla"
-
-* kmod doesn't dump the configuration as is in the config files. Instead it
- dumps the configuration as it was parsed. Therefore, comments and file names
- are not dumped, but on the good side we know what the exact configuration
- kmod is using. We did this because if we only want to know the entire content
- of configuration files, it's enough to use find(1) in modprobe.d directories
-
-depmod
-------
-
-* there's no 'depmod -m' option: legacy modules.*map files are gone
-
-lsmod
------
-
-* information is parsed from /sys instead of /proc/modules