Hannu Nyman kirjoitti 6.1.2021 klo 12.08:
Rosen Penev kirjoitti 6.1.2021 klo 0.49:
On Tue, Jan 5, 2021 at 12:20 PM Hannu Nyman<hannu.ny...@iki.fi>  wrote:
Hannu Nyman kirjoitti 5.1.2021 klo 16.34:
Rosen Penev kirjoitti 5.1.2021 klo 0.29:
It seems the config section is not refreshed either in this patch.
That is, the other Config.in files. No idea how to update those.
...

Or do you think that there is something else wrong reagrding the other
defaults in Config-defaults.in in your patch?
To me your patch looks sensible otherwise, except this IPV6 change.

Yeah, now I got what you meant. I tried your patch set, and then I also run
the "refresh config " scripts.

Your patch set is missing all the updates to the sourced Config.in files,
which changes become visible once you run the config refreshing commands.

I got them refreshed after the first ath79 build with

    cd package/utils/busybox/config/
    ../convert_menuconfig.pl
../../../../build_dir/target-mips_24kc_musl/busybox-default/busybox-1.33.0
    cd ..
    ./convert_defaults.pl <
../../../build_dir/target-mips_24kc_musl/busybox-default/busybox-1.33.0/.config
  > Config-defaults.in
That's only for one of the config files, not the others.


Worked ok for all relevant ones, I think.

Or what is your worry here?

(that is the way it has been done with the past 7 version bumps, to my knowledge.)



And then I edited by hand the IPv6 option in Config-defaults.in to get back
the OpenWrt speciality that deviates from busybox defaults.
I also manually added the needed quotes to source lines that the scripts removed.

I added your commits and my fix to my Github fork, so it is easier to see and
compare.
https://github.com/hnyman/openwrt/commits/bb1330fix

I think that you should add the following fixes to your v2 patch series:
https://github.com/hnyman/openwrt/commit/95f54c3f4d9501a42eda7be4e3bd971a1887f8ac

That is meant to be squashed into your main patch.
Latest patch:https://github.com/neheb/openwrt/commit/139dc12498db287660bfad27b94e137afa4de9fa

I think that should be fine.
I will compile that into a firmware and test it.

I have good news and bad news:

Good news is that your new patch is identical as the outcome of (your old patch + my fix).
I compiled it yesterday for ath79/WNDR3700 and it worked ok. Good so far.


Bad news is that something has changed between 1.31 and 1.33 regarding shell options, and booting ipq806x/R7800 fails with 1.33.0.

I get an error in serial console in preinit phase and the R7800 router never boots properly.

[ 5.711407] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[ 5.721717] init: - preinit -
/etc/preinit: /lib/functions.sh: line 29: syntax error: support for $((arith)) is disabled
[ 6.107332] procd: - early -
[ 6.107390] procd: - watchdog -


I think that I have narrowed is down to config options changes regarding ash shell, and the enabling of arithmetics via BUSYBOX_CONFIG_FEATURE_SH_MATH.

I suspect that reason for failure is that BUSYBOX_CONFIG_SHELL_ASH is hidden in :

config BUSYBOX_CONFIG_SHELL_ASH
    bool #hidden option


That leads our script to parse it wrongly and the section about common options remains empty/unselectable in menuconfig, as there is SHELL_ASH instead of BUSYBOX_CONFIG_SHELL_ASH in shell/Config.in file. So this section remain hidden/disabled:

 comment "Options common to all shells"
-if ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+if SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH

That leads into missed dependency here, where the syntax has changed:

config BUSYBOX_CONFIG_FEATURE_SH_MATH
    bool "POSIX math support"
    default BUSYBOX_DEFAULT_FEATURE_SH_MATH
-    depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+    depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
    help
    Enable math support in the shell via $((...)) syntax.


So, some changes are still needed.

I will test and come back.



I added two more commits to

https://github.com/hnyman/openwrt/commits/bb1330fix


The first one addresses the shell math problem. Editing shell/Config.in helps menuconfig and defconfig to interprete the config correctly. I solved it for now, but the logic might easily get accidentally changed again at the next version bump and config file refresh. It might be better in the long run to change the underlying symbol definition by removing the hidden attribute from BUSYBOX_CONFIG_SHELL_ASH in shell/Config.in, but I have not tested it yet.

https://github.com/hnyman/openwrt/commit/4fde43b539777e644e667c67bde74a9306bfd6cc

That made R7800 to boot again normally.


The second one is a fix for accidentally deleting two new OpenWrt specific conditional logic items in the config refresh. They have been introduced by 547f1ec25 and f1410902e in 2019/2020, and they get deleted (similarly as the IPV6 logic) by the config refresh script.  (This patch should be squashed to the main patch to revert the earlier error of deleting that logic.)

https://github.com/hnyman/openwrt/commit/84605304a5742c083cc19ed6918e02a9f3e6103d

Please test with a few different routers.


We have now at least three of these OpenWrt specific logic changes (IPV6, TRUNCATE/bcm53xx and REGEX/GLIBC). Too bad that our busybox config script misses those changes. I wonder if we should look into patching tat logic directly to busybx sources instead fo modifying the logic in Config* files. Config* files will be again refreshed in the next busybox version upgrades, and it is easy to miss these changes to be corrected.



_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to