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
|
||||
fi
|
||||
|
||||
# Ensure clean firewall state before starting
|
||||
cleanup_firewall >/dev/null 2>&1 || true
|
||||
sleep 1
|
||||
|
||||
# Start strategy in background
|
||||
echo " [*] Starting $strategy_name..."
|
||||
"$strategy_path" >/dev/null 2>&1 &
|
||||
|
||||
12
install.sh
12
install.sh
@@ -72,9 +72,15 @@ read -rp "Continue? [Y/n]: " ans
|
||||
if [[ "$OFFLINE_MODE" -eq 0 ]]; then
|
||||
echo ""
|
||||
echo "[*] Step 0: Syncing upstream lists/strategies..."
|
||||
bash "$SCRIPT_DIR/sync_from_upstream.sh" 2>&1 || {
|
||||
print_yellow "[!] Sync failed. Continuing with local files..."
|
||||
}
|
||||
set +e
|
||||
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
|
||||
echo ""
|
||||
echo "[*] Step 0: OFFLINE — skipping upstream sync"
|
||||
|
||||
@@ -46,22 +46,22 @@ install_deps() {
|
||||
case "$DISTRO" in
|
||||
ubuntu|debian|linuxmint|pop|zorin|kubuntu|xubuntu|lubuntu)
|
||||
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)
|
||||
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
|
||||
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
|
||||
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
|
||||
;;
|
||||
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)
|
||||
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"
|
||||
|
||||
@@ -157,7 +157,7 @@ service_install() {
|
||||
echo "[*] Installing strategy: $strategy_name"
|
||||
|
||||
# Stop any existing service
|
||||
bash "$0" remove_services >/dev/null 2>&1 || true
|
||||
service_remove >/dev/null 2>&1 || true
|
||||
|
||||
# Write strategy marker
|
||||
mkdir -p "$SCRIPT_DIR/.service"
|
||||
@@ -429,9 +429,9 @@ check_for_updates() {
|
||||
if [[ "$mode" == "interactive" ]]; then
|
||||
read -rp "Open download page? [Y/n]: " ans
|
||||
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"
|
||||
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"
|
||||
else
|
||||
echo "Please open: $github_release_url"
|
||||
|
||||
@@ -130,7 +130,7 @@ full_pipeline() {
|
||||
# Step 1: Update version marker
|
||||
log_msg "[*] Step 1: Updating version marker..."
|
||||
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"
|
||||
|
||||
# Step 2: Rebuild nfqws
|
||||
|
||||
@@ -58,7 +58,7 @@ standard_tests() {
|
||||
done < "$targets_file"
|
||||
|
||||
echo ""
|
||||
echo "Results: $passed/$passed passed"
|
||||
echo "Results: $passed/$total passed"
|
||||
if [[ "$passed" -eq "$total" ]]; then
|
||||
print_green "All tests passed!"
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user