diff --git a/.github/workflows/iso-build.yml b/.github/workflows/iso-build.yml index 922f70d..9d2dbc9 100644 --- a/.github/workflows/iso-build.yml +++ b/.github/workflows/iso-build.yml @@ -93,15 +93,15 @@ jobs: env: GH_TOKEN: ${{ secrets.GH_TOKEN }} run: | - if gh release view nightly --repo ${{ github.repository }} 2>/dev/null; then - gh release delete nightly --repo ${{ github.repository }} --yes + if gh release view nightly-build --repo ${{ github.repository }} 2>/dev/null; then + gh release delete nightly-build --repo ${{ github.repository }} --yes fi - gh tag delete nightly --force 2>/dev/null || true + gh tag delete nightly-build --force 2>/dev/null || true - name: Create nightly tag run: | - git tag -fa nightly -m "RetroLinux Nightly Build" - git push origin nightly --force + git tag -fa nightly-build -m "RetroLinux Nightly Build" + git push origin nightly-build --force - name: Download ISO uses: actions/download-artifact@v4 @@ -154,7 +154,7 @@ jobs: uses: softprops/action-gh-release@v2 with: files: iso/out/*.iso - tag_name: nightly + tag_name: nightly-build name: 'RetroLinux Nightly' body_path: release_body.md draft: false @@ -234,7 +234,7 @@ jobs: If you encounter any issues, please report them on the [issue tracker](https://github.com/itsvlxd/RetroLinux/issues). Your feedback helps improve RetroLinux for everyone. - Want the latest features and fixes? Try the [nightly release](https://github.com/itsvlxd/RetroLinux/releases/tag/nightly). + Want the latest features and fixes? Try the [nightly release](https://github.com/itsvlxd/RetroLinux/releases/tag/nightly-build). [๐Ÿ› Report a Bug](https://github.com/itsvlxd/RetroLinux/issues/new?labels=bug) ยท [โœจ Request a Feature](https://github.com/itsvlxd/RetroLinux/issues/new?labels=enhancement) ยท [๐Ÿ“– Documentation](https://github.com/itsvlxd/RetroLinux/wiki) diff --git a/cmds/system/load.sh b/cmds/system/load.sh index 4347d96..3111dbc 100755 --- a/cmds/system/load.sh +++ b/cmds/system/load.sh @@ -185,7 +185,7 @@ cmd_load() { disown done - faillock --user $USER --reset + faillock --user "$USER" --reset 2>/dev/null || true local restart_marker="/tmp/retro_shell_restart_done" if [[ ! -f $restart_marker ]]; then diff --git a/cmds/system/setup/network.sh b/cmds/system/setup/network.sh index a568602..eb72263 100755 --- a/cmds/system/setup/network.sh +++ b/cmds/system/setup/network.sh @@ -26,8 +26,26 @@ setup_network() { fi local eth_iface wifi_iface - eth_iface=$(ip link show 2>/dev/null | grep -E "^[0-9]+: eth[0-9]+|^[0-9]+: en[a-z0-9]+" | grep -v "^lo" | awk -F': ' '{print $2}' | head -1) - wifi_iface=$(ip link show 2>/dev/null | grep -E "^[0-9]+: w(l|lo|lp)[a-z0-9]+" | awk -F': ' '{print $2}' | head -1) + local iface_try=0 + local nm_restarted=false + while (( iface_try < 3 )); do + eth_iface=$(ip link show 2>/dev/null | grep -E "^[0-9]+: eth[0-9]+|^[0-9]+: en[a-z0-9]+" | grep -v "^lo" | awk -F': ' '{print $2}' | head -1) + wifi_iface=$(ip link show 2>/dev/null | grep -E "^[0-9]+: w(l|lo|lp)[a-z0-9]+" | awk -F': ' '{print $2}' | head -1) + + if [[ -n $eth_iface || -n $wifi_iface ]]; then + break + fi + + if [[ $nm_restarted == false ]]; then + rx_log "info" "No network interface detected, restarting NetworkManager..." + sudo systemctl restart NetworkManager.service 2>/dev/null + nm_restarted=true + else + rx_log "info" "No network interface detected yet, waiting... ($((iface_try + 1))/3)" + fi + sleep 3 + ((iface_try++)) + done rx_log "info" "Detected interfaces: eth=${eth_iface:-none} wifi=${wifi_iface:-none}" @@ -36,17 +54,22 @@ setup_network() { sudo ip link set "$eth_iface" up 2>&1 sleep 2 - if ping -c 1 -W 3 1.1.1.1 &>/dev/null; then - rx_log "success" "Ethernet connected: $eth_iface" - return 0 - fi + local ping_try=0 + while (( ping_try < 5 )); do + if ping -c 1 -W 3 1.1.1.1 &>/dev/null; then + rx_log "success" "Ethernet connected: $eth_iface" + return 0 + fi + sleep 2 + ((ping_try++)) + done fi if [[ -n $wifi_iface && -n $WIFI_SSID && -n $WIFI_PASSWORD ]]; then rx_log "info" "Connecting to WiFi: $WIFI_SSID" local conn_result - conn_result=$(sudo bash "$RETRO_DIR/scripts/network_core.sh" --wifi-connect "$WIFI_SSID" "$WIFI_PASSWORD" "$wifi_iface") + conn_result=$(sudo RETRO_DIR="$RETRO_DIR" bash "$RETRO_DIR/scripts/network_core.sh" --wifi-connect "$WIFI_SSID" "$WIFI_PASSWORD" "$wifi_iface") local status status=$(echo "$conn_result" | grep -oP "result=\K[^|]+") @@ -69,7 +92,7 @@ setup_network() { sudo nmcli connection down "temp-connection" 2>&1 | tail -1 sudo nmcli connection delete "temp-connection" 2>&1 | tail -1 - conn_result=$(sudo bash "$RETRO_DIR/scripts/network_core.sh" --wifi-connect "$WIFI_SSID" "$WIFI_PASSWORD" "$wifi_iface") + conn_result=$(sudo RETRO_DIR="$RETRO_DIR" bash "$RETRO_DIR/scripts/network_core.sh" --wifi-connect "$WIFI_SSID" "$WIFI_PASSWORD" "$wifi_iface") status=$(echo "$conn_result" | grep -oP "result=\K[^|]+") if [[ $status == "success" ]]; then @@ -88,11 +111,11 @@ setup_network() { if [[ -n $wifi_iface ]]; then rx_log "info" "No saved WiFi credentials, scanning for networks..." - sudo bash "$RETRO_DIR/scripts/network_core.sh" --wifi-on "$wifi_iface" >/dev/null + sudo RETRO_DIR="$RETRO_DIR" bash "$RETRO_DIR/scripts/network_core.sh" --wifi-on "$wifi_iface" >/dev/null sleep 2 local scan_result - scan_result=$(sudo bash "$RETRO_DIR/scripts/network_core.sh" --wifi-list "$wifi_iface") + scan_result=$(sudo RETRO_DIR="$RETRO_DIR" bash "$RETRO_DIR/scripts/network_core.sh" --wifi-list "$wifi_iface") local ssid_list ssid_list=$(echo "$scan_result" | grep "^network|" | cut -d'|' -f2 | sort -u) @@ -119,7 +142,7 @@ setup_network() { if [[ -n $wifi_password ]]; then local conn_result - conn_result=$(sudo bash "$RETRO_DIR/scripts/network_core.sh" --wifi-connect "$selected_ssid" "$wifi_password" "$wifi_iface") + conn_result=$(sudo RETRO_DIR="$RETRO_DIR" bash "$RETRO_DIR/scripts/network_core.sh" --wifi-connect "$selected_ssid" "$wifi_password" "$wifi_iface") local status status=$(echo "$conn_result" | grep -oP "result=\K[^|]+") diff --git a/cmds/system/setup/run.sh b/cmds/system/setup/run.sh index 44fe55d..5d219cd 100755 --- a/cmds/system/setup/run.sh +++ b/cmds/system/setup/run.sh @@ -27,7 +27,7 @@ run_postinstall() { rx_logo rx_log "info" "Running post-install setup..." rx_log "info" "Setup log written to: $SETUP_LOG" - faillock --user $USER --reset + faillock --user "$USER" --reset 2>/dev/null || true rx_git_fix_owner sudo chown -R "$USER:$USER" "$HOME/.config" 2>/dev/null || true @@ -89,12 +89,10 @@ run_postinstall() { retro font setup --needed -y retro input setup --needed -y - retro audio setup retro audio eq download JackHack96 retro polkit setup --needed -y retro firewall setup --needed -o "default=drop" - retro fans setup --needed -y -o "engine=lm-sensors,profile=balanced" [[ $FINGERPRINT_ENABLED == true ]] && retro fingerprint setup --needed [[ $SSH_ENABLED == true ]] && retro ssh setup --needed -o "port=${SSH_PORT:-22},password=${SSH_PASSWORD_LOGIN:-false},pubkey=${SSH_KEY_LOGIN:-true},root=${SSH_ROOT_LOGIN:-false}" @@ -114,6 +112,6 @@ run_postinstall() { sleep 5 - faillock --user $USER --reset + faillock --user "$USER" --reset 2>/dev/null || true systemctl reboot } diff --git a/cmds/system/update.sh b/cmds/system/update.sh index d26a8af..70a7c03 100755 --- a/cmds/system/update.sh +++ b/cmds/system/update.sh @@ -15,7 +15,7 @@ cmd_update() { return 1 fi - faillock --user $USER --reset + faillock --user "$USER" --reset 2>/dev/null || true local old_head=$(git -C "$RETRO_DIR" rev-parse HEAD 2>/dev/null) local old_version=$(rx_git_version) diff --git a/cmds/tools/settings/ui/about.py b/cmds/tools/settings/ui/about.py index 3546676..c0cda80 100644 --- a/cmds/tools/settings/ui/about.py +++ b/cmds/tools/settings/ui/about.py @@ -69,7 +69,7 @@ def _issue_url() -> str: def _retro_linux_version() -> str: - """Retro Linux version (git tag), e.g. ``nightly``.""" + """Retro Linux version (git tag), e.g. ``nightly-build``.""" return display_version(_os_version()) diff --git a/modules/retro/packages.sh b/modules/retro/packages.sh index 78dab37..5de8b82 100755 --- a/modules/retro/packages.sh +++ b/modules/retro/packages.sh @@ -68,8 +68,8 @@ gnome-keyring smartmontools # Python -python-gobject python-dbus +python-gobject python-protobuf python-zeroconf python-cryptography