[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#30604] [PATCH v2 2/6] gnu: Add kmod-minimal-static.
From: |
Danny Milosavljevic |
Subject: |
[bug#30604] [PATCH v2 2/6] gnu: Add kmod-minimal-static. |
Date: |
Mon, 26 Feb 2018 04:50:21 +0100 |
* gnu/packages/linux.scm (kmod-minimal/static): New variable.
* gnu/packages/patches/kmod-13-module-directory.patch: New file.
* gnu/local.mk: Add it.
---
gnu/local.mk | 1 +
gnu/packages/linux.scm | 44 ++++++++++++++++++++++
.../patches/kmod-13-module-directory.patch | 33 ++++++++++++++++
3 files changed, 78 insertions(+)
create mode 100644 gnu/packages/patches/kmod-13-module-directory.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 21195f8c1..b1e3c878d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -795,6 +795,7 @@ dist_patch_DATA =
\
%D%/packages/patches/kiki-makefile.patch \
%D%/packages/patches/kiki-missing-includes.patch \
%D%/packages/patches/kiki-portability-64bit.patch \
+ %D%/packages/patches/kmod-13-module-directory.patch \
%D%/packages/patches/kmod-module-directory.patch \
%D%/packages/patches/kobodeluxe-paths.patch \
%D%/packages/patches/kobodeluxe-enemies-pipe-decl.patch \
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 1f8bf3050..b2e47f79a 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1994,6 +1994,50 @@ from the module-init-tools project.")
#t))
%standard-phases)))))
+(define-public kmod-minimal/static
+ (static-package
+ (package (inherit kmod-minimal)
+ (name "kmod-minimal-static")
+ (version "13")
+ (source (origin
+ (method url-fetch)
+ (uri
+ (string-append "mirror://kernel.org/linux/utils/kernel/kmod/"
+ "kmod-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0mkrklih0f33c3zc4mkk9qqbzy36r18mj9xffd4wi61gpamx6dkc"))
+ (patches (search-patches "kmod-13-module-directory.patch"))))
+ (arguments
+ (substitute-keyword-arguments
+ (package-arguments (static-package kmod-minimal))
+ ((#:configure-flags flags ''())
+ `(cons* "--disable-manpages" "--disable-static" "--disable-shared"
,flags))
+ ((#:make-flags flags ''())
+ `(cons* "LDFLAGS=-all-static" ,flags))
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (delete 'install-license-files)
+ (add-after 'unpack 'patch-kmod
+ (lambda _
+ ;; Reduce size by 200 kiB.
+ (substitute* "tools/kmod.c"
+ (("[&]kmod_cmd_compat_lsmod,") "")
+ (("[&]kmod_cmd_compat_rmmod,") "")
+ (("[&]kmod_cmd_compat_insmod,") "")
+ (("[&]kmod_cmd_compat_modinfo,") ""))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "tools/kmod" bin)
+ (for-each
+ (lambda (tool)
+ (symlink "kmod" (string-append bin "/" tool)))
+ '("modprobe" "depmod"))
+ #t))))))))))
+
(define-public eudev
;; The post-systemd fork, maintained by Gentoo.
(package
diff --git a/gnu/packages/patches/kmod-13-module-directory.patch
b/gnu/packages/patches/kmod-13-module-directory.patch
new file mode 100644
index 000000000..5ff2f8a60
--- /dev/null
+++ b/gnu/packages/patches/kmod-13-module-directory.patch
@@ -0,0 +1,33 @@
+This patch changes libkmod so it honors the 'LINUX_MODULE_DIRECTORY'
+environment variable, rather than looking for modules exclusively in
+/lib/modules.
+
+Patch by Shea Levy and Eelco Dolstra, from Nixpkgs; adjusted to
+use 'LINUX_MODULE_DIRECTORY' rather than 'MODULE_DIR' as the variable
+name.
+
+
+--- kmod-7/libkmod/libkmod.c 2012-03-15 08:19:16.750010226 -0400
++++ kmod-7/libkmod/libkmod.c 2012-04-04 15:21:29.532074313 -0400
+@@ -200,7 +200,7 @@
+ static char *get_kernel_release(const char *dirname)
+ {
+ struct utsname u;
+- char *p;
++ char *p, *dirname_prefix;
+
+ if (dirname != NULL)
+ return path_make_absolute_cwd(dirname);
+@@ -208,7 +208,10 @@
+ if (uname(&u) < 0)
+ return NULL;
+
+- if (asprintf(&p, "%s/%s", dirname_default_prefix, u.release) < 0)
++ if ((dirname_prefix = getenv("LINUX_MODULE_DIRECTORY")) == NULL)
++ dirname_prefix = dirname_default_prefix;
++
++ if (asprintf(&p, "%s/%s", dirname_prefix, u.release) < 0)
+ return NULL;
+
+ return p;
+
- [bug#30604] [PATCH 4/4] linux-boot: Load kernel modules only when the hardware is present., (continued)
[bug#30604] [PATCH 1/4] gnu: kmod: Split off kmod-minimal., Marius Bakke, 2018/02/25
[bug#30604] [PATCH v2 0/6] Load Linux module only when supported hardware is present., Danny Milosavljevic, 2018/02/25
- [bug#30604] [PATCH v2 4/6] linux-boot: Load kernel modules only when the hardware is present., Danny Milosavljevic, 2018/02/25
- [bug#30604] [PATCH v2 6/6] vm: Make the virtio-blk is uniquely identifyable in /sys., Danny Milosavljevic, 2018/02/25
- [bug#30604] [PATCH v2 1/6] gnu: kmod: Split off kmod-minimal., Danny Milosavljevic, 2018/02/25
- [bug#30604] [PATCH v2 2/6] gnu: Add kmod-minimal-static.,
Danny Milosavljevic <=
- [bug#30604] [PATCH v2 5/6] vm: Allow qemu-image builder to load Linux kernel modules., Danny Milosavljevic, 2018/02/25
- [bug#30604] [PATCH v2 3/6] linux-initrd: Add kmod., Danny Milosavljevic, 2018/02/25
- [bug#30604] [PATCH v3 0/6] Load Linux module only when supported hardware is present., Danny Milosavljevic, 2018/02/25
- [bug#30604] [PATCH v3 1/6] gnu: kmod: Split off kmod-minimal., Danny Milosavljevic, 2018/02/25
- [bug#30604] [PATCH v3 3/6] linux-initrd: Add kmod., Danny Milosavljevic, 2018/02/25
- [bug#30604] [PATCH v3 5/6] vm: Allow qemu-image builder to load Linux kernel modules., Danny Milosavljevic, 2018/02/25
- [bug#30604] [PATCH v3 2/6] gnu: Add kmod-minimal-static., Danny Milosavljevic, 2018/02/25