Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 1 | |
| 2 | SUMMARY = "Kexec fast reboot tools" |
| 3 | DESCRIPTION = "Kexec is a fast reboot feature that lets you reboot to a new Linux kernel" |
| 4 | AUTHOR = "Eric Biederman" |
| 5 | HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/" |
| 6 | SECTION = "kernel/userland" |
| 7 | LICENSE = "GPLv2" |
| 8 | LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a \ |
| 9 | file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09" |
| 10 | DEPENDS = "zlib xz" |
| 11 | |
| 12 | SRC_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 \ |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 19 | file://0005-Disable-PIE-during-link.patch \ |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 20 | file://0007-kexec-un-break-the-build-on-32-bit-x86.patch \ |
Andrew Geissler | 6ce62a2 | 2020-11-30 19:58:47 -0600 | [diff] [blame] | 21 | file://0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch \ |
Andrew Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 22 | file://0001-kexec-arch-ppc-kexec-ppc.c-correct-double-definition.patch \ |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 23 | " |
| 24 | |
William A. Kennington III | ac69b48 | 2021-06-02 12:28:27 -0700 | [diff] [blame] | 25 | SRC_URI[sha256sum] = "40623d4321be2865ef9ea2cd6ec998d31dcf93d0f74353cbd3aa06d8821e3e41" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 26 | |
| 27 | inherit autotools update-rc.d systemd |
| 28 | |
| 29 | export LDFLAGS = "-L${STAGING_LIBDIR}" |
| 30 | EXTRA_OECONF = " --with-zlib=yes" |
| 31 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 32 | do_compile:prepend() { |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 33 | # Remove the prepackaged config.h from the source tree as it overrides |
| 34 | # the same file generated by configure and placed in the build tree |
| 35 | rm -f ${S}/include/config.h |
| 36 | |
| 37 | # Remove the '*.d' file to make sure the recompile is OK |
| 38 | for dep in `find ${B} -type f -name '*.d'`; do |
| 39 | dep_no_d="`echo $dep | sed 's#.d$##'`" |
| 40 | # Remove file.d when there is a file.o |
| 41 | if [ -f "$dep_no_d.o" ]; then |
| 42 | rm -f $dep |
| 43 | fi |
| 44 | done |
| 45 | } |
| 46 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 47 | do_install:append () { |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 48 | install -d ${D}${sysconfdir}/sysconfig |
| 49 | install -m 0644 ${WORKDIR}/kdump.conf ${D}${sysconfdir}/sysconfig |
| 50 | |
| 51 | if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then |
| 52 | install -D -m 0755 ${WORKDIR}/kdump ${D}${sysconfdir}/init.d/kdump |
| 53 | fi |
| 54 | |
| 55 | if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then |
| 56 | install -D -m 0755 ${WORKDIR}/kdump ${D}${libexecdir}/kdump-helper |
Andrew Geissler | 5199d83 | 2021-09-24 16:47:35 -0500 | [diff] [blame] | 57 | install -D -m 0644 ${WORKDIR}/kdump.service ${D}${systemd_system_unitdir}/kdump.service |
| 58 | sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' ${D}${systemd_system_unitdir}/kdump.service |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 59 | fi |
| 60 | } |
| 61 | |
| 62 | PACKAGES =+ "kexec kdump vmcore-dmesg" |
| 63 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 64 | ALLOW_EMPTY:${PN} = "1" |
| 65 | RRECOMMENDS:${PN} = "kexec kdump vmcore-dmesg" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 66 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 67 | FILES:kexec = "${sbindir}/kexec" |
| 68 | FILES:kdump = "${sbindir}/kdump \ |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 69 | ${sysconfdir}/sysconfig/kdump.conf \ |
| 70 | ${sysconfdir}/init.d/kdump \ |
| 71 | ${libexecdir}/kdump-helper \ |
Andrew Geissler | 5199d83 | 2021-09-24 16:47:35 -0500 | [diff] [blame] | 72 | ${systemd_system_unitdir}/kdump.service \ |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 73 | " |
| 74 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 75 | FILES:vmcore-dmesg = "${sbindir}/vmcore-dmesg" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 76 | |
| 77 | INITSCRIPT_PACKAGES = "kdump" |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 78 | INITSCRIPT_NAME:kdump = "kdump" |
| 79 | INITSCRIPT_PARAMS:kdump = "start 56 2 3 4 5 . stop 56 0 1 6 ." |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 80 | |
| 81 | SYSTEMD_PACKAGES = "kdump" |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 82 | SYSTEMD_SERVICE:kdump = "kdump.service" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 83 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 84 | SECURITY_PIE_CFLAGS:remove = "-fPIE -pie" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 85 | |
| 86 | COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|powerpc.*|mips.*)-(linux|freebsd.*)' |
| 87 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 88 | INSANE_SKIP:${PN} = "arch" |