May 2024: whatsrc.org distro status

Richard Purdie richard.purdie at linuxfoundation.org
Fri May 31 11:56:39 UTC 2024


On Fri, 2024-05-31 at 13:05 +0200, kpcyrd wrote:
> On 5/30/24 12:41 AM, Richard Purdie wrote:
> > There is such data in Yocto Project too, although it would be
> > spread
> > into the layers that contain the software components in question.
> > 
> > Taking bash as an example, you can see information from the layer
> > index:
> > 
> > https://layers.openembedded.org/layerindex/recipe/81/
> > 
> > which doesn't list the checksum but does point at the recipe:
> > 
> > https://git.openembedded.org/openembedded-core/tree/meta/recipes-extended/bash/bash_5.2.21.bb?h=master
> > 
> > which does list it:
> > 
> > SRC_URI[tarball.sha256sum] =
> > "c8e31bdc59b69aaffc5b36509905ba3e5cbb12747091d27b4b977f078560d5b8"
> 
> Thanks!
> 
>  From a user's point of view, what's the best way to determine what's
> currently available in Yocto?

The layer index listed above is our search engine of what is available
in the system, so it is that, or the layers themselves. The layer index
just reads data from the layers themselves.

> In Debian this is decided through /source/Sources.xz, in Alpine it's 
> APKINDEX.tar.gz, in Arch Linux it's core.db/extra.db (although
> whatsrc 
> uses https://gitlab.archlinux.org/archlinux/packaging/state instead).
> 
>  From what I read Yocto doesn't have this "traditional" concept of a 
> package manager, do users clone this repository[1] (similar to how 
> nixpkgs works) or do they download some kind of index from somewhere?
> 
> [1]: https://git.openembedded.org/openembedded-core/tree/

Users would clone openembedded-core as per that link and then add the
additional layers they want to use alongside that. Those additional
layers can bring in extra software. We don't ship binaries, we ship
pointers to source code.

The layers users often add are indexed in the layer index which is how
people find things: https://layers.openembedded.org/

> I'm trying to be as canonical as possible, for example with Alpine
> and 
> WolfiOS I could also take snapshots of their aports repository[2] (or
> equivalent[3]), but instead I download and parse their
> APKINDEX.tar.gz 
> since it records the specific git commit a package was built from.
> 
> [2]: https://gitlab.alpinelinux.org/alpine/aports
> [3]: https://github.com/wolfi-dev/os

The openembedded-core repository is canonical for the core software.
The meta-openmbedded layer contains a lot of additional software and
then there are extra layers on top. The metadata in those layers is the
canonical definition. Other layers can redefine things if they so wish
and there is a priority system to determine which layer ultimately
would be built for a given component if there are conflicts.

bitbake is the tool which understands these layers, knows how to
combine everything and pull data out. It does have a query/control API
called tinfoil where you can effectively custom query/extract data from
the layers.

"poky" is an easier to get started with merged git repo of bitbake +
opembedded-core so you can get running with one clone (from times
before submodules existed!).

Cheers,

Richard






More information about the rb-general mailing list