]> git.ipfire.org Git - thirdparty/kmod.git/log
thirdparty/kmod.git
10 months agoman: remove slash before @MODULE_DIRECTORY@
Emil Velikov [Fri, 13 Sep 2024 12:02:54 +0000 (13:02 +0100)] 
man: remove slash before @MODULE_DIRECTORY@

... otherwise we get a double-slash in the manual.

Fixes: e2536ab ("man: Provide examples for paths")
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/129
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
10 months agolibkmod: fix clang-format ofr -> off typo
Emil Velikov [Wed, 11 Sep 2024 16:27:52 +0000 (17:27 +0100)] 
libkmod: fix clang-format ofr -> off typo

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/118
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
10 months agoCONTRIBUTING.md: add initial contributing guideline
Emil Velikov [Mon, 9 Sep 2024 15:14:54 +0000 (16:14 +0100)] 
CONTRIBUTING.md: add initial contributing guideline

Document some of the practises and expectations that we've been using
in the project.

Large chunks of the document are inspired by wlroots - thank you o/

Going further, I think we'd want to document the use of SoB/DCO and
mention about our CI pipelines, so that people try them before opening
PRs/sending patches.

Although I think that can follow-up at another day.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/122
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
10 months agoREADME.md: recommend meson, mention autotools EOL
Emil Velikov [Mon, 9 Sep 2024 14:10:38 +0000 (15:10 +0100)] 
README.md: recommend meson, mention autotools EOL

The meson build has the default options already set, so I don't think we
need the verbosity of the configure example.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/122
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
10 months agoREADME.md: make it a proper markdown
Emil Velikov [Sat, 7 Sep 2024 18:30:49 +0000 (19:30 +0100)] 
README.md: make it a proper markdown

Resolve the formatting so the file renders correctly.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/122
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
10 months agoREADME.md: rework the Information section
Emil Velikov [Sat, 7 Sep 2024 18:50:10 +0000 (19:50 +0100)] 
README.md: rework the Information section

Move the section after the Overview, so that people can first see what
the project is about, before talking about ML, issues, etc.

Fold the git/gitweb sections, since the distinction is no longer needed
adding some mirrors. Document the IRC freenode -> oftc move.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/122
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
10 months agoREADME.md: remove outdated Coverity Scan
Emil Velikov [Sat, 7 Sep 2024 18:44:32 +0000 (19:44 +0100)] 
README.md: remove outdated Coverity Scan

It hasn't been run in years, so let's drop it. We might reintroduce it
sooner or later at which point we'll add back the badge.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/122
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
10 months agobuild: Fix KDIR again
Lucas De Marchi [Wed, 11 Sep 2024 13:51:23 +0000 (08:51 -0500)] 
build: Fix KDIR again

KDIR is not related to the what we configure in kmod's build. It's only
used in kmod to locate where the distro's kernel source/headers is,
which may be different from what we are configuring the (under
development) kmod with.

Remove the setting from meson/autotools and figure it out inside the
module-playground Makefile what should be used. For advanced use cases,
KDIR= can be passed to override the location.

For our own tests, which includes testing with a different module_directory,
scripts/setup-rootfs.sh will copy the module to the desired location
according to the map defined in the script.

Fixes: 27ff72732666 ("testsuite: correct the default KDIR")
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/125
10 months agokmod: Avoid negative exit codes
Tobias Stoeckmann [Tue, 10 Sep 2024 20:02:24 +0000 (22:02 +0200)] 
kmod: Avoid negative exit codes

Exit codes shall be non-negative to comply with standards.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Link: https://github.com/kmod-project/kmod/pull/124
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoRemove depmod_module_directory_override from .pc
Lucas De Marchi [Tue, 10 Sep 2024 18:27:06 +0000 (13:27 -0500)] 
Remove depmod_module_directory_override from .pc

Hopefully this is not needed to implement the kernel side.
Let's remove it and bring it back in case it really is.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoman: Provide examples for paths
Lucas De Marchi [Mon, 9 Sep 2024 06:36:12 +0000 (01:36 -0500)] 
man: Provide examples for paths

Add some examples to help clarifying each part of the paths.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/100
11 months agoman: Reword depmod's paths
Lucas De Marchi [Mon, 9 Sep 2024 06:13:55 +0000 (01:13 -0500)] 
man: Reword depmod's paths

Main goal is to give the reader the complete picture of each component
of the path being used, divided in <BASEDIR>, <MODULEDIR>, version.
Then reword the options accordingly to refer to what they are
overriding.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/100
11 months agotestsuite: Test depmod's -m flag
Lucas De Marchi [Mon, 9 Sep 2024 06:03:01 +0000 (01:03 -0500)] 
testsuite: Test depmod's -m flag

Link: https://github.com/kmod-project/kmod/pull/100
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agodepmod: Rewrite basedir/moduledir/outputdir/ help
Lucas De Marchi [Mon, 9 Sep 2024 06:50:29 +0000 (01:50 -0500)] 
depmod: Rewrite basedir/moduledir/outputdir/ help

Follow the same logic for all of them: short help message about
what the option is and default value inside parenthesis.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/100
11 months agodepmod: Add option to override MODULE_DIRECTORY
Michal Suchanek [Wed, 4 Sep 2024 06:54:06 +0000 (08:54 +0200)] 
depmod: Add option to override MODULE_DIRECTORY

This a compile time option. When building modules for a different system
that uses a different value of this option it is useful to be able to
override it without rebuilding kmod.

Closes: https://github.com/kmod-project/kmod/issues/85
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
Link: https://github.com/kmod-project/kmod/pull/100
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agodepmod: Remove deprecated options
Michal Suchanek [Thu, 5 Sep 2024 14:47:15 +0000 (16:47 +0200)] 
depmod: Remove deprecated options

These options are deprecated and undocumented since import of depmod
into git (Dec 2011).

Link: https://github.com/kmod-project/kmod/pull/100
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agomeson: Stop rebuilding modules over and over
Lucas De Marchi [Mon, 9 Sep 2024 13:33:35 +0000 (08:33 -0500)] 
meson: Stop rebuilding modules over and over

Instead of removing the sources every time and rebuilding, just use
rsync to preserve the timestamps and allow Make to do its job of
rebuilding if it changed.

There's a bug in meson that keeps building the testsuite even outside of
`ninja test`, but if the build result is cached, we can greatly minimize
the impact for developers.

Closes: https://github.com/kmod-project/kmod/issues/119
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/121
11 months agomeson: Move symlinks up
Lucas De Marchi [Mon, 9 Sep 2024 07:08:54 +0000 (02:08 -0500)] 
meson: Move symlinks up

Currently it's only possible to test the tools by using the symlink.
However, differently from autotools, the symlink is created inside the
testsuite dir, and only if build-tests=true. Move it to the same
directory that kmod is so it's possible to test without the testsuite.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/120
11 months agotestsuite: use size_t with strbuf
Emil Velikov [Sat, 7 Sep 2024 00:28:19 +0000 (01:28 +0100)] 
testsuite: use size_t with strbuf

We recently updated the API, but forgot to update the tests.

Fixes: 38943b2 ("shared: use size_t for strbuf")
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/115
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months ago.editorconfig: max_line_length=90 like clang-format
Emil Velikov [Sun, 8 Sep 2024 10:38:12 +0000 (11:38 +0100)] 
.editorconfig: max_line_length=90 like clang-format

Ideally the config (and editors) will have hard and soft limit for the
line length. Until then, update the config so that clang-format does not
excessively reformat.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/118
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoclang-format: Override settings
Lucas De Marchi [Sun, 8 Sep 2024 10:38:12 +0000 (11:38 +0100)] 
clang-format: Override settings

- Define our own foreach macros
- Add defines for attributes. This also needs the minimum clang-format
  version to be raised so it has the AttributeMacros setting.
- Redefine a few settings related to max number of columns and
  penalties for breaking lines

v2
 - [Emil] update attributes list

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/118
11 months agoclang-format: Import from kernel
Lucas De Marchi [Sun, 8 Sep 2024 10:38:12 +0000 (11:38 +0100)] 
clang-format: Import from kernel

Import .clang-format from Linux kernel as of v6.11-rc6.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/118
11 months agotestsuite: reformat and clang-format off arrays
Emil Velikov [Sun, 8 Sep 2024 10:38:12 +0000 (11:38 +0100)] 
testsuite: reformat and clang-format off arrays

For some arrays, clang-format does far than ideal jobs reformatting. Do
so manually and ban clang-format from interfering.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/118
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agotestsuite: reformat and clang-format off args[]
Emil Velikov [Sun, 8 Sep 2024 10:38:12 +0000 (11:38 +0100)] 
testsuite: reformat and clang-format off args[]

Reformat a bunch of the args blocks and freeze them as-is. The remaining
instances clang-format handles correctly. The format is:

  progname,
  '--list', 'of', '--arguments',
  'modname',
  NULL

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/118
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agotestsuite: remove .needspawn = false instances
Emil Velikov [Sun, 8 Sep 2024 10:38:12 +0000 (11:38 +0100)] 
testsuite: remove .needspawn = false instances

The .needspawn = false is the default so just remove them. Tall the
other tests don't set it, so remove the test-util.c instances.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/118
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agotools: reformat and clang-format off arrays
Emil Velikov [Sun, 8 Sep 2024 10:38:12 +0000 (11:38 +0100)] 
tools: reformat and clang-format off arrays

For some arrays, clang-format does far than ideal jobs reformatting. Do
so manually and ban clang-format from interfering.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/118
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod: reformat and clang-format off arrays
Emil Velikov [Sun, 8 Sep 2024 10:38:12 +0000 (11:38 +0100)] 
libkmod: reformat and clang-format off arrays

For some arrays, clang-format does far than ideal jobs reformatting. Do
so manually and ban clang-format from interfering.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/118
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod: guard some functions with clang-format off
Emil Velikov [Sun, 8 Sep 2024 10:38:12 +0000 (11:38 +0100)] 
libkmod: guard some functions with clang-format off

Running this through clang-format results in a massacre. In some cases
we get function names starting at column 1, in others, every argument is
on separate line.

Just block the lot, so things are somewhat sane and consistent.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/118
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod: remove the "Ugly assignment + check."
Emil Velikov [Fri, 6 Sep 2024 21:48:40 +0000 (22:48 +0100)] 
libkmod: remove the "Ugly assignment + check."

Check if the module is blacklisted first and then perform the individual
flag checks. As result drop the no-longer needed comment.

This might be a dozen CPU cycles slower, but overall clarity triumphs.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/112
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod: module_is_blacklisted takes a const mod
Emil Velikov [Fri, 6 Sep 2024 21:46:30 +0000 (22:46 +0100)] 
libkmod: module_is_blacklisted takes a const mod

Update the API to reflect reality.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/112
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod: smoke test all the API
Emil Velikov [Fri, 6 Sep 2024 21:40:03 +0000 (22:40 +0100)] 
libkmod: smoke test all the API

Aka make sure the library does not crash if we give it a NULL as input
argument.

All entry-points but kmod_config_iter_free_iter look to be safe. Update
the final instance.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/111
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoRemove -Wno-unused-result
Emil Velikov [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
Remove -Wno-unused-result

With the code base now fixed, this warning doesn't need to be suppressed
anymore.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agotestsuite: Check return value of underscores()
Lucas De Marchi [Sat, 7 Sep 2024 06:19:24 +0000 (01:19 -0500)] 
testsuite: Check return value of underscores()

Error returned from underscores() shouldn't be ignored.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoshared: use _nonnull_() decoration
Emil Velikov [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
shared: use _nonnull_() decoration

Use the recently introduced attribute macro.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/114
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod: introduce and use _nonnull_() decoration
Emil Velikov [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
libkmod: introduce and use _nonnull_() decoration

Introduce a new attribute macro and use it, placing it on the left hand
side of the function return value. This aligns with the attributes style
used in C23.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/114
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoshared: use _nonnull_all_ decoration
Emil Velikov [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
shared: use _nonnull_all_ decoration

Use the recently introduced attribute macro.

Note that functions such as memdup() and path_ends_with_kmod_ext() take
the (non-zero) length of their non-null string, thus can be annotated
with this _all_ variant.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/114
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod: introduce and use _nonnull_all_ decoration
Emil Velikov [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
libkmod: introduce and use _nonnull_all_ decoration

Introduce a new attribute macro and use it, placing it on the left hand
side of the function return value. This aligns with the attributes style
used in C23.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/114
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod: remove open-coded _printf_format_
Emil Velikov [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
libkmod: remove open-coded _printf_format_

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/114
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoMove _must_check to the left side
Lucas De Marchi [Sat, 7 Sep 2024 06:02:49 +0000 (01:02 -0500)] 
Move _must_check to the left side

Move the attribute to the left hand side since it's clearer and will
help with better formatting when running clang-format.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agotestsuite: remove unused __noreturn decorations
Emil Velikov [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
testsuite: remove unused __noreturn decorations

The last user was removed in 2013 with commit d96ca9c ("Use C11's
noreturn")

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/114
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoDrop empty statements
Lucas De Marchi [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
Drop empty statements

The double ';;' were clearly a mistake and clang-format only makes it
worse if we try running it. Remove the mistake before mass-converting
the source code.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/114
11 months agotools: add trailing comma for multi-line enums
Emil Velikov [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
tools: add trailing comma for multi-line enums

... otherwise the upcoming clang-format will try to fold them on single
line, making the end result far from ideal.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/114
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod: add trailing comma for multi-line enums
Emil Velikov [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
libkmod: add trailing comma for multi-line enums

... otherwise the upcoming clang-format will try to fold them on single
line, making the end result far from ideal.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/114
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agotools: add trailing comma for multi-line arrays
Emil Velikov [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
tools: add trailing comma for multi-line arrays

... otherwise the upcoming clang-format will try to fold them on single
line, making the end result far from ideal.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/114
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agotestsuite: add trailing comma for multi-line arrays
Emil Velikov [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
testsuite: add trailing comma for multi-line arrays

... otherwise the upcoming clang-format will try to fold them on single
line, making the end result far from ideal.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/114
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoshared: add trailing comma for multi-line arrays
Emil Velikov [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
shared: add trailing comma for multi-line arrays

... otherwise the upcoming clang-format will try to fold them on single
line, making the end result far from ideal.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/114
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod: add trailing comma for multi-line arrays
Emil Velikov [Sat, 7 Sep 2024 00:15:04 +0000 (01:15 +0100)] 
libkmod: add trailing comma for multi-line arrays

... otherwise the upcoming clang-format will try to fold them on single
line, making the end result far from ideal.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/114
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agomeson: make all warnings fatal on ci/developer builds
Emil Velikov [Fri, 6 Sep 2024 21:21:44 +0000 (22:21 +0100)] 
meson: make all warnings fatal on ci/developer builds

Aka "-D werror=true", so we catch as many issues as possible in
automated manner.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/110
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoci: add multilib (32bit) CI for Arch, Debian, Ubuntu
Emil Velikov [Fri, 6 Sep 2024 19:45:51 +0000 (20:45 +0100)] 
ci: add multilib (32bit) CI for Arch, Debian, Ubuntu

Enable it only for meson, as we plan to phase out autotools soonish.
Also don't bother with the openssl/compression paths for now.

AFAICT there is no multilib package on Alpine. Fedora should have one,
but I couldn't find it from a quick search.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/110
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoci: remove duplicate libssl-dev entries
Emil Velikov [Fri, 6 Sep 2024 20:44:51 +0000 (21:44 +0100)] 
ci: remove duplicate libssl-dev entries

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/110
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod: check fstatat return value
Tobias Stoeckmann [Wed, 4 Sep 2024 16:26:15 +0000 (18:26 +0200)] 
libkmod: check fstatat return value

If fstatat fails, st is not set, which leads to undefined results of
subsequent S_ISDIR call.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/103
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoscripts: Make build-scdoc.sh executable
Lucas De Marchi [Fri, 6 Sep 2024 19:47:36 +0000 (14:47 -0500)] 
scripts: Make build-scdoc.sh executable

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agomeson: normalize s/check/test/
Lucas De Marchi [Fri, 6 Sep 2024 19:46:28 +0000 (14:46 -0500)] 
meson: normalize s/check/test/

The testsuite is executed by calling the 'test' target in meson, as
opposed to 'check' with autotools. Let's normalize it aligned to the new
build system.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoci: build: add docs in ci/developer builds
Emil Velikov [Fri, 6 Sep 2024 16:45:21 +0000 (11:45 -0500)] 
ci: build: add docs in ci/developer builds

To make it a little bit more obvious that those should be updated as
well...

On Alpine it fails (as below), so we've disabled it for now.

When gtkdoc-mkhtml calls xsltproc, the latter throws dozens of errors and
fails to produce the libkmod.devhelp2 file. Which meson tries to move
and fails.

  Error: no ID for constraint linkend: "int"

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agomeson: add test for gtkdoc coverage
Emil Velikov [Wed, 4 Sep 2024 18:25:44 +0000 (19:25 +0100)] 
meson: add test for gtkdoc coverage

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agomeson: add support for building the gtk-doc pages
Emil Velikov [Mon, 2 Sep 2024 22:20:18 +0000 (23:20 +0100)] 
meson: add support for building the gtk-doc pages

v2:
 - track the version.xml dependency

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agomeson: Align summary to option names
Lucas De Marchi [Fri, 6 Sep 2024 16:47:10 +0000 (11:47 -0500)] 
meson: Align summary to option names

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
11 months agomeson: Add build-tests to build-dev.ini
Lucas De Marchi [Thu, 5 Sep 2024 05:30:49 +0000 (00:30 -0500)] 
meson: Add build-tests to build-dev.ini

Developers are supposed to run tests to test their code.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/104
11 months agolibkmod/docs: drop pre gtk-doc comments
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: drop pre gtk-doc comments

Drop the misc comments, which are effectively superseded by the gtk-doc
decorations.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: tweak kmod_module_get_sections
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: tweak kmod_module_get_sections

Adjust the grammar and split the getter information in new paragraph.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: move in-argument kmod_module*get* reffs
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: move in-argument kmod_module*get* reffs

Move the references out of the argument's description, to the main
description. With that the "how-to-free" is now duplicate, so remove it.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: remove misleading "After use, free"
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: remove misleading "After use, free"

In a couple of instances, the doc suggests freeing the (whole) list
after operating on a (single) list entry.

This is somewhat misleading - drop the instances, since the getters doc
(the ones allocating the lists) are pretty clear about freeing.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: document kmod_list iterators
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: document kmod_list iterators

... and change the argument names to match the other kmod_list APIs.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: add outstanding struct description(s)
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: add outstanding struct description(s)

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: document logging priority definitions
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: document logging priority definitions

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: add outstanding long_description(s)
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: add outstanding long_description(s)

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: document and reference kmod_symbol_bind
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: document and reference kmod_symbol_bind

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: s/in kernel/in the kernel/
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: s/in kernel/in the kernel/

Add the definite article to the remaining instances.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: s/Linux [Kk]ernel/the kernel/
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: s/Linux [Kk]ernel/the kernel/

The project is Linux specific, let's little point in repeating it.
More so, when we predominantly use "kernel" already. Adjust, while also
adding the definite article to adjust the grammar.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: document and reference kmod_module_initstate
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: document and reference kmod_module_initstate

Mostly move the existing documentation from kmod_module_get_initstate()

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: document and reference kmod_filter
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: document and reference kmod_filter

Mostly move the existing documentation from kmod_module_apply_filter().

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: document and reference kmod_remove
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: document and reference kmod_remove

Mostly move the existing documentation from kmod_module_remove_module().

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: document and reference kmod_probe
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: document and reference kmod_probe

Mostly move the existing documentation from
kmod_module_probe_insert_module().

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: document and reference kmod_insert
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: document and reference kmod_insert

Mostly move the existing documentation from kmod_module_insert_module().

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: document and reference kmod_index
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: document and reference kmod_index

Mostly move the existing documentation from kmod_dump_index().

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: document and reference kmod_resources
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: document and reference kmod_resources

Mostly move the existing documentation from kmod_validate_resources().

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: correct a function doc name
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: correct a function doc name

A trivial typo, which has been around since the doc was added in 2011.

s/kmod_module_section_get_module_name/kmod_module_section_get_name/

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: add missing second asterisk
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: add missing second asterisk

... for kmod_module_get_weakdeps. Otherwise gtk-doc doesn't pick up the
documentation.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: add a trailing colon
Emil Velikov [Mon, 2 Sep 2024 22:20:19 +0000 (23:20 +0100)] 
libkmod/docs: add a trailing colon

Namely the doc for kmod_module_apply_filter is missing the trailing
colon. It seems that gtk-doc is smart enough to not needed, but we might
as well stay consistent.

This tripped me as I was grepping for "\* kmod_foo.*:$", while checking
the header against the gtk-doc sections file.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: move libkmod-loaded section to the header
Emil Velikov [Mon, 2 Sep 2024 22:20:18 +0000 (23:20 +0100)] 
libkmod/docs: move libkmod-loaded section to the header

In part to ease my life as I'm going through (shortly) and updating the
log. In part so that developers how don't install the gtk-doc html
pages, still have the information at hand.

While here, sort the API akin to the HTML documentation.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: move libkmod(-core) section to the header
Emil Velikov [Mon, 2 Sep 2024 22:20:18 +0000 (23:20 +0100)] 
libkmod/docs: move libkmod(-core) section to the header

In part to ease my life as I'm going through (shortly) and updating the
log. In part so that developers how don't install the gtk-doc html
pages, still have the information at hand.

While here, sort the API akin to the HTML documentation.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: move libkmod-module section to the header
Emil Velikov [Mon, 2 Sep 2024 22:20:18 +0000 (23:20 +0100)] 
libkmod/docs: move libkmod-module section to the header

In part to ease my life as I'm going through (shortly) and updating the
log. In part so that developers how don't install the gtk-doc html
pages, still have the information at hand.

While here, sort the API akin to the HTML documentation.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: move libkmod-list section to the header
Emil Velikov [Mon, 2 Sep 2024 22:20:18 +0000 (23:20 +0100)] 
libkmod/docs: move libkmod-list section to the header

In part to ease my life as I'm going through (shortly) and updating the
log. In part so that developers how don't install the gtk-doc html
pages, still have the information at hand.

While here, sort the API akin to the HTML documentation.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: move libkmod-config section to the header
Emil Velikov [Mon, 2 Sep 2024 22:20:18 +0000 (23:20 +0100)] 
libkmod/docs: move libkmod-config section to the header

In part to ease my life as I'm going through (shortly) and updating the
log. In part so that developers how don't install the gtk-doc html
pages, still have the information at hand.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: move all _free_list around
Emil Velikov [Mon, 2 Sep 2024 22:20:18 +0000 (23:20 +0100)] 
libkmod/docs: move all _free_list around

There are a few _free_list functions, not at the end of the respective
sub-sections. Move them to stay consistent with the rest.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: ignore libkmod-internal-file.h
Emil Velikov [Mon, 2 Sep 2024 22:20:18 +0000 (23:20 +0100)] 
libkmod/docs: ignore libkmod-internal-file.h

Recently we introduced another internal header, yet forgot to add it to
the ignore headers list.

Fixes: 929ca4c ("libkmod: Move xz-related functions to separate file")
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: remove non-applicable __must_check
Emil Velikov [Mon, 2 Sep 2024 22:20:18 +0000 (23:20 +0100)] 
libkmod/docs: remove non-applicable __must_check

Drop the __must_check from ignore-decorations, since it's nowhere to be
found. The correct name is _must_check_, although amongst others the
decoration is only for the internal API.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod/docs: remove deprecated template options
Emil Velikov [Mon, 2 Sep 2024 22:20:18 +0000 (23:20 +0100)] 
libkmod/docs: remove deprecated template options

The --tmpl-dir and MKTMPL_OPTIONS have been deprecated a while ago,
remove them.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/94
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoshared: use size_t for strbuf
Tobias Stoeckmann [Wed, 4 Sep 2024 16:17:50 +0000 (18:17 +0200)] 
shared: use size_t for strbuf

The unsigned datatype could overflow on 64 bit systems with sufficiently
large index files. Switch to size_t just to be safe.

Since the API of strbuf is not exported, this has no side-effect for
libkmod users.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Link: https://github.com/kmod-project/kmod/pull/101
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agotestsuite/path: wrap 64 variants for _GLIBC_
Emil Velikov [Tue, 3 Sep 2024 21:31:04 +0000 (22:31 +0100)] 
testsuite/path: wrap 64 variants for _GLIBC_

Since musl v1.2.4 and Alpine 3.18, circa May 2023, the LFS64 variants
are no longer exported by libc.so.

In addition musl headers provide relevant "#define foo64 foo" macros,
when _LARGEFILE64_SOURCE is defined and symbol resolution is deferred to
the runtime linker. See musl commit 246f1c811448 ("remove LFS64 symbol
aliases; replace with dynamic linker remapping") more details.

Earlier versions of musl had the symbols exposed by libc, although the
^^ macros were also available when _GNU_SOURCE is set, as our build
does.

Most importantly, we do not explicitly use the 64 variants and musl
doesn't implicitly pull them either. So in practise building with musl,
the binaries do not have any 64 references, thus there is no need to
wrap them.

AFAICT there is no obvious way of detecting musl, apart from the lack of
of __GLIBC__, so pull features.h (which defines it) and check on that.

There is a small chance the __GLIBC__ check will miss-fire on other
implementations like bionic, dietlibc or ulibc(-ng). We don't run the
tests on those platforms (although we could) so it should be fine.

With that we can install tar (for make distcheck) and enable the tests
in CI \o/

Closes: https://github.com/kmod-project/kmod/issues/65
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/97
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod: check for NULL in kmod_get_dirname
Tobias Stoeckmann [Wed, 4 Sep 2024 16:21:17 +0000 (18:21 +0200)] 
libkmod: check for NULL in kmod_get_dirname

The other KMOD_EXPORT'ed functions protect against ctx being NULL.
Add this to kmod_get_dirname purely for consistency reasons.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/102
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agolibkmod: Improve signature parser on 32 bit archs
Tobias Stoeckmann [Tue, 3 Sep 2024 17:49:04 +0000 (19:49 +0200)] 
libkmod: Improve signature parser on 32 bit archs

During signature parser validation it is not enough to cast the end
result to 64 bit, because on 32 bit systems size_t is an unsigned 32 bit
integer, which implies that this will be the data type used to evaluate
the expression BEFORE casting it due to C standard.

Since the unsigned 32 bit calculation can overflow, cast the size_t
to int64_t, which makes the whole calculation safe.

This has no negative impact on 64 bit systems because the size_t
value is read as an unsigned 32 bit value from module.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/95
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoci: add meson build permutation
Emil Velikov [Mon, 2 Sep 2024 17:58:35 +0000 (18:58 +0100)] 
ci: add meson build permutation

Note that we cannot use conditionals within the run actions, because
coreutils (for [ and test) are not installed on Debian/Ubuntu. Even
after doing so, the script consistently fails.

For meson dist to work, we need a full git repo, git and safe
directories setup, otherwise it fails as below. Meson issue was
reported ~2 years ago and we're about to get a fix soon (tm).

  Dist currently only works with Git or Mercurial repos

v2:
 - split git/checkout to separate patch
 - use build-dev.ini instead of meson.sh
v3:
 - use matrix for setting 'test' variable

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/86
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agomeson: build-dev.ini file
Emil Velikov [Mon, 2 Sep 2024 17:58:35 +0000 (18:58 +0100)] 
meson: build-dev.ini file

Functionally identical to the autogen.sh c options. This allows devs
(and upcoming CI) to make use of a pre-defined set.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/86
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoci: add KDIR to the environment
Emil Velikov [Mon, 2 Sep 2024 17:58:35 +0000 (18:58 +0100)] 
ci: add KDIR to the environment

The environment variable is used in multiple places, so just set it
once.

While in there, check that only a single kernel is installed. It's
better to error out with a clear message.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/86
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoci: install git and checkout using it
Emil Velikov [Mon, 2 Sep 2024 17:58:35 +0000 (18:58 +0100)] 
ci: install git and checkout using it

Atm the checkout action pulls the whole repo as tarball, since git is
missing. Since we install packages via local actions, we need to first
do an initial sparse checkout, install the packages (git including) and
do a proper second checkout.

At which point, the second checkout action claims to set safe.directory
(it's the default) although in practise we need to do it again. Perhaps
it's getting tripped by our initial sparse checkout?

Either way, explicitly set the option so that git just works.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/86
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agoci: remove no longer set matrix.configure
Emil Velikov [Mon, 2 Sep 2024 17:58:35 +0000 (18:58 +0100)] 
ci: remove no longer set matrix.configure

... and it doesn't seem like we'll need it in the future.

Fixes: fdcb656 ("testsuite: remove cached modules and --disable-test-modules")
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/86
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agomeson: allow building the manpages
Emil Velikov [Mon, 2 Sep 2024 17:58:35 +0000 (18:58 +0100)] 
meson: allow building the manpages

Not as brief as the pipeline and pattern matching that (auto)make can
do, although it's fully functional ;-)

v2:
 - move man/meson.build
 - move script under scripts/

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/86
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agomeson: add support for the testsuite
Emil Velikov [Mon, 2 Sep 2024 17:58:35 +0000 (18:58 +0100)] 
meson: add support for the testsuite

Currently the stale tracking of modules/rootfs is non-existent and I
cannot quite find a way to fix that.

In addition, there is a long standing meson bug where the tests and by
extension their dependencies are always build even when annotated as
`build_by_default : false`. To workaround that, a new option is
introduced `build-tests`, defaulting to false.

Apart from that, all tests run and pass \o/

v2:
 - split from top-level meson.build to subdir one
 - add to EXTRA_DIST
 - scripts are in scripts/
 - add option to enable building tests
 - error out if building without tools

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/86
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
11 months agomeson: allow disabling the bash completion
Emil Velikov [Mon, 2 Sep 2024 17:58:35 +0000 (18:58 +0100)] 
meson: allow disabling the bash completion

For the cases where you don't want (or cannot) install it. For example,
I've seen similar requests from the Nix people.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/86
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>