├── .clusterfuzzlite
├── Dockerfile
├── build.sh
└── project.yaml
├── .dockerignore
├── .github
├── dependabot.yml
└── workflows
│ ├── cflite-batch.yml
│ ├── cflite-build.yml
│ ├── cflite-pr.yml
│ ├── ci.yml
│ └── codeql-analysis.yml
├── .gitignore
├── .gitmodules
├── .golangci.yml
├── .site
├── .gitignore
├── README.md
├── config.toml
├── content
├── layouts
│ └── partials
│ │ └── logo.html
└── static
│ ├── _headers
│ ├── _redirects
│ ├── umoci-black.png
│ ├── umoci-white.png
│ └── umoci.keyring
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── COPYING
├── Dockerfile
├── Dockerfile.fuzz
├── GOVERNANCE.md
├── MAINTAINERS
├── Makefile
├── README.md
├── RELEASES.md
├── VERSION
├── api.go
├── api_test.go
├── cmd
└── umoci
│ ├── config.go
│ ├── gc.go
│ ├── init.go
│ ├── insert.go
│ ├── main.go
│ ├── new.go
│ ├── raw-add-layer.go
│ ├── raw-runtime-config.go
│ ├── raw-unpack.go
│ ├── raw.go
│ ├── repack.go
│ ├── stat.go
│ ├── tag.go
│ ├── unpack.go
│ └── utils_ux.go
├── codecov.yml
├── contrib
├── logo
│ ├── LICENSE
│ ├── umoci-black.png
│ ├── umoci-black.svg
│ ├── umoci-white.png
│ ├── umoci-white.svg
│ └── umoci.sketch
└── pkg
│ └── suse
│ ├── .gitignore
│ └── make_spec.sh
├── doc
├── man
│ ├── .gitignore
│ ├── umoci-config.1.md
│ ├── umoci-gc.1.md
│ ├── umoci-init.1.md
│ ├── umoci-insert.1.md
│ ├── umoci-list.1.md
│ ├── umoci-ls.1.md
│ ├── umoci-new.1.md
│ ├── umoci-raw-add-layer.1.md
│ ├── umoci-raw-config.1.md
│ ├── umoci-raw-runtime-config.1.md
│ ├── umoci-raw-unpack.1.md
│ ├── umoci-raw.1.md
│ ├── umoci-remove.1.md
│ ├── umoci-repack.1.md
│ ├── umoci-rm.1.md
│ ├── umoci-stat.1.md
│ ├── umoci-tag.1.md
│ ├── umoci-unpack.1.md
│ └── umoci.1.md
└── site
│ ├── .gitignore
│ ├── _index.md
│ ├── advanced
│ ├── _index.md
│ └── workflow-optimisation.md
│ ├── meta
│ ├── _index.md
│ ├── changelog.md
│ ├── contributing.md
│ ├── governance.md
│ └── releases.md
│ ├── quick-start
│ ├── _index.md
│ ├── creating-an-image.md
│ ├── garbage-collection.md
│ ├── getting-an-image.md
│ ├── rootless.md
│ └── workflow.md
│ └── reference
│ ├── _index.md
│ ├── architecture.md
│ ├── roadmap.md
│ └── security.md
├── go.mod
├── go.sum
├── hack
├── ci-coverage.sh
├── keyring_addkey.sh
├── keyring_validate.sh
├── readlinkf.sh
├── release.sh
├── resilient-curl.sh
├── test-integration.sh
├── test-unit.sh
└── test-vendor.sh
├── internal
├── doc.go
├── errors.go
├── funchelpers
│ ├── doc.go
│ ├── verify_error.go
│ └── verify_error_test.go
├── idtools
│ ├── idtools.go
│ └── idtools_test.go
├── iohelpers
│ ├── count_reader.go
│ └── doc.go
├── pathtrie
│ ├── trie.go
│ └── trie_test.go
├── system
│ ├── copy.go
│ ├── doc.go
│ ├── mknod_freebsd.go
│ ├── mknod_unix.go
│ ├── tarmode_unix.go
│ ├── tarmode_unix_test.go
│ ├── utime_unix.go
│ ├── utime_unix_test.go
│ ├── xattr_unix.go
│ └── xattr_unix_test.go
└── testhelpers
│ ├── ftimes.go
│ ├── ftimes_darwin.go
│ ├── ftimes_unix.go
│ ├── mount_linux.go
│ ├── mount_unsupported.go
│ ├── random_string.go
│ └── testhelpers.go
├── mutate
├── compress.go
├── compress_test.go
├── mutate.go
├── mutate_fuzzer.go
└── mutate_test.go
├── netlify.toml
├── new.go
├── oci
├── README.md
├── cas
│ ├── README.md
│ ├── cas.go
│ └── dir
│ │ ├── dir.go
│ │ └── dir_cas_test.go
├── casext
│ ├── blob.go
│ ├── blobcompress
│ │ ├── algo.go
│ │ ├── algo_test.go
│ │ ├── gzip.go
│ │ ├── gzip_test.go
│ │ ├── noop.go
│ │ ├── noop_test.go
│ │ ├── zstd.go
│ │ └── zstd_test.go
│ ├── casext.go
│ ├── fuzzer.go
│ ├── gc.go
│ ├── gc_test.go
│ ├── json.go
│ ├── json_dir_test.go
│ ├── map.go
│ ├── map_test.go
│ ├── mediatype
│ │ ├── compress.go
│ │ ├── doc.go
│ │ └── parse.go
│ ├── refname.go
│ ├── refname_dir_test.go
│ ├── refname_test.go
│ ├── verified_blob.go
│ └── walk.go
├── config
│ ├── convert
│ │ ├── README.md
│ │ ├── default.go
│ │ ├── doc.go
│ │ ├── runtime.go
│ │ ├── utils_linux.go
│ │ └── utils_unix.go
│ └── generate
│ │ ├── README.md
│ │ ├── save.go
│ │ ├── spec.go
│ │ └── spec_test.go
└── layer
│ ├── README.md
│ ├── doc.go
│ ├── generate.go
│ ├── generate_linux_test.go
│ ├── generate_test.go
│ ├── layer_fuzzer.go
│ ├── tar_extract.go
│ ├── tar_extract_linux_test.go
│ ├── tar_extract_test.go
│ ├── tar_generate.go
│ ├── tar_generate_test.go
│ ├── tar_unix.go
│ ├── types.go
│ ├── types_test.go
│ ├── unpack.go
│ ├── unpack_test.go
│ ├── utils.go
│ ├── utils_test.go
│ ├── utils_unix.go
│ ├── xattr.go
│ ├── xattr_linux_test.go
│ └── xattr_test.go
├── packaging
├── pkg
├── fseval
│ ├── fseval.go
│ ├── fseval_default.go
│ └── fseval_rootless.go
├── hardening
│ ├── doc.go
│ ├── fuzzer.go
│ ├── verified_reader.go
│ └── verified_reader_test.go
├── mtreefilter
│ ├── doc.go
│ ├── mask.go
│ └── mask_test.go
└── unpriv
│ ├── unpriv.go
│ ├── unpriv_test.go
│ └── unpriv_utimes_test.go
├── repack.go
├── test
├── config.bats
├── create.bats
├── fuzzing
│ └── README.md
├── gc.bats
├── hardening.bats
├── help.bats
├── helpers.bash
├── insert.bats
├── pack_mapping.bats
├── raw-add-layer.bats
├── raw-config.bats
├── raw-unpack.bats
├── repack.bats
├── runc.bats
├── stat.bats
├── tag.bats
├── umoci.bats
└── unpack.bats
├── umoci.keyring
├── unpack.go
├── utils.go
├── vendor
├── github.com
│ ├── AdaLogics
│ │ └── go-fuzz-headers
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── consumer.go
│ │ │ ├── funcs.go
│ │ │ └── sql.go
│ ├── apex
│ │ └── log
│ │ │ ├── .gitignore
│ │ │ ├── History.md
│ │ │ ├── LICENSE
│ │ │ ├── Makefile
│ │ │ ├── Readme.md
│ │ │ ├── context.go
│ │ │ ├── default.go
│ │ │ ├── doc.go
│ │ │ ├── entry.go
│ │ │ ├── handlers
│ │ │ └── cli
│ │ │ │ └── cli.go
│ │ │ ├── interface.go
│ │ │ ├── levels.go
│ │ │ ├── logger.go
│ │ │ ├── pkg.go
│ │ │ └── stack.go
│ ├── blang
│ │ └── semver
│ │ │ └── v4
│ │ │ ├── LICENSE
│ │ │ ├── json.go
│ │ │ ├── range.go
│ │ │ ├── semver.go
│ │ │ ├── sort.go
│ │ │ └── sql.go
│ ├── cpuguy83
│ │ └── go-md2man
│ │ │ └── v2
│ │ │ ├── LICENSE.md
│ │ │ └── md2man
│ │ │ ├── md2man.go
│ │ │ └── roff.go
│ ├── cyphar
│ │ └── filepath-securejoin
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── VERSION
│ │ │ ├── doc.go
│ │ │ ├── gocompat_errors_go120.go
│ │ │ ├── gocompat_errors_unsupported.go
│ │ │ ├── gocompat_generics_go121.go
│ │ │ ├── gocompat_generics_unsupported.go
│ │ │ ├── join.go
│ │ │ ├── lookup_linux.go
│ │ │ ├── mkdir_linux.go
│ │ │ ├── open_linux.go
│ │ │ ├── openat2_linux.go
│ │ │ ├── openat_linux.go
│ │ │ ├── procfs_linux.go
│ │ │ └── vfs.go
│ ├── davecgh
│ │ └── go-spew
│ │ │ ├── LICENSE
│ │ │ └── spew
│ │ │ ├── bypass.go
│ │ │ ├── bypasssafe.go
│ │ │ ├── common.go
│ │ │ ├── config.go
│ │ │ ├── doc.go
│ │ │ ├── dump.go
│ │ │ ├── format.go
│ │ │ └── spew.go
│ ├── docker
│ │ └── go-units
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── MAINTAINERS
│ │ │ ├── README.md
│ │ │ ├── circle.yml
│ │ │ ├── duration.go
│ │ │ ├── size.go
│ │ │ └── ulimit.go
│ ├── fatih
│ │ └── color
│ │ │ ├── LICENSE.md
│ │ │ ├── README.md
│ │ │ ├── color.go
│ │ │ ├── color_windows.go
│ │ │ └── doc.go
│ ├── klauspost
│ │ ├── compress
│ │ │ ├── LICENSE
│ │ │ ├── flate
│ │ │ │ ├── deflate.go
│ │ │ │ ├── dict_decoder.go
│ │ │ │ ├── fast_encoder.go
│ │ │ │ ├── gen_inflate.go
│ │ │ │ ├── huffman_bit_writer.go
│ │ │ │ ├── huffman_code.go
│ │ │ │ ├── huffman_sortByFreq.go
│ │ │ │ ├── huffman_sortByLiteral.go
│ │ │ │ ├── inflate.go
│ │ │ │ ├── inflate_gen.go
│ │ │ │ ├── level1.go
│ │ │ │ ├── level2.go
│ │ │ │ ├── level3.go
│ │ │ │ ├── level4.go
│ │ │ │ ├── level5.go
│ │ │ │ ├── level6.go
│ │ │ │ ├── regmask_amd64.go
│ │ │ │ ├── regmask_other.go
│ │ │ │ ├── stateless.go
│ │ │ │ └── token.go
│ │ │ ├── fse
│ │ │ │ ├── README.md
│ │ │ │ ├── bitreader.go
│ │ │ │ ├── bitwriter.go
│ │ │ │ ├── bytereader.go
│ │ │ │ ├── compress.go
│ │ │ │ ├── decompress.go
│ │ │ │ └── fse.go
│ │ │ ├── huff0
│ │ │ │ ├── .gitignore
│ │ │ │ ├── README.md
│ │ │ │ ├── bitreader.go
│ │ │ │ ├── bitwriter.go
│ │ │ │ ├── bytereader.go
│ │ │ │ ├── compress.go
│ │ │ │ ├── decompress.go
│ │ │ │ └── huff0.go
│ │ │ ├── snappy
│ │ │ │ ├── .gitignore
│ │ │ │ ├── AUTHORS
│ │ │ │ ├── CONTRIBUTORS
│ │ │ │ ├── LICENSE
│ │ │ │ ├── README
│ │ │ │ ├── decode.go
│ │ │ │ ├── decode_amd64.go
│ │ │ │ ├── decode_amd64.s
│ │ │ │ ├── decode_other.go
│ │ │ │ ├── encode.go
│ │ │ │ ├── encode_amd64.go
│ │ │ │ ├── encode_amd64.s
│ │ │ │ ├── encode_other.go
│ │ │ │ ├── runbench.cmd
│ │ │ │ └── snappy.go
│ │ │ └── zstd
│ │ │ │ ├── README.md
│ │ │ │ ├── bitreader.go
│ │ │ │ ├── bitwriter.go
│ │ │ │ ├── blockdec.go
│ │ │ │ ├── blockenc.go
│ │ │ │ ├── blocktype_string.go
│ │ │ │ ├── bytebuf.go
│ │ │ │ ├── bytereader.go
│ │ │ │ ├── decoder.go
│ │ │ │ ├── decoder_options.go
│ │ │ │ ├── dict.go
│ │ │ │ ├── enc_base.go
│ │ │ │ ├── enc_better.go
│ │ │ │ ├── enc_dfast.go
│ │ │ │ ├── enc_fast.go
│ │ │ │ ├── encoder.go
│ │ │ │ ├── encoder_options.go
│ │ │ │ ├── framedec.go
│ │ │ │ ├── frameenc.go
│ │ │ │ ├── fse_decoder.go
│ │ │ │ ├── fse_encoder.go
│ │ │ │ ├── fse_predefined.go
│ │ │ │ ├── hash.go
│ │ │ │ ├── history.go
│ │ │ │ ├── internal
│ │ │ │ └── xxhash
│ │ │ │ │ ├── LICENSE.txt
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── xxhash.go
│ │ │ │ │ ├── xxhash_amd64.go
│ │ │ │ │ ├── xxhash_amd64.s
│ │ │ │ │ ├── xxhash_other.go
│ │ │ │ │ └── xxhash_safe.go
│ │ │ │ ├── seqdec.go
│ │ │ │ ├── seqenc.go
│ │ │ │ ├── snappy.go
│ │ │ │ └── zstd.go
│ │ └── pgzip
│ │ │ ├── .gitignore
│ │ │ ├── .travis.yml
│ │ │ ├── GO_LICENSE
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── gunzip.go
│ │ │ └── gzip.go
│ ├── mattn
│ │ ├── go-colorable
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── colorable_appengine.go
│ │ │ ├── colorable_others.go
│ │ │ ├── colorable_windows.go
│ │ │ ├── go.test.sh
│ │ │ └── noncolorable.go
│ │ └── go-isatty
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── doc.go
│ │ │ ├── go.test.sh
│ │ │ ├── isatty_bsd.go
│ │ │ ├── isatty_others.go
│ │ │ ├── isatty_plan9.go
│ │ │ ├── isatty_solaris.go
│ │ │ ├── isatty_tcgets.go
│ │ │ └── isatty_windows.go
│ ├── moby
│ │ └── sys
│ │ │ ├── user
│ │ │ ├── LICENSE
│ │ │ ├── idtools.go
│ │ │ ├── idtools_unix.go
│ │ │ ├── idtools_windows.go
│ │ │ ├── lookup_unix.go
│ │ │ ├── user.go
│ │ │ └── user_fuzzer.go
│ │ │ └── userns
│ │ │ ├── LICENSE
│ │ │ ├── userns.go
│ │ │ ├── userns_linux.go
│ │ │ ├── userns_linux_fuzzer.go
│ │ │ └── userns_unsupported.go
│ ├── mohae
│ │ └── deepcopy
│ │ │ ├── .gitignore
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ └── deepcopy.go
│ ├── opencontainers
│ │ ├── go-digest
│ │ │ ├── .mailmap
│ │ │ ├── .pullapprove.yml
│ │ │ ├── .travis.yml
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── LICENSE.docs
│ │ │ ├── MAINTAINERS
│ │ │ ├── README.md
│ │ │ ├── algorithm.go
│ │ │ ├── digest.go
│ │ │ ├── digester.go
│ │ │ ├── doc.go
│ │ │ └── verifiers.go
│ │ ├── image-spec
│ │ │ ├── LICENSE
│ │ │ └── specs-go
│ │ │ │ ├── v1
│ │ │ │ ├── annotations.go
│ │ │ │ ├── config.go
│ │ │ │ ├── descriptor.go
│ │ │ │ ├── index.go
│ │ │ │ ├── layout.go
│ │ │ │ ├── manifest.go
│ │ │ │ └── mediatype.go
│ │ │ │ ├── version.go
│ │ │ │ └── versioned.go
│ │ └── runtime-spec
│ │ │ ├── LICENSE
│ │ │ └── specs-go
│ │ │ ├── config.go
│ │ │ ├── state.go
│ │ │ └── version.go
│ ├── pkg
│ │ └── errors
│ │ │ ├── .gitignore
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── appveyor.yml
│ │ │ ├── errors.go
│ │ │ ├── go113.go
│ │ │ └── stack.go
│ ├── pmezard
│ │ └── go-difflib
│ │ │ ├── LICENSE
│ │ │ └── difflib
│ │ │ └── difflib.go
│ ├── rootless-containers
│ │ └── proto
│ │ │ └── go-proto
│ │ │ ├── rootlesscontainers.pb.go
│ │ │ └── rootlesscontainers_generate.go
│ ├── russross
│ │ └── blackfriday
│ │ │ └── v2
│ │ │ ├── .gitignore
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE.txt
│ │ │ ├── README.md
│ │ │ ├── block.go
│ │ │ ├── doc.go
│ │ │ ├── entities.go
│ │ │ ├── esc.go
│ │ │ ├── html.go
│ │ │ ├── inline.go
│ │ │ ├── markdown.go
│ │ │ ├── node.go
│ │ │ └── smartypants.go
│ ├── sirupsen
│ │ └── logrus
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── .travis.yml
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── alt_exit.go
│ │ │ ├── appveyor.yml
│ │ │ ├── buffer_pool.go
│ │ │ ├── doc.go
│ │ │ ├── entry.go
│ │ │ ├── exported.go
│ │ │ ├── formatter.go
│ │ │ ├── hooks.go
│ │ │ ├── json_formatter.go
│ │ │ ├── logger.go
│ │ │ ├── logrus.go
│ │ │ ├── terminal_check_appengine.go
│ │ │ ├── terminal_check_bsd.go
│ │ │ ├── terminal_check_js.go
│ │ │ ├── terminal_check_no_terminal.go
│ │ │ ├── terminal_check_notappengine.go
│ │ │ ├── terminal_check_solaris.go
│ │ │ ├── terminal_check_unix.go
│ │ │ ├── terminal_check_windows.go
│ │ │ ├── text_formatter.go
│ │ │ └── writer.go
│ ├── stretchr
│ │ └── testify
│ │ │ ├── LICENSE
│ │ │ ├── assert
│ │ │ ├── assertion_compare.go
│ │ │ ├── assertion_format.go
│ │ │ ├── assertion_format.go.tmpl
│ │ │ ├── assertion_forward.go
│ │ │ ├── assertion_forward.go.tmpl
│ │ │ ├── assertion_order.go
│ │ │ ├── assertions.go
│ │ │ ├── doc.go
│ │ │ ├── errors.go
│ │ │ ├── forward_assertions.go
│ │ │ ├── http_assertions.go
│ │ │ └── yaml
│ │ │ │ ├── yaml_custom.go
│ │ │ │ ├── yaml_default.go
│ │ │ │ └── yaml_fail.go
│ │ │ └── require
│ │ │ ├── doc.go
│ │ │ ├── forward_requirements.go
│ │ │ ├── require.go
│ │ │ ├── require.go.tmpl
│ │ │ ├── require_forward.go
│ │ │ ├── require_forward.go.tmpl
│ │ │ └── requirements.go
│ ├── urfave
│ │ └── cli
│ │ │ ├── .flake8
│ │ │ ├── .gitignore
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── app.go
│ │ │ ├── category.go
│ │ │ ├── cli.go
│ │ │ ├── command.go
│ │ │ ├── context.go
│ │ │ ├── docs.go
│ │ │ ├── errors.go
│ │ │ ├── fish.go
│ │ │ ├── flag.go
│ │ │ ├── flag_bool.go
│ │ │ ├── flag_bool_t.go
│ │ │ ├── flag_duration.go
│ │ │ ├── flag_float64.go
│ │ │ ├── flag_generic.go
│ │ │ ├── flag_int.go
│ │ │ ├── flag_int64.go
│ │ │ ├── flag_int64_slice.go
│ │ │ ├── flag_int_slice.go
│ │ │ ├── flag_string.go
│ │ │ ├── flag_string_slice.go
│ │ │ ├── flag_uint.go
│ │ │ ├── flag_uint64.go
│ │ │ ├── funcs.go
│ │ │ ├── help.go
│ │ │ ├── parse.go
│ │ │ ├── sort.go
│ │ │ └── template.go
│ └── vbatts
│ │ └── go-mtree
│ │ ├── .drone.yml
│ │ ├── .gitignore
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── check.go
│ │ ├── cksum.go
│ │ ├── compare.go
│ │ ├── creator.go
│ │ ├── entry.go
│ │ ├── fseval.go
│ │ ├── hierarchy.go
│ │ ├── keywordfunc.go
│ │ ├── keywordfuncs_bsd.go
│ │ ├── keywordfuncs_linux.go
│ │ ├── keywordfuncs_unsupported.go
│ │ ├── keywords.go
│ │ ├── lchtimes_unix.go
│ │ ├── lchtimes_unsupported.go
│ │ ├── lookup.go
│ │ ├── parse.go
│ │ ├── pkg
│ │ └── govis
│ │ │ ├── COPYING
│ │ │ ├── README.md
│ │ │ ├── govis.go
│ │ │ ├── unvis.go
│ │ │ └── vis.go
│ │ ├── releases.md
│ │ ├── stat_unix.go
│ │ ├── stat_windows.go
│ │ ├── tar.go
│ │ ├── update.go
│ │ ├── updatefuncs.go
│ │ ├── updatefuncs_linux.go
│ │ ├── updatefuncs_unsupported.go
│ │ ├── walk.go
│ │ └── xattr
│ │ ├── xattr.go
│ │ └── xattr_unsupported.go
├── golang.org
│ └── x
│ │ ├── crypto
│ │ ├── LICENSE
│ │ ├── PATENTS
│ │ └── ripemd160
│ │ │ ├── ripemd160.go
│ │ │ └── ripemd160block.go
│ │ └── sys
│ │ ├── LICENSE
│ │ ├── PATENTS
│ │ ├── unix
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── affinity_linux.go
│ │ ├── aliases.go
│ │ ├── asm_aix_ppc64.s
│ │ ├── asm_bsd_386.s
│ │ ├── asm_bsd_amd64.s
│ │ ├── asm_bsd_arm.s
│ │ ├── asm_bsd_arm64.s
│ │ ├── asm_bsd_ppc64.s
│ │ ├── asm_bsd_riscv64.s
│ │ ├── asm_linux_386.s
│ │ ├── asm_linux_amd64.s
│ │ ├── asm_linux_arm.s
│ │ ├── asm_linux_arm64.s
│ │ ├── asm_linux_loong64.s
│ │ ├── asm_linux_mips64x.s
│ │ ├── asm_linux_mipsx.s
│ │ ├── asm_linux_ppc64x.s
│ │ ├── asm_linux_riscv64.s
│ │ ├── asm_linux_s390x.s
│ │ ├── asm_openbsd_mips64.s
│ │ ├── asm_solaris_amd64.s
│ │ ├── asm_zos_s390x.s
│ │ ├── auxv.go
│ │ ├── auxv_unsupported.go
│ │ ├── bluetooth_linux.go
│ │ ├── bpxsvc_zos.go
│ │ ├── bpxsvc_zos.s
│ │ ├── cap_freebsd.go
│ │ ├── constants.go
│ │ ├── dev_aix_ppc.go
│ │ ├── dev_aix_ppc64.go
│ │ ├── dev_darwin.go
│ │ ├── dev_dragonfly.go
│ │ ├── dev_freebsd.go
│ │ ├── dev_linux.go
│ │ ├── dev_netbsd.go
│ │ ├── dev_openbsd.go
│ │ ├── dev_zos.go
│ │ ├── dirent.go
│ │ ├── endian_big.go
│ │ ├── endian_little.go
│ │ ├── env_unix.go
│ │ ├── fcntl.go
│ │ ├── fcntl_darwin.go
│ │ ├── fcntl_linux_32bit.go
│ │ ├── fdset.go
│ │ ├── gccgo.go
│ │ ├── gccgo_c.c
│ │ ├── gccgo_linux_amd64.go
│ │ ├── ifreq_linux.go
│ │ ├── ioctl_linux.go
│ │ ├── ioctl_signed.go
│ │ ├── ioctl_unsigned.go
│ │ ├── ioctl_zos.go
│ │ ├── mkall.sh
│ │ ├── mkerrors.sh
│ │ ├── mmap_nomremap.go
│ │ ├── mremap.go
│ │ ├── pagesize_unix.go
│ │ ├── pledge_openbsd.go
│ │ ├── ptrace_darwin.go
│ │ ├── ptrace_ios.go
│ │ ├── race.go
│ │ ├── race0.go
│ │ ├── readdirent_getdents.go
│ │ ├── readdirent_getdirentries.go
│ │ ├── sockcmsg_dragonfly.go
│ │ ├── sockcmsg_linux.go
│ │ ├── sockcmsg_unix.go
│ │ ├── sockcmsg_unix_other.go
│ │ ├── sockcmsg_zos.go
│ │ ├── symaddr_zos_s390x.s
│ │ ├── syscall.go
│ │ ├── syscall_aix.go
│ │ ├── syscall_aix_ppc.go
│ │ ├── syscall_aix_ppc64.go
│ │ ├── syscall_bsd.go
│ │ ├── syscall_darwin.go
│ │ ├── syscall_darwin_amd64.go
│ │ ├── syscall_darwin_arm64.go
│ │ ├── syscall_darwin_libSystem.go
│ │ ├── syscall_dragonfly.go
│ │ ├── syscall_dragonfly_amd64.go
│ │ ├── syscall_freebsd.go
│ │ ├── syscall_freebsd_386.go
│ │ ├── syscall_freebsd_amd64.go
│ │ ├── syscall_freebsd_arm.go
│ │ ├── syscall_freebsd_arm64.go
│ │ ├── syscall_freebsd_riscv64.go
│ │ ├── syscall_hurd.go
│ │ ├── syscall_hurd_386.go
│ │ ├── syscall_illumos.go
│ │ ├── syscall_linux.go
│ │ ├── syscall_linux_386.go
│ │ ├── syscall_linux_alarm.go
│ │ ├── syscall_linux_amd64.go
│ │ ├── syscall_linux_amd64_gc.go
│ │ ├── syscall_linux_arm.go
│ │ ├── syscall_linux_arm64.go
│ │ ├── syscall_linux_gc.go
│ │ ├── syscall_linux_gc_386.go
│ │ ├── syscall_linux_gc_arm.go
│ │ ├── syscall_linux_gccgo_386.go
│ │ ├── syscall_linux_gccgo_arm.go
│ │ ├── syscall_linux_loong64.go
│ │ ├── syscall_linux_mips64x.go
│ │ ├── syscall_linux_mipsx.go
│ │ ├── syscall_linux_ppc.go
│ │ ├── syscall_linux_ppc64x.go
│ │ ├── syscall_linux_riscv64.go
│ │ ├── syscall_linux_s390x.go
│ │ ├── syscall_linux_sparc64.go
│ │ ├── syscall_netbsd.go
│ │ ├── syscall_netbsd_386.go
│ │ ├── syscall_netbsd_amd64.go
│ │ ├── syscall_netbsd_arm.go
│ │ ├── syscall_netbsd_arm64.go
│ │ ├── syscall_openbsd.go
│ │ ├── syscall_openbsd_386.go
│ │ ├── syscall_openbsd_amd64.go
│ │ ├── syscall_openbsd_arm.go
│ │ ├── syscall_openbsd_arm64.go
│ │ ├── syscall_openbsd_libc.go
│ │ ├── syscall_openbsd_mips64.go
│ │ ├── syscall_openbsd_ppc64.go
│ │ ├── syscall_openbsd_riscv64.go
│ │ ├── syscall_solaris.go
│ │ ├── syscall_solaris_amd64.go
│ │ ├── syscall_unix.go
│ │ ├── syscall_unix_gc.go
│ │ ├── syscall_unix_gc_ppc64x.go
│ │ ├── syscall_zos_s390x.go
│ │ ├── sysvshm_linux.go
│ │ ├── sysvshm_unix.go
│ │ ├── sysvshm_unix_other.go
│ │ ├── timestruct.go
│ │ ├── unveil_openbsd.go
│ │ ├── vgetrandom_linux.go
│ │ ├── vgetrandom_unsupported.go
│ │ ├── xattr_bsd.go
│ │ ├── zerrors_aix_ppc.go
│ │ ├── zerrors_aix_ppc64.go
│ │ ├── zerrors_darwin_amd64.go
│ │ ├── zerrors_darwin_arm64.go
│ │ ├── zerrors_dragonfly_amd64.go
│ │ ├── zerrors_freebsd_386.go
│ │ ├── zerrors_freebsd_amd64.go
│ │ ├── zerrors_freebsd_arm.go
│ │ ├── zerrors_freebsd_arm64.go
│ │ ├── zerrors_freebsd_riscv64.go
│ │ ├── zerrors_linux.go
│ │ ├── zerrors_linux_386.go
│ │ ├── zerrors_linux_amd64.go
│ │ ├── zerrors_linux_arm.go
│ │ ├── zerrors_linux_arm64.go
│ │ ├── zerrors_linux_loong64.go
│ │ ├── zerrors_linux_mips.go
│ │ ├── zerrors_linux_mips64.go
│ │ ├── zerrors_linux_mips64le.go
│ │ ├── zerrors_linux_mipsle.go
│ │ ├── zerrors_linux_ppc.go
│ │ ├── zerrors_linux_ppc64.go
│ │ ├── zerrors_linux_ppc64le.go
│ │ ├── zerrors_linux_riscv64.go
│ │ ├── zerrors_linux_s390x.go
│ │ ├── zerrors_linux_sparc64.go
│ │ ├── zerrors_netbsd_386.go
│ │ ├── zerrors_netbsd_amd64.go
│ │ ├── zerrors_netbsd_arm.go
│ │ ├── zerrors_netbsd_arm64.go
│ │ ├── zerrors_openbsd_386.go
│ │ ├── zerrors_openbsd_amd64.go
│ │ ├── zerrors_openbsd_arm.go
│ │ ├── zerrors_openbsd_arm64.go
│ │ ├── zerrors_openbsd_mips64.go
│ │ ├── zerrors_openbsd_ppc64.go
│ │ ├── zerrors_openbsd_riscv64.go
│ │ ├── zerrors_solaris_amd64.go
│ │ ├── zerrors_zos_s390x.go
│ │ ├── zptrace_armnn_linux.go
│ │ ├── zptrace_linux_arm64.go
│ │ ├── zptrace_mipsnn_linux.go
│ │ ├── zptrace_mipsnnle_linux.go
│ │ ├── zptrace_x86_linux.go
│ │ ├── zsymaddr_zos_s390x.s
│ │ ├── zsyscall_aix_ppc.go
│ │ ├── zsyscall_aix_ppc64.go
│ │ ├── zsyscall_aix_ppc64_gc.go
│ │ ├── zsyscall_aix_ppc64_gccgo.go
│ │ ├── zsyscall_darwin_amd64.go
│ │ ├── zsyscall_darwin_amd64.s
│ │ ├── zsyscall_darwin_arm64.go
│ │ ├── zsyscall_darwin_arm64.s
│ │ ├── zsyscall_dragonfly_amd64.go
│ │ ├── zsyscall_freebsd_386.go
│ │ ├── zsyscall_freebsd_amd64.go
│ │ ├── zsyscall_freebsd_arm.go
│ │ ├── zsyscall_freebsd_arm64.go
│ │ ├── zsyscall_freebsd_riscv64.go
│ │ ├── zsyscall_illumos_amd64.go
│ │ ├── zsyscall_linux.go
│ │ ├── zsyscall_linux_386.go
│ │ ├── zsyscall_linux_amd64.go
│ │ ├── zsyscall_linux_arm.go
│ │ ├── zsyscall_linux_arm64.go
│ │ ├── zsyscall_linux_loong64.go
│ │ ├── zsyscall_linux_mips.go
│ │ ├── zsyscall_linux_mips64.go
│ │ ├── zsyscall_linux_mips64le.go
│ │ ├── zsyscall_linux_mipsle.go
│ │ ├── zsyscall_linux_ppc.go
│ │ ├── zsyscall_linux_ppc64.go
│ │ ├── zsyscall_linux_ppc64le.go
│ │ ├── zsyscall_linux_riscv64.go
│ │ ├── zsyscall_linux_s390x.go
│ │ ├── zsyscall_linux_sparc64.go
│ │ ├── zsyscall_netbsd_386.go
│ │ ├── zsyscall_netbsd_amd64.go
│ │ ├── zsyscall_netbsd_arm.go
│ │ ├── zsyscall_netbsd_arm64.go
│ │ ├── zsyscall_openbsd_386.go
│ │ ├── zsyscall_openbsd_386.s
│ │ ├── zsyscall_openbsd_amd64.go
│ │ ├── zsyscall_openbsd_amd64.s
│ │ ├── zsyscall_openbsd_arm.go
│ │ ├── zsyscall_openbsd_arm.s
│ │ ├── zsyscall_openbsd_arm64.go
│ │ ├── zsyscall_openbsd_arm64.s
│ │ ├── zsyscall_openbsd_mips64.go
│ │ ├── zsyscall_openbsd_mips64.s
│ │ ├── zsyscall_openbsd_ppc64.go
│ │ ├── zsyscall_openbsd_ppc64.s
│ │ ├── zsyscall_openbsd_riscv64.go
│ │ ├── zsyscall_openbsd_riscv64.s
│ │ ├── zsyscall_solaris_amd64.go
│ │ ├── zsyscall_zos_s390x.go
│ │ ├── zsysctl_openbsd_386.go
│ │ ├── zsysctl_openbsd_amd64.go
│ │ ├── zsysctl_openbsd_arm.go
│ │ ├── zsysctl_openbsd_arm64.go
│ │ ├── zsysctl_openbsd_mips64.go
│ │ ├── zsysctl_openbsd_ppc64.go
│ │ ├── zsysctl_openbsd_riscv64.go
│ │ ├── zsysnum_darwin_amd64.go
│ │ ├── zsysnum_darwin_arm64.go
│ │ ├── zsysnum_dragonfly_amd64.go
│ │ ├── zsysnum_freebsd_386.go
│ │ ├── zsysnum_freebsd_amd64.go
│ │ ├── zsysnum_freebsd_arm.go
│ │ ├── zsysnum_freebsd_arm64.go
│ │ ├── zsysnum_freebsd_riscv64.go
│ │ ├── zsysnum_linux_386.go
│ │ ├── zsysnum_linux_amd64.go
│ │ ├── zsysnum_linux_arm.go
│ │ ├── zsysnum_linux_arm64.go
│ │ ├── zsysnum_linux_loong64.go
│ │ ├── zsysnum_linux_mips.go
│ │ ├── zsysnum_linux_mips64.go
│ │ ├── zsysnum_linux_mips64le.go
│ │ ├── zsysnum_linux_mipsle.go
│ │ ├── zsysnum_linux_ppc.go
│ │ ├── zsysnum_linux_ppc64.go
│ │ ├── zsysnum_linux_ppc64le.go
│ │ ├── zsysnum_linux_riscv64.go
│ │ ├── zsysnum_linux_s390x.go
│ │ ├── zsysnum_linux_sparc64.go
│ │ ├── zsysnum_netbsd_386.go
│ │ ├── zsysnum_netbsd_amd64.go
│ │ ├── zsysnum_netbsd_arm.go
│ │ ├── zsysnum_netbsd_arm64.go
│ │ ├── zsysnum_openbsd_386.go
│ │ ├── zsysnum_openbsd_amd64.go
│ │ ├── zsysnum_openbsd_arm.go
│ │ ├── zsysnum_openbsd_arm64.go
│ │ ├── zsysnum_openbsd_mips64.go
│ │ ├── zsysnum_openbsd_ppc64.go
│ │ ├── zsysnum_openbsd_riscv64.go
│ │ ├── zsysnum_zos_s390x.go
│ │ ├── ztypes_aix_ppc.go
│ │ ├── ztypes_aix_ppc64.go
│ │ ├── ztypes_darwin_amd64.go
│ │ ├── ztypes_darwin_arm64.go
│ │ ├── ztypes_dragonfly_amd64.go
│ │ ├── ztypes_freebsd_386.go
│ │ ├── ztypes_freebsd_amd64.go
│ │ ├── ztypes_freebsd_arm.go
│ │ ├── ztypes_freebsd_arm64.go
│ │ ├── ztypes_freebsd_riscv64.go
│ │ ├── ztypes_linux.go
│ │ ├── ztypes_linux_386.go
│ │ ├── ztypes_linux_amd64.go
│ │ ├── ztypes_linux_arm.go
│ │ ├── ztypes_linux_arm64.go
│ │ ├── ztypes_linux_loong64.go
│ │ ├── ztypes_linux_mips.go
│ │ ├── ztypes_linux_mips64.go
│ │ ├── ztypes_linux_mips64le.go
│ │ ├── ztypes_linux_mipsle.go
│ │ ├── ztypes_linux_ppc.go
│ │ ├── ztypes_linux_ppc64.go
│ │ ├── ztypes_linux_ppc64le.go
│ │ ├── ztypes_linux_riscv64.go
│ │ ├── ztypes_linux_s390x.go
│ │ ├── ztypes_linux_sparc64.go
│ │ ├── ztypes_netbsd_386.go
│ │ ├── ztypes_netbsd_amd64.go
│ │ ├── ztypes_netbsd_arm.go
│ │ ├── ztypes_netbsd_arm64.go
│ │ ├── ztypes_openbsd_386.go
│ │ ├── ztypes_openbsd_amd64.go
│ │ ├── ztypes_openbsd_arm.go
│ │ ├── ztypes_openbsd_arm64.go
│ │ ├── ztypes_openbsd_mips64.go
│ │ ├── ztypes_openbsd_ppc64.go
│ │ ├── ztypes_openbsd_riscv64.go
│ │ ├── ztypes_solaris_amd64.go
│ │ └── ztypes_zos_s390x.go
│ │ └── windows
│ │ ├── aliases.go
│ │ ├── dll_windows.go
│ │ ├── env_windows.go
│ │ ├── eventlog.go
│ │ ├── exec_windows.go
│ │ ├── memory_windows.go
│ │ ├── mkerrors.bash
│ │ ├── mkknownfolderids.bash
│ │ ├── mksyscall.go
│ │ ├── race.go
│ │ ├── race0.go
│ │ ├── security_windows.go
│ │ ├── service.go
│ │ ├── setupapi_windows.go
│ │ ├── str.go
│ │ ├── syscall.go
│ │ ├── syscall_windows.go
│ │ ├── types_windows.go
│ │ ├── types_windows_386.go
│ │ ├── types_windows_amd64.go
│ │ ├── types_windows_arm.go
│ │ ├── types_windows_arm64.go
│ │ ├── zerrors_windows.go
│ │ ├── zknownfolderids_windows.go
│ │ └── zsyscall_windows.go
├── google.golang.org
│ └── protobuf
│ │ ├── LICENSE
│ │ ├── PATENTS
│ │ ├── encoding
│ │ ├── prototext
│ │ │ ├── decode.go
│ │ │ ├── doc.go
│ │ │ └── encode.go
│ │ └── protowire
│ │ │ └── wire.go
│ │ ├── internal
│ │ ├── descfmt
│ │ │ └── stringer.go
│ │ ├── descopts
│ │ │ └── options.go
│ │ ├── detrand
│ │ │ └── rand.go
│ │ ├── editiondefaults
│ │ │ ├── defaults.go
│ │ │ └── editions_defaults.binpb
│ │ ├── encoding
│ │ │ ├── defval
│ │ │ │ └── default.go
│ │ │ ├── messageset
│ │ │ │ └── messageset.go
│ │ │ ├── tag
│ │ │ │ └── tag.go
│ │ │ └── text
│ │ │ │ ├── decode.go
│ │ │ │ ├── decode_number.go
│ │ │ │ ├── decode_string.go
│ │ │ │ ├── decode_token.go
│ │ │ │ ├── doc.go
│ │ │ │ └── encode.go
│ │ ├── errors
│ │ │ └── errors.go
│ │ ├── filedesc
│ │ │ ├── build.go
│ │ │ ├── desc.go
│ │ │ ├── desc_init.go
│ │ │ ├── desc_lazy.go
│ │ │ ├── desc_list.go
│ │ │ ├── desc_list_gen.go
│ │ │ ├── editions.go
│ │ │ └── placeholder.go
│ │ ├── filetype
│ │ │ └── build.go
│ │ ├── flags
│ │ │ ├── flags.go
│ │ │ ├── proto_legacy_disable.go
│ │ │ └── proto_legacy_enable.go
│ │ ├── genid
│ │ │ ├── any_gen.go
│ │ │ ├── api_gen.go
│ │ │ ├── descriptor_gen.go
│ │ │ ├── doc.go
│ │ │ ├── duration_gen.go
│ │ │ ├── empty_gen.go
│ │ │ ├── field_mask_gen.go
│ │ │ ├── go_features_gen.go
│ │ │ ├── goname.go
│ │ │ ├── map_entry.go
│ │ │ ├── name.go
│ │ │ ├── source_context_gen.go
│ │ │ ├── struct_gen.go
│ │ │ ├── timestamp_gen.go
│ │ │ ├── type_gen.go
│ │ │ ├── wrappers.go
│ │ │ └── wrappers_gen.go
│ │ ├── impl
│ │ │ ├── api_export.go
│ │ │ ├── api_export_opaque.go
│ │ │ ├── bitmap.go
│ │ │ ├── bitmap_race.go
│ │ │ ├── checkinit.go
│ │ │ ├── codec_extension.go
│ │ │ ├── codec_field.go
│ │ │ ├── codec_field_opaque.go
│ │ │ ├── codec_gen.go
│ │ │ ├── codec_map.go
│ │ │ ├── codec_message.go
│ │ │ ├── codec_message_opaque.go
│ │ │ ├── codec_messageset.go
│ │ │ ├── codec_tables.go
│ │ │ ├── codec_unsafe.go
│ │ │ ├── convert.go
│ │ │ ├── convert_list.go
│ │ │ ├── convert_map.go
│ │ │ ├── decode.go
│ │ │ ├── encode.go
│ │ │ ├── enum.go
│ │ │ ├── equal.go
│ │ │ ├── extension.go
│ │ │ ├── lazy.go
│ │ │ ├── legacy_enum.go
│ │ │ ├── legacy_export.go
│ │ │ ├── legacy_extension.go
│ │ │ ├── legacy_file.go
│ │ │ ├── legacy_message.go
│ │ │ ├── merge.go
│ │ │ ├── merge_gen.go
│ │ │ ├── message.go
│ │ │ ├── message_opaque.go
│ │ │ ├── message_opaque_gen.go
│ │ │ ├── message_reflect.go
│ │ │ ├── message_reflect_field.go
│ │ │ ├── message_reflect_field_gen.go
│ │ │ ├── message_reflect_gen.go
│ │ │ ├── pointer_unsafe.go
│ │ │ ├── pointer_unsafe_opaque.go
│ │ │ ├── presence.go
│ │ │ └── validate.go
│ │ ├── order
│ │ │ ├── order.go
│ │ │ └── range.go
│ │ ├── pragma
│ │ │ └── pragma.go
│ │ ├── protolazy
│ │ │ ├── bufferreader.go
│ │ │ ├── lazy.go
│ │ │ └── pointer_unsafe.go
│ │ ├── set
│ │ │ └── ints.go
│ │ ├── strs
│ │ │ ├── strings.go
│ │ │ └── strings_unsafe.go
│ │ └── version
│ │ │ └── version.go
│ │ ├── proto
│ │ ├── checkinit.go
│ │ ├── decode.go
│ │ ├── decode_gen.go
│ │ ├── doc.go
│ │ ├── encode.go
│ │ ├── encode_gen.go
│ │ ├── equal.go
│ │ ├── extension.go
│ │ ├── merge.go
│ │ ├── messageset.go
│ │ ├── proto.go
│ │ ├── proto_methods.go
│ │ ├── proto_reflect.go
│ │ ├── reset.go
│ │ ├── size.go
│ │ ├── size_gen.go
│ │ ├── wrapperopaque.go
│ │ └── wrappers.go
│ │ ├── reflect
│ │ ├── protoreflect
│ │ │ ├── methods.go
│ │ │ ├── proto.go
│ │ │ ├── source.go
│ │ │ ├── source_gen.go
│ │ │ ├── type.go
│ │ │ ├── value.go
│ │ │ ├── value_equal.go
│ │ │ ├── value_union.go
│ │ │ └── value_unsafe.go
│ │ └── protoregistry
│ │ │ └── registry.go
│ │ └── runtime
│ │ ├── protoiface
│ │ ├── legacy.go
│ │ └── methods.go
│ │ └── protoimpl
│ │ ├── impl.go
│ │ └── version.go
├── gopkg.in
│ └── yaml.v3
│ │ ├── LICENSE
│ │ ├── NOTICE
│ │ ├── README.md
│ │ ├── apic.go
│ │ ├── decode.go
│ │ ├── emitterc.go
│ │ ├── encode.go
│ │ ├── parserc.go
│ │ ├── readerc.go
│ │ ├── resolve.go
│ │ ├── scannerc.go
│ │ ├── sorter.go
│ │ ├── writerc.go
│ │ ├── yaml.go
│ │ ├── yamlh.go
│ │ └── yamlprivateh.go
└── modules.txt
└── version.go
/.clusterfuzzlite/Dockerfile:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: Apache-2.0
2 | # umoci: Umoci Modifies Open Containers' Images
3 | # Copyright (C) 2016-2025 SUSE LLC
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | FROM gcr.io/oss-fuzz-base/base-builder-go
18 | COPY . $SRC/
19 | WORKDIR umoci
20 | COPY .clusterfuzzlite/build.sh $SRC/
21 |
--------------------------------------------------------------------------------
/.clusterfuzzlite/project.yaml:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: Apache-2.0
2 | # umoci: Umoci Modifies Open Containers' Images
3 | # Copyright (C) 2016-2025 SUSE LLC
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | language: go
18 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | /umoci
2 | /umoci.cov*
3 | /.cache
4 | /release
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /umoci
2 | /umoci.static
3 | /umoci.cov*
4 | /.cache
5 | /release
6 | *.swp
7 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule ".site/themes/hugo-theme-learn"]
2 | path = .site/themes/hugo-theme-learn
3 | url = https://github.com/matcornic/hugo-theme-learn.git
4 |
--------------------------------------------------------------------------------
/.site/.gitignore:
--------------------------------------------------------------------------------
1 | public
2 |
--------------------------------------------------------------------------------
/.site/README.md:
--------------------------------------------------------------------------------
1 | ## `.site/` ##
2 |
3 | This is the source code for the website hosted at [`umo.ci`][umoci]. The reason
4 | for this weird structure is so that we can still have a top-level `doc/`
5 | directory which is then included as a chapter inside the website.
6 |
7 | The website uses [Hugo][hugo], and can be rebuilt with a simple `hugo`. To have
8 | a development webserver use `hugo serve`. For more information, read the docs.
9 |
10 | [umoci]: https://umo.ci/
11 | [hugo]: https://gohugo.io/
12 |
13 | ### License ###
14 |
15 | As with the rest of `umoci`, the website is licensed under the Apache 2.0
16 | license. The theme [`hugo-theme-learn`][hugo-theme] is licensed under the
17 | MIT/X11 license.
18 |
19 | [hugo-theme]: https://github.com/matcornic/hugo-theme-learn
20 |
--------------------------------------------------------------------------------
/.site/content:
--------------------------------------------------------------------------------
1 | ../doc/site
--------------------------------------------------------------------------------
/.site/layouts/partials/logo.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.site/static/_headers:
--------------------------------------------------------------------------------
1 | /*
2 | # Our TLS certificate is managed by Netlify so this is all handled for us.
3 | Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
4 | Expect-CT: max-age=63072000; enforce
5 |
6 | # This needs to be kept up-to-date with hugo-learn-theme changes. Annoyingly,
7 | # hugo-theme-learn uses inline CSS and JS, so we need to enable
8 | # 'unsafe-eval'. Also in order to make Netlify previews work, we need to
9 | # explicitly enable umo.ci in a few places. This is a no-op for the main
10 | # site.
11 | Content-Security-Policy: base-uri 'none'; default-src 'none'; frame-ancestors 'none'; form-action 'none'; font-src 'self'; img-src 'self' https:; connect-src 'self' https://umo.ci:443; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
12 |
13 | # Obvious settings.
14 | X-Frame-Options: DENY
15 | X-XSS-Protection: 1; mode=block
16 | X-Content-Type-Options: nosniff
17 |
18 | # Give a little bit of privacy to users.
19 | Referrer-Policy: no-referrer, strict-origin-when-cross-origin
20 |
21 | /index.json
22 | # This is needed for Netlify preview builds, but it's fairly harmless.
23 | Access-Control-Allow-Origin: *
24 |
--------------------------------------------------------------------------------
/.site/static/_redirects:
--------------------------------------------------------------------------------
1 | # Redirect umoci.org to main site.
2 | https://umoci.org/* https://umo.ci/:splat 301!
3 | https://www.umoci.org/* https://umo.ci/:splat 301!
4 |
--------------------------------------------------------------------------------
/.site/static/umoci-black.png:
--------------------------------------------------------------------------------
1 | ../../contrib/logo/umoci-black.png
--------------------------------------------------------------------------------
/.site/static/umoci-white.png:
--------------------------------------------------------------------------------
1 | ../../contrib/logo/umoci-white.png
--------------------------------------------------------------------------------
/.site/static/umoci.keyring:
--------------------------------------------------------------------------------
1 | ../../umoci.keyring
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 |
8 |
9 | ## Code of Conduct ##
10 |
11 | As umoci is an OCI project, we are bound by the Open Containers Initative's
12 | [Code of Conduct][oci-coc]. All contributions must abide by the Code of
13 | Conduct.
14 |
15 | [oci-coc]: https://github.com/opencontainers/.github/blob/master/CODE_OF_CONDUCT.md
16 |
17 |
--------------------------------------------------------------------------------
/Dockerfile.fuzz:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: Apache-2.0
2 | # umoci: Umoci Modifies Open Containers' Images
3 | # Copyright (C) 2016-2025 SUSE LLC
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | FROM golang:latest
18 |
19 | RUN apt-get update && apt-get install -y clang
20 |
21 | RUN go get -u github.com/dvyukov/go-fuzz/go-fuzz \
22 | github.com/dvyukov/go-fuzz/go-fuzz-dep \
23 | github.com/dvyukov/go-fuzz/go-fuzz-build
24 |
25 | COPY . $GOPATH/src/github.com/opencontainers/umoci
26 |
27 | WORKDIR $GOPATH/src/github.com/opencontainers/umoci
28 |
29 | RUN go clean --modcache && \
30 | go mod tidy && \
31 | go mod vendor && \
32 | rm -r ./vendor
33 |
34 |
--------------------------------------------------------------------------------
/MAINTAINERS:
--------------------------------------------------------------------------------
1 | Aleksa Sarai (@cyphar)
2 | Tycho Andersen (@tych0)
3 | Vincent Batts (@vbatts)
4 |
--------------------------------------------------------------------------------
/VERSION:
--------------------------------------------------------------------------------
1 | 0.5.0+dev
2 |
--------------------------------------------------------------------------------
/contrib/logo/LICENSE:
--------------------------------------------------------------------------------
1 | umoci-logo: logo design for umoci
2 | Copyright (C) 2018 Max Bailey
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 |
--------------------------------------------------------------------------------
/contrib/logo/umoci-black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opencontainers/umoci/8a7f7894daa4ffe1e69461967b666ee62295321e/contrib/logo/umoci-black.png
--------------------------------------------------------------------------------
/contrib/logo/umoci-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opencontainers/umoci/8a7f7894daa4ffe1e69461967b666ee62295321e/contrib/logo/umoci-white.png
--------------------------------------------------------------------------------
/contrib/logo/umoci.sketch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opencontainers/umoci/8a7f7894daa4ffe1e69461967b666ee62295321e/contrib/logo/umoci.sketch
--------------------------------------------------------------------------------
/contrib/pkg/suse/.gitignore:
--------------------------------------------------------------------------------
1 | umoci.spec
2 |
--------------------------------------------------------------------------------
/doc/man/.gitignore:
--------------------------------------------------------------------------------
1 | # Ignore everything except markdown files.
2 | *
3 | !.gitignore
4 | !*.md
5 |
--------------------------------------------------------------------------------
/doc/man/umoci-gc.1.md:
--------------------------------------------------------------------------------
1 | % umoci-gc(1) # umoci gc - Garbage collects all unreferenced OCI image blobs
2 | % Aleksa Sarai
3 | % DECEMBER 2016
4 | # NAME
5 | umoci gc - Garbage collects all unreferenced OCI image blobs
6 |
7 | # SYNOPSIS
8 | **umoci gc**
9 | **--layout**=*image*
10 |
11 | # DESCRIPTION
12 | Conduct a mark-and-sweep garbage collection of the provided OCI image, only
13 | retaining blobs which can be reached by a descriptor path from the root set of
14 | tags. All other blobs will be removed.
15 |
16 | # OPTIONS
17 | The global options are defined in **umoci**(1).
18 |
19 | **--layout**=*image*
20 | The OCI image layout to be garbage collected. *image* must be a path to a
21 | valid OCI image.
22 |
23 | # EXAMPLE
24 |
25 | The following deletes a tag from an OCI image and clean conducts a garbage
26 | collection in order to clean up the remaining unused blobs.
27 |
28 | ```
29 | % umoci rm --image image:sometag
30 | % umoci gc --layout image
31 | ```
32 |
33 | # SEE ALSO
34 | **umoci**(1), **umoci-remove**(1)
35 |
--------------------------------------------------------------------------------
/doc/man/umoci-init.1.md:
--------------------------------------------------------------------------------
1 | % umoci-init(1) # umoci init - Create a new OCI image layout
2 | % Aleksa Sarai
3 | % DECEMBER 2016
4 | # NAME
5 | umoci init - Create a new OCI image layout
6 |
7 | # SYNOPSIS
8 | **umoci init**
9 | **--layout**=*image*
10 |
11 | # DESCRIPTION
12 | Creates a new OCI image layout. The new OCI image does not contain any new
13 | references or blobs, but those can be created through the use of
14 | **umoci-new**(1), **umoci-tag**(1), **umoci-repack**(1) and other similar
15 | commands.
16 |
17 | # OPTIONS
18 | The global options are defined in **umoci**(1).
19 |
20 | **--layout**=*image*
21 | The path where the OCI image layout will be created. The path must not exist
22 | already or **umoci-init**(1) will return an error.
23 |
24 | # EXAMPLE
25 |
26 | The following creates a brand new OCI image layout and then creates a blank tag
27 | for further manipulation with **umoci-repack**(1) and **umoci-config**(1).
28 |
29 | ```
30 | % umoci init --layout image
31 | % umoci new --image image:tag
32 | ```
33 |
34 | # SEE ALSO
35 | **umoci**(1), **umoci-new**(1)
36 |
--------------------------------------------------------------------------------
/doc/man/umoci-list.1.md:
--------------------------------------------------------------------------------
1 | % umoci-list(1) # umoci list - List tags in an OCI layout
2 | % Aleksa Sarai
3 | % DECEMBER 2016
4 | # NAME
5 | umoci list - List tags in an OCI layout
6 |
7 | # SYNOPSIS
8 | **umoci list**
9 | **--layout**=*layout*
10 |
11 | **umoci ls**
12 | **--layout**=*layout*
13 |
14 | # DESCRIPTION
15 | Gets the list of tags defined in an OCI layout, with one tag name per line. The
16 | output order is not defined.
17 |
18 | # OPTIONS
19 |
20 | **--layout**=*layout*
21 | The OCI image layout to get the list of tags from. *layout* must be a path to
22 | a valid OCI layout.
23 |
24 | # EXAMPLE
25 |
26 | The following lists the set of tags in a layout copied from a **docker**(1)
27 | registry using **skopeo**(1).
28 |
29 | ```
30 | % skopeo copy docker://opensuse/amd64:42.1 oci:ocidir:42.1
31 | % skopeo copy docker://opensuse/amd64:42.2 oci:ocidir:42.2
32 | % skopeo copy docker://opensuse/amd64:latest oci:ocidir:latest
33 | % umoci ls --layout ocidir
34 | 42.1
35 | 42.2
36 | latest
37 | ```
38 |
39 | # SEE ALSO
40 | **umoci**(1), **umoci-stat**(1)
41 |
--------------------------------------------------------------------------------
/doc/man/umoci-ls.1.md:
--------------------------------------------------------------------------------
1 | umoci-list.1.md
--------------------------------------------------------------------------------
/doc/man/umoci-raw-config.1.md:
--------------------------------------------------------------------------------
1 | umoci-raw-runtime-config.1.md
--------------------------------------------------------------------------------
/doc/man/umoci-raw.1.md:
--------------------------------------------------------------------------------
1 | % umoci-raw(1) # umoci raw - Advanced internal image tooling
2 | % Aleksa Sarai
3 | % SEPTEMBER 2018
4 | # NAME
5 | umoci raw - Advanced internal image tooling
6 |
7 | # SYNOPSIS
8 | **umoci raw**
9 | *command* [*args*]
10 |
11 | # DESCRIPTION
12 | **umoci-raw**(1) is a subcommand that contains further subcommands specifically
13 | intended for "advanced" usage of **umoci**(1). Unless you are familiar with the
14 | details of the OCI image specification, or otherwise understand what the
15 | implications of using these features is, it is not recommended. The top-level
16 | tools (**umoci-unpack**(1) and so on) should be sufficient for most use-cases.
17 |
18 | # COMMANDS
19 |
20 | **runtime-config, config**
21 | Generate an OCI runtime configuration for an image, without the rootfs. See
22 | **umoci-raw-runtime-config**(1) for more detailed usage information.
23 |
24 | # SEE ALSO
25 | **umoci**(1),
26 | **umoci-raw-add-layer**(1),
27 | **umoci-raw-runtime-config**(1),
28 | **umoci-raw-unpack**(1)
29 |
--------------------------------------------------------------------------------
/doc/man/umoci-remove.1.md:
--------------------------------------------------------------------------------
1 | % umoci-remove(1) # umoci tag - Remove tags from OCI images
2 | % Aleksa Sarai
3 | % DECEMBER 2016
4 | # NAME
5 | umoci remove - Removes tags from OCI images
6 |
7 | # SYNOPSIS
8 | **umoci remove**
9 | **--image**=*image*[:*tag*]
10 |
11 | **umoci rm**
12 | **--image**=*image*[:*tag*]
13 |
14 | # DESCRIPTION
15 | Removes the given tag from the OCI image. The relevant blobs are **not**
16 | removed -- in order to remove all unused blobs see **umoci-gc**(1).
17 |
18 | # OPTIONS
19 |
20 | **--image**=*image*[:*tag*]
21 | The source OCI image tag to remove. *image* must be a path to a valid OCI
22 | image and *tag* must be a valid tag name (**umoci-remove**(1) does not return
23 | an error if the tag did not exist). If *tag* is not provided it defaults to
24 | "latest".
25 |
26 | # EXAMPLE
27 | The following creates a copy of a tag and then deletes the original.
28 |
29 | ```
30 | % umoci tag --image image:tag new-tag
31 | % umoci rm --image image:tag
32 | ```
33 |
34 | # SEE ALSO
35 | **umoci**(1), **umoci-tag**(1), **umoci-gc**(1)
36 |
--------------------------------------------------------------------------------
/doc/man/umoci-rm.1.md:
--------------------------------------------------------------------------------
1 | umoci-remove.1.md
--------------------------------------------------------------------------------
/doc/man/umoci-tag.1.md:
--------------------------------------------------------------------------------
1 | % umoci-tag(1) # umoci tag - Create tags in OCI images
2 | % Aleksa Sarai
3 | % DECEMBER 2016
4 | # NAME
5 | umoci tag - Create tags in OCI images
6 |
7 | # SYNOPSIS
8 | **umoci tag**
9 | **--image**=*image*[:*tag*]
10 | *new-tag*
11 |
12 | # DESCRIPTION
13 | Creates a new tag that is a copy of *tag* with the name *new-tag*. If *new-tag*
14 | already exists, it will be replaced. The original *tag* will be unchanged.
15 |
16 | # OPTIONS
17 |
18 | **--image**=*image*[:*tag*]
19 | The source OCI image tag to create a copy of. *image* must be a path to a
20 | valid OCI image and *tag* must be a valid tag in the image. If *tag* is not
21 | provided it defaults to "latest".
22 |
23 | # EXAMPLE
24 | The following swaps two image tags in an OCI image.
25 |
26 | ```
27 | % umoci tag --image image:to-change new
28 | % umoci tag --image image:latest to-change
29 | % umoci tag --image image:new latest
30 | % umoci rm --image image:new
31 | ```
32 |
33 | # SEE ALSO
34 | **umoci**(1), **umoci-remove**(1)
35 |
--------------------------------------------------------------------------------
/doc/site/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opencontainers/umoci/8a7f7894daa4ffe1e69461967b666ee62295321e/doc/site/.gitignore
--------------------------------------------------------------------------------
/doc/site/_index.md:
--------------------------------------------------------------------------------
1 | ../../README.md
--------------------------------------------------------------------------------
/doc/site/advanced/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Advanced"
3 | chapter = true
4 | weight = 200
5 | +++
6 |
7 | # Advanced Topics #
8 |
9 | More advanced topics that may be of interest to people building projects that
10 | use umoci, or otherwise experienced users.
11 |
--------------------------------------------------------------------------------
/doc/site/meta/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Meta"
3 | chapter = true
4 | weight = 300
5 | +++
6 |
7 | # Meta-Documents #
8 |
9 | This is the set of project-related governance and other "meta" documents.
10 |
--------------------------------------------------------------------------------
/doc/site/meta/changelog.md:
--------------------------------------------------------------------------------
1 | ../../../CHANGELOG.md
--------------------------------------------------------------------------------
/doc/site/meta/contributing.md:
--------------------------------------------------------------------------------
1 | ../../../CONTRIBUTING.md
--------------------------------------------------------------------------------
/doc/site/meta/governance.md:
--------------------------------------------------------------------------------
1 | ../../../GOVERNANCE.md
--------------------------------------------------------------------------------
/doc/site/meta/releases.md:
--------------------------------------------------------------------------------
1 | ../../../RELEASES.md
--------------------------------------------------------------------------------
/doc/site/quick-start/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Basics"
3 | chapter = true
4 | weight = 100
5 | +++
6 |
7 | # Quick Start #
8 |
9 | An entry-level guide to using umoci, in conjunction with several supplementary
10 | tools that are recommended for most users.
11 |
--------------------------------------------------------------------------------
/doc/site/quick-start/creating-an-image.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Creating an Image"
3 | weight = 30
4 | +++
5 |
6 | Creating a new image with umoci is fairly simple, and effectively involves
7 | creating an image "husk" which you can then [operate on][workflow] as though it
8 | was a normal image. New images contain no layers, and have a dummy
9 | configuration that should be replaced by a user.
10 |
11 | If you wish to create a new image layout (which contains nothing except the
12 | bare minimum to specify that the image is an OCI image), you can do so with
13 | `umoci init`.
14 |
15 | ```text
16 | % umoci init --layout new_image
17 | ```
18 |
19 | If you wish to create a new image inside the image layout, you can do so with
20 | `umoci new`.
21 |
22 | ```text
23 | % umoci new --image new_image:new_tag
24 | ```
25 |
26 | [workflow]: /quick-start/workflow
27 |
--------------------------------------------------------------------------------
/doc/site/quick-start/garbage-collection.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Garbage Collection"
3 | weight = 40
4 | +++
5 |
6 | Every umoci operation that modifies an image will not delete any now-unused
7 | blobs in the image (so as to ensure that any other operations that assume those
8 | blobs are present will not error out). However, this will result in a large
9 | number of useless blobs remaining in the image after operating on an image for
10 | a long enough period of time. `umoci gc` will garbage collect all blobs that
11 | are not reachable from any known image tag. Note that calling `umoci gc`
12 | between `umoci unpack` and `umoci repack` may result in errors if you've
13 | removed all references to the blobs used by `umoci unpack`.
14 |
15 | ```text
16 | % umoci gc --layout opensuse
17 | ```
18 |
--------------------------------------------------------------------------------
/doc/site/reference/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Reference"
3 | chapter = true
4 | weight = 900
5 | +++
6 |
7 | # Reference Documentation #
8 |
9 | Exhaustive documentation on umoci's architecture and user interfaces. Only
10 | recommended for advanced users.
11 |
--------------------------------------------------------------------------------
/hack/resilient-curl.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # SPDX-License-Identifier: Apache-2.0
3 | # umoci: Umoci Modifies Open Containers' Images
4 | # Copyright (C) 2016-2025 SUSE LLC
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # http://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 |
18 | set -Eeuo pipefail
19 |
20 | ATTEMPT=0
21 | MAX_ATTEMPTS=10
22 | BACKOFF=0.2
23 |
24 | until ( timeout 5s curl "$@" )
25 | do
26 | [[ "$((++ATTEMPT))" -lt "$MAX_ATTEMPTS" ]] || exit 1
27 | sleep "$(bc <<<"$BACKOFF * 2*$ATTEMPT")"
28 | done
29 |
--------------------------------------------------------------------------------
/internal/doc.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | // Package internal (and all subpackages) are for internal-to-umoci APIs.
20 | package internal
21 |
--------------------------------------------------------------------------------
/internal/errors.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | package internal
20 |
21 | import (
22 | "errors"
23 | )
24 |
25 | // ErrUnimplemented is returned as a source error for umoci features that are
26 | // not yet implemented.
27 | var ErrUnimplemented = errors.New("unimplemented umoci feature")
28 |
--------------------------------------------------------------------------------
/internal/funchelpers/doc.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | // Package funchelpers provides small helpers related to writing
20 | // easy-to-understand Go functions.
21 | package funchelpers
22 |
--------------------------------------------------------------------------------
/internal/iohelpers/doc.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | // Package iohelpers provides basic extensions to the helpers provided by the
20 | // Go stdlib "io" module.
21 | package iohelpers
22 |
--------------------------------------------------------------------------------
/internal/system/doc.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | // Package system provides ergonomic wrappers for operating system APIs.
20 | package system
21 |
--------------------------------------------------------------------------------
/internal/system/mknod_freebsd.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | package system
20 |
21 | import (
22 | "golang.org/x/sys/unix"
23 | )
24 |
25 | // Mknod creates a filesystem node (file, device special file or named pipe) named path
26 | // with attributes specified by mode and dev.
27 | func Mknod(path string, mode uint32, dev uint64) error {
28 | return unix.Mknod(path, mode, dev)
29 | }
30 |
--------------------------------------------------------------------------------
/internal/system/mknod_unix.go:
--------------------------------------------------------------------------------
1 | //go:build !freebsd
2 | // +build !freebsd
3 |
4 | // SPDX-License-Identifier: Apache-2.0
5 | /*
6 | * umoci: Umoci Modifies Open Containers' Images
7 | * Copyright (C) 2016-2025 SUSE LLC
8 | *
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | */
21 |
22 | package system
23 |
24 | import (
25 | "golang.org/x/sys/unix"
26 | )
27 |
28 | // Mknod creates a filesystem node (file, device special file or named pipe) named path
29 | // with attributes specified by mode and dev.
30 | func Mknod(path string, mode uint32, dev uint64) error {
31 | return unix.Mknod(path, mode, int(dev))
32 | }
33 |
--------------------------------------------------------------------------------
/internal/testhelpers/ftimes.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | package testhelpers
20 |
21 | import (
22 | "time"
23 | )
24 |
25 | // Unix returns the local Time corresponding to the given Unix time, rounded to
26 | // the timestamp granularity for this system.
27 | func Unix(sec, nsec int64) time.Time {
28 | return time.Unix(sec, nsec).Round(FtimeGranularity())
29 | }
30 |
--------------------------------------------------------------------------------
/internal/testhelpers/ftimes_darwin.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | package testhelpers
20 |
21 | import (
22 | "time"
23 | )
24 |
25 | // FtimeGranularity is the filesystem timestamp granularity for this system.
26 | func FtimeGranularity() time.Duration {
27 | // On OS X, filesystem timestamps have second-level granularity.
28 | // Nanosecond values are silently truncated if you try to set them.
29 | return time.Second
30 | }
31 |
--------------------------------------------------------------------------------
/internal/testhelpers/mount_unsupported.go:
--------------------------------------------------------------------------------
1 | //go:build !linux
2 | // +build !linux
3 |
4 | // SPDX-License-Identifier: Apache-2.0
5 | /*
6 | * umoci: Umoci Modifies Open Containers' Images
7 | * Copyright (C) 2016-2025 SUSE LLC
8 | *
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | */
21 |
22 | package testhelpers
23 |
24 | import (
25 | "runtime"
26 | "testing"
27 | )
28 |
29 | func MakeReadOnly(t *testing.T, path string) {
30 | t.Skipf("readonly tests not supported on GOOS=%s", runtime.GOOS)
31 | }
32 |
33 | func MakeReadWrite(t *testing.T, path string) {
34 | t.Skipf("readonly tests not supported on GOOS=%s", runtime.GOOS)
35 | }
36 |
--------------------------------------------------------------------------------
/internal/testhelpers/random_string.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | package testhelpers
20 |
21 | import (
22 | "math/rand"
23 | )
24 |
25 | // RandomString returns a pseudorandom alphabetical (mixed-case) string.
26 | func RandomString(n int) string {
27 | const alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
28 | b := make([]byte, n)
29 | for i := range b {
30 | b[i] = alpha[rand.Intn(len(alpha))]
31 | }
32 | return string(b)
33 | }
34 |
--------------------------------------------------------------------------------
/netlify.toml:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: Apache-2.0
2 | # umoci: Umoci Modifies Open Containers' Images
3 | # Copyright (C) 2016-2025 SUSE LLC
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | [build]
18 | base = ".site"
19 | public = "public"
20 | command = "hugo"
21 | ignore = "false"
22 |
23 | # NOTE: All security headers are set in .site/static/_headers, and redirects in
24 | # .site/static/_redirects. While Netlify does support setting headers and
25 | # redirects in netlify.toml, it seems that this doesn't work for our
26 | # website. (TODO: Fix that.)
27 |
--------------------------------------------------------------------------------
/oci/README.md:
--------------------------------------------------------------------------------
1 | ## `umoci/oci/...` ##
2 |
3 | This package is a reimplementation of several upstream features in
4 | upstream OCI projects, as well as implementing features that _should_ be
5 | maintained upstream (such as `generate`). To this end, this project's
6 | goal is to be completely upstreamable.
7 |
--------------------------------------------------------------------------------
/oci/cas/README.md:
--------------------------------------------------------------------------------
1 | ### `umoci/oci/cas` ###
2 |
3 | This is a reimplemented version of the currently in-flight [`image-tools` CAS
4 | PR][cas-pr], which combines the `cas` and `refs` interfaces into a single
5 | `Engine` that represents the image. In addition, I've implemented more
6 | auto-detection and creature comforts.
7 |
8 | When the PR is merged, these changes will probably go upstream as well.
9 |
10 | [cas-pr]: https://github.com/opencontainers/image-tools/pull/5
11 |
--------------------------------------------------------------------------------
/oci/casext/blobcompress/gzip_test.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | package blobcompress
20 |
21 | import (
22 | "testing"
23 | )
24 |
25 | func TestGzip(t *testing.T) {
26 | testAlgo(t, Gzip, "gzip", true)
27 | }
28 |
--------------------------------------------------------------------------------
/oci/casext/blobcompress/noop_test.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | package blobcompress
20 |
21 | import (
22 | "testing"
23 | )
24 |
25 | func TestNoop(t *testing.T) {
26 | testAlgo(t, Noop, "", false)
27 | }
28 |
--------------------------------------------------------------------------------
/oci/casext/blobcompress/zstd_test.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | package blobcompress
20 |
21 | import (
22 | "testing"
23 | )
24 |
25 | func TestZstd(t *testing.T) {
26 | testAlgo(t, Zstd, "zstd", true)
27 | }
28 |
--------------------------------------------------------------------------------
/oci/casext/mediatype/doc.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | // Package mediatype provides OCI-mimetype-based extensibility of umoci by
20 | // allowing umoci Go API users to extend the set of supported mimetypes to a
21 | // somewhat-limited extent.
22 | package mediatype
23 |
--------------------------------------------------------------------------------
/oci/config/convert/README.md:
--------------------------------------------------------------------------------
1 | ### `umoci/oci/config/convert` ###
2 |
3 | One fairly important aspect of creating a runtime bundle is the configuration
4 | of the container. While an image configuration and runtime configuration are
5 | defined on different levels (images are far more platform agnostic than runtime
6 | bundles), conversion from an image to a runtime configuration is defined as
7 | part of the OCI specification (thanks to this reference implementation).
8 |
9 | This package implements a fairly unopinionated implementation of that
10 | conversion, allowing consumers to easily add their own extensions in the
11 | runtime configuration generation.
12 |
--------------------------------------------------------------------------------
/oci/config/convert/doc.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | // Package convert implements the OCI image specification "default runtime
20 | // configuration" conversion specification in a fairly unopinionated way.
21 | package convert
22 |
--------------------------------------------------------------------------------
/oci/config/convert/utils_unix.go:
--------------------------------------------------------------------------------
1 | //go:build !linux
2 | // +build !linux
3 |
4 | // SPDX-License-Identifier: Apache-2.0
5 | /*
6 | * umoci: Umoci Modifies Open Containers' Images
7 | * Copyright (C) 2016-2025 SUSE LLC
8 | *
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | */
21 |
22 | package convert
23 |
24 | // getUnprivilegedMountFlags should return the set of mount flags which are
25 | // locked by CL_UNPRIVILEGED. However, user namespaces don't exist outside
26 | // Linux.
27 | func getUnprivilegedMountFlags(path string) ([]string, error) {
28 | return nil, nil
29 | }
30 |
--------------------------------------------------------------------------------
/oci/config/generate/README.md:
--------------------------------------------------------------------------------
1 | ### `umoci/oci/config/generate` ###
2 |
3 | This intends to be a library like `runtime-tools/generate` which allows you to
4 | generate modifications to an OCI image configuration blob (of type
5 | [`application/vnd.oci.image.config.v1+json`][oci-image-config]). It's a bit of
6 | a shame that this is necessary, but it shouldn't be *that bad* to implement
7 |
8 | The hope is that this library (or some form of it) will become an upstream
9 | library so I don't have to maintain this for any extended period of time.
10 |
11 | [oci-image-config]: https://github.com/opencontainers/image-spec/blob/master/config.md
12 |
--------------------------------------------------------------------------------
/oci/layer/README.md:
--------------------------------------------------------------------------------
1 | ### `umoci/oci/layer` ###
2 |
3 | This is my own implementation of the [currently under development
4 | `oci-create-layer` functions][create-layer]. The reason for implementing this
5 | myself is that we use [`mtree` specifications][mtree] which are not the same
6 | method that `oci-create-layer` uses. While the two implementations could be
7 | combined (since this implementation is more general), in order to speed things
8 | up I just decided to implement it myself.
9 |
10 | This also implements `oci-create-runtime-bundle`, since it's under layer
11 | management. The real difference is that we've split up the API (and based it on
12 | CAS) so we have more control when generating the bundle.
13 |
14 | I'm hoping that this will be merged upstream, but since it's just a whiteout
15 | tar archive generator there isn't a *huge* requirement that this is kept up to
16 | date. Though, it should be noted that [the whiteout format may change in the
17 | future][whiteout-disc].
18 |
19 | [create-layer]: https://github.com/opencontainers/image-tools/pull/8
20 | [mtree]: https://github.com/vbatts/go-mtree
21 | [whiteout-disc]: https://github.com/opencontainers/image-spec/issues/24
22 |
--------------------------------------------------------------------------------
/oci/layer/doc.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | // Package layer implements the creation and extraction of OCI specification
20 | // layers. At the moment, only plain tar extractions into a single directory
21 | // (with mtree manifests for diff generation) and overlayfs-style extractions
22 | // are supported.
23 | package layer
24 |
--------------------------------------------------------------------------------
/packaging:
--------------------------------------------------------------------------------
1 | contrib/pkg
--------------------------------------------------------------------------------
/pkg/hardening/doc.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | // Package hardening implements security hardening measures within umoci.
20 | package hardening
21 |
--------------------------------------------------------------------------------
/pkg/mtreefilter/doc.go:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: Apache-2.0
2 | /*
3 | * umoci: Umoci Modifies Open Containers' Images
4 | * Copyright (C) 2016-2025 SUSE LLC
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | // Package mtreefilter provides helpers to construct filters that can be
20 | // applied on mtree manifests, allowing you to filter out changes from being
21 | // included in a tar diff layer.
22 | package mtreefilter
23 |
--------------------------------------------------------------------------------
/test/fuzzing/README.md:
--------------------------------------------------------------------------------
1 | # Fuzzing umoci
2 |
3 | Umoci has a series of fuzz tests. These are implemented by way of [go-fuzz](https://github.com/dvyukov/go-fuzz).
4 |
5 | ## Running the fuzzers
6 |
7 | To run the fuzzers, first build the fuzzer image from the root of this repository:
8 |
9 | ```bash
10 | sudo docker build -t umoci-fuzz -f Dockerfile.fuzz .
11 | ```
12 | Next, get a shell in the container:
13 | ```bash
14 | sudo docker run -it umoci-fuzz
15 | ```
16 | At this point, you can navigate to any directory that has a fuzzer and build it:
17 |
18 | ```bash
19 | cd $PATH_TO_FUZZER
20 | go-fuzz-build -libfuzzer -func=FUZZ_NAME && \
21 | clang -fsanitize=fuzzer PACKAGE_NAME.a -o fuzzer
22 | ```
23 | `FUZZ_NAME` will typically be `Fuzz`, but in some cases the respective fuzzers will have more descriptive names.
24 |
25 | If you encounter any errors when linking with `PACKAGE_NAME.a`, simply `ls` after running `go-fuzz-build...`, and you will see the archive to link with.
26 |
27 | If everything goes well until this point, you can run the fuzzer:
28 | ```bash
29 | ./fuzzer
30 | ```
31 |
--------------------------------------------------------------------------------
/vendor/github.com/apex/log/.gitignore:
--------------------------------------------------------------------------------
1 | .envrc
2 |
--------------------------------------------------------------------------------
/vendor/github.com/apex/log/LICENSE:
--------------------------------------------------------------------------------
1 | (The MIT License)
2 |
3 | Copyright (c) 2015 TJ Holowaychuk tj@tjholowaychuk.com
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining
6 | a copy of this software and associated documentation files (the
7 | 'Software'), to deal in the Software without restriction, including
8 | without limitation the rights to use, copy, modify, merge, publish,
9 | distribute, sublicense, and/or sell copies of the Software, and to
10 | permit persons to whom the Software is furnished to do so, subject to
11 | the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be
14 | included in all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/vendor/github.com/apex/log/Makefile:
--------------------------------------------------------------------------------
1 |
2 | include github.com/tj/make/golang
3 |
--------------------------------------------------------------------------------
/vendor/github.com/apex/log/context.go:
--------------------------------------------------------------------------------
1 | package log
2 |
3 | import "context"
4 |
5 | // logKey is a private context key.
6 | type logKey struct{}
7 |
8 | // NewContext returns a new context with logger.
9 | func NewContext(ctx context.Context, v Interface) context.Context {
10 | return context.WithValue(ctx, logKey{}, v)
11 | }
12 |
13 | // FromContext returns the logger from context, or log.Log.
14 | func FromContext(ctx context.Context) Interface {
15 | if v, ok := ctx.Value(logKey{}).(Interface); ok {
16 | return v
17 | }
18 | return Log
19 | }
20 |
--------------------------------------------------------------------------------
/vendor/github.com/apex/log/default.go:
--------------------------------------------------------------------------------
1 | package log
2 |
3 | import (
4 | "bytes"
5 | "fmt"
6 | "log"
7 | "sort"
8 | )
9 |
10 | // field used for sorting.
11 | type field struct {
12 | Name string
13 | Value interface{}
14 | }
15 |
16 | // by sorts fields by name.
17 | type byName []field
18 |
19 | func (a byName) Len() int { return len(a) }
20 | func (a byName) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
21 | func (a byName) Less(i, j int) bool { return a[i].Name < a[j].Name }
22 |
23 | // handleStdLog outpouts to the stlib log.
24 | func handleStdLog(e *Entry) error {
25 | level := levelNames[e.Level]
26 |
27 | var fields []field
28 |
29 | for k, v := range e.Fields {
30 | fields = append(fields, field{k, v})
31 | }
32 |
33 | sort.Sort(byName(fields))
34 |
35 | var b bytes.Buffer
36 | fmt.Fprintf(&b, "%5s %-25s", level, e.Message)
37 |
38 | for _, f := range fields {
39 | fmt.Fprintf(&b, " %s=%v", f.Name, f.Value)
40 | }
41 |
42 | log.Println(b.String())
43 |
44 | return nil
45 | }
46 |
--------------------------------------------------------------------------------
/vendor/github.com/apex/log/doc.go:
--------------------------------------------------------------------------------
1 | /*
2 | Package log implements a simple structured logging API designed with few assumptions. Designed for
3 | centralized logging solutions such as Kinesis which require encoding and decoding before fanning-out
4 | to handlers.
5 |
6 | You may use this package with inline handlers, much like Logrus, however a centralized solution
7 | is recommended so that apps do not need to be re-deployed to add or remove logging service
8 | providers.
9 | */
10 | package log
11 |
--------------------------------------------------------------------------------
/vendor/github.com/apex/log/interface.go:
--------------------------------------------------------------------------------
1 | package log
2 |
3 | import "time"
4 |
5 | // Interface represents the API of both Logger and Entry.
6 | type Interface interface {
7 | WithFields(Fielder) *Entry
8 | WithField(string, interface{}) *Entry
9 | WithDuration(time.Duration) *Entry
10 | WithError(error) *Entry
11 | Debug(string)
12 | Info(string)
13 | Warn(string)
14 | Error(string)
15 | Fatal(string)
16 | Debugf(string, ...interface{})
17 | Infof(string, ...interface{})
18 | Warnf(string, ...interface{})
19 | Errorf(string, ...interface{})
20 | Fatalf(string, ...interface{})
21 | Trace(string) *Entry
22 | }
23 |
--------------------------------------------------------------------------------
/vendor/github.com/apex/log/stack.go:
--------------------------------------------------------------------------------
1 | package log
2 |
3 | import "github.com/pkg/errors"
4 |
5 | // stackTracer interface.
6 | type stackTracer interface {
7 | StackTrace() errors.StackTrace
8 | }
9 |
--------------------------------------------------------------------------------
/vendor/github.com/blang/semver/v4/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2014 Benedikt Lang
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/vendor/github.com/blang/semver/v4/json.go:
--------------------------------------------------------------------------------
1 | package semver
2 |
3 | import (
4 | "encoding/json"
5 | )
6 |
7 | // MarshalJSON implements the encoding/json.Marshaler interface.
8 | func (v Version) MarshalJSON() ([]byte, error) {
9 | return json.Marshal(v.String())
10 | }
11 |
12 | // UnmarshalJSON implements the encoding/json.Unmarshaler interface.
13 | func (v *Version) UnmarshalJSON(data []byte) (err error) {
14 | var versionString string
15 |
16 | if err = json.Unmarshal(data, &versionString); err != nil {
17 | return
18 | }
19 |
20 | *v, err = Parse(versionString)
21 |
22 | return
23 | }
24 |
--------------------------------------------------------------------------------
/vendor/github.com/blang/semver/v4/sort.go:
--------------------------------------------------------------------------------
1 | package semver
2 |
3 | import (
4 | "sort"
5 | )
6 |
7 | // Versions represents multiple versions.
8 | type Versions []Version
9 |
10 | // Len returns length of version collection
11 | func (s Versions) Len() int {
12 | return len(s)
13 | }
14 |
15 | // Swap swaps two versions inside the collection by its indices
16 | func (s Versions) Swap(i, j int) {
17 | s[i], s[j] = s[j], s[i]
18 | }
19 |
20 | // Less checks if version at index i is less than version at index j
21 | func (s Versions) Less(i, j int) bool {
22 | return s[i].LT(s[j])
23 | }
24 |
25 | // Sort sorts a slice of versions
26 | func Sort(versions []Version) {
27 | sort.Sort(Versions(versions))
28 | }
29 |
--------------------------------------------------------------------------------
/vendor/github.com/blang/semver/v4/sql.go:
--------------------------------------------------------------------------------
1 | package semver
2 |
3 | import (
4 | "database/sql/driver"
5 | "fmt"
6 | )
7 |
8 | // Scan implements the database/sql.Scanner interface.
9 | func (v *Version) Scan(src interface{}) (err error) {
10 | var str string
11 | switch src := src.(type) {
12 | case string:
13 | str = src
14 | case []byte:
15 | str = string(src)
16 | default:
17 | return fmt.Errorf("version.Scan: cannot convert %T to string", src)
18 | }
19 |
20 | if t, err := Parse(str); err == nil {
21 | *v = t
22 | }
23 |
24 | return
25 | }
26 |
27 | // Value implements the database/sql/driver.Valuer interface.
28 | func (v Version) Value() (driver.Value, error) {
29 | return v.String(), nil
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/github.com/cpuguy83/go-md2man/v2/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Brian Goff
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/github.com/cpuguy83/go-md2man/v2/md2man/md2man.go:
--------------------------------------------------------------------------------
1 | package md2man
2 |
3 | import (
4 | "github.com/russross/blackfriday/v2"
5 | )
6 |
7 | // Render converts a markdown document into a roff formatted document.
8 | func Render(doc []byte) []byte {
9 | renderer := NewRoffRenderer()
10 |
11 | return blackfriday.Run(doc,
12 | []blackfriday.Option{
13 | blackfriday.WithRenderer(renderer),
14 | blackfriday.WithExtensions(renderer.GetExtensions()),
15 | }...)
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/github.com/cyphar/filepath-securejoin/VERSION:
--------------------------------------------------------------------------------
1 | 0.4.1
2 |
--------------------------------------------------------------------------------
/vendor/github.com/cyphar/filepath-securejoin/gocompat_errors_go120.go:
--------------------------------------------------------------------------------
1 | //go:build linux && go1.20
2 |
3 | // Copyright (C) 2024 SUSE LLC. All rights reserved.
4 | // Use of this source code is governed by a BSD-style
5 | // license that can be found in the LICENSE file.
6 |
7 | package securejoin
8 |
9 | import (
10 | "fmt"
11 | )
12 |
13 | // wrapBaseError is a helper that is equivalent to fmt.Errorf("%w: %w"), except
14 | // that on pre-1.20 Go versions only errors.Is() works properly (errors.Unwrap)
15 | // is only guaranteed to give you baseErr.
16 | func wrapBaseError(baseErr, extraErr error) error {
17 | return fmt.Errorf("%w: %w", extraErr, baseErr)
18 | }
19 |
--------------------------------------------------------------------------------
/vendor/github.com/cyphar/filepath-securejoin/gocompat_errors_unsupported.go:
--------------------------------------------------------------------------------
1 | //go:build linux && !go1.20
2 |
3 | // Copyright (C) 2024 SUSE LLC. All rights reserved.
4 | // Use of this source code is governed by a BSD-style
5 | // license that can be found in the LICENSE file.
6 |
7 | package securejoin
8 |
9 | import (
10 | "fmt"
11 | )
12 |
13 | type wrappedError struct {
14 | inner error
15 | isError error
16 | }
17 |
18 | func (err wrappedError) Is(target error) bool {
19 | return err.isError == target
20 | }
21 |
22 | func (err wrappedError) Unwrap() error {
23 | return err.inner
24 | }
25 |
26 | func (err wrappedError) Error() string {
27 | return fmt.Sprintf("%v: %v", err.isError, err.inner)
28 | }
29 |
30 | // wrapBaseError is a helper that is equivalent to fmt.Errorf("%w: %w"), except
31 | // that on pre-1.20 Go versions only errors.Is() works properly (errors.Unwrap)
32 | // is only guaranteed to give you baseErr.
33 | func wrapBaseError(baseErr, extraErr error) error {
34 | return wrappedError{
35 | inner: baseErr,
36 | isError: extraErr,
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/github.com/cyphar/filepath-securejoin/gocompat_generics_go121.go:
--------------------------------------------------------------------------------
1 | //go:build linux && go1.21
2 |
3 | // Copyright (C) 2024 SUSE LLC. All rights reserved.
4 | // Use of this source code is governed by a BSD-style
5 | // license that can be found in the LICENSE file.
6 |
7 | package securejoin
8 |
9 | import (
10 | "slices"
11 | "sync"
12 | )
13 |
14 | func slices_DeleteFunc[S ~[]E, E any](slice S, delFn func(E) bool) S {
15 | return slices.DeleteFunc(slice, delFn)
16 | }
17 |
18 | func slices_Contains[S ~[]E, E comparable](slice S, val E) bool {
19 | return slices.Contains(slice, val)
20 | }
21 |
22 | func slices_Clone[S ~[]E, E any](slice S) S {
23 | return slices.Clone(slice)
24 | }
25 |
26 | func sync_OnceValue[T any](f func() T) func() T {
27 | return sync.OnceValue(f)
28 | }
29 |
30 | func sync_OnceValues[T1, T2 any](f func() (T1, T2)) func() (T1, T2) {
31 | return sync.OnceValues(f)
32 | }
33 |
--------------------------------------------------------------------------------
/vendor/github.com/davecgh/go-spew/LICENSE:
--------------------------------------------------------------------------------
1 | ISC License
2 |
3 | Copyright (c) 2012-2016 Dave Collins
4 |
5 | Permission to use, copy, modify, and/or distribute this software for any
6 | purpose with or without fee is hereby granted, provided that the above
7 | copyright notice and this permission notice appear in all copies.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 |
--------------------------------------------------------------------------------
/vendor/github.com/docker/go-units/README.md:
--------------------------------------------------------------------------------
1 | [](https://godoc.org/github.com/docker/go-units)
2 |
3 | # Introduction
4 |
5 | go-units is a library to transform human friendly measurements into machine friendly values.
6 |
7 | ## Usage
8 |
9 | See the [docs in godoc](https://godoc.org/github.com/docker/go-units) for examples and documentation.
10 |
11 | ## Copyright and license
12 |
13 | Copyright © 2015 Docker, Inc.
14 |
15 | go-units is licensed under the Apache License, Version 2.0.
16 | See [LICENSE](LICENSE) for the full text of the license.
17 |
--------------------------------------------------------------------------------
/vendor/github.com/docker/go-units/circle.yml:
--------------------------------------------------------------------------------
1 | dependencies:
2 | post:
3 | # install golint
4 | - go get golang.org/x/lint/golint
5 |
6 | test:
7 | pre:
8 | # run analysis before tests
9 | - go vet ./...
10 | - test -z "$(golint ./... | tee /dev/stderr)"
11 | - test -z "$(gofmt -s -l . | tee /dev/stderr)"
12 |
--------------------------------------------------------------------------------
/vendor/github.com/fatih/color/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013 Fatih Arslan
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/vendor/github.com/fatih/color/color_windows.go:
--------------------------------------------------------------------------------
1 | package color
2 |
3 | import (
4 | "os"
5 |
6 | "golang.org/x/sys/windows"
7 | )
8 |
9 | func init() {
10 | // Opt-in for ansi color support for current process.
11 | // https://learn.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences#output-sequences
12 | var outMode uint32
13 | out := windows.Handle(os.Stdout.Fd())
14 | if err := windows.GetConsoleMode(out, &outMode); err != nil {
15 | return
16 | }
17 | outMode |= windows.ENABLE_PROCESSED_OUTPUT | windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING
18 | _ = windows.SetConsoleMode(out, outMode)
19 | }
20 |
--------------------------------------------------------------------------------
/vendor/github.com/klauspost/compress/huff0/.gitignore:
--------------------------------------------------------------------------------
1 | /huff0-fuzz.zip
2 |
--------------------------------------------------------------------------------
/vendor/github.com/klauspost/compress/snappy/.gitignore:
--------------------------------------------------------------------------------
1 | cmd/snappytool/snappytool
2 | testdata/bench
3 |
4 | # These explicitly listed benchmark data files are for an obsolete version of
5 | # snappy_test.go.
6 | testdata/alice29.txt
7 | testdata/asyoulik.txt
8 | testdata/fireworks.jpeg
9 | testdata/geo.protodata
10 | testdata/html
11 | testdata/html_x_4
12 | testdata/kppkn.gtb
13 | testdata/lcet10.txt
14 | testdata/paper-100k.pdf
15 | testdata/plrabn12.txt
16 | testdata/urls.10K
17 |
--------------------------------------------------------------------------------
/vendor/github.com/klauspost/compress/snappy/AUTHORS:
--------------------------------------------------------------------------------
1 | # This is the official list of Snappy-Go authors for copyright purposes.
2 | # This file is distinct from the CONTRIBUTORS files.
3 | # See the latter for an explanation.
4 |
5 | # Names should be added to this file as
6 | # Name or Organization
7 | # The email address is not required for organizations.
8 |
9 | # Please keep the list sorted.
10 |
11 | Damian Gryski
12 | Google Inc.
13 | Jan Mercl <0xjnml@gmail.com>
14 | Rodolfo Carvalho
15 | Sebastien Binet
16 |
--------------------------------------------------------------------------------
/vendor/github.com/klauspost/compress/snappy/decode_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Snappy-Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build !appengine
6 | // +build gc
7 | // +build !noasm
8 |
9 | package snappy
10 |
11 | // decode has the same semantics as in decode_other.go.
12 | //
13 | //go:noescape
14 | func decode(dst, src []byte) int
15 |
--------------------------------------------------------------------------------
/vendor/github.com/klauspost/compress/snappy/encode_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Snappy-Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build !appengine
6 | // +build gc
7 | // +build !noasm
8 |
9 | package snappy
10 |
11 | // emitLiteral has the same semantics as in encode_other.go.
12 | //
13 | //go:noescape
14 | func emitLiteral(dst, lit []byte) int
15 |
16 | // emitCopy has the same semantics as in encode_other.go.
17 | //
18 | //go:noescape
19 | func emitCopy(dst []byte, offset, length int) int
20 |
21 | // extendMatch has the same semantics as in encode_other.go.
22 | //
23 | //go:noescape
24 | func extendMatch(src []byte, i, j int) int
25 |
26 | // encodeBlock has the same semantics as in encode_other.go.
27 | //
28 | //go:noescape
29 | func encodeBlock(dst, src []byte) (d int)
30 |
--------------------------------------------------------------------------------
/vendor/github.com/klauspost/compress/snappy/runbench.cmd:
--------------------------------------------------------------------------------
1 | del old.txt
2 | go test -bench=. >>old.txt && go test -bench=. >>old.txt && go test -bench=. >>old.txt && benchstat -delta-test=ttest old.txt new.txt
3 |
--------------------------------------------------------------------------------
/vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2016 Caleb Spare
2 |
3 | MIT License
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining
6 | a copy of this software and associated documentation files (the
7 | "Software"), to deal in the Software without restriction, including
8 | without limitation the rights to use, copy, modify, merge, publish,
9 | distribute, sublicense, and/or sell copies of the Software, and to
10 | permit persons to whom the Software is furnished to do so, subject to
11 | the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be
14 | included in all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.go:
--------------------------------------------------------------------------------
1 | // +build !appengine
2 | // +build gc
3 | // +build !purego
4 |
5 | package xxhash
6 |
7 | // Sum64 computes the 64-bit xxHash digest of b.
8 | //
9 | //go:noescape
10 | func Sum64(b []byte) uint64
11 |
12 | //go:noescape
13 | func writeBlocks(*Digest, []byte) int
14 |
--------------------------------------------------------------------------------
/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_safe.go:
--------------------------------------------------------------------------------
1 | package xxhash
2 |
3 | // Sum64String computes the 64-bit xxHash digest of s.
4 | func Sum64String(s string) uint64 {
5 | return Sum64([]byte(s))
6 | }
7 |
8 | // WriteString adds more data to d. It always returns len(s), nil.
9 | func (d *Digest) WriteString(s string) (n int, err error) {
10 | return d.Write([]byte(s))
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/github.com/klauspost/pgzip/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files, Static and Dynamic libs (Shared Objects)
2 | *.o
3 | *.a
4 | *.so
5 |
6 | # Folders
7 | _obj
8 | _test
9 |
10 | # Architecture specific extensions/prefixes
11 | *.[568vq]
12 | [568vq].out
13 |
14 | *.cgo1.go
15 | *.cgo2.c
16 | _cgo_defun.c
17 | _cgo_gotypes.go
18 | _cgo_export.*
19 |
20 | _testmain.go
21 |
22 | *.exe
23 | *.test
24 | *.prof
25 |
--------------------------------------------------------------------------------
/vendor/github.com/klauspost/pgzip/.travis.yml:
--------------------------------------------------------------------------------
1 |
2 | arch:
3 | - amd64
4 | - ppc64le
5 | language: go
6 |
7 | os:
8 | - linux
9 | - osx
10 |
11 | go:
12 | - 1.13.x
13 | - 1.14.x
14 | - 1.15.x
15 | - master
16 |
17 | env:
18 | - GO111MODULE=off
19 |
20 | script:
21 | - diff <(gofmt -d .) <(printf "")
22 | - go test -v -cpu=1,2,4 .
23 | - go test -v -cpu=2 -race -short .
24 |
25 | matrix:
26 | allow_failures:
27 | - go: 'master'
28 | fast_finish: true
29 |
--------------------------------------------------------------------------------
/vendor/github.com/klauspost/pgzip/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Klaus Post
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-colorable/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Yasuhiro Matsumoto
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-colorable/colorable_appengine.go:
--------------------------------------------------------------------------------
1 | //go:build appengine
2 | // +build appengine
3 |
4 | package colorable
5 |
6 | import (
7 | "io"
8 | "os"
9 |
10 | _ "github.com/mattn/go-isatty"
11 | )
12 |
13 | // NewColorable returns new instance of Writer which handles escape sequence.
14 | func NewColorable(file *os.File) io.Writer {
15 | if file == nil {
16 | panic("nil passed instead of *os.File to NewColorable()")
17 | }
18 |
19 | return file
20 | }
21 |
22 | // NewColorableStdout returns new instance of Writer which handles escape sequence for stdout.
23 | func NewColorableStdout() io.Writer {
24 | return os.Stdout
25 | }
26 |
27 | // NewColorableStderr returns new instance of Writer which handles escape sequence for stderr.
28 | func NewColorableStderr() io.Writer {
29 | return os.Stderr
30 | }
31 |
32 | // EnableColorsStdout enable colors if possible.
33 | func EnableColorsStdout(enabled *bool) func() {
34 | if enabled != nil {
35 | *enabled = true
36 | }
37 | return func() {}
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-colorable/colorable_others.go:
--------------------------------------------------------------------------------
1 | //go:build !windows && !appengine
2 | // +build !windows,!appengine
3 |
4 | package colorable
5 |
6 | import (
7 | "io"
8 | "os"
9 |
10 | _ "github.com/mattn/go-isatty"
11 | )
12 |
13 | // NewColorable returns new instance of Writer which handles escape sequence.
14 | func NewColorable(file *os.File) io.Writer {
15 | if file == nil {
16 | panic("nil passed instead of *os.File to NewColorable()")
17 | }
18 |
19 | return file
20 | }
21 |
22 | // NewColorableStdout returns new instance of Writer which handles escape sequence for stdout.
23 | func NewColorableStdout() io.Writer {
24 | return os.Stdout
25 | }
26 |
27 | // NewColorableStderr returns new instance of Writer which handles escape sequence for stderr.
28 | func NewColorableStderr() io.Writer {
29 | return os.Stderr
30 | }
31 |
32 | // EnableColorsStdout enable colors if possible.
33 | func EnableColorsStdout(enabled *bool) func() {
34 | if enabled != nil {
35 | *enabled = true
36 | }
37 | return func() {}
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-colorable/go.test.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e
4 | echo "" > coverage.txt
5 |
6 | for d in $(go list ./... | grep -v vendor); do
7 | go test -race -coverprofile=profile.out -covermode=atomic "$d"
8 | if [ -f profile.out ]; then
9 | cat profile.out >> coverage.txt
10 | rm profile.out
11 | fi
12 | done
13 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) Yasuhiro MATSUMOTO
2 |
3 | MIT License (Expat)
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/doc.go:
--------------------------------------------------------------------------------
1 | // Package isatty implements interface to isatty
2 | package isatty
3 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/go.test.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e
4 | echo "" > coverage.txt
5 |
6 | for d in $(go list ./... | grep -v vendor); do
7 | go test -race -coverprofile=profile.out -covermode=atomic "$d"
8 | if [ -f profile.out ]; then
9 | cat profile.out >> coverage.txt
10 | rm profile.out
11 | fi
12 | done
13 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/isatty_bsd.go:
--------------------------------------------------------------------------------
1 | //go:build (darwin || freebsd || openbsd || netbsd || dragonfly || hurd) && !appengine && !tinygo
2 | // +build darwin freebsd openbsd netbsd dragonfly hurd
3 | // +build !appengine
4 | // +build !tinygo
5 |
6 | package isatty
7 |
8 | import "golang.org/x/sys/unix"
9 |
10 | // IsTerminal return true if the file descriptor is terminal.
11 | func IsTerminal(fd uintptr) bool {
12 | _, err := unix.IoctlGetTermios(int(fd), unix.TIOCGETA)
13 | return err == nil
14 | }
15 |
16 | // IsCygwinTerminal return true if the file descriptor is a cygwin or msys2
17 | // terminal. This is also always false on this environment.
18 | func IsCygwinTerminal(fd uintptr) bool {
19 | return false
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/isatty_others.go:
--------------------------------------------------------------------------------
1 | //go:build (appengine || js || nacl || tinygo || wasm) && !windows
2 | // +build appengine js nacl tinygo wasm
3 | // +build !windows
4 |
5 | package isatty
6 |
7 | // IsTerminal returns true if the file descriptor is terminal which
8 | // is always false on js and appengine classic which is a sandboxed PaaS.
9 | func IsTerminal(fd uintptr) bool {
10 | return false
11 | }
12 |
13 | // IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2
14 | // terminal. This is also always false on this environment.
15 | func IsCygwinTerminal(fd uintptr) bool {
16 | return false
17 | }
18 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/isatty_plan9.go:
--------------------------------------------------------------------------------
1 | //go:build plan9
2 | // +build plan9
3 |
4 | package isatty
5 |
6 | import (
7 | "syscall"
8 | )
9 |
10 | // IsTerminal returns true if the given file descriptor is a terminal.
11 | func IsTerminal(fd uintptr) bool {
12 | path, err := syscall.Fd2path(int(fd))
13 | if err != nil {
14 | return false
15 | }
16 | return path == "/dev/cons" || path == "/mnt/term/dev/cons"
17 | }
18 |
19 | // IsCygwinTerminal return true if the file descriptor is a cygwin or msys2
20 | // terminal. This is also always false on this environment.
21 | func IsCygwinTerminal(fd uintptr) bool {
22 | return false
23 | }
24 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/isatty_solaris.go:
--------------------------------------------------------------------------------
1 | //go:build solaris && !appengine
2 | // +build solaris,!appengine
3 |
4 | package isatty
5 |
6 | import (
7 | "golang.org/x/sys/unix"
8 | )
9 |
10 | // IsTerminal returns true if the given file descriptor is a terminal.
11 | // see: https://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libc/port/gen/isatty.c
12 | func IsTerminal(fd uintptr) bool {
13 | _, err := unix.IoctlGetTermio(int(fd), unix.TCGETA)
14 | return err == nil
15 | }
16 |
17 | // IsCygwinTerminal return true if the file descriptor is a cygwin or msys2
18 | // terminal. This is also always false on this environment.
19 | func IsCygwinTerminal(fd uintptr) bool {
20 | return false
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/isatty_tcgets.go:
--------------------------------------------------------------------------------
1 | //go:build (linux || aix || zos) && !appengine && !tinygo
2 | // +build linux aix zos
3 | // +build !appengine
4 | // +build !tinygo
5 |
6 | package isatty
7 |
8 | import "golang.org/x/sys/unix"
9 |
10 | // IsTerminal return true if the file descriptor is terminal.
11 | func IsTerminal(fd uintptr) bool {
12 | _, err := unix.IoctlGetTermios(int(fd), unix.TCGETS)
13 | return err == nil
14 | }
15 |
16 | // IsCygwinTerminal return true if the file descriptor is a cygwin or msys2
17 | // terminal. This is also always false on this environment.
18 | func IsCygwinTerminal(fd uintptr) bool {
19 | return false
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/github.com/moby/sys/user/idtools_windows.go:
--------------------------------------------------------------------------------
1 | package user
2 |
3 | import (
4 | "os"
5 | )
6 |
7 | // This is currently a wrapper around [os.MkdirAll] since currently
8 | // permissions aren't set through this path, the identity isn't utilized.
9 | // Ownership is handled elsewhere, but in the future could be support here
10 | // too.
11 | func mkdirAs(path string, _ os.FileMode, _, _ int, _, _ bool) error {
12 | return os.MkdirAll(path, 0)
13 | }
14 |
--------------------------------------------------------------------------------
/vendor/github.com/moby/sys/user/user_fuzzer.go:
--------------------------------------------------------------------------------
1 | //go:build gofuzz
2 | // +build gofuzz
3 |
4 | package user
5 |
6 | import (
7 | "io"
8 | "strings"
9 | )
10 |
11 | func IsDivisbleBy(n int, divisibleby int) bool {
12 | return (n % divisibleby) == 0
13 | }
14 |
15 | func FuzzUser(data []byte) int {
16 | if len(data) == 0 {
17 | return -1
18 | }
19 | if !IsDivisbleBy(len(data), 5) {
20 | return -1
21 | }
22 |
23 | var divided [][]byte
24 |
25 | chunkSize := len(data) / 5
26 |
27 | for i := 0; i < len(data); i += chunkSize {
28 | end := i + chunkSize
29 |
30 | divided = append(divided, data[i:end])
31 | }
32 |
33 | _, _ = ParsePasswdFilter(strings.NewReader(string(divided[0])), nil)
34 |
35 | var passwd, group io.Reader
36 |
37 | group = strings.NewReader(string(divided[1]))
38 | _, _ = GetAdditionalGroups([]string{string(divided[2])}, group)
39 |
40 | passwd = strings.NewReader(string(divided[3]))
41 | _, _ = GetExecUser(string(divided[4]), nil, passwd, group)
42 | return 1
43 | }
44 |
--------------------------------------------------------------------------------
/vendor/github.com/moby/sys/userns/userns.go:
--------------------------------------------------------------------------------
1 | // Package userns provides utilities to detect whether we are currently running
2 | // in a Linux user namespace.
3 | //
4 | // This code was migrated from [libcontainer/runc], which based its implementation
5 | // on code from [lcx/incus].
6 | //
7 | // [libcontainer/runc]: https://github.com/opencontainers/runc/blob/3778ae603c706494fd1e2c2faf83b406e38d687d/libcontainer/userns/userns_linux.go#L12-L49
8 | // [lcx/incus]: https://github.com/lxc/incus/blob/e45085dd42f826b3c8c3228e9733c0b6f998eafe/shared/util.go#L678-L700
9 | package userns
10 |
11 | // RunningInUserNS detects whether we are currently running in a Linux
12 | // user namespace and memoizes the result. It returns false on non-Linux
13 | // platforms.
14 | func RunningInUserNS() bool {
15 | return inUserNS()
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/github.com/moby/sys/userns/userns_linux_fuzzer.go:
--------------------------------------------------------------------------------
1 | //go:build linux && gofuzz
2 |
3 | package userns
4 |
5 | func FuzzUIDMap(uidmap []byte) int {
6 | _ = uidMapInUserNS(string(uidmap))
7 | return 1
8 | }
9 |
--------------------------------------------------------------------------------
/vendor/github.com/moby/sys/userns/userns_unsupported.go:
--------------------------------------------------------------------------------
1 | //go:build !linux
2 |
3 | package userns
4 |
5 | // inUserNS is a stub for non-Linux systems. Always returns false.
6 | func inUserNS() bool { return false }
7 |
--------------------------------------------------------------------------------
/vendor/github.com/mohae/deepcopy/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files, Static and Dynamic libs (Shared Objects)
2 | *.o
3 | *.a
4 | *.so
5 |
6 | # Folders
7 | _obj
8 | _test
9 |
10 | # Architecture specific extensions/prefixes
11 | *.[568vq]
12 | [568vq].out
13 |
14 | *.cgo1.go
15 | *.cgo2.c
16 | _cgo_defun.c
17 | _cgo_gotypes.go
18 | _cgo_export.*
19 |
20 | _testmain.go
21 |
22 | *.exe
23 | *.test
24 | *~
25 | *.out
26 | *.log
27 |
--------------------------------------------------------------------------------
/vendor/github.com/mohae/deepcopy/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 |
3 | go:
4 | - tip
5 |
6 | matrix:
7 | allow_failures:
8 | - go: tip
9 |
10 | script:
11 | - go test ./...
12 |
--------------------------------------------------------------------------------
/vendor/github.com/mohae/deepcopy/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Joel
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/github.com/mohae/deepcopy/README.md:
--------------------------------------------------------------------------------
1 | deepCopy
2 | ========
3 | [](https://godoc.org/github.com/mohae/deepcopy)[](https://travis-ci.org/mohae/deepcopy)
4 |
5 | DeepCopy makes deep copies of things: unexported field values are not copied.
6 |
7 | ## Usage
8 | cpy := deepcopy.Copy(orig)
9 |
--------------------------------------------------------------------------------
/vendor/github.com/opencontainers/go-digest/.mailmap:
--------------------------------------------------------------------------------
1 | Aaron Lehmann
2 | Derek McGowan
3 | Stephen J Day
4 | Haibing Zhou
5 |
--------------------------------------------------------------------------------
/vendor/github.com/opencontainers/go-digest/.pullapprove.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 |
3 | requirements:
4 | signed_off_by:
5 | required: true
6 |
7 | always_pending:
8 | title_regex: '^WIP'
9 | explanation: 'Work in progress...'
10 |
11 | group_defaults:
12 | required: 2
13 | approve_by_comment:
14 | enabled: true
15 | approve_regex: '^LGTM'
16 | reject_regex: '^Rejected'
17 | reset_on_push:
18 | enabled: true
19 | author_approval:
20 | ignored: true
21 | conditions:
22 | branches:
23 | - master
24 |
25 | groups:
26 | go-digest:
27 | teams:
28 | - go-digest-maintainers
29 |
--------------------------------------------------------------------------------
/vendor/github.com/opencontainers/go-digest/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 | go:
3 | - 1.12.x
4 | - 1.13.x
5 | - master
6 |
--------------------------------------------------------------------------------
/vendor/github.com/opencontainers/go-digest/MAINTAINERS:
--------------------------------------------------------------------------------
1 | Derek McGowan (@dmcgowan)
2 | Stephen Day (@stevvooe)
3 | Vincent Batts (@vbatts)
4 | Akihiro Suda (@AkihiroSuda)
5 | Sebastiaan van Stijn (@thaJeztah)
6 |
--------------------------------------------------------------------------------
/vendor/github.com/opencontainers/image-spec/specs-go/v1/layout.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Linux Foundation
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package v1
16 |
17 | const (
18 | // ImageLayoutFile is the file name of oci image layout file
19 | ImageLayoutFile = "oci-layout"
20 | // ImageLayoutVersion is the version of ImageLayout
21 | ImageLayoutVersion = "1.0.0"
22 | )
23 |
24 | // ImageLayout is the structure in the "oci-layout" file, found in the root
25 | // of an OCI Image-layout directory.
26 | type ImageLayout struct {
27 | Version string `json:"imageLayoutVersion"`
28 | }
29 |
--------------------------------------------------------------------------------
/vendor/github.com/opencontainers/image-spec/specs-go/versioned.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Linux Foundation
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package specs
16 |
17 | // Versioned provides a struct with the manifest schemaVersion and mediaType.
18 | // Incoming content with unknown schema version can be decoded against this
19 | // struct to check the version.
20 | type Versioned struct {
21 | // SchemaVersion is the image manifest schema that this image follows
22 | SchemaVersion int `json:"schemaVersion"`
23 | }
24 |
--------------------------------------------------------------------------------
/vendor/github.com/opencontainers/runtime-spec/specs-go/version.go:
--------------------------------------------------------------------------------
1 | package specs
2 |
3 | import "fmt"
4 |
5 | const (
6 | // VersionMajor is for an API incompatible changes
7 | VersionMajor = 1
8 | // VersionMinor is for functionality in a backwards-compatible manner
9 | VersionMinor = 0
10 | // VersionPatch is for backwards-compatible bug fixes
11 | VersionPatch = 2
12 |
13 | // VersionDev indicates development branch. Releases will be empty string.
14 | VersionDev = "-dev"
15 | )
16 |
17 | // Version is the specification version that the package types support.
18 | var Version = fmt.Sprintf("%d.%d.%d%s", VersionMajor, VersionMinor, VersionPatch, VersionDev)
19 |
--------------------------------------------------------------------------------
/vendor/github.com/pkg/errors/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files, Static and Dynamic libs (Shared Objects)
2 | *.o
3 | *.a
4 | *.so
5 |
6 | # Folders
7 | _obj
8 | _test
9 |
10 | # Architecture specific extensions/prefixes
11 | *.[568vq]
12 | [568vq].out
13 |
14 | *.cgo1.go
15 | *.cgo2.c
16 | _cgo_defun.c
17 | _cgo_gotypes.go
18 | _cgo_export.*
19 |
20 | _testmain.go
21 |
22 | *.exe
23 | *.test
24 | *.prof
25 |
--------------------------------------------------------------------------------
/vendor/github.com/pkg/errors/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 | go_import_path: github.com/pkg/errors
3 | go:
4 | - 1.11.x
5 | - 1.12.x
6 | - 1.13.x
7 | - tip
8 |
9 | script:
10 | - make check
11 |
--------------------------------------------------------------------------------
/vendor/github.com/pkg/errors/Makefile:
--------------------------------------------------------------------------------
1 | PKGS := github.com/pkg/errors
2 | SRCDIRS := $(shell go list -f '{{.Dir}}' $(PKGS))
3 | GO := go
4 |
5 | check: test vet gofmt misspell unconvert staticcheck ineffassign unparam
6 |
7 | test:
8 | $(GO) test $(PKGS)
9 |
10 | vet: | test
11 | $(GO) vet $(PKGS)
12 |
13 | staticcheck:
14 | $(GO) get honnef.co/go/tools/cmd/staticcheck
15 | staticcheck -checks all $(PKGS)
16 |
17 | misspell:
18 | $(GO) get github.com/client9/misspell/cmd/misspell
19 | misspell \
20 | -locale GB \
21 | -error \
22 | *.md *.go
23 |
24 | unconvert:
25 | $(GO) get github.com/mdempsky/unconvert
26 | unconvert -v $(PKGS)
27 |
28 | ineffassign:
29 | $(GO) get github.com/gordonklaus/ineffassign
30 | find $(SRCDIRS) -name '*.go' | xargs ineffassign
31 |
32 | pedantic: check errcheck
33 |
34 | unparam:
35 | $(GO) get mvdan.cc/unparam
36 | unparam ./...
37 |
38 | errcheck:
39 | $(GO) get github.com/kisielk/errcheck
40 | errcheck $(PKGS)
41 |
42 | gofmt:
43 | @echo Checking code is gofmted
44 | @test -z "$(shell gofmt -s -l -d -e $(SRCDIRS) | tee /dev/stderr)"
45 |
--------------------------------------------------------------------------------
/vendor/github.com/pkg/errors/appveyor.yml:
--------------------------------------------------------------------------------
1 | version: build-{build}.{branch}
2 |
3 | clone_folder: C:\gopath\src\github.com\pkg\errors
4 | shallow_clone: true # for startup speed
5 |
6 | environment:
7 | GOPATH: C:\gopath
8 |
9 | platform:
10 | - x64
11 |
12 | # http://www.appveyor.com/docs/installed-software
13 | install:
14 | # some helpful output for debugging builds
15 | - go version
16 | - go env
17 | # pre-installed MinGW at C:\MinGW is 32bit only
18 | # but MSYS2 at C:\msys64 has mingw64
19 | - set PATH=C:\msys64\mingw64\bin;%PATH%
20 | - gcc --version
21 | - g++ --version
22 |
23 | build_script:
24 | - go install -v ./...
25 |
26 | test_script:
27 | - set PATH=C:\gopath\bin;%PATH%
28 | - go test -v ./...
29 |
30 | #artifacts:
31 | # - path: '%GOPATH%\bin\*.exe'
32 | deploy: off
33 |
--------------------------------------------------------------------------------
/vendor/github.com/russross/blackfriday/v2/.gitignore:
--------------------------------------------------------------------------------
1 | *.out
2 | *.swp
3 | *.8
4 | *.6
5 | _obj
6 | _test*
7 | markdown
8 | tags
9 |
--------------------------------------------------------------------------------
/vendor/github.com/russross/blackfriday/v2/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: go
3 | go:
4 | - "1.10.x"
5 | - "1.11.x"
6 | - tip
7 | matrix:
8 | fast_finish: true
9 | allow_failures:
10 | - go: tip
11 | install:
12 | - # Do nothing. This is needed to prevent default install action "go get -t -v ./..." from happening here (we want it to happen inside script step).
13 | script:
14 | - go get -t -v ./...
15 | - diff -u <(echo -n) <(gofmt -d -s .)
16 | - go tool vet .
17 | - go test -v ./...
18 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/.gitignore:
--------------------------------------------------------------------------------
1 | logrus
2 | vendor
3 |
4 | .idea/
5 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/.golangci.yml:
--------------------------------------------------------------------------------
1 | run:
2 | # do not run on test files yet
3 | tests: false
4 |
5 | # all available settings of specific linters
6 | linters-settings:
7 | errcheck:
8 | # report about not checking of errors in type assetions: `a := b.(MyStruct)`;
9 | # default is false: such cases aren't reported by default.
10 | check-type-assertions: false
11 |
12 | # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`;
13 | # default is false: such cases aren't reported by default.
14 | check-blank: false
15 |
16 | lll:
17 | line-length: 100
18 | tab-width: 4
19 |
20 | prealloc:
21 | simple: false
22 | range-loops: false
23 | for-loops: false
24 |
25 | whitespace:
26 | multi-if: false # Enforces newlines (or comments) after every multi-line if statement
27 | multi-func: false # Enforces newlines (or comments) after every multi-line function signature
28 |
29 | linters:
30 | enable:
31 | - megacheck
32 | - govet
33 | disable:
34 | - maligned
35 | - prealloc
36 | disable-all: false
37 | presets:
38 | - bugs
39 | - unused
40 | fast: false
41 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 | go_import_path: github.com/sirupsen/logrus
3 | git:
4 | depth: 1
5 | env:
6 | - GO111MODULE=on
7 | go: 1.15.x
8 | os: linux
9 | install:
10 | - ./travis/install.sh
11 | script:
12 | - cd ci
13 | - go run mage.go -v -w ../ crossBuild
14 | - go run mage.go -v -w ../ lint
15 | - go run mage.go -v -w ../ test
16 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Simon Eskildsen
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/appveyor.yml:
--------------------------------------------------------------------------------
1 | version: "{build}"
2 | platform: x64
3 | clone_folder: c:\gopath\src\github.com\sirupsen\logrus
4 | environment:
5 | GOPATH: c:\gopath
6 | branches:
7 | only:
8 | - master
9 | install:
10 | - set PATH=%GOPATH%\bin;c:\go\bin;%PATH%
11 | - go version
12 | build_script:
13 | - go get -t
14 | - go test
15 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/buffer_pool.go:
--------------------------------------------------------------------------------
1 | package logrus
2 |
3 | import (
4 | "bytes"
5 | "sync"
6 | )
7 |
8 | var (
9 | bufferPool BufferPool
10 | )
11 |
12 | type BufferPool interface {
13 | Put(*bytes.Buffer)
14 | Get() *bytes.Buffer
15 | }
16 |
17 | type defaultPool struct {
18 | pool *sync.Pool
19 | }
20 |
21 | func (p *defaultPool) Put(buf *bytes.Buffer) {
22 | p.pool.Put(buf)
23 | }
24 |
25 | func (p *defaultPool) Get() *bytes.Buffer {
26 | return p.pool.Get().(*bytes.Buffer)
27 | }
28 |
29 | // SetBufferPool allows to replace the default logrus buffer pool
30 | // to better meets the specific needs of an application.
31 | func SetBufferPool(bp BufferPool) {
32 | bufferPool = bp
33 | }
34 |
35 | func init() {
36 | SetBufferPool(&defaultPool{
37 | pool: &sync.Pool{
38 | New: func() interface{} {
39 | return new(bytes.Buffer)
40 | },
41 | },
42 | })
43 | }
44 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/doc.go:
--------------------------------------------------------------------------------
1 | /*
2 | Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
3 |
4 |
5 | The simplest way to use Logrus is simply the package-level exported logger:
6 |
7 | package main
8 |
9 | import (
10 | log "github.com/sirupsen/logrus"
11 | )
12 |
13 | func main() {
14 | log.WithFields(log.Fields{
15 | "animal": "walrus",
16 | "number": 1,
17 | "size": 10,
18 | }).Info("A walrus appears")
19 | }
20 |
21 | Output:
22 | time="2015-09-07T08:48:33Z" level=info msg="A walrus appears" animal=walrus number=1 size=10
23 |
24 | For a full guide visit https://github.com/sirupsen/logrus
25 | */
26 | package logrus
27 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_appengine.go:
--------------------------------------------------------------------------------
1 | // +build appengine
2 |
3 | package logrus
4 |
5 | import (
6 | "io"
7 | )
8 |
9 | func checkIfTerminal(w io.Writer) bool {
10 | return true
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_bsd.go:
--------------------------------------------------------------------------------
1 | // +build darwin dragonfly freebsd netbsd openbsd
2 | // +build !js
3 |
4 | package logrus
5 |
6 | import "golang.org/x/sys/unix"
7 |
8 | const ioctlReadTermios = unix.TIOCGETA
9 |
10 | func isTerminal(fd int) bool {
11 | _, err := unix.IoctlGetTermios(fd, ioctlReadTermios)
12 | return err == nil
13 | }
14 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_js.go:
--------------------------------------------------------------------------------
1 | // +build js
2 |
3 | package logrus
4 |
5 | func isTerminal(fd int) bool {
6 | return false
7 | }
8 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_no_terminal.go:
--------------------------------------------------------------------------------
1 | // +build js nacl plan9
2 |
3 | package logrus
4 |
5 | import (
6 | "io"
7 | )
8 |
9 | func checkIfTerminal(w io.Writer) bool {
10 | return false
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go:
--------------------------------------------------------------------------------
1 | // +build !appengine,!js,!windows,!nacl,!plan9
2 |
3 | package logrus
4 |
5 | import (
6 | "io"
7 | "os"
8 | )
9 |
10 | func checkIfTerminal(w io.Writer) bool {
11 | switch v := w.(type) {
12 | case *os.File:
13 | return isTerminal(int(v.Fd()))
14 | default:
15 | return false
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_solaris.go:
--------------------------------------------------------------------------------
1 | package logrus
2 |
3 | import (
4 | "golang.org/x/sys/unix"
5 | )
6 |
7 | // IsTerminal returns true if the given file descriptor is a terminal.
8 | func isTerminal(fd int) bool {
9 | _, err := unix.IoctlGetTermio(fd, unix.TCGETA)
10 | return err == nil
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_unix.go:
--------------------------------------------------------------------------------
1 | // +build linux aix zos
2 | // +build !js
3 |
4 | package logrus
5 |
6 | import "golang.org/x/sys/unix"
7 |
8 | const ioctlReadTermios = unix.TCGETS
9 |
10 | func isTerminal(fd int) bool {
11 | _, err := unix.IoctlGetTermios(fd, ioctlReadTermios)
12 | return err == nil
13 | }
14 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_windows.go:
--------------------------------------------------------------------------------
1 | // +build !appengine,!js,windows
2 |
3 | package logrus
4 |
5 | import (
6 | "io"
7 | "os"
8 |
9 | "golang.org/x/sys/windows"
10 | )
11 |
12 | func checkIfTerminal(w io.Writer) bool {
13 | switch v := w.(type) {
14 | case *os.File:
15 | handle := windows.Handle(v.Fd())
16 | var mode uint32
17 | if err := windows.GetConsoleMode(handle, &mode); err != nil {
18 | return false
19 | }
20 | mode |= windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING
21 | if err := windows.SetConsoleMode(handle, mode); err != nil {
22 | return false
23 | }
24 | return true
25 | }
26 | return false
27 | }
28 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl:
--------------------------------------------------------------------------------
1 | {{.CommentFormat}}
2 | func {{.DocInfo.Name}}f(t TestingT, {{.ParamsFormat}}) bool {
3 | if h, ok := t.(tHelper); ok { h.Helper() }
4 | return {{.DocInfo.Name}}(t, {{.ForwardedParamsFormat}})
5 | }
6 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl:
--------------------------------------------------------------------------------
1 | {{.CommentWithoutT "a"}}
2 | func (a *Assertions) {{.DocInfo.Name}}({{.Params}}) bool {
3 | if h, ok := a.t.(tHelper); ok { h.Helper() }
4 | return {{.DocInfo.Name}}(a.t, {{.ForwardedParams}})
5 | }
6 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/assert/errors.go:
--------------------------------------------------------------------------------
1 | package assert
2 |
3 | import (
4 | "errors"
5 | )
6 |
7 | // AnError is an error instance useful for testing. If the code does not care
8 | // about error specifics, and only needs to return the error for example, this
9 | // error should be used to make the test code more readable.
10 | var AnError = errors.New("assert.AnError general error for testing")
11 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/assert/forward_assertions.go:
--------------------------------------------------------------------------------
1 | package assert
2 |
3 | // Assertions provides assertion methods around the
4 | // TestingT interface.
5 | type Assertions struct {
6 | t TestingT
7 | }
8 |
9 | // New makes a new Assertions object for the specified TestingT.
10 | func New(t TestingT) *Assertions {
11 | return &Assertions{
12 | t: t,
13 | }
14 | }
15 |
16 | //go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_forward.go.tmpl -include-format-funcs"
17 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go:
--------------------------------------------------------------------------------
1 | //go:build testify_yaml_custom && !testify_yaml_fail && !testify_yaml_default
2 | // +build testify_yaml_custom,!testify_yaml_fail,!testify_yaml_default
3 |
4 | // Package yaml is an implementation of YAML functions that calls a pluggable implementation.
5 | //
6 | // This implementation is selected with the testify_yaml_custom build tag.
7 | //
8 | // go test -tags testify_yaml_custom
9 | //
10 | // This implementation can be used at build time to replace the default implementation
11 | // to avoid linking with [gopkg.in/yaml.v3].
12 | //
13 | // In your test package:
14 | //
15 | // import assertYaml "github.com/stretchr/testify/assert/yaml"
16 | //
17 | // func init() {
18 | // assertYaml.Unmarshal = func (in []byte, out interface{}) error {
19 | // // ...
20 | // return nil
21 | // }
22 | // }
23 | package yaml
24 |
25 | var Unmarshal func(in []byte, out interface{}) error
26 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go:
--------------------------------------------------------------------------------
1 | //go:build testify_yaml_fail && !testify_yaml_custom && !testify_yaml_default
2 | // +build testify_yaml_fail,!testify_yaml_custom,!testify_yaml_default
3 |
4 | // Package yaml is an implementation of YAML functions that always fail.
5 | //
6 | // This implementation can be used at build time to replace the default implementation
7 | // to avoid linking with [gopkg.in/yaml.v3]:
8 | //
9 | // go test -tags testify_yaml_fail
10 | package yaml
11 |
12 | import "errors"
13 |
14 | var errNotImplemented = errors.New("YAML functions are not available (see https://pkg.go.dev/github.com/stretchr/testify/assert/yaml)")
15 |
16 | func Unmarshal([]byte, interface{}) error {
17 | return errNotImplemented
18 | }
19 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/require/doc.go:
--------------------------------------------------------------------------------
1 | // Package require implements the same assertions as the `assert` package but
2 | // stops test execution when a test fails.
3 | //
4 | // # Example Usage
5 | //
6 | // The following is a complete example using require in a standard test function:
7 | //
8 | // import (
9 | // "testing"
10 | // "github.com/stretchr/testify/require"
11 | // )
12 | //
13 | // func TestSomething(t *testing.T) {
14 | //
15 | // var a string = "Hello"
16 | // var b string = "Hello"
17 | //
18 | // require.Equal(t, a, b, "The two words should be the same.")
19 | //
20 | // }
21 | //
22 | // # Assertions
23 | //
24 | // The `require` package have same global functions as in the `assert` package,
25 | // but instead of returning a boolean result they call `t.FailNow()`.
26 | //
27 | // Every assertion function also takes an optional string message as the final argument,
28 | // allowing custom error messages to be appended to the message the assertion method outputs.
29 | package require
30 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/require/forward_requirements.go:
--------------------------------------------------------------------------------
1 | package require
2 |
3 | // Assertions provides assertion methods around the
4 | // TestingT interface.
5 | type Assertions struct {
6 | t TestingT
7 | }
8 |
9 | // New makes a new Assertions object for the specified TestingT.
10 | func New(t TestingT) *Assertions {
11 | return &Assertions{
12 | t: t,
13 | }
14 | }
15 |
16 | //go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=require -template=require_forward.go.tmpl -include-format-funcs"
17 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/require/require.go.tmpl:
--------------------------------------------------------------------------------
1 | {{ replace .Comment "assert." "require."}}
2 | func {{.DocInfo.Name}}(t TestingT, {{.Params}}) {
3 | if h, ok := t.(tHelper); ok { h.Helper() }
4 | if assert.{{.DocInfo.Name}}(t, {{.ForwardedParams}}) { return }
5 | t.FailNow()
6 | }
7 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/require/require_forward.go.tmpl:
--------------------------------------------------------------------------------
1 | {{.CommentWithoutT "a"}}
2 | func (a *Assertions) {{.DocInfo.Name}}({{.Params}}) {
3 | if h, ok := a.t.(tHelper); ok { h.Helper() }
4 | {{.DocInfo.Name}}(a.t, {{.ForwardedParams}})
5 | }
6 |
--------------------------------------------------------------------------------
/vendor/github.com/urfave/cli/.flake8:
--------------------------------------------------------------------------------
1 | [flake8]
2 | max-line-length = 120
3 |
--------------------------------------------------------------------------------
/vendor/github.com/urfave/cli/.gitignore:
--------------------------------------------------------------------------------
1 | *.coverprofile
2 | coverage.txt
3 | node_modules/
4 | vendor
5 | .idea
6 | /.local/
7 | /internal/
8 | /site/
9 | package.json
10 | package-lock.json
11 |
--------------------------------------------------------------------------------
/vendor/github.com/urfave/cli/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Jeremy Saenz & Contributors
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/github.com/urfave/cli/cli.go:
--------------------------------------------------------------------------------
1 | // Package cli provides a minimal framework for creating and organizing command line
2 | // Go applications. cli is designed to be easy to understand and write, the most simple
3 | // cli application can be written as follows:
4 | // func main() {
5 | // cli.NewApp().Run(os.Args)
6 | // }
7 | //
8 | // Of course this application does not do much, so let's make this an actual application:
9 | // func main() {
10 | // app := cli.NewApp()
11 | // app.Name = "greet"
12 | // app.Usage = "say a greeting"
13 | // app.Action = func(c *cli.Context) error {
14 | // println("Greetings")
15 | // return nil
16 | // }
17 | //
18 | // app.Run(os.Args)
19 | // }
20 | package cli
21 |
22 | //go:generate go run flag-gen/main.go flag-gen/assets_vfsdata.go
23 |
--------------------------------------------------------------------------------
/vendor/github.com/urfave/cli/sort.go:
--------------------------------------------------------------------------------
1 | package cli
2 |
3 | import "unicode"
4 |
5 | // lexicographicLess compares strings alphabetically considering case.
6 | func lexicographicLess(i, j string) bool {
7 | iRunes := []rune(i)
8 | jRunes := []rune(j)
9 |
10 | lenShared := len(iRunes)
11 | if lenShared > len(jRunes) {
12 | lenShared = len(jRunes)
13 | }
14 |
15 | for index := 0; index < lenShared; index++ {
16 | ir := iRunes[index]
17 | jr := jRunes[index]
18 |
19 | if lir, ljr := unicode.ToLower(ir), unicode.ToLower(jr); lir != ljr {
20 | return lir < ljr
21 | }
22 |
23 | if ir != jr {
24 | return ir < jr
25 | }
26 | }
27 |
28 | return i < j
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/.drone.yml:
--------------------------------------------------------------------------------
1 | kind: pipeline
2 | name: default
3 | steps:
4 | steps:
5 | - name: build
6 | image: golang
7 | commands:
8 | - git config --global url."https://".insteadOf git://
9 | - make install.tools
10 | - mkdir -p $GOPATH/src/github.com/vbatts && ln -sf $(pwd) $GOPATH/src/github.com/vbatts/go-mtree
11 | - make validation
12 | - make validation.tags
13 | - make build.arches
14 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/.gitignore:
--------------------------------------------------------------------------------
1 | *~
2 | .cli.test
3 | .lint
4 | .test
5 | .vet
6 | .staticcheck
7 | .gocyclo
8 | /gomtree
9 | main
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/check.go:
--------------------------------------------------------------------------------
1 | package mtree
2 |
3 | // Check a root directory path against the DirectoryHierarchy, regarding only
4 | // the available keywords from the list and each entry in the hierarchy.
5 | // If keywords is nil, the check all present in the DirectoryHierarchy
6 | //
7 | // This is equivalent to creating a new DirectoryHierarchy with Walk(root, nil,
8 | // keywords, fs) and then doing a Compare(dh, newDh, keywords).
9 | func Check(root string, dh *DirectoryHierarchy, keywords []Keyword, fs FsEval) ([]InodeDelta, error) {
10 | if keywords == nil {
11 | keywords = dh.UsedKeywords()
12 | }
13 |
14 | newDh, err := Walk(root, nil, keywords, fs)
15 | if err != nil {
16 | return nil, err
17 | }
18 |
19 | return Compare(dh, newDh, keywords)
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/cksum.go:
--------------------------------------------------------------------------------
1 | package mtree
2 |
3 | import (
4 | "bufio"
5 | "io"
6 | )
7 |
8 | const posixPolynomial uint32 = 0x04C11DB7
9 |
10 | // cksum is an implementation of the POSIX CRC algorithm
11 | func cksum(r io.Reader) (uint32, int, error) {
12 | in := bufio.NewReader(r)
13 | count := 0
14 | var sum uint32
15 | f := func(b byte) {
16 | for i := 7; i >= 0; i-- {
17 | msb := sum & (1 << 31)
18 | sum = sum << 1
19 | if msb != 0 {
20 | sum = sum ^ posixPolynomial
21 | }
22 | }
23 | sum ^= uint32(b)
24 | }
25 |
26 | for done := false; !done; {
27 | switch b, err := in.ReadByte(); err {
28 | case io.EOF:
29 | done = true
30 | case nil:
31 | f(b)
32 | count++
33 | default:
34 | return ^sum, count, err
35 | }
36 | }
37 | for m := count; ; {
38 | f(byte(m) & 0xff)
39 | m = m >> 8
40 | if m == 0 {
41 | break
42 | }
43 | }
44 | f(0)
45 | f(0)
46 | f(0)
47 | f(0)
48 | return ^sum, count, nil
49 | }
50 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/creator.go:
--------------------------------------------------------------------------------
1 | package mtree
2 |
3 | // dhCreator is used in when building a DirectoryHierarchy
4 | type dhCreator struct {
5 | DH *DirectoryHierarchy
6 | fs FsEval
7 | curSet *Entry
8 | curDir *Entry
9 | curEnt *Entry
10 | }
11 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/lchtimes_unix.go:
--------------------------------------------------------------------------------
1 | //go:build darwin || dragonfly || freebsd || openbsd || linux || netbsd || solaris
2 | // +build darwin dragonfly freebsd openbsd linux netbsd solaris
3 |
4 | package mtree
5 |
6 | import (
7 | "os"
8 | "time"
9 |
10 | "golang.org/x/sys/unix"
11 | )
12 |
13 | func lchtimes(name string, atime time.Time, mtime time.Time) error {
14 | utimes := []unix.Timespec{
15 | unix.NsecToTimespec(atime.UnixNano()),
16 | unix.NsecToTimespec(mtime.UnixNano()),
17 | }
18 | if e := unix.UtimesNanoAt(unix.AT_FDCWD, name, utimes, unix.AT_SYMLINK_NOFOLLOW); e != nil {
19 | return &os.PathError{Op: "chtimes", Path: name, Err: e}
20 | }
21 | return nil
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/lchtimes_unsupported.go:
--------------------------------------------------------------------------------
1 | //go:build windows
2 | // +build windows
3 |
4 | package mtree
5 |
6 | import (
7 | "time"
8 | )
9 |
10 | func lchtimes(name string, atime time.Time, mtime time.Time) error {
11 | return nil
12 | }
13 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/lookup.go:
--------------------------------------------------------------------------------
1 | package mtree
2 |
3 | import (
4 | "os/user"
5 | )
6 |
7 | var lookupGroupID = user.LookupGroupId
8 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/pkg/govis/README.md:
--------------------------------------------------------------------------------
1 | ## `govis` ##
2 |
3 | `govis` is a BSD-compatible `vis(3)` and `unvis(3)` encoding implementation
4 | that is unicode aware and written in Go. None of this code comes from the
5 | original BSD code, nor does it come from `go-mtree`'s port of said code.
6 | Because 80s BSD code is not very nice to read.
7 |
8 | ### License ###
9 |
10 | `govis` is licensed under the Apache 2.0 license.
11 |
12 | ```
13 | govis: unicode aware vis(3) encoding implementation
14 | Copyright (C) 2017 SUSE LLC.
15 |
16 | Licensed under the Apache License, Version 2.0 (the "License");
17 | you may not use this file except in compliance with the License.
18 | You may obtain a copy of the License at
19 |
20 | http://www.apache.org/licenses/LICENSE-2.0
21 |
22 | Unless required by applicable law or agreed to in writing, software
23 | distributed under the License is distributed on an "AS IS" BASIS,
24 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25 | See the License for the specific language governing permissions and
26 | limitations under the License.
27 | ```
28 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/releases.md:
--------------------------------------------------------------------------------
1 | # How to do releases:
2 |
3 | * Create a changeset with an update to `version.go`
4 | - this commit will be tagged
5 | - add another commit putting it back with '-dev' appended
6 | * gpg sign the commit with an incremented version, like 'vX.Y.Z'
7 | * Push the tag
8 | * Create a "release" from the tag on github
9 | - include the binaries from `make build.arches`
10 | - write about notable changes, and their contributors
11 | - PRs merged for the release
12 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/stat_unix.go:
--------------------------------------------------------------------------------
1 | //go:build !windows
2 | // +build !windows
3 |
4 | package mtree
5 |
6 | import (
7 | "os"
8 | "syscall"
9 | )
10 |
11 | func statIsUID(stat os.FileInfo, uid int) bool {
12 | statT := stat.Sys().(*syscall.Stat_t)
13 | return statT.Uid == uint32(uid)
14 | }
15 |
16 | func statIsGID(stat os.FileInfo, gid int) bool {
17 | statT := stat.Sys().(*syscall.Stat_t)
18 | return statT.Gid == uint32(gid)
19 | }
20 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/stat_windows.go:
--------------------------------------------------------------------------------
1 | //go:build windows
2 | // +build windows
3 |
4 | package mtree
5 |
6 | import "os"
7 |
8 | func statIsUID(stat os.FileInfo, uid int) bool {
9 | return false
10 | }
11 | func statIsGID(stat os.FileInfo, uid int) bool {
12 | return false
13 | }
14 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/updatefuncs_linux.go:
--------------------------------------------------------------------------------
1 | //go:build linux
2 | // +build linux
3 |
4 | package mtree
5 |
6 | import (
7 | "encoding/base64"
8 | "os"
9 |
10 | "github.com/vbatts/go-mtree/xattr"
11 | )
12 |
13 | func xattrUpdateKeywordFunc(path string, kv KeyVal) (os.FileInfo, error) {
14 | buf, err := base64.StdEncoding.DecodeString(kv.Value())
15 | if err != nil {
16 | return nil, err
17 | }
18 | if err := xattr.Set(path, kv.Keyword().Suffix(), buf); err != nil {
19 | return nil, err
20 | }
21 | return os.Lstat(path)
22 | }
23 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/updatefuncs_unsupported.go:
--------------------------------------------------------------------------------
1 | //go:build !linux
2 | // +build !linux
3 |
4 | package mtree
5 |
6 | import (
7 | "os"
8 | )
9 |
10 | func xattrUpdateKeywordFunc(path string, kv KeyVal) (os.FileInfo, error) {
11 | return os.Lstat(path)
12 | }
13 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/xattr/xattr.go:
--------------------------------------------------------------------------------
1 | //go:build linux
2 | // +build linux
3 |
4 | package xattr
5 |
6 | import (
7 | "strings"
8 | "syscall"
9 | )
10 |
11 | // Get returns the extended attributes (xattr) on file `path`, for the given `name`.
12 | func Get(path, name string) ([]byte, error) {
13 | dest := make([]byte, 1024)
14 | i, err := syscall.Getxattr(path, name, dest)
15 | if err != nil {
16 | return nil, err
17 | }
18 | return dest[:i], nil
19 | }
20 |
21 | // Set sets the extended attributes (xattr) on file `path`, for the given `name` and `value`
22 | func Set(path, name string, value []byte) error {
23 | return syscall.Setxattr(path, name, value, 0)
24 | }
25 |
26 | // List returns a list of all the extended attributes (xattr) for file `path`
27 | func List(path string) ([]string, error) {
28 | dest := make([]byte, 1024)
29 | i, err := syscall.Listxattr(path, dest)
30 | if err != nil {
31 | return nil, err
32 | }
33 |
34 | // If the returned list is empty, return nil instead of []string{""}
35 | str := string(dest[:i])
36 | if str == "" {
37 | return nil, nil
38 | }
39 |
40 | return strings.Split(strings.TrimRight(str, nilByte), nilByte), nil
41 | }
42 |
43 | const nilByte = "\x00"
44 |
--------------------------------------------------------------------------------
/vendor/github.com/vbatts/go-mtree/xattr/xattr_unsupported.go:
--------------------------------------------------------------------------------
1 | //go:build !linux
2 | // +build !linux
3 |
4 | package xattr
5 |
6 | // Get would return the extended attributes, but this unsupported feature
7 | // returns nil, nil
8 | func Get(path, name string) ([]byte, error) {
9 | return nil, nil
10 | }
11 |
12 | // Set would set the extended attributes, but this unsupported feature returns
13 | // nil
14 | func Set(path, name string, value []byte) error {
15 | return nil
16 | }
17 |
18 | // List would return the keys of extended attributes, but this unsupported
19 | // feature returns nil, nil
20 | func List(path string) ([]string, error) {
21 | return nil, nil
22 | }
23 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/.gitignore:
--------------------------------------------------------------------------------
1 | _obj/
2 | unix.test
3 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/aliases.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
6 |
7 | package unix
8 |
9 | import "syscall"
10 |
11 | type Signal = syscall.Signal
12 | type Errno = syscall.Errno
13 | type SysProcAttr = syscall.SysProcAttr
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System calls for ppc64, AIX are implemented in runtime/syscall_aix.go
11 | //
12 |
13 | TEXT ·syscall6(SB),NOSPLIT,$0-88
14 | JMP syscall·syscall6(SB)
15 |
16 | TEXT ·rawSyscall6(SB),NOSPLIT,$0-88
17 | JMP syscall·rawSyscall6(SB)
18 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_bsd_386.s:
--------------------------------------------------------------------------------
1 | // Copyright 2021 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (freebsd || netbsd || openbsd) && gc
6 |
7 | #include "textflag.h"
8 |
9 | // System call support for 386 BSD
10 |
11 | // Just jump to package syscall's implementation for all these functions.
12 | // The runtime may know about them.
13 |
14 | TEXT ·Syscall(SB),NOSPLIT,$0-28
15 | JMP syscall·Syscall(SB)
16 |
17 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
18 | JMP syscall·Syscall6(SB)
19 |
20 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
21 | JMP syscall·Syscall9(SB)
22 |
23 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
24 | JMP syscall·RawSyscall(SB)
25 |
26 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
27 | JMP syscall·RawSyscall6(SB)
28 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2021 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc
6 |
7 | #include "textflag.h"
8 |
9 | // System call support for AMD64 BSD
10 |
11 | // Just jump to package syscall's implementation for all these functions.
12 | // The runtime may know about them.
13 |
14 | TEXT ·Syscall(SB),NOSPLIT,$0-56
15 | JMP syscall·Syscall(SB)
16 |
17 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
18 | JMP syscall·Syscall6(SB)
19 |
20 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
21 | JMP syscall·Syscall9(SB)
22 |
23 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
24 | JMP syscall·RawSyscall(SB)
25 |
26 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
27 | JMP syscall·RawSyscall6(SB)
28 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_bsd_arm.s:
--------------------------------------------------------------------------------
1 | // Copyright 2021 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (freebsd || netbsd || openbsd) && gc
6 |
7 | #include "textflag.h"
8 |
9 | // System call support for ARM BSD
10 |
11 | // Just jump to package syscall's implementation for all these functions.
12 | // The runtime may know about them.
13 |
14 | TEXT ·Syscall(SB),NOSPLIT,$0-28
15 | B syscall·Syscall(SB)
16 |
17 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
18 | B syscall·Syscall6(SB)
19 |
20 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
21 | B syscall·Syscall9(SB)
22 |
23 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
24 | B syscall·RawSyscall(SB)
25 |
26 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
27 | B syscall·RawSyscall6(SB)
28 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2021 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (darwin || freebsd || netbsd || openbsd) && gc
6 |
7 | #include "textflag.h"
8 |
9 | // System call support for ARM64 BSD
10 |
11 | // Just jump to package syscall's implementation for all these functions.
12 | // The runtime may know about them.
13 |
14 | TEXT ·Syscall(SB),NOSPLIT,$0-56
15 | JMP syscall·Syscall(SB)
16 |
17 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
18 | JMP syscall·Syscall6(SB)
19 |
20 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
21 | JMP syscall·Syscall9(SB)
22 |
23 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
24 | JMP syscall·RawSyscall(SB)
25 |
26 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
27 | JMP syscall·RawSyscall6(SB)
28 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2022 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (darwin || freebsd || netbsd || openbsd) && gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for ppc64, BSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2021 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (darwin || freebsd || netbsd || openbsd) && gc
6 |
7 | #include "textflag.h"
8 |
9 | // System call support for RISCV64 BSD
10 |
11 | // Just jump to package syscall's implementation for all these functions.
12 | // The runtime may know about them.
13 |
14 | TEXT ·Syscall(SB),NOSPLIT,$0-56
15 | JMP syscall·Syscall(SB)
16 |
17 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
18 | JMP syscall·Syscall6(SB)
19 |
20 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
21 | JMP syscall·Syscall9(SB)
22 |
23 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
24 | JMP syscall·RawSyscall(SB)
25 |
26 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
27 | JMP syscall·RawSyscall6(SB)
28 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux && (ppc64 || ppc64le) && gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System calls for ppc64, Linux
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
17 | BL runtime·entersyscall(SB)
18 | MOVD a1+8(FP), R3
19 | MOVD a2+16(FP), R4
20 | MOVD a3+24(FP), R5
21 | MOVD R0, R6
22 | MOVD R0, R7
23 | MOVD R0, R8
24 | MOVD trap+0(FP), R9 // syscall entry
25 | SYSCALL R9
26 | MOVD R3, r1+32(FP)
27 | MOVD R4, r2+40(FP)
28 | BL runtime·exitsyscall(SB)
29 | RET
30 |
31 | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
32 | MOVD a1+8(FP), R3
33 | MOVD a2+16(FP), R4
34 | MOVD a3+24(FP), R5
35 | MOVD R0, R6
36 | MOVD R0, R7
37 | MOVD R0, R8
38 | MOVD trap+0(FP), R9 // syscall entry
39 | SYSCALL R9
40 | MOVD R3, r1+32(FP)
41 | MOVD R4, r2+40(FP)
42 | RET
43 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for mips64, OpenBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go
11 | //
12 |
13 | TEXT ·sysvicall6(SB),NOSPLIT,$0-88
14 | JMP syscall·sysvicall6(SB)
15 |
16 | TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88
17 | JMP syscall·rawSysvicall6(SB)
18 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/auxv.go:
--------------------------------------------------------------------------------
1 | // Copyright 2025 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos)
6 |
7 | package unix
8 |
9 | import (
10 | "syscall"
11 | "unsafe"
12 | )
13 |
14 | //go:linkname runtime_getAuxv runtime.getAuxv
15 | func runtime_getAuxv() []uintptr
16 |
17 | // Auxv returns the ELF auxiliary vector as a sequence of key/value pairs.
18 | // The returned slice is always a fresh copy, owned by the caller.
19 | // It returns an error on non-ELF platforms, or if the auxiliary vector cannot be accessed,
20 | // which happens in some locked-down environments and build modes.
21 | func Auxv() ([][2]uintptr, error) {
22 | vec := runtime_getAuxv()
23 | vecLen := len(vec)
24 |
25 | if vecLen == 0 {
26 | return nil, syscall.ENOENT
27 | }
28 |
29 | if vecLen%2 != 0 {
30 | return nil, syscall.EINVAL
31 | }
32 |
33 | result := make([]uintptr, vecLen)
34 | copy(result, vec)
35 | return unsafe.Slice((*[2]uintptr)(unsafe.Pointer(&result[0])), vecLen/2), nil
36 | }
37 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/auxv_unsupported.go:
--------------------------------------------------------------------------------
1 | // Copyright 2025 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build !go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos)
6 |
7 | package unix
8 |
9 | import "syscall"
10 |
11 | func Auxv() ([][2]uintptr, error) {
12 | return nil, syscall.ENOTSUP
13 | }
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/bluetooth_linux.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Bluetooth sockets and messages
6 |
7 | package unix
8 |
9 | // Bluetooth Protocols
10 | const (
11 | BTPROTO_L2CAP = 0
12 | BTPROTO_HCI = 1
13 | BTPROTO_SCO = 2
14 | BTPROTO_RFCOMM = 3
15 | BTPROTO_BNEP = 4
16 | BTPROTO_CMTP = 5
17 | BTPROTO_HIDP = 6
18 | BTPROTO_AVDTP = 7
19 | )
20 |
21 | const (
22 | HCI_CHANNEL_RAW = 0
23 | HCI_CHANNEL_USER = 1
24 | HCI_CHANNEL_MONITOR = 2
25 | HCI_CHANNEL_CONTROL = 3
26 | HCI_CHANNEL_LOGGING = 4
27 | )
28 |
29 | // Socketoption Level
30 | const (
31 | SOL_BLUETOOTH = 0x112
32 | SOL_HCI = 0x0
33 | SOL_L2CAP = 0x6
34 | SOL_RFCOMM = 0x12
35 | SOL_SCO = 0x11
36 | )
37 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/constants.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
6 |
7 | package unix
8 |
9 | const (
10 | R_OK = 0x4
11 | W_OK = 0x2
12 | X_OK = 0x1
13 | )
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_aix_ppc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix && ppc
6 |
7 | // Functions to access/create device major and minor numbers matching the
8 | // encoding used by AIX.
9 |
10 | package unix
11 |
12 | // Major returns the major component of a Linux device number.
13 | func Major(dev uint64) uint32 {
14 | return uint32((dev >> 16) & 0xffff)
15 | }
16 |
17 | // Minor returns the minor component of a Linux device number.
18 | func Minor(dev uint64) uint32 {
19 | return uint32(dev & 0xffff)
20 | }
21 |
22 | // Mkdev returns a Linux device number generated from the given major and minor
23 | // components.
24 | func Mkdev(major, minor uint32) uint64 {
25 | return uint64(((major) << 16) | (minor))
26 | }
27 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix && ppc64
6 |
7 | // Functions to access/create device major and minor numbers matching the
8 | // encoding used AIX.
9 |
10 | package unix
11 |
12 | // Major returns the major component of a Linux device number.
13 | func Major(dev uint64) uint32 {
14 | return uint32((dev & 0x3fffffff00000000) >> 32)
15 | }
16 |
17 | // Minor returns the minor component of a Linux device number.
18 | func Minor(dev uint64) uint32 {
19 | return uint32((dev & 0x00000000ffffffff) >> 0)
20 | }
21 |
22 | // Mkdev returns a Linux device number generated from the given major and minor
23 | // components.
24 | func Mkdev(major, minor uint32) uint64 {
25 | var DEVNO64 uint64
26 | DEVNO64 = 0x8000000000000000
27 | return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64)
28 | }
29 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_darwin.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in Darwin's sys/types.h header.
7 |
8 | package unix
9 |
10 | // Major returns the major component of a Darwin device number.
11 | func Major(dev uint64) uint32 {
12 | return uint32((dev >> 24) & 0xff)
13 | }
14 |
15 | // Minor returns the minor component of a Darwin device number.
16 | func Minor(dev uint64) uint32 {
17 | return uint32(dev & 0xffffff)
18 | }
19 |
20 | // Mkdev returns a Darwin device number generated from the given major and minor
21 | // components.
22 | func Mkdev(major, minor uint32) uint64 {
23 | return (uint64(major) << 24) | uint64(minor)
24 | }
25 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_dragonfly.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in Dragonfly's sys/types.h header.
7 | //
8 | // The information below is extracted and adapted from sys/types.h:
9 | //
10 | // Minor gives a cookie instead of an index since in order to avoid changing the
11 | // meanings of bits 0-15 or wasting time and space shifting bits 16-31 for
12 | // devices that don't use them.
13 |
14 | package unix
15 |
16 | // Major returns the major component of a DragonFlyBSD device number.
17 | func Major(dev uint64) uint32 {
18 | return uint32((dev >> 8) & 0xff)
19 | }
20 |
21 | // Minor returns the minor component of a DragonFlyBSD device number.
22 | func Minor(dev uint64) uint32 {
23 | return uint32(dev & 0xffff00ff)
24 | }
25 |
26 | // Mkdev returns a DragonFlyBSD device number generated from the given major and
27 | // minor components.
28 | func Mkdev(major, minor uint32) uint64 {
29 | return (uint64(major) << 8) | uint64(minor)
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_freebsd.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in FreeBSD's sys/types.h header.
7 | //
8 | // The information below is extracted and adapted from sys/types.h:
9 | //
10 | // Minor gives a cookie instead of an index since in order to avoid changing the
11 | // meanings of bits 0-15 or wasting time and space shifting bits 16-31 for
12 | // devices that don't use them.
13 |
14 | package unix
15 |
16 | // Major returns the major component of a FreeBSD device number.
17 | func Major(dev uint64) uint32 {
18 | return uint32((dev >> 8) & 0xff)
19 | }
20 |
21 | // Minor returns the minor component of a FreeBSD device number.
22 | func Minor(dev uint64) uint32 {
23 | return uint32(dev & 0xffff00ff)
24 | }
25 |
26 | // Mkdev returns a FreeBSD device number generated from the given major and
27 | // minor components.
28 | func Mkdev(major, minor uint32) uint64 {
29 | return (uint64(major) << 8) | uint64(minor)
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_netbsd.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in NetBSD's sys/types.h header.
7 |
8 | package unix
9 |
10 | // Major returns the major component of a NetBSD device number.
11 | func Major(dev uint64) uint32 {
12 | return uint32((dev & 0x000fff00) >> 8)
13 | }
14 |
15 | // Minor returns the minor component of a NetBSD device number.
16 | func Minor(dev uint64) uint32 {
17 | minor := uint32((dev & 0x000000ff) >> 0)
18 | minor |= uint32((dev & 0xfff00000) >> 12)
19 | return minor
20 | }
21 |
22 | // Mkdev returns a NetBSD device number generated from the given major and minor
23 | // components.
24 | func Mkdev(major, minor uint32) uint64 {
25 | dev := (uint64(major) << 8) & 0x000fff00
26 | dev |= (uint64(minor) << 12) & 0xfff00000
27 | dev |= (uint64(minor) << 0) & 0x000000ff
28 | return dev
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_openbsd.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in OpenBSD's sys/types.h header.
7 |
8 | package unix
9 |
10 | // Major returns the major component of an OpenBSD device number.
11 | func Major(dev uint64) uint32 {
12 | return uint32((dev & 0x0000ff00) >> 8)
13 | }
14 |
15 | // Minor returns the minor component of an OpenBSD device number.
16 | func Minor(dev uint64) uint32 {
17 | minor := uint32((dev & 0x000000ff) >> 0)
18 | minor |= uint32((dev & 0xffff0000) >> 8)
19 | return minor
20 | }
21 |
22 | // Mkdev returns an OpenBSD device number generated from the given major and minor
23 | // components.
24 | func Mkdev(major, minor uint32) uint64 {
25 | dev := (uint64(major) << 8) & 0x0000ff00
26 | dev |= (uint64(minor) << 8) & 0xffff0000
27 | dev |= (uint64(minor) << 0) & 0x000000ff
28 | return dev
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_zos.go:
--------------------------------------------------------------------------------
1 | // Copyright 2020 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build zos && s390x
6 |
7 | // Functions to access/create device major and minor numbers matching the
8 | // encoding used by z/OS.
9 | //
10 | // The information below is extracted and adapted from macros.
11 |
12 | package unix
13 |
14 | // Major returns the major component of a z/OS device number.
15 | func Major(dev uint64) uint32 {
16 | return uint32((dev >> 16) & 0x0000FFFF)
17 | }
18 |
19 | // Minor returns the minor component of a z/OS device number.
20 | func Minor(dev uint64) uint32 {
21 | return uint32(dev & 0x0000FFFF)
22 | }
23 |
24 | // Mkdev returns a z/OS device number generated from the given major and minor
25 | // components.
26 | func Mkdev(major, minor uint32) uint64 {
27 | return (uint64(major) << 16) | uint64(minor)
28 | }
29 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/endian_big.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 | //
5 | //go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64
6 |
7 | package unix
8 |
9 | const isBigEndian = true
10 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/endian_little.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 | //
5 | //go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh
6 |
7 | package unix
8 |
9 | const isBigEndian = false
10 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/env_unix.go:
--------------------------------------------------------------------------------
1 | // Copyright 2010 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
6 |
7 | // Unix environment variables.
8 |
9 | package unix
10 |
11 | import "syscall"
12 |
13 | func Getenv(key string) (value string, found bool) {
14 | return syscall.Getenv(key)
15 | }
16 |
17 | func Setenv(key, value string) error {
18 | return syscall.Setenv(key, value)
19 | }
20 |
21 | func Clearenv() {
22 | syscall.Clearenv()
23 | }
24 |
25 | func Environ() []string {
26 | return syscall.Environ()
27 | }
28 |
29 | func Unsetenv(key string) error {
30 | return syscall.Unsetenv(key)
31 | }
32 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/fcntl.go:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build dragonfly || freebsd || linux || netbsd
6 |
7 | package unix
8 |
9 | import "unsafe"
10 |
11 | // fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux
12 | // systems by fcntl_linux_32bit.go to be SYS_FCNTL64.
13 | var fcntl64Syscall uintptr = SYS_FCNTL
14 |
15 | func fcntl(fd int, cmd, arg int) (int, error) {
16 | valptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg))
17 | var err error
18 | if errno != 0 {
19 | err = errno
20 | }
21 | return int(valptr), err
22 | }
23 |
24 | // FcntlInt performs a fcntl syscall on fd with the provided command and argument.
25 | func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
26 | return fcntl(int(fd), cmd, arg)
27 | }
28 |
29 | // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
30 | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
31 | _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk)))
32 | if errno == 0 {
33 | return nil
34 | }
35 | return errno
36 | }
37 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/fcntl_darwin.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package unix
6 |
7 | import "unsafe"
8 |
9 | // FcntlInt performs a fcntl syscall on fd with the provided command and argument.
10 | func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
11 | return fcntl(int(fd), cmd, arg)
12 | }
13 |
14 | // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
15 | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
16 | _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk))))
17 | return err
18 | }
19 |
20 | // FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command.
21 | func FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error {
22 | _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore))))
23 | return err
24 | }
25 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle) || (linux && ppc)
6 |
7 | package unix
8 |
9 | func init() {
10 | // On 32-bit Linux systems, the fcntl syscall that matches Go's
11 | // Flock_t type is SYS_FCNTL64, not SYS_FCNTL.
12 | fcntl64Syscall = SYS_FCNTL64
13 | }
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/fdset.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
6 |
7 | package unix
8 |
9 | // Set adds fd to the set fds.
10 | func (fds *FdSet) Set(fd int) {
11 | fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS))
12 | }
13 |
14 | // Clear removes fd from the set fds.
15 | func (fds *FdSet) Clear(fd int) {
16 | fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS))
17 | }
18 |
19 | // IsSet returns whether fd is in the set fds.
20 | func (fds *FdSet) IsSet(fd int) bool {
21 | return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0
22 | }
23 |
24 | // Zero clears the set fds.
25 | func (fds *FdSet) Zero() {
26 | for i := range fds.Bits {
27 | fds.Bits[i] = 0
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build gccgo && linux && amd64
6 |
7 | package unix
8 |
9 | import "syscall"
10 |
11 | //extern gettimeofday
12 | func realGettimeofday(*Timeval, *byte) int32
13 |
14 | func gettimeofday(tv *Timeval) (err syscall.Errno) {
15 | r := realGettimeofday(tv, nil)
16 | if r < 0 {
17 | return syscall.GetErrno()
18 | }
19 | return 0
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/mmap_nomremap.go:
--------------------------------------------------------------------------------
1 | // Copyright 2023 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || darwin || dragonfly || freebsd || openbsd || solaris || zos
6 |
7 | package unix
8 |
9 | var mapper = &mmapper{
10 | active: make(map[*byte][]byte),
11 | mmap: mmap,
12 | munmap: munmap,
13 | }
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/pagesize_unix.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
6 |
7 | // For Unix, get the pagesize from the runtime.
8 |
9 | package unix
10 |
11 | import "syscall"
12 |
13 | func Getpagesize() int {
14 | return syscall.Getpagesize()
15 | }
16 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/ptrace_darwin.go:
--------------------------------------------------------------------------------
1 | // Copyright 2020 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build darwin && !ios
6 |
7 | package unix
8 |
9 | func ptrace(request int, pid int, addr uintptr, data uintptr) error {
10 | return ptrace1(request, pid, addr, data)
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/ptrace_ios.go:
--------------------------------------------------------------------------------
1 | // Copyright 2020 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build ios
6 |
7 | package unix
8 |
9 | func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
10 | return ENOTSUP
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/race.go:
--------------------------------------------------------------------------------
1 | // Copyright 2012 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (darwin && race) || (linux && race) || (freebsd && race)
6 |
7 | package unix
8 |
9 | import (
10 | "runtime"
11 | "unsafe"
12 | )
13 |
14 | const raceenabled = true
15 |
16 | func raceAcquire(addr unsafe.Pointer) {
17 | runtime.RaceAcquire(addr)
18 | }
19 |
20 | func raceReleaseMerge(addr unsafe.Pointer) {
21 | runtime.RaceReleaseMerge(addr)
22 | }
23 |
24 | func raceReadRange(addr unsafe.Pointer, len int) {
25 | runtime.RaceReadRange(addr, len)
26 | }
27 |
28 | func raceWriteRange(addr unsafe.Pointer, len int) {
29 | runtime.RaceWriteRange(addr, len)
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/race0.go:
--------------------------------------------------------------------------------
1 | // Copyright 2012 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos
6 |
7 | package unix
8 |
9 | import (
10 | "unsafe"
11 | )
12 |
13 | const raceenabled = false
14 |
15 | func raceAcquire(addr unsafe.Pointer) {
16 | }
17 |
18 | func raceReleaseMerge(addr unsafe.Pointer) {
19 | }
20 |
21 | func raceReadRange(addr unsafe.Pointer, len int) {
22 | }
23 |
24 | func raceWriteRange(addr unsafe.Pointer, len int) {
25 | }
26 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/readdirent_getdents.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || dragonfly || freebsd || linux || netbsd || openbsd
6 |
7 | package unix
8 |
9 | // ReadDirent reads directory entries from fd and writes them into buf.
10 | func ReadDirent(fd int, buf []byte) (n int, err error) {
11 | return Getdents(fd, buf)
12 | }
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build darwin || zos
6 |
7 | package unix
8 |
9 | import "unsafe"
10 |
11 | // ReadDirent reads directory entries from fd and writes them into buf.
12 | func ReadDirent(fd int, buf []byte) (n int, err error) {
13 | // Final argument is (basep *uintptr) and the syscall doesn't take nil.
14 | // 64 bits should be enough. (32 bits isn't even on 386). Since the
15 | // actual system call is getdirentries64, 64 is a good guess.
16 | // TODO(rsc): Can we use a single global basep for all calls?
17 | var base = (*uintptr)(unsafe.Pointer(new(uint64)))
18 | return Getdirentries(fd, buf, base)
19 | }
20 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package unix
6 |
7 | // Round the length of a raw sockaddr up to align it properly.
8 | func cmsgAlignOf(salen int) int {
9 | salign := SizeofPtr
10 | if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) {
11 | // 64-bit Dragonfly before the September 2019 ABI changes still requires
12 | // 32-bit aligned access to network subsystem.
13 | salign = 4
14 | }
15 | return (salen + salign - 1) & ^(salign - 1)
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_hurd.go:
--------------------------------------------------------------------------------
1 | // Copyright 2022 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build hurd
6 |
7 | package unix
8 |
9 | /*
10 | #include
11 | int ioctl(int, unsigned long int, uintptr_t);
12 | */
13 | import "C"
14 | import "unsafe"
15 |
16 | func ioctl(fd int, req uint, arg uintptr) (err error) {
17 | r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg))
18 | if r0 == -1 && er != nil {
19 | err = er
20 | }
21 | return
22 | }
23 |
24 | func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {
25 | r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(uintptr(arg)))
26 | if r0 == -1 && er != nil {
27 | err = er
28 | }
29 | return
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_hurd_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2022 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build 386 && hurd
6 |
7 | package unix
8 |
9 | const (
10 | TIOCGETA = 0x62251713
11 | )
12 |
13 | type Winsize struct {
14 | Row uint16
15 | Col uint16
16 | Xpixel uint16
17 | Ypixel uint16
18 | }
19 |
20 | type Termios struct {
21 | Iflag uint32
22 | Oflag uint32
23 | Cflag uint32
24 | Lflag uint32
25 | Cc [20]uint8
26 | Ispeed int32
27 | Ospeed int32
28 | }
29 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2022 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64)
6 |
7 | package unix
8 |
9 | // SYS_ALARM is not defined on arm or riscv, but is available for other GOARCH
10 | // values.
11 |
12 | //sys Alarm(seconds uint) (remaining uint, err error)
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build amd64 && linux && gc
6 |
7 | package unix
8 |
9 | import "syscall"
10 |
11 | //go:noescape
12 | func gettimeofday(tv *Timeval) (err syscall.Errno)
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux && gc
6 |
7 | package unix
8 |
9 | // SyscallNoError may be used instead of Syscall for syscalls that don't fail.
10 | func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)
11 |
12 | // RawSyscallNoError may be used instead of RawSyscall for syscalls that don't
13 | // fail.
14 | func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)
15 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux && gc && 386
6 |
7 | package unix
8 |
9 | import "syscall"
10 |
11 | // Underlying system call writes to newoffset via pointer.
12 | // Implemented in assembly to avoid allocation.
13 | func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)
14 |
15 | func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
16 | func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
17 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build arm && gc && linux
6 |
7 | package unix
8 |
9 | import "syscall"
10 |
11 | // Underlying system call writes to newoffset via pointer.
12 | // Implemented in assembly to avoid allocation.
13 | func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux && gccgo && 386
6 |
7 | package unix
8 |
9 | import (
10 | "syscall"
11 | "unsafe"
12 | )
13 |
14 | func seek(fd int, offset int64, whence int) (int64, syscall.Errno) {
15 | var newoffset int64
16 | offsetLow := uint32(offset & 0xffffffff)
17 | offsetHigh := uint32((offset >> 32) & 0xffffffff)
18 | _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)
19 | return newoffset, err
20 | }
21 |
22 | func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {
23 | fd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)
24 | return int(fd), err
25 | }
26 |
27 | func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {
28 | fd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)
29 | return int(fd), err
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux && gccgo && arm
6 |
7 | package unix
8 |
9 | import (
10 | "syscall"
11 | "unsafe"
12 | )
13 |
14 | func seek(fd int, offset int64, whence int) (int64, syscall.Errno) {
15 | var newoffset int64
16 | offsetLow := uint32(offset & 0xffffffff)
17 | offsetHigh := uint32((offset >> 32) & 0xffffffff)
18 | _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)
19 | return newoffset, err
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build 386 && netbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: int32(nsec)}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: int32(usec)}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint32(fd)
19 | k.Filter = uint32(mode)
20 | k.Flags = uint32(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint32(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = int32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build amd64 && netbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: nsec}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: int32(usec)}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint64(fd)
19 | k.Filter = uint32(mode)
20 | k.Flags = uint32(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint64(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = int32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build arm && netbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: int32(nsec)}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: int32(usec)}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint32(fd)
19 | k.Filter = uint32(mode)
20 | k.Flags = uint32(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint32(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = int32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build arm64 && netbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: nsec}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: int32(usec)}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint64(fd)
19 | k.Filter = uint32(mode)
20 | k.Flags = uint32(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint64(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = int32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build 386 && openbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: int32(nsec)}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: int32(usec)}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint32(fd)
19 | k.Filter = int16(mode)
20 | k.Flags = uint16(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint32(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = uint32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
39 | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
40 | // of openbsd/386 the syscall is called sysctl instead of __sysctl.
41 | const SYS___SYSCTL = SYS_SYSCTL
42 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build amd64 && openbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: nsec}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: usec}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint64(fd)
19 | k.Filter = int16(mode)
20 | k.Flags = uint16(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint64(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = uint32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
39 | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
40 | // of openbsd/amd64 the syscall is called sysctl instead of __sysctl.
41 | const SYS___SYSCTL = SYS_SYSCTL
42 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build arm && openbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: int32(nsec)}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: int32(usec)}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint32(fd)
19 | k.Filter = int16(mode)
20 | k.Flags = uint16(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint32(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = uint32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
39 | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
40 | // of openbsd/arm the syscall is called sysctl instead of __sysctl.
41 | const SYS___SYSCTL = SYS_SYSCTL
42 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build arm64 && openbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: nsec}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: usec}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint64(fd)
19 | k.Filter = int16(mode)
20 | k.Flags = uint16(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint64(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = uint32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
39 | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
40 | // of openbsd/amd64 the syscall is called sysctl instead of __sysctl.
41 | const SYS___SYSCTL = SYS_SYSCTL
42 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package unix
6 |
7 | func setTimespec(sec, nsec int64) Timespec {
8 | return Timespec{Sec: sec, Nsec: nsec}
9 | }
10 |
11 | func setTimeval(sec, usec int64) Timeval {
12 | return Timeval{Sec: sec, Usec: usec}
13 | }
14 |
15 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
16 | k.Ident = uint64(fd)
17 | k.Filter = int16(mode)
18 | k.Flags = uint16(flags)
19 | }
20 |
21 | func (iov *Iovec) SetLen(length int) {
22 | iov.Len = uint64(length)
23 | }
24 |
25 | func (msghdr *Msghdr) SetControllen(length int) {
26 | msghdr.Controllen = uint32(length)
27 | }
28 |
29 | func (msghdr *Msghdr) SetIovlen(length int) {
30 | msghdr.Iovlen = uint32(length)
31 | }
32 |
33 | func (cmsg *Cmsghdr) SetLen(length int) {
34 | cmsg.Len = uint32(length)
35 | }
36 |
37 | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
38 | // of OpenBSD the syscall is called sysctl instead of __sysctl.
39 | const SYS___SYSCTL = SYS_SYSCTL
40 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build ppc64 && openbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: nsec}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: usec}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint64(fd)
19 | k.Filter = int16(mode)
20 | k.Flags = uint16(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint64(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = uint32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
39 | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
40 | // of openbsd/ppc64 the syscall is called sysctl instead of __sysctl.
41 | const SYS___SYSCTL = SYS_SYSCTL
42 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build riscv64 && openbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: nsec}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: usec}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint64(fd)
19 | k.Filter = int16(mode)
20 | k.Flags = uint16(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint64(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = uint32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
39 | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
40 | // of openbsd/riscv64 the syscall is called sysctl instead of __sysctl.
41 | const SYS___SYSCTL = SYS_SYSCTL
42 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build amd64 && solaris
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: nsec}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: usec}
15 | }
16 |
17 | func (iov *Iovec) SetLen(length int) {
18 | iov.Len = uint64(length)
19 | }
20 |
21 | func (msghdr *Msghdr) SetIovlen(length int) {
22 | msghdr.Iovlen = int32(length)
23 | }
24 |
25 | func (cmsg *Cmsghdr) SetLen(length int) {
26 | cmsg.Len = uint32(length)
27 | }
28 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_unix_gc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc
6 |
7 | package unix
8 |
9 | import "syscall"
10 |
11 | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)
12 | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
13 | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)
14 | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
15 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux && (ppc64le || ppc64) && gc
6 |
7 | package unix
8 |
9 | import "syscall"
10 |
11 | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
12 | return syscall.Syscall(trap, a1, a2, a3)
13 | }
14 | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
15 | return syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6)
16 | }
17 | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
18 | return syscall.RawSyscall(trap, a1, a2, a3)
19 | }
20 | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
21 | return syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6)
22 | }
23 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/sysvshm_linux.go:
--------------------------------------------------------------------------------
1 | // Copyright 2021 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux
6 |
7 | package unix
8 |
9 | import "runtime"
10 |
11 | // SysvShmCtl performs control operations on the shared memory segment
12 | // specified by id.
13 | func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) {
14 | if runtime.GOARCH == "arm" ||
15 | runtime.GOARCH == "mips64" || runtime.GOARCH == "mips64le" {
16 | cmd |= ipc_64
17 | }
18 |
19 | return shmctl(id, cmd, desc)
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go:
--------------------------------------------------------------------------------
1 | // Copyright 2021 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (darwin && !ios) || zos
6 |
7 | package unix
8 |
9 | // SysvShmCtl performs control operations on the shared memory segment
10 | // specified by id.
11 | func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) {
12 | return shmctl(id, cmd, desc)
13 | }
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/vgetrandom_linux.go:
--------------------------------------------------------------------------------
1 | // Copyright 2024 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux && go1.24
6 |
7 | package unix
8 |
9 | import _ "unsafe"
10 |
11 | //go:linkname vgetrandom runtime.vgetrandom
12 | //go:noescape
13 | func vgetrandom(p []byte, flags uint32) (ret int, supported bool)
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go:
--------------------------------------------------------------------------------
1 | // Copyright 2024 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build !linux || !go1.24
6 |
7 | package unix
8 |
9 | func vgetrandom(p []byte, flags uint32) (ret int, supported bool) {
10 | return -1, false
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go:
--------------------------------------------------------------------------------
1 | // Code generated by linux/mkall.go generatePtraceRegSet("arm64"). DO NOT EDIT.
2 |
3 | package unix
4 |
5 | import "unsafe"
6 |
7 | // PtraceGetRegSetArm64 fetches the registers used by arm64 binaries.
8 | func PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error {
9 | iovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))}
10 | return ptracePtr(PTRACE_GETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec))
11 | }
12 |
13 | // PtraceSetRegSetArm64 sets the registers used by arm64 binaries.
14 | func PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error {
15 | iovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))}
16 | return ptracePtr(PTRACE_SETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec))
17 | }
18 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/aliases.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build windows
6 |
7 | package windows
8 |
9 | import "syscall"
10 |
11 | type Errno = syscall.Errno
12 | type SysProcAttr = syscall.SysProcAttr
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/eventlog.go:
--------------------------------------------------------------------------------
1 | // Copyright 2012 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build windows
6 |
7 | package windows
8 |
9 | const (
10 | EVENTLOG_SUCCESS = 0
11 | EVENTLOG_ERROR_TYPE = 1
12 | EVENTLOG_WARNING_TYPE = 2
13 | EVENTLOG_INFORMATION_TYPE = 4
14 | EVENTLOG_AUDIT_SUCCESS = 8
15 | EVENTLOG_AUDIT_FAILURE = 16
16 | )
17 |
18 | //sys RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW
19 | //sys DeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource
20 | //sys ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW
21 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/mksyscall.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build generate
6 |
7 | package windows
8 |
9 | //go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go setupapi_windows.go
10 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/race.go:
--------------------------------------------------------------------------------
1 | // Copyright 2012 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build windows && race
6 |
7 | package windows
8 |
9 | import (
10 | "runtime"
11 | "unsafe"
12 | )
13 |
14 | const raceenabled = true
15 |
16 | func raceAcquire(addr unsafe.Pointer) {
17 | runtime.RaceAcquire(addr)
18 | }
19 |
20 | func raceReleaseMerge(addr unsafe.Pointer) {
21 | runtime.RaceReleaseMerge(addr)
22 | }
23 |
24 | func raceReadRange(addr unsafe.Pointer, len int) {
25 | runtime.RaceReadRange(addr, len)
26 | }
27 |
28 | func raceWriteRange(addr unsafe.Pointer, len int) {
29 | runtime.RaceWriteRange(addr, len)
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/race0.go:
--------------------------------------------------------------------------------
1 | // Copyright 2012 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build windows && !race
6 |
7 | package windows
8 |
9 | import (
10 | "unsafe"
11 | )
12 |
13 | const raceenabled = false
14 |
15 | func raceAcquire(addr unsafe.Pointer) {
16 | }
17 |
18 | func raceReleaseMerge(addr unsafe.Pointer) {
19 | }
20 |
21 | func raceReadRange(addr unsafe.Pointer, len int) {
22 | }
23 |
24 | func raceWriteRange(addr unsafe.Pointer, len int) {
25 | }
26 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/str.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build windows
6 |
7 | package windows
8 |
9 | func itoa(val int) string { // do it here rather than with fmt to avoid dependency
10 | if val < 0 {
11 | return "-" + itoa(-val)
12 | }
13 | var buf [32]byte // big enough for int64
14 | i := len(buf) - 1
15 | for val >= 10 {
16 | buf[i] = byte(val%10 + '0')
17 | i--
18 | val /= 10
19 | }
20 | buf[i] = byte(val + '0')
21 | return string(buf[i:])
22 | }
23 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/types_windows_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2011 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package windows
6 |
7 | type WSAData struct {
8 | Version uint16
9 | HighVersion uint16
10 | Description [WSADESCRIPTION_LEN + 1]byte
11 | SystemStatus [WSASYS_STATUS_LEN + 1]byte
12 | MaxSockets uint16
13 | MaxUdpDg uint16
14 | VendorInfo *byte
15 | }
16 |
17 | type Servent struct {
18 | Name *byte
19 | Aliases **byte
20 | Port uint16
21 | Proto *byte
22 | }
23 |
24 | type JOBOBJECT_BASIC_LIMIT_INFORMATION struct {
25 | PerProcessUserTimeLimit int64
26 | PerJobUserTimeLimit int64
27 | LimitFlags uint32
28 | MinimumWorkingSetSize uintptr
29 | MaximumWorkingSetSize uintptr
30 | ActiveProcessLimit uint32
31 | Affinity uintptr
32 | PriorityClass uint32
33 | SchedulingClass uint32
34 | _ uint32 // pad to 8 byte boundary
35 | }
36 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/types_windows_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2011 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package windows
6 |
7 | type WSAData struct {
8 | Version uint16
9 | HighVersion uint16
10 | MaxSockets uint16
11 | MaxUdpDg uint16
12 | VendorInfo *byte
13 | Description [WSADESCRIPTION_LEN + 1]byte
14 | SystemStatus [WSASYS_STATUS_LEN + 1]byte
15 | }
16 |
17 | type Servent struct {
18 | Name *byte
19 | Aliases **byte
20 | Proto *byte
21 | Port uint16
22 | }
23 |
24 | type JOBOBJECT_BASIC_LIMIT_INFORMATION struct {
25 | PerProcessUserTimeLimit int64
26 | PerJobUserTimeLimit int64
27 | LimitFlags uint32
28 | MinimumWorkingSetSize uintptr
29 | MaximumWorkingSetSize uintptr
30 | ActiveProcessLimit uint32
31 | Affinity uintptr
32 | PriorityClass uint32
33 | SchedulingClass uint32
34 | }
35 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/types_windows_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package windows
6 |
7 | type WSAData struct {
8 | Version uint16
9 | HighVersion uint16
10 | Description [WSADESCRIPTION_LEN + 1]byte
11 | SystemStatus [WSASYS_STATUS_LEN + 1]byte
12 | MaxSockets uint16
13 | MaxUdpDg uint16
14 | VendorInfo *byte
15 | }
16 |
17 | type Servent struct {
18 | Name *byte
19 | Aliases **byte
20 | Port uint16
21 | Proto *byte
22 | }
23 |
24 | type JOBOBJECT_BASIC_LIMIT_INFORMATION struct {
25 | PerProcessUserTimeLimit int64
26 | PerJobUserTimeLimit int64
27 | LimitFlags uint32
28 | MinimumWorkingSetSize uintptr
29 | MaximumWorkingSetSize uintptr
30 | ActiveProcessLimit uint32
31 | Affinity uintptr
32 | PriorityClass uint32
33 | SchedulingClass uint32
34 | _ uint32 // pad to 8 byte boundary
35 | }
36 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/types_windows_arm64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2011 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package windows
6 |
7 | type WSAData struct {
8 | Version uint16
9 | HighVersion uint16
10 | MaxSockets uint16
11 | MaxUdpDg uint16
12 | VendorInfo *byte
13 | Description [WSADESCRIPTION_LEN + 1]byte
14 | SystemStatus [WSASYS_STATUS_LEN + 1]byte
15 | }
16 |
17 | type Servent struct {
18 | Name *byte
19 | Aliases **byte
20 | Proto *byte
21 | Port uint16
22 | }
23 |
24 | type JOBOBJECT_BASIC_LIMIT_INFORMATION struct {
25 | PerProcessUserTimeLimit int64
26 | PerJobUserTimeLimit int64
27 | LimitFlags uint32
28 | MinimumWorkingSetSize uintptr
29 | MaximumWorkingSetSize uintptr
30 | ActiveProcessLimit uint32
31 | Affinity uintptr
32 | PriorityClass uint32
33 | SchedulingClass uint32
34 | }
35 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/encoding/prototext/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Package prototext marshals and unmarshals protocol buffer messages as the
6 | // textproto format.
7 | package prototext
8 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go:
--------------------------------------------------------------------------------
1 | // Copyright 2024 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Package editiondefaults contains the binary representation of the editions
6 | // defaults.
7 | package editiondefaults
8 |
9 | import _ "embed"
10 |
11 | //go:embed editions_defaults.binpb
12 | var Defaults []byte
13 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opencontainers/umoci/8a7f7894daa4ffe1e69461967b666ee62295321e/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/flags/flags.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Package flags provides a set of flags controlled by build tags.
6 | package flags
7 |
8 | // ProtoLegacy specifies whether to enable support for legacy functionality
9 | // such as MessageSets, and various other obscure behavior
10 | // that is necessary to maintain backwards compatibility with proto1 or
11 | // the pre-release variants of proto2 and proto3.
12 | //
13 | // This is disabled by default unless built with the "protolegacy" tag.
14 | //
15 | // WARNING: The compatibility agreement covers nothing provided by this flag.
16 | // As such, functionality may suddenly be removed or changed at our discretion.
17 | const ProtoLegacy = protoLegacy
18 |
19 | // LazyUnmarshalExtensions specifies whether to lazily unmarshal extensions.
20 | //
21 | // Lazy extension unmarshaling validates the contents of message-valued
22 | // extension fields at unmarshal time, but defers creating the message
23 | // structure until the extension is first accessed.
24 | const LazyUnmarshalExtensions = ProtoLegacy
25 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build !protolegacy
6 | // +build !protolegacy
7 |
8 | package flags
9 |
10 | const protoLegacy = false
11 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build protolegacy
6 | // +build protolegacy
7 |
8 | package flags
9 |
10 | const protoLegacy = true
11 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/genid/any_gen.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Code generated by generate-protos. DO NOT EDIT.
6 |
7 | package genid
8 |
9 | import (
10 | protoreflect "google.golang.org/protobuf/reflect/protoreflect"
11 | )
12 |
13 | const File_google_protobuf_any_proto = "google/protobuf/any.proto"
14 |
15 | // Names for google.protobuf.Any.
16 | const (
17 | Any_message_name protoreflect.Name = "Any"
18 | Any_message_fullname protoreflect.FullName = "google.protobuf.Any"
19 | )
20 |
21 | // Field names for google.protobuf.Any.
22 | const (
23 | Any_TypeUrl_field_name protoreflect.Name = "type_url"
24 | Any_Value_field_name protoreflect.Name = "value"
25 |
26 | Any_TypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Any.type_url"
27 | Any_Value_field_fullname protoreflect.FullName = "google.protobuf.Any.value"
28 | )
29 |
30 | // Field numbers for google.protobuf.Any.
31 | const (
32 | Any_TypeUrl_field_number protoreflect.FieldNumber = 1
33 | Any_Value_field_number protoreflect.FieldNumber = 2
34 | )
35 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/genid/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Package genid contains constants for declarations in descriptor.proto
6 | // and the well-known types.
7 | package genid
8 |
9 | import "google.golang.org/protobuf/reflect/protoreflect"
10 |
11 | const GoogleProtobuf_package protoreflect.FullName = "google.protobuf"
12 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Code generated by generate-protos. DO NOT EDIT.
6 |
7 | package genid
8 |
9 | import (
10 | protoreflect "google.golang.org/protobuf/reflect/protoreflect"
11 | )
12 |
13 | const File_google_protobuf_empty_proto = "google/protobuf/empty.proto"
14 |
15 | // Names for google.protobuf.Empty.
16 | const (
17 | Empty_message_name protoreflect.Name = "Empty"
18 | Empty_message_fullname protoreflect.FullName = "google.protobuf.Empty"
19 | )
20 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Code generated by generate-protos. DO NOT EDIT.
6 |
7 | package genid
8 |
9 | import (
10 | protoreflect "google.golang.org/protobuf/reflect/protoreflect"
11 | )
12 |
13 | const File_google_protobuf_field_mask_proto = "google/protobuf/field_mask.proto"
14 |
15 | // Names for google.protobuf.FieldMask.
16 | const (
17 | FieldMask_message_name protoreflect.Name = "FieldMask"
18 | FieldMask_message_fullname protoreflect.FullName = "google.protobuf.FieldMask"
19 | )
20 |
21 | // Field names for google.protobuf.FieldMask.
22 | const (
23 | FieldMask_Paths_field_name protoreflect.Name = "paths"
24 |
25 | FieldMask_Paths_field_fullname protoreflect.FullName = "google.protobuf.FieldMask.paths"
26 | )
27 |
28 | // Field numbers for google.protobuf.FieldMask.
29 | const (
30 | FieldMask_Paths_field_number protoreflect.FieldNumber = 1
31 | )
32 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/genid/goname.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package genid
6 |
7 | // Go names of implementation-specific struct fields in generated messages.
8 | const (
9 | State_goname = "state"
10 |
11 | SizeCache_goname = "sizeCache"
12 | SizeCacheA_goname = "XXX_sizecache"
13 |
14 | UnknownFields_goname = "unknownFields"
15 | UnknownFieldsA_goname = "XXX_unrecognized"
16 |
17 | ExtensionFields_goname = "extensionFields"
18 | ExtensionFieldsA_goname = "XXX_InternalExtensions"
19 | ExtensionFieldsB_goname = "XXX_extensions"
20 | )
21 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/genid/map_entry.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package genid
6 |
7 | import "google.golang.org/protobuf/reflect/protoreflect"
8 |
9 | // Generic field names and numbers for synthetic map entry messages.
10 | const (
11 | MapEntry_Key_field_name protoreflect.Name = "key"
12 | MapEntry_Value_field_name protoreflect.Name = "value"
13 |
14 | MapEntry_Key_field_number protoreflect.FieldNumber = 1
15 | MapEntry_Value_field_number protoreflect.FieldNumber = 2
16 | )
17 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/genid/name.go:
--------------------------------------------------------------------------------
1 | // Copyright 2024 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package genid
6 |
7 | const (
8 | NoUnkeyedLiteral_goname = "noUnkeyedLiteral"
9 | NoUnkeyedLiteralA_goname = "XXX_NoUnkeyedLiteral"
10 |
11 | BuilderSuffix_goname = "_builder"
12 | )
13 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Code generated by generate-protos. DO NOT EDIT.
6 |
7 | package genid
8 |
9 | import (
10 | protoreflect "google.golang.org/protobuf/reflect/protoreflect"
11 | )
12 |
13 | const File_google_protobuf_source_context_proto = "google/protobuf/source_context.proto"
14 |
15 | // Names for google.protobuf.SourceContext.
16 | const (
17 | SourceContext_message_name protoreflect.Name = "SourceContext"
18 | SourceContext_message_fullname protoreflect.FullName = "google.protobuf.SourceContext"
19 | )
20 |
21 | // Field names for google.protobuf.SourceContext.
22 | const (
23 | SourceContext_FileName_field_name protoreflect.Name = "file_name"
24 |
25 | SourceContext_FileName_field_fullname protoreflect.FullName = "google.protobuf.SourceContext.file_name"
26 | )
27 |
28 | // Field numbers for google.protobuf.SourceContext.
29 | const (
30 | SourceContext_FileName_field_number protoreflect.FieldNumber = 1
31 | )
32 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/genid/wrappers.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package genid
6 |
7 | import "google.golang.org/protobuf/reflect/protoreflect"
8 |
9 | // Generic field name and number for messages in wrappers.proto.
10 | const (
11 | WrapperValue_Value_field_name protoreflect.Name = "value"
12 | WrapperValue_Value_field_number protoreflect.FieldNumber = 1
13 | )
14 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package impl
6 |
7 | // When using unsafe pointers, we can just treat enum values as int32s.
8 |
9 | var (
10 | coderEnumNoZero = coderInt32NoZero
11 | coderEnum = coderInt32
12 | coderEnumPtr = coderInt32Ptr
13 | coderEnumSlice = coderInt32Slice
14 | coderEnumPackedSlice = coderInt32PackedSlice
15 | )
16 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/impl/enum.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package impl
6 |
7 | import (
8 | "reflect"
9 |
10 | "google.golang.org/protobuf/reflect/protoreflect"
11 | )
12 |
13 | type EnumInfo struct {
14 | GoReflectType reflect.Type // int32 kind
15 | Desc protoreflect.EnumDescriptor
16 | }
17 |
18 | func (t *EnumInfo) New(n protoreflect.EnumNumber) protoreflect.Enum {
19 | return reflect.ValueOf(n).Convert(t.GoReflectType).Interface().(protoreflect.Enum)
20 | }
21 | func (t *EnumInfo) Descriptor() protoreflect.EnumDescriptor { return t.Desc }
22 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/protolazy/pointer_unsafe.go:
--------------------------------------------------------------------------------
1 | // Copyright 2024 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package protolazy
6 |
7 | import (
8 | "sync/atomic"
9 | "unsafe"
10 | )
11 |
12 | func atomicLoadIndex(p **[]IndexEntry) *[]IndexEntry {
13 | return (*[]IndexEntry)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))
14 | }
15 | func atomicStoreIndex(p **[]IndexEntry, v *[]IndexEntry) {
16 | atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))
17 | }
18 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/proto/proto_methods.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // The protoreflect build tag disables use of fast-path methods.
6 | //go:build !protoreflect
7 | // +build !protoreflect
8 |
9 | package proto
10 |
11 | import (
12 | "google.golang.org/protobuf/reflect/protoreflect"
13 | "google.golang.org/protobuf/runtime/protoiface"
14 | )
15 |
16 | const hasProtoMethods = true
17 |
18 | func protoMethods(m protoreflect.Message) *protoiface.Methods {
19 | return m.ProtoMethods()
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/proto/proto_reflect.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // The protoreflect build tag disables use of fast-path methods.
6 | //go:build protoreflect
7 | // +build protoreflect
8 |
9 | package proto
10 |
11 | import (
12 | "google.golang.org/protobuf/reflect/protoreflect"
13 | "google.golang.org/protobuf/runtime/protoiface"
14 | )
15 |
16 | const hasProtoMethods = false
17 |
18 | func protoMethods(m protoreflect.Message) *protoiface.Methods {
19 | return nil
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/proto/reset.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package proto
6 |
7 | import (
8 | "fmt"
9 |
10 | "google.golang.org/protobuf/reflect/protoreflect"
11 | )
12 |
13 | // Reset clears every field in the message.
14 | // The resulting message shares no observable memory with its previous state
15 | // other than the memory for the message itself.
16 | func Reset(m Message) {
17 | if mr, ok := m.(interface{ Reset() }); ok && hasProtoMethods {
18 | mr.Reset()
19 | return
20 | }
21 | resetMessage(m.ProtoReflect())
22 | }
23 |
24 | func resetMessage(m protoreflect.Message) {
25 | if !m.IsValid() {
26 | panic(fmt.Sprintf("cannot reset invalid %v message", m.Descriptor().FullName()))
27 | }
28 |
29 | // Clear all known fields.
30 | fds := m.Descriptor().Fields()
31 | for i := 0; i < fds.Len(); i++ {
32 | m.Clear(fds.Get(i))
33 | }
34 |
35 | // Clear extension fields.
36 | m.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool {
37 | m.Clear(fd)
38 | return true
39 | })
40 |
41 | // Clear unknown fields.
42 | m.SetUnknown(nil)
43 | }
44 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/proto/wrappers.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package proto
6 |
7 | // Bool stores v in a new bool value and returns a pointer to it.
8 | func Bool(v bool) *bool { return &v }
9 |
10 | // Int32 stores v in a new int32 value and returns a pointer to it.
11 | func Int32(v int32) *int32 { return &v }
12 |
13 | // Int64 stores v in a new int64 value and returns a pointer to it.
14 | func Int64(v int64) *int64 { return &v }
15 |
16 | // Float32 stores v in a new float32 value and returns a pointer to it.
17 | func Float32(v float32) *float32 { return &v }
18 |
19 | // Float64 stores v in a new float64 value and returns a pointer to it.
20 | func Float64(v float64) *float64 { return &v }
21 |
22 | // Uint32 stores v in a new uint32 value and returns a pointer to it.
23 | func Uint32(v uint32) *uint32 { return &v }
24 |
25 | // Uint64 stores v in a new uint64 value and returns a pointer to it.
26 | func Uint64(v uint64) *uint64 { return &v }
27 |
28 | // String stores v in a new string value and returns a pointer to it.
29 | func String(v string) *string { return &v }
30 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package protoiface
6 |
7 | type MessageV1 interface {
8 | Reset()
9 | String() string
10 | ProtoMessage()
11 | }
12 |
13 | type ExtensionRangeV1 struct {
14 | Start, End int32 // both inclusive
15 | }
16 |
--------------------------------------------------------------------------------
/vendor/gopkg.in/yaml.v3/NOTICE:
--------------------------------------------------------------------------------
1 | Copyright 2011-2016 Canonical Ltd.
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
--------------------------------------------------------------------------------