Bug 14377

Summary: devtool: deploy-target
Product: [Documentation] Reference Reporter: Robert Berger <pokylinux>
Component: handbookAssignee: Antonin Godard <antonin.godard>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium+ CC: poky.doc.watcher, poky.watcher, randy.macleod, tim.orling, tom.isaacson
Version: 3.4   
Target Milestone: 5.2 M4   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Yes (doc changes required)

Description Robert Berger 2021-05-06 07:28:10 UTC
Here[1] is this:

Some conditions exist that could prevent a deployed application from behaving as expected. When both of the following conditions exist, your application has the potential to not behave correctly when run on the target:

*) You are deploying a new application to the target and the recipe you used to build the application had correctly defined runtime dependencies.

*) The target does not physically have the packages on which the application depends installed.

If both of these conditions exist, your application will not behave as expected. The reason for this misbehavior is because the devtool deploy-target command does not deploy the packages (e.g. libraries) on which your new application depends. The assumption is that the packages are already on the target. Consequently, when a runtime call is made in the application for a dependent function (e.g. a library call), the function cannot be found.

[1] http://docs.yoctoproject.org/ref-manual/devtool-reference.html?highlight=devtool#deploying-your-software-on-the-target-machine

Maybe this should be rephrased/extended a bit.

My understanding is, that devtool does not install packages. So if devtool creates a perfectly fine recipe, but this recipe needs an extra package (e.g. a library), which is not already installed on the target, the app will not run.

There is no need in the recipe to define RDEPENDS explicitly! They are derived from DEPENDS implicitly.

So "You are deploying a new application to the target and the recipe you used to build the application had correctly defined runtime dependencies." is a bit misleading, since although no RDEPENDS are in the recipe, the package still contains the dependencies.

recipe:
https://pastebin.com/MHbTADZ2

package info - as you see the dependency to is there:

Depends: libc6 (>= 2.32), libtinfo5 (>= 6.2)

https://pastebin.com/KuuqfxvU

and after installing from a package feed all is good:

https://pastebin.com/3u2DYise

This is pretty annoying for the beginner who tries to use devtool.
Comment 1 Randy MacLeod 2024-10-24 15:03:55 UTC
Bulk move of 5.1 M4 to 5.2 M2 as approved by AlexB.
Comment 2 Antonin Godard 2024-12-23 15:30:13 UTC
Hi Robert,

I've sent a patch on the docs mailing list to explain this:
https://lists.yoctoproject.org/g/docs/topic/patch/110258352

Let me know if that makes it more clear! :)

Changing the status to In Progress Review.
Comment 3 Antonin Godard 2025-01-09 15:09:53 UTC
Patch merged on master: https://git.yoctoproject.org/yocto-docs/commit/?id=56c84004daad5f8a5db53e36852331435d57c8af

Marking this bug as Resolved.