rules_pkg icon indicating copy to clipboard operation
rules_pkg copied to clipboard

pkg_zip: treeartifact input with REMOVE_BASE_DIRECTORY leads to extra "/" zip entry

Open rbeasley-avgo opened this issue 11 months ago • 0 comments

Suppose the following (loosely ripped from tests/zip/BUILD):

load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "REMOVE_BASE_DIRECTORY")
load("@rules_pkg//pkg:zip.bzl", "pkg_zip")
# load("...:directory.bzl", "directory")  # something that creates a directory/treeartifact

pkg_zip(
  name = "test_zip_tree_remove_base_directory",
  srcs = [":generate_tree_remove_base_directory"],
)

pkg_files(
  name = "generate_tree_remove_base_directory",
  srcs = [":generate_tree"],
  renames = {":generate_tree": REMOVE_BASE_DIRECTORY},
)

directory(
  name = "generate_tree",
  ...
)

When built, the resulting archive contains a "/" entry:

$ zipinfo  -1 bazel-bin/tests/zip/test_zip_tree_remove_base_directory.zip
/
a/
a/a
a/b/
a/b/c
b/
b/c/
b/c/d
b/d
b/e

I believe this is a minor regression from #640 .

rbeasley-avgo avatar Jan 27 '25 23:01 rbeasley-avgo