tree: d5d773b80b1f4a97f235d551871d1ae75d0ef890 [path history] [tgz]
  1. autoconf/
  2. automake/
  3. binutils/
  4. buf/
  5. buildifier/
  6. bzip2/
  7. cloud-tasks-emulator/
  8. cmake/
  9. cmake_bootstrap/
  10. cpython/
  11. cpython3/
  12. cpython38/
  13. cpython_common/
  14. curl/
  15. esbuild/
  16. firebase-tools/
  17. flex/
  18. gae_go_sdk/
  19. gcloud/
  20. gettext/
  21. git/
  22. go/
  23. go116/
  24. golangci-lint/
  25. gsutil/
  26. help2man/
  27. lessmsi/
  28. libexpat/
  29. libffi/
  30. libidn2/
  31. libnl/
  32. libtool/
  33. libuuid/
  34. mingw/
  35. mpich/
  36. ncurses/
  37. ncursesw/
  38. ninja/
  39. nodejs/
  40. nsjail/
  41. nsl/
  42. openssl/
  43. pcre/
  44. pcre2/
  45. pip_bootstrap/
  46. protobuf-cpp/
  47. protoc-gen-go-grpc/
  48. protoc-gen-go/
  49. protoc/
  50. re2c/
  51. readline/
  52. renode/
  53. sed/
  54. sqlite/
  55. squashfs/
  56. swig/
  57. texinfo/
  58. tflint/
  59. virtualenv/
  60. win_adk/
  61. win_adk_winpe/
  62. xzutils/
  63. zlib/
  64. .vpython
  65. .vpython3
  66. OWNERS
  67. README.md
  68. cross_util.sh
  69. run_locally.sh
  70. run_remotely.sh
  71. run_remotely_extract_repo_ref.py
  72. run_remotely_slurp_cl.py
3pp/README.md

3pp package definitions

This is a collection of “third-party package” definitions.

See the support_3pp recipe module docs for the format of package definitions.

Building stuff locally

TODO(crbug.com/1171499): run_locally might not work. See [./run_locally.sh]. You can pass help as the first argument for the lowdown. run_locally.sh requires docker to be installed. For googlers, please refer to go/docker.

CIPD Sources

If possible, prefer to use git, url, or script methods. If none of these are workable for a package, cipd source may be used.

Some third-party packages distribute their releases via source tarballs or zips. Sometimes this is done via http or ftp.

To ingest a new tarball/zip:

  • Download the official tarball release from the software site.

    • pick one that is compressed with gzip, bzip2, or is a zip file.
    • If there's no such tarball, consider expanding compression support in the recipe_engine/archive module.
  • Put the tarball in an empty directory by itself (don‘t unpack it). The name of the archive doesn’t matter. Your directory should now look like:

    some/dir/ pkgname-1.2.3.tar.gz

  • Now run:

    $ PKG_NAME=pkgname $ VERSION=1.2.3 $ cipd create
    -in some/dir
    -name infra/third_party/source/$PKG_NAME
    -tag version:$VERSION

  • You can now use the source in a 3pp package definition like:

    source { cipd { pkg: “infra/third_party/source/pkgname” default_version: “1.2.3” original_download_url: “https://original.source.url.example.com” } # Lets 3pp recipe know to expect a single tarball/zip unpack_archive: true }

  • By default the 3pp recipe also expects unpacked archives to unpack their actual contents (files) to a subdirectory (in the Unix world this is typical for tarballs to have all files under a folder named the same thing as the tarball itself). The 3pp recipe will remove these ‘single directories’ and move all contents to the top level directory. To avoid this behavior, see the no_archive_prune option.