{
 "format": "xvm-licenses/1",
 "version": "python-2026.10.26.2",
 "environment": "python",
 "source_date_epoch": 1792972800,
 "paths": "relative to the site's licenses/ directory; guest/<version>/ holds this index and every file it names. The copyleft components' source is in xvm-sources (`sources`; each hosted archive's `repo`, `ref`, `commit`), not on the site (D114)",
 "sources": {
  "repo": "https://github.com/xuwaters/xvm-sources",
  "commit": "29f297441da1023d6f96e192d42aa1cf4f07b5b4",
  "tree": "https://github.com/xuwaters/xvm-sources/tree/29f297441da1023d6f96e192d42aa1cf4f07b5b4",
  "index_sha256": "c59eb2e06fa167bae68844d124cb402529e1c5965929da3d4ce7b406b1eba7ab"
 },
 "generated_from": {
  "apk_lock_sha256": "1e33951bfaefc980081e304fdb5876747a87c86979d5fadb20f99f626deea984",
  "python_apk_lock_sha256": "0246235b899eddd6fa49d84cbd35e9236dfd9eb665e15a8e3c26f113c98a52b6",
  "linux_lock_sha256": "46d8cfb3b508cc6ea2364d39cc49db63a9fc24cca4dccc1841af6336dbc23d4d",
  "sources_lock_sha256": "1addd2e56aa80a791a0d156ce79411dbff3b7072f8d0f34be71f169a06e93f42",
  "cargo_lock_sha256": "2ad3af17e3d81e89e214c49b1221f0710ee2508f11afddbfb343a78273ec2a4c"
 },
 "images": {
  "cold": {
   "root_sha256": "0589a6851cbea566aa02cbf461916025c3a8bd73a351816eb69d16e2e1ee71a4",
   "kernel_sha256": "c072943134b89f27e14322f07796f19c031797a3d4539a8c6a84709610cd9d49",
   "home_template_sha256": "838a12804735071c53384e470b0f57063cce888ec5aa9d383749af6bd09215df"
  },
  "snapshot": {
   "root_sha256": "0589a6851cbea566aa02cbf461916025c3a8bd73a351816eb69d16e2e1ee71a4",
   "kernel_sha256": "c072943134b89f27e14322f07796f19c031797a3d4539a8c6a84709610cd9d49",
   "home_template_sha256": "838a12804735071c53384e470b0f57063cce888ec5aa9d383749af6bd09215df",
   "state_hash": "55efdcd7ac226cb66dc8959cda9902170ba44bd7d8dc79f00ad1fa80e5316a5a"
  }
 },
 "components": [
  {
   "name": "linux",
   "version": "6.18.56",
   "licenses": [
    "GPL-2.0-only WITH Linux-syscall-note"
   ],
   "in_image": [
    "kernel Image (manifest object `kernel`; resident in the snapshot RAM)"
   ],
   "sources": [
    {
     "file": "linux-6.18.56.tar.xz",
     "url": "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.56.tar.xz",
     "size": 154807564,
     "sha256": "4633bbda2ab95eaf2a7af4041236451d6759c72e6946265531af4b3aacefbf89",
     "hosted": true,
     "repo": "https://github.com/xuwaters/linux/tree/17ad2612c11a748b50d32eefc681344b26fea946",
     "ref": "v6.18.56",
     "commit": "17ad2612c11a748b50d32eefc681344b26fea946"
    }
   ],
   "changes": "libkrunfw patches 0001/0002 (authorship kept), the configuration `config` (= libkrunfw's riscv64 config + recipe/xvm.config, olddefconfig), built by recipe/kbuild.sh in recipe/Dockerfile's image (recipe/builders.lock pins it)",
   "files": [
    "guest/python-2026.10.26.2/kernel/COPYING",
    "guest/python-2026.10.26.2/kernel/LICENSES/exceptions/Linux-syscall-note",
    "guest/python-2026.10.26.2/kernel/LICENSES/preferred/GPL-2.0",
    "guest/python-2026.10.26.2/kernel/config",
    "guest/python-2026.10.26.2/kernel/patches/0001-krunfw-Don-t-panic-when-init-dies.patch",
    "guest/python-2026.10.26.2/kernel/patches/0002-krunfw-Ignore-run_cmd-on-orderly-reboot.patch",
    "guest/python-2026.10.26.2/kernel/recipe/Dockerfile",
    "guest/python-2026.10.26.2/kernel/recipe/base/config-libkrunfw_riscv64",
    "guest/python-2026.10.26.2/kernel/recipe/builders.lock",
    "guest/python-2026.10.26.2/kernel/recipe/check-required-config.sh",
    "guest/python-2026.10.26.2/kernel/recipe/cmdline.txt",
    "guest/python-2026.10.26.2/kernel/recipe/defconfig-xvm_riscv64",
    "guest/python-2026.10.26.2/kernel/recipe/kbuild.sh",
    "guest/python-2026.10.26.2/kernel/recipe/kconfig-diff.sh",
    "guest/python-2026.10.26.2/kernel/recipe/linux.lock",
    "guest/python-2026.10.26.2/kernel/recipe/required-config.txt",
    "guest/python-2026.10.26.2/kernel/recipe/xvm-debug.config",
    "guest/python-2026.10.26.2/kernel/recipe/xvm.config"
   ],
   "xvm_sources": {
    "name": "linux",
    "path": "linux",
    "kind": "submodule",
    "repo": "https://github.com/xuwaters/linux/tree/17ad2612c11a748b50d32eefc681344b26fea946",
    "component_repo": "https://github.com/xuwaters/linux",
    "upstream": "https://github.com/gregkh/linux",
    "ref": "v6.18.56",
    "commit": "17ad2612c11a748b50d32eefc681344b26fea946"
   }
  },
  {
   "name": "busybox",
   "version": "1.37.0-r31",
   "licenses": [
    "GPL-2.0-only"
   ],
   "alpine": {
    "packages": [
     {
      "name": "busybox-static",
      "version": "1.37.0-r31",
      "arch": "riscv64",
      "apk_sha256": "300ecf7530b06c0dfaf56e8b7ed2bba9ccebac58984914518d77cc1a39a21413",
      "apk_url": "https://dl-cdn.alpinelinux.org/alpine/v3.24/main/riscv64/busybox-static-1.37.0-r31.apk",
      "license": "GPL-2.0-only",
      "origin": "busybox",
      "aports_commit": "c3ef5d10e6ef6528852c51f0564963e2f8c1be19"
     }
    ],
    "aport": "https://gitlab.alpinelinux.org/alpine/aports/-/tree/c3ef5d10e6ef6528852c51f0564963e2f8c1be19/main/busybox"
   },
   "in_image": [
    "/bin/busybox and its applet links"
   ],
   "sources": [
    {
     "file": "busybox-1.37.0.tar.bz2",
     "url": "https://busybox.net/downloads/busybox-1.37.0.tar.bz2",
     "size": 2565764,
     "sha256": "3311dff32e746499f4df0d5df04d7eb396382d7e108bb9250e7b519b837043a4",
     "hosted": true,
     "repo": "https://github.com/xuwaters/busybox/tree/be7d1b7b1701d225379bc1665487ed0871b592a5",
     "ref": "1_37_0",
     "commit": "be7d1b7b1701d225379bc1665487ed0871b592a5"
    }
   ],
   "files": [
    "guest/python-2026.10.26.2/alpine/busybox/0001-awk-fix-handling-of-literal-backslashes-in-replaceme.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0001-blkdiscard-ship-link-to-sbin-instead-of-usr-bin.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0001-hexdump-fix-regression-with-n4-e-u.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0001-init-add-support-for-separate-reboot-action.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0001-mount-fix-parsing-proc-mounts-with-long-lines.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0001-netstat-sanitize-process-names.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0001-tar-fix-16018-masking-of-potentially-malicious-tar-cpio-content.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0001-tar-fix-TOCTOU-symlink-race-condition.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0001-tunctl-fix-segfault-on-ioctl-failure.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0001-wget-add-header-Accept.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0002-adduser-default-to-sbin-nologin-as-shell-for-system-.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0003-ash-add-built-in-BB_ASH_VERSION-variable.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0005-libbb-sockaddr2str-ensure-only-printable-characters-.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0006-modinfo-add-k-option-for-kernel-version.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0007-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0008-pgrep-add-support-for-matching-against-UID-and-RUID.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0009-properly-fix-wget-https-support.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0010-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0011-nslookup-sanitize-all-printed-strings-with-printable.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0012-ash-exec-busybox.static.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0013-app-location-for-cpio-vi-and-lspci.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0014-udhcpc-set-default-discover-retries-to-5.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0015-ping-make-ping-work-without-root-privileges.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0016-fbsplash-support-console-switching.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0017-fbsplash-support-image-and-bar-alignment-and-positio.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0018-depmod-support-generating-kmod-binary-index-files.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0019-Add-flag-for-not-following-symlinks-when-recursing.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0020-udhcpc-Don-t-background-if-n-is-given.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0021-tests-fix-tarball-creation.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0022-tests-musl-doesn-t-seem-to-recognize-UTC0-as-a-timez.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0023-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0024-umount-Implement-O-option-to-unmount-by-mount-option.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0025-find-fix-xdev-depth-and-delete.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0026-awk.c-fix-CVE-2023-42366-bug-15874.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0027-awk-Mark-test-for-handling-of-start-of-word-pattern-.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0028-od-Skip-od-B-on-big-endian.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0029-ash-reject-unknown-long-options.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0030-hexdump-Skip-a-single-test-on-big-endian-systems.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0031-syslogd-fix-wrong-OPT_locallog-flag-detection.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0032-lineedit-fix-some-tab-completions-written-to-stdout.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0033-lineedit-use-stdout-for-shell-history-builtin.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0034-adduser-remove-preconfigured-GECOS-full-name-field.patch",
    "guest/python-2026.10.26.2/alpine/busybox/0035-cpio-map-F-to-file-long-option.patch",
    "guest/python-2026.10.26.2/alpine/busybox/APKBUILD",
    "guest/python-2026.10.26.2/alpine/busybox/PKGINFO-busybox-static-1.37.0-r31.txt",
    "guest/python-2026.10.26.2/alpine/busybox/acpid-poweroff.sh",
    "guest/python-2026.10.26.2/alpine/busybox/acpid.initd",
    "guest/python-2026.10.26.2/alpine/busybox/acpid.logrotate",
    "guest/python-2026.10.26.2/alpine/busybox/bbsuid.c",
    "guest/python-2026.10.26.2/alpine/busybox/busybox-extras.post-install",
    "guest/python-2026.10.26.2/alpine/busybox/busybox-extras.pre-deinstall",
    "guest/python-2026.10.26.2/alpine/busybox/busybox.post-install",
    "guest/python-2026.10.26.2/alpine/busybox/busybox.post-upgrade",
    "guest/python-2026.10.26.2/alpine/busybox/busybox.trigger",
    "guest/python-2026.10.26.2/alpine/busybox/busyboxconfig",
    "guest/python-2026.10.26.2/alpine/busybox/busyboxconfig-extras",
    "guest/python-2026.10.26.2/alpine/busybox/crond.confd",
    "guest/python-2026.10.26.2/alpine/busybox/crond.initd",
    "guest/python-2026.10.26.2/alpine/busybox/dad.if-up",
    "guest/python-2026.10.26.2/alpine/busybox/default.script",
    "guest/python-2026.10.26.2/alpine/busybox/dnsd.initd",
    "guest/python-2026.10.26.2/alpine/busybox/httpd.initd",
    "guest/python-2026.10.26.2/alpine/busybox/inetd.initd",
    "guest/python-2026.10.26.2/alpine/busybox/klogd.confd",
    "guest/python-2026.10.26.2/alpine/busybox/klogd.initd",
    "guest/python-2026.10.26.2/alpine/busybox/loadkmap.confd",
    "guest/python-2026.10.26.2/alpine/busybox/loadkmap.initd",
    "guest/python-2026.10.26.2/alpine/busybox/mdev.initd",
    "guest/python-2026.10.26.2/alpine/busybox/ntpd.confd",
    "guest/python-2026.10.26.2/alpine/busybox/ntpd.initd",
    "guest/python-2026.10.26.2/alpine/busybox/rdate.confd",
    "guest/python-2026.10.26.2/alpine/busybox/rdate.initd",
    "guest/python-2026.10.26.2/alpine/busybox/securetty",
    "guest/python-2026.10.26.2/alpine/busybox/ssl_client.c",
    "guest/python-2026.10.26.2/alpine/busybox/syslog.confd",
    "guest/python-2026.10.26.2/alpine/busybox/syslog.initd",
    "guest/python-2026.10.26.2/alpine/busybox/udhcpc.conf",
    "guest/python-2026.10.26.2/alpine/busybox/udhcpd.initd",
    "guest/python-2026.10.26.2/alpine/busybox/watchdog.confd",
    "guest/python-2026.10.26.2/alpine/busybox/watchdog.initd",
    "guest/python-2026.10.26.2/busybox/LICENSE"
   ],
   "xvm_sources": {
    "name": "busybox",
    "path": "busybox",
    "kind": "submodule",
    "repo": "https://github.com/xuwaters/busybox/tree/be7d1b7b1701d225379bc1665487ed0871b592a5",
    "component_repo": "https://github.com/xuwaters/busybox",
    "upstream": "https://github.com/sailfishos-mirror/busybox",
    "ref": "1_37_0",
    "commit": "be7d1b7b1701d225379bc1665487ed0871b592a5"
   }
  },
  {
   "name": "bzip2",
   "version": "1.0.8-r6",
   "licenses": [
    "bzip2-1.0.6"
   ],
   "alpine": {
    "packages": [
     {
      "name": "libbz2",
      "version": "1.0.8-r6",
      "arch": "riscv64",
      "apk_sha256": "91bc2fdb817dbdaf679dbd63eea2af4306c291acb0d93b207a066839c3aae5d7",
      "apk_url": "https://dl-cdn.alpinelinux.org/alpine/v3.24/main/riscv64/libbz2-1.0.8-r6.apk",
      "license": "bzip2-1.0.6",
      "origin": "bzip2",
      "aports_commit": "33283848034c9885d984c8e8697c645c57324938"
     }
    ],
    "aport": "https://gitlab.alpinelinux.org/alpine/aports/-/tree/33283848034c9885d984c8e8697c645c57324938/main/bzip2"
   },
   "in_image": [
    "/usr/lib/libbz2.so.1 (bz2)"
   ],
   "sources": [
    {
     "file": "bzip2-1.0.8.tar.gz",
     "url": "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz",
     "size": 810029,
     "sha256": "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269",
     "hosted": false,
     "note": "permissive licence: no source obligation; the archive is listed, not hosted"
    }
   ],
   "files": [
    "guest/python-2026.10.26.2/alpine/bzip2/APKBUILD",
    "guest/python-2026.10.26.2/alpine/bzip2/PKGINFO-libbz2-1.0.8-r6.txt",
    "guest/python-2026.10.26.2/alpine/bzip2/bzip2-1.0.2-progress.patch",
    "guest/python-2026.10.26.2/alpine/bzip2/bzip2-1.0.3-no-test.patch",
    "guest/python-2026.10.26.2/alpine/bzip2/bzip2-1.0.4-makefile-CFLAGS.patch",
    "guest/python-2026.10.26.2/alpine/bzip2/bzip2-1.0.4-man-links.patch",
    "guest/python-2026.10.26.2/alpine/bzip2/bzip2.pc.in",
    "guest/python-2026.10.26.2/alpine/bzip2/saneso.patch",
    "guest/python-2026.10.26.2/bzip2/LICENSE"
   ]
  },
  {
   "name": "expat",
   "version": "2.9.0-r0",
   "licenses": [
    "MIT"
   ],
   "alpine": {
    "packages": [
     {
      "name": "libexpat",
      "version": "2.9.0-r0",
      "arch": "riscv64",
      "apk_sha256": "8def7e9cea3ca9b2a5bdbb3de8f6cc28c1d163055b630cb0d4f1228e058eac56",
      "apk_url": "https://dl-cdn.alpinelinux.org/alpine/v3.24/main/riscv64/libexpat-2.9.0-r0.apk",
      "license": "MIT",
      "origin": "expat",
      "aports_commit": "c10df79ce35862cf273f98f6eb78d52e4f064ac7"
     }
    ],
    "aport": "https://gitlab.alpinelinux.org/alpine/aports/-/tree/c10df79ce35862cf273f98f6eb78d52e4f064ac7/main/expat"
   },
   "in_image": [
    "/usr/lib/libexpat.so.1 (xml.etree, xml.parsers.expat)"
   ],
   "sources": [
    {
     "file": "expat-2.9.0.tar.xz",
     "url": "https://github.com/libexpat/libexpat/releases/download/R_2_9_0/expat-2.9.0.tar.xz",
     "size": 534052,
     "sha256": "1e6371862cc31999b368c3b89b49994f0677e1bab5f1b2b85ae3741f5d803051",
     "hosted": false,
     "note": "permissive licence: no source obligation; the archive is listed, not hosted"
    }
   ],
   "files": [
    "guest/python-2026.10.26.2/alpine/expat/APKBUILD",
    "guest/python-2026.10.26.2/alpine/expat/PKGINFO-libexpat-2.9.0-r0.txt",
    "guest/python-2026.10.26.2/expat/COPYING"
   ]
  },
  {
   "name": "libffi",
   "version": "3.5.2-r1",
   "licenses": [
    "MIT"
   ],
   "alpine": {
    "packages": [
     {
      "name": "libffi",
      "version": "3.5.2-r1",
      "arch": "riscv64",
      "apk_sha256": "e072700a7bff84a148d8e217e904b398dd7bb6a6ca88821b39f24804dea8cbd7",
      "apk_url": "https://dl-cdn.alpinelinux.org/alpine/v3.24/main/riscv64/libffi-3.5.2-r1.apk",
      "license": "MIT",
      "origin": "libffi",
      "aports_commit": "2c2a7bb4a8b16066834e90402567b2c19403a790"
     }
    ],
    "aport": "https://gitlab.alpinelinux.org/alpine/aports/-/tree/2c2a7bb4a8b16066834e90402567b2c19403a790/main/libffi"
   },
   "in_image": [
    "/usr/lib/libffi.so.8 (ctypes)"
   ],
   "sources": [
    {
     "file": "libffi-3.5.2.tar.gz",
     "url": "https://github.com/libffi/libffi/releases/download/v3.5.2/libffi-3.5.2.tar.gz",
     "size": 1423124,
     "sha256": "f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc",
     "hosted": false,
     "note": "permissive licence: no source obligation; the archive is listed, not hosted"
    }
   ],
   "files": [
    "guest/python-2026.10.26.2/alpine/libffi/APKBUILD",
    "guest/python-2026.10.26.2/alpine/libffi/PKGINFO-libffi-3.5.2-r1.txt",
    "guest/python-2026.10.26.2/alpine/libffi/fix-tests-fortify.patch",
    "guest/python-2026.10.26.2/libffi/LICENSE"
   ]
  },
  {
   "name": "mpdecimal",
   "version": "4.0.1-r0",
   "licenses": [
    "BSD-2-Clause"
   ],
   "alpine": {
    "packages": [
     {
      "name": "mpdecimal",
      "version": "4.0.1-r0",
      "arch": "riscv64",
      "apk_sha256": "1a0250e04b1531d3a588ad3a4ba95195cb7d199bc0b1f6896b6e6fa6baeb7cfe",
      "apk_url": "https://dl-cdn.alpinelinux.org/alpine/v3.24/main/riscv64/mpdecimal-4.0.1-r0.apk",
      "license": "BSD-2-Clause",
      "origin": "mpdecimal",
      "aports_commit": "c0519b85456e9b838e3142e1d233aab0b433b476"
     }
    ],
    "aport": "https://gitlab.alpinelinux.org/alpine/aports/-/tree/c0519b85456e9b838e3142e1d233aab0b433b476/main/mpdecimal"
   },
   "in_image": [
    "/usr/lib/libmpdec.so.4 (decimal; libmpdec++ of the package is not in the image)"
   ],
   "sources": [
    {
     "file": "mpdecimal-4.0.1.tar.gz",
     "url": "https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-4.0.1.tar.gz",
     "size": 316268,
     "sha256": "96d33abb4bb0070c7be0fed4246cd38416188325f820468214471938545b1ac8",
     "hosted": false,
     "note": "permissive licence: no source obligation; the archive is listed, not hosted"
    }
   ],
   "files": [
    "guest/python-2026.10.26.2/alpine/mpdecimal/APKBUILD",
    "guest/python-2026.10.26.2/alpine/mpdecimal/PKGINFO-mpdecimal-4.0.1-r0.txt",
    "guest/python-2026.10.26.2/mpdecimal/COPYRIGHT.txt"
   ]
  },
  {
   "name": "musl",
   "version": "1.2.6-r2",
   "licenses": [
    "MIT"
   ],
   "alpine": {
    "packages": [
     {
      "name": "musl",
      "version": "1.2.6-r2",
      "arch": "riscv64",
      "apk_sha256": "5bea4aa90f58568f6d69e1eaf800a66347d9cf71e19fd6f1047cb8b36169f319",
      "apk_url": "https://dl-cdn.alpinelinux.org/alpine/v3.24/main/riscv64/musl-1.2.6-r2.apk",
      "license": "MIT",
      "origin": "musl",
      "aports_commit": "f5640d3a10f664c9119720c60515265d3d6f6d01"
     }
    ],
    "aport": "https://gitlab.alpinelinux.org/alpine/aports/-/tree/f5640d3a10f664c9119720c60515265d3d6f6d01/main/musl"
   },
   "in_image": [
    "/lib/ld-musl-riscv64.so.1 (libc)"
   ],
   "sources": [
    {
     "file": "musl-1.2.6.tar.gz",
     "url": "https://musl.libc.org/releases/musl-1.2.6.tar.gz",
     "size": 1082499,
     "sha256": "d585fd3b613c66151fc3249e8ed44f77020cb5e6c1e635a616d3f9f82460512a",
     "hosted": false,
     "note": "permissive licence: no source obligation; the archive is listed, not hosted"
    }
   ],
   "files": [
    "guest/python-2026.10.26.2/alpine/musl/0001-add-stub-for-pthread_mutexattr_setprioceiling.patch",
    "guest/python-2026.10.26.2/alpine/musl/APKBUILD",
    "guest/python-2026.10.26.2/alpine/musl/CVE-2026-40200.patch",
    "guest/python-2026.10.26.2/alpine/musl/CVE-2026-6042.patch",
    "guest/python-2026.10.26.2/alpine/musl/PKGINFO-musl-1.2.6-r2.txt",
    "guest/python-2026.10.26.2/alpine/musl/__stack_chk_fail_local.c",
    "guest/python-2026.10.26.2/alpine/musl/fix-loongarch64-zero-len-extcontext.patch",
    "guest/python-2026.10.26.2/alpine/musl/getconf.c",
    "guest/python-2026.10.26.2/alpine/musl/getent.c",
    "guest/python-2026.10.26.2/alpine/musl/handle-aux-at_base.patch",
    "guest/python-2026.10.26.2/alpine/musl/iconv.c",
    "guest/python-2026.10.26.2/alpine/musl/ldconfig",
    "guest/python-2026.10.26.2/musl/COPYRIGHT"
   ]
  },
  {
   "name": "python3",
   "version": "3.14.8-r0",
   "licenses": [
    "PSF-2.0"
   ],
   "alpine": {
    "packages": [
     {
      "name": "python3",
      "version": "3.14.8-r0",
      "arch": "riscv64",
      "apk_sha256": "58926b7b9e44e414d77c329e0eefabcb958a1273a17f56ba3dbe54475b22ed7d",
      "apk_url": "https://dl-cdn.alpinelinux.org/alpine/v3.24/main/riscv64/python3-3.14.8-r0.apk",
      "license": "PSF-2.0",
      "origin": "python3",
      "aports_commit": "bc27f38b89f034547fd7da4dba62eeb6a0daeb3b"
     },
     {
      "name": "python3-pycache-pyc0",
      "version": "3.14.8-r0",
      "arch": "riscv64",
      "apk_sha256": "fcc58104713ff5551cdf3fffeecabbba55dc7efeb6524b1a0c8ee07bf7ba8613",
      "apk_url": "https://dl-cdn.alpinelinux.org/alpine/v3.24/main/riscv64/python3-pycache-pyc0-3.14.8-r0.apk",
      "license": "PSF-2.0",
      "origin": "python3",
      "aports_commit": "bc27f38b89f034547fd7da4dba62eeb6a0daeb3b"
     }
    ],
    "aport": "https://gitlab.alpinelinux.org/alpine/aports/-/tree/bc27f38b89f034547fd7da4dba62eeb6a0daeb3b/main/python3"
   },
   "in_image": [
    "/usr/bin/python3.14, /usr/lib/libpython3.14.so.1.0 and the standard library /usr/lib/python3.14 with its bytecode (python3-pycache-pyc0), less the modules guest/images/python/drop.txt removes (python3/recipe/)"
   ],
   "sources": [
    {
     "file": "Python-3.14.8.tar.xz",
     "url": "https://www.python.org/ftp/python/3.14.8/Python-3.14.8.tar.xz",
     "size": 24130644,
     "sha256": "c2215904f02b175596dc49351585104f4bc20341e1c47378b26a2c274360ce73",
     "hosted": false,
     "note": "permissive licence: no source obligation; the archive is listed, not hosted"
    }
   ],
   "files": [
    "guest/python-2026.10.26.2/alpine/python3/APKBUILD",
    "guest/python-2026.10.26.2/alpine/python3/PKGINFO-python3-3.14.8-r0.txt",
    "guest/python-2026.10.26.2/alpine/python3/PKGINFO-python3-pycache-pyc0-3.14.8-r0.txt",
    "guest/python-2026.10.26.2/alpine/python3/externally-managed",
    "guest/python-2026.10.26.2/alpine/python3/musl-find_library.patch",
    "guest/python-2026.10.26.2/python3/LICENSE",
    "guest/python-2026.10.26.2/python3/recipe/apk.lock",
    "guest/python-2026.10.26.2/python3/recipe/drop.txt",
    "guest/python-2026.10.26.2/python3/recipe/env",
    "guest/python-2026.10.26.2/python3/recipe/mkroot.sh",
    "guest/python-2026.10.26.2/python3/recipe/profile"
   ],
   "changes": "Alpine's build (alpine/python3/), installed without its install scripts; the standard library trimmed by python3/recipe/drop.txt (mkroot.sh MODE=python)"
  },
  {
   "name": "xz",
   "version": "5.8.4-r0",
   "licenses": [
    "GPL-2.0-or-later AND 0BSD AND Public-Domain AND LGPL-2.1-or-later"
   ],
   "alpine": {
    "packages": [
     {
      "name": "xz-libs",
      "version": "5.8.4-r0",
      "arch": "riscv64",
      "apk_sha256": "1e519837fbfe83021050ee81dc431001a305a176920366499a87b9d5bfffc31b",
      "apk_url": "https://dl-cdn.alpinelinux.org/alpine/v3.24/main/riscv64/xz-libs-5.8.4-r0.apk",
      "license": "GPL-2.0-or-later AND 0BSD AND Public-Domain AND LGPL-2.1-or-later",
      "origin": "xz",
      "aports_commit": "0c088d609f9fe69eedd6b4c7f4b99cdad847c20a"
     }
    ],
    "aport": "https://gitlab.alpinelinux.org/alpine/aports/-/tree/0c088d609f9fe69eedd6b4c7f4b99cdad847c20a/main/xz"
   },
   "in_image": [
    "/usr/lib/liblzma.so.5 (lzma; xz-libs: the library only, 0BSD)"
   ],
   "sources": [
    {
     "file": "xz-5.8.4.tar.gz",
     "url": "https://github.com/tukaani-project/xz/archive/refs/tags/v5.8.4/xz-5.8.4.tar.gz",
     "size": 1670561,
     "sha256": "b6b34c52e672e810d339db14e0c10b5b6f5f67a30d8d05cdac5d8cb4d82f78d5",
     "hosted": false,
     "note": "permissive licence: no source obligation; the archive is listed, not hosted"
    }
   ],
   "files": [
    "guest/python-2026.10.26.2/alpine/xz/APKBUILD",
    "guest/python-2026.10.26.2/alpine/xz/PKGINFO-xz-libs-5.8.4-r0.txt",
    "guest/python-2026.10.26.2/xz/COPYING",
    "guest/python-2026.10.26.2/xz/COPYING.0BSD"
   ]
  },
  {
   "name": "zlib",
   "version": "1.3.2-r1",
   "licenses": [
    "Zlib"
   ],
   "alpine": {
    "packages": [
     {
      "name": "zlib",
      "version": "1.3.2-r1",
      "arch": "riscv64",
      "apk_sha256": "df0fed8bca1579423b1a78f3dde7e8130ea81908bcaacf179d452ae81cc4fdda",
      "apk_url": "https://dl-cdn.alpinelinux.org/alpine/v3.24/main/riscv64/zlib-1.3.2-r1.apk",
      "license": "Zlib",
      "origin": "zlib",
      "aports_commit": "0afa2da0e8c8051c6f8f64a7a388e5a259904245"
     }
    ],
    "aport": "https://gitlab.alpinelinux.org/alpine/aports/-/tree/0afa2da0e8c8051c6f8f64a7a388e5a259904245/main/zlib"
   },
   "in_image": [
    "/usr/lib/libz.so.1.3.2"
   ],
   "sources": [
    {
     "file": "zlib-1.3.2.tar.gz",
     "url": "https://zlib.net/fossils/zlib-1.3.2.tar.gz",
     "size": 1502830,
     "sha256": "bb329a0a2cd0274d05519d61c667c062e06990d72e125ee2dfa8de64f0119d16",
     "hosted": false,
     "note": "permissive licence: no source obligation; the archive is listed, not hosted"
    }
   ],
   "files": [
    "guest/python-2026.10.26.2/alpine/zlib/APKBUILD",
    "guest/python-2026.10.26.2/alpine/zlib/CVE-2026-85091.patch",
    "guest/python-2026.10.26.2/alpine/zlib/PKGINFO-zlib-1.3.2-r1.txt",
    "guest/python-2026.10.26.2/zlib/LICENSE"
   ]
  },
  {
   "name": "xvm",
   "version": "python-2026.10.26.2",
   "licenses": [
    "MIT OR Apache-2.0"
   ],
   "in_image": [
    "/sbin/xvm-agent (PID 1), statically linked with Rust's standard library, the crates below and musl (Rust's self-contained copy, MIT: musl/COPYRIGHT)",
    "/etc (passwd, group, profile, xvm/env, ...), the home template's .profile"
   ],
   "crates": [
    {
     "name": "itoa",
     "version": "1.0.18",
     "license": "MIT OR Apache-2.0",
     "repository": "https://github.com/dtolnay/itoa",
     "files": [
      "guest/python-2026.10.26.2/xvm/crates/itoa-1.0.18/LICENSE-APACHE",
      "guest/python-2026.10.26.2/xvm/crates/itoa-1.0.18/LICENSE-MIT"
     ]
    },
    {
     "name": "libc",
     "version": "0.2.190",
     "license": "MIT OR Apache-2.0",
     "repository": "https://github.com/rust-lang/libc",
     "files": [
      "guest/python-2026.10.26.2/xvm/crates/libc-0.2.190/LICENSE-APACHE",
      "guest/python-2026.10.26.2/xvm/crates/libc-0.2.190/LICENSE-MIT"
     ]
    },
    {
     "name": "memchr",
     "version": "2.8.3",
     "license": "Unlicense OR MIT",
     "repository": "https://github.com/BurntSushi/memchr",
     "files": [
      "guest/python-2026.10.26.2/xvm/crates/memchr-2.8.3/COPYING",
      "guest/python-2026.10.26.2/xvm/crates/memchr-2.8.3/LICENSE-MIT"
     ]
    },
    {
     "name": "proc-macro2",
     "version": "1.0.107",
     "license": "MIT OR Apache-2.0",
     "repository": "https://github.com/dtolnay/proc-macro2",
     "files": [
      "guest/python-2026.10.26.2/xvm/crates/proc-macro2-1.0.107/LICENSE-APACHE",
      "guest/python-2026.10.26.2/xvm/crates/proc-macro2-1.0.107/LICENSE-MIT"
     ]
    },
    {
     "name": "quote",
     "version": "1.0.47",
     "license": "MIT OR Apache-2.0",
     "repository": "https://github.com/dtolnay/quote",
     "files": [
      "guest/python-2026.10.26.2/xvm/crates/quote-1.0.47/LICENSE-APACHE",
      "guest/python-2026.10.26.2/xvm/crates/quote-1.0.47/LICENSE-MIT"
     ]
    },
    {
     "name": "serde",
     "version": "1.0.229",
     "license": "MIT OR Apache-2.0",
     "repository": "https://github.com/serde-rs/serde",
     "files": [
      "guest/python-2026.10.26.2/xvm/crates/serde-1.0.229/LICENSE-APACHE",
      "guest/python-2026.10.26.2/xvm/crates/serde-1.0.229/LICENSE-MIT"
     ]
    },
    {
     "name": "serde_core",
     "version": "1.0.229",
     "license": "MIT OR Apache-2.0",
     "repository": "https://github.com/serde-rs/serde",
     "files": [
      "guest/python-2026.10.26.2/xvm/crates/serde_core-1.0.229/LICENSE-APACHE",
      "guest/python-2026.10.26.2/xvm/crates/serde_core-1.0.229/LICENSE-MIT"
     ]
    },
    {
     "name": "serde_derive",
     "version": "1.0.229",
     "license": "MIT OR Apache-2.0",
     "repository": "https://github.com/serde-rs/serde",
     "files": [
      "guest/python-2026.10.26.2/xvm/crates/serde_derive-1.0.229/LICENSE-APACHE",
      "guest/python-2026.10.26.2/xvm/crates/serde_derive-1.0.229/LICENSE-MIT"
     ]
    },
    {
     "name": "serde_json",
     "version": "1.0.154",
     "license": "MIT OR Apache-2.0",
     "repository": "https://github.com/serde-rs/json",
     "files": [
      "guest/python-2026.10.26.2/xvm/crates/serde_json-1.0.154/LICENSE-APACHE",
      "guest/python-2026.10.26.2/xvm/crates/serde_json-1.0.154/LICENSE-MIT"
     ]
    },
    {
     "name": "syn",
     "version": "3.0.9",
     "license": "MIT OR Apache-2.0",
     "repository": "https://github.com/dtolnay/syn",
     "files": [
      "guest/python-2026.10.26.2/xvm/crates/syn-3.0.9/LICENSE-APACHE",
      "guest/python-2026.10.26.2/xvm/crates/syn-3.0.9/LICENSE-MIT"
     ]
    },
    {
     "name": "unicode-ident",
     "version": "1.0.27",
     "license": "(MIT OR Apache-2.0) AND Unicode-3.0",
     "repository": "https://github.com/dtolnay/unicode-ident",
     "files": [
      "guest/python-2026.10.26.2/xvm/crates/unicode-ident-1.0.27/LICENSE-APACHE",
      "guest/python-2026.10.26.2/xvm/crates/unicode-ident-1.0.27/LICENSE-MIT",
      "guest/python-2026.10.26.2/xvm/crates/unicode-ident-1.0.27/LICENSE-UNICODE"
     ]
    },
    {
     "name": "zmij",
     "version": "1.0.23",
     "license": "MIT",
     "repository": "https://github.com/dtolnay/zmij",
     "files": [
      "guest/python-2026.10.26.2/xvm/crates/zmij-1.0.23/LICENSE-MIT"
     ]
    }
   ],
   "sources": [],
   "note": "Our own code, MIT OR Apache-2.0: no source obligation. The scripts that build the GPL components are in their own directories here (kernel/recipe/).",
   "files": [
    "guest/python-2026.10.26.2/xvm/LICENSE-APACHE",
    "guest/python-2026.10.26.2/xvm/LICENSE-MIT",
    "guest/python-2026.10.26.2/xvm/NOTICE",
    "guest/python-2026.10.26.2/xvm/crates/itoa-1.0.18/LICENSE-APACHE",
    "guest/python-2026.10.26.2/xvm/crates/itoa-1.0.18/LICENSE-MIT",
    "guest/python-2026.10.26.2/xvm/crates/libc-0.2.190/LICENSE-APACHE",
    "guest/python-2026.10.26.2/xvm/crates/libc-0.2.190/LICENSE-MIT",
    "guest/python-2026.10.26.2/xvm/crates/memchr-2.8.3/COPYING",
    "guest/python-2026.10.26.2/xvm/crates/memchr-2.8.3/LICENSE-MIT",
    "guest/python-2026.10.26.2/xvm/crates/proc-macro2-1.0.107/LICENSE-APACHE",
    "guest/python-2026.10.26.2/xvm/crates/proc-macro2-1.0.107/LICENSE-MIT",
    "guest/python-2026.10.26.2/xvm/crates/quote-1.0.47/LICENSE-APACHE",
    "guest/python-2026.10.26.2/xvm/crates/quote-1.0.47/LICENSE-MIT",
    "guest/python-2026.10.26.2/xvm/crates/serde-1.0.229/LICENSE-APACHE",
    "guest/python-2026.10.26.2/xvm/crates/serde-1.0.229/LICENSE-MIT",
    "guest/python-2026.10.26.2/xvm/crates/serde_core-1.0.229/LICENSE-APACHE",
    "guest/python-2026.10.26.2/xvm/crates/serde_core-1.0.229/LICENSE-MIT",
    "guest/python-2026.10.26.2/xvm/crates/serde_derive-1.0.229/LICENSE-APACHE",
    "guest/python-2026.10.26.2/xvm/crates/serde_derive-1.0.229/LICENSE-MIT",
    "guest/python-2026.10.26.2/xvm/crates/serde_json-1.0.154/LICENSE-APACHE",
    "guest/python-2026.10.26.2/xvm/crates/serde_json-1.0.154/LICENSE-MIT",
    "guest/python-2026.10.26.2/xvm/crates/syn-3.0.9/LICENSE-APACHE",
    "guest/python-2026.10.26.2/xvm/crates/syn-3.0.9/LICENSE-MIT",
    "guest/python-2026.10.26.2/xvm/crates/unicode-ident-1.0.27/LICENSE-APACHE",
    "guest/python-2026.10.26.2/xvm/crates/unicode-ident-1.0.27/LICENSE-MIT",
    "guest/python-2026.10.26.2/xvm/crates/unicode-ident-1.0.27/LICENSE-UNICODE",
    "guest/python-2026.10.26.2/xvm/crates/zmij-1.0.23/LICENSE-MIT",
    "guest/python-2026.10.26.2/xvm/rust/COPYRIGHT-library.html",
    "guest/python-2026.10.26.2/xvm/rust/COPYRIGHT.html",
    "guest/python-2026.10.26.2/xvm/rust/README.md",
    "guest/python-2026.10.26.2/xvm/rust/licenses/Apache-2.0.txt",
    "guest/python-2026.10.26.2/xvm/rust/licenses/BSD-2-Clause.txt",
    "guest/python-2026.10.26.2/xvm/rust/licenses/CC-BY-SA-4.0.txt",
    "guest/python-2026.10.26.2/xvm/rust/licenses/GCC-exception-3.1.txt",
    "guest/python-2026.10.26.2/xvm/rust/licenses/GPL-2.0-only.txt",
    "guest/python-2026.10.26.2/xvm/rust/licenses/GPL-3.0-or-later.txt",
    "guest/python-2026.10.26.2/xvm/rust/licenses/ISC.txt",
    "guest/python-2026.10.26.2/xvm/rust/licenses/LLVM-exception.txt",
    "guest/python-2026.10.26.2/xvm/rust/licenses/MIT.txt",
    "guest/python-2026.10.26.2/xvm/rust/licenses/NCSA.txt",
    "guest/python-2026.10.26.2/xvm/rust/licenses/OFL-1.1.txt",
    "guest/python-2026.10.26.2/xvm/rust/licenses/Unicode-3.0.txt",
    "guest/python-2026.10.26.2/xvm/rust/rustc-vV.txt"
   ]
  }
 ],
 "not_distributed": "guest/python-2026.10.26.2/tools.txt",
 "offer": "guest/python-2026.10.26.2/README.html"
}
