diff --git a/.github/workflows/portage-stable-packages-list b/.github/workflows/portage-stable-packages-list
index 1836460130..765a634673 100644
--- a/.github/workflows/portage-stable-packages-list
+++ b/.github/workflows/portage-stable-packages-list
@@ -151,6 +151,7 @@ app-editors/nano
app-editors/vim
app-editors/vim-core
+app-emulation/open-vmdk
app-emulation/qemu
app-emulation/qemu-guest-agent
app-emulation/virt-firmware
diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/open-vmdk/metadata.xml b/sdk_container/src/third_party/coreos-overlay/app-emulation/open-vmdk/metadata.xml
deleted file mode 100644
index 097975e3ad..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/app-emulation/open-vmdk/metadata.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/open-vmdk/open-vmdk-1.0.ebuild b/sdk_container/src/third_party/coreos-overlay/app-emulation/open-vmdk/open-vmdk-1.0.ebuild
deleted file mode 100644
index 7cdbc88c59..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/app-emulation/open-vmdk/open-vmdk-1.0.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2014 VMware
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=7
-
-inherit git-r3
-
-DESCRIPTION="Tool to convert vmdk to an ova file"
-HOMEPAGE="https://github.com/vmware/open-vmdk"
-LICENSE="Apache-2.0"
-SLOT="0"
-
-EGIT_REPO_URI="https://github.com/vmware/open-vmdk"
-EGIT_BRANCH="master"
-EGIT_COMMIT="8349c98ec8a617f5658b70d7de7d7d2830e18eaf"
-
-KEYWORDS="amd64 ~x86"
-IUSE=""
-
-DEPEND=""
-RDEPEND="${DEPEND}"
-
-PATCHES=(
-)
-
-src_install() {
- emake DESTDIR="${D}" install
-}
diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords
index b7ccfbbd51..0f5d73bca2 100644
--- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords
+++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords
@@ -32,8 +32,8 @@ app-crypt/azure-keyvault-pkcs11
# The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet.
=app-crypt/clevis-19-r1 **
-# Needed by arm64-native SDK.
-=app-emulation/open-vmdk-1.0 *
+# No stable keywords yet because it's new.
+=app-emulation/open-vmdk-0.3.12 ~amd64
# Keep versions on both arches in sync.
=app-emulation/qemu-10.0.5 ~arm64
diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use
index f438536deb..13e31197c6 100644
--- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use
+++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use
@@ -197,3 +197,6 @@ sys-auth/pambase securetty -passwdqc
# We run the server in a container.
dev-db/etcd -server
+
+# We only need the non-Python-based tools.
+app-emulation/open-vmdk -python
diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/open-vmdk/Manifest b/sdk_container/src/third_party/portage-stable/app-emulation/open-vmdk/Manifest
new file mode 100644
index 0000000000..b9dd2990b2
--- /dev/null
+++ b/sdk_container/src/third_party/portage-stable/app-emulation/open-vmdk/Manifest
@@ -0,0 +1 @@
+DIST open-vmdk-0.3.12.tar.gz 72452 BLAKE2B 36600b454c45b8ac1c5fda3f4fde982baf02f4883f454d817eb0a5f7e388df7daefce148bd4d5baee1a6b97c90b29d70ef09c4de1db06342ad92c2583ae2df7f SHA512 4a038c899a9e3c013b830dab6514260e72d6905d6e5c2da864bdcc71f125639dc2aba68e9a4a27e96037a0200bd04d0ca2cc17306e8eaf2bf2913f9eaa0afb41
diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/open-vmdk/metadata.xml b/sdk_container/src/third_party/portage-stable/app-emulation/open-vmdk/metadata.xml
new file mode 100644
index 0000000000..8f2f214cac
--- /dev/null
+++ b/sdk_container/src/third_party/portage-stable/app-emulation/open-vmdk/metadata.xml
@@ -0,0 +1,14 @@
+
+
+
+
+ chewi@gentoo.org
+ James Le Cuirot
+
+
+
+ vmware/open-vmdk
+
+
diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/open-vmdk/open-vmdk-0.3.12.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/open-vmdk/open-vmdk-0.3.12.ebuild
new file mode 100644
index 0000000000..c17133cebb
--- /dev/null
+++ b/sdk_container/src/third_party/portage-stable/app-emulation/open-vmdk/open-vmdk-0.3.12.ebuild
@@ -0,0 +1,73 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit python-single-r1 toolchain-funcs
+
+DESCRIPTION="Tools for creating and converting OVA virtual appliance files"
+HOMEPAGE="https://github.com/vmware/open-vmdk"
+SRC_URI="https://github.com/vmware/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="+python test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ python? ( ${PYTHON_REQUIRED_USE} )
+ test? ( ${PYTHON_REQUIRED_USE} )
+"
+
+PYDEPEND="
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-libs/libxml2[python,${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ ')
+"
+DEPEND="
+ virtual/zlib
+"
+RDEPEND="
+ ${DEPEND}
+ python? ( ${PYDEPEND} )
+"
+BDEPEND="
+ test? (
+ python? ( ${PYDEPEND} )
+ $(python_gen_cond_dep '
+ dev-python/pytest[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+pkg_setup() {
+ if use python || use test; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+my_emake() {
+ emake \
+ "$(use python || echo DIRS='vmdk ova templates')" \
+ PREFIX="${EPREFIX}/usr" \
+ "${@}"
+}
+
+src_compile() {
+ my_emake CC="$(tc-getCC)"
+}
+
+src_test() {
+ epytest $(use python || echo pytest/test_{info_options,vmdk}.py)
+}
+
+src_install() {
+ my_emake install DESTDIR="${D}"
+ use python && python_fix_shebang "${ED}"/usr/bin
+}