Fix execute bit on empty_test.sh (#206)

* make the tarball 555

* Split the bins out from the rest of the package and combine the
packages.

This solution is horrible. The better solution is
- We need something like pkgfilegroup in rules_pkg, so we can specify
  exectuable mode next to the file.
- But we do not want rules_pkg to appear in the rules/BUILD file
  because that would make a runtime dependency.

So we need to
- rewrite rules/BUILD when going into the package.
- or provide magic mapping of files names to mode bits
- or something entirely different.
diff --git a/BUILD b/BUILD
index 8ae601d..191752b 100644
--- a/BUILD
+++ b/BUILD
@@ -65,3 +65,10 @@
         "//toolchains/unittest:distribution",
     ] + glob(["*.bzl"]),
 )
+
+filegroup(
+    name = "bins",
+    srcs = [
+        "//rules:bins",
+    ],
+)
diff --git a/distribution/BUILD b/distribution/BUILD
index f349779..ddebb1c 100644
--- a/distribution/BUILD
+++ b/distribution/BUILD
@@ -6,26 +6,44 @@
 load("@rules_pkg//:pkg.bzl", "pkg_tar")
 load("@rules_pkg//releasing:defs.bzl", "print_rel_notes")
 
-# Build the artifact to put on the github release page.
 pkg_tar(
-    name = "bazel-skylib-%s" % version,
-    srcs = [
-        "//:distribution",
-    ],
-    extension = "tar.gz",
-    # It is all source code, so make it read-only.
+    name = "srcs",
+    srcs = ["//:distribution"],
     mode = "0444",
     # Make it owned by root so it does not have the uid of the CI robot.
     owner = "0.0",
-    package_dir = ".",
+    package_dir = "",
     strip_prefix = ".",
 )
 
+pkg_tar(
+    name = "bins",
+    srcs = ["//:bins"],
+    mode = "0555",
+    # Make it owned by root so it does not have the uid of the CI robot.
+    owner = "0.0",
+    package_dir = "",
+    strip_prefix = ".",
+)
+
+# Build the artifact to put on the github release page.
+pkg_tar(
+    name = "bazel-skylib-%s" % version,
+    extension = "tar.gz",
+    # Make it owned by root so it does not have the uid of the CI robot.
+    owner = "0.0",
+    strip_prefix = ".",
+    deps = [
+        ":bins.tar",
+        ":srcs.tar",
+    ],
+)
+
 print_rel_notes(
     name = "relnotes",
     outs = ["relnotes.txt"],
-    repo = "bazel-skylib",
-    version = version,
-    setup_file = ":workspace.bzl",
     deps_method = "bazel_skylib_workspace",
+    repo = "bazel-skylib",
+    setup_file = ":workspace.bzl",
+    version = version,
 )
diff --git a/rules/BUILD b/rules/BUILD
index fac17b0..f3cfe6c 100644
--- a/rules/BUILD
+++ b/rules/BUILD
@@ -60,7 +60,17 @@
 # The files needed for distribution
 filegroup(
     name = "distribution",
-    srcs = glob(["*"]),
+    srcs = [
+        "BUILD",
+    ] + glob(["*.bzl"]),
+    visibility = [
+        "//:__pkg__",
+    ],
+)
+
+filegroup(
+    name = "bins",
+    srcs = glob(["*.sh"]),
     visibility = [
         "//:__pkg__",
     ],