Files
bpfire/lfs/kmod
Peter Müller de2b71f385 kmod: Update to 31
According to the source tarball's NEWS file:

- Improvements

        - Allow passing a path to modprobe so the module is loaded from
          anywhere from the filesystem, but still handling the module
          dependencies recorded in the indexes. This is mostly intended for kernel
          developers to speedup testing their kernel modules without having to load the
          dependencies manually or override the module in /usr/lib/modules/.
          Now it's possible to do:

                # modprobe ./drivers/gpu/drm/i915/i915.ko

          As long as the dependencies didn't change, this should do the right thing

        - Use in-kernel decompression if available. This will check the runtime support
          in the kernel for decompressing modules and use it through finit_module().
          Previously kmod would fallback to the older init_module() when using
          compressed modules since there wasn't a way to instruct the kernel to
          uncompress it on load or check if the kernel supported it or not.
          This requires a recent kernel (>= 6.4) to have that support and
          in-kernel decompression properly working in the kernel.

        - Make modprobe fallback to syslog when stderr is not available, as was
          documented in the man page, but not implemented

        - Better explaing `modprobe -r` and how it differentiates from rmmod

        - depmod learned a `-o <dir>` option to allow using a separate output
          directory. With this, it's possible to split the output files from
          the ones used as input from the kernel build system

        - Add compat with glibc >= 2.32.9000 that dropped __xstat

        - Improve testsuite to stop skipping tests when sysconfdir is something
          other than /etc

        - Build system improvements and updates

        - Change a few return codes from -ENOENT to -ENODATA to avoid confusing output
          in depmod when the module itself lacks a particular ELF section due to e.g.
          CONFIG_MODVERSIONS=n in the kernel.

- Bug Fixes

        - Fix testsuite using uninitialized memory when testing module removal
          with --wait

        - Fix testsuite not correctly overriding the stat syscall on 32-bit
          platforms. For most architectures this was harmless, but for MIPS it
          was causing some tests to fail.

        - Fix handling unknown signature algorithm

        - Fix linking with a static liblzma, libzstd or zlib

        - Fix memory leak when removing module holders

        - Fix out-of-bounds access when using very long paths as argument to rmmod

        - Fix warnings reported by UBSan

Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2024-01-11 11:57:59 +00:00

96 lines
3.5 KiB
Plaintext

###############################################################################
# #
# IPFire.org - A linux based firewall #
# Copyright (C) 2007-2024 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation, either version 3 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
# #
###############################################################################
###############################################################################
# Definitions
###############################################################################
include Config
VER = 31
THISAPP = kmod-$(VER)
DL_FILE = $(THISAPP).tar.xz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
###############################################################################
# Top-level Rules
###############################################################################
objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
$(DL_FILE)_BLAKE2 = 0dc8572da570315cf0aadd87fa7e83d0f88dea91c8566749e6f3004f9a6df916dce337ca99ea5929d41f45b408c1e3effa50f9d24615d7fa28688150a5ce91cf
install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects))
download :$(patsubst %,$(DIR_DL)/%,$(objects))
b2 : $(subst %,%_BLAKE2,$(objects))
###############################################################################
# Downloading, checking, b2sum
###############################################################################
$(patsubst %,$(DIR_CHK)/%,$(objects)) :
@$(CHECK)
$(patsubst %,$(DIR_DL)/%,$(objects)) :
@$(LOAD)
$(subst %,%_BLAKE2,$(objects)) :
@$(B2SUM)
###############################################################################
# Installation Details
###############################################################################
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && ./configure \
--prefix=/usr \
--bindir=/bin \
--sysconfdir=/etc \
--disable-manpages \
--with-openssl \
--with-xz \
--with-zlib \
--with-zstd
cd $(DIR_APP) && make $(MAKETUNING)
cd $(DIR_APP) && make install
# Create symlinks
ln -svf ../bin/kmod /sbin/modprobe
ln -svf ../bin/kmod /sbin/modinfo
ln -svf ../bin/kmod /sbin/insmod
ln -svf ../bin/kmod /sbin/rmmod
ln -svf ../bin/kmod /sbin/depmod
ln -svf ../bin/kmod /sbin/lsmod
@rm -rf $(DIR_APP)
@$(POSTBUILD)