# Copyright 2024-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 CRATES=" aho-corasick-1.1.4 anstream-0.6.21 anstream-1.0.0 anstyle-1.0.14 anstyle-parse-0.2.7 anstyle-parse-1.0.0 anstyle-query-1.1.5 anstyle-wincon-3.0.11 anyhow-1.0.102 async-broadcast-0.7.2 async-channel-2.5.0 async-executor-1.14.0 async-fs-2.2.0 async-io-2.6.0 async-lock-3.4.2 async-process-2.5.0 async-recursion-1.1.1 async-signal-0.2.13 async-task-4.7.1 async-trait-0.1.89 atomic-waker-1.1.2 autocfg-1.5.0 bitflags-2.10.0 block-buffer-0.10.4 blocking-1.6.2 cfg-if-1.0.4 cfg_aliases-0.2.1 clap-4.5.60 clap-verbosity-flag-2.2.3 clap_builder-4.5.60 clap_derive-4.5.55 clap_lex-1.1.0 colorchoice-1.0.5 concurrent-queue-2.5.0 cpufeatures-0.2.17 crossbeam-utils-0.8.21 crypto-common-0.1.7 digest-0.10.7 endi-1.1.1 enumflags2-0.7.12 enumflags2_derive-0.7.12 env_filter-1.0.1 env_logger-0.11.10 equivalent-1.0.2 errno-0.3.14 event-listener-5.4.1 event-listener-strategy-0.5.4 fastrand-2.3.0 foldhash-0.1.5 futures-core-0.3.32 futures-io-0.3.32 futures-lite-2.6.1 futures-sink-0.3.32 futures-task-0.3.32 futures-util-0.3.32 generic-array-0.14.7 getrandom-0.2.17 getrandom-0.4.2 hashbrown-0.15.5 hashbrown-0.16.1 heck-0.5.0 hermit-abi-0.5.2 hex-0.4.3 id-arena-2.3.0 indexmap-2.13.0 is_terminal_polyfill-1.70.2 itoa-1.0.18 jiff-0.2.23 jiff-static-0.2.23 leb128fmt-0.1.0 libc-0.2.183 libdrm_amdgpu_sys-0.8.11 linux-raw-sys-0.12.1 log-0.4.29 memchr-2.8.0 memoffset-0.9.1 nix-0.29.0 once_cell-1.21.4 once_cell_polyfill-1.70.2 ordered-stream-0.2.0 parking-2.2.1 pin-project-lite-0.2.17 piper-0.2.5 polling-3.11.0 portable-atomic-1.13.1 portable-atomic-util-0.2.6 ppv-lite86-0.2.21 prettyplease-0.2.37 proc-macro-crate-3.4.0 proc-macro2-1.0.105 quote-1.0.43 r-efi-6.0.0 rand-0.8.5 rand_chacha-0.3.1 rand_core-0.6.4 regex-1.12.3 regex-automata-0.4.14 regex-syntax-0.8.10 rustix-1.1.4 semver-1.0.27 serde-1.0.228 serde_core-1.0.228 serde_derive-1.0.228 serde_json-1.0.149 serde_repr-0.1.20 serde_spanned-1.0.4 sha1-0.10.6 signal-hook-0.3.18 signal-hook-registry-1.4.8 slab-0.4.12 static_assertions-1.1.0 strsim-0.11.1 syn-2.0.114 tempfile-3.27.0 thiserror-1.0.69 thiserror-impl-1.0.69 toml-0.9.11+spec-1.1.0 toml_datetime-0.7.5+spec-1.1.0 toml_edit-0.23.10+spec-1.0.0 toml_parser-1.0.6+spec-1.1.0 toml_writer-1.0.6+spec-1.1.0 tracing-0.1.44 tracing-attributes-0.1.31 tracing-core-0.1.36 typenum-1.19.0 uds_windows-1.2.1 unicode-ident-1.0.22 unicode-xid-0.2.6 utf8parse-0.2.2 version_check-0.9.5 wasi-0.11.1+wasi-snapshot-preview1 wasip2-1.0.2+wasi-0.2.9 wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06 wasm-encoder-0.244.0 wasm-metadata-0.244.0 wasmparser-0.244.0 windows-link-0.2.1 windows-sys-0.52.0 windows-sys-0.59.0 windows-sys-0.61.2 windows-targets-0.52.6 windows_aarch64_gnullvm-0.52.6 windows_aarch64_msvc-0.52.6 windows_i686_gnu-0.52.6 windows_i686_gnullvm-0.52.6 windows_i686_msvc-0.52.6 windows_x86_64_gnu-0.52.6 windows_x86_64_gnullvm-0.52.6 windows_x86_64_msvc-0.52.6 winnow-0.7.14 wit-bindgen-0.51.0 wit-bindgen-core-0.51.0 wit-bindgen-rust-0.51.0 wit-bindgen-rust-macro-0.51.0 wit-component-0.244.0 wit-parser-0.244.0 xdg-home-1.3.0 zbus-4.4.0 zbus_macros-4.4.0 zbus_names-3.0.0 zerocopy-0.8.47 zerocopy-derive-0.8.47 zmij-1.0.21 zvariant-4.2.0 zvariant_derive-4.2.0 zvariant_utils-2.1.0 " inherit cargo git-r3 DESCRIPTION="Adaptive GPU frequency governor for AMD Cyan Skillfish APU" HOMEPAGE="https://github.com/filippor/cyan-skillfish-governor" EGIT_REPO_URI="https://github.com/filippor/cyan-skillfish-governor.git" EGIT_BRANCH="smu" SRC_URI="${CARGO_CRATE_URIS}" LICENSE="MIT" # Licenses for bundled Rust crate dependencies LICENSE+=" Apache-2.0 BSD-2 ISC Unicode-DFS-2016 Unlicense ZLIB" SLOT="0" KEYWORDS="" IUSE="" # libdrm_amdgpu_sys links against libdrm_amdgpu at build and runtime DEPEND="x11-libs/libdrm[video_cards_amdgpu]" RDEPEND=" ${DEPEND} sys-apps/dbus " BDEPEND="virtual/rust" src_unpack() { git-r3_src_unpack cargo_src_unpack } src_compile() { cargo_src_compile } src_install() { cargo_src_install # Default configuration insinto /etc/cyan-skillfish-governor-smu newins default-config.toml config.toml # D-Bus policy allowing any user to contact the governor service insinto /etc/dbus-1/system.d doins com.cyan.SkillFishGovernor.conf # Helper script for toggling performance mode from Steam or the command line dobin scripts/cyan-skillfish-performance-mode # OpenRC init script newinitd "${FILESDIR}/cyan-skillfish-governor-smu.initd" cyan-skillfish-governor-smu } pkg_postinst() { if [[ -z "${REPLACING_VERSIONS}" ]]; then elog "" elog "A default configuration has been installed to:" elog " /etc/cyan-skillfish-governor-smu/config.toml" elog "" elog "Edit it to match your GPU's voltage/frequency safe-points before" elog "starting the service. The built-in defaults are conservative." elog "" elog "To start the service:" elog " rc-service cyan-skillfish-governor-smu start" elog "" elog "To enable at boot:" elog " rc-update add cyan-skillfish-governor-smu default" elog "" elog "To enable the D-Bus performance-mode interface, set" elog " dbus.enabled = true in config.toml, then restart the service." elog "" fi }