diff --git a/.github/workflows/check-circular-deps.yml b/.github/workflows/check-circular-deps.yml index d92638990de..418d9c9a53d 100644 --- a/.github/workflows/check-circular-deps.yml +++ b/.github/workflows/check-circular-deps.yml @@ -22,6 +22,9 @@ jobs: - name: Workflow trigger checkout uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 + - name: Install toolkit prerequisites + run: sudo make -C toolkit install-prereqs + - name: Determine DAILY_BUILD_ID value run: | echo "GitHub 'base_ref': ${{ github.base_ref }}" diff --git a/.github/workflows/check-package-builds.yml b/.github/workflows/check-package-builds.yml index 3e075c6d30a..c9601afe4f8 100644 --- a/.github/workflows/check-package-builds.yml +++ b/.github/workflows/check-package-builds.yml @@ -127,6 +127,9 @@ jobs: - name: Checkout a stable version of the specs uses: ./.github/actions/checkout-with-stable-pkgs + - name: Install toolkit prerequisites + run: sudo make -C toolkit install-prereqs + - name: Prepare the build environment if: ${{ matrix.build-prep != '' }} run: | diff --git a/.github/workflows/check-package-cgmanifest.yml b/.github/workflows/check-package-cgmanifest.yml index 53bcb5c23ea..265d5e23be2 100644 --- a/.github/workflows/check-package-cgmanifest.yml +++ b/.github/workflows/check-package-cgmanifest.yml @@ -22,6 +22,9 @@ jobs: - name: Check out code uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 + - name: Install toolkit prerequisites + run: sudo make -C toolkit install-prereqs + # This PR runner uses an older Ubuntu with rpm version 4.17, which doesn't understand some newer macros like %bcond - name: Define missing rpm macros run: | diff --git a/.github/workflows/check-source-signatures.yml b/.github/workflows/check-source-signatures.yml index 5fa8a06d36b..0762fb01602 100644 --- a/.github/workflows/check-source-signatures.yml +++ b/.github/workflows/check-source-signatures.yml @@ -25,6 +25,9 @@ jobs: - name: Workflow trigger checkout uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 + - name: Install toolkit prerequisites + run: sudo make -C toolkit install-prereqs + # For consistency, we use the same major/minor version of Python that Azure Linux ships - name: Setup Python 3.12 uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 diff --git a/.github/workflows/check-srpm-duplicates.yml b/.github/workflows/check-srpm-duplicates.yml index b5d6f2496a7..2e2062441b7 100644 --- a/.github/workflows/check-srpm-duplicates.yml +++ b/.github/workflows/check-srpm-duplicates.yml @@ -29,6 +29,9 @@ jobs: - name: Workflow trigger checkout uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 + - name: Install toolkit prerequisites + run: sudo make -C toolkit install-prereqs + # For consistency, we use the same major/minor version of Python that Azure Linux ships - name: Setup Python 3.12 uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 diff --git a/.github/workflows/go-test-coverage.yml b/.github/workflows/go-test-coverage.yml index 8ed9c0314cd..18103dac43e 100644 --- a/.github/workflows/go-test-coverage.yml +++ b/.github/workflows/go-test-coverage.yml @@ -10,7 +10,7 @@ on: branches: [main, dev, 1.0*, 2.0*, 3.0*, fasttrack/*] env: - EXPECTED_GO_VERSION: "1.24" + EXPECTED_GO_VERSION: "1.25" permissions: contents: read diff --git a/toolkit/docs/building/prerequisites-mariner.md b/toolkit/docs/building/prerequisites-mariner.md index 66ef1f83c2c..cf99998a69b 100644 --- a/toolkit/docs/building/prerequisites-mariner.md +++ b/toolkit/docs/building/prerequisites-mariner.md @@ -7,10 +7,9 @@ This page outlines the requirements for building with the Azure Linux toolkit on ### Golang Package Requirements -Different versions of Azure Linux have been validated with the following Golang packages: +The Azure Linux toolkit requires Go 1.25 or newer: -- **Azure Linux 2.0 (CBL-Mariner)**: Validated with `msft-golang-1.24.1` -- **Azure Linux 3.0**: Validated with `golang-1.24.3` +- **Azure Linux 3.0**: Supported by the current `golang` package ## Installation Methods @@ -21,7 +20,6 @@ The make targets automatically detect your OS version and install the appropriat ```bash # For interactive development environments (local machines) # Installs prerequisites but doesn't modify system configuration -# Note: On Azure Linux 2.0, this will remove golang if installed in favor of msft-golang due to the golang version requirement sudo make -C toolkit install-prereqs # Manually configure Docker if needed @@ -40,6 +38,7 @@ sudo make -C toolkit install-prereqs-and-configure ``` **Recommendation**: + - Use `install-prereqs` on your local development machine - Use `install-prereqs-and-configure` in CI/CD pipelines or when you need a complete environment setup @@ -47,7 +46,8 @@ sudo make -C toolkit install-prereqs-and-configure If you prefer running the script directly, use the appropriate options for your OS version: -#### For Azure Linux 3.0: +#### For Azure Linux 3.0 + ```bash # Install prerequisites with standard golang sudo ./toolkit/docs/building/prerequisites-mariner.sh diff --git a/toolkit/docs/building/prerequisites-ubuntu.md b/toolkit/docs/building/prerequisites-ubuntu.md index 5feaeb5537e..1ebbbdd2a9d 100644 --- a/toolkit/docs/building/prerequisites-ubuntu.md +++ b/toolkit/docs/building/prerequisites-ubuntu.md @@ -7,9 +7,59 @@ This page outlines the requirements for building with the Azure Linux toolkit on ### Golang Package Requirements -The Azure Linux toolkit on Ubuntu has been validated with the following: +The Azure Linux toolkit requires Go 1.25 or newer. -- **Ubuntu 22.04**: Validated with `golang-1.24.13` (available as `golang-1.24-go` package) +Ubuntu 26.04 packages Go 1.25 as `golang-1.25-go`, but the older releases still in common use +(22.04, 24.04) do not package it at all. Unless your `PATH` already has Go 1.25 or newer, the +prerequisites script picks a source at runtime: + +1. **The distro package**, when apt has a `golang-1.25-go` candidate (Ubuntu 26.04 and newer). Go is + installed into `/usr/lib/go-1.25`. This keeps working on hosts that can reach an apt mirror but + have no access to the public internet. +2. **The upstream toolchain**, when apt has no candidate. The pinned tarball is downloaded from + [go.dev/dl](https://go.dev/dl), verified against a SHA256 checksum, and unpacked into + `/usr/local/go`. `amd64` and `arm64` are supported; on any other architecture the script stops and + asks you to install Go yourself. + +Either way `go` and `gofmt` are symlinked into `/usr/bin`, so no separate step is needed. + +A Go toolchain that is already installed in either location and reports 1.25 or newer is reused +as-is — the script only ever replaces a `/usr/local/go` that is too old, and says so before it does. + +If some other `go` sits earlier on `PATH` than `/usr/bin` — `/usr/local/bin/go` is the usual +culprit, since both Ubuntu's default `PATH` and `sudo`'s `secure_path` list `/usr/local/bin` first — +the script names it and warns that it will be used instead. That is only a problem if the shadowing +copy is too old — remove it if the build later reports an unsupported Go version. + +The pinned version and its checksums are the `GO_VERSION`/`GO_SHA256_*` variables at the top of +`prerequisites-ubuntu.sh` and must be updated together. + +To use a Go you have installed yourself instead, make sure it is on `PATH` and reports 1.25 or +newer; the script will detect it and skip the download. + +#### Updating the pinned Go version + +Go supports only the two most recent release series: when 1.N ships, 1.(N-2) stops receiving +security fixes. This pin therefore moves on Go's release cadence rather than Azure Linux's, and +CVE fixes are a routine reason to move it. lists the supported releases. + +Bumping the *patch* release (1.25.x → 1.25.y) means editing `prerequisites-ubuntu.sh` alone: + +1. Set `GO_VERSION`. +2. Set `GO_SHA256_AMD64` and `GO_SHA256_ARM64` from in the same change — the + checksums are version-specific, and a stale one aborts the install with a message naming the + constant that needs refreshing. + +Bumping the *minor* release (1.25 → 1.26) additionally requires, all in one change: + +| Location | What to change | +| --- | --- | +| `prerequisites-ubuntu.sh` | `GO_APT_PACKAGE`, `GO_APT_ROOT`, and the version regex in `go_version_ok` | +| `toolkit/tools/go.mod` | the `go` directive, which `toolkit/scripts/tools.mk` turns into the build-time minimum | +| `.github/workflows/go-test-coverage.yml` | `EXPECTED_GO_VERSION`, which both selects the CI toolchain and asserts the `go.mod` directive matches | +| `prerequisites-ubuntu.md`, `prerequisites-mariner.md` | the stated minimum version | + +Leaving any of them behind either fails CI or, worse, installs a toolchain the build then rejects. ## Installation Methods @@ -22,18 +72,14 @@ The make targets automatically install the appropriate packages: # Installs prerequisites but doesn't modify system configuration sudo make -C toolkit install-prereqs -# Manually create Go symlinks for proper PATH integration -sudo ln -sf /usr/lib/go-1.24/bin/go /usr/bin/go -sudo ln -sf /usr/lib/go-1.24/bin/gofmt /usr/bin/gofmt - # Manually configure Docker if needed curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER # Note: You will need to log out and log back in for user changes to take effect -# the above 2 steps can alternatively be done using the following command if preferred: -# sudo ./toolkit/docs/building/prerequisites-ubuntu.sh --no-install-prereqs --fix-go-links --configure-docker +# the above step can alternatively be done using the following command if preferred: +# sudo ./toolkit/docs/building/prerequisites-ubuntu.sh --no-install-prereqs --configure-docker ---------------------- @@ -43,6 +89,7 @@ sudo make -C toolkit install-prereqs-and-configure ``` **Recommendation**: + - Use `install-prereqs` on your local development machine - Use `install-prereqs-and-configure` in CI/CD pipelines or when you need a complete environment setup @@ -54,25 +101,24 @@ If you prefer running the script directly, you have several options: # Basic installation with Go sudo ./toolkit/docs/building/prerequisites-ubuntu.sh -# Manually create Go symlinks for proper PATH integration -sudo ln -sf /usr/lib/go-1.24/bin/go /usr/bin/go -sudo ln -sf /usr/lib/go-1.24/bin/gofmt /usr/bin/gofmt - # Manually configure Docker if needed curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER # Note: You will need to log out and log back in for user changes to take effect -# the above 2 steps can alternatively be done using the following command if preferred: -# sudo ./toolkit/docs/building/prerequisites-ubuntu.sh --no-install-prereqs --fix-go-links --configure-docker +# the above step can alternatively be done using the following command if preferred: +# sudo ./toolkit/docs/building/prerequisites-ubuntu.sh --no-install-prereqs --configure-docker ``` ## Script Options The `prerequisites-ubuntu.sh` script supports the following options: -- `--fix-go-links`: Creates symbolic links for Go binaries to make them available in your PATH +- `--fix-go-links`: Re-creates the `/usr/bin` symlinks for the Go binaries, pointing them at + whichever Go root is installed (`/usr/lib/go-1.` or `/usr/local/go`). The + prerequisites installation already does this whenever the `go` on `PATH` is missing or too old, + so it is only needed to repair the links. - `--configure-docker`: Installs Docker and adds your user to the docker group - `--no-install-prereqs`: Skips installation of prerequisite packages - `--help`: Displays usage information diff --git a/toolkit/docs/building/prerequisites-ubuntu.sh b/toolkit/docs/building/prerequisites-ubuntu.sh index a2c5f6c4146..b4bfcb6c692 100755 --- a/toolkit/docs/building/prerequisites-ubuntu.sh +++ b/toolkit/docs/building/prerequisites-ubuntu.sh @@ -2,7 +2,123 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. -set -e +set -eo pipefail + +# Go is installed separately from the other packages because its source depends on the release. +# Ubuntu 26.04 packages Go 1.25 as golang-1.25-go; 22.04 and 24.04 do not package it at all, so +# those fall back to the upstream toolchain. The distro package is preferred so that hosts which +# can reach an apt mirror but not go.dev keep working without external egress. +# +# Go supports only the two most recent release series, so this pin has to keep moving. See +# "Updating the pinned Go version" in prerequisites-ubuntu.md before changing any of it: the +# minimum version is spelled out in four other places that must move at the same time. +# Checksums are from https://go.dev/dl and must be updated together with GO_VERSION. +GO_APT_PACKAGE=golang-1.25-go +GO_APT_ROOT=/usr/lib/go-1.25 +GO_VERSION=1.25.14 +GO_SHA256_AMD64=a21ae5633a269bcd7e90cf767e48225633795e99d831742cbf3397064fee7712 +GO_SHA256_ARM64=9bf234ea70ffec9347fdf6b22ce4add51717d3386a38a441e8c8743fceb5eaee + +# Returns zero when the given go binary meets the toolkit's minimum. Prereleases of the minimum +# series must not qualify -- go1.25rc1 predates go1.25.0 and the toolkit would reject it -- while +# prereleases of later series (go1.26rc1) are new enough. +go_version_ok() { + "$1" version 2>/dev/null | grep -qE 'go1\.(25\.[0-9]|2[6-9]|[3-9][0-9])' +} + +# Echoes the root of an installed Go toolchain, preferring the distro package over the upstream +# tarball, and a toolchain that meets the minimum over one that does not -- so a stale apt root +# does not get linked over a good upstream one. Returns non-zero when neither root has a Go. +go_root() { + go_root_fallback="" + for root in "$GO_APT_ROOT" /usr/local/go; do + if [ -x "$root/bin/go" ]; then + go_version_ok "$root/bin/go" && { echo "$root"; return 0; } + [ -z "$go_root_fallback" ] && go_root_fallback="$root" + fi + done + + [ -n "$go_root_fallback" ] && { echo "$go_root_fallback"; return 0; } + return 1 +} + +# Returns zero when a Go new enough for the toolkit is already available, whether it is first on +# PATH or sitting unlinked in one of the roots this script manages. +go_is_supported() { + go_version_ok go && return 0 + + go_installed_root="$(go_root)" || return 1 + go_version_ok "$go_installed_root/bin/go" +} + +# Installs Go from the distro when it is packaged, otherwise from the pinned upstream tarball. +install_go() { + echo "Checking apt for '$GO_APT_PACKAGE' (not packaged before Ubuntu 26.04)..." + if apt install -y "$GO_APT_PACKAGE" && [ -x "$GO_APT_ROOT/bin/go" ]; then + echo "Installed $GO_APT_PACKAGE from apt." + return + fi + + echo "'$GO_APT_PACKAGE' is unavailable on this release, using the upstream toolchain..." + go_arch="$(dpkg --print-architecture)" + case "$go_arch" in + amd64) go_sha256="$GO_SHA256_AMD64"; go_sha256_var=GO_SHA256_AMD64 ;; + arm64) go_sha256="$GO_SHA256_ARM64"; go_sha256_var=GO_SHA256_ARM64 ;; + *) + echo "ERROR: no upstream Go build is pinned for architecture '$go_arch'." >&2 + echo "Install Go $GO_VERSION or newer manually, then re-run with --no-install-prereqs." >&2 + exit 1 + ;; + esac + + echo "Installing Go $GO_VERSION ($go_arch) from https://go.dev/dl..." + # Deliberately not 'local': the EXIT trap below runs after this function has returned, when a + # function-scoped variable would already be out of scope and the temp dir would leak. + go_tmp_dir="$(mktemp -d)" + trap 'rm -rf "$go_tmp_dir"' EXIT + curl -fsSL -o "$go_tmp_dir/go.tar.gz" \ + "https://go.dev/dl/go${GO_VERSION}.linux-${go_arch}.tar.gz" + if echo "$go_sha256 $go_tmp_dir/go.tar.gz" | sha256sum --status -c -; then + echo "Checksum OK." + else + echo "ERROR: go${GO_VERSION}.linux-${go_arch}.tar.gz does not match its pinned checksum." >&2 + echo " expected: $go_sha256" >&2 + echo " actual: $(sha256sum < "$go_tmp_dir/go.tar.gz" | cut -d ' ' -f 1)" >&2 + echo "Either the download was corrupted or tampered with, or GO_VERSION was changed in" >&2 + echo "$0 without refreshing $go_sha256_var. The expected value for a given release is" >&2 + echo "published at https://go.dev/dl. Nothing has been installed." >&2 + exit 1 + fi + + if [ -e /usr/local/go ]; then + echo "WARNING: replacing the Go installation in /usr/local/go, it is older than $GO_VERSION." >&2 + fi + rm -rf /usr/local/go + tar -C /usr/local -xzf "$go_tmp_dir/go.tar.gz" +} + +# Points /usr/bin/go and /usr/bin/gofmt at the installed Go root, then checks the links actually win. +link_go() { + if ! go_link_root="$(go_root)"; then + echo "No Go installation in $GO_APT_ROOT or /usr/local/go, skipping Go symlinks..." + return + fi + + echo "Creating Go symlinks from $go_link_root..." + ln -vsf "$go_link_root/bin/go" /usr/bin/go + ln -vsf "$go_link_root/bin/gofmt" /usr/bin/gofmt + + # Ubuntu's default PATH, and sudo's secure_path, list /usr/local/bin ahead of /usr/bin, so a + # stray go left there keeps winning. Without this warning the toolkit's own version gate fails + # much later, from a different script, with nothing pointing back to the real cause. + hash -r + go_on_path="$(command -v go 2>/dev/null || true)" + if [ -n "$go_on_path" ] && ! [ "$go_on_path" -ef /usr/bin/go ]; then + echo "WARNING: '$go_on_path' precedes /usr/bin/go on PATH and will be used instead:" >&2 + echo "WARNING: $("$go_on_path" version 2>&1 | head -n 1)" >&2 + echo "WARNING: remove it if the build later reports an unsupported Go version." >&2 + fi +} # Define usage function usage() { @@ -46,9 +162,6 @@ while [ $# -gt 0 ]; do done # Install prerequisites if not disabled -# golang version pinned for stability to avoid breaking changes. As of 11-Jun-2025 we are using golang-1.23.1 on Ubuntu 22.04 since it is the most recent release available. -# When making a breaking change to the toolkit which requires a newer golang version, update this version if needed. -# If no newer version is available, suggest moving to a newer Ubuntu LTS version if [ "$INSTALL_PREREQS" = true ]; then echo "Installing required packages..." apt update @@ -59,7 +172,6 @@ if [ "$INSTALL_PREREQS" = true ]; then gawk \ genisoimage \ git \ - golang-1.24-go \ jq \ make \ openssl \ @@ -72,15 +184,25 @@ if [ "$INSTALL_PREREQS" = true ]; then wget \ xfsprogs \ zstd + + # Install Go separately from the packages above: which source it comes from depends on the + # Ubuntu release, and a toolchain that is already good enough is reused rather than replaced. + if go_is_supported; then + echo "Found a Go toolchain that meets the minimum, skipping Go installation..." + else + install_go + fi else echo "Skipping installation of prerequisite packages..." fi -# Fix go 1.24 links if requested -if [ "$FIX_GO_LINKS" = true ]; then - echo "Creating Go symlinks..." - ln -vsf /usr/lib/go-1.24/bin/go /usr/bin/go - ln -vsf /usr/lib/go-1.24/bin/gofmt /usr/bin/gofmt +# Neither $GO_APT_ROOT/bin nor /usr/local/go/bin is on PATH, so the toolkit reaches a Go installed +# above only through the /usr/bin symlinks that link_go creates. Create them when the 'go' on PATH +# is missing or too old for the toolkit; leave them alone when it is new enough, since that 'go' is +# found first no matter where /usr/bin/go points. --fix-go-links skips the check and re-creates the +# symlinks anyway, to repair them or to pair with --no-install-prereqs. +if [ "$FIX_GO_LINKS" = true ] || { [ "$INSTALL_PREREQS" = true ] && ! go_version_ok go; }; then + link_go fi # Install and configure Docker if requested diff --git a/toolkit/resources/manifests/package/pkggen_core_aarch64.txt b/toolkit/resources/manifests/package/pkggen_core_aarch64.txt index cf385e45ac7..0df46a80c30 100644 --- a/toolkit/resources/manifests/package/pkggen_core_aarch64.txt +++ b/toolkit/resources/manifests/package/pkggen_core_aarch64.txt @@ -236,6 +236,8 @@ azurelinux-repos-3.0-5.azl3.noarch.rpm libffi-3.4.4-1.azl3.aarch64.rpm libffi-devel-3.4.4-1.azl3.aarch64.rpm libtasn1-4.19.0-3.azl3.aarch64.rpm +chkconfig-1.25-1.azl3.aarch64.rpm +chkconfig-lang-1.25-1.azl3.aarch64.rpm p11-kit-0.26.5-1.azl3.aarch64.rpm p11-kit-trust-0.26.5-1.azl3.aarch64.rpm ca-certificates-shared-3.0.0-16.azl3.noarch.rpm @@ -254,8 +256,6 @@ libselinux-3.6-4.azl3.aarch64.rpm slang-2.3.3-1.azl3.aarch64.rpm newt-0.52.23-1.azl3.aarch64.rpm newt-lang-0.52.23-1.azl3.aarch64.rpm -chkconfig-1.25-1.azl3.aarch64.rpm -chkconfig-lang-1.25-1.azl3.aarch64.rpm msopenjdk-17-17.0.12-1.aarch64.rpm pyproject-rpm-macros-1.12.0-2.azl3.noarch.rpm pyproject-srpm-macros-1.12.0-2.azl3.noarch.rpm diff --git a/toolkit/resources/manifests/package/pkggen_core_x86_64.txt b/toolkit/resources/manifests/package/pkggen_core_x86_64.txt index 23d091c53f4..c524e34dd7c 100644 --- a/toolkit/resources/manifests/package/pkggen_core_x86_64.txt +++ b/toolkit/resources/manifests/package/pkggen_core_x86_64.txt @@ -236,6 +236,8 @@ azurelinux-repos-3.0-5.azl3.noarch.rpm libffi-3.4.4-1.azl3.x86_64.rpm libffi-devel-3.4.4-1.azl3.x86_64.rpm libtasn1-4.19.0-3.azl3.x86_64.rpm +chkconfig-1.25-1.azl3.x86_64.rpm +chkconfig-lang-1.25-1.azl3.x86_64.rpm p11-kit-0.26.5-1.azl3.x86_64.rpm p11-kit-trust-0.26.5-1.azl3.x86_64.rpm ca-certificates-shared-3.0.0-16.azl3.noarch.rpm @@ -254,8 +256,6 @@ libselinux-3.6-4.azl3.x86_64.rpm slang-2.3.3-1.azl3.x86_64.rpm newt-0.52.23-1.azl3.x86_64.rpm newt-lang-0.52.23-1.azl3.x86_64.rpm -chkconfig-1.25-1.azl3.x86_64.rpm -chkconfig-lang-1.25-1.azl3.x86_64.rpm msopenjdk-17-17.0.12-1.x86_64.rpm pyproject-rpm-macros-1.12.0-2.azl3.noarch.rpm pyproject-srpm-macros-1.12.0-2.azl3.noarch.rpm diff --git a/toolkit/resources/manifests/package/update_manifests.sh b/toolkit/resources/manifests/package/update_manifests.sh index 0bb7bf1918e..fd6b109bc22 100755 --- a/toolkit/resources/manifests/package/update_manifests.sh +++ b/toolkit/resources/manifests/package/update_manifests.sh @@ -289,6 +289,8 @@ generate_pkggen_core () { grep "^azurelinux-repos" $TmpPkgGen grep "^libffi-" $TmpPkgGen grep "^libtasn1-" $TmpPkgGen + grep "^chkconfig-[0-9]" $TmpPkgGen + grep "^chkconfig-lang-[0-9]" $TmpPkgGen grep "^p11-kit-" $TmpPkgGen grep "^ca-certificates-shared-" $TmpPkgGen grep "^ca-certificates-tools-" $TmpPkgGen @@ -302,8 +304,6 @@ generate_pkggen_core () { grep "^slang-[0-9]" $TmpPkgGen grep "^newt-[0-9]" $TmpPkgGen grep "^newt-lang-[0-9]" $TmpPkgGen - grep "^chkconfig-[0-9]" $TmpPkgGen - grep "^chkconfig-lang-[0-9]" $TmpPkgGen grep "^msopenjdk-" $TmpPkgGen grep "^pyproject-" $TmpPkgGen grep "^audit-" $TmpPkgGen diff --git a/toolkit/tools/go.mod b/toolkit/tools/go.mod index 57992854773..3c4841e6e36 100644 --- a/toolkit/tools/go.mod +++ b/toolkit/tools/go.mod @@ -1,6 +1,6 @@ module github.com/microsoft/azurelinux/toolkit/tools -go 1.24.0 +go 1.25.0 require ( github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0 @@ -21,7 +21,7 @@ require ( github.com/sirupsen/logrus v1.9.3 github.com/stretchr/testify v1.9.0 github.com/ulikunitz/xz v0.5.15 - golang.org/x/sys v0.38.0 + golang.org/x/sys v0.46.0 gonum.org/v1/gonum v0.16.0 gopkg.in/alecthomas/kingpin.v2 v2.2.6 gopkg.in/ini.v1 v1.67.0 @@ -48,8 +48,8 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rivo/uniseg v0.1.0 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect - golang.org/x/crypto v0.45.0 // indirect - golang.org/x/net v0.47.0 // indirect - golang.org/x/sync v0.18.0 // indirect - golang.org/x/text v0.31.0 // indirect + golang.org/x/crypto v0.53.0 // indirect + golang.org/x/net v0.56.0 // indirect + golang.org/x/sync v0.21.0 // indirect + golang.org/x/text v0.39.0 // indirect ) diff --git a/toolkit/tools/go.sum b/toolkit/tools/go.sum index b04e731d682..01289257e58 100644 --- a/toolkit/tools/go.sum +++ b/toolkit/tools/go.sum @@ -102,12 +102,12 @@ github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRT github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= -golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= -golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= -golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= -golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= -golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= +golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= +golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o= +golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec= +golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM= +golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191018095205-727590c5006e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -115,12 +115,12 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= -golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= +golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= -golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +golang.org/x/text v0.39.0 h1:UbZz4pLOvn600D6Oh6GGEI6VAmndrEBLv8/6BEXzyus= +golang.org/x/text v0.39.0/go.mod h1:3UwRclnC2g0TU9x8PZiyfOajCd1zaUNHF9cvqcQZ+ZM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=