Compare commits

..
53 Commits
Author SHA1 Message Date
remittor bf936b5321 xmake: Add option -W for build without WiFi activation 2026-02-06 15:33:05 +03:00
remittor 1fba9101b8 build: Add step "Prepare for host tools" and rewrite cache for tools 2026-02-06 14:07:37 +03:00
remittor b9143fc861 xmake: Always try create vermagic-*.list file 2026-02-06 14:03:34 +03:00
remittor 75bc29506e config: Remove package lm-sensors-detect
Depends on perl and libperl.so
2026-02-06 14:00:29 +03:00
remittor 11c6eb686d xmake: Add patch for BatMan Adv proto 2026-01-29 12:08:30 +03:00
remittor b24533aa31 build: Add support TRX-images 2026-01-23 12:05:29 +03:00
remittor cf361cee05 base: Add lscpu and bind-tools 2026-01-23 12:05:04 +03:00
remittor dfe28b48e2 xmake: Fix patches for podkop 2026-01-10 09:14:50 +03:00
remittor 4c16b18d55 Add support Asus TUF-AX4200q 2026-01-08 17:07:38 +03:00
remittor a906be818e Fix for use new directories 2026-01-08 17:03:37 +03:00
remittor fc841c5a6d config: Rename config files 2026-01-08 17:00:12 +03:00
remittor 1d4e85a28d xmake: Fix dropbear downgrade 2026-01-04 19:43:40 +03:00
remittor 1aa0b402c5 build: Enable use_cache by default 2026-01-04 12:04:05 +03:00
remittor ca4573f31f build: Fix reuse cache and rename env PACKAGE_DIR 2026-01-03 21:05:22 +03:00
remittor f01482890b build: Add step "Set fixed workspace" 2026-01-02 18:59:05 +03:00
remittor 510a31e7ec build: Add step "Fix time stamps into restored dirs" 2026-01-02 16:44:12 +03:00
remittor 8f6a81ecd2 build: Add step "Configure 2" 2026-01-02 15:50:43 +03:00
remittor 68cb027109 build: Fix restore cache and disable step "Kernel compile" 2026-01-02 12:58:09 +03:00
remittor acff39477b build: Fix save and restore cache for host tools 2026-01-01 22:28:00 +03:00
remittor e57e548f61 xmake: Fix install fantastic packages keys and src 2026-01-01 21:12:16 +03:00
remittor eb978ba58e build: Fix kernel step 2026-01-01 20:19:22 +03:00
remittor 61f33e4c33 proxy: Delete tpws, mdig, ip2set packages 2026-01-01 17:06:01 +03:00
remittor 0a66ad1f3a build: Add step "Download sources (dl)" 2026-01-01 16:48:14 +03:00
remittor e67a3d001b build: Add new option "Use cache for host tools'" 2026-01-01 15:50:28 +03:00
remittor b01b370c51 build: Fix key of cache 2026-01-01 12:43:21 +03:00
remittor 75542fe301 build: Fix cache steps 2026-01-01 11:44:10 +03:00
remittor 8739c51995 build: Disable step "Cache toolchain" and fix host dir 2025-12-31 22:52:42 +03:00
remittor ea8d7eea5f build: Add show CPU cores 2025-12-31 19:48:32 +03:00
remittor 1d93b461b7 build: Add step "Increase swap" and "Check OOM error" 2025-12-31 19:27:22 +03:00
remittor cfc8241f53 build: Add option save-always: true 2025-12-31 19:13:43 +03:00
remittor 8c2f6fd7de build: Add step "Monitor memory" 2025-12-31 18:57:30 +03:00
remittor e021297496 build: Disable step "Cache downloads" 2025-12-31 16:12:04 +03:00
remittor 0cb316891c build: Add step "Save cache for toolchain" and "Save cache for tools" 2025-12-31 15:32:49 +03:00
remittor aed5f171a8 builf: Add step "Check for failed builds" 2025-12-31 15:14:43 +03:00
remittor 08cccf41b7 build: Fix using github cache (also on failure) 2025-12-31 15:03:41 +03:00
remittor e6e97ddbc8 build: Fix G_TARGET_ARCH 2025-12-31 14:16:48 +03:00
remittor b650894e8a build: Add option first_kernel_compile 2025-12-31 14:07:15 +03:00
remittor 78cc0dee60 build: Use github cache for dl, tools and toolchain 2025-12-31 11:54:48 +03:00
remittor 0b066fe854 Revert "xmake: Fix warning "your configuration is out of sync""
This reverts commit b788e7e165.
2025-12-31 09:51:06 +03:00
remittor 67e187b849 build: Delete env.BUILD_ROOT 2025-12-31 09:45:30 +03:00
remittor ef5e7155b5 build: Fix dependencies and disable step "Download tools" 2025-12-30 16:53:59 +03:00
remittor b788e7e165 xmake: Fix warning "your configuration is out of sync" 2025-12-30 16:51:50 +03:00
remittor a775b82e5b build: Add step "Download tools and toolchain" 2025-12-30 14:13:45 +03:00
remittor f9ab8e3841 build: Add make tools and toolchain 2025-12-30 08:45:47 +03:00
remittor 4e7389f304 build: Add option PACKAGE_DIR 2025-12-30 08:17:47 +03:00
remittor 887d928a4b build: Add configure step 2025-12-29 19:22:58 +03:00
remittor 5167d394e1 build: Add test_build option 2025-12-29 12:53:00 +03:00
remittor dd3a9395f2 xmake: Downgrade dropbear to 2024.86 2025-12-28 11:28:07 +03:00
remittor 2f112defb4 build: Fix branch name 2025-12-27 19:29:18 +03:00
remittor 9104838c9b addons: Fix download zapret2 packages 2025-12-27 17:51:09 +03:00
remittor 4e60cabc73 addons: Update sources for packages 2025-12-26 16:32:36 +03:00
remittor 295d495e81 build: Adapt for OpenWrt 25.12 2025-12-26 15:21:00 +03:00
remittor d147c0c72d xmake: Adapt fantastic packages for 25.12 2025-12-26 15:17:36 +03:00
32 changed files with 725 additions and 157 deletions

No files matched your search

+458 -53
View File
@@ -3,6 +3,37 @@ name: build
on:
workflow_dispatch:
inputs:
use_cache:
description: 'Restore cache for host tools'
required: true
default: 'true'
type: choice
options:
- true
- false
cache_ver:
description: 'Use cache version'
required: false
default: '0'
type: string
test_build:
description: 'Test build (only spec target) '
required: true
default: 'false'
type: choice
options:
- true
- false
target_name:
description: 'Target Name for test build'
required: false
default: 'r3d'
type: string
package_dir:
description: 'Package Dir for test build'
required: false
default: ''
type: string
fake_build:
description: 'Fake build'
required: true
@@ -11,6 +42,14 @@ on:
options:
- true
- false
trx_build:
description: 'TRX images build'
required: true
default: 'false'
type: choice
options:
- true
- false
suffix:
description: 'TAG suffix'
required: false
@@ -18,13 +57,14 @@ on:
type: string
env:
FAKE_BUILD: ${{ github.event.inputs.fake_build }}
TEST_BUILD: ${{ github.event.inputs.test_build == 'true' }}
TAG_SUFFIX: ${{ github.event.inputs.fake_build == 'true' && '-fake' || github.event.inputs.test_build == 'true' && '-test' || '' }}
TARGET_NAME: ${{ github.event.inputs.target_name }}
G_PKG_DIR: ${{ github.event.inputs.package_dir }}
REPO_URL: https://github.com/openwrt-xiaomi/openwrt
REPO_LNK: openwrt-xiaomi/openwrt
REPO_BRANCH: xq-24.10
TAG_PREFIX: v24-
BUILD_ROOT: ${{ github.workspace }}/openwrt
DEPENDENCIES: ${{ github.workspace }}/dependencies-ubuntu.txt
REPO_BRANCH: xq-25.12
TAG_PREFIX: v25-
TZ: UTC
DEVICE_NAME: unknown
BUILD_DATE: unknown
@@ -45,6 +85,9 @@ jobs:
fw_date: ${{ steps.gh.outputs.fw_date }}
fw_ver: ${{ steps.gh.outputs.fw_ver }}
is_active: ${{ steps.activity.outputs.is_active }}
test_build: ${{ env.TEST_BUILD }}
target_name: ${{ env.TARGET_NAME }}
fake_build: ${{ env.FAKE_BUILD }}
steps:
- name: Get repo data via GH API
id: gh
@@ -121,9 +164,16 @@ jobs:
- rt-ax57m
- rt-ax59u
- rt-ax89x
- tuf_ax4200
- tuf_ax6000
- tuf-ax4200
- tuf-ax4200q
- tuf-ax6000
- zen-bt8
isTest:
- ${{ needs.check.outputs.test_build == 'true' }}
exclude:
- { isTest: true }
include:
- target: ${{ github.event.inputs.target_name }}
steps:
- name: Initialization environment
env:
@@ -131,7 +181,10 @@ jobs:
run: |
sudo apt-get -qq update
#sudo apt-get -qq update && sudo apt-get -qq upgrade
sudo apt-get -qq install $(cat $DEPENDENCIES)
sudo apt-get -qq install build-essential gawk flex rsync swig unzip zlib1g-dev file wget
sudo apt-get -qq install libc6-dev clang bison g++ gcc-multilib g++-multilib
sudo apt-get -qq install gettext git libncurses5-dev libssl-dev python3-setuptools
sudo apt-get -qq install libc6-dev pkg-config squashfs-tools
sudo apt-get -qq autoremove --purge
sudo apt-get -qq clean
sudo timedatectl set-timezone "$TZ"
@@ -144,47 +197,84 @@ jobs:
remove-haskell: true
remove-codeql: true
remove-docker-images: true
- name: Set fixed workspace
env:
GITHUB_WORKSPACE: ${{ github.workspace }}
run: |
sudo mkdir -p $GITHUB_WORKSPACE/_temp
#sudo chown -R $USER:$USER $GITHUB_WORKSPACE
echo "GITHUB_WORKSPACE = $GITHUB_WORKSPACE"
echo "GITHUB_WORKSPACE=$GITHUB_WORKSPACE" >> $GITHUB_ENV
echo "RUNNER_TEMP=$GITHUB_WORKSPACE/_temp" >> $GITHUB_ENV
- name: Checkout builder
uses: actions/checkout@main
- name: Prepare env params
env:
INP_FAKE_BUILD: ${{ github.event.inputs.fake_build == 'true' }}
INP_TRX_BUILD: ${{ github.event.inputs.trx_build == 'true' }}
TARGET: ${{ matrix.target }}
run: |
FAKE_BUILD=$INP_FAKE_BUILD
TRX_BUILD=false
if [ "$INP_TRX_BUILD" = true ]; then
CFG="./_initramfs/$TARGET.config"
if [ -f "$CFG" ]; then
TRX_BUILD=true
echo "Start TRX build for $CFG"
echo "OPT_INITRAMFS=-i" >> $GITHUB_ENV
else
FAKE_BUILD=true
echo "Start FAKE build for $TARGET"
echo "SKIP_ME=true" >> $GITHUB_ENV
fi
fi
echo "FAKE_BUILD = $FAKE_BUILD"
echo "TRX_BUILD = $TRX_BUILD"
echo "FAKE_BUILD=$FAKE_BUILD" >> $GITHUB_ENV
echo "TRX_BUILD=$TRX_BUILD" >> $GITHUB_ENV
- name: Download OpenWrt sources
run: git clone --branch $REPO_BRANCH $REPO_URL.git $BUILD_ROOT
run: |
git clone --branch $REPO_BRANCH $REPO_URL.git openwrt
rm -rf .git
rsync -a openwrt/ ./
rm -rf openwrt
- name: Init builder
env:
BLDROOT: ${{ github.workspace }}
shell: bash
TOOLS_SRC_HASH: ${{ hashFiles('tools/**') }}
run: |
rsync -avq --exclude=".*" --exclude="$(basename $BUILD_ROOT)" $BLDROOT/ $BUILD_ROOT/
cd $BUILD_ROOT
chmod +x *.sh
wget https://github.com/fantastic-packages/packages/raw/refs/heads/24.10/keys/usign/53FF2B6672243D28.pub
#wget https://github.com/fantastic-packages/packages/raw/refs/heads/master/keys/apksign/20241123170031.pub
wget https://fantastic-packages.github.io/releases/25.12/20241123170031.pub
echo "TOOLS_SRC_HASH=$TOOLS_SRC_HASH" >> $GITHUB_ENV
- name: Update OpenWrt packages
id: update
run: |
cd $BUILD_ROOT && ./xupdate.sh -f
./xupdate.sh -f
mkdir -p logs
echo "status=success" >> $GITHUB_OUTPUT
- name: Build the firmware image
id: compile
- name: Configure
id: configure
if: steps.update.outputs.status == 'success'
env:
TARGET: ${{ matrix.target }}
FW_VER: ${{ needs.check.outputs.fw_ver }}
run: |
cd $BUILD_ROOT
MAKE_JOBS=$(($(nproc)+1))
echo "$MAKE_JOBS thread compile"
# init build config
./xmake.sh -I -t $TARGET
./xmake.sh $OPT_INITRAMFS -I -t $TARGET
G_DEVICE_NAME=$( grep -so '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' )
[ -z "$G_DEVICE_NAME" ] && exit 31
G_BOARD_NAME=$( grep -so '^CONFIG_TARGET_BOARD=.*' .config | cut -d'"' -f2 )
[ -z "$G_BOARD_NAME" ] && exit 32
G_SUBTARGET_NAME=$( grep -so '^CONFIG_TARGET_SUBTARGET=.*' .config | cut -d'"' -f2 )
[ -z "$G_SUBTARGET_NAME" ] && exit 33
G_TARGET_ARCH=$( grep -so '^CONFIG_TARGET_ARCH_PACKAGES=.*' .config | cut -d'"' -f2 )
echo "G_TARGET_ARCH = $G_TARGET_ARCH"
VERMAGIC_LIST="vermagic-$G_BOARD_NAME-$G_SUBTARGET_NAME-*.list"
if [ $(find . -maxdepth 1 -name "$VERMAGIC_LIST" | wc -l) = "0" ]; then
./vermagic_update.sh $G_BOARD_NAME $G_SUBTARGET_NAME
@@ -192,48 +282,320 @@ jobs:
if [ $(find . -maxdepth 1 -name "$VERMAGIC_LIST" | wc -l) = "0" ]; then
exit 41
fi
# run build
[ "$FAKE_BUILD" != "true" ] && make -j $MAKE_JOBS download world
# process results
FILE_DATE=$(date --utc +'%y%m%d')
OUT_DIR=$BUILD_ROOT/bin/targets/$G_BOARD_NAME/$G_SUBTARGET_NAME
if [ "$FAKE_BUILD" = "true" ]; then
echo "status=success" >> $GITHUB_OUTPUT
echo "FW_VER=$FW_VER" >> $GITHUB_ENV
echo "G_DEVICE_NAME=$G_DEVICE_NAME" >> $GITHUB_ENV
echo "G_BOARD_NAME=$G_BOARD_NAME" >> $GITHUB_ENV
echo "G_SUBTARGET_NAME=$G_SUBTARGET_NAME" >> $GITHUB_ENV
echo "G_TARGET_ARCH=$G_TARGET_ARCH" >> $GITHUB_ENV
echo "FILE_DATE=$FILE_DATE" >> $GITHUB_ENV
- name: Dump .config file
run: |
echo "====== .config ========="
cat .config
echo "========================"
cp -f .config logs/config1
cp -f .config config1
- name: Prepare for host tools
id: tools_prepare
env:
TARGET: ${{ matrix.target }}
USE_CACHE: ${{ github.event.inputs.use_cache }}
CACHE_VER: ${{ github.event.inputs.cache_ver }}
run: |
echo USE_CACHE = $USE_CACHE
HOST_TOOLS_STG_DIR=staging_dir/host
HOST_TOOLS_BLD_DIR=build_dir/host
rm -rf staging_dir/
rm -rf build_dir/
mkdir -p staging_dir/host
mkdir -p build_dir/host
#############################################
CONFIG_BUILD_ALL_HOST_TOOLS=n
if grep '^CONFIG_BUILD_ALL_HOST_TOOLS=y' $CFG ; then
CONFIG_BUILD_ALL_HOST_TOOLS=y
fi
########### check tools Makefile ############
if [ "$CONFIG_BUILD_ALL_HOST_TOOLS" != y ]; then
if grep -q '(CONFIG_USES_MINOR),y) += yafut' tools/Makefile ; then
echo WARN: file tools/Makefile allowed compile yafut
echo ERROR: yafut compile not supported !!!
exit 51
fi
fi
########### get hash of dir with tools Makefiles ############
TOOLS_SRC_CRC=$( echo $TOOLS_SRC_HASH | cksum | awk '{print $1}' )
echo $TOOLS_SRC_CRC > logs/host_tools_sources.crc
echo "TOOLS_SRC_CRC=$TOOLS_SRC_CRC" >> $GITHUB_ENV
########### get prereq tools (w/o compile) ############
ls -la $HOST_TOOLS_DIR/bin | awk '{print $9 " -> " $11}' | sort > $HOST_TOOLS_STG_DIR/.prereq-build-list
TOOLS_PREREQ_CRC=$( cat $HOST_TOOLS_STG_DIR/.prereq-build-list | cksum | awk '{print $1}' )
cp -f $HOST_TOOLS_STG_DIR/.prereq-build-list logs/prereq-build-list.txt
echo "TOOLS_PREREQ_CRC=$TOOLS_PREREQ_CRC" >> $GITHUB_ENV
########### patch for tools/Makefile ###############
cat <<'EOF' >> tools/Makefile
###
### patch for getinfo
###
TOOLS_COMPILE_LIST := $(STAGING_DIR_HOST)/.tools_compile_list
define gen_tools_compile_list
@echo "Generating $(TOOLS_COMPILE_LIST)"
@mkdir -p $(STAGING_DIR_HOST)
rm -f $(STAGING_DIR_HOST)/.tools_compile_*
@{ \
TOOLS_STATUS=""; \
for tool in $(sort $(tools-y) $(tools-)); do \
T_STATUS="n"; \
if echo " $(tools-y) " | grep -q " $$tool " ; then T_STATUS="y"; printf "+"; else printf " "; fi; \
TOOLS_STATUS="$${TOOLS_STATUS}$${T_STATUS}" ; \
printf " %s\n" "$$tool"; \
done; \
printf "$$TOOLS_STATUS" > $(STAGING_DIR_HOST)/.tools_compile_mask; \
} > $(TOOLS_COMPILE_LIST)
endef
$(curdir)/getinfo: .config prereq
$(call gen_tools_compile_list)
$(curdir)/prepare: $(curdir)/getinfo
EOF
########## end of patch tools/Makefile ############
make tools/getinfo
if [ ! -f $HOST_TOOLS_STG_DIR/.tools_compile_list ]; then
echo ERROR: File $HOST_TOOLS_STG_DIR/.tools_compile_list not found!
exit 55
fi
cp -f $HOST_TOOLS_STG_DIR/.tools_compile_list logs/tools_compile_list.txt
TOOLS_COMPILE_CRC=$( cat $TOOLS_STG_DIR/.tools_compile_list | cksum | awk '{print $1}' )
echo "TOOLS_COMPILE_CRC=$TOOLS_COMPILE_CRC" >> $GITHUB_ENV
#######
TOOLS_COMPILE_MASK=$( cat $TOOLS_STG_DIR/.tools_compile_mask )
cp -f $HOST_TOOLS_STG_DIR/.tools_compile_mask logs/tools_compile_mask.txt
touch logs/tools_compile_$TOOLS_COMPILE_MASK
echo TOOLS_COMPILE_MASK = $TOOLS_COMPILE_MASK
###################################################
if [ "$USE_CACHE" = "true" ]; then
echo USE_CACHE = $USE_CACHE
fi
echo "USE_CACHE=$USE_CACHE" >> $GITHUB_ENV
echo "CACHE_VER=$CACHE_VER" >> $GITHUB_ENV
echo "HOST_TOOLS_STG_DIR=$HOST_TOOLS_STG_DIR" >> $GITHUB_ENV
echo "HOST_TOOLS_BLD_DIR=$HOST_TOOLS_BLD_DIR" >> $GITHUB_ENV
echo "status=success" >> $GITHUB_OUTPUT
- name: Restore host tools from cache
id: tools_cache_restore
if: github.event.inputs.use_cache == 'true'
uses: actions/cache/restore@v4
with:
key: host-tools-${{ env.CACHE_VER }}-${{ env.TOOLS_SRC_CRC }}-${{ env.TOOLS_PREREQ_CRC }}-${{ env.TOOLS_COMPILE_CRC }}
path: |
staging_dir/host
build_dir/host
- name: Fix time stamps into restored dirs
if: github.event.inputs.use_cache == 'true' && steps.tools_cache_restore.outputs.cache-hit == 'true'
run: |
touch $HOST_TOOLS_STG_DIR/.prepared
touch $HOST_TOOLS_STG_DIR/.prereq-build
touch $HOST_TOOLS_STG_DIR/stamp/.* 2>/dev/null
find $HOST_TOOLS_BLD_DIR -name ".prepared*" -exec touch {} +
find $HOST_TOOLS_BLD_DIR -name ".configured" -exec touch {} +
find $HOST_TOOLS_BLD_DIR -name ".built" -exec touch {} +
- name: Inspect restored host tools
if: github.event.inputs.use_cache == 'true'
run: |
echo "====== openwrt-native.txt ======"
cat $HOST_TOOLS_BLD_DIR/pkgconf-*/openwrt-native.txt || true
echo "====== staging_dir/host ====="
du -sh $HOST_TOOLS_STG_DIR || true
ls -la $HOST_TOOLS_STG_DIR || true
echo "====== staging_dir/host/bin ====="
du -sh $HOST_TOOLS_STG_DIR/bin || true
ls -1 $HOST_TOOLS_STG_DIR/bin | head -20 || true
echo "====== build_dir/host ======="
du -sh $HOST_TOOLS_BLD_DIR || true
ls -1 $HOST_TOOLS_BLD_DIR | head -20 || true
echo "====== path info ========"
grep -R "/home/runner" $HOST_TOOLS_BLD_DIR | head
- name: Monitor memory
run: |
echo "CPU cores = $(nproc)"
echo "Memory and swap:"
sudo free -h
echo
sudo swapon --show
echo
echo "Available storage:"
sudo df -h
- name: Download sources (dl)
id: download
if: ${{ steps.configure.outputs.status == 'success' && env.FAKE_BUILD != 'true' }}
run: |
make -j$(nproc) download
echo "status=success" >> $GITHUB_OUTPUT
- name: Build tools and toolchain
id: tools
if: ${{ steps.configure.outputs.status == 'success' && env.FAKE_BUILD != 'true' }}
run: |
make toolchain/install -j$(nproc)
echo "status=success" >> $GITHUB_OUTPUT
- name: Save cache for host tools
id: tools_cache_save
if: steps.tools.outputs.status == 'success'
uses: actions/cache/save@v4
with:
key: host-tools-${{ env.CACHE_VER }}-${{ env.TOOLS_SRC_CRC }}-${{ env.TOOLS_PREREQ_CRC }}-${{ env.TOOLS_COMPILE_CRC }}
path: |
staging_dir/host
build_dir/host
- name: Show host tools stamps
run: |
ls -la staging_dir/host/stamp/
ls -la staging_dir/host/stamp/ > logs/host_stamp_dir.txt
- name: Configure 2
id: configure2
if: steps.tools.outputs.status == 'success'
env:
TARGET: ${{ matrix.target }}
run: |
rm -rf logs_backup/
cp -a logs logs_backup
make clean
rm -rf logs
cp -a logs_backup logs
./xmake.sh $OPT_INITRAMFS -I -t $TARGET
cp -f .config logs/config2
- name: Kernel compile
id: kernel
if: ${{ steps.tools.outputs.status == 'success' && env.FAKE_BUILD != 'true' }}
run: |
make target/linux/compile -j$(nproc)
echo "status=success" >> $GITHUB_OUTPUT
- name: Monitor memory 2
run: |
echo "Memory and swap:"
sudo free -h
echo
sudo swapon --show
echo
echo "Available storage:"
sudo df -h
- name: Build the firmware image
id: compile
if: steps.tools.outputs.status == 'success'
env:
TARGET: ${{ matrix.target }}
run: |
echo "Run $(nproc) thread compile"
if [ "$FAKE_BUILD" != "true" -a "$TEST_BUILD" = "true" -a "$G_PKG_DIR" != "" ]; then
make target/linux/compile -j$(npoc)
echo "=============== BUILD PACKAGE: $G_PKG_DIR ==============="
make $G_PKG_DIR/compile V=sc BUILD_LOG=1
exit 99
fi
if [ "$FAKE_BUILD" != "true" ]; then
if [ "$TEST_BUILD" != "true" ]; then
make -j$(nproc) world
else
make V=sc world
fi
fi
echo "status=success" >> $GITHUB_OUTPUT
- name: Process out results
id: install
if: steps.compile.outputs.status == 'success' || env.FAKE_BUILD == 'true'
env:
TARGET: ${{ matrix.target }}
OUT_DIR: ./bin/targets/${{ env.G_BOARD_NAME }}/${{ env.G_SUBTARGET_NAME }}
run: |
if [ "$FAKE_BUILD" = true ]; then
mkdir -p logs
mkdir -p $OUT_DIR
echo "$G_BOARD_NAME $G_SUBTARGET_NAME $G_DEVICE_NAME" > "$OUT_DIR/$G_DEVICE_NAME.txt"
touch "$OUT_DIR/kernel-debug.tar.zst"
ls -la
mkdir -p "$OUT_DIR"
cd "$OUT_DIR"
echo "$G_BOARD_NAME $G_SUBTARGET_NAME $G_DEVICE_NAME" > "$G_DEVICE_NAME.txt"
touch FAKE_BUILD.bin
touch kernel-debug.tar.zst
BLD_VER=$FW_VER
else
BLD_VER=$( cat $OUT_DIR/profiles.json | grep -so '"version_number":"[^"]*' | grep -so '[^"]*$' )
if [ ! -d "$OUT_DIR" ]; then
echo "OUT_DIR not found!"
exit 99
fi
cd "$OUT_DIR"
BLD_VER=$( cat profiles.json | grep -so '"version_number":"[^"]*' | grep -so '[^"]*$' )
fi
if [ "$SKIP_ME" = true ]; then
touch FLAG-SKIP_ME
fi
if [ "$TRX_BUILD" = true ]; then
touch FLAG-TRX_BUILD
fi
echo "Firmware $BLD_VER [$FILE_DATE] builded!"
if [ ! -f $OUT_DIR/kernel-debug.tar.zst ]; then
if [ ! -f kernel-debug.tar.zst ]; then
echo "File kernel-debug.tar.zst not found!"
exit 100
fi
if [ "$TRX_BUILD" = true ]; then
find . -maxdepth 1 -type f ! -name '*-initramfs*' ! -name 'FLAG-*' -delete
VER_MAJOR=$( echo "$BLD_VER" | cut -d. -f1 )
STD_IMG_DIR="openwrt-initramfs-bin-for-luci"
mkdir $STD_IMG_DIR
find . -maxdepth 1 -type f -name '*-initramfs*.bin' -exec mv -f {} $STD_IMG_DIR/openwrt-${VER_MAJOR}_${TARGET}_initramfs.bin \;
find . -maxdepth 1 -type f -name '*-initramfs*.trx' -exec mv -f {} openwrt-${VER_MAJOR}_${TARGET}_initramfs.trx \;
fi
echo "status=success" >> $GITHUB_OUTPUT
echo "DEVICE_NAME=$G_DEVICE_NAME" >> $GITHUB_ENV
echo "BOARD_NAME=$G_BOARD_NAME" >> $GITHUB_ENV
echo "SUBTARGET_NAME=$G_SUBTARGET_NAME" >> $GITHUB_ENV
echo "FW_BUILD_OK=1" >> $GITHUB_ENV
echo "BLD_VER=$BLD_VER" >> $GITHUB_ENV
echo "OUT_DIR=$OUT_DIR" >> $GITHUB_ENV
echo "FILE_DATE=$FILE_DATE" >> $GITHUB_ENV
- name: Mark firmware build failed
if: false # steps.install.outcome == 'failure' || steps.compile.outcome == 'failure'
run: |
echo "Firmware build failed, continuing pipeline"
echo "FW_BUILD_OK=0" >> $GITHUB_ENV
OUT_DIR=_bin_fake
mkdir -p $OUT_DIR
echo "$G_BOARD_NAME $G_SUBTARGET_NAME $G_DEVICE_NAME" > "$OUT_DIR/$G_DEVICE_NAME.txt"
touch "$OUT_DIR/kernel-debug.tar.zst"
echo "BUILD FAILED" > $OUT_DIR/FAILED.txt
echo "BLD_VER=$FW_VER" >> $GITHUB_ENV
echo "OUT_DIR=$OUT_DIR" >> $GITHUB_ENV
- name: Check space usage
run: df -hT
- name: Check OOM error
if: failure()
run: |
dmesg | grep -i -E 'oom|killed process' || true
echo "================== Memory ================="
free -h
- name: Compress build logs
if: always()
env:
TARGET: ${{ matrix.target }}
FW_DATE: ${{ needs.check.outputs.fw_date }}
LOGS_DIR: ${{ env.BUILD_ROOT }}/logs
run: |
tar -cJvf logs-$TARGET-$FW_DATE.tar.xz $LOGS_DIR
tar -cJvf logs-$TARGET-$FW_DATE.tar.xz logs
- name: Cleanup OUT directory
if: steps.compile.outputs.status == 'success'
if: steps.install.outputs.status == 'success'
env:
OUT_DIR: ${{ env.OUT_DIR }}
run: |
@@ -253,9 +615,9 @@ jobs:
- name: Upload OUT directory
uses: actions/upload-artifact@main
if: steps.compile.outputs.status == 'success'
if: steps.install.outputs.status == 'success'
with:
name: openwrt-${{ env.BLD_VER }}-${{ needs.check.outputs.build_date }}-${{ env.DEVICE_NAME }}
name: openwrt-${{ env.BLD_VER }}-${{ needs.check.outputs.build_date }}-${{ env.G_DEVICE_NAME }}
path: ${{ env.OUT_DIR }}
if-no-files-found: error
@@ -263,7 +625,7 @@ jobs:
if: always()
uses: actions/upload-artifact@v4
with:
name: logs-${{ matrix.target }}-${{ env.FW_DATE }}
name: logs-${{ matrix.target }}-${{ needs.check.outputs.fw_date }}
path: logs-*.tar.xz
release:
@@ -279,22 +641,65 @@ jobs:
with:
pattern: openwrt-*
- name: Check for failed builds
run: |
echo "Checking for FAILED.txt in openwrt-* directories..."
FAILED_DIRS=$( find . -maxdepth 1 -type d -name 'openwrt-*' -exec test -f '{}/FAILED.txt' \; -print )
if [ -n "$FAILED_DIRS" ]; then
echo "❌ Build failures detected in:"
exit 201
fi
echo "✅ No FAILED.txt found, proceeding to release"
- name: Put images into zip
run: |
mkdir -p public
find . -mindepth 1 -type d -name 'openwrt-*' -exec sh -c 'zip -0 ./public/$(basename {}).zip -j {} {}/*' \;
for DIR in openwrt-*; do
[ -d "$DIR" ] || continue
if [ -f "$DIR/FLAG-SKIP_ME" ]; then
echo "Skip $DIR"
continue
fi
ZIP_SUFFIX=""
if [ -f "$DIR/FLAG-TRX_BUILD" ]; then
echo "TRX_BUILD=true" >> $GITHUB_ENV
ZIP_SUFFIX=".trx"
fi
rm -f "$DIR"/FLAG-*
zip_name="./public/$(basename "$DIR")${ZIP_SUFFIX}.zip"
echo "Creating $zip_name"
( cd "$DIR"; zip -0 -r "../$zip_name" . )
done
- name: Show all zip files
run: |
ls -lh ./public/*.zip
- name: Upload assets
uses: andelf/nightly-release@main
- name: Generate names
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAG: ${{ needs.check.outputs.tag }}
FW_VER: ${{ needs.check.outputs.fw_ver }}
FW_DATE: ${{ needs.check.outputs.fw_date }}
run: |
NAME="$TAG"
DESC="OpenWrt $FW_VER [$FW_DATE]"
if [ "$TRX_BUILD" = true ]; then
NAME="TRX-$TAG"
TAG="$TAG-trx"
DESC="TRX images based on $DESC"
fi
echo "REL_TAG=$TAG" >> $GITHUB_ENV
echo "REL_NAME=$NAME" >> $GITHUB_ENV
echo "REL_DESC=$DESC" >> $GITHUB_ENV
- name: Upload assets
uses: softprops/action-gh-release@v2
with:
prerelease: false
tag_name: ${{ needs.check.outputs.tag }}
name: '${{ needs.check.outputs.tag }}'
draft: ${{ env.TEST_BUILD == 'true' || github.event.inputs.fake_build == 'true' }}
prerelease: true
tag_name: ${{ env.REL_TAG }}${{ env.TAG_SUFFIX }}
name: '${{ env.REL_NAME }}'
body: |
OpenWrt ${{ needs.check.outputs.fw_ver }} [${{ needs.check.outputs.fw_date }}]
${{ env.REL_DESC }}
author: [remittor](https://github.com/remittor)
files: ./public/*.zip
+6 -6
View File
@@ -13,16 +13,16 @@ CONFIG_FEED__alpine_fan_control=m
#GIT_PACKAGE luci-app-temp-status=https://github.com/openwrt-xiaomi/luci-app-temp-status.git master
### luci-app-disks-info
#GIT_PACKAGE luci-app-disks-info=https://github.com/openwrt-xiaomi/luci-app-disks-info.git master
#GIT_PACKAGE luci-app-disks-info=https://github.com/gSpotx2f/luci-app-disks-info.git master
### luci-app-diskman
#GIT_PACKAGE luci-app-diskman=https://github.com/openwrt-xiaomi/luci-app-diskman.git master
#GIT_PACKAGE luci-app-diskman=https://github.com/lisaac/luci-app-diskman.git master
### luci-theme-argon
#GIT_PACKAGE luci-theme-argon=https://github.com/openwrt-xiaomi/luci-theme-argon.git master
#GIT_PACKAGE luci-theme-argon=https://github.com/jerrykuku/luci-theme-argon.git master
### luci-app-argon-config
#GIT_PACKAGE luci-app-argon-config=https://github.com/openwrt-xiaomi/luci-app-argon-config.git master
#GIT_PACKAGE luci-app-argon-config=https://github.com/jerrykuku/luci-app-argon-config.git master
### luci-app-tn-netports
#GIT_PACKAGE luci-app-tn-netports=https://github.com/openwrt-xiaomi/luci-app-tn-netports.git master
@@ -46,9 +46,9 @@ CONFIG_FEED__alpine_fan_control=m
CONFIG_FEED__amneziawg=m
### Zapret
#GIT_FEED _zapret=https://github.com/remittor/zapret-openwrt.git zap1
#GIT_FEED _zapret=https://github.com/remittor/zapret-openwrt.git;zap1
CONFIG_FEED__zapret=m
#GIT_FEED _zapret2=https://github.com/remittor/zapret-openwrt.git master
#GIT_FEED _zapret2=https://github.com/remittor/zapret-openwrt.git;master
CONFIG_FEED__zapret2=m
### ruantiblock
File renamed without changes.
File renamed without changes.
+4
View File
@@ -45,6 +45,8 @@ CONFIG_PACKAGE_luci-app-filemanager=y
CONFIG_PACKAGE_luci-i18n-filemanager-ru=y
#CONFIG_PACKAGE_atftp=y
#CONFIG_PACKAGE_atftpd=y
CONFIG_PACKAGE_lscpu=y
CONFIG_PACKAGE_bind-tools=y
CONFIG_PACKAGE_facinstall=y
### Add-on programs
@@ -121,6 +123,7 @@ CONFIG_PACKAGE_relayd=y
CONFIG_PACKAGE_luci-proto-relay=y
### Luci proto
CONFIG_PACKAGE_luci-proto-gre=y
CONFIG_PACKAGE_luci-proto-3g=y
CONFIG_PACKAGE_luci-proto-ipv6=y
@@ -186,6 +189,7 @@ CONFIG_OPENSSL_WITH_MDC2=y
CONFIG_OPENSSL_WITH_WHIRLPOOL=y
### SSL certificates
CONFIG_PACKAGE_ca-bundle=y
CONFIG_PACKAGE_ca-certificates=y
### Luci
@@ -37,12 +37,14 @@ CONFIG_PACKAGE_uboot-envtools=y
CONFIG_PACKAGE_mtd-utils=y
CONFIG_PACKAGE_iw=y
CONFIG_PACKAGE_mc=y
CONFIG_PACKAGE_rsync=y
CONFIG_PACKAGE_luci-app-ttyd=y
CONFIG_PACKAGE_luci-i18n-ttyd-ru=y
CONFIG_PACKAGE_luci-app-filemanager=y
CONFIG_PACKAGE_luci-i18n-filemanager-ru=y
CONFIG_PACKAGE_atftp=y
#CONFIG_PACKAGE_atftpd=y
CONFIG_PACKAGE_lscpu=y
CONFIG_PACKAGE_facinstall=y
CONFIG_PACKAGE_kmod-mtd-rw=y
@@ -55,6 +57,7 @@ CONFIG_PACKAGE_iperf3=y
CONFIG_PACKAGE_htop=y
CONFIG_PACKAGE_nano=y
CONFIG_PACKAGE_ccrypt=y
CONFIG_PACKAGE_curl=y
CONFIG_PACKAGE_wget=y
CONFIG_PACKAGE_patch=y
CONFIG_PACKAGE_diffutils=y
@@ -64,6 +67,10 @@ CONFIG_PACKAGE_terminfo=y
CONFIG_PACKAGE_zlib=y
CONFIG_PACKAGE_ethtool=y
### SSL certificates
CONFIG_PACKAGE_ca-bundle=y
CONFIG_PACKAGE_ca-certificates=y
### Luci
CONFIG_LUCI_LANG_en=y
CONFIG_LUCI_LANG_ru=y
File renamed without changes.
-5
View File
@@ -9,12 +9,7 @@ CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ru=y
CONFIG_PACKAGE_igmpproxy=y
CONFIG_PACKAGE_zapret=y
CONFIG_PACKAGE_zapret-tpws=y
CONFIG_PACKAGE_zapret-mdig=y
CONFIG_PACKAGE_zapret-ip2net=y
CONFIG_PACKAGE_luci-app-zapret=y
CONFIG_PACKAGE_zapret2=y
CONFIG_PACKAGE_zapret2-mdig=y
CONFIG_PACKAGE_zapret2-ip2net=y
CONFIG_PACKAGE_luci-app-zapret2=y
File renamed without changes.
File renamed without changes.
View File
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+14
View File
@@ -0,0 +1,14 @@
CONFIG_TARGET_mediatek=y
CONFIG_TARGET_mediatek_filogic=y
CONFIG_TARGET_mediatek_filogic_DEVICE_asus_tuf-ax4200q=y
#include _addons.config
#include _base_initrd.config
#include _wifi_en.config
CONFIG_TARGET_INITRAMFS_FORCE=y
CONFIG_TARGET_ROOTFS_INITRAMFS=y
CONFIG_USES_SEPARATE_INITRAMFS=n
CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE=n
File renamed without changes.
File renamed without changes.
+4 -2
View File
@@ -17,7 +17,7 @@ else
fi
log_msg() {
printf "%s\n" "$1" >&$OUTPUT_PIPE
printf "%s\n" "$1" >&8 || printf "%s\n" "$1"
}
log_err() {
@@ -28,7 +28,7 @@ log_err() {
_R=\\033[31m
_N=\\033[m
fi
printf "$_R%s$_N\n" "ERROR: $msg" >&$OUTPUT_PIPE
printf "$_R%s$_N\n" "ERROR: $msg" >&8 || printf "$_R%s$_N\n" "ERROR: $msg"
}
die() {
@@ -150,6 +150,8 @@ if [ -f "$WIFI77_FN" ]; then
WIFI_COUNTRY=$( get_param_qq CONFIG_PACKAGE_MAC80211_COUNTRY "$TOPDIR/.config" )
sed -i "s#%COUNTRY%#${WIFI_COUNTRY}#g" "$WIFI77_FN"
fi
else
rm -f "$WIFI77_FN"
fi
fi
-1
View File
@@ -16,7 +16,6 @@ CONFIG_TARGET_ipq806x_generic_DEVICE_xiaomi_r3d=y
### Temp and sensors
CONFIG_PACKAGE_lm-sensors=y
CONFIG_PACKAGE_lm-sensors-detect=y
CONFIG_PACKAGE_alpine-fan-control=y
CONFIG_PACKAGE_luci-app-alpine-fan-control=y
CONFIG_PACKAGE_luci-app-temp-status=y
-1
View File
@@ -11,7 +11,6 @@ CONFIG_TARGET_mediatek_filogic_DEVICE_asus_rt-ax52=y
### Temp and sensors
CONFIG_PACKAGE_lm-sensors=y
CONFIG_PACKAGE_lm-sensors-detect=y
CONFIG_PACKAGE_luci-app-temp-status=y
CONFIG_PACKAGE_luci-i18n-temp-status-ru=y
-1
View File
@@ -11,7 +11,6 @@ CONFIG_TARGET_mediatek_filogic_DEVICE_asus_rt-ax57m=y
### Temp and sensors
CONFIG_PACKAGE_lm-sensors=y
CONFIG_PACKAGE_lm-sensors-detect=y
CONFIG_PACKAGE_luci-app-temp-status=y
CONFIG_PACKAGE_luci-i18n-temp-status-ru=y
-1
View File
@@ -14,7 +14,6 @@ CONFIG_TARGET_mediatek_filogic_DEVICE_asus_rt-ax59u=y
### Temp and sensors
CONFIG_PACKAGE_lm-sensors=y
CONFIG_PACKAGE_lm-sensors-detect=y
CONFIG_PACKAGE_luci-app-temp-status=y
CONFIG_PACKAGE_luci-i18n-temp-status-ru=y
CONFIG_PACKAGE_collectd-mod-sensors=y
-1
View File
@@ -16,7 +16,6 @@ CONFIG_TARGET_qualcommax_ipq807x_DEVICE_asus_rt-ax89x=y
### Temp and sensors
CONFIG_PACKAGE_lm-sensors=y
CONFIG_PACKAGE_lm-sensors-detect=y
CONFIG_PACKAGE_luci-app-temp-status=y
CONFIG_PACKAGE_luci-i18n-temp-status-ru=y
CONFIG_PACKAGE_collectd-mod-sensors=y
-1
View File
@@ -14,7 +14,6 @@ CONFIG_TARGET_mediatek_filogic_DEVICE_asus_tuf-ax4200=y
### Temp and sensors
CONFIG_PACKAGE_lm-sensors=y
CONFIG_PACKAGE_lm-sensors-detect=y
CONFIG_PACKAGE_luci-app-temp-status=y
CONFIG_PACKAGE_luci-i18n-temp-status-ru=y
CONFIG_PACKAGE_collectd-mod-sensors=y
+41
View File
@@ -0,0 +1,41 @@
CONFIG_TARGET_mediatek=y
CONFIG_TARGET_mediatek_filogic=y
CONFIG_TARGET_mediatek_filogic_DEVICE_asus_tuf-ax4200q=y
#include _addons.config
#include _base.config
#include _wifi_en.config
#include _printer.config
#include _samba.config
#include _torrents.config
#include _proxy.config
#include _argon.config
#include _vpn.config
### Temp and sensors
CONFIG_PACKAGE_lm-sensors=y
CONFIG_PACKAGE_luci-app-temp-status=y
CONFIG_PACKAGE_luci-i18n-temp-status-ru=y
CONFIG_PACKAGE_collectd-mod-sensors=y
### HDD tools
CONFIG_PACKAGE_smartmontools=y
CONFIG_PACKAGE_hdparm=y
CONFIG_PACKAGE_hd-idle=y
CONFIG_PACKAGE_luci-app-hd-idle=y
#CONFIG_PACKAGE_luci-i18n-hd-idle-ru=y
CONFIG_PACKAGE_luci-app-disks-info=y
#CONFIG_PACKAGE_luci-i18n-disks-info-ru=y
CONFIG_PACKAGE_luci-app-diskman=y
### Luci dashboard
CONFIG_PACKAGE_luci-mod-dashboard=y
CONFIG_PACKAGE_luci-i18n-dashboard-ru=y
### Network Ports viewer
CONFIG_PACKAGE_luci-app-tn-netports=y
CONFIG_PACKAGE_luci-i18n-tn-netports-ru=y
### TimeControl
CONFIG_PACKAGE_luci-app-timecontrol=m
-1
View File
@@ -14,7 +14,6 @@ CONFIG_TARGET_mediatek_filogic_DEVICE_asus_tuf-ax6000=y
### Temp and sensors
CONFIG_PACKAGE_lm-sensors=y
CONFIG_PACKAGE_lm-sensors-detect=y
CONFIG_PACKAGE_luci-app-temp-status=y
CONFIG_PACKAGE_luci-i18n-temp-status-ru=y
CONFIG_PACKAGE_collectd-mod-sensors=y
+189 -81
View File
@@ -12,21 +12,21 @@ fi
MAKE_JOBS=
XTARGET=
OPT_FULL_REBUILD=false
WIFI_EN=true
KALLSYMS=false
TESTING_KERNEL=false
BUILD_ONLY_INITRAMFS=false
BUILD_SKIP_INITRAMFS=false
ONLY_INIT=false
while getopts "j:t:fiskTI" opt; do
while getopts "j:t:fisWkTI" opt; do
case $opt in
j) MAKE_JOBS=$OPTARG;;
t) XTARGET=$OPTARG;;
f) OPT_FULL_REBUILD=true;;
W) WIFI_EN=false;;
k) KALLSYMS=true;;
T) TESTING_KERNEL=true;;
i) BUILD_ONLY_INITRAMFS=true;;
s) BUILD_SKIP_INITRAMFS=true;;
I) ONLY_INIT=true;;
esac
done
@@ -70,8 +70,9 @@ function build_target {
fi
inclst=$( get_cfg_inc_lst $CFG )
for inc in $inclst; do
incfn=$XDIR/$inc
incfn=$XDIR/_cfginc/$inc
[ ! -f $incfn ] && die "File '$inc' not found!"
[ "$WIFI_EN" == false -a $inc == "_wifi_en.config" ] && continue
sed -i "/#include $inc/a <<LF>><<LF>>" $CFG
sed -i "s/<<LF>>/\n/g" $CFG
sed -i "/#include $inc/ r $incfn" $CFG
@@ -103,27 +104,74 @@ function build_target {
echo "CONFIG_TESTING_KERNEL=y" >> $CFG
fi
X_VERSION_MK=$XDIR/include/version.mk
X_VERSION_NUMBER=$( grep -o -P '(?<=,\$\(VERSION_NUMBER\),).*(?=\))' $X_VERSION_MK 2>/dev/null )
[ -z "$X_VERSION_NUMBER" ] && { echo "ERROR: Cannot determine VERSION_NUMBER"; exit 30; }
echo "VERSION_NUMBER = $X_VERSION_NUMBER"
X_BOARD_NAME=$( sed -n 's/^CONFIG_TARGET_\([^_=\n]\+\)=y$/\1/p' $CFG )
[ -z "$X_BOARD_NAME" ] && { echo "ERROR: cannot found BOARD_NAME"; exit 31; }
X_SUBTARGET_NAME=$( sed -n 's/^CONFIG_TARGET_[^_=\n]\+_\([^_=\n]\+\)=y$/\1/p' $CFG )
[ -z "$X_SUBTARGET_NAME" ] && { echo "ERROR: cannot found SUBTARGET"; exit 31; }
echo "BOARD_NAME = $X_BOARD_NAME SUBTARGET = $X_SUBTARGET_NAME"
VERMAGIC_FN=$XDIR/vermagic-$X_BOARD_NAME-$X_SUBTARGET_NAME-$X_VERSION_NUMBER.list
if [ ! -f $VERMAGIC_FN -a -f $XDIR/vermagic_update.sh ]; then
bash $XDIR/vermagic_update.sh $X_BOARD_NAME $X_SUBTARGET_NAME
if [ ! -f $VERMAGIC_FN ]; then
echo "ERROR: cannot create file $VERMAGIC_FN"
exit 41
fi
fi
if [ 1 = 1 ]; then
MK_IMAGE=$XDIR/include/image.mk
CURDATE=$( date --utc +%y%m%d )
############ change images prefix ############
# IMG_PREFIX:=$(VERSION_DIST_SANITIZED)-$(IMG_PREFIX_VERNUM)$(IMG_PREFIX_VERCODE)$(IMG_PREFIX_EXTRA)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
sed -i -e 's/^IMG_PREFIX:=.*/IMG_PREFIX:=$(VERSION_DIST_SANITIZED)-$(call sanitize,$(VERSION_NUMBER))-'$CURDATE'/g' $XDIR/include/image.mk
if ! grep -q "(VERSION_NUMBER))-$CURDATE" $MK_IMAGE ; then
############ change images prefix ############
# IMG_PREFIX:=$(VERSION_DIST_SANITIZED)-$(IMG_PREFIX_VERNUM)$(IMG_PREFIX_VERCODE)$(IMG_PREFIX_EXTRA)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
sed -i -e 's/^IMG_PREFIX:=.*/IMG_PREFIX:=$(VERSION_DIST_SANITIZED)-$(call sanitize,$(VERSION_NUMBER))-'$CURDATE'/g' $MK_IMAGE
echo ">>> image.mk patched !!! (IMG_PREFIX)"
fi
fi
if [ 1 = 1 ]; then
############ remove "squashfs" suffix ############
# DEVICE_IMG_NAME = $$(DEVICE_IMG_PREFIX)-$$(1)-$$(2)
sed -i -e 's/.*DEVICE_IMG_NAME =.*/ DEVICE_IMG_NAME = $$(DEVICE_IMG_PREFIX)-$$(2)/g' $XDIR/include/image.mk
if grep "squashfs-sys" $XDIR/target/linux/mediatek/image/filogic.mk >/dev/null ; then
MK_IMAGE=$XDIR/include/image.mk
if grep -q 'DEVICE_IMG_NAME = $$(DEVICE_IMG_PREFIX)-$$(1)-$$(2)' $MK_IMAGE ; then
sed -i -e 's/.*DEVICE_IMG_NAME =.*/ DEVICE_IMG_NAME = $$(DEVICE_IMG_PREFIX)-$$(2)/g' $MK_IMAGE
echo ">>> image.mk patched !!! (DEVICE_IMG_NAME)"
fi
if grep -q "squashfs-sys" $XDIR/target/linux/mediatek/image/filogic.mk ; then
sed -i 's/ squashfs-sys/ sys/g' $XDIR/target/linux/mediatek/image/filogic.mk
sed -i 's/ squashfs-sys/ sys/g' $XDIR/target/linux/mediatek/image/mt7622.mk
sed -i 's/ squashfs-sys/ sys/g' $XDIR/target/linux/mediatek/image/mt7623.mk
fi
fi
fi
AWG_LUCI_MK=$XDIR/package/feeds/_ruantiblock/luci-app-ruantiblock/Makefile
if [ -f $AWG_LUCI_MK ]; then
if ! grep "PKG_PROVIDES" $AWG_LUCI_MK >/dev/null ; then
sed -i 's/LUCI_PKGARCH:=all/LUCI_PKGARCH:=all\nPKG_PROVIDES:=luci-app-ruantiblock/g' $AWG_LUCI_MK
if ! grep '^CONFIG_BUILD_ALL_HOST_TOOLS=y' $CFG ; then
MK_HOST_TOOLS=$XDIR/tools/Makefile
# tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(CONFIG_USES_MINOR),y) += yafut
if grep -q '(CONFIG_USES_MINOR),y)' $MK_HOST_TOOLS ; then
# disable build yafut - not support devices with yaffs !!!
sed -i 's/\$(CONFIG_USES_MINOR),y)/,y)/g' $MK_HOST_TOOLS
echo ">>> tools/Makefile patched !!! (disable yafut)"
fi
fi
BATADV_DIR=$XDIR/feeds/luci/protocols/luci-proto-batman-adv/htdocs/luci-static/resources/protocol
if [ -d $BATADV_DIR ]; then
if [ ! -f $BATADV_DIR/batadv_vlan.js ]; then
BATADV_VLAN_URL="https://github.com/luminem/luci/raw/4e0612a45e4be8c58de2bbd21c3bffbcf5252be4/protocols/luci-proto-batman-adv/htdocs/luci-static/resources/protocol/batadv_vlan.js"
curl -sSL "$BATADV_VLAN_URL" -o "$BATADV_DIR/batadv_vlan.js"
echo ">>> batman_adv patched !!!"
fi
fi
RAB_LUCI_MK=$XDIR/package/feeds/_ruantiblock/luci-app-ruantiblock/Makefile
if [ -f $RAB_LUCI_MK ]; then
if ! grep "PKG_PROVIDES" $RAB_LUCI_MK >/dev/null ; then
sed -i 's/LUCI_PKGARCH:=all/LUCI_PKGARCH:=all\nPKG_PROVIDES:=luci-app-ruantiblock/g' $RAB_LUCI_MK
echo ">>> ruantiblock patched !!!"
fi
fi
@@ -134,27 +182,85 @@ function build_target {
fi
fi
PODKOP_MK=$XDIR/package/feeds/_podkop/podkop/Makefile
if [ -f $PODKOP_MK ]; then
sed -i 's/+sing-box / /g' $PODKOP_MK
sed -i 's/CONFLICTS:=.*/CONFLICTS:=/g' $PODKOP_MK
fi
PODKOP_SH=$XDIR/package/feeds/_podkop/podkop/files/usr/bin/podkop
if [ -f $PODKOP_SH ] && ! grep -q '(which sing-box)' $PODKOP_SH ; then
sed -i '/,\\"dns_configured\\":/i [ -z "$(which sing-box)" ] && status="not installed"' $PODKOP_SH
PODKOP_DIR=$XDIR/package/feeds/_podkop
if [ -d $PODKOP_DIR ]; then
PODKOP_PATCH=
PODKOP_MK=$PODKOP_DIR/podkop/Makefile
if [ -f $PODKOP_MK ] && grep -q '+sing-box' $PODKOP_MK ; then
sed -i 's/+sing-box / /g' $PODKOP_MK
sed -i 's/CONFLICTS:=.*/CONFLICTS:=/g' $PODKOP_MK
PODKOP_PATCH="$PODKOP_PATCH (del depend sing-box)"
fi
PODKOP_SH=$PODKOP_DIR/podkop/files/usr/bin/podkop
if [ -f $PODKOP_SH ] && ! grep -q '(which sing-box)' $PODKOP_SH ; then
sed -i '/,\\"dns_configured\\":/i [ -z "$(which sing-box)" ] && status="not installed"' $PODKOP_SH
PODKOP_PATCH="$PODKOP_PATCH (status for sing-box)"
fi
if [ -f $PODKOP_MK ] && grep -q 'PODKOP_VERSION' $PODKOP_MK ; then
PKGVERLIST=$( git ls-remote --tags https://github.com/itdoginfo/podkop.git | awk -F/ '{print $3}' | grep -Ev '^v' | sort -V | tail -n 2 )
VER_PREV=$( sed -n '1p' <<< "$PKGVERLIST" )
VER_LATEST=$( sed -n '2p' <<< "$PKGVERLIST" )
[ -z "$VER_LATEST" ] && { echo "ERROR: cannot detect version of podkop!"; exit 1; }
sed -i 's/PKG_VERSION :=.*/PKG_VERSION:='$VER_LATEST'/g' $PODKOP_MK
PODKOP_PATCH="$PODKOP_PATCH (set ver $VER_LATEST)"
fi
PODKOP_MK=$PODKOP_DIR/luci-app-podkop/Makefile
if [ -f $PODKOP_MK ] && grep -q 'PODKOP_VERSION' $PODKOP_MK ; then
PKGVERLIST=$( git ls-remote --tags https://github.com/itdoginfo/podkop.git | awk -F/ '{print $3}' | grep -Ev '^v' | sort -V | tail -n 2 )
VER_PREV=$( sed -n '1p' <<< "$PKGVERLIST" )
VER_LATEST=$( sed -n '2p' <<< "$PKGVERLIST" )
[ -z "$VER_LATEST" ] && { echo "ERROR: cannot detect version of podkop!"; exit 1; }
sed -i 's/PKG_VERSION :=.*/PKG_VERSION:='$VER_LATEST'/g' $PODKOP_MK
PODKOP_PATCH="$PODKOP_PATCH (Set Ver $VER_LATEST)"
fi
[ "$PODKOP_PATCH" != "" ] && echo ">>> podkop patched !!! $PODKOP_PATCH"
fi
DROPBEAR_MK=$XDIR/package/network/services/dropbear/Makefile
DROPBEAR_DIR=$XDIR/package/network/services/dropbear
DROPBEAR_MK=$DROPBEAR_DIR/Makefile
TMP_DROPBEAR_DIR=$XDIR/_dropbear2024
TMP_DROPBEAR_MK=$TMP_DROPBEAR_DIR/Makefile
if [ -f $DROPBEAR_MK ]; then
sed -i 's/^PKG_RELEASE:=.*/PKG_RELEASE:=0/g' $DROPBEAR_MK
sed -i '/,CONFIG_DROPBEAR_MODERN_ONLY,/d' $DROPBEAR_MK
sed -i 's/\tCONFIG_DROPBEAR_MODERN_ONLY/ /g' $DROPBEAR_MK
sed -i 's/ CONFIG_DROPBEAR_MODERN_ONLY/ /g' $DROPBEAR_MK
sed -i 's/DROPBEAR_DH_GROUP14_SHA1,0/ /g' $DROPBEAR_MK
sed -i 's/DROPBEAR_SHA1_HMAC,0/ /g' $DROPBEAR_MK
# download dropbear 2024.86 (OpenWrt v24.10)
if [ ! -f $TMP_DROPBEAR_DIR/Makefile ]; then
rm -rf $TMP_DROPBEAR_DIR
git clone --depth 1 --filter=blob:none --sparse https://github.com/openwrt/openwrt.git $TMP_DROPBEAR_DIR && (
cd $TMP_DROPBEAR_DIR
git sparse-checkout set package/network/services/dropbear
git checkout a2f0cd35ac1d15e69f4897b35c049e175dd06825 # commit 2024-12-12 https://github.com/openwrt/openwrt/commits/openwrt-25.12/package/network/services/dropbear
mv package/network/services/dropbear/* .
)
rm -rf $TMP_DROPBEAR_DIR/package
rm -rf $TMP_DROPBEAR_DIR/.git
fi
fi
if [ -f $TMP_DROPBEAR_MK ] && ! grep -q 'PKG_RELEASE:=0' $TMP_DROPBEAR_MK ; then
# patch: Disable MODERN and enable RSA/DH-SHA1
sed -i 's/^PKG_RELEASE:=.*/PKG_RELEASE:=0/g' $TMP_DROPBEAR_MK
sed -i '/,CONFIG_DROPBEAR_MODERN_ONLY,/d' $TMP_DROPBEAR_MK
sed -i 's/\tCONFIG_DROPBEAR_MODERN_ONLY/ /g' $TMP_DROPBEAR_MK
sed -i 's/ CONFIG_DROPBEAR_MODERN_ONLY/ /g' $TMP_DROPBEAR_MK
sed -i 's/DROPBEAR_DH_GROUP14_SHA1,0/ /g' $TMP_DROPBEAR_MK
sed -i 's/DROPBEAR_SHA1_HMAC,0/ /g' $TMP_DROPBEAR_MK
echo ">>> dropbear patched !!! (disable MODERN_ONLY)"
fi
if [ -f $DROPBEAR_MK ] && [ -f $TMP_DROPBEAR_MK ] && ! cmp -s $DROPBEAR_MK $TMP_DROPBEAR_MK ; then
# downgrade dropbear to 2024.86 (OpenWrt v24.10)
rm -rf $DROPBEAR_DIR/*
cp -a $TMP_DROPBEAR_DIR/. $DROPBEAR_DIR/
echo ">>> dropbear downgraded to 2024.86 !!!"
fi
HOST_TOOLS_DIR=$XDIR/staging_dir/host
HOST_TOOLS_STAGE=0
[ -d $HOST_TOOLS_DIR ] && HOST_TOOLS_STAGE=1
make defconfig
if [ -d $HOST_TOOLS_DIR -a $HOST_TOOLS_STAGE = 0 ]; then
ls -la $HOST_TOOLS_DIR/bin | awk '{print $9 " -> " $11}' | sort > $HOST_TOOLS_DIR/.prereq-build-list
#cat $HOST_TOOLS_DIR/.prereq-build-list | cksum | awk '{print $1}' > $HOST_TOOLS_DIR/.prereq-build-list.crc
fi
NSS_DRV_PPPOE_ENABLE=$( get_cfg_opt_flag $CFG NSS_DRV_PPPOE_ENABLE )
if [ "$NSS_DRV_PPPOE_ENABLE" = y ]; then
@@ -189,7 +295,10 @@ function build_target {
echo -e "\nCONFIG_PACKAGE_wpad-openssl=y\n" >> $CFG
fi
#DASHBRDPO=$XDIR/feeds/luci/modules/luci-mod-dashboard/po/ru/dashboard.po
DASHBRDPO=$XDIR/feeds/luci/modules/luci-mod-dashboard/po/ru/dashboard.po
if [ -f $DASHBRDPO ]; then
sed -i 's/msgid "Dashboard"/msgid "__dash_board__"/g' $DASHBRDPO
fi
DASHBRDPO=$XDIR/package/feeds/luci/luci-mod-dashboard/po/ru/dashboard.po
if [ -f $DASHBRDPO ]; then
sed -i 's/msgid "Dashboard"/msgid "__dash_board__"/g' $DASHBRDPO
@@ -261,28 +370,32 @@ function build_target {
echo "Patch '$(basename $incfn)' result: OK"
done
OPKG_DIR=$XDIR/files/etc/opkg
if [ -d $OPKG_DIR ]; then
rm -rf $OPKG_DIR
APK_DIR=$XDIR/files/etc/apk
if [ -d $APK_DIR ]; then
rm -rf $APK_DIR
fi
FANT_PKG_KEY=$XDIR/53FF2B6672243D28.pub
FANT_PKG_KEY=$XDIR/20241123170031.pub
if [ -f $FANT_PKG_KEY ]; then
OPKG_SRC_DIR=$XDIR/package/system/opkg/files
OPKG_KEYS_DIR=$OPKG_DIR/keys
mkdir -p $OPKG_KEYS_DIR
cp $FANT_PKG_KEY $OPKG_KEYS_DIR/53ff2b6672243d28
OPKG_CFEED_FN=$OPKG_DIR/customfeeds.conf
cp $OPKG_SRC_DIR/customfeeds.conf $OPKG_CFEED_FN
PKG_LINK="https://fantastic-packages.github.io/packages/releases/<<VER>>/packages/<<ARCH>>"
echo "" >> $OPKG_CFEED_FN
echo "src/gz fantastic_packages_luci $PKG_LINK/luci" >> $OPKG_CFEED_FN
echo "src/gz fantastic_packages_packages $PKG_LINK/packages" >> $OPKG_CFEED_FN
echo "src/gz fantastic_packages_special $PKG_LINK/special" >> $OPKG_CFEED_FN
APK_SRC_DIR=$XDIR/package/system/apk/files
APK_KEYS_DIR=$APK_DIR/keys
mkdir -p $APK_KEYS_DIR
cp $FANT_PKG_KEY $APK_KEYS_DIR/fantastic-packages-20241123170031.pem
APK_CFEED_FN=$APK_DIR/repositories.d/customfeeds.list
mkdir -p $APK_DIR/repositories.d
cp $APK_SRC_DIR/customfeeds.list $APK_CFEED_FN
PKG_LINK="https://fantastic-packages.github.io/releases/<<VER>>/packages/<<ARCH>>"
echo "" >> $APK_CFEED_FN
echo "$PKG_LINK/luci/packages.adb" >> $APK_CFEED_FN
echo "$PKG_LINK/packages/packages.adb" >> $APK_CFEED_FN
echo "$PKG_LINK/special/packages.adb" >> $APK_CFEED_FN
TARGET_ARCH_PACKAGES=$( get_cfg_opt_value $CFG TARGET_ARCH_PACKAGES )
[ -z "$TARGET_ARCH_PACKAGES" ] && die "Cannot find TARGET ARCH"
sed -i "s/<<VER>>/24.10/g" $OPKG_CFEED_FN
sed -i "s/<<ARCH>>/$TARGET_ARCH_PACKAGES/g" $OPKG_CFEED_FN
logmsg "Added support of Fantastic packages [https://fantastic-packages.github.io/packages]"
sed -i "s/<<VER>>/25.12/g" $APK_CFEED_FN
sed -i "s/<<ARCH>>/$TARGET_ARCH_PACKAGES/g" $APK_CFEED_FN
logmsg "Added support of Fantastic packages [https://fantastic-packages.github.io/releases]"
fi
if [ $BUILD_ONLY_INITRAMFS = true ]; then
rm -f $APK_DIR/repositories.d/customfeeds.list
fi
SYSCTLCONF_FN=$XDIR/files/etc/sysctl.conf
@@ -313,13 +426,19 @@ function build_config {
local cfg=$1
local cfg_name=$( basename $cfg )
local target_name=${cfg_name%.*}
local initramfs=false
local board=$( get_cfg_board $cfg )
local subtarget=$( get_cfg_subtarget $cfg $board )
local device=$( get_cfg_dev_lst $cfg $board $subtarget )
local outdir=$XDIR/bin/targets/$board/$subtarget
echo Start build for target $cfg_name "($board-$subtarget-$device)"
build_target $cfg_name
if echo "$cfg" | grep -q '_initramfs/' ; then
initramfs=true
target_name=${target_name}_initramfs
fi
echo Start build for target $target_name "($board-$subtarget-$device)"
build_target $cfg
if [ ! -f $outdir/kernel-debug.tar.zst ]; then
echo "ERROR: cannot build images for target $target_name"
@@ -334,6 +453,9 @@ function build_config {
if [ "$XTARGET" != "*" ]; then
TARGETCFG=$XDIR/$XTARGET
if [ $BUILD_ONLY_INITRAMFS = true ]; then
TARGETCFG=$XDIR/_initramfs/$XTARGET
fi
XTARGET_EXT="${XTARGET##*.}"
[ $XTARGET_EXT != config ] && TARGETCFG=$TARGETCFG.config
[ ! -f $TARGETCFG ] && die "File '"`basename $TARGETCFG`"' not found!"
@@ -345,7 +467,12 @@ if [ "$XTARGET" != "*" ]; then
fi
XOUT=$XDIR/xout
CFG_LIST=$( find $XDIR/* -maxdepth 1 -name '[a-z0-9]*.config' )
if [ $BUILD_ONLY_INITRAMFS = true ]; then
CFG_LIST=$( find $XDIR/_initramfs/* -maxdepth 1 -name '[a-z0-9]*.config' )
else
CFG_LIST=$( find $XDIR/* -maxdepth 1 -name '[a-z0-9]*.config' )
fi
rm -rf $XOUT
@@ -354,35 +481,16 @@ if [ -z "$CFG_LIST" ]; then
exit 1
fi
INITRAMFS_COUNT=0
if [ $BUILD_ONLY_INITRAMFS = true ]; then
echo "Start make initramfs configs!"
else
echo "Start make non initramfs configs!"
fi
clean_all
for CFG in $CFG_LIST; do
if [[ "$CFG" == *"_initramfs"* ]]; then
INITRAMFS_COUNT=$(( INITRAMFS_COUNT + 1 ))
fi
build_config $CFG
done
if [ $INITRAMFS_COUNT = 0 ] && [ $BUILD_ONLY_INITRAMFS = true ]; then
echo "ERROR: Cannot found initramfs configs!"
exit 1
fi
if [ $INITRAMFS_COUNT -gt 0 ] && [ $BUILD_SKIP_INITRAMFS != true ]; then
echo "Start make initramfs configs!"
clean_all
for CFG in $CFG_LIST; do
[[ "$CFG" != *"_initramfs"* ]] && continue # process only initramfs configs
build_config $CFG
done
fi
if [ $BUILD_ONLY_INITRAMFS != true ]; then
echo "Start make non initramfs configs!"
clean_all
for CFG in $CFG_LIST; do
[[ "$CFG" == *"_initramfs"* ]] && continue # skip initramfs configs
build_config $CFG
done
fi
echo "All targets was builded!"
+2 -2
View File
@@ -4,8 +4,8 @@ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
export XDIR=$SCRIPT_DIR
export XADDONSDIR=$XDIR/package/addons
FEEDSDIR=$XDIR/package/feeds
ADDONSCFG=$XDIR/_addons.config
ADDONSNSS=$XDIR/_addons_nss.config
ADDONSCFG=$XDIR/_cfginc/_addons.config
ADDONSNSS=$XDIR/_cfginc/_addons_nss.config
. ./xcommon.sh
-1
View File
@@ -16,7 +16,6 @@ CONFIG_TARGET_mediatek_filogic_DEVICE_asus_zenwifi-bt8=y
### Temp and sensors
CONFIG_PACKAGE_lm-sensors=y
CONFIG_PACKAGE_lm-sensors-detect=y
CONFIG_PACKAGE_luci-app-temp-status=y
CONFIG_PACKAGE_luci-i18n-temp-status-ru=y
CONFIG_PACKAGE_collectd-mod-sensors=y