[OpenWrt-Devel] uci -P no longer working correctly

Mark Mentovai mark at moxienet.com
Mon Mar 30 10:28:00 EDT 2015

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.


[1] http://nbd.name/gitweb.cgi?p=uci.git;a=commitdiff;h=32815cf4959c
[3] https://dev.openwrt.org/changeset/45040/trunk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20150330/49ea8788/attachment.htm>
-------------- next part --------------
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list