%global gh_owner cyring %global gh_repo CoreFreq %global dkms_name corefreq Name: corefreq Version: 2.0.8 Release: 7%{?dist} Summary: CPU monitoring software with BIOS-like functionalities License: GPL-2.0-or-later URL: https://github.com/%{gh_owner}/%{gh_repo} Source0: %{url}/archive/refs/tags/%{version}.tar.gz Patch0: corefreq-honor-compiler-flags.patch Source1: dkms.conf Source2: corefreqd.service ExclusiveArch: x86_64 aarch64 BuildRequires: gcc BuildRequires: make BuildRequires: sed BuildRequires: kernel-devel BuildRequires: dkms BuildRequires: systemd-rpm-macros # Metapackage for convenience Requires: %{name}-client%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release} %description CoreFreq is a CPU monitoring software with BIOS-like functionalities. This is a metapackage that installs all CoreFreq components. %package dkms Summary: DKMS driver sources for CoreFreq Requires: dkms Requires: kernel-devel Requires: mokutil Requires: openssl Provides: %{name}-kmod = %{version}-%{release} %description dkms This package contains the source for the corefreqk kernel module and configures DKMS to build and install it. It supports signing for Secure Boot. %package server Summary: CoreFreq server daemon Requires: %{name}-dkms = %{version}-%{release} Requires: systemd %{?systemd_requires} %description server Contains the corefreqd daemon and systemd service. %package client Summary: CoreFreq command-line client Requires: %{name}-server = %{version}-%{release} %description client Contains corefreq-cli, a command-line interface for the daemon. %prep %autosetup -p1 -n %{gh_repo}-v%{version} cp %{SOURCE1} . cp %{SOURCE2} . %build %make_build corefreqd corefreq-cli %install install -Dm755 build/corefreqd %{buildroot}%{_bindir}/corefreqd install -Dm755 build/corefreq-cli %{buildroot}%{_bindir}/corefreq-cli install -Dm644 corefreqd.service %{buildroot}%{_unitdir}/corefreqd.service install -d %{buildroot}%{_usrsrc}/%{dkms_name}-%{version}/ cp -a . %{buildroot}%{_usrsrc}/%{dkms_name}-%{version}/ sed -i 's/@VERSION@/%{version}/' dkms.conf install -Dm644 dkms.conf %{buildroot}%{_usrsrc}/%{dkms_name}-%{version}/dkms.conf %post dkms dkms add -m %{dkms_name} -v %{version} --rpm_safe_upgrade dkms build -m %{dkms_name} -v %{version} dkms install -m %{dkms_name} -v %{version} --rpm_safe_upgrade %preun dkms if [ $1 -eq 0 ]; then dkms remove -m %{dkms_name} -v %{version} --all fi %posttrans dkms if command -v mokutil >/dev/null 2>&1 && mokutil --sb-state | grep -q enabled; then MOK_KEY="/var/lib/dkms/mok.pub" if [ -f "$MOK_KEY" ] && ! mokutil --test-key "$MOK_KEY" >/dev/null 2>&1; then echo "--------------------------------------------------------------------------------" echo "ATTENTION: Secure Boot is enabled and the DKMS signing key is not yet enrolled." echo echo "The system may now ask you to create a password for the MOK enrollment." echo "Please enter a temporary password you can remember for the reboot." echo echo "1. On reboot, the blue 'MOK management' screen will appear." echo "2. Select 'Enroll MOK' -> 'Continue'." echo "3. When asked to 'Enroll the key(s)?', select 'Yes'." echo "4. Enter the password you just created." echo echo "The CoreFreq kernel module will not load until this key is enrolled." echo "--------------------------------------------------------------------------------" mokutil --import-key "$MOK_KEY" --root-pw || true fi fi %post server %systemd_post_with_restart corefreqd.service %preun server %systemd_preun corefreqd.service %files client %license LICENSE %doc README.md %{_bindir}/corefreq-cli %files server %{_bindir}/corefreqd %{_unitdir}/corefreqd.service %files dkms %{_usrsrc}/%{dkms_name}-%{version}/ %exclude %{_usrsrc}/%{dkms_name}-%{version}/build/corefreqd %exclude %{_usrsrc}/%{dkms_name}-%{version}/build/corefreq-cli %exclude %{_usrsrc}/%{dkms_name}-%{version}/corefreqd.service %exclude %{_usrsrc}/%{dkms_name}-%{version}/dkms.conf %changelog * Thu Aug 07 2025 Fedora Packager - 2.0.8-7 - Corrected changelog date to satisfy rpmbuild warnings. * Thu Aug 07 2025 Fedora Packager - 2.0.8-6 - Corrected patch application by using standard Patch0 tag and robust %autosetup macro. * Thu Aug 07 2025 Fedora Packager - 2.0.8-5 - Corrected Source0 URL and %prep section to be compatible with COPR build system. * Thu Aug 07 2025 Fedora Packager - 2.0.8-3 - Hardened spec against build errors and improved Fedora version flexibility.