In the latest OpenWrt trunk, I found that config_get has stopped loading uncommitted uci changes from /tmp/.uci. I rely on this behavior, which had worked well for years.
I found a change[1] in uci that’s responsible. The uci change makes uci_add_delta_path() reject any attempt to add ctx->savedir to the delta search path. However, in light of cli.c’s usage[2], there’s a problem: when processing a -P argument, it calls uci_add_delta_path() to add the original value of ctx->savedir to the delta search path before changing ctx->savedir. After this change, the uci command-line tool’s -P argument no longer acts as documented. Instead of adding a path to the delta search path, it just sets the default save directory. This behavior change appears to be unintentional, and as I mentioned, it’s broken a long-standing behavior that I rely on. This change became a part of OpenWrt at r45040[3] and is exposed to scripts that use /lib/functions.sh: that script sets LOAD_STATE=1, and its config_load calls /lib/config/uci.sh’s uci_load, which adds a -P argument to its “uci export” command when LOAD_STATE is nonempty. I’m happy to contribute a patch, but I’m not sure what [1] intended, so I’m e-mailing to raise awareness first. Mark [1] http://nbd.name/gitweb.cgi?p=uci.git;a=commitdiff;h=32815cf4959c [2] http://nbd.name/gitweb.cgi?p=uci.git;a=blob;f=cli.c;h=557472ecf421;hb=HEAD [3] https://dev.openwrt.org/changeset/45040/trunk
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel