On Mon, 7 Oct 2024 at 07:06, Aleksandar Nikolic via
lists.yoctoproject.org
<aleksandar.nikolic010=gmail....@lists.yoctoproject.org> wrote:
> 1) When I build a recipe previously not installed in my image and want to 
> install it during runtime, the dnf install command fails, saying that the 
> package's dependencies are not met (see [2] for more info). This is fine, as 
> I can see that the tmp/deploy/rpm directory does not contain all of the 
> package's dependencies nor the dependencies' WORKDIRs contain the deploy-rpms 
> directory. Is this behavior correct? Shouldn't building a recipe also lead 
> that all of its dependencies are not just built but also packaged and put 
> into the tpm/deploy/rpm directory (the same as with building the image 
> containing the package in question)?

The default behavior is that bitbake runs the absolute minimum of
tasks needed to complete the task you specify (in this case, producing
the rpm). Making a vim rpm requires only do_package of its
dependencies, but not their do_package_write_rpm.

If you want all dependent rpms too, this is easily done with:
bitbake --runall package_write_rpm vim

> 2) Is there an official, stable, and not some hacky way to install already 
> pre-built packages during the build and not later during runtime? So instead 
> of building from source or from the sstate-cache, to provide a URL to a 
> webserver holding packages, which would then be pulled and installed (if I am 
> not wrong Isar does this)?

If you ask me, pulling pre-built packages into a yocto image is in
itself a horrible hack that goes against yocto philosophy, and I would
not want yocto to help that or support it in any way.

We build from source. Isar can do what it wants, but I don't have to
like or support that.

There's a separate question of pulling pre-built *binaries* that
sometimes come in .rpm archives and repackaging them with recipes,
which is sort of supported if you list the rpm in SRC_URI (bitbake
will then fetch/unpack/repackage), but I don't like that either for
different reasons (vendor blobs are evil).

> 3) Is enabling and using the package runtime management recommended and 
> encouraged when it comes to Yocto running on actual devices and not during a 
> development phase? IMHO we are talking about embedded devices here, with 
> little or no user interaction, with secure boot enabled, atomic updates, etc. 
> and having a package management system such as dnf or apt is cool, but is 
> also kind of brittle (a simple power off during apt update can break the 
> system).

That's exactly correct. Classic package management (rpm/dpkg) was
created for the 'Unix workstation' use case where you want to provide
as much available disk space as possible to users (so A/B partitioning
is a non-starter), and users can easily add things they want to their
system. Nobody ever claimed that such mass-upgrade transactions can be
safely interrupted by a power outage, and in all likelihood you'll
have a half-updated system with an undefined behaviour on the next
boot.

Alex
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#63945): https://lists.yoctoproject.org/g/yocto/message/63945
Mute This Topic: https://lists.yoctoproject.org/mt/108862936/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to