From patchwork Tue Nov 19 21:10:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adolf Belka X-Patchwork-Id: 8249 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R11" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4XtHGx6jhXz3wx3 for ; Tue, 19 Nov 2024 21:11:21 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) client-signature ECDSA (secp384r1)) (Client CN "mail02.haj.ipfire.org", Issuer "E6" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4XtHGs28tsz4dc; Tue, 19 Nov 2024 21:11:17 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4XtHGr4JLkz34JW; Tue, 19 Nov 2024 21:11:16 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R11" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4XtHGn1fDYz2xP8 for ; Tue, 19 Nov 2024 21:11:13 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4XtHGm5qMbz1Zb; Tue, 19 Nov 2024 21:11:12 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1732050672; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kUPPENcXo8q9PMhbdnV6jkA6w0HveHGwai8/Y4A1nv8=; b=WjwaTEy4wD+SnilgHn+mMSrcXUAgT2mv7tqQi6q59jxYEvGvm1qZMJ468zQEpUsOLZwvdf zknlUEqzMT0B7gAA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1732050672; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kUPPENcXo8q9PMhbdnV6jkA6w0HveHGwai8/Y4A1nv8=; b=toP9zpDdmcLe+SrZUzlhSE2U5jPAgTaR9QiqTYdy5/SSDGbpvKiBHrshgjrVP/ddkq42nK im0823+w2lSZznfILReoitplrIszjtn0aLN7AwN2HfdTIZK85go0Mf8Q9dze5+Q/wqnT6K 6dSNSASka8PRW5uu5nOBcLrfnJrI+8EJ1tcnaHv0UZN3osI3151zjvMWbKDHJWFR0mG1Ft 2sGQ3jLwO51Pl06FDFPnvIH4DIm0ZAcbsJIzgEfUzN3O6m0Ncrji3DF/56E6mE0YNFKFYm OPZMqZ31QNiayTJ7Uoplbf+mAWuf5RYkq1DH69TWM7nRAWO5qZvp3GcEZjnf8w== From: Adolf Belka To: development@lists.ipfire.org Subject: [PATCH] kmod: Update to version 33 Date: Tue, 19 Nov 2024 22:10:50 +0100 Message-ID: <20241119211106.2194373-2-adolf.belka@ipfire.org> In-Reply-To: <20241119211106.2194373-1-adolf.belka@ipfire.org> References: <20241119211106.2194373-1-adolf.belka@ipfire.org> MIME-Version: 1.0 Message-ID-Hash: TOUUWYLCELCNIDKH2H47FBO4N73SSUSP X-Message-ID-Hash: TOUUWYLCELCNIDKH2H47FBO4N73SSUSP X-MailFrom: adolf.belka@ipfire.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: IPFire development talk Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: - Update from version 32 to 33 - Update of rootfile - Changelog 33 - Improvements - Allow to handle compressed modules even without decompression libraries linked in. Previously we would detect if the kernel supported the decompression algorithm and pass the module directly through finit_module(). However it wouldn't consider the file if the respective decompression library was compiled out. Now it's possible to completely disable all libraries and still have module load working with libkmod. Tools that inspect module content themselves like modinfo and depmod won't work if the decompression library is not enabled. - Add weak dependencies - these are similar to pre softdep, but they don't cause the dependency to be loaded by libkmod: when a module has a weak dependency, it is expected that module may or may not be used, with decision happening in runtime by the kernel. It's purpose is to be informational for other tools like ones used to create initramfs, so the module is made available before switch_root(), but doesn't imply it to be loaded when not needed. - Improve compatibility with non-gnu libc like musl and uClibc. Now it's possible to build and use libkmod and tools without any additional compat patches. - Move manpages from xsltproc to scdoc, which is now needed during build. - Improve documentation in manpages, fixing typos, rewording sentences, detailing how configuration files are handled with precedence order and making all the manpages more consistent on how to reference options, environment variables, configuration, authors, etc. - Speed up zstd decompression, particularly when not using glibc. - Stop parsing .alias files from modprobe.d directories. Configuration files were always documented as needing the .conf extension. For compatibility reason with module-init-tools, kmod also parsed .alias files. However that was also done in module-init-tools for compatibility reasons and not documented anywhere. From inspection on what distros are using, none use .alias files in practice, so stop parsing those files and follow what's documented. - Adopt SPDX for license and cleanup comments on individual files. - Since kmod 29 there's a github mirror for the repository. Now it's also used for issues and improvement tracking. With that, the old TODO file has been removed and distros/users are encouraged to file issues in github. - Bug fixes - Move kmod.pc to the right dir, ${datadir}/pkgconfig, as it's related to kmod, not libkmod. - Fix error handling while loading a file and mmap fails. - Fix error handling while handling errors from the decompression libraries. - Add missing documentation for KMOD_INDEX_MODULES_BUILTIN that was added in v27 breaking the ABI. A wide search has found one external tool using it, which hasn't been updated in the past 12 years. It was deemed safe to simply update the documentation to include the missing enum. - Move kmod_module_new_from_name_lookup() to the correct symbol version. It was added by mistake to @LIBKMOD_5 when v30 got released. No external user of this API was found, so it was considered safe to just move it. - Others - Overwrite symlinks when installing tools. - General cleanup of how (de)compression libraries are integrated. - Add CI infrastructure to automatically test in several distros before applying commit series. Currently the latest versions of Alpine, Archlinux, Fedora and Ubuntu are covered. More distros are easy to add as they are all containerized. Signed-off-by: Adolf Belka --- config/rootfiles/common/kmod | 5 +++-- lfs/kmod | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/config/rootfiles/common/kmod b/config/rootfiles/common/kmod index 4ba8225b7..952031a78 100644 --- a/config/rootfiles/common/kmod +++ b/config/rootfiles/common/kmod @@ -15,7 +15,8 @@ sbin/rmmod #usr/lib/libkmod.la #usr/lib/libkmod.so usr/lib/libkmod.so.2 -usr/lib/libkmod.so.2.4.2 -#usr/lib/pkgconfig/kmod.pc +usr/lib/libkmod.so.2.5.0 #usr/lib/pkgconfig/libkmod.pc #usr/share/bash-completion/completions/kmod +#usr/share/pkgconfig +#usr/share/pkgconfig/kmod.pc diff --git a/lfs/kmod b/lfs/kmod index 2719083e5..96c39ad70 100644 --- a/lfs/kmod +++ b/lfs/kmod @@ -24,7 +24,9 @@ include Config -VER = 32 +VER = 33 + +# https://www.kernel.org/pub/linux/utils/kernel/kmod/ THISAPP = kmod-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +42,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_BLAKE2 = 5b5dac4639406549b23bb1da44bedd86a42885304ef4c7c67344dc8fd70b9e0ca3f83d033c6b80f6e00371d7188e205f4b68fadc56a9ddbf9d6a9d28e9b1e9a4 +$(DL_FILE)_BLAKE2 = 5fb4ea9d96217f8c94cba752b07a1b53228c6ae79dbaa605030cd84e3c6ca8d9c1a703a0253cea1d6c78a78f1507e2a1d9c6215d28dcb01b9e7f8b98a9fde425 install : $(TARGET)