diff --git a/.github/workflows/Create-NewReleases.yml b/.github/workflows/Create-NewReleases.yml index 68663afa..5059e092 100644 --- a/.github/workflows/Create-NewReleases.yml +++ b/.github/workflows/Create-NewReleases.yml @@ -85,7 +85,7 @@ jobs: git push origin ${{ steps.nextver.outputs.tag }} - name: Create Release with Automated Release Notes - uses: softprops/action-gh-release@v3.0.2 + uses: softprops/action-gh-release@v3.0.3 with: token: ${{ secrets.GITHUB_TOKEN }} tag_name: ${{ steps.nextver.outputs.tag }} diff --git a/.github/workflows/update-merlin-sha256.yml b/.github/workflows/update-merlin-sha256.yml deleted file mode 100644 index 7bf939be..00000000 --- a/.github/workflows/update-merlin-sha256.yml +++ /dev/null @@ -1,121 +0,0 @@ -name: Update Merlin SHA256 Checksums - -on: - schedule: - # Every 15 minutes, offset from the top of the hour to reduce scheduler congestion. - - cron: '7,22,37,52 * * * *' - workflow_dispatch: - -permissions: - contents: write - -concurrency: - group: update-merlin-sha256 - cancel-in-progress: false - -jobs: - scrape-and-commit: - runs-on: ubuntu-latest - timeout-minutes: 5 - - steps: - - name: Checkout repository - uses: actions/checkout@v7 - with: - ssh-key: ${{ secrets.DEPLOY_KEY }} - - - name: Fetch, parse, and validate SHA256 signatures - shell: bash - run: | - set -euo pipefail - - readonly SOURCE_URL='https://www.asuswrt-merlin.net/download' - readonly TARGET_FILE='merlin-sha256.txt' - readonly MIN_EXPECTED_ENTRIES=5 - - page_file="$(mktemp)" - candidate_file="$(mktemp)" - trap 'rm -f "$page_file" "$candidate_file"' EXIT - - echo "Fetching SHA256 signatures from ${SOURCE_URL}..." - curl --fail --location --silent --show-error \ - --retry 4 --retry-delay 5 --retry-connrefused \ - --connect-timeout 15 --max-time 60 \ - --user-agent 'MerlinAutoUpdate checksum mirror (+https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router)' \ - --output "$page_file" \ - "$SOURCE_URL" - - # Keep the same source section MerlinAU consumes today, but write to a - # temporary candidate so a scrape/parser failure cannot destroy the - # last-known-good mirror in the repository. - sed -n '/<.*>SHA256 signatures:<\/.*>/,/<\/pre>/p' "$page_file" | \ - sed -n '/
]*>/,/<\/pre>/p' | \
- sed -e 's/^.*]*>//' \
- -e 's/<[^>]*>//g' \
- -e 's/^[[:space:]]*//' \
- -e 's/[[:space:]]*$//' | \
- tr -d '\r' | \
- sed '/^[[:space:]]*$/d' > "$candidate_file"
-
- echo "Validating candidate checksum list..."
- awk -v min_entries="$MIN_EXPECTED_ENTRIES" '
- BEGIN {
- valid = 1
- count = 0
- }
- {
- count++
-
- if (NF != 2) {
- printf "Invalid field count on line %d: %s\n", NR, $0 > "/dev/stderr"
- valid = 0
- next
- }
-
- if (length($1) != 64 || $1 ~ /[^0-9A-Fa-f]/) {
- printf "Invalid SHA256 on line %d: %s\n", NR, $1 > "/dev/stderr"
- valid = 0
- }
-
- if (seen[$2]++) {
- printf "Duplicate firmware filename on line %d: %s\n", NR, $2 > "/dev/stderr"
- valid = 0
- }
- }
- END {
- if (count < min_entries) {
- printf "Only %d checksum entries were parsed; expected at least %d.\n", count, min_entries > "/dev/stderr"
- valid = 0
- }
-
- if (!valid)
- exit 1
- }
- ' "$candidate_file"
-
- echo "Validated $(wc -l < "$candidate_file") checksum entries."
- echo "Candidate preview:"
- head -n 5 "$candidate_file"
-
- # Replace the working-tree copy only after the candidate has passed
- # every validation check. A failed run therefore leaves the repository
- # and its last-known-good checksum mirror unchanged.
- mv -f "$candidate_file" "$TARGET_FILE"
-
- - name: Commit and push changes
- shell: bash
- run: |
- set -euo pipefail
-
- git config user.name 'github-actions[bot]'
- git config user.email '41898282+github-actions[bot]@users.noreply.github.com'
-
- git add merlin-sha256.txt
-
- if git diff --cached --quiet; then
- echo 'No checksum changes detected. Nothing to commit.'
- exit 0
- fi
-
- git commit -m 'Automated update: refresh Merlin SHA256 checksums'
- git push
diff --git a/MerlinAU.sh b/MerlinAU.sh
index 08ccce56..7ad425c4 100644
--- a/MerlinAU.sh
+++ b/MerlinAU.sh
@@ -19,11 +19,11 @@
set -u
## Set version for each Production Release ##
-readonly SCRIPT_VERSION=1.6.7
-readonly SCRIPT_VERSTAG="26090309"
+readonly SCRIPT_VERSION=1.6.8
+readonly SCRIPT_VERSTAG="26090718"
readonly SCRIPT_NAME="MerlinAU"
## Set to "master" for Production Releases ##
-SCRIPT_BRANCH="master"
+SCRIPT_BRANCH="dev"
##----------------------------------------##
## Modified by Martinski W. [2024-Jul-03] ##
@@ -37,8 +37,7 @@ readonly FW_SFURL_BASE="https://sourceforge.net/projects/asuswrt-merlin/files"
readonly FW_SFURL_RELEASE_SUFFIX="Release"
readonly FW_GITURL_RELEASE="https://api.github.com/repos/gnuton/asuswrt-merlin.ng/releases/latest"
readonly FW_SHA256_URL="https://www.asuswrt-merlin.net/download"
-# The scheduled checksum mirror is maintained on the repository's default branch #
-readonly FW_SHA256_MIRROR_URL="${SCRIPT_URL_BASE}/main/merlin-sha256.txt"
+readonly FW_SHA256_MIRROR_URL="https://fwupdate.asuswrt-merlin.net/sha256sums-ng.txt"
##----------------------------------------##
## Modified by Martinski W. [2024-May-31] ##
@@ -6119,7 +6118,7 @@ _CheckOnlineFirmwareSHA256_()
Say "${MGNTct}*WARNING*${NOct}: Independently published checksum signature could NOT be retrieved from the ASUSWRT-Merlin website."
#-----------------------------------------------------------------------#
- # SECONDARY SOURCE: Use the repository mirror ONLY when the official
+ # SECONDARY SOURCE: Use the official mirror ONLY when the Merlin Website
# source did NOT yield a usable checksum. Never use a checksum bundled
# with the firmware image in the ZIP archive for an online F/W update.
#-----------------------------------------------------------------------#
@@ -6141,8 +6140,8 @@ _CheckOnlineFirmwareSHA256_()
return 1
fi
- checksumSource="MerlinAU GitHub repository mirror"
- Say "${MGNTct}*WARNING*${NOct}: Using the MerlinAU GitHub checksum mirror for verification (15-MINUTE Update Intervals!)"
+ checksumSource="FwUpdate VPS mirror"
+ Say "${MGNTct}*WARNING*${NOct}: Using the FwUpdate VPS checksum mirror for verification."
fi
#--------------------------------------------------------------------------#
diff --git a/README.md b/README.md
index 1492a294..814a3d5b 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# MerlinAU - AsusWRT-Merlin Firmware Auto Updater
-## v1.6.7
-## 2026-Sep-03
+## v1.6.8
+## 2026-Sep-07
## WebUI:
diff --git a/version.txt b/version.txt
index 400084b1..d8c5e721 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-1.6.7
+1.6.8