SUMMARY = "Configures systemd settings for gBMC"
PR = "r1"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"

inherit systemd

S = "${WORKDIR}"

SRC_URI:append = " \
  file://firmware-updates.target \
  file://firmware-updates-pre.target \
  file://gbmc-log-ramoops.service \
  file://40-gbmc-forward.conf \
  file://40-gbmc-sysctl.conf \
  file://40-gbmc-time.conf \
  file://10-gbmc.conf \
  "

FILES:${PN}:append = " \
  ${systemd_unitdir}/coredump.conf.d/40-gbmc-coredump.conf \
  ${systemd_unitdir}/resolved.conf.d/40-gbmc-nomdns.conf \
  ${systemd_unitdir}/timesyncd.conf.d/40-gbmc-time.conf \
  ${libdir}/sysctl.d/40-gbmc-sysctl.conf \
  ${libdir}/sysctl.d/40-gbmc-forward.conf \
  ${systemd_system_unitdir}/sysinit.target.wants/systemd-time-wait-sync.service \
  ${systemd_system_unitdir}/systemd-time-wait-sync.d/10-gbmc.conf \
  "

FILES:${PN}:append:dev = " \
  ${libdir}/sysctl.d/40-gbmc-debug.conf \
  "

SYSTEMD_SERVICE:${PN}:append = " \
  firmware-updates.target \
  firmware-updates-pre.target \
  gbmc-log-ramoops.service \
  "

# Put coredumps in the journal to ensure they stay in ram
do_install() {
  install -d -m 0755 ${D}${systemd_unitdir}/coredump.conf.d
  printf "[Coredump]\nStorage=journal\n" \
    >${D}${systemd_unitdir}/coredump.conf.d/40-gbmc-coredump.conf

  install -d -m 0755 ${D}${systemd_unitdir}/resolved.conf.d
  printf "[Resolve]\nLLMNR=no\nMulticastDNS=resolve\n" \
    >${D}${systemd_unitdir}/resolved.conf.d/40-gbmc-nomdns.conf

  install -d -m 0755 ${D}${systemd_system_unitdir}
  install -m 0644 ${WORKDIR}/firmware-updates.target ${D}${systemd_system_unitdir}/
  install -m 0644 ${WORKDIR}/firmware-updates-pre.target ${D}${systemd_system_unitdir}/
  install -m 0644 ${WORKDIR}/gbmc-log-ramoops.service ${D}${systemd_system_unitdir}/

  # mask systemd-pstore.service to avoid copying logs to SPI
  mkdir -p ${D}${sysconfdir}/systemd/system
  ln -sv /dev/null ${D}${sysconfdir}/systemd/system/systemd-pstore.service

  install -d -m0755 ${D}${libdir}/sysctl.d
  install -m 0644 ${WORKDIR}/40-gbmc-forward.conf ${D}${libdir}/sysctl.d/
  install -m 0644 ${WORKDIR}/40-gbmc-sysctl.conf ${D}${libdir}/sysctl.d/

  install -d -m 0755 ${D}${systemd_unitdir}/timesyncd.conf.d/
  install -D -m0644 ${WORKDIR}/40-gbmc-time.conf ${D}${systemd_unitdir}/timesyncd.conf.d/

  mkdir -p ${D}${systemd_system_unitdir}/sysinit.target.wants/
  ln -sv ${systemd_system_unitdir}/systemd-time-wait-sync.service ${D}${systemd_system_unitdir}/sysinit.target.wants/
  mkdir -p ${D}${systemd_system_unitdir}/systemd-time-wait-sync.d/
  install -D -m0644 ${WORKDIR}/10-gbmc.conf ${D}${systemd_system_unitdir}/systemd-time-wait-sync.d/
}

do_install:append:dev() {
  printf "kernel.sysrq = 1\n" \
      >${D}${libdir}/sysctl.d/40-gbmc-debug.conf
}
