diff --git a/.bazelrc b/.bazelrc index cc9a804..729982b 100644 --- a/.bazelrc +++ b/.bazelrc @@ -7,8 +7,6 @@ common --enable_bzlmod # Disable lockfile for now. It is unstable. common --lockfile_mode=off -# Required for rules_apko to make range requests -try-import %workspace%/.apko/.bazelrc # Load any settings specific to the current user. # .bazelrc.user should appear in .gitignore so that settings are not shared with team members diff --git a/.bazelversion b/.bazelversion index fb58dfb..8590cbe 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1,4 +1,4 @@ -6.3.0 +7.1.0 # The first line of this file is used by Bazelisk and Bazel to be sure # the right version of Bazel is used to build and test this repo. # This also defines which version is used on CI. diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 66c6f24..763d0d9 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,17 +16,87 @@ concurrency: cancel-in-progress: true jobs: + # matrix-prep-* steps generate JSON used to create a dynamic actions matrix. + # Inspired from + # https://stackoverflow.com/questions/65384420/how-to-make-a-github-action-matrix-element-conditional + + matrix-prep-os: + # Prepares the 'os' axis of the test matrix, to reduce costs since GitHub hosted runners cost more on some platforms. + # https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#included-storage-and-minutes + runs-on: ubuntu-latest + steps: + - id: linux + run: echo "os=ubuntu-latest" >> $GITHUB_OUTPUT + - id: windows + run: echo "os=windows-latest" >> $GITHUB_OUTPUT + # Only run on main branch (or PR branches that contain 'windows') to minimize Windows minutes (billed at 2X) + if: (github.ref == 'refs/heads/main' || contains(github.head_ref, 'windows')) && !inputs.exclude_windows + - id: macos + run: echo "os=macos-latest" >> $GITHUB_OUTPUT + # Only run on main branch (or PR branches that contain 'macos') to minimize macOS minutes (billed at 10X) + if: github.ref == 'refs/heads/main' || contains(github.head_ref, 'macos') + outputs: + # Will look like ["ubuntu-latest", "windows-latest", "macos-latest"] + os: ${{ toJSON(steps.*.outputs.os) }} + + matrix-prep-bazelversion: + # Prepares the 'bazelversion' axis of the test matrix + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + # NB: we assume this is Bazel 7 + - id: bazel_from_bazelversion + run: echo "bazelversion=$(head -n 1 .bazelversion)" >> $GITHUB_OUTPUT + - id: bazel_6 + run: echo "bazelversion=6.4.0" >> $GITHUB_OUTPUT + outputs: + # Will look like ["", "x.y.z"] + bazelversions: ${{ toJSON(steps.*.outputs.bazelversion) }} + test: - uses: bazel-contrib/.github/.github/workflows/bazel.yaml@29e53247c6366e30acbedfc767f58f79fc05836c - with: - folders: | - [ - ".", - "e2e/smoke" - ] - exclude: | - [ - {"bazelversion": "5.4.0"}, - {"os": "windows-latest"}, - {"os": "macos-latest"} - ] + # The type of runner that the job will run on + runs-on: ${{ matrix.os }} + + needs: + - matrix-prep-bazelversion + - matrix-prep-os + + # Run bazel test in each workspace with each version of Bazel supported + strategy: + fail-fast: false + matrix: + os: ${{ fromJSON(needs.matrix-prep-os.outputs.os) }} + bazelversion: ${{ fromJSON(needs.matrix-prep-bazelversion.outputs.bazelversions) }} + folder: + - . + - e2e/smoke + bzlmodEnabled: [true, false] + exclude: + # Root module is BZLMOD only, do not test it without bzlmod enabled. + - bzlmodEnable: false + folder: . + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v4 + + - uses: bazel-contrib/setup-bazel@0.8.0 + with: + repository-cache: true + bazelrc: | + common --announce_rc --color=yes --enable_bzlmod=${{ matrix.bzlmodEnabled }} + ${{ (matrix.bazelversion == '6.4.0' && 'try-import %workspace%/.apko/.bazelrc') || '' }} + + - name: Configure Bazel version + working-directory: ${{ matrix.folder }} + run: echo "${{ matrix.bazelversion }}" > .bazelversion + + # See https://github.com/bazel-contrib/publish-to-bcr#including-patches + - name: verify bcr patches + if: matrix.bzlmodEnabled && hashFiles('.bcr/patches/*.patch') != '' + run: patch --dry-run -p1 < .bcr/patches/*.patch + + - name: Test + working-directory: ${{ matrix.folder }} + run: bazel test //... diff --git a/.github/workflows/release_prep.sh b/.github/workflows/release_prep.sh index 265b7c1..9b492c9 100755 --- a/.github/workflows/release_prep.sh +++ b/.github/workflows/release_prep.sh @@ -12,7 +12,17 @@ git archive --format=tar --prefix=${PREFIX}/ ${TAG} | gzip > $ARCHIVE SHA=$(shasum -a 256 $ARCHIVE | awk '{print $1}') cat << EOF -## Using Bzlmod with Bazel 6 + +## Initial setup (when using with Bazel < 7.1) + +rules_apko requires a one-time setup to configure bazel to be able to make partial fetches. + +Follow https://github.com/chainguard-dev/rules_apko/blob/main/docs/initial-setup.md for the setup. + +EOF + +cat << EOF +## Using Bzlmod 1. Enable with \`common --enable_bzlmod\` in \`.bazelrc\`. 2. Add to your \`MODULE.bazel\` file: @@ -37,14 +47,3 @@ EOF awk 'f;/--SNIP--/{f=1}' e2e/smoke/WORKSPACE.bazel echo "\`\`\`" - - -cat << EOF - -## Initial setup - -rules_apko requires a one-time setup to configure bazel to be able to make partial fetches. - -Follow https://github.com/chainguard-dev/rules_apko/blob/main/docs/initial-setup.md for the setup. - -EOF \ No newline at end of file diff --git a/MODULE.bazel b/MODULE.bazel index 721ecc9..c1c76ca 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -6,16 +6,22 @@ module( compatibility_level = 1, ) -bazel_dep(name = "bazel_skylib", version = "1.4.2") -bazel_dep(name = "platforms", version = "0.0.5") -bazel_dep(name = "aspect_bazel_lib", version = "1.34.5") +bazel_dep(name = "bazel_skylib", version = "1.5.0") +bazel_dep(name = "platforms", version = "0.0.8") +bazel_dep(name = "aspect_bazel_lib", version = "1.40.3") + +# We need this fix https://github.com/aspect-build/bazel-lib/pull/713 to be able to generate docs +single_version_override( + module_name = "aspect_bazel_lib", + version = "2.5.3", +) bazel_dep(name = "container_structure_test", version = "1.15.0", dev_dependency = True) bazel_dep(name = "rules_pkg", version = "0.7.0", dev_dependency = True) bazel_dep(name = "rules_oci", version = "1.3.3", dev_dependency = True) -bazel_dep(name = "gazelle", version = "0.29.0", dev_dependency = True, repo_name = "bazel_gazelle") -bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.4.1", dev_dependency = True) -bazel_dep(name = "buildifier_prebuilt", version = "6.1.0", dev_dependency = True) +bazel_dep(name = "gazelle", version = "0.34.0", dev_dependency = True, repo_name = "bazel_gazelle") +bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.5.0", dev_dependency = True) +bazel_dep(name = "buildifier_prebuilt", version = "6.1.2", dev_dependency = True) toolchain = use_extension("//apko:extensions.bzl", "apko") toolchain.toolchain(apko_version = "v0.13.1") diff --git a/apko/BUILD.bazel b/apko/BUILD.bazel index 1734199..e9acbce 100644 --- a/apko/BUILD.bazel +++ b/apko/BUILD.bazel @@ -61,12 +61,6 @@ bzl_library( ], ) -bzl_library( - name = "toolchain", - srcs = ["toolchain.bzl"], - visibility = ["//visibility:public"], -) - # Enables calling apko tool directly by bazel. # 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) @@ -74,3 +68,9 @@ apko_run( name = "apko", visibility = ["//visibility:public"], ) + +bzl_library( + name = "toolchain", + srcs = ["toolchain.bzl"], + visibility = ["//visibility:public"], +) diff --git a/apko/private/BUILD.bazel b/apko/private/BUILD.bazel index 67e3099..9d9559e 100644 --- a/apko/private/BUILD.bazel +++ b/apko/private/BUILD.bazel @@ -50,3 +50,9 @@ bzl_library( srcs = ["versions.bzl"], visibility = ["//apko:__subpackages__"], ) + +bzl_library( + name = "bazelversion", + srcs = ["bazelversion.bzl"], + visibility = ["//apko:__subpackages__"], +) diff --git a/apko/private/apk.bzl b/apko/private/apk.bzl index ebd9780..59b040f 100644 --- a/apko/private/apk.bzl +++ b/apko/private/apk.bzl @@ -1,5 +1,6 @@ "Repository rules for importing remote apk packages" +load(":bazelversion.bzl", "bazel_version_gte") load(":util.bzl", "util") APK_IMPORT_TMPL = """\ @@ -16,8 +17,10 @@ def _range(url, range): def _check_initial_setup(rctx): output = rctx.path(".rangecheck/output") - rctx.download( - url = [_range(rctx.attr.url, "bytes=0-0")], + _download( + rctx, + url = rctx.attr.url, + rng = "bytes=0-0", output = output, ) r = rctx.execute(["wc", "-c", output]) @@ -39,6 +42,19 @@ To resolve this issue and enable partial package fetching, please follow the ste """.format(bytes[0])) +def _download(rctx, url, rng, **kwargs): + if bazel_version_gte("7.1.0"): + return rctx.download( + url = [url], + headers = {"Range": [rng]}, + **kwargs + ) + else: + return rctx.download( + url = [_range(url, rng)], + **kwargs + ) + def _apk_import_impl(rctx): repo = util.repo_url(rctx.attr.url, rctx.attr.architecture) repo_escaped = util.url_escape(repo) @@ -53,19 +69,25 @@ def _apk_import_impl(rctx): data_output = "{}/{}.dat.tar.gz".format(output, data_sha256) 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)], + _download( + rctx, + url = rctx.attr.url, + rng = 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, + # integrity = rctx.attr.signature_checksum, ) - rctx.download( - url = [_range(rctx.attr.url, rctx.attr.control_range)], + _download( + rctx, + url = rctx.attr.url, + rng = rctx.attr.control_range, output = control_output, integrity = rctx.attr.control_checksum, ) - rctx.download( - url = [_range(rctx.attr.url, rctx.attr.data_range)], + _download( + rctx, + url = rctx.attr.url, + rng = rctx.attr.data_range, output = data_output, integrity = rctx.attr.data_checksum, ) diff --git a/apko/private/bazelversion.bzl b/apko/private/bazelversion.bzl new file mode 100644 index 0000000..bb0fbed --- /dev/null +++ b/apko/private/bazelversion.bzl @@ -0,0 +1,45 @@ +"""Internal functions to parse versions.""" + +# Taken from https://github.com/bazel-contrib/bazel_features/blob/main/private/parse.bzl +# We can't use bazel_features because it requires two loads and macro calls in the WORKSPACE +# file but rules_apko users make one load and two macro calls where marcros exported from +# the same file which makes it not possible to add bazel_features to `repositories.bzl` file +# and load from it in the repositories.bzl file. +# +# TODO(2.0): depend on bazel_features directly by splitting the repositories.bzl file into two. +# https://github.com/chainguard-dev/rules_apko/issues/55 + +def _safe_int(s, v): + if not s.isdigit(): + fail("invalid Bazel version '{}': non-numeric segment '{}'".format(v, s)) + return int(s) + +def _partition(s): + for i in range(len(s)): + c = s[i] + if c == "-": + return s[:i], s[i + 1:] + if not c.isdigit() and c != ".": + return s[:i], s[i:] + return s, "" + +def parse_version(v): + """Parses the given Bazel version string into a comparable value. + + Args: + v (str): version string + + Returns: + a triple ([major, minor, patch], is_released, prerelease) + """ + if not v: + # An empty string is treated as a "dev version", which is greater than anything. + v = "999999.999999.999999" + release, prerelease = _partition(v.partition(" ")[0]) + segments = release.split(".") + if len(segments) != 3: + fail("invalid Bazel version '{}': got {} dot-separated segments, want 3".format(v, len(segments))) + return [_safe_int(s, v) for s in segments], not prerelease, prerelease + +def bazel_version_gte(version): + return parse_version(native.bazel_version) >= parse_version(version) diff --git a/docs/initial-setup.md b/docs/initial-setup.md index b01b100..8de0020 100644 --- a/docs/initial-setup.md +++ b/docs/initial-setup.md @@ -1,5 +1,7 @@ # Initial setup +You can skip initial setup if you are using Bazel 7.1 or above. + rules_apko requires a one-time setup to configure bazel to be able to make partial fetches. > See the issue: https://github.com/bazelbuild/bazel/issues/17829 diff --git a/examples/multi_arch_and_repo/apko.lock.json b/examples/multi_arch_and_repo/apko.lock.json index cdeb468..db46722 100755 --- a/examples/multi_arch_and_repo/apko.lock.json +++ b/examples/multi_arch_and_repo/apko.lock.json @@ -103,22 +103,22 @@ }, { "name": "ca-certificates", - "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/aarch64/ca-certificates-20230506-r0.apk", - "version": "20230506-r0", + "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/aarch64/ca-certificates-20240226-r0.apk", + "version": "20240226-r0", "architecture": "aarch64", "signature": { "range": "bytes=0-664", - "checksum": "sha1-fIz32qJcugmhmKKw9Qt4jPWsNIg=" + "checksum": "sha1-RVDdklAq+Ma3ZvVuvwP+QeDA5yU=" }, "control": { - "range": "bytes=665-1570", - "checksum": "sha1-ueh9A7UhwfUJqrKqr4NB+tlPtrE=" + "range": "bytes=665-1546", + "checksum": "sha1-8fyhRCTYUIwWsLgkTyfJObgzhuU=" }, "data": { - "range": "bytes=1571-811008", - "checksum": "sha256-WeOxiGqnwsMP4Zq0wgMlRNXFqRp9j8nnV1CsLioEggg=" + "range": "bytes=1547-835584", + "checksum": "sha256-GDwlC6BAQo7f2Crf3a/yuZKPXpMu4jr804wBa9uR89k=" }, - "checksum": "Q1ueh9A7UhwfUJqrKqr4NB+tlPtrE=" + "checksum": "Q18fyhRCTYUIwWsLgkTyfJObgzhuU=" }, { "name": "libmagic", @@ -445,22 +445,22 @@ }, { "name": "libexpat", - "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/aarch64/libexpat-2.6.0-r0.apk", - "version": "2.6.0-r0", + "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/aarch64/libexpat-2.6.2-r0.apk", + "version": "2.6.2-r0", "architecture": "aarch64", "signature": { - "range": "bytes=0-663", - "checksum": "sha1-sOUsr/dCyi/DbhpUVyCu3ejzx/c=" + "range": "bytes=0-665", + "checksum": "sha1-3SLONu6xXGXASe5BnVjXdUYyYCs=" }, "control": { - "range": "bytes=664-1221", - "checksum": "sha1-SKqHtyX53V+uZGEdUl76Ha0RM2A=" + "range": "bytes=666-1221", + "checksum": "sha1-XHw11LZClKXK9t5cy44/mdC5rwE=" }, "data": { "range": "bytes=1222-212992", - "checksum": "sha256-kQLTAIXDoQU+ywboe++4B0ww8RS9GT3tTLcCuWMNNAw=" + "checksum": "sha256-JdeixfA7rjZTaekXrjeKnDPAbUqGfm2oe8jWYOKOdaA=" }, - "checksum": "Q1SKqHtyX53V+uZGEdUl76Ha0RM2A=" + "checksum": "Q1XHw11LZClKXK9t5cy44/mdC5rwE=" }, { "name": "pcre2", @@ -882,22 +882,22 @@ }, { "name": "ca-certificates", - "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/ca-certificates-20230506-r0.apk", - "version": "20230506-r0", + "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/ca-certificates-20240226-r0.apk", + "version": "20240226-r0", "architecture": "x86_64", "signature": { - "range": "bytes=0-665", - "checksum": "sha1-5UkuWVygPgpCoaxEzz8EXPtDMEw=" + "range": "bytes=0-664", + "checksum": "sha1-U6YuV7cz4yMHc+j1NYeWoyecYQc=" }, "control": { - "range": "bytes=666-1574", - "checksum": "sha1-FG8M+7w+dkjV9Vy0mGFWW2t4+Do=" + "range": "bytes=665-1566", + "checksum": "sha1-M2O65DB56Ju1GLmm2hrKvk6s8KU=" }, "data": { - "range": "bytes=1575-704512", - "checksum": "sha256-BJOYfHwliYN95TgrERMUHssqnNtWVji64rk6oBHf+wc=" + "range": "bytes=1567-729088", + "checksum": "sha256-JSPphCMvOKnVgxDxhJfOHToq2ngE2GQQhNBX9AEFPNM=" }, - "checksum": "Q1FG8M+7w+dkjV9Vy0mGFWW2t4+Do=" + "checksum": "Q1M2O65DB56Ju1GLmm2hrKvk6s8KU=" }, { "name": "libmagic", @@ -1224,22 +1224,22 @@ }, { "name": "libexpat", - "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/libexpat-2.6.0-r0.apk", - "version": "2.6.0-r0", + "url": "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/libexpat-2.6.2-r0.apk", + "version": "2.6.2-r0", "architecture": "x86_64", "signature": { - "range": "bytes=0-666", - "checksum": "sha1-UHt5OpG3+DUStuYHgiUlReOM4eM=" + "range": "bytes=0-662", + "checksum": "sha1-A8N7zPGeDNWP8/1TYlSlHeEyNGU=" }, "control": { - "range": "bytes=667-1242", - "checksum": "sha1-RaHjLErkBML3L8/NW8C2jWVnGHM=" + "range": "bytes=663-1235", + "checksum": "sha1-US763iBUKsj18b17tZrA8l6eojc=" }, "data": { - "range": "bytes=1243-147456", - "checksum": "sha256-msJP6uwx8dkUo8hR6ncV3P1a0dsZNbfPuRj9bElSvig=" + "range": "bytes=1236-147456", + "checksum": "sha256-Aar3x/FZoaw/6qXjCaGOWcn2kyATHpx9THdtKvx735k=" }, - "checksum": "Q1RaHjLErkBML3L8/NW8C2jWVnGHM=" + "checksum": "Q1US763iBUKsj18b17tZrA8l6eojc=" }, { "name": "pcre2", diff --git a/examples/oci/apko.lock.json b/examples/oci/apko.lock.json index dd336a8..61df2d0 100755 --- a/examples/oci/apko.lock.json +++ b/examples/oci/apko.lock.json @@ -22,22 +22,22 @@ "packages": [ { "name": "ca-certificates-bundle", - "url": "https://packages.wolfi.dev/os/aarch64/ca-certificates-bundle-20240226-r0.apk", - "version": "20240226-r0", + "url": "https://packages.wolfi.dev/os/aarch64/ca-certificates-bundle-20240315-r0.apk", + "version": "20240315-r0", "architecture": "aarch64", "signature": { - "range": "bytes=0-702", - "checksum": "sha1-oSWkIODpGuQyYzi9VR0Mt0SbOT0=" + "range": "bytes=0-707", + "checksum": "sha1-bAckSB0Wvee7L3sH3RsdhuaAZpU=" }, "control": { - "range": "bytes=703-1038", - "checksum": "sha1-iOcWsJdedTtFM/q5e/g8SZsn5c8=" + "range": "bytes=708-1045", + "checksum": "sha1-NfAdHuer9/CckkjO0LPnrnseTo0=" }, "data": { - "range": "bytes=1039-256258", - "checksum": "sha256-5fxjyiUusCGYsNqId5RNFbGVlKtxEah/xBecLDXaLgA=" + "range": "bytes=1046-256259", + "checksum": "sha256-pMUGHSifMPhiZw9HeNkNRlKkkJUq9ejPWb91hpM1yGA=" }, - "checksum": "Q1iOcWsJdedTtFM/q5e/g8SZsn5c8=" + "checksum": "Q1NfAdHuer9/CckkjO0LPnrnseTo0=" }, { "name": "wolfi-baselayout", @@ -60,60 +60,60 @@ }, { "name": "ld-linux", - "url": "https://packages.wolfi.dev/os/aarch64/ld-linux-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/aarch64/ld-linux-2.38-r14.apk", + "version": "2.38-r14", "architecture": "aarch64", "signature": { - "range": "bytes=0-696", - "checksum": "sha1-0ShYCySUoCyMSnrXd0CJzfFhnwo=" + "range": "bytes=0-693", + "checksum": "sha1-kJ//Y3nBHc1HtS154o9uKT7OFw0=" }, "control": { - "range": "bytes=697-1090", - "checksum": "sha1-Fzrl+O3cCUzz8ApXZWlKkDbFBns=" + "range": "bytes=694-1101", + "checksum": "sha1-IJoGY+wmxNbidxwfsKYInVQj9K0=" }, "data": { - "range": "bytes=1091-265358", - "checksum": "sha256-HYh5/kCVTdpjUXb2073gqYYe5rQvSSSyabVlizJ2NBg=" + "range": "bytes=1102-265358", + "checksum": "sha256-leCrbvmWiOGirgLsdrnLuwNbFrPmqdW2BjPeqnMtD7M=" }, - "checksum": "Q1Fzrl+O3cCUzz8ApXZWlKkDbFBns=" + "checksum": "Q1IJoGY+wmxNbidxwfsKYInVQj9K0=" }, { "name": "glibc-locale-posix", - "url": "https://packages.wolfi.dev/os/aarch64/glibc-locale-posix-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/aarch64/glibc-locale-posix-2.38-r14.apk", + "version": "2.38-r14", "architecture": "aarch64", "signature": { - "range": "bytes=0-700", - "checksum": "sha1-GBCXbCU68Mzndvb7vJx3iP9qiUM=" + "range": "bytes=0-699", + "checksum": "sha1-kgprGZDnaAj9dpvFPUyGQQ7E494=" }, "control": { - "range": "bytes=701-1043", - "checksum": "sha1-vZ20fz7ySThzS2cPwTfRri57lQk=" + "range": "bytes=700-1054", + "checksum": "sha1-3gtkMXDvpjrTMbgagBOWZ5Nnm6w=" }, "data": { - "range": "bytes=1044-417024", - "checksum": "sha256-u0K3ta7+kVebF6KMvPBXowfw+DQAp0eHVP/QDCRG8is=" + "range": "bytes=1055-417024", + "checksum": "sha256-cbqUjeChlz/YZhA0O6L+h2S+VEySBUz/OEi6fgcdkb8=" }, - "checksum": "Q1vZ20fz7ySThzS2cPwTfRri57lQk=" + "checksum": "Q13gtkMXDvpjrTMbgagBOWZ5Nnm6w=" }, { "name": "glibc", - "url": "https://packages.wolfi.dev/os/aarch64/glibc-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/aarch64/glibc-2.38-r14.apk", + "version": "2.38-r14", "architecture": "aarch64", "signature": { "range": "bytes=0-697", - "checksum": "sha1-JBXEE8i6ipmKOZuiepVQfCbJBEI=" + "checksum": "sha1-cyjeoOTh5OSqOQjWm93iQIWBQNc=" }, "control": { - "range": "bytes=698-1301", - "checksum": "sha1-K1AnxhYhMpxIoP86Wee6QEdhIh0=" + "range": "bytes=698-1323", + "checksum": "sha1-ZFqiTVlq73T552uqkA1R/ns3oPI=" }, "data": { - "range": "bytes=1302-5588244", - "checksum": "sha256-S0ZsiMyeYNQovL8GFATbFrRIzuFFC/+LHZYzBGdpu+U=" + "range": "bytes=1324-5588244", + "checksum": "sha256-bZnXPdDL+AOvixvV3Cl73uKbq3fGmZzvo5X8kkKg3D0=" }, - "checksum": "Q1K1AnxhYhMpxIoP86Wee6QEdhIh0=" + "checksum": "Q1ZFqiTVlq73T552uqkA1R/ns3oPI=" }, { "name": "openssl-config", @@ -193,41 +193,41 @@ }, { "name": "apk-tools", - "url": "https://packages.wolfi.dev/os/aarch64/apk-tools-2.14.0-r1.apk", - "version": "2.14.0-r1", + "url": "https://packages.wolfi.dev/os/aarch64/apk-tools-2.14.1-r0.apk", + "version": "2.14.1-r0", "architecture": "aarch64", "signature": { - "range": "bytes=0-700", - "checksum": "sha1-8vhyOfegR0P/yaMBcp7+dBGjagM=" + "range": "bytes=0-697", + "checksum": "sha1-R4e5fiWXIrwVA/0OwEmzJ1jmOiA=" }, "control": { - "range": "bytes=701-1129", - "checksum": "sha1-JFLblNleo+XoRzgGSDd6QMUuzSM=" + "range": "bytes=698-1140", + "checksum": "sha1-0NhT/RQpd+icIg1numsmgok2wgs=" }, "data": { - "range": "bytes=1130-605132", - "checksum": "sha256-LRI/KNPIkknYLPT4+NK8mIRlB+OVKwc9MbHvoJHuPpc=" + "range": "bytes=1141-605570", + "checksum": "sha256-wcv+V5jaSFvViwwHl9kgoMHMij1tvpqhTfuc11RdnV8=" }, - "checksum": "Q1JFLblNleo+XoRzgGSDd6QMUuzSM=" + "checksum": "Q10NhT/RQpd+icIg1numsmgok2wgs=" }, { "name": "libcrypt1", - "url": "https://packages.wolfi.dev/os/aarch64/libcrypt1-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/aarch64/libcrypt1-2.38-r14.apk", + "version": "2.38-r14", "architecture": "aarch64", "signature": { - "range": "bytes=0-701", - "checksum": "sha1-zwH+So2ijyEqdC4uuKfaKWe2+AM=" + "range": "bytes=0-699", + "checksum": "sha1-QD7mSByEiUzTk7il8HBGAuXFhrE=" }, "control": { - "range": "bytes=702-1088", - "checksum": "sha1-P2DapiNDOFzGCO4jqsYOkEB98hM=" + "range": "bytes=700-1100", + "checksum": "sha1-na9s/7tzEfZbOnIlwm1eOPv0QHQ=" }, "data": { - "range": "bytes=1089-101413", - "checksum": "sha256-hi7Fz3JOwYuyiaADtEs6f5zyZoAWhzbB9utnWjYNaI0=" + "range": "bytes=1101-101413", + "checksum": "sha256-Pw7Uynhlz0CqU9c/bez36iTQNuOLiQAu0q0921PYMzI=" }, - "checksum": "Q1P2DapiNDOFzGCO4jqsYOkEB98hM=" + "checksum": "Q1na9s/7tzEfZbOnIlwm1eOPv0QHQ=" }, { "name": "busybox", @@ -288,22 +288,22 @@ }, { "name": "ca-certificates-bundle", - "url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240226-r0.apk", - "version": "20240226-r0", + "url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240315-r0.apk", + "version": "20240315-r0", "architecture": "x86_64", "signature": { - "range": "bytes=0-697", - "checksum": "sha1-HXxbXsOfAhUQYV+d527pzMnrZ4w=" + "range": "bytes=0-695", + "checksum": "sha1-E1NIpx8yCH6x5GcSqB4MzKQxuq4=" }, "control": { - "range": "bytes=698-1035", - "checksum": "sha1-QToEXPLB/AYtwApF4wWGMibX3xE=" + "range": "bytes=696-1032", + "checksum": "sha1-YQmPfQ1Ym4tfjrCMChbESrrRg/o=" }, "data": { - "range": "bytes=1036-256257", - "checksum": "sha256-+qsP+Vt6y5KMcMW1ce50wWCqGXiJVu73yREF4CLvROI=" + "range": "bytes=1033-256258", + "checksum": "sha256-5hhCQURRrKVfPk8TOZVxfjceIUkVE0fh3/vEJBk88Ps=" }, - "checksum": "Q1QToEXPLB/AYtwApF4wWGMibX3xE=" + "checksum": "Q1YQmPfQ1Ym4tfjrCMChbESrrRg/o=" }, { "name": "wolfi-baselayout", @@ -326,60 +326,60 @@ }, { "name": "ld-linux", - "url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.38-r14.apk", + "version": "2.38-r14", "architecture": "x86_64", "signature": { - "range": "bytes=0-698", - "checksum": "sha1-h1Sga/5KaoTHo6Ea0SSl4CQPIUU=" + "range": "bytes=0-704", + "checksum": "sha1-VUPM1Ku/6USKuooc14B6ugUCkJ8=" }, "control": { - "range": "bytes=699-1094", - "checksum": "sha1-ankgke0TLps7fy0EObnkBitjDXM=" + "range": "bytes=705-1114", + "checksum": "sha1-S77t7JMBWVgeUc9m/6pcSlEHCno=" }, "data": { - "range": "bytes=1095-266217", - "checksum": "sha256-3txNSNJz1OuSFIpgLFwLBP5q+FI5R7qGI7NGXdQ7NxA=" + "range": "bytes=1115-266217", + "checksum": "sha256-NX0k+BjD8uvL2qlMUMhBMLEzWEC7ppzRgFJFZeVpK8E=" }, - "checksum": "Q1ankgke0TLps7fy0EObnkBitjDXM=" + "checksum": "Q1S77t7JMBWVgeUc9m/6pcSlEHCno=" }, { "name": "glibc-locale-posix", - "url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.38-r14.apk", + "version": "2.38-r14", "architecture": "x86_64", "signature": { - "range": "bytes=0-697", - "checksum": "sha1-7yiJ3A833hGrg20scXwY6PFefeY=" + "range": "bytes=0-698", + "checksum": "sha1-9YaN47Z59VFK0/G/u7T0s2vZwKo=" }, "control": { - "range": "bytes=698-1043", - "checksum": "sha1-GBM/qD+XZy1s4A7rD9fZISWeO7c=" + "range": "bytes=699-1055", + "checksum": "sha1-ECspSelYyqRO3AsK/Ruk/7nq2JA=" }, "data": { - "range": "bytes=1044-417023", - "checksum": "sha256-WWaMTX4tj6aZjquSQf90MS81lHMbO1cBYrwhCOepkuY=" + "range": "bytes=1056-417023", + "checksum": "sha256-tOYN1j2rS7BHyq2f0EtejROK5/aejqoVY6xmHN3AbnI=" }, - "checksum": "Q1GBM/qD+XZy1s4A7rD9fZISWeO7c=" + "checksum": "Q1ECspSelYyqRO3AsK/Ruk/7nq2JA=" }, { "name": "glibc", - "url": "https://packages.wolfi.dev/os/x86_64/glibc-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/x86_64/glibc-2.38-r14.apk", + "version": "2.38-r14", "architecture": "x86_64", "signature": { - "range": "bytes=0-694", - "checksum": "sha1-3StHWVk6h7yVexKcJjtJZL4CZqg=" + "range": "bytes=0-703", + "checksum": "sha1-Xys9Gj2V2M737ycwxVdzebT9QnM=" }, "control": { - "range": "bytes=695-1303", - "checksum": "sha1-Szc3cxj+pMd2uIiRS7yEnYlzTck=" + "range": "bytes=704-1331", + "checksum": "sha1-6cMdvmZiVSuNV+sQ6bDMuPwtzkc=" }, "data": { - "range": "bytes=1304-6660754", - "checksum": "sha256-bNs/hTXPJ3L4iTWHkKx9XfNDpfCq3jY0IwPruJ4QJzU=" + "range": "bytes=1332-6660754", + "checksum": "sha256-LlMWmYFXlQokiVTJcL80X6pkB/IpHnj1DBBOXCLUbUg=" }, - "checksum": "Q1Szc3cxj+pMd2uIiRS7yEnYlzTck=" + "checksum": "Q16cMdvmZiVSuNV+sQ6bDMuPwtzkc=" }, { "name": "openssl-config", @@ -459,41 +459,41 @@ }, { "name": "apk-tools", - "url": "https://packages.wolfi.dev/os/x86_64/apk-tools-2.14.0-r1.apk", - "version": "2.14.0-r1", + "url": "https://packages.wolfi.dev/os/x86_64/apk-tools-2.14.1-r0.apk", + "version": "2.14.1-r0", "architecture": "x86_64", "signature": { - "range": "bytes=0-694", - "checksum": "sha1-2Tr4WKmNRkReEiE9t6oYVlLOObc=" + "range": "bytes=0-698", + "checksum": "sha1-36kJjPXcYmscESh01jnQ81iYWck=" }, "control": { - "range": "bytes=695-1129", - "checksum": "sha1-tAzgssIL2RJqyVOp2MQtveTncL8=" + "range": "bytes=699-1146", + "checksum": "sha1-kJcZn1GeNl9Hx9WJsx8097omA9E=" }, "data": { - "range": "bytes=1130-499979", - "checksum": "sha256-Hn/2H01tfNGkBeFum2PRzjxt1mBYpRvHpp9PNNawhnY=" + "range": "bytes=1147-500313", + "checksum": "sha256-dNEqONQUz5ZO69N8dyStadLOcn7ANiD7GwD9RSpdiBM=" }, - "checksum": "Q1tAzgssIL2RJqyVOp2MQtveTncL8=" + "checksum": "Q1kJcZn1GeNl9Hx9WJsx8097omA9E=" }, { "name": "libcrypt1", - "url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.38-r14.apk", + "version": "2.38-r14", "architecture": "x86_64", "signature": { - "range": "bytes=0-699", - "checksum": "sha1-d6lAg1/ibDAcX2YJXuYbtE+Iadc=" + "range": "bytes=0-692", + "checksum": "sha1-y3tcdtuMQvvDvwCQyPcQBmgKaAw=" }, "control": { - "range": "bytes=700-1090", - "checksum": "sha1-J157D3kZpvP4xe4AAXu/4KaRPAc=" + "range": "bytes=693-1096", + "checksum": "sha1-xxA+RT71VMmFlm0N/rgX2EDIooU=" }, "data": { - "range": "bytes=1091-74764", - "checksum": "sha256-CccXinGeJQiIpr94goBmJkiJLYm8ndskPIih6puMpqU=" + "range": "bytes=1097-74764", + "checksum": "sha256-IavltUnfgnym/v8uKbDOsIICQ0mmlJ8SGZTEPZWs/RU=" }, - "checksum": "Q1J157D3kZpvP4xe4AAXu/4KaRPAc=" + "checksum": "Q1xxA+RT71VMmFlm0N/rgX2EDIooU=" }, { "name": "busybox", diff --git a/examples/wolfi-base/apko.lock.json b/examples/wolfi-base/apko.lock.json index da9d64f..b0e1a6b 100755 --- a/examples/wolfi-base/apko.lock.json +++ b/examples/wolfi-base/apko.lock.json @@ -22,22 +22,22 @@ "packages": [ { "name": "ca-certificates-bundle", - "url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240226-r0.apk", - "version": "20240226-r0", + "url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240315-r0.apk", + "version": "20240315-r0", "architecture": "x86_64", "signature": { - "range": "bytes=0-697", - "checksum": "sha1-HXxbXsOfAhUQYV+d527pzMnrZ4w=" + "range": "bytes=0-695", + "checksum": "sha1-E1NIpx8yCH6x5GcSqB4MzKQxuq4=" }, "control": { - "range": "bytes=698-1035", - "checksum": "sha1-QToEXPLB/AYtwApF4wWGMibX3xE=" + "range": "bytes=696-1032", + "checksum": "sha1-YQmPfQ1Ym4tfjrCMChbESrrRg/o=" }, "data": { - "range": "bytes=1036-256257", - "checksum": "sha256-+qsP+Vt6y5KMcMW1ce50wWCqGXiJVu73yREF4CLvROI=" + "range": "bytes=1033-256258", + "checksum": "sha256-5hhCQURRrKVfPk8TOZVxfjceIUkVE0fh3/vEJBk88Ps=" }, - "checksum": "Q1QToEXPLB/AYtwApF4wWGMibX3xE=" + "checksum": "Q1YQmPfQ1Ym4tfjrCMChbESrrRg/o=" }, { "name": "wolfi-baselayout", @@ -60,60 +60,60 @@ }, { "name": "ld-linux", - "url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.38-r14.apk", + "version": "2.38-r14", "architecture": "x86_64", "signature": { - "range": "bytes=0-698", - "checksum": "sha1-h1Sga/5KaoTHo6Ea0SSl4CQPIUU=" + "range": "bytes=0-704", + "checksum": "sha1-VUPM1Ku/6USKuooc14B6ugUCkJ8=" }, "control": { - "range": "bytes=699-1094", - "checksum": "sha1-ankgke0TLps7fy0EObnkBitjDXM=" + "range": "bytes=705-1114", + "checksum": "sha1-S77t7JMBWVgeUc9m/6pcSlEHCno=" }, "data": { - "range": "bytes=1095-266217", - "checksum": "sha256-3txNSNJz1OuSFIpgLFwLBP5q+FI5R7qGI7NGXdQ7NxA=" + "range": "bytes=1115-266217", + "checksum": "sha256-NX0k+BjD8uvL2qlMUMhBMLEzWEC7ppzRgFJFZeVpK8E=" }, - "checksum": "Q1ankgke0TLps7fy0EObnkBitjDXM=" + "checksum": "Q1S77t7JMBWVgeUc9m/6pcSlEHCno=" }, { "name": "glibc-locale-posix", - "url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.38-r14.apk", + "version": "2.38-r14", "architecture": "x86_64", "signature": { - "range": "bytes=0-697", - "checksum": "sha1-7yiJ3A833hGrg20scXwY6PFefeY=" + "range": "bytes=0-698", + "checksum": "sha1-9YaN47Z59VFK0/G/u7T0s2vZwKo=" }, "control": { - "range": "bytes=698-1043", - "checksum": "sha1-GBM/qD+XZy1s4A7rD9fZISWeO7c=" + "range": "bytes=699-1055", + "checksum": "sha1-ECspSelYyqRO3AsK/Ruk/7nq2JA=" }, "data": { - "range": "bytes=1044-417023", - "checksum": "sha256-WWaMTX4tj6aZjquSQf90MS81lHMbO1cBYrwhCOepkuY=" + "range": "bytes=1056-417023", + "checksum": "sha256-tOYN1j2rS7BHyq2f0EtejROK5/aejqoVY6xmHN3AbnI=" }, - "checksum": "Q1GBM/qD+XZy1s4A7rD9fZISWeO7c=" + "checksum": "Q1ECspSelYyqRO3AsK/Ruk/7nq2JA=" }, { "name": "glibc", - "url": "https://packages.wolfi.dev/os/x86_64/glibc-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/x86_64/glibc-2.38-r14.apk", + "version": "2.38-r14", "architecture": "x86_64", "signature": { - "range": "bytes=0-694", - "checksum": "sha1-3StHWVk6h7yVexKcJjtJZL4CZqg=" + "range": "bytes=0-703", + "checksum": "sha1-Xys9Gj2V2M737ycwxVdzebT9QnM=" }, "control": { - "range": "bytes=695-1303", - "checksum": "sha1-Szc3cxj+pMd2uIiRS7yEnYlzTck=" + "range": "bytes=704-1331", + "checksum": "sha1-6cMdvmZiVSuNV+sQ6bDMuPwtzkc=" }, "data": { - "range": "bytes=1304-6660754", - "checksum": "sha256-bNs/hTXPJ3L4iTWHkKx9XfNDpfCq3jY0IwPruJ4QJzU=" + "range": "bytes=1332-6660754", + "checksum": "sha256-LlMWmYFXlQokiVTJcL80X6pkB/IpHnj1DBBOXCLUbUg=" }, - "checksum": "Q1Szc3cxj+pMd2uIiRS7yEnYlzTck=" + "checksum": "Q16cMdvmZiVSuNV+sQ6bDMuPwtzkc=" }, { "name": "openssl-config", @@ -193,41 +193,41 @@ }, { "name": "apk-tools", - "url": "https://packages.wolfi.dev/os/x86_64/apk-tools-2.14.0-r1.apk", - "version": "2.14.0-r1", + "url": "https://packages.wolfi.dev/os/x86_64/apk-tools-2.14.1-r0.apk", + "version": "2.14.1-r0", "architecture": "x86_64", "signature": { - "range": "bytes=0-694", - "checksum": "sha1-2Tr4WKmNRkReEiE9t6oYVlLOObc=" + "range": "bytes=0-698", + "checksum": "sha1-36kJjPXcYmscESh01jnQ81iYWck=" }, "control": { - "range": "bytes=695-1129", - "checksum": "sha1-tAzgssIL2RJqyVOp2MQtveTncL8=" + "range": "bytes=699-1146", + "checksum": "sha1-kJcZn1GeNl9Hx9WJsx8097omA9E=" }, "data": { - "range": "bytes=1130-499979", - "checksum": "sha256-Hn/2H01tfNGkBeFum2PRzjxt1mBYpRvHpp9PNNawhnY=" + "range": "bytes=1147-500313", + "checksum": "sha256-dNEqONQUz5ZO69N8dyStadLOcn7ANiD7GwD9RSpdiBM=" }, - "checksum": "Q1tAzgssIL2RJqyVOp2MQtveTncL8=" + "checksum": "Q1kJcZn1GeNl9Hx9WJsx8097omA9E=" }, { "name": "libcrypt1", - "url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.38-r14.apk", + "version": "2.38-r14", "architecture": "x86_64", "signature": { - "range": "bytes=0-699", - "checksum": "sha1-d6lAg1/ibDAcX2YJXuYbtE+Iadc=" + "range": "bytes=0-692", + "checksum": "sha1-y3tcdtuMQvvDvwCQyPcQBmgKaAw=" }, "control": { - "range": "bytes=700-1090", - "checksum": "sha1-J157D3kZpvP4xe4AAXu/4KaRPAc=" + "range": "bytes=693-1096", + "checksum": "sha1-xxA+RT71VMmFlm0N/rgX2EDIooU=" }, "data": { - "range": "bytes=1091-74764", - "checksum": "sha256-CccXinGeJQiIpr94goBmJkiJLYm8ndskPIih6puMpqU=" + "range": "bytes=1097-74764", + "checksum": "sha256-IavltUnfgnym/v8uKbDOsIICQ0mmlJ8SGZTEPZWs/RU=" }, - "checksum": "Q1J157D3kZpvP4xe4AAXu/4KaRPAc=" + "checksum": "Q1xxA+RT71VMmFlm0N/rgX2EDIooU=" }, { "name": "busybox", @@ -288,22 +288,22 @@ }, { "name": "ca-certificates-bundle", - "url": "https://packages.wolfi.dev/os/aarch64/ca-certificates-bundle-20240226-r0.apk", - "version": "20240226-r0", + "url": "https://packages.wolfi.dev/os/aarch64/ca-certificates-bundle-20240315-r0.apk", + "version": "20240315-r0", "architecture": "aarch64", "signature": { - "range": "bytes=0-702", - "checksum": "sha1-oSWkIODpGuQyYzi9VR0Mt0SbOT0=" + "range": "bytes=0-707", + "checksum": "sha1-bAckSB0Wvee7L3sH3RsdhuaAZpU=" }, "control": { - "range": "bytes=703-1038", - "checksum": "sha1-iOcWsJdedTtFM/q5e/g8SZsn5c8=" + "range": "bytes=708-1045", + "checksum": "sha1-NfAdHuer9/CckkjO0LPnrnseTo0=" }, "data": { - "range": "bytes=1039-256258", - "checksum": "sha256-5fxjyiUusCGYsNqId5RNFbGVlKtxEah/xBecLDXaLgA=" + "range": "bytes=1046-256259", + "checksum": "sha256-pMUGHSifMPhiZw9HeNkNRlKkkJUq9ejPWb91hpM1yGA=" }, - "checksum": "Q1iOcWsJdedTtFM/q5e/g8SZsn5c8=" + "checksum": "Q1NfAdHuer9/CckkjO0LPnrnseTo0=" }, { "name": "wolfi-baselayout", @@ -326,60 +326,60 @@ }, { "name": "ld-linux", - "url": "https://packages.wolfi.dev/os/aarch64/ld-linux-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/aarch64/ld-linux-2.38-r14.apk", + "version": "2.38-r14", "architecture": "aarch64", "signature": { - "range": "bytes=0-696", - "checksum": "sha1-0ShYCySUoCyMSnrXd0CJzfFhnwo=" + "range": "bytes=0-693", + "checksum": "sha1-kJ//Y3nBHc1HtS154o9uKT7OFw0=" }, "control": { - "range": "bytes=697-1090", - "checksum": "sha1-Fzrl+O3cCUzz8ApXZWlKkDbFBns=" + "range": "bytes=694-1101", + "checksum": "sha1-IJoGY+wmxNbidxwfsKYInVQj9K0=" }, "data": { - "range": "bytes=1091-265358", - "checksum": "sha256-HYh5/kCVTdpjUXb2073gqYYe5rQvSSSyabVlizJ2NBg=" + "range": "bytes=1102-265358", + "checksum": "sha256-leCrbvmWiOGirgLsdrnLuwNbFrPmqdW2BjPeqnMtD7M=" }, - "checksum": "Q1Fzrl+O3cCUzz8ApXZWlKkDbFBns=" + "checksum": "Q1IJoGY+wmxNbidxwfsKYInVQj9K0=" }, { "name": "glibc-locale-posix", - "url": "https://packages.wolfi.dev/os/aarch64/glibc-locale-posix-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/aarch64/glibc-locale-posix-2.38-r14.apk", + "version": "2.38-r14", "architecture": "aarch64", "signature": { - "range": "bytes=0-700", - "checksum": "sha1-GBCXbCU68Mzndvb7vJx3iP9qiUM=" + "range": "bytes=0-699", + "checksum": "sha1-kgprGZDnaAj9dpvFPUyGQQ7E494=" }, "control": { - "range": "bytes=701-1043", - "checksum": "sha1-vZ20fz7ySThzS2cPwTfRri57lQk=" + "range": "bytes=700-1054", + "checksum": "sha1-3gtkMXDvpjrTMbgagBOWZ5Nnm6w=" }, "data": { - "range": "bytes=1044-417024", - "checksum": "sha256-u0K3ta7+kVebF6KMvPBXowfw+DQAp0eHVP/QDCRG8is=" + "range": "bytes=1055-417024", + "checksum": "sha256-cbqUjeChlz/YZhA0O6L+h2S+VEySBUz/OEi6fgcdkb8=" }, - "checksum": "Q1vZ20fz7ySThzS2cPwTfRri57lQk=" + "checksum": "Q13gtkMXDvpjrTMbgagBOWZ5Nnm6w=" }, { "name": "glibc", - "url": "https://packages.wolfi.dev/os/aarch64/glibc-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/aarch64/glibc-2.38-r14.apk", + "version": "2.38-r14", "architecture": "aarch64", "signature": { "range": "bytes=0-697", - "checksum": "sha1-JBXEE8i6ipmKOZuiepVQfCbJBEI=" + "checksum": "sha1-cyjeoOTh5OSqOQjWm93iQIWBQNc=" }, "control": { - "range": "bytes=698-1301", - "checksum": "sha1-K1AnxhYhMpxIoP86Wee6QEdhIh0=" + "range": "bytes=698-1323", + "checksum": "sha1-ZFqiTVlq73T552uqkA1R/ns3oPI=" }, "data": { - "range": "bytes=1302-5588244", - "checksum": "sha256-S0ZsiMyeYNQovL8GFATbFrRIzuFFC/+LHZYzBGdpu+U=" + "range": "bytes=1324-5588244", + "checksum": "sha256-bZnXPdDL+AOvixvV3Cl73uKbq3fGmZzvo5X8kkKg3D0=" }, - "checksum": "Q1K1AnxhYhMpxIoP86Wee6QEdhIh0=" + "checksum": "Q1ZFqiTVlq73T552uqkA1R/ns3oPI=" }, { "name": "openssl-config", @@ -459,41 +459,41 @@ }, { "name": "apk-tools", - "url": "https://packages.wolfi.dev/os/aarch64/apk-tools-2.14.0-r1.apk", - "version": "2.14.0-r1", + "url": "https://packages.wolfi.dev/os/aarch64/apk-tools-2.14.1-r0.apk", + "version": "2.14.1-r0", "architecture": "aarch64", "signature": { - "range": "bytes=0-700", - "checksum": "sha1-8vhyOfegR0P/yaMBcp7+dBGjagM=" + "range": "bytes=0-697", + "checksum": "sha1-R4e5fiWXIrwVA/0OwEmzJ1jmOiA=" }, "control": { - "range": "bytes=701-1129", - "checksum": "sha1-JFLblNleo+XoRzgGSDd6QMUuzSM=" + "range": "bytes=698-1140", + "checksum": "sha1-0NhT/RQpd+icIg1numsmgok2wgs=" }, "data": { - "range": "bytes=1130-605132", - "checksum": "sha256-LRI/KNPIkknYLPT4+NK8mIRlB+OVKwc9MbHvoJHuPpc=" + "range": "bytes=1141-605570", + "checksum": "sha256-wcv+V5jaSFvViwwHl9kgoMHMij1tvpqhTfuc11RdnV8=" }, - "checksum": "Q1JFLblNleo+XoRzgGSDd6QMUuzSM=" + "checksum": "Q10NhT/RQpd+icIg1numsmgok2wgs=" }, { "name": "libcrypt1", - "url": "https://packages.wolfi.dev/os/aarch64/libcrypt1-2.38-r11.apk", - "version": "2.38-r11", + "url": "https://packages.wolfi.dev/os/aarch64/libcrypt1-2.38-r14.apk", + "version": "2.38-r14", "architecture": "aarch64", "signature": { - "range": "bytes=0-701", - "checksum": "sha1-zwH+So2ijyEqdC4uuKfaKWe2+AM=" + "range": "bytes=0-699", + "checksum": "sha1-QD7mSByEiUzTk7il8HBGAuXFhrE=" }, "control": { - "range": "bytes=702-1088", - "checksum": "sha1-P2DapiNDOFzGCO4jqsYOkEB98hM=" + "range": "bytes=700-1100", + "checksum": "sha1-na9s/7tzEfZbOnIlwm1eOPv0QHQ=" }, "data": { - "range": "bytes=1089-101413", - "checksum": "sha256-hi7Fz3JOwYuyiaADtEs6f5zyZoAWhzbB9utnWjYNaI0=" + "range": "bytes=1101-101413", + "checksum": "sha256-Pw7Uynhlz0CqU9c/bez36iTQNuOLiQAu0q0921PYMzI=" }, - "checksum": "Q1P2DapiNDOFzGCO4jqsYOkEB98hM=" + "checksum": "Q1na9s/7tzEfZbOnIlwm1eOPv0QHQ=" }, { "name": "busybox",