Re: Missing vardeps in meta/classes/roofs_rpm.bbclass?


Alexander Kanavin
 

This seems like you need to make a patch (for master branch) and send it to oe-core list? :)

Alex


On Tue, 10 Nov 2020 at 19:04, Loic Domaigne <tech@...> wrote:
Salut,

We were playing with rpm package management lately.

To configure the yum repos in the image, we're setting the following variables in conf/local.conf:
FEED_PACKAGE_URIS
FEED_PACKAGE_BASE_PATHS

We made a typo, and forgot the S at the end of FEED_PACKAGE_BASE_PATHS
Not surprising, the repo file generated didn't have the right url:

$ cat oe-remote-repo-user1.repo
[oe-remote-repo-user1]
name=OE Remote Repo: user1
baseurl=http://192.168.7.1/user1
gpgcheck=0


After fixing the typo and bitbaking the image again, still no avail.
The repo file remains unchanged.

In fact, changing FEED_PACKAGE_BASE_PATHS did not re-trigger a new image build. We found this behavior surprising.

AFAICS:
1) As per oe/lib/meta/lib/oe/rootfs.py and lib/oe/package_manager.py, the URL is defined as the join paths of FEED_PACKAGE_URIS and FEED_PACKAGE_BASE_PATHS.
2) However, in meta/classes/rootfs_rpm.bbclass, do_rootfs only specifies a build dependency to FEED_PACKAGE_URIS:
do_rootfs[vardeps] += "PACKAGE_FEED_URIS"

Shouldn't the rootfs task depend on both PACKAGE_FEEDS_URIS and PACKAGE_FEED_BASE_PATHS, ie.
do_rootfs[vardeps] += "PACKAGE_FEED_URIS PACKAGE_FEED_BASE_PATHS"

After fixing this dependency, the repo file got updated as expected:
cat oe-remote-repo-user1-rpm.repo
[oe-remote-repo-user1-rpm]
name=OE Remote Repo: user1 rpm
baseurl=http://192.168.7.1/user1/rpm
gpgcheck=0

Does that make sense?

I have conducted this analysis on Zeus. The problem isn't fixed with Dunfell AFAICS. Also, the other package classes (deb,ipk) are impacted as well.

Hope this helps!
Loic



Join yocto@lists.yoctoproject.org to automatically receive all group messages.