From 1c20810102a9dcb2a84681c802398862012c78d7 Mon Sep 17 00:00:00 2001 From: "Piotr (ptab) Tabor" <132376425+sfc-gh-ptabor@users.noreply.github.com> Date: Thu, 18 Jan 2024 20:32:49 +0100 Subject: [PATCH] Rename .resolve targets (deprecated) to .lock targets (consistency with apko 0.13+) (#47) This PR is on top of: https://github.com/chainguard-dev/rules_apko/pull/41. Please review only the last commit: [Rename .resolve targets (deprecated) to .lock targets.](https://github.com/chainguard-dev/rules_apko/pull/47/commits/7ff68b2df4177121b50a63e59e65600e2bbe1346) Rename .resolve targets (deprecated) to .lock targets. This makes the naming uniform across apko (0.13+) and rules_apko. The old rules still exist, but emit a warning. From now going on, please use: `*.lock.json` file naming instead of `*.resolved.json`. Also `bazel run .../image.resolve` rule is deprecated and instead `bazel run .../image.lock` should be used. --- .gitattributes | 2 +- .prettierignore | 3 +- MODULE.bazel | 8 +- README.md | 16 +- apko/BUILD.bazel | 4 +- apko/private/apk.bzl | 2 +- apko/private/apko_image.bzl | 15 +- apko/translate_lock.bzl | 8 +- docs/apko-cache.md | 12 +- docs/rules.md | 2 +- docs/translate_lock.md | 6 +- e2e/smoke/MODULE.bazel | 2 +- e2e/smoke/WORKSPACE.bazel | 2 +- .../{apko.resolved.json => apko.lock.json} | 0 examples/{resolve.sh => lock.sh} | 2 +- examples/lock/BUILD.bazel | 2 +- .../{apko.resolved.json => apko.lock.json} | 0 examples/multi_arch_and_repo/BUILD.bazel | 2 +- .../{apko.resolved.json => apko.lock.json} | 104 ++++++------- examples/oci/BUILD.bazel | 2 +- .../{apko.resolved.json => apko.lock.json} | 142 +++++++++--------- examples/wolfi-base/BUILD.bazel | 2 +- .../{apko.resolved.json => apko.lock.json} | 142 +++++++++--------- scripts/update_locks.sh | 2 +- 24 files changed, 247 insertions(+), 235 deletions(-) rename e2e/smoke/{apko.resolved.json => apko.lock.json} (100%) rename examples/{resolve.sh => lock.sh} (64%) rename examples/lock/{apko.resolved.json => apko.lock.json} (100%) rename examples/multi_arch_and_repo/{apko.resolved.json => apko.lock.json} (95%) rename examples/oci/{apko.resolved.json => apko.lock.json} (83%) rename examples/wolfi-base/{apko.resolved.json => apko.lock.json} (83%) diff --git a/.gitattributes b/.gitattributes index ff10115..474baa3 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,4 +2,4 @@ docs/*.md linguist-generated=true docs/initial-setup.md linguist-generated=false docs/apko-cache.md linguist-generated=false MODULE.bazel.lock linguist-generated=true -**/apko.resolved.json linguist-generated=true \ No newline at end of file +**/apko.lock.json linguist-generated=true \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index af63be6..f25deaa 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,3 @@ docs/*.md -**/*.resolved.json \ No newline at end of file +**/*.resolved.json +**/*.lock.json \ No newline at end of file diff --git a/MODULE.bazel b/MODULE.bazel index d3435ff..721ecc9 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -31,19 +31,19 @@ apk = use_extension( ) apk.translate_lock( name = "examples_lock", - lock = "//examples/lock:apko.resolved.json", + lock = "//examples/lock:apko.lock.json", ) apk.translate_lock( name = "examples_wolfi_base", - lock = "//examples/wolfi-base:apko.resolved.json", + lock = "//examples/wolfi-base:apko.lock.json", ) apk.translate_lock( name = "examples_oci", - lock = "//examples/oci:apko.resolved.json", + lock = "//examples/oci:apko.lock.json", ) apk.translate_lock( name = "examples_multi_arch_and_repo", - lock = "//examples/multi_arch_and_repo:apko.resolved.json", + lock = "//examples/multi_arch_and_repo:apko.lock.json", ) use_repo(apk, "examples_multi_arch_and_repo") use_repo(apk, "examples_lock") diff --git a/README.md b/README.md index 060bde4..8252cef 100644 --- a/README.md +++ b/README.md @@ -20,10 +20,10 @@ using the GitHub-provided source archive like ## Usage -Apko usage begins with an `apko.yaml` configuration file. The `apko resolve` tool will create a corresponding -`apko.resolved.json` file, and this is where Bazel will read to fetch external content. +Apko usage begins with an `apko.yaml` configuration file. The `apko lock` tool will create a corresponding +`apko.lock.json` file, and this is where Bazel will read to fetch external content. Assuming `apko_rules` are already loaded in your `MODULE.bazel` or `WORKSPACE` file one can call: -`bazel run @rules_apko//apko resolve ./apko.yaml` to lock the dependencies and generate `apko.resolved.json` file. +`bazel run @rules_apko//apko lock ./apko.yaml` to lock the dependencies and generate `apko.lock.json` file. Than you import these base layers into Bazel: @@ -32,10 +32,10 @@ Than you import these base layers into Bazel: Now you can use the `apko_image` rule to build the image, producing an OCI format output. As long as the apko `.yaml` file is in the same directory as the `apko_image` you can periodically refresh the -`apko.resolved.json` file by just calling: `bazel run path/to/image.resolve`. -Alternatively you can call `apko resolve path/to/apko.yaml` or `bazel run @rules_apko//apko resolve path/to/apko.yaml` -to regenerate the `apko.resolved.json` file manually. -To resolve all the files in the repository, such a [snippet](./examples/resolve.sh) can be useful. +`apko.lock.json` file by just calling: `bazel run path/to/image.lock`. +Alternatively you can call `apko lock path/to/apko.yaml` or `bazel run @rules_apko//apko lock path/to/apko.yaml` +to regenerate the `apko.lock.json` file manually. +To resolve all the files in the repository, such a [snippet](./examples/lock.sh) can be useful. Finally, we recommend using as the next step in your Bazel build to add application code from your repo as the next layers of the image. @@ -46,5 +46,5 @@ Also see the `e2e` folder in this repository, where we declare our end-to-end te ## Public API -- [translate_lock](./docs/translate_lock.md) Repository rules for translating `apko.resolved.json` +- [translate_lock](./docs/translate_lock.md) Repository rules for translating `apko.lock.json` - [rules](./docs/rules.md) Build OCI images from APK packages directly without `Dockerfile` diff --git a/apko/BUILD.bazel b/apko/BUILD.bazel index 6b8fbfd..1734199 100644 --- a/apko/BUILD.bazel +++ b/apko/BUILD.bazel @@ -68,8 +68,8 @@ bzl_library( ) # Enables calling apko tool directly by bazel. -# To resolve given `./apko.yaml` file into `./apko.resolved.json`, once can call: -# e.g. (cd ./examples/oci; bazel run @rules_apko//apko resolve ./apko.yaml) +# To resolve given `./apko.yaml` file into `./apko.lock.json`, once can call: +# e.g. (cd ./examples/oci; bazel run @rules_apko//apko lock ./apko.yaml) apko_run( name = "apko", visibility = ["//visibility:public"], diff --git a/apko/private/apk.bzl b/apko/private/apk.bzl index 0617720..ebd9780 100644 --- a/apko/private/apk.bzl +++ b/apko/private/apk.bzl @@ -180,7 +180,7 @@ def _apk_filegroup_impl(ctx): apk_filegroup = rule( implementation = _apk_filegroup_impl, attrs = { - "lockfile": attr.label(doc = "Label to the `apko.resolved.json` file.", allow_single_file = True, mandatory = True), + "lockfile": attr.label(doc = "Label to the `apko.lock.json` file.", allow_single_file = True, mandatory = True), "keyrings": attr.label_list(doc = "Labels of the keyring (public key) files.", allow_files = True, mandatory = True), "apks": attr.label_list(doc = "Labels of the package (apk) files.", allow_files = True, mandatory = True), "indexes": attr.label_list(doc = "Labels of the APKINDEX files.", allow_files = True, mandatory = True), diff --git a/apko/private/apko_image.bzl b/apko/private/apko_image.bzl index ef3c9cd..818ead4 100644 --- a/apko/private/apko_image.bzl +++ b/apko/private/apko_image.bzl @@ -102,7 +102,7 @@ def apko_image(name, contents, config, tag, output = "oci", architecture = None, ) ``` - The label `@example_lock//:contents` is generated by the `translate_lock` extension, which consumes an 'apko.resolved.json' file. + The label `@example_lock//:contents` is generated by the `translate_lock` extension, which consumes an 'apko.lock.json' file. For more details, refer to the [documentation](./docs/apko-cache.md). An example demonstrating usage with [rules_oci](https://github.com/bazel-contrib/rules_oci) @@ -145,8 +145,18 @@ def apko_image(name, contents, config, tag, output = "oci", architecture = None, ) config_label = native.package_relative_label(config) - # We generate the `.resolve` target only if the config (apko.yaml file) is in the same package as the apko_image rule. + # We generate the `.lock` (or `.resolve`)s target only if the config (apko.yaml file) is in the same package as the apko_image rule. if config_label.workspace_name == "" and config_label.package == native.package_name() and config_label.name.endswith(".yaml"): + lock_json_name = config_label.name.removesuffix(".yaml") + ".lock.json" + + # We generate the .lock target only if the `.apko.lock.json` file exists in the same package. + for _ in native.glob([lock_json_name]): + apko_run( + name = name + ".lock", + args = ["lock", config_label.package + "/" + config_label.name], + workdir = "workspace", + ) + resolved_json_name = config_label.name.removesuffix(".yaml") + ".resolved.json" # We generate the .resolve target only if the `.apko.resolved.json` file exists in the same package. @@ -155,4 +165,5 @@ def apko_image(name, contents, config, tag, output = "oci", architecture = None, name = name + ".resolve", args = ["resolve", config_label.package + "/" + config_label.name], workdir = "workspace", + deprecated = "Please use .lock target instead. Rename your .resolve.json file to .lock.json file.", ) diff --git a/apko/translate_lock.bzl b/apko/translate_lock.bzl index 05c7845..9fef1a9 100644 --- a/apko/translate_lock.bzl +++ b/apko/translate_lock.bzl @@ -1,8 +1,8 @@ -"""Repository rules for translating apko.resolved.json""" +"""Repository rules for translating apko.lock.json""" load("//apko/private:util.bzl", "util") -_DOC = """Repository rule to generate starlark code from an `apko.resolved.json` file. +_DOC = """Repository rule to generate starlark code from an `apko.lock.json` file. See [apko-cache.md](./apko-cache.md) documentation. """ @@ -64,7 +64,7 @@ APK_KEYRING_TMPL = """\ def _translate_apko_lock_impl(rctx): lock_file = util.parse_lock(rctx.read(rctx.attr.lock)) - # We copy the lockfile (.resolved.json) to avoid visibility problems when we reference it from another module. + # We copy the lockfile (.lock.json) to avoid visibility problems when we reference it from another module. lock_file_local = "lockfile_copy" rctx.symlink(rctx.attr.lock, lock_file_local) @@ -124,7 +124,7 @@ def _translate_apko_lock_impl(rctx): translate_apko_lock = repository_rule( implementation = _translate_apko_lock_impl, attrs = { - "lock": attr.label(doc = "label to the `apko.resolved.json` file.", mandatory = True), + "lock": attr.label(doc = "label to the `apko.lock.json` file.", mandatory = True), "target_name": attr.string(doc = "internal. do not use!"), }, doc = _DOC, diff --git a/docs/apko-cache.md b/docs/apko-cache.md index 9a703bd..99e44eb 100644 --- a/docs/apko-cache.md +++ b/docs/apko-cache.md @@ -2,15 +2,15 @@ To ensure efficient operation, the `apko_image` rule must maintain a cache of remote contents that it fetches from repositories. While outside of Bazel, `apko` manages its own cache, under Bazel, the cache must be maintained by Bazel to ensure correctness and speed. Therefore, Bazel needs to know what needs to be fetched and from where to cache these HTTP requests and provide them to `apko` as required. -The `apko.resolved.json` file contains all the necessary information about how to perform the HTTP fetches required by `apko` to build the container image. +The `apko.lock.json` file contains all the necessary information about how to perform the HTTP fetches required by `apko` to build the container image. ## Generating the Lock File -> **Note:** Documentation for lockfile generation will be added once the `apko resolve` command is available. +> **Note:** Documentation for lockfile generation will be added once the `apko lock` command is available. ## Using `translate_lock` -Having just the `apko.resolved.json` file alone is insufficient; all the information needs to be converted into `apk_` repository calls to make them accessible to Bazel. The `translate_lock` tool accomplishes this by taking the `apko.resolved.json` file and dynamically generating the required Bazel repositories. +Having just the `apko/lock.json` file alone is insufficient; all the information needs to be converted into `apk_` repository calls to make them accessible to Bazel. The `translate_lock` tool accomplishes this by taking the `apko.lock.json` file and dynamically generating the required Bazel repositories. `translate_lock` will create a new bazel repository named after itself. this repository will also have a target named contents, which you can pass to apko_image: @@ -31,7 +31,7 @@ apk = use_extension("//apko:extensions.bzl", "apko") apk.translate_lock( name = "examples_lock", - lock = "//path/to/lock:apko.resolved.json", + lock = "//path/to/lock:apko.lock.json", ) use_repo(apk, "examples_lock") ``` @@ -43,10 +43,10 @@ load("@rules_apko//apko:translate_lock.bzl", "translate_apko_lock") translate_apko_lock( name = "example_lock", - lock = "//path/to/lock:apko.resolved.json", + lock = "//path/to/lock:apko.lock.json", ) load("@example_lock//:repositories.bzl", "apko_repositories") apko_repositories() -``` \ No newline at end of file +``` diff --git a/docs/rules.md b/docs/rules.md index 6ad7daf..4a14d8c 100644 --- a/docs/rules.md +++ b/docs/rules.md @@ -46,7 +46,7 @@ apko_image( ) ``` -The label `@example_lock//:contents` is generated by the `translate_lock` extension, which consumes an 'apko.resolved.json' file. +The label `@example_lock//:contents` is generated by the `translate_lock` extension, which consumes an 'apko.lock.json' file. For more details, refer to the [documentation](./docs/apko-cache.md). An example demonstrating usage with [rules_oci](https://github.com/bazel-contrib/rules_oci) diff --git a/docs/translate_lock.md b/docs/translate_lock.md index e3440ab..e4a0bcf 100644 --- a/docs/translate_lock.md +++ b/docs/translate_lock.md @@ -1,6 +1,6 @@ -Repository rules for translating apko.resolved.json +Repository rules for translating apko.lock.json @@ -10,7 +10,7 @@ Repository rules for translating apko.resolved.json translate_apko_lock(name, lock, repo_mapping, target_name) -Repository rule to generate starlark code from an `apko.resolved.json` file. +Repository rule to generate starlark code from an `apko.lock.json` file. See [apko-cache.md](./apko-cache.md) documentation. @@ -21,7 +21,7 @@ See [apko-cache.md](./apko-cache.md) documentation. | Name | Description | Type | Mandatory | Default | | :------------- | :------------- | :------------- | :------------- | :------------- | | name | A unique name for this repository. | Name | required | | -| lock | label to the apko.resolved.json file. | Label | required | | +| lock | label to the apko.lock.json file. | Label | required | | | repo_mapping | A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.<p>For example, an entry "@foo": "@bar" declares that, for any time this repository depends on @foo (such as a dependency on @foo//some:target, it should actually resolve that dependency within globally-declared @bar (@bar//some:target). | Dictionary: String -> String | required | | | target_name | internal. do not use! | String | optional | "" | diff --git a/e2e/smoke/MODULE.bazel b/e2e/smoke/MODULE.bazel index f4a0579..d056979 100644 --- a/e2e/smoke/MODULE.bazel +++ b/e2e/smoke/MODULE.bazel @@ -13,6 +13,6 @@ apko = use_extension( ) apko.translate_lock( name = "example_lock", - lock = "//:apko.resolved.json", + lock = "//:apko.lock.json", ) use_repo(apko, "example_lock") diff --git a/e2e/smoke/WORKSPACE.bazel b/e2e/smoke/WORKSPACE.bazel index 2838378..b907b34 100644 --- a/e2e/smoke/WORKSPACE.bazel +++ b/e2e/smoke/WORKSPACE.bazel @@ -24,7 +24,7 @@ load("@rules_apko//apko:translate_lock.bzl", "translate_apko_lock") translate_apko_lock( name = "example_lock", - lock = "@//:apko.resolved.json", + lock = "@//:apko.lock.json", ) load("@example_lock//:repositories.bzl", "apko_repositories") diff --git a/e2e/smoke/apko.resolved.json b/e2e/smoke/apko.lock.json similarity index 100% rename from e2e/smoke/apko.resolved.json rename to e2e/smoke/apko.lock.json diff --git a/examples/resolve.sh b/examples/lock.sh similarity index 64% rename from examples/resolve.sh rename to examples/lock.sh index a355ba1..f988780 100755 --- a/examples/resolve.sh +++ b/examples/lock.sh @@ -4,7 +4,7 @@ set -e -x -TARGETS=$(bazel query 'filter(".resolve$", kind("apko_run", ...))') +TARGETS=$(bazel query 'filter(".lock", kind("apko_run", ...))') for target in ${TARGETS}; do bazel run "${target}" done diff --git a/examples/lock/BUILD.bazel b/examples/lock/BUILD.bazel index 48d1f8a..addfb07 100644 --- a/examples/lock/BUILD.bazel +++ b/examples/lock/BUILD.bazel @@ -2,7 +2,7 @@ load("@rules_apko//apko:defs.bzl", "apko_image") load("@bazel_skylib//rules:build_test.bzl", "build_test") # An example demonstrating how to use alpine packages with a lock file. -# See MODULE.bazel for how apko.resolved.json is translated to @examples_lock//:contents +# See MODULE.bazel for how apko.lock.json is translated to @examples_lock//:contents apko_image( name = "lock", config = "apko.yaml", diff --git a/examples/lock/apko.resolved.json b/examples/lock/apko.lock.json similarity index 100% rename from examples/lock/apko.resolved.json rename to examples/lock/apko.lock.json diff --git a/examples/multi_arch_and_repo/BUILD.bazel b/examples/multi_arch_and_repo/BUILD.bazel index 5ed8709..f1f8c64 100644 --- a/examples/multi_arch_and_repo/BUILD.bazel +++ b/examples/multi_arch_and_repo/BUILD.bazel @@ -2,7 +2,7 @@ load("@rules_apko//apko:defs.bzl", "apko_image") load("@container_structure_test//:defs.bzl", "container_structure_test") # An example demonstrating how to use multi architecture alpine packages with a lock file. -# See MODULE.bazel for how apko.resolved.json is translated to @examples_multi_arch_and_repo//:contents +# See MODULE.bazel for how apko.lock.json is translated to @examples_multi_arch_and_repo//:contents apko_image( name = "image", architecture = select({ diff --git a/examples/multi_arch_and_repo/apko.resolved.json b/examples/multi_arch_and_repo/apko.lock.json similarity index 95% rename from examples/multi_arch_and_repo/apko.resolved.json rename to examples/multi_arch_and_repo/apko.lock.json index 5f7c6b2..2559a23 100755 --- a/examples/multi_arch_and_repo/apko.resolved.json +++ b/examples/multi_arch_and_repo/apko.lock.json @@ -84,22 +84,22 @@ }, { "name": "libcrypto3", - "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/aarch64/libcrypto3-3.1.4-r1.apk", - "version": "3.1.4-r1", + "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/aarch64/libcrypto3-3.1.4-r4.apk", + "version": "3.1.4-r4", "architecture": "aarch64", "signature": { - "range": "bytes=0-664", - "checksum": "sha1-OmhXrPR5x7+sHTz1ruPSBCfAn7I=" + "range": "bytes=0-663", + "checksum": "sha1-toqXgzatOuiHk5Pa67FYUag5xPw=" }, "control": { - "range": "bytes=665-1216", - "checksum": "sha1-tnZRge4hq6oZeLxX7uNWlz8omZg=" + "range": "bytes=664-1215", + "checksum": "sha1-0p89M81sV0xcgbyBpWcYIYtXQVA=" }, "data": { - "range": "bytes=1217-4329472", - "checksum": "sha256-xyrCM5nJmNUT0wNLK5U7c0VS4FKn9TTUo8fb/15r1P8=" + "range": "bytes=1216-4329472", + "checksum": "sha256-2VfVl6uwuIrSyxOIN+DIcdszg4vrHzZ8XPBsYxX6UVk=" }, - "checksum": "Q1tnZRge4hq6oZeLxX7uNWlz8omZg=" + "checksum": "Q10p89M81sV0xcgbyBpWcYIYtXQVA=" }, { "name": "ca-certificates", @@ -331,22 +331,22 @@ }, { "name": "libssl3", - "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/aarch64/libssl3-3.1.4-r1.apk", - "version": "3.1.4-r1", + "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/aarch64/libssl3-3.1.4-r4.apk", + "version": "3.1.4-r4", "architecture": "aarch64", "signature": { - "range": "bytes=0-664", - "checksum": "sha1-QispGeBQui0CrWyKfdStKqfDJIs=" + "range": "bytes=0-666", + "checksum": "sha1-qPDAHagAL3Z2+NnGshdk9qt32FU=" }, "control": { - "range": "bytes=665-1219", - "checksum": "sha1-i9saQj0KGMucXXqYl9odFh3Rp0k=" + "range": "bytes=667-1220", + "checksum": "sha1-wlFBEtg8BCiNLQzTz6Ev/f7ngpw=" }, "data": { - "range": "bytes=1220-622592", - "checksum": "sha256-+2kj8KV9ZaIuQY65TQvM5go6Tnd/wwtfAd9dstIWaZA=" + "range": "bytes=1221-622592", + "checksum": "sha256-tIGFs+OA5oLqU3S6QUGIaZp1mBTWr5mlLko6AJhLhxA=" }, - "checksum": "Q1i9saQj0KGMucXXqYl9odFh3Rp0k=" + "checksum": "Q1wlFBEtg8BCiNLQzTz6Ev/f7ngpw=" }, { "name": "libcurl", @@ -768,22 +768,22 @@ }, { "name": "openssl", - "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/aarch64/openssl-3.1.4-r1.apk", - "version": "3.1.4-r1", + "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/aarch64/openssl-3.1.4-r4.apk", + "version": "3.1.4-r4", "architecture": "aarch64", "signature": { - "range": "bytes=0-665", - "checksum": "sha1-yfaDAvjJjOVwmjlYUhlDA4yfcww=" + "range": "bytes=0-667", + "checksum": "sha1-naj4FVD1Bf5QibH1OwnyfMdu6P4=" }, "control": { - "range": "bytes=666-1265", - "checksum": "sha1-mh42b80ilWGgLE58uDOK0r90Bx4=" + "range": "bytes=668-1264", + "checksum": "sha1-Xs+AUu1ClvUuINsaYS3qOSeduU8=" }, "data": { - "range": "bytes=1266-905216", - "checksum": "sha256-xZm+97rZJXeNSRVc9LpijQhtY7uAYurHNOFTNLt957E=" + "range": "bytes=1265-905216", + "checksum": "sha256-0Siw5i2QBYTzrqPor6KyynJXAe5C3XzTm/czP/gbJgA=" }, - "checksum": "Q1mh42b80ilWGgLE58uDOK0r90Bx4=" + "checksum": "Q1Xs+AUu1ClvUuINsaYS3qOSeduU8=" }, { "name": "unzip", @@ -863,22 +863,22 @@ }, { "name": "libcrypto3", - "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/libcrypto3-3.1.4-r1.apk", - "version": "3.1.4-r1", + "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/libcrypto3-3.1.4-r4.apk", + "version": "3.1.4-r4", "architecture": "x86_64", "signature": { - "range": "bytes=0-666", - "checksum": "sha1-rsFFJCNY9v5Y5nk+ilFNshjU5ZM=" + "range": "bytes=0-667", + "checksum": "sha1-lc77qLboufBlmwr9xksWTIJPlhQ=" }, "control": { - "range": "bytes=667-1242", - "checksum": "sha1-o+vFJMnZukduV7Y+lgb7DvYwlJo=" + "range": "bytes=668-1242", + "checksum": "sha1-j6bfUwVmOUoNJQp6dyK3eqiJxus=" }, "data": { "range": "bytes=1243-4579328", - "checksum": "sha256-ShDVFFbFbOMefQmaq1tSTTFvC/jHov5k8X5zcCsDSck=" + "checksum": "sha256-DeiaXwvZxtJOXi7b/UDPjF/ZahianUKoCxUg60ik+Lo=" }, - "checksum": "Q1o+vFJMnZukduV7Y+lgb7DvYwlJo=" + "checksum": "Q1j6bfUwVmOUoNJQp6dyK3eqiJxus=" }, { "name": "ca-certificates", @@ -1110,22 +1110,22 @@ }, { "name": "libssl3", - "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/libssl3-3.1.4-r1.apk", - "version": "3.1.4-r1", + "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/libssl3-3.1.4-r4.apk", + "version": "3.1.4-r4", "architecture": "x86_64", "signature": { - "range": "bytes=0-666", - "checksum": "sha1-jSfScM7agyOdR/4YaEfwxAwU/og=" + "range": "bytes=0-667", + "checksum": "sha1-fMIXUSYthq/9sJAaPvKX4vvFra8=" }, "control": { - "range": "bytes=667-1244", - "checksum": "sha1-o47c8bt1FJzVuhEX26C7/lIsPmY=" + "range": "bytes=668-1244", + "checksum": "sha1-iWiNRTEyE8iFSHFhy4zVnCRFQys=" }, "data": { "range": "bytes=1245-565248", - "checksum": "sha256-qldSVOcIZhLSJwERlZZI3OVkNzByKPUYalxsXALI7tk=" + "checksum": "sha256-uaYEM47q1Om8/DT0ZJssZ1kcWL0Yy1/n9Vnt9+BjPO4=" }, - "checksum": "Q1o47c8bt1FJzVuhEX26C7/lIsPmY=" + "checksum": "Q1iWiNRTEyE8iFSHFhy4zVnCRFQys=" }, { "name": "libcurl", @@ -1547,22 +1547,22 @@ }, { "name": "openssl", - "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/openssl-3.1.4-r1.apk", - "version": "3.1.4-r1", + "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/openssl-3.1.4-r4.apk", + "version": "3.1.4-r4", "architecture": "x86_64", "signature": { - "range": "bytes=0-664", - "checksum": "sha1-rNOg3oyw7mzkuj4e81IDPIf7n7I=" + "range": "bytes=0-668", + "checksum": "sha1-dG6NIxrE/QiViyKujpSFgOABN3U=" }, "control": { - "range": "bytes=665-1284", - "checksum": "sha1-wsJ9/nmFPn590NsOFCkVP0yF8V8=" + "range": "bytes=669-1287", + "checksum": "sha1-0dcyArTgHWLAsoyH4bMmaAkGWdE=" }, "data": { - "range": "bytes=1285-770048", - "checksum": "sha256-9dEWejwR1e8Yl1VdeozbmHbzz23xEfvFgrEKgAbIQNM=" + "range": "bytes=1288-770048", + "checksum": "sha256-Ivy40U6kSEqQQlFlRUHX6TABH3RerqTtiw5QWp+S0Is=" }, - "checksum": "Q1wsJ9/nmFPn590NsOFCkVP0yF8V8=" + "checksum": "Q10dcyArTgHWLAsoyH4bMmaAkGWdE=" }, { "name": "unzip", diff --git a/examples/oci/BUILD.bazel b/examples/oci/BUILD.bazel index bd7fed3..c37c709 100644 --- a/examples/oci/BUILD.bazel +++ b/examples/oci/BUILD.bazel @@ -4,7 +4,7 @@ load("@rules_pkg//pkg:tar.bzl", "pkg_tar") load("@container_structure_test//:defs.bzl", "container_structure_test") # An example demonstrating how to use apko_image with rules_oci -# See MODULE.bazel for how apko.resolved.json is translated to @examples_oci//:contents +# See MODULE.bazel for how apko.lock.json is translated to @examples_oci//:contents apko_image( name = "wolfi-base", architecture = select({ diff --git a/examples/oci/apko.resolved.json b/examples/oci/apko.lock.json similarity index 83% rename from examples/oci/apko.resolved.json rename to examples/oci/apko.lock.json index dfe192c..c368f23 100755 --- a/examples/oci/apko.resolved.json +++ b/examples/oci/apko.lock.json @@ -60,60 +60,60 @@ }, { "name": "ld-linux", - "url": "https://packages.wolfi.dev/os/aarch64/ld-linux-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/aarch64/ld-linux-2.38-r10.apk", + "version": "2.38-r10", "architecture": "aarch64", "signature": { - "range": "bytes=0-708", - "checksum": "sha1-u0ApCBiurwCwBzVLWXLBOjPWiww=" + "range": "bytes=0-700", + "checksum": "sha1-RqIaUDBFZeNyXpPY8RA3nfE5Ats=" }, "control": { - "range": "bytes=709-1102", - "checksum": "sha1-tQL1lJCaj9X6qz0Zfl/wpT0WAKE=" + "range": "bytes=701-1094", + "checksum": "sha1-EG42v3rcSEI8oex3IrGAtdgNqbQ=" }, "data": { - "range": "bytes=1103-265349", - "checksum": "sha256-hHfanGAvtlWTL40t2AO0N7kAD7xlNfDLcEfPm3/DnZo=" + "range": "bytes=1095-265358", + "checksum": "sha256-jS6zS/11n61Pzhh632qutBMynbw+bw7VlAx5pUGCFCs=" }, - "checksum": "Q1tQL1lJCaj9X6qz0Zfl/wpT0WAKE=" + "checksum": "Q1EG42v3rcSEI8oex3IrGAtdgNqbQ=" }, { "name": "glibc-locale-posix", - "url": "https://packages.wolfi.dev/os/aarch64/glibc-locale-posix-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/aarch64/glibc-locale-posix-2.38-r10.apk", + "version": "2.38-r10", "architecture": "aarch64", "signature": { - "range": "bytes=0-697", - "checksum": "sha1-4+Mp2flaIYKiEJ6XKwtoBTgDjCU=" + "range": "bytes=0-691", + "checksum": "sha1-S/Pw4uRDgsAun8JuHJeP2NPYF5A=" }, "control": { - "range": "bytes=698-1040", - "checksum": "sha1-XHNKylXG1NelDm64u3IBf9IVjX0=" + "range": "bytes=692-1034", + "checksum": "sha1-WpaisEPKSalOcyvE8QqKm9OEIVg=" }, "data": { - "range": "bytes=1041-417006", - "checksum": "sha256-miBw1ZOB261zgoVG81Yhdf5L1xmWYYV3p6dNAHSxERA=" + "range": "bytes=1035-417024", + "checksum": "sha256-Qzc9kFkDVA8qbs+7ER/zfFmBIhRBhNIBbU10NI9BBDM=" }, - "checksum": "Q1XHNKylXG1NelDm64u3IBf9IVjX0=" + "checksum": "Q1WpaisEPKSalOcyvE8QqKm9OEIVg=" }, { "name": "glibc", - "url": "https://packages.wolfi.dev/os/aarch64/glibc-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/aarch64/glibc-2.38-r10.apk", + "version": "2.38-r10", "architecture": "aarch64", "signature": { - "range": "bytes=0-701", - "checksum": "sha1-Vc9khIZZTafVjDK78luP9JX6x8g=" + "range": "bytes=0-696", + "checksum": "sha1-vWzPdY66KkasGWaP6eFHsKcKJEA=" }, "control": { - "range": "bytes=702-1308", - "checksum": "sha1-8D31WR0R9iF0kHeeJpZI1AKgagQ=" + "range": "bytes=697-1304", + "checksum": "sha1-azrp7U4YCdayXYGf0XJYddH85hY=" }, "data": { - "range": "bytes=1309-5592315", - "checksum": "sha256-57srttgz2wBUOpUmzVeHnaPlPqib97l1cziHW08ulIA=" + "range": "bytes=1305-5592340", + "checksum": "sha256-Z3F+mkMSZ1WSLo9r6TIogjEPA33xz5Zwv2y0iXCJYPM=" }, - "checksum": "Q18D31WR0R9iF0kHeeJpZI1AKgagQ=" + "checksum": "Q1azrp7U4YCdayXYGf0XJYddH85hY=" }, { "name": "openssl-config", @@ -212,22 +212,22 @@ }, { "name": "libcrypt1", - "url": "https://packages.wolfi.dev/os/aarch64/libcrypt1-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/aarch64/libcrypt1-2.38-r10.apk", + "version": "2.38-r10", "architecture": "aarch64", "signature": { - "range": "bytes=0-694", - "checksum": "sha1-NwjywwWpfq7FwKm3ZP7jLf/VumQ=" + "range": "bytes=0-696", + "checksum": "sha1-dwRFi9xEyCr4FaprQQYQWfQ7rKw=" }, "control": { - "range": "bytes=695-1081", - "checksum": "sha1-0O4IuDHa+IvhWX62aW2Uj0SWyBo=" + "range": "bytes=697-1083", + "checksum": "sha1-sAieW6SXzmquNq7DRsJDAChqJbI=" }, "data": { - "range": "bytes=1082-101406", - "checksum": "sha256-RgeVQFodY5IzTg18nwE9iFAdtNxy9x2qNrNN0SWZ7ks=" + "range": "bytes=1084-101413", + "checksum": "sha256-4oHpgBaKsVEhDokvHVHBJ4VV3zd1zWKY0Uss0aWnPY0=" }, - "checksum": "Q10O4IuDHa+IvhWX62aW2Uj0SWyBo=" + "checksum": "Q1sAieW6SXzmquNq7DRsJDAChqJbI=" }, { "name": "busybox", @@ -326,60 +326,60 @@ }, { "name": "ld-linux", - "url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.38-r10.apk", + "version": "2.38-r10", "architecture": "x86_64", "signature": { - "range": "bytes=0-697", - "checksum": "sha1-IL3B1HZ2wdNyCOBXYFZGcbBGoqs=" + "range": "bytes=0-696", + "checksum": "sha1-pgBIUoJu3hKNL9eCGoFsjDCEehM=" }, "control": { - "range": "bytes=698-1093", - "checksum": "sha1-fN6EOYCDfkAB0hPHFXGOflxx/io=" + "range": "bytes=697-1093", + "checksum": "sha1-pL3FW+tK0GZZxvqyklVruJpRmH0=" }, "data": { - "range": "bytes=1094-266208", - "checksum": "sha256-EMs+i+Ylu+q91xSbRNeqlqVgqO0WCIY559NT30Stx7U=" + "range": "bytes=1094-266217", + "checksum": "sha256-558XfEYb6WHjeXf+NG+gNOVvfuKnTm4Ukoi3lXVdPdU=" }, - "checksum": "Q1fN6EOYCDfkAB0hPHFXGOflxx/io=" + "checksum": "Q1pL3FW+tK0GZZxvqyklVruJpRmH0=" }, { "name": "glibc-locale-posix", - "url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.38-r10.apk", + "version": "2.38-r10", "architecture": "x86_64", "signature": { "range": "bytes=0-699", - "checksum": "sha1-TgYN2N4ZPQ7UX0v1ZIi/AM8b6AA=" + "checksum": "sha1-9dpTPrnr5mhzWrGLVSZKY1EStGk=" }, "control": { - "range": "bytes=700-1043", - "checksum": "sha1-QTmeDpnOOVYHZq8AeVfdK7DSxsE=" + "range": "bytes=700-1044", + "checksum": "sha1-w0O+mJTbltehThgt3nDZ+mxnACg=" }, "data": { - "range": "bytes=1044-417005", - "checksum": "sha256-On9nfE5oODRF1N//C4DT+Ksz50Rk+O7vCqixUP59dv8=" + "range": "bytes=1045-417023", + "checksum": "sha256-cVwvS5LNUN2MLDH9kLy4Ipfs7pilZzNFHJtvLfQ+9fE=" }, - "checksum": "Q1QTmeDpnOOVYHZq8AeVfdK7DSxsE=" + "checksum": "Q1w0O+mJTbltehThgt3nDZ+mxnACg=" }, { "name": "glibc", - "url": "https://packages.wolfi.dev/os/x86_64/glibc-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/x86_64/glibc-2.38-r10.apk", + "version": "2.38-r10", "architecture": "x86_64", "signature": { - "range": "bytes=0-700", - "checksum": "sha1-8nqEerTDUCfn8WzV0y2I02S/Kz0=" + "range": "bytes=0-695", + "checksum": "sha1-zlud0F/EMxC7N0JqOydeU7pmouw=" }, "control": { - "range": "bytes=701-1311", - "checksum": "sha1-1DIBkq6kQLwbvpYZebVCaXDf7x0=" + "range": "bytes=696-1304", + "checksum": "sha1-/v07ge+aiJRKhSPqjoEhvvy8MB0=" }, "data": { - "range": "bytes=1312-6660729", - "checksum": "sha256-m56Xq6r3fySpzAh1aTHVfHx1O1u5V4RPysRESTISJGg=" + "range": "bytes=1305-6656658", + "checksum": "sha256-IVbnCQTDIerWKLrkM39hwGeVmlE6X0yLLNHyKOr/XYs=" }, - "checksum": "Q11DIBkq6kQLwbvpYZebVCaXDf7x0=" + "checksum": "Q1/v07ge+aiJRKhSPqjoEhvvy8MB0=" }, { "name": "openssl-config", @@ -478,22 +478,22 @@ }, { "name": "libcrypt1", - "url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.38-r10.apk", + "version": "2.38-r10", "architecture": "x86_64", "signature": { - "range": "bytes=0-690", - "checksum": "sha1-v9Q9RQOhzDYV7inN1BoXuUP3l4w=" + "range": "bytes=0-706", + "checksum": "sha1-pR5AIrbM/QtUIJoHU3Y3XLzroV8=" }, "control": { - "range": "bytes=691-1081", - "checksum": "sha1-dATsPKHWTsb0iDIEMjwfAKEbnFg=" + "range": "bytes=707-1098", + "checksum": "sha1-n7WiSvqze7FKquAdXmnhT4oCUfI=" }, "data": { - "range": "bytes=1082-74757", - "checksum": "sha256-uLEJdJN7gmOddnhxV/zLbWpo443A14A0Y3MAVkrauEs=" + "range": "bytes=1099-74764", + "checksum": "sha256-nS0qg+kmeJGd9m+17CXXx0tEi+E3xQAXUph27rVh+Yo=" }, - "checksum": "Q1dATsPKHWTsb0iDIEMjwfAKEbnFg=" + "checksum": "Q1n7WiSvqze7FKquAdXmnhT4oCUfI=" }, { "name": "busybox", diff --git a/examples/wolfi-base/BUILD.bazel b/examples/wolfi-base/BUILD.bazel index 87cd2d9..4c08d72 100644 --- a/examples/wolfi-base/BUILD.bazel +++ b/examples/wolfi-base/BUILD.bazel @@ -2,7 +2,7 @@ load("@rules_apko//apko:defs.bzl", "apko_image") load("@bazel_skylib//rules:build_test.bzl", "build_test") # An example demonstrating how to use wolfi packages with a lock file. -# See MODULE.bazel for how apko.resolved.json is translated to @examples_wolfi_base//:contents +# See MODULE.bazel for how apko.lock.json is translated to @examples_wolfi_base//:contents apko_image( name = "wolfi-base", config = "apko.yaml", diff --git a/examples/wolfi-base/apko.resolved.json b/examples/wolfi-base/apko.lock.json similarity index 83% rename from examples/wolfi-base/apko.resolved.json rename to examples/wolfi-base/apko.lock.json index 4d690bd..7feb9ad 100755 --- a/examples/wolfi-base/apko.resolved.json +++ b/examples/wolfi-base/apko.lock.json @@ -60,60 +60,60 @@ }, { "name": "ld-linux", - "url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.38-r10.apk", + "version": "2.38-r10", "architecture": "x86_64", "signature": { - "range": "bytes=0-697", - "checksum": "sha1-IL3B1HZ2wdNyCOBXYFZGcbBGoqs=" + "range": "bytes=0-696", + "checksum": "sha1-pgBIUoJu3hKNL9eCGoFsjDCEehM=" }, "control": { - "range": "bytes=698-1093", - "checksum": "sha1-fN6EOYCDfkAB0hPHFXGOflxx/io=" + "range": "bytes=697-1093", + "checksum": "sha1-pL3FW+tK0GZZxvqyklVruJpRmH0=" }, "data": { - "range": "bytes=1094-266208", - "checksum": "sha256-EMs+i+Ylu+q91xSbRNeqlqVgqO0WCIY559NT30Stx7U=" + "range": "bytes=1094-266217", + "checksum": "sha256-558XfEYb6WHjeXf+NG+gNOVvfuKnTm4Ukoi3lXVdPdU=" }, - "checksum": "Q1fN6EOYCDfkAB0hPHFXGOflxx/io=" + "checksum": "Q1pL3FW+tK0GZZxvqyklVruJpRmH0=" }, { "name": "glibc-locale-posix", - "url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.38-r10.apk", + "version": "2.38-r10", "architecture": "x86_64", "signature": { "range": "bytes=0-699", - "checksum": "sha1-TgYN2N4ZPQ7UX0v1ZIi/AM8b6AA=" + "checksum": "sha1-9dpTPrnr5mhzWrGLVSZKY1EStGk=" }, "control": { - "range": "bytes=700-1043", - "checksum": "sha1-QTmeDpnOOVYHZq8AeVfdK7DSxsE=" + "range": "bytes=700-1044", + "checksum": "sha1-w0O+mJTbltehThgt3nDZ+mxnACg=" }, "data": { - "range": "bytes=1044-417005", - "checksum": "sha256-On9nfE5oODRF1N//C4DT+Ksz50Rk+O7vCqixUP59dv8=" + "range": "bytes=1045-417023", + "checksum": "sha256-cVwvS5LNUN2MLDH9kLy4Ipfs7pilZzNFHJtvLfQ+9fE=" }, - "checksum": "Q1QTmeDpnOOVYHZq8AeVfdK7DSxsE=" + "checksum": "Q1w0O+mJTbltehThgt3nDZ+mxnACg=" }, { "name": "glibc", - "url": "https://packages.wolfi.dev/os/x86_64/glibc-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/x86_64/glibc-2.38-r10.apk", + "version": "2.38-r10", "architecture": "x86_64", "signature": { - "range": "bytes=0-700", - "checksum": "sha1-8nqEerTDUCfn8WzV0y2I02S/Kz0=" + "range": "bytes=0-695", + "checksum": "sha1-zlud0F/EMxC7N0JqOydeU7pmouw=" }, "control": { - "range": "bytes=701-1311", - "checksum": "sha1-1DIBkq6kQLwbvpYZebVCaXDf7x0=" + "range": "bytes=696-1304", + "checksum": "sha1-/v07ge+aiJRKhSPqjoEhvvy8MB0=" }, "data": { - "range": "bytes=1312-6660729", - "checksum": "sha256-m56Xq6r3fySpzAh1aTHVfHx1O1u5V4RPysRESTISJGg=" + "range": "bytes=1305-6656658", + "checksum": "sha256-IVbnCQTDIerWKLrkM39hwGeVmlE6X0yLLNHyKOr/XYs=" }, - "checksum": "Q11DIBkq6kQLwbvpYZebVCaXDf7x0=" + "checksum": "Q1/v07ge+aiJRKhSPqjoEhvvy8MB0=" }, { "name": "openssl-config", @@ -212,22 +212,22 @@ }, { "name": "libcrypt1", - "url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.38-r10.apk", + "version": "2.38-r10", "architecture": "x86_64", "signature": { - "range": "bytes=0-690", - "checksum": "sha1-v9Q9RQOhzDYV7inN1BoXuUP3l4w=" + "range": "bytes=0-706", + "checksum": "sha1-pR5AIrbM/QtUIJoHU3Y3XLzroV8=" }, "control": { - "range": "bytes=691-1081", - "checksum": "sha1-dATsPKHWTsb0iDIEMjwfAKEbnFg=" + "range": "bytes=707-1098", + "checksum": "sha1-n7WiSvqze7FKquAdXmnhT4oCUfI=" }, "data": { - "range": "bytes=1082-74757", - "checksum": "sha256-uLEJdJN7gmOddnhxV/zLbWpo443A14A0Y3MAVkrauEs=" + "range": "bytes=1099-74764", + "checksum": "sha256-nS0qg+kmeJGd9m+17CXXx0tEi+E3xQAXUph27rVh+Yo=" }, - "checksum": "Q1dATsPKHWTsb0iDIEMjwfAKEbnFg=" + "checksum": "Q1n7WiSvqze7FKquAdXmnhT4oCUfI=" }, { "name": "busybox", @@ -326,60 +326,60 @@ }, { "name": "ld-linux", - "url": "https://packages.wolfi.dev/os/aarch64/ld-linux-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/aarch64/ld-linux-2.38-r10.apk", + "version": "2.38-r10", "architecture": "aarch64", "signature": { - "range": "bytes=0-708", - "checksum": "sha1-u0ApCBiurwCwBzVLWXLBOjPWiww=" + "range": "bytes=0-700", + "checksum": "sha1-RqIaUDBFZeNyXpPY8RA3nfE5Ats=" }, "control": { - "range": "bytes=709-1102", - "checksum": "sha1-tQL1lJCaj9X6qz0Zfl/wpT0WAKE=" + "range": "bytes=701-1094", + "checksum": "sha1-EG42v3rcSEI8oex3IrGAtdgNqbQ=" }, "data": { - "range": "bytes=1103-265349", - "checksum": "sha256-hHfanGAvtlWTL40t2AO0N7kAD7xlNfDLcEfPm3/DnZo=" + "range": "bytes=1095-265358", + "checksum": "sha256-jS6zS/11n61Pzhh632qutBMynbw+bw7VlAx5pUGCFCs=" }, - "checksum": "Q1tQL1lJCaj9X6qz0Zfl/wpT0WAKE=" + "checksum": "Q1EG42v3rcSEI8oex3IrGAtdgNqbQ=" }, { "name": "glibc-locale-posix", - "url": "https://packages.wolfi.dev/os/aarch64/glibc-locale-posix-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/aarch64/glibc-locale-posix-2.38-r10.apk", + "version": "2.38-r10", "architecture": "aarch64", "signature": { - "range": "bytes=0-697", - "checksum": "sha1-4+Mp2flaIYKiEJ6XKwtoBTgDjCU=" + "range": "bytes=0-691", + "checksum": "sha1-S/Pw4uRDgsAun8JuHJeP2NPYF5A=" }, "control": { - "range": "bytes=698-1040", - "checksum": "sha1-XHNKylXG1NelDm64u3IBf9IVjX0=" + "range": "bytes=692-1034", + "checksum": "sha1-WpaisEPKSalOcyvE8QqKm9OEIVg=" }, "data": { - "range": "bytes=1041-417006", - "checksum": "sha256-miBw1ZOB261zgoVG81Yhdf5L1xmWYYV3p6dNAHSxERA=" + "range": "bytes=1035-417024", + "checksum": "sha256-Qzc9kFkDVA8qbs+7ER/zfFmBIhRBhNIBbU10NI9BBDM=" }, - "checksum": "Q1XHNKylXG1NelDm64u3IBf9IVjX0=" + "checksum": "Q1WpaisEPKSalOcyvE8QqKm9OEIVg=" }, { "name": "glibc", - "url": "https://packages.wolfi.dev/os/aarch64/glibc-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/aarch64/glibc-2.38-r10.apk", + "version": "2.38-r10", "architecture": "aarch64", "signature": { - "range": "bytes=0-701", - "checksum": "sha1-Vc9khIZZTafVjDK78luP9JX6x8g=" + "range": "bytes=0-696", + "checksum": "sha1-vWzPdY66KkasGWaP6eFHsKcKJEA=" }, "control": { - "range": "bytes=702-1308", - "checksum": "sha1-8D31WR0R9iF0kHeeJpZI1AKgagQ=" + "range": "bytes=697-1304", + "checksum": "sha1-azrp7U4YCdayXYGf0XJYddH85hY=" }, "data": { - "range": "bytes=1309-5592315", - "checksum": "sha256-57srttgz2wBUOpUmzVeHnaPlPqib97l1cziHW08ulIA=" + "range": "bytes=1305-5592340", + "checksum": "sha256-Z3F+mkMSZ1WSLo9r6TIogjEPA33xz5Zwv2y0iXCJYPM=" }, - "checksum": "Q18D31WR0R9iF0kHeeJpZI1AKgagQ=" + "checksum": "Q1azrp7U4YCdayXYGf0XJYddH85hY=" }, { "name": "openssl-config", @@ -478,22 +478,22 @@ }, { "name": "libcrypt1", - "url": "https://packages.wolfi.dev/os/aarch64/libcrypt1-2.38-r8.apk", - "version": "2.38-r8", + "url": "https://packages.wolfi.dev/os/aarch64/libcrypt1-2.38-r10.apk", + "version": "2.38-r10", "architecture": "aarch64", "signature": { - "range": "bytes=0-694", - "checksum": "sha1-NwjywwWpfq7FwKm3ZP7jLf/VumQ=" + "range": "bytes=0-696", + "checksum": "sha1-dwRFi9xEyCr4FaprQQYQWfQ7rKw=" }, "control": { - "range": "bytes=695-1081", - "checksum": "sha1-0O4IuDHa+IvhWX62aW2Uj0SWyBo=" + "range": "bytes=697-1083", + "checksum": "sha1-sAieW6SXzmquNq7DRsJDAChqJbI=" }, "data": { - "range": "bytes=1082-101406", - "checksum": "sha256-RgeVQFodY5IzTg18nwE9iFAdtNxy9x2qNrNN0SWZ7ks=" + "range": "bytes=1084-101413", + "checksum": "sha256-4oHpgBaKsVEhDokvHVHBJ4VV3zd1zWKY0Uss0aWnPY0=" }, - "checksum": "Q10O4IuDHa+IvhWX62aW2Uj0SWyBo=" + "checksum": "Q1sAieW6SXzmquNq7DRsJDAChqJbI=" }, { "name": "busybox", diff --git a/scripts/update_locks.sh b/scripts/update_locks.sh index c695120..9f20284 100755 --- a/scripts/update_locks.sh +++ b/scripts/update_locks.sh @@ -7,6 +7,6 @@ apko="$output_base/$external_apko" for yaml in "./examples/"*"/apko.yaml" "./e2e/"*"/apko.yaml"; do - $apko resolve $yaml + $apko lock $yaml done