Upgrade rules_pkg to 0.10.1

This project was upgraded with external_updater.
Usage: tools/external_updater/updater.sh update external/bazelbuild-rules_pkg
For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md

  Update changelog and version numbers. (#819)
  Temporarily restore //mappings.bzl and //pkg.bzl  (#817)
  Fix RPM package release and version files expansion (#816)
  Apply tar remap_paths to runfiles full paths (#812)
  Update build_tar.py
  doc and changelog update to go with 0.10.0 (#809)
  Fill out the CI matrix to cover the bazels that people use. (#807)
  Explicitly set the FILE bit in zip external attributes. (#804)
  Allow substitution of user-defined variables in RPM preamble (#787)
  update docs
  Add %posttrans scriptlet to RPM package (#799)
  Allow additional RPM macro defines (#794)
  back off
  try stardoc again
  Fall back to WORKSPACE.bzlmod for examples/naming.  Something about a local_repository in MODULE.bazel and bazel 7.0.0 is wonky.
  turn off doc building in CI
  Explicitly set `%{_builddir}` macro (#792)
  Update CODEOWNERS (#791)
  Bring tar runfiles up to feature parity with pkg_files.runfiles. (#754)
  Only inject pre and post scriptlets when provided (#788)
  chore: suppress buildifier lint warnings (#776)
  CI fixes (#784)
  Add yun as CI owner (#785)
  Little fixes to stop lint warnings (#783)
  Add support for `Obsoletes` tag in RPM definition (#778)
  fix the imports on the filter directory test (#782)
  Don't load cc toolchain from rules_cc (#779)
  doc: Fixup external manual references (#777)
  chore: buildifier format all files (#775)
  chore: add a pre-commit hook config (#774)
  Refactor all the input processing code. (#756)
  Get bzlmod working in CI (#766)
  use runfiles from rules_python (#768)
  Use rules_cc to try to clean up CI runs which are failing on gcc (#764)
  When pkg_tar.prefix_dir == base of symlink path, don't double-dip. (#749)
  add imports to fix bazel --noexperimental_python_import_all_repositories flag (#630)
  Align pkg_rpm returned files with other rules (#692)
  pkg_deb: allow data.tar.zst (#761)
  fix(pkg_tar): properly normalize paths for empty files (#760)
  Add fixed releaser to because this will be done by a bot. (#757)
  remove --incompatible_use_platforms_repo_for_constraints from ci run (#755)
  Clean up some nits (#751)
  chore: update versions of dependencies (#730)
  Add support for failing on file conflicts. (#683)
  Remove PackageArtifactsInfo. (#752)
  Document that package_dir also uses package_variables (#747)
  include verify_archive_test_main.py.tpl in the distribution (#735)
  buildifier lint fixes (#744)
  make build_tar priavte (#748)
  pkg_tar remap_paths works for TreeArtifacts (bazelbuild#450) (#738)
  add docs for 0.9 (#740)
  update docs
  Fix handling paths with whitepsaces (#733)
  Add logging and extend doc
  Fix test on python 3.6
  Fix python 3.6, doesn't support compresslevel
  Make pkg_zip compression configurable
  Append changelog to RPM spec file (#726)
  Fix pkg_deb changelog flag getter (#734)
  Add basic include_runfiles to pkg_files. (#724)
  Add changelog attribute to pkg_deb (#725)
  chore: automate publishing releases to BCR (#722)
  bump platforms because bazel at head requires it. sigh
  Use Gzip compress level 6 (#720)
  remove a ling to trtigger build
  Update CODEOWNERS (#721)
  default uid and guid on process_src to None
  fix load(py_library) => load(py_binary)
  remove unneeded py_binary load
  write debian Date field in UTC rather than local time (#712)
  fix import in rpm test. (#713)
  Create scorecard.yml (#710)
  Merge verify_archive_test_lib with verify_archive_test_main.py.tpl (#705)
  Add a MODULE.bazel hint to the release not generator (#709)
  docs: add a note in pkg_tar#strip_prefix docs (v.0.8.0) about flattening (#699)
  [pkg_deb] Fix multiline fields in changes file (#691)
  Add a check to ensure that version.bzl and MODULE.bazel remain in sync. (#697)
  Fix typos in doc strings in `verify_archive.bzl` (#700)
  fix working dir on integration tests (#701)
  Add support for setting uid/gid from pkg_attributes (#671)
  Fix spelling mistakes (#695)
  Remove top level .bzl files. They are all in //pkg. (#688)
  Replace reference to bazel-dev with GitHub Discussions.

Test: TreeHugger
Bug: 324907235
Change-Id: I921d16c3d7b6fdc7e6fbff25788caea704eefcb1
tree: d8cb4ccd312a62d49a6b8bb39bef02ed368faea8
  1. .bazelci/
  2. .bcr/
  3. .github/
  4. deb_packages/
  5. distro/
  6. doc_build/
  7. docs/
  8. examples/
  9. pkg/
  10. tests/
  11. toolchains/
  12. .bazelignore
  13. .gitignore
  14. .pre-commit-config.yaml
  15. AUTHORS
  16. BUILD
  17. CHANGELOG.md
  18. CODEOWNERS
  19. CONTRIBUTING.md
  20. CONTRIBUTORS
  21. deps.bzl
  22. developers.md
  23. LICENSE
  24. mappings.bzl
  25. METADATA
  26. MODULE.bazel
  27. MODULE_LICENSE_APACHE2
  28. OWNERS
  29. patching.md
  30. pkg.bzl
  31. README.md
  32. version.bzl
  33. WORKSPACE
  34. WORKSPACE.bzlmod
README.md

Bazel package building

Bazel rules for building tar, zip, deb, and rpm for packages.

For the latest version, see Releases (with WORKSPACE setup) / Documentation

Use rules-pkg-discuss@googlegroups.com for discussion.

CI: Build status

Basic rules

Package building rules

  • pkg - Rules for building packages of various types.
  • examples - Cookbook examples for using the rules.

As of Bazel 4.x, Bazel uses this rule set for packaging its distribution. Bazel still contains a limited version of pkg_tar but its feature set is frozen. Any new capabilities will be added here.

WORKSPACE setup

Sample, but see releases for the current release.

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
    name = "rules_pkg",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.9.1/rules_pkg-0.9.1.tar.gz",
        "https://github.com/bazelbuild/rules_pkg/releases/download/0.9.1/rules_pkg-0.9.1.tar.gz",
    ],
    sha256 = "8f9ee2dc10c1ae514ee599a8b42ed99fa262b757058f65ad3c384289ff70c4b8",
)
load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")
rules_pkg_dependencies()

To use pkg_rpm(), you must provide a copy of rpmbuild. You can use the system installed rpmbuild with this stanza.

load("@rules_pkg//toolchains/rpm:rpmbuild_configure.bzl", "find_system_rpmbuild")

find_system_rpmbuild(
    name = "rules_pkg_rpmbuild",
    verbose = False,
)

MODULE.bazel setup

bazel_dep(name = "rules_pkg", version = "0.0.10")

To use pkg_rpm(), you must provide a copy of rpmbuild. You can use the system installed rpmbuild with this stanza.

find_rpm = use_extension("//toolchains/rpm:rpmbuild_configure.bzl", "find_system_rpmbuild_bzlmod")
use_repo(find_rpm, "rules_pkg_rpmbuild")
register_toolchains("@rules_pkg_rpmbuild//:all")

For developers

We hold an engineering status meeting on the first Monday of every month at 10am USA East coast time. Add to calendar / meeting notes