Bazel: reorganize workspace. Change-Id: I2c9971768ce5401aa5975d41f350c07cc227c80d Signed-off-by: Piotr Sikora <piotrsikora@google.com> Reviewed-on: https://nginx-review.googlesource.com/c/nginx/+/3863 Reviewed-by: Patryk Lesiewicz <patryk@google.com>
diff --git a/BUILD b/BUILD index 4a7f831..1a4abe2 100644 --- a/BUILD +++ b/BUILD
@@ -22,9 +22,9 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. +load("@nginx//bazel:nginx.bzl", "nginx_copts") load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") load("@rules_pkg//:pkg.bzl", "pkg_deb", "pkg_tar") -load(":build.bzl", "nginx_copts") licenses(["notice"]) # BSD license @@ -371,9 +371,9 @@ ], }), deps = [ - "//external:boringssl_crypto", - "//external:boringssl_ssl", - "//external:pcre", + "@boringssl//:crypto", + "@boringssl//:ssl", + "@pcre", ], ) @@ -444,7 +444,7 @@ ], deps = [ ":core", - "//external:zlib", + "@zlib", ], ) @@ -655,7 +655,7 @@ deps = [ ":core", ":http", - "//external:zlib", + "@zlib", ], ) @@ -671,7 +671,7 @@ deps = [ ":core", ":http", - "//external:zlib", + "@zlib", ], ) @@ -1200,7 +1200,7 @@ ], deps = [ ":core", - "//external:zlib", + "@zlib", ], ) @@ -1469,9 +1469,9 @@ srcs = [ ":LICENSE", "@boringssl//:LICENSE", - "@nginx_pcre//:LICENCE", - "@nginx_zlib//:README", "@org_brotli//:LICENSE", + "@pcre//:LICENCE", + "@zlib//:README", ], outs = [ "usr/share/doc/nginx-google/copyright", @@ -1485,9 +1485,9 @@ "echo \"\n\nBrotli license:\n===============\n\" >> $(@);" + "cat $(location @org_brotli//:LICENSE) >> $(@);" + "echo \"\n\nPCRE license:\n=============\n\" >> $(@);" + - "cat $(location @nginx_pcre//:LICENCE) >> $(@);" + + "cat $(location @pcre//:LICENCE) >> $(@);" + "echo \"\n\nzlib license:\n=============\n\" >> $(@);" + - "cat $(location @nginx_zlib//:README) | grep -A99 Copyright >> $(@)", + "cat $(location @zlib//:README) | grep -A99 Copyright >> $(@)", ) pkg_tar(
diff --git a/WORKSPACE b/WORKSPACE index be0f060..645d13f 100644 --- a/WORKSPACE +++ b/WORKSPACE
@@ -24,26 +24,10 @@ workspace(name = "nginx") -# @rules_pkg +load("//bazel:repositories.bzl", "nginx_repositories") -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +nginx_repositories() -http_archive( - name = "rules_pkg", - sha256 = "038f1caa773a7e35b3663865ffb003169c6a71dc995e39bf4815792f385d837d", - url = "https://github.com/bazelbuild/rules_pkg/releases/download/0.4.0/rules_pkg-0.4.0.tar.gz", -) +load("//bazel:dependencies.bzl", "nginx_dependencies") -load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies") - -rules_pkg_dependencies() - -# @nginx - -load(":build.bzl", "nginx_repositories") - -nginx_repositories( - bind = True, - nginx = "@//", - ngx_brotli = True, -) +nginx_dependencies()
diff --git a/bazel/BUILD b/bazel/BUILD new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/bazel/BUILD
diff --git a/bazel/dependencies.bzl b/bazel/dependencies.bzl new file mode 100644 index 0000000..c67b13f --- /dev/null +++ b/bazel/dependencies.bzl
@@ -0,0 +1,28 @@ +# Copyright (C) 2015-2021 Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies") + +def nginx_dependencies(): + rules_pkg_dependencies()
diff --git a/bazel/external/BUILD b/bazel/external/BUILD new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/bazel/external/BUILD
diff --git a/bazel/external/nginx_pkgoss.BUILD b/bazel/external/nginx_pkgoss.BUILD new file mode 100755 index 0000000..16be0e4 --- /dev/null +++ b/bazel/external/nginx_pkgoss.BUILD
@@ -0,0 +1,269 @@ +# Copyright (C) 2015-2021 Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar") + +licenses(["notice"]) + +genrule( + name = "debian_nginx_preinst", + srcs = [ + "debian/nginx.preinst", + ], + outs = [ + "nginx.preinst", + ], + cmd = "sed -e 's|#DEBHELPER#||g'" + + " < $(<) > $(@)", +) + +filegroup( + name = "debian_preinst", + srcs = [ + "nginx.preinst", + ], + visibility = [ + "//visibility:public", + ], +) + +genrule( + name = "debian_nginx_postinst", + srcs = [ + "debian/nginx.postinst", + ], + outs = [ + "nginx.postinst", + ], + cmd = "sed -e 's|#DEBHELPER#|" + + "if [ -x \"/etc/init.d/nginx\" ]; then\\n" + + "\\tupdate-rc.d nginx defaults >/dev/null \\|\\| exit $$?\\n" + + "fi\\n" + + "|g'" + + " < $(<) > $(@)", +) + +filegroup( + name = "debian_postinst", + srcs = [ + "nginx.postinst", + ], + visibility = [ + "//visibility:public", + ], +) + +genrule( + name = "debian_nginx_prerm", + srcs = [ + "debian/nginx.prerm", + ], + outs = [ + "nginx.prerm", + ], + cmd = "sed -e 's|#DEBHELPER#||g'" + + " < $(<) > $(@)", +) + +filegroup( + name = "debian_prerm", + srcs = [ + "nginx.prerm", + ], + visibility = [ + "//visibility:public", + ], +) + +genrule( + name = "debian_nginx_postrm", + srcs = [ + "debian/nginx.postrm", + ], + outs = [ + "nginx.postrm", + ], + cmd = "sed -e 's|#DEBHELPER#|" + + "if [ \"$$1\" = \"purge\" ] ; then\\n" + + "\\tupdate-rc.d nginx remove >/dev/null\\n" + + "fi\\n" + + "\\n" + + "if [ -d /run/systemd/system ] ; then\\n" + + "\\tsystemctl --system daemon-reload >/dev/null \\|\\| true\\n" + + "fi\\n" + + "|g'" + + " < $(<) > $(@)", +) + +filegroup( + name = "debian_postrm", + srcs = [ + "nginx.postrm", + ], + visibility = [ + "//visibility:public", + ], +) + +genrule( + name = "debian_etc_default_nginx", + srcs = [ + "debian/nginx.default", + ], + outs = [ + "etc/default/nginx", + ], + cmd = "cp -p $(<) $(@)", +) + +genrule( + name = "debian_etc_init_d_nginx", + srcs = [ + "debian/nginx.init.in", + ], + outs = [ + "etc/init.d/nginx", + ], + cmd = "sed -e 's|%%PROVIDES%%|nginx|g'" + + " -e 's|%%DEFAULTSTART%%|2 3 4 5|g'" + + " -e 's|%%DEFAULTSTOP%%|0 1 6|g'" + + " < $(<) > $(@)", +) + +genrule( + name = "debian_etc_logrotate_d_nginx", + srcs = [ + "debian/nginx.logrotate", + ], + outs = [ + "etc/logrotate.d/nginx", + ], + cmd = "cp -p $(<) $(@)", +) + +genrule( + name = "debian_etc_nginx_conf_d_default_conf", + srcs = [ + "debian/nginx.vh.default.conf", + ], + outs = [ + "etc/nginx/conf.d/default.conf", + ], + cmd = "cp -p $(<) $(@)", +) + +genrule( + name = "debian_etc_nginx_nginx_conf", + srcs = [ + "debian/nginx.conf", + ], + outs = [ + "etc/nginx/nginx.conf", + ], + cmd = "cp -p $(<) $(@)", +) + +genrule( + name = "debian_usr_share_man_man8_nginx_8", + srcs = [ + "@nginx//:docs/man/nginx.8", + ], + outs = [ + "usr/share/man/man8/nginx.8", + ], + cmd = "sed -e 's|%%PREFIX%%|/etc/nginx|g'" + + " -e 's|%%CONF_PATH%%|/etc/nginx/nginx.conf|g'" + + " -e 's|%%ERROR_LOG_PATH%%|/var/log/nginx/error.log|g'" + + " -e 's|%%PID_PATH%%|/var/run/nginx.pid|g'" + + " < $(<) > $(@)", +) + +genrule( + name = "debian_var_cache_nginx", + outs = [ + "var/cache/nginx/.empty", + ], + cmd = "touch $(@)", +) + +genrule( + name = "debian_var_log_nginx", + outs = [ + "var/log/nginx/.empty", + ], + cmd = "touch $(@)", +) + +pkg_tar( + name = "debian_etc_nginx", + srcs = [ + "@nginx//:config_includes", + ], + mode = "0644", + package_dir = "/etc/nginx", +) + +pkg_tar( + name = "debian_usr_share_nginx_html", + srcs = [ + "@nginx//:html_files", + ], + mode = "0644", + package_dir = "/usr/share/nginx/html", +) + +pkg_tar( + name = "debian_var", + srcs = [ + "var/cache/nginx/.empty", + "var/log/nginx/.empty", + ], + mode = "0644", + strip_prefix = ".", +) + +pkg_tar( + name = "debian_overlay", + srcs = [ + "etc/default/nginx", + "etc/init.d/nginx", + "etc/logrotate.d/nginx", + "etc/nginx/conf.d/default.conf", + "etc/nginx/nginx.conf", + "usr/share/man/man8/nginx.8", + ], + mode = "0644", + modes = { + "etc/init.d/nginx": "0755", + }, + strip_prefix = ".", + visibility = [ + "//visibility:public", + ], + deps = [ + ":debian_etc_nginx", + ":debian_usr_share_nginx_html", + ":debian_var", + ], +)
diff --git a/bazel/external/ngx_brotli.BUILD b/bazel/external/ngx_brotli.BUILD new file mode 100755 index 0000000..ee6a4ac --- /dev/null +++ b/bazel/external/ngx_brotli.BUILD
@@ -0,0 +1,80 @@ +# Copyright (C) 2015-2021 Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +load("@nginx//bazel:nginx.bzl", "nginx_copts") +load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") + +licenses(["notice"]) # BSD license + +exports_files(["LICENSE"]) + +cc_library( + name = "http_brotli_filter", + srcs = [ + "src/ngx_http_brotli_filter_module.c", + ], + copts = nginx_copts, + defines = [ + "NGX_HTTP_BROTLI_FILTER", + ], + visibility = [ + "//visibility:public", + ], + deps = [ + "@nginx//:core", + "@nginx//:http", + "@org_brotli//:brotlienc", + ], +) + +cc_library( + name = "http_brotli_static", + srcs = [ + "src/ngx_http_brotli_static_module.c", + ], + copts = nginx_copts, + defines = [ + "NGX_HTTP_BROTLI_STATIC", + ], + visibility = [ + "//visibility:public", + ], + deps = [ + "@nginx//:core", + "@nginx//:http", + ], +) + +cc_binary( + name = "nginx", + srcs = [ + "@nginx//:modules", + ], + copts = nginx_copts, + deps = [ + ":http_brotli_filter", + ":http_brotli_static", + "@nginx//:core", + ], +)
diff --git a/bazel/external/pcre.BUILD b/bazel/external/pcre.BUILD new file mode 100755 index 0000000..041cd5c --- /dev/null +++ b/bazel/external/pcre.BUILD
@@ -0,0 +1,131 @@ +# Copyright (C) 2015-2021 Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +load("@rules_cc//cc:defs.bzl", "cc_library") + +licenses(["notice"]) + +exports_files(["LICENCE"]) + +genrule( + name = "config_h", + srcs = [ + "config.h.generic", + ], + outs = [ + "config.h", + ], + cmd = "cp -p $(<) $(@)", +) + +genrule( + name = "pcre_h", + srcs = [ + "pcre.h.generic", + ], + outs = [ + "pcre.h", + ], + cmd = "cp -p $(<) $(@)", +) + +genrule( + name = "pcre_chartables_c", + srcs = [ + "pcre_chartables.c.dist", + ], + outs = [ + "pcre_chartables.c", + ], + cmd = "cp -p $(<) $(@)", +) + +cc_library( + name = "sljit", + srcs = [ + "sljit/sljitConfig.h", + "sljit/sljitConfigInternal.h", + "sljit/sljitLir.h", + ], + hdrs = [ + "sljit/sljitExecAllocator.c", + "sljit/sljitLir.c", + "sljit/sljitNativeX86_64.c", + "sljit/sljitNativeX86_common.c", + "sljit/sljitUtils.c", + ], +) + +cc_library( + name = "pcre", + srcs = [ + "config.h", + "pcre_byte_order.c", + "pcre_chartables.c", + "pcre_compile.c", + "pcre_config.c", + "pcre_dfa_exec.c", + "pcre_exec.c", + "pcre_fullinfo.c", + "pcre_get.c", + "pcre_globals.c", + "pcre_internal.h", + "pcre_jit_compile.c", + "pcre_maketables.c", + "pcre_newline.c", + "pcre_ord2utf8.c", + "pcre_refcount.c", + "pcre_study.c", + "pcre_tables.c", + "pcre_ucd.c", + "pcre_valid_utf8.c", + "pcre_version.c", + "pcre_xclass.c", + "ucp.h", + ], + hdrs = [ + "pcre.h", + ], + copts = [ + "-DHAVE_CONFIG_H", + "-DHAVE_MEMMOVE", + "-DHAVE_STDINT_H", + "-DNO_RECURSE", + "-DSUPPORT_JIT", + "-DSUPPORT_PCRE8", + "-DSUPPORT_UCP", + "-DSUPPORT_UTF", + "-Wno-maybe-uninitialized", + "-Wno-unknown-warning-option", + ], + includes = [ + ".", + ], + visibility = [ + "//visibility:public", + ], + deps = [ + ":sljit", + ], +)
diff --git a/bazel/external/zlib.BUILD b/bazel/external/zlib.BUILD new file mode 100755 index 0000000..0c108e0 --- /dev/null +++ b/bazel/external/zlib.BUILD
@@ -0,0 +1,62 @@ +# Copyright (C) 2015-2021 Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +load("@rules_cc//cc:defs.bzl", "cc_library") + +licenses(["notice"]) + +exports_files(["README"]) + +cc_library( + name = "zlib", + srcs = [ + "adler32.c", + "crc32.c", + "crc32.h", + "deflate.c", + "deflate.h", + "infback.c", + "inffast.c", + "inffast.h", + "inffixed.h", + "inflate.c", + "inflate.h", + "inftrees.c", + "inftrees.h", + "trees.c", + "trees.h", + "zconf.h", + "zutil.c", + "zutil.h", + ], + hdrs = [ + "zlib.h", + ], + defines = [ + "Z_SOLO", + ], + visibility = [ + "//visibility:public", + ], +)
diff --git a/bazel/nginx.bzl b/bazel/nginx.bzl new file mode 100644 index 0000000..3105f77 --- /dev/null +++ b/bazel/nginx.bzl
@@ -0,0 +1,47 @@ +# Copyright (C) 2015-2021 Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +_common_copts = [ + "-fno-common", + "-fvisibility=hidden", + "-Wall", + "-Werror", + "-Wextra", + "-Wformat=2", + "-Wlong-long", + "-Wpointer-arith", + "-Wshadow", + "-Wno-deprecated-declarations", + "-Wno-unused-parameter", +] + +nginx_copts = _common_copts + [ + "-Wmissing-prototypes", + "-Wold-style-definition", + "-Wstrict-prototypes", +] + +nginx_cxxopts = _common_copts + [ + "-Wmissing-declarations", +]
diff --git a/bazel/repositories.bzl b/bazel/repositories.bzl new file mode 100644 index 0000000..24b0f0d --- /dev/null +++ b/bazel/repositories.bzl
@@ -0,0 +1,88 @@ +# Copyright (C) 2015-2021 Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +load( + "@bazel_tools//tools/build_defs/repo:git.bzl", + "git_repository", + "new_git_repository", +) +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +def nginx_repositories(): + # packaging + new_git_repository( + name = "nginx_pkgoss", + build_file = "@nginx//bazel/external:nginx_pkgoss.BUILD", + commit = "319a336633b034c798b26e23a15fda1b54545fc9", # nginx-1.19.9 + remote = "https://nginx.googlesource.com/nginx-pkgoss", + shallow_since = "1617121567 +0300", + ) + + http_archive( + name = "rules_pkg", + sha256 = "038f1caa773a7e35b3663865ffb003169c6a71dc995e39bf4815792f385d837d", + url = "https://github.com/bazelbuild/rules_pkg/releases/download/0.4.0/rules_pkg-0.4.0.tar.gz", + ) + + # BoringSSL + git_repository( + name = "boringssl", + commit = "55b3946d1d961e76ec0a21b37c20457efd273af6", # 2021-03-02 + remote = "https://boringssl.googlesource.com/boringssl", + shallow_since = "1614643264 +0000", + ) + + # PCRE + http_archive( + name = "pcre", + build_file = "@nginx//bazel/external:pcre.BUILD", + sha256 = "aecafd4af3bd0f3935721af77b889d9024b2e01d96b58471bd91a3063fb47728", + strip_prefix = "pcre-8.44", + url = "https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz", + ) + + # zlib + http_archive( + name = "zlib", + build_file = "@nginx//bazel/external:zlib.BUILD", + sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1", + strip_prefix = "zlib-1.2.11", + url = "https://zlib.net/zlib-1.2.11.tar.gz", + ) + + # ngx_brotli + dependencies + new_git_repository( + name = "ngx_brotli", + build_file = "@nginx//bazel/external:ngx_brotli.BUILD", + commit = "5ead1ada782b18c7b38a3c2798a40a334801c7b6", # 2016-12-05 + remote = "https://nginx.googlesource.com/ngx_brotli", + shallow_since = "1480976257 +0000", + ) + + git_repository( + name = "org_brotli", + commit = "222564a95d9ab58865a096b8d9f7324ea5f2e03e", # 2016-12-02 + remote = "https://github.com/google/brotli.git", + shallow_since = "1480681940 +0100", + )
diff --git a/build.bzl b/build.bzl deleted file mode 100644 index 1131579..0000000 --- a/build.bzl +++ /dev/null
@@ -1,708 +0,0 @@ -# Copyright (C) 2015-2021 Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. - -load( - "@bazel_tools//tools/build_defs/repo:git.bzl", - "git_repository", - "new_git_repository", -) -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -_common_copts = [ - "-fno-common", - "-fvisibility=hidden", - "-Wall", - "-Werror", - "-Wextra", - "-Wformat=2", - "-Wlong-long", - "-Wpointer-arith", - "-Wshadow", - "-Wno-deprecated-declarations", - "-Wno-unused-parameter", -] - -nginx_copts = _common_copts + [ - "-Wmissing-prototypes", - "-Wold-style-definition", - "-Wstrict-prototypes", -] - -nginx_cxxopts = _common_copts + [ - "-Wmissing-declarations", -] - -_NGX_BROTLI_BUILD_FILE = """ -# Copyright (C) 2015-2021 Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. - -licenses(["notice"]) # BSD license - -exports_files(["LICENSE"]) - -load("{nginx}:build.bzl", "nginx_copts") - -cc_library( - name = "http_brotli_filter", - srcs = [ - "src/ngx_http_brotli_filter_module.c", - ], - copts = nginx_copts, - defines = [ - "NGX_HTTP_BROTLI_FILTER", - ], - visibility = [ - "//visibility:public", - ], - deps = [ - "//external:brotli_enc", - "{nginx}:core", - "{nginx}:http", - ], -) - -cc_library( - name = "http_brotli_static", - srcs = [ - "src/ngx_http_brotli_static_module.c", - ], - copts = nginx_copts, - defines = [ - "NGX_HTTP_BROTLI_STATIC", - ], - visibility = [ - "//visibility:public", - ], - deps = [ - "{nginx}:core", - "{nginx}:http", - ], -) - -cc_binary( - name = "nginx", - srcs = [ - "{nginx}:modules", - ], - copts = nginx_copts, - deps = [ - ":http_brotli_filter", - ":http_brotli_static", - "{nginx}:core", - ], -) -""" - -_PCRE_BUILD_FILE = """ -# Copyright (C) 2015-2021 Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. - -licenses(["notice"]) - -exports_files(["LICENCE"]) - -genrule( - name = "config_h", - srcs = [ - "config.h.generic", - ], - outs = [ - "config.h", - ], - cmd = "cp -p $(<) $(@)", -) - -genrule( - name = "pcre_h", - srcs = [ - "pcre.h.generic", - ], - outs = [ - "pcre.h", - ], - cmd = "cp -p $(<) $(@)", -) - -genrule( - name = "pcre_chartables_c", - srcs = [ - "pcre_chartables.c.dist", - ], - outs = [ - "pcre_chartables.c", - ], - cmd = "cp -p $(<) $(@)", -) - -cc_library( - name = "sljit", - srcs = [ - "sljit/sljitConfig.h", - "sljit/sljitConfigInternal.h", - "sljit/sljitLir.h", - ], - hdrs = [ - "sljit/sljitExecAllocator.c", - "sljit/sljitLir.c", - "sljit/sljitNativeX86_64.c", - "sljit/sljitNativeX86_common.c", - "sljit/sljitUtils.c", - ], -) - -cc_library( - name = "pcre", - srcs = [ - "config.h", - "pcre_byte_order.c", - "pcre_chartables.c", - "pcre_compile.c", - "pcre_config.c", - "pcre_dfa_exec.c", - "pcre_exec.c", - "pcre_fullinfo.c", - "pcre_get.c", - "pcre_globals.c", - "pcre_internal.h", - "pcre_jit_compile.c", - "pcre_maketables.c", - "pcre_newline.c", - "pcre_ord2utf8.c", - "pcre_refcount.c", - "pcre_study.c", - "pcre_tables.c", - "pcre_ucd.c", - "pcre_valid_utf8.c", - "pcre_version.c", - "pcre_xclass.c", - "ucp.h", - ], - hdrs = [ - "pcre.h", - ], - copts = [ - "-DHAVE_CONFIG_H", - "-DHAVE_MEMMOVE", - "-DHAVE_STDINT_H", - "-DNO_RECURSE", - "-DSUPPORT_JIT", - "-DSUPPORT_PCRE8", - "-DSUPPORT_UCP", - "-DSUPPORT_UTF", - "-Wno-maybe-uninitialized", - "-Wno-unknown-warning-option", - ], - includes = [ - ".", - ], - visibility = [ - "//visibility:public", - ], - deps = [ - ":sljit", - ], -) -""" - -_PKGOSS_BUILD_FILE = """ -# Copyright (C) 2015-2021 Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. - -licenses(["notice"]) - -exports_files(["README"]) - -load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar") - -genrule( - name = "debian_nginx_preinst", - srcs = [ - "debian/nginx.preinst", - ], - outs = [ - "nginx.preinst", - ], - cmd = "sed -e 's|#DEBHELPER#||g'" + - " < $(<) > $(@)", -) - -filegroup( - name = "debian_preinst", - srcs = [ - "nginx.preinst", - ], - visibility = [ - "//visibility:public", - ], -) - -genrule( - name = "debian_nginx_postinst", - srcs = [ - "debian/nginx.postinst", - ], - outs = [ - "nginx.postinst", - ], - cmd = "sed -e 's|#DEBHELPER#|" + - "if [ -x \\"/etc/init.d/nginx\\" ]; then\\\\n" + - "\\\\tupdate-rc.d nginx defaults >/dev/null \\\\|\\\\| exit $$?\\\\n" + - "fi\\\\n" + - "|g'" + - " < $(<) > $(@)", -) - -filegroup( - name = "debian_postinst", - srcs = [ - "nginx.postinst", - ], - visibility = [ - "//visibility:public", - ], -) - -genrule( - name = "debian_nginx_prerm", - srcs = [ - "debian/nginx.prerm", - ], - outs = [ - "nginx.prerm", - ], - cmd = "sed -e 's|#DEBHELPER#||g'" + - " < $(<) > $(@)", -) - -filegroup( - name = "debian_prerm", - srcs = [ - "nginx.prerm", - ], - visibility = [ - "//visibility:public", - ], -) - -genrule( - name = "debian_nginx_postrm", - srcs = [ - "debian/nginx.postrm", - ], - outs = [ - "nginx.postrm", - ], - cmd = "sed -e 's|#DEBHELPER#|" + - "if [ \\"$$1\\" = \\"purge\\" ] ; then\\\\n" + - "\\\\tupdate-rc.d nginx remove >/dev/null\\\\n" + - "fi\\\\n" + - "\\\\n" + - "if [ -d /run/systemd/system ] ; then\\\\n" + - "\\\\tsystemctl --system daemon-reload >/dev/null \\\\|\\\\| true\\\\n" + - "fi\\\\n" + - "|g'" + - " < $(<) > $(@)", -) - -filegroup( - name = "debian_postrm", - srcs = [ - "nginx.postrm", - ], - visibility = [ - "//visibility:public", - ], -) - -genrule( - name = "debian_etc_default_nginx", - srcs = [ - "debian/nginx.default", - ], - outs = [ - "etc/default/nginx", - ], - cmd = "cp -p $(<) $(@)", -) - -genrule( - name = "debian_etc_init_d_nginx", - srcs = [ - "debian/nginx.init.in", - ], - outs = [ - "etc/init.d/nginx", - ], - cmd = "sed -e 's|%%PROVIDES%%|nginx|g'" + - " -e 's|%%DEFAULTSTART%%|2 3 4 5|g'" + - " -e 's|%%DEFAULTSTOP%%|0 1 6|g'" + - " < $(<) > $(@)", -) - -genrule( - name = "debian_etc_logrotate_d_nginx", - srcs = [ - "debian/nginx.logrotate", - ], - outs = [ - "etc/logrotate.d/nginx", - ], - cmd = "cp -p $(<) $(@)", -) - -genrule( - name = "debian_etc_nginx_conf_d_default_conf", - srcs = [ - "debian/nginx.vh.default.conf", - ], - outs = [ - "etc/nginx/conf.d/default.conf", - ], - cmd = "cp -p $(<) $(@)", -) - -genrule( - name = "debian_etc_nginx_nginx_conf", - srcs = [ - "debian/nginx.conf", - ], - outs = [ - "etc/nginx/nginx.conf", - ], - cmd = "cp -p $(<) $(@)", -) - -genrule( - name = "debian_usr_share_man_man8_nginx_8", - srcs = [ - "{nginx}:docs/man/nginx.8", - ], - outs = [ - "usr/share/man/man8/nginx.8", - ], - cmd = "sed -e 's|%%PREFIX%%|/etc/nginx|g'" + - " -e 's|%%CONF_PATH%%|/etc/nginx/nginx.conf|g'" + - " -e 's|%%ERROR_LOG_PATH%%|/var/log/nginx/error.log|g'" + - " -e 's|%%PID_PATH%%|/var/run/nginx.pid|g'" + - " < $(<) > $(@)", -) - -genrule( - name = "debian_var_cache_nginx", - outs = [ - "var/cache/nginx/.empty", - ], - cmd = "touch $(@)", -) - -genrule( - name = "debian_var_log_nginx", - outs = [ - "var/log/nginx/.empty", - ], - cmd = "touch $(@)", -) - -pkg_tar( - name = "debian_etc_nginx", - srcs = [ - "{nginx}:config_includes", - ], - mode = "0644", - package_dir = "/etc/nginx", -) - -pkg_tar( - name = "debian_usr_share_nginx_html", - srcs = [ - "{nginx}:html_files", - ], - mode = "0644", - package_dir = "/usr/share/nginx/html", -) - -pkg_tar( - name = "debian_var", - srcs = [ - "var/cache/nginx/.empty", - "var/log/nginx/.empty", - ], - mode = "0644", - strip_prefix = ".", -) -""" - -_PKGOSS_BUILD_FILE_TAIL = """ -pkg_tar( - name = "debian_overlay", - srcs = [ - "etc/default/nginx", - "etc/init.d/nginx", - "etc/logrotate.d/nginx", - "etc/nginx/conf.d/default.conf", - "etc/nginx/nginx.conf", - "usr/share/man/man8/nginx.8", - ], - mode = "0644", - modes = { - "etc/init.d/nginx": "0755", - }, - strip_prefix = ".", - visibility = [ - "//visibility:public", - ], - deps = [ - ":debian_etc_nginx", - ":debian_usr_share_nginx_html", - ":debian_var", - ], -) -""" - -_ZLIB_BUILD_FILE = """ -# Copyright (C) 2015-2021 Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. - -licenses(["notice"]) - -exports_files(["README"]) - -cc_library( - name = "zlib", - srcs = [ - "adler32.c", - "crc32.c", - "crc32.h", - "deflate.c", - "deflate.h", - "infback.c", - "inffast.c", - "inffast.h", - "inffixed.h", - "inflate.c", - "inflate.h", - "inftrees.c", - "inftrees.h", - "trees.c", - "trees.h", - "zconf.h", - "zutil.c", - "zutil.h", - ], - hdrs = [ - "zlib.h", - ], - defines = [ - "Z_SOLO", - ], - visibility = [ - "//visibility:public", - ], -) -""" - -def nginx_repositories_boringssl(bind): - git_repository( - name = "boringssl", - commit = "55b3946d1d961e76ec0a21b37c20457efd273af6", # 2021-03-02 - remote = "https://boringssl.googlesource.com/boringssl", - shallow_since = "1614643264 +0000", - ) - - if bind: - native.bind( - name = "boringssl_crypto", - actual = "@boringssl//:crypto", - ) - - native.bind( - name = "boringssl_ssl", - actual = "@boringssl//:ssl", - ) - -def nginx_repositories_brotli(bind): - git_repository( - name = "org_brotli", - commit = "222564a95d9ab58865a096b8d9f7324ea5f2e03e", # 2016-12-02 - remote = "https://github.com/google/brotli.git", - shallow_since = "1480681940 +0100", - ) - - if bind: - native.bind( - name = "brotli_enc", - actual = "@org_brotli//:brotlienc", - ) - - native.bind( - name = "brotli_dec", - actual = "@org_brotli//:brotlidec", - ) - -def nginx_repositories_ngx_brotli(nginx): - new_git_repository( - name = "ngx_brotli", - build_file_content = _NGX_BROTLI_BUILD_FILE.format(nginx = nginx), - commit = "5ead1ada782b18c7b38a3c2798a40a334801c7b6", # 2016-12-05 - remote = "https://nginx.googlesource.com/ngx_brotli", - shallow_since = "1480976257 +0000", - ) - -def nginx_repositories_pcre(bind): - http_archive( - name = "nginx_pcre", - build_file_content = _PCRE_BUILD_FILE, - sha256 = "aecafd4af3bd0f3935721af77b889d9024b2e01d96b58471bd91a3063fb47728", - strip_prefix = "pcre-8.44", - url = "https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz", - ) - - if bind: - native.bind( - name = "pcre", - actual = "@nginx_pcre//:pcre", - ) - -def nginx_repositories_pkgoss(nginx): - new_git_repository( - name = "nginx_pkgoss", - build_file_content = _PKGOSS_BUILD_FILE.format(nginx = nginx) + - _PKGOSS_BUILD_FILE_TAIL, - commit = "319a336633b034c798b26e23a15fda1b54545fc9", # nginx-1.19.9 - remote = "https://nginx.googlesource.com/nginx-pkgoss", - shallow_since = "1617121567 +0300", - ) - -def nginx_repositories_zlib(bind): - http_archive( - name = "nginx_zlib", - build_file_content = _ZLIB_BUILD_FILE, - sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1", - strip_prefix = "zlib-1.2.11", - url = "https://zlib.net/zlib-1.2.11.tar.gz", - ) - - if bind: - native.bind( - name = "zlib", - actual = "@nginx_zlib//:zlib", - ) - -def nginx_repositories(bind = False, nginx = "@nginx//", ngx_brotli = False): - # core dependencies - nginx_repositories_boringssl(bind) - nginx_repositories_pcre(bind) - nginx_repositories_zlib(bind) - - # packaging - nginx_repositories_pkgoss(nginx) - - # ngx_brotli + dependencies - if ngx_brotli: - nginx_repositories_ngx_brotli(nginx) - nginx_repositories_brotli(bind)
diff --git a/src/ngx_modules.c b/src/ngx_modules.c index 2f1a4db..1fb3f35 100644 --- a/src/ngx_modules.c +++ b/src/ngx_modules.c
@@ -1183,21 +1183,21 @@ #endif #if (NGX_SSL) - ngx_write_stderr(" --with-openssl=//external:boringssl"); + ngx_write_stderr(" --with-openssl=@boringssl"); #endif #if (NGX_PCRE) - ngx_write_stderr(" --with-pcre=//external:pcre"); + ngx_write_stderr(" --with-pcre=@pcre"); ngx_write_stderr(" --with-pcre-jit"); #endif #if (NGX_ZLIB) - ngx_write_stderr(" --with-zlib=//external:zlib"); + ngx_write_stderr(" --with-zlib=@zlib"); #endif #if (NGX_HTTP_BROTLI_FILTER) - ngx_write_stderr(" --add-module=//ngx_brotli:http_brotli_filter"); + ngx_write_stderr(" --add-module=@ngx_brotli//:http_brotli_filter"); #endif #if (NGX_HTTP_BROTLI_STATIC) - ngx_write_stderr(" --add-module=//ngx_brotli:http_brotli_static"); + ngx_write_stderr(" --add-module=@ngx_brotli//:http_brotli_static"); #endif ngx_write_stderr(NGX_LINEFEED);