Provide more examples for pkg_rpm() (#823) * Move prebuilt_rpmbuild example into rpm subdirectory This will help us be a bit more organized as we add a few more RPM-based examples for rules_pkg. * Fix WORKSPACE file to account for subdirectory move One we moved this into a subdirectory it was broke because of how it uses rules_pkg as a local repository. * s/readme.md/README.md/ The latter seems to be more the norm, so renaming for consistency and visibility. * Add more detail to README.md for prebuilt_rpmbuild example This adds a bit more detail the description of the `prebuilt_rpmbuild` example so that someone can understand it a bit more. * Add an example of using system rpmbuild for pkg_rpm() This example is essentially the same as the prebuilt_rpmbuild example except that it uses find_system_rpmbuild() to register the local version of `rpmbuild` as the toolchain to use. * Add an example with bzlmod using system rpmbuild This is very similar to the non-bzlmod version except we've replaced the WORKSPACE file with a MODULE.bazel file. * Add an example that doesn't use a specfile for pkg_rpm() This example uses pkg_rpm() to generate the full rpm in lieu of using a standalone specfile.
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.
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.
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,
)
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")
We hold an engineering status meeting on the first Monday of every month at 10am USA East coast time. Add to calendar / meeting notes