Lucas De Marchi [Mon, 9 Jan 2012 04:35:41 +0000 (02:35 -0200)]
doc: fix comments format
Lucas De Marchi [Mon, 9 Jan 2012 02:40:50 +0000 (00:40 -0200)]
Update copyright
Lucas De Marchi [Sun, 8 Jan 2012 20:08:05 +0000 (18:08 -0200)]
modprobe: fix error path when loading dependencies
demarchi> scenario is the following:
demarchi> modA depends on modB and modC
demarchi> if there's a race when trying to insert a dependency of a module, say
modB, it will stop loading all the modules
demarchi> it should check by "module already loaded error"
demarchi> like it does for modA
Gustavo Sverzut Barbieri [Sun, 8 Jan 2012 15:58:28 +0000 (13:58 -0200)]
modprobe: show is independent from verbose level.
"modprobe --quiet --show-depends" now works.
Lucas De Marchi [Sun, 8 Jan 2012 03:02:29 +0000 (01:02 -0200)]
Replace NAME_MAX with PATH_MAX for module aliases
Module aliases can be bigger than NAME_MAX. So, replace with PATH_MAX
that is bigger enough to hold them.
Technically in some places NAME_MAX would be sufficient (those using
module names only), but they use functions that can be called with
alias. So increase the buffers in these cases to PATH_MAX too.
Lucas De Marchi [Fri, 6 Jan 2012 21:22:41 +0000 (19:22 -0200)]
config: check if opening /proc/cmdline succeeded
Rolf Eike Beer [Fri, 6 Jan 2012 12:33:11 +0000 (13:33 +0100)]
tools/kmod-depmod: fix aliasing warning
Lucas De Marchi [Fri, 6 Jan 2012 12:44:45 +0000 (10:44 -0200)]
Revert "tools/kmod-depmod: fix aliasing warning"
This reverts commit
f63fc9e606449a36d26cc9a99431229e4efacdad. Wrong
author name. I'll apply it again later.
root [Fri, 6 Jan 2012 12:33:11 +0000 (13:33 +0100)]
tools/kmod-depmod: fix aliasing warning
Dave Reisner [Fri, 6 Jan 2012 03:56:54 +0000 (22:56 -0500)]
tools/modprobe: exit non-zero on module not found with --all
Dave Reisner [Fri, 6 Jan 2012 03:56:53 +0000 (22:56 -0500)]
tools/modinfo: exit non-zero on module not found
Lucas De Marchi [Thu, 5 Jan 2012 00:27:58 +0000 (22:27 -0200)]
kmod 3
Lucas De Marchi [Thu, 5 Jan 2012 10:15:51 +0000 (08:15 -0200)]
tools: use basename in help message
Dave Reisner [Thu, 5 Jan 2012 00:05:04 +0000 (19:05 -0500)]
libkmod/hash: check for NULL before freeing hash
Lucas De Marchi [Wed, 4 Jan 2012 23:07:59 +0000 (21:07 -0200)]
Add missing doc for function argument
Lucas De Marchi [Wed, 4 Jan 2012 22:53:10 +0000 (20:53 -0200)]
kmod-depmod: demote messages to WRN when non-critical files are missing
Dave Reisner [Wed, 4 Jan 2012 15:59:49 +0000 (10:59 -0500)]
libkmod: Fix casing in error output
Dave Reisner [Wed, 4 Jan 2012 15:41:50 +0000 (10:41 -0500)]
tools: unify error verbiage and casing
Fix a typo and ensure that we always use "could not" instead of "Could
not" or the conjunction "couldn't".
Lucas De Marchi [Wed, 4 Jan 2012 10:58:19 +0000 (08:58 -0200)]
build-sys: do not install kmod-* tools
Lucas De Marchi [Wed, 4 Jan 2012 10:23:15 +0000 (08:23 -0200)]
file: use log facilities
Don't clutter stderr with messages that might be useful in the log.
Lucas De Marchi [Wed, 4 Jan 2012 10:19:34 +0000 (08:19 -0200)]
file: take a weakref to ctx
Lucas De Marchi [Wed, 4 Jan 2012 10:14:54 +0000 (08:14 -0200)]
config: take a weakref to ctx
Commit "b6a4dfb config: save list of config paths with their timestamps"
removed the weakref to ctx. Add it back.
Lucas De Marchi [Wed, 4 Jan 2012 10:00:45 +0000 (08:00 -0200)]
Add missing static const
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 18:14:57 +0000 (16:14 -0200)]
kmod-depmod: fix replacement of existing modules.
We cannot create a kmod_module for existing module name, it will fail
due existing in the hash table "modules_by_name".
To avoid it, we first delete the existing module, if lower priority,
then add the new one.
kmod_module_new_from_path() is called only when the former module was
deleted or does not exist.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 18:03:06 +0000 (16:03 -0200)]
kmod-depmod: fix comparison of module priority.
This code was never tested, my bad!
* the prefix should be ignored, as it is not stored in cfg_search/override.
* baselen should not include '/'.
* search length should not include '\0'.
* override path should not include cfg->dirname prefix.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 17:58:24 +0000 (15:58 -0200)]
utils/array: add array_remove_at()
remove array element at given position, will be used by depmod.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 17:11:58 +0000 (15:11 -0200)]
kmod-depmod: fix incorrect math finding out end of dirname.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 17:06:08 +0000 (15:06 -0200)]
kmod-depmod: document --config/-C in help output.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 17:04:34 +0000 (15:04 -0200)]
kmod-depmod: add missing trailing \n to log messages.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 16:53:15 +0000 (14:53 -0200)]
elf: zero *array when count is zero.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 16:25:49 +0000 (14:25 -0200)]
libkmod-file: refactor code to avoid ifdef mess.
Refactor code to use pointer to functions, avoiding the previous
Now comp_types defines a magic header to be checked (size and bytes),
with the associated load() and unload() operations. If a header
matches, their operations are used. Otherwise the regular file
operations (mmap/munmap) are used.
File descriptor close is managed by the common code if it's valid
(>=0). If some code steals the file descriptor (eg: gzopen), then they
must change file->fd to -1.
This way the code should be easier to extend and avoid bugs.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 16:22:05 +0000 (14:22 -0200)]
utils/read_str_safe(): fix wrong behavior and bugs.
ouch, I did a mess in the original function, fix them:
* on errors (read() < 0), continue reading after the done bytes, not
at position 0.
* read buflen - 1 bytes, so there is always room to store the
trailing \0, as expected by user due behavior of snprintf(),
fgets() and others.
Lucas De Marchi [Sat, 31 Dec 2011 21:41:05 +0000 (19:41 -0200)]
TODO: add task for providing man page
Lucas De Marchi [Sat, 31 Dec 2011 21:29:13 +0000 (19:29 -0200)]
Add test to check kmod_validate_resources
Lucas De Marchi [Sat, 31 Dec 2011 21:28:31 +0000 (19:28 -0200)]
Add call to check if resources are valid
Lucas De Marchi [Sat, 31 Dec 2011 20:53:24 +0000 (18:53 -0200)]
index: save timestamp of each loaded index
Lucas De Marchi [Sat, 31 Dec 2011 20:48:05 +0000 (18:48 -0200)]
config: save list of config paths with their timestamps
Save a list of config paths with their timestamps so they can be checked
later.
Lucas De Marchi [Sat, 31 Dec 2011 14:28:54 +0000 (12:28 -0200)]
util: add helper function to compare timestamps
Lucas De Marchi [Sun, 1 Jan 2012 08:07:46 +0000 (06:07 -0200)]
kmod-modprobe: mimic modprobe when removing deps with usecount=0
Lucas De Marchi [Sun, 1 Jan 2012 07:55:25 +0000 (05:55 -0200)]
Fix leak of kmod_module and fix code style
Lucas De Marchi [Sun, 1 Jan 2012 07:47:17 +0000 (05:47 -0200)]
TODO: add list of things that are different on kmod
Dave Reisner [Sat, 31 Dec 2011 23:02:45 +0000 (18:02 -0500)]
kmodprobe: post-remove module deps with 0 refcnt
Dave Reisner [Sat, 31 Dec 2011 23:02:30 +0000 (18:02 -0500)]
modprobe: use lighter access call instead of stat
Dave Reisner [Sat, 31 Dec 2011 21:51:40 +0000 (16:51 -0500)]
modprobe: remove --list option
This was marked as deprecated in m-i-t's modprobe in favor of find and
basename.
Dave Reisner [Sat, 31 Dec 2011 16:19:55 +0000 (11:19 -0500)]
libkmod-config: remove warning for skipped config files
conf_files_filter_out() already skips these files, but writes to the log
to warn that they'll be ignored in the future.
Lucas De Marchi [Sat, 31 Dec 2011 15:01:55 +0000 (13:01 -0200)]
Use last enum value instead of ARRAY_SIZE
Lucas De Marchi [Sat, 31 Dec 2011 13:21:52 +0000 (11:21 -0200)]
Do not call exported function for mod->name
Name is always available and we don't neet to call a exported function
to get it.
Lucas De Marchi [Sat, 31 Dec 2011 13:15:52 +0000 (11:15 -0200)]
Move function to the right place
Lucas De Marchi [Fri, 30 Dec 2011 16:15:40 +0000 (14:15 -0200)]
Ignore "already loaded" error in module_probe_insert_module()
It also fixes a leak in the error path.
Lucas De Marchi [Fri, 30 Dec 2011 16:13:33 +0000 (14:13 -0200)]
Use errno instead of return value of init_module()
Return -errno instead of the value returned by init_module(). We need to
differentiate between the several errors that might occur, e.g. "module
already loaded", access denied, etc.
Leandro Pereira [Wed, 28 Dec 2011 16:44:35 +0000 (14:44 -0200)]
libkmod-util: getline_wrapped: return NULL when buffer allocation fails
Leandro Pereira [Wed, 28 Dec 2011 17:01:16 +0000 (15:01 -0200)]
Do not forget parenthesis around if (streq(A, B)).
Lucas De Marchi [Wed, 28 Dec 2011 15:33:26 +0000 (13:33 -0200)]
Move libkmod-util.c to convenience util lib
Share more code between tools and libkmod. underscores() in kmod-depmod
can not use the same function as in the lib, so rename it.
Lucas De Marchi [Wed, 28 Dec 2011 14:53:37 +0000 (12:53 -0200)]
Move array implementation from depmode to libkmod-util
Lucas De Marchi [Tue, 27 Dec 2011 21:56:33 +0000 (19:56 -0200)]
tools: kmod: bundle depmod together with the others
Lucas De Marchi [Tue, 27 Dec 2011 21:53:38 +0000 (19:53 -0200)]
Fix header guard
Leandro Pereira [Tue, 27 Dec 2011 20:22:30 +0000 (18:22 -0200)]
kmod tool: don't keep iterating when command has been executed
Lucas De Marchi [Tue, 27 Dec 2011 16:38:26 +0000 (14:38 -0200)]
Move util functions to libkmod-util.c
These allow them to be later shared with tools.
Lucas De Marchi [Tue, 27 Dec 2011 15:27:42 +0000 (13:27 -0200)]
kmod-depmod: use hash implementation from util lib
Lucas De Marchi [Tue, 27 Dec 2011 15:27:01 +0000 (13:27 -0200)]
hash: add iterator
Lucas De Marchi [Tue, 27 Dec 2011 14:26:51 +0000 (12:26 -0200)]
build-sys: create libkmod-util.la convenience lib
Util functions can be shared betweeing libkmod and tools. Start with the
hash implementation.
Lucas De Marchi [Tue, 27 Dec 2011 14:20:35 +0000 (12:20 -0200)]
Copy missing hash functions from kmod-depmod to libkmod
Lucas De Marchi [Tue, 27 Dec 2011 14:13:54 +0000 (12:13 -0200)]
Remove kmod_ prefix from hash implementation
In a future commit, hash implementation will be shared between libkmod
and depmod. kmod_hash is not exported, so remove the namespace.
Lucas De Marchi [Tue, 27 Dec 2011 20:10:19 +0000 (18:10 -0200)]
Log paths if kmod_module_new_from_path() failed
Lucas De Marchi [Tue, 27 Dec 2011 19:32:55 +0000 (17:32 -0200)]
TODO: format and add task
Lucas De Marchi [Tue, 27 Dec 2011 16:18:32 +0000 (14:18 -0200)]
kmod-depmod: Fix leak of dependency vector
Gustavo Sverzut Barbieri [Mon, 26 Dec 2011 15:19:07 +0000 (13:19 -0200)]
kmod-depmod: refactor extension matching array, support XZ.
move the extensions array match to global, conditionally add GZ and XZ
if the support is enabled.
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 13:16:40 +0000 (11:16 -0200)]
kmod-depmod: implement -A (--quick)
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 12:31:55 +0000 (10:31 -0200)]
kmod-depmod: implement -F and -E options.
Read System.map and Module.symvers from kernel built, then be able to
report unknown symbols.
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 03:45:23 +0000 (01:45 -0200)]
update TODO
depmod was done, and without map support
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 01:21:48 +0000 (23:21 -0200)]
kmod-depmod: dump modules.dep.bin
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 01:21:09 +0000 (23:21 -0200)]
kmod-depmod: dump modules.alias.bin
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 01:20:44 +0000 (23:20 -0200)]
kmod-depmod: dump modules.symbols.bin
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 01:19:22 +0000 (23:19 -0200)]
kmod-depmod: dump modules.builtin.bin
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 01:16:20 +0000 (23:16 -0200)]
kmod-depmod: add utility functions to be used by binary dumps.
Binary dumps will use functions to convert alias to underscores and
paths to module names.
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 01:11:41 +0000 (23:11 -0200)]
kmod-depmod: copy code from module-init-tools/index.c
Copy code from module-init-tools/index.c, the following copyright applies:
Copyright (C) 2008 Alan Jenkins <alan-jenkins@tuffmail.co.uk>.
Gustavo Sverzut Barbieri [Fri, 23 Dec 2011 22:53:16 +0000 (20:53 -0200)]
kmod-depmod: dump deps.
Gustavo Sverzut Barbieri [Fri, 23 Dec 2011 03:43:01 +0000 (01:43 -0200)]
kmod-depmod: dump aliases
Gustavo Sverzut Barbieri [Fri, 23 Dec 2011 03:37:07 +0000 (01:37 -0200)]
kmod-depmod: dump softdeps.
Gustavo Sverzut Barbieri [Fri, 23 Dec 2011 03:27:28 +0000 (01:27 -0200)]
kmod-depmod: dump modules.symbols
note that the hash algorithm is different thus the output order will
be different as well.
to compare the outputs, sort the files:
depmod -n | grep '^alias symbol:' | sort > /tmp/orig
kmod-depmod -n | grep '^alias symbol:' | sort > /tmp/new
diff /tmp/orig /tmp/new
Gustavo Sverzut Barbieri [Fri, 23 Dec 2011 02:55:33 +0000 (00:55 -0200)]
kmod-depmod: dump devname
first try to dump files: modules.devname.
Gustavo Sverzut Barbieri [Thu, 22 Dec 2011 22:23:11 +0000 (20:23 -0200)]
kmod-depmod: initial code (no files generated, untested)
this is the initial code for depmod, it should:
* use configuration from /run/depmod.d, /etc/depmod.d, /lib/depmod.d
* respect overrides and searches
* resolve symbols and dependencies
* break circular dependencies (dependency loops)
* --errsyms: print out modules with unresolved symbols and incorrect crc
* --symbol-prefix: respect architecture symbol prefix
it will not:
* --quick: does not do quick mode
* --warn: does not warn on duplicates
* --filesyms: does not load symbols from map file
* --symvers: does not load symbol versions from map file
* dump files: does not dump any files at the moment.
it is highly untested, then I appreciate your help with real world
scenarios using overrides and searches. To get output run with -vvvvvv.
next version should fill in the gaps and at least generate the files
Lucas De Marchi [Mon, 26 Dec 2011 18:06:50 +0000 (16:06 -0200)]
Add test for probe insert
Lucas De Marchi [Tue, 27 Dec 2011 13:40:10 +0000 (11:40 -0200)]
Add implementation of modprobe's insertion
Treat module insertion as modprobe does: look for (soft-)dependencies, run
install commands, apply blacklist.
The difference with the blacklist is that it's applied to all modules,
including the dependencies. If you want to apply a blacklist only on the
module it's better to call the filter function by yourself.
This implementation detects loops caused by poorly written
soft-dependencies and fail gracefully, printing the loop to the log.
Lucas De Marchi [Tue, 27 Dec 2011 12:15:40 +0000 (10:15 -0200)]
Do not cache softdeps list
This might include a circular dependency which would screw up the
refcounting because there's an internal reference.
Lucas De Marchi [Tue, 27 Dec 2011 06:51:05 +0000 (04:51 -0200)]
Allow to internally get dependencies without copying list
Lucas De Marchi [Mon, 26 Dec 2011 15:53:32 +0000 (13:53 -0200)]
build-sys: remove unneeded _SOURCES var
Lucas De Marchi [Sat, 24 Dec 2011 12:50:47 +0000 (10:50 -0200)]
Add functions to get ctx blacklists
Lucas De Marchi [Tue, 27 Dec 2011 04:46:12 +0000 (02:46 -0200)]
Fix kmod_list_remove_n_latest()
It only worked because n was always 1. kmod_list_remove returns a
pointer to the next element, relative to the removed one. Therefore we
need to always get a pointer to the last.
Lucas De Marchi [Mon, 26 Dec 2011 22:10:49 +0000 (20:10 -0200)]
Reverse order of dependency list
Dependency list in modules.dep is kept in reverse order. Prepend to
list so all the other places treat it in the right order.
Lucas De Marchi [Mon, 26 Dec 2011 18:05:19 +0000 (16:05 -0200)]
TODO: add task in modprobe's compatibility
Cristian RodrÃguez [Mon, 26 Dec 2011 04:38:04 +0000 (01:38 -0300)]
index_file_open: fix another fd leak on error path.
Lucas De Marchi [Sat, 24 Dec 2011 19:51:27 +0000 (17:51 -0200)]
Merge branch 'master' of git://dev.medozas.de/libkmod
Lucas De Marchi [Sat, 24 Dec 2011 19:39:44 +0000 (17:39 -0200)]
Merge branch 'master' of git://dev.medozas.de/libkmod
Jan Engelhardt [Sat, 24 Dec 2011 19:28:11 +0000 (20:28 +0100)]
libkmod: remove external cflags from .pc file
Since the public header files of libkmod do not include header files
of liblzma or zlib, the flags need not be present.
Jan Engelhardt [Sat, 24 Dec 2011 13:58:30 +0000 (14:58 +0100)]
Support for loading Xz-compressed modules
Jan Engelhardt [Sat, 24 Dec 2011 03:45:42 +0000 (04:45 +0100)]
build: use AC_ARG_WITH for zlib
Since it selects an external dependency for inclusion, AC_ARG_WITH
is preferred (autoconf.info 15.2 "Working with external software").
Jan Engelhardt [Sat, 24 Dec 2011 03:45:22 +0000 (04:45 +0100)]
build: use pkgconfig to detect zlib
build: explicitly call PKG_PROG_PKG_CONFIG
Per the manual page, PKG_PROG_PKG_CONFIG needs to be invoked
explicitly if PKG_CHECK_MODULES might not happen (it is indeed stowed
in an AS_IF in kmod). Without this, funny failures can occur.
(As it did.)
Lucas De Marchi [Sat, 24 Dec 2011 04:40:30 +0000 (02:40 -0200)]
Fix version script with v3 symbols
Gustavo Sverzut Barbieri [Tue, 20 Dec 2011 13:54:53 +0000 (11:54 -0200)]
elf: implement kmod_module_get_dependency_symbols()
Uses kmod_elf_get_dependency_symbols() that looks into ".symtab" for
UNDEF symbols and matches the name from ".strtab" to "__versions" to
get crc.
Likely the public API should unify the symbol information getters and
list release, they are almost the same.