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__",
+    ],
 )