Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rootlesskit for openSUSE:Factory checked in at 2025-03-16 18:57:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rootlesskit (Old) and /work/SRC/openSUSE:Factory/.rootlesskit.new.19136 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rootlesskit" Sun Mar 16 18:57:49 2025 rev:13 rq:1252656 version:2.3.4 Changes: -------- --- /work/SRC/openSUSE:Factory/rootlesskit/rootlesskit.changes 2025-01-21 21:09:49.593371900 +0100 +++ /work/SRC/openSUSE:Factory/.rootlesskit.new.19136/rootlesskit.changes 2025-03-16 18:57:57.202879939 +0100 @@ -1,0 +2,22 @@ +Thu Mar 13 05:20:04 UTC 2025 - madhankumar.chellamu...@suse.com + +- Update to version 2.3.4: + * v2.3.4 + * Revert "detach-netns: simplify unshare helper" + * v2.3.3+dev + * v2.3.3 + * CI: release: update Ubuntu 24.04 + * CI: update passt to 2025_02_17.a1e48a0 + * CI: update slirp4netns to 1.3.2 + * CI: update Go to 1.24 + * detach-netns: simplify unshare helper + * Fix detach-netns permission error on Ubuntu 25.04 + * Build(deps): Bump golang.org/x/sys from 0.30.0 to 0.31.0 + * Build(deps): Bump github.com/urfave/cli/v2 from 2.27.5 to 2.27.6 + * CI: test Docker v28 in addition to v27 + * Build(deps): Bump github.com/containernetworking/plugins + * Build(deps): Bump golang.org/x/sys from 0.29.0 to 0.30.0 + * Build(deps): Bump gotest.tools/v3 from 3.5.1 to 3.5.2 + * v2.3.2+dev + +------------------------------------------------------------------- Old: ---- rootlesskit-2.3.2.tar.gz New: ---- rootlesskit-2.3.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rootlesskit.spec ++++++ --- /var/tmp/diff_new_pack.WcSGm8/_old 2025-03-16 18:57:58.010913741 +0100 +++ /var/tmp/diff_new_pack.WcSGm8/_new 2025-03-16 18:57:58.010913741 +0100 @@ -17,7 +17,7 @@ Name: rootlesskit -Version: 2.3.2 +Version: 2.3.4 Release: 0 Summary: Linux-native fakeroot using user namespaces License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.WcSGm8/_old 2025-03-16 18:57:58.038914913 +0100 +++ /var/tmp/diff_new_pack.WcSGm8/_new 2025-03-16 18:57:58.042915080 +0100 @@ -4,7 +4,7 @@ <param name="url">https://github.com/rootless-containers/rootlesskit.git</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v2.3.2</param> + <param name="revision">v2.3.4</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.WcSGm8/_old 2025-03-16 18:57:58.062915917 +0100 +++ /var/tmp/diff_new_pack.WcSGm8/_new 2025-03-16 18:57:58.062915917 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/rootless-containers/rootlesskit.git</param> - <param name="changesrevision">b8175e1f0b3987b9e2bd04e373f63b0ba0aa17c9</param></service></servicedata> + <param name="changesrevision">59a459df858d39ad5f4eafa305545907bf0c48ab</param></service></servicedata> (No newline at EOF) ++++++ rootlesskit-2.3.2.tar.gz -> rootlesskit-2.3.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rootlesskit-2.3.2/.github/workflows/main.yaml new/rootlesskit-2.3.4/.github/workflows/main.yaml --- old/rootlesskit-2.3.2/.github/workflows/main.yaml 2025-01-20 02:15:31.000000000 +0100 +++ new/rootlesskit-2.3.4/.github/workflows/main.yaml 2025-03-10 02:52:05.000000000 +0100 @@ -186,6 +186,12 @@ test-integration-docker: name: "Integration test (Docker)" runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + # The design of the proxy was changed in Docker v28. + # rootlesskit-docker-proxy is no longer used since Docker v28. + docker_version: [27.5.1, 28.0.1] steps: - name: "Set up AppArmor" run: | @@ -201,7 +207,9 @@ - name: "Check out" uses: actions/checkout@v4 - name: "Build integration test image" - run: DOCKER_BUILDKIT=1 docker build -t rootlesskit:test-integration-docker --target test-integration-docker . + run: DOCKER_BUILDKIT=1 docker build -t rootlesskit:test-integration-docker --target test-integration-docker --build-arg DOCKER_VERSION . + env: + DOCKER_VERSION: ${{ matrix.docker_version }} - name: "Create a custom network to avoid IP confusion" run: docker network create custom - name: "Docker Integration test: net=slirp4netns, port-driver=builtin" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rootlesskit-2.3.2/.github/workflows/release.yaml new/rootlesskit-2.3.4/.github/workflows/release.yaml --- old/rootlesskit-2.3.2/.github/workflows/release.yaml 2025-01-20 02:15:31.000000000 +0100 +++ new/rootlesskit-2.3.4/.github/workflows/release.yaml 2025-03-10 02:52:05.000000000 +0100 @@ -16,7 +16,7 @@ jobs: release: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 # The maximum access is "read" for PRs from public forked repos # https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token permissions: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rootlesskit-2.3.2/Dockerfile new/rootlesskit-2.3.4/Dockerfile --- old/rootlesskit-2.3.2/Dockerfile 2025-01-20 02:15:31.000000000 +0100 +++ new/rootlesskit-2.3.4/Dockerfile 2025-03-10 02:52:05.000000000 +0100 @@ -1,10 +1,10 @@ -ARG GO_VERSION=1.23 +ARG GO_VERSION=1.24 ARG UBUNTU_VERSION=24.04 ARG SHADOW_VERSION=4.16.0 -ARG SLIRP4NETNS_VERSION=v1.3.1 +ARG SLIRP4NETNS_VERSION=v1.3.2 ARG VPNKIT_VERSION=0.5.0 -ARG PASST_VERSION=2024_12_11.09478d5 -ARG DOCKER_VERSION=27.5.0 +ARG PASST_VERSION=2025_02_17.a1e48a0 +ARG DOCKER_VERSION=28.0.1 ARG DOCKER_CHANNEL=stable FROM golang:${GO_VERSION}-alpine AS build @@ -92,12 +92,18 @@ WORKDIR /home/user/hack FROM test-integration AS test-integration-docker -COPY --from=artifact /rootlesskit-docker-proxy /home/user/bin/ ARG DOCKER_VERSION ARG DOCKER_CHANNEL RUN curl -fsSL https://download.docker.com/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz | tar xz --strip-components=1 -C /home/user/bin/ RUN curl -fsSL -o /home/user/bin/dockerd-rootless.sh https://raw.githubusercontent.com/moby/moby/v${DOCKER_VERSION}/contrib/dockerd-rootless.sh && \ chmod +x /home/user/bin/dockerd-rootless.sh +# rootlesskit-docker-proxy is no longer needed since Docker v28 +RUN --mount=source=/rootlesskit-docker-proxy,target=/tmp/rootlesskit-docker-proxy,from=artifact <<EOT + set -ex + if [ "$(echo ${DOCKER_VERSION} | cut -d . -f 1)" -lt "28" ]; then + cp -a /tmp/rootlesskit-docker-proxy /home/user/bin + fi +EOT ENV DOCKERD_ROOTLESS_ROOTLESSKIT_NET=slirp4netns ENV DOCKERD_ROOTLESS_ROOTLESSKIT_PORT_DRIVER=builtin ENV DOCKER_HOST=unix:///run/user/2000/docker.sock diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rootlesskit-2.3.2/cmd/rootlesskit/main.go new/rootlesskit-2.3.4/cmd/rootlesskit/main.go --- old/rootlesskit-2.3.2/cmd/rootlesskit/main.go 2025-01-20 02:15:31.000000000 +0100 +++ new/rootlesskit-2.3.4/cmd/rootlesskit/main.go 2025-03-10 02:52:05.000000000 +0100 @@ -15,6 +15,7 @@ "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" + "github.com/rootless-containers/rootlesskit/v2/cmd/rootlesskit/unshare" "github.com/rootless-containers/rootlesskit/v2/pkg/child" "github.com/rootless-containers/rootlesskit/v2/pkg/common" "github.com/rootless-containers/rootlesskit/v2/pkg/copyup/tmpfssymlink" @@ -41,6 +42,10 @@ ) func main() { + if checkUnshareHelper() { + unshare.Main() + return + } iAmActivationHelper := checkActivationHelper() iAmChild := os.Getenv(pipeFDEnvKey) != "" id := "parent" @@ -701,3 +706,7 @@ } return opt, nil } + +func checkUnshareHelper() bool { + return filepath.Base(os.Args[0]) == "unshare" +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rootlesskit-2.3.2/cmd/rootlesskit/unshare/unshare.go new/rootlesskit-2.3.4/cmd/rootlesskit/unshare/unshare.go --- old/rootlesskit-2.3.2/cmd/rootlesskit/unshare/unshare.go 1970-01-01 01:00:00.000000000 +0100 +++ new/rootlesskit-2.3.4/cmd/rootlesskit/unshare/unshare.go 2025-03-10 02:52:05.000000000 +0100 @@ -0,0 +1,53 @@ +package unshare + +import ( + "errors" + "fmt" + "os" + "os/exec" + "syscall" + + "github.com/rootless-containers/rootlesskit/v2/pkg/common" + "github.com/rootless-containers/rootlesskit/v2/pkg/version" + "github.com/urfave/cli/v2" +) + +func Main() { + app := cli.NewApp() + app.Name = "unshare" + app.HideHelpCommand = true + app.Version = version.Version + app.Usage = "Reimplementation of unshare(1)" + app.UsageText = "unshare [global options] [arguments...]" + app.Flags = append(app.Flags, &cli.BoolFlag{ + Name: "n,net", + Usage: "unshare network namespace", + }) + app.Action = action + if err := app.Run(os.Args); err != nil { + fmt.Fprintf(os.Stderr, "[rootlesskit:unshare] error: %v\n", err) + // propagate the exit code + code, ok := common.GetExecExitStatus(err) + if !ok { + code = 1 + } + os.Exit(code) + } +} + +func action(clicontext *cli.Context) error { + ctx := clicontext.Context + if clicontext.NArg() < 1 { + return errors.New("no command specified") + } + cmdFlags := clicontext.Args().Slice() + cmd := exec.CommandContext(ctx, cmdFlags[0], cmdFlags[1:]...) + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + cmd.SysProcAttr = &syscall.SysProcAttr{} + if clicontext.Bool("n") { + cmd.SysProcAttr.Cloneflags |= syscall.CLONE_NEWNET + } + return cmd.Run() +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rootlesskit-2.3.2/go.mod new/rootlesskit-2.3.4/go.mod --- old/rootlesskit-2.3.2/go.mod 2025-01-20 02:15:31.000000000 +0100 +++ new/rootlesskit-2.3.4/go.mod 2025-03-10 02:52:05.000000000 +0100 @@ -1,10 +1,10 @@ module github.com/rootless-containers/rootlesskit/v2 -go 1.21.0 +go 1.23.0 require ( github.com/Masterminds/semver/v3 v3.3.1 - github.com/containernetworking/plugins v1.5.1 + github.com/containernetworking/plugins v1.6.2 github.com/gofrs/flock v0.12.1 github.com/google/uuid v1.6.0 github.com/gorilla/mux v1.8.1 @@ -13,9 +13,9 @@ github.com/moby/vpnkit v0.5.0 github.com/sirupsen/logrus v1.9.3 github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8 - github.com/urfave/cli/v2 v2.27.5 - golang.org/x/sys v0.29.0 - gotest.tools/v3 v3.5.1 + github.com/urfave/cli/v2 v2.27.6 + golang.org/x/sys v0.31.0 + gotest.tools/v3 v3.5.2 ) require ( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rootlesskit-2.3.2/go.sum new/rootlesskit-2.3.4/go.sum --- old/rootlesskit-2.3.2/go.sum 2025-01-20 02:15:31.000000000 +0100 +++ new/rootlesskit-2.3.4/go.sum 2025-03-10 02:52:05.000000000 +0100 @@ -1,40 +1,38 @@ github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4= github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= -github.com/containernetworking/cni v1.1.2 h1:wtRGZVv7olUHMOqouPpn3cXJWpJgM6+EUl31EQbXALQ= -github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= -github.com/containernetworking/plugins v1.5.1 h1:T5ji+LPYjjgW0QM+KyrigZbLsZ8jaX+E5J/EcKOE4gQ= -github.com/containernetworking/plugins v1.5.1/go.mod h1:MIQfgMayGuHYs0XdNudf31cLLAC+i242hNm6KuDGqCM= +github.com/containernetworking/cni v1.2.3 h1:hhOcjNVUQTnzdRJ6alC5XF+wd9mfGIUaj8FuJbEslXM= +github.com/containernetworking/cni v1.2.3/go.mod h1:DuLgF+aPd3DzcTQTtp/Nvl1Kim23oFKdm2okJzBQA5M= +github.com/containernetworking/plugins v1.6.2 h1:pqP8Mq923TLyef5g97XfJ/xpDeVek4yF8A4mzy9Tc4U= +github.com/containernetworking/plugins v1.6.2/go.mod h1:SP5UG3jDO9LtmfbBJdP+nl3A1atOtbj2MBOYsnaxy64= github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E= github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= -github.com/insomniacslk/dhcp v0.0.0-20240812123929-b105c29bd1b5 h1:GkMacU5ftc+IEg1449N3UEy2XLDz58W4fkrRu2fibb8= -github.com/insomniacslk/dhcp v0.0.0-20240812123929-b105c29bd1b5/go.mod h1:KclMyHxX06VrVr0DJmeFSUb1ankt7xTfoOA35pCkoic= github.com/insomniacslk/dhcp v0.0.0-20250109001534-8abf58130905 h1:q3OEI9RaN/wwcx+qgGo6ZaoJkCiDYe/gjDLfq7lQQF4= github.com/insomniacslk/dhcp v0.0.0-20250109001534-8abf58130905/go.mod h1:VvGYjkZoJyKqlmT1yzakUs4mfKMNB0XdODP0+rdml6k= github.com/moby/sys/mountinfo v0.7.2 h1:1shs6aH5s4o5H2zQLn796ADW1wMrIwHsyJ2v9KouLrg= github.com/moby/sys/mountinfo v0.7.2/go.mod h1:1YOa8w8Ih7uW0wALDUgT1dTTSBrZ+HiBLGws92L2RU4= github.com/moby/vpnkit v0.5.0 h1:VcDpS9y+PmT9itf+mH5Qdh9GME7ungLMt9yjf9o4REY= github.com/moby/vpnkit v0.5.0/go.mod h1:KyjUrL9cb6ZSNNAUwZfqRjhwwgJ3BJN+kXh0t43WTUQ= -github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= -github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= -github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= -github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg= +github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= +github.com/onsi/gomega v1.36.0 h1:Pb12RlruUtj4XUuPUqeEWc6j5DkVVVA49Uf6YLfC95Y= +github.com/onsi/gomega v1.36.0/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -51,22 +49,24 @@ github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701 h1:pyC9PaHYZFgEKFdlp3G8RaCKgVpHZnecvArXvPXcFkM= github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701/go.mod h1:P3a5rG4X7tI17Nn3aOIAYr5HbIMukwXG0urG0WuL8OA= -github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= -github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= +github.com/urfave/cli/v2 v2.27.6 h1:VdRdS98FNhKZ8/Az8B7MTyGQmpIr36O1EHybx/LaZ4g= +github.com/urfave/cli/v2 v2.27.6/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= +github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8= +github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= -golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= +golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= -golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= +golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= -gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= +gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q= +gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rootlesskit-2.3.2/pkg/child/child.go new/rootlesskit-2.3.4/pkg/child/child.go --- old/rootlesskit-2.3.2/pkg/child/child.go 2025-01-20 02:15:31.000000000 +0100 +++ new/rootlesskit-2.3.4/pkg/child/child.go 2025-03-10 02:52:05.000000000 +0100 @@ -583,8 +583,16 @@ if err := os.WriteFile(p, nil, 0400); err != nil { return err } + selfExe, err := os.Executable() + if err != nil { + return err + } // this is hard (not impossible though) to reimplement in Go: https://github.com/cloudflare/slirpnetstack/commit/d7766a8a77f0093d3cb7a94bd0ccbe3f67d411ba cmd := exec.Command("unshare", "-n", "mount", "--bind", "/proc/self/ns/net", p) + // Use our own implementation of unshare that is embedded in RootlessKit, so as to + // avoid /etc/apparmor.d/unshare-userns-restrict on Ubuntu 25.04. + // https://github.com/rootless-containers/rootlesskit/issues/494 + cmd.Path = selfExe out, err := cmd.CombinedOutput() if err != nil { return fmt.Errorf("failed to execute %v: %w (out=%q)", cmd.Args, err, string(out)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rootlesskit-2.3.2/pkg/version/version.go new/rootlesskit-2.3.4/pkg/version/version.go --- old/rootlesskit-2.3.2/pkg/version/version.go 2025-01-20 02:15:31.000000000 +0100 +++ new/rootlesskit-2.3.4/pkg/version/version.go 2025-03-10 02:52:05.000000000 +0100 @@ -1,3 +1,3 @@ package version -const Version = "2.3.2" +const Version = "2.3.4" ++++++ vendor.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/containernetworking/plugins/pkg/ns/README.md new/vendor/github.com/containernetworking/plugins/pkg/ns/README.md --- old/vendor/github.com/containernetworking/plugins/pkg/ns/README.md 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/github.com/containernetworking/plugins/pkg/ns/README.md 2025-03-13 06:20:57.000000000 +0100 @@ -13,10 +13,10 @@ ```go err = targetNs.Do(func(hostNs ns.NetNS) error { + linkAttrs := netlink.NewLinkAttrs() + linkAttrs.Name = "dummy0" dummy := &netlink.Dummy{ - LinkAttrs: netlink.LinkAttrs{ - Name: "dummy0", - }, + LinkAttrs: linkAttrs, } return netlink.LinkAdd(dummy) }) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/containernetworking/plugins/pkg/ns/ns_linux.go new/vendor/github.com/containernetworking/plugins/pkg/ns/ns_linux.go --- old/vendor/github.com/containernetworking/plugins/pkg/ns/ns_linux.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/github.com/containernetworking/plugins/pkg/ns/ns_linux.go 2025-03-13 06:20:57.000000000 +0100 @@ -31,6 +31,10 @@ // return an unexpected network namespace. runtime.LockOSThread() defer runtime.UnlockOSThread() + return getCurrentNSNoLock() +} + +func getCurrentNSNoLock() (NetNS, error) { return GetNS(getCurrentThreadNetNSPath()) } @@ -152,6 +156,54 @@ return &netNS{file: fd}, nil } +// Returns a new empty NetNS. +// Calling Close() let the kernel garbage collect the network namespace. +func TempNetNS() (NetNS, error) { + var tempNS NetNS + var err error + var wg sync.WaitGroup + wg.Add(1) + + // Create the new namespace in a new goroutine so that if we later fail + // to switch the namespace back to the original one, we can safely + // leave the thread locked to die without a risk of the current thread + // left lingering with incorrect namespace. + go func() { + defer wg.Done() + runtime.LockOSThread() + + var threadNS NetNS + // save a handle to current network namespace + threadNS, err = getCurrentNSNoLock() + if err != nil { + err = fmt.Errorf("failed to open current namespace: %v", err) + return + } + defer threadNS.Close() + + // create the temporary network namespace + err = unix.Unshare(unix.CLONE_NEWNET) + if err != nil { + return + } + + // get a handle to the temporary network namespace + tempNS, err = getCurrentNSNoLock() + + err2 := threadNS.Set() + if err2 == nil { + // Unlock the current thread only when we successfully switched back + // to the original namespace; otherwise leave the thread locked which + // will force the runtime to scrap the current thread, that is maybe + // not as optimal but at least always safe to do. + runtime.UnlockOSThread() + } + }() + + wg.Wait() + return tempNS, err +} + func (ns *netNS) Path() string { return ns.file.Name() } @@ -173,7 +225,7 @@ } containedCall := func(hostNS NetNS) error { - threadNS, err := GetCurrentNS() + threadNS, err := getCurrentNSNoLock() if err != nil { return fmt.Errorf("failed to open current netns: %v", err) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/urfave/cli/v2/flag_string_slice.go new/vendor/github.com/urfave/cli/v2/flag_string_slice.go --- old/vendor/github.com/urfave/cli/v2/flag_string_slice.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/github.com/urfave/cli/v2/flag_string_slice.go 2025-03-13 06:20:57.000000000 +0100 @@ -150,8 +150,8 @@ setValue = f.Value.clone() default: setValue = new(StringSlice) - setValue.WithSeparatorSpec(f.separator) } + setValue.WithSeparatorSpec(f.separator) setValue.keepSpace = f.KeepSpace diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/urfave/cli/v2/godoc-current.txt new/vendor/github.com/urfave/cli/v2/godoc-current.txt --- old/vendor/github.com/urfave/cli/v2/godoc-current.txt 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/github.com/urfave/cli/v2/godoc-current.txt 2025-03-13 06:20:57.000000000 +0100 @@ -136,7 +136,10 @@ {{template "helpNameTemplate" .}} USAGE: - {{if .UsageText}}{{wrap .UsageText 3}}{{else}}{{.HelpName}} {{if .VisibleFlags}}command [command options]{{end}}{{if .ArgsUsage}} {{.ArgsUsage}}{{else}}{{if .Args}} [arguments...]{{end}}{{end}}{{end}}{{if .Description}} + {{template "usageTemplate" .}}{{if .Category}} + +CATEGORY: + {{.Category}}{{end}}{{if .Description}} DESCRIPTION: {{template "descriptionTemplate" .}}{{end}}{{if .VisibleCommands}} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/urfave/cli/v2/help.go new/vendor/github.com/urfave/cli/v2/help.go --- old/vendor/github.com/urfave/cli/v2/help.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/github.com/urfave/cli/v2/help.go 2025-03-13 06:20:57.000000000 +0100 @@ -54,7 +54,7 @@ cCtx = cCtx.parentContext } - // Case 4. $ app hello foo + // Case 4. $ app help foo // foo is the command for which help needs to be shown if argsPresent { return ShowCommandHelp(cCtx, firstArg) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/urfave/cli/v2/template.go new/vendor/github.com/urfave/cli/v2/template.go --- old/vendor/github.com/urfave/cli/v2/template.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/github.com/urfave/cli/v2/template.go 2025-03-13 06:20:57.000000000 +0100 @@ -83,7 +83,10 @@ {{template "helpNameTemplate" .}} USAGE: - {{if .UsageText}}{{wrap .UsageText 3}}{{else}}{{.HelpName}} {{if .VisibleFlags}}command [command options]{{end}}{{if .ArgsUsage}} {{.ArgsUsage}}{{else}}{{if .Args}} [arguments...]{{end}}{{end}}{{end}}{{if .Description}} + {{template "usageTemplate" .}}{{if .Category}} + +CATEGORY: + {{.Category}}{{end}}{{if .Description}} DESCRIPTION: {{template "descriptionTemplate" .}}{{end}}{{if .VisibleCommands}} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/auxv.go new/vendor/golang.org/x/sys/unix/auxv.go --- old/vendor/golang.org/x/sys/unix/auxv.go 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/auxv.go 2025-03-13 06:20:57.000000000 +0100 @@ -0,0 +1,36 @@ +// Copyright 2025 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) + +package unix + +import ( + "syscall" + "unsafe" +) + +//go:linkname runtime_getAuxv runtime.getAuxv +func runtime_getAuxv() []uintptr + +// Auxv returns the ELF auxiliary vector as a sequence of key/value pairs. +// The returned slice is always a fresh copy, owned by the caller. +// It returns an error on non-ELF platforms, or if the auxiliary vector cannot be accessed, +// which happens in some locked-down environments and build modes. +func Auxv() ([][2]uintptr, error) { + vec := runtime_getAuxv() + vecLen := len(vec) + + if vecLen == 0 { + return nil, syscall.ENOENT + } + + if vecLen%2 != 0 { + return nil, syscall.EINVAL + } + + result := make([]uintptr, vecLen) + copy(result, vec) + return unsafe.Slice((*[2]uintptr)(unsafe.Pointer(&result[0])), vecLen/2), nil +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/auxv_unsupported.go new/vendor/golang.org/x/sys/unix/auxv_unsupported.go --- old/vendor/golang.org/x/sys/unix/auxv_unsupported.go 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/auxv_unsupported.go 2025-03-13 06:20:57.000000000 +0100 @@ -0,0 +1,13 @@ +// Copyright 2025 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) + +package unix + +import "syscall" + +func Auxv() ([][2]uintptr, error) { + return nil, syscall.ENOTSUP +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_solaris.go new/vendor/golang.org/x/sys/unix/syscall_solaris.go --- old/vendor/golang.org/x/sys/unix/syscall_solaris.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/syscall_solaris.go 2025-03-13 06:20:57.000000000 +0100 @@ -1102,3 +1102,90 @@ func IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) { return ioctlPtrRet(fd, req, unsafe.Pointer(s)) } + +// Ucred Helpers +// See ucred(3c) and getpeerucred(3c) + +//sys getpeerucred(fd uintptr, ucred *uintptr) (err error) +//sys ucredFree(ucred uintptr) = ucred_free +//sys ucredGet(pid int) (ucred uintptr, err error) = ucred_get +//sys ucredGeteuid(ucred uintptr) (uid int) = ucred_geteuid +//sys ucredGetegid(ucred uintptr) (gid int) = ucred_getegid +//sys ucredGetruid(ucred uintptr) (uid int) = ucred_getruid +//sys ucredGetrgid(ucred uintptr) (gid int) = ucred_getrgid +//sys ucredGetsuid(ucred uintptr) (uid int) = ucred_getsuid +//sys ucredGetsgid(ucred uintptr) (gid int) = ucred_getsgid +//sys ucredGetpid(ucred uintptr) (pid int) = ucred_getpid + +// Ucred is an opaque struct that holds user credentials. +type Ucred struct { + ucred uintptr +} + +// We need to ensure that ucredFree is called on the underlying ucred +// when the Ucred is garbage collected. +func ucredFinalizer(u *Ucred) { + ucredFree(u.ucred) +} + +func GetPeerUcred(fd uintptr) (*Ucred, error) { + var ucred uintptr + err := getpeerucred(fd, &ucred) + if err != nil { + return nil, err + } + result := &Ucred{ + ucred: ucred, + } + // set the finalizer on the result so that the ucred will be freed + runtime.SetFinalizer(result, ucredFinalizer) + return result, nil +} + +func UcredGet(pid int) (*Ucred, error) { + ucred, err := ucredGet(pid) + if err != nil { + return nil, err + } + result := &Ucred{ + ucred: ucred, + } + // set the finalizer on the result so that the ucred will be freed + runtime.SetFinalizer(result, ucredFinalizer) + return result, nil +} + +func (u *Ucred) Geteuid() int { + defer runtime.KeepAlive(u) + return ucredGeteuid(u.ucred) +} + +func (u *Ucred) Getruid() int { + defer runtime.KeepAlive(u) + return ucredGetruid(u.ucred) +} + +func (u *Ucred) Getsuid() int { + defer runtime.KeepAlive(u) + return ucredGetsuid(u.ucred) +} + +func (u *Ucred) Getegid() int { + defer runtime.KeepAlive(u) + return ucredGetegid(u.ucred) +} + +func (u *Ucred) Getrgid() int { + defer runtime.KeepAlive(u) + return ucredGetrgid(u.ucred) +} + +func (u *Ucred) Getsgid() int { + defer runtime.KeepAlive(u) + return ucredGetsgid(u.ucred) +} + +func (u *Ucred) Getpid() int { + defer runtime.KeepAlive(u) + return ucredGetpid(u.ucred) +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux.go new/vendor/golang.org/x/sys/unix/zerrors_linux.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux.go 2025-03-13 06:20:57.000000000 +0100 @@ -1245,6 +1245,7 @@ FAN_REPORT_DFID_NAME = 0xc00 FAN_REPORT_DFID_NAME_TARGET = 0x1e00 FAN_REPORT_DIR_FID = 0x400 + FAN_REPORT_FD_ERROR = 0x2000 FAN_REPORT_FID = 0x200 FAN_REPORT_NAME = 0x800 FAN_REPORT_PIDFD = 0x80 @@ -1330,8 +1331,10 @@ FUSE_SUPER_MAGIC = 0x65735546 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 + F_CREATED_QUERY = 0x404 F_DUPFD = 0x0 F_DUPFD_CLOEXEC = 0x406 + F_DUPFD_QUERY = 0x403 F_EXLCK = 0x4 F_GETFD = 0x1 F_GETFL = 0x3 @@ -1551,6 +1554,7 @@ IPPROTO_ROUTING = 0x2b IPPROTO_RSVP = 0x2e IPPROTO_SCTP = 0x84 + IPPROTO_SMC = 0x100 IPPROTO_TCP = 0x6 IPPROTO_TP = 0x1d IPPROTO_UDP = 0x11 @@ -1623,6 +1627,8 @@ IPV6_UNICAST_IF = 0x4c IPV6_USER_FLOW = 0xe IPV6_V6ONLY = 0x1a + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 IPV6_XFRM_POLICY = 0x23 IP_ADD_MEMBERSHIP = 0x23 IP_ADD_SOURCE_MEMBERSHIP = 0x27 @@ -1867,6 +1873,7 @@ MADV_UNMERGEABLE = 0xd MADV_WILLNEED = 0x3 MADV_WIPEONFORK = 0x12 + MAP_DROPPABLE = 0x8 MAP_FILE = 0x0 MAP_FIXED = 0x10 MAP_FIXED_NOREPLACE = 0x100000 @@ -1967,6 +1974,7 @@ MSG_PEEK = 0x2 MSG_PROXY = 0x10 MSG_RST = 0x1000 + MSG_SOCK_DEVMEM = 0x2000000 MSG_SYN = 0x400 MSG_TRUNC = 0x20 MSG_TRYHARD = 0x4 @@ -2083,6 +2091,7 @@ NFC_ATR_REQ_MAXSIZE = 0x40 NFC_ATR_RES_GB_MAXSIZE = 0x2f NFC_ATR_RES_MAXSIZE = 0x40 + NFC_ATS_MAXSIZE = 0x14 NFC_COMM_ACTIVE = 0x0 NFC_COMM_PASSIVE = 0x1 NFC_DEVICE_NAME_MAXSIZE = 0x8 @@ -2163,6 +2172,7 @@ NFNL_SUBSYS_QUEUE = 0x3 NFNL_SUBSYS_ULOG = 0x4 NFS_SUPER_MAGIC = 0x6969 + NFT_BITWISE_BOOL = 0x0 NFT_CHAIN_FLAGS = 0x7 NFT_CHAIN_MAXNAMELEN = 0x100 NFT_CT_MAX = 0x17 @@ -2491,6 +2501,7 @@ PR_GET_PDEATHSIG = 0x2 PR_GET_SECCOMP = 0x15 PR_GET_SECUREBITS = 0x1b + PR_GET_SHADOW_STACK_STATUS = 0x4a PR_GET_SPECULATION_CTRL = 0x34 PR_GET_TAGGED_ADDR_CTRL = 0x38 PR_GET_THP_DISABLE = 0x2a @@ -2499,6 +2510,7 @@ PR_GET_TIMING = 0xd PR_GET_TSC = 0x19 PR_GET_UNALIGN = 0x5 + PR_LOCK_SHADOW_STACK_STATUS = 0x4c PR_MCE_KILL = 0x21 PR_MCE_KILL_CLEAR = 0x0 PR_MCE_KILL_DEFAULT = 0x2 @@ -2525,6 +2537,8 @@ PR_PAC_GET_ENABLED_KEYS = 0x3d PR_PAC_RESET_KEYS = 0x36 PR_PAC_SET_ENABLED_KEYS = 0x3c + PR_PMLEN_MASK = 0x7f000000 + PR_PMLEN_SHIFT = 0x18 PR_PPC_DEXCR_CTRL_CLEAR = 0x4 PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC = 0x10 PR_PPC_DEXCR_CTRL_EDITABLE = 0x1 @@ -2592,6 +2606,7 @@ PR_SET_PTRACER = 0x59616d61 PR_SET_SECCOMP = 0x16 PR_SET_SECUREBITS = 0x1c + PR_SET_SHADOW_STACK_STATUS = 0x4b PR_SET_SPECULATION_CTRL = 0x35 PR_SET_SYSCALL_USER_DISPATCH = 0x3b PR_SET_TAGGED_ADDR_CTRL = 0x37 @@ -2602,6 +2617,9 @@ PR_SET_UNALIGN = 0x6 PR_SET_VMA = 0x53564d41 PR_SET_VMA_ANON_NAME = 0x0 + PR_SHADOW_STACK_ENABLE = 0x1 + PR_SHADOW_STACK_PUSH = 0x4 + PR_SHADOW_STACK_WRITE = 0x2 PR_SME_GET_VL = 0x40 PR_SME_SET_VL = 0x3f PR_SME_SET_VL_ONEXEC = 0x40000 @@ -2911,7 +2929,6 @@ RTM_NEWNEXTHOP = 0x68 RTM_NEWNEXTHOPBUCKET = 0x74 RTM_NEWNSID = 0x58 - RTM_NEWNVLAN = 0x70 RTM_NEWPREFIX = 0x34 RTM_NEWQDISC = 0x24 RTM_NEWROUTE = 0x18 @@ -2920,6 +2937,7 @@ RTM_NEWTCLASS = 0x28 RTM_NEWTFILTER = 0x2c RTM_NEWTUNNEL = 0x78 + RTM_NEWVLAN = 0x70 RTM_NR_FAMILIES = 0x1b RTM_NR_MSGTYPES = 0x6c RTM_SETDCB = 0x4f diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_386.go new/vendor/golang.org/x/sys/unix/zerrors_linux_386.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_386.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_386.go 2025-03-13 06:20:57.000000000 +0100 @@ -116,6 +116,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -304,6 +306,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go new/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go 2025-03-13 06:20:57.000000000 +0100 @@ -116,6 +116,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -305,6 +307,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go new/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go 2025-03-13 06:20:57.000000000 +0100 @@ -115,6 +115,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -310,6 +312,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go new/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go 2025-03-13 06:20:57.000000000 +0100 @@ -109,6 +109,7 @@ F_SETOWN = 0x8 F_UNLCK = 0x2 F_WRLCK = 0x1 + GCS_MAGIC = 0x47435300 HIDIOCGRAWINFO = 0x80084803 HIDIOCGRDESC = 0x90044802 HIDIOCGRDESCSIZE = 0x80044801 @@ -119,6 +120,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -302,6 +305,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go new/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go 2025-03-13 06:20:57.000000000 +0100 @@ -116,6 +116,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -297,6 +299,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go new/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go 2025-03-13 06:20:57.000000000 +0100 @@ -115,6 +115,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x80 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -303,6 +305,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go new/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go 2025-03-13 06:20:57.000000000 +0100 @@ -115,6 +115,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x80 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -303,6 +305,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go new/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go 2025-03-13 06:20:57.000000000 +0100 @@ -115,6 +115,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x80 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -303,6 +305,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go new/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go 2025-03-13 06:20:57.000000000 +0100 @@ -115,6 +115,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x80 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -303,6 +305,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go new/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go 2025-03-13 06:20:57.000000000 +0100 @@ -115,6 +115,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff ISIG = 0x80 IUCLC = 0x1000 IXOFF = 0x400 @@ -358,6 +360,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go new/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go 2025-03-13 06:20:57.000000000 +0100 @@ -115,6 +115,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff ISIG = 0x80 IUCLC = 0x1000 IXOFF = 0x400 @@ -362,6 +364,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go new/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go 2025-03-13 06:20:57.000000000 +0100 @@ -115,6 +115,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x80 IUCLC = 0x1000 IXOFF = 0x400 @@ -362,6 +364,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go new/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go 2025-03-13 06:20:57.000000000 +0100 @@ -115,6 +115,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -294,6 +296,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go new/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go 2025-03-13 06:20:57.000000000 +0100 @@ -115,6 +115,8 @@ IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -366,6 +368,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go new/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go 2025-03-13 06:20:57.000000000 +0100 @@ -119,6 +119,8 @@ IN_CLOEXEC = 0x400000 IN_NONBLOCK = 0x4000 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -357,6 +359,7 @@ SCM_TIMESTAMPING_OPT_STATS = 0x38 SCM_TIMESTAMPING_PKTINFO = 0x3c SCM_TIMESTAMPNS = 0x21 + SCM_TS_OPT_ID = 0x5a SCM_TXTIME = 0x3f SCM_WIFI_STATUS = 0x25 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go new/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go --- old/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go 2025-03-13 06:20:57.000000000 +0100 @@ -141,6 +141,16 @@ //go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so" //go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" //go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" +//go:cgo_import_dynamic libc_getpeerucred getpeerucred "libc.so" +//go:cgo_import_dynamic libc_ucred_get ucred_get "libc.so" +//go:cgo_import_dynamic libc_ucred_geteuid ucred_geteuid "libc.so" +//go:cgo_import_dynamic libc_ucred_getegid ucred_getegid "libc.so" +//go:cgo_import_dynamic libc_ucred_getruid ucred_getruid "libc.so" +//go:cgo_import_dynamic libc_ucred_getrgid ucred_getrgid "libc.so" +//go:cgo_import_dynamic libc_ucred_getsuid ucred_getsuid "libc.so" +//go:cgo_import_dynamic libc_ucred_getsgid ucred_getsgid "libc.so" +//go:cgo_import_dynamic libc_ucred_getpid ucred_getpid "libc.so" +//go:cgo_import_dynamic libc_ucred_free ucred_free "libc.so" //go:cgo_import_dynamic libc_port_create port_create "libc.so" //go:cgo_import_dynamic libc_port_associate port_associate "libc.so" //go:cgo_import_dynamic libc_port_dissociate port_dissociate "libc.so" @@ -280,6 +290,16 @@ //go:linkname procgetpeername libc_getpeername //go:linkname procsetsockopt libc_setsockopt //go:linkname procrecvfrom libc_recvfrom +//go:linkname procgetpeerucred libc_getpeerucred +//go:linkname procucred_get libc_ucred_get +//go:linkname procucred_geteuid libc_ucred_geteuid +//go:linkname procucred_getegid libc_ucred_getegid +//go:linkname procucred_getruid libc_ucred_getruid +//go:linkname procucred_getrgid libc_ucred_getrgid +//go:linkname procucred_getsuid libc_ucred_getsuid +//go:linkname procucred_getsgid libc_ucred_getsgid +//go:linkname procucred_getpid libc_ucred_getpid +//go:linkname procucred_free libc_ucred_free //go:linkname procport_create libc_port_create //go:linkname procport_associate libc_port_associate //go:linkname procport_dissociate libc_port_dissociate @@ -420,6 +440,16 @@ procgetpeername, procsetsockopt, procrecvfrom, + procgetpeerucred, + procucred_get, + procucred_geteuid, + procucred_getegid, + procucred_getruid, + procucred_getrgid, + procucred_getsuid, + procucred_getsgid, + procucred_getpid, + procucred_free, procport_create, procport_associate, procport_dissociate, @@ -2027,6 +2057,90 @@ return } +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeerucred(fd uintptr, ucred *uintptr) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetpeerucred)), 2, uintptr(fd), uintptr(unsafe.Pointer(ucred)), 0, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGet(pid int) (ucred uintptr, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procucred_get)), 1, uintptr(pid), 0, 0, 0, 0, 0) + ucred = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGeteuid(ucred uintptr) (uid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_geteuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetegid(ucred uintptr) (gid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getegid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetruid(ucred uintptr) (uid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getruid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetrgid(ucred uintptr) (gid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getrgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetsuid(ucred uintptr) (uid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetsgid(ucred uintptr) (gid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetpid(ucred uintptr) (pid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getpid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredFree(ucred uintptr) { + sysvicall6(uintptr(unsafe.Pointer(&procucred_free)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + return +} + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func port_create() (n int, err error) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go 2025-03-13 06:20:57.000000000 +0100 @@ -458,4 +458,8 @@ SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go 2025-03-13 06:20:57.000000000 +0100 @@ -381,4 +381,8 @@ SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go 2025-03-13 06:20:57.000000000 +0100 @@ -422,4 +422,8 @@ SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go 2025-03-13 06:20:57.000000000 +0100 @@ -325,4 +325,8 @@ SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go 2025-03-13 06:20:57.000000000 +0100 @@ -321,4 +321,8 @@ SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go 2025-03-13 06:20:57.000000000 +0100 @@ -442,4 +442,8 @@ SYS_LSM_SET_SELF_ATTR = 4460 SYS_LSM_LIST_MODULES = 4461 SYS_MSEAL = 4462 + SYS_SETXATTRAT = 4463 + SYS_GETXATTRAT = 4464 + SYS_LISTXATTRAT = 4465 + SYS_REMOVEXATTRAT = 4466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go 2025-03-13 06:20:57.000000000 +0100 @@ -372,4 +372,8 @@ SYS_LSM_SET_SELF_ATTR = 5460 SYS_LSM_LIST_MODULES = 5461 SYS_MSEAL = 5462 + SYS_SETXATTRAT = 5463 + SYS_GETXATTRAT = 5464 + SYS_LISTXATTRAT = 5465 + SYS_REMOVEXATTRAT = 5466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go 2025-03-13 06:20:57.000000000 +0100 @@ -372,4 +372,8 @@ SYS_LSM_SET_SELF_ATTR = 5460 SYS_LSM_LIST_MODULES = 5461 SYS_MSEAL = 5462 + SYS_SETXATTRAT = 5463 + SYS_GETXATTRAT = 5464 + SYS_LISTXATTRAT = 5465 + SYS_REMOVEXATTRAT = 5466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go 2025-03-13 06:20:57.000000000 +0100 @@ -442,4 +442,8 @@ SYS_LSM_SET_SELF_ATTR = 4460 SYS_LSM_LIST_MODULES = 4461 SYS_MSEAL = 4462 + SYS_SETXATTRAT = 4463 + SYS_GETXATTRAT = 4464 + SYS_LISTXATTRAT = 4465 + SYS_REMOVEXATTRAT = 4466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go 2025-03-13 06:20:57.000000000 +0100 @@ -449,4 +449,8 @@ SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go 2025-03-13 06:20:57.000000000 +0100 @@ -421,4 +421,8 @@ SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go 2025-03-13 06:20:57.000000000 +0100 @@ -421,4 +421,8 @@ SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go 2025-03-13 06:20:57.000000000 +0100 @@ -326,4 +326,8 @@ SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go 2025-03-13 06:20:57.000000000 +0100 @@ -387,4 +387,8 @@ SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go new/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go --- old/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go 2025-03-13 06:20:57.000000000 +0100 @@ -400,4 +400,8 @@ SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux.go new/vendor/golang.org/x/sys/unix/ztypes_linux.go --- old/vendor/golang.org/x/sys/unix/ztypes_linux.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/ztypes_linux.go 2025-03-13 06:20:57.000000000 +0100 @@ -4747,7 +4747,7 @@ NL80211_ATTR_MAC_HINT = 0xc8 NL80211_ATTR_MAC_MASK = 0xd7 NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca - NL80211_ATTR_MAX = 0x14c + NL80211_ATTR_MAX = 0x14d NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 NL80211_ATTR_MAX_CSA_COUNTERS = 0xce NL80211_ATTR_MAX_MATCH_SETS = 0x85 @@ -5519,7 +5519,7 @@ NL80211_MNTR_FLAG_CONTROL = 0x3 NL80211_MNTR_FLAG_COOK_FRAMES = 0x5 NL80211_MNTR_FLAG_FCSFAIL = 0x1 - NL80211_MNTR_FLAG_MAX = 0x6 + NL80211_MNTR_FLAG_MAX = 0x7 NL80211_MNTR_FLAG_OTHER_BSS = 0x4 NL80211_MNTR_FLAG_PLCPFAIL = 0x2 NL80211_MPATH_FLAG_ACTIVE = 0x1 @@ -6174,3 +6174,5 @@ Family uint8 Protocol uint8 } + +const RTM_NEWNVLAN = 0x70 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/gotest.tools/v3/assert/assert.go new/vendor/gotest.tools/v3/assert/assert.go --- old/vendor/gotest.tools/v3/assert/assert.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/gotest.tools/v3/assert/assert.go 2025-03-13 06:20:57.000000000 +0100 @@ -284,8 +284,6 @@ // must be called from the goroutine running the test function, not from other // goroutines created during the test. Use [Check] with [cmp.ErrorType] from other // goroutines. -// -// Deprecated: Use [ErrorIs] func ErrorType(t TestingT, err error, expected interface{}, msgAndArgs ...interface{}) { if ht, ok := t.(helperT); ok { ht.Helper() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/gotest.tools/v3/assert/cmp/compare.go new/vendor/gotest.tools/v3/assert/cmp/compare.go --- old/vendor/gotest.tools/v3/assert/cmp/compare.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/gotest.tools/v3/assert/cmp/compare.go 2025-03-13 06:20:57.000000000 +0100 @@ -248,7 +248,7 @@ } func formatErrorMessage(err error) string { - //nolint:errorlint // unwrapping is not appropriate here + //nolint:errorlint,nolintlint // unwrapping is not appropriate here if _, ok := err.(causer); ok { return fmt.Sprintf("%q\n%+v", err, err) } @@ -286,6 +286,7 @@ } // ErrorType succeeds if err is not nil and is of the expected type. +// New code should use [ErrorIs] instead. // // Expected can be one of: // @@ -306,8 +307,6 @@ // reflect.Type // // Fails if err does not implement the [reflect.Type]. -// -// Deprecated: Use [ErrorIs] func ErrorType(err error, expected interface{}) Comparison { return func() Result { switch expectedType := expected.(type) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/gotest.tools/v3/internal/assert/assert.go new/vendor/gotest.tools/v3/internal/assert/assert.go --- old/vendor/gotest.tools/v3/internal/assert/assert.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/gotest.tools/v3/internal/assert/assert.go 2025-03-13 06:20:57.000000000 +0100 @@ -87,19 +87,18 @@ args, err := source.CallExprArgs(stackIndex) if err != nil { t.Log(err.Error()) - return } + var msg string const comparisonArgIndex = 1 // Assert(t, comparison) if len(args) <= comparisonArgIndex { - t.Log(failureMessage + "but assert failed to find the expression to print") - return - } - - msg, err := boolFailureMessage(args[comparisonArgIndex]) - if err != nil { - t.Log(err.Error()) - msg = "expression is false" + msg = "but assert failed to find the expression to print" + } else { + msg, err = boolFailureMessage(args[comparisonArgIndex]) + if err != nil { + t.Log(err.Error()) + msg = "expression is false" + } } t.Log(format.WithCustomMessage(failureMessage+msg, msgAndArgs...)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/gotest.tools/v3/internal/difflib/difflib.go new/vendor/gotest.tools/v3/internal/difflib/difflib.go --- old/vendor/gotest.tools/v3/internal/difflib/difflib.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/gotest.tools/v3/internal/difflib/difflib.go 2025-03-13 06:20:57.000000000 +0100 @@ -1,4 +1,5 @@ -/*Package difflib is a partial port of Python difflib module. +/* +Package difflib is a partial port of Python difflib module. Original source: https://github.com/pmezard/go-difflib @@ -6,14 +7,14 @@ */ package difflib // import "gotest.tools/v3/internal/difflib" -func min(a, b int) int { +func minInt(a, b int) int { if a < b { return a } return b } -func max(a, b int) int { +func maxInt(a, b int) int { if a > b { return a } @@ -170,12 +171,15 @@ // If IsJunk is not defined: // // Return (i,j,k) such that a[i:i+k] is equal to b[j:j+k], where -// alo <= i <= i+k <= ahi -// blo <= j <= j+k <= bhi +// +// alo <= i <= i+k <= ahi +// blo <= j <= j+k <= bhi +// // and for all (i',j',k') meeting those conditions, -// k >= k' -// i <= i' -// and if i == i', j <= j' +// +// k >= k' +// i <= i' +// and if i == i', j <= j' // // In other words, of all maximal matching blocks, return one that // starts earliest in a, and of all those maximal matching blocks that @@ -393,12 +397,12 @@ if codes[0].Tag == 'e' { c := codes[0] i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - codes[0] = OpCode{c.Tag, max(i1, i2-n), i2, max(j1, j2-n), j2} + codes[0] = OpCode{c.Tag, maxInt(i1, i2-n), i2, maxInt(j1, j2-n), j2} } if codes[len(codes)-1].Tag == 'e' { c := codes[len(codes)-1] i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - codes[len(codes)-1] = OpCode{c.Tag, i1, min(i2, i1+n), j1, min(j2, j1+n)} + codes[len(codes)-1] = OpCode{c.Tag, i1, minInt(i2, i1+n), j1, minInt(j2, j1+n)} } nn := n + n groups := [][]OpCode{} @@ -408,11 +412,11 @@ // End the current group and start a new one whenever // there is a large range with no changes. if c.Tag == 'e' && i2-i1 > nn { - group = append(group, OpCode{c.Tag, i1, min(i2, i1+n), - j1, min(j2, j1+n)}) + group = append(group, OpCode{c.Tag, i1, minInt(i2, i1+n), + j1, minInt(j2, j1+n)}) groups = append(groups, group) group = []OpCode{} - i1, j1 = max(i1, i2-n), max(j1, j2-n) + i1, j1 = maxInt(i1, i2-n), maxInt(j1, j2-n) } group = append(group, OpCode{c.Tag, i1, i2, j1, j2}) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/gotest.tools/v3/internal/source/bazel.go new/vendor/gotest.tools/v3/internal/source/bazel.go --- old/vendor/gotest.tools/v3/internal/source/bazel.go 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor/gotest.tools/v3/internal/source/bazel.go 2025-03-13 06:20:57.000000000 +0100 @@ -0,0 +1,51 @@ +package source + +import ( + "fmt" + "os" + "path/filepath" +) + +// These Bazel env vars are documented here: +// https://bazel.build/reference/test-encyclopedia + +// Signifies test executable is being driven by `bazel test`. +// +// Due to Bazel's compilation and sandboxing strategy, +// some care is required to handle resolving the original *.go source file. +var inBazelTest = os.Getenv("BAZEL_TEST") == "1" + +// The name of the target being tested (ex: //some_package:some_package_test) +var bazelTestTarget = os.Getenv("TEST_TARGET") + +// Absolute path to the base of the runfiles tree +var bazelTestSrcdir = os.Getenv("TEST_SRCDIR") + +// The local repository's workspace name (ex: __main__) +var bazelTestWorkspace = os.Getenv("TEST_WORKSPACE") + +func bazelSourcePath(filename string) (string, error) { + // Use the env vars to resolve the test source files, + // which must be provided as test data in the respective go_test target. + filename = filepath.Join(bazelTestSrcdir, bazelTestWorkspace, filename) + + _, err := os.Stat(filename) + if os.IsNotExist(err) { + return "", fmt.Errorf(bazelMissingSourceMsg, filename, bazelTestTarget) + } + return filename, nil +} + +var bazelMissingSourceMsg = ` +the test source file does not exist: %s +It appears that you are running this test under Bazel (target: %s). +Check that your test source files are added as test data in your go_test targets. + +Example: + go_test( + name = "your_package_test", + srcs = ["your_test.go"], + deps = ["@tools_gotest_v3//assert"], + data = glob(["*_test.go"]) + )" +` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/gotest.tools/v3/internal/source/source.go new/vendor/gotest.tools/v3/internal/source/source.go --- old/vendor/gotest.tools/v3/internal/source/source.go 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/gotest.tools/v3/internal/source/source.go 2025-03-13 06:20:57.000000000 +0100 @@ -10,6 +10,7 @@ "go/parser" "go/token" "os" + "path/filepath" "runtime" ) @@ -35,6 +36,19 @@ } debug("call stack position: %s:%d", filename, line) + // Normally, `go` will compile programs with absolute paths in + // the debug metadata. However, in the name of reproducibility, + // Bazel uses a compilation strategy that results in relative paths + // (otherwise, since Bazel uses a random tmp dir for compile and sandboxing, + // the resulting binaries would change across compiles/test runs). + if inBazelTest && !filepath.IsAbs(filename) { + var err error + filename, err = bazelSourcePath(filename) + if err != nil { + return nil, err + } + } + fileset := token.NewFileSet() astFile, err := parser.ParseFile(fileset, filename, nil, parser.AllErrors) if err != nil { @@ -58,7 +72,7 @@ return node, err } } - return nil, nil + return nil, errors.New("failed to find expression") } func scanToLine(fileset *token.FileSet, node ast.Node, lineNum int) ast.Node { @@ -78,11 +92,8 @@ func getCallExprArgs(fileset *token.FileSet, astFile ast.Node, line int) ([]ast.Expr, error) { node, err := getNodeAtLine(fileset, astFile, line) - switch { - case err != nil: + if err != nil { return nil, err - case node == nil: - return nil, fmt.Errorf("failed to find an expression") } debug("found node: %s", debugFormatNode{node}) @@ -90,7 +101,7 @@ visitor := &callExprVisitor{} ast.Walk(visitor, node) if visitor.expr == nil { - return nil, errors.New("failed to find call expression") + return nil, errors.New("failed to find an expression") } debug("callExpr: %s", debugFormatNode{visitor.expr}) return visitor.expr.Args, nil diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt --- old/vendor/modules.txt 2025-01-20 07:40:53.000000000 +0100 +++ new/vendor/modules.txt 2025-03-13 06:20:57.000000000 +0100 @@ -1,8 +1,8 @@ # github.com/Masterminds/semver/v3 v3.3.1 ## explicit; go 1.21 github.com/Masterminds/semver/v3 -# github.com/containernetworking/plugins v1.5.1 -## explicit; go 1.20 +# github.com/containernetworking/plugins v1.6.2 +## explicit; go 1.23 github.com/containernetworking/plugins/pkg/ns # github.com/cpuguy83/go-md2man/v2 v2.0.5 ## explicit; go 1.11 @@ -56,7 +56,7 @@ ## explicit; go 1.21 github.com/u-root/uio/rand github.com/u-root/uio/uio -# github.com/urfave/cli/v2 v2.27.5 +# github.com/urfave/cli/v2 v2.27.6 ## explicit; go 1.18 github.com/urfave/cli/v2 # github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 @@ -68,12 +68,12 @@ golang.org/x/net/internal/iana golang.org/x/net/internal/socket golang.org/x/net/ipv4 -# golang.org/x/sys v0.29.0 -## explicit; go 1.18 +# golang.org/x/sys v0.31.0 +## explicit; go 1.23.0 golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/windows/registry -# gotest.tools/v3 v3.5.1 +# gotest.tools/v3 v3.5.2 ## explicit; go 1.17 gotest.tools/v3/assert gotest.tools/v3/assert/cmp