2024-03-22 16:56:36 +00:00
|
|
|
cargo-features = ["profile-rustflags"]
|
2022-10-01 16:58:22 +00:00
|
|
|
[package]
|
2024-03-23 16:27:14 +00:00
|
|
|
name = "gupaxx"
|
|
|
|
version = "0.1.0"
|
|
|
|
authors = ["cyrix126 <gupaxx@baermail.fr>"]
|
|
|
|
description = "Fork of Gupax integrating the XMRvsBeast Raffle "
|
|
|
|
documentation = "https://github.com/cyrix126/gupaxx"
|
2022-10-01 16:58:22 +00:00
|
|
|
edition = "2021"
|
|
|
|
|
cargo/tor/p2pool: clean deps, warn macos arti, fix node overflow
Cargo: Cleanup unused dependencies, enable some build optimizations
Tor: Arti doesn't seem to work on macOS
Even a bare Arti+Hyper request doesn't seem to work, so it's
probably not something to do with Gupax. A lot of issues only
seem to popup in a VM (OpenGL, TLS) even though on bare metal
Gupax runs fine, so Tor might work fine on real macOS but I don't
have real macOS to test it. VM macOS can't create a circuit, so,
disable by default and add a warning that it's unstable.
P2Pool: Let selected_index start at 0, and only +1 when printing
to the user, this makes the overflow math when adding/deleting a
lot more simple because selected_index will match the actual index
of the node vector
2022-11-21 22:16:31 +00:00
|
|
|
[profile.release]
|
2023-04-16 16:49:48 +00:00
|
|
|
panic = "abort"
|
2024-03-22 11:36:40 +00:00
|
|
|
lto = "fat"
|
cargo/tor/p2pool: clean deps, warn macos arti, fix node overflow
Cargo: Cleanup unused dependencies, enable some build optimizations
Tor: Arti doesn't seem to work on macOS
Even a bare Arti+Hyper request doesn't seem to work, so it's
probably not something to do with Gupax. A lot of issues only
seem to popup in a VM (OpenGL, TLS) even though on bare metal
Gupax runs fine, so Tor might work fine on real macOS but I don't
have real macOS to test it. VM macOS can't create a circuit, so,
disable by default and add a warning that it's unstable.
P2Pool: Let selected_index start at 0, and only +1 when printing
to the user, this makes the overflow math when adding/deleting a
lot more simple because selected_index will match the actual index
of the node vector
2022-11-21 22:16:31 +00:00
|
|
|
codegen-units = 1
|
2024-03-22 11:36:40 +00:00
|
|
|
incremental = false
|
|
|
|
strip = "symbols"
|
|
|
|
rustflags = ["-Zlocation-detail=none"]
|
cargo/tor/p2pool: clean deps, warn macos arti, fix node overflow
Cargo: Cleanup unused dependencies, enable some build optimizations
Tor: Arti doesn't seem to work on macOS
Even a bare Arti+Hyper request doesn't seem to work, so it's
probably not something to do with Gupax. A lot of issues only
seem to popup in a VM (OpenGL, TLS) even though on bare metal
Gupax runs fine, so Tor might work fine on real macOS but I don't
have real macOS to test it. VM macOS can't create a circuit, so,
disable by default and add a warning that it's unstable.
P2Pool: Let selected_index start at 0, and only +1 when printing
to the user, this makes the overflow math when adding/deleting a
lot more simple because selected_index will match the actual index
of the node vector
2022-11-21 22:16:31 +00:00
|
|
|
|
2023-05-11 20:37:16 +00:00
|
|
|
[profile.dev]
|
|
|
|
opt-level = 1
|
|
|
|
debug = true
|
|
|
|
strip = "none"
|
|
|
|
debug-assertions = true
|
|
|
|
overflow-checks = true
|
|
|
|
incremental = true
|
|
|
|
|
2022-12-18 02:42:30 +00:00
|
|
|
[features]
|
|
|
|
default = []
|
|
|
|
distro = []
|
|
|
|
|
2022-10-01 16:58:22 +00:00
|
|
|
[dependencies]
|
2024-03-24 12:07:52 +00:00
|
|
|
anyhow = "1.0.81"
|
2023-05-30 15:42:16 +00:00
|
|
|
benri = "0.1.12"
|
2024-03-24 12:07:52 +00:00
|
|
|
bytes = "1.6.0"
|
2023-05-30 15:42:16 +00:00
|
|
|
dirs = "5.0.1"
|
2022-12-15 21:23:26 +00:00
|
|
|
#--------------------------------------------------------------------------------
|
2024-02-26 19:55:38 +00:00
|
|
|
egui = "0.26.2"
|
|
|
|
egui_extras = { version = "0.26.2", features = ["image"] }
|
2023-12-28 13:57:29 +00:00
|
|
|
## 2023-12-28: https://github.com/hinto-janai/gupax/issues/68
|
2024-03-18 20:01:36 +00:00
|
|
|
##
|
|
|
|
## 2024-03-18: Both `glow` and `wgpu` seem to crash:
|
|
|
|
## <https://github.com/hinto-janai/gupax/issues/84>
|
|
|
|
## `wgpu` seems to crash on less computers though so...
|
2024-03-18 20:49:58 +00:00
|
|
|
eframe = { version = "0.26.2", features = ["wgpu"] }
|
2023-02-06 17:21:25 +00:00
|
|
|
|
2023-12-28 13:57:29 +00:00
|
|
|
## 2023-02-06: The below gets fixed by using the [wgpu] backend instead of [glow]
|
2023-02-06 22:59:51 +00:00
|
|
|
## It also fixes crashes on CPU-based graphics. Only used for Windows.
|
|
|
|
## Using [wgpu] actually crashes macOS (fixed in 0.20.x though).
|
2023-02-06 17:21:25 +00:00
|
|
|
|
2022-10-29 13:13:00 +00:00
|
|
|
## [external/egui/crates/eframe/src/native/run.rs] line 41: [.with_srgb(true)]
|
|
|
|
## This line causes a [panic!] inside a Windows VM, from a Linux host.
|
|
|
|
## There are many issue threads and PRs to fix it but for now,
|
|
|
|
## this is here for convenience sake when I'm testing.
|
|
|
|
## The only change is [.with_srgb()] is set to [false].
|
2022-11-02 22:18:41 +00:00
|
|
|
#eframe = { path = "external/egui/crates/eframe" }
|
|
|
|
#egui = { path = "external/egui/crates/egui" }
|
|
|
|
#egui_glow = { path = "external/egui/crates/egui_glow"}
|
|
|
|
#egui_extras = { path = "external/egui/crates/egui_extras", features = ["image"] }
|
2022-12-10 20:35:20 +00:00
|
|
|
#--------------------------------------------------------------------------------
|
2024-03-24 12:07:52 +00:00
|
|
|
env_logger = "0.11.3"
|
|
|
|
figment = { version = "0.10.15", features = ["toml"] }
|
2024-03-23 16:04:01 +00:00
|
|
|
hyper = {version="0.14.28", features=["client", "http1"]}
|
2022-10-25 02:58:42 +00:00
|
|
|
hyper-tls = "0.5.0"
|
2024-03-24 12:07:52 +00:00
|
|
|
image = { version = "0.25.0", features = ["png"] }
|
|
|
|
log = "0.4.21"
|
2023-05-30 15:42:16 +00:00
|
|
|
num-format = { version = "0.4.4", default-features = false }
|
2024-02-26 18:38:37 +00:00
|
|
|
once_cell = "1.19.0"
|
2023-05-30 15:42:16 +00:00
|
|
|
portable-pty = "0.8.1"
|
2022-10-15 15:24:02 +00:00
|
|
|
rand = "0.8.5"
|
2024-03-24 12:07:52 +00:00
|
|
|
regex = { version = "1.10.4", default-features = false, features = ["perf"] }
|
|
|
|
rfd = "0.14.1"
|
2024-02-26 18:38:37 +00:00
|
|
|
serde = { version = "1.0.197", features = ["rc", "derive"] }
|
2024-03-17 00:15:08 +00:00
|
|
|
serde_json = "1.0.114"
|
2024-03-24 12:07:52 +00:00
|
|
|
sysinfo = { version = "0.30.7", default-features = false }
|
2022-10-25 02:58:42 +00:00
|
|
|
tls-api = "0.9.0"
|
2024-02-26 18:38:37 +00:00
|
|
|
tokio = { version = "1.36.0", features = ["rt", "time", "macros", "process"] }
|
2024-03-24 12:07:52 +00:00
|
|
|
toml = { version = "0.8.12", features = ["preserve_order"] }
|
|
|
|
walkdir = "2.5.0"
|
2024-02-26 18:38:37 +00:00
|
|
|
zeroize = "1.7.0"
|
|
|
|
strsim = "0.11.0"
|
2023-12-25 14:52:24 +00:00
|
|
|
strip-ansi-escapes = "0.2.0"
|
2024-03-04 11:03:14 +00:00
|
|
|
derive_more = {version="0.99.17", default-features=false, features=["display"]}
|
|
|
|
serde-this-or-that = "0.4.2"
|
2024-03-16 15:41:21 +00:00
|
|
|
readable = "0.16"
|
2024-03-19 14:31:13 +00:00
|
|
|
chrono = {version="0.4.35", default-features=false, features=["clock", "std"]}
|
update: save [Version] to state, use runtime [og: State]
[og: State] is now completely wrapped in an [Arc<Mutex>] so that
when the update is done, it can [.lock()] the CURRENT runtime
settings of the user and save to [gupax.toml] instead of using an
old copy that was given to it at the beginning of the thread.
In practice, this means users can change settings around during
an update and the update finishing and saving to disk won't be
using their old settings, but the current ones. Wrapping all of
[og: State] within in [Arc<Mutex>] might be overkill compared to
message channels but [State] really is just a few [bool]'s, [u*],
and small [String]'s, so it's not much data.
To bypass a deadlock when comparing [og == state] every frame,
[og]'s struct fields get cloned every frame into separate
variables, then it gets compared. This is also pretty stupid, but
again, the data being cloned is so tiny that it doesn't seem to
slow anything down.
2022-11-02 17:58:44 +00:00
|
|
|
# Unix dependencies
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
2024-02-26 18:38:37 +00:00
|
|
|
tar = "0.4.40"
|
cargo/tor/p2pool: clean deps, warn macos arti, fix node overflow
Cargo: Cleanup unused dependencies, enable some build optimizations
Tor: Arti doesn't seem to work on macOS
Even a bare Arti+Hyper request doesn't seem to work, so it's
probably not something to do with Gupax. A lot of issues only
seem to popup in a VM (OpenGL, TLS) even though on bare metal
Gupax runs fine, so Tor might work fine on real macOS but I don't
have real macOS to test it. VM macOS can't create a circuit, so,
disable by default and add a warning that it's unstable.
P2Pool: Let selected_index start at 0, and only +1 when printing
to the user, this makes the overflow math when adding/deleting a
lot more simple because selected_index will match the actual index
of the node vector
2022-11-21 22:16:31 +00:00
|
|
|
flate2 = "1.0"
|
2022-12-10 02:00:33 +00:00
|
|
|
sudo = "0.6.0"
|
2023-06-04 21:38:21 +00:00
|
|
|
# macOS
|
2023-06-01 15:53:03 +00:00
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
|
|
# On apple-darwin targets there is an issue with the native and rustls
|
|
|
|
# tls implementation so this makes it fall back to the openssl variant.
|
|
|
|
#
|
|
|
|
# https://gitlab.torproject.org/tpo/core/arti/-/issues/715
|
|
|
|
tls-api-openssl = "0.9.0"
|
2023-06-04 13:52:04 +00:00
|
|
|
# `arti-client` with `static` doesn't actually
|
|
|
|
# statically link OpenSSL on macOS, both x64 + ARM.
|
|
|
|
# Should probably file a bug report.
|
|
|
|
openssl = { version = "0.10", features = ["vendored"] }
|
|
|
|
# We don't even use `xz` in `flate2` but this gets dynamically
|
|
|
|
# linked as well which causes problems, so statically link it.
|
|
|
|
lzma-sys = { version = "0.1.20", features = ["static"] }
|
2024-03-15 20:40:27 +00:00
|
|
|
[dev-dependencies]
|
|
|
|
egui = {version = "0.26.2", features=["callstack"]}
|
2023-06-01 15:53:03 +00:00
|
|
|
|
|
|
|
[target.'cfg(not(target_os = "macos"))'.dependencies]
|
|
|
|
tls-api-native-tls = "0.9.0"
|
|
|
|
|
update: save [Version] to state, use runtime [og: State]
[og: State] is now completely wrapped in an [Arc<Mutex>] so that
when the update is done, it can [.lock()] the CURRENT runtime
settings of the user and save to [gupax.toml] instead of using an
old copy that was given to it at the beginning of the thread.
In practice, this means users can change settings around during
an update and the update finishing and saving to disk won't be
using their old settings, but the current ones. Wrapping all of
[og: State] within in [Arc<Mutex>] might be overkill compared to
message channels but [State] really is just a few [bool]'s, [u*],
and small [String]'s, so it's not much data.
To bypass a deadlock when comparing [og == state] every frame,
[og]'s struct fields get cloned every frame into separate
variables, then it gets compared. This is also pretty stupid, but
again, the data being cloned is so tiny that it doesn't seem to
slow anything down.
2022-11-02 17:58:44 +00:00
|
|
|
# Windows dependencies
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
2023-05-30 15:42:16 +00:00
|
|
|
zip = "0.6.6"
|
2022-12-10 02:00:33 +00:00
|
|
|
is_elevated = "0.1.2"
|
2022-10-01 16:58:22 +00:00
|
|
|
|
update: save [Version] to state, use runtime [og: State]
[og: State] is now completely wrapped in an [Arc<Mutex>] so that
when the update is done, it can [.lock()] the CURRENT runtime
settings of the user and save to [gupax.toml] instead of using an
old copy that was given to it at the beginning of the thread.
In practice, this means users can change settings around during
an update and the update finishing and saving to disk won't be
using their old settings, but the current ones. Wrapping all of
[og: State] within in [Arc<Mutex>] might be overkill compared to
message channels but [State] really is just a few [bool]'s, [u*],
and small [String]'s, so it's not much data.
To bypass a deadlock when comparing [og == state] every frame,
[og]'s struct fields get cloned every frame into separate
variables, then it gets compared. This is also pretty stupid, but
again, the data being cloned is so tiny that it doesn't seem to
slow anything down.
2022-11-02 17:58:44 +00:00
|
|
|
# For Windows build (icon)
|
2022-10-31 20:08:25 +00:00
|
|
|
[target.'cfg(windows)'.build-dependencies]
|
|
|
|
winres = "0.1.12"
|
2022-12-10 20:35:20 +00:00
|
|
|
static_vcruntime = "2.0"
|
2022-10-01 16:58:22 +00:00
|
|
|
|
update: save [Version] to state, use runtime [og: State]
[og: State] is now completely wrapped in an [Arc<Mutex>] so that
when the update is done, it can [.lock()] the CURRENT runtime
settings of the user and save to [gupax.toml] instead of using an
old copy that was given to it at the beginning of the thread.
In practice, this means users can change settings around during
an update and the update finishing and saving to disk won't be
using their old settings, but the current ones. Wrapping all of
[og: State] within in [Arc<Mutex>] might be overkill compared to
message channels but [State] really is just a few [bool]'s, [u*],
and small [String]'s, so it's not much data.
To bypass a deadlock when comparing [og == state] every frame,
[og]'s struct fields get cloned every frame into separate
variables, then it gets compared. This is also pretty stupid, but
again, the data being cloned is so tiny that it doesn't seem to
slow anything down.
2022-11-02 17:58:44 +00:00
|
|
|
# For macOS build (cargo-bundle)
|
2022-10-31 20:08:25 +00:00
|
|
|
[package.metadata.bundle]
|
2024-03-23 16:27:14 +00:00
|
|
|
name = "Gupaxx"
|
|
|
|
identifier = "com.github.cyrix126.gupaxx"
|
2022-11-02 22:18:41 +00:00
|
|
|
icon = ["images/icons/icon@2x.png"]
|
2022-12-22 16:03:38 +00:00
|
|
|
category = "public.app-category.utilities"
|