mirror of
https://github.com/Cyrix126/gupaxx.git
synced 2024-11-16 15:27:46 +00:00
log to info as default to prevent too large file size
This commit is contained in:
commit
154bbad6be
45 changed files with 3697 additions and 9566 deletions
16
.github/workflows/ci.yml
vendored
16
.github/workflows/ci.yml
vendored
|
@ -54,12 +54,22 @@ jobs:
|
||||||
cargo bundle --release --target aarch64-apple-darwin
|
cargo bundle --release --target aarch64-apple-darwin
|
||||||
mv target/release/bundle/osx/Gupaxx.app Gupaxx-macos-x64.app
|
mv target/release/bundle/osx/Gupaxx.app Gupaxx-macos-x64.app
|
||||||
mv target/aarch64-apple-darwin/release/bundle/osx/Gupaxx.app Gupaxx-macos-arm64.app
|
mv target/aarch64-apple-darwin/release/bundle/osx/Gupaxx.app Gupaxx-macos-arm64.app
|
||||||
tar -cf macos.tar Gupaxx-macos-arm64.app Gupaxx-macos-x64.app
|
cargo bundle --release --features=bundle
|
||||||
|
cargo bundle --release --target aarch64-apple-darwin --features=bundle
|
||||||
|
mv target/release/bundle/osx/Gupaxx.app Gupaxx-macos-x64.app_b
|
||||||
|
mv target/aarch64-apple-darwin/release/bundle/osx/Gupaxx.app Gupaxx-macos-arm64.app_b
|
||||||
|
tar -cf macos.tar Gupaxx-macos-arm64.app Gupaxx-macos-x64.app Gupaxx-macos-arm64.app_b Gupaxx-macos-x64.app_b
|
||||||
elif [ "$RUNNER_OS" == "Linux" ]; then
|
elif [ "$RUNNER_OS" == "Linux" ]; then
|
||||||
cargo build --release --target x86_64-unknown-linux-gnu
|
cargo build --release --target x86_64-unknown-linux-gnu
|
||||||
mv target/x86_64-unknown-linux-gnu/release/gupaxx .
|
mv target/x86_64-unknown-linux-gnu/release/gupaxx .
|
||||||
tar -cf linux.tar gupaxx
|
cargo build --release --target x86_64-unknown-linux-gnu --features=bundle
|
||||||
|
mv target/x86_64-unknown-linux-gnu/release/gupaxx gupaxx_b
|
||||||
|
tar -cf linux.tar gupaxx gupaxx_b
|
||||||
cargo build --release --target x86_64-pc-windows-gnu
|
cargo build --release --target x86_64-pc-windows-gnu
|
||||||
|
mv target/x86_64-pc-windows-gnu/release/gupaxx.exe .
|
||||||
|
cargo build --release --target x86_64-pc-windows-gnu --features=bundle
|
||||||
|
mv target/x86_64-pc-windows-gnu/release/gupaxx.exe gupaxx_b.exe
|
||||||
|
tar -cf windows.tar gupaxx.exe gupaxx_b.exe
|
||||||
fi
|
fi
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
|
@ -68,7 +78,7 @@ jobs:
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: windows
|
name: windows
|
||||||
path: target/x86_64-pc-windows-gnu/release/gupaxx.exe
|
path: windows.tar
|
||||||
|
|
||||||
- name: Archive
|
- name: Archive
|
||||||
if: ${{ runner.os == 'macOS' }}
|
if: ${{ runner.os == 'macOS' }}
|
||||||
|
|
|
@ -29,3 +29,14 @@ Status of process for Xmrig use for some information an image of data when the p
|
||||||
The node of xmrig in upstream can not change without a restart of the process.In this fork, the node used by xmrig needs to be updated without restart (using the config HTTP API of xmrig).
|
The node of xmrig in upstream can not change without a restart of the process.In this fork, the node used by xmrig needs to be updated without restart (using the config HTTP API of xmrig).
|
||||||
So Gupaxx need to refresh the value of status tab submenu process for xmrig where before the values could not change without a restart of the process.
|
So Gupaxx need to refresh the value of status tab submenu process for xmrig where before the values could not change without a restart of the process.
|
||||||
The field node from ImgXmrig needs to be moved to PubXvbApi. This value must be updated by xmrig at start and by XvB process at runtime.
|
The field node from ImgXmrig needs to be moved to PubXvbApi. This value must be updated by xmrig at start and by XvB process at runtime.
|
||||||
|
|
||||||
|
## Updates
|
||||||
|
|
||||||
|
A new option in Gupaxx tab advanced will enable bundled updates.
|
||||||
|
The binary included of gupaxx will have default value for bundled updates depending if it is coming from standalone or bundle release.
|
||||||
|
|
||||||
|
Updates from Gupaxx will do the following differently from upstream:
|
||||||
|
- check if using bundled or standalone with state. Update only Gupaxx binary if the latter or xmrig and p2pool from bundle version if the former.
|
||||||
|
- prevent user to run updates twice without restart.
|
||||||
|
- ask the user to restart Gupaxx
|
||||||
|
- do not verify if file p2pool or xmrig exist. (so that the update can create them).
|
||||||
|
|
32
CHANGELOG.md
32
CHANGELOG.md
|
@ -1,3 +1,35 @@
|
||||||
|
# v1.1.0
|
||||||
|
Stable release, bugfixes and new features.
|
||||||
|
|
||||||
|
## Changes
|
||||||
|
### UI
|
||||||
|
- Update xmrig and p2pool only if bundle button is checked.
|
||||||
|
- Default value for bundle button depends of bundle or standalone version.
|
||||||
|
- Ask user to restart Gupaxx after updating.
|
||||||
|
- Prevent user to update twice without restart.
|
||||||
|
### Internal
|
||||||
|
- Bump deps
|
||||||
|
- Update CI to produce different Gupaxx binary for standalone and bundle version.
|
||||||
|
- Update tools release to include different default value depending of standalone and bundle version.
|
||||||
|
- Use bundled XMRig and P2Pool of Gupaxx instead of upstream version.
|
||||||
|
- Update test
|
||||||
|
### Doc
|
||||||
|
- Update DIFFERENCES and ARCHITECTURE to reflect updates differences.
|
||||||
|
## Fixes
|
||||||
|
- fix temporary directories of updates not deleted introduced in fork
|
||||||
|
- fix https://github.com/Cyrix126/gupaxx/issues/3
|
||||||
|
- fix https://github.com/Cyrix126/gupaxx/issues/4
|
||||||
|
- fix https://github.com/Cyrix126/gupaxx/issues/5
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
### Do not use built in updates to upgrade to this version
|
||||||
|
This update bump the 1.x.0 number, which would mean breaking changes. However, it is only because updating previously from Gupaxx (in =<1.0.0) without manually downloading from github release would upgrade P2Pool and XMRig from upstream, which is a behaviour that has been modified in this release.
|
||||||
|
No configuration file change is needed, just update from github for this release.
|
||||||
|
|
||||||
|
## Bundled Versions
|
||||||
|
* [`P2Pool v3.10`](https://github.com/SChernykh/p2pool/releases/tag/v3.10)
|
||||||
|
* [`XMRig v6.21.1`](https://github.com/xmrig/xmrig/releases/tag/v6.21.1)
|
||||||
|
|
||||||
# v1.0.0
|
# v1.0.0
|
||||||
Stable release
|
Stable release
|
||||||
|
|
||||||
|
|
5927
Cargo.lock
generated
5927
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
29
Cargo.toml
29
Cargo.toml
|
@ -1,7 +1,7 @@
|
||||||
# cargo-features = ["profile-rustflags"]
|
# cargo-features = ["profile-rustflags"]
|
||||||
[package]
|
[package]
|
||||||
name = "gupaxx"
|
name = "gupaxx"
|
||||||
version = "1.0.0"
|
version = "1.1.0"
|
||||||
authors = ["cyrix126 <gupaxx@baermail.fr>"]
|
authors = ["cyrix126 <gupaxx@baermail.fr>"]
|
||||||
description = "Fork of Gupax integrating the XMRvsBeast Raffle "
|
description = "Fork of Gupax integrating the XMRvsBeast Raffle "
|
||||||
documentation = "https://github.com/cyrix126/gupaxx"
|
documentation = "https://github.com/cyrix126/gupaxx"
|
||||||
|
@ -25,10 +25,11 @@ incremental = true
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
|
bundle = []
|
||||||
distro = []
|
distro = []
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0.81"
|
anyhow = "1.0.85"
|
||||||
benri = "0.1.12"
|
benri = "0.1.12"
|
||||||
bytes = "1.6.0"
|
bytes = "1.6.0"
|
||||||
dirs = "5.0.1"
|
dirs = "5.0.1"
|
||||||
|
@ -48,8 +49,8 @@ egui_extras = { version = "0.27.2", features = ["image"] }
|
||||||
#--------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------
|
||||||
flexi_logger = "0.28.0"
|
flexi_logger = "0.28.0"
|
||||||
env_logger = "0.11.3"
|
env_logger = "0.11.3"
|
||||||
figment = { version = "0.10.15", features = ["toml"] }
|
figment = { version = "0.10.19", features = ["toml"] }
|
||||||
reqwest = {version = "0.12.3", default-features=false, features=["json", "rustls-tls"]}
|
reqwest = {version = "0.12.4", default-features=false, features=["json", "rustls-tls"]}
|
||||||
image = { version = "0.25.1", features = ["png"] }
|
image = { version = "0.25.1", features = ["png"] }
|
||||||
log = "0.4.21"
|
log = "0.4.21"
|
||||||
num-format = { version = "0.4.4", default-features = false }
|
num-format = { version = "0.4.4", default-features = false }
|
||||||
|
@ -58,12 +59,12 @@ portable-pty = "0.8.1"
|
||||||
rand = "0.8.5"
|
rand = "0.8.5"
|
||||||
regex = { version = "1.10.4", default-features = false, features = ["perf"] }
|
regex = { version = "1.10.4", default-features = false, features = ["perf"] }
|
||||||
rfd = "0.14.1"
|
rfd = "0.14.1"
|
||||||
serde = { version = "1.0.197", features = ["rc", "derive"] }
|
serde = { version = "1.0.202", features = ["rc", "derive"] }
|
||||||
serde_json = "1.0.115"
|
serde_json = "1.0.117"
|
||||||
sysinfo = { version = "0.30.8", default-features = false }
|
sysinfo = { version = "0.30.12", default-features = false }
|
||||||
# tls-api = "0.9.0"
|
# tls-api = "0.9.0"
|
||||||
tokio = { version = "1.37.0", features = ["rt", "time", "macros", "process", "rt-multi-thread"] }
|
tokio = { version = "1.37.0", features = ["rt", "time", "macros", "process", "rt-multi-thread"] }
|
||||||
toml = { version = "0.8.12", features = ["preserve_order"] }
|
toml = { version = "0.8.13", features = ["preserve_order"] }
|
||||||
walkdir = "2.5.0"
|
walkdir = "2.5.0"
|
||||||
zeroize = "1.7.0"
|
zeroize = "1.7.0"
|
||||||
strsim = "0.11.1"
|
strsim = "0.11.1"
|
||||||
|
@ -71,9 +72,10 @@ strip-ansi-escapes = "0.2.0"
|
||||||
derive_more = {version="0.99.17", default-features=false, features=["display"]}
|
derive_more = {version="0.99.17", default-features=false, features=["display"]}
|
||||||
serde-this-or-that = "0.4.2"
|
serde-this-or-that = "0.4.2"
|
||||||
readable = "0.16"
|
readable = "0.16"
|
||||||
chrono = {version="0.4.37", default-features=false, features=["clock", "std"]}
|
chrono = {version="0.4.38", default-features=false, features=["clock", "std"]}
|
||||||
enclose = "1.1.8"
|
enclose = "1.1.8"
|
||||||
bounded-vec-deque = {version="0.1.1", default-features=false}
|
bounded-vec-deque = {version="0.1.1", default-features=false}
|
||||||
|
cfg-if = "1.0"
|
||||||
# Unix dependencies
|
# Unix dependencies
|
||||||
[target.'cfg(unix)'.dependencies]
|
[target.'cfg(unix)'.dependencies]
|
||||||
eframe = { version = "0.27.2", features = ["wgpu"] }
|
eframe = { version = "0.27.2", features = ["wgpu"] }
|
||||||
|
@ -94,7 +96,7 @@ eframe = { version = "0.27.2", features = ["wgpu"] }
|
||||||
# openssl = { version = "0.10", features = ["vendored"] }
|
# openssl = { version = "0.10", features = ["vendored"] }
|
||||||
# We don't even use `xz` in `flate2` but this gets dynamically
|
# We don't even use `xz` in `flate2` but this gets dynamically
|
||||||
# linked as well which causes problems, so statically link it.
|
# linked as well which causes problems, so statically link it.
|
||||||
lzma-sys = { version = "0.1.20", features = ["static"] }
|
lzma-sys = { version = "0.1", features = ["static"] }
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
egui = {version = "0.27.2", features=["callstack"]}
|
egui = {version = "0.27.2", features=["callstack"]}
|
||||||
|
|
||||||
|
@ -104,8 +106,11 @@ egui = {version = "0.27.2", features=["callstack"]}
|
||||||
# Windows dependencies
|
# Windows dependencies
|
||||||
[target.'cfg(windows)'.dependencies]
|
[target.'cfg(windows)'.dependencies]
|
||||||
# glow start on windows but not wgpu
|
# glow start on windows but not wgpu
|
||||||
eframe = { version = "0.27.2", features = ["glow"] }
|
eframe = { version = "0.27.2", features = ["wgpu"] }
|
||||||
zip = "0.6.6"
|
# need the same version that eframe is using with egui_wgpu
|
||||||
|
# feature angle to enable support for old cpu on Windows
|
||||||
|
wgpu = {version = "0.19.4", features=["angle"]}
|
||||||
|
zip = "1.3.0"
|
||||||
is_elevated = "0.1.2"
|
is_elevated = "0.1.2"
|
||||||
|
|
||||||
# For Windows build (icon)
|
# For Windows build (icon)
|
||||||
|
|
|
@ -23,6 +23,10 @@ The rendering of Tabs has been modified so that the minimum stated size of the w
|
||||||
|
|
||||||
The rendering of the benchmark table and of console outputs were calculating every line at the same time. Now it only renders what you see. It is a significant improvement for your processor, and you can feel the difference if it is not very powerful.
|
The rendering of the benchmark table and of console outputs were calculating every line at the same time. Now it only renders what you see. It is a significant improvement for your processor, and you can feel the difference if it is not very powerful.
|
||||||
|
|
||||||
|
Updates from Gupaxx does not retrieve xmrig and p2pool from upstream anymore, but use versions in the bundled version. This modification prevent bad surprise (see #3).
|
||||||
|
|
||||||
|
It also allows advanced users to use your their own version of p2pool and xmrig.The standalone version of Gupaxx will not replace them.
|
||||||
|
|
||||||
## Security
|
## Security
|
||||||
|
|
||||||
With the upgrade of dependencies, cargo audit show no warnings instead of 5 vulnerabilities and 4 allowed warnings for Gupax.
|
With the upgrade of dependencies, cargo audit show no warnings instead of 5 vulnerabilities and 4 allowed warnings for Gupax.
|
||||||
|
|
68
IDEAS.md
Normal file
68
IDEAS.md
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
# IDEAS for the future of Gupaxx
|
||||||
|
|
||||||
|
|
||||||
|
**Theses are only ideas, everything here is still to be decided and only thoughts for now.**
|
||||||
|
Some ideas could be done in a matter of hours, some could take months.
|
||||||
|
|
||||||
|
## More Decentralized
|
||||||
|
### Integrate a Monero Node
|
||||||
|
If we want Gupaxx to help user mine in the most decentralized way, we should offer them to run a monero node.
|
||||||
|
This would be optional and would check if the requirement are fulfilled before enabling the button to do so.
|
||||||
|
### Synchronize source code repository on p2p network
|
||||||
|
Github is proprietary. If Gupaxx aims to be free, it should not be only available on this platform and we should explore options to get github free.
|
||||||
|
We can use [Radicle](https://radicle.xyz/) to get Gupaxx on a p2p collaboration stack.
|
||||||
|
The code, issues and PR could be synchronized with Github.
|
||||||
|
|
||||||
|
## More User friendly
|
||||||
|
### Website
|
||||||
|
Build a website like [gupax.io](https://gupax.io) to have a more user frendly presentation and installation method.
|
||||||
|
Having a website, we can detect the architecture and os of the visitor and give him the right archive to download.
|
||||||
|
### Generated wallet
|
||||||
|
If Gupaxx could create a wallet and put the primary address in p2pool tab automaticcly, it would remove a manual step for the user.
|
||||||
|
It could be an option to ask at first start.
|
||||||
|
The user could access this wallet on the same computer with the official GUI wallet.
|
||||||
|
### Auto register to XvB
|
||||||
|
If Gupaxx could register the user automaticcly to the raffle, it would remove a manual step for the user.
|
||||||
|
It could be an option to ask at first start.
|
||||||
|
### Setup Guide
|
||||||
|
At first start, a guide could ask the user what it intends to do with Gupaxx (create node, create wallet, use xmrig-proxy, participate in raffle...) and do the setup for him and show him what it must do manually. An option to skip this guide would be present for advanced users.
|
||||||
|
|
||||||
|
## Supporting more environnements
|
||||||
|
### Packaging
|
||||||
|
Add repository/AUR for Gupaxx and a status of packaging distro/version on the README
|
||||||
|
### Minimum requirement
|
||||||
|
Add on README a table with minimum hardware/software requirements.
|
||||||
|
### Add more target
|
||||||
|
Gupaxx could add support for linux arm64 since p2pool and xmrig can compile on this target.
|
||||||
|
|
||||||
|
## More Powerful
|
||||||
|
### Optimization for xmrig
|
||||||
|
#### Add automatic options
|
||||||
|
On linux, we can activate 1GB pages after detecting cpu flags. We can also add cpu affinity option.
|
||||||
|
#### Manual optimizations
|
||||||
|
On the XMRig tab, inform users about manual optimizations that Gupaxx can't control. For example, disabling hyper-threading in BIOS is recommended.
|
||||||
|
### CLI for Algorithm
|
||||||
|
For advanced users, a CLI could be made to use the algorithm without a GUI
|
||||||
|
It would allow the user to do automation and installation on headless environment and save a few HR from the Gupaxx process.
|
||||||
|
This CLI would still offer a way to the user to pass options to xmrig and to start his p2pool server or to use another one already running.
|
||||||
|
#### Integrate XMRig-Proxy
|
||||||
|
The algorithm of distribution of HR can't control HR outside of his instance.
|
||||||
|
It must estimate external HR, which can be approximative.
|
||||||
|
If a user control multiples miners, it could connect all of them to a xmrig-proxy instance.
|
||||||
|
Gupaxx could offer this xmrig-instance and control it like it was a normal xmrig instance.
|
||||||
|
OR
|
||||||
|
#### Watch Stratum Data instead of estimate.
|
||||||
|
Right now, the algorithm estimate the eHR with the estimation made by the p2pool instance which is calculating from passed shares.
|
||||||
|
The algorithm could instead watch the stats from the stratum server, which is exact but would take into account only miners which are pointed to it.
|
||||||
|
Miners using the cli xmrig could point their miners to the p2pool instance of Gupaxx, or have an indentical option if they are using the CLI of the algorithm.
|
||||||
|
The algorithm would still check the estimation made by the p2pool instane of Gupaxx and warn the user if it seems there is too much difference between the data of the stratum server and the one of p2pool. It could prevent the user to forget to configure a miner to the stratum p2pool.
|
||||||
|
|
||||||
|
|
||||||
|
## Trust-less
|
||||||
|
### Reproducible builds
|
||||||
|
To remove necessary trust, binairies released should have the same checksum if recompiled without code change.
|
||||||
|
See [this](https://reproducible-builds.org).
|
||||||
|
### Release changes notes preview
|
||||||
|
Show the summuray of what will change between releases before updating to newer release.
|
||||||
|
### Donation transparency
|
||||||
|
So that user can see how much is given to this project and make their own opinion of if enough donations have been given or not, the history of donation should be made visible with the viewkey available.
|
|
@ -8,6 +8,12 @@ This fork has a stable release. It is intended for end users and offers a friend
|
||||||
|
|
||||||
Gupaxx is a fork of [**Gupax**](https://github.com/hinto-janai/gupax) integrating the [XMRvsBeast Raffle](https://xmrvsbeast.com), it is also a maintained software. It is made to make in the most easy way possible mining on P2Pool while optionally participating (but you will want to :wink:) in the XMRvsBeast raffle.
|
Gupaxx is a fork of [**Gupax**](https://github.com/hinto-janai/gupax) integrating the [XMRvsBeast Raffle](https://xmrvsbeast.com), it is also a maintained software. It is made to make in the most easy way possible mining on P2Pool while optionally participating (but you will want to :wink:) in the XMRvsBeast raffle.
|
||||||
|
|
||||||
|
## System requirements
|
||||||
|
|
||||||
|
Gupax may not run on machines with:
|
||||||
|
- a deprecated OS (Windows 7, Ubuntu 18.04, etc)
|
||||||
|
- CPU whithout support for OpenGL 3.1 (<2010)
|
||||||
|
|
||||||
[![CI](https://github.com/cyrix126/gupaxx/actions/workflows/ci.yml/badge.svg)](https://github.com/cyrix126/gupaxx/actions/workflows/ci.yml)
|
[![CI](https://github.com/cyrix126/gupaxx/actions/workflows/ci.yml/badge.svg)](https://github.com/cyrix126/gupaxx/actions/workflows/ci.yml)
|
||||||
|
|
||||||
## Contents
|
## Contents
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
- [x] adapt README for XvB
|
- [x] adapt README for XvB
|
||||||
- [x] beta release
|
- [x] beta release
|
||||||
- [x] stable release
|
- [x] stable release
|
||||||
- [ ] video tutorial to set up XvB Tab
|
- [x] video tutorial to set up XvB Tab
|
||||||
- [x] adapt doc for new code
|
- [x] adapt doc for new code
|
||||||
- [x] cargo package metadata
|
- [x] cargo package metadata
|
||||||
- [x] pgp signatures
|
- [x] pgp signatures
|
||||||
|
|
6090
assets/cpu.json
6090
assets/cpu.json
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,4 @@
|
||||||
[toolchain]
|
[toolchain]
|
||||||
channel = "stable"
|
channel = "nightly-2024-04-08"
|
||||||
components = [ "rustfmt", "rustc-dev", "cargo", "clippy", "rust-analyzer"]
|
components = [ "rustfmt", "rustc-dev", "cargo", "clippy", "rustc-codegen-cranelift-preview", "rust-analyzer"]
|
||||||
target = ["x86_64-unknown-linux-gnu", "aarch64-apple-darwin", "x86_64-apple-darwin","x86_64-pc-windows-gnu"]
|
target = ["x86_64-unknown-linux-gnu", "aarch64-apple-darwin", "x86_64-apple-darwin","x86_64-pc-windows-gnu"]
|
||||||
|
|
|
@ -60,6 +60,7 @@ pub mod resize;
|
||||||
// The state of the outer main [App].
|
// The state of the outer main [App].
|
||||||
// See the [State] struct in [state.rs] for the
|
// See the [State] struct in [state.rs] for the
|
||||||
// actual inner state of the tab settings.
|
// actual inner state of the tab settings.
|
||||||
|
#[allow(dead_code)]
|
||||||
pub struct App {
|
pub struct App {
|
||||||
// Misc state
|
// Misc state
|
||||||
pub tab: Tab, // What tab are we on?
|
pub tab: Tab, // What tab are we on?
|
||||||
|
|
|
@ -49,7 +49,7 @@ impl Gupax {
|
||||||
ui.add_sized([width, button], Button::new("Updates are disabled"))
|
ui.add_sized([width, button], Button::new("Updates are disabled"))
|
||||||
.on_disabled_hover_text(DISTRO_NO_UPDATE);
|
.on_disabled_hover_text(DISTRO_NO_UPDATE);
|
||||||
#[cfg(not(feature = "distro"))]
|
#[cfg(not(feature = "distro"))]
|
||||||
ui.set_enabled(!updating);
|
ui.set_enabled(!updating && *lock!(restart) == Restart::No);
|
||||||
#[cfg(not(feature = "distro"))]
|
#[cfg(not(feature = "distro"))]
|
||||||
if ui
|
if ui
|
||||||
.add_sized([width, button], Button::new("Check for updates"))
|
.add_sized([width, button], Button::new("Check for updates"))
|
||||||
|
@ -78,7 +78,7 @@ impl Gupax {
|
||||||
debug!("Gupaxx Tab | Rendering bool buttons");
|
debug!("Gupaxx Tab | Rendering bool buttons");
|
||||||
ui.horizontal(|ui| {
|
ui.horizontal(|ui| {
|
||||||
ui.group(|ui| {
|
ui.group(|ui| {
|
||||||
let width = (size.x - SPACE * 12.0) / 6.0;
|
let width = (size.x - SPACE * 15.0) / 7.0;
|
||||||
let height = if self.simple {
|
let height = if self.simple {
|
||||||
size.y / 10.0
|
size.y / 10.0
|
||||||
} else {
|
} else {
|
||||||
|
@ -89,6 +89,9 @@ impl Gupax {
|
||||||
ui.add_sized(size, Checkbox::new(&mut self.auto_update, "Auto-Update"))
|
ui.add_sized(size, Checkbox::new(&mut self.auto_update, "Auto-Update"))
|
||||||
.on_hover_text(GUPAX_AUTO_UPDATE);
|
.on_hover_text(GUPAX_AUTO_UPDATE);
|
||||||
ui.separator();
|
ui.separator();
|
||||||
|
ui.add_sized(size, Checkbox::new(&mut self.bundled, "Bundle"))
|
||||||
|
.on_hover_text(GUPAX_BUNDLED_UPDATE);
|
||||||
|
ui.separator();
|
||||||
ui.add_sized(size, Checkbox::new(&mut self.auto_p2pool, "Auto-P2Pool"))
|
ui.add_sized(size, Checkbox::new(&mut self.auto_p2pool, "Auto-P2Pool"))
|
||||||
.on_hover_text(GUPAX_AUTO_P2POOL);
|
.on_hover_text(GUPAX_AUTO_P2POOL);
|
||||||
ui.separator();
|
ui.separator();
|
||||||
|
@ -100,13 +103,13 @@ impl Gupax {
|
||||||
ui.separator();
|
ui.separator();
|
||||||
ui.add_sized(
|
ui.add_sized(
|
||||||
size,
|
size,
|
||||||
Checkbox::new(&mut self.ask_before_quit, "Ask before quit"),
|
Checkbox::new(&mut self.ask_before_quit, "Confirm quit"),
|
||||||
)
|
)
|
||||||
.on_hover_text(GUPAX_ASK_BEFORE_QUIT);
|
.on_hover_text(GUPAX_ASK_BEFORE_QUIT);
|
||||||
ui.separator();
|
ui.separator();
|
||||||
ui.add_sized(
|
ui.add_sized(
|
||||||
size,
|
size,
|
||||||
Checkbox::new(&mut self.save_before_quit, "Save before quit"),
|
Checkbox::new(&mut self.save_before_quit, "Save on quit"),
|
||||||
)
|
)
|
||||||
.on_hover_text(GUPAX_SAVE_BEFORE_QUIT);
|
.on_hover_text(GUPAX_SAVE_BEFORE_QUIT);
|
||||||
});
|
});
|
||||||
|
|
|
@ -15,13 +15,12 @@
|
||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
use crate::components::update::Pkg;
|
use crate::components::update::get_user_agent;
|
||||||
use crate::{constants::*, macros::*};
|
use crate::{constants::*, macros::*};
|
||||||
use egui::Color32;
|
use egui::Color32;
|
||||||
use log::*;
|
use log::*;
|
||||||
use rand::{thread_rng, Rng};
|
use rand::{thread_rng, Rng};
|
||||||
use reqwest::{Client, RequestBuilder};
|
use reqwest::{Client, RequestBuilder};
|
||||||
|
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
use std::time::{Duration, Instant};
|
use std::time::{Duration, Instant};
|
||||||
|
|
||||||
|
@ -68,7 +67,7 @@ const REMOTE_NODE_MAX_CHARS: usize = {
|
||||||
assert!(len != 0);
|
assert!(len != 0);
|
||||||
len
|
len
|
||||||
};
|
};
|
||||||
|
#[allow(dead_code)]
|
||||||
pub struct RemoteNode {
|
pub struct RemoteNode {
|
||||||
pub ip: &'static str,
|
pub ip: &'static str,
|
||||||
pub location: &'static str,
|
pub location: &'static str,
|
||||||
|
@ -279,6 +278,7 @@ impl NodeData {
|
||||||
//
|
//
|
||||||
// This struct leaves out most fields on purpose,
|
// This struct leaves out most fields on purpose,
|
||||||
// we only need a few to verify the node is ok.
|
// we only need a few to verify the node is ok.
|
||||||
|
#[allow(dead_code)] // allow dead code because Deserialize doesn't use all the fields in this program
|
||||||
#[derive(Debug, serde::Deserialize)]
|
#[derive(Debug, serde::Deserialize)]
|
||||||
pub struct GetInfo<'a> {
|
pub struct GetInfo<'a> {
|
||||||
pub id: &'a str,
|
pub id: &'a str,
|
||||||
|
@ -384,7 +384,7 @@ impl Ping {
|
||||||
let client = Client::new();
|
let client = Client::new();
|
||||||
|
|
||||||
// Random User Agent
|
// Random User Agent
|
||||||
let rand_user_agent = Pkg::get_user_agent();
|
let rand_user_agent = get_user_agent();
|
||||||
// Handle vector
|
// Handle vector
|
||||||
let mut handles = Vec::with_capacity(REMOTE_NODE_LENGTH);
|
let mut handles = Vec::with_capacity(REMOTE_NODE_LENGTH);
|
||||||
let node_vec = arc_mut!(Vec::with_capacity(REMOTE_NODE_LENGTH));
|
let node_vec = arc_mut!(Vec::with_capacity(REMOTE_NODE_LENGTH));
|
||||||
|
@ -486,8 +486,7 @@ mod test {
|
||||||
use crate::components::node::{
|
use crate::components::node::{
|
||||||
format_ip, REMOTE_NODES, REMOTE_NODE_LENGTH, REMOTE_NODE_MAX_CHARS,
|
format_ip, REMOTE_NODES, REMOTE_NODE_LENGTH, REMOTE_NODE_MAX_CHARS,
|
||||||
};
|
};
|
||||||
use crate::components::update::Pkg;
|
use crate::components::update::get_user_agent;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn validate_node_ips() {
|
fn validate_node_ips() {
|
||||||
for (ip, location, rpc, zmq) in REMOTE_NODES {
|
for (ip, location, rpc, zmq) in REMOTE_NODES {
|
||||||
|
@ -524,7 +523,7 @@ mod test {
|
||||||
let client = Client::new();
|
let client = Client::new();
|
||||||
|
|
||||||
// Random User Agent
|
// Random User Agent
|
||||||
let rand_user_agent = Pkg::get_user_agent();
|
let rand_user_agent = get_user_agent();
|
||||||
|
|
||||||
// Only fail this test if >50% of nodes fail.
|
// Only fail this test if >50% of nodes fail.
|
||||||
const HALF_REMOTE_NODES: usize = REMOTE_NODE_LENGTH / 2;
|
const HALF_REMOTE_NODES: usize = REMOTE_NODE_LENGTH / 2;
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -191,6 +191,7 @@ pub struct Gupax {
|
||||||
pub selected_scale: f32,
|
pub selected_scale: f32,
|
||||||
pub tab: Tab,
|
pub tab: Tab,
|
||||||
pub ratio: Ratio,
|
pub ratio: Ratio,
|
||||||
|
pub bundled: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Eq, PartialEq, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Eq, PartialEq, Debug, Deserialize, Serialize)]
|
||||||
|
@ -288,6 +289,10 @@ impl Default for Gupax {
|
||||||
selected_scale: APP_DEFAULT_SCALE,
|
selected_scale: APP_DEFAULT_SCALE,
|
||||||
ratio: Ratio::Width,
|
ratio: Ratio::Width,
|
||||||
tab: Tab::Xvb,
|
tab: Tab::Xvb,
|
||||||
|
#[cfg(feature = "bundle")]
|
||||||
|
bundled: true,
|
||||||
|
#[cfg(not(feature = "bundle"))]
|
||||||
|
bundled: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,7 @@ mod test {
|
||||||
selected_scale = 0.0
|
selected_scale = 0.0
|
||||||
tab = "About"
|
tab = "About"
|
||||||
ratio = "Width"
|
ratio = "Width"
|
||||||
|
bundled = false
|
||||||
|
|
||||||
[status]
|
[status]
|
||||||
submenu = "P2pool"
|
submenu = "P2pool"
|
||||||
|
|
|
@ -125,6 +125,7 @@ impl Default for Sys {
|
||||||
//---------------------------------------------------------------------------------------------------- [Process] Struct
|
//---------------------------------------------------------------------------------------------------- [Process] Struct
|
||||||
// This holds all the state of a (child) process.
|
// This holds all the state of a (child) process.
|
||||||
// The main GUI thread will use this to display console text, online state, etc.
|
// The main GUI thread will use this to display console text, online state, etc.
|
||||||
|
#[allow(dead_code)]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct Process {
|
pub struct Process {
|
||||||
pub name: ProcessName, // P2Pool or XMRig?
|
pub name: ProcessName, // P2Pool or XMRig?
|
||||||
|
|
|
@ -666,6 +666,7 @@ impl ImgXmrig {
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------- Public XMRig API
|
//---------------------------------------------------------------------------------------------------- Public XMRig API
|
||||||
|
#[allow(dead_code)]
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct PubXmrigApi {
|
pub struct PubXmrigApi {
|
||||||
pub output: String,
|
pub output: String,
|
||||||
|
|
|
@ -361,10 +361,11 @@ impl Helper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------------------------------- Public XvB API
|
//---------------------------------------------------------------------------------------------------- Public XvB API
|
||||||
|
|
||||||
#[derive(Debug, Clone, Default)]
|
#[derive(Debug, Clone, Default)]
|
||||||
pub struct PubXvbApi {
|
pub struct PubXvbApi {
|
||||||
pub output: String,
|
pub output: String,
|
||||||
pub uptime: u64,
|
pub _uptime: u64,
|
||||||
pub xvb_sent_last_hour_samples: SamplesAverageHour,
|
pub xvb_sent_last_hour_samples: SamplesAverageHour,
|
||||||
pub p2pool_sent_last_hour_samples: SamplesAverageHour,
|
pub p2pool_sent_last_hour_samples: SamplesAverageHour,
|
||||||
pub stats_pub: XvbPubStats,
|
pub stats_pub: XvbPubStats,
|
||||||
|
|
|
@ -17,6 +17,7 @@ use crate::{
|
||||||
|
|
||||||
use super::{rounds::XvbRound, PubXvbApi};
|
use super::{rounds::XvbRound, PubXvbApi};
|
||||||
|
|
||||||
|
#[allow(dead_code)] // because deserialize doesn't use all the fields
|
||||||
#[derive(Debug, Clone, Default, Deserialize)]
|
#[derive(Debug, Clone, Default, Deserialize)]
|
||||||
pub struct XvbPubStats {
|
pub struct XvbPubStats {
|
||||||
pub time_remain: u32, // remaining time of round in minutes
|
pub time_remain: u32, // remaining time of round in minutes
|
||||||
|
|
|
@ -84,7 +84,7 @@ pub fn init_logger(now: Instant) {
|
||||||
_ => LevelFilter::Info,
|
_ => LevelFilter::Info,
|
||||||
};
|
};
|
||||||
std::env::set_var("RUST_LOG", format!("off,gupax={}", filter_env));
|
std::env::set_var("RUST_LOG", format!("off,gupax={}", filter_env));
|
||||||
Logger::try_with_str("debug")
|
Logger::try_with_str("info")
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.log_to_file(FileSpec::default())
|
.log_to_file(FileSpec::default())
|
||||||
.start()
|
.start()
|
||||||
|
|
|
@ -87,12 +87,13 @@ fn main() {
|
||||||
|
|
||||||
// Run Gupax.
|
// Run Gupax.
|
||||||
info!("/*************************************/ Init ... OK /*************************************/");
|
info!("/*************************************/ Init ... OK /*************************************/");
|
||||||
let _ = eframe::run_native(
|
eframe::run_native(
|
||||||
&app.name_version.clone(),
|
&app.name_version.clone(),
|
||||||
options,
|
options,
|
||||||
Box::new(move |cc| {
|
Box::new(move |cc| {
|
||||||
egui_extras::install_image_loaders(&cc.egui_ctx);
|
egui_extras::install_image_loaders(&cc.egui_ctx);
|
||||||
Box::new(App::cc(cc, resolution, app))
|
Box::new(App::cc(cc, resolution, app))
|
||||||
}),
|
}),
|
||||||
);
|
)
|
||||||
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,7 +141,7 @@ pub fn get_exe_dir() -> Result<String, std::io::Error> {
|
||||||
#[cold]
|
#[cold]
|
||||||
#[inline(never)]
|
#[inline(never)]
|
||||||
pub fn clean_dir() -> Result<(), anyhow::Error> {
|
pub fn clean_dir() -> Result<(), anyhow::Error> {
|
||||||
let regex = Regex::new("^gupax_update_[A-Za-z0-9]{10}$").unwrap();
|
let regex = Regex::new("^gupaxx_update_[A-Za-z0-9]{10}$").unwrap();
|
||||||
for entry in std::fs::read_dir(get_exe_dir()?)? {
|
for entry in std::fs::read_dir(get_exe_dir()?)? {
|
||||||
let entry = entry?;
|
let entry = entry?;
|
||||||
if !entry.path().is_dir() {
|
if !entry.path().is_dir() {
|
||||||
|
|
|
@ -264,8 +264,10 @@ pub const STATUS_SUBMENU_OTHER_BENCHMARKS: &str =
|
||||||
|
|
||||||
// Gupaxx
|
// Gupaxx
|
||||||
pub const GUPAX_UPDATE: &str =
|
pub const GUPAX_UPDATE: &str =
|
||||||
"Check for updates on Gupaxx, P2Pool, and XMRig via GitHub's API and upgrade automatically";
|
"Check for updates on Gupaxx and bundled versions of P2Pool and XMRig via GitHub's API and upgrade automatically";
|
||||||
pub const GUPAX_AUTO_UPDATE: &str = "Automatically check for updates at startup";
|
pub const GUPAX_AUTO_UPDATE: &str = "Automatically check for updates at startup";
|
||||||
|
pub const GUPAX_BUNDLED_UPDATE: &str =
|
||||||
|
"Update XMRig and P2Pool with bundled versions of latest Gupaxx. It will replace any present xmrig and p2pool binary in their specified path.";
|
||||||
pub const GUPAX_SHOULD_RESTART: &str =
|
pub const GUPAX_SHOULD_RESTART: &str =
|
||||||
"Gupaxx was updated. A restart is recommended but not required";
|
"Gupaxx was updated. A restart is recommended but not required";
|
||||||
// #[cfg(not(target_os = "macos"))]
|
// #[cfg(not(target_os = "macos"))]
|
||||||
|
|
|
@ -35,6 +35,7 @@ use std::{
|
||||||
};
|
};
|
||||||
use zeroize::Zeroize;
|
use zeroize::Zeroize;
|
||||||
|
|
||||||
|
#[allow(dead_code)] // for dummy value windows
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct SudoState {
|
pub struct SudoState {
|
||||||
pub windows: bool, // If this bool is set, this struct is just a dummy so I don't have to change my type signatures :)
|
pub windows: bool, // If this bool is set, this struct is just a dummy so I don't have to change my type signatures :)
|
||||||
|
|
|
@ -19,25 +19,25 @@ cp CHANGELOG.md /tmp/${FOLDER}/skel/
|
||||||
# download xmrig into directory linux
|
# download xmrig into directory linux
|
||||||
wget https://github.com/xmrig/xmrig/releases/download/v6.21.1/xmrig-6.21.1-linux-static-x64.tar.gz
|
wget https://github.com/xmrig/xmrig/releases/download/v6.21.1/xmrig-6.21.1-linux-static-x64.tar.gz
|
||||||
tar -xf xmrig-6.21.1-linux-static-x64.tar.gz
|
tar -xf xmrig-6.21.1-linux-static-x64.tar.gz
|
||||||
mv xmrig-6.21.1/xmrig /tmp/${FOLDER}/skel/linux/xmrig/xmrig
|
mv xmrig-6.21.1/xmrig /tmp/${FOLDER}/skel/linux_b/xmrig/xmrig
|
||||||
rm -r xmrig-6.21.1
|
rm -r xmrig-6.21.1
|
||||||
rm xmrig-6.21.1-linux-static-x64.tar.gz
|
rm xmrig-6.21.1-linux-static-x64.tar.gz
|
||||||
# download xmrig into directory macos-arm64
|
# download xmrig into directory macos-arm64
|
||||||
wget https://github.com/xmrig/xmrig/releases/download/v6.21.1/xmrig-6.21.1-macos-arm64.tar.gz
|
wget https://github.com/xmrig/xmrig/releases/download/v6.21.1/xmrig-6.21.1-macos-arm64.tar.gz
|
||||||
tar -xf xmrig-6.21.1-macos-arm64.tar.gz
|
tar -xf xmrig-6.21.1-macos-arm64.tar.gz
|
||||||
mv xmrig-6.21.1/xmrig /tmp/${FOLDER}/skel/macos-arm64/Gupaxx.app/Contents/MacOS/xmrig/xmrig
|
mv xmrig-6.21.1/xmrig /tmp/${FOLDER}/skel/macos-arm64_b/Gupaxx.app/Contents/MacOS/xmrig/xmrig
|
||||||
rm -r xmrig-6.21.1
|
rm -r xmrig-6.21.1
|
||||||
rm xmrig-6.21.1-macos-arm64.tar.gz
|
rm xmrig-6.21.1-macos-arm64.tar.gz
|
||||||
# download xmrig into directory macos-x64
|
# download xmrig into directory macos-x64
|
||||||
wget https://github.com/xmrig/xmrig/releases/download/v6.21.1/xmrig-6.21.1-macos-x64.tar.gz
|
wget https://github.com/xmrig/xmrig/releases/download/v6.21.1/xmrig-6.21.1-macos-x64.tar.gz
|
||||||
tar -xf xmrig-6.21.1-macos-x64.tar.gz
|
tar -xf xmrig-6.21.1-macos-x64.tar.gz
|
||||||
mv xmrig-6.21.1/xmrig /tmp/${FOLDER}/skel/macos-x64/Gupaxx.app/Contents/MacOS/xmrig/xmrig
|
mv xmrig-6.21.1/xmrig /tmp/${FOLDER}/skel/macos-x64_b/Gupaxx.app/Contents/MacOS/xmrig/xmrig
|
||||||
rm -r xmrig-6.21.1
|
rm -r xmrig-6.21.1
|
||||||
rm xmrig-6.21.1-macos-x64.tar.gz
|
rm xmrig-6.21.1-macos-x64.tar.gz
|
||||||
# download xmrig into directory windows
|
# download xmrig into directory windows
|
||||||
wget https://github.com/xmrig/xmrig/releases/download/v6.21.1/xmrig-6.21.1-msvc-win64.zip
|
wget https://github.com/xmrig/xmrig/releases/download/v6.21.1/xmrig-6.21.1-msvc-win64.zip
|
||||||
unzip xmrig-6.21.1-msvc-win64.zip
|
unzip xmrig-6.21.1-msvc-win64.zip
|
||||||
mv xmrig-6.21.1/xmrig.exe /tmp/${FOLDER}/skel/windows/XMRig/xmrig.exe
|
mv xmrig-6.21.1/xmrig.exe /tmp/${FOLDER}/skel/windows_b/XMRig/xmrig.exe
|
||||||
rm -r xmrig-6.21.1
|
rm -r xmrig-6.21.1
|
||||||
rm xmrig-6.21.1-msvc-win64.zip
|
rm xmrig-6.21.1-msvc-win64.zip
|
||||||
|
|
||||||
|
@ -45,25 +45,25 @@ rm xmrig-6.21.1-msvc-win64.zip
|
||||||
# download p2pool into directory linux
|
# download p2pool into directory linux
|
||||||
wget https://github.com/SChernykh/p2pool/releases/download/v3.10/p2pool-v3.10-linux-x64.tar.gz
|
wget https://github.com/SChernykh/p2pool/releases/download/v3.10/p2pool-v3.10-linux-x64.tar.gz
|
||||||
tar -xf p2pool-v3.10-linux-x64.tar.gz
|
tar -xf p2pool-v3.10-linux-x64.tar.gz
|
||||||
mv p2pool-v3.10-linux-x64/p2pool /tmp/${FOLDER}/skel/linux/p2pool/p2pool
|
mv p2pool-v3.10-linux-x64/p2pool /tmp/${FOLDER}/skel/linux_b/p2pool/p2pool
|
||||||
rm -r p2pool-v3.10-linux-x64
|
rm -r p2pool-v3.10-linux-x64
|
||||||
rm p2pool-v3.10-linux-x64.tar.gz
|
rm p2pool-v3.10-linux-x64.tar.gz
|
||||||
# download p2pool into directory macos-arm64
|
# download p2pool into directory macos-arm64
|
||||||
wget https://github.com/SChernykh/p2pool/releases/download/v3.10/p2pool-v3.10-macos-aarch64.tar.gz
|
wget https://github.com/SChernykh/p2pool/releases/download/v3.10/p2pool-v3.10-macos-aarch64.tar.gz
|
||||||
tar -xf p2pool-v3.10-macos-aarch64.tar.gz
|
tar -xf p2pool-v3.10-macos-aarch64.tar.gz
|
||||||
mv p2pool-v3.10-macos-aarch64/p2pool /tmp/${FOLDER}/skel/macos-arm64/Gupaxx.app/Contents/MacOS/p2pool/p2pool
|
mv p2pool-v3.10-macos-aarch64/p2pool /tmp/${FOLDER}/skel/macos-arm64_b/Gupaxx.app/Contents/MacOS/p2pool/p2pool
|
||||||
rm -r p2pool-v3.10-macos-aarch64
|
rm -r p2pool-v3.10-macos-aarch64
|
||||||
rm p2pool-v3.10-macos-aarch64.tar.gz
|
rm p2pool-v3.10-macos-aarch64.tar.gz
|
||||||
# download p2pool into directory macos-x64
|
# download p2pool into directory macos-x64
|
||||||
wget https://github.com/SChernykh/p2pool/releases/download/v3.10/p2pool-v3.10-macos-x64.tar.gz
|
wget https://github.com/SChernykh/p2pool/releases/download/v3.10/p2pool-v3.10-macos-x64.tar.gz
|
||||||
tar -xf p2pool-v3.10-macos-x64.tar.gz
|
tar -xf p2pool-v3.10-macos-x64.tar.gz
|
||||||
mv p2pool-v3.10-macos-x64/p2pool /tmp/${FOLDER}/skel/macos-x64/Gupaxx.app/Contents/MacOS/p2pool/p2pool
|
mv p2pool-v3.10-macos-x64/p2pool /tmp/${FOLDER}/skel/macos-x64_b/Gupaxx.app/Contents/MacOS/p2pool/p2pool
|
||||||
rm -r p2pool-v3.10-macos-x64
|
rm -r p2pool-v3.10-macos-x64
|
||||||
rm p2pool-v3.10-macos-x64.tar.gz
|
rm p2pool-v3.10-macos-x64.tar.gz
|
||||||
# download p2pool into directory windows
|
# download p2pool into directory windows
|
||||||
wget https://github.com/SChernykh/p2pool/releases/download/v3.10/p2pool-v3.10-windows-x64.zip
|
wget https://github.com/SChernykh/p2pool/releases/download/v3.10/p2pool-v3.10-windows-x64.zip
|
||||||
unzip p2pool-v3.10-windows-x64.zip
|
unzip p2pool-v3.10-windows-x64.zip
|
||||||
mv p2pool-v3.10-windows-x64/p2pool.exe /tmp/${FOLDER}/skel/windows/P2Pool/p2pool.exe
|
mv p2pool-v3.10-windows-x64/p2pool.exe /tmp/${FOLDER}/skel/windows_b/P2Pool/p2pool.exe
|
||||||
rm -r p2pool-v3.10-windows-x64
|
rm -r p2pool-v3.10-windows-x64
|
||||||
rm p2pool-v3.10-windows-x64.zip
|
rm p2pool-v3.10-windows-x64.zip
|
||||||
|
|
||||||
|
|
|
@ -6,16 +6,25 @@
|
||||||
[[ -f windows.zip ]]; check "windows zip"
|
[[ -f windows.zip ]]; check "windows zip"
|
||||||
[[ -f macos.zip ]]; check "macos zip"
|
[[ -f macos.zip ]]; check "macos zip"
|
||||||
unzip linux.zip; unzip macos.zip; unzip windows.zip
|
unzip linux.zip; unzip macos.zip; unzip windows.zip
|
||||||
|
tar -xf windows.tar
|
||||||
mv gupaxx.exe skel/windows/Gupaxx.exe
|
mv gupaxx.exe skel/windows/Gupaxx.exe
|
||||||
|
mv gupaxx_b.exe skel/windows_b/Gupaxx.exe
|
||||||
tar -xf linux.tar
|
tar -xf linux.tar
|
||||||
mv gupaxx skel/linux/gupaxx
|
mv gupaxx skel/linux/gupaxx
|
||||||
|
mv gupaxx_b skel/linux_b/gupaxx
|
||||||
tar -xf macos.tar
|
tar -xf macos.tar
|
||||||
mv Gupaxx-macos-x64.app/Contents/Info.plist skel/macos-x64/Gupaxx.app/Contents/Info.plist
|
mv Gupaxx-macos-x64.app/Contents/Info.plist skel/macos-x64/Gupaxx.app/Contents/Info.plist
|
||||||
mv Gupaxx-macos-x64.app/Contents/MacOS/gupaxx skel/macos-x64/Gupaxx.app/Contents/MacOS/gupaxx
|
mv Gupaxx-macos-x64.app/Contents/MacOS/gupaxx skel/macos-x64/Gupaxx.app/Contents/MacOS/gupaxx
|
||||||
mv Gupaxx-macos-arm64.app/Contents/MacOS/gupaxx skel/macos-arm64/Gupaxx.app/Contents/MacOS/gupaxx
|
mv Gupaxx-macos-x64.app_b/Contents/Info.plist skel/macos-x64_b/Gupaxx.app/Contents/Info.plist
|
||||||
|
mv Gupaxx-macos-x64.app_b/Contents/MacOS/gupaxx skel/macos-x64_b/Gupaxx.app/Contents/MacOS/gupaxx
|
||||||
mv Gupaxx-macos-arm64.app/Contents/Info.plist skel/macos-arm64/Gupaxx.app/Contents/Info.plist
|
mv Gupaxx-macos-arm64.app/Contents/Info.plist skel/macos-arm64/Gupaxx.app/Contents/Info.plist
|
||||||
|
mv Gupaxx-macos-arm64.app/Contents/MacOS/gupaxx skel/macos-arm64/Gupaxx.app/Contents/MacOS/gupaxx
|
||||||
|
mv Gupaxx-macos-arm64.app_b/Contents/Info.plist skel/macos-arm64_b/Gupaxx.app/Contents/Info.plist
|
||||||
|
mv Gupaxx-macos-arm64.app_b/Contents/MacOS/gupaxx skel/macos-arm64_b/Gupaxx.app/Contents/MacOS/gupaxx
|
||||||
rm -r Gupaxx-macos-x64.app
|
rm -r Gupaxx-macos-x64.app
|
||||||
rm -r Gupaxx-macos-arm64.app
|
rm -r Gupaxx-macos-arm64.app
|
||||||
|
rm -r Gupaxx-macos-x64.app_b
|
||||||
|
rm -r Gupaxx-macos-arm64.app_b
|
||||||
rm linux.zip; rm macos.zip; rm windows.zip
|
rm linux.zip; rm macos.zip; rm windows.zip
|
||||||
# windows unzip only the exe so not tar to delete.
|
# windows unzip only the exe so not tar to delete.
|
||||||
rm linux.tar; rm macos.tar
|
rm linux.tar; rm macos.tar; rm windows.tar
|
||||||
|
|
|
@ -30,75 +30,76 @@ cd skel; check "CD into skel"
|
||||||
# and that the naming schemes are correct
|
# and that the naming schemes are correct
|
||||||
title "Linux folder check"
|
title "Linux folder check"
|
||||||
[[ -f linux/gupaxx ]]; check "linux/gupaxx"
|
[[ -f linux/gupaxx ]]; check "linux/gupaxx"
|
||||||
[[ -f linux/p2pool/p2pool ]]; check "linux/p2pool/p2pool"
|
[[ -f linux_b/gupaxx ]]; check "linux_b/gupaxx"
|
||||||
[[ -f linux/xmrig/xmrig ]]; check "linux/xmrig/xmrig"
|
[[ -f linux_b/p2pool/p2pool ]]; check "linux_b/p2pool/p2pool"
|
||||||
|
[[ -f linux_b/xmrig/xmrig ]]; check "linux_b/xmrig/xmrig"
|
||||||
title "macOS-x64 folder check"
|
title "macOS-x64 folder check"
|
||||||
[[ -d macos-x64/Gupaxx.app ]]; check "macos-x64/Gupaxx.app"
|
[[ -d macos-x64/Gupaxx.app ]]; check "macos-x64/Gupaxx.app"
|
||||||
[[ -f macos-x64/Gupaxx.app/Contents/MacOS/p2pool/p2pool ]]; check "macos-x64/p2pool/p2pool"
|
[[ -d macos-x64_b/Gupaxx.app ]]; check "macos-x64_b/Gupaxx.app"
|
||||||
[[ -f macos-x64/Gupaxx.app/Contents/MacOS/xmrig/xmrig ]]; check "macos-x64/xmrig/xmrig"
|
[[ -f macos-x64_b/Gupaxx.app/Contents/MacOS/p2pool/p2pool ]]; check "macos-x64_b/p2pool/p2pool"
|
||||||
|
[[ -f macos-x64_b/Gupaxx.app/Contents/MacOS/xmrig/xmrig ]]; check "macos-x64_b/xmrig/xmrig"
|
||||||
title "macOS-arm64 folder check"
|
title "macOS-arm64 folder check"
|
||||||
[[ -d macos-arm64/Gupaxx.app ]]; check "macos-arm64/Gupaxx.app"
|
[[ -d macos-arm64/Gupaxx.app ]]; check "macos-arm64/Gupaxx.app"
|
||||||
[[ -f macos-arm64/Gupaxx.app/Contents/MacOS/p2pool/p2pool ]]; check "macos-arm64/p2pool/p2pool"
|
[[ -d macos-arm64_b/Gupaxx.app ]]; check "macos-arm64_b/Gupaxx.app"
|
||||||
[[ -f macos-arm64/Gupaxx.app/Contents/MacOS/xmrig/xmrig ]]; check "macos-arm64/xmrig/xmrig"
|
[[ -f macos-arm64_b/Gupaxx.app/Contents/MacOS/p2pool/p2pool ]]; check "macos-arm64_b/p2pool/p2pool"
|
||||||
|
[[ -f macos-arm64_b/Gupaxx.app/Contents/MacOS/xmrig/xmrig ]]; check "macos-arm64_b/xmrig/xmrig"
|
||||||
title "Windows folder check"
|
title "Windows folder check"
|
||||||
[[ -f windows/Gupaxx.exe ]]; check "windows/Gupaxx.exe"
|
[[ -f windows/Gupaxx.exe ]]; check "windows/Gupaxx.exe"
|
||||||
[[ -f windows/P2Pool/p2pool.exe ]]; check "windows/P2Pool/p2pool.exe"
|
[[ -f windows_b/Gupaxx.exe ]]; check "windows_b/Gupaxx.exe"
|
||||||
[[ -f windows/XMRig/xmrig.exe ]]; check "windows/XMRig/xmrig.exe"
|
[[ -f windows_b/P2Pool/p2pool.exe ]]; check "windows_b/P2Pool/p2pool.exe"
|
||||||
|
[[ -f windows_b/XMRig/xmrig.exe ]]; check "windows_b/XMRig/xmrig.exe"
|
||||||
|
|
||||||
|
|
||||||
# Tar Linux Bundle
|
# Tar Linux Bundle
|
||||||
title "Tar Linux"
|
title "Tar Linux"
|
||||||
# give execution permission
|
# give execution permission
|
||||||
chmod +x linux/gupaxx
|
chmod +x linux/gupaxx
|
||||||
chmod +x linux/p2pool/p2pool
|
chmod +x linux_b/gupaxx
|
||||||
chmod +x linux/xmrig/xmrig
|
chmod +x linux_b/p2pool/p2pool
|
||||||
mv linux "gupaxx-$NEW_VER-linux-x64-bundle"; check "linux -> gupaxx-$NEW_VER-linux-x64-bundle"
|
chmod +x linux_b/xmrig/xmrig
|
||||||
|
mv linux_b "gupaxx-$NEW_VER-linux-x64-bundle"; check "linux -> gupaxx-$NEW_VER-linux-x64-bundle"
|
||||||
tar -czpf "gupaxx-${NEW_VER}-linux-x64-bundle.tar.gz" "gupaxx-$NEW_VER-linux-x64-bundle" --owner=lm --group=lm ; check "tar linux-bundle"
|
tar -czpf "gupaxx-${NEW_VER}-linux-x64-bundle.tar.gz" "gupaxx-$NEW_VER-linux-x64-bundle" --owner=lm --group=lm ; check "tar linux-bundle"
|
||||||
# Tar Linux Standalone
|
# Tar Linux Standalone
|
||||||
mv "gupaxx-$NEW_VER-linux-x64-bundle" "gupaxx-$NEW_VER-linux-x64-standalone"; check "gupaxx-$NEW_VER-linux-x64-bundle -> gupaxx-$NEW_VER-linux-x64-standalone"
|
mv linux "gupaxx-$NEW_VER-linux-x64-standalone"
|
||||||
rm -r "gupaxx-$NEW_VER-linux-x64-standalone/p2pool"; check "rm gupaxx-$NEW_VER-linux-x64-standalone/p2pool"
|
|
||||||
rm -r "gupaxx-$NEW_VER-linux-x64-standalone/xmrig"; check "rm gupaxx-$NEW_VER-linux-x64-standalone/xmrig"
|
|
||||||
tar -czpf "gupaxx-${NEW_VER}-linux-x64-standalone.tar.gz" "gupaxx-$NEW_VER-linux-x64-standalone" --owner=lm --group=lm ; check "tar linux-standalone"
|
tar -czpf "gupaxx-${NEW_VER}-linux-x64-standalone.tar.gz" "gupaxx-$NEW_VER-linux-x64-standalone" --owner=lm --group=lm ; check "tar linux-standalone"
|
||||||
# Remove dir
|
# Remove dir
|
||||||
rm -r "gupaxx-$NEW_VER-linux-x64-standalone"; check "rm linux dir"
|
rm -r "gupaxx-$NEW_VER-linux-x64-standalone"; check "rm linux dir"
|
||||||
|
rm -r "gupaxx-$NEW_VER-linux-x64-bundle"; check "rm linux_b dir"
|
||||||
|
|
||||||
# x64
|
# x64
|
||||||
# Tar macOS Bundle
|
# Tar macOS Bundle
|
||||||
title "Tar macOS-x64"
|
title "Tar macOS-x64"
|
||||||
mv macos-x64 "gupaxx-$NEW_VER-macos-x64-bundle"; check "macos-x64 -> gupaxx-$NEW_VER-macos-x64-bundle"
|
mv macos-x64_b "gupaxx-$NEW_VER-macos-x64-bundle"; check "macos-x64_b -> gupaxx-$NEW_VER-macos-x64-bundle"
|
||||||
tar -czpf "gupaxx-${NEW_VER}-macos-x64-bundle.tar.gz" "gupaxx-$NEW_VER-macos-x64-bundle" --owner=lm --group=lm ; check "tar macos-bundle"
|
tar -czpf "gupaxx-${NEW_VER}-macos-x64-bundle.tar.gz" "gupaxx-$NEW_VER-macos-x64-bundle" --owner=lm --group=lm ; check "tar macos-bundle"
|
||||||
# Tar macOS Standalone
|
# Tar macOS Standalone
|
||||||
mv "gupaxx-$NEW_VER-macos-x64-bundle" "gupaxx-$NEW_VER-macos-x64-standalone"; check "gupaxx-$NEW_VER-macos-x64-bundle -> gupaxx-$NEW_VER-macos-x64-standalone"
|
mv macos-x64 "gupaxx-$NEW_VER-macos-x64-standalone"; check "macos-x64 -> gupaxx-$NEW_VER-macos-x64-standalone"
|
||||||
rm -r "gupaxx-$NEW_VER-macos-x64-standalone/Gupaxx.app/Contents/MacOS/p2pool"; check "rm gupaxx-$NEW_VER-macos-x64-standalone/Gupaxx.app/Contents/MacOS/p2pool"
|
|
||||||
rm -r "gupaxx-$NEW_VER-macos-x64-standalone/Gupaxx.app/Contents/MacOS/xmrig"; check "rm gupaxx-$NEW_VER-macos-x64-standalone/Gupaxx.app/Contents/MacOS/xmrig/xmrig"
|
|
||||||
tar -czpf "gupaxx-${NEW_VER}-macos-x64-standalone.tar.gz" "gupaxx-$NEW_VER-macos-x64-standalone" --owner=lm --group=lm ; check "tar macos-x64-standalone"
|
tar -czpf "gupaxx-${NEW_VER}-macos-x64-standalone.tar.gz" "gupaxx-$NEW_VER-macos-x64-standalone" --owner=lm --group=lm ; check "tar macos-x64-standalone"
|
||||||
# Remove dir
|
# Remove dir
|
||||||
rm -r "gupaxx-$NEW_VER-macos-x64-standalone"; check "rm macos-x64 dir"
|
rm -r "gupaxx-$NEW_VER-macos-x64-standalone"; check "rm macos-x64 dir"
|
||||||
|
rm -r "gupaxx-$NEW_VER-macos-x64-bundle"; check "rm macos-x64_b dir"
|
||||||
|
|
||||||
# ARM
|
# ARM
|
||||||
# Tar macOS Bundle
|
# Tar macOS Bundle
|
||||||
title "Tar macOS-arm64"
|
title "Tar macOS-arm64"
|
||||||
mv macos-arm64 "gupaxx-$NEW_VER-macos-arm64-bundle"; check "macos-arm64 -> gupaxx-$NEW_VER-macos-arm64-bundle"
|
mv macos-arm64_b "gupaxx-$NEW_VER-macos-arm64-bundle"; check "macos-arm64_b -> gupaxx-$NEW_VER-macos-arm64-bundle"
|
||||||
tar -czpf "gupaxx-${NEW_VER}-macos-arm64-bundle.tar.gz" "gupaxx-$NEW_VER-macos-arm64-bundle" --owner=lm --group=lm ; check "tar macos-arm64-bundle"
|
tar -czpf "gupaxx-${NEW_VER}-macos-arm64-bundle.tar.gz" "gupaxx-$NEW_VER-macos-arm64-bundle" --owner=lm --group=lm ; check "tar macos-bundle"
|
||||||
# Tar macOS Standalone
|
# Tar macOS Standalone
|
||||||
mv "gupaxx-$NEW_VER-macos-arm64-bundle" "gupaxx-$NEW_VER-macos-arm64-standalone"; check "gupaxx-$NEW_VER-macos-arm64-bundle -> gupaxx-$NEW_VER-macos-arm64-standalone"
|
mv macos-arm64 "gupaxx-$NEW_VER-macos-arm64-standalone"; check "macos-arm64 -> gupaxx-$NEW_VER-macos-arm64-standalone"
|
||||||
rm -r "gupaxx-$NEW_VER-macos-arm64-standalone/Gupaxx.app/Contents/MacOS/p2pool"; check "rm gupaxx-$NEW_VER-macos-arm64-standalone/Gupaxx.app/Contents/MacOS/p2pool"
|
|
||||||
rm -r "gupaxx-$NEW_VER-macos-arm64-standalone/Gupaxx.app/Contents/MacOS/xmrig"; check "rm gupaxx-$NEW_VER-macos-arm64-standalone/Gupaxx.app/Contents/MacOS/xmrig/xmrig"
|
|
||||||
tar -czpf "gupaxx-${NEW_VER}-macos-arm64-standalone.tar.gz" "gupaxx-$NEW_VER-macos-arm64-standalone" --owner=lm --group=lm ; check "tar macos-arm64-standalone"
|
tar -czpf "gupaxx-${NEW_VER}-macos-arm64-standalone.tar.gz" "gupaxx-$NEW_VER-macos-arm64-standalone" --owner=lm --group=lm ; check "tar macos-arm64-standalone"
|
||||||
# Remove dir
|
# Remove dir
|
||||||
rm -r "gupaxx-$NEW_VER-macos-arm64-standalone"; check "rm macos dir"
|
rm -r "gupaxx-$NEW_VER-macos-arm64-standalone"; check "rm macos-arm64 dir"
|
||||||
|
rm -r "gupaxx-$NEW_VER-macos-arm64-bundle"; check "rm macos-arm64_b dir"
|
||||||
|
|
||||||
# Zip Windows Bundle
|
# Zip Windows Bundle
|
||||||
title "Zip Windows"
|
title "Zip Windows"
|
||||||
mv windows "gupaxx-$NEW_VER-windows-x64-bundle"; check "windows -> gupaxx-$NEW_VER-windows-x64-bundle"
|
mv windows_b "gupaxx-$NEW_VER-windows-x64-bundle"; check "windows_b -> gupaxx-$NEW_VER-windows-x64-bundle"
|
||||||
zip -qr "gupaxx-${NEW_VER}-windows-x64-bundle.zip" "gupaxx-$NEW_VER-windows-x64-bundle"; check "zip windows-bundle"
|
zip -qr "gupaxx-${NEW_VER}-windows-x64-bundle.zip" "gupaxx-$NEW_VER-windows-x64-bundle"; check "zip windows-bundle"
|
||||||
# Zip Windows Standalone
|
# Zip Windows Standalone
|
||||||
mv "gupaxx-$NEW_VER-windows-x64-bundle" "gupaxx-$NEW_VER-windows-x64-standalone"; check "gupaxx-$NEW_VER-windows-x64-bundle -> gupaxx-$NEW_VER-windows-x64-standalone"
|
mv windows "gupaxx-$NEW_VER-windows-x64-standalone"; check "windows -> gupaxx-$NEW_VER-windows-x64-standalone"
|
||||||
rm -r "gupaxx-$NEW_VER-windows-x64-standalone/P2Pool"; check "rm gupaxx-$NEW_VER-windows-x64-standalone/p2pool"
|
|
||||||
rm -r "gupaxx-$NEW_VER-windows-x64-standalone/XMRig"; check "rm gupaxx-$NEW_VER-windows-x64-standalone/xmrig"
|
|
||||||
zip -qr "gupaxx-${NEW_VER}-windows-x64-standalone.zip" "gupaxx-$NEW_VER-windows-x64-standalone"; check "zip windows-standalone"
|
zip -qr "gupaxx-${NEW_VER}-windows-x64-standalone.zip" "gupaxx-$NEW_VER-windows-x64-standalone"; check "zip windows-standalone"
|
||||||
# Remove dir
|
# Remove dir
|
||||||
rm -r "gupaxx-$NEW_VER-windows-x64-standalone"; check "rm windows dir"
|
rm -r "gupaxx-$NEW_VER-windows-x64-standalone"; check "rm windows dir"
|
||||||
|
rm -r "gupaxx-$NEW_VER-windows-x64-bundle"; check "rm windows_b dir"
|
||||||
|
|
||||||
# SHA256SUMS + Sign
|
# SHA256SUMS + Sign
|
||||||
title "Hash + Sign"
|
title "Hash + Sign"
|
||||||
|
|
0
utils/skel/linux/p2pool/p2pool → utils/skel/linux_b/gupaxx
Normal file → Executable file
0
utils/skel/linux/p2pool/p2pool → utils/skel/linux_b/gupaxx
Normal file → Executable file
0
utils/skel/macos-arm64/Gupaxx.app/Contents/MacOS/xmrig/xmrig → utils/skel/macos-arm64_b/Gupaxx.app/Contents/Info.plist
Normal file → Executable file
0
utils/skel/macos-arm64/Gupaxx.app/Contents/MacOS/xmrig/xmrig → utils/skel/macos-arm64_b/Gupaxx.app/Contents/Info.plist
Normal file → Executable file
0
utils/skel/windows/XMRig/xmrig.exe → utils/skel/macos-arm64_b/Gupaxx.app/Contents/Resources/Gupaxx.icns
Normal file → Executable file
0
utils/skel/windows/XMRig/xmrig.exe → utils/skel/macos-arm64_b/Gupaxx.app/Contents/Resources/Gupaxx.icns
Normal file → Executable file
0
utils/skel/macos-x64_b/Gupaxx.app/Contents/Info.plist
Executable file
0
utils/skel/macos-x64_b/Gupaxx.app/Contents/Info.plist
Executable file
0
utils/skel/macos-x64_b/Gupaxx.app/Contents/MacOS/gupaxx
Normal file
0
utils/skel/macos-x64_b/Gupaxx.app/Contents/MacOS/gupaxx
Normal file
0
utils/skel/macos-x64_b/Gupaxx.app/Contents/Resources/Gupaxx.icns
Executable file
0
utils/skel/macos-x64_b/Gupaxx.app/Contents/Resources/Gupaxx.icns
Executable file
0
utils/skel/windows_b/Gupaxx.exe
Normal file
0
utils/skel/windows_b/Gupaxx.exe
Normal file
0
utils/skel/windows_b/P2Pool/p2pool.exe
Normal file
0
utils/skel/windows_b/P2Pool/p2pool.exe
Normal file
0
utils/skel/windows_b/XMRig/xmrig.exe
Normal file
0
utils/skel/windows_b/XMRig/xmrig.exe
Normal file
Loading…
Reference in a new issue