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