Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 1 | # Copyright (C) 2012 Khem Raj <raj.khem@gmail.com> |
| 2 | # Released under the MIT license (see COPYING.MIT for the terms) |
| 3 | |
| 4 | SUMMARY = "Tools for managing Linux kernel modules" |
| 5 | DESCRIPTION = "kmod is a set of tools to handle common tasks with Linux kernel modules like \ |
| 6 | insert, remove, list, check properties, resolve dependencies and aliases." |
| 7 | HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kmod/" |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 8 | LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" |
| 9 | LICENSE:libkmod = "LGPL-2.1-or-later" |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 10 | SECTION = "base" |
| 11 | |
| 12 | LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ |
| 13 | file://libkmod/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ |
| 14 | file://tools/COPYING;md5=751419260aa954499f7abaabaa882bbe \ |
| 15 | " |
| 16 | inherit autotools bash-completion gtk-doc pkgconfig manpages update-alternatives |
| 17 | |
| 18 | SRCREV = "b6ecfc916a17eab8f93be5b09f4e4f845aabd3d1" |
| 19 | |
| 20 | SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git;branch=master \ |
| 21 | file://depmod-search.conf \ |
| 22 | file://avoid_parallel_tests.patch \ |
Patrick Williams | de0582f | 2022-04-08 10:23:27 -0500 | [diff] [blame] | 23 | file://0001-depmod-Add-support-for-excluding-a-directory.patch \ |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 24 | " |
| 25 | |
| 26 | S = "${WORKDIR}/git" |
| 27 | |
| 28 | EXTRA_OECONF += "--enable-tools" |
| 29 | |
| 30 | PACKAGECONFIG ??= "zlib" |
| 31 | PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" |
| 32 | PACKAGECONFIG[logging] = " --enable-logging,--disable-logging" |
| 33 | PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native" |
| 34 | PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl" |
| 35 | PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz" |
| 36 | PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" |
| 37 | PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd" |
| 38 | |
| 39 | GTKDOC_DOCDIR = "${S}/libkmod/docs" |
| 40 | |
| 41 | PROVIDES += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" |
| 42 | RPROVIDES:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" |
| 43 | RCONFLICTS:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" |
| 44 | RREPLACES:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" |
| 45 | |
| 46 | # to force user to remove old module-init-tools and replace them with kmod variants |
| 47 | RCONFLICTS:libkmod2 += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" |
| 48 | |
| 49 | # autotools set prefix to /usr, however we want them in /bin and /sbin |
| 50 | EXTRA_OECONF += "--bindir=${base_bindir} --sbindir=${base_sbindir}" |
| 51 | |
| 52 | do_install:append () { |
| 53 | install -dm755 ${D}${base_bindir} |
| 54 | install -dm755 ${D}${base_sbindir} |
| 55 | # add symlinks to kmod |
| 56 | ln -rs ${D}${base_bindir}/kmod ${D}${base_bindir}/lsmod |
| 57 | for tool in insmod rmmod depmod modinfo modprobe; do |
| 58 | ln -rs ${D}${base_bindir}/kmod ${D}${base_sbindir}/${tool} |
| 59 | done |
| 60 | # configuration directories |
| 61 | install -dm755 ${D}${nonarch_base_libdir}/depmod.d |
| 62 | install -dm755 ${D}${nonarch_base_libdir}/modprobe.d |
| 63 | install -dm755 ${D}${sysconfdir}/depmod.d |
| 64 | install -dm755 ${D}${sysconfdir}/modprobe.d |
| 65 | |
| 66 | # install depmod.d file for search/ dir |
| 67 | install -Dm644 "${WORKDIR}/depmod-search.conf" "${D}${nonarch_base_libdir}/depmod.d/search.conf" |
Patrick Williams | de0582f | 2022-04-08 10:23:27 -0500 | [diff] [blame] | 68 | |
| 69 | # Add .debug to the exclude path for depmod |
| 70 | echo "exclude .debug" > ${D}${nonarch_base_libdir}/depmod.d/exclude.conf |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 71 | } |
| 72 | |
| 73 | ALTERNATIVE_PRIORITY = "70" |
| 74 | |
| 75 | ALTERNATIVE:kmod = "insmod modprobe rmmod modinfo bin-lsmod lsmod depmod" |
| 76 | |
| 77 | ALTERNATIVE_LINK_NAME[depmod] = "${base_sbindir}/depmod" |
| 78 | ALTERNATIVE_LINK_NAME[insmod] = "${base_sbindir}/insmod" |
| 79 | ALTERNATIVE_LINK_NAME[modprobe] = "${base_sbindir}/modprobe" |
| 80 | ALTERNATIVE_LINK_NAME[rmmod] = "${base_sbindir}/rmmod" |
| 81 | ALTERNATIVE_LINK_NAME[modinfo] = "${base_sbindir}/modinfo" |
| 82 | ALTERNATIVE_LINK_NAME[bin-lsmod] = "${base_bindir}/lsmod" |
| 83 | ALTERNATIVE_LINK_NAME[lsmod] = "${base_sbindir}/lsmod" |
| 84 | ALTERNATIVE_TARGET[lsmod] = "${base_bindir}/lsmod.${BPN}" |
| 85 | |
| 86 | PACKAGES =+ "libkmod" |
| 87 | FILES:libkmod = "${base_libdir}/libkmod*${SOLIBS} ${libdir}/libkmod*${SOLIBS}" |
| 88 | FILES:${PN} += "${nonarch_base_libdir}/depmod.d ${nonarch_base_libdir}/modprobe.d" |
| 89 | |
| 90 | BBCLASSEXTEND = "native nativesdk" |