summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-03-19add packagingtizen_5.5.m2_releasesubmit/tizen_5.5_wearable_hotfix/20201026.184307submit/tizen_5.5_mobile_hotfix/20201026.185107submit/tizen_5.5/20191031.000007submit/tizen/20190319.023836accepted/tizen/unified/20190320.082247accepted/tizen/5.5/unified/wearable/hotfix/20201027.100406accepted/tizen/5.5/unified/mobile/hotfix/20201027.073421accepted/tizen/5.5/unified/20191031.011510tizen_5.5_wearable_hotfixtizen_5.5_tvtizen_5.5_mobile_hotfixtizen_5.5old/tizen-20200224accepted/tizen_5.5_unified_wearable_hotfixaccepted/tizen_5.5_unified_mobile_hotfixaccepted/tizen_5.5_unifiedAnas Nashif4-0/+154
kmod is packaged into Tizen with manifest domain of floor. v15 is a required dependency for systemd v208 (see TIVI-2197). Bump to v18 using upstream git repo instead of pristin-tar. Bug-Tizen: TC-1921 Applied ASLR (CFLAG=-fPIE LDFLAG=-pie) and license file wsa added to /usr/share/licenses/kmod-compat and /usr/share/licneses/libkmod. All packaging modifications are squashed into one commit and bump to v24. Signed-off-by: Anas Nashif <anas.nashif@intel.com> Signed-off-by: Alexandru Cornea <alexandru.cornea@intel.com> Signed-off-by: Patrick McCarty <patrick.mccarty@linux.intel.com> Signed-off-by: Kévin THIERRY <kevin.thierry@open.eurogiciel.org> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> [yj99.shin@samsung.com: packaging : disable %check section Currently, all tizen OBS projects don't run the %check section. I think the %check section is very good for reinforcing unit tests. But, there are some hurdles because of the qemu. For starting of enabling the %check section, I disable the %check section in the failed packages.] Change-Id: Icdbea83b1625446abe492625ee424f25e377c476 Signed-off-by: Youngjae Shin <yj99.shin@samsung.com> [sw0312.kim: packaging: add -Wno-maybe-uninitialized to cflags and bump to v26 The GCC has false positive warning about maybe-uninitialized with -O2 and -fexeceptions. Add -Wno-maybe-uninitialized to cflags to remove the false positive warnings.] Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2019-03-08tools: Print a message if refcnt attribute is missingEzequiel Garcia2-6/+12
Currently, check_module_inuse returns a wrong user message if the kernel is built without module unloading support. Fix it by returning a more specific error, in case 'refcnt' attribute is missing.
2019-02-20build: Stop using doltAdrian Bunk4-186/+0
This does regress "make -12" from 0.7s to 0.9s on my Coffee Lake machine, but even on slower hardware this will not amount to a noticable slowdown. On the other hand using dolt can create problems for people doing cross-compilation, e.g. Yocto has two hacks just for dolt in kmod: https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/kmod/kmod.inc?id=a17abae00785c76cfffe5381a22fb2c86b982e82 (Lucas: remove leftover entry in Makefile and reformat commit message)
2019-02-13Link against libcrypto, not all of opensslDave Reisner2-5/+5
In the previous build setup, libkmod.so would link to not just libcrypto.so, but also libssl.so: $ readelf -d /lib/libkmod.so | grep NEEDED 0x0000000000000001 (NEEDED) Shared library: [liblzma.so.5] 0x0000000000000001 (NEEDED) Shared library: [libz.so.1] 0x0000000000000001 (NEEDED) Shared library: [libssl.so.1.1] 0x0000000000000001 (NEEDED) Shared library: [libcrypto.so.1.1] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] We don't need any symbols from libssl, though. This patch ensures that we pass 'libcrypto' to pkgconfig rather than 'openssl', getting only the library that we need: $ readelf -d ./libkmod/.libs/libkmod.so.2.3.4 | grep NEEDED 0x0000000000000001 (NEEDED) Shared library: [liblzma.so.5] 0x0000000000000001 (NEEDED) Shared library: [libz.so.1] 0x0000000000000001 (NEEDED) Shared library: [libcrypto.so.1.1] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
2019-02-07kmod 26v26Lucas De Marchi3-2/+49
2019-02-07build: fix make distcheckLucas De Marchi1-1/+2
Make sure to add the dummy.pkcs7 file to the dist files. While at it, also change the distcheck flags to include --with-openssl.
2019-02-04testsuite: mkosi: update filesLucas De Marchi3-2/+4
- Add openssl - Disable python (quick hack to avoid more dependencies) - Update Fedora to 29
2019-02-04build: check openssl versionLucas De Marchi1-1/+1
2019-02-04build: add openssl to CI depsLucas De Marchi2-3/+5
Travis-ci is at most on Ubuntu 16.04, that doesn't have openssl >= 1.1, so disable openssl there. Semaphore 2.0 was also missing a call to update the package database.
2019-02-04build: enable openssl by defaultLucas De Marchi1-1/+1
Like with other features, let's enable it for developers.
2019-02-04testsuite: fix modinfo test without opensslLucas De Marchi7-7/+25
2019-02-04libkmod-signature: implement pkcs7 parsing with opensslYauheni Kaliuta5-5/+213
The patch adds data fetching from the PKCS#7 certificate using openssl library (which is used by scripts/sign-file.c in the linux kernel to sign modules). In general the certificate can contain many signatures, but since kmod (modinfo) supports only one signature at the moment, only first one is taken. With the current sign-file.c certificate doesn't contain signer key's fingerprint, so "serial number" is used for the key id. Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
2019-02-04testsuite: add modinfo pkcs7 signature testYauheni Kaliuta6-4/+14
Use the same approach to generate the signed module, like in the old signature test: just append the pregenerated binary signature to the module (the signature check will fail). In case of need of generating correct signature, from the linux kernel makefiles (certs/Makefile) it could be like: $ openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 -config ./x509.genkey -outform PEM -out signing_key.pem -keyout signing_key.pem $ /lib/modules/$(uname -r)/build/scripts/extract-cert signing_key.pem signing_key.x509 $ /lib/modules/$(uname -r)/build/scripts/sign-file sha256 signing_key.pem signing_key.x509 module.ko where x509.genkey is: ``` [ req ] default_bits = 4096 distinguished_name = req_distinguished_name prompt = no string_mask = utf8only x509_extensions = myexts [ req_distinguished_name ] CN = Build time autogenerated kernel key [ myexts ] basicConstraints=critical,CA:FALSE keyUsage=digitalSignature subjectKeyIdentifier=hash authorityKeyIdentifier=keyid ``` Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
2019-01-14man: Fix typoDaniel Kahn Gillmor1-1/+1
2019-01-04testsuite: factor out fd related parameters to a structureYauheni Kaliuta1-143/+214
This is a more abstract implementation of "file descriptor comparation". With the current implementation the code is full of conditions based on the descriptor type. It makes sense to initialize the parameters once based on the descriptor type. stdout and stderr are handled in almost the same way, but for monitor descriptor branch, based on the type check is necessary in some cases. Since epoll's context now contains pointers to the structures, so no direct manipulations there. Most of the patch is just replacing direct buffer manipulations with the structures' ones. Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
2019-01-04testsuite: track number of descriptors instead of their stateYauheni Kaliuta1-1/+6
use the number of tracked descriptors to determine the end of the loop. This is a preparation for more abstract descriptor comparation implementation where checking of the descriptor state may be more expensive than just checking of the local variables. Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
2019-01-04Add semaphoreci 2.0 configurationLucas De Marchi3-3/+46
Add another CI as alternative to travis-ci. Test on gcc 6, 7 and 8 on Ubuntu 18.04. Not sure if this is the best way to define the yml file, but it works. The old badge doesn't work. It will be added back later.
2019-01-03testsuite: move --show-exports test to use regexLucas De Marchi2-1/+2
This allows it to pass if the kernel is configured with CONFIG_MODVERSIONS.
2019-01-03testsuite: add support for testing output against regexLucas De Marchi2-2/+119
Allow to test outputs when they don't match exactly, but should follow some regex patterns. This can be used when the info we are printing is randomized or depends on kernel configuration.
2019-01-03testsuite: split out function to compare outputs exactlyLucas De Marchi1-54/+70
Move functionality to compare the exact output to a separate function and allocate one buffer per output/match pair. This will allow us to extend this to allow other types of comparisons. Since now we are using heap-allocated buffer, keep the buffer allocation to the caller, so we don't have to allocate and free it on every invocation. It also avoids the different comparison functions to have to deal with it.
2018-12-17depmod: shut up gcc insufficinet buffer warningMichal Suchanek1-16/+38
In a couple of places depmod concatenates the module directory and filename with snprintf. This can technically overflow creating an unterminated string if module directory name is long. Use openat instead as is done elsewhere in depmod. This avoids the snprintf, the extra buffer on stack, and the gcc warning. It may even fix a corner case when the module direcotry name is just under PATH_MAX. [ Lucas: fix up coding style and closing fd on error path ] Signed-off-by: Michal Suchanek <msuchanek@suse.de>
2018-12-17depmod: prevent module dependency files corruption due to parallel invocation.Michal Suchanek1-2/+7
Depmod does not use unique filename for temporary files. There is no guarantee the user does not attempt to run mutiple depmod processes in parallel. If that happens a temporary file might be created by depmod(1st), truncated by depmod(2nd), and renamed to final name by depmod(1st) resulting in corrupted file seen by user. Due to missing mkstempat() this is more complex than it should be. Adding PID and timestamp to the filename should be reasonably reliable. Adding O_EXCL as mkstemp does fails creating the file rather than corrupting existing file. Signed-off-by: Michal Suchanek <msuchanek@suse.de>
2018-12-17depmod: prevent module dependency files missing during depmod invocationMichal Suchanek1-1/+0
depmod deletes the module dependency files before moving the temporary files in their place. This results in user seeing no dependency files while they are updated. Remove the unlink call. The rename call should suffice to move the new file in place and unlink the old one. It should also do both atomically so there is no window when no dependency file exists. Signed-off-by: Michal Suchanek <msuchanek@suse.de>
2018-12-17Remove bootstrap* scriptsLucas De Marchi7-74/+74
Let's just use autogen.sh, no need for wrapper scripts. Now `autogen.sh c` uses the same recommended options for developing kmod and also accepts extra arguments.
2018-11-30README: Add link to mailing list archiveLucas De Marchi1-0/+1
We now have a proper archive for the mailing list.
2018-11-16signature: do not report wrong data for pkc#7 signatureYauheni Kaliuta2-19/+39
when PKC#7 signing method is used the old structure doesn't contain any useful data, but the data are encoded in the certificate. The info getting/showing code is not aware of that at the moment and since 0 is a valid constant, shows, for example, wrong "md4" for the hash algo. The patch splits the 2 mothods of gethering the info and reports "unknown" for the algo. Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
2018-11-13testsuite: add simple test for --show-exportsLucas De Marchi3-0/+24
2018-11-13modprobe: add --show-exportsYauheni Kaliuta1-0/+36
modprobe has --show-modversions switch, which dumps symbols with their modversion crcs from the __versions sections. At the moment the section contains information for the dependency symbols only, while exported symbols add to symtab entries with __crc_ prefix (the format may differ, see 1e48901166ef libkmod-elf: resolve CRC if module is built with MODULE_REL_CRCS). The patch makes it to show exported symbols as well. The function is basically cut'n'paste of show_modversions(), but 'version' family replaced with 'symbol' one. Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
2018-10-10mkosi: allow Clear to use test modulesLucas De Marchi2-7/+3
Now Clear has a bundle for the kernel headers, let's use it.
2018-07-20man: depmod: remove deprecated -m optionLucas De Marchi1-1/+0
Thanks to Howard Johnson <hwj@bridgeportcontractor.com> for noticing.
2018-06-18kmod: build: cure compiler warnings showing up externallyJan Engelhardt1-2/+2
When building a C source file with gcc-7 -Wshift-overflow=2, this warning springs up: libkmod.h: warning: result of "1 << 31" requires 33 bits to represent, but "int" only has 32 bits [-Wshift-overflow=] Change the two _KMOD_* identifiers to fit into 32 bits.
2018-05-16build: fix wrong quotes on bootstrapJakov Simunic1-1/+1
2018-05-14Phrasing correction in modprobe man pageChris Stackpole1-1/+1
2018-04-05libkmod-module: check for NULL before accessing pointersLuca Bruno2-13/+15
This introduces a few missing NULL-checks in public functions, and align their docstrings with real behavior by getting rid of copy-paste mistakes. Signed-off-by: Luca Bruno <luca.bruno@coreos.com>
2018-02-09testsuite: raise arch image to 3GBLucas De Marchi1-1/+1
2018-02-08testsuite: add Clear's mkosi configurationCaio Marcelo de Oliveira Filho2-2/+26
Adapted the mkosi.build script to account for not building test-modules in Clear. It doesn't have the headers available yet.
2018-01-08kmod 25v25Lucas De Marchi3-2/+25
2018-01-08testsuite: also wrap gettid in syscall()Lucas De Marchi1-0/+21
Not a perfect solution for overriding syscall(), but at least it makes the testsuite to pass in a modified nsswitch.conf (one that has a module which calls syscall() to get the thread id).
2018-01-03testsuite: explain why overriding function may failLucas De Marchi1-2/+7
On my computer `testsuite/test-modprobe modprobe_install_cmd_loop` was failing because when it forks off the shell the child process ends up calling syscall() which are are supposed to wrap. Here's the backtrace: #0 0x00007ffff6fdb66b in raise () from /lib64/libc.so.6 #1 0x00007ffff6fdd381 in abort () from /lib64/libc.so.6 #2 0x00007ffff77bac97 in syscall (__sysno=<optimized out>) at testsuite/init_module.c:362 #3 0x00007fffef92d4e7 in hashmap_base_new.lto_priv () from /lib64/libnss_systemd.so.2 #4 0x00007fffef953f50 in sd_bus_open_system () from /lib64/libnss_systemd.so.2 #5 0x00007fffef943123 in _nss_systemd_getpwuid_r () from /lib64/libnss_systemd.so.2 #6 0x00007ffff707eea5 in getpwuid_r@@GLIBC_2.2.5 () from /lib64/libc.so.6 #7 0x00007ffff707e608 in getpwuid () from /lib64/libc.so.6 #8 0x00005555555859e1 in get_current_user_info.part () #9 0x00005555555a375a in initialize_shell_variables () #10 0x0000555555580fde in shell_initialize () #11 0x00005555555846ff in main ()<Paste> The reason it fails on my system and not on, for e.g., a new one set up with mkosi is that the call to getpwuid() depends on the contents /etc/nsswitch.conf. The systemd module calls syscall() to implement gettid() which we can't forward due to being a variadic function. No fix is provided here, but at least it's explained why this happens.
2018-01-03testsuite: add missing error handlingLucas De Marchi1-0/+2
If we passed an invalid argument to a test it would segfault rather than returning an error code.
2018-01-03testsuite: add Fedora's mkosi configurationLucas De Marchi2-1/+27
To use the Fedora configuration rather than the default, one should use: # make DISTRO=fedora mkosi While at it also reduce the root partition size for Arch, since it doesn't need that much.
2018-01-03testsuite: generalize mkosi support for other distrosLucas De Marchi5-11/+29
Instead of using the mkosi.default symlink, use an env var passed from the build system. We would need to pass the --default switch nonetheless or change the symlink, making the git tree dirty. Also, search for installed kernel headers in a way that's compatible with more distros. On Fedora, for example, the /usr/lib/modules/<kver>/build symlink is only available if there's a kernel installed. We don't care about a kernel installed since we don't need to boot it on a real machine: the only thing we need is the kernel-devel package.
2018-01-02build: use tool from configureLucas De Marchi2-2/+3
This way we make sure the tool will be the one we actually configured before going through sudo.
2018-01-02build: add mkosi hooksLucas De Marchi5-0/+58
Right now there's support for building on Archlinux only.
2017-12-07depmod: module_is_higher_priority: fix modname length calculationYauheni Kaliuta1-2/+2
depmod_module_is_higher_priority checks module's path if it is under module root directory and if so uses relative to the root path to lookup the module in override and search lists. Originally only relative path was used in the function, so the variables with full path and and path length were changed: newpath += cfg->dirnamelen + 1; newlen -= cfg->dirnamelen + 1; oldpath += cfg->dirnamelen + 1; oldlen -= cfg->dirnamelen + 1; Commit 7da6884e7357ac05772e90f6d7e63b1948103fc4 (depmod: implement external directories support) changed the logic since it need the full path to the module for comparations as well. Unfortunately, it introduce a mistake in calculation of the relative paths replacing '-=' with assignment to a new variable -- the 'cfg->dirnamelen + 1' value must be substracted all together. It breaks, for example, overrides lookup. Fix the calculation by putting braces around the value in the subsctuction expression. Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
2017-12-07testsuite: depmod: add override testYauheni Kaliuta5-0/+31
Simple test to check if depmod honors override keyword. Uses mod-simple.ko for foo/ and override/ directories, search.conf to search in foo and built-in and simple override configuration: override mod-simple 4.4.4 override The resulting modules.dep should point to the override directory. Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
2017-12-07depmod: Don't add .TOC. when it's in the kernel.Michal Suchanek1-1/+2
d46136bb59c4 ("depmod: Ignore PowerPC64 ABIv2 .TOC. symbol") adds fake .TOC. unconditionally but when there is .TOC. in the kernel adding the fake one breaks resolving .TOC. Fixes: d46136bb59c4 ("depmod: Ignore PowerPC64 ABIv2 .TOC. symbol") Signed-off-by: Michal Suchanek <msuchanek@suse.de>
2017-10-16man/depmod: Add references in other man pagesChristopher Díaz Riveros4-0/+12
Depmod man page is not referenced in some man pages. This makes it harder to find through reading documentation. References added to: -man/insmod.xml -man/lsmod.xml -man/modprobe.xml -man/rmmod.xml Signed-off-by: Christopher Díaz Riveros <chrisadr@gentoo.org>
2017-08-04libkmod-elf: resolve CRC if module is built with MODULE_REL_CRCSYauheni Kaliuta1-1/+29
Normally exported symbol's crc is stored as absolute (SHN_ABS) value of special named symbol __crc_<symbol name>. When the kernel and modules are built with the config option CONFIG_MODULE_REL_CRCS, all the CRCs are put in a special section and the __crc_<symbol name> symbols values are offsets in the section. See patch description of the commit: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=56067812d5b0e737ac2063e94a50f76b810d6ca3 Add kmod support of this configuration. Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
2017-07-21man/depmod.d: add external keyword descriptionYauheni Kaliuta1-0/+20
The commit 'depmod: implement external directories support' added external directories support (see 7da6884e7357ac05772e90f6d7e63b1948103fc4). This patch documents the extention in the manpage. Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>