<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/meta-virtualization.git/classes, branch whinlatter</title>
<subtitle>Mirror of git.yoctoproject.org/meta-virtualization</subtitle>
<id>https://git.enea.com/cgit/linux/meta-virtualization.git/atom?h=whinlatter</id>
<link rel='self' href='https://git.enea.com/cgit/linux/meta-virtualization.git/atom?h=whinlatter'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/'/>
<updated>2025-12-09T01:57:44+00:00</updated>
<entry>
<title>go-mod: introduce hybrid mode</title>
<updated>2025-12-09T01:57:44+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2025-12-09T01:50:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=2bee001d6ddcafba7d384ac7ee241b16a1449681'/>
<id>urn:sha1:2bee001d6ddcafba7d384ac7ee241b16a1449681</id>
<content type='text'>
Introduce the ability to have hybrid gomod:// and git:// repositories.

This allows SRCREV bumping when fixing bugs, and using the git archiver
for some, all or none of the modules in a go mod project.

 Example: k3s Hybrid Conversion

 1. Ensure VCS mode works first
 bitbake k3s

 2. Get recommendations
 bitbake k3s -c go_mod_recommend

 3. Convert with recommended prefixes (keep containerd, k8s.io as git://)
 python3 ./meta-virtualization/scripts/oe-go-mod-fetcher-hybrid.py \
    --recipedir ./meta-virtualization/recipes-containers/k3s/ \
    --git "github.com/containerd,k8s.io,sigs.k8s.io,github.com/rancher"

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>go-mod: make extracted files writeable</title>
<updated>2025-12-09T01:57:44+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2025-12-07T03:56:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=5760ab3c502fef3363b8aa76c71707e8ff1f5470'/>
<id>urn:sha1:5760ab3c502fef3363b8aa76c71707e8ff1f5470</id>
<content type='text'>
Make extracted files writable so BitBake can clean them later
Go's module cache is read-only by design, but this breaks rm -rf
and our subsquent task runs will fail.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>go-mod-vcs: declare cache defaults</title>
<updated>2025-12-09T01:57:44+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2025-12-07T02:56:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=aee553e9d9c32a58be7b37ccb7daa43b87c78b8d'/>
<id>urn:sha1:aee553e9d9c32a58be7b37ccb7daa43b87c78b8d</id>
<content type='text'>
There are variables which are common to all recipes, declare defaults
to make recipe integration simpler.

Also, when creating the cache the messages are normal about synthesis,
etc, so reduce them to bb.note.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>go-mod-vcs: missing go.mod is not a warning</title>
<updated>2025-12-09T01:57:44+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2025-12-06T18:59:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=d2044c0e7b8e43b3abbe4c536d3e90d0faaadecf'/>
<id>urn:sha1:d2044c0e7b8e43b3abbe4c536d3e90d0faaadecf</id>
<content type='text'>
Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>go-mod-discovery: support multi-patckage build</title>
<updated>2025-12-09T01:57:44+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2025-12-06T18:52:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=56db9d52a1d99f3de61b770ee696a3cdc97d6ded'/>
<id>urn:sha1:56db9d52a1d99f3de61b770ee696a3cdc97d6ded</id>
<content type='text'>
When building multiple packages (./... or multiple targets), go build
requires the output to be a directory. Create the directory and use it.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>go-mod-discovery: move patching after discovery build</title>
<updated>2025-12-09T01:57:44+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2025-12-06T15:36:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=d59326817be4799a01bcc3885bf61c6dafcfeb71'/>
<id>urn:sha1:d59326817be4799a01bcc3885bf61c6dafcfeb71</id>
<content type='text'>
When updating a SRCREV and then running discovery, we expect that
some patches will fail. We don't want that to block discovery as
these patches are not normally ADDING dependencies that would be
found.

So we move discovery before patch and patch failures can be dealt
with on a full build.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>discover: manage go.* files</title>
<updated>2025-12-09T01:57:44+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2025-12-05T19:33:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=df651f904ee91b3cf9face353af8219223442e6b'/>
<id>urn:sha1:df651f904ee91b3cf9face353af8219223442e6b</id>
<content type='text'>
The discovery repository can be in an incosistent state
after a build. By restoring the go.* files, we ensure a stable
start point.

Add automatic removal of go.sum files from git-fetched
dependencies in vcs_cache during do_create_module_cache.
This prevents checksum mismatch errors caused by stale
go.sum files in dependencies having different checksums
than the git-sourced modules.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>go-mod-discovery: split into more tasks</title>
<updated>2025-12-09T01:57:44+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2025-12-05T14:26:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=ae9fa39e6f52e71052ba37c54a7e0b3aea2e7ee3'/>
<id>urn:sha1:ae9fa39e6f52e71052ba37c54a7e0b3aea2e7ee3</id>
<content type='text'>
To make it easier to run individual components of the go module
discovery and generation process, we add invidual tasks as well
as a combined task:

 AVAILABLE TASKS:

   bitbake &lt;recipe&gt; -c discover_modules
       Build project and download modules from proxy.golang.org
       This populates the discovery cache but does NOT extract or generate

   bitbake &lt;recipe&gt; -c extract_modules
       Extract module metadata from discovery cache to modules.json
       Requires: discover_modules to have been run first

   bitbake &lt;recipe&gt; -c generate_modules
       Generate go-mod-git.inc and go-mod-cache.inc from modules.json
       Requires: extract_modules to have been run first

   bitbake &lt;recipe&gt; -c discover_and_generate
       Run all three steps: discover -&gt; extract -&gt; generate
       This is the "do everything" convenience task

   bitbake &lt;recipe&gt; -c show_upgrade_commands
       Show copy-pasteable command lines without running anything

   bitbake &lt;recipe&gt; -c clean_discovery
       Remove the persistent discovery cache

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>classes: add go-mod-vcs and go-mod-discovery for Go module builds</title>
<updated>2025-12-09T01:57:44+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2025-12-04T22:19:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=9f40ce9b277a677ad3cddd8bf1c1d15fbd035251'/>
<id>urn:sha1:9f40ce9b277a677ad3cddd8bf1c1d15fbd035251</id>
<content type='text'>
Add two new bbclass files that enable building Go applications using
git-based module resolution instead of network proxy fetches:

go-mod-vcs.bbclass:
  - Provides do_create_module_cache task to build GOMODCACHE from git sources
  - Implements pure Python h1: hash calculation with go-dirhash-native fallback
  - Creates properly structured module zip files and hash files
  - Handles module path transformations and case encoding

go-mod-discovery.bbclass:
  - Runs module discovery using the oe-go-mod-fetcher tool
  - Generates go-mod-git.inc and go-mod-cache.inc files
  - Supports bootstrap mode for initial recipe conversion

Together these classes enable fully offline, reproducible Go builds
by fetching module sources via git and constructing the module cache
during the build rather than relying on network access to module proxies.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>image-oci-unmoci: preserve file modes</title>
<updated>2025-01-17T19:17:10+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2025-01-17T19:09:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=57fe8d036440625153bf26258248adcdd20855c6'/>
<id>urn:sha1:57fe8d036440625153bf26258248adcdd20855c6</id>
<content type='text'>
Based on the following patch:

   Subject: [meta-virtualization][PATCH] image-oci-umoci: preserve file modes in rootfs
   From: "Florian Wickert via lists.yoctoproject.org" &lt;FlorianWickert=gmail.com@lists.yoctoproject.org&gt;

   cp does not preserve file modes by default.
   This will break sudo (among others) which needs the suid flag to do its
   work.

   This patch adds the --preserve=mode flag to the cp call to fix this.

   Signed-off-by: Florian Wickert &lt;FlorianWickert@gmail.com&gt;

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
</feed>
