fix: исправления ошибок установки и работы (7 багов)
1. fix(install_nfqws): добавлены libmnl-dev и zlib1g-dev для всех дистрибутивов - Ubuntu/Debian: libmnl-dev zlib1g-dev - Arch: libmnl zlib - Fedora: libmnl-devel zlib-devel - Alpine: libmnl-dev zlib-dev Исправляет fatal error: libmnl/libmnl.h и zlib.h при сборке nfqws. 2. fix(test_zapret): исправлен вывод результатов теста - было: Results: / passed (всегда 1/1) - стало: Results: / passed (реальные цифры) 3. fix(autotest): cleanup_firewall перед каждым тестом стратегии - Убирает остатки iptables/nftables от предыдущего теста 4. fix(install): корректная обработка exit 2 от sync_from_upstream.sh - exit 2 = успешный sync + флаг rebuild, не ошибка - Теперь не пишет '[!] Sync failed' при нормальном обновлении 5. fix(service): убран рекурсивный вызов bash $0 remove_services - Используется прямой вызов функции service_remove() 6. fix(update): корректная запись версии в .service/version.txt - Убран префикс LOCAL_VERSION= из записи - Добавлена очистка кавычек через sed/tr 7. fix(service): проверка $DISPLAY перед xdg-open в check_for_updates - Предотвращает ошибки 'cannot open display' на headless/SSH
This commit is contained in:
@@ -90,6 +90,10 @@ run_strategy_test() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Ensure clean firewall state before starting
|
||||||
|
cleanup_firewall >/dev/null 2>&1 || true
|
||||||
|
sleep 1
|
||||||
|
|
||||||
# Start strategy in background
|
# Start strategy in background
|
||||||
echo " [*] Starting $strategy_name..."
|
echo " [*] Starting $strategy_name..."
|
||||||
"$strategy_path" >/dev/null 2>&1 &
|
"$strategy_path" >/dev/null 2>&1 &
|
||||||
|
|||||||
+9
-3
@@ -72,9 +72,15 @@ read -rp "Continue? [Y/n]: " ans
|
|||||||
if [[ "$OFFLINE_MODE" -eq 0 ]]; then
|
if [[ "$OFFLINE_MODE" -eq 0 ]]; then
|
||||||
echo ""
|
echo ""
|
||||||
echo "[*] Step 0: Syncing upstream lists/strategies..."
|
echo "[*] Step 0: Syncing upstream lists/strategies..."
|
||||||
bash "$SCRIPT_DIR/sync_from_upstream.sh" 2>&1 || {
|
set +e
|
||||||
print_yellow "[!] Sync failed. Continuing with local files..."
|
bash "$SCRIPT_DIR/sync_from_upstream.sh" 2>&1
|
||||||
}
|
SYNC_EXIT=$?
|
||||||
|
set -e
|
||||||
|
if [[ "$SYNC_EXIT" -eq 2 ]]; then
|
||||||
|
print_yellow "[!] Sync flagged: rebuild needed (exit 2). Continuing..."
|
||||||
|
elif [[ "$SYNC_EXIT" -ne 0 ]]; then
|
||||||
|
print_yellow "[!] Sync failed (exit $SYNC_EXIT). Continuing with local files..."
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo ""
|
echo ""
|
||||||
echo "[*] Step 0: OFFLINE — skipping upstream sync"
|
echo "[*] Step 0: OFFLINE — skipping upstream sync"
|
||||||
|
|||||||
+6
-6
@@ -46,22 +46,22 @@ install_deps() {
|
|||||||
case "$DISTRO" in
|
case "$DISTRO" in
|
||||||
ubuntu|debian|linuxmint|pop|zorin|kubuntu|xubuntu|lubuntu)
|
ubuntu|debian|linuxmint|pop|zorin|kubuntu|xubuntu|lubuntu)
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y git make gcc curl iptables nftables libnetfilter-queue-dev libcap-dev build-essential
|
apt-get install -y git make gcc curl iptables nftables libnetfilter-queue-dev libmnl-dev zlib1g-dev libcap-dev build-essential
|
||||||
;;
|
;;
|
||||||
arch|manjaro|endeavouros|garuda|artix|arcolinux|blackarch)
|
arch|manjaro|endeavouros|garuda|artix|arcolinux|blackarch)
|
||||||
if command -v pacman >/dev/null 2>&1; then
|
if command -v pacman >/dev/null 2>&1; then
|
||||||
pacman -Syu --noconfirm git make gcc curl iptables nftables libnetfilter_queue libcap
|
pacman -Syu --noconfirm git make gcc curl iptables nftables libnetfilter_queue libmnl zlib libcap
|
||||||
elif command -v yay >/dev/null 2>&1; then
|
elif command -v yay >/dev/null 2>&1; then
|
||||||
yay -Syu --noconfirm git make gcc curl iptables nftables libnetfilter_queue libcap
|
yay -Syu --noconfirm git make gcc curl iptables nftables libnetfilter_queue libmnl zlib libcap
|
||||||
elif command -v paru >/dev/null 2>&1; then
|
elif command -v paru >/dev/null 2>&1; then
|
||||||
paru -Syu --noconfirm git make gcc curl iptables nftables libnetfilter_queue libcap
|
paru -Syu --noconfirm git make gcc curl iptables nftables libnetfilter_queue libmnl zlib libcap
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
fedora|rhel|centos|almalinux|rocky)
|
fedora|rhel|centos|almalinux|rocky)
|
||||||
dnf install -y git make gcc curl iptables nftables libnetfilter_queue-devel libcap-devel
|
dnf install -y git make gcc curl iptables nftables libnetfilter_queue-devel libmnl-devel zlib-devel libcap-devel
|
||||||
;;
|
;;
|
||||||
alpine)
|
alpine)
|
||||||
apk add --no-cache git make gcc curl iptables nftables libnetfilter_queue-dev libcap-dev linux-headers
|
apk add --no-cache git make gcc curl iptables nftables libnetfilter_queue-dev libmnl-dev zlib-dev libcap-dev linux-headers
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "[!] Unknown distro: $DISTRO"
|
echo "[!] Unknown distro: $DISTRO"
|
||||||
|
|||||||
+3
-3
@@ -157,7 +157,7 @@ service_install() {
|
|||||||
echo "[*] Installing strategy: $strategy_name"
|
echo "[*] Installing strategy: $strategy_name"
|
||||||
|
|
||||||
# Stop any existing service
|
# Stop any existing service
|
||||||
bash "$0" remove_services >/dev/null 2>&1 || true
|
service_remove >/dev/null 2>&1 || true
|
||||||
|
|
||||||
# Write strategy marker
|
# Write strategy marker
|
||||||
mkdir -p "$SCRIPT_DIR/.service"
|
mkdir -p "$SCRIPT_DIR/.service"
|
||||||
@@ -429,9 +429,9 @@ check_for_updates() {
|
|||||||
if [[ "$mode" == "interactive" ]]; then
|
if [[ "$mode" == "interactive" ]]; then
|
||||||
read -rp "Open download page? [Y/n]: " ans
|
read -rp "Open download page? [Y/n]: " ans
|
||||||
if [[ "${ans:-Y}" == [yY]* ]]; then
|
if [[ "${ans:-Y}" == [yY]* ]]; then
|
||||||
if command -v xdg-open >/dev/null 2>&1; then
|
if [[ -n "${DISPLAY:-}" ]] && command -v xdg-open >/dev/null 2>&1; then
|
||||||
xdg-open "$github_release_url"
|
xdg-open "$github_release_url"
|
||||||
elif command -v gnome-open >/dev/null 2>&1; then
|
elif [[ -n "${DISPLAY:-}" ]] && command -v gnome-open >/dev/null 2>&1; then
|
||||||
gnome-open "$github_release_url"
|
gnome-open "$github_release_url"
|
||||||
else
|
else
|
||||||
echo "Please open: $github_release_url"
|
echo "Please open: $github_release_url"
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ full_pipeline() {
|
|||||||
# Step 1: Update version marker
|
# Step 1: Update version marker
|
||||||
log_msg "[*] Step 1: Updating version marker..."
|
log_msg "[*] Step 1: Updating version marker..."
|
||||||
local upstream_ver
|
local upstream_ver
|
||||||
upstream_ver=$(cat "$LOCAL_VERSION_FILE" 2>/dev/null || echo "$LOCAL_VERSION")
|
upstream_ver=$(cat "$LOCAL_VERSION_FILE" 2>/dev/null | sed 's/LOCAL_VERSION=//' | tr -d '\\"' || echo "$LOCAL_VERSION")
|
||||||
echo "$upstream_ver" > "$LOCAL_VERSION_FILE"
|
echo "$upstream_ver" > "$LOCAL_VERSION_FILE"
|
||||||
|
|
||||||
# Step 2: Rebuild nfqws
|
# Step 2: Rebuild nfqws
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ standard_tests() {
|
|||||||
done < "$targets_file"
|
done < "$targets_file"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Results: $passed/$passed passed"
|
echo "Results: $passed/$total passed"
|
||||||
if [[ "$passed" -eq "$total" ]]; then
|
if [[ "$passed" -eq "$total" ]]; then
|
||||||
print_green "All tests passed!"
|
print_green "All tests passed!"
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user