16 Commits

Author SHA1 Message Date
remittor
f0703a0e7a xmake: Fix compile libutp 2026-02-21 08:40:51 +03:00
remittor
050e11496a build: Use separated tools cache for TRX builds 2026-02-09 12:46:44 +03:00
remittor
c516910a95 base: Add ip-full and tc-full 2026-02-09 12:39:48 +03:00
remittor
7cbc8a5396 build: Fix error on "Prepare for host tools" 2026-02-06 21:04:30 +03:00
remittor
f8bd84161f build: Fix NEW_OUT_DIR 2026-02-06 20:46:50 +03:00
remittor
ec51d4d719 xmake: Fix typo 2026-02-06 20:31:18 +03:00
remittor
c8b20b80db build: Add show disabled_services.lst 2026-02-06 20:13:17 +03:00
remittor
ee50ded9ed build: Fix dir for .prereq-build-list 2026-02-06 20:00:19 +03:00
remittor
60569faf5c build: Add ext output collapsed sections 2026-02-06 19:53:32 +03:00
remittor
4bf7b9f5f4 build: Fix step "Show host tools stamps" for TRX 2026-02-06 17:17:10 +03:00
remittor
ee1b28746a build: Fix directory name into "Prepare for host tools" 2026-02-06 16:42:39 +03:00
remittor
c79b2afda1 build: Add step "Build the TRX image without WiFi activation" 2026-02-06 16:25:38 +03:00
remittor
c8bbce4d22 xmake: Add option -W for build without WiFi activation 2026-02-06 15:32:05 +03:00
remittor
4be0aa94a4 xmake: Always try create vermagic-*.list file 2026-02-04 12:42:46 +03:00
remittor
c86f52cdb4 xmake: Add check for CONFIG_BUILD_ALL_HOST_TOOLS option 2026-02-04 11:56:44 +03:00
remittor
e7b3d9673d build: Add check for CONFIG_BUILD_ALL_HOST_TOOLS option 2026-02-04 11:56:21 +03:00
4 changed files with 111 additions and 19 deletions

View File

@@ -281,6 +281,9 @@ jobs:
if [ $(find . -maxdepth 1 -name "$VERMAGIC_LIST" | wc -l) = "0" ]; then if [ $(find . -maxdepth 1 -name "$VERMAGIC_LIST" | wc -l) = "0" ]; then
exit 41 exit 41
fi fi
echo "::group::disabled_services.lst"
cat disabled_services.lst || echo '<<< file disabled_services.lst not found >>>'
echo "::endgroup::"
FILE_DATE=$(date --utc +'%y%m%d') FILE_DATE=$(date --utc +'%y%m%d')
echo "status=success" >> $GITHUB_OUTPUT echo "status=success" >> $GITHUB_OUTPUT
echo "FW_VER=$FW_VER" >> $GITHUB_ENV echo "FW_VER=$FW_VER" >> $GITHUB_ENV
@@ -304,29 +307,39 @@ jobs:
TARGET: ${{ matrix.target }} TARGET: ${{ matrix.target }}
USE_CACHE: ${{ github.event.inputs.use_cache }} USE_CACHE: ${{ github.event.inputs.use_cache }}
CACHE_VER: ${{ github.event.inputs.cache_ver }} CACHE_VER: ${{ github.event.inputs.cache_ver }}
INP_TRX_BUILD: ${{ github.event.inputs.trx_build == 'true' }}
run: | run: |
echo USE_CACHE = $USE_CACHE echo USE_CACHE = $USE_CACHE
HOST_TOOLS_STG_DIR=staging_dir/host HOST_TOOLS_STG_DIR=staging_dir/host
HOST_TOOLS_BLD_DIR=build_dir/host HOST_TOOLS_BLD_DIR=build_dir/host
rm -rf staging_dir/
rm -rf build_dir/ rm -rf build_dir/
mkdir -p staging_dir/host mkdir -p staging_dir/host
mkdir -p build_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 ############ ########### check tools Makefile ############
if grep -q '(CONFIG_USES_MINOR),y) += yafut' tools/Makefile ; then if [ "$CONFIG_BUILD_ALL_HOST_TOOLS" != y ]; then
echo WARN: file tools/Makefile allowed compile yafut if grep -q '(CONFIG_USES_MINOR),y) += yafut' tools/Makefile ; then
echo ERROR: yafut compile not supported !!! echo WARN: file tools/Makefile allowed compile yafut
exit 51 echo ERROR: yafut compile not supported !!!
exit 51
fi
fi fi
########### get hash of dir with tools Makefiles ############ ########### get hash of dir with tools Makefiles ############
TOOLS_SRC_CRC=$( echo $TOOLS_SRC_HASH | cksum | awk '{print $1}' ) TOOLS_SRC_CRC=$( echo $TOOLS_SRC_HASH | cksum | awk '{print $1}' )
echo $TOOLS_SRC_CRC > logs/host_tools_sources.crc echo $TOOLS_SRC_CRC > logs/host_tools_sources.crc
echo "TOOLS_SRC_CRC=$TOOLS_SRC_CRC" >> $GITHUB_ENV echo "TOOLS_SRC_CRC=$TOOLS_SRC_CRC" >> $GITHUB_ENV
########### get prereq tools (w/o compile) ############ ########### get prereq tools (w/o compile) ############
ls -la $HOST_TOOLS_DIR/bin | awk '{print $9 " -> " $11}' | sort > $HOST_TOOLS_STG_DIR/.prereq-build-list ls -la $HOST_TOOLS_STG_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}' ) 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 cp -f $HOST_TOOLS_STG_DIR/.prereq-build-list logs/prereq-build-list.txt
echo "TOOLS_PREREQ_CRC=$TOOLS_PREREQ_CRC" >> $GITHUB_ENV echo "TOOLS_PREREQ_CRC=$TOOLS_PREREQ_CRC" >> $GITHUB_ENV
echo "::group::prereq-build-list"
cat $HOST_TOOLS_STG_DIR/.prereq-build-list
echo "::endgroup::"
########### patch for tools/Makefile ############### ########### patch for tools/Makefile ###############
cat <<'EOF' >> tools/Makefile cat <<'EOF' >> tools/Makefile
### ###
@@ -345,7 +358,7 @@ jobs:
TOOLS_STATUS="$${TOOLS_STATUS}$${T_STATUS}" ; \ TOOLS_STATUS="$${TOOLS_STATUS}$${T_STATUS}" ; \
printf " %s\n" "$$tool"; \ printf " %s\n" "$$tool"; \
done; \ done; \
: > $(STAGING_DIR_HOST)/.tools_compile_$$TOOLS_STATUS; \ printf "$$TOOLS_STATUS" > $(STAGING_DIR_HOST)/.tools_compile_mask; \
} > $(TOOLS_COMPILE_LIST) } > $(TOOLS_COMPILE_LIST)
endef endef
@@ -361,22 +374,30 @@ jobs:
exit 55 exit 55
fi fi
cp -f $HOST_TOOLS_STG_DIR/.tools_compile_list logs/tools_compile_list.txt cp -f $HOST_TOOLS_STG_DIR/.tools_compile_list logs/tools_compile_list.txt
for fn in $HOST_TOOLS_STG_DIR/.tools_compile_[yn]*; do TOOLS_COMPILE_CRC=$( cat $HOST_TOOLS_STG_DIR/.tools_compile_list | cksum | awk '{print $1}' )
[ -e $fn ] && cp -f $fn logs/$( basename "$fn" | sed 's/^\.//' )
done
TOOLS_COMPILE_CRC=$( cat $TOOLS_STG_DIR/.tools_compile_list | cksum | awk '{print $1}' )
echo "TOOLS_COMPILE_CRC=$TOOLS_COMPILE_CRC" >> $GITHUB_ENV echo "TOOLS_COMPILE_CRC=$TOOLS_COMPILE_CRC" >> $GITHUB_ENV
echo "::group::tools_compile_list"
cat $HOST_TOOLS_STG_DIR/.tools_compile_list
echo "::endgroup::"
#######
TOOLS_COMPILE_MASK=$( cat $HOST_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 if [ "$USE_CACHE" = "true" ]; then
echo USE_CACHE = $USE_CACHE echo USE_CACHE = $USE_CACHE
fi fi
if [ "$INP_TRX_BUILD" = true ]; then
CACHE_VER=$CACHE_VER-trx
fi
echo "USE_CACHE=$USE_CACHE" >> $GITHUB_ENV echo "USE_CACHE=$USE_CACHE" >> $GITHUB_ENV
echo "CACHE_VER=$CACHE_VER" >> $GITHUB_ENV echo "CACHE_VER=$CACHE_VER" >> $GITHUB_ENV
echo "HOST_TOOLS_STG_DIR=$HOST_TOOLS_STG_DIR" >> $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 "HOST_TOOLS_BLD_DIR=$HOST_TOOLS_BLD_DIR" >> $GITHUB_ENV
echo "status=success" >> $GITHUB_OUTPUT echo "status=success" >> $GITHUB_OUTPUT
- name: Restore cache for host tools - name: Restore host tools from cache
id: tools_cache_restore id: tools_cache_restore
if: github.event.inputs.use_cache == 'true' if: github.event.inputs.use_cache == 'true'
uses: actions/cache/restore@v4 uses: actions/cache/restore@v4
@@ -450,8 +471,10 @@ jobs:
- name: Show host tools stamps - name: Show host tools stamps
run: | run: |
ls -la staging_dir/host/stamp/ if [ -d staging_dir/host/stamp ]; then
ls -la staging_dir/host/stamp/ > logs/host_stamp_dir.txt ls -la staging_dir/host/stamp/
ls -la staging_dir/host/stamp/ > logs/host_stamp_dir.txt
fi
- name: Configure 2 - name: Configure 2
id: configure2 id: configure2
@@ -466,6 +489,9 @@ jobs:
cp -a logs_backup logs cp -a logs_backup logs
./xmake.sh $OPT_INITRAMFS -I -t $TARGET ./xmake.sh $OPT_INITRAMFS -I -t $TARGET
cp -f .config logs/config2 cp -f .config logs/config2
echo "::group::disabled_services.lst"
cat disabled_services.lst || echo '<<< file disabled_services.lst not found >>>'
echo "::endgroup::"
- name: Kernel compile - name: Kernel compile
id: kernel id: kernel
@@ -566,6 +592,37 @@ jobs:
echo "BLD_VER=$FW_VER" >> $GITHUB_ENV echo "BLD_VER=$FW_VER" >> $GITHUB_ENV
echo "OUT_DIR=$OUT_DIR" >> $GITHUB_ENV echo "OUT_DIR=$OUT_DIR" >> $GITHUB_ENV
- name: Build the TRX image without WiFi activation
id: compile_wifi_dis
if: steps.install.outputs.status == 'success' && env.TRX_BUILD == 'true' && env.FAKE_BUILD != 'true' && env.TEST_BUILD != 'true'
env:
TARGET: ${{ matrix.target }}
run: |
BLD_OUT_DIR=$OUT_DIR
NEW_OUT_DIR=$GITHUB_WORKSPACE/xout
mv -f "$OUT_DIR" $NEW_OUT_DIR
echo "OUT_DIR=$NEW_OUT_DIR" >> $GITHUB_ENV
./xmake.sh -W -i -t $TARGET
if [ ! -d "$BLD_OUT_DIR" ]; then
echo "OUT_DIR not found!"
exit 99
fi
cd "$BLD_OUT_DIR"
echo "Firmware TRX $BLD_VER [$FILE_DATE] builded!"
if [ ! -f kernel-debug.tar.zst ]; then
echo "File kernel-debug.tar.zst not found!"
exit 100
fi
find . -maxdepth 1 -type f ! -name '*-initramfs*' -delete
VER_MAJOR=$( echo "$BLD_VER" | cut -d. -f1 )
WIFIDIS_DIR=$NEW_OUT_DIR/images-WiFi-disabled
mkdir -p $WIFIDIS_DIR
STD_IMG_DIR="$WIFIDIS_DIR/openwrt-initramfs-bin-for-luci"
mkdir -p $STD_IMG_DIR
find . -maxdepth 1 -type f -name '*-initramfs*.bin' -exec mv -f {} $STD_IMG_DIR/openwrt-${VER_MAJOR}_${TARGET}_initramfs_nowifi.bin \;
find . -maxdepth 1 -type f -name '*-initramfs*.trx' -exec mv -f {} $WIFIDIS_DIR/openwrt-${VER_MAJOR}_${TARGET}_initramfs_nowifi.trx \;
echo "status=success" >> $GITHUB_OUTPUT
- name: Check space usage - name: Check space usage
run: df -hT run: df -hT

View File

@@ -46,6 +46,8 @@ CONFIG_PACKAGE_luci-i18n-filemanager-ru=y
#CONFIG_PACKAGE_atftp=y #CONFIG_PACKAGE_atftp=y
#CONFIG_PACKAGE_atftpd=y #CONFIG_PACKAGE_atftpd=y
CONFIG_PACKAGE_lscpu=y CONFIG_PACKAGE_lscpu=y
CONFIG_PACKAGE_ip-full=y
CONFIG_PACKAGE_tc-full=y
CONFIG_PACKAGE_bind-tools=y CONFIG_PACKAGE_bind-tools=y
CONFIG_PACKAGE_facinstall=y CONFIG_PACKAGE_facinstall=y

View File

@@ -17,7 +17,7 @@ else
fi fi
log_msg() { log_msg() {
printf "%s\n" "$1" >&$OUTPUT_PIPE printf "%s\n" "$1" >&8 || printf "%s\n" "$1"
} }
log_err() { log_err() {
@@ -28,7 +28,7 @@ log_err() {
_R=\\033[31m _R=\\033[31m
_N=\\033[m _N=\\033[m
fi 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() { die() {
@@ -150,6 +150,8 @@ if [ -f "$WIFI77_FN" ]; then
WIFI_COUNTRY=$( get_param_qq CONFIG_PACKAGE_MAC80211_COUNTRY "$TOPDIR/.config" ) WIFI_COUNTRY=$( get_param_qq CONFIG_PACKAGE_MAC80211_COUNTRY "$TOPDIR/.config" )
sed -i "s#%COUNTRY%#${WIFI_COUNTRY}#g" "$WIFI77_FN" sed -i "s#%COUNTRY%#${WIFI_COUNTRY}#g" "$WIFI77_FN"
fi fi
else
rm -f "$WIFI77_FN"
fi fi
fi fi

View File

@@ -12,16 +12,18 @@ fi
MAKE_JOBS= MAKE_JOBS=
XTARGET= XTARGET=
OPT_FULL_REBUILD=false OPT_FULL_REBUILD=false
WIFI_EN=true
KALLSYMS=false KALLSYMS=false
TESTING_KERNEL=false TESTING_KERNEL=false
BUILD_ONLY_INITRAMFS=false BUILD_ONLY_INITRAMFS=false
ONLY_INIT=false ONLY_INIT=false
while getopts "j:t:fiskTI" opt; do while getopts "j:t:fisWkTI" opt; do
case $opt in case $opt in
j) MAKE_JOBS=$OPTARG;; j) MAKE_JOBS=$OPTARG;;
t) XTARGET=$OPTARG;; t) XTARGET=$OPTARG;;
f) OPT_FULL_REBUILD=true;; f) OPT_FULL_REBUILD=true;;
W) WIFI_EN=false;;
k) KALLSYMS=true;; k) KALLSYMS=true;;
T) TESTING_KERNEL=true;; T) TESTING_KERNEL=true;;
i) BUILD_ONLY_INITRAMFS=true;; i) BUILD_ONLY_INITRAMFS=true;;
@@ -70,6 +72,7 @@ function build_target {
for inc in $inclst; do for inc in $inclst; do
incfn=$XDIR/_cfginc/$inc incfn=$XDIR/_cfginc/$inc
[ ! -f $incfn ] && die "File '$inc' not found!" [ ! -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 "/#include $inc/a <<LF>><<LF>>" $CFG
sed -i "s/<<LF>>/\n/g" $CFG sed -i "s/<<LF>>/\n/g" $CFG
sed -i "/#include $inc/ r $incfn" $CFG sed -i "/#include $inc/ r $incfn" $CFG
@@ -101,6 +104,26 @@ function build_target {
echo "CONFIG_TESTING_KERNEL=y" >> $CFG echo "CONFIG_TESTING_KERNEL=y" >> $CFG
fi 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 ] && [ -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 if [ 1 = 1 ]; then
MK_IMAGE=$XDIR/include/image.mk MK_IMAGE=$XDIR/include/image.mk
CURDATE=$( date --utc +%y%m%d ) CURDATE=$( date --utc +%y%m%d )
@@ -125,7 +148,7 @@ function build_target {
fi fi
fi fi
if [ 1 = 1 ]; then if ! grep '^CONFIG_BUILD_ALL_HOST_TOOLS=y' $CFG ; then
MK_HOST_TOOLS=$XDIR/tools/Makefile MK_HOST_TOOLS=$XDIR/tools/Makefile
# tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(CONFIG_USES_MINOR),y) += yafut # tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(CONFIG_USES_MINOR),y) += yafut
if grep -q '(CONFIG_USES_MINOR),y)' $MK_HOST_TOOLS ; then if grep -q '(CONFIG_USES_MINOR),y)' $MK_HOST_TOOLS ; then
@@ -144,6 +167,14 @@ function build_target {
fi fi
fi fi
LIBUTP_MK=$XDIR/package/feeds/packages/libutp/Makefile
if [ -f $LIBUTP_MK ]; then
if grep -q 'DLIBUTP_ENABLE_WERROR:BOOL=YES' $LIBUTP_MK ; then
sed -i 's/-DLIBUTP_ENABLE_WERROR:BOOL=YES/-DLIBUTP_ENABLE_WERROR:BOOL=NO/' $LIBUTP_MK
echo ">>> libutp patched !!! (disable Werror)"
fi
fi
RAB_LUCI_MK=$XDIR/package/feeds/_ruantiblock/luci-app-ruantiblock/Makefile RAB_LUCI_MK=$XDIR/package/feeds/_ruantiblock/luci-app-ruantiblock/Makefile
if [ -f $RAB_LUCI_MK ]; then if [ -f $RAB_LUCI_MK ]; then
if ! grep "PKG_PROVIDES" $RAB_LUCI_MK >/dev/null ; then if ! grep "PKG_PROVIDES" $RAB_LUCI_MK >/dev/null ; then