Add --//tools/build_defs/pkg:incompatible_no_build_defs_pkg flag
This flag turns off the rules //tools/build_defs/pkg:{pkg_deb, pkg_rpm, pkg_tar}.
The code has moved to https://github.com/bazelbuild/rules_pkg/tree/master/pkg. Users should migrate to the new versions.
RELNOTES: Adds flag --//tools/build_defs/pkg:incompatible_no_build_defs_pkg. This flag turns off the rules //tools/build_defs/pkg:{pkg_deb, pkg_rpm, pkg_tar}.
Part of #8857
Closes #8858.
PiperOrigin-RevId: 258574031
diff --git a/tools/BUILD b/tools/BUILD
index 38689a4..65c85e2 100644
--- a/tools/BUILD
+++ b/tools/BUILD
@@ -37,6 +37,7 @@
],
)
+# Sources in the built in repo '@bazel_tools'
filegroup(
name = "embedded_tools_srcs",
srcs = glob(["**"]) + [
@@ -45,6 +46,7 @@
"//tools/build_defs:embedded_tools",
"//tools/build_rules:embedded_tools_srcs",
"//tools/buildstamp:srcs",
+ "//tools/config:srcs",
"//tools/coverage:srcs",
"//tools/cpp:embedded_tools",
"//tools/genrule:srcs",
diff --git a/tools/build_defs/pkg/BUILD b/tools/build_defs/pkg/BUILD
index 86d6bd0..a5c4081 100644
--- a/tools/build_defs/pkg/BUILD
+++ b/tools/build_defs/pkg/BUILD
@@ -1,6 +1,14 @@
# -*- coding: utf-8 -*-
+load("//tools/config:common_settings.bzl", "bool_flag")
+
licenses(["notice"]) # Apache 2.0
+bool_flag(
+ name = "incompatible_no_build_defs_pkg",
+ build_setting_default = False,
+ visibility = ["//visibility:public"],
+)
+
filegroup(
name = "srcs",
srcs = glob(["**"]),
@@ -65,6 +73,9 @@
py_binary(
name = "make_deb",
srcs = ["make_deb.py"],
+ deprecation = "The internal version of make_deb is deprecated. Please " +
+ "use the replacement for pkg_deb from " +
+ "https://github.com/bazelbuild/rules_pkg/blob/master/pkg.",
python_version = "PY2",
srcs_version = "PY2AND3",
visibility = ["//visibility:public"],
@@ -78,6 +89,9 @@
py_binary(
name = "make_rpm",
srcs = ["make_rpm.py"],
+ deprecation = "The internal version of make_rpm is deprecated. Please " +
+ "use the replacement for pkg_rpm from " +
+ "https://github.com/bazelbuild/rules_pkg/blob/master/pkg.",
python_version = "PY2",
srcs_version = "PY2AND3",
visibility = ["//visibility:public"],
diff --git a/tools/build_defs/pkg/pkg.bzl b/tools/build_defs/pkg/pkg.bzl
index c2deaee..ddfdfa1 100644
--- a/tools/build_defs/pkg/pkg.bzl
+++ b/tools/build_defs/pkg/pkg.bzl
@@ -14,6 +14,7 @@
"""Rules for manipulation of various packaging."""
load(":path.bzl", "compute_data_path", "dest_path")
+load("//tools/config:common_settings.bzl", "BuildSettingInfo")
# Filetype to restrict inputs
tar_filetype = [".tar", ".tar.gz", ".tgz", ".tar.xz", ".tar.bz2"]
@@ -33,6 +34,10 @@
def _pkg_tar_impl(ctx):
"""Implementation of the pkg_tar rule."""
+ if ctx.attr._no_build_defs_pkg_flag[BuildSettingInfo].value:
+ fail("The built-in version of pkg_deb has been removed. Please use" +
+ " https://github.com/bazelbuild/rules_pkg/blob/master/pkg.")
+
# Compute the relative path
data_path = compute_data_path(ctx.outputs.out, ctx.attr.strip_prefix)
@@ -123,6 +128,11 @@
def _pkg_deb_impl(ctx):
"""The implementation for the pkg_deb rule."""
+
+ if ctx.attr._no_build_defs_pkg_flag[BuildSettingInfo].value:
+ fail("The built-in version of pkg_deb has been removed. Please use" +
+ " https://github.com/bazelbuild/rules_pkg/blob/master/pkg.")
+
files = [ctx.file.data]
args = [
"--output=" + ctx.outputs.deb.path,
@@ -263,6 +273,9 @@
executable = True,
allow_files = True,
),
+ "_no_build_defs_pkg_flag": attr.label(
+ default = "//tools/build_defs/pkg:incompatible_no_build_defs_pkg",
+ ),
},
)
@@ -328,6 +341,9 @@
"out": attr.output(mandatory = True),
"deb": attr.output(mandatory = True),
"changes": attr.output(mandatory = True),
+ "_no_build_defs_pkg_flag": attr.label(
+ default = "//tools/build_defs/pkg:incompatible_no_build_defs_pkg",
+ ),
},
)
diff --git a/tools/build_defs/pkg/rpm.bzl b/tools/build_defs/pkg/rpm.bzl
index beb9fff..e679ca0 100644
--- a/tools/build_defs/pkg/rpm.bzl
+++ b/tools/build_defs/pkg/rpm.bzl
@@ -13,6 +13,8 @@
# limitations under the License.
"""Rules to create RPM archives."""
+load("//tools/config:common_settings.bzl", "BuildSettingInfo")
+
rpm_filetype = [".rpm"]
spec_filetype = [".spec"]
@@ -20,6 +22,10 @@
def _pkg_rpm_impl(ctx):
"""Implements to pkg_rpm rule."""
+ if ctx.attr._no_build_defs_pkg_flag[BuildSettingInfo].value:
+ fail("The built-in version of pkg_rpm has been removed. Please use" +
+ " https://github.com/bazelbuild/rules_pkg/blob/master/pkg.")
+
files = []
args = ["--name=" + ctx.label.name]
if ctx.attr.rpmbuild_path:
@@ -151,7 +157,6 @@
"release_file": attr.label(allow_single_file = True),
"release": attr.string(),
"debug": attr.bool(default = False),
-
# Implicit dependencies.
"rpmbuild_path": attr.string(),
"_make_rpm": attr.label(
@@ -160,6 +165,9 @@
executable = True,
allow_files = True,
),
+ "_no_build_defs_pkg_flag": attr.label(
+ default = "//tools/build_defs/pkg:incompatible_no_build_defs_pkg",
+ ),
},
executable = False,
outputs = _pkg_rpm_outputs,
diff --git a/tools/config/BUILD b/tools/config/BUILD
index 7a757b2..b87c7f2 100644
--- a/tools/config/BUILD
+++ b/tools/config/BUILD
@@ -9,12 +9,15 @@
name = "srcs",
srcs = glob(["**"]),
visibility = [
- "//tools:__pkg__",
- "//tools/build_defs:__pkg__",
+ "//tools:__subpackages__",
+ "@bazel_tools//tools:__subpackages__",
],
)
exports_files(
["common_settings.bzl"],
- visibility = ["//tools:__subpackages__"],
+ visibility = [
+ "//tools:__subpackages__",
+ "@bazel_tools//tools:__subpackages__",
+ ],
)