Build images end-to-end using Bazel v2 (#61845)

* wip

* gitserver (mostly) wolfi 4 bazel

* the big heck of all things

* Add rules_apko lock translation rules to WORKSPACE

* Call apko_repositories() more

* fix rules_apko to handle our shorter repo urls

* fix workspace from rebase, and missing locks

* visibility on wolfi_base_image

* hand-fix a lock coz apko lock is 🅱️roken

* remove chainguard repo+keyring from base

* update locks

* add chainguard repo+keychain to single server manifest

* unrelated fixes, server+grafana still h*cked

* fix postgres-exporter

* the big fix

* aws lib got bumped?

* downgrade sso-oidc? idk

* ignore wolfi locks from prettier

* dynamically do the locks with a reporule

* document and make nice :nails:

* bazel run @rules_apko//apko patch

* Fix .typo.typo

* Update tooling for end-to-end Bazel images (#61106)

* Update sg wolfi image to build using Bazel

* bazel run @rules_apko//apko patch

* Fix .typo.typo

* Add update-images and implement apko YAML change monitoring

* Use bazel apko and add support for additional repos

* Refactor sg wolfi

* Rework wolfi base image auto-update pipeline

* sg bazel configure

* [rough] Add --check flag to sg wolfi lock

* Refactor sg wolfi lock --check

* Simplify check and update apko lock hash operations

* Fix resolveImagePath when running in bazel

* Fixup logic error in CheckApkoLockHashes

* Tweak DoBaseImageBuild output

* Remove debug output

* Fix sg wolfi lock --check behaviour for all images

* Replace base image build step with apko lock --check

* Remove debug line

* Minor fixups for CI step

* Wrap with AnnotatedCmd

* Fixup annotation

* Update apko lockfiles

* Allow additional repos to be passed

* Update build-base-image.sh with bazel + add back to pipeline

* Ensure that modified base images are rebuilt

* Solve bazelception

* Remove timestamp for bit-level reproducibility

* Skip local keygen when running on buildkite

* Add workaround for lack of local repo support in rules_apko

* Run apkoOps first as it's quick and might fail

* Remove blocking allBaseImagesBuilt step

* Remove unused promethus-gcp image

* Add special cases to resolveImagePath

* Cleanly handle case where no bazel build path exists

This could happen in cases where a base image is only used outside of sourcegraph/sourcegraph,
or if you've added a new base image config but haven't added the associated Bazel scaffolding

* Add debugging around failing docker builds

* More debugging

* Normalise apko_lockfile to match repo.bzl

* Fixup apko docker call

* Try passing imageconfigdir differently to docker

* Run ls in different container

* Soft-fail when using legacy build in Buildkite

* Add missing include

* Workaround for building sourcegraph and sourcegraph-dev

* Add postgresql-client package to server

This contains createdb, which was recently moved from postgresql

* Inflate postgres-12-codeinsights image to avoid rules_apko errors

* Remove update line from yaml files

* Fix issue caused by moving base sourcegraph image

* Remove apk-tools from server

* Update lockfiles

* Address review feedback

* Remove debug lines

* fix unbound var

---------

Co-authored-by: Noah Santschi-Cooney <noah@santschi-cooney.ch>

* go mod tidy + gazelle-update-repos after merging main

* Use aspect bazel cache

* Use Aspect bazel caching when calling bazel in bash and sg

* Append annotation

* Run apko lock on aspect agent

* Remove base image builds

Discussion in https://sourcegraph.slack.com/archives/C05EVRLQEUR/p1712307465660509

* Remove unused functionality

* Update BaseImageConfig comments

* Rewrite wolfi-images/README.md

* Add .apko/range.sh to .gitattributes

* Remove "wolfi" from :base_image and :base_tarball targets

* remove allowlist extras from debugging

* Tweak user instructions around package testing

* Add agent healthcheck to buildkite scripts

* prettier

* sg bazel configure

* bazel run //:gazelle-update-repos

---------

Co-authored-by: Noah Santschi-Cooney <noah@santschi-cooney.ch>
Co-authored-by: Noah S-C <noah@sourcegraph.com>
This commit is contained in:
Will Dollman 2024-04-12 16:18:43 +01:00 committed by GitHub
parent 80678467fd
commit d56fa926dd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
134 changed files with 29179 additions and 375 deletions

8
.apko/.bazelrc Normal file
View File

@ -0,0 +1,8 @@
# Generated by apko_bazelrc. DO NOT EDIT
# Required for making http range requests when fetching the apk packages.
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
common --credential_helper="dl-cdn.alpinelinux.org=%workspace%/.apko/range.sh"
common --credential_helper="packages.wolfi.dev=%workspace%/.apko/range.sh"
common --credential_helper="packages.sgdev.org=%workspace%/.apko/range.sh"
common --credential_helper="storage.googleapis.com=%workspace%/.apko/range.sh"

12
.apko/range.sh generated Executable file
View File

@ -0,0 +1,12 @@
#!/usr/bin/env bash
# Generated by apko_bazelrc. DO NOT EDIT
# Adds Range header to outgoing http requests by parsing the range fragment on URL from stdin
# See https://github.com/bazelbuild/proposals/blob/main/designs/2022-06-07-bazel-credential-helpers.md
# Required for range requests for fetching the apk packages.
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
echo -n '{"headers":{"Range":['
cat | sed -n 's/.*#_apk_range_bytes_\([[:digit:]]*-[[:digit:]]*\).*/"bytes=\1"/p' | tr -d '\n'
echo ']}}'

View File

@ -8,6 +8,8 @@ import %workspace%/.aspect/bazelrc/javascript.bazelrc
import %workspace%/.aspect/bazelrc/performance.bazelrc
import %workspace%/.aspect/bazelrc/rules_ts.bazelrc
try-import %workspace%/.apko/.bazelrc
### YOUR PROJECT SPECIFIC SETTINGS GO HERE ###
# Load any settings & overrides specific to the current user from `.aspect/bazelrc/user.bazelrc`.

1
.gitattributes vendored
View File

@ -7,3 +7,4 @@ cmd/repo-updater/repos/testdata/** linguist-generated=true
**/*.pb.go linguist-generated=true
CHANGELOG.md merge=union
**/mocks*_*test.go linguist-generated=true
.apko/range.sh linguist-generated=true

View File

@ -60,3 +60,5 @@ dev/backcompat/flakes.json
client/browser/src/types/webextension-polyfill/index.d.ts
graphql-operations.ts
wolfi-images/*.lock.json

View File

@ -332,3 +332,55 @@ config_setting(
"//:sg_msp": "True",
},
)
load("@rules_apko//apko:defs.bzl", "apko_bazelrc")
load("@rules_apko//apko:repositories.bzl", "apko_register_toolchains", "rules_apko_dependencies")
load("@rules_apko//apko:toolchain.bzl", "apko_toolchain")
apko_bazelrc(
name = "apko_bazelrc",
repositories = [
"dl-cdn.alpinelinux.org",
"packages.wolfi.dev",
"packages.sgdev.org",
"storage.googleapis.com",
],
)
# All the below toolchain creation can be removed (and their registration in WORKSPACE)
# on the following PR is merged and released https://github.com/chainguard-dev/go-apk/pull/216
apko_toolchain(
name = "apko",
apko = "@dev_chainguard_apko//:apko",
version = "0.13.2",
)
toolchain(
name = "apko_linux_toolchain",
exec_compatible_with = [
"@platforms//os:linux",
"@platforms//cpu:x86_64",
],
toolchain = "//:apko",
toolchain_type = "@rules_apko//apko:toolchain_type",
)
toolchain(
name = "apko_darwin_arm64_toolchain",
exec_compatible_with = [
"@platforms//os:macos",
"@platforms//cpu:aarch64",
],
toolchain = "//:apko",
toolchain_type = "@rules_apko//apko:toolchain_type",
)
toolchain(
name = "apko_darwin_amd64_toolchain",
exec_compatible_with = [
"@platforms//os:macos",
"@platforms//cpu:x86_64",
],
toolchain = "//:apko",
toolchain_type = "@rules_apko//apko:toolchain_type",
)

View File

@ -160,6 +160,20 @@ load("@aspect_bazel_lib//lib:repositories.bzl", "register_jq_toolchains")
register_jq_toolchains()
http_archive(
name = "rules_apko",
patch_args = ["-p1"],
patches = [
# required due to https://github.com/chainguard-dev/apko/issues/1052
"//third_party/rules_apko:repository_label_strip.patch",
# required until a release contains https://github.com/chainguard-dev/rules_apko/pull/53
"//third_party/rules_apko:apko_run_runfiles_path.patch",
],
sha256 = "f176171f95ee2b6eef1572c6da796d627940a1e898a32d476a2d7a9a99332960",
strip_prefix = "rules_apko-1.2.2",
url = "https://github.com/chainguard-dev/rules_apko/releases/download/v1.2.2/rules_apko-v1.2.2.tar.gz",
)
# hermetic_cc_toolchain setup ================================
HERMETIC_CC_TOOLCHAIN_VERSION = "v2.2.1"
@ -485,3 +499,35 @@ load("//dev:schema_migrations.bzl", "schema_migrations")
schema_migrations(
name = "schemas_migrations",
)
# wolfi images setup ================================
load("@rules_apko//apko:repositories.bzl", "apko_register_toolchains", "rules_apko_dependencies")
rules_apko_dependencies()
# We don't register the default toolchains, and regsiter our own from a patched go_repository sourced
# go_binary target that contains some fixes that are not yet merged upstream.
# https://github.com/chainguard-dev/go-apk/pull/216
apko_register_toolchains(
name = "apko",
register = False,
)
register_toolchains("//:apko_linux_toolchain")
register_toolchains("//:apko_darwin_arm64_toolchain")
register_toolchains("//:apko_darwin_amd64_toolchain")
load("//wolfi-images:repo.bzl", "wolfi_lockfiles")
wolfi_lockfiles(name = "apko_lockfiles")
load("@apko_lockfiles//:translates.bzl", "apko_translate_locks")
apko_translate_locks()
load("@apko_lockfiles//:repositories.bzl", "apko_repositories")
apko_repositories()

View File

@ -3,6 +3,7 @@ load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("//dev:go_defs.bzl", "go_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
go_library(
name = "batcheshelper_lib",
@ -46,7 +47,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_batcheshelper_base",
base = ":base_image",
tars = [":tar_batcheshelper"],
)
@ -73,3 +74,5 @@ oci_push(
image = ":image",
repository = image_repository("batcheshelper"),
)
wolfi_base()

View File

@ -28,7 +28,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = [
"/sbin/tini",
"--",

View File

@ -2,6 +2,7 @@ load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("//cmd/server:macro.bzl", "container_dependencies", "dependencies_tars")
load("//wolfi-images:defs.bzl", "wolfi_base")
DEPS = [
"//cmd/batcheshelper",
@ -24,7 +25,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_bundled_executor_base",
base = ":base_image",
entrypoint = [
"/sbin/tini",
"--",
@ -65,3 +66,5 @@ oci_push(
image = ":image",
repository = image_repository("bundled-executor"),
)
wolfi_base()

View File

@ -32,7 +32,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = [
"/sbin/tini",
"--",

View File

@ -28,7 +28,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = [
"/sbin/tini",
"--",

View File

@ -2,6 +2,7 @@ load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tar
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//cmd/server:macro.bzl", "container_dependencies", "dependencies_tars")
load("//wolfi-images:defs.bzl", "wolfi_base")
DEPS = [
"//cmd/executor",
@ -17,7 +18,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_executor_kubernetes_base",
base = ":base_image",
entrypoint = [
"/sbin/tini",
"--",
@ -50,3 +51,5 @@ oci_push(
image = ":image",
repository = image_repository("executor-kubernetes"),
)
wolfi_base()

View File

@ -3,6 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
go_library(
name = "executor_lib",
@ -65,7 +66,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_executor_base",
base = ":base_image",
entrypoint = [
"/sbin/tini",
"--",
@ -118,3 +119,5 @@ sh_binary(
"//dev/tools:gsutil",
],
)
wolfi_base()

View File

@ -32,7 +32,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
cmd = ["serve"],
entrypoint = [
"/sbin/tini",

View File

@ -2,6 +2,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
go_library(
name = "gitserver_lib",
@ -41,7 +42,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_gitserver_base",
base = ":base_image",
entrypoint = [
"/sbin/tini",
"--",
@ -78,3 +79,5 @@ oci_push(
image = ":image",
repository = image_repository("gitserver"),
)
wolfi_base()

View File

@ -29,7 +29,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = [
"/sbin/tini",
"--",

View File

@ -72,7 +72,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = [
"/sbin/tini",
"--",

View File

@ -28,7 +28,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = [
"/sbin/tini",
"--",

View File

@ -27,7 +27,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = [
"/sbin/tini",
"--",

View File

@ -28,7 +28,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = [
"/sbin/tini",
"--",

View File

@ -2,6 +2,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
go_library(
name = "repo-updater_lib",
@ -28,7 +29,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_repo_updater_base",
base = ":base_image",
entrypoint = [
"/sbin/tini",
"--",
@ -61,3 +62,5 @@ oci_push(
image = ":image",
repository = image_repository("repo-updater"),
)
wolfi_base()

View File

@ -2,6 +2,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
go_library(
name = "searcher_lib",
@ -28,7 +29,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_searcher_base",
base = ":base_image",
entrypoint = [
"/sbin/tini",
"--",
@ -64,3 +65,5 @@ oci_push(
image = ":image",
repository = image_repository("searcher"),
)
wolfi_base()

View File

@ -3,6 +3,7 @@ load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tar
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("macro.bzl", "container_dependencies", "dependencies_tars")
load("//wolfi-images:defs.bzl", "wolfi_base")
go_library(
name = "server_lib",
@ -154,7 +155,7 @@ pkg_tar(
# bazel cquery '//cmd/server:image' --output build
oci_image(
name = "image",
base = "@wolfi_server_base",
base = ":base_image",
entrypoint = [
"/sbin/tini",
"--",
@ -207,3 +208,5 @@ oci_push(
image = ":image",
repository = image_repository("server"),
)
wolfi_base()

View File

@ -2,6 +2,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
go_library(
name = "symbols_lib",
@ -34,7 +35,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_symbols_base",
base = ":base_image",
entrypoint = [
"/sbin/tini",
"--",
@ -72,3 +73,5 @@ oci_push(
image = ":image",
repository = image_repository("symbols"),
)
wolfi_base()

View File

@ -34,7 +34,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = [
"/sbin/tini",
"--",

View File

@ -17,7 +17,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = [
"/sbin/tini",
"--",

View File

@ -28,7 +28,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = [
"/sbin/tini",
"--",

205
deps.bzl
View File

@ -300,8 +300,8 @@ def go_dependencies():
name = "com_github_asaskevich_govalidator",
build_file_proto_mode = "disable_global",
importpath = "github.com/asaskevich/govalidator",
sum = "h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ=",
version = "v0.0.0-20210307081110-f21760c49a8d",
sum = "h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=",
version = "v0.0.0-20230301143203-a9d515a09cc2",
)
go_repository(
name = "com_github_aws_aws_sdk_go",
@ -891,6 +891,24 @@ def go_dependencies():
sum = "h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=",
version = "v2.2.0",
)
go_repository(
name = "com_github_chainguard_dev_clog",
build_file_proto_mode = "disable_global",
importpath = "github.com/chainguard-dev/clog",
sum = "h1:E2y3L/nM7vRzwyROQgmuB+Egm/d1rHOyip0Bq4AyVow=",
version = "v1.2.3-0.20240116182827-04bee692f7a8",
)
go_repository(
name = "com_github_chainguard_dev_go_apk",
build_file_proto_mode = "disable_global",
importpath = "github.com/chainguard-dev/go-apk",
patch_args = ["-p1"],
patches = [
"//third_party/com_github_chainguard_dev_go_apk:newest-file-selection-fix.patch",
],
sum = "h1:riuOFg3Ay1Js10GQtCAsCL2Hp2DJweUlYjKaxXteYV8=",
version = "v0.0.0-20240130195846-91a06ffe6715",
)
go_repository(
name = "com_github_charmbracelet_glamour",
build_file_proto_mode = "disable_global",
@ -1037,6 +1055,13 @@ def go_dependencies():
sum = "h1:sDMmm+q/3+BukdIpxwO365v/Rbspp2Nt5XntgQRXq8Q=",
version = "v0.0.0-20150114235600-33e0aa1cb7c0",
)
go_repository(
name = "com_github_common_nighthawk_go_figure",
build_file_proto_mode = "disable_global",
importpath = "github.com/common-nighthawk/go-figure",
sum = "h1:J5BL2kskAlV9ckgEsNQXscjIaLiOYiZ75d4e94E6dcQ=",
version = "v0.0.0-20210622060536-734e95fb86be",
)
go_repository(
name = "com_github_containerd_cgroups",
build_file_proto_mode = "disable_global",
@ -1271,8 +1296,8 @@ def go_dependencies():
name = "com_github_davecgh_go_spew",
build_file_proto_mode = "disable_global",
importpath = "github.com/davecgh/go-spew",
sum = "h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=",
version = "v1.1.1",
sum = "h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=",
version = "v1.1.2-0.20180830191138-d8f796af33cc",
)
go_repository(
name = "com_github_daviddengcn_go_colortext",
@ -1527,6 +1552,13 @@ def go_dependencies():
sum = "h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ=",
version = "v0.0.0-20180111231733-ee0de3bc6815",
)
go_repository(
name = "com_github_dominodatalab_os_release",
build_file_proto_mode = "disable_global",
importpath = "github.com/dominodatalab/os-release",
sum = "h1:oEt43goQgsL1DzoOyQ/UZHQw7t9TqwyJec9W0vh0wfE=",
version = "v0.0.0-20190522011736-bcdb4a3e3c2f",
)
go_repository(
name = "com_github_dustin_go_humanize",
build_file_proto_mode = "disable_global",
@ -1966,15 +1998,15 @@ def go_dependencies():
name = "com_github_go_openapi_errors",
build_file_proto_mode = "disable_global",
importpath = "github.com/go-openapi/errors",
sum = "h1:rz6kiC84sqNQoqrtulzaL/VERgkoCyB6WdEkc2ujzUc=",
version = "v0.20.3",
sum = "h1:unTcVm6PispJsMECE3zWgvG4xTiKda1LIR5rCRWLG6M=",
version = "v0.20.4",
)
go_repository(
name = "com_github_go_openapi_jsonpointer",
build_file_proto_mode = "disable_global",
importpath = "github.com/go-openapi/jsonpointer",
sum = "h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=",
version = "v0.19.6",
sum = "h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ=",
version = "v0.20.0",
)
go_repository(
name = "com_github_go_openapi_jsonreference",
@ -1994,36 +2026,36 @@ def go_dependencies():
name = "com_github_go_openapi_runtime",
build_file_proto_mode = "disable_global",
importpath = "github.com/go-openapi/runtime",
sum = "h1:yX9HMGQbz32M87ECaAhGpJjBmErO3QLcgdZj9BzGx7c=",
version = "v0.24.2",
sum = "h1:HYOFtG00FM1UvqrcxbEJg/SwvDRvYLQKGhw2zaQjTcc=",
version = "v0.26.0",
)
go_repository(
name = "com_github_go_openapi_spec",
build_file_proto_mode = "disable_global",
importpath = "github.com/go-openapi/spec",
sum = "h1:1Rlu/ZrOCCob0n+JKKJAWhNWMPW8bOZRg8FJaY+0SKI=",
version = "v0.20.7",
sum = "h1:xnlYNQAwKd2VQRRfwTEI0DcK+2cbuvI/0c7jx3gA8/8=",
version = "v0.20.9",
)
go_repository(
name = "com_github_go_openapi_strfmt",
build_file_proto_mode = "disable_global",
importpath = "github.com/go-openapi/strfmt",
sum = "h1:xwhj5X6CjXEZZHMWy1zKJxvW9AfHC9pkyUjLvHtKG7o=",
version = "v0.21.3",
sum = "h1:rspiXgNWgeUzhjo1YU01do6qsahtJNByjLVbPLNHb8k=",
version = "v0.21.7",
)
go_repository(
name = "com_github_go_openapi_swag",
build_file_proto_mode = "disable_global",
importpath = "github.com/go-openapi/swag",
sum = "h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=",
version = "v0.22.3",
sum = "h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU=",
version = "v0.22.4",
)
go_repository(
name = "com_github_go_openapi_validate",
build_file_proto_mode = "disable_global",
importpath = "github.com/go-openapi/validate",
sum = "h1:b0QecH6VslW/TxtpKgzpO1SNG7GU2FsaqKdP1E2T50Y=",
version = "v0.22.0",
sum = "h1:G+c2ub6q47kfX1sOBLwIQwzBVt8qmOAARyo/9Fqs9NU=",
version = "v0.22.1",
)
go_repository(
name = "com_github_go_pdf_fpdf",
@ -3372,6 +3404,13 @@ def go_dependencies():
sum = "h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c=",
version = "v1.15.1",
)
go_repository(
name = "com_github_jinzhu_copier",
build_file_proto_mode = "disable_global",
importpath = "github.com/jinzhu/copier",
sum = "h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8=",
version = "v0.4.0",
)
go_repository(
name = "com_github_jinzhu_inflection",
build_file_proto_mode = "disable_global",
@ -3764,6 +3803,13 @@ def go_dependencies():
sum = "h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=",
version = "v1.2.1",
)
go_repository(
name = "com_github_letsencrypt_boulder",
build_file_proto_mode = "disable_global",
importpath = "github.com/letsencrypt/boulder",
sum = "h1:WGrKdjHtWC67RX96eTkYD2f53NDHhrq/7robWTAfk4s=",
version = "v0.0.0-20231026200631-000cd05d5491",
)
go_repository(
name = "com_github_lib_pq",
build_file_proto_mode = "disable_global",
@ -3813,6 +3859,13 @@ def go_dependencies():
sum = "h1:dWKpJligYKhYKO5A2gvNhkJdQMNZeChZYyBbrZkBZfo=",
version = "v0.2.2",
)
go_repository(
name = "com_github_magefile_mage",
build_file_proto_mode = "disable_global",
importpath = "github.com/magefile/mage",
sum = "h1:6QDX3g6z1YvJ4olPhT1wksUcSa/V0a1B+pJb73fBjyo=",
version = "v1.14.0",
)
go_repository(
name = "com_github_magiconair_properties",
build_file_proto_mode = "disable_global",
@ -3834,6 +3887,13 @@ def go_dependencies():
sum = "h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=",
version = "v0.7.7",
)
go_repository(
name = "com_github_makenowjust_heredoc_v2",
build_file_proto_mode = "disable_global",
importpath = "github.com/MakeNowJust/heredoc/v2",
sum = "h1:rlCHh70XXXv7toz95ajQWOWQnN4WNLt0TdpZYIR/J6A=",
version = "v2.0.1",
)
go_repository(
name = "com_github_markbates_oncer",
build_file_proto_mode = "disable_global",
@ -4457,8 +4517,8 @@ def go_dependencies():
name = "com_github_package_url_packageurl_go",
build_file_proto_mode = "disable_global",
importpath = "github.com/package-url/packageurl-go",
sum = "h1:DiLBVp4DAcZlBVBEtJpNWZpZVq0AEeCY7Hqk8URVs4o=",
version = "v0.1.1-0.20220428063043-89078438f170",
sum = "h1:0H2DQt6DHd/NeRlVwW4EZ4oEI6Bn40XlNPRqegcxuo4=",
version = "v0.1.2",
)
go_repository(
name = "com_github_pascaldekloe_goe",
@ -4590,8 +4650,8 @@ def go_dependencies():
name = "com_github_pmezard_go_difflib",
build_file_proto_mode = "disable_global",
importpath = "github.com/pmezard/go-difflib",
sum = "h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=",
version = "v1.0.0",
sum = "h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=",
version = "v1.0.1-0.20181226105442-5d4384ee4fb2",
)
go_repository(
name = "com_github_posener_complete",
@ -4714,6 +4774,13 @@ def go_dependencies():
sum = "h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78=",
version = "v1.0.0",
)
go_repository(
name = "com_github_psanford_memfs",
build_file_proto_mode = "disable_global",
importpath = "github.com/psanford/memfs",
sum = "h1:51xcRlSMBU5rhM9KahnJGfEsBPVPz3182TgFRowA8yY=",
version = "v0.0.0-20230130182539-4dbf7e3e865e",
)
go_repository(
name = "com_github_pseudomuto_protoc_gen_doc",
build_file_proto_mode = "disable_global",
@ -4981,8 +5048,8 @@ def go_dependencies():
name = "com_github_secure_systems_lab_go_securesystemslib",
build_file_proto_mode = "disable_global",
importpath = "github.com/secure-systems-lab/go-securesystemslib",
sum = "h1:b23VGrQhTA8cN2CbBw7/FulN9fTtqYUdS5+Oxzt+DUE=",
version = "v0.4.0",
sum = "h1:OwvJ5jQf9LnIAS83waAjPbcMsODrTQUpJ02eNLUoxBg=",
version = "v0.7.0",
)
go_repository(
name = "com_github_segmentio_fasthash",
@ -5104,6 +5171,27 @@ def go_dependencies():
sum = "h1:pXY9qYc/MP5zdvqWEUH6SjNiu7VhSjuVFTFiTcphaLU=",
version = "v0.0.0-20200824052919-0d455de96546",
)
go_repository(
name = "com_github_sigstore_cosign_v2",
build_file_proto_mode = "disable_global",
importpath = "github.com/sigstore/cosign/v2",
sum = "h1:HauwPOMYYaVdQsnvUbF0P+ZsVPrkTB0G7Eq65+z1bQc=",
version = "v2.2.1",
)
go_repository(
name = "com_github_sigstore_rekor",
build_file_proto_mode = "disable_global",
importpath = "github.com/sigstore/rekor",
sum = "h1:pLZ0UjutL7SUdeiysmJCabnRqvI7DsIxnJj8c/+e0Fk=",
version = "v1.3.3",
)
go_repository(
name = "com_github_sigstore_sigstore",
build_file_proto_mode = "disable_global",
importpath = "github.com/sigstore/sigstore",
sum = "h1:ij55dBhLwjICmLTBJZm7SqoQLdsu/oowDanACcJNs48=",
version = "v1.7.5",
)
go_repository(
name = "com_github_sirupsen_logrus",
build_file_proto_mode = "disable_global",
@ -5118,6 +5206,13 @@ def go_dependencies():
sum = "h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ=",
version = "v1.2.1",
)
go_repository(
name = "com_github_skratchdot_open_golang",
build_file_proto_mode = "disable_global",
importpath = "github.com/skratchdot/open-golang",
sum = "h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA=",
version = "v0.0.0-20200116055534-eef842397966",
)
go_repository(
name = "com_github_slack_go_slack",
build_file_proto_mode = "disable_global",
@ -5500,6 +5595,13 @@ def go_dependencies():
sum = "h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=",
version = "v1.2.0",
)
go_repository(
name = "com_github_titanous_rocacheck",
build_file_proto_mode = "disable_global",
importpath = "github.com/titanous/rocacheck",
sum = "h1:e/5i7d4oYZ+C1wj2THlRK+oAhjeS/TRQwMfkIuet3w0=",
version = "v0.0.0-20171023193734-afe73141d399",
)
go_repository(
# This is no longer used but we keep it for backwards compatability
@ -5531,6 +5633,13 @@ def go_dependencies():
sum = "h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk=",
version = "v0.6.1",
)
go_repository(
name = "com_github_tmc_dot",
build_file_proto_mode = "disable_global",
importpath = "github.com/tmc/dot",
sum = "h1:hwIpbdjckSFqmZ6hod7WZgGR7tVVrSUzZrBfNZl7AOg=",
version = "v0.0.0-20210901225022-f9bc17da75c0",
)
go_repository(
name = "com_github_tmc_grpc_websocket_proxy",
build_file_proto_mode = "disable_global",
@ -5661,8 +5770,8 @@ def go_dependencies():
name = "com_github_vbatts_tar_split",
build_file_proto_mode = "disable_global",
importpath = "github.com/vbatts/tar-split",
sum = "h1:hLFqsOLQ1SsppQNTMpkpPXClLDfC2A3Zgy9OUU+RVck=",
version = "v0.11.3",
sum = "h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinCts=",
version = "v0.11.5",
)
go_repository(
name = "com_github_vektah_gqlparser",
@ -5745,15 +5854,15 @@ def go_dependencies():
name = "com_github_xdg_go_scram",
build_file_proto_mode = "disable_global",
importpath = "github.com/xdg-go/scram",
sum = "h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E=",
version = "v1.1.1",
sum = "h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY=",
version = "v1.1.2",
)
go_repository(
name = "com_github_xdg_go_stringprep",
build_file_proto_mode = "disable_global",
importpath = "github.com/xdg-go/stringprep",
sum = "h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs=",
version = "v1.0.3",
sum = "h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8=",
version = "v1.0.4",
)
go_repository(
name = "com_github_xdg_scram",
@ -6798,6 +6907,20 @@ def go_dependencies():
sum = "h1:EwbDggkws9Qo/fl4Zo801Z8mgf4xZBOX7/bbfTthsy4=",
version = "v1.3.2",
)
go_repository(
name = "dev_chainguard_apko",
build_file_proto_mode = "disable_global",
importpath = "chainguard.dev/apko",
sum = "h1:K8lM5Gu/Ny3Q4b4oGDNyz2YX3wHcs72CqfBcsPh25Vc=",
version = "v0.14.0",
)
go_repository(
name = "dev_lsp_go_uri",
build_file_proto_mode = "disable_global",
importpath = "go.lsp.dev/uri",
sum = "h1:KcZJmh6nFIBeJzTugn5JTU6OOyG0lDOo3R9KwTxTYbo=",
version = "v0.3.0",
)
go_repository(
name = "ht_sr_git_sbinet_gg",
build_file_proto_mode = "disable_global",
@ -6847,6 +6970,13 @@ def go_dependencies():
sum = "h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=",
version = "v1.4.7",
)
go_repository(
name = "in_gopkg_go_jose_go_jose_v2",
build_file_proto_mode = "disable_global",
importpath = "gopkg.in/go-jose/go-jose.v2",
sum = "h1:qEzJlIDmG9q5VO0M/o8tGS65QMHMS1w01TQJB1VPJ4U=",
version = "v2.6.1",
)
go_repository(
name = "in_gopkg_go_playground_assert_v1",
build_file_proto_mode = "disable_global",
@ -7113,6 +7243,13 @@ def go_dependencies():
sum = "h1:tNNQIC+8cc+aXFTVg+RtQAOsjwUdYBZRAgYOVI3RBc4=",
version = "v0.13.3",
)
go_repository(
name = "io_k8s_sigs_release_utils",
build_file_proto_mode = "disable_global",
importpath = "sigs.k8s.io/release-utils",
sum = "h1:JKDOvhCk6zW8ipEOkpTGDH/mW3TI+XqtPp16aaQ79FU=",
version = "v0.7.7",
)
go_repository(
name = "io_k8s_sigs_structured_merge_diff_v4",
build_file_proto_mode = "disable_global",
@ -7608,8 +7745,8 @@ def go_dependencies():
name = "org_golang_x_exp",
build_file_proto_mode = "disable_global",
importpath = "golang.org/x/exp",
sum = "h1:MGwJjxBy0HJshjDNfLsYO8xppfqWlA5ZT9OhtUUhTNw=",
version = "v0.0.0-20230713183714-613f0c0eb8a1",
sum = "h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI=",
version = "v0.0.0-20231006140011-7918f672742d",
)
go_repository(
name = "org_golang_x_image",
@ -7811,8 +7948,8 @@ def go_dependencies():
name = "org_mongodb_go_mongo_driver",
build_file_proto_mode = "disable_global",
importpath = "go.mongodb.org/mongo-driver",
sum = "h1:Ql6K6qYHEzB6xvu4+AU0BoRoqf9vFPcc4o7MUIdPW8Y=",
version = "v1.11.3",
sum = "h1:nLkghSU8fQNaK7oUmDhQFsnrtcoNy7Z6LVFKsEecqgE=",
version = "v1.12.1",
)
go_repository(
name = "org_uber_go_atomic",

View File

@ -186,7 +186,7 @@ func ParseDiff(files []string) (diff Diff, changedFiles ChangedFiles) {
}
// Affects Wolfi base images
if strings.HasPrefix(p, "wolfi-images/") && strings.HasSuffix(p, ".yaml") {
if strings.HasPrefix(p, "wolfi-images/") && (strings.HasSuffix(p, ".yaml") || strings.HasSuffix(p, ".lock.json")) {
diff |= WolfiBaseImages
changedFiles[WolfiBaseImages] = append(changedFiles[WolfiBaseImages], p)
}

View File

@ -144,14 +144,14 @@ func GeneratePipeline(c Config) (*bk.Pipeline, error) {
securityOps.Append(semgrepScan())
ops.Merge(securityOps)
// Wolfi package and base images
packageOps, baseImageOps := addWolfiOps(c)
// Wolfi package and apko lock check
packageOps, _, apkoOps := addWolfiOps(c)
if apkoOps != nil {
ops.Merge(apkoOps)
}
if packageOps != nil {
ops.Merge(packageOps)
}
if baseImageOps != nil {
ops.Merge(baseImageOps)
}
if c.Diff.Has(changed.ClientBrowserExtensions) {
ops.Merge(operations.NewNamedSet("Browser Extensions",
@ -199,13 +199,9 @@ func GeneratePipeline(c Config) (*bk.Pipeline, error) {
addVsceTests)
case runtype.WolfiBaseRebuild:
// If this is a Wolfi base image rebuild, rebuild all Wolfi base images
// and push to registry, then open a PR
baseImageOps := wolfiRebuildAllBaseImages(c)
if baseImageOps != nil {
ops.Merge(baseImageOps)
ops.Merge(wolfiGenerateBaseImagePR())
}
// If this is a Wolfi base image rebuild, run script to re-lock packages
// for all Wolfi base images and open a PR
ops.Merge(wolfiBaseImageLockAndCreatePR())
// Use CandidateNoTest if you want to build legacy Docker Images
case runtype.CandidatesNoTest:
@ -328,7 +324,10 @@ func GeneratePipeline(c Config) (*bk.Pipeline, error) {
))
// Wolfi package and base images
packageOps, baseImageOps := addWolfiOps(c)
packageOps, baseImageOps, apkoOps := addWolfiOps(c)
if apkoOps != nil {
ops.Merge(apkoOps)
}
if packageOps != nil {
ops.Merge(packageOps)
}

View File

@ -21,7 +21,7 @@ import (
const wolfiImageDir = "wolfi-images"
const wolfiPackageDir = "wolfi-packages"
var baseImageRegex = lazyregexp.New(`wolfi-images\/([\w-]+)[.]yaml`)
var baseImageRegex = lazyregexp.New(`wolfi-images\/([\w-]+)[.](?:yaml|lock[.]json)`)
var packageRegex = lazyregexp.New(`wolfi-packages\/([\w-]+)[.]yaml`)
// WolfiPackagesOperations rebuilds any packages whose configurations have changed
@ -50,10 +50,17 @@ func WolfiBaseImagesOperations(changedFiles []string, tag string, packagesChange
ops := operations.NewNamedSet("Base image builds")
logger := log.Scoped("gen-pipeline")
builtImage := make(map[string]bool)
var buildStepKeys []string
for _, c := range changedFiles {
match := baseImageRegex.FindStringSubmatch(c)
if len(match) == 2 {
// Don't build the same image twice
if builtImage[match[1]] {
continue
}
builtImage[match[1]] = true
buildFunc, key := buildWolfiBaseImage(match[1], tag, packagesChanged)
ops.Append(buildFunc)
buildStepKeys = append(buildStepKeys, key)
@ -62,8 +69,6 @@ func WolfiBaseImagesOperations(changedFiles []string, tag string, packagesChange
}
}
ops.Append(allBaseImagesBuilt(buildStepKeys))
return ops, len(buildStepKeys)
}
@ -130,20 +135,6 @@ func buildWolfiBaseImage(target string, tag string, dependOnPackages bool) (func
}, stepKey
}
// No-op to ensure all base images are updated before building full images
func allBaseImagesBuilt(baseImageKeys []string) func(*bk.Pipeline) {
return func(pipeline *bk.Pipeline) {
pipeline.AddStep(":octopus: All base images built",
bk.Cmd("echo 'All base images built'"),
// We want to run on the bazel queue, so we have a pretty minimal agent.
bk.Agent("queue", AspectWorkflows.QueueSmall),
// Depend on all previous package building steps
bk.DependsOn(baseImageKeys...),
bk.Key("buildAllBaseImages"),
)
}
}
var reStepKeySanitizer = lazyregexp.New(`[^a-zA-Z0-9_-]+`)
// sanitizeStepKey sanitizes BuildKite StepKeys by removing any invalid characters
@ -277,7 +268,7 @@ func getPackagesFromBaseImageConfig(configFile string) ([]string, error) {
}
// addWolfiOps adds operations to rebuild modified Wolfi packages and base images.
func addWolfiOps(c Config) (packageOps, baseImageOps *operations.Set) {
func addWolfiOps(c Config) (packageOps, baseImageOps, apkoOps *operations.Set) {
// Rebuild Wolfi packages that have config changes
var updatedPackages []string
if c.Diff.Has(changed.WolfiPackages) {
@ -300,51 +291,22 @@ func addWolfiOps(c Config) (packageOps, baseImageOps *operations.Set) {
c.Version,
(len(updatedPackages) > 0),
)
apkoOps = WolfiCheckApkoLocks()
}
return packageOps, baseImageOps
return packageOps, baseImageOps, apkoOps
}
// wolfiRebuildAllBaseImages adds operations to rebuild all Wolfi base images and push to registry
func wolfiRebuildAllBaseImages(c Config) *operations.Set {
// List all YAML files in wolfi-images/
dir := "wolfi-images"
files, err := os.ReadDir(dir)
if err != nil {
panic(err)
}
var wolfiBaseImages []string
for _, f := range files {
if filepath.Ext(f.Name()) == ".yaml" {
fullPath := filepath.Join(dir, f.Name())
wolfiBaseImages = append(wolfiBaseImages, fullPath)
}
}
// Rebuild all images
var baseImageOps *operations.Set
if len(wolfiBaseImages) > 0 {
baseImageOps, _ = WolfiBaseImagesOperations(
wolfiBaseImages,
c.Version,
false,
)
}
return baseImageOps
}
// wolfiGenerateBaseImagePR updates base image hashes and creates a PR in GitHub
func wolfiGenerateBaseImagePR() *operations.Set {
ops := operations.NewNamedSet("Base Image Update PR")
// wolfiBaseImageLockAndCreatePR updates base image hashes and creates a PR in GitHub
func wolfiBaseImageLockAndCreatePR() *operations.Set {
ops := operations.NewNamedSet("Base Image Package Update PR")
ops.Append(
func(pipeline *bk.Pipeline) {
pipeline.AddStep(":whale::hash: Update Base Image Hashes",
bk.Cmd("./dev/ci/scripts/wolfi/update-base-image-hashes.sh"),
pipeline.AddStep(":whale::hash: Lock Base Image Packages",
bk.Cmd("./dev/ci/scripts/wolfi/update-base-image-lockfiles.sh"),
bk.Agent("queue", AspectWorkflows.QueueSmall),
bk.DependsOn("buildAllBaseImages"),
bk.Key("updateBaseImageHashes"),
)
},
@ -352,3 +314,29 @@ func wolfiGenerateBaseImagePR() *operations.Set {
return ops
}
// WolfiCheckApkoLocks checks that all apko YAML and Lockfiles are in sync
// It should be run whenever a Wolfi YAML or lockfile is updated
func WolfiCheckApkoLocks() *operations.Set {
ops := operations.NewNamedSet("Apko Lock")
cmd := "./dev/ci/scripts/wolfi/apko-check-lock.sh"
ops.Append(
func(pipeline *bk.Pipeline) {
pipeline.AddStep(":whale::lock: Check apko lockfiles",
bk.AnnotatedCmd(cmd, bk.AnnotatedCmdOpts{
Annotations: &bk.AnnotationOpts{
Type: bk.AnnotationTypeInfo,
IncludeNames: false,
MultiJobContext: "apko-check-lock",
},
}),
bk.Agent("queue", AspectWorkflows.QueueSmall),
bk.Key("apko-check-lock"),
bk.SoftFail(222),
)
},
)
return ops
}

View File

@ -0,0 +1,54 @@
#!/usr/bin/env bash
set -euf -o pipefail
cd "$(dirname "${BASH_SOURCE[0]}")/../../../.."
REPO_DIR=$(pwd)
BRANCH="${BUILDKITE_BRANCH:-'default-branch'}"
MAIN_BRANCH="main"
IS_MAIN=$([ "$BRANCH" = "$MAIN_BRANCH" ] && echo "true" || echo "false")
echo "~~~ :aspect: :stethoscope: Agent Health check"
/etc/aspect/workflows/bin/agent_health_check
aspectRC="/tmp/aspect-generated.bazelrc"
rosetta bazelrc >"$aspectRC"
export BAZELRC="$aspectRC"
exitCode=0
if bazel --bazelrc="$aspectRC" run //dev/sg -- wolfi lock --check; then
echo "sg wolfi lock --check succeeded"
else
if [[ "$IS_MAIN" == "true" ]]; then
# Soft-fail on main
echo "Soft-fail"
exitCode=222
else
# Hard-fail on branches
exitCode=1
fi
fi
# Print user-facing error if files are not locked
if [[ $exitCode != 0 ]]; then
if [[ -n "${BUILDKITE:-}" ]]; then
mkdir -p ./annotations
file="apko-check-lock.md"
cat <<-EOF >"${REPO_DIR}/annotations/${file}"
<strong>:lock: apko lock &bull; [View job output](#${BUILDKITE_JOB_ID})</strong>
<br />
<br />
Wolfi image configuration and apko lockfiles are not in sync. Fix by running:
\`\`\`bash
sg wolfi lock
\`\`\`
Check the <a href="https://sourcegraph.com/docs/dev/how-to/wolfi/add_update_images#modify-an-existing-base-image">Wolfi documentation</a> for more information.
EOF
fi
fi
exit $exitCode

View File

@ -5,6 +5,7 @@ set -euf -o pipefail
cd "$(dirname "${BASH_SOURCE[0]}")/../../../.."
REPO_DIR=$(pwd)
IMAGE_CONFIG_DIR="wolfi-images"
GCP_PROJECT="sourcegraph-ci"
GCS_BUCKET="package-repository"
TARGET_ARCH="x86_64"
@ -18,35 +19,12 @@ if [[ "$IS_MAIN" != "true" ]]; then
BRANCH_PATH="branches/$BRANCH_PATH"
fi
tmpdir=$(mktemp -d -t wolfi-bin.XXXXXXXX)
builddir=$(mktemp -d -t wolfi-build.XXXXXXXX)
function cleanup() {
echo "Removing $tmpdir and $builddir"
rm -rf "$tmpdir"
rm -rf "$builddir"
}
trap cleanup EXIT
echo "~~~ :aspect: :stethoscope: Agent Health check"
/etc/aspect/workflows/bin/agent_health_check
# TODO: Install these binaries as part of the buildkite base image
(
cd "$tmpdir"
mkdir bin
# Install apko from Sourcegraph cache
# Source: https://github.com/chainguard-dev/apko/releases/download/v0.10.0/apko_0.10.0_linux_amd64.tar.gz
wget https://storage.googleapis.com/package-repository/ci-binaries/apko_0.10.0_linux_amd64.tar.gz
tar zxf apko_0.10.0_linux_amd64.tar.gz
mv apko_0.10.0_linux_amd64/apko bin/apko
# Install apk from Sourcegraph cache
# Source: https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic//v2.12.11/x86_64/apk.static
wget https://storage.googleapis.com/package-repository/ci-binaries/apk-v2.12.11.tar.gz
tar zxf apk-v2.12.11.tar.gz
chmod +x apk
mv apk bin/apk
)
export PATH="$tmpdir/bin:$PATH"
aspectRC="/tmp/aspect-generated.bazelrc"
rosetta bazelrc >"$aspectRC"
export BAZELRC="$aspectRC"
if [ $# -eq 0 ]; then
echo "No arguments supplied - provide the base image name to build"
@ -74,23 +52,15 @@ fi
tag=${2-latest}
echo "Setting up build dir..."
cp -r "wolfi-images/" "$builddir"
cd "$builddir/wolfi-images"
# Export date for apko (defaults to 0 for reproducibility)
SOURCE_DATE_EPOCH="$(date +%s)"
export SOURCE_DATE_EPOCH
# On branches, if we modify a package then we'd like that modified version to be included in any base images built.
# This is a bit hacky, but we do this by modifying the base image configs and passing the branch-specific repo to apko.
add_custom_repo_cmd=()
modified_packages=()
if [[ "$IS_MAIN" != "true" && "$branch_repo_exists" == "true" ]]; then
add_custom_repo_cmd=("--repository-append" "@branch https://packages.sgdev.org/$BRANCH_PATH" "--keyring-append" "https://packages.sgdev.org/sourcegraph-melange-dev.rsa.pub")
echo "Adding custom repo command: ${add_custom_repo_cmd[*]}"
# Read the branch-specific package repo and extract the names of packages that have been modified
modified_packages=()
while IFS= read -r line; do
modified_packages+=("$line")
done < <(gsutil ls gs://package-repository/"$BRANCH_PATH"/x86_64/\*.apk | sed -E 's/.*\/x86_64\/([a-zA-Z0-9_-]+)-[0-9]+\..*/\1/')
@ -99,58 +69,47 @@ if [[ "$IS_MAIN" != "true" && "$branch_repo_exists" == "true" ]]; then
# In the base image configs, find and replace the packages which have been modified
for element in "${modified_packages[@]}"; do
echo "Replacing '$element@sourcegraph' with '$element@branch' in '${name}.yaml'"
sed -i "s/$element@sourcegraph/$element@branch/g" "${name}.yaml"
echo "Replacing '$element@sourcegraph' with '$element@branch' in '${IMAGE_CONFIG_DIR}/${name}.yaml'"
sed -i "s/$element@sourcegraph/$element@branch/g" "${IMAGE_CONFIG_DIR}/${name}.yaml"
done
echo -e "\nUpdated image config:"
echo "------------"
cat "${name}.yaml"
cat "${IMAGE_CONFIG_DIR}/${name}.yaml"
echo -e "------------\n"
fi
#
# Build image
# Build base image with apko
# If add_custom_repo_cmd isn't empty
if [ ${#add_custom_repo_cmd[@]} -gt 0 ]; then
echo " * Updated packages found, regenerating lockfile for base image '$name'..."
bazel --bazelrc="$aspectRC" run //dev/sg -- wolfi lock "${add_custom_repo_cmd[@]}" "${name}"
fi
echo " * Building base image '$name' with apko..."
image_name="sourcegraph-wolfi/${name}-base"
tarball="sourcegraph-wolfi-${name}-base.tar"
apko build --debug "${add_custom_repo_cmd[@]}" \
"${name}.yaml" \
"$image_name:latest" \
"$tarball" ||
(echo "*** Build failed ***" && exit 1)
bazel --bazelrc="$aspectRC" run //dev/sg -- wolfi image "${name}"
local_image_name="${name}-base:latest"
remote_image_name="us.gcr.io/sourcegraph-dev/wolfi-${name}-base"
#
# Tag image and upload to GCP Artifact Registry
echo " * Loading built image into docker daemon..."
docker load <"$tarball"
# https://github.com/chainguard-dev/apko/issues/529
# there is an unexpcted behaviour in upstream
# where the arch is always appended to the tag
# hardcode for now as we only support linux/amd64 anyway
local_image_name="$image_name:latest-amd64"
# Push to internal dev repo
echo "* Pushing image to internal dev repo..."
docker tag "$local_image_name" "us.gcr.io/sourcegraph-dev/wolfi-${name}-base:$tag"
docker push "us.gcr.io/sourcegraph-dev/wolfi-${name}-base:$tag"
docker tag "$local_image_name" "us.gcr.io/sourcegraph-dev/wolfi-${name}-base:latest"
docker push "us.gcr.io/sourcegraph-dev/wolfi-${name}-base:latest"
# Push to Dockerhub only on main branch
if [[ "$IS_MAIN" == "true" ]]; then
echo "* Pushing image to prod repo..."
docker tag "$local_image_name" "sourcegraph/wolfi-${name}-base:$tag"
docker push "sourcegraph/wolfi-${name}-base:$tag"
docker tag "$local_image_name" "sourcegraph/wolfi-${name}-base:latest"
docker push "sourcegraph/wolfi-${name}-base:latest"
fi
docker tag "${local_image_name}" "${remote_image_name}:${tag}"
docker push "${remote_image_name}:${tag}"
docker tag "${local_image_name}" "${remote_image_name}:latest"
docker push "${remote_image_name}:latest"
# Show image usage message on branches
if [[ "$IS_MAIN" != "true" ]]; then
if [[ -n "$BUILDKITE" ]]; then
mkdir -p ./annotations
file="${name} image.md"
cat <<-EOF > "${REPO_DIR}/annotations/${file}"
cat <<-EOF >"${REPO_DIR}/annotations/${file}"
<strong>:octopus: ${name} image &bull; [View job output](#${BUILDKITE_JOB_ID})</strong>
<br />
@ -162,5 +121,12 @@ docker pull us.gcr.io/sourcegraph-dev/wolfi-${name}-base:${tag}
\`\`\`
EOF
# Add note if any packages were modified
if [ ${#modified_packages[@]} -gt 0 ]; then
cat <<-EOF >>"${REPO_DIR}/annotations/${file}"
NOTE: Any modified package will <strong>not</strong> be present in the image once merged - <a href="https://sourcegraph.com/docs/dev/how-to/wolfi/add_update_packages#update-an-existing-packaged-dependency">check the docs</a> for more details.
EOF
fi
fi
fi

View File

@ -9,6 +9,9 @@ MAIN_BRANCH="main"
BRANCH="${BUILDKITE_BRANCH:-'default-branch'}"
IS_MAIN=$([ "$BRANCH" = "$MAIN_BRANCH" ] && echo "true" || echo "false")
echo "~~~ :aspect: :stethoscope: Agent Health check"
/etc/aspect/workflows/bin/agent_health_check
tmpdir=$(mktemp -d -t melange-bin.XXXXXXXX)
# shellcheck disable=SC2317
# false positive by shellcheck https://github.com/koalaman/shellcheck/issues/2660

View File

@ -12,6 +12,9 @@ MAIN_BRANCH="main"
BRANCH="${BUILDKITE_BRANCH:-'default-branch'}"
IS_MAIN=$([ "$BRANCH" = "$MAIN_BRANCH" ] && echo "true" || echo "false")
echo "~~~ :aspect: :stethoscope: Agent Health check"
/etc/aspect/workflows/bin/agent_health_check
# shellcheck disable=SC2001
BRANCH_PATH=$(echo "$BRANCH" | sed 's/[^a-zA-Z0-9_-]/-/g')
if [[ "$IS_MAIN" != "true" ]]; then

View File

@ -1,5 +1,9 @@
#!/usr/bin/env bash
# Run `sg wolfi lock` to update all package lockfiles for Wolfi base images.
# Push a new branch to GitHub, and open a PR.
# Can be run from any base branch, and will create an appropriate PR.
set -exu -o pipefail
cd "$(dirname "${BASH_SOURCE[0]}")/../../../.."
@ -7,20 +11,22 @@ cd "$(dirname "${BASH_SOURCE[0]}")/../../../.."
echo "~~~ :aspect: :stethoscope: Agent Health check"
/etc/aspect/workflows/bin/agent_health_check
# Update hashes for all base images
aspectRC="/tmp/aspect-generated.bazelrc"
rosetta bazelrc > "$aspectRC"
bazel --bazelrc="$aspectRC" run //dev/sg -- wolfi update-hashes
rosetta bazelrc >"$aspectRC"
export BAZELRC="$aspectRC"
# Update hashes for all base images
bazel --bazelrc="$aspectRC" run //dev/sg -- wolfi lock
# Print diff
git diff dev/oci_deps.bzl
git diff wolfi-images/*.lock.json
# Git and GitHub config
BRANCH_NAME="wolfi-auto-update/main"
BRANCH_NAME="wolfi-auto-update/${BUILDKITE_BRANCH}"
TIMESTAMP=$(TZ=UTC date "+%Y-%m-%d %H:%M:%S UTC")
PR_TITLE="Auto-update Wolfi base images to latest"
PR_TITLE="Auto-update package lockfiles for Wolfi base images"
# PR_REVIEWER="sourcegraph/security"
PR_LABELS="SSDLC,wolfi-auto-update,backport 5.3"
PR_BODY="Automatically generated PR to update Wolfi base images to the latest hashes.
PR_LABELS="SSDLC,wolfi-auto-update"
PR_BODY="Automatically generated PR to update package lockfiles for Wolfi base images.
Built from Buildkite run [#${BUILDKITE_BUILD_NUMBER}](https://buildkite.com/sourcegraph/sourcegraph/builds/${BUILDKITE_BUILD_NUMBER}).
## Test Plan
@ -31,8 +37,8 @@ Built from Buildkite run [#${BUILDKITE_BUILD_NUMBER}](https://buildkite.com/sour
# Delete branch if it exists; catch status code if not
git branch -D "${BRANCH_NAME}" || true
git switch -c "${BRANCH_NAME}"
git add dev/oci_deps.bzl
git commit -m "Auto-update Wolfi base image hashes at ${TIMESTAMP}"
git add wolfi-images/*.lock.json
git commit -m "Auto-update package lockfiles for Wolfi base images at ${TIMESTAMP}"
git push --force -u origin "${BRANCH_NAME}"
echo ":git: Successfully commited changes and pushed to branch ${BRANCH_NAME}"
@ -41,8 +47,7 @@ if gh pr list --head "${BRANCH_NAME}" --state open | grep -q "${PR_TITLE}"; then
echo ":github: A pull request already exists - editing it"
gh pr edit "${BRANCH_NAME}" --body "${PR_BODY}"
else
# If not, create a new PR from the branch foobar-day
# TODO: Once validated add '--reviewer "${PR_REVIEWER}"'
gh pr create --title "${PR_TITLE}" --head "${BRANCH_NAME}" --base main --body "${PR_BODY}" --label "${PR_LABELS}"
# If not, create a new PR from the branch
gh pr create --title "${PR_TITLE}" --head "${BRANCH_NAME}" --base "${BUILDKITE_BRANCH}" --body "${PR_BODY}" --label "${PR_LABELS}"
echo ":github: Created a new pull request from branch '${BRANCH_NAME}' with title '${PR_TITLE}'"
fi

View File

@ -68,7 +68,7 @@ done
# Show package usage message on branches
if [[ "$IS_MAIN" != "true" ]]; then
if [[ -n "$BUILDKITE" ]]; then
echo -e "Use this package locally by adding the following to your base image config under \`wolfi-images/\`:
echo -e "Test this package locally by adding the following to your base image config under \`wolfi-images/\`:
\`\`\`
contents:
keyring:
@ -77,7 +77,13 @@ contents:
- '@branch https://packages.sgdev.org/${BRANCH_PATH}'
packages:
$package_usage_list
\`\`\`" | ../../../dev/ci/scripts/annotate.sh -m -t "info"
\`\`\`
Then test the package locally:
- Build the base image using: \`sg wolfi image <image>\`
- Build the full image using: \`sg wolfi lock <image> && bazel run //<image-build-path>:image\`
" | ../../../dev/ci/scripts/annotate.sh -m -t "info"
fi
fi

View File

@ -7,12 +7,14 @@ go_library(
"package.go",
"scan_images.go",
"update_hashes.go",
"update_images.go",
],
importpath = "github.com/sourcegraph/sourcegraph/dev/sg/internal/wolfi",
visibility = ["//dev/sg:__subpackages__"],
deps = [
"//dev/sg/internal/std",
"//dev/sg/root",
"//internal/lazyregexp",
"//lib/errors",
"//lib/output",
"@com_github_grafana_regexp//:regexp",

View File

@ -10,52 +10,161 @@ import (
"github.com/sourcegraph/sourcegraph/dev/sg/internal/std"
"github.com/sourcegraph/sourcegraph/dev/sg/root"
"github.com/sourcegraph/sourcegraph/internal/lazyregexp"
"github.com/sourcegraph/sourcegraph/lib/errors"
"github.com/sourcegraph/sourcegraph/lib/output"
)
func (c PackageRepoConfig) SetupBaseImageBuild(name string) (manifestBaseName string, buildDir string, err error) {
// define a constant wolfi-images
const baseImageDir = "wolfi-images"
var localRepoRegex = lazyregexp.New(`(?m)^\s+-\s+.*@local`)
type BaseImageConfig struct {
PackageRepoConfig PackageRepoConfig
// ImageConfigDir is the directory containing all image configs
ImageConfigDir string
// ImageName is the name of the image e.g. gitserver
ImageName string
// ImageConfigPath is the path to the image config e.g. wolfi-images/gitserver.yaml
ImageConfigPath string
// LockfilePath is the path to the image lockfile e.g. wolfi-images/gitserver.lock.json
LockfilePath string
// BazelBuildPath is the Bazel build path for the image e.g. //cmd/gitserver:base_tarball
BazelBuildPath string
// KeyringAppend is the path to additional keys to include in the keyring
KeyringAppend string
// RepositoryAppend is the path to additional repositories to include in the keyring
RepositoryAppend string
}
type BaseImageOpts struct {
KeyringAppend string
RepositoryAppend string
}
func SetupBaseImageBuild(name string, pc PackageRepoConfig, opts BaseImageOpts) (bc BaseImageConfig, err error) {
bc.PackageRepoConfig = pc
// Get root of repo
repoRoot, err := root.RepositoryRoot()
if err != nil {
return "", "", errors.Wrap(err, "unable to get repository root")
return bc, errors.Wrap(err, "unable to get repository root")
}
buildDir = filepath.Join(repoRoot, "wolfi-images")
bc.ImageConfigDir = filepath.Join(repoRoot, baseImageDir)
// Strip .yaml suffix if it exists
manifestBaseName = strings.Replace(name, ".yaml", "", 1)
manifestFileName := manifestBaseName + ".yaml"
bc.ImageName = strings.Replace(name, ".yaml", "", 1)
bc.LockfilePath = filepath.Join(bc.ImageConfigDir, bc.ImageName+".lock.json")
// Check manfest exists
manifestPath := filepath.Join(repoRoot, "wolfi-images", manifestFileName)
if _, err = os.Stat(manifestPath); os.IsNotExist(err) {
return "", "", errors.Wrap(err, "manifest file does not exist")
bc.ImageConfigPath = filepath.Join(bc.ImageConfigDir, bc.ImageName+".yaml")
if _, err = os.Stat(bc.ImageConfigPath); os.IsNotExist(err) {
return bc, errors.Wrap(err, "manifest file does not exist")
}
return
// Ignore error if no Bazel build path can be found - some images are not built in this repo
imagePath, err := resolveImagePath(bc.ImageName)
if err == nil {
bc.BazelBuildPath = fmt.Sprintf("//%s:base_tarball", imagePath)
}
bc.KeyringAppend = opts.KeyringAppend
bc.RepositoryAppend = opts.RepositoryAppend
return bc, nil
}
func (c PackageRepoConfig) DoBaseImageBuild(name string, buildDir string) error {
std.Out.WriteLine(output.Linef("📦", output.StylePending, "Building base image %s...", name))
// resolveImagePath takes an image name and returns the build path where the image's Bazel config can be found
func resolveImagePath(name string) (string, error) {
// Handle special case mappings
specialCase := map[string]string{
"sourcegraph": "wolfi-images/sourcegraph",
"sourcegraph-dev": "wolfi-images/sourcegraph-dev",
"postgres-exporter": "docker-images/postgres_exporter",
"redis-exporter": "docker-images/redis_exporter",
"redis": "docker-images/redis-cache", // Or redis-store
"blobstore": "docker-images/blobstore", // cmd/blobstore is unused
}
if val, exists := specialCase[name]; exists {
std.Out.WriteLine(output.Linef(output.EmojiInfo, output.StylePending, "Mapping Bazel build path for image '%s' to '%s", name, val))
return val, nil
}
repoRoot, err := root.RepositoryRoot()
if err != nil {
return "", errors.Wrap(err, "unable to get repository root")
}
// Search for requested image in standard locations
imageDirs := []string{"cmd", "docker-images"}
for _, dir := range imageDirs {
imagePath := filepath.Join(dir, name)
fullImagePath := filepath.Join(repoRoot, imagePath)
if _, err := os.Stat(fullImagePath); !os.IsNotExist(err) {
return imagePath, nil
}
}
return "", errors.New(fmt.Sprintf("no such image '%s' (searched %+v)", name, imageDirs))
}
func (bc BaseImageConfig) DoBaseImageBuild() error {
// If we're already running in Bazel we can't run Bazel again inside its own builddir,
// so ensure we're running in the base repo
buildDir, err := os.Getwd()
if err != nil {
return err
}
bwd := os.Getenv("BUILD_WORKING_DIRECTORY")
if bwd != "" {
buildDir = bwd
}
if bc.BazelBuildPath == "" {
return errors.Newf("no Bazel build path found for image '%s'", bc.ImageName)
}
bazelArgs := append(getBazelArgs(), "run")
commandArgs := append(bazelArgs, bc.BazelBuildPath)
std.Out.WriteLine(output.Linef("📦", output.StylePending, "Building base image %s using `bazel %s`", bc.ImageName, strings.Join(commandArgs, " ")))
std.Out.WriteLine(output.Linef("🤖", output.StylePending, "rules_apko build output:\n"))
cmd := exec.Command(
"bazel", commandArgs...,
)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Dir = buildDir
err = cmd.Run()
if err != nil {
return errors.Wrap(err, "failed to build base image")
}
return nil
}
func (bc BaseImageConfig) DoBaseImageBuildLegacy() error {
std.Out.WriteLine(output.Linef("📦", output.StylePending, "Building base image %s...", bc.ImageName))
std.Out.WriteLine(output.Linef("🤖", output.StylePending, "Apko build output:\n"))
imageName := fmt.Sprintf("sourcegraph-wolfi/%s-base:latest", name)
imageFileName := fmt.Sprintf("sourcegraph-wolfi-%s-base.tar", name)
imageName := legacyDockerImageName(bc.ImageName)
imageFileName := imageFileName(bc.ImageName)
cmd := exec.Command(
"docker", "run", "--rm",
"-v", fmt.Sprintf("%s:/work", buildDir),
"-v", fmt.Sprintf("%s:/packages", c.PackageDir),
"-v", fmt.Sprintf("%s:/keys", c.KeyDir),
"-v", fmt.Sprintf("%s:/images", c.ImageDir),
"-v", fmt.Sprintf("%s:/work", bc.ImageConfigDir+"/"),
"-v", fmt.Sprintf("%s:/packages", bc.PackageRepoConfig.PackageDir),
"-v", fmt.Sprintf("%s:/keys", bc.PackageRepoConfig.KeyDir),
"-v", fmt.Sprintf("%s:/images", bc.PackageRepoConfig.ImageDir),
"-e", fmt.Sprintf("SOURCE_DATE_EPOCH=%d", time.Now().Unix()),
"-w", "/work",
"cgr.dev/chainguard/apko", "build",
"--arch", "x86_64",
"--repository-append", "@local /packages",
"--keyring-append", fmt.Sprintf("/keys/%s.pub", c.KeyFilename),
fmt.Sprintf("/work/%s.yaml", name),
"--keyring-append", fmt.Sprintf("/keys/%s.pub", bc.PackageRepoConfig.KeyFilename),
fmt.Sprintf("/work/%s.yaml", bc.ImageName),
imageName,
filepath.Join("/images", imageFileName),
)
@ -68,21 +177,25 @@ func (c PackageRepoConfig) DoBaseImageBuild(name string, buildDir string) error
}
std.Out.Write("")
std.Out.WriteSuccessf("Successfully built base image %s\n", name)
std.Out.WriteSuccessf("Successfully built base image %s\n", bc.ImageName)
return nil
}
func dockerImageName(name string) string {
return fmt.Sprintf("sourcegraph-wolfi/%s-base:latest-amd64", name)
func DockerImageName(name string) string {
return fmt.Sprintf("%s-base:latest", name)
}
func legacyDockerImageName(name string) string {
return fmt.Sprintf("sourcegraph-wolfi/%s-base:latest", name)
}
func imageFileName(name string) string {
return fmt.Sprintf("sourcegraph-wolfi-%s-base.tar", name)
}
func (c PackageRepoConfig) LoadBaseImage(name string) error {
baseImagePath := filepath.Join(c.ImageDir, imageFileName(name))
func (bc BaseImageConfig) LoadBaseImage() error {
baseImagePath := filepath.Join(bc.PackageRepoConfig.ImageDir, imageFileName(bc.ImageName))
std.Out.WriteLine(output.Linef("🐳", output.StylePending, "Loading base image into Docker... (%s)", baseImagePath))
f, err := os.Open(baseImagePath)
@ -102,13 +215,13 @@ func (c PackageRepoConfig) LoadBaseImage(name string) error {
}
std.Out.Write("")
std.Out.WriteLine(output.Linef("🛠️ ", output.StyleBold, "Run base image locally using:\n\n\tdocker run -it --entrypoint /bin/sh %s\n", dockerImageName(name)))
std.Out.WriteLine(output.Linef("🛠️ ", output.StyleBold, "Run base image locally using:\n\n\tdocker run -it --entrypoint /bin/sh %s-amd64\n", legacyDockerImageName(bc.ImageName)))
return nil
}
func (c PackageRepoConfig) CleanupBaseImageBuild(name string) error {
imageDir := c.ImageDir
func (bc BaseImageConfig) CleanupBaseImageBuild() error {
imageDir := bc.PackageRepoConfig.ImageDir
if !strings.HasSuffix(imageDir, "/wolfi-images/local-images") {
return errors.New(fmt.Sprintf("directory '%s' does not look like the image output directory - not cleaning up", imageDir))
}
@ -119,3 +232,17 @@ func (c PackageRepoConfig) CleanupBaseImageBuild(name string) error {
return nil
}
// ContainsLocalPackages checks if a BaseImageConfig contains a reference to a
// @local package repository.
func (bc BaseImageConfig) ContainsLocalPackages() (bool, error) {
imageConfigData, err := os.ReadFile(bc.ImageConfigPath)
if err != nil {
return false, err
}
imageConfig := string(imageConfigData)
localRepoMatch := localRepoRegex.MatchString(imageConfig)
return localRepoMatch, nil
}

View File

@ -52,6 +52,10 @@ func InitLocalPackageRepo() (PackageRepoConfig, error) {
}
// Generate keys for local repository
// Skip if we are running on buildkite
if os.Getenv("BUILDKITE") == "true" {
return c, nil
}
if _, err = os.Stat(c.KeyFilepath); os.IsNotExist(err) {
if err := c.GenerateKeypair(); err != nil {
return c, err
@ -157,7 +161,7 @@ func (c PackageRepoConfig) DoPackageBuild(name string, buildDir string) error {
std.Out.Write("")
std.Out.WriteSuccessf("Successfully built package %s\n", name)
std.Out.WriteLine(output.Linef("🛠️ ", output.StyleBold, "Use this package in local image builds by adding the package '%s@local' to the base image config\n", name))
std.Out.WriteLine(output.Linef("🛠️ ", output.StyleBold, "Use this package in local image builds by adding the package '%s@local' to your image's 'wolfi-images/<image>.yaml' config, and running 'sg wolfi image <image>'\n", name))
return nil
}

View File

@ -0,0 +1,237 @@
package wolfi
import (
"crypto/sha256"
"encoding/hex"
"encoding/json"
"fmt"
"os"
"os/exec"
"path/filepath"
"strings"
"github.com/urfave/cli/v2"
"github.com/sourcegraph/sourcegraph/dev/sg/internal/std"
"github.com/sourcegraph/sourcegraph/dev/sg/root"
"github.com/sourcegraph/sourcegraph/lib/errors"
"github.com/sourcegraph/sourcegraph/lib/output"
)
// getAllImages returns a list of all image configs found in the baseImageDir
func getAllImages() (imageNames []string, err error) {
// Iterate over *.yaml files in wolfi-images/
repoRoot, err := root.RepositoryRoot()
if err != nil {
return nil, err
}
imageDir := filepath.Join(repoRoot, baseImageDir)
files, err := os.ReadDir(imageDir)
if err != nil {
return nil, err
}
for _, file := range files {
if !strings.HasSuffix(file.Name(), ".yaml") {
continue
}
imageName := strings.TrimSuffix(file.Name(), ".yaml")
imageNames = append(imageNames, imageName)
}
return imageNames, nil
}
// UpdateAllImages runs UpdateImage for all images in the baseImageDir
func UpdateAllImages(ctx *cli.Context, opts BaseImageOpts) error {
imageNames, err := getAllImages()
if err != nil {
return err
}
for _, imageName := range imageNames {
bc, err := SetupBaseImageBuild(imageName, PackageRepoConfig{}, opts)
if err != nil {
return err
}
bc.UpdateImage(ctx)
}
return nil
}
// UpdateImage updates re-locks the set of packages for the given image by updating its lockfile
func (bc BaseImageConfig) UpdateImage(_ *cli.Context) error {
// Update lockfile
std.Out.WriteLine(output.Linef("🗝️ ", output.StylePending, fmt.Sprintf("Updating apko lockfile for %s", bc.ImageName)))
if err := bc.ApkoLock(); err != nil {
return err
}
return nil
}
// getBazelArgs appends an additional -bazelrc flag if the BAZELRC environment variable is set
func getBazelArgs() []string {
bazelrc := os.Getenv("BAZELRC")
if bazelrc != "" {
return []string{"--bazelrc", bazelrc}
}
return []string{}
}
// ApkoLock calls `apko lock` to generate a lockfile for the given image
func (bc BaseImageConfig) ApkoLock() error {
localImageConfigPath := strings.TrimPrefix(bc.ImageConfigPath, bc.ImageConfigDir+"/")
bazelArgs := append(getBazelArgs(), "run")
apkoArgs := []string{"@rules_apko//apko", "lock", "--", localImageConfigPath}
apkoFlags := []string{}
if bc.RepositoryAppend != "" {
apkoFlags = append(apkoFlags, "--repository-append", bc.RepositoryAppend)
}
if bc.KeyringAppend != "" {
apkoFlags = append(apkoFlags, "--keyring-append", bc.KeyringAppend)
}
commandArgs := append(bazelArgs, append(apkoArgs, apkoFlags...)...)
std.Out.WriteLine(output.Linef(output.EmojiInfo, output.StylePending, " Running bazel %s", strings.Join(commandArgs, " ")))
cmd := exec.Command("bazel", commandArgs...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Dir = bc.ImageConfigDir
err := cmd.Run()
if err != nil {
return errors.Wrap(err, "failed to build base image")
}
// Update hash in lockfile
err = bc.updateApkoLockHash()
if err != nil {
return err
}
return nil
}
// getApkoConfigHash returns the SHA256 hash of an image's apko config file
func (bc BaseImageConfig) getApkoConfigHash() (apkoConfigHashHex string, err error) {
apkoConfig, err := os.ReadFile(bc.ImageConfigPath)
if err != nil {
return "", err
}
apkoConfigHash := sha256.Sum256([]byte(apkoConfig))
apkoConfigHashHex = hex.EncodeToString(apkoConfigHash[:])
return apkoConfigHashHex, nil
}
// readLockFile returns the contents of an image's lockfile as a map
func (bc BaseImageConfig) readLockFile() (imageLockData map[string]interface{}, err error) {
imageLock, err := os.ReadFile(bc.LockfilePath)
if err != nil {
return nil, err
}
err = json.Unmarshal(imageLock, &imageLockData)
if err != nil {
return nil, err
}
return imageLockData, nil
}
// CheckApkoLockHashes runs CheckApkoLockHash for all images in baseImageDir
func CheckApkoLockHashes(imageNames []string) (allImagesMatch bool, mismatchedImages []string, err error) {
if len(imageNames) == 0 {
imageNames, err = getAllImages()
if err != nil {
return false, nil, err
}
}
allImagesMatch = true
for _, imageName := range imageNames {
bc, err := SetupBaseImageBuild(imageName, PackageRepoConfig{}, BaseImageOpts{})
if err != nil {
return false, nil, err
}
imageSynced, err := bc.CheckApkoLockHash()
if err != nil {
return false, nil, err
}
if !imageSynced {
allImagesMatch = false
mismatchedImages = append(mismatchedImages, imageName)
}
}
return allImagesMatch, mismatchedImages, nil
}
// CheckApkoLockHash checks whether the hash of an image's YAML file matches the hash stored in the corresponding lockfile
// This allows us to detect changes to the YAML file and re-run apko lock if necessary
func (bc BaseImageConfig) CheckApkoLockHash() (isMatch bool, err error) {
apkoConfigHashHex, err := bc.getApkoConfigHash()
if err != nil {
return false, err
}
imageLockData, err := bc.readLockFile()
if err != nil {
// Lockfile doesn't exist
if os.IsNotExist(err) {
return false, nil
}
return false, err
}
if val, exists := imageLockData["configHash"]; exists {
if val == apkoConfigHashHex {
isMatch = true
}
}
return isMatch, nil
}
// updateApkoLockHash updates the hash of the image's YAML file that's stored in the corresponding lockfile.
// It should only be called after successfully calling ApkoLock()
func (bc BaseImageConfig) updateApkoLockHash() (err error) {
apkoConfigHashHex, err := bc.getApkoConfigHash()
if err != nil {
return err
}
imageLockData, err := bc.readLockFile()
if err != nil {
return err
}
imageLockData["configHash"] = apkoConfigHashHex
// Marshal the map back to json
updatedFile, err := json.MarshalIndent(imageLockData, "", " ")
if err != nil {
return err
}
// Write the updated json back to the file
err = os.WriteFile(bc.LockfilePath, updatedFile, 0644)
if err != nil {
return err
}
return nil
}

View File

@ -1,11 +1,23 @@
package main
import (
"os"
"strings"
"github.com/urfave/cli/v2"
"github.com/sourcegraph/sourcegraph/dev/sg/internal/category"
"github.com/sourcegraph/sourcegraph/dev/sg/internal/std"
"github.com/sourcegraph/sourcegraph/dev/sg/internal/wolfi"
"github.com/sourcegraph/sourcegraph/lib/errors"
"github.com/sourcegraph/sourcegraph/lib/output"
)
var (
checkLock bool
buildLegacy bool
keyringAppend string
repositoryAppend string
)
var (
@ -77,6 +89,14 @@ This is convenient for testing package changes locally before publishing them.
Once built, the base image is loaded into Docker and can be run locally.
It can also be used for local development by updating its path and hash in the 'dev/oci_deps.bzl' file.
`,
Flags: []cli.Flag{
&cli.BoolFlag{
Name: "legacy",
Aliases: []string{"l"},
Usage: "Build using legacy apko binary rather than Bazel",
Destination: &buildLegacy,
},
},
Action: func(ctx *cli.Context) error {
args := ctx.Args().Slice()
if len(args) == 0 {
@ -85,26 +105,64 @@ It can also be used for local development by updating its path and hash in the '
baseImageName := args[0]
c, err := wolfi.InitLocalPackageRepo()
pc, err := wolfi.InitLocalPackageRepo()
if err != nil {
return err
}
manifestBaseName, buildDir, err := c.SetupBaseImageBuild(baseImageName)
// Additional repos cannot be provided as they will not be used unless lockfile is outdated
bc, err := wolfi.SetupBaseImageBuild(baseImageName, pc, wolfi.BaseImageOpts{})
if err != nil {
return err
}
if err = c.DoBaseImageBuild(manifestBaseName, buildDir); err != nil {
return err
if bc.BazelBuildPath == "" {
if os.Getenv("BUILDKITE") == "true" {
std.Out.WriteLine(output.Linef(output.EmojiWarning, output.StyleBold, "No Bazel build path found for %s - no fallback avilable in Buildkite, so soft-failing", baseImageName))
return cli.Exit("Cannot build base image without Bazel build path on Buildkite (soft-fail)", 222)
}
std.Out.WriteLine(output.Linef(output.EmojiWarning, output.StyleBold, "No Bazel build path found for %s - falling back to legacy build method", baseImageName))
buildLegacy = true
}
if err = c.LoadBaseImage(baseImageName); err != nil {
// WORKAROUND: rules_apko does not support package repos on the local filesystem, so fall back to legacy build
hasLocalPackage, err := bc.ContainsLocalPackages()
if err != nil {
return err
}
if hasLocalPackage {
std.Out.WriteLine(output.Linef(output.EmojiWarning, output.StyleBold, "%s.yaml contains an `@local` package - falling back to legacy build method", baseImageName))
buildLegacy = true
}
if err = c.CleanupBaseImageBuild(baseImageName); err != nil {
return err
if !buildLegacy {
isMatch, err := bc.CheckApkoLockHash()
if err != nil {
return err
}
if !isMatch {
std.Out.WriteLine(output.Linef("🛠️ ", output.StyleBold, "%s.yaml does not match %s.lock.json - regenerating lockfile (run manually with `sg wolfi lock %s`)", baseImageName, baseImageName, baseImageName))
if err = bc.UpdateImage(ctx); err != nil {
return err
}
}
if err = bc.DoBaseImageBuild(); err != nil {
return err
}
std.Out.WriteLine(output.Linef("🛠️ ", output.StyleBold, "Run base image locally using:\n\n\tdocker run -it --entrypoint /bin/sh %s\n", wolfi.DockerImageName(bc.ImageName)))
} else {
if err = bc.DoBaseImageBuildLegacy(); err != nil {
return err
}
if err = bc.LoadBaseImage(); err != nil {
return err
}
if err = bc.CleanupBaseImageBuild(); err != nil {
return err
}
}
return nil
@ -140,6 +198,90 @@ Hash references are updated by fetching the ':latest' tag for each base image fr
return wolfi.UpdateHashes(ctx, imageName)
},
}, {
Name: "lock",
ArgsUsage: "<base-image-name>",
Usage: "Update the lockfile for a Wolfi base image by fetching the latest package versions",
UsageText: `
# Update lockfile for all base images
sg wolfi lock
# Update lockfile for the Gitserver base image
sg wolfi lock gitserver
Takes a container image YAML file containing a list of packages and generates a lockfile with resolved package versions.
This lockfile ensures reproducible builds by pinning the exact versions of the packages used in the container image.
If no <base-image-name> is provided, the lockfile for all base images will be updated.
Lockfiles can be found at wolfi-images/<image>.lock.json
`,
Flags: []cli.Flag{
&cli.BoolFlag{
Name: "check",
Aliases: []string{"c"},
Usage: "Check if the lockfile is up to date",
Destination: &checkLock,
},
&cli.StringFlag{
Name: "repository-append",
Aliases: []string{"r"},
Usage: "Path to additional repositories to include",
Destination: &repositoryAppend,
},
&cli.StringFlag{
Name: "keyring-append",
Aliases: []string{"k"},
Usage: "Path to additional keys to include in the keyring",
Destination: &keyringAppend,
},
},
Action: func(ctx *cli.Context) error {
args := ctx.Args().Slice()
var imageName string
if len(args) == 1 {
imageName = args[0]
}
if checkLock {
var imageNames []string
if imageName != "" {
imageNames = append(imageNames, imageName)
}
allImagesMatch, mismatchedImages, err := wolfi.CheckApkoLockHashes(imageNames)
if err != nil {
return err
}
if !allImagesMatch {
std.Out.WriteLine(
output.Linef(
"🛠️ ",
output.StyleBold, "Lockfiles for the following images need to be updated:\n - "+strings.Join(mismatchedImages, "\n - ")),
)
return errors.New("lockfiles are not up to date - run `sg wolfi lock` to update them")
} else {
std.Out.WriteLine(output.Linef("🛠️ ", output.StyleBold, "Lockfiles all up to date"))
}
return nil
}
opts := wolfi.BaseImageOpts{
RepositoryAppend: repositoryAppend,
KeyringAppend: keyringAppend,
}
if imageName != "" {
bc, err := wolfi.SetupBaseImageBuild(imageName, wolfi.PackageRepoConfig{}, opts)
if err != nil {
return err
}
return bc.UpdateImage(ctx)
} else {
return wolfi.UpdateAllImages(ctx, opts)
}
},
},
},
}

View File

@ -24,5 +24,6 @@ import (
_ "github.com/Khan/genqlient"
// Used to generate schema
_ "chainguard.dev/apko/pkg/lock"
_ "github.com/pseudomuto/protoc-gen-doc"
)

View File

@ -1,9 +1,10 @@
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("//wolfi-images:defs.bzl", "wolfi_base")
oci_image(
name = "s3_proxy_image",
base = "@wolfi_s3proxy_base",
base = ":base_image",
entrypoint = [
"/sbin/tini",
"--",
@ -66,3 +67,5 @@ oci_push(
image = ":s3_proxy_image",
repository = image_repository("blobstore"),
)
wolfi_base()

View File

@ -1,6 +1,7 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("//wolfi-images:defs.bzl", "wolfi_base")
filegroup(
name = "cadvisor_entrypoint",
@ -19,7 +20,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_cadvisor_base",
base = ":base_image",
entrypoint = ["/usr/bin/entrypoint.sh"],
tars = [":tar_cadvisor"],
)
@ -47,3 +48,5 @@ oci_push(
image = ":image",
repository = image_repository("cadvisor"),
)
wolfi_base()

View File

@ -1,6 +1,7 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("//wolfi-images:defs.bzl", "wolfi_base")
filegroup(
name = "config",
@ -23,7 +24,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_postgresql-12-codeinsights_base",
base = ":base_image",
entrypoint = ["/postgres-wolfi.sh"],
env = {
"POSTGRES_PASSWORD": "",
@ -80,3 +81,5 @@ oci_push(
image = ":legacy_image",
repository = image_repository("codeinsights-db"),
)
wolfi_base(target = "postgresql-12-codeinsights")

View File

@ -1,6 +1,7 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
filegroup(
name = "config_files",
@ -24,7 +25,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_grafana_base",
base = ":base_image",
entrypoint = ["/entry.sh"],
tars = [
":config_tar",
@ -56,3 +57,5 @@ oci_push(
image = ":image",
repository = image_repository("grafana"),
)
wolfi_base()

View File

@ -19,7 +19,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = [
"/entry.sh",
],

View File

@ -3,7 +3,7 @@ load("@container_structure_test//:defs.bzl", "container_structure_test")
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = ["/bin/sh"],
user = "root",
)

View File

@ -1,9 +1,10 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
oci_image(
name = "image",
base = "@wolfi_jaeger_agent_base",
base = ":base_image",
entrypoint = ["/usr/local/bin/jaeger-agent"],
)
@ -30,3 +31,5 @@ oci_push(
image = ":image",
repository = image_repository("jaeger-agent"),
)
wolfi_base()

View File

@ -1,6 +1,7 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
filegroup(
name = "config",
@ -15,7 +16,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_jaeger_all_in_one_base",
base = ":base_image",
cmd = ["--sampling.strategies-file=/etc/jaeger/sampling_strategies.json"],
entrypoint = ["/usr/local/bin/jaeger-all-in-one"],
env = {
@ -51,3 +52,5 @@ oci_push(
image = ":image",
repository = image_repository("jaeger-all-in-one"),
)
wolfi_base()

View File

@ -1,9 +1,10 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
oci_image(
name = "image",
base = "@wolfi_node_exporter_base",
base = ":base_image",
entrypoint = ["/usr/bin/node_exporter"],
user = "nobody",
)
@ -31,3 +32,5 @@ oci_push(
image = ":image",
repository = image_repository("node-exporter"),
)
wolfi_base()

View File

@ -1,6 +1,7 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
filegroup(
name = "config",
@ -15,7 +16,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_opentelemetry_collector_base",
base = ":base_image",
entrypoint = ["/bin/otelcol-sourcegraph"],
tars = [":config_tar"],
)
@ -43,3 +44,5 @@ oci_push(
image = ":image",
repository = image_repository("opentelemetry-collector"),
)
wolfi_base()

View File

@ -1,6 +1,7 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
filegroup(
name = "config",
@ -20,7 +21,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_postgresql-12_base",
base = ":base_image",
entrypoint = ["/postgres-wolfi.sh"],
env = {
"POSTGRES_PASSWORD": "",
@ -79,3 +80,5 @@ oci_push(
image = ":legacy_image",
repository = image_repository("postgres-12-alpine"),
)
wolfi_base(target = "postgresql-12")

View File

@ -1,6 +1,7 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
filegroup(
name = "config_files",
@ -17,7 +18,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_postgres_exporter_base",
base = ":base_image",
entrypoint = ["/usr/bin/postgres_exporter"],
env = {
"PG_EXPORTER_EXTEND_QUERY_PATH": "/config/queries.yaml",
@ -49,3 +50,5 @@ oci_push(
image = ":image",
repository = image_repository("postgres_exporter"),
)
wolfi_base(target = "postgres-exporter")

View File

@ -1,6 +1,7 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
filegroup(
name = "startup_scripts",
@ -31,7 +32,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_prometheus_base",
base = ":base_image",
entrypoint = ["/bin/prom-wrapper"],
tars = [":config_tar"],
user = "sourcegraph",
@ -60,3 +61,5 @@ oci_push(
image = ":image",
repository = image_repository("prometheus"),
)
wolfi_base()

View File

@ -1,9 +1,10 @@
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("//wolfi-images:defs.bzl", "wolfi_base")
oci_image(
name = "qdrant_image",
base = "@wolfi_qdrant_base",
base = ":base_image",
entrypoint = [
"/sbin/tini",
"--",
@ -37,3 +38,5 @@ oci_push(
image = ":qdrant_image",
repository = image_repository("qdrant"),
)
wolfi_base()

View File

@ -1,6 +1,7 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
filegroup(
name = "redis_conf",
@ -32,7 +33,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_redis_base",
base = ":base_image",
entrypoint = [
"redis-server",
"/etc/redis/redis.conf",
@ -64,3 +65,5 @@ oci_push(
image = ":image",
repository = image_repository("redis-cache"),
)
wolfi_base(target = "redis")

View File

@ -1,6 +1,7 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
filegroup(
name = "redis_config",
@ -34,7 +35,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_redis_base",
base = ":base_image",
entrypoint = [
"redis-server",
"/etc/redis/redis.conf",
@ -66,3 +67,5 @@ oci_push(
image = ":image",
repository = image_repository("redis-store"),
)
wolfi_base(target = "redis")

View File

@ -1,9 +1,10 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
oci_image(
name = "image",
base = "@wolfi_redis_exporter_base",
base = ":base_image",
entrypoint = ["/usr/local/bin/redis_exporter"],
user = "sourcegraph",
)
@ -31,3 +32,5 @@ oci_push(
image = ":image",
repository = image_repository("redis_exporter"),
)
wolfi_base(target = "redis-exporter")

View File

@ -2,6 +2,7 @@ load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tar
load("//cmd/server:macro.bzl", "container_dependencies", "dependencies_tars")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
DEPS = [
"@com_github_sourcegraph_zoekt//cmd/zoekt-archive-index",
@ -21,7 +22,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_search_indexer_base",
base = ":base_image",
cmd = [
"/sbin/tini",
"--",
@ -61,3 +62,5 @@ oci_push(
image = ":image",
repository = image_repository("search-indexer"),
)
wolfi_base()

View File

@ -12,7 +12,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = [
"/usr/local/bin/sg",
],

View File

@ -3,7 +3,7 @@ load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library", "rust_test")
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_tarball")
load("//wolfi-images:defs.bzl", "wolfi_base")
rust_binary(
name = "syntect_server",
@ -83,7 +83,7 @@ pkg_tar(
# reflecting better real production usage.
oci_image(
name = "scip-ctags_image",
base = "@wolfi_base",
base = "//wolfi-images/sourcegraph:base_image",
entrypoint = ["/scip-ctags"],
tars = [":tar_scip-ctags"],
)
@ -109,7 +109,7 @@ pkg_tar(
oci_image(
name = "image",
base = "@wolfi_syntax_highlighter_base",
base = ":base_image",
entrypoint = [
"/sbin/tini",
"--",
@ -168,3 +168,5 @@ oci_push(
image = ":scip-ctags_image",
repository = image_repository("scip-ctags"),
)
wolfi_base()

28
go.mod
View File

@ -88,7 +88,7 @@ require (
github.com/coreos/go-oidc v2.2.1+incompatible
github.com/coreos/go-semver v0.3.1
github.com/crewjam/saml v0.4.14
github.com/davecgh/go-spew v1.1.1
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
github.com/daviddengcn/go-colortext v1.0.0
github.com/derision-test/glock v1.0.0
github.com/dgraph-io/ristretto v0.1.1
@ -105,7 +105,7 @@ require (
github.com/gitchander/permutation v0.0.0-20210517125447-a5d73722e1b1
github.com/go-enry/go-enry/v2 v2.8.4
github.com/go-git/go-git/v5 v5.11.0
github.com/go-openapi/strfmt v0.21.3
github.com/go-openapi/strfmt v0.21.7
github.com/gobwas/glob v0.2.3
github.com/gofrs/uuid v4.2.0+incompatible
github.com/gogo/protobuf v1.3.2
@ -244,6 +244,7 @@ require (
)
require (
chainguard.dev/apko v0.14.0
github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai v0.5.0
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.2
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0
@ -390,7 +391,7 @@ require (
github.com/skeema/knownhosts v1.2.1 // indirect
github.com/smartystreets/assertions v1.13.0 // indirect
github.com/tetratelabs/wazero v1.3.0 // indirect
github.com/vbatts/tar-split v0.11.3 // indirect
github.com/vbatts/tar-split v0.11.5 // indirect
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
github.com/yusufpapurcu/wmi v1.2.3 // indirect
github.com/zeebo/xxh3 v1.0.2 // indirect
@ -413,7 +414,6 @@ require (
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
gotest.tools/v3 v3.5.1 // indirect
k8s.io/apiextensions-apiserver v0.29.2 // indirect
k8s.io/component-base v0.29.2 // indirect
)
@ -437,7 +437,7 @@ require (
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137
github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129 // indirect
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
github.com/aws/aws-sdk-go v1.44.128
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.24 // indirect
@ -492,14 +492,14 @@ require (
github.com/go-logr/logr v1.4.1
github.com/go-logr/stdr v1.2.2
github.com/go-openapi/analysis v0.21.4 // indirect
github.com/go-openapi/errors v0.20.3 // indirect
github.com/go-openapi/jsonpointer v0.19.6 // indirect
github.com/go-openapi/errors v0.20.4 // indirect
github.com/go-openapi/jsonpointer v0.20.0 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/loads v0.21.2 // indirect
github.com/go-openapi/runtime v0.24.2 // indirect
github.com/go-openapi/spec v0.20.7 // indirect
github.com/go-openapi/swag v0.22.3 // indirect
github.com/go-openapi/validate v0.22.0 // indirect
github.com/go-openapi/runtime v0.26.0 // indirect
github.com/go-openapi/spec v0.20.9 // indirect
github.com/go-openapi/swag v0.22.4 // indirect
github.com/go-openapi/validate v0.22.1 // indirect
github.com/go-stack/stack v1.8.1 // indirect
github.com/go-toast/toast v0.0.0-20190211030409-01e6764cf0a4 // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect
@ -572,7 +572,7 @@ require (
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8
github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/profile v1.7.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/pquerna/cachecontrol v0.1.0 // indirect
github.com/prometheus/client_model v0.6.0
github.com/prometheus/common/sigv4 v0.1.0 // indirect
@ -607,11 +607,11 @@ require (
github.com/yuin/goldmark-emoji v1.0.1 // indirect
github.com/yuin/goldmark-highlighting/v2 v2.0.0-20220924101305-151362477c87
go.bobheadxi.dev/streamline v1.3.2
go.mongodb.org/mongo-driver v1.11.3 // indirect
go.mongodb.org/mongo-driver v1.12.1 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/collector/pdata v1.0.1 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1
golang.org/x/exp v0.0.0-20231006140011-7918f672742d
golang.org/x/mod v0.15.0
golang.org/x/term v0.18.0 // indirect
golang.org/x/text v0.14.0

61
go.sum
View File

@ -1,5 +1,7 @@
bitbucket.org/creachadair/shell v0.0.7 h1:Z96pB6DkSb7F3Y3BBnJeOZH2gazyMTWlvecSD4vDqfk=
bitbucket.org/creachadair/shell v0.0.7/go.mod h1:oqtXSSvSYr4624lnnabXHaBsYW6RD80caLi2b3hJk0U=
chainguard.dev/apko v0.14.0 h1:K8lM5Gu/Ny3Q4b4oGDNyz2YX3wHcs72CqfBcsPh25Vc=
chainguard.dev/apko v0.14.0/go.mod h1:9B8/GXBeWSX2sHdbSKk+LpFcRwxn62fHtPUE1E+iCAs=
cloud.google.com/go v0.16.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
@ -106,7 +108,6 @@ github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBp
github.com/AzureAD/microsoft-authentication-library-for-go v1.1.1 h1:WpB/QDNLpMw72xHJc34BNNykqSOeEJDAWkhf0u12/Jk=
github.com/AzureAD/microsoft-authentication-library-for-go v1.1.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/DataDog/zstd v1.5.0 h1:+K/VEwIAaPcHiMtQvpLD4lqW7f0Gk3xdYZmI1hD+CXo=
github.com/DataDog/zstd v1.5.0/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw=
@ -215,8 +216,8 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ=
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
github.com/aws/aws-sdk-go v1.40.11/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q=
@ -417,7 +418,6 @@ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfc
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM=
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
@ -431,8 +431,9 @@ github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxG
github.com/dave/jennifer v1.6.1 h1:T4T/67t6RAA5AIV6+NP8Uk/BIsXgDoqEowgycdQQLuk=
github.com/dave/jennifer v1.6.1/go.mod h1:nXbxhEmQfOZhWml3D1cDK5M1FLnMSozpbFN/m3RmGZc=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/daviddengcn/go-colortext v1.0.0 h1:ANqDyC0ys6qCSvuEK7l3g5RaehL/Xck9EX8ATG8oKsE=
github.com/daviddengcn/go-colortext v1.0.0/go.mod h1:zDqEI5NVUop5QPpVJUxE9UO10hRnmkD5G4Pmri9+m4c=
github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE=
@ -639,15 +640,16 @@ github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpX
github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
github.com/go-openapi/errors v0.20.0/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
github.com/go-openapi/errors v0.20.2/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
github.com/go-openapi/errors v0.20.3 h1:rz6kiC84sqNQoqrtulzaL/VERgkoCyB6WdEkc2ujzUc=
github.com/go-openapi/errors v0.20.3/go.mod h1:Z3FlZ4I8jEGxjUK+bugx3on2mIAk4txuAOhlsB1FSgk=
github.com/go-openapi/errors v0.20.4 h1:unTcVm6PispJsMECE3zWgvG4xTiKda1LIR5rCRWLG6M=
github.com/go-openapi/errors v0.20.4/go.mod h1:Z3FlZ4I8jEGxjUK+bugx3on2mIAk4txuAOhlsB1FSgk=
github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ=
github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA=
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
@ -677,8 +679,8 @@ github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2g
github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98=
github.com/go-openapi/runtime v0.19.24/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk=
github.com/go-openapi/runtime v0.19.29/go.mod h1:BvrQtn6iVb2QmiVXRsFAm6ZCAZBpbVKFfN6QWCp582M=
github.com/go-openapi/runtime v0.24.2 h1:yX9HMGQbz32M87ECaAhGpJjBmErO3QLcgdZj9BzGx7c=
github.com/go-openapi/runtime v0.24.2/go.mod h1:AKurw9fNre+h3ELZfk6ILsfvPN+bvvlaU/M9q/r9hpk=
github.com/go-openapi/runtime v0.26.0 h1:HYOFtG00FM1UvqrcxbEJg/SwvDRvYLQKGhw2zaQjTcc=
github.com/go-openapi/runtime v0.26.0/go.mod h1:QgRGeZwrUcSHdeh4Ka9Glvo0ug1LC5WyE+EV88plZrQ=
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
@ -691,8 +693,8 @@ github.com/go-openapi/spec v0.20.1/go.mod h1:93x7oh+d+FQsmsieroS4cmR3u0p/ywH649a
github.com/go-openapi/spec v0.20.3/go.mod h1:gG4F8wdEDN+YPBMVnzE85Rbhf+Th2DTvA9nFPQ5AYEg=
github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I=
github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA=
github.com/go-openapi/spec v0.20.7 h1:1Rlu/ZrOCCob0n+JKKJAWhNWMPW8bOZRg8FJaY+0SKI=
github.com/go-openapi/spec v0.20.7/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA=
github.com/go-openapi/spec v0.20.9 h1:xnlYNQAwKd2VQRRfwTEI0DcK+2cbuvI/0c7jx3gA8/8=
github.com/go-openapi/spec v0.20.9/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA=
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
@ -705,9 +707,9 @@ github.com/go-openapi/strfmt v0.20.0/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF
github.com/go-openapi/strfmt v0.20.1/go.mod h1:43urheQI9dNtE5lTZQfuFJvjYJKPrxicATpEfZwHUNk=
github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg=
github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k=
github.com/go-openapi/strfmt v0.21.2/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k=
github.com/go-openapi/strfmt v0.21.3 h1:xwhj5X6CjXEZZHMWy1zKJxvW9AfHC9pkyUjLvHtKG7o=
github.com/go-openapi/strfmt v0.21.3/go.mod h1:k+RzNO0Da+k3FrrynSNN8F7n/peCmQQqbbXjtDfvmGg=
github.com/go-openapi/strfmt v0.21.7 h1:rspiXgNWgeUzhjo1YU01do6qsahtJNByjLVbPLNHb8k=
github.com/go-openapi/strfmt v0.21.7/go.mod h1:adeGTkxE44sPyLk0JV235VQAO/ZXUr8KAzYjclFs3ew=
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
@ -719,8 +721,9 @@ github.com/go-openapi/swag v0.19.13/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/
github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU=
github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo=
@ -729,9 +732,8 @@ github.com/go-openapi/validate v0.19.12/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0
github.com/go-openapi/validate v0.19.15/go.mod h1:tbn/fdOwYHgrhPBzidZfJC2MIVvs9GA7monOmWBbeCI=
github.com/go-openapi/validate v0.20.1/go.mod h1:b60iJT+xNNLfaQJUqLI7946tYiFEOuE9E4k54HpKcJ0=
github.com/go-openapi/validate v0.20.2/go.mod h1:e7OJoKNgd0twXZwIn0A43tHbvIcr/rZIVCbJBpTUoY0=
github.com/go-openapi/validate v0.21.0/go.mod h1:rjnrwK57VJ7A8xqfpAOEKRH8yQSGUriMu5/zuPSQ1hg=
github.com/go-openapi/validate v0.22.0 h1:b0QecH6VslW/TxtpKgzpO1SNG7GU2FsaqKdP1E2T50Y=
github.com/go-openapi/validate v0.22.0/go.mod h1:rjnrwK57VJ7A8xqfpAOEKRH8yQSGUriMu5/zuPSQ1hg=
github.com/go-openapi/validate v0.22.1 h1:G+c2ub6q47kfX1sOBLwIQwzBVt8qmOAARyo/9Fqs9NU=
github.com/go-openapi/validate v0.22.1/go.mod h1:rjnrwK57VJ7A8xqfpAOEKRH8yQSGUriMu5/zuPSQ1hg=
github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM=
github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY=
github.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
@ -1370,7 +1372,6 @@ github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR
github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/mapstructure v1.5.1-0.20220423185008-bf980b35cac4 h1:BpfhmLKZf+SjVanKKhCgf3bg+511DmU9eDQTen7LLbY=
github.com/mitchellh/mapstructure v1.5.1-0.20220423185008-bf980b35cac4/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
@ -1502,8 +1503,9 @@ github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDj
github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
github.com/pkoukk/tiktoken-go v0.1.6 h1:JF0TlJzhTbrI30wCvFuiw6FzP2+/bR+FIxUdgEAcUsw=
github.com/pkoukk/tiktoken-go v0.1.6/go.mod h1:9NiV+i9mJKGj1rYOT+njbv+ZwA/zJxYdewGl6qVatpg=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
@ -1632,7 +1634,6 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ=
@ -1783,12 +1784,11 @@ github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
github.com/urfave/cli v1.22.12/go.mod h1:sSBEIC79qR6OvcmsD4U3KABeOTxDqQtdDnaFuUN30b8=
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs=
github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ=
github.com/vbatts/tar-split v0.11.3 h1:hLFqsOLQ1SsppQNTMpkpPXClLDfC2A3Zgy9OUU+RVck=
github.com/vbatts/tar-split v0.11.3/go.mod h1:9QlHN18E+fEH7RdG+QAJJcuya3rqT7eXSTY7wGrAokY=
github.com/vbatts/tar-split v0.11.5 h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinCts=
github.com/vbatts/tar-split v0.11.5/go.mod h1:yZbwRsSeGjusneWgA781EKej9HF8vme8okylkAeNKLk=
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
github.com/vektah/gqlparser/v2 v2.4.0/go.mod h1:flJWIR04IMQPGz+BXLrORkrARBxv/rtyIAFvd/MceW0=
github.com/vektah/gqlparser/v2 v2.4.5 h1:C02NsyEsL4TXJB7ndonqTfuQOL4XPIu0aAWugdmTgmc=
@ -1809,8 +1809,10 @@ github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs=
github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4=
github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM=
github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM=
github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
@ -1879,10 +1881,9 @@ go.mongodb.org/mongo-driver v1.4.6/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4S
go.mongodb.org/mongo-driver v1.5.1/go.mod h1:gRXCHX4Jo7J0IJ1oDQyUxF7jfy19UfxniMS4xxMmUqw=
go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg=
go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4xhp5Zvxng=
go.mongodb.org/mongo-driver v1.8.3/go.mod h1:0sQWfOeY63QTntERDJJ/0SuKK0T1uVSgKCuAROlKEPY=
go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAVEYRhCXrA8=
go.mongodb.org/mongo-driver v1.11.3 h1:Ql6K6qYHEzB6xvu4+AU0BoRoqf9vFPcc4o7MUIdPW8Y=
go.mongodb.org/mongo-driver v1.11.3/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g=
go.mongodb.org/mongo-driver v1.12.1 h1:nLkghSU8fQNaK7oUmDhQFsnrtcoNy7Z6LVFKsEecqgE=
go.mongodb.org/mongo-driver v1.12.1/go.mod h1:/rGBTebI3XYboVmgz+Wv3Bcbl3aD0QF9zl6kDDw18rQ=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
@ -2025,7 +2026,6 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
@ -2046,8 +2046,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 h1:MGwJjxBy0HJshjDNfLsYO8xppfqWlA5ZT9OhtUUhTNw=
golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI=
golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@ -2282,7 +2282,6 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220906165534-d0df966e6959/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=

View File

@ -0,0 +1 @@
exports_files(glob(["*.patch"]))

View File

@ -0,0 +1,21 @@
diff --git a/pkg/apk/cache.go b/pkg/apk/cache.go
index a769ce6..7e0752b 100644
--- a/pkg/apk/cache.go
+++ b/pkg/apk/cache.go
@@ -206,11 +206,15 @@ func (t *cacheTransport) RoundTrip(request *http.Request) (*http.Response, error
return nil, err
}
- if fi.ModTime().After(newest.ModTime()) {
+ if (fi.ModTime().After(newest.ModTime()) || newest.IsDir()) && !fi.IsDir() {
newest = fi
}
}
+ if newest.IsDir() {
+ return nil, fmt.Errorf("%s is a directory", newest.Name())
+ }
+
f, err := os.Open(filepath.Join(cacheDir, newest.Name()))
if err != nil {
return nil, err

1
third_party/rules_apko/BUILD.bazel vendored Normal file
View File

@ -0,0 +1 @@
exports_files(glob(["*.patch"]))

View File

@ -0,0 +1,13 @@
diff --git a/apko/private/apko_run.bzl b/apko/private/apko_run.bzl
index a4cca6a..9f8d948 100644
--- a/apko/private/apko_run.bzl
+++ b/apko/private/apko_run.bzl
@@ -36,7 +36,7 @@ def _impl(ctx):
ctx.actions.write(
output = output,
content = LAUNCHER_TEMPLATE
- .replace("{{apko_binary}}", apko_info.binary.path)
+ .replace("{{apko_binary}}", apko_info.binary.short_path)
.replace("{{workdir_env}}", "BUILD_" + ctx.attr.workdir.upper() + "_DIRECTORY"),
is_executable = True,
)

View File

@ -0,0 +1,99 @@
diff --git a/apko/private/apk.bzl b/apko/private/apk.bzl
index ebd9780..6204cfb 100644
--- a/apko/private/apk.bzl
+++ b/apko/private/apk.bzl
@@ -16,8 +16,13 @@ def _range(url, range):
def _check_initial_setup(rctx):
output = rctx.path(".rangecheck/output")
+
+ url = rctx.attr.url
+ if url[0] == '@':
+ url = url.partition(' ')[2]
+
rctx.download(
- url = [_range(rctx.attr.url, "bytes=0-0")],
+ url = [_range(url, "bytes=0-0")],
output = output,
)
r = rctx.execute(["wc", "-c", output])
@@ -40,7 +45,11 @@ To resolve this issue and enable partial package fetching, please follow the ste
""".format(bytes[0]))
def _apk_import_impl(rctx):
- repo = util.repo_url(rctx.attr.url, rctx.attr.architecture)
+ url = rctx.attr.url
+ if url[0] == '@':
+ url = url.partition(' ')[2]
+
+ repo = util.repo_url(url, rctx.attr.architecture)
repo_escaped = util.url_escape(repo)
output = "{}/{}/{}-{}".format(repo_escaped, rctx.attr.architecture, rctx.attr.package_name, rctx.attr.version)
@@ -54,18 +63,18 @@ def _apk_import_impl(rctx):
apk_output = "{}/{}/{}-{}.apk".format(repo_escaped, rctx.attr.architecture, rctx.attr.package_name, rctx.attr.version)
rctx.download(
- url = [_range(rctx.attr.url, rctx.attr.signature_range)],
+ url = [_range(url, rctx.attr.signature_range)],
output = sig_output,
# TODO: signatures does not have stable checksums. find a way to fail gracefully.
integrity = rctx.attr.signature_checksum,
)
rctx.download(
- url = [_range(rctx.attr.url, rctx.attr.control_range)],
+ url = [_range(url, rctx.attr.control_range)],
output = control_output,
integrity = rctx.attr.control_checksum,
)
rctx.download(
- url = [_range(rctx.attr.url, rctx.attr.data_range)],
+ url = [_range(url, rctx.attr.data_range)],
output = data_output,
integrity = rctx.attr.data_checksum,
)
@@ -105,11 +114,16 @@ filegroup(
"""
def _apk_repository_impl(rctx):
- repo = util.repo_url(rctx.attr.url, rctx.attr.architecture)
+ url = rctx.attr.url
+ if url[0] == '@':
+ url = url.partition(' ')[2]
+
+ repo = util.repo_url(url, rctx.attr.architecture)
repo_escaped = util.url_escape(repo)
_check_initial_setup(rctx)
+
rctx.download(
- url = [rctx.attr.url],
+ url = [url],
output = "{}/{}/APKINDEX/latest.tar.gz".format(repo_escaped, rctx.attr.architecture),
)
rctx.file("BUILD.bazel", APK_REPOSITORY_TMPL)
@@ -142,6 +156,11 @@ def _cachePathFromURL(url):
https://packages.wolfi.dev/os/wolfi-signing.rsa.pub -> https%3A%2F%2Fpackages.wolfi.dev%2F/os/wolfi-signing.rsa.pub
https://packages.wolfi.dev/os/aarch64/sqlite-libs-3.44.0-r0.apk -> https%3A%2F%2Fpackages.wolfi.dev%2Fos/arch64/sqlite-libs-3.44.0-r0.apk
"""
+ if url.count("/") <= 3:
+ url_split = url.rsplit("/", 1)
+ repo = url_split[0] + "/"
+ return "{}/{}".format(util.url_escape(repo), url_split[1])
+
url_split = url.rsplit("/", 2)
repo = url_split[0]
if len(repo.split("/")) <= 3:
@@ -151,8 +170,11 @@ def _cachePathFromURL(url):
return "{}/{}/{}".format(repo_escaped, url_split[1], url_split[2])
def _apk_keyring_impl(rctx):
- public_key = _cachePathFromURL(rctx.attr.url)
- rctx.download(url = [rctx.attr.url], output = public_key)
+ url = rctx.attr.url
+ if url[0] == '@':
+ url = url.partition(' ')[2]
+ public_key = _cachePathFromURL(url)
+ rctx.download(url = [url], output = public_key)
rctx.file("BUILD.bazel", APK_KEYRING_TMPL.format(public_key = public_key))
apk_keyring = repository_rule(

4
wolfi-images/BUILD.bazel Normal file
View File

@ -0,0 +1,4 @@
exports_files(glob([
"*.yaml",
"*.lock.json",
]))

View File

@ -1,5 +1,62 @@
Wolfi base images - these are used as base images by our Dockerfiles in `cmd/` and `docker-images/`.
## Wolfi base images for Sourcegraph containers
- `sourcegraph`: minimal image, used by simple images that don't have any additional dependencies.
- `sourcegraph-dev`: contains additional tooling making it useful for development; not for production use.
- Other images are bases for specific Dockerfiles, and include the packages required by each container.
Rather than building our containers on top of an upstream image like `alpine:latest`, at Sourcegraph we build our own containers entirely from scratch using Bazel and [apko](https://github.com/chainguard-dev/apko/tree/main).
This directory contains the configuration for each of our **base images**. Base images contain all the dependencies that the various components of Sourcegraph require in order to run, such as packages, users, groups, directores, and environment variables. For example, the [gitserver](./gitserver.yaml) configuration file ensures that Git is installed.
To create the final images that are shipped and deployed, we take the **base image** and use Bazel to build and add our own binaries on top.
The structure of this directory is:
- `<image>.yaml` - [apko](https://github.com/chainguard-dev/apko/tree/main) configuration that declares the set of packages, users & groups, directories, and envars for each base image
- `<image>.lock.json` - a lockfile which contains precise versions and hashes of packages, used by Bazel for reproducible builds. Generated from `<image>.yaml` using `sg wolfi lock`.
## Getting started
See the [Add and Update Wolfi Base Images](https://sourcegraph.com/docs/dev/how-to/wolfi/add_update_images) docs for guides to add new images and updating existing images. For more background, see the [Wolfi](https://sourcegraph.com/docs/dev/background-information/wolfi#wolfi) docs.
### Quickstart
- `sg wolfi lock gitserver` - update the `.lock.json` for gitserver with the latest set of package versions
- `sg wolfi image gitserver` - build the gitserver **base image**
## High-level Architecture
file
┌──────────┐
│ │
│ │
│ YAML ├────────┐
│ │ │ sg wolfi image <image>
│ │ │ bazel target
└─────┬────┘ │ OR ┌─────────────────────┐
│ │ │ │
│ │ bazel build //<image>/:base_image │ │
sg wolfi lock ├──────────────────────────────────────────►│ :base_image │
(manual step) │ │ │
│ │ │ │
file │ │ └──────────┬──────────┘
┌─────▼─────┐ │ │
│ │ │ │
│ │ │ │
│ Lockfile ├───────┘ │
│ │ ┌─────────────────────────────────────────────────┘
│ │ │
└───────────┘ │
│ bazel rule
│ ┌──────────────────────────────────────┐
│ │ │
│ │ oci_image( │
│ │ │
│ │ name = "image" │
│ │ │
└─────┼──► base = ":base_image" │
Bazel-genenarated │ │
binaries and ───────────┼──► tars = ":tar_sourcegraph_binary" │
other resources │ │
│ [...] │
│ │
│ ) │
│ │
└──────────────────────────────────────┘

View File

@ -0,0 +1,885 @@
{
"configHash": "fb1eef7e1379fc5c9b74548857c23d7df2adb67cc07e7c5723e8fda32ce4e36c",
"contents": {
"keyring": [
{
"name": "packages.wolfi.dev/os/wolfi-signing.rsa.pub",
"url": "https://packages.wolfi.dev/os/wolfi-signing.rsa.pub"
},
{
"name": "packages.sgdev.org/sourcegraph-melange-prod.rsa.pub",
"url": "https://packages.sgdev.org/sourcegraph-melange-prod.rsa.pub"
}
],
"packages": [
{
"architecture": "x86_64",
"checksum": "Q1YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"control": {
"checksum": "sha1-YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"range": "bytes=696-1032"
},
"data": {
"checksum": "sha256-5hhCQURRrKVfPk8TOZVxfjceIUkVE0fh3/vEJBk88Ps=",
"range": "bytes=1033-256258"
},
"name": "ca-certificates-bundle",
"signature": {
"checksum": "sha1-E1NIpx8yCH6x5GcSqB4MzKQxuq4=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240315-r0.apk",
"version": "20240315-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1OHhyuiUviNHTg939DA0lyeRee18=",
"control": {
"checksum": "sha1-OHhyuiUviNHTg939DA0lyeRee18=",
"range": "bytes=702-1052"
},
"data": {
"checksum": "sha256-om3EZzEM+3dD9a77sOB2uOuAKBlf7XoUW/ORnDHQvZY=",
"range": "bytes=1053-125427"
},
"name": "wolfi-baselayout",
"signature": {
"checksum": "sha1-1CcRiULOFhX8ldA/Ae2qCMUGNmQ=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/wolfi-baselayout-20230201-r7.apk",
"version": "20230201-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1DyZ5L88J9MmDMYgbsywXdJdnw04=",
"control": {
"checksum": "sha1-DyZ5L88J9MmDMYgbsywXdJdnw04=",
"range": "bytes=699-1107"
},
"data": {
"checksum": "sha256-3xIIHf7osttdb7FoJTbfURbo4YuaB3knm5Kd3B5p+dI=",
"range": "bytes=1108-267814"
},
"name": "ld-linux",
"signature": {
"checksum": "sha1-lxFSv68mPMJwO+PthEdXfKHuLWk=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"control": {
"checksum": "sha1-UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"range": "bytes=696-1051"
},
"data": {
"checksum": "sha256-NaRRsIIgVTbofef14Qsnf+rysYDJXOXPKgfj6bAhP94=",
"range": "bytes=1052-408274"
},
"name": "glibc-locale-posix",
"signature": {
"checksum": "sha1-Iug0EjR+0K/k6fl0wi0prJHKBBo=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"control": {
"checksum": "sha1-PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"range": "bytes=695-1321"
},
"data": {
"checksum": "sha256-D6XvEcPrHmlsiI6HbbE51xmiTM1c5y6DV4MrHrCVuNo=",
"range": "bytes=1322-5861480"
},
"name": "glibc",
"signature": {
"checksum": "sha1-ypPC9SJASGEATsvLoDuEEUobhAs=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"control": {
"checksum": "sha1-mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"range": "bytes=704-1079"
},
"data": {
"checksum": "sha256-xE4spLqr7qIgImPfMC1kMY1a7Xu7xu1/eLkBMgOzSSc=",
"range": "bytes=1080-77936"
},
"name": "protobuf-c",
"signature": {
"checksum": "sha1-NGL0ELlBK8mhhAzuOkm17d2LbRo=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/protobuf-c-1.5.0-r3.apk",
"version": "1.5.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q135v8eEv8ZI/s/HXKkE96INoEoJk=",
"control": {
"checksum": "sha1-35v8eEv8ZI/s/HXKkE96INoEoJk=",
"range": "bytes=704-1040"
},
"data": {
"checksum": "sha256-3y4Tb3jy8M/ZXhnY6jxwj2YQFhdjLr/kjXhqJX7I+is=",
"range": "bytes=1041-27155"
},
"name": "krb5-conf",
"signature": {
"checksum": "sha1-WWjewHF5gekYrUPqdUHQEPIc97M=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-conf-1.0-r1.apk",
"version": "1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1TAnNLCVTaCylmbN84TlliyM47qM=",
"control": {
"checksum": "sha1-TAnNLCVTaCylmbN84TlliyM47qM=",
"range": "bytes=704-1069"
},
"data": {
"checksum": "sha256-+6lzaltti6IVf7RNynwcL9LmP9cJKMOjONPFUhHtnsA=",
"range": "bytes=1070-57492"
},
"name": "keyutils-libs",
"signature": {
"checksum": "sha1-MY+r6+HKyYcrgJtVqyG50KdP+QY=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/keyutils-libs-1.6.3-r1.apk",
"version": "1.6.3-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"control": {
"checksum": "sha1-baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"range": "bytes=700-1058"
},
"data": {
"checksum": "sha256-9BtoieN8gK8o4nzCDUyWkp6RmEsXrOwdu/XeTdZtDSE=",
"range": "bytes=1059-61938"
},
"name": "libverto",
"signature": {
"checksum": "sha1-TVkKg7JApxa7nvaj9DNvOsTv3Io=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/libverto-0.3.2-r1.apk",
"version": "0.3.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1M+CfES+G7micWuVpGjyxcTOj9zQ=",
"control": {
"checksum": "sha1-M+CfES+G7micWuVpGjyxcTOj9zQ=",
"range": "bytes=702-1120"
},
"data": {
"checksum": "sha256-UqwHAn95sL7AsIRMN0DM1TtSJ2Q5KD1WN4+uU8+Knqg=",
"range": "bytes=1121-52564"
},
"name": "libcom_err",
"signature": {
"checksum": "sha1-qciIi1MZRLclhn8K+GnrOJlNNfE=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcom_err-1.47.0-r1.apk",
"version": "1.47.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q13piSoRiT6p5eziGu2iPxSkXxf+g=",
"control": {
"checksum": "sha1-3piSoRiT6p5eziGu2iPxSkXxf+g=",
"range": "bytes=704-1039"
},
"data": {
"checksum": "sha256-+iLQJV5/mU/hTpwsy9zYBfzVIVkd8lXBBqMScHFhHfI=",
"range": "bytes=1040-87982"
},
"name": "openssl-config",
"signature": {
"checksum": "sha1-fsygjfZl7YLgdpBZ5OVKJG/N2HI=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/openssl-config-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1kERnIFBBwTWZsA+cmGLkIU75THk=",
"control": {
"checksum": "sha1-kERnIFBBwTWZsA+cmGLkIU75THk=",
"range": "bytes=694-1066"
},
"data": {
"checksum": "sha256-MB5ZoAsBJ0Osps0a1V0KsM/qQhfZQvYupElgoF1rNLE=",
"range": "bytes=1067-5895270"
},
"name": "libcrypto3",
"signature": {
"checksum": "sha1-vTJq+p2AjVQQjJ4gSkR9ySDQr3k=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypto3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1RFDJtvcstAQi4NjU00ApvNIvoEI=",
"control": {
"checksum": "sha1-RFDJtvcstAQi4NjU00ApvNIvoEI=",
"range": "bytes=694-1065"
},
"data": {
"checksum": "sha256-oocCJOj9IF7jv3Ov8bPbaAGfq6oaYXuPNnZW9DnOdnE=",
"range": "bytes=1066-1135402"
},
"name": "libssl3",
"signature": {
"checksum": "sha1-wJVFcqH/ewopq4lxwz8OYrZ9/Ws=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libssl3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"control": {
"checksum": "sha1-myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"range": "bytes=698-1216"
},
"data": {
"checksum": "sha256-elcsQDiEgNifO11g4MoJLGo5XJu8wQZaytjIKYxzVjw=",
"range": "bytes=1217-2564165"
},
"name": "krb5-libs",
"signature": {
"checksum": "sha1-NdbRDYVgwMQYQQrqt9GSGuBkjuA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-libs-1.21.2-r1.apk",
"version": "1.21.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"control": {
"checksum": "sha1-BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"range": "bytes=699-1059"
},
"data": {
"checksum": "sha256-Rp339LV5T4+zr98USK12eoyKGF84NviKlq3jh1AvbQQ=",
"range": "bytes=1060-96440"
},
"name": "fstrm",
"signature": {
"checksum": "sha1-tOY0x5olyX6V9uRtlgxtf4WEhR0=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/fstrm-0.6.1-r1.apk",
"version": "0.6.1-r1"
},
{
"architecture": "x86_64",
"checksum": "Q126C/3voUst+sFakQOGVOKucs6v8=",
"control": {
"checksum": "sha1-26C/3voUst+sFakQOGVOKucs6v8=",
"range": "bytes=698-1076"
},
"data": {
"checksum": "sha256-S2VfC729Glys7iRmR7sX4RoS4LLyNi9KmSzDc8wkKrQ=",
"range": "bytes=1077-277291"
},
"name": "libuv",
"signature": {
"checksum": "sha1-23pSGkhyhlBtbVxNtDXYlWnt+vk=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libuv-1.48.0-r0.apk",
"version": "1.48.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1ybud27/W+hJ0asiUj3hfrXVjcMs=",
"control": {
"checksum": "sha1-ybud27/W+hJ0asiUj3hfrXVjcMs=",
"range": "bytes=698-1081"
},
"data": {
"checksum": "sha256-3uFtBCAT2Gu/AplcYbKYMCuMMC94JLJDNyoWnSMLqjc=",
"range": "bytes=1082-156680"
},
"name": "zlib",
"signature": {
"checksum": "sha1-JYfhgb71ZjFG0VIAKLwOQSlHmlg=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/zlib-1.3.1-r0.apk",
"version": "1.3.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"control": {
"checksum": "sha1-txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"range": "bytes=703-1071"
},
"data": {
"checksum": "sha256-QgGnbFCQGaCUjwfFVcF2eOXDjZHaJjntdJlM1thwxd0=",
"range": "bytes=1072-252873"
},
"name": "libnghttp2-14",
"signature": {
"checksum": "sha1-VWNh1CR9wcBEPwOH88Qr6n7OR08=",
"range": "bytes=0-702"
},
"url": "https://packages.wolfi.dev/os/x86_64/libnghttp2-14-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"control": {
"checksum": "sha1-cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"range": "bytes=697-1073"
},
"data": {
"checksum": "sha256-7m+RnrAOS8ZCnFW/j2P2NcQJxOzfwSjOLYhEZXIwBG8=",
"range": "bytes=1074-114096"
},
"name": "libev",
"signature": {
"checksum": "sha1-PUsxiEtEuEoDpgKP2L36G/X55s0=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libev-4.33-r4.apk",
"version": "4.33-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"control": {
"checksum": "sha1-jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"range": "bytes=708-1084"
},
"data": {
"checksum": "sha256-v6jAIoRu7n3hQJ8nwWCLtvRsszuMGCAEyZm4zUF1cVI=",
"range": "bytes=1085-185893"
},
"name": "libgcc",
"signature": {
"checksum": "sha1-3fVn7jRkfOtxSgpmdey4iJJqQPM=",
"range": "bytes=0-707"
},
"url": "https://packages.wolfi.dev/os/x86_64/libgcc-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1NsUsznaiP7XyU6U/5pssXQgGJgU=",
"control": {
"checksum": "sha1-NsUsznaiP7XyU6U/5pssXQgGJgU=",
"range": "bytes=701-1093"
},
"data": {
"checksum": "sha256-0XrQ++geRWYRUazF23zdsuGVLFkiIDM1FKmAbbz9ojQ=",
"range": "bytes=1094-3156830"
},
"name": "libstdc++",
"signature": {
"checksum": "sha1-Zu2LUNkKQt3BnFU9+4PX0ud8D6Q=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libstdc++-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1EHyaNLx1UadaqJXEC86gtIjZGMM=",
"control": {
"checksum": "sha1-EHyaNLx1UadaqJXEC86gtIjZGMM=",
"range": "bytes=696-1076"
},
"data": {
"checksum": "sha256-+ValBcpIsLeYUFo73SZrUM2vpLGefts7Qx95EPMATaY=",
"range": "bytes=1077-232308"
},
"name": "c-ares",
"signature": {
"checksum": "sha1-OtwgYMiySwl+l6divnnSgQu+QUg=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/c-ares-1.28.1-r0.apk",
"version": "1.28.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"control": {
"checksum": "sha1-YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"range": "bytes=701-1168"
},
"data": {
"checksum": "sha256-KnMN4TtaDNZqReNINaTivjzUoQigGvtRZgVEqc1EDHo=",
"range": "bytes=1169-2555088"
},
"name": "nghttp2",
"signature": {
"checksum": "sha1-MWKiH9LAxjnWqAm536DCFrsZXCg=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"control": {
"checksum": "sha1-D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"range": "bytes=700-1067"
},
"data": {
"checksum": "sha256-fKV2YLH6EP/NFtRSErdaCwZX+Mg6KJrfmt1VpRWeKis=",
"range": "bytes=1068-634389"
},
"name": "nghttp2-dev",
"signature": {
"checksum": "sha1-ZRWYUK14qaTBE3NC7OOWumdkSyY=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-dev-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1sJOz3InYXKj1qNN3oPm3pb30VO0=",
"control": {
"checksum": "sha1-sJOz3InYXKj1qNN3oPm3pb30VO0=",
"range": "bytes=697-1149"
},
"data": {
"checksum": "sha256-fahwYvY6Lv9AhtEHBsSaoFAoKFWlvbbVC8jYGuRmTcg=",
"range": "bytes=1150-2380016"
},
"name": "xz",
"signature": {
"checksum": "sha1-aQxFIS7BG8u/jlY2JU8oQIEloYw=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/xz-5.4.6-r0.apk",
"version": "5.4.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"control": {
"checksum": "sha1-aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"range": "bytes=699-1084"
},
"data": {
"checksum": "sha256-Wc0u/JyHwxC7ubVFz4UlXEc5URwWiBZm4jNKqVv9LF0=",
"range": "bytes=1085-4698210"
},
"name": "libxml2",
"signature": {
"checksum": "sha1-v7pbNfh/TdC3LzRewdC3GeA9rec=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxml2-2.12.6-r0.apk",
"version": "2.12.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1l9z4OGVfdVISNbyGQdXlz2GPchM=",
"control": {
"checksum": "sha1-l9z4OGVfdVISNbyGQdXlz2GPchM=",
"range": "bytes=695-1222"
},
"data": {
"checksum": "sha256-0Z+mq/0A1P+F5KIZKnsYpg8Eqb3GDRT7VDrZlTEg+4Y=",
"range": "bytes=1223-3863194"
},
"name": "bind-libs",
"signature": {
"checksum": "sha1-YX2+1oZh/hXHVjZriSnJZQzpifg=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-libs-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"control": {
"checksum": "sha1-Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"range": "bytes=705-1217"
},
"data": {
"checksum": "sha256-/0zOh1KQW58NOuJgauDOdqJA4G4g0p6jPUOP45HN/f8=",
"range": "bytes=1218-892798"
},
"name": "bind-tools",
"signature": {
"checksum": "sha1-3GgaViNXeX4dd75pxgwR8yYgov0=",
"range": "bytes=0-704"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-tools-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q11cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"control": {
"checksum": "sha1-1cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"range": "bytes=698-1093"
},
"data": {
"checksum": "sha256-t284K9/cZQaQMy4y4nYXMIjKUTbyaBa/QnUj0cYmTNk=",
"range": "bytes=1094-234977"
},
"name": "libxcrypt",
"signature": {
"checksum": "sha1-hhR4Puw7nMj2H9OzUMTKhK1/7N0=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxcrypt-4.4.36-r4.apk",
"version": "4.4.36-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"control": {
"checksum": "sha1-szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"range": "bytes=698-1101"
},
"data": {
"checksum": "sha256-hrc/6rvJR5nb97Gu5Hep8419+WyFmd7maV78ni7zQAc=",
"range": "bytes=1102-21604"
},
"name": "libcrypt1",
"signature": {
"checksum": "sha1-Jk/8hSLRyZ7scdep1XfbpKABePY=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q17FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"control": {
"checksum": "sha1-7FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"range": "bytes=701-1208"
},
"data": {
"checksum": "sha256-67DYE+o9zQIS2KUyXkBN8SAEkWVh2+isnGTn78VdLMg=",
"range": "bytes=1209-636015"
},
"name": "busybox",
"signature": {
"checksum": "sha1-70uMRez2BMN2clrT3wFBWsR5Gew=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/busybox-1.36.1-r7.apk",
"version": "1.36.1-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"control": {
"checksum": "sha1-f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"range": "bytes=706-1103"
},
"data": {
"checksum": "sha256-ttIYvsu5Vp2YYKv/C7vK1hFUI8kNsOJxD65/SsOtWvQ=",
"range": "bytes=1104-2862070"
},
"name": "libunistring",
"signature": {
"checksum": "sha1-IwR2lnVv+Ixi8qtznw+ruuV9OVw=",
"range": "bytes=0-705"
},
"url": "https://packages.wolfi.dev/os/x86_64/libunistring-1.2-r0.apk",
"version": "1.2-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1tBy70+JqCVQbecHMDxN0U9PKn8k=",
"control": {
"checksum": "sha1-tBy70+JqCVQbecHMDxN0U9PKn8k=",
"range": "bytes=697-1102"
},
"data": {
"checksum": "sha256-xFjkADRrilqBaMgedKfRkaUGOqAlLDunZnmM/nggwDo=",
"range": "bytes=1103-411419"
},
"name": "libidn2",
"signature": {
"checksum": "sha1-AkpnAB73nCuJM4BJIXJsWn2/urk=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libidn2-2.3.7-r0.apk",
"version": "2.3.7-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"control": {
"checksum": "sha1-QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"range": "bytes=702-1082"
},
"data": {
"checksum": "sha256-cEuUD1tNXYeUHPC7dK9BSHOx8vt7IIRBGd181Sd0RXA=",
"range": "bytes=1083-114314"
},
"name": "libpsl",
"signature": {
"checksum": "sha1-H2Bp5J4UMCXPQlfvEiFxLXG5rEY=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libpsl-0.21.5-r0.apk",
"version": "0.21.5-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1LcDEPPjJrWwhueUvesRr4kLyGPI=",
"control": {
"checksum": "sha1-LcDEPPjJrWwhueUvesRr4kLyGPI=",
"range": "bytes=707-1052"
},
"data": {
"checksum": "sha256-xtIiQnSjJGdZnAzaBoJD6q3TbCpnAwTfD9SvbafkaP0=",
"range": "bytes=1053-174068"
},
"name": "libbrotlicommon1",
"signature": {
"checksum": "sha1-kcyKhs8jgdpGEEUhbyXHPJQpvyM=",
"range": "bytes=0-706"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlicommon1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q10jZlLouHAzMUvZYphGGNjOoZ1ug=",
"control": {
"checksum": "sha1-0jZlLouHAzMUvZYphGGNjOoZ1ug=",
"range": "bytes=701-1051"
},
"data": {
"checksum": "sha256-nx7lapEgf5fd4ZrtBxqXtAWE0tEVndBBEwXOUbhY2OA=",
"range": "bytes=1052-81979"
},
"name": "libbrotlidec1",
"signature": {
"checksum": "sha1-iUdAt3okR6P8rJ4sNv4yjC0I8Ys=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlidec1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"control": {
"checksum": "sha1-CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"range": "bytes=701-1140"
},
"data": {
"checksum": "sha256-2EP9UQKOVph+9hElnh20s8ViX126cAnPyNI+IF2pQ4Y=",
"range": "bytes=1141-838149"
},
"name": "libcurl-openssl4",
"signature": {
"checksum": "sha1-IxMuIpRYevSLukva0eWmB5RkhMY=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcurl-openssl4-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"control": {
"checksum": "sha1-DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"range": "bytes=700-1101"
},
"data": {
"checksum": "sha256-l1iebyEPmteOEBcPDwPzstpqs9SMvCn8PqlvRU3O7jk=",
"range": "bytes=1102-351141"
},
"name": "curl",
"signature": {
"checksum": "sha1-iVKgcLEjgrpj4c2TrRzHznPaWXA=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/curl-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1r9l7XC4n7t38cZYhibKYyXxpDTU=",
"control": {
"checksum": "sha1-r9l7XC4n7t38cZYhibKYyXxpDTU=",
"range": "bytes=702-1070"
},
"data": {
"checksum": "sha256-tYD/9Onzbw6Cn6ROse5xaEehepLIc3N/dIi3TU/PJ4E=",
"range": "bytes=1071-222096"
},
"name": "libexpat1",
"signature": {
"checksum": "sha1-h8N1XrbmveWwCaK7vRhvrjyGkz0=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libexpat1-2.6.2-r0.apk",
"version": "2.6.2-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1iwHESk2qYYU1tftUjYzmw6rsfIc=",
"control": {
"checksum": "sha1-iwHESk2qYYU1tftUjYzmw6rsfIc=",
"range": "bytes=696-1077"
},
"data": {
"checksum": "sha256-LDQ8s4E9uSiwlO7UiwdCydIZeRJ0IUMEVZ0mmipnY4I=",
"range": "bytes=1078-697889"
},
"name": "libpcre2-8-0",
"signature": {
"checksum": "sha1-BHs6B0daHvcBtPYWdsvCMLBnLHY=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/libpcre2-8-0-10.43-r0.apk",
"version": "10.43-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Orbcj0KYG7fCPz1GsPei3n1sY88=",
"control": {
"checksum": "sha1-Orbcj0KYG7fCPz1GsPei3n1sY88=",
"range": "bytes=700-1135"
},
"data": {
"checksum": "sha256-jFoDHbGtFJRr7sf+/2PlhKbw5PJBX/Ww6/LKIvTY0O0=",
"range": "bytes=1136-16782419"
},
"name": "git",
"signature": {
"checksum": "sha1-pz9/c6n1awUybxiKxsR1jYNtYZY=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/git-2.44.0-r0.apk",
"version": "2.44.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"control": {
"checksum": "sha1-Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"range": "bytes=660-1019"
},
"data": {
"checksum": "sha256-Acu4swCJY4zVqLGpjN7PJzQ6juyZajEZ/xlJeahCk4k=",
"range": "bytes=1020-173298"
},
"name": "mailcap",
"signature": {
"checksum": "sha1-fFIHN05okWjQyXdVrXiU2HpqEC4=",
"range": "bytes=0-659"
},
"url": "https://packages.wolfi.dev/os/x86_64/mailcap-2.1.54-r0.apk",
"version": "2.1.54-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1m7SsrH+XnrPIapzhnK0vkoxMen4=",
"control": {
"checksum": "sha1-m7SsrH+XnrPIapzhnK0vkoxMen4=",
"range": "bytes=698-1077"
},
"data": {
"checksum": "sha256-0WaULqZyE0zNNC6D7YeaXVN4shAVEouyqAEiRlB09C0=",
"range": "bytes=1078-54479"
},
"name": "tini",
"signature": {
"checksum": "sha1-eomfhWCyCB1OA/2DHboLUzXunvA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/tini-0.19.0-r3.apk",
"version": "0.19.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q1lvoD8CoCRqulbibjC3gSGuEe8K0=",
"control": {
"checksum": "sha1-lvoD8CoCRqulbibjC3gSGuEe8K0=",
"range": "bytes=702-1035"
},
"data": {
"checksum": "sha256-YB3jK9thvtrl7FCbwBPhBgHnz6ncykVxex/dHC4wYc8=",
"range": "bytes=1036-3022935"
},
"name": "tzdata",
"signature": {
"checksum": "sha1-AJ7WqmxNNMiSUQ8WuwjXg5Y23Gw=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/tzdata-2024a-r0.apk",
"version": "2024a-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1JVK/s+yGDiDotAujuHcQwzrchvI=",
"control": {
"checksum": "sha1-JVK/s+yGDiDotAujuHcQwzrchvI=",
"range": "bytes=699-1099"
},
"data": {
"checksum": "sha256-6MWjAN767fVREf1xZ18eV4QLzKBUdZusnhj7ljPZuhU=",
"range": "bytes=1100-786256"
},
"name": "wget",
"signature": {
"checksum": "sha1-cJ/swsh0XVO9ISogqXDo8oBBG7M=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/wget-1.24.5-r0.apk",
"version": "1.24.5-r0"
}
],
"repositories": [
{
"architecture": "x86_64",
"name": "packages.wolfi.dev/os/x86_64",
"url": "https://packages.wolfi.dev/os/x86_64/APKINDEX.tar.gz"
},
{
"architecture": "x86_64",
"name": "@sourcegraph https://packages.sgdev.org/main/x86_64",
"url": "@sourcegraph https://packages.sgdev.org/main/x86_64/APKINDEX.tar.gz"
}
]
},
"version": "v1"
}

View File

@ -8,5 +8,3 @@ contents:
## batcheshelper packages
- 'git'
# MANUAL REBUILD: Wed Oct 11 09:59:22 BST 2023

1189
wolfi-images/blobstore.lock.json Executable file

File diff suppressed because it is too large Load Diff

View File

@ -17,5 +17,3 @@ paths:
permissions: 0o755
work-dir: /opt/s3proxy
# MANUAL REBUILD: Wed Oct 11 09:59:22 BST 2023

File diff suppressed because it is too large Load Diff

View File

@ -21,5 +21,3 @@ paths:
- path: /usr/local/bin
type: directory
permissions: 0o755
# MANUAL REBUILD: Wed Oct 11 09:59:22 BST 2023

847
wolfi-images/cadvisor.lock.json Executable file
View File

@ -0,0 +1,847 @@
{
"configHash": "d6b3fa5c15dbe54c4dc478ac4e5b6d1adb1cd6f0477c0974e9078c997e4e6310",
"contents": {
"keyring": [
{
"name": "packages.wolfi.dev/os/wolfi-signing.rsa.pub",
"url": "https://packages.wolfi.dev/os/wolfi-signing.rsa.pub"
},
{
"name": "packages.sgdev.org/sourcegraph-melange-prod.rsa.pub",
"url": "https://packages.sgdev.org/sourcegraph-melange-prod.rsa.pub"
}
],
"packages": [
{
"architecture": "x86_64",
"checksum": "Q1YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"control": {
"checksum": "sha1-YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"range": "bytes=696-1032"
},
"data": {
"checksum": "sha256-5hhCQURRrKVfPk8TOZVxfjceIUkVE0fh3/vEJBk88Ps=",
"range": "bytes=1033-256258"
},
"name": "ca-certificates-bundle",
"signature": {
"checksum": "sha1-E1NIpx8yCH6x5GcSqB4MzKQxuq4=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240315-r0.apk",
"version": "20240315-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1OHhyuiUviNHTg939DA0lyeRee18=",
"control": {
"checksum": "sha1-OHhyuiUviNHTg939DA0lyeRee18=",
"range": "bytes=702-1052"
},
"data": {
"checksum": "sha256-om3EZzEM+3dD9a77sOB2uOuAKBlf7XoUW/ORnDHQvZY=",
"range": "bytes=1053-125427"
},
"name": "wolfi-baselayout",
"signature": {
"checksum": "sha1-1CcRiULOFhX8ldA/Ae2qCMUGNmQ=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/wolfi-baselayout-20230201-r7.apk",
"version": "20230201-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1DyZ5L88J9MmDMYgbsywXdJdnw04=",
"control": {
"checksum": "sha1-DyZ5L88J9MmDMYgbsywXdJdnw04=",
"range": "bytes=699-1107"
},
"data": {
"checksum": "sha256-3xIIHf7osttdb7FoJTbfURbo4YuaB3knm5Kd3B5p+dI=",
"range": "bytes=1108-267814"
},
"name": "ld-linux",
"signature": {
"checksum": "sha1-lxFSv68mPMJwO+PthEdXfKHuLWk=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"control": {
"checksum": "sha1-UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"range": "bytes=696-1051"
},
"data": {
"checksum": "sha256-NaRRsIIgVTbofef14Qsnf+rysYDJXOXPKgfj6bAhP94=",
"range": "bytes=1052-408274"
},
"name": "glibc-locale-posix",
"signature": {
"checksum": "sha1-Iug0EjR+0K/k6fl0wi0prJHKBBo=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"control": {
"checksum": "sha1-PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"range": "bytes=695-1321"
},
"data": {
"checksum": "sha256-D6XvEcPrHmlsiI6HbbE51xmiTM1c5y6DV4MrHrCVuNo=",
"range": "bytes=1322-5861480"
},
"name": "glibc",
"signature": {
"checksum": "sha1-ypPC9SJASGEATsvLoDuEEUobhAs=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"control": {
"checksum": "sha1-mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"range": "bytes=704-1079"
},
"data": {
"checksum": "sha256-xE4spLqr7qIgImPfMC1kMY1a7Xu7xu1/eLkBMgOzSSc=",
"range": "bytes=1080-77936"
},
"name": "protobuf-c",
"signature": {
"checksum": "sha1-NGL0ELlBK8mhhAzuOkm17d2LbRo=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/protobuf-c-1.5.0-r3.apk",
"version": "1.5.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q135v8eEv8ZI/s/HXKkE96INoEoJk=",
"control": {
"checksum": "sha1-35v8eEv8ZI/s/HXKkE96INoEoJk=",
"range": "bytes=704-1040"
},
"data": {
"checksum": "sha256-3y4Tb3jy8M/ZXhnY6jxwj2YQFhdjLr/kjXhqJX7I+is=",
"range": "bytes=1041-27155"
},
"name": "krb5-conf",
"signature": {
"checksum": "sha1-WWjewHF5gekYrUPqdUHQEPIc97M=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-conf-1.0-r1.apk",
"version": "1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1TAnNLCVTaCylmbN84TlliyM47qM=",
"control": {
"checksum": "sha1-TAnNLCVTaCylmbN84TlliyM47qM=",
"range": "bytes=704-1069"
},
"data": {
"checksum": "sha256-+6lzaltti6IVf7RNynwcL9LmP9cJKMOjONPFUhHtnsA=",
"range": "bytes=1070-57492"
},
"name": "keyutils-libs",
"signature": {
"checksum": "sha1-MY+r6+HKyYcrgJtVqyG50KdP+QY=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/keyutils-libs-1.6.3-r1.apk",
"version": "1.6.3-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"control": {
"checksum": "sha1-baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"range": "bytes=700-1058"
},
"data": {
"checksum": "sha256-9BtoieN8gK8o4nzCDUyWkp6RmEsXrOwdu/XeTdZtDSE=",
"range": "bytes=1059-61938"
},
"name": "libverto",
"signature": {
"checksum": "sha1-TVkKg7JApxa7nvaj9DNvOsTv3Io=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/libverto-0.3.2-r1.apk",
"version": "0.3.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1M+CfES+G7micWuVpGjyxcTOj9zQ=",
"control": {
"checksum": "sha1-M+CfES+G7micWuVpGjyxcTOj9zQ=",
"range": "bytes=702-1120"
},
"data": {
"checksum": "sha256-UqwHAn95sL7AsIRMN0DM1TtSJ2Q5KD1WN4+uU8+Knqg=",
"range": "bytes=1121-52564"
},
"name": "libcom_err",
"signature": {
"checksum": "sha1-qciIi1MZRLclhn8K+GnrOJlNNfE=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcom_err-1.47.0-r1.apk",
"version": "1.47.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q13piSoRiT6p5eziGu2iPxSkXxf+g=",
"control": {
"checksum": "sha1-3piSoRiT6p5eziGu2iPxSkXxf+g=",
"range": "bytes=704-1039"
},
"data": {
"checksum": "sha256-+iLQJV5/mU/hTpwsy9zYBfzVIVkd8lXBBqMScHFhHfI=",
"range": "bytes=1040-87982"
},
"name": "openssl-config",
"signature": {
"checksum": "sha1-fsygjfZl7YLgdpBZ5OVKJG/N2HI=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/openssl-config-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1kERnIFBBwTWZsA+cmGLkIU75THk=",
"control": {
"checksum": "sha1-kERnIFBBwTWZsA+cmGLkIU75THk=",
"range": "bytes=694-1066"
},
"data": {
"checksum": "sha256-MB5ZoAsBJ0Osps0a1V0KsM/qQhfZQvYupElgoF1rNLE=",
"range": "bytes=1067-5895270"
},
"name": "libcrypto3",
"signature": {
"checksum": "sha1-vTJq+p2AjVQQjJ4gSkR9ySDQr3k=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypto3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1RFDJtvcstAQi4NjU00ApvNIvoEI=",
"control": {
"checksum": "sha1-RFDJtvcstAQi4NjU00ApvNIvoEI=",
"range": "bytes=694-1065"
},
"data": {
"checksum": "sha256-oocCJOj9IF7jv3Ov8bPbaAGfq6oaYXuPNnZW9DnOdnE=",
"range": "bytes=1066-1135402"
},
"name": "libssl3",
"signature": {
"checksum": "sha1-wJVFcqH/ewopq4lxwz8OYrZ9/Ws=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libssl3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"control": {
"checksum": "sha1-myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"range": "bytes=698-1216"
},
"data": {
"checksum": "sha256-elcsQDiEgNifO11g4MoJLGo5XJu8wQZaytjIKYxzVjw=",
"range": "bytes=1217-2564165"
},
"name": "krb5-libs",
"signature": {
"checksum": "sha1-NdbRDYVgwMQYQQrqt9GSGuBkjuA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-libs-1.21.2-r1.apk",
"version": "1.21.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"control": {
"checksum": "sha1-BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"range": "bytes=699-1059"
},
"data": {
"checksum": "sha256-Rp339LV5T4+zr98USK12eoyKGF84NviKlq3jh1AvbQQ=",
"range": "bytes=1060-96440"
},
"name": "fstrm",
"signature": {
"checksum": "sha1-tOY0x5olyX6V9uRtlgxtf4WEhR0=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/fstrm-0.6.1-r1.apk",
"version": "0.6.1-r1"
},
{
"architecture": "x86_64",
"checksum": "Q126C/3voUst+sFakQOGVOKucs6v8=",
"control": {
"checksum": "sha1-26C/3voUst+sFakQOGVOKucs6v8=",
"range": "bytes=698-1076"
},
"data": {
"checksum": "sha256-S2VfC729Glys7iRmR7sX4RoS4LLyNi9KmSzDc8wkKrQ=",
"range": "bytes=1077-277291"
},
"name": "libuv",
"signature": {
"checksum": "sha1-23pSGkhyhlBtbVxNtDXYlWnt+vk=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libuv-1.48.0-r0.apk",
"version": "1.48.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1ybud27/W+hJ0asiUj3hfrXVjcMs=",
"control": {
"checksum": "sha1-ybud27/W+hJ0asiUj3hfrXVjcMs=",
"range": "bytes=698-1081"
},
"data": {
"checksum": "sha256-3uFtBCAT2Gu/AplcYbKYMCuMMC94JLJDNyoWnSMLqjc=",
"range": "bytes=1082-156680"
},
"name": "zlib",
"signature": {
"checksum": "sha1-JYfhgb71ZjFG0VIAKLwOQSlHmlg=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/zlib-1.3.1-r0.apk",
"version": "1.3.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"control": {
"checksum": "sha1-txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"range": "bytes=703-1071"
},
"data": {
"checksum": "sha256-QgGnbFCQGaCUjwfFVcF2eOXDjZHaJjntdJlM1thwxd0=",
"range": "bytes=1072-252873"
},
"name": "libnghttp2-14",
"signature": {
"checksum": "sha1-VWNh1CR9wcBEPwOH88Qr6n7OR08=",
"range": "bytes=0-702"
},
"url": "https://packages.wolfi.dev/os/x86_64/libnghttp2-14-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"control": {
"checksum": "sha1-cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"range": "bytes=697-1073"
},
"data": {
"checksum": "sha256-7m+RnrAOS8ZCnFW/j2P2NcQJxOzfwSjOLYhEZXIwBG8=",
"range": "bytes=1074-114096"
},
"name": "libev",
"signature": {
"checksum": "sha1-PUsxiEtEuEoDpgKP2L36G/X55s0=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libev-4.33-r4.apk",
"version": "4.33-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"control": {
"checksum": "sha1-jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"range": "bytes=708-1084"
},
"data": {
"checksum": "sha256-v6jAIoRu7n3hQJ8nwWCLtvRsszuMGCAEyZm4zUF1cVI=",
"range": "bytes=1085-185893"
},
"name": "libgcc",
"signature": {
"checksum": "sha1-3fVn7jRkfOtxSgpmdey4iJJqQPM=",
"range": "bytes=0-707"
},
"url": "https://packages.wolfi.dev/os/x86_64/libgcc-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1NsUsznaiP7XyU6U/5pssXQgGJgU=",
"control": {
"checksum": "sha1-NsUsznaiP7XyU6U/5pssXQgGJgU=",
"range": "bytes=701-1093"
},
"data": {
"checksum": "sha256-0XrQ++geRWYRUazF23zdsuGVLFkiIDM1FKmAbbz9ojQ=",
"range": "bytes=1094-3156830"
},
"name": "libstdc++",
"signature": {
"checksum": "sha1-Zu2LUNkKQt3BnFU9+4PX0ud8D6Q=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libstdc++-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1EHyaNLx1UadaqJXEC86gtIjZGMM=",
"control": {
"checksum": "sha1-EHyaNLx1UadaqJXEC86gtIjZGMM=",
"range": "bytes=696-1076"
},
"data": {
"checksum": "sha256-+ValBcpIsLeYUFo73SZrUM2vpLGefts7Qx95EPMATaY=",
"range": "bytes=1077-232308"
},
"name": "c-ares",
"signature": {
"checksum": "sha1-OtwgYMiySwl+l6divnnSgQu+QUg=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/c-ares-1.28.1-r0.apk",
"version": "1.28.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"control": {
"checksum": "sha1-YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"range": "bytes=701-1168"
},
"data": {
"checksum": "sha256-KnMN4TtaDNZqReNINaTivjzUoQigGvtRZgVEqc1EDHo=",
"range": "bytes=1169-2555088"
},
"name": "nghttp2",
"signature": {
"checksum": "sha1-MWKiH9LAxjnWqAm536DCFrsZXCg=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"control": {
"checksum": "sha1-D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"range": "bytes=700-1067"
},
"data": {
"checksum": "sha256-fKV2YLH6EP/NFtRSErdaCwZX+Mg6KJrfmt1VpRWeKis=",
"range": "bytes=1068-634389"
},
"name": "nghttp2-dev",
"signature": {
"checksum": "sha1-ZRWYUK14qaTBE3NC7OOWumdkSyY=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-dev-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1sJOz3InYXKj1qNN3oPm3pb30VO0=",
"control": {
"checksum": "sha1-sJOz3InYXKj1qNN3oPm3pb30VO0=",
"range": "bytes=697-1149"
},
"data": {
"checksum": "sha256-fahwYvY6Lv9AhtEHBsSaoFAoKFWlvbbVC8jYGuRmTcg=",
"range": "bytes=1150-2380016"
},
"name": "xz",
"signature": {
"checksum": "sha1-aQxFIS7BG8u/jlY2JU8oQIEloYw=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/xz-5.4.6-r0.apk",
"version": "5.4.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"control": {
"checksum": "sha1-aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"range": "bytes=699-1084"
},
"data": {
"checksum": "sha256-Wc0u/JyHwxC7ubVFz4UlXEc5URwWiBZm4jNKqVv9LF0=",
"range": "bytes=1085-4698210"
},
"name": "libxml2",
"signature": {
"checksum": "sha1-v7pbNfh/TdC3LzRewdC3GeA9rec=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxml2-2.12.6-r0.apk",
"version": "2.12.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1l9z4OGVfdVISNbyGQdXlz2GPchM=",
"control": {
"checksum": "sha1-l9z4OGVfdVISNbyGQdXlz2GPchM=",
"range": "bytes=695-1222"
},
"data": {
"checksum": "sha256-0Z+mq/0A1P+F5KIZKnsYpg8Eqb3GDRT7VDrZlTEg+4Y=",
"range": "bytes=1223-3863194"
},
"name": "bind-libs",
"signature": {
"checksum": "sha1-YX2+1oZh/hXHVjZriSnJZQzpifg=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-libs-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"control": {
"checksum": "sha1-Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"range": "bytes=705-1217"
},
"data": {
"checksum": "sha256-/0zOh1KQW58NOuJgauDOdqJA4G4g0p6jPUOP45HN/f8=",
"range": "bytes=1218-892798"
},
"name": "bind-tools",
"signature": {
"checksum": "sha1-3GgaViNXeX4dd75pxgwR8yYgov0=",
"range": "bytes=0-704"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-tools-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q11cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"control": {
"checksum": "sha1-1cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"range": "bytes=698-1093"
},
"data": {
"checksum": "sha256-t284K9/cZQaQMy4y4nYXMIjKUTbyaBa/QnUj0cYmTNk=",
"range": "bytes=1094-234977"
},
"name": "libxcrypt",
"signature": {
"checksum": "sha1-hhR4Puw7nMj2H9OzUMTKhK1/7N0=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxcrypt-4.4.36-r4.apk",
"version": "4.4.36-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"control": {
"checksum": "sha1-szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"range": "bytes=698-1101"
},
"data": {
"checksum": "sha256-hrc/6rvJR5nb97Gu5Hep8419+WyFmd7maV78ni7zQAc=",
"range": "bytes=1102-21604"
},
"name": "libcrypt1",
"signature": {
"checksum": "sha1-Jk/8hSLRyZ7scdep1XfbpKABePY=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q17FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"control": {
"checksum": "sha1-7FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"range": "bytes=701-1208"
},
"data": {
"checksum": "sha256-67DYE+o9zQIS2KUyXkBN8SAEkWVh2+isnGTn78VdLMg=",
"range": "bytes=1209-636015"
},
"name": "busybox",
"signature": {
"checksum": "sha1-70uMRez2BMN2clrT3wFBWsR5Gew=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/busybox-1.36.1-r7.apk",
"version": "1.36.1-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1XAmwfOKE6AK9ZLlv3blVG/UK+Og=",
"control": {
"checksum": "sha1-XAmwfOKE6AK9ZLlv3blVG/UK+Og=",
"range": "bytes=698-1116"
},
"data": {
"checksum": "sha256-OSfVGHY4ridKxhLv6G3Lo3VCIViOXjqXYDznHl59uHs=",
"range": "bytes=1117-37538248"
},
"name": "cadvisor",
"signature": {
"checksum": "sha1-b/FHtP/PEK3spSo6P4p3Bp8xkT8=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/cadvisor-0.49.1-r5.apk",
"version": "0.49.1-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"control": {
"checksum": "sha1-f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"range": "bytes=706-1103"
},
"data": {
"checksum": "sha256-ttIYvsu5Vp2YYKv/C7vK1hFUI8kNsOJxD65/SsOtWvQ=",
"range": "bytes=1104-2862070"
},
"name": "libunistring",
"signature": {
"checksum": "sha1-IwR2lnVv+Ixi8qtznw+ruuV9OVw=",
"range": "bytes=0-705"
},
"url": "https://packages.wolfi.dev/os/x86_64/libunistring-1.2-r0.apk",
"version": "1.2-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1tBy70+JqCVQbecHMDxN0U9PKn8k=",
"control": {
"checksum": "sha1-tBy70+JqCVQbecHMDxN0U9PKn8k=",
"range": "bytes=697-1102"
},
"data": {
"checksum": "sha256-xFjkADRrilqBaMgedKfRkaUGOqAlLDunZnmM/nggwDo=",
"range": "bytes=1103-411419"
},
"name": "libidn2",
"signature": {
"checksum": "sha1-AkpnAB73nCuJM4BJIXJsWn2/urk=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libidn2-2.3.7-r0.apk",
"version": "2.3.7-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"control": {
"checksum": "sha1-QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"range": "bytes=702-1082"
},
"data": {
"checksum": "sha256-cEuUD1tNXYeUHPC7dK9BSHOx8vt7IIRBGd181Sd0RXA=",
"range": "bytes=1083-114314"
},
"name": "libpsl",
"signature": {
"checksum": "sha1-H2Bp5J4UMCXPQlfvEiFxLXG5rEY=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libpsl-0.21.5-r0.apk",
"version": "0.21.5-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1LcDEPPjJrWwhueUvesRr4kLyGPI=",
"control": {
"checksum": "sha1-LcDEPPjJrWwhueUvesRr4kLyGPI=",
"range": "bytes=707-1052"
},
"data": {
"checksum": "sha256-xtIiQnSjJGdZnAzaBoJD6q3TbCpnAwTfD9SvbafkaP0=",
"range": "bytes=1053-174068"
},
"name": "libbrotlicommon1",
"signature": {
"checksum": "sha1-kcyKhs8jgdpGEEUhbyXHPJQpvyM=",
"range": "bytes=0-706"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlicommon1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q10jZlLouHAzMUvZYphGGNjOoZ1ug=",
"control": {
"checksum": "sha1-0jZlLouHAzMUvZYphGGNjOoZ1ug=",
"range": "bytes=701-1051"
},
"data": {
"checksum": "sha256-nx7lapEgf5fd4ZrtBxqXtAWE0tEVndBBEwXOUbhY2OA=",
"range": "bytes=1052-81979"
},
"name": "libbrotlidec1",
"signature": {
"checksum": "sha1-iUdAt3okR6P8rJ4sNv4yjC0I8Ys=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlidec1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"control": {
"checksum": "sha1-CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"range": "bytes=701-1140"
},
"data": {
"checksum": "sha256-2EP9UQKOVph+9hElnh20s8ViX126cAnPyNI+IF2pQ4Y=",
"range": "bytes=1141-838149"
},
"name": "libcurl-openssl4",
"signature": {
"checksum": "sha1-IxMuIpRYevSLukva0eWmB5RkhMY=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcurl-openssl4-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"control": {
"checksum": "sha1-DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"range": "bytes=700-1101"
},
"data": {
"checksum": "sha256-l1iebyEPmteOEBcPDwPzstpqs9SMvCn8PqlvRU3O7jk=",
"range": "bytes=1102-351141"
},
"name": "curl",
"signature": {
"checksum": "sha1-iVKgcLEjgrpj4c2TrRzHznPaWXA=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/curl-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"control": {
"checksum": "sha1-Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"range": "bytes=660-1019"
},
"data": {
"checksum": "sha256-Acu4swCJY4zVqLGpjN7PJzQ6juyZajEZ/xlJeahCk4k=",
"range": "bytes=1020-173298"
},
"name": "mailcap",
"signature": {
"checksum": "sha1-fFIHN05okWjQyXdVrXiU2HpqEC4=",
"range": "bytes=0-659"
},
"url": "https://packages.wolfi.dev/os/x86_64/mailcap-2.1.54-r0.apk",
"version": "2.1.54-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1m7SsrH+XnrPIapzhnK0vkoxMen4=",
"control": {
"checksum": "sha1-m7SsrH+XnrPIapzhnK0vkoxMen4=",
"range": "bytes=698-1077"
},
"data": {
"checksum": "sha256-0WaULqZyE0zNNC6D7YeaXVN4shAVEouyqAEiRlB09C0=",
"range": "bytes=1078-54479"
},
"name": "tini",
"signature": {
"checksum": "sha1-eomfhWCyCB1OA/2DHboLUzXunvA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/tini-0.19.0-r3.apk",
"version": "0.19.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q1lvoD8CoCRqulbibjC3gSGuEe8K0=",
"control": {
"checksum": "sha1-lvoD8CoCRqulbibjC3gSGuEe8K0=",
"range": "bytes=702-1035"
},
"data": {
"checksum": "sha256-YB3jK9thvtrl7FCbwBPhBgHnz6ncykVxex/dHC4wYc8=",
"range": "bytes=1036-3022935"
},
"name": "tzdata",
"signature": {
"checksum": "sha1-AJ7WqmxNNMiSUQ8WuwjXg5Y23Gw=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/tzdata-2024a-r0.apk",
"version": "2024a-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1JVK/s+yGDiDotAujuHcQwzrchvI=",
"control": {
"checksum": "sha1-JVK/s+yGDiDotAujuHcQwzrchvI=",
"range": "bytes=699-1099"
},
"data": {
"checksum": "sha256-6MWjAN767fVREf1xZ18eV4QLzKBUdZusnhj7ljPZuhU=",
"range": "bytes=1100-786256"
},
"name": "wget",
"signature": {
"checksum": "sha1-cJ/swsh0XVO9ISogqXDo8oBBG7M=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/wget-1.24.5-r0.apk",
"version": "1.24.5-r0"
}
],
"repositories": [
{
"architecture": "x86_64",
"name": "packages.wolfi.dev/os/x86_64",
"url": "https://packages.wolfi.dev/os/x86_64/APKINDEX.tar.gz"
},
{
"architecture": "x86_64",
"name": "@sourcegraph https://packages.sgdev.org/main/x86_64",
"url": "@sourcegraph https://packages.sgdev.org/main/x86_64/APKINDEX.tar.gz"
}
]
},
"version": "v1"
}

View File

@ -8,5 +8,3 @@ contents:
## cadvisor dependencies
- cadvisor
# MANUAL REBUILD: Wed Oct 11 09:59:22 BST 2023

1094
wolfi-images/cloud-mi2.lock.json Executable file

File diff suppressed because it is too large Load Diff

View File

@ -23,5 +23,3 @@ contents:
# it does not support running container with non-root user.
accounts:
run-as: root
# MANUAL REBUILD: Wed Oct 11 09:59:22 BST 2023

38
wolfi-images/defs.bzl Normal file
View File

@ -0,0 +1,38 @@
load("@aspect_bazel_lib//lib:yq.bzl", "yq")
load("@rules_apko//apko:defs.bzl", "apko_image")
load("//dev:oci_defs.bzl", "oci_image", "oci_tarball")
def wolfi_base(name = "wolfi", target = None):
if target == None:
target = native.package_name().split("/")[-1]
yq(
name = "wolfi_config",
expression = ". as $item ireduce ({}; . *+ $item) | del(.include)",
srcs = [
"//wolfi-images:{}.yaml".format(target),
"//wolfi-images:sourcegraph-base.yaml",
],
visibility = ["//visibility:private"],
)
apko_image(
name = "wolfi_base_apko",
architecture = "amd64",
config = ":wolfi_config",
contents = "@{}_apko_lock//:contents".format(target.replace("-", "_")),
tag = "{}-base:latest".format(target),
visibility = ["//visibility:private"],
)
oci_image(
name = "base_image",
base = ":wolfi_base_apko",
visibility = ["//visibility:public"],
)
oci_tarball(
name = "base_tarball",
image = ":base_image",
repo_tags = ["{}-base:latest".format(target)],
)

View File

@ -0,0 +1,885 @@
{
"configHash": "274bf837673c420013917a09ea913b50fe2955769d601844d860d4d6bb22cf0c",
"contents": {
"keyring": [
{
"name": "packages.wolfi.dev/os/wolfi-signing.rsa.pub",
"url": "https://packages.wolfi.dev/os/wolfi-signing.rsa.pub"
},
{
"name": "packages.sgdev.org/sourcegraph-melange-prod.rsa.pub",
"url": "https://packages.sgdev.org/sourcegraph-melange-prod.rsa.pub"
}
],
"packages": [
{
"architecture": "x86_64",
"checksum": "Q1YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"control": {
"checksum": "sha1-YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"range": "bytes=696-1032"
},
"data": {
"checksum": "sha256-5hhCQURRrKVfPk8TOZVxfjceIUkVE0fh3/vEJBk88Ps=",
"range": "bytes=1033-256258"
},
"name": "ca-certificates-bundle",
"signature": {
"checksum": "sha1-E1NIpx8yCH6x5GcSqB4MzKQxuq4=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240315-r0.apk",
"version": "20240315-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1OHhyuiUviNHTg939DA0lyeRee18=",
"control": {
"checksum": "sha1-OHhyuiUviNHTg939DA0lyeRee18=",
"range": "bytes=702-1052"
},
"data": {
"checksum": "sha256-om3EZzEM+3dD9a77sOB2uOuAKBlf7XoUW/ORnDHQvZY=",
"range": "bytes=1053-125427"
},
"name": "wolfi-baselayout",
"signature": {
"checksum": "sha1-1CcRiULOFhX8ldA/Ae2qCMUGNmQ=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/wolfi-baselayout-20230201-r7.apk",
"version": "20230201-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1DyZ5L88J9MmDMYgbsywXdJdnw04=",
"control": {
"checksum": "sha1-DyZ5L88J9MmDMYgbsywXdJdnw04=",
"range": "bytes=699-1107"
},
"data": {
"checksum": "sha256-3xIIHf7osttdb7FoJTbfURbo4YuaB3knm5Kd3B5p+dI=",
"range": "bytes=1108-267814"
},
"name": "ld-linux",
"signature": {
"checksum": "sha1-lxFSv68mPMJwO+PthEdXfKHuLWk=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"control": {
"checksum": "sha1-UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"range": "bytes=696-1051"
},
"data": {
"checksum": "sha256-NaRRsIIgVTbofef14Qsnf+rysYDJXOXPKgfj6bAhP94=",
"range": "bytes=1052-408274"
},
"name": "glibc-locale-posix",
"signature": {
"checksum": "sha1-Iug0EjR+0K/k6fl0wi0prJHKBBo=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"control": {
"checksum": "sha1-PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"range": "bytes=695-1321"
},
"data": {
"checksum": "sha256-D6XvEcPrHmlsiI6HbbE51xmiTM1c5y6DV4MrHrCVuNo=",
"range": "bytes=1322-5861480"
},
"name": "glibc",
"signature": {
"checksum": "sha1-ypPC9SJASGEATsvLoDuEEUobhAs=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"control": {
"checksum": "sha1-mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"range": "bytes=704-1079"
},
"data": {
"checksum": "sha256-xE4spLqr7qIgImPfMC1kMY1a7Xu7xu1/eLkBMgOzSSc=",
"range": "bytes=1080-77936"
},
"name": "protobuf-c",
"signature": {
"checksum": "sha1-NGL0ELlBK8mhhAzuOkm17d2LbRo=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/protobuf-c-1.5.0-r3.apk",
"version": "1.5.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q135v8eEv8ZI/s/HXKkE96INoEoJk=",
"control": {
"checksum": "sha1-35v8eEv8ZI/s/HXKkE96INoEoJk=",
"range": "bytes=704-1040"
},
"data": {
"checksum": "sha256-3y4Tb3jy8M/ZXhnY6jxwj2YQFhdjLr/kjXhqJX7I+is=",
"range": "bytes=1041-27155"
},
"name": "krb5-conf",
"signature": {
"checksum": "sha1-WWjewHF5gekYrUPqdUHQEPIc97M=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-conf-1.0-r1.apk",
"version": "1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1TAnNLCVTaCylmbN84TlliyM47qM=",
"control": {
"checksum": "sha1-TAnNLCVTaCylmbN84TlliyM47qM=",
"range": "bytes=704-1069"
},
"data": {
"checksum": "sha256-+6lzaltti6IVf7RNynwcL9LmP9cJKMOjONPFUhHtnsA=",
"range": "bytes=1070-57492"
},
"name": "keyutils-libs",
"signature": {
"checksum": "sha1-MY+r6+HKyYcrgJtVqyG50KdP+QY=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/keyutils-libs-1.6.3-r1.apk",
"version": "1.6.3-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"control": {
"checksum": "sha1-baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"range": "bytes=700-1058"
},
"data": {
"checksum": "sha256-9BtoieN8gK8o4nzCDUyWkp6RmEsXrOwdu/XeTdZtDSE=",
"range": "bytes=1059-61938"
},
"name": "libverto",
"signature": {
"checksum": "sha1-TVkKg7JApxa7nvaj9DNvOsTv3Io=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/libverto-0.3.2-r1.apk",
"version": "0.3.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1M+CfES+G7micWuVpGjyxcTOj9zQ=",
"control": {
"checksum": "sha1-M+CfES+G7micWuVpGjyxcTOj9zQ=",
"range": "bytes=702-1120"
},
"data": {
"checksum": "sha256-UqwHAn95sL7AsIRMN0DM1TtSJ2Q5KD1WN4+uU8+Knqg=",
"range": "bytes=1121-52564"
},
"name": "libcom_err",
"signature": {
"checksum": "sha1-qciIi1MZRLclhn8K+GnrOJlNNfE=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcom_err-1.47.0-r1.apk",
"version": "1.47.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q13piSoRiT6p5eziGu2iPxSkXxf+g=",
"control": {
"checksum": "sha1-3piSoRiT6p5eziGu2iPxSkXxf+g=",
"range": "bytes=704-1039"
},
"data": {
"checksum": "sha256-+iLQJV5/mU/hTpwsy9zYBfzVIVkd8lXBBqMScHFhHfI=",
"range": "bytes=1040-87982"
},
"name": "openssl-config",
"signature": {
"checksum": "sha1-fsygjfZl7YLgdpBZ5OVKJG/N2HI=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/openssl-config-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1kERnIFBBwTWZsA+cmGLkIU75THk=",
"control": {
"checksum": "sha1-kERnIFBBwTWZsA+cmGLkIU75THk=",
"range": "bytes=694-1066"
},
"data": {
"checksum": "sha256-MB5ZoAsBJ0Osps0a1V0KsM/qQhfZQvYupElgoF1rNLE=",
"range": "bytes=1067-5895270"
},
"name": "libcrypto3",
"signature": {
"checksum": "sha1-vTJq+p2AjVQQjJ4gSkR9ySDQr3k=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypto3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1RFDJtvcstAQi4NjU00ApvNIvoEI=",
"control": {
"checksum": "sha1-RFDJtvcstAQi4NjU00ApvNIvoEI=",
"range": "bytes=694-1065"
},
"data": {
"checksum": "sha256-oocCJOj9IF7jv3Ov8bPbaAGfq6oaYXuPNnZW9DnOdnE=",
"range": "bytes=1066-1135402"
},
"name": "libssl3",
"signature": {
"checksum": "sha1-wJVFcqH/ewopq4lxwz8OYrZ9/Ws=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libssl3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"control": {
"checksum": "sha1-myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"range": "bytes=698-1216"
},
"data": {
"checksum": "sha256-elcsQDiEgNifO11g4MoJLGo5XJu8wQZaytjIKYxzVjw=",
"range": "bytes=1217-2564165"
},
"name": "krb5-libs",
"signature": {
"checksum": "sha1-NdbRDYVgwMQYQQrqt9GSGuBkjuA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-libs-1.21.2-r1.apk",
"version": "1.21.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"control": {
"checksum": "sha1-BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"range": "bytes=699-1059"
},
"data": {
"checksum": "sha256-Rp339LV5T4+zr98USK12eoyKGF84NviKlq3jh1AvbQQ=",
"range": "bytes=1060-96440"
},
"name": "fstrm",
"signature": {
"checksum": "sha1-tOY0x5olyX6V9uRtlgxtf4WEhR0=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/fstrm-0.6.1-r1.apk",
"version": "0.6.1-r1"
},
{
"architecture": "x86_64",
"checksum": "Q126C/3voUst+sFakQOGVOKucs6v8=",
"control": {
"checksum": "sha1-26C/3voUst+sFakQOGVOKucs6v8=",
"range": "bytes=698-1076"
},
"data": {
"checksum": "sha256-S2VfC729Glys7iRmR7sX4RoS4LLyNi9KmSzDc8wkKrQ=",
"range": "bytes=1077-277291"
},
"name": "libuv",
"signature": {
"checksum": "sha1-23pSGkhyhlBtbVxNtDXYlWnt+vk=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libuv-1.48.0-r0.apk",
"version": "1.48.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1ybud27/W+hJ0asiUj3hfrXVjcMs=",
"control": {
"checksum": "sha1-ybud27/W+hJ0asiUj3hfrXVjcMs=",
"range": "bytes=698-1081"
},
"data": {
"checksum": "sha256-3uFtBCAT2Gu/AplcYbKYMCuMMC94JLJDNyoWnSMLqjc=",
"range": "bytes=1082-156680"
},
"name": "zlib",
"signature": {
"checksum": "sha1-JYfhgb71ZjFG0VIAKLwOQSlHmlg=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/zlib-1.3.1-r0.apk",
"version": "1.3.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"control": {
"checksum": "sha1-txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"range": "bytes=703-1071"
},
"data": {
"checksum": "sha256-QgGnbFCQGaCUjwfFVcF2eOXDjZHaJjntdJlM1thwxd0=",
"range": "bytes=1072-252873"
},
"name": "libnghttp2-14",
"signature": {
"checksum": "sha1-VWNh1CR9wcBEPwOH88Qr6n7OR08=",
"range": "bytes=0-702"
},
"url": "https://packages.wolfi.dev/os/x86_64/libnghttp2-14-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"control": {
"checksum": "sha1-cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"range": "bytes=697-1073"
},
"data": {
"checksum": "sha256-7m+RnrAOS8ZCnFW/j2P2NcQJxOzfwSjOLYhEZXIwBG8=",
"range": "bytes=1074-114096"
},
"name": "libev",
"signature": {
"checksum": "sha1-PUsxiEtEuEoDpgKP2L36G/X55s0=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libev-4.33-r4.apk",
"version": "4.33-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"control": {
"checksum": "sha1-jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"range": "bytes=708-1084"
},
"data": {
"checksum": "sha256-v6jAIoRu7n3hQJ8nwWCLtvRsszuMGCAEyZm4zUF1cVI=",
"range": "bytes=1085-185893"
},
"name": "libgcc",
"signature": {
"checksum": "sha1-3fVn7jRkfOtxSgpmdey4iJJqQPM=",
"range": "bytes=0-707"
},
"url": "https://packages.wolfi.dev/os/x86_64/libgcc-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1NsUsznaiP7XyU6U/5pssXQgGJgU=",
"control": {
"checksum": "sha1-NsUsznaiP7XyU6U/5pssXQgGJgU=",
"range": "bytes=701-1093"
},
"data": {
"checksum": "sha256-0XrQ++geRWYRUazF23zdsuGVLFkiIDM1FKmAbbz9ojQ=",
"range": "bytes=1094-3156830"
},
"name": "libstdc++",
"signature": {
"checksum": "sha1-Zu2LUNkKQt3BnFU9+4PX0ud8D6Q=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libstdc++-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1EHyaNLx1UadaqJXEC86gtIjZGMM=",
"control": {
"checksum": "sha1-EHyaNLx1UadaqJXEC86gtIjZGMM=",
"range": "bytes=696-1076"
},
"data": {
"checksum": "sha256-+ValBcpIsLeYUFo73SZrUM2vpLGefts7Qx95EPMATaY=",
"range": "bytes=1077-232308"
},
"name": "c-ares",
"signature": {
"checksum": "sha1-OtwgYMiySwl+l6divnnSgQu+QUg=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/c-ares-1.28.1-r0.apk",
"version": "1.28.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"control": {
"checksum": "sha1-YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"range": "bytes=701-1168"
},
"data": {
"checksum": "sha256-KnMN4TtaDNZqReNINaTivjzUoQigGvtRZgVEqc1EDHo=",
"range": "bytes=1169-2555088"
},
"name": "nghttp2",
"signature": {
"checksum": "sha1-MWKiH9LAxjnWqAm536DCFrsZXCg=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"control": {
"checksum": "sha1-D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"range": "bytes=700-1067"
},
"data": {
"checksum": "sha256-fKV2YLH6EP/NFtRSErdaCwZX+Mg6KJrfmt1VpRWeKis=",
"range": "bytes=1068-634389"
},
"name": "nghttp2-dev",
"signature": {
"checksum": "sha1-ZRWYUK14qaTBE3NC7OOWumdkSyY=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-dev-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1sJOz3InYXKj1qNN3oPm3pb30VO0=",
"control": {
"checksum": "sha1-sJOz3InYXKj1qNN3oPm3pb30VO0=",
"range": "bytes=697-1149"
},
"data": {
"checksum": "sha256-fahwYvY6Lv9AhtEHBsSaoFAoKFWlvbbVC8jYGuRmTcg=",
"range": "bytes=1150-2380016"
},
"name": "xz",
"signature": {
"checksum": "sha1-aQxFIS7BG8u/jlY2JU8oQIEloYw=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/xz-5.4.6-r0.apk",
"version": "5.4.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"control": {
"checksum": "sha1-aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"range": "bytes=699-1084"
},
"data": {
"checksum": "sha256-Wc0u/JyHwxC7ubVFz4UlXEc5URwWiBZm4jNKqVv9LF0=",
"range": "bytes=1085-4698210"
},
"name": "libxml2",
"signature": {
"checksum": "sha1-v7pbNfh/TdC3LzRewdC3GeA9rec=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxml2-2.12.6-r0.apk",
"version": "2.12.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1l9z4OGVfdVISNbyGQdXlz2GPchM=",
"control": {
"checksum": "sha1-l9z4OGVfdVISNbyGQdXlz2GPchM=",
"range": "bytes=695-1222"
},
"data": {
"checksum": "sha256-0Z+mq/0A1P+F5KIZKnsYpg8Eqb3GDRT7VDrZlTEg+4Y=",
"range": "bytes=1223-3863194"
},
"name": "bind-libs",
"signature": {
"checksum": "sha1-YX2+1oZh/hXHVjZriSnJZQzpifg=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-libs-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"control": {
"checksum": "sha1-Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"range": "bytes=705-1217"
},
"data": {
"checksum": "sha256-/0zOh1KQW58NOuJgauDOdqJA4G4g0p6jPUOP45HN/f8=",
"range": "bytes=1218-892798"
},
"name": "bind-tools",
"signature": {
"checksum": "sha1-3GgaViNXeX4dd75pxgwR8yYgov0=",
"range": "bytes=0-704"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-tools-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q11cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"control": {
"checksum": "sha1-1cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"range": "bytes=698-1093"
},
"data": {
"checksum": "sha256-t284K9/cZQaQMy4y4nYXMIjKUTbyaBa/QnUj0cYmTNk=",
"range": "bytes=1094-234977"
},
"name": "libxcrypt",
"signature": {
"checksum": "sha1-hhR4Puw7nMj2H9OzUMTKhK1/7N0=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxcrypt-4.4.36-r4.apk",
"version": "4.4.36-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"control": {
"checksum": "sha1-szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"range": "bytes=698-1101"
},
"data": {
"checksum": "sha256-hrc/6rvJR5nb97Gu5Hep8419+WyFmd7maV78ni7zQAc=",
"range": "bytes=1102-21604"
},
"name": "libcrypt1",
"signature": {
"checksum": "sha1-Jk/8hSLRyZ7scdep1XfbpKABePY=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q17FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"control": {
"checksum": "sha1-7FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"range": "bytes=701-1208"
},
"data": {
"checksum": "sha256-67DYE+o9zQIS2KUyXkBN8SAEkWVh2+isnGTn78VdLMg=",
"range": "bytes=1209-636015"
},
"name": "busybox",
"signature": {
"checksum": "sha1-70uMRez2BMN2clrT3wFBWsR5Gew=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/busybox-1.36.1-r7.apk",
"version": "1.36.1-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"control": {
"checksum": "sha1-f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"range": "bytes=706-1103"
},
"data": {
"checksum": "sha256-ttIYvsu5Vp2YYKv/C7vK1hFUI8kNsOJxD65/SsOtWvQ=",
"range": "bytes=1104-2862070"
},
"name": "libunistring",
"signature": {
"checksum": "sha1-IwR2lnVv+Ixi8qtznw+ruuV9OVw=",
"range": "bytes=0-705"
},
"url": "https://packages.wolfi.dev/os/x86_64/libunistring-1.2-r0.apk",
"version": "1.2-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1tBy70+JqCVQbecHMDxN0U9PKn8k=",
"control": {
"checksum": "sha1-tBy70+JqCVQbecHMDxN0U9PKn8k=",
"range": "bytes=697-1102"
},
"data": {
"checksum": "sha256-xFjkADRrilqBaMgedKfRkaUGOqAlLDunZnmM/nggwDo=",
"range": "bytes=1103-411419"
},
"name": "libidn2",
"signature": {
"checksum": "sha1-AkpnAB73nCuJM4BJIXJsWn2/urk=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libidn2-2.3.7-r0.apk",
"version": "2.3.7-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"control": {
"checksum": "sha1-QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"range": "bytes=702-1082"
},
"data": {
"checksum": "sha256-cEuUD1tNXYeUHPC7dK9BSHOx8vt7IIRBGd181Sd0RXA=",
"range": "bytes=1083-114314"
},
"name": "libpsl",
"signature": {
"checksum": "sha1-H2Bp5J4UMCXPQlfvEiFxLXG5rEY=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libpsl-0.21.5-r0.apk",
"version": "0.21.5-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1LcDEPPjJrWwhueUvesRr4kLyGPI=",
"control": {
"checksum": "sha1-LcDEPPjJrWwhueUvesRr4kLyGPI=",
"range": "bytes=707-1052"
},
"data": {
"checksum": "sha256-xtIiQnSjJGdZnAzaBoJD6q3TbCpnAwTfD9SvbafkaP0=",
"range": "bytes=1053-174068"
},
"name": "libbrotlicommon1",
"signature": {
"checksum": "sha1-kcyKhs8jgdpGEEUhbyXHPJQpvyM=",
"range": "bytes=0-706"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlicommon1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q10jZlLouHAzMUvZYphGGNjOoZ1ug=",
"control": {
"checksum": "sha1-0jZlLouHAzMUvZYphGGNjOoZ1ug=",
"range": "bytes=701-1051"
},
"data": {
"checksum": "sha256-nx7lapEgf5fd4ZrtBxqXtAWE0tEVndBBEwXOUbhY2OA=",
"range": "bytes=1052-81979"
},
"name": "libbrotlidec1",
"signature": {
"checksum": "sha1-iUdAt3okR6P8rJ4sNv4yjC0I8Ys=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlidec1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"control": {
"checksum": "sha1-CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"range": "bytes=701-1140"
},
"data": {
"checksum": "sha256-2EP9UQKOVph+9hElnh20s8ViX126cAnPyNI+IF2pQ4Y=",
"range": "bytes=1141-838149"
},
"name": "libcurl-openssl4",
"signature": {
"checksum": "sha1-IxMuIpRYevSLukva0eWmB5RkhMY=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcurl-openssl4-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"control": {
"checksum": "sha1-DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"range": "bytes=700-1101"
},
"data": {
"checksum": "sha256-l1iebyEPmteOEBcPDwPzstpqs9SMvCn8PqlvRU3O7jk=",
"range": "bytes=1102-351141"
},
"name": "curl",
"signature": {
"checksum": "sha1-iVKgcLEjgrpj4c2TrRzHznPaWXA=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/curl-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1r9l7XC4n7t38cZYhibKYyXxpDTU=",
"control": {
"checksum": "sha1-r9l7XC4n7t38cZYhibKYyXxpDTU=",
"range": "bytes=702-1070"
},
"data": {
"checksum": "sha256-tYD/9Onzbw6Cn6ROse5xaEehepLIc3N/dIi3TU/PJ4E=",
"range": "bytes=1071-222096"
},
"name": "libexpat1",
"signature": {
"checksum": "sha1-h8N1XrbmveWwCaK7vRhvrjyGkz0=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libexpat1-2.6.2-r0.apk",
"version": "2.6.2-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1iwHESk2qYYU1tftUjYzmw6rsfIc=",
"control": {
"checksum": "sha1-iwHESk2qYYU1tftUjYzmw6rsfIc=",
"range": "bytes=696-1077"
},
"data": {
"checksum": "sha256-LDQ8s4E9uSiwlO7UiwdCydIZeRJ0IUMEVZ0mmipnY4I=",
"range": "bytes=1078-697889"
},
"name": "libpcre2-8-0",
"signature": {
"checksum": "sha1-BHs6B0daHvcBtPYWdsvCMLBnLHY=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/libpcre2-8-0-10.43-r0.apk",
"version": "10.43-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Orbcj0KYG7fCPz1GsPei3n1sY88=",
"control": {
"checksum": "sha1-Orbcj0KYG7fCPz1GsPei3n1sY88=",
"range": "bytes=700-1135"
},
"data": {
"checksum": "sha256-jFoDHbGtFJRr7sf+/2PlhKbw5PJBX/Ww6/LKIvTY0O0=",
"range": "bytes=1136-16782419"
},
"name": "git",
"signature": {
"checksum": "sha1-pz9/c6n1awUybxiKxsR1jYNtYZY=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/git-2.44.0-r0.apk",
"version": "2.44.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"control": {
"checksum": "sha1-Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"range": "bytes=660-1019"
},
"data": {
"checksum": "sha256-Acu4swCJY4zVqLGpjN7PJzQ6juyZajEZ/xlJeahCk4k=",
"range": "bytes=1020-173298"
},
"name": "mailcap",
"signature": {
"checksum": "sha1-fFIHN05okWjQyXdVrXiU2HpqEC4=",
"range": "bytes=0-659"
},
"url": "https://packages.wolfi.dev/os/x86_64/mailcap-2.1.54-r0.apk",
"version": "2.1.54-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1m7SsrH+XnrPIapzhnK0vkoxMen4=",
"control": {
"checksum": "sha1-m7SsrH+XnrPIapzhnK0vkoxMen4=",
"range": "bytes=698-1077"
},
"data": {
"checksum": "sha256-0WaULqZyE0zNNC6D7YeaXVN4shAVEouyqAEiRlB09C0=",
"range": "bytes=1078-54479"
},
"name": "tini",
"signature": {
"checksum": "sha1-eomfhWCyCB1OA/2DHboLUzXunvA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/tini-0.19.0-r3.apk",
"version": "0.19.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q1lvoD8CoCRqulbibjC3gSGuEe8K0=",
"control": {
"checksum": "sha1-lvoD8CoCRqulbibjC3gSGuEe8K0=",
"range": "bytes=702-1035"
},
"data": {
"checksum": "sha256-YB3jK9thvtrl7FCbwBPhBgHnz6ncykVxex/dHC4wYc8=",
"range": "bytes=1036-3022935"
},
"name": "tzdata",
"signature": {
"checksum": "sha1-AJ7WqmxNNMiSUQ8WuwjXg5Y23Gw=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/tzdata-2024a-r0.apk",
"version": "2024a-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1JVK/s+yGDiDotAujuHcQwzrchvI=",
"control": {
"checksum": "sha1-JVK/s+yGDiDotAujuHcQwzrchvI=",
"range": "bytes=699-1099"
},
"data": {
"checksum": "sha256-6MWjAN767fVREf1xZ18eV4QLzKBUdZusnhj7ljPZuhU=",
"range": "bytes=1100-786256"
},
"name": "wget",
"signature": {
"checksum": "sha1-cJ/swsh0XVO9ISogqXDo8oBBG7M=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/wget-1.24.5-r0.apk",
"version": "1.24.5-r0"
}
],
"repositories": [
{
"architecture": "x86_64",
"name": "packages.wolfi.dev/os/x86_64",
"url": "https://packages.wolfi.dev/os/x86_64/APKINDEX.tar.gz"
},
{
"architecture": "x86_64",
"name": "@sourcegraph https://packages.sgdev.org/main/x86_64",
"url": "@sourcegraph https://packages.sgdev.org/main/x86_64/APKINDEX.tar.gz"
}
]
},
"version": "v1"
}

View File

@ -8,5 +8,3 @@ contents:
## executor-kubernetes packages
- git
# MANUAL REBUILD: Wed Oct 11 09:59:22 BST 2023

923
wolfi-images/executor.lock.json Executable file
View File

@ -0,0 +1,923 @@
{
"configHash": "1a880a8ecd174c26ae6768211e5d051647722c8ca0583582bc008f23eef3d02c",
"contents": {
"keyring": [
{
"name": "packages.wolfi.dev/os/wolfi-signing.rsa.pub",
"url": "https://packages.wolfi.dev/os/wolfi-signing.rsa.pub"
},
{
"name": "packages.sgdev.org/sourcegraph-melange-prod.rsa.pub",
"url": "https://packages.sgdev.org/sourcegraph-melange-prod.rsa.pub"
}
],
"packages": [
{
"architecture": "x86_64",
"checksum": "Q1YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"control": {
"checksum": "sha1-YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"range": "bytes=696-1032"
},
"data": {
"checksum": "sha256-5hhCQURRrKVfPk8TOZVxfjceIUkVE0fh3/vEJBk88Ps=",
"range": "bytes=1033-256258"
},
"name": "ca-certificates-bundle",
"signature": {
"checksum": "sha1-E1NIpx8yCH6x5GcSqB4MzKQxuq4=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240315-r0.apk",
"version": "20240315-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1OHhyuiUviNHTg939DA0lyeRee18=",
"control": {
"checksum": "sha1-OHhyuiUviNHTg939DA0lyeRee18=",
"range": "bytes=702-1052"
},
"data": {
"checksum": "sha256-om3EZzEM+3dD9a77sOB2uOuAKBlf7XoUW/ORnDHQvZY=",
"range": "bytes=1053-125427"
},
"name": "wolfi-baselayout",
"signature": {
"checksum": "sha1-1CcRiULOFhX8ldA/Ae2qCMUGNmQ=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/wolfi-baselayout-20230201-r7.apk",
"version": "20230201-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1DyZ5L88J9MmDMYgbsywXdJdnw04=",
"control": {
"checksum": "sha1-DyZ5L88J9MmDMYgbsywXdJdnw04=",
"range": "bytes=699-1107"
},
"data": {
"checksum": "sha256-3xIIHf7osttdb7FoJTbfURbo4YuaB3knm5Kd3B5p+dI=",
"range": "bytes=1108-267814"
},
"name": "ld-linux",
"signature": {
"checksum": "sha1-lxFSv68mPMJwO+PthEdXfKHuLWk=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"control": {
"checksum": "sha1-UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"range": "bytes=696-1051"
},
"data": {
"checksum": "sha256-NaRRsIIgVTbofef14Qsnf+rysYDJXOXPKgfj6bAhP94=",
"range": "bytes=1052-408274"
},
"name": "glibc-locale-posix",
"signature": {
"checksum": "sha1-Iug0EjR+0K/k6fl0wi0prJHKBBo=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"control": {
"checksum": "sha1-PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"range": "bytes=695-1321"
},
"data": {
"checksum": "sha256-D6XvEcPrHmlsiI6HbbE51xmiTM1c5y6DV4MrHrCVuNo=",
"range": "bytes=1322-5861480"
},
"name": "glibc",
"signature": {
"checksum": "sha1-ypPC9SJASGEATsvLoDuEEUobhAs=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"control": {
"checksum": "sha1-mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"range": "bytes=704-1079"
},
"data": {
"checksum": "sha256-xE4spLqr7qIgImPfMC1kMY1a7Xu7xu1/eLkBMgOzSSc=",
"range": "bytes=1080-77936"
},
"name": "protobuf-c",
"signature": {
"checksum": "sha1-NGL0ELlBK8mhhAzuOkm17d2LbRo=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/protobuf-c-1.5.0-r3.apk",
"version": "1.5.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q135v8eEv8ZI/s/HXKkE96INoEoJk=",
"control": {
"checksum": "sha1-35v8eEv8ZI/s/HXKkE96INoEoJk=",
"range": "bytes=704-1040"
},
"data": {
"checksum": "sha256-3y4Tb3jy8M/ZXhnY6jxwj2YQFhdjLr/kjXhqJX7I+is=",
"range": "bytes=1041-27155"
},
"name": "krb5-conf",
"signature": {
"checksum": "sha1-WWjewHF5gekYrUPqdUHQEPIc97M=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-conf-1.0-r1.apk",
"version": "1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1TAnNLCVTaCylmbN84TlliyM47qM=",
"control": {
"checksum": "sha1-TAnNLCVTaCylmbN84TlliyM47qM=",
"range": "bytes=704-1069"
},
"data": {
"checksum": "sha256-+6lzaltti6IVf7RNynwcL9LmP9cJKMOjONPFUhHtnsA=",
"range": "bytes=1070-57492"
},
"name": "keyutils-libs",
"signature": {
"checksum": "sha1-MY+r6+HKyYcrgJtVqyG50KdP+QY=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/keyutils-libs-1.6.3-r1.apk",
"version": "1.6.3-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"control": {
"checksum": "sha1-baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"range": "bytes=700-1058"
},
"data": {
"checksum": "sha256-9BtoieN8gK8o4nzCDUyWkp6RmEsXrOwdu/XeTdZtDSE=",
"range": "bytes=1059-61938"
},
"name": "libverto",
"signature": {
"checksum": "sha1-TVkKg7JApxa7nvaj9DNvOsTv3Io=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/libverto-0.3.2-r1.apk",
"version": "0.3.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1M+CfES+G7micWuVpGjyxcTOj9zQ=",
"control": {
"checksum": "sha1-M+CfES+G7micWuVpGjyxcTOj9zQ=",
"range": "bytes=702-1120"
},
"data": {
"checksum": "sha256-UqwHAn95sL7AsIRMN0DM1TtSJ2Q5KD1WN4+uU8+Knqg=",
"range": "bytes=1121-52564"
},
"name": "libcom_err",
"signature": {
"checksum": "sha1-qciIi1MZRLclhn8K+GnrOJlNNfE=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcom_err-1.47.0-r1.apk",
"version": "1.47.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q13piSoRiT6p5eziGu2iPxSkXxf+g=",
"control": {
"checksum": "sha1-3piSoRiT6p5eziGu2iPxSkXxf+g=",
"range": "bytes=704-1039"
},
"data": {
"checksum": "sha256-+iLQJV5/mU/hTpwsy9zYBfzVIVkd8lXBBqMScHFhHfI=",
"range": "bytes=1040-87982"
},
"name": "openssl-config",
"signature": {
"checksum": "sha1-fsygjfZl7YLgdpBZ5OVKJG/N2HI=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/openssl-config-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1kERnIFBBwTWZsA+cmGLkIU75THk=",
"control": {
"checksum": "sha1-kERnIFBBwTWZsA+cmGLkIU75THk=",
"range": "bytes=694-1066"
},
"data": {
"checksum": "sha256-MB5ZoAsBJ0Osps0a1V0KsM/qQhfZQvYupElgoF1rNLE=",
"range": "bytes=1067-5895270"
},
"name": "libcrypto3",
"signature": {
"checksum": "sha1-vTJq+p2AjVQQjJ4gSkR9ySDQr3k=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypto3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1RFDJtvcstAQi4NjU00ApvNIvoEI=",
"control": {
"checksum": "sha1-RFDJtvcstAQi4NjU00ApvNIvoEI=",
"range": "bytes=694-1065"
},
"data": {
"checksum": "sha256-oocCJOj9IF7jv3Ov8bPbaAGfq6oaYXuPNnZW9DnOdnE=",
"range": "bytes=1066-1135402"
},
"name": "libssl3",
"signature": {
"checksum": "sha1-wJVFcqH/ewopq4lxwz8OYrZ9/Ws=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libssl3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"control": {
"checksum": "sha1-myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"range": "bytes=698-1216"
},
"data": {
"checksum": "sha256-elcsQDiEgNifO11g4MoJLGo5XJu8wQZaytjIKYxzVjw=",
"range": "bytes=1217-2564165"
},
"name": "krb5-libs",
"signature": {
"checksum": "sha1-NdbRDYVgwMQYQQrqt9GSGuBkjuA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-libs-1.21.2-r1.apk",
"version": "1.21.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"control": {
"checksum": "sha1-BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"range": "bytes=699-1059"
},
"data": {
"checksum": "sha256-Rp339LV5T4+zr98USK12eoyKGF84NviKlq3jh1AvbQQ=",
"range": "bytes=1060-96440"
},
"name": "fstrm",
"signature": {
"checksum": "sha1-tOY0x5olyX6V9uRtlgxtf4WEhR0=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/fstrm-0.6.1-r1.apk",
"version": "0.6.1-r1"
},
{
"architecture": "x86_64",
"checksum": "Q126C/3voUst+sFakQOGVOKucs6v8=",
"control": {
"checksum": "sha1-26C/3voUst+sFakQOGVOKucs6v8=",
"range": "bytes=698-1076"
},
"data": {
"checksum": "sha256-S2VfC729Glys7iRmR7sX4RoS4LLyNi9KmSzDc8wkKrQ=",
"range": "bytes=1077-277291"
},
"name": "libuv",
"signature": {
"checksum": "sha1-23pSGkhyhlBtbVxNtDXYlWnt+vk=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libuv-1.48.0-r0.apk",
"version": "1.48.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1ybud27/W+hJ0asiUj3hfrXVjcMs=",
"control": {
"checksum": "sha1-ybud27/W+hJ0asiUj3hfrXVjcMs=",
"range": "bytes=698-1081"
},
"data": {
"checksum": "sha256-3uFtBCAT2Gu/AplcYbKYMCuMMC94JLJDNyoWnSMLqjc=",
"range": "bytes=1082-156680"
},
"name": "zlib",
"signature": {
"checksum": "sha1-JYfhgb71ZjFG0VIAKLwOQSlHmlg=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/zlib-1.3.1-r0.apk",
"version": "1.3.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"control": {
"checksum": "sha1-txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"range": "bytes=703-1071"
},
"data": {
"checksum": "sha256-QgGnbFCQGaCUjwfFVcF2eOXDjZHaJjntdJlM1thwxd0=",
"range": "bytes=1072-252873"
},
"name": "libnghttp2-14",
"signature": {
"checksum": "sha1-VWNh1CR9wcBEPwOH88Qr6n7OR08=",
"range": "bytes=0-702"
},
"url": "https://packages.wolfi.dev/os/x86_64/libnghttp2-14-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"control": {
"checksum": "sha1-cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"range": "bytes=697-1073"
},
"data": {
"checksum": "sha256-7m+RnrAOS8ZCnFW/j2P2NcQJxOzfwSjOLYhEZXIwBG8=",
"range": "bytes=1074-114096"
},
"name": "libev",
"signature": {
"checksum": "sha1-PUsxiEtEuEoDpgKP2L36G/X55s0=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libev-4.33-r4.apk",
"version": "4.33-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"control": {
"checksum": "sha1-jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"range": "bytes=708-1084"
},
"data": {
"checksum": "sha256-v6jAIoRu7n3hQJ8nwWCLtvRsszuMGCAEyZm4zUF1cVI=",
"range": "bytes=1085-185893"
},
"name": "libgcc",
"signature": {
"checksum": "sha1-3fVn7jRkfOtxSgpmdey4iJJqQPM=",
"range": "bytes=0-707"
},
"url": "https://packages.wolfi.dev/os/x86_64/libgcc-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1NsUsznaiP7XyU6U/5pssXQgGJgU=",
"control": {
"checksum": "sha1-NsUsznaiP7XyU6U/5pssXQgGJgU=",
"range": "bytes=701-1093"
},
"data": {
"checksum": "sha256-0XrQ++geRWYRUazF23zdsuGVLFkiIDM1FKmAbbz9ojQ=",
"range": "bytes=1094-3156830"
},
"name": "libstdc++",
"signature": {
"checksum": "sha1-Zu2LUNkKQt3BnFU9+4PX0ud8D6Q=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libstdc++-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1EHyaNLx1UadaqJXEC86gtIjZGMM=",
"control": {
"checksum": "sha1-EHyaNLx1UadaqJXEC86gtIjZGMM=",
"range": "bytes=696-1076"
},
"data": {
"checksum": "sha256-+ValBcpIsLeYUFo73SZrUM2vpLGefts7Qx95EPMATaY=",
"range": "bytes=1077-232308"
},
"name": "c-ares",
"signature": {
"checksum": "sha1-OtwgYMiySwl+l6divnnSgQu+QUg=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/c-ares-1.28.1-r0.apk",
"version": "1.28.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"control": {
"checksum": "sha1-YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"range": "bytes=701-1168"
},
"data": {
"checksum": "sha256-KnMN4TtaDNZqReNINaTivjzUoQigGvtRZgVEqc1EDHo=",
"range": "bytes=1169-2555088"
},
"name": "nghttp2",
"signature": {
"checksum": "sha1-MWKiH9LAxjnWqAm536DCFrsZXCg=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"control": {
"checksum": "sha1-D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"range": "bytes=700-1067"
},
"data": {
"checksum": "sha256-fKV2YLH6EP/NFtRSErdaCwZX+Mg6KJrfmt1VpRWeKis=",
"range": "bytes=1068-634389"
},
"name": "nghttp2-dev",
"signature": {
"checksum": "sha1-ZRWYUK14qaTBE3NC7OOWumdkSyY=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-dev-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1sJOz3InYXKj1qNN3oPm3pb30VO0=",
"control": {
"checksum": "sha1-sJOz3InYXKj1qNN3oPm3pb30VO0=",
"range": "bytes=697-1149"
},
"data": {
"checksum": "sha256-fahwYvY6Lv9AhtEHBsSaoFAoKFWlvbbVC8jYGuRmTcg=",
"range": "bytes=1150-2380016"
},
"name": "xz",
"signature": {
"checksum": "sha1-aQxFIS7BG8u/jlY2JU8oQIEloYw=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/xz-5.4.6-r0.apk",
"version": "5.4.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"control": {
"checksum": "sha1-aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"range": "bytes=699-1084"
},
"data": {
"checksum": "sha256-Wc0u/JyHwxC7ubVFz4UlXEc5URwWiBZm4jNKqVv9LF0=",
"range": "bytes=1085-4698210"
},
"name": "libxml2",
"signature": {
"checksum": "sha1-v7pbNfh/TdC3LzRewdC3GeA9rec=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxml2-2.12.6-r0.apk",
"version": "2.12.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1l9z4OGVfdVISNbyGQdXlz2GPchM=",
"control": {
"checksum": "sha1-l9z4OGVfdVISNbyGQdXlz2GPchM=",
"range": "bytes=695-1222"
},
"data": {
"checksum": "sha256-0Z+mq/0A1P+F5KIZKnsYpg8Eqb3GDRT7VDrZlTEg+4Y=",
"range": "bytes=1223-3863194"
},
"name": "bind-libs",
"signature": {
"checksum": "sha1-YX2+1oZh/hXHVjZriSnJZQzpifg=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-libs-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"control": {
"checksum": "sha1-Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"range": "bytes=705-1217"
},
"data": {
"checksum": "sha256-/0zOh1KQW58NOuJgauDOdqJA4G4g0p6jPUOP45HN/f8=",
"range": "bytes=1218-892798"
},
"name": "bind-tools",
"signature": {
"checksum": "sha1-3GgaViNXeX4dd75pxgwR8yYgov0=",
"range": "bytes=0-704"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-tools-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q11cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"control": {
"checksum": "sha1-1cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"range": "bytes=698-1093"
},
"data": {
"checksum": "sha256-t284K9/cZQaQMy4y4nYXMIjKUTbyaBa/QnUj0cYmTNk=",
"range": "bytes=1094-234977"
},
"name": "libxcrypt",
"signature": {
"checksum": "sha1-hhR4Puw7nMj2H9OzUMTKhK1/7N0=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxcrypt-4.4.36-r4.apk",
"version": "4.4.36-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"control": {
"checksum": "sha1-szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"range": "bytes=698-1101"
},
"data": {
"checksum": "sha256-hrc/6rvJR5nb97Gu5Hep8419+WyFmd7maV78ni7zQAc=",
"range": "bytes=1102-21604"
},
"name": "libcrypt1",
"signature": {
"checksum": "sha1-Jk/8hSLRyZ7scdep1XfbpKABePY=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q17FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"control": {
"checksum": "sha1-7FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"range": "bytes=701-1208"
},
"data": {
"checksum": "sha256-67DYE+o9zQIS2KUyXkBN8SAEkWVh2+isnGTn78VdLMg=",
"range": "bytes=1209-636015"
},
"name": "busybox",
"signature": {
"checksum": "sha1-70uMRez2BMN2clrT3wFBWsR5Gew=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/busybox-1.36.1-r7.apk",
"version": "1.36.1-r7"
},
{
"architecture": "x86_64",
"checksum": "Q13iwUZ6pWmh39TOjgeeMlH6sHtn0=",
"control": {
"checksum": "sha1-3iwUZ6pWmh39TOjgeeMlH6sHtn0=",
"range": "bytes=695-1131"
},
"data": {
"checksum": "sha256-rRzqHMPqIOMZeG+ZFAFOw9O/MWV45LI0ujWc26YValc=",
"range": "bytes=1132-539441"
},
"name": "ca-certificates",
"signature": {
"checksum": "sha1-WyHPtMVIeSah9SHHgd8TIUS5f9c=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-20240315-r0.apk",
"version": "20240315-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"control": {
"checksum": "sha1-f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"range": "bytes=706-1103"
},
"data": {
"checksum": "sha256-ttIYvsu5Vp2YYKv/C7vK1hFUI8kNsOJxD65/SsOtWvQ=",
"range": "bytes=1104-2862070"
},
"name": "libunistring",
"signature": {
"checksum": "sha1-IwR2lnVv+Ixi8qtznw+ruuV9OVw=",
"range": "bytes=0-705"
},
"url": "https://packages.wolfi.dev/os/x86_64/libunistring-1.2-r0.apk",
"version": "1.2-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1tBy70+JqCVQbecHMDxN0U9PKn8k=",
"control": {
"checksum": "sha1-tBy70+JqCVQbecHMDxN0U9PKn8k=",
"range": "bytes=697-1102"
},
"data": {
"checksum": "sha256-xFjkADRrilqBaMgedKfRkaUGOqAlLDunZnmM/nggwDo=",
"range": "bytes=1103-411419"
},
"name": "libidn2",
"signature": {
"checksum": "sha1-AkpnAB73nCuJM4BJIXJsWn2/urk=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libidn2-2.3.7-r0.apk",
"version": "2.3.7-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"control": {
"checksum": "sha1-QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"range": "bytes=702-1082"
},
"data": {
"checksum": "sha256-cEuUD1tNXYeUHPC7dK9BSHOx8vt7IIRBGd181Sd0RXA=",
"range": "bytes=1083-114314"
},
"name": "libpsl",
"signature": {
"checksum": "sha1-H2Bp5J4UMCXPQlfvEiFxLXG5rEY=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libpsl-0.21.5-r0.apk",
"version": "0.21.5-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1LcDEPPjJrWwhueUvesRr4kLyGPI=",
"control": {
"checksum": "sha1-LcDEPPjJrWwhueUvesRr4kLyGPI=",
"range": "bytes=707-1052"
},
"data": {
"checksum": "sha256-xtIiQnSjJGdZnAzaBoJD6q3TbCpnAwTfD9SvbafkaP0=",
"range": "bytes=1053-174068"
},
"name": "libbrotlicommon1",
"signature": {
"checksum": "sha1-kcyKhs8jgdpGEEUhbyXHPJQpvyM=",
"range": "bytes=0-706"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlicommon1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q10jZlLouHAzMUvZYphGGNjOoZ1ug=",
"control": {
"checksum": "sha1-0jZlLouHAzMUvZYphGGNjOoZ1ug=",
"range": "bytes=701-1051"
},
"data": {
"checksum": "sha256-nx7lapEgf5fd4ZrtBxqXtAWE0tEVndBBEwXOUbhY2OA=",
"range": "bytes=1052-81979"
},
"name": "libbrotlidec1",
"signature": {
"checksum": "sha1-iUdAt3okR6P8rJ4sNv4yjC0I8Ys=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlidec1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"control": {
"checksum": "sha1-CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"range": "bytes=701-1140"
},
"data": {
"checksum": "sha256-2EP9UQKOVph+9hElnh20s8ViX126cAnPyNI+IF2pQ4Y=",
"range": "bytes=1141-838149"
},
"name": "libcurl-openssl4",
"signature": {
"checksum": "sha1-IxMuIpRYevSLukva0eWmB5RkhMY=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcurl-openssl4-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"control": {
"checksum": "sha1-DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"range": "bytes=700-1101"
},
"data": {
"checksum": "sha256-l1iebyEPmteOEBcPDwPzstpqs9SMvCn8PqlvRU3O7jk=",
"range": "bytes=1102-351141"
},
"name": "curl",
"signature": {
"checksum": "sha1-iVKgcLEjgrpj4c2TrRzHznPaWXA=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/curl-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Fpxq4IrJypqqHA9n5hsBr5JOAQk=",
"control": {
"checksum": "sha1-Fpxq4IrJypqqHA9n5hsBr5JOAQk=",
"range": "bytes=661-993"
},
"data": {
"checksum": "sha256-9dtEfq2bmhmQJXyknOKgp3lQi1xBgtN/BkVQmnDzvlU=",
"range": "bytes=994-34766569"
},
"name": "docker-client",
"signature": {
"checksum": "sha1-i6Xxi+Xady8AAnFzQriWZttv3p8=",
"range": "bytes=0-660"
},
"url": "https://packages.sgdev.org/main/x86_64/docker-client-24.0.0-r2.apk",
"version": "24.0.0-r2"
},
{
"architecture": "x86_64",
"checksum": "Q1r9l7XC4n7t38cZYhibKYyXxpDTU=",
"control": {
"checksum": "sha1-r9l7XC4n7t38cZYhibKYyXxpDTU=",
"range": "bytes=702-1070"
},
"data": {
"checksum": "sha256-tYD/9Onzbw6Cn6ROse5xaEehepLIc3N/dIi3TU/PJ4E=",
"range": "bytes=1071-222096"
},
"name": "libexpat1",
"signature": {
"checksum": "sha1-h8N1XrbmveWwCaK7vRhvrjyGkz0=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libexpat1-2.6.2-r0.apk",
"version": "2.6.2-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1iwHESk2qYYU1tftUjYzmw6rsfIc=",
"control": {
"checksum": "sha1-iwHESk2qYYU1tftUjYzmw6rsfIc=",
"range": "bytes=696-1077"
},
"data": {
"checksum": "sha256-LDQ8s4E9uSiwlO7UiwdCydIZeRJ0IUMEVZ0mmipnY4I=",
"range": "bytes=1078-697889"
},
"name": "libpcre2-8-0",
"signature": {
"checksum": "sha1-BHs6B0daHvcBtPYWdsvCMLBnLHY=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/libpcre2-8-0-10.43-r0.apk",
"version": "10.43-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Orbcj0KYG7fCPz1GsPei3n1sY88=",
"control": {
"checksum": "sha1-Orbcj0KYG7fCPz1GsPei3n1sY88=",
"range": "bytes=700-1135"
},
"data": {
"checksum": "sha256-jFoDHbGtFJRr7sf+/2PlhKbw5PJBX/Ww6/LKIvTY0O0=",
"range": "bytes=1136-16782419"
},
"name": "git",
"signature": {
"checksum": "sha1-pz9/c6n1awUybxiKxsR1jYNtYZY=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/git-2.44.0-r0.apk",
"version": "2.44.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"control": {
"checksum": "sha1-Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"range": "bytes=660-1019"
},
"data": {
"checksum": "sha256-Acu4swCJY4zVqLGpjN7PJzQ6juyZajEZ/xlJeahCk4k=",
"range": "bytes=1020-173298"
},
"name": "mailcap",
"signature": {
"checksum": "sha1-fFIHN05okWjQyXdVrXiU2HpqEC4=",
"range": "bytes=0-659"
},
"url": "https://packages.wolfi.dev/os/x86_64/mailcap-2.1.54-r0.apk",
"version": "2.1.54-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1m7SsrH+XnrPIapzhnK0vkoxMen4=",
"control": {
"checksum": "sha1-m7SsrH+XnrPIapzhnK0vkoxMen4=",
"range": "bytes=698-1077"
},
"data": {
"checksum": "sha256-0WaULqZyE0zNNC6D7YeaXVN4shAVEouyqAEiRlB09C0=",
"range": "bytes=1078-54479"
},
"name": "tini",
"signature": {
"checksum": "sha1-eomfhWCyCB1OA/2DHboLUzXunvA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/tini-0.19.0-r3.apk",
"version": "0.19.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q1lvoD8CoCRqulbibjC3gSGuEe8K0=",
"control": {
"checksum": "sha1-lvoD8CoCRqulbibjC3gSGuEe8K0=",
"range": "bytes=702-1035"
},
"data": {
"checksum": "sha256-YB3jK9thvtrl7FCbwBPhBgHnz6ncykVxex/dHC4wYc8=",
"range": "bytes=1036-3022935"
},
"name": "tzdata",
"signature": {
"checksum": "sha1-AJ7WqmxNNMiSUQ8WuwjXg5Y23Gw=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/tzdata-2024a-r0.apk",
"version": "2024a-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1JVK/s+yGDiDotAujuHcQwzrchvI=",
"control": {
"checksum": "sha1-JVK/s+yGDiDotAujuHcQwzrchvI=",
"range": "bytes=699-1099"
},
"data": {
"checksum": "sha256-6MWjAN767fVREf1xZ18eV4QLzKBUdZusnhj7ljPZuhU=",
"range": "bytes=1100-786256"
},
"name": "wget",
"signature": {
"checksum": "sha1-cJ/swsh0XVO9ISogqXDo8oBBG7M=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/wget-1.24.5-r0.apk",
"version": "1.24.5-r0"
}
],
"repositories": [
{
"architecture": "x86_64",
"name": "packages.wolfi.dev/os/x86_64",
"url": "https://packages.wolfi.dev/os/x86_64/APKINDEX.tar.gz"
},
{
"architecture": "x86_64",
"name": "@sourcegraph https://packages.sgdev.org/main/x86_64",
"url": "@sourcegraph https://packages.sgdev.org/main/x86_64/APKINDEX.tar.gz"
}
]
},
"version": "v1"
}

View File

@ -15,5 +15,3 @@ paths:
- path: /usr/local/bin
type: directory
permissions: 0o755
# MANUAL REBUILD: Wed Oct 11 09:59:22 BST 2023

1246
wolfi-images/gitserver.lock.json Executable file

File diff suppressed because it is too large Load Diff

View File

@ -26,5 +26,3 @@ paths:
permissions: 0o755
work-dir: /
# MANUAL REBUILD: Wed Oct 11 09:59:22 BST 2023

628
wolfi-images/grafana.lock.json Executable file
View File

@ -0,0 +1,628 @@
{
"configHash": "9ed4d915d1c5e54360e87305c3bab861102413e764f535d8b066632f7c98c195",
"contents": {
"keyring": [
{
"name": "packages.wolfi.dev/os/wolfi-signing.rsa.pub",
"url": "https://packages.wolfi.dev/os/wolfi-signing.rsa.pub"
},
{
"name": "packages.sgdev.org/sourcegraph-melange-prod.rsa.pub",
"url": "https://packages.sgdev.org/sourcegraph-melange-prod.rsa.pub"
},
{
"name": "packages.sgdev.org/chainguard/chainguard-enterprise.rsa.pub",
"url": "https://packages.sgdev.org/chainguard/chainguard-enterprise.rsa.pub"
}
],
"packages": [
{
"architecture": "x86_64",
"checksum": "Q13piSoRiT6p5eziGu2iPxSkXxf+g=",
"control": {
"checksum": "sha1-3piSoRiT6p5eziGu2iPxSkXxf+g=",
"range": "bytes=704-1039"
},
"data": {
"checksum": "sha256-+iLQJV5/mU/hTpwsy9zYBfzVIVkd8lXBBqMScHFhHfI=",
"range": "bytes=1040-87982"
},
"name": "openssl-config",
"signature": {
"checksum": "sha1-fsygjfZl7YLgdpBZ5OVKJG/N2HI=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/openssl-config-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"control": {
"checksum": "sha1-YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"range": "bytes=696-1032"
},
"data": {
"checksum": "sha256-5hhCQURRrKVfPk8TOZVxfjceIUkVE0fh3/vEJBk88Ps=",
"range": "bytes=1033-256258"
},
"name": "ca-certificates-bundle",
"signature": {
"checksum": "sha1-E1NIpx8yCH6x5GcSqB4MzKQxuq4=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240315-r0.apk",
"version": "20240315-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1OHhyuiUviNHTg939DA0lyeRee18=",
"control": {
"checksum": "sha1-OHhyuiUviNHTg939DA0lyeRee18=",
"range": "bytes=702-1052"
},
"data": {
"checksum": "sha256-om3EZzEM+3dD9a77sOB2uOuAKBlf7XoUW/ORnDHQvZY=",
"range": "bytes=1053-125427"
},
"name": "wolfi-baselayout",
"signature": {
"checksum": "sha1-1CcRiULOFhX8ldA/Ae2qCMUGNmQ=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/wolfi-baselayout-20230201-r7.apk",
"version": "20230201-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1DyZ5L88J9MmDMYgbsywXdJdnw04=",
"control": {
"checksum": "sha1-DyZ5L88J9MmDMYgbsywXdJdnw04=",
"range": "bytes=699-1107"
},
"data": {
"checksum": "sha256-3xIIHf7osttdb7FoJTbfURbo4YuaB3knm5Kd3B5p+dI=",
"range": "bytes=1108-267814"
},
"name": "ld-linux",
"signature": {
"checksum": "sha1-lxFSv68mPMJwO+PthEdXfKHuLWk=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"control": {
"checksum": "sha1-UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"range": "bytes=696-1051"
},
"data": {
"checksum": "sha256-NaRRsIIgVTbofef14Qsnf+rysYDJXOXPKgfj6bAhP94=",
"range": "bytes=1052-408274"
},
"name": "glibc-locale-posix",
"signature": {
"checksum": "sha1-Iug0EjR+0K/k6fl0wi0prJHKBBo=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"control": {
"checksum": "sha1-PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"range": "bytes=695-1321"
},
"data": {
"checksum": "sha256-D6XvEcPrHmlsiI6HbbE51xmiTM1c5y6DV4MrHrCVuNo=",
"range": "bytes=1322-5861480"
},
"name": "glibc",
"signature": {
"checksum": "sha1-ypPC9SJASGEATsvLoDuEEUobhAs=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1kERnIFBBwTWZsA+cmGLkIU75THk=",
"control": {
"checksum": "sha1-kERnIFBBwTWZsA+cmGLkIU75THk=",
"range": "bytes=694-1066"
},
"data": {
"checksum": "sha256-MB5ZoAsBJ0Osps0a1V0KsM/qQhfZQvYupElgoF1rNLE=",
"range": "bytes=1067-5895270"
},
"name": "libcrypto3",
"signature": {
"checksum": "sha1-vTJq+p2AjVQQjJ4gSkR9ySDQr3k=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypto3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1RFDJtvcstAQi4NjU00ApvNIvoEI=",
"control": {
"checksum": "sha1-RFDJtvcstAQi4NjU00ApvNIvoEI=",
"range": "bytes=694-1065"
},
"data": {
"checksum": "sha256-oocCJOj9IF7jv3Ov8bPbaAGfq6oaYXuPNnZW9DnOdnE=",
"range": "bytes=1066-1135402"
},
"name": "libssl3",
"signature": {
"checksum": "sha1-wJVFcqH/ewopq4lxwz8OYrZ9/Ws=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libssl3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1ybud27/W+hJ0asiUj3hfrXVjcMs=",
"control": {
"checksum": "sha1-ybud27/W+hJ0asiUj3hfrXVjcMs=",
"range": "bytes=698-1081"
},
"data": {
"checksum": "sha256-3uFtBCAT2Gu/AplcYbKYMCuMMC94JLJDNyoWnSMLqjc=",
"range": "bytes=1082-156680"
},
"name": "zlib",
"signature": {
"checksum": "sha1-JYfhgb71ZjFG0VIAKLwOQSlHmlg=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/zlib-1.3.1-r0.apk",
"version": "1.3.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1kJcZn1GeNl9Hx9WJsx8097omA9E=",
"control": {
"checksum": "sha1-kJcZn1GeNl9Hx9WJsx8097omA9E=",
"range": "bytes=699-1146"
},
"data": {
"checksum": "sha256-dNEqONQUz5ZO69N8dyStadLOcn7ANiD7GwD9RSpdiBM=",
"range": "bytes=1147-500313"
},
"name": "apk-tools",
"signature": {
"checksum": "sha1-36kJjPXcYmscESh01jnQ81iYWck=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/apk-tools-2.14.1-r0.apk",
"version": "2.14.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q11cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"control": {
"checksum": "sha1-1cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"range": "bytes=698-1093"
},
"data": {
"checksum": "sha256-t284K9/cZQaQMy4y4nYXMIjKUTbyaBa/QnUj0cYmTNk=",
"range": "bytes=1094-234977"
},
"name": "libxcrypt",
"signature": {
"checksum": "sha1-hhR4Puw7nMj2H9OzUMTKhK1/7N0=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxcrypt-4.4.36-r4.apk",
"version": "4.4.36-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"control": {
"checksum": "sha1-szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"range": "bytes=698-1101"
},
"data": {
"checksum": "sha256-hrc/6rvJR5nb97Gu5Hep8419+WyFmd7maV78ni7zQAc=",
"range": "bytes=1102-21604"
},
"name": "libcrypt1",
"signature": {
"checksum": "sha1-Jk/8hSLRyZ7scdep1XfbpKABePY=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q17FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"control": {
"checksum": "sha1-7FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"range": "bytes=701-1208"
},
"data": {
"checksum": "sha256-67DYE+o9zQIS2KUyXkBN8SAEkWVh2+isnGTn78VdLMg=",
"range": "bytes=1209-636015"
},
"name": "busybox",
"signature": {
"checksum": "sha1-70uMRez2BMN2clrT3wFBWsR5Gew=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/busybox-1.36.1-r7.apk",
"version": "1.36.1-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1qLbMbmgFOXNEspWQUcjRuuekaAE=",
"control": {
"checksum": "sha1-qLbMbmgFOXNEspWQUcjRuuekaAE=",
"range": "bytes=708-1033"
},
"data": {
"checksum": "sha256-UnfXdmp5QzhslWzz6ghNwqDnCLKHE/4963TnjO2/7hU=",
"range": "bytes=1034-61049958"
},
"name": "glibc-locale-en",
"signature": {
"checksum": "sha1-YyzlLTZZkVz2l55qSEMSqrF5wZQ=",
"range": "bytes=0-707"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-en-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1vGK7LVXTFpySCLnmZ09PiQSapoc=",
"control": {
"checksum": "sha1-vGK7LVXTFpySCLnmZ09PiQSapoc=",
"range": "bytes=710-1058"
},
"data": {
"checksum": "sha256-obSg0l6NaLMtseXGIxofGbZgWxDaKz5QBkxemgPSBzE=",
"range": "bytes=1059-64897"
},
"name": "grafana-7-dashboards",
"signature": {
"checksum": "sha1-vmSftbQH0TuRxgMzNG8vSr1P29E=",
"range": "bytes=0-709"
},
"url": "https://packages.sgdev.org/chainguard/x86_64/grafana-7-dashboards-7.5.28-r2.apk",
"version": "7.5.28-r2"
},
{
"architecture": "x86_64",
"checksum": "Q12i3gtvwY1tunkiCEGgVh7EOfMI4=",
"control": {
"checksum": "sha1-2i3gtvwY1tunkiCEGgVh7EOfMI4=",
"range": "bytes=703-1045"
},
"data": {
"checksum": "sha256-MLd3g7/9Y8+XLtivRoakVuwutv6r+P2bDmfS36Sk76I=",
"range": "bytes=1046-866769"
},
"name": "ncurses-terminfo-base",
"signature": {
"checksum": "sha1-fow8Z9Ev3c32CgB+VvEFPMUS6qU=",
"range": "bytes=0-702"
},
"url": "https://packages.wolfi.dev/os/x86_64/ncurses-terminfo-base-6.4_p20231125-r1.apk",
"version": "6.4_p20231125-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1cwMvEr4xpPkquMMoB4cwLzqcsXg=",
"control": {
"checksum": "sha1-cwMvEr4xpPkquMMoB4cwLzqcsXg=",
"range": "bytes=704-1157"
},
"data": {
"checksum": "sha256-0Ig0f/yBvmmwfqTYzvEVVa+qnDtuwTUvflUloKqn4NE=",
"range": "bytes=1158-1062497"
},
"name": "ncurses",
"signature": {
"checksum": "sha1-CINaK3vlxfBxqJv5TtxzC/MrB7g=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/ncurses-6.4_p20231125-r1.apk",
"version": "6.4_p20231125-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1rCafcQ7IynpQj60X+daVyjn0W14=",
"control": {
"checksum": "sha1-rCafcQ7IynpQj60X+daVyjn0W14=",
"range": "bytes=702-1265"
},
"data": {
"checksum": "sha256-rJP0/i6ZLdqfq2RtGXCVDZpuLpVpDafoKAz79+rnDTw=",
"range": "bytes=1266-2075835"
},
"name": "bash",
"signature": {
"checksum": "sha1-lHwzJAuRM+tLR42naP59XMspXvw=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/bash-5.2.21-r1.apk",
"version": "5.2.21-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1FtO8XMIqE3wY/oefpanWwJTmODk=",
"control": {
"checksum": "sha1-FtO8XMIqE3wY/oefpanWwJTmODk=",
"range": "bytes=711-1120"
},
"data": {
"checksum": "sha256-+OLa3F6Z8y+7p9B59Ype1snsuC5C4XOQsadNbxEnolI=",
"range": "bytes=1121-185490233"
},
"name": "grafana-7",
"signature": {
"checksum": "sha1-PoWI/MnSIe+4CrNBog8vqSfo7SA=",
"range": "bytes=0-710"
},
"url": "https://packages.sgdev.org/chainguard/x86_64/grafana-7-7.5.28-r2.apk",
"version": "7.5.28-r2"
},
{
"architecture": "x86_64",
"checksum": "Q1M+CfES+G7micWuVpGjyxcTOj9zQ=",
"control": {
"checksum": "sha1-M+CfES+G7micWuVpGjyxcTOj9zQ=",
"range": "bytes=702-1120"
},
"data": {
"checksum": "sha256-UqwHAn95sL7AsIRMN0DM1TtSJ2Q5KD1WN4+uU8+Knqg=",
"range": "bytes=1121-52564"
},
"name": "libcom_err",
"signature": {
"checksum": "sha1-qciIi1MZRLclhn8K+GnrOJlNNfE=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcom_err-1.47.0-r1.apk",
"version": "1.47.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1N7R5wFlShxyrGXH9RPz4Up6CgdM=",
"control": {
"checksum": "sha1-N7R5wFlShxyrGXH9RPz4Up6CgdM=",
"range": "bytes=701-1099"
},
"data": {
"checksum": "sha256-9mTpyi5nmGDq+/y+9yGrKxFeL1bq0i0hbFYxOfdfBwU=",
"range": "bytes=1100-614786"
},
"name": "e2fsprogs-libs",
"signature": {
"checksum": "sha1-NglT2oKANljAaZksztl7ABbaia8=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/e2fsprogs-libs-1.47.0-r1.apk",
"version": "1.47.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q135v8eEv8ZI/s/HXKkE96INoEoJk=",
"control": {
"checksum": "sha1-35v8eEv8ZI/s/HXKkE96INoEoJk=",
"range": "bytes=704-1040"
},
"data": {
"checksum": "sha256-3y4Tb3jy8M/ZXhnY6jxwj2YQFhdjLr/kjXhqJX7I+is=",
"range": "bytes=1041-27155"
},
"name": "krb5-conf",
"signature": {
"checksum": "sha1-WWjewHF5gekYrUPqdUHQEPIc97M=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-conf-1.0-r1.apk",
"version": "1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1TAnNLCVTaCylmbN84TlliyM47qM=",
"control": {
"checksum": "sha1-TAnNLCVTaCylmbN84TlliyM47qM=",
"range": "bytes=704-1069"
},
"data": {
"checksum": "sha256-+6lzaltti6IVf7RNynwcL9LmP9cJKMOjONPFUhHtnsA=",
"range": "bytes=1070-57492"
},
"name": "keyutils-libs",
"signature": {
"checksum": "sha1-MY+r6+HKyYcrgJtVqyG50KdP+QY=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/keyutils-libs-1.6.3-r1.apk",
"version": "1.6.3-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"control": {
"checksum": "sha1-baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"range": "bytes=700-1058"
},
"data": {
"checksum": "sha256-9BtoieN8gK8o4nzCDUyWkp6RmEsXrOwdu/XeTdZtDSE=",
"range": "bytes=1059-61938"
},
"name": "libverto",
"signature": {
"checksum": "sha1-TVkKg7JApxa7nvaj9DNvOsTv3Io=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/libverto-0.3.2-r1.apk",
"version": "0.3.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"control": {
"checksum": "sha1-myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"range": "bytes=698-1216"
},
"data": {
"checksum": "sha256-elcsQDiEgNifO11g4MoJLGo5XJu8wQZaytjIKYxzVjw=",
"range": "bytes=1217-2564165"
},
"name": "krb5-libs",
"signature": {
"checksum": "sha1-NdbRDYVgwMQYQQrqt9GSGuBkjuA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-libs-1.21.2-r1.apk",
"version": "1.21.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1kim8t2666WMTdIWuBp8IhI7Enag=",
"control": {
"checksum": "sha1-kim8t2666WMTdIWuBp8IhI7Enag=",
"range": "bytes=702-1230"
},
"data": {
"checksum": "sha256-aIv0s0fPII+W1UmAEEfJpyW+j/yBCBEEvy9hDGwkn4s=",
"range": "bytes=1231-482686"
},
"name": "krb5",
"signature": {
"checksum": "sha1-AS4UhrBHhlGa4p0uGQgh/5g9m3w=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-1.21.2-r1.apk",
"version": "1.21.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1fQS4XOXR7ZhYMANSraH5kiWpV5o=",
"control": {
"checksum": "sha1-fQS4XOXR7ZhYMANSraH5kiWpV5o=",
"range": "bytes=699-1122"
},
"data": {
"checksum": "sha256-AMxb/btGoY41SdVV4N/nRd19ZeDZhFnLQ2qvkJAFOFc=",
"range": "bytes=1123-262587"
},
"name": "libtirpc",
"signature": {
"checksum": "sha1-lrHLJrNPGaARMTM5WuNyZ/wMtcI=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/libtirpc-1.3.4-r1.apk",
"version": "1.3.4-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1fJuF7kfC+xFRu73rvN7QG2tzqJY=",
"control": {
"checksum": "sha1-fJuF7kfC+xFRu73rvN7QG2tzqJY=",
"range": "bytes=696-1033"
},
"data": {
"checksum": "sha256-xSFDOX5PWn9XHbtwTpfcVOEqC67v3ECg73tBq42/RjA=",
"range": "bytes=1034-5404906"
},
"name": "ncurses-terminfo",
"signature": {
"checksum": "sha1-SV7VC4/mxraRqxWcVuBsjTnVkIk=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/ncurses-terminfo-6.4_p20231125-r1.apk",
"version": "6.4_p20231125-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1wfTTH2grvHJI3HouslTTa5skj/g=",
"control": {
"checksum": "sha1-wfTTH2grvHJI3HouslTTa5skj/g=",
"range": "bytes=698-1062"
},
"data": {
"checksum": "sha256-/3nmDcWbj5pEWKxz2libZO1juTaBHu78dBNCFmUGIqg=",
"range": "bytes=1063-183006"
},
"name": "openssl-provider-legacy",
"signature": {
"checksum": "sha1-rnnESs7/5E/vOGbtoDN8JCcHLDM=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/openssl-provider-legacy-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Q/lziOVin9xdUz5LZuzGMQhBbE0=",
"control": {
"checksum": "sha1-Q/lziOVin9xdUz5LZuzGMQhBbE0=",
"range": "bytes=696-1107"
},
"data": {
"checksum": "sha256-u6gHnegwEfQEMP30jh6Sla9MvxglhjPIkRCxWsuC39Y=",
"range": "bytes=1108-1205858"
},
"name": "openssl",
"signature": {
"checksum": "sha1-m04AMEimebqnPL4bopZWPldcuTg=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/openssl-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1lvoD8CoCRqulbibjC3gSGuEe8K0=",
"control": {
"checksum": "sha1-lvoD8CoCRqulbibjC3gSGuEe8K0=",
"range": "bytes=702-1035"
},
"data": {
"checksum": "sha256-YB3jK9thvtrl7FCbwBPhBgHnz6ncykVxex/dHC4wYc8=",
"range": "bytes=1036-3022935"
},
"name": "tzdata",
"signature": {
"checksum": "sha1-AJ7WqmxNNMiSUQ8WuwjXg5Y23Gw=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/tzdata-2024a-r0.apk",
"version": "2024a-r0"
}
],
"repositories": [
{
"architecture": "x86_64",
"name": "packages.wolfi.dev/os/x86_64",
"url": "https://packages.wolfi.dev/os/x86_64/APKINDEX.tar.gz"
},
{
"architecture": "x86_64",
"name": "@sourcegraph https://packages.sgdev.org/main/x86_64",
"url": "@sourcegraph https://packages.sgdev.org/main/x86_64/APKINDEX.tar.gz"
},
{
"architecture": "x86_64",
"name": "@chainguard https://packages.sgdev.org/chainguard/x86_64",
"url": "@chainguard https://packages.sgdev.org/chainguard/x86_64/APKINDEX.tar.gz"
}
]
},
"version": "v1"
}

View File

@ -0,0 +1,847 @@
{
"configHash": "02ff3caa1df915e8be74b3621af75f737e2087797c4b6e656125f17806ed417d",
"contents": {
"keyring": [
{
"name": "packages.wolfi.dev/os/wolfi-signing.rsa.pub",
"url": "https://packages.wolfi.dev/os/wolfi-signing.rsa.pub"
},
{
"name": "packages.sgdev.org/sourcegraph-melange-prod.rsa.pub",
"url": "https://packages.sgdev.org/sourcegraph-melange-prod.rsa.pub"
}
],
"packages": [
{
"architecture": "x86_64",
"checksum": "Q1YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"control": {
"checksum": "sha1-YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"range": "bytes=696-1032"
},
"data": {
"checksum": "sha256-5hhCQURRrKVfPk8TOZVxfjceIUkVE0fh3/vEJBk88Ps=",
"range": "bytes=1033-256258"
},
"name": "ca-certificates-bundle",
"signature": {
"checksum": "sha1-E1NIpx8yCH6x5GcSqB4MzKQxuq4=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240315-r0.apk",
"version": "20240315-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1OHhyuiUviNHTg939DA0lyeRee18=",
"control": {
"checksum": "sha1-OHhyuiUviNHTg939DA0lyeRee18=",
"range": "bytes=702-1052"
},
"data": {
"checksum": "sha256-om3EZzEM+3dD9a77sOB2uOuAKBlf7XoUW/ORnDHQvZY=",
"range": "bytes=1053-125427"
},
"name": "wolfi-baselayout",
"signature": {
"checksum": "sha1-1CcRiULOFhX8ldA/Ae2qCMUGNmQ=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/wolfi-baselayout-20230201-r7.apk",
"version": "20230201-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1DyZ5L88J9MmDMYgbsywXdJdnw04=",
"control": {
"checksum": "sha1-DyZ5L88J9MmDMYgbsywXdJdnw04=",
"range": "bytes=699-1107"
},
"data": {
"checksum": "sha256-3xIIHf7osttdb7FoJTbfURbo4YuaB3knm5Kd3B5p+dI=",
"range": "bytes=1108-267814"
},
"name": "ld-linux",
"signature": {
"checksum": "sha1-lxFSv68mPMJwO+PthEdXfKHuLWk=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"control": {
"checksum": "sha1-UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"range": "bytes=696-1051"
},
"data": {
"checksum": "sha256-NaRRsIIgVTbofef14Qsnf+rysYDJXOXPKgfj6bAhP94=",
"range": "bytes=1052-408274"
},
"name": "glibc-locale-posix",
"signature": {
"checksum": "sha1-Iug0EjR+0K/k6fl0wi0prJHKBBo=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"control": {
"checksum": "sha1-PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"range": "bytes=695-1321"
},
"data": {
"checksum": "sha256-D6XvEcPrHmlsiI6HbbE51xmiTM1c5y6DV4MrHrCVuNo=",
"range": "bytes=1322-5861480"
},
"name": "glibc",
"signature": {
"checksum": "sha1-ypPC9SJASGEATsvLoDuEEUobhAs=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"control": {
"checksum": "sha1-mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"range": "bytes=704-1079"
},
"data": {
"checksum": "sha256-xE4spLqr7qIgImPfMC1kMY1a7Xu7xu1/eLkBMgOzSSc=",
"range": "bytes=1080-77936"
},
"name": "protobuf-c",
"signature": {
"checksum": "sha1-NGL0ELlBK8mhhAzuOkm17d2LbRo=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/protobuf-c-1.5.0-r3.apk",
"version": "1.5.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q135v8eEv8ZI/s/HXKkE96INoEoJk=",
"control": {
"checksum": "sha1-35v8eEv8ZI/s/HXKkE96INoEoJk=",
"range": "bytes=704-1040"
},
"data": {
"checksum": "sha256-3y4Tb3jy8M/ZXhnY6jxwj2YQFhdjLr/kjXhqJX7I+is=",
"range": "bytes=1041-27155"
},
"name": "krb5-conf",
"signature": {
"checksum": "sha1-WWjewHF5gekYrUPqdUHQEPIc97M=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-conf-1.0-r1.apk",
"version": "1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1TAnNLCVTaCylmbN84TlliyM47qM=",
"control": {
"checksum": "sha1-TAnNLCVTaCylmbN84TlliyM47qM=",
"range": "bytes=704-1069"
},
"data": {
"checksum": "sha256-+6lzaltti6IVf7RNynwcL9LmP9cJKMOjONPFUhHtnsA=",
"range": "bytes=1070-57492"
},
"name": "keyutils-libs",
"signature": {
"checksum": "sha1-MY+r6+HKyYcrgJtVqyG50KdP+QY=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/keyutils-libs-1.6.3-r1.apk",
"version": "1.6.3-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"control": {
"checksum": "sha1-baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"range": "bytes=700-1058"
},
"data": {
"checksum": "sha256-9BtoieN8gK8o4nzCDUyWkp6RmEsXrOwdu/XeTdZtDSE=",
"range": "bytes=1059-61938"
},
"name": "libverto",
"signature": {
"checksum": "sha1-TVkKg7JApxa7nvaj9DNvOsTv3Io=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/libverto-0.3.2-r1.apk",
"version": "0.3.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1M+CfES+G7micWuVpGjyxcTOj9zQ=",
"control": {
"checksum": "sha1-M+CfES+G7micWuVpGjyxcTOj9zQ=",
"range": "bytes=702-1120"
},
"data": {
"checksum": "sha256-UqwHAn95sL7AsIRMN0DM1TtSJ2Q5KD1WN4+uU8+Knqg=",
"range": "bytes=1121-52564"
},
"name": "libcom_err",
"signature": {
"checksum": "sha1-qciIi1MZRLclhn8K+GnrOJlNNfE=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcom_err-1.47.0-r1.apk",
"version": "1.47.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q13piSoRiT6p5eziGu2iPxSkXxf+g=",
"control": {
"checksum": "sha1-3piSoRiT6p5eziGu2iPxSkXxf+g=",
"range": "bytes=704-1039"
},
"data": {
"checksum": "sha256-+iLQJV5/mU/hTpwsy9zYBfzVIVkd8lXBBqMScHFhHfI=",
"range": "bytes=1040-87982"
},
"name": "openssl-config",
"signature": {
"checksum": "sha1-fsygjfZl7YLgdpBZ5OVKJG/N2HI=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/openssl-config-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1kERnIFBBwTWZsA+cmGLkIU75THk=",
"control": {
"checksum": "sha1-kERnIFBBwTWZsA+cmGLkIU75THk=",
"range": "bytes=694-1066"
},
"data": {
"checksum": "sha256-MB5ZoAsBJ0Osps0a1V0KsM/qQhfZQvYupElgoF1rNLE=",
"range": "bytes=1067-5895270"
},
"name": "libcrypto3",
"signature": {
"checksum": "sha1-vTJq+p2AjVQQjJ4gSkR9ySDQr3k=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypto3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1RFDJtvcstAQi4NjU00ApvNIvoEI=",
"control": {
"checksum": "sha1-RFDJtvcstAQi4NjU00ApvNIvoEI=",
"range": "bytes=694-1065"
},
"data": {
"checksum": "sha256-oocCJOj9IF7jv3Ov8bPbaAGfq6oaYXuPNnZW9DnOdnE=",
"range": "bytes=1066-1135402"
},
"name": "libssl3",
"signature": {
"checksum": "sha1-wJVFcqH/ewopq4lxwz8OYrZ9/Ws=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libssl3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"control": {
"checksum": "sha1-myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"range": "bytes=698-1216"
},
"data": {
"checksum": "sha256-elcsQDiEgNifO11g4MoJLGo5XJu8wQZaytjIKYxzVjw=",
"range": "bytes=1217-2564165"
},
"name": "krb5-libs",
"signature": {
"checksum": "sha1-NdbRDYVgwMQYQQrqt9GSGuBkjuA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-libs-1.21.2-r1.apk",
"version": "1.21.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"control": {
"checksum": "sha1-BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"range": "bytes=699-1059"
},
"data": {
"checksum": "sha256-Rp339LV5T4+zr98USK12eoyKGF84NviKlq3jh1AvbQQ=",
"range": "bytes=1060-96440"
},
"name": "fstrm",
"signature": {
"checksum": "sha1-tOY0x5olyX6V9uRtlgxtf4WEhR0=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/fstrm-0.6.1-r1.apk",
"version": "0.6.1-r1"
},
{
"architecture": "x86_64",
"checksum": "Q126C/3voUst+sFakQOGVOKucs6v8=",
"control": {
"checksum": "sha1-26C/3voUst+sFakQOGVOKucs6v8=",
"range": "bytes=698-1076"
},
"data": {
"checksum": "sha256-S2VfC729Glys7iRmR7sX4RoS4LLyNi9KmSzDc8wkKrQ=",
"range": "bytes=1077-277291"
},
"name": "libuv",
"signature": {
"checksum": "sha1-23pSGkhyhlBtbVxNtDXYlWnt+vk=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libuv-1.48.0-r0.apk",
"version": "1.48.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1ybud27/W+hJ0asiUj3hfrXVjcMs=",
"control": {
"checksum": "sha1-ybud27/W+hJ0asiUj3hfrXVjcMs=",
"range": "bytes=698-1081"
},
"data": {
"checksum": "sha256-3uFtBCAT2Gu/AplcYbKYMCuMMC94JLJDNyoWnSMLqjc=",
"range": "bytes=1082-156680"
},
"name": "zlib",
"signature": {
"checksum": "sha1-JYfhgb71ZjFG0VIAKLwOQSlHmlg=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/zlib-1.3.1-r0.apk",
"version": "1.3.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"control": {
"checksum": "sha1-txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"range": "bytes=703-1071"
},
"data": {
"checksum": "sha256-QgGnbFCQGaCUjwfFVcF2eOXDjZHaJjntdJlM1thwxd0=",
"range": "bytes=1072-252873"
},
"name": "libnghttp2-14",
"signature": {
"checksum": "sha1-VWNh1CR9wcBEPwOH88Qr6n7OR08=",
"range": "bytes=0-702"
},
"url": "https://packages.wolfi.dev/os/x86_64/libnghttp2-14-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"control": {
"checksum": "sha1-cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"range": "bytes=697-1073"
},
"data": {
"checksum": "sha256-7m+RnrAOS8ZCnFW/j2P2NcQJxOzfwSjOLYhEZXIwBG8=",
"range": "bytes=1074-114096"
},
"name": "libev",
"signature": {
"checksum": "sha1-PUsxiEtEuEoDpgKP2L36G/X55s0=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libev-4.33-r4.apk",
"version": "4.33-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"control": {
"checksum": "sha1-jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"range": "bytes=708-1084"
},
"data": {
"checksum": "sha256-v6jAIoRu7n3hQJ8nwWCLtvRsszuMGCAEyZm4zUF1cVI=",
"range": "bytes=1085-185893"
},
"name": "libgcc",
"signature": {
"checksum": "sha1-3fVn7jRkfOtxSgpmdey4iJJqQPM=",
"range": "bytes=0-707"
},
"url": "https://packages.wolfi.dev/os/x86_64/libgcc-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1NsUsznaiP7XyU6U/5pssXQgGJgU=",
"control": {
"checksum": "sha1-NsUsznaiP7XyU6U/5pssXQgGJgU=",
"range": "bytes=701-1093"
},
"data": {
"checksum": "sha256-0XrQ++geRWYRUazF23zdsuGVLFkiIDM1FKmAbbz9ojQ=",
"range": "bytes=1094-3156830"
},
"name": "libstdc++",
"signature": {
"checksum": "sha1-Zu2LUNkKQt3BnFU9+4PX0ud8D6Q=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libstdc++-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1EHyaNLx1UadaqJXEC86gtIjZGMM=",
"control": {
"checksum": "sha1-EHyaNLx1UadaqJXEC86gtIjZGMM=",
"range": "bytes=696-1076"
},
"data": {
"checksum": "sha256-+ValBcpIsLeYUFo73SZrUM2vpLGefts7Qx95EPMATaY=",
"range": "bytes=1077-232308"
},
"name": "c-ares",
"signature": {
"checksum": "sha1-OtwgYMiySwl+l6divnnSgQu+QUg=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/c-ares-1.28.1-r0.apk",
"version": "1.28.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"control": {
"checksum": "sha1-YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"range": "bytes=701-1168"
},
"data": {
"checksum": "sha256-KnMN4TtaDNZqReNINaTivjzUoQigGvtRZgVEqc1EDHo=",
"range": "bytes=1169-2555088"
},
"name": "nghttp2",
"signature": {
"checksum": "sha1-MWKiH9LAxjnWqAm536DCFrsZXCg=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"control": {
"checksum": "sha1-D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"range": "bytes=700-1067"
},
"data": {
"checksum": "sha256-fKV2YLH6EP/NFtRSErdaCwZX+Mg6KJrfmt1VpRWeKis=",
"range": "bytes=1068-634389"
},
"name": "nghttp2-dev",
"signature": {
"checksum": "sha1-ZRWYUK14qaTBE3NC7OOWumdkSyY=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-dev-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1sJOz3InYXKj1qNN3oPm3pb30VO0=",
"control": {
"checksum": "sha1-sJOz3InYXKj1qNN3oPm3pb30VO0=",
"range": "bytes=697-1149"
},
"data": {
"checksum": "sha256-fahwYvY6Lv9AhtEHBsSaoFAoKFWlvbbVC8jYGuRmTcg=",
"range": "bytes=1150-2380016"
},
"name": "xz",
"signature": {
"checksum": "sha1-aQxFIS7BG8u/jlY2JU8oQIEloYw=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/xz-5.4.6-r0.apk",
"version": "5.4.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"control": {
"checksum": "sha1-aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"range": "bytes=699-1084"
},
"data": {
"checksum": "sha256-Wc0u/JyHwxC7ubVFz4UlXEc5URwWiBZm4jNKqVv9LF0=",
"range": "bytes=1085-4698210"
},
"name": "libxml2",
"signature": {
"checksum": "sha1-v7pbNfh/TdC3LzRewdC3GeA9rec=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxml2-2.12.6-r0.apk",
"version": "2.12.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1l9z4OGVfdVISNbyGQdXlz2GPchM=",
"control": {
"checksum": "sha1-l9z4OGVfdVISNbyGQdXlz2GPchM=",
"range": "bytes=695-1222"
},
"data": {
"checksum": "sha256-0Z+mq/0A1P+F5KIZKnsYpg8Eqb3GDRT7VDrZlTEg+4Y=",
"range": "bytes=1223-3863194"
},
"name": "bind-libs",
"signature": {
"checksum": "sha1-YX2+1oZh/hXHVjZriSnJZQzpifg=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-libs-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"control": {
"checksum": "sha1-Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"range": "bytes=705-1217"
},
"data": {
"checksum": "sha256-/0zOh1KQW58NOuJgauDOdqJA4G4g0p6jPUOP45HN/f8=",
"range": "bytes=1218-892798"
},
"name": "bind-tools",
"signature": {
"checksum": "sha1-3GgaViNXeX4dd75pxgwR8yYgov0=",
"range": "bytes=0-704"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-tools-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q11cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"control": {
"checksum": "sha1-1cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"range": "bytes=698-1093"
},
"data": {
"checksum": "sha256-t284K9/cZQaQMy4y4nYXMIjKUTbyaBa/QnUj0cYmTNk=",
"range": "bytes=1094-234977"
},
"name": "libxcrypt",
"signature": {
"checksum": "sha1-hhR4Puw7nMj2H9OzUMTKhK1/7N0=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxcrypt-4.4.36-r4.apk",
"version": "4.4.36-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"control": {
"checksum": "sha1-szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"range": "bytes=698-1101"
},
"data": {
"checksum": "sha256-hrc/6rvJR5nb97Gu5Hep8419+WyFmd7maV78ni7zQAc=",
"range": "bytes=1102-21604"
},
"name": "libcrypt1",
"signature": {
"checksum": "sha1-Jk/8hSLRyZ7scdep1XfbpKABePY=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q17FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"control": {
"checksum": "sha1-7FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"range": "bytes=701-1208"
},
"data": {
"checksum": "sha256-67DYE+o9zQIS2KUyXkBN8SAEkWVh2+isnGTn78VdLMg=",
"range": "bytes=1209-636015"
},
"name": "busybox",
"signature": {
"checksum": "sha1-70uMRez2BMN2clrT3wFBWsR5Gew=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/busybox-1.36.1-r7.apk",
"version": "1.36.1-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"control": {
"checksum": "sha1-f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"range": "bytes=706-1103"
},
"data": {
"checksum": "sha256-ttIYvsu5Vp2YYKv/C7vK1hFUI8kNsOJxD65/SsOtWvQ=",
"range": "bytes=1104-2862070"
},
"name": "libunistring",
"signature": {
"checksum": "sha1-IwR2lnVv+Ixi8qtznw+ruuV9OVw=",
"range": "bytes=0-705"
},
"url": "https://packages.wolfi.dev/os/x86_64/libunistring-1.2-r0.apk",
"version": "1.2-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1tBy70+JqCVQbecHMDxN0U9PKn8k=",
"control": {
"checksum": "sha1-tBy70+JqCVQbecHMDxN0U9PKn8k=",
"range": "bytes=697-1102"
},
"data": {
"checksum": "sha256-xFjkADRrilqBaMgedKfRkaUGOqAlLDunZnmM/nggwDo=",
"range": "bytes=1103-411419"
},
"name": "libidn2",
"signature": {
"checksum": "sha1-AkpnAB73nCuJM4BJIXJsWn2/urk=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libidn2-2.3.7-r0.apk",
"version": "2.3.7-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"control": {
"checksum": "sha1-QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"range": "bytes=702-1082"
},
"data": {
"checksum": "sha256-cEuUD1tNXYeUHPC7dK9BSHOx8vt7IIRBGd181Sd0RXA=",
"range": "bytes=1083-114314"
},
"name": "libpsl",
"signature": {
"checksum": "sha1-H2Bp5J4UMCXPQlfvEiFxLXG5rEY=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libpsl-0.21.5-r0.apk",
"version": "0.21.5-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1LcDEPPjJrWwhueUvesRr4kLyGPI=",
"control": {
"checksum": "sha1-LcDEPPjJrWwhueUvesRr4kLyGPI=",
"range": "bytes=707-1052"
},
"data": {
"checksum": "sha256-xtIiQnSjJGdZnAzaBoJD6q3TbCpnAwTfD9SvbafkaP0=",
"range": "bytes=1053-174068"
},
"name": "libbrotlicommon1",
"signature": {
"checksum": "sha1-kcyKhs8jgdpGEEUhbyXHPJQpvyM=",
"range": "bytes=0-706"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlicommon1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q10jZlLouHAzMUvZYphGGNjOoZ1ug=",
"control": {
"checksum": "sha1-0jZlLouHAzMUvZYphGGNjOoZ1ug=",
"range": "bytes=701-1051"
},
"data": {
"checksum": "sha256-nx7lapEgf5fd4ZrtBxqXtAWE0tEVndBBEwXOUbhY2OA=",
"range": "bytes=1052-81979"
},
"name": "libbrotlidec1",
"signature": {
"checksum": "sha1-iUdAt3okR6P8rJ4sNv4yjC0I8Ys=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlidec1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"control": {
"checksum": "sha1-CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"range": "bytes=701-1140"
},
"data": {
"checksum": "sha256-2EP9UQKOVph+9hElnh20s8ViX126cAnPyNI+IF2pQ4Y=",
"range": "bytes=1141-838149"
},
"name": "libcurl-openssl4",
"signature": {
"checksum": "sha1-IxMuIpRYevSLukva0eWmB5RkhMY=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcurl-openssl4-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"control": {
"checksum": "sha1-DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"range": "bytes=700-1101"
},
"data": {
"checksum": "sha256-l1iebyEPmteOEBcPDwPzstpqs9SMvCn8PqlvRU3O7jk=",
"range": "bytes=1102-351141"
},
"name": "curl",
"signature": {
"checksum": "sha1-iVKgcLEjgrpj4c2TrRzHznPaWXA=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/curl-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1CXp7MOosK1ntfixL7EcDW9hioZo=",
"control": {
"checksum": "sha1-CXp7MOosK1ntfixL7EcDW9hioZo=",
"range": "bytes=660-944"
},
"data": {
"checksum": "sha256-PBf33gMynovN3wgb4vN4iMdJZAy6W4mDj7JCv9B7nCg=",
"range": "bytes=945-24974840"
},
"name": "jaeger-agent",
"signature": {
"checksum": "sha1-LLGSgX8QutjbVv7CLTYAeFpYQl0=",
"range": "bytes=0-659"
},
"url": "https://packages.sgdev.org/main/x86_64/jaeger-agent-1.45.0-r6.apk",
"version": "1.45.0-r6"
},
{
"architecture": "x86_64",
"checksum": "Q1Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"control": {
"checksum": "sha1-Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"range": "bytes=660-1019"
},
"data": {
"checksum": "sha256-Acu4swCJY4zVqLGpjN7PJzQ6juyZajEZ/xlJeahCk4k=",
"range": "bytes=1020-173298"
},
"name": "mailcap",
"signature": {
"checksum": "sha1-fFIHN05okWjQyXdVrXiU2HpqEC4=",
"range": "bytes=0-659"
},
"url": "https://packages.wolfi.dev/os/x86_64/mailcap-2.1.54-r0.apk",
"version": "2.1.54-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1m7SsrH+XnrPIapzhnK0vkoxMen4=",
"control": {
"checksum": "sha1-m7SsrH+XnrPIapzhnK0vkoxMen4=",
"range": "bytes=698-1077"
},
"data": {
"checksum": "sha256-0WaULqZyE0zNNC6D7YeaXVN4shAVEouyqAEiRlB09C0=",
"range": "bytes=1078-54479"
},
"name": "tini",
"signature": {
"checksum": "sha1-eomfhWCyCB1OA/2DHboLUzXunvA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/tini-0.19.0-r3.apk",
"version": "0.19.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q1lvoD8CoCRqulbibjC3gSGuEe8K0=",
"control": {
"checksum": "sha1-lvoD8CoCRqulbibjC3gSGuEe8K0=",
"range": "bytes=702-1035"
},
"data": {
"checksum": "sha256-YB3jK9thvtrl7FCbwBPhBgHnz6ncykVxex/dHC4wYc8=",
"range": "bytes=1036-3022935"
},
"name": "tzdata",
"signature": {
"checksum": "sha1-AJ7WqmxNNMiSUQ8WuwjXg5Y23Gw=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/tzdata-2024a-r0.apk",
"version": "2024a-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1JVK/s+yGDiDotAujuHcQwzrchvI=",
"control": {
"checksum": "sha1-JVK/s+yGDiDotAujuHcQwzrchvI=",
"range": "bytes=699-1099"
},
"data": {
"checksum": "sha256-6MWjAN767fVREf1xZ18eV4QLzKBUdZusnhj7ljPZuhU=",
"range": "bytes=1100-786256"
},
"name": "wget",
"signature": {
"checksum": "sha1-cJ/swsh0XVO9ISogqXDo8oBBG7M=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/wget-1.24.5-r0.apk",
"version": "1.24.5-r0"
}
],
"repositories": [
{
"architecture": "x86_64",
"name": "packages.wolfi.dev/os/x86_64",
"url": "https://packages.wolfi.dev/os/x86_64/APKINDEX.tar.gz"
},
{
"architecture": "x86_64",
"name": "@sourcegraph https://packages.sgdev.org/main/x86_64",
"url": "@sourcegraph https://packages.sgdev.org/main/x86_64/APKINDEX.tar.gz"
}
]
},
"version": "v1"
}

View File

@ -19,5 +19,3 @@ accounts:
- username: jaeger
uid: 10001
gid: 10002
# MANUAL REBUILD: Wed Oct 11 09:59:22 BST 2023

View File

@ -0,0 +1,847 @@
{
"configHash": "255f8ccb51bc235d401376544ac69c7ffb46bdd85551bc3f2aef72fa865d224f",
"contents": {
"keyring": [
{
"name": "packages.wolfi.dev/os/wolfi-signing.rsa.pub",
"url": "https://packages.wolfi.dev/os/wolfi-signing.rsa.pub"
},
{
"name": "packages.sgdev.org/sourcegraph-melange-prod.rsa.pub",
"url": "https://packages.sgdev.org/sourcegraph-melange-prod.rsa.pub"
}
],
"packages": [
{
"architecture": "x86_64",
"checksum": "Q1YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"control": {
"checksum": "sha1-YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"range": "bytes=696-1032"
},
"data": {
"checksum": "sha256-5hhCQURRrKVfPk8TOZVxfjceIUkVE0fh3/vEJBk88Ps=",
"range": "bytes=1033-256258"
},
"name": "ca-certificates-bundle",
"signature": {
"checksum": "sha1-E1NIpx8yCH6x5GcSqB4MzKQxuq4=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240315-r0.apk",
"version": "20240315-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1OHhyuiUviNHTg939DA0lyeRee18=",
"control": {
"checksum": "sha1-OHhyuiUviNHTg939DA0lyeRee18=",
"range": "bytes=702-1052"
},
"data": {
"checksum": "sha256-om3EZzEM+3dD9a77sOB2uOuAKBlf7XoUW/ORnDHQvZY=",
"range": "bytes=1053-125427"
},
"name": "wolfi-baselayout",
"signature": {
"checksum": "sha1-1CcRiULOFhX8ldA/Ae2qCMUGNmQ=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/wolfi-baselayout-20230201-r7.apk",
"version": "20230201-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1DyZ5L88J9MmDMYgbsywXdJdnw04=",
"control": {
"checksum": "sha1-DyZ5L88J9MmDMYgbsywXdJdnw04=",
"range": "bytes=699-1107"
},
"data": {
"checksum": "sha256-3xIIHf7osttdb7FoJTbfURbo4YuaB3knm5Kd3B5p+dI=",
"range": "bytes=1108-267814"
},
"name": "ld-linux",
"signature": {
"checksum": "sha1-lxFSv68mPMJwO+PthEdXfKHuLWk=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"control": {
"checksum": "sha1-UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"range": "bytes=696-1051"
},
"data": {
"checksum": "sha256-NaRRsIIgVTbofef14Qsnf+rysYDJXOXPKgfj6bAhP94=",
"range": "bytes=1052-408274"
},
"name": "glibc-locale-posix",
"signature": {
"checksum": "sha1-Iug0EjR+0K/k6fl0wi0prJHKBBo=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"control": {
"checksum": "sha1-PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"range": "bytes=695-1321"
},
"data": {
"checksum": "sha256-D6XvEcPrHmlsiI6HbbE51xmiTM1c5y6DV4MrHrCVuNo=",
"range": "bytes=1322-5861480"
},
"name": "glibc",
"signature": {
"checksum": "sha1-ypPC9SJASGEATsvLoDuEEUobhAs=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"control": {
"checksum": "sha1-mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"range": "bytes=704-1079"
},
"data": {
"checksum": "sha256-xE4spLqr7qIgImPfMC1kMY1a7Xu7xu1/eLkBMgOzSSc=",
"range": "bytes=1080-77936"
},
"name": "protobuf-c",
"signature": {
"checksum": "sha1-NGL0ELlBK8mhhAzuOkm17d2LbRo=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/protobuf-c-1.5.0-r3.apk",
"version": "1.5.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q135v8eEv8ZI/s/HXKkE96INoEoJk=",
"control": {
"checksum": "sha1-35v8eEv8ZI/s/HXKkE96INoEoJk=",
"range": "bytes=704-1040"
},
"data": {
"checksum": "sha256-3y4Tb3jy8M/ZXhnY6jxwj2YQFhdjLr/kjXhqJX7I+is=",
"range": "bytes=1041-27155"
},
"name": "krb5-conf",
"signature": {
"checksum": "sha1-WWjewHF5gekYrUPqdUHQEPIc97M=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-conf-1.0-r1.apk",
"version": "1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1TAnNLCVTaCylmbN84TlliyM47qM=",
"control": {
"checksum": "sha1-TAnNLCVTaCylmbN84TlliyM47qM=",
"range": "bytes=704-1069"
},
"data": {
"checksum": "sha256-+6lzaltti6IVf7RNynwcL9LmP9cJKMOjONPFUhHtnsA=",
"range": "bytes=1070-57492"
},
"name": "keyutils-libs",
"signature": {
"checksum": "sha1-MY+r6+HKyYcrgJtVqyG50KdP+QY=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/keyutils-libs-1.6.3-r1.apk",
"version": "1.6.3-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"control": {
"checksum": "sha1-baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"range": "bytes=700-1058"
},
"data": {
"checksum": "sha256-9BtoieN8gK8o4nzCDUyWkp6RmEsXrOwdu/XeTdZtDSE=",
"range": "bytes=1059-61938"
},
"name": "libverto",
"signature": {
"checksum": "sha1-TVkKg7JApxa7nvaj9DNvOsTv3Io=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/libverto-0.3.2-r1.apk",
"version": "0.3.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1M+CfES+G7micWuVpGjyxcTOj9zQ=",
"control": {
"checksum": "sha1-M+CfES+G7micWuVpGjyxcTOj9zQ=",
"range": "bytes=702-1120"
},
"data": {
"checksum": "sha256-UqwHAn95sL7AsIRMN0DM1TtSJ2Q5KD1WN4+uU8+Knqg=",
"range": "bytes=1121-52564"
},
"name": "libcom_err",
"signature": {
"checksum": "sha1-qciIi1MZRLclhn8K+GnrOJlNNfE=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcom_err-1.47.0-r1.apk",
"version": "1.47.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q13piSoRiT6p5eziGu2iPxSkXxf+g=",
"control": {
"checksum": "sha1-3piSoRiT6p5eziGu2iPxSkXxf+g=",
"range": "bytes=704-1039"
},
"data": {
"checksum": "sha256-+iLQJV5/mU/hTpwsy9zYBfzVIVkd8lXBBqMScHFhHfI=",
"range": "bytes=1040-87982"
},
"name": "openssl-config",
"signature": {
"checksum": "sha1-fsygjfZl7YLgdpBZ5OVKJG/N2HI=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/openssl-config-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1kERnIFBBwTWZsA+cmGLkIU75THk=",
"control": {
"checksum": "sha1-kERnIFBBwTWZsA+cmGLkIU75THk=",
"range": "bytes=694-1066"
},
"data": {
"checksum": "sha256-MB5ZoAsBJ0Osps0a1V0KsM/qQhfZQvYupElgoF1rNLE=",
"range": "bytes=1067-5895270"
},
"name": "libcrypto3",
"signature": {
"checksum": "sha1-vTJq+p2AjVQQjJ4gSkR9ySDQr3k=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypto3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1RFDJtvcstAQi4NjU00ApvNIvoEI=",
"control": {
"checksum": "sha1-RFDJtvcstAQi4NjU00ApvNIvoEI=",
"range": "bytes=694-1065"
},
"data": {
"checksum": "sha256-oocCJOj9IF7jv3Ov8bPbaAGfq6oaYXuPNnZW9DnOdnE=",
"range": "bytes=1066-1135402"
},
"name": "libssl3",
"signature": {
"checksum": "sha1-wJVFcqH/ewopq4lxwz8OYrZ9/Ws=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libssl3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"control": {
"checksum": "sha1-myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"range": "bytes=698-1216"
},
"data": {
"checksum": "sha256-elcsQDiEgNifO11g4MoJLGo5XJu8wQZaytjIKYxzVjw=",
"range": "bytes=1217-2564165"
},
"name": "krb5-libs",
"signature": {
"checksum": "sha1-NdbRDYVgwMQYQQrqt9GSGuBkjuA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-libs-1.21.2-r1.apk",
"version": "1.21.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"control": {
"checksum": "sha1-BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"range": "bytes=699-1059"
},
"data": {
"checksum": "sha256-Rp339LV5T4+zr98USK12eoyKGF84NviKlq3jh1AvbQQ=",
"range": "bytes=1060-96440"
},
"name": "fstrm",
"signature": {
"checksum": "sha1-tOY0x5olyX6V9uRtlgxtf4WEhR0=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/fstrm-0.6.1-r1.apk",
"version": "0.6.1-r1"
},
{
"architecture": "x86_64",
"checksum": "Q126C/3voUst+sFakQOGVOKucs6v8=",
"control": {
"checksum": "sha1-26C/3voUst+sFakQOGVOKucs6v8=",
"range": "bytes=698-1076"
},
"data": {
"checksum": "sha256-S2VfC729Glys7iRmR7sX4RoS4LLyNi9KmSzDc8wkKrQ=",
"range": "bytes=1077-277291"
},
"name": "libuv",
"signature": {
"checksum": "sha1-23pSGkhyhlBtbVxNtDXYlWnt+vk=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libuv-1.48.0-r0.apk",
"version": "1.48.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1ybud27/W+hJ0asiUj3hfrXVjcMs=",
"control": {
"checksum": "sha1-ybud27/W+hJ0asiUj3hfrXVjcMs=",
"range": "bytes=698-1081"
},
"data": {
"checksum": "sha256-3uFtBCAT2Gu/AplcYbKYMCuMMC94JLJDNyoWnSMLqjc=",
"range": "bytes=1082-156680"
},
"name": "zlib",
"signature": {
"checksum": "sha1-JYfhgb71ZjFG0VIAKLwOQSlHmlg=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/zlib-1.3.1-r0.apk",
"version": "1.3.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"control": {
"checksum": "sha1-txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"range": "bytes=703-1071"
},
"data": {
"checksum": "sha256-QgGnbFCQGaCUjwfFVcF2eOXDjZHaJjntdJlM1thwxd0=",
"range": "bytes=1072-252873"
},
"name": "libnghttp2-14",
"signature": {
"checksum": "sha1-VWNh1CR9wcBEPwOH88Qr6n7OR08=",
"range": "bytes=0-702"
},
"url": "https://packages.wolfi.dev/os/x86_64/libnghttp2-14-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"control": {
"checksum": "sha1-cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"range": "bytes=697-1073"
},
"data": {
"checksum": "sha256-7m+RnrAOS8ZCnFW/j2P2NcQJxOzfwSjOLYhEZXIwBG8=",
"range": "bytes=1074-114096"
},
"name": "libev",
"signature": {
"checksum": "sha1-PUsxiEtEuEoDpgKP2L36G/X55s0=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libev-4.33-r4.apk",
"version": "4.33-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"control": {
"checksum": "sha1-jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"range": "bytes=708-1084"
},
"data": {
"checksum": "sha256-v6jAIoRu7n3hQJ8nwWCLtvRsszuMGCAEyZm4zUF1cVI=",
"range": "bytes=1085-185893"
},
"name": "libgcc",
"signature": {
"checksum": "sha1-3fVn7jRkfOtxSgpmdey4iJJqQPM=",
"range": "bytes=0-707"
},
"url": "https://packages.wolfi.dev/os/x86_64/libgcc-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1NsUsznaiP7XyU6U/5pssXQgGJgU=",
"control": {
"checksum": "sha1-NsUsznaiP7XyU6U/5pssXQgGJgU=",
"range": "bytes=701-1093"
},
"data": {
"checksum": "sha256-0XrQ++geRWYRUazF23zdsuGVLFkiIDM1FKmAbbz9ojQ=",
"range": "bytes=1094-3156830"
},
"name": "libstdc++",
"signature": {
"checksum": "sha1-Zu2LUNkKQt3BnFU9+4PX0ud8D6Q=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libstdc++-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1EHyaNLx1UadaqJXEC86gtIjZGMM=",
"control": {
"checksum": "sha1-EHyaNLx1UadaqJXEC86gtIjZGMM=",
"range": "bytes=696-1076"
},
"data": {
"checksum": "sha256-+ValBcpIsLeYUFo73SZrUM2vpLGefts7Qx95EPMATaY=",
"range": "bytes=1077-232308"
},
"name": "c-ares",
"signature": {
"checksum": "sha1-OtwgYMiySwl+l6divnnSgQu+QUg=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/c-ares-1.28.1-r0.apk",
"version": "1.28.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"control": {
"checksum": "sha1-YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"range": "bytes=701-1168"
},
"data": {
"checksum": "sha256-KnMN4TtaDNZqReNINaTivjzUoQigGvtRZgVEqc1EDHo=",
"range": "bytes=1169-2555088"
},
"name": "nghttp2",
"signature": {
"checksum": "sha1-MWKiH9LAxjnWqAm536DCFrsZXCg=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"control": {
"checksum": "sha1-D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"range": "bytes=700-1067"
},
"data": {
"checksum": "sha256-fKV2YLH6EP/NFtRSErdaCwZX+Mg6KJrfmt1VpRWeKis=",
"range": "bytes=1068-634389"
},
"name": "nghttp2-dev",
"signature": {
"checksum": "sha1-ZRWYUK14qaTBE3NC7OOWumdkSyY=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-dev-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1sJOz3InYXKj1qNN3oPm3pb30VO0=",
"control": {
"checksum": "sha1-sJOz3InYXKj1qNN3oPm3pb30VO0=",
"range": "bytes=697-1149"
},
"data": {
"checksum": "sha256-fahwYvY6Lv9AhtEHBsSaoFAoKFWlvbbVC8jYGuRmTcg=",
"range": "bytes=1150-2380016"
},
"name": "xz",
"signature": {
"checksum": "sha1-aQxFIS7BG8u/jlY2JU8oQIEloYw=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/xz-5.4.6-r0.apk",
"version": "5.4.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"control": {
"checksum": "sha1-aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"range": "bytes=699-1084"
},
"data": {
"checksum": "sha256-Wc0u/JyHwxC7ubVFz4UlXEc5URwWiBZm4jNKqVv9LF0=",
"range": "bytes=1085-4698210"
},
"name": "libxml2",
"signature": {
"checksum": "sha1-v7pbNfh/TdC3LzRewdC3GeA9rec=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxml2-2.12.6-r0.apk",
"version": "2.12.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1l9z4OGVfdVISNbyGQdXlz2GPchM=",
"control": {
"checksum": "sha1-l9z4OGVfdVISNbyGQdXlz2GPchM=",
"range": "bytes=695-1222"
},
"data": {
"checksum": "sha256-0Z+mq/0A1P+F5KIZKnsYpg8Eqb3GDRT7VDrZlTEg+4Y=",
"range": "bytes=1223-3863194"
},
"name": "bind-libs",
"signature": {
"checksum": "sha1-YX2+1oZh/hXHVjZriSnJZQzpifg=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-libs-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"control": {
"checksum": "sha1-Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"range": "bytes=705-1217"
},
"data": {
"checksum": "sha256-/0zOh1KQW58NOuJgauDOdqJA4G4g0p6jPUOP45HN/f8=",
"range": "bytes=1218-892798"
},
"name": "bind-tools",
"signature": {
"checksum": "sha1-3GgaViNXeX4dd75pxgwR8yYgov0=",
"range": "bytes=0-704"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-tools-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q11cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"control": {
"checksum": "sha1-1cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"range": "bytes=698-1093"
},
"data": {
"checksum": "sha256-t284K9/cZQaQMy4y4nYXMIjKUTbyaBa/QnUj0cYmTNk=",
"range": "bytes=1094-234977"
},
"name": "libxcrypt",
"signature": {
"checksum": "sha1-hhR4Puw7nMj2H9OzUMTKhK1/7N0=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxcrypt-4.4.36-r4.apk",
"version": "4.4.36-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"control": {
"checksum": "sha1-szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"range": "bytes=698-1101"
},
"data": {
"checksum": "sha256-hrc/6rvJR5nb97Gu5Hep8419+WyFmd7maV78ni7zQAc=",
"range": "bytes=1102-21604"
},
"name": "libcrypt1",
"signature": {
"checksum": "sha1-Jk/8hSLRyZ7scdep1XfbpKABePY=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q17FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"control": {
"checksum": "sha1-7FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"range": "bytes=701-1208"
},
"data": {
"checksum": "sha256-67DYE+o9zQIS2KUyXkBN8SAEkWVh2+isnGTn78VdLMg=",
"range": "bytes=1209-636015"
},
"name": "busybox",
"signature": {
"checksum": "sha1-70uMRez2BMN2clrT3wFBWsR5Gew=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/busybox-1.36.1-r7.apk",
"version": "1.36.1-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"control": {
"checksum": "sha1-f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"range": "bytes=706-1103"
},
"data": {
"checksum": "sha256-ttIYvsu5Vp2YYKv/C7vK1hFUI8kNsOJxD65/SsOtWvQ=",
"range": "bytes=1104-2862070"
},
"name": "libunistring",
"signature": {
"checksum": "sha1-IwR2lnVv+Ixi8qtznw+ruuV9OVw=",
"range": "bytes=0-705"
},
"url": "https://packages.wolfi.dev/os/x86_64/libunistring-1.2-r0.apk",
"version": "1.2-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1tBy70+JqCVQbecHMDxN0U9PKn8k=",
"control": {
"checksum": "sha1-tBy70+JqCVQbecHMDxN0U9PKn8k=",
"range": "bytes=697-1102"
},
"data": {
"checksum": "sha256-xFjkADRrilqBaMgedKfRkaUGOqAlLDunZnmM/nggwDo=",
"range": "bytes=1103-411419"
},
"name": "libidn2",
"signature": {
"checksum": "sha1-AkpnAB73nCuJM4BJIXJsWn2/urk=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libidn2-2.3.7-r0.apk",
"version": "2.3.7-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"control": {
"checksum": "sha1-QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"range": "bytes=702-1082"
},
"data": {
"checksum": "sha256-cEuUD1tNXYeUHPC7dK9BSHOx8vt7IIRBGd181Sd0RXA=",
"range": "bytes=1083-114314"
},
"name": "libpsl",
"signature": {
"checksum": "sha1-H2Bp5J4UMCXPQlfvEiFxLXG5rEY=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libpsl-0.21.5-r0.apk",
"version": "0.21.5-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1LcDEPPjJrWwhueUvesRr4kLyGPI=",
"control": {
"checksum": "sha1-LcDEPPjJrWwhueUvesRr4kLyGPI=",
"range": "bytes=707-1052"
},
"data": {
"checksum": "sha256-xtIiQnSjJGdZnAzaBoJD6q3TbCpnAwTfD9SvbafkaP0=",
"range": "bytes=1053-174068"
},
"name": "libbrotlicommon1",
"signature": {
"checksum": "sha1-kcyKhs8jgdpGEEUhbyXHPJQpvyM=",
"range": "bytes=0-706"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlicommon1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q10jZlLouHAzMUvZYphGGNjOoZ1ug=",
"control": {
"checksum": "sha1-0jZlLouHAzMUvZYphGGNjOoZ1ug=",
"range": "bytes=701-1051"
},
"data": {
"checksum": "sha256-nx7lapEgf5fd4ZrtBxqXtAWE0tEVndBBEwXOUbhY2OA=",
"range": "bytes=1052-81979"
},
"name": "libbrotlidec1",
"signature": {
"checksum": "sha1-iUdAt3okR6P8rJ4sNv4yjC0I8Ys=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlidec1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"control": {
"checksum": "sha1-CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"range": "bytes=701-1140"
},
"data": {
"checksum": "sha256-2EP9UQKOVph+9hElnh20s8ViX126cAnPyNI+IF2pQ4Y=",
"range": "bytes=1141-838149"
},
"name": "libcurl-openssl4",
"signature": {
"checksum": "sha1-IxMuIpRYevSLukva0eWmB5RkhMY=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcurl-openssl4-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"control": {
"checksum": "sha1-DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"range": "bytes=700-1101"
},
"data": {
"checksum": "sha256-l1iebyEPmteOEBcPDwPzstpqs9SMvCn8PqlvRU3O7jk=",
"range": "bytes=1102-351141"
},
"name": "curl",
"signature": {
"checksum": "sha1-iVKgcLEjgrpj4c2TrRzHznPaWXA=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/curl-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1qp7tiYqB6SPWzTktEJFnAGEfnaA=",
"control": {
"checksum": "sha1-qp7tiYqB6SPWzTktEJFnAGEfnaA=",
"range": "bytes=660-952"
},
"data": {
"checksum": "sha256-hhvZqTCrzhtUHdgFX1hJQ1SOiuwBAc7seccdW/YD1A0=",
"range": "bytes=953-54578749"
},
"name": "jaeger-all-in-one",
"signature": {
"checksum": "sha1-usH8OeeU2LgTluWLfpmdMEY+fIk=",
"range": "bytes=0-659"
},
"url": "https://packages.sgdev.org/main/x86_64/jaeger-all-in-one-1.45.0-r6.apk",
"version": "1.45.0-r6"
},
{
"architecture": "x86_64",
"checksum": "Q1Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"control": {
"checksum": "sha1-Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"range": "bytes=660-1019"
},
"data": {
"checksum": "sha256-Acu4swCJY4zVqLGpjN7PJzQ6juyZajEZ/xlJeahCk4k=",
"range": "bytes=1020-173298"
},
"name": "mailcap",
"signature": {
"checksum": "sha1-fFIHN05okWjQyXdVrXiU2HpqEC4=",
"range": "bytes=0-659"
},
"url": "https://packages.wolfi.dev/os/x86_64/mailcap-2.1.54-r0.apk",
"version": "2.1.54-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1m7SsrH+XnrPIapzhnK0vkoxMen4=",
"control": {
"checksum": "sha1-m7SsrH+XnrPIapzhnK0vkoxMen4=",
"range": "bytes=698-1077"
},
"data": {
"checksum": "sha256-0WaULqZyE0zNNC6D7YeaXVN4shAVEouyqAEiRlB09C0=",
"range": "bytes=1078-54479"
},
"name": "tini",
"signature": {
"checksum": "sha1-eomfhWCyCB1OA/2DHboLUzXunvA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/tini-0.19.0-r3.apk",
"version": "0.19.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q1lvoD8CoCRqulbibjC3gSGuEe8K0=",
"control": {
"checksum": "sha1-lvoD8CoCRqulbibjC3gSGuEe8K0=",
"range": "bytes=702-1035"
},
"data": {
"checksum": "sha256-YB3jK9thvtrl7FCbwBPhBgHnz6ncykVxex/dHC4wYc8=",
"range": "bytes=1036-3022935"
},
"name": "tzdata",
"signature": {
"checksum": "sha1-AJ7WqmxNNMiSUQ8WuwjXg5Y23Gw=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/tzdata-2024a-r0.apk",
"version": "2024a-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1JVK/s+yGDiDotAujuHcQwzrchvI=",
"control": {
"checksum": "sha1-JVK/s+yGDiDotAujuHcQwzrchvI=",
"range": "bytes=699-1099"
},
"data": {
"checksum": "sha256-6MWjAN767fVREf1xZ18eV4QLzKBUdZusnhj7ljPZuhU=",
"range": "bytes=1100-786256"
},
"name": "wget",
"signature": {
"checksum": "sha1-cJ/swsh0XVO9ISogqXDo8oBBG7M=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/wget-1.24.5-r0.apk",
"version": "1.24.5-r0"
}
],
"repositories": [
{
"architecture": "x86_64",
"name": "packages.wolfi.dev/os/x86_64",
"url": "https://packages.wolfi.dev/os/x86_64/APKINDEX.tar.gz"
},
{
"architecture": "x86_64",
"name": "@sourcegraph https://packages.sgdev.org/main/x86_64",
"url": "@sourcegraph https://packages.sgdev.org/main/x86_64/APKINDEX.tar.gz"
}
]
},
"version": "v1"
}

View File

@ -25,5 +25,3 @@ paths:
type: directory
uid: 10001
permissions: 0o755
# MANUAL REBUILD: Wed Oct 11 09:59:22 BST 2023

View File

@ -0,0 +1,809 @@
{
"configHash": "4aa6271afe6792956458ca6daaa4e1ea1900f3b95064645bdf10e804e61c6632",
"contents": {
"keyring": [
{
"name": "packages.wolfi.dev/os/wolfi-signing.rsa.pub",
"url": "https://packages.wolfi.dev/os/wolfi-signing.rsa.pub"
},
{
"name": "packages.sgdev.org/sourcegraph-melange-prod.rsa.pub",
"url": "https://packages.sgdev.org/sourcegraph-melange-prod.rsa.pub"
}
],
"packages": [
{
"architecture": "x86_64",
"checksum": "Q1YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"control": {
"checksum": "sha1-YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"range": "bytes=696-1032"
},
"data": {
"checksum": "sha256-5hhCQURRrKVfPk8TOZVxfjceIUkVE0fh3/vEJBk88Ps=",
"range": "bytes=1033-256258"
},
"name": "ca-certificates-bundle",
"signature": {
"checksum": "sha1-E1NIpx8yCH6x5GcSqB4MzKQxuq4=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240315-r0.apk",
"version": "20240315-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1OHhyuiUviNHTg939DA0lyeRee18=",
"control": {
"checksum": "sha1-OHhyuiUviNHTg939DA0lyeRee18=",
"range": "bytes=702-1052"
},
"data": {
"checksum": "sha256-om3EZzEM+3dD9a77sOB2uOuAKBlf7XoUW/ORnDHQvZY=",
"range": "bytes=1053-125427"
},
"name": "wolfi-baselayout",
"signature": {
"checksum": "sha1-1CcRiULOFhX8ldA/Ae2qCMUGNmQ=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/wolfi-baselayout-20230201-r7.apk",
"version": "20230201-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1DyZ5L88J9MmDMYgbsywXdJdnw04=",
"control": {
"checksum": "sha1-DyZ5L88J9MmDMYgbsywXdJdnw04=",
"range": "bytes=699-1107"
},
"data": {
"checksum": "sha256-3xIIHf7osttdb7FoJTbfURbo4YuaB3knm5Kd3B5p+dI=",
"range": "bytes=1108-267814"
},
"name": "ld-linux",
"signature": {
"checksum": "sha1-lxFSv68mPMJwO+PthEdXfKHuLWk=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"control": {
"checksum": "sha1-UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"range": "bytes=696-1051"
},
"data": {
"checksum": "sha256-NaRRsIIgVTbofef14Qsnf+rysYDJXOXPKgfj6bAhP94=",
"range": "bytes=1052-408274"
},
"name": "glibc-locale-posix",
"signature": {
"checksum": "sha1-Iug0EjR+0K/k6fl0wi0prJHKBBo=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"control": {
"checksum": "sha1-PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"range": "bytes=695-1321"
},
"data": {
"checksum": "sha256-D6XvEcPrHmlsiI6HbbE51xmiTM1c5y6DV4MrHrCVuNo=",
"range": "bytes=1322-5861480"
},
"name": "glibc",
"signature": {
"checksum": "sha1-ypPC9SJASGEATsvLoDuEEUobhAs=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"control": {
"checksum": "sha1-mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"range": "bytes=704-1079"
},
"data": {
"checksum": "sha256-xE4spLqr7qIgImPfMC1kMY1a7Xu7xu1/eLkBMgOzSSc=",
"range": "bytes=1080-77936"
},
"name": "protobuf-c",
"signature": {
"checksum": "sha1-NGL0ELlBK8mhhAzuOkm17d2LbRo=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/protobuf-c-1.5.0-r3.apk",
"version": "1.5.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q135v8eEv8ZI/s/HXKkE96INoEoJk=",
"control": {
"checksum": "sha1-35v8eEv8ZI/s/HXKkE96INoEoJk=",
"range": "bytes=704-1040"
},
"data": {
"checksum": "sha256-3y4Tb3jy8M/ZXhnY6jxwj2YQFhdjLr/kjXhqJX7I+is=",
"range": "bytes=1041-27155"
},
"name": "krb5-conf",
"signature": {
"checksum": "sha1-WWjewHF5gekYrUPqdUHQEPIc97M=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-conf-1.0-r1.apk",
"version": "1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1TAnNLCVTaCylmbN84TlliyM47qM=",
"control": {
"checksum": "sha1-TAnNLCVTaCylmbN84TlliyM47qM=",
"range": "bytes=704-1069"
},
"data": {
"checksum": "sha256-+6lzaltti6IVf7RNynwcL9LmP9cJKMOjONPFUhHtnsA=",
"range": "bytes=1070-57492"
},
"name": "keyutils-libs",
"signature": {
"checksum": "sha1-MY+r6+HKyYcrgJtVqyG50KdP+QY=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/keyutils-libs-1.6.3-r1.apk",
"version": "1.6.3-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"control": {
"checksum": "sha1-baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"range": "bytes=700-1058"
},
"data": {
"checksum": "sha256-9BtoieN8gK8o4nzCDUyWkp6RmEsXrOwdu/XeTdZtDSE=",
"range": "bytes=1059-61938"
},
"name": "libverto",
"signature": {
"checksum": "sha1-TVkKg7JApxa7nvaj9DNvOsTv3Io=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/libverto-0.3.2-r1.apk",
"version": "0.3.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1M+CfES+G7micWuVpGjyxcTOj9zQ=",
"control": {
"checksum": "sha1-M+CfES+G7micWuVpGjyxcTOj9zQ=",
"range": "bytes=702-1120"
},
"data": {
"checksum": "sha256-UqwHAn95sL7AsIRMN0DM1TtSJ2Q5KD1WN4+uU8+Knqg=",
"range": "bytes=1121-52564"
},
"name": "libcom_err",
"signature": {
"checksum": "sha1-qciIi1MZRLclhn8K+GnrOJlNNfE=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcom_err-1.47.0-r1.apk",
"version": "1.47.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q13piSoRiT6p5eziGu2iPxSkXxf+g=",
"control": {
"checksum": "sha1-3piSoRiT6p5eziGu2iPxSkXxf+g=",
"range": "bytes=704-1039"
},
"data": {
"checksum": "sha256-+iLQJV5/mU/hTpwsy9zYBfzVIVkd8lXBBqMScHFhHfI=",
"range": "bytes=1040-87982"
},
"name": "openssl-config",
"signature": {
"checksum": "sha1-fsygjfZl7YLgdpBZ5OVKJG/N2HI=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/openssl-config-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1kERnIFBBwTWZsA+cmGLkIU75THk=",
"control": {
"checksum": "sha1-kERnIFBBwTWZsA+cmGLkIU75THk=",
"range": "bytes=694-1066"
},
"data": {
"checksum": "sha256-MB5ZoAsBJ0Osps0a1V0KsM/qQhfZQvYupElgoF1rNLE=",
"range": "bytes=1067-5895270"
},
"name": "libcrypto3",
"signature": {
"checksum": "sha1-vTJq+p2AjVQQjJ4gSkR9ySDQr3k=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypto3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1RFDJtvcstAQi4NjU00ApvNIvoEI=",
"control": {
"checksum": "sha1-RFDJtvcstAQi4NjU00ApvNIvoEI=",
"range": "bytes=694-1065"
},
"data": {
"checksum": "sha256-oocCJOj9IF7jv3Ov8bPbaAGfq6oaYXuPNnZW9DnOdnE=",
"range": "bytes=1066-1135402"
},
"name": "libssl3",
"signature": {
"checksum": "sha1-wJVFcqH/ewopq4lxwz8OYrZ9/Ws=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libssl3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"control": {
"checksum": "sha1-myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"range": "bytes=698-1216"
},
"data": {
"checksum": "sha256-elcsQDiEgNifO11g4MoJLGo5XJu8wQZaytjIKYxzVjw=",
"range": "bytes=1217-2564165"
},
"name": "krb5-libs",
"signature": {
"checksum": "sha1-NdbRDYVgwMQYQQrqt9GSGuBkjuA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-libs-1.21.2-r1.apk",
"version": "1.21.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"control": {
"checksum": "sha1-BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"range": "bytes=699-1059"
},
"data": {
"checksum": "sha256-Rp339LV5T4+zr98USK12eoyKGF84NviKlq3jh1AvbQQ=",
"range": "bytes=1060-96440"
},
"name": "fstrm",
"signature": {
"checksum": "sha1-tOY0x5olyX6V9uRtlgxtf4WEhR0=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/fstrm-0.6.1-r1.apk",
"version": "0.6.1-r1"
},
{
"architecture": "x86_64",
"checksum": "Q126C/3voUst+sFakQOGVOKucs6v8=",
"control": {
"checksum": "sha1-26C/3voUst+sFakQOGVOKucs6v8=",
"range": "bytes=698-1076"
},
"data": {
"checksum": "sha256-S2VfC729Glys7iRmR7sX4RoS4LLyNi9KmSzDc8wkKrQ=",
"range": "bytes=1077-277291"
},
"name": "libuv",
"signature": {
"checksum": "sha1-23pSGkhyhlBtbVxNtDXYlWnt+vk=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libuv-1.48.0-r0.apk",
"version": "1.48.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1ybud27/W+hJ0asiUj3hfrXVjcMs=",
"control": {
"checksum": "sha1-ybud27/W+hJ0asiUj3hfrXVjcMs=",
"range": "bytes=698-1081"
},
"data": {
"checksum": "sha256-3uFtBCAT2Gu/AplcYbKYMCuMMC94JLJDNyoWnSMLqjc=",
"range": "bytes=1082-156680"
},
"name": "zlib",
"signature": {
"checksum": "sha1-JYfhgb71ZjFG0VIAKLwOQSlHmlg=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/zlib-1.3.1-r0.apk",
"version": "1.3.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"control": {
"checksum": "sha1-txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"range": "bytes=703-1071"
},
"data": {
"checksum": "sha256-QgGnbFCQGaCUjwfFVcF2eOXDjZHaJjntdJlM1thwxd0=",
"range": "bytes=1072-252873"
},
"name": "libnghttp2-14",
"signature": {
"checksum": "sha1-VWNh1CR9wcBEPwOH88Qr6n7OR08=",
"range": "bytes=0-702"
},
"url": "https://packages.wolfi.dev/os/x86_64/libnghttp2-14-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"control": {
"checksum": "sha1-cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"range": "bytes=697-1073"
},
"data": {
"checksum": "sha256-7m+RnrAOS8ZCnFW/j2P2NcQJxOzfwSjOLYhEZXIwBG8=",
"range": "bytes=1074-114096"
},
"name": "libev",
"signature": {
"checksum": "sha1-PUsxiEtEuEoDpgKP2L36G/X55s0=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libev-4.33-r4.apk",
"version": "4.33-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"control": {
"checksum": "sha1-jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"range": "bytes=708-1084"
},
"data": {
"checksum": "sha256-v6jAIoRu7n3hQJ8nwWCLtvRsszuMGCAEyZm4zUF1cVI=",
"range": "bytes=1085-185893"
},
"name": "libgcc",
"signature": {
"checksum": "sha1-3fVn7jRkfOtxSgpmdey4iJJqQPM=",
"range": "bytes=0-707"
},
"url": "https://packages.wolfi.dev/os/x86_64/libgcc-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1NsUsznaiP7XyU6U/5pssXQgGJgU=",
"control": {
"checksum": "sha1-NsUsznaiP7XyU6U/5pssXQgGJgU=",
"range": "bytes=701-1093"
},
"data": {
"checksum": "sha256-0XrQ++geRWYRUazF23zdsuGVLFkiIDM1FKmAbbz9ojQ=",
"range": "bytes=1094-3156830"
},
"name": "libstdc++",
"signature": {
"checksum": "sha1-Zu2LUNkKQt3BnFU9+4PX0ud8D6Q=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libstdc++-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1EHyaNLx1UadaqJXEC86gtIjZGMM=",
"control": {
"checksum": "sha1-EHyaNLx1UadaqJXEC86gtIjZGMM=",
"range": "bytes=696-1076"
},
"data": {
"checksum": "sha256-+ValBcpIsLeYUFo73SZrUM2vpLGefts7Qx95EPMATaY=",
"range": "bytes=1077-232308"
},
"name": "c-ares",
"signature": {
"checksum": "sha1-OtwgYMiySwl+l6divnnSgQu+QUg=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/c-ares-1.28.1-r0.apk",
"version": "1.28.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"control": {
"checksum": "sha1-YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"range": "bytes=701-1168"
},
"data": {
"checksum": "sha256-KnMN4TtaDNZqReNINaTivjzUoQigGvtRZgVEqc1EDHo=",
"range": "bytes=1169-2555088"
},
"name": "nghttp2",
"signature": {
"checksum": "sha1-MWKiH9LAxjnWqAm536DCFrsZXCg=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"control": {
"checksum": "sha1-D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"range": "bytes=700-1067"
},
"data": {
"checksum": "sha256-fKV2YLH6EP/NFtRSErdaCwZX+Mg6KJrfmt1VpRWeKis=",
"range": "bytes=1068-634389"
},
"name": "nghttp2-dev",
"signature": {
"checksum": "sha1-ZRWYUK14qaTBE3NC7OOWumdkSyY=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-dev-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1sJOz3InYXKj1qNN3oPm3pb30VO0=",
"control": {
"checksum": "sha1-sJOz3InYXKj1qNN3oPm3pb30VO0=",
"range": "bytes=697-1149"
},
"data": {
"checksum": "sha256-fahwYvY6Lv9AhtEHBsSaoFAoKFWlvbbVC8jYGuRmTcg=",
"range": "bytes=1150-2380016"
},
"name": "xz",
"signature": {
"checksum": "sha1-aQxFIS7BG8u/jlY2JU8oQIEloYw=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/xz-5.4.6-r0.apk",
"version": "5.4.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"control": {
"checksum": "sha1-aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"range": "bytes=699-1084"
},
"data": {
"checksum": "sha256-Wc0u/JyHwxC7ubVFz4UlXEc5URwWiBZm4jNKqVv9LF0=",
"range": "bytes=1085-4698210"
},
"name": "libxml2",
"signature": {
"checksum": "sha1-v7pbNfh/TdC3LzRewdC3GeA9rec=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxml2-2.12.6-r0.apk",
"version": "2.12.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1l9z4OGVfdVISNbyGQdXlz2GPchM=",
"control": {
"checksum": "sha1-l9z4OGVfdVISNbyGQdXlz2GPchM=",
"range": "bytes=695-1222"
},
"data": {
"checksum": "sha256-0Z+mq/0A1P+F5KIZKnsYpg8Eqb3GDRT7VDrZlTEg+4Y=",
"range": "bytes=1223-3863194"
},
"name": "bind-libs",
"signature": {
"checksum": "sha1-YX2+1oZh/hXHVjZriSnJZQzpifg=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-libs-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"control": {
"checksum": "sha1-Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"range": "bytes=705-1217"
},
"data": {
"checksum": "sha256-/0zOh1KQW58NOuJgauDOdqJA4G4g0p6jPUOP45HN/f8=",
"range": "bytes=1218-892798"
},
"name": "bind-tools",
"signature": {
"checksum": "sha1-3GgaViNXeX4dd75pxgwR8yYgov0=",
"range": "bytes=0-704"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-tools-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q11cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"control": {
"checksum": "sha1-1cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"range": "bytes=698-1093"
},
"data": {
"checksum": "sha256-t284K9/cZQaQMy4y4nYXMIjKUTbyaBa/QnUj0cYmTNk=",
"range": "bytes=1094-234977"
},
"name": "libxcrypt",
"signature": {
"checksum": "sha1-hhR4Puw7nMj2H9OzUMTKhK1/7N0=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxcrypt-4.4.36-r4.apk",
"version": "4.4.36-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"control": {
"checksum": "sha1-szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"range": "bytes=698-1101"
},
"data": {
"checksum": "sha256-hrc/6rvJR5nb97Gu5Hep8419+WyFmd7maV78ni7zQAc=",
"range": "bytes=1102-21604"
},
"name": "libcrypt1",
"signature": {
"checksum": "sha1-Jk/8hSLRyZ7scdep1XfbpKABePY=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q17FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"control": {
"checksum": "sha1-7FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"range": "bytes=701-1208"
},
"data": {
"checksum": "sha256-67DYE+o9zQIS2KUyXkBN8SAEkWVh2+isnGTn78VdLMg=",
"range": "bytes=1209-636015"
},
"name": "busybox",
"signature": {
"checksum": "sha1-70uMRez2BMN2clrT3wFBWsR5Gew=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/busybox-1.36.1-r7.apk",
"version": "1.36.1-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"control": {
"checksum": "sha1-f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"range": "bytes=706-1103"
},
"data": {
"checksum": "sha256-ttIYvsu5Vp2YYKv/C7vK1hFUI8kNsOJxD65/SsOtWvQ=",
"range": "bytes=1104-2862070"
},
"name": "libunistring",
"signature": {
"checksum": "sha1-IwR2lnVv+Ixi8qtznw+ruuV9OVw=",
"range": "bytes=0-705"
},
"url": "https://packages.wolfi.dev/os/x86_64/libunistring-1.2-r0.apk",
"version": "1.2-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1tBy70+JqCVQbecHMDxN0U9PKn8k=",
"control": {
"checksum": "sha1-tBy70+JqCVQbecHMDxN0U9PKn8k=",
"range": "bytes=697-1102"
},
"data": {
"checksum": "sha256-xFjkADRrilqBaMgedKfRkaUGOqAlLDunZnmM/nggwDo=",
"range": "bytes=1103-411419"
},
"name": "libidn2",
"signature": {
"checksum": "sha1-AkpnAB73nCuJM4BJIXJsWn2/urk=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libidn2-2.3.7-r0.apk",
"version": "2.3.7-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"control": {
"checksum": "sha1-QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"range": "bytes=702-1082"
},
"data": {
"checksum": "sha256-cEuUD1tNXYeUHPC7dK9BSHOx8vt7IIRBGd181Sd0RXA=",
"range": "bytes=1083-114314"
},
"name": "libpsl",
"signature": {
"checksum": "sha1-H2Bp5J4UMCXPQlfvEiFxLXG5rEY=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libpsl-0.21.5-r0.apk",
"version": "0.21.5-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1LcDEPPjJrWwhueUvesRr4kLyGPI=",
"control": {
"checksum": "sha1-LcDEPPjJrWwhueUvesRr4kLyGPI=",
"range": "bytes=707-1052"
},
"data": {
"checksum": "sha256-xtIiQnSjJGdZnAzaBoJD6q3TbCpnAwTfD9SvbafkaP0=",
"range": "bytes=1053-174068"
},
"name": "libbrotlicommon1",
"signature": {
"checksum": "sha1-kcyKhs8jgdpGEEUhbyXHPJQpvyM=",
"range": "bytes=0-706"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlicommon1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q10jZlLouHAzMUvZYphGGNjOoZ1ug=",
"control": {
"checksum": "sha1-0jZlLouHAzMUvZYphGGNjOoZ1ug=",
"range": "bytes=701-1051"
},
"data": {
"checksum": "sha256-nx7lapEgf5fd4ZrtBxqXtAWE0tEVndBBEwXOUbhY2OA=",
"range": "bytes=1052-81979"
},
"name": "libbrotlidec1",
"signature": {
"checksum": "sha1-iUdAt3okR6P8rJ4sNv4yjC0I8Ys=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlidec1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"control": {
"checksum": "sha1-CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"range": "bytes=701-1140"
},
"data": {
"checksum": "sha256-2EP9UQKOVph+9hElnh20s8ViX126cAnPyNI+IF2pQ4Y=",
"range": "bytes=1141-838149"
},
"name": "libcurl-openssl4",
"signature": {
"checksum": "sha1-IxMuIpRYevSLukva0eWmB5RkhMY=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcurl-openssl4-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"control": {
"checksum": "sha1-DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"range": "bytes=700-1101"
},
"data": {
"checksum": "sha256-l1iebyEPmteOEBcPDwPzstpqs9SMvCn8PqlvRU3O7jk=",
"range": "bytes=1102-351141"
},
"name": "curl",
"signature": {
"checksum": "sha1-iVKgcLEjgrpj4c2TrRzHznPaWXA=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/curl-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Z+SM+vpGp+/jWzyNX/wa0kmYDU4=",
"control": {
"checksum": "sha1-Z+SM+vpGp+/jWzyNX/wa0kmYDU4=",
"range": "bytes=703-1076"
},
"data": {
"checksum": "sha256-WBjs9+V+QSPxgsIAAVUuxJQI+X/Cq+xxmSU9t5VjP4E=",
"range": "bytes=1077-15464443"
},
"name": "prometheus-node-exporter",
"signature": {
"checksum": "sha1-kKFsGOdXdjcKOWsi1CBofOkkRtU=",
"range": "bytes=0-702"
},
"url": "https://packages.wolfi.dev/os/x86_64/prometheus-node-exporter-1.7.0-r5.apk",
"version": "1.7.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1lvoD8CoCRqulbibjC3gSGuEe8K0=",
"control": {
"checksum": "sha1-lvoD8CoCRqulbibjC3gSGuEe8K0=",
"range": "bytes=702-1035"
},
"data": {
"checksum": "sha256-YB3jK9thvtrl7FCbwBPhBgHnz6ncykVxex/dHC4wYc8=",
"range": "bytes=1036-3022935"
},
"name": "tzdata",
"signature": {
"checksum": "sha1-AJ7WqmxNNMiSUQ8WuwjXg5Y23Gw=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/tzdata-2024a-r0.apk",
"version": "2024a-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1JVK/s+yGDiDotAujuHcQwzrchvI=",
"control": {
"checksum": "sha1-JVK/s+yGDiDotAujuHcQwzrchvI=",
"range": "bytes=699-1099"
},
"data": {
"checksum": "sha256-6MWjAN767fVREf1xZ18eV4QLzKBUdZusnhj7ljPZuhU=",
"range": "bytes=1100-786256"
},
"name": "wget",
"signature": {
"checksum": "sha1-cJ/swsh0XVO9ISogqXDo8oBBG7M=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/wget-1.24.5-r0.apk",
"version": "1.24.5-r0"
}
],
"repositories": [
{
"architecture": "x86_64",
"name": "packages.wolfi.dev/os/x86_64",
"url": "https://packages.wolfi.dev/os/x86_64/APKINDEX.tar.gz"
},
{
"architecture": "x86_64",
"name": "@sourcegraph https://packages.sgdev.org/main/x86_64",
"url": "@sourcegraph https://packages.sgdev.org/main/x86_64/APKINDEX.tar.gz"
}
]
},
"version": "v1"
}

View File

@ -4,5 +4,3 @@ contents:
packages:
## node-exporter-specific packages
- prometheus-node-exporter
# MANUAL REBUILD: Wed Oct 11 09:59:22 BST 2023

View File

@ -0,0 +1,847 @@
{
"configHash": "5a0268fd9f97fb07a973a0cd9dffaf29e128a82c2245ae65ed2b2eb0aa08032c",
"contents": {
"keyring": [
{
"name": "packages.wolfi.dev/os/wolfi-signing.rsa.pub",
"url": "https://packages.wolfi.dev/os/wolfi-signing.rsa.pub"
},
{
"name": "packages.sgdev.org/sourcegraph-melange-prod.rsa.pub",
"url": "https://packages.sgdev.org/sourcegraph-melange-prod.rsa.pub"
}
],
"packages": [
{
"architecture": "x86_64",
"checksum": "Q1YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"control": {
"checksum": "sha1-YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"range": "bytes=696-1032"
},
"data": {
"checksum": "sha256-5hhCQURRrKVfPk8TOZVxfjceIUkVE0fh3/vEJBk88Ps=",
"range": "bytes=1033-256258"
},
"name": "ca-certificates-bundle",
"signature": {
"checksum": "sha1-E1NIpx8yCH6x5GcSqB4MzKQxuq4=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240315-r0.apk",
"version": "20240315-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1OHhyuiUviNHTg939DA0lyeRee18=",
"control": {
"checksum": "sha1-OHhyuiUviNHTg939DA0lyeRee18=",
"range": "bytes=702-1052"
},
"data": {
"checksum": "sha256-om3EZzEM+3dD9a77sOB2uOuAKBlf7XoUW/ORnDHQvZY=",
"range": "bytes=1053-125427"
},
"name": "wolfi-baselayout",
"signature": {
"checksum": "sha1-1CcRiULOFhX8ldA/Ae2qCMUGNmQ=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/wolfi-baselayout-20230201-r7.apk",
"version": "20230201-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1DyZ5L88J9MmDMYgbsywXdJdnw04=",
"control": {
"checksum": "sha1-DyZ5L88J9MmDMYgbsywXdJdnw04=",
"range": "bytes=699-1107"
},
"data": {
"checksum": "sha256-3xIIHf7osttdb7FoJTbfURbo4YuaB3knm5Kd3B5p+dI=",
"range": "bytes=1108-267814"
},
"name": "ld-linux",
"signature": {
"checksum": "sha1-lxFSv68mPMJwO+PthEdXfKHuLWk=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"control": {
"checksum": "sha1-UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"range": "bytes=696-1051"
},
"data": {
"checksum": "sha256-NaRRsIIgVTbofef14Qsnf+rysYDJXOXPKgfj6bAhP94=",
"range": "bytes=1052-408274"
},
"name": "glibc-locale-posix",
"signature": {
"checksum": "sha1-Iug0EjR+0K/k6fl0wi0prJHKBBo=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"control": {
"checksum": "sha1-PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"range": "bytes=695-1321"
},
"data": {
"checksum": "sha256-D6XvEcPrHmlsiI6HbbE51xmiTM1c5y6DV4MrHrCVuNo=",
"range": "bytes=1322-5861480"
},
"name": "glibc",
"signature": {
"checksum": "sha1-ypPC9SJASGEATsvLoDuEEUobhAs=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"control": {
"checksum": "sha1-mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"range": "bytes=704-1079"
},
"data": {
"checksum": "sha256-xE4spLqr7qIgImPfMC1kMY1a7Xu7xu1/eLkBMgOzSSc=",
"range": "bytes=1080-77936"
},
"name": "protobuf-c",
"signature": {
"checksum": "sha1-NGL0ELlBK8mhhAzuOkm17d2LbRo=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/protobuf-c-1.5.0-r3.apk",
"version": "1.5.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q135v8eEv8ZI/s/HXKkE96INoEoJk=",
"control": {
"checksum": "sha1-35v8eEv8ZI/s/HXKkE96INoEoJk=",
"range": "bytes=704-1040"
},
"data": {
"checksum": "sha256-3y4Tb3jy8M/ZXhnY6jxwj2YQFhdjLr/kjXhqJX7I+is=",
"range": "bytes=1041-27155"
},
"name": "krb5-conf",
"signature": {
"checksum": "sha1-WWjewHF5gekYrUPqdUHQEPIc97M=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-conf-1.0-r1.apk",
"version": "1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1TAnNLCVTaCylmbN84TlliyM47qM=",
"control": {
"checksum": "sha1-TAnNLCVTaCylmbN84TlliyM47qM=",
"range": "bytes=704-1069"
},
"data": {
"checksum": "sha256-+6lzaltti6IVf7RNynwcL9LmP9cJKMOjONPFUhHtnsA=",
"range": "bytes=1070-57492"
},
"name": "keyutils-libs",
"signature": {
"checksum": "sha1-MY+r6+HKyYcrgJtVqyG50KdP+QY=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/keyutils-libs-1.6.3-r1.apk",
"version": "1.6.3-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"control": {
"checksum": "sha1-baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"range": "bytes=700-1058"
},
"data": {
"checksum": "sha256-9BtoieN8gK8o4nzCDUyWkp6RmEsXrOwdu/XeTdZtDSE=",
"range": "bytes=1059-61938"
},
"name": "libverto",
"signature": {
"checksum": "sha1-TVkKg7JApxa7nvaj9DNvOsTv3Io=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/libverto-0.3.2-r1.apk",
"version": "0.3.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1M+CfES+G7micWuVpGjyxcTOj9zQ=",
"control": {
"checksum": "sha1-M+CfES+G7micWuVpGjyxcTOj9zQ=",
"range": "bytes=702-1120"
},
"data": {
"checksum": "sha256-UqwHAn95sL7AsIRMN0DM1TtSJ2Q5KD1WN4+uU8+Knqg=",
"range": "bytes=1121-52564"
},
"name": "libcom_err",
"signature": {
"checksum": "sha1-qciIi1MZRLclhn8K+GnrOJlNNfE=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcom_err-1.47.0-r1.apk",
"version": "1.47.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q13piSoRiT6p5eziGu2iPxSkXxf+g=",
"control": {
"checksum": "sha1-3piSoRiT6p5eziGu2iPxSkXxf+g=",
"range": "bytes=704-1039"
},
"data": {
"checksum": "sha256-+iLQJV5/mU/hTpwsy9zYBfzVIVkd8lXBBqMScHFhHfI=",
"range": "bytes=1040-87982"
},
"name": "openssl-config",
"signature": {
"checksum": "sha1-fsygjfZl7YLgdpBZ5OVKJG/N2HI=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/openssl-config-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1kERnIFBBwTWZsA+cmGLkIU75THk=",
"control": {
"checksum": "sha1-kERnIFBBwTWZsA+cmGLkIU75THk=",
"range": "bytes=694-1066"
},
"data": {
"checksum": "sha256-MB5ZoAsBJ0Osps0a1V0KsM/qQhfZQvYupElgoF1rNLE=",
"range": "bytes=1067-5895270"
},
"name": "libcrypto3",
"signature": {
"checksum": "sha1-vTJq+p2AjVQQjJ4gSkR9ySDQr3k=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypto3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1RFDJtvcstAQi4NjU00ApvNIvoEI=",
"control": {
"checksum": "sha1-RFDJtvcstAQi4NjU00ApvNIvoEI=",
"range": "bytes=694-1065"
},
"data": {
"checksum": "sha256-oocCJOj9IF7jv3Ov8bPbaAGfq6oaYXuPNnZW9DnOdnE=",
"range": "bytes=1066-1135402"
},
"name": "libssl3",
"signature": {
"checksum": "sha1-wJVFcqH/ewopq4lxwz8OYrZ9/Ws=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libssl3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"control": {
"checksum": "sha1-myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"range": "bytes=698-1216"
},
"data": {
"checksum": "sha256-elcsQDiEgNifO11g4MoJLGo5XJu8wQZaytjIKYxzVjw=",
"range": "bytes=1217-2564165"
},
"name": "krb5-libs",
"signature": {
"checksum": "sha1-NdbRDYVgwMQYQQrqt9GSGuBkjuA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-libs-1.21.2-r1.apk",
"version": "1.21.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"control": {
"checksum": "sha1-BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"range": "bytes=699-1059"
},
"data": {
"checksum": "sha256-Rp339LV5T4+zr98USK12eoyKGF84NviKlq3jh1AvbQQ=",
"range": "bytes=1060-96440"
},
"name": "fstrm",
"signature": {
"checksum": "sha1-tOY0x5olyX6V9uRtlgxtf4WEhR0=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/fstrm-0.6.1-r1.apk",
"version": "0.6.1-r1"
},
{
"architecture": "x86_64",
"checksum": "Q126C/3voUst+sFakQOGVOKucs6v8=",
"control": {
"checksum": "sha1-26C/3voUst+sFakQOGVOKucs6v8=",
"range": "bytes=698-1076"
},
"data": {
"checksum": "sha256-S2VfC729Glys7iRmR7sX4RoS4LLyNi9KmSzDc8wkKrQ=",
"range": "bytes=1077-277291"
},
"name": "libuv",
"signature": {
"checksum": "sha1-23pSGkhyhlBtbVxNtDXYlWnt+vk=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libuv-1.48.0-r0.apk",
"version": "1.48.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1ybud27/W+hJ0asiUj3hfrXVjcMs=",
"control": {
"checksum": "sha1-ybud27/W+hJ0asiUj3hfrXVjcMs=",
"range": "bytes=698-1081"
},
"data": {
"checksum": "sha256-3uFtBCAT2Gu/AplcYbKYMCuMMC94JLJDNyoWnSMLqjc=",
"range": "bytes=1082-156680"
},
"name": "zlib",
"signature": {
"checksum": "sha1-JYfhgb71ZjFG0VIAKLwOQSlHmlg=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/zlib-1.3.1-r0.apk",
"version": "1.3.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"control": {
"checksum": "sha1-txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"range": "bytes=703-1071"
},
"data": {
"checksum": "sha256-QgGnbFCQGaCUjwfFVcF2eOXDjZHaJjntdJlM1thwxd0=",
"range": "bytes=1072-252873"
},
"name": "libnghttp2-14",
"signature": {
"checksum": "sha1-VWNh1CR9wcBEPwOH88Qr6n7OR08=",
"range": "bytes=0-702"
},
"url": "https://packages.wolfi.dev/os/x86_64/libnghttp2-14-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"control": {
"checksum": "sha1-cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"range": "bytes=697-1073"
},
"data": {
"checksum": "sha256-7m+RnrAOS8ZCnFW/j2P2NcQJxOzfwSjOLYhEZXIwBG8=",
"range": "bytes=1074-114096"
},
"name": "libev",
"signature": {
"checksum": "sha1-PUsxiEtEuEoDpgKP2L36G/X55s0=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libev-4.33-r4.apk",
"version": "4.33-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"control": {
"checksum": "sha1-jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"range": "bytes=708-1084"
},
"data": {
"checksum": "sha256-v6jAIoRu7n3hQJ8nwWCLtvRsszuMGCAEyZm4zUF1cVI=",
"range": "bytes=1085-185893"
},
"name": "libgcc",
"signature": {
"checksum": "sha1-3fVn7jRkfOtxSgpmdey4iJJqQPM=",
"range": "bytes=0-707"
},
"url": "https://packages.wolfi.dev/os/x86_64/libgcc-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1NsUsznaiP7XyU6U/5pssXQgGJgU=",
"control": {
"checksum": "sha1-NsUsznaiP7XyU6U/5pssXQgGJgU=",
"range": "bytes=701-1093"
},
"data": {
"checksum": "sha256-0XrQ++geRWYRUazF23zdsuGVLFkiIDM1FKmAbbz9ojQ=",
"range": "bytes=1094-3156830"
},
"name": "libstdc++",
"signature": {
"checksum": "sha1-Zu2LUNkKQt3BnFU9+4PX0ud8D6Q=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libstdc++-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1EHyaNLx1UadaqJXEC86gtIjZGMM=",
"control": {
"checksum": "sha1-EHyaNLx1UadaqJXEC86gtIjZGMM=",
"range": "bytes=696-1076"
},
"data": {
"checksum": "sha256-+ValBcpIsLeYUFo73SZrUM2vpLGefts7Qx95EPMATaY=",
"range": "bytes=1077-232308"
},
"name": "c-ares",
"signature": {
"checksum": "sha1-OtwgYMiySwl+l6divnnSgQu+QUg=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/c-ares-1.28.1-r0.apk",
"version": "1.28.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"control": {
"checksum": "sha1-YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"range": "bytes=701-1168"
},
"data": {
"checksum": "sha256-KnMN4TtaDNZqReNINaTivjzUoQigGvtRZgVEqc1EDHo=",
"range": "bytes=1169-2555088"
},
"name": "nghttp2",
"signature": {
"checksum": "sha1-MWKiH9LAxjnWqAm536DCFrsZXCg=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"control": {
"checksum": "sha1-D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"range": "bytes=700-1067"
},
"data": {
"checksum": "sha256-fKV2YLH6EP/NFtRSErdaCwZX+Mg6KJrfmt1VpRWeKis=",
"range": "bytes=1068-634389"
},
"name": "nghttp2-dev",
"signature": {
"checksum": "sha1-ZRWYUK14qaTBE3NC7OOWumdkSyY=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-dev-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1sJOz3InYXKj1qNN3oPm3pb30VO0=",
"control": {
"checksum": "sha1-sJOz3InYXKj1qNN3oPm3pb30VO0=",
"range": "bytes=697-1149"
},
"data": {
"checksum": "sha256-fahwYvY6Lv9AhtEHBsSaoFAoKFWlvbbVC8jYGuRmTcg=",
"range": "bytes=1150-2380016"
},
"name": "xz",
"signature": {
"checksum": "sha1-aQxFIS7BG8u/jlY2JU8oQIEloYw=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/xz-5.4.6-r0.apk",
"version": "5.4.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"control": {
"checksum": "sha1-aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"range": "bytes=699-1084"
},
"data": {
"checksum": "sha256-Wc0u/JyHwxC7ubVFz4UlXEc5URwWiBZm4jNKqVv9LF0=",
"range": "bytes=1085-4698210"
},
"name": "libxml2",
"signature": {
"checksum": "sha1-v7pbNfh/TdC3LzRewdC3GeA9rec=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxml2-2.12.6-r0.apk",
"version": "2.12.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1l9z4OGVfdVISNbyGQdXlz2GPchM=",
"control": {
"checksum": "sha1-l9z4OGVfdVISNbyGQdXlz2GPchM=",
"range": "bytes=695-1222"
},
"data": {
"checksum": "sha256-0Z+mq/0A1P+F5KIZKnsYpg8Eqb3GDRT7VDrZlTEg+4Y=",
"range": "bytes=1223-3863194"
},
"name": "bind-libs",
"signature": {
"checksum": "sha1-YX2+1oZh/hXHVjZriSnJZQzpifg=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-libs-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"control": {
"checksum": "sha1-Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"range": "bytes=705-1217"
},
"data": {
"checksum": "sha256-/0zOh1KQW58NOuJgauDOdqJA4G4g0p6jPUOP45HN/f8=",
"range": "bytes=1218-892798"
},
"name": "bind-tools",
"signature": {
"checksum": "sha1-3GgaViNXeX4dd75pxgwR8yYgov0=",
"range": "bytes=0-704"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-tools-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q11cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"control": {
"checksum": "sha1-1cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"range": "bytes=698-1093"
},
"data": {
"checksum": "sha256-t284K9/cZQaQMy4y4nYXMIjKUTbyaBa/QnUj0cYmTNk=",
"range": "bytes=1094-234977"
},
"name": "libxcrypt",
"signature": {
"checksum": "sha1-hhR4Puw7nMj2H9OzUMTKhK1/7N0=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxcrypt-4.4.36-r4.apk",
"version": "4.4.36-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"control": {
"checksum": "sha1-szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"range": "bytes=698-1101"
},
"data": {
"checksum": "sha256-hrc/6rvJR5nb97Gu5Hep8419+WyFmd7maV78ni7zQAc=",
"range": "bytes=1102-21604"
},
"name": "libcrypt1",
"signature": {
"checksum": "sha1-Jk/8hSLRyZ7scdep1XfbpKABePY=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q17FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"control": {
"checksum": "sha1-7FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"range": "bytes=701-1208"
},
"data": {
"checksum": "sha256-67DYE+o9zQIS2KUyXkBN8SAEkWVh2+isnGTn78VdLMg=",
"range": "bytes=1209-636015"
},
"name": "busybox",
"signature": {
"checksum": "sha1-70uMRez2BMN2clrT3wFBWsR5Gew=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/busybox-1.36.1-r7.apk",
"version": "1.36.1-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"control": {
"checksum": "sha1-f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"range": "bytes=706-1103"
},
"data": {
"checksum": "sha256-ttIYvsu5Vp2YYKv/C7vK1hFUI8kNsOJxD65/SsOtWvQ=",
"range": "bytes=1104-2862070"
},
"name": "libunistring",
"signature": {
"checksum": "sha1-IwR2lnVv+Ixi8qtznw+ruuV9OVw=",
"range": "bytes=0-705"
},
"url": "https://packages.wolfi.dev/os/x86_64/libunistring-1.2-r0.apk",
"version": "1.2-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1tBy70+JqCVQbecHMDxN0U9PKn8k=",
"control": {
"checksum": "sha1-tBy70+JqCVQbecHMDxN0U9PKn8k=",
"range": "bytes=697-1102"
},
"data": {
"checksum": "sha256-xFjkADRrilqBaMgedKfRkaUGOqAlLDunZnmM/nggwDo=",
"range": "bytes=1103-411419"
},
"name": "libidn2",
"signature": {
"checksum": "sha1-AkpnAB73nCuJM4BJIXJsWn2/urk=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libidn2-2.3.7-r0.apk",
"version": "2.3.7-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"control": {
"checksum": "sha1-QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"range": "bytes=702-1082"
},
"data": {
"checksum": "sha256-cEuUD1tNXYeUHPC7dK9BSHOx8vt7IIRBGd181Sd0RXA=",
"range": "bytes=1083-114314"
},
"name": "libpsl",
"signature": {
"checksum": "sha1-H2Bp5J4UMCXPQlfvEiFxLXG5rEY=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libpsl-0.21.5-r0.apk",
"version": "0.21.5-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1LcDEPPjJrWwhueUvesRr4kLyGPI=",
"control": {
"checksum": "sha1-LcDEPPjJrWwhueUvesRr4kLyGPI=",
"range": "bytes=707-1052"
},
"data": {
"checksum": "sha256-xtIiQnSjJGdZnAzaBoJD6q3TbCpnAwTfD9SvbafkaP0=",
"range": "bytes=1053-174068"
},
"name": "libbrotlicommon1",
"signature": {
"checksum": "sha1-kcyKhs8jgdpGEEUhbyXHPJQpvyM=",
"range": "bytes=0-706"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlicommon1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q10jZlLouHAzMUvZYphGGNjOoZ1ug=",
"control": {
"checksum": "sha1-0jZlLouHAzMUvZYphGGNjOoZ1ug=",
"range": "bytes=701-1051"
},
"data": {
"checksum": "sha256-nx7lapEgf5fd4ZrtBxqXtAWE0tEVndBBEwXOUbhY2OA=",
"range": "bytes=1052-81979"
},
"name": "libbrotlidec1",
"signature": {
"checksum": "sha1-iUdAt3okR6P8rJ4sNv4yjC0I8Ys=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlidec1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"control": {
"checksum": "sha1-CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"range": "bytes=701-1140"
},
"data": {
"checksum": "sha256-2EP9UQKOVph+9hElnh20s8ViX126cAnPyNI+IF2pQ4Y=",
"range": "bytes=1141-838149"
},
"name": "libcurl-openssl4",
"signature": {
"checksum": "sha1-IxMuIpRYevSLukva0eWmB5RkhMY=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcurl-openssl4-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"control": {
"checksum": "sha1-DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"range": "bytes=700-1101"
},
"data": {
"checksum": "sha256-l1iebyEPmteOEBcPDwPzstpqs9SMvCn8PqlvRU3O7jk=",
"range": "bytes=1102-351141"
},
"name": "curl",
"signature": {
"checksum": "sha1-iVKgcLEjgrpj4c2TrRzHznPaWXA=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/curl-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"control": {
"checksum": "sha1-Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"range": "bytes=660-1019"
},
"data": {
"checksum": "sha256-Acu4swCJY4zVqLGpjN7PJzQ6juyZajEZ/xlJeahCk4k=",
"range": "bytes=1020-173298"
},
"name": "mailcap",
"signature": {
"checksum": "sha1-fFIHN05okWjQyXdVrXiU2HpqEC4=",
"range": "bytes=0-659"
},
"url": "https://packages.wolfi.dev/os/x86_64/mailcap-2.1.54-r0.apk",
"version": "2.1.54-r0"
},
{
"architecture": "x86_64",
"checksum": "Q15QqBPtaweR5J4BdwDGPX/8RMB/c=",
"control": {
"checksum": "sha1-5QqBPtaweR5J4BdwDGPX/8RMB/c=",
"range": "bytes=660-1055"
},
"data": {
"checksum": "sha256-NOl2jSuCf2PMpuXZAxHLqjb6MfTThv3mr0sjaTbUTt4=",
"range": "bytes=1056-101706215"
},
"name": "opentelemetry-collector",
"signature": {
"checksum": "sha1-Xe1kI+sv8p+m0ZIMkiQFbxHfrfI=",
"range": "bytes=0-659"
},
"url": "https://packages.sgdev.org/main/x86_64/opentelemetry-collector-0.92.0-r5.apk",
"version": "0.92.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1m7SsrH+XnrPIapzhnK0vkoxMen4=",
"control": {
"checksum": "sha1-m7SsrH+XnrPIapzhnK0vkoxMen4=",
"range": "bytes=698-1077"
},
"data": {
"checksum": "sha256-0WaULqZyE0zNNC6D7YeaXVN4shAVEouyqAEiRlB09C0=",
"range": "bytes=1078-54479"
},
"name": "tini",
"signature": {
"checksum": "sha1-eomfhWCyCB1OA/2DHboLUzXunvA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/tini-0.19.0-r3.apk",
"version": "0.19.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q1lvoD8CoCRqulbibjC3gSGuEe8K0=",
"control": {
"checksum": "sha1-lvoD8CoCRqulbibjC3gSGuEe8K0=",
"range": "bytes=702-1035"
},
"data": {
"checksum": "sha256-YB3jK9thvtrl7FCbwBPhBgHnz6ncykVxex/dHC4wYc8=",
"range": "bytes=1036-3022935"
},
"name": "tzdata",
"signature": {
"checksum": "sha1-AJ7WqmxNNMiSUQ8WuwjXg5Y23Gw=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/tzdata-2024a-r0.apk",
"version": "2024a-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1JVK/s+yGDiDotAujuHcQwzrchvI=",
"control": {
"checksum": "sha1-JVK/s+yGDiDotAujuHcQwzrchvI=",
"range": "bytes=699-1099"
},
"data": {
"checksum": "sha256-6MWjAN767fVREf1xZ18eV4QLzKBUdZusnhj7ljPZuhU=",
"range": "bytes=1100-786256"
},
"name": "wget",
"signature": {
"checksum": "sha1-cJ/swsh0XVO9ISogqXDo8oBBG7M=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/wget-1.24.5-r0.apk",
"version": "1.24.5-r0"
}
],
"repositories": [
{
"architecture": "x86_64",
"name": "packages.wolfi.dev/os/x86_64",
"url": "https://packages.wolfi.dev/os/x86_64/APKINDEX.tar.gz"
},
{
"architecture": "x86_64",
"name": "@sourcegraph https://packages.sgdev.org/main/x86_64",
"url": "@sourcegraph https://packages.sgdev.org/main/x86_64/APKINDEX.tar.gz"
}
]
},
"version": "v1"
}

View File

@ -15,5 +15,3 @@ paths:
permissions: 0o755
work-dir: /otel-collector
# MANUAL REBUILD: Wed Oct 11 09:59:22 BST 2023

View File

@ -0,0 +1,809 @@
{
"configHash": "06d2a80268bc9f5b32ea45ea272dd6fb6daa50a93d77f13521972e4076c46e32",
"contents": {
"keyring": [
{
"name": "packages.wolfi.dev/os/wolfi-signing.rsa.pub",
"url": "https://packages.wolfi.dev/os/wolfi-signing.rsa.pub"
},
{
"name": "packages.sgdev.org/sourcegraph-melange-prod.rsa.pub",
"url": "https://packages.sgdev.org/sourcegraph-melange-prod.rsa.pub"
}
],
"packages": [
{
"architecture": "x86_64",
"checksum": "Q1YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"control": {
"checksum": "sha1-YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"range": "bytes=696-1032"
},
"data": {
"checksum": "sha256-5hhCQURRrKVfPk8TOZVxfjceIUkVE0fh3/vEJBk88Ps=",
"range": "bytes=1033-256258"
},
"name": "ca-certificates-bundle",
"signature": {
"checksum": "sha1-E1NIpx8yCH6x5GcSqB4MzKQxuq4=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240315-r0.apk",
"version": "20240315-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1OHhyuiUviNHTg939DA0lyeRee18=",
"control": {
"checksum": "sha1-OHhyuiUviNHTg939DA0lyeRee18=",
"range": "bytes=702-1052"
},
"data": {
"checksum": "sha256-om3EZzEM+3dD9a77sOB2uOuAKBlf7XoUW/ORnDHQvZY=",
"range": "bytes=1053-125427"
},
"name": "wolfi-baselayout",
"signature": {
"checksum": "sha1-1CcRiULOFhX8ldA/Ae2qCMUGNmQ=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/wolfi-baselayout-20230201-r7.apk",
"version": "20230201-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1DyZ5L88J9MmDMYgbsywXdJdnw04=",
"control": {
"checksum": "sha1-DyZ5L88J9MmDMYgbsywXdJdnw04=",
"range": "bytes=699-1107"
},
"data": {
"checksum": "sha256-3xIIHf7osttdb7FoJTbfURbo4YuaB3knm5Kd3B5p+dI=",
"range": "bytes=1108-267814"
},
"name": "ld-linux",
"signature": {
"checksum": "sha1-lxFSv68mPMJwO+PthEdXfKHuLWk=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"control": {
"checksum": "sha1-UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"range": "bytes=696-1051"
},
"data": {
"checksum": "sha256-NaRRsIIgVTbofef14Qsnf+rysYDJXOXPKgfj6bAhP94=",
"range": "bytes=1052-408274"
},
"name": "glibc-locale-posix",
"signature": {
"checksum": "sha1-Iug0EjR+0K/k6fl0wi0prJHKBBo=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"control": {
"checksum": "sha1-PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"range": "bytes=695-1321"
},
"data": {
"checksum": "sha256-D6XvEcPrHmlsiI6HbbE51xmiTM1c5y6DV4MrHrCVuNo=",
"range": "bytes=1322-5861480"
},
"name": "glibc",
"signature": {
"checksum": "sha1-ypPC9SJASGEATsvLoDuEEUobhAs=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"control": {
"checksum": "sha1-mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"range": "bytes=704-1079"
},
"data": {
"checksum": "sha256-xE4spLqr7qIgImPfMC1kMY1a7Xu7xu1/eLkBMgOzSSc=",
"range": "bytes=1080-77936"
},
"name": "protobuf-c",
"signature": {
"checksum": "sha1-NGL0ELlBK8mhhAzuOkm17d2LbRo=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/protobuf-c-1.5.0-r3.apk",
"version": "1.5.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q135v8eEv8ZI/s/HXKkE96INoEoJk=",
"control": {
"checksum": "sha1-35v8eEv8ZI/s/HXKkE96INoEoJk=",
"range": "bytes=704-1040"
},
"data": {
"checksum": "sha256-3y4Tb3jy8M/ZXhnY6jxwj2YQFhdjLr/kjXhqJX7I+is=",
"range": "bytes=1041-27155"
},
"name": "krb5-conf",
"signature": {
"checksum": "sha1-WWjewHF5gekYrUPqdUHQEPIc97M=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-conf-1.0-r1.apk",
"version": "1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1TAnNLCVTaCylmbN84TlliyM47qM=",
"control": {
"checksum": "sha1-TAnNLCVTaCylmbN84TlliyM47qM=",
"range": "bytes=704-1069"
},
"data": {
"checksum": "sha256-+6lzaltti6IVf7RNynwcL9LmP9cJKMOjONPFUhHtnsA=",
"range": "bytes=1070-57492"
},
"name": "keyutils-libs",
"signature": {
"checksum": "sha1-MY+r6+HKyYcrgJtVqyG50KdP+QY=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/keyutils-libs-1.6.3-r1.apk",
"version": "1.6.3-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"control": {
"checksum": "sha1-baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"range": "bytes=700-1058"
},
"data": {
"checksum": "sha256-9BtoieN8gK8o4nzCDUyWkp6RmEsXrOwdu/XeTdZtDSE=",
"range": "bytes=1059-61938"
},
"name": "libverto",
"signature": {
"checksum": "sha1-TVkKg7JApxa7nvaj9DNvOsTv3Io=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/libverto-0.3.2-r1.apk",
"version": "0.3.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1M+CfES+G7micWuVpGjyxcTOj9zQ=",
"control": {
"checksum": "sha1-M+CfES+G7micWuVpGjyxcTOj9zQ=",
"range": "bytes=702-1120"
},
"data": {
"checksum": "sha256-UqwHAn95sL7AsIRMN0DM1TtSJ2Q5KD1WN4+uU8+Knqg=",
"range": "bytes=1121-52564"
},
"name": "libcom_err",
"signature": {
"checksum": "sha1-qciIi1MZRLclhn8K+GnrOJlNNfE=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcom_err-1.47.0-r1.apk",
"version": "1.47.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q13piSoRiT6p5eziGu2iPxSkXxf+g=",
"control": {
"checksum": "sha1-3piSoRiT6p5eziGu2iPxSkXxf+g=",
"range": "bytes=704-1039"
},
"data": {
"checksum": "sha256-+iLQJV5/mU/hTpwsy9zYBfzVIVkd8lXBBqMScHFhHfI=",
"range": "bytes=1040-87982"
},
"name": "openssl-config",
"signature": {
"checksum": "sha1-fsygjfZl7YLgdpBZ5OVKJG/N2HI=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/openssl-config-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1kERnIFBBwTWZsA+cmGLkIU75THk=",
"control": {
"checksum": "sha1-kERnIFBBwTWZsA+cmGLkIU75THk=",
"range": "bytes=694-1066"
},
"data": {
"checksum": "sha256-MB5ZoAsBJ0Osps0a1V0KsM/qQhfZQvYupElgoF1rNLE=",
"range": "bytes=1067-5895270"
},
"name": "libcrypto3",
"signature": {
"checksum": "sha1-vTJq+p2AjVQQjJ4gSkR9ySDQr3k=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypto3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1RFDJtvcstAQi4NjU00ApvNIvoEI=",
"control": {
"checksum": "sha1-RFDJtvcstAQi4NjU00ApvNIvoEI=",
"range": "bytes=694-1065"
},
"data": {
"checksum": "sha256-oocCJOj9IF7jv3Ov8bPbaAGfq6oaYXuPNnZW9DnOdnE=",
"range": "bytes=1066-1135402"
},
"name": "libssl3",
"signature": {
"checksum": "sha1-wJVFcqH/ewopq4lxwz8OYrZ9/Ws=",
"range": "bytes=0-693"
},
"url": "https://packages.wolfi.dev/os/x86_64/libssl3-3.2.1-r0.apk",
"version": "3.2.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"control": {
"checksum": "sha1-myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"range": "bytes=698-1216"
},
"data": {
"checksum": "sha256-elcsQDiEgNifO11g4MoJLGo5XJu8wQZaytjIKYxzVjw=",
"range": "bytes=1217-2564165"
},
"name": "krb5-libs",
"signature": {
"checksum": "sha1-NdbRDYVgwMQYQQrqt9GSGuBkjuA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-libs-1.21.2-r1.apk",
"version": "1.21.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"control": {
"checksum": "sha1-BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"range": "bytes=699-1059"
},
"data": {
"checksum": "sha256-Rp339LV5T4+zr98USK12eoyKGF84NviKlq3jh1AvbQQ=",
"range": "bytes=1060-96440"
},
"name": "fstrm",
"signature": {
"checksum": "sha1-tOY0x5olyX6V9uRtlgxtf4WEhR0=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/fstrm-0.6.1-r1.apk",
"version": "0.6.1-r1"
},
{
"architecture": "x86_64",
"checksum": "Q126C/3voUst+sFakQOGVOKucs6v8=",
"control": {
"checksum": "sha1-26C/3voUst+sFakQOGVOKucs6v8=",
"range": "bytes=698-1076"
},
"data": {
"checksum": "sha256-S2VfC729Glys7iRmR7sX4RoS4LLyNi9KmSzDc8wkKrQ=",
"range": "bytes=1077-277291"
},
"name": "libuv",
"signature": {
"checksum": "sha1-23pSGkhyhlBtbVxNtDXYlWnt+vk=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libuv-1.48.0-r0.apk",
"version": "1.48.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1ybud27/W+hJ0asiUj3hfrXVjcMs=",
"control": {
"checksum": "sha1-ybud27/W+hJ0asiUj3hfrXVjcMs=",
"range": "bytes=698-1081"
},
"data": {
"checksum": "sha256-3uFtBCAT2Gu/AplcYbKYMCuMMC94JLJDNyoWnSMLqjc=",
"range": "bytes=1082-156680"
},
"name": "zlib",
"signature": {
"checksum": "sha1-JYfhgb71ZjFG0VIAKLwOQSlHmlg=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/zlib-1.3.1-r0.apk",
"version": "1.3.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"control": {
"checksum": "sha1-txYNrxLRCA8tpCe/aXw9Zeb30xw=",
"range": "bytes=703-1071"
},
"data": {
"checksum": "sha256-QgGnbFCQGaCUjwfFVcF2eOXDjZHaJjntdJlM1thwxd0=",
"range": "bytes=1072-252873"
},
"name": "libnghttp2-14",
"signature": {
"checksum": "sha1-VWNh1CR9wcBEPwOH88Qr6n7OR08=",
"range": "bytes=0-702"
},
"url": "https://packages.wolfi.dev/os/x86_64/libnghttp2-14-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"control": {
"checksum": "sha1-cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"range": "bytes=697-1073"
},
"data": {
"checksum": "sha256-7m+RnrAOS8ZCnFW/j2P2NcQJxOzfwSjOLYhEZXIwBG8=",
"range": "bytes=1074-114096"
},
"name": "libev",
"signature": {
"checksum": "sha1-PUsxiEtEuEoDpgKP2L36G/X55s0=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libev-4.33-r4.apk",
"version": "4.33-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"control": {
"checksum": "sha1-jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"range": "bytes=708-1084"
},
"data": {
"checksum": "sha256-v6jAIoRu7n3hQJ8nwWCLtvRsszuMGCAEyZm4zUF1cVI=",
"range": "bytes=1085-185893"
},
"name": "libgcc",
"signature": {
"checksum": "sha1-3fVn7jRkfOtxSgpmdey4iJJqQPM=",
"range": "bytes=0-707"
},
"url": "https://packages.wolfi.dev/os/x86_64/libgcc-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1NsUsznaiP7XyU6U/5pssXQgGJgU=",
"control": {
"checksum": "sha1-NsUsznaiP7XyU6U/5pssXQgGJgU=",
"range": "bytes=701-1093"
},
"data": {
"checksum": "sha256-0XrQ++geRWYRUazF23zdsuGVLFkiIDM1FKmAbbz9ojQ=",
"range": "bytes=1094-3156830"
},
"name": "libstdc++",
"signature": {
"checksum": "sha1-Zu2LUNkKQt3BnFU9+4PX0ud8D6Q=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libstdc++-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1EHyaNLx1UadaqJXEC86gtIjZGMM=",
"control": {
"checksum": "sha1-EHyaNLx1UadaqJXEC86gtIjZGMM=",
"range": "bytes=696-1076"
},
"data": {
"checksum": "sha256-+ValBcpIsLeYUFo73SZrUM2vpLGefts7Qx95EPMATaY=",
"range": "bytes=1077-232308"
},
"name": "c-ares",
"signature": {
"checksum": "sha1-OtwgYMiySwl+l6divnnSgQu+QUg=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/c-ares-1.28.1-r0.apk",
"version": "1.28.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"control": {
"checksum": "sha1-YKX8zXXVrSZ1a+od3zegHGvE7K4=",
"range": "bytes=701-1168"
},
"data": {
"checksum": "sha256-KnMN4TtaDNZqReNINaTivjzUoQigGvtRZgVEqc1EDHo=",
"range": "bytes=1169-2555088"
},
"name": "nghttp2",
"signature": {
"checksum": "sha1-MWKiH9LAxjnWqAm536DCFrsZXCg=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"control": {
"checksum": "sha1-D/+xxUxpR+m3nGP5l/8Ed78nNC0=",
"range": "bytes=700-1067"
},
"data": {
"checksum": "sha256-fKV2YLH6EP/NFtRSErdaCwZX+Mg6KJrfmt1VpRWeKis=",
"range": "bytes=1068-634389"
},
"name": "nghttp2-dev",
"signature": {
"checksum": "sha1-ZRWYUK14qaTBE3NC7OOWumdkSyY=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-dev-1.60.0-r0.apk",
"version": "1.60.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1sJOz3InYXKj1qNN3oPm3pb30VO0=",
"control": {
"checksum": "sha1-sJOz3InYXKj1qNN3oPm3pb30VO0=",
"range": "bytes=697-1149"
},
"data": {
"checksum": "sha256-fahwYvY6Lv9AhtEHBsSaoFAoKFWlvbbVC8jYGuRmTcg=",
"range": "bytes=1150-2380016"
},
"name": "xz",
"signature": {
"checksum": "sha1-aQxFIS7BG8u/jlY2JU8oQIEloYw=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/xz-5.4.6-r0.apk",
"version": "5.4.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"control": {
"checksum": "sha1-aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"range": "bytes=699-1084"
},
"data": {
"checksum": "sha256-Wc0u/JyHwxC7ubVFz4UlXEc5URwWiBZm4jNKqVv9LF0=",
"range": "bytes=1085-4698210"
},
"name": "libxml2",
"signature": {
"checksum": "sha1-v7pbNfh/TdC3LzRewdC3GeA9rec=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxml2-2.12.6-r0.apk",
"version": "2.12.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1l9z4OGVfdVISNbyGQdXlz2GPchM=",
"control": {
"checksum": "sha1-l9z4OGVfdVISNbyGQdXlz2GPchM=",
"range": "bytes=695-1222"
},
"data": {
"checksum": "sha256-0Z+mq/0A1P+F5KIZKnsYpg8Eqb3GDRT7VDrZlTEg+4Y=",
"range": "bytes=1223-3863194"
},
"name": "bind-libs",
"signature": {
"checksum": "sha1-YX2+1oZh/hXHVjZriSnJZQzpifg=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-libs-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"control": {
"checksum": "sha1-Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"range": "bytes=705-1217"
},
"data": {
"checksum": "sha256-/0zOh1KQW58NOuJgauDOdqJA4G4g0p6jPUOP45HN/f8=",
"range": "bytes=1218-892798"
},
"name": "bind-tools",
"signature": {
"checksum": "sha1-3GgaViNXeX4dd75pxgwR8yYgov0=",
"range": "bytes=0-704"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-tools-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q11cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"control": {
"checksum": "sha1-1cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"range": "bytes=698-1093"
},
"data": {
"checksum": "sha256-t284K9/cZQaQMy4y4nYXMIjKUTbyaBa/QnUj0cYmTNk=",
"range": "bytes=1094-234977"
},
"name": "libxcrypt",
"signature": {
"checksum": "sha1-hhR4Puw7nMj2H9OzUMTKhK1/7N0=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxcrypt-4.4.36-r4.apk",
"version": "4.4.36-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"control": {
"checksum": "sha1-szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"range": "bytes=698-1101"
},
"data": {
"checksum": "sha256-hrc/6rvJR5nb97Gu5Hep8419+WyFmd7maV78ni7zQAc=",
"range": "bytes=1102-21604"
},
"name": "libcrypt1",
"signature": {
"checksum": "sha1-Jk/8hSLRyZ7scdep1XfbpKABePY=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q17FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"control": {
"checksum": "sha1-7FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"range": "bytes=701-1208"
},
"data": {
"checksum": "sha256-67DYE+o9zQIS2KUyXkBN8SAEkWVh2+isnGTn78VdLMg=",
"range": "bytes=1209-636015"
},
"name": "busybox",
"signature": {
"checksum": "sha1-70uMRez2BMN2clrT3wFBWsR5Gew=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/busybox-1.36.1-r7.apk",
"version": "1.36.1-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"control": {
"checksum": "sha1-f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"range": "bytes=706-1103"
},
"data": {
"checksum": "sha256-ttIYvsu5Vp2YYKv/C7vK1hFUI8kNsOJxD65/SsOtWvQ=",
"range": "bytes=1104-2862070"
},
"name": "libunistring",
"signature": {
"checksum": "sha1-IwR2lnVv+Ixi8qtznw+ruuV9OVw=",
"range": "bytes=0-705"
},
"url": "https://packages.wolfi.dev/os/x86_64/libunistring-1.2-r0.apk",
"version": "1.2-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1tBy70+JqCVQbecHMDxN0U9PKn8k=",
"control": {
"checksum": "sha1-tBy70+JqCVQbecHMDxN0U9PKn8k=",
"range": "bytes=697-1102"
},
"data": {
"checksum": "sha256-xFjkADRrilqBaMgedKfRkaUGOqAlLDunZnmM/nggwDo=",
"range": "bytes=1103-411419"
},
"name": "libidn2",
"signature": {
"checksum": "sha1-AkpnAB73nCuJM4BJIXJsWn2/urk=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libidn2-2.3.7-r0.apk",
"version": "2.3.7-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"control": {
"checksum": "sha1-QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"range": "bytes=702-1082"
},
"data": {
"checksum": "sha256-cEuUD1tNXYeUHPC7dK9BSHOx8vt7IIRBGd181Sd0RXA=",
"range": "bytes=1083-114314"
},
"name": "libpsl",
"signature": {
"checksum": "sha1-H2Bp5J4UMCXPQlfvEiFxLXG5rEY=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libpsl-0.21.5-r0.apk",
"version": "0.21.5-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1LcDEPPjJrWwhueUvesRr4kLyGPI=",
"control": {
"checksum": "sha1-LcDEPPjJrWwhueUvesRr4kLyGPI=",
"range": "bytes=707-1052"
},
"data": {
"checksum": "sha256-xtIiQnSjJGdZnAzaBoJD6q3TbCpnAwTfD9SvbafkaP0=",
"range": "bytes=1053-174068"
},
"name": "libbrotlicommon1",
"signature": {
"checksum": "sha1-kcyKhs8jgdpGEEUhbyXHPJQpvyM=",
"range": "bytes=0-706"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlicommon1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q10jZlLouHAzMUvZYphGGNjOoZ1ug=",
"control": {
"checksum": "sha1-0jZlLouHAzMUvZYphGGNjOoZ1ug=",
"range": "bytes=701-1051"
},
"data": {
"checksum": "sha256-nx7lapEgf5fd4ZrtBxqXtAWE0tEVndBBEwXOUbhY2OA=",
"range": "bytes=1052-81979"
},
"name": "libbrotlidec1",
"signature": {
"checksum": "sha1-iUdAt3okR6P8rJ4sNv4yjC0I8Ys=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlidec1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"control": {
"checksum": "sha1-CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"range": "bytes=701-1140"
},
"data": {
"checksum": "sha256-2EP9UQKOVph+9hElnh20s8ViX126cAnPyNI+IF2pQ4Y=",
"range": "bytes=1141-838149"
},
"name": "libcurl-openssl4",
"signature": {
"checksum": "sha1-IxMuIpRYevSLukva0eWmB5RkhMY=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcurl-openssl4-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"control": {
"checksum": "sha1-DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"range": "bytes=700-1101"
},
"data": {
"checksum": "sha256-l1iebyEPmteOEBcPDwPzstpqs9SMvCn8PqlvRU3O7jk=",
"range": "bytes=1102-351141"
},
"name": "curl",
"signature": {
"checksum": "sha1-iVKgcLEjgrpj4c2TrRzHznPaWXA=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/curl-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1gvtJ8wLt/qj2KMwI37796EiCOws=",
"control": {
"checksum": "sha1-gvtJ8wLt/qj2KMwI37796EiCOws=",
"range": "bytes=703-1080"
},
"data": {
"checksum": "sha256-+ah0KYZAyas3blgs4qTtdc9KgZkmI1GADOkbxfr8aok=",
"range": "bytes=1081-13096940"
},
"name": "prometheus-postgres-exporter",
"signature": {
"checksum": "sha1-46uaLZr9cEfwB5TzhvZwIPM+ej8=",
"range": "bytes=0-702"
},
"url": "https://packages.wolfi.dev/os/x86_64/prometheus-postgres-exporter-0.15.0-r6.apk",
"version": "0.15.0-r6"
},
{
"architecture": "x86_64",
"checksum": "Q1lvoD8CoCRqulbibjC3gSGuEe8K0=",
"control": {
"checksum": "sha1-lvoD8CoCRqulbibjC3gSGuEe8K0=",
"range": "bytes=702-1035"
},
"data": {
"checksum": "sha256-YB3jK9thvtrl7FCbwBPhBgHnz6ncykVxex/dHC4wYc8=",
"range": "bytes=1036-3022935"
},
"name": "tzdata",
"signature": {
"checksum": "sha1-AJ7WqmxNNMiSUQ8WuwjXg5Y23Gw=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/tzdata-2024a-r0.apk",
"version": "2024a-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1JVK/s+yGDiDotAujuHcQwzrchvI=",
"control": {
"checksum": "sha1-JVK/s+yGDiDotAujuHcQwzrchvI=",
"range": "bytes=699-1099"
},
"data": {
"checksum": "sha256-6MWjAN767fVREf1xZ18eV4QLzKBUdZusnhj7ljPZuhU=",
"range": "bytes=1100-786256"
},
"name": "wget",
"signature": {
"checksum": "sha1-cJ/swsh0XVO9ISogqXDo8oBBG7M=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/wget-1.24.5-r0.apk",
"version": "1.24.5-r0"
}
],
"repositories": [
{
"architecture": "x86_64",
"name": "packages.wolfi.dev/os/x86_64",
"url": "https://packages.wolfi.dev/os/x86_64/APKINDEX.tar.gz"
},
{
"architecture": "x86_64",
"name": "@sourcegraph https://packages.sgdev.org/main/x86_64",
"url": "@sourcegraph https://packages.sgdev.org/main/x86_64/APKINDEX.tar.gz"
}
]
},
"version": "v1"
}

Some files were not shown because too many files have changed in this diff Show More