<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/meta-virtualization.git/scripts, branch master-next</title>
<subtitle>Mirror of git.yoctoproject.org/meta-virtualization</subtitle>
<id>https://git.enea.com/cgit/linux/meta-virtualization.git/atom?h=master-next</id>
<link rel='self' href='https://git.enea.com/cgit/linux/meta-virtualization.git/atom?h=master-next'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/'/>
<updated>2026-04-07T16:05:50+00:00</updated>
<entry>
<title>scripts: add QEMU VM launcher and k3s multi-node helper</title>
<updated>2026-04-07T16:05:50+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-04-07T16:05:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=1ebc8046393ad2c5b8859644c32d70c5a862e341'/>
<id>urn:sha1:1ebc8046393ad2c5b8859644c32d70c5a862e341</id>
<content type='text'>
run-qemu-vm.sh:
- Architecture-aware QEMU launcher (x86-64, arm64)
- Finds native QEMU binary and libraries from build sysroots
- Supports KVM auto-detection, socket networking, custom rootfs
- Reusable by both humans and the pytest test suite

run-k3s-multinode.sh:
- Launches server or agent VMs for k3s multi-node testing
- Passes k3s.role, k3s.server, k3s.token, k3s.node-ip, k3s.node-name
  via kernel cmdline for automatic guest-side configuration
- Creates rootfs copy for agent VM (can't share ext4 read-write)
- Prints usage instructions when run without arguments

Usage:
  Terminal 1: ./scripts/run-k3s-multinode.sh server
  Server VM:  k3s-get-token
  Terminal 2: ./scripts/run-k3s-multinode.sh agent --token &lt;TOKEN&gt;
  Server VM:  kubectl get nodes

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>go-mod-discovery/oe-go-mod-fetcher: add GO_MOD_VCS_EXCLUDE for deleted repos</title>
<updated>2026-03-19T15:56:06+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-03-19T15:55:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=b1a6d274a8cf9b2248ac708f3cd35e0d04540717'/>
<id>urn:sha1:b1a6d274a8cf9b2248ac708f3cd35e0d04540717</id>
<content type='text'>
Some upstream Go module repositories get deleted from GitHub (e.g.,
github.com/vtolstov/go-ioctl). While the Go module proxy still serves
cached archives, VCS mode cannot git clone a deleted repo. This causes
both do_fetch failures and generator verification failures.

Add GO_MOD_VCS_EXCLUDE recipe variable (space-separated module path
prefixes) and corresponding --exclude-module CLI flag. Excluded modules
are filtered out before verification and SRC_URI generation. Recipes
must provide a gomod:// SRC_URI entry for excluded modules as fallback.

Usage in recipe:
  SRC_URI += "gomod://example.com/deleted-repo;version=v1.0.0;sha256sum=..."
  GO_MOD_VCS_EXCLUDE = "example.com/deleted-repo"

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>oe-go-mod-fetcher: fix pseudo-version tag assignment in SRC_URI</title>
<updated>2026-03-18T17:33:43+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-03-18T17:29:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=d5ffe93d2b4ba8e12a2a643e00caeb3ed51ad48e'/>
<id>urn:sha1:d5ffe93d2b4ba8e12a2a643e00caeb3ed51ad48e</id>
<content type='text'>
Go's module cache .info files store Origin.Ref as the "nearest tag"
used to derive pseudo-versions (e.g., v0.0.0-20190215142949-d0b11bdaac8a
stores Ref: "refs/tags/v0.3.0"). This ref is NOT a tag pointing to the
pseudo-version's actual commit - it's just metadata about the base version.

The generator was blindly using this ref as tag=v0.3.0;shallow=1 in
SRC_URI entries. BitBake resolves the tag to one specific commit, finds
it doesn't match the rev= parameter, and fails with:

  FetchError("The revision the git tag 'v0.3.0' resolved to didn't match
  the SRCREV in use...")

This caused multiple SRC_URI entries for the same repo (e.g.,
go.googlesource.com/sys) to all claim tag=v0.3.0 but with different
rev= values - only one could possibly be correct.

Fix by detecting pseudo-versions via parse_pseudo_version_tag() and
clearing the ref_hint so these entries use nobranch=1 without a tag,
falling back to full clone by commit hash. Tagged versions (real
releases) correctly retain their tag= parameter for shallow clones.

The docker-compose .inc files are regenerated with the fix applied.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>go-mod-fetcher: fix shallow clone handling, duplicates, and discovery workflow</title>
<updated>2026-01-04T16:40:15+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-04T16:40:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=dbf720ccb0519a4dbf143dbaed1633527b8d7b60'/>
<id>urn:sha1:dbf720ccb0519a4dbf143dbaed1633527b8d7b60</id>
<content type='text'>
  oe-go-mod-fetcher.py:
  - Remove BB_GIT_SHALLOW_EXTRA_REFS generation - refs must be present in
    ALL repositories which isn't the case for module dependencies. Instead,
    use tag= parameter in individual SRC_URI entries.
  - Add tag=&lt;tagname&gt; to SRC_URI when ref is a tag, allowing BitBake's
    shallow clone to include the necessary tag (with BB_GIT_SHALLOW=1)
  - Remove premature _ref_points_to_commit() check that was clearing
    ref_hints before repos were fetched, preventing tag= from being added
  - Fix pseudo-version verification: only use shallow fetch for actual
    tags (refs/tags/...), not branch refs. Pseudo-versions with branch
    refs (refs/heads/...) now correctly use unshallow path to reach
    historical commits that aren't fetchable with depth=1

  oe-go-mod-fetcher-hybrid.py:
  - Fix duplicate SRC_URI entries when multiple modules share the same
    git repo/commit (e.g., errdefs and errdefs/pkg). Track added vcs_hashes
    to skip duplicates.
  - Add --discovery-cache option to calculate module sizes from discovery
    cache .zip files, enabling size recommendations during discover_and_generate

  go-mod-discovery.bbclass:
  - Add automatic hybrid mode recommendations after generate_modules,
    showing module sizes and suggested --git prefixes for conversion
  - Add GO_MOD_DISCOVERY_SKIP_VERIFY variable to skip commit verification
    on retries (useful after fixing verification issues)
  - Pass --discovery-cache to hybrid script for accurate size calculations

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>oe-go-mod-fetcher-hybrid: improve duplicate detection</title>
<updated>2026-01-03T05:03:25+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-03T05:03:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=d7434129524162f356c3cd154f46a395c9076df7'/>
<id>urn:sha1:d7434129524162f356c3cd154f46a395c9076df7</id>
<content type='text'>
The main go-mod discovery fetcher had stronger duplicate detection
than the hybrid mode converter. We synchronize the two to avoid
getting dups in our generate SRC_URIs.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<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>docs: add QUICKSTART for go-mod-vcs</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-08T14:23:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=2385a741401386d129a0cd4dc4c332d3d54af4b3'/>
<id>urn:sha1:2385a741401386d129a0cd4dc4c332d3d54af4b3</id>
<content type='text'>
Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>oe-go-mod-fetcher: use dereferenced tags</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:34:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=43a9e53dee19c56b79188081ee8adf326d7ddcdb'/>
<id>urn:sha1:43a9e53dee19c56b79188081ee8adf326d7ddcdb</id>
<content type='text'>
Use dereferenced tag (^{}) to get the actual commit hash
For annotated tags, ref_hint returns the tag object hash, not the commit

Example: refs/tags/v1.0.1 -&gt; c49ff274 (tag object)
         refs/tags/v1.0.1^{} -&gt; 37c8de36 (actual commit)
         current_tag_commit = git_ls_remote(vcs_url, f"{ref_hint}^{{}}")

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>scripts: add oe-go-mod-fetcher for Go module VCS resolution</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:36:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=a303bf16ffd747c50c95cbe385407ba8b0122cec'/>
<id>urn:sha1:a303bf16ffd747c50c95cbe385407ba8b0122cec</id>
<content type='text'>
Add the oe-go-mod-fetcher.py tool and supporting files for resolving
Go module dependencies via git repositories instead of module proxies.

oe-go-mod-fetcher.py:
  - Parses go.mod and go.sum to identify required modules
  - Resolves module paths to git repositories (handles vanity URLs)
  - Maps module versions to git commits
  - Generates SRC_URI entries for bitbake fetcher
  - Creates go-mod-git.inc and go-mod-cache.inc files
  - Supports monorepo detection and nested module handling
  - Caches resolution results for performance

extract-discovered-modules.py:
  - Helper script to extract module information from discovery cache
  - Used by go-mod-discovery.bbclass during build

Also adds .gitignore to exclude runtime caches from version control.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>scripts: wic plugin bootimg-biosxen drop helper to reuse bootimg_pcbios</title>
<updated>2025-07-31T17:34:50+00:00</updated>
<author>
<name>Anibal Limon</name>
<email>anibal@limonsoftware.com</email>
</author>
<published>2025-07-29T16:21:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=b66d2ca088cddd6fd3d7cdfe1c7bbe4b420ba53d'/>
<id>urn:sha1:b66d2ca088cddd6fd3d7cdfe1c7bbe4b420ba53d</id>
<content type='text'>
- With wic plugins rename on OE-Core now can be imported.
  See OE-Core revs,

  afa1b5c9f6ed17c021e37a54d0d6abee50a60bf9
  2de444fc3ef450f45f8f93403544e8f7461657b0
  16c8251e5272510ad96613b8c6623550c5a72a34

- Drop the custom helper to find BootimgPcbiosPlugin plus adapt the code
  removing all custom calls and references.
- Finally rename bootimg-biosxen to allow be imported.

Tested with xen-image-minimal and testimage.

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