Skip to content

Commit 42ded7f

Browse files
committed
fix: derive target profiles URL from version metadata
1 parent 3ea3d31 commit 42ded7f

2 files changed

Lines changed: 64 additions & 11 deletions

File tree

SCRIPTS/BPI-R4/02_target_only.sh

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,50 @@
11
#!/bin/bash
2+
set -euo pipefail
23
clear
34

5+
sed_in_place() {
6+
if sed --version >/dev/null 2>&1; then
7+
sed -i "$@"
8+
else
9+
sed -i '' "$@"
10+
fi
11+
}
12+
13+
resolve_profiles_url() {
14+
local release_repo
15+
local version_number
16+
17+
release_repo="$(sed -n 's#^VERSION_REPO:=.*,\(https://downloads\.openwrt\.org/releases/[^)]*\)).*$#\1#p' include/version.mk | tail -n 1)"
18+
19+
if [ -z "$release_repo" ]; then
20+
version_number="$(sed -n 's#^VERSION_NUMBER:=.*,\([^)]*\)).*$#\1#p' include/version.mk | tail -n 1)"
21+
if [ -n "$version_number" ]; then
22+
release_repo="https://downloads.openwrt.org/releases/$version_number"
23+
fi
24+
fi
25+
26+
if [ -z "$release_repo" ]; then
27+
echo "[TARGET] Failed to resolve OpenWrt release repo from include/version.mk" >&2
28+
return 1
29+
fi
30+
31+
printf '%s/targets/mediatek/filogic/profiles.json\n' "${release_repo%/}"
32+
}
33+
434
# 使用特定的优化
5-
sed -i 's,-mcpu=generic,-march=armv8-a+crc+crypto,g' include/target.mk
35+
sed_in_place 's,-mcpu=generic,-march=armv8-a+crc+crypto,g' include/target.mk
636

737
#Vermagic
8-
latest_version="$(curl -s https://github.com/openwrt/openwrt/tags | grep -Eo "v[0-9\\.]+\\-*r*c*[0-9]*.tar.gz" | grep 'v24.10' | sed -n 1p | sed 's/v//g' | sed 's/.tar.gz//g')"
9-
wget https://downloads.openwrt.org/releases/${latest_version}/targets/mediatek/filogic/profiles.json
10-
jq -r '.linux_kernel.vermagic' profiles.json >.vermagic
11-
sed -i -e 's/^\(.\).*vermagic$/\1cp $(TOPDIR)\/.vermagic $(LINUX_DIR)\/.vermagic/' include/kernel-defaults.mk
38+
profiles_url="$(resolve_profiles_url)"
39+
echo "[TARGET] Downloading vermagic from $profiles_url"
40+
wget -O profiles.json "$profiles_url"
41+
jq -er '.linux_kernel.vermagic' profiles.json > .vermagic
42+
sed_in_place -e 's/^\(.\).*vermagic$/\1cp $(TOPDIR)\/.vermagic $(LINUX_DIR)\/.vermagic/' include/kernel-defaults.mk
1243

1344
# 预配置一些插件
1445
cp -rf ../PATCH/files ./files
1546

16-
find ./ -name *.orig | xargs rm -f
17-
find ./ -name *.rej | xargs rm -f
47+
find ./ -name '*.orig' -delete
48+
find ./ -name '*.rej' -delete
1849

1950
#exit 0

SCRIPTS/BPI-R4/02_target_only_minimal.sh

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,36 @@ sed_in_place() {
99
fi
1010
}
1111

12+
resolve_profiles_url() {
13+
local release_repo
14+
local version_number
15+
16+
release_repo="$(sed -n 's#^VERSION_REPO:=.*,\(https://downloads\.openwrt\.org/releases/[^)]*\)).*$#\1#p' include/version.mk | tail -n 1)"
17+
18+
if [ -z "$release_repo" ]; then
19+
version_number="$(sed -n 's#^VERSION_NUMBER:=.*,\([^)]*\)).*$#\1#p' include/version.mk | tail -n 1)"
20+
if [ -n "$version_number" ]; then
21+
release_repo="https://downloads.openwrt.org/releases/$version_number"
22+
fi
23+
fi
24+
25+
if [ -z "$release_repo" ]; then
26+
echo "[MINIMAL] Failed to resolve OpenWrt release repo from include/version.mk" >&2
27+
return 1
28+
fi
29+
30+
printf '%s/targets/mediatek/filogic/profiles.json\n' "${release_repo%/}"
31+
}
32+
1233
sed_in_place 's,-mcpu=generic,-march=armv8-a+crc+crypto,g' include/target.mk
1334

14-
latest_version="$(curl -s https://github.com/openwrt/openwrt/tags | grep -Eo 'v[0-9\\.]+\\-*r*c*[0-9]*.tar.gz' | grep 'v24.10' | sed -n 1p | sed 's/v//g' | sed 's/.tar.gz//g')"
15-
wget -q https://downloads.openwrt.org/releases/${latest_version}/targets/mediatek/filogic/profiles.json
16-
jq -r '.linux_kernel.vermagic' profiles.json > .vermagic
35+
profiles_url="$(resolve_profiles_url)"
36+
echo "[MINIMAL] Downloading vermagic from $profiles_url"
37+
wget -qO profiles.json "$profiles_url"
38+
jq -er '.linux_kernel.vermagic' profiles.json > .vermagic
1739
sed_in_place -e 's/^\(.\).*vermagic$/\1cp $(TOPDIR)\/.vermagic $(LINUX_DIR)\/.vermagic/' include/kernel-defaults.mk
1840

1941
find ./ -name '*.orig' -delete
2042
find ./ -name '*.rej' -delete
2143

22-
echo "[MINIMAL] Target-only preparation complete."
44+
echo "[MINIMAL] Target-only preparation complete."

0 commit comments

Comments
 (0)