scripts/feeds: generate index after all feeds are updated
authorKarel Kočí <karel.koci@nic.cz>
Thu, 11 Feb 2021 09:57:06 +0000 (10:57 +0100)
committerPaul Spooren <mail@aparcar.org>
Mon, 7 Jun 2021 22:44:50 +0000 (12:44 -1000)
commit1aa80ce3931736f1020f69f486a815c2b2575d19
tree175858e27c4534474ab8c99f44713e1bc5222c6a
parent902d7e497c3c26c1a7d9c06945746c319866b335
scripts/feeds: generate index after all feeds are updated

This separates index update from feed update. The result is that all
requested feeds are first updated and only then indexed.

The reason for this change is to prevent errors being reported and
potentially invalid index being generated thanks to cross feeds
dependency.
The feeds script pulls in default all feeds as they come and on install
prefers packages from first feeds (unless special feed is requested).
Thus order of feeds in some way specifies preferences. This is handy for
downstream distributions as they can simply override any package from
upstream feeds by placing their feed before them. This removes need to
patch or fork upstream feeds.
The problem is that such feed most likely depends in some way also on
subsequent feeds. The most likely feeds are 'packages' or 'luci'. The
example would be Python package that needs 'python.mk' from 'packages'
feed. Ordering custom feed after dependent feeds is sometimes just not
possible because of preference requirement described before.
The solution is to just first pull all feeds and generate indexes only
after that. In the end this ensures that index is generated correctly at
first try without any error.

In terms of code this removes 'perform_update' argument from
'update_feed' as with index update removal the update is the only action
performed in that subroutine. Thus this moves condition to 'update'
subroutine.

Signed-off-by: Karel Kočí <karel.koci@nic.cz>
scripts/feeds