# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit linux-mod-r1 systemd toolchain-funcs DESCRIPTION="CPU monitoring and tuning software designed for 64-bit processors" HOMEPAGE="https://www.cyring.fr/" SRC_URI="https://github.com/cyring/CoreFreq/archive/${PV}.tar.gz -> ${P}.tar.gz" S="${WORKDIR}/CoreFreq-${PV}" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64" DOCS=( README.md ) pkg_setup() { # see README.md # required local CONFIG_CHECK="SMP X86_MSR" # optional local optional_checks=( HOTPLUG_CPU CPU_IDLE CPU_FREQ PM_SLEEP DMI HAVE_NMI XEN AMD_NB HAVE_PERF_EVENTS SCHED_MUQSS SCHED_BMQ SCHED_PDS ) CONFIG_CHECK+="$(printf " ~%s" "${optional_checks[@]}")" local check for check in "${optional_checks[@]}"; do eval "WARNING_${check}"="\"CONFIG_${check} is optional and not enabled\"" done linux-mod-r1_pkg_setup } src_compile() { local modlist=( corefreqk=misc::build ) local modargs=( KERNELDIR="${KV_OUT_DIR}" ) linux-mod-r1_src_compile emake V=1 CC="$(tc-getCC)" OPTIM_FLG="${CFLAGS} ${LDFLAGS}" corefreqd corefreq-cli } src_install() { linux-mod-r1_src_install dobin build/{corefreqd,corefreq-cli} newconfd "${FILESDIR}/${PN}.conf" "${PN}" doinitd "${FILESDIR}/${PN}" systemd_dounit "${PN}d.service" } pkg_postinst() { linux-mod-r1_pkg_postinst einfo "To be able to use corefreq, you need to load kernel module:" einfo "modprobe corefreqk" einfo "After that - start daemon with corefreqd" einfo "or by 'rc-service corefreq start'" einfo "And only after that you can start corefreq-cli" }