fix starter and patch scripts
Signed-off-by: Uncle Stretch <uncle.stretch@ghostchain.io>
This commit is contained in:
parent
4348580127
commit
6263c620ab
@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
EXIT_CODE=0
|
||||
SCRIPT_DIR=$(dirname "$0")
|
||||
PATCHES_DIR="$SCRIPT_DIR/patches"
|
||||
|
||||
@ -10,6 +11,11 @@ fi
|
||||
|
||||
for patch_file in "$PATCHES_DIR"/*.sh; do
|
||||
if [ -f "$patch_file" ] && [ -x "$patch_file" ]; then
|
||||
"$patch_file"
|
||||
"$patch_file" "$1"
|
||||
if [ $? -eq 2 ]; then
|
||||
EXIT_CODE=2
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
exit $EXIT_CODE
|
||||
|
||||
@ -1,25 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
SERVICE_NAME="${1:-ghost-node.service}"
|
||||
SERVICE_NAME="${2:-ghost-node.service}"
|
||||
|
||||
if [[ "$SERVICE_NAME" != *.service ]]; then
|
||||
SERVICE_NAME="${SERVICE_NAME}.service"
|
||||
fi
|
||||
|
||||
SERVICE_FULL_PATH="/etc/systemd/system/$SERVICE_NAME"
|
||||
if [[ -e "$SERVICE_FULL_PATH" ]]; then
|
||||
NETWORK_ONLINE_EXISTS=$(grep -Fx "After=network-online.target" "$SERVICE_FULL_PATH")
|
||||
NETWORK_EXISTS=$(grep -Fx "After=network.target" "$SERVICE_FULL_PATH")
|
||||
SKIPPED_NO_SERVICE="[-] patch-1 skipped: no serivce found at $SERVICE_FULL_PATH"
|
||||
[[ ! -e "$SERVICE_FULL_PATH" ]] && { echo $SKIPPED_NO_SERVICE; exit 1; }
|
||||
|
||||
if [[ -z "$NETWORK_ONLINE_EXISTS" && -n "$NETWORK_EXISTS" ]]
|
||||
then
|
||||
echo "[+] patch-1 will be applied: missing network-online.target dependency in $SERVICE_FULL_PATH, trying to replace"
|
||||
sudo sed -i "s/After=network.target/After=network-online.target\nRequires=network-online.target/g" "$SERVICE_FULL_PATH"
|
||||
echo "sudo systemctl daemon-reload"
|
||||
echo "sudo systemctl restart $SERVICE_NAME"
|
||||
else
|
||||
echo "[+] patch-1 already applied: network-online.target is set correctly for $SERVICE_FULL_PATH"
|
||||
fi
|
||||
else
|
||||
echo "[-] patch-1 skipped: no serivce found at $SERVICE_FULL_PATH"
|
||||
fi
|
||||
NETWORK_ONLINE_EXISTS=$(grep -Fx "After=network-online.target" "$SERVICE_FULL_PATH")
|
||||
NETWORK_EXISTS=$(grep -Fx "After=network.target" "$SERVICE_FULL_PATH")
|
||||
|
||||
SKIPPED_SERVICE_OK="[+] patch-1 already applied: network-online.target is set correctly for $SERVICE_FULL_PATH"
|
||||
[[ ! (-z "$NETWORK_ONLINE_EXISTS" && -n "$NETWORK_EXISTS") ]] && { echo $SKIPPED_SERVICE_OK; exit 0; }
|
||||
|
||||
PATCH_MESSAGE="missing network-online.target dependency in $SERVICE_FULL_PATH"
|
||||
[[ -z "$1" ]] && { echo "[!] patch-1 could be applied: $PATCH_MESSAGE"; exit 2; }
|
||||
|
||||
echo "[+] patch-1 will be applied: $PATCH_MESSAGE"
|
||||
sudo sed -i "s/After=network.target/After=network-online.target\nRequires=network-online.target/g" "$SERVICE_FULL_PATH"
|
||||
echo "sudo systemctl daemon-reload"
|
||||
echo "sudo systemctl restart $SERVICE_NAME"
|
||||
exit 0
|
||||
|
||||
@ -1,16 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
LATEST_TESTED_VERSION=83
|
||||
DEPENDENCY_PATH=~/.local/share/cargo/git/checkouts/polkadot-sdk-dee0edd6eefa0594/b401690/substrate/primitives/io/src/lib.rs
|
||||
MANIFEST_PATH=$(cargo metadata --format-version 1 | python3 -c "
|
||||
import sys,json
|
||||
data = json.load(sys.stdin)
|
||||
for pkg in data['packages']:
|
||||
if pkg['name'] == 'sp-io':
|
||||
print(pkg['manifest_path'])
|
||||
break
|
||||
")
|
||||
DEPENDENCY_PATH="${MANIFEST_PATH%Cargo.toml}src/lib.rs"
|
||||
|
||||
SKIPPED_PATCH_OK="[+] patch-2 not needed: rustc compiler version is compatible"
|
||||
cargo_version=$(cargo --version | cut -d'.' -f2)
|
||||
if [ "$cargo_version" -gt "$LATEST_TESTED_VERSION" ]; then
|
||||
if grep -q '#\[no_mangle\]' "$DEPENDENCY_PATH"; then
|
||||
sed -i '/#\[no_mangle\]/d' "$DEPENDENCY_PATH"
|
||||
echo "[+] patch-2 will be applied: remove unnecessary #[no_mangle] from the source code for sp-io"
|
||||
else
|
||||
echo "[+] patch-2 already applied: #[no_mangle] already removed from source code of sp-io"
|
||||
fi
|
||||
else
|
||||
echo "[+] patch-2 not needed: rustc compiler version is compatible"
|
||||
fi
|
||||
[[ "$cargo_version" -le "$LATEST_TESTED_VERSION" ]] && { echo $SKIPPED_PATCH_OK; exit 0; }
|
||||
|
||||
SKIPPED_PATCH_OK="[+] patch-2 already applied: #[no_mangle] already removed from source code of sp-io"
|
||||
! grep -q '#\[no_mangle\]' "$DEPENDENCY_PATH" && { echo $SKIPPED_PATCH_OK; exit 0; }
|
||||
|
||||
PATCH_MESSAGE="remove unnecessary #[no_mangle] from the source code for sp-io"
|
||||
[[ -z "$1" ]] && { echo "[!] patch-2 could be applied: $PATCH_MESSAGE"; exit 2; }
|
||||
|
||||
echo "[+] patch-2 will be applied: $PATCH_MESSAGE"
|
||||
sed -i '/#\[no_mangle\]/d' "$DEPENDENCY_PATH"
|
||||
exit 0
|
||||
|
||||
@ -4,14 +4,16 @@ LATEST_GCC_WORKING_VERSION=14
|
||||
PATH_TO_BUILD_CONFIG=~/.local/share/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/librocksdb-sys-0.11.0+8.1.1/build.rs
|
||||
GCC_MAJOR=$(gcc -dumpversion | cut -d. -f1)
|
||||
|
||||
if [ "$GCC_MAJOR" -gt "$LATEST_GCC_WORKING_VERSION" ]; then
|
||||
if grep -q "config.flag(\"-include\").flag(\"cstdint\");" "$PATH_TO_BUILD_CONFIG"; then
|
||||
echo "[+] patch-3 already applied: no need to change build config of librocksdb"
|
||||
else
|
||||
sed -i "/$(printf '%s' "config.compile(\"librocksdb.a\");" | sed 's/[].[*^$\/]/\\&/g')/i \
|
||||
SKIPPED_PATCH_OK="[+] patch-3 not needed: gcc version is good to compile without patch"
|
||||
[[ "$GCC_MAJOR" -le "$LATEST_GCC_WORKING_VERSION" ]] && { echo $SKIPPED_PATCH_OK; exit 0; }
|
||||
|
||||
SKIPPED_PATCH_OK="[+] patch-3 already applied: no need to change build config of librocksdb"
|
||||
grep -q "config.flag(\"-include\").flag(\"cstdint\");" "$PATH_TO_BUILD_CONFIG" && { echo $SKIPPED_PATCH_OK; exit 0; }
|
||||
|
||||
PATCH_MESSAGE="include cstdint for build config of librocksdb"
|
||||
[[ -z "$1" ]] && { echo "[!] patch-3 could be applied: $PATCH_MESSAGE"; exit 2; }
|
||||
|
||||
sed -i "/$(printf '%s' "config.compile(\"librocksdb.a\");" | sed 's/[].[*^$\/]/\\&/g')/i \
|
||||
if !target.contains(\"windows\") {\n config.flag(\"-include\").flag(\"cstdint\");\n }" "$PATH_TO_BUILD_CONFIG"
|
||||
echo "[+] patch-3 will be applied: cstdint included for build config of librocksdb"
|
||||
fi
|
||||
else
|
||||
echo "[+] patch-3 not needed: gcc version is good to compile without patch"
|
||||
fi
|
||||
echo "[+] patch-3 will be applied: $PATCH_MESSAGE"
|
||||
exit 0
|
||||
|
||||
@ -82,8 +82,9 @@ extract_seed() {
|
||||
|
||||
upgrade_compiler_if_needed() {
|
||||
UPDATE_STATUS=$(rustup check 2>&1)
|
||||
if echo "$UPDATE_STATUS" | grep -q "Update available"; then
|
||||
asd
|
||||
"$SCRIPT_FOLDER"/patch.sh || PATCH_STATUS=$?
|
||||
|
||||
if echo "$UPDATE_STATUS" | grep -q "Update available" || [ $PATCH_STATUS -eq 2 ]; then
|
||||
echo "[+] clean all cache on the current system"
|
||||
cargo install cargo-cache
|
||||
cargo clean
|
||||
@ -107,9 +108,7 @@ upgrade_compiler_if_needed() {
|
||||
cargo fetch
|
||||
|
||||
echo "[+] trying to apply all patches"
|
||||
"$SCRIPT_FOLDER"/patch.sh
|
||||
else
|
||||
echo "[+] rustc compiler version is up to date"
|
||||
"$SCRIPT_FOLDER"/patch.sh apply
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user