auto-cpufreq: set pyproject and refactor

This commit is contained in:
mivorasu 2025-07-27 20:14:27 +08:00
parent daaa22f563
commit 8bdeb8c5bc

View File

@ -9,10 +9,11 @@
getent,
nixosTests,
}:
python3Packages.buildPythonPackage rec {
pname = "auto-cpufreq";
version = "2.6.0";
format = "pyproject";
pyproject = true;
src = fetchFromGitHub {
owner = "AdnanHodzic";
@ -21,35 +22,6 @@ python3Packages.buildPythonPackage rec {
hash = "sha256-DEs6jbWYJFJgpaPtF5NT3DQs3erjzdm2brLNHpjrEPA=";
};
nativeBuildInputs = [
gobject-introspection
wrapGAppsHook3
];
buildInputs = [
gtk3
python3Packages.poetry-core
];
propagatedBuildInputs =
with python3Packages;
[
click
distro
psutil
pygobject3
poetry-dynamic-versioning
setuptools
pyinotify
urwid
pyasyncore
requests
]
++ [ getent ];
doCheck = false;
pythonImportsCheck = [ "auto_cpufreq" ];
patches = [
# hardcodes version output
(replaceVars ./fix-version-output.patch {
@ -64,38 +36,73 @@ python3Packages.buildPythonPackage rec {
postPatch = ''
substituteInPlace auto_cpufreq/core.py \
--replace-fail '/opt/auto-cpufreq/override.pickle' /var/run/override.pickle
--replace-fail "/opt/auto-cpufreq/override.pickle" "/var/run/override.pickle"
substituteInPlace scripts/org.auto-cpufreq.pkexec.policy \
--replace-fail "/opt/auto-cpufreq/venv/bin/auto-cpufreq" $out/bin/auto-cpufreq
--replace-fail "/opt/auto-cpufreq/venv/bin/auto-cpufreq" "$out/bin/auto-cpufreq"
substituteInPlace auto_cpufreq/gui/app.py auto_cpufreq/gui/objects.py \
--replace-fail "/usr/local/share/auto-cpufreq/images/icon.png" $out/share/pixmaps/auto-cpufreq.png
--replace-fail "/usr/local/share/auto-cpufreq/images/icon.png" "$out/share/icons/hicolor/512x512/apps/auto-cpufreq.png"
substituteInPlace auto_cpufreq/gui/app.py \
--replace-fail "/usr/local/share/auto-cpufreq/scripts/style.css" $out/share/auto-cpufreq/scripts/style.css
--replace-fail "/usr/local/share/auto-cpufreq/scripts/style.css" "$out/share/auto-cpufreq/scripts/style.css"
'';
postInstall = ''
build-system = with python3Packages; [
poetry-core
poetry-dynamic-versioning
];
dependencies = with python3Packages; [
click
distro
psutil
pygobject3
poetry-dynamic-versioning
setuptools
pyinotify
urwid
pyasyncore
requests
];
nativeBuildInputs = [
gobject-introspection
wrapGAppsHook3
];
buildInputs = [ gtk3 ];
propagatedBuildInputs = [ getent ];
postInstall =
# copy script manually
cp ${src}/scripts/cpufreqctl.sh $out/bin/cpufreqctl.auto-cpufreq
''
install -Dm 0755 scripts/cpufreqctl.sh $out/bin/cpufreqctl.auto-cpufreq
''
# copy css file
mkdir -p $out/share/auto-cpufreq/scripts
cp scripts/style.css $out/share/auto-cpufreq/scripts/style.css
+ ''
install -Dm 0644 scripts/style.css $out/share/auto-cpufreq/scripts/style.css
''
# systemd service
mkdir -p $out/lib/systemd/system
cp ${src}/scripts/auto-cpufreq.service $out/lib/systemd/system
+ ''
install -Dm 0644 scripts/auto-cpufreq.service -t $out/lib/systemd/system
''
# desktop icon
mkdir -p $out/share/applications
mkdir $out/share/pixmaps
cp scripts/auto-cpufreq-gtk.desktop $out/share/applications
cp images/icon.png $out/share/pixmaps/auto-cpufreq.png
+ ''
install -Dm 0644 scripts/auto-cpufreq-gtk.desktop -t $out/share/applications
install -Dm 0644 images/icon.png $out/share/icons/hicolor/512x512/apps/auto-cpufreq.png
''
# polkit policy
mkdir -p $out/share/polkit-1/actions
cp scripts/org.auto-cpufreq.pkexec.policy $out/share/polkit-1/actions
+ ''
install -Dm 0644 scripts/org.auto-cpufreq.pkexec.policy -t $out/share/polkit-1/actions
'';
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
pythonImportsCheck = [ "auto_cpufreq" ];
passthru.tests = {
inherit (nixosTests) auto-cpufreq;
};