system/system76-power: Updated for version 1.1.25_fc8eb49.

Signed-off-by: Erich Ritz <erich.public@protonmail.com>
Signed-off-by: Andrew Clemons <andrew.clemons@gmail.com>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Erich Ritz 2023-08-10 09:35:45 -05:00 committed by Willy Sudiarto Raharjo
parent 21f04404be
commit 4202ec6ad7
No known key found for this signature in database
GPG Key ID: 3F617144D7238786
4 changed files with 303 additions and 152 deletions

View File

@ -14,12 +14,12 @@ The system76-power daemon log messages are logged to
/var/log/system76-power.log by default. Logging can be disabled by
setting LOG_FILE=/dev/null in /etc/rc.d/rc.system76-power.
This project is pinned to a specific Rust version, currently 1.61.0. As
This project is pinned to a specific Rust version, currently 1.70.0. As
such, rustup is a compile time only dependency. If this specific
version of the Rust toolchain is not already installed, it will be
downloaded and installed automatically during build script execution.
It can be installed manually beforehand by running
rustup toolchain install 1.61.0
rustup toolchain install 1.70.0
NOTE: The directions in rustup's README must be followed so that the
rust installed by rustup is preferred over the system rust.

View File

@ -0,0 +1,135 @@
diff --git a/src/fan.rs b/src/fan.rs
index 03fdadd..4b3db3b 100644
--- a/src/fan.rs
+++ b/src/fan.rs
@@ -23,9 +23,11 @@ pub enum FanDaemonError {
pub struct FanDaemon {
curve: FanCurve,
+ curve_nvme: FanCurve,
amdgpus: Vec<HwMon>,
platforms: Vec<HwMon>,
cpus: Vec<HwMon>,
+ nvmes: Vec<HwMon>,
nvidia_exists: bool,
displayed_warning: Cell<bool>,
}
@@ -41,9 +43,11 @@ impl FanDaemon {
"thelio-massive-b1" => FanCurve::xeon(),
_ => FanCurve::standard(),
},
+ curve_nvme: FanCurve::nvme(),
amdgpus: Vec::new(),
platforms: Vec::new(),
cpus: Vec::new(),
+ nvmes: Vec::new(),
nvidia_exists,
displayed_warning: Cell::new(false),
};
@@ -60,6 +64,7 @@ impl FanDaemon {
self.amdgpus.clear();
self.platforms.clear();
self.cpus.clear();
+ self.nvmes.clear();
for hwmon in HwMon::all().map_err(FanDaemonError::HwmonDevices)? {
if let Ok(name) = hwmon.name() {
@@ -70,6 +75,7 @@ impl FanDaemon {
"system76" => (), // TODO: Support laptops
"system76_io" | "system76_thelio_io" => self.platforms.push(hwmon),
"coretemp" | "k10temp" => self.cpus.push(hwmon),
+ "nvme" => self.nvmes.push(hwmon),
_ => (),
}
}
@@ -83,6 +89,10 @@ impl FanDaemon {
return Err(FanDaemonError::CpuHwmonNotFound);
}
+ if self.nvmes.is_empty() {
+ // No error.
+ }
+
Ok(())
}
@@ -128,6 +138,25 @@ impl FanDaemon {
temp_opt
}
+ /// Get the maximum measured temperature from any NVME on the system, in thousandths of a
+ /// Celsius. Thousandths celsius is the standard Linux hwmon temperature unit.
+ pub fn get_nvme_temp(&self) -> Option<u32> {
+ self
+ .nvmes
+ .iter()
+ .filter_map(|sensor| sensor.temp(1).ok())
+ .filter_map(|temp| temp.input().ok())
+ .fold(None, |mut temp_opt, input| {
+ // Assume temperatures are always above freezing
+ if temp_opt.map_or(true, |x| input as u32 > x) {
+ log::debug!("highest hwmon nvme temp: {}", input);
+ temp_opt = Some(input as u32);
+ }
+
+ temp_opt
+ })
+ }
+
/// Get the correct duty cycle for a temperature in thousandths Celsius, from 0 to 255
/// Thousandths celsius is the standard Linux hwmon temperature unit
/// 0 to 255 is the standard Linux hwmon pwm unit
@@ -137,6 +166,15 @@ impl FanDaemon {
.map(|duty| (((u32::from(duty)) * 255) / 10_000) as u8)
}
+ /// Get the correct duty cycle for an NVME temperature in thousandths Celsius, from 0 to 255
+ /// Thousandths celsius is the standard Linux hwmon temperature unit
+ /// 0 to 255 is the standard Linux hwmon pwm unit
+ pub fn get_nvme_duty(&self, temp: u32) -> Option<u8> {
+ self.curve_nvme
+ .get_duty((temp / 10) as i16)
+ .map(|duty| (((u32::from(duty)) * 255) / 10_000) as u8)
+ }
+
/// Set the current duty cycle, from 0 to 255
/// 0 to 255 is the standard Linux hwmon pwm unit
pub fn set_duty(&self, duty_opt: Option<u8>) {
@@ -159,7 +197,20 @@ impl FanDaemon {
/// Calculate the correct duty cycle and apply it to all fans
pub fn step(&mut self) {
if let Ok(()) = self.discover() {
- self.set_duty(self.get_temp().and_then(|temp| self.get_duty(temp)));
+ self.set_duty({
+ let cpu_duty = self.get_temp().and_then(|temp| self.get_duty(temp));
+ log::debug!("cpu duty: {:?}", cpu_duty);
+ if self.nvmes.is_empty() {
+ cpu_duty
+ } else {
+ let nvme_duty = self.get_nvme_temp().and_then(|temp| self.get_nvme_duty(temp));
+ log::debug!("nvme duty: {:?}", nvme_duty);
+ match(cpu_duty, nvme_duty) {
+ (Some(cpu_duty), Some(nvme_duty)) => Some(cmp::max(cpu_duty, nvme_duty)),
+ _ => None,
+ }
+ }
+ });
}
}
}
@@ -282,6 +333,15 @@ impl FanCurve {
.append(78_00, 100_00)
}
+ /// Fan curve for NVME drives
+ pub fn nvme() -> Self {
+ Self::default()
+ .append(00_00, 00_00)
+ .append(60_00, 00_00)
+ .append(65_00, 70_00)
+ .append(68_00, 100_00)
+ }
+
pub fn get_duty(&self, temp: i16) -> Option<u16> {
// If the temp is less than the first point, return the first point duty
if let Some(first) = self.points.first() {

View File

@ -33,8 +33,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=system76-power
VERSION=${VERSION:-1.1.24_c504ff6}
SRCVER=${SRCVER:-c504ff6d2f6b851d2d1d3b0433e87540c94540d3}
VERSION=${VERSION:-1.1.25_fc8eb49}
SRCVER=${SRCVER:-fc8eb49fae5222da56dcfa414ef2b190e9f870c7}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@ -170,6 +170,8 @@ find -L . \
patch -p1 < $CWD/fix_groups.patch
# Prevent CPU from overheating
patch -p1 < $CWD/xeon_fan_curve.patch
# Prevent NVMe U.2 SSD from overheating
patch -p1 < $CWD/nvme_temp.patch
export CARGO_HOME=.cargo

View File

@ -1,174 +1,188 @@
PRGNAM="system76-power"
VERSION="1.1.24_c504ff6"
VERSION="1.1.25_fc8eb49"
HOMEPAGE="https://github.com/pop-os/system76-power"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
DOWNLOAD_x86_64="https://github.com/pop-os/system76-power/archive/c504ff6/system76-power-c504ff6d2f6b851d2d1d3b0433e87540c94540d3.tar.gz \
DOWNLOAD_x86_64="https://github.com/pop-os/system76-power/archive/fc8eb49/system76-power-fc8eb49fae5222da56dcfa414ef2b190e9f870c7.tar.gz \
https://github.com/pop-os/sysfs-class/tarball/ab63e7f638aadfaf896a02e53cf330343d331337/pop-os-sysfs-class-0.1.3-1-gab63e7f.tar.gz \
https://crates-io.s3-us-west-1.amazonaws.com/crates/atty/atty-0.2.14.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/autocfg/autocfg-1.1.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/bitflags/bitflags-1.3.2.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/cc/cc-1.0.74.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/cfg-if/cfg-if-1.0.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/clap/clap-4.0.19.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/clap_derive/clap_derive-4.0.18.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/clap_lex/clap_lex-0.3.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/concat-in-place/concat-in-place-1.1.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/darling/darling-0.10.2.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/darling_core/darling_core-0.10.2.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/darling_macro/darling_macro-0.10.2.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/dbus-crossroads/dbus-crossroads-0.5.1.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/dbus-tokio/dbus-tokio-0.7.5.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/dbus/dbus-0.9.6.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/derive_setters/derive_setters-0.1.5.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/fern/fern-0.6.1.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/fnv/fnv-1.0.7.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/futures-channel/futures-channel-0.3.25.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/futures-core/futures-core-0.3.25.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/futures-executor/futures-executor-0.3.25.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/futures-io/futures-io-0.3.25.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/futures-macro/futures-macro-0.3.25.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/futures-sink/futures-sink-0.3.25.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/futures-task/futures-task-0.3.25.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/futures-util/futures-util-0.3.25.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/futures/futures-0.3.25.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/heck/heck-0.4.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/hermit-abi/hermit-abi-0.1.19.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/hidapi/hidapi-1.4.2.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/ident_case/ident_case-1.0.1.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/inotify-sys/inotify-sys-0.1.5.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/inotify/inotify-0.10.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/intel-pstate/intel-pstate-1.0.1.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/itoa/itoa-1.0.4.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/libc/libc-0.2.137.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/libdbus-sys/libdbus-sys-0.2.2.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/log/log-0.4.17.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/memchr/memchr-2.5.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/mio/mio-0.8.5.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/numtoa/numtoa-0.2.4.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/once_cell/once_cell-1.16.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/os_str_bytes/os_str_bytes-6.3.1.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/pin-project-lite/pin-project-lite-0.2.9.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/pin-utils/pin-utils-0.1.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/pkg-config/pkg-config-0.3.26.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/proc-macro-error-attr/proc-macro-error-attr-1.0.4.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/proc-macro-error/proc-macro-error-1.0.4.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/proc-macro2/proc-macro2-1.0.47.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/quote/quote-1.0.21.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/ryu/ryu-1.0.11.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/serde/serde-1.0.147.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/serde_derive/serde_derive-1.0.147.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/serde_json/serde_json-1.0.87.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/signal-hook-registry/signal-hook-registry-1.4.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/slab/slab-0.4.7.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/smart-default/smart-default-0.6.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/socket2/socket2-0.4.7.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/strsim/strsim-0.10.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/strsim/strsim-0.9.3.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/syn/syn-1.0.103.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/termcolor/termcolor-1.1.3.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/thiserror-impl/thiserror-impl-1.0.37.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/thiserror/thiserror-1.0.37.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-macros/tokio-macros-1.8.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio/tokio-1.21.2.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/unicode-ident/unicode-ident-1.0.5.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/version_check/version_check-0.9.4.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/wasi/wasi-0.11.0+wasi-snapshot-preview1.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/winapi-util/winapi-util-0.1.5.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/winapi/winapi-0.3.9.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/windows-sys/windows-sys-0.42.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.42.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.42.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/windows_i686_gnu/windows_i686_gnu-0.42.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/windows_i686_msvc/windows_i686_msvc-0.42.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.42.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.42.0.crate \
https://crates-io.s3-us-west-1.amazonaws.com/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.42.0.crate"
MD5SUM_x86_64="81a029d8ffeaae5573fe8fec352d2255 \
https://static.crates.io/crates/anstream/anstream-0.3.2.crate \
https://static.crates.io/crates/anstyle-parse/anstyle-parse-0.2.0.crate \
https://static.crates.io/crates/anstyle-query/anstyle-query-1.0.0.crate \
https://static.crates.io/crates/anstyle-wincon/anstyle-wincon-1.0.1.crate \
https://static.crates.io/crates/anstyle/anstyle-1.0.0.crate \
https://static.crates.io/crates/autocfg/autocfg-1.1.0.crate \
https://static.crates.io/crates/bitflags/bitflags-1.3.2.crate \
https://static.crates.io/crates/cc/cc-1.0.79.crate \
https://static.crates.io/crates/clap/clap-4.3.4.crate \
https://static.crates.io/crates/clap_builder/clap_builder-4.3.4.crate \
https://static.crates.io/crates/clap_derive/clap_derive-4.3.2.crate \
https://static.crates.io/crates/clap_lex/clap_lex-0.5.0.crate \
https://static.crates.io/crates/colorchoice/colorchoice-1.0.0.crate \
https://static.crates.io/crates/concat-in-place/concat-in-place-1.1.0.crate \
https://static.crates.io/crates/darling/darling-0.20.1.crate \
https://static.crates.io/crates/darling_core/darling_core-0.20.1.crate \
https://static.crates.io/crates/darling_macro/darling_macro-0.20.1.crate \
https://static.crates.io/crates/dbus-crossroads/dbus-crossroads-0.5.2.crate \
https://static.crates.io/crates/dbus-tokio/dbus-tokio-0.7.6.crate \
https://static.crates.io/crates/dbus/dbus-0.9.7.crate \
https://static.crates.io/crates/derive_setters/derive_setters-0.1.6.crate \
https://static.crates.io/crates/errno-dragonfly/errno-dragonfly-0.1.2.crate \
https://static.crates.io/crates/errno/errno-0.3.1.crate \
https://static.crates.io/crates/fern/fern-0.6.2.crate \
https://static.crates.io/crates/fnv/fnv-1.0.7.crate \
https://static.crates.io/crates/futures-channel/futures-channel-0.3.28.crate \
https://static.crates.io/crates/futures-core/futures-core-0.3.28.crate \
https://static.crates.io/crates/futures-executor/futures-executor-0.3.28.crate \
https://static.crates.io/crates/futures-io/futures-io-0.3.28.crate \
https://static.crates.io/crates/futures-macro/futures-macro-0.3.28.crate \
https://static.crates.io/crates/futures-sink/futures-sink-0.3.28.crate \
https://static.crates.io/crates/futures-task/futures-task-0.3.28.crate \
https://static.crates.io/crates/futures-util/futures-util-0.3.28.crate \
https://static.crates.io/crates/futures/futures-0.3.28.crate \
https://static.crates.io/crates/heck/heck-0.4.1.crate \
https://static.crates.io/crates/hermit-abi/hermit-abi-0.3.1.crate \
https://static.crates.io/crates/hidapi/hidapi-1.5.0.crate \
https://static.crates.io/crates/ident_case/ident_case-1.0.1.crate \
https://static.crates.io/crates/inotify-sys/inotify-sys-0.1.5.crate \
https://static.crates.io/crates/inotify/inotify-0.10.1.crate \
https://static.crates.io/crates/intel-pstate/intel-pstate-1.0.1.crate \
https://static.crates.io/crates/io-lifetimes/io-lifetimes-1.0.11.crate \
https://static.crates.io/crates/is-terminal/is-terminal-0.4.7.crate \
https://static.crates.io/crates/itoa/itoa-1.0.6.crate \
https://static.crates.io/crates/libc/libc-0.2.146.crate \
https://static.crates.io/crates/libdbus-sys/libdbus-sys-0.2.5.crate \
https://static.crates.io/crates/linux-raw-sys/linux-raw-sys-0.3.8.crate \
https://static.crates.io/crates/log/log-0.4.19.crate \
https://static.crates.io/crates/memchr/memchr-2.5.0.crate \
https://static.crates.io/crates/mio/mio-0.8.8.crate \
https://static.crates.io/crates/numtoa/numtoa-0.2.4.crate \
https://static.crates.io/crates/once_cell/once_cell-1.18.0.crate \
https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.9.crate \
https://static.crates.io/crates/pin-utils/pin-utils-0.1.0.crate \
https://static.crates.io/crates/pkg-config/pkg-config-0.3.27.crate \
https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.60.crate \
https://static.crates.io/crates/quote/quote-1.0.28.crate \
https://static.crates.io/crates/rustix/rustix-0.37.20.crate \
https://static.crates.io/crates/ryu/ryu-1.0.13.crate \
https://static.crates.io/crates/serde/serde-1.0.164.crate \
https://static.crates.io/crates/serde_derive/serde_derive-1.0.164.crate \
https://static.crates.io/crates/serde_json/serde_json-1.0.96.crate \
https://static.crates.io/crates/signal-hook-registry/signal-hook-registry-1.4.1.crate \
https://static.crates.io/crates/slab/slab-0.4.8.crate \
https://static.crates.io/crates/smart-default/smart-default-0.6.0.crate \
https://static.crates.io/crates/socket2/socket2-0.4.9.crate \
https://static.crates.io/crates/strsim/strsim-0.10.0.crate \
https://static.crates.io/crates/syn/syn-1.0.109.crate \
https://static.crates.io/crates/syn/syn-2.0.18.crate \
https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.40.crate \
https://static.crates.io/crates/thiserror/thiserror-1.0.40.crate \
https://static.crates.io/crates/tokio-macros/tokio-macros-2.1.0.crate \
https://static.crates.io/crates/tokio/tokio-1.28.2.crate \
https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.9.crate \
https://static.crates.io/crates/utf8parse/utf8parse-0.2.1.crate \
https://static.crates.io/crates/wasi/wasi-0.11.0+wasi-snapshot-preview1.crate \
https://static.crates.io/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate \
https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate \
https://static.crates.io/crates/winapi/winapi-0.3.9.crate \
https://static.crates.io/crates/windows-sys/windows-sys-0.48.0.crate \
https://static.crates.io/crates/windows-targets/windows-targets-0.48.0.crate \
https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.48.0.crate \
https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.48.0.crate \
https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.48.0.crate \
https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.48.0.crate \
https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.48.0.crate \
https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.48.0.crate \
https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.48.0.crate"
MD5SUM_x86_64="dc76a1933efe5cc7b29bf038376bcb60 \
864d84ec428600e74b322b01d0d9040c \
142cb4b9a653e56e56311f0c883b8582 \
fefa6f663a171d17cd210af8a8cf979d \
aea9df8755bcb59733b1be84252ffd00 \
d2453c99c7af98286c2dc9017a8dba6d \
d303b3d9c077ff67b2ae93e7354830cf \
285e1a0d21d8078099686654ad13235a \
05d77ef52e90ad161fdd41b252420467 \
a295edb6953237ebbdfa8e731229f9a3 \
10943d8a11c64d3d91db2fdc1e61cfde \
74634128440dbc3766bda76fdf0aaa05 \
df6717dbf343d6c444ef2da8bdaac9d9 \
ad454bc7294a43587ac00d9ba493b1c7 \
ce4e3a5dfad6932a907b9a663065c627 \
7d83f411bb22318c65fec8bbee937ece \
1b4f420f92f4ef2bab6f00dee3626de6 \
f76d8a8006d0bf162c9f36a434476c45 \
b2ddb7066ebce14862707f98be002c6d \
174448468cf3c9ccffd07dddd68df964 \
010f6d0e98cc2a2b99907a23c6cd6bbc \
a9bbef8e965372f310b1187ed99a9ebf \
a42201f337a8d7cd51aae9e5ecad91f0 \
b1c8b47b8fc9077b6a6aadc47c819115 \
5663ea952316dfff411bc1ef78c1979d \
fdbbb75171c0ed605f75af03900a2eb3 \
b520c4887053e2bc5e915c0a88d13047 \
eb1e014c417a0d7f2e843c868188af55 \
7b107c4c32bb3fd872bad1b08c555c9b \
d03adfd6f55dfa573361e8ddca01470a \
96c0b4f4f9c2cf5b997e62fc36deebd4 \
0978758ab068cf97fb551ff08d5c64eb \
fe60ae14723027a32978b7afd45dd87e \
2547929b1e53593dbad1729791feb6c6 \
7ef916a17b87cf35a7e7fac44bb20390 \
b170c380ee4d59e4ed866afaa26a86c7 \
878ece459543004969e42906a59bb848 \
fc65414dcac661c46f2cfad7722304f9 \
b21aa70c76c22f8936338797372236bf \
90dd7e5de8d668d26234ac4e308ef6a2 \
8dab3b3ec00dc56cffde0b0c410d47b5 \
590d076cb05cc9698c2823a88086dbfd \
628b749399fec3c20ed1c30d1a756699 \
0eaad5fe43b228070a11920d7555f604 \
2796648a206334732b3c0b91b6af0193 \
a7657fa1d5c02a66b3b877f3ef974824 \
2049a5d39b5b34d9fa89f4809cb9c7c0 \
76e610f9520efa9b8ce6b4657fdc430d \
46b4e7466d39fc766921733568035f43 \
3de071e30013f03c34355453a46659e5 \
4fd75413081a400a1c230f0700732611 \
0b7994d1256215201bdfb810a357ffa2 \
11880870656bdae715b2d40f1877f2ed \
378bd2c8eb6adcc1a837558e1927e1eb \
b2458958308a0923a65777b9297bf11a \
2399b8b3b39b993d8e44d2fc1628663c \
6052db16e7627061500931e7f53b0128 \
3f798ffba5e1f1ec5ad2df0afd1f76f8 \
3e2c0b885f7430e02dd6df1f8c626bc7 \
83e4c4337a8dac395b19ebcb8e3136a7 \
7ee7fac47a513e4f7e44c66195ad8051 \
10764f40bd10141d9f12920d7cfa123c \
b92fa50f56a1e06a7f1bf665442d4a73 \
c9fa9187985880eb320b350bd9024510 \
109da42b31a8942bc91555ad6c4ed6a5 \
fe77a3f609b6fd8d5b08f3b2ef14d2ad \
639af0cca65c012e6a028acfb657e417 \
deeafa46cd579476d1e57118f9c3f91e \
cb2673febef851f50e1a5e2eccb32eae \
2462165e077d8a663e36d1fc030d3afe \
2c8eab87a03ec9f3ad09d11774a3cbd0 \
889c49bc56723cfb9866df1cab93a4ce \
b572f0c3d1144e7c35dcdfd4f08913f8 \
b31bf94ffe7e0f2ada93afae1076eaeb \
c6612f34c3ee98ced239da95fbede236 \
d2920a948e00e7c077883cebba898847 \
ffbab2186e43af074b619d6d8bfe3566 \
84a3fa6d10e58bddb269d653a1d1735f \
fd05e11da4cc641616b87a31223645bd \
18fa61f2d92d4df309c67cb3f3197987 \
bcaebb6074616f470c9f80e42406836f \
94b8bf179385ff071bdc33b58bf047c0 \
a8a1c536701e539cdce215fd7f55de9f \
c2fcb0d833f465037c91bfeb3f1cefc8 \
6361a447cdbc285fce46c8a090428167 \
d4c38b7b14686f092747434ec081d8a7 \
6dc52546400cb3a19b5beeb4a87b3063 \
2dc8aacabbc090f8025a4789d4d6d8f0 \
ce6dde2ea2691fdd97632fb8c9b3e042 \
07c75fec267864bcbb800ca7709ceae2 \
57a5575d623bcbc7ba5c033c9f87744f \
7d76a523677de261dda1b65d29a93c4e \
6a32bab57772c3a1146d599b65ffb0cb \
487f06e2ab256c39cdd4a404814532bb \
1de20a0fc1cfdf5e332cbdb2e0899a2b \
20e127104e602f7766746289ffd23c67 \
fbb26834819534a6cf6ec8df4bccff02 \
0ace7498eb81851eeec835b1866eb4ca \
b898807d8111d1d280862868cbd4cd67 \
21b43d5721b3a9c16059acb691f4314d \
9b7ebf6b588afaad70bf48a742973a30 \
73d4dff694f3acab34c217b4f4943a37 \
1428169df4dd87209e7c0645616da82c \
a44fba1024d0f9892cc5a41e9ca5cfdb \
83dd589ed909edec46fa36663d468485 \
853888e375addadf7e85c8499e0745d3 \
cea43537c5f6a3adf886a49814e3ff75 \
fa6cd406107683737b6525dcf3d90f39 \
f4e16ed6fedc75de9647dee3ff4d3967 \
22e95901b912671da26457ac33e36a23 \
cf636206d0c3287ce209551fc5b02d88 \
26b4ac1432c227434bc943817f42872e \
362eebacce3b2c9204fdef6d1c04d757 \
4acc1eadff484a737c93592e15b31f8a \
82d98dc87dc8503400aa095f5aa70f13 \
90253ab52670a0551a533eb78a1f6b10 \
51f0ea5d3f9ba09041383de851062c75 \
40ce77bc7803d0ff8734f6a11c4e8814 \
1688ae2cb59368d0b35c9913ebc06dad \
a1fa70e992507a9d15a30b054b07591a \
45273943465d6fc2a3f8bf282460508a \
1024839cb24a2ec4af860cb73259c43b \
15b1826d931453eef20babb0f1f4fe2d \
d18d362345c4fe512ef67b738b239fb8 \
64d9f46e9ba78f68c30c486be3d8b7df \
bd8c0b43f8eda422cfa6b58cca1a5f5b \
dd290e713c28d2e565d78eedd471ed78 \
ab44b0c93adeb9ee88e1c66555b8e6a7 \
8d8246e06d38a79f77e0d82e088474b6 \
28423beab35a69836d3d5d6bfa24e1e5 \
2e6f3d2a4c7414137fa48dfd73678840 \
ceee1159c41351d05f4cf705490867b3 \
e972ea58ec203bfa6c79c1207852298b \
db96b50050277bf05a3c68534bbb9586 \
b9e37d5fc4ad28b612b78ad37816684d \
09de9d01e7331ff3da11f58be8bef0df \
0498c4a11448bfc35dc7bb2caa64c753 \
110789f2dd21a2ea820ebed976b4b1c2 \
86854324255f07e8f64cc11ef8be3b3c \
510f0324dbaea90d9d3ca2eea5e71a04 \
38cf2b9fa16048f19e0d3b2d73479e50 \
f41cbc66ecf1f5006d0f0a7df2726c73 \
c373eadcbc79dfc0b580d12851add17d \
b04135c0705b10e9866585e1d75e68a3 \
404688aa3e82019927df8a16c7d258d1"
f2797ade0e36f1e5d6be9d11b5076582 \
7244738a73643f06df82069d00393ad7 \
e8732bb9eec91463ea10020fc16991c1 \
3d2bf2e578fe93c538d4f8c5cfddbe9b \
631f9e1bcfe18e3976ef4c893ee13531 \
f3dad0f67aa70c6618c1593bd2086c36 \
085ec81e4ced998bb7f1aea30b7a630e \
e24dfcf625e130a1e6db0ae375a17dd7 \
2fa0c13b386de68baa17168774b1c5fa"
REQUIRES="system76-io-dkms rustup %README%"
MAINTAINER="Erich Ritz"
EMAIL="erich.public@protonmail.com"