xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.23.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1
2SUMMARY = "Kexec fast reboot tools"
3DESCRIPTION = "Kexec is a fast reboot feature that lets you reboot to a new Linux kernel"
4AUTHOR = "Eric Biederman"
5HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/"
6SECTION = "kernel/userland"
7LICENSE = "GPL-2.0-only"
8LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a \
9                    file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09"
10DEPENDS = "zlib xz"
11
12SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz \
13           file://kdump \
14           file://kdump.conf \
15           file://kdump.service \
16           file://0001-powerpc-change-the-memory-size-limit.patch \
17           file://0002-purgatory-Pass-r-directly-to-linker.patch \
18           file://0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch \
19           file://0005-Disable-PIE-during-link.patch \
20           file://0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch \
21           "
22
23SRC_URI[sha256sum] = "c7dcc59f5b66004d9d91264324e20e0387ea263dbb449708fbf84a4e5ff7decc"
24
25inherit autotools update-rc.d systemd
26
27export LDFLAGS = "-L${STAGING_LIBDIR}"
28EXTRA_OECONF = " --with-zlib=yes"
29
30do_compile:prepend() {
31    # Remove the prepackaged config.h from the source tree as it overrides
32    # the same file generated by configure and placed in the build tree
33    rm -f ${S}/include/config.h
34
35    # Remove the '*.d' file to make sure the recompile is OK
36    for dep in `find ${B} -type f -name '*.d'`; do
37        dep_no_d="`echo $dep | sed 's#.d$##'`"
38        # Remove file.d when there is a file.o
39        if [ -f "$dep_no_d.o" ]; then
40            rm -f $dep
41        fi
42    done
43}
44
45do_install:append () {
46        install -d ${D}${sysconfdir}/sysconfig
47        install -m 0644 ${WORKDIR}/kdump.conf ${D}${sysconfdir}/sysconfig
48
49        if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
50                install -D -m 0755 ${WORKDIR}/kdump ${D}${sysconfdir}/init.d/kdump
51        fi
52
53        if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
54                install -D -m 0755 ${WORKDIR}/kdump ${D}${libexecdir}/kdump-helper
55                install -D -m 0644 ${WORKDIR}/kdump.service ${D}${systemd_system_unitdir}/kdump.service
56                sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' ${D}${systemd_system_unitdir}/kdump.service
57        fi
58}
59
60PACKAGES =+ "kexec kdump vmcore-dmesg"
61
62ALLOW_EMPTY:${PN} = "1"
63RRECOMMENDS:${PN} = "kexec kdump vmcore-dmesg"
64
65FILES:kexec = "${sbindir}/kexec"
66FILES:kdump = "${sbindir}/kdump \
67               ${sysconfdir}/sysconfig/kdump.conf \
68               ${sysconfdir}/init.d/kdump \
69               ${libexecdir}/kdump-helper \
70               ${systemd_system_unitdir}/kdump.service \
71"
72
73FILES:vmcore-dmesg = "${sbindir}/vmcore-dmesg"
74
75INITSCRIPT_PACKAGES = "kdump"
76INITSCRIPT_NAME:kdump = "kdump"
77INITSCRIPT_PARAMS:kdump = "start 56 2 3 4 5 . stop 56 0 1 6 ."
78
79SYSTEMD_PACKAGES = "kdump"
80SYSTEMD_SERVICE:kdump = "kdump.service"
81
82SECURITY_PIE_CFLAGS:remove = "-fPIE -pie"
83
84COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|powerpc.*|mips.*)-(linux|freebsd.*)'
85
86INSANE_SKIP:${PN} = "arch"
87