libxau@1.0.12.bcr.2, libxcb@1.17.0.bcr.2, libxtrans@1.5.2.bcr.1, libx11@1.8.12.bcr.2 (#5779)

- libxau@1.0.12.bcr.2
   - Remove 'int main' function from library code.
- libxcb@1.17.0.bcr.2
   - Add missing load statements.
- libxtrans@1.5.2.bcr.1
   - Move textual_hdrs to hdrs.
- libx11@1.8.12.bcr.2
   - Disable HASSETUGID; it's not available on Linux.
   - Add missing source file imTrans.c.
   - Bump libxau to fixed 1.0.12.bcr.2.
   - Bump libxcb to fixed 1.17.0.bcr.2.
   - Bump libxtrans to fixed 1.5.2.bcr.1.
diff --git a/modules/libx11/1.8.12.bcr.2/MODULE.bazel b/modules/libx11/1.8.12.bcr.2/MODULE.bazel
new file mode 100644
index 0000000..89419f1
--- /dev/null
+++ b/modules/libx11/1.8.12.bcr.2/MODULE.bazel
@@ -0,0 +1,14 @@
+module(
+    name = "libx11",
+    version = "1.8.12.bcr.2",
+    bazel_compatibility = [">=7.2.1"],
+    compatibility_level = 1,
+)
+
+bazel_dep(name = "bazel_skylib", version = "1.7.1")
+bazel_dep(name = "libxau", version = "1.0.12.bcr.2")
+bazel_dep(name = "libxcb", version = "1.17.0.bcr.2")
+bazel_dep(name = "libxtrans", version = "1.5.2.bcr.1")
+bazel_dep(name = "platforms", version = "1.0.0")
+bazel_dep(name = "rules_cc", version = "0.1.4")
+bazel_dep(name = "xorgproto", version = "2024.1.bcr.1")
diff --git a/modules/libx11/1.8.12.bcr.2/overlay/BUILD.bazel b/modules/libx11/1.8.12.bcr.2/overlay/BUILD.bazel
new file mode 100644
index 0000000..f95d5ef
--- /dev/null
+++ b/modules/libx11/1.8.12.bcr.2/overlay/BUILD.bazel
@@ -0,0 +1,157 @@
+load("@bazel_skylib//rules:expand_template.bzl", "expand_template")
+load("@rules_cc//cc:defs.bzl", "cc_library")
+
+MODULES_LC = glob(["modules/lc/**/*.c"])
+
+MODULES_OM = glob(["modules/om/**/*.c"])
+
+MODULES_IM = [
+    "modules/im/ximcp/imCallbk.c",
+    "modules/im/ximcp/imDefFlt.c",
+    "modules/im/ximcp/imDefIc.c",
+    "modules/im/ximcp/imDefIm.c",
+    "modules/im/ximcp/imDefLkup.c",
+    "modules/im/ximcp/imDispch.c",
+    "modules/im/ximcp/imEvToWire.c",
+    "modules/im/ximcp/imExten.c",
+    "modules/im/ximcp/imImSw.c",
+    "modules/im/ximcp/imInt.c",
+    "modules/im/ximcp/imInsClbk.c",
+    "modules/im/ximcp/imLcFlt.c",
+    "modules/im/ximcp/imLcGIc.c",
+    "modules/im/ximcp/imLcIc.c",
+    "modules/im/ximcp/imLcIm.c",
+    "modules/im/ximcp/imLcLkup.c",
+    "modules/im/ximcp/imLcPrs.c",
+    "modules/im/ximcp/imLcSIc.c",
+    "modules/im/ximcp/imRm.c",
+    "modules/im/ximcp/imRmAttr.c",
+    "modules/im/ximcp/imThaiFlt.c",
+    "modules/im/ximcp/imThaiIc.c",
+    "modules/im/ximcp/imThaiIm.c",
+    "modules/im/ximcp/imTrans.c",
+    "modules/im/ximcp/imTransR.c",
+    "modules/im/ximcp/imTrX.c",
+]
+
+LIBI18N_SRCS = glob(
+    [
+        "src/xlibi18n/**/*.c",
+        "src/xlibi18n/**/*.h",
+    ],
+    exclude = [
+        "src/xlibi18n/lcUniConv/8bit_tab_to_h.c",
+        "src/xlibi18n/lcUniConv/cjk_tab_to_h.c",
+    ],
+)
+
+XCMS_SRCS = glob([
+    "src/xcms/**/*.c",
+    "src/xcms/**/*.h",
+])
+
+XKB_SRCS = glob([
+    "src/xkb/**/*.c",
+    "src/xkb/**/*.h",
+])
+
+expand_template(
+    name = "xlibconf_h",
+    out = "include/X11/XlibConf.h",
+    substitutions = {
+        "#undef XTHREADS": "#define XTHREADS 1",
+        "#undef XUSE_MTSAFE_API": "#define XUSE_MTSAFE_API 1",
+    },
+    template = "include/X11/XlibConf.h.in",
+)
+
+cc_binary(
+    name = "makekeys",
+    srcs = ["src/util/makekeys.c"],
+)
+
+genrule(
+    name = "ks_tables",
+    srcs = ["@xorgproto//:include/X11/" + x for x in [
+        "keysymdef.h",
+        "XF86keysym.h",
+        "Sunkeysym.h",
+        "DECkeysym.h",
+        "HPkeysym.h",
+    ]],
+    outs = ["ks_tables.h"],
+    cmd = "$(location :makekeys) $(SRCS) > $@",
+    tools = [":makekeys"],
+)
+
+UPSTREAM_VERSION = module_version().split(".bcr.", 1)[0]
+
+UPSTREAM_VERSION_MAJOR = UPSTREAM_VERSION.split(".")[0]
+
+UPSTREAM_VERSION_MINOR = UPSTREAM_VERSION.split(".")[1]
+
+UPSTREAM_VERSION_PATCH = UPSTREAM_VERSION.split(".")[2]
+
+expand_template(
+    name = "config_h",
+    out = "src/config.h",
+    substitutions = {
+        "{LIBX11_VERSION}": UPSTREAM_VERSION,
+        "{LIBX11_VERSION_MAJOR}": UPSTREAM_VERSION_MAJOR,
+        "{LIBX11_VERSION_MINOR}": UPSTREAM_VERSION_MINOR,
+        "{LIBX11_VERSION_PATCH}": UPSTREAM_VERSION_PATCH,
+    } | select({
+        "@platforms//os:macos": {},
+        "//conditions:default": {
+            "#define BSD44SOCKETS 1": "/* #undef BSD44SOCKETS */",
+            "#define HAVE_SYS_FILIO_H 1": "/* #undef HAVE_SYS_FILIO_H */",
+        },
+    }),
+    template = "src/config.h.in",
+)
+
+cc_library(
+    name = "x11",
+    srcs = glob(
+        [
+            "src/*.c",
+            "src/*.h",
+        ],
+        exclude = ["src/os2Stubs.c"],
+    ) + XCMS_SRCS + XKB_SRCS + LIBI18N_SRCS + MODULES_LC + MODULES_OM + MODULES_IM,
+    hdrs = glob(["include/X11/**/*.h"]) + [
+        "//:config_h",
+        "//:ks_tables",
+        "//:xlibconf_h",
+    ],
+    copts = [
+        "-Wno-implicit-function-declaration",
+        "-Wno-int-conversion",
+        "-DHAVE_CONFIG_H",
+    ],
+    defines = [
+        "XCMSDIR=\\\"src/xcms\\\"",
+        "XLOCALELIBDIR=\\\"/tmp\\\"",
+    ],
+    includes = [
+        "include",
+        "include/X11",
+        "src",
+        "src/xcms",
+        "src/xkb",
+        "src/xlibi18n",
+    ],
+    visibility = ["//visibility:public"],
+    deps = [
+        "@libxau",
+        "@libxcb",
+        "@libxtrans",
+        "@xorgproto",
+    ],
+)
+
+alias(
+    name = "libx11",
+    actual = ":x11",
+    visibility = ["//visibility:public"],
+)
diff --git a/modules/libx11/1.8.12.bcr.2/overlay/MODULE.bazel b/modules/libx11/1.8.12.bcr.2/overlay/MODULE.bazel
new file mode 120000
index 0000000..9b599e3
--- /dev/null
+++ b/modules/libx11/1.8.12.bcr.2/overlay/MODULE.bazel
@@ -0,0 +1 @@
+../MODULE.bazel
\ No newline at end of file
diff --git a/modules/libx11/1.8.12.bcr.2/overlay/src/config.h.in b/modules/libx11/1.8.12.bcr.2/overlay/src/config.h.in
new file mode 100644
index 0000000..93e077a
--- /dev/null
+++ b/modules/libx11/1.8.12.bcr.2/overlay/src/config.h.in
@@ -0,0 +1,331 @@
+/* src/config.h.  Generated from config.h.in by configure.  */
+/* src/config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define to 1 if `struct sockaddr_in' has a `sin_len' member */
+#define BSD44SOCKETS 1
+
+/* Include compose table cache support */
+#define COMPOSECACHE 1
+
+/* Has getresuid() & getresgid() functions */
+/* #undef HASGETRESUID */
+
+/* Has issetugid() function */
+/* #undef HASSETUGID */
+
+/* Has shm*() functions */
+#define HAS_SHM 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Use dlopen to load shared libraries */
+#define HAVE_DLOPEN 1
+
+/* Define to 1 if you have the 'getaddrinfo' function. */
+#define HAVE_GETADDRINFO 1
+
+/* Define to 1 if you have the 'getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the 'inet_ntop' function. */
+#define HAVE_INET_NTOP 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* launchd support available */
+#define HAVE_LAUNCHD 1
+
+/* Define to 1 if you have the 'ws2_32' library (-lws2_32). */
+/* #undef HAVE_LIBWS2_32 */
+
+/* Define to 1 if you have the <minix/config.h> header file. */
+/* #undef HAVE_MINIX_CONFIG_H */
+
+/* Define to 1 if you have a working 'mmap' system call. */
+#define HAVE_MMAP 1
+
+/* Define to 1 if you have the 'reallocarray' function. */
+/* #undef HAVE_REALLOCARRAY */
+
+/* Define to 1 if you have the 'seteuid' function. */
+#define HAVE_SETEUID 1
+
+/* Define to 1 if the system has the type 'socklen_t'. */
+#define HAVE_SOCKLEN_T 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the 'strcasecmp' function. */
+#define HAVE_STRCASECMP 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the 'strlcpy' function. */
+#define HAVE_STRLCPY 1
+
+/* Define to 1 if you have the 'strtol' function. */
+#define HAVE_STRTOL 1
+
+/* Define to 1 if the system has the type 'struct sockaddr_storage'. */
+#define HAVE_STRUCT_SOCKADDR_STORAGE 1
+
+/* Define to 1 if you have the <sys/filio.h> header file. */
+#define HAVE_SYS_FILIO_H 1
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#define HAVE_SYS_SELECT_H 1
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#define HAVE_SYS_SOCKET_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the <wchar.h> header file. */
+#define HAVE_WCHAR_H 1
+
+/* Define to 1 if the system has the `__builtin_popcountl' built-in function
+   */
+#define HAVE___BUILTIN_POPCOUNTL 1
+
+/* Support IPv6 for TCP connections */
+#define IPv6 1
+
+/* Support os-specific local connections */
+/* #undef LOCALCONN */
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
+/* Disable XLOCALEDIR environment variable */
+/* #undef NO_XLOCALEDIR */
+
+/* Name of package */
+#define PACKAGE "libX11"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "libX11"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "libX11 {LIBX11_VERSION}"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "libX11"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "{LIBX11_VERSION}"
+
+/* Major version of this package */
+#define PACKAGE_VERSION_MAJOR {LIBX11_VERSION_MAJOR}
+
+/* Minor version of this package */
+#define PACKAGE_VERSION_MINOR 8 {LIBX11_VERSION_MINOR}
+
+/* Patch version of this package */
+#define PACKAGE_VERSION_PATCHLEVEL {LIBX11_VERSION_PATCH}
+
+/* Define to 1 if all of the C89 standard headers exist (not just the ones
+   required in a freestanding environment). This macro is provided for
+   backward compatibility; new code need not use it. */
+#define STDC_HEADERS 1
+
+/* Support TCP socket connections */
+#define TCPCONN 1
+
+/* launchd support available */
+#define TRANS_REOPEN 1
+
+/* Support UNIX socket connections */
+#define UNIXCONN 1
+
+/* Split some i18n functions into loadable modules */
+/* #undef USE_DYNAMIC_LC */
+
+/* Use the X cursor library to load cursors */
+#define USE_DYNAMIC_XCURSOR 1
+
+/* poll() function is available */
+#define USE_POLL 1
+
+/* Enable extensions on AIX, Interix, z/OS.  */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable general extensions on macOS.  */
+#ifndef _DARWIN_C_SOURCE
+# define _DARWIN_C_SOURCE 1
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable X/Open compliant socket functions that do not require linking
+   with -lxnet on HP-UX 11.11.  */
+#ifndef _HPUX_ALT_XOPEN_SOCKET_API
+# define _HPUX_ALT_XOPEN_SOCKET_API 1
+#endif
+/* Identify the host operating system as Minix.
+   This macro does not affect the system headers' behavior.
+   A future release of Autoconf may stop defining this macro.  */
+#ifndef _MINIX
+/* # undef _MINIX */
+#endif
+/* Enable general extensions on NetBSD.
+   Enable NetBSD compatibility extensions on Minix.  */
+#ifndef _NETBSD_SOURCE
+# define _NETBSD_SOURCE 1
+#endif
+/* Enable OpenBSD compatibility extensions on NetBSD.
+   Oddly enough, this does nothing on OpenBSD.  */
+#ifndef _OPENBSD_SOURCE
+# define _OPENBSD_SOURCE 1
+#endif
+/* Define to 1 if needed for POSIX-compatible behavior.  */
+#ifndef _POSIX_SOURCE
+/* # undef _POSIX_SOURCE */
+#endif
+/* Define to 2 if needed for POSIX-compatible behavior.  */
+#ifndef _POSIX_1_SOURCE
+/* # undef _POSIX_1_SOURCE */
+#endif
+/* Enable POSIX-compatible threading on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-5:2014.  */
+#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-1:2014.  */
+#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+# define __STDC_WANT_IEC_60559_BFP_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-2:2015.  */
+#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
+# define __STDC_WANT_IEC_60559_DFP_EXT__ 1
+#endif
+/* Enable extensions specified by C23 Annex F.  */
+#ifndef __STDC_WANT_IEC_60559_EXT__
+# define __STDC_WANT_IEC_60559_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-4:2015.  */
+#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1
+#endif
+/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015.  */
+#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
+# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TR 24731-2:2010.  */
+#ifndef __STDC_WANT_LIB_EXT2__
+# define __STDC_WANT_LIB_EXT2__ 1
+#endif
+/* Enable extensions specified by ISO/IEC 24747:2009.  */
+#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
+# define __STDC_WANT_MATH_SPEC_FUNCS__ 1
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable X/Open extensions.  Define to 500 only if necessary
+   to make mbstate_t available.  */
+#ifndef _XOPEN_SOURCE
+/* # undef _XOPEN_SOURCE */
+#endif
+
+
+/* Call XInitThreads() from the library constructor */
+#define USE_THREAD_SAFETY_CONSTRUCTOR 1
+
+/* Version number of package */
+#define VERSION "1.8.12"
+
+/* Location of libX11 data */
+#define X11_DATADIR "/usr/local/share/X11"
+
+/* Location of libX11 library data */
+#define X11_LIBDIR "/usr/local/lib/X11"
+
+/* Include support for XCMS */
+#define XCMS 1
+
+/* Location of error message database */
+#define XERRORDB "/usr/local/share/X11/XErrorDB"
+
+/* Enable XF86BIGFONT extension */
+#define XF86BIGFONT 1
+
+/* Use XKB */
+#define XKB 1
+
+/* Location of keysym database */
+#define XKEYSYMDB "/usr/local/share/X11/XKeysymDB"
+
+/* support for X Locales */
+#define XLOCALE 1
+
+/* Location of libX11 locale data */
+#define XLOCALEDATADIR "/usr/local/share/X11/locale"
+
+/* Location of libX11 locale data */
+#define XLOCALEDIR "/usr/local/share/X11/locale"
+
+/* Location of libX11 locale libraries */
+#define XLOCALELIBDIR "/usr/local/lib/X11/locale"
+
+/* Whether libX11 is compiled with thread support */
+#define XTHREADS 1
+
+/* Whether libX11 needs to use MT safe API's */
+#define XUSE_MTSAFE_API 1
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Define to 1 on platforms where this makes off_t a 64-bit type. */
+/* #undef _LARGE_FILES */
+
+/* Number of bits in time_t, on hosts where this is settable. */
+/* #undef _TIME_BITS */
+
+/* Defined if needed to expose struct msghdr.msg_control */
+/* #undef _XOPEN_SOURCE */
+
+/* Define to 1 on platforms where this makes time_t a 64-bit type. */
+/* #undef __MINGW_USE_VC2005_COMPAT */
diff --git a/modules/libx11/1.8.12.bcr.2/presubmit.yml b/modules/libx11/1.8.12.bcr.2/presubmit.yml
new file mode 100644
index 0000000..287d509
--- /dev/null
+++ b/modules/libx11/1.8.12.bcr.2/presubmit.yml
@@ -0,0 +1,17 @@
+matrix:
+  platform:
+  - debian11
+  - ubuntu2204
+  - ubuntu2404
+  - macos
+  - macos_arm64
+  # TODO: Support pthread on windows
+  # - windows
+  bazel: [7.x, 8.x, rolling]
+tasks:
+  verify_targets:
+    name: Verify build targets
+    platform: ${{ platform }}
+    bazel: ${{ bazel }}
+    build_targets:
+      - '@libx11'
diff --git a/modules/libx11/1.8.12.bcr.2/source.json b/modules/libx11/1.8.12.bcr.2/source.json
new file mode 100644
index 0000000..42a4163
--- /dev/null
+++ b/modules/libx11/1.8.12.bcr.2/source.json
@@ -0,0 +1,10 @@
+{
+    "integrity": "sha256-6pe+rR6HIdkAIFWXDorWTvee6dzuhZWj2uLPXCGSpH8=",
+    "strip_prefix": "libx11-libX11-1.8.12",
+    "url": "https://github.com/wep21/libx11/archive/refs/tags/libX11-1.8.12.tar.gz",
+    "overlay": {
+        "BUILD.bazel": "sha256-Z+9eeNom9R9ZLvw5lYqxsP/G6cha3HDcUGEMzfbd728=",
+        "MODULE.bazel": "sha256-1HXqGwxd//T3QWfuukiQfYKXH7J8IT3iwB8/JO4Ngyg=",
+        "src/config.h.in": "sha256-FB4kA61Kn7QRTUEqsUdAwmsHU0aR08EOj8w5zp51npY="
+    }
+}
diff --git a/modules/libx11/metadata.json b/modules/libx11/metadata.json
index 4a9faae..09aca61 100644
--- a/modules/libx11/metadata.json
+++ b/modules/libx11/metadata.json
@@ -13,7 +13,8 @@
     ],
     "versions": [
         "1.8.12",
-        "1.8.12.bcr.1"
+        "1.8.12.bcr.1",
+        "1.8.12.bcr.2"
     ],
     "yanked_versions": {}
 }
\ No newline at end of file
diff --git a/modules/libxau/1.0.12.bcr.2/MODULE.bazel b/modules/libxau/1.0.12.bcr.2/MODULE.bazel
new file mode 100644
index 0000000..62f1750
--- /dev/null
+++ b/modules/libxau/1.0.12.bcr.2/MODULE.bazel
@@ -0,0 +1,9 @@
+module(
+    name = "libxau",
+    version = "1.0.12.bcr.2",
+    bazel_compatibility = [">=7.2.1"],
+    compatibility_level = 1,
+)
+
+bazel_dep(name = "rules_cc", version = "0.1.4")
+bazel_dep(name = "xorgproto", version = "2024.1.bcr.1")
diff --git a/modules/libxau/1.0.12.bcr.2/overlay/BUILD.bazel b/modules/libxau/1.0.12.bcr.2/overlay/BUILD.bazel
new file mode 100644
index 0000000..0ed1fab
--- /dev/null
+++ b/modules/libxau/1.0.12.bcr.2/overlay/BUILD.bazel
@@ -0,0 +1,31 @@
+load("@rules_cc//cc:defs.bzl", "cc_library")
+
+cc_library(
+    name = "xau",
+    srcs = [
+        "AuDispose.c",
+        "AuFileName.c",
+        "AuGetAddr.c",
+        "AuGetBest.c",
+        "AuLock.c",
+        "AuRead.c",
+        "AuUnlock.c",
+        "AuWrite.c",
+    ],
+    hdrs = [
+        "include/X11/Xauth.h",
+    ],
+    includes = [
+        "include",
+    ],
+    visibility = ["//visibility:public"],
+    deps = [
+        "@xorgproto",
+    ],
+)
+
+alias(
+    name = "libxau",
+    actual = ":xau",
+    visibility = ["//visibility:public"],
+)
diff --git a/modules/libxau/1.0.12.bcr.2/overlay/MODULE.bazel b/modules/libxau/1.0.12.bcr.2/overlay/MODULE.bazel
new file mode 120000
index 0000000..9b599e3
--- /dev/null
+++ b/modules/libxau/1.0.12.bcr.2/overlay/MODULE.bazel
@@ -0,0 +1 @@
+../MODULE.bazel
\ No newline at end of file
diff --git a/modules/libxau/1.0.12.bcr.2/presubmit.yml b/modules/libxau/1.0.12.bcr.2/presubmit.yml
new file mode 100644
index 0000000..5d6dce5
--- /dev/null
+++ b/modules/libxau/1.0.12.bcr.2/presubmit.yml
@@ -0,0 +1,18 @@
+matrix:
+  platform:
+  - debian11
+  - ubuntu2204
+  - ubuntu2404
+  - macos
+  - macos_arm64
+  - windows
+  bazel: [7.x, 8.x, rolling]
+tasks:
+  verify_targets:
+    name: Verify build targets
+    platform: ${{ platform }}
+    bazel: ${{ bazel }}
+    build_flags:
+      - '--process_headers_in_dependencies'
+    build_targets:
+      - '@libxau'
diff --git a/modules/libxau/1.0.12.bcr.2/source.json b/modules/libxau/1.0.12.bcr.2/source.json
new file mode 100644
index 0000000..f939c43
--- /dev/null
+++ b/modules/libxau/1.0.12.bcr.2/source.json
@@ -0,0 +1,10 @@
+{
+    "integrity": "sha256-ryYcwbOzSc/np4maSLTkqiV7TRG/LqCE+zGR330V++k=",
+    "strip_prefix": "libxau-libXau-1.0.12",
+    "url": "https://github.com/wep21/libxau/archive/refs/tags/libXau-1.0.12.tar.gz",
+    "patch_strip": 0,
+    "overlay": {
+        "BUILD.bazel": "sha256-o2JZT8hqrCKRaxqJJ2jU/ToSD7tx47taYlQ9Dt1w8Gw=",
+        "MODULE.bazel": "sha256-axW3DCMArc5kRJrrMni6xcz5SH0LOPJbxr02J6we4Xw="
+    }
+}
diff --git a/modules/libxau/metadata.json b/modules/libxau/metadata.json
index 96a64cd..e0a7cca 100644
--- a/modules/libxau/metadata.json
+++ b/modules/libxau/metadata.json
@@ -13,7 +13,8 @@
     ],
     "versions": [
         "1.0.12",
-        "1.0.12.bcr.1"
+        "1.0.12.bcr.1",
+        "1.0.12.bcr.2"
     ],
     "yanked_versions": {}
 }
diff --git a/modules/libxcb/1.17.0.bcr.2/MODULE.bazel b/modules/libxcb/1.17.0.bcr.2/MODULE.bazel
new file mode 100644
index 0000000..5a00523
--- /dev/null
+++ b/modules/libxcb/1.17.0.bcr.2/MODULE.bazel
@@ -0,0 +1,13 @@
+module(
+    name = "libxcb",
+    version = "1.17.0.bcr.2",
+    bazel_compatibility = [">=7.2.1"],
+    compatibility_level = 1,
+)
+
+bazel_dep(name = "bazel_skylib", version = "1.7.1")
+bazel_dep(name = "libxau", version = "1.0.12.bcr.1")
+bazel_dep(name = "platforms", version = "0.0.11")
+bazel_dep(name = "rules_cc", version = "0.1.4")
+bazel_dep(name = "rules_python", version = "1.3.0")
+bazel_dep(name = "xcb-proto", version = "1.17.0")
diff --git a/modules/libxcb/1.17.0.bcr.2/overlay/BUILD.bazel b/modules/libxcb/1.17.0.bcr.2/overlay/BUILD.bazel
new file mode 100644
index 0000000..f3e8aaa
--- /dev/null
+++ b/modules/libxcb/1.17.0.bcr.2/overlay/BUILD.bazel
@@ -0,0 +1,151 @@
+load("@bazel_skylib//rules:expand_template.bzl", "expand_template")
+load("@rules_cc//cc:cc_library.bzl", "cc_library")
+load("@rules_python//python:py_binary.bzl", "py_binary")
+
+EXTENSIONS = [
+    "bigreq",
+    "composite",
+    "damage",
+    "dbe",
+    "dpms",
+    "dri2",
+    "dri3",
+    "ge",
+    "glx",
+    "present",
+    "randr",
+    "record",
+    "render",
+    "res",
+    "screensaver",
+    "shape",
+    "shm",
+    "sync",
+    "xc_misc",
+    "xevie",
+    "xf86dri",
+    "xfixes",
+    "xinerama",
+    "xinput",
+    "xkb",
+    "xprint",
+    "xproto",
+    "xselinux",
+    "xtest",
+    "xv",
+    "xvmc",
+]
+
+py_binary(
+    name = "c_client",
+    srcs = ["src/c_client.py"],
+    data = [
+        "@xcb-proto//:xml",
+    ],
+    deps = [
+        "@xcb-proto//:py_xcbgen",
+    ],
+)
+
+[genrule(
+    name = "c_client_{}".format(extension),
+    srcs = [
+        "@xcb-proto//:src/{}.xml".format(extension),
+        "@xcb-proto//:xml",
+    ],
+    outs = [
+        "{}.c".format(extension),
+        "{}.h".format(extension),
+    ],
+    cmd = ('$(location c_client) -c "libxcb 1.17" ' +
+           '-l "X Version 11" ' +
+           '-s "3" ' +
+           "-p $$(dirname $(location @xcb-proto//:xcbgen/state.py)) " +
+           "$(location @xcb-proto//:src/{extension}.xml) && " +
+           "mv {extension}.c $(location {extension}.c) && " +
+           "mv {extension}.h $(location {extension}.h)").format(
+        extension = extension,
+    ),
+    tools = [
+        "c_client",
+        "@xcb-proto//:py_xcbgen",
+        "@xcb-proto//:xcbgen/state.py",
+    ],
+) for extension in EXTENSIONS]
+
+[genrule(
+    name = "headermove_{}".format(x),
+    srcs = ["src/{}".format(x)],
+    outs = ["xcb/{}".format(x)],
+    cmd = "cp $< $@",
+) for x in [
+    "xcb.h",
+    "xcbext.h",
+]]
+
+UPSTREAM_VERSION = module_version().split(".bcr.", 1)[0]
+
+UPSTREAM_VERSION_MAJOR = UPSTREAM_VERSION.split(".")[0]
+
+UPSTREAM_VERSION_MINOR = UPSTREAM_VERSION.split(".")[1]
+
+UPSTREAM_VERSION_PATCH = UPSTREAM_VERSION.split(".")[2]
+
+expand_template(
+    name = "config_h",
+    out = "src/config.h",
+    substitutions = {
+        "{LIBXCB_VERSION}": UPSTREAM_VERSION,
+        "{LIBXCB_VERSION_MAJOR}": UPSTREAM_VERSION_MAJOR,
+        "{LIBXCB_VERSION_MINOR}": UPSTREAM_VERSION_MINOR,
+        "{LIBXCB_VERSION_PATCH}": UPSTREAM_VERSION_PATCH,
+    } | select({
+        "@platforms//os:macos": {},
+        "@platforms//os:windows": {
+            "#define HAVE_UNISTD_H 1": "/* #undef HAVE_UNISTD_H */",
+        },
+	"//conditions:default": {
+            "#define HAVE_SOCKADDR_SUN_LEN 1": "/* #undef HAVE_SOCKADDR_SUN_LEN */",
+        },
+    }),
+    template = "src/config.h.in",
+)
+
+cc_library(
+    name = "xcb",
+    srcs = (
+        ["{}.c".format(x) for x in EXTENSIONS] +
+        ["{}.h".format(x) for x in EXTENSIONS] +
+        ["src/" + x for x in [
+            "xcb_auth.c",
+            "xcb_conn.c",
+            "xcb_ext.c",
+            "xcb_in.c",
+            "xcb_list.c",
+            "xcb_out.c",
+            "xcb_xid.c",
+            "xcb_util.c",
+            "xcbint.h",
+        ]]
+    ) + ["//:config_h"],
+    hdrs = [
+        "src/xcb.h",
+        "src/xcbext.h",
+    ],
+    copts = [
+        "-DHAVE_CONFIG_H",
+    ],
+    include_prefix = "xcb",
+    includes = ["src"],
+    strip_include_prefix = "src",
+    visibility = ["//visibility:public"],
+    deps = [
+        "@libxau",
+    ],
+)
+
+alias(
+    name = "libxcb",
+    actual = ":xcb",
+    visibility = ["//visibility:public"],
+)
diff --git a/modules/libxcb/1.17.0.bcr.2/overlay/MODULE.bazel b/modules/libxcb/1.17.0.bcr.2/overlay/MODULE.bazel
new file mode 120000
index 0000000..9b599e3
--- /dev/null
+++ b/modules/libxcb/1.17.0.bcr.2/overlay/MODULE.bazel
@@ -0,0 +1 @@
+../MODULE.bazel
\ No newline at end of file
diff --git a/modules/libxcb/1.17.0.bcr.2/overlay/src/config.h.in b/modules/libxcb/1.17.0.bcr.2/overlay/src/config.h.in
new file mode 100644
index 0000000..affbfe6
--- /dev/null
+++ b/modules/libxcb/1.17.0.bcr.2/overlay/src/config.h.in
@@ -0,0 +1,222 @@
+/* src/config.h.  Generated from config.h.in by configure.  */
+/* src/config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Defined if GCC supports the visibility feature */
+#define GCC_HAS_VISIBILITY /**/
+
+/* Has Wraphelp.c needed for XDM AUTH protocols */
+/* #undef HASXDMAUTH */
+
+/* Define if your platform supports abstract sockets */
+/* #undef HAVE_ABSTRACT_SOCKETS */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* getaddrinfo() function is available */
+#define HAVE_GETADDRINFO 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the 'is_system_labeled' function. */
+/* #undef HAVE_IS_SYSTEM_LABELED */
+
+/* Define to 1 if you have the 'ws2_32' library (-lws2_32). */
+/* #undef HAVE_LIBWS2_32 */
+
+/* Define to 1 if you have the <minix/config.h> header file. */
+/* #undef HAVE_MINIX_CONFIG_H */
+
+/* Define if your platform supports sendmsg */
+#define HAVE_SENDMSG 1
+
+/* Have the sockaddr_un.sun_len member. */
+#define HAVE_SOCKADDR_SUN_LEN 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <tsol/label.h> header file. */
+/* #undef HAVE_TSOL_LABEL_H */
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the <wchar.h> header file. */
+#define HAVE_WCHAR_H 1
+
+/* Define if not provided by <limits.h> */
+/* #undef IOV_MAX */
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
+/* Name of package */
+#define PACKAGE "libxcb"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "https://gitlab.freedesktop.org/xorg/lib/libxcb/-/issues"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "libxcb"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "libxcb 1.17.0"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "libxcb"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "{LIBXCB_VERSION}"
+
+/* Major version of this package */
+#define PACKAGE_VERSION_MAJOR {LIBXCB_VERSION_MAJOR}
+
+/* Minor version of this package */
+#define PACKAGE_VERSION_MINOR {LIBXCB_VERSION_MINOR}
+
+/* Patch version of this package */
+#define PACKAGE_VERSION_PATCHLEVEL {LIBXCB_VERSION_PATCH}
+
+/* Define to 1 if all of the C89 standard headers exist (not just the ones
+   required in a freestanding environment). This macro is provided for
+   backward compatibility; new code need not use it. */
+#define STDC_HEADERS 1
+
+/* poll() function is available */
+#define USE_POLL 1
+
+/* Enable extensions on AIX, Interix, z/OS.  */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable general extensions on macOS.  */
+#ifndef _DARWIN_C_SOURCE
+# define _DARWIN_C_SOURCE 1
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable X/Open compliant socket functions that do not require linking
+   with -lxnet on HP-UX 11.11.  */
+#ifndef _HPUX_ALT_XOPEN_SOCKET_API
+# define _HPUX_ALT_XOPEN_SOCKET_API 1
+#endif
+/* Identify the host operating system as Minix.
+   This macro does not affect the system headers' behavior.
+   A future release of Autoconf may stop defining this macro.  */
+#ifndef _MINIX
+/* # undef _MINIX */
+#endif
+/* Enable general extensions on NetBSD.
+   Enable NetBSD compatibility extensions on Minix.  */
+#ifndef _NETBSD_SOURCE
+# define _NETBSD_SOURCE 1
+#endif
+/* Enable OpenBSD compatibility extensions on NetBSD.
+   Oddly enough, this does nothing on OpenBSD.  */
+#ifndef _OPENBSD_SOURCE
+# define _OPENBSD_SOURCE 1
+#endif
+/* Define to 1 if needed for POSIX-compatible behavior.  */
+#ifndef _POSIX_SOURCE
+/* # undef _POSIX_SOURCE */
+#endif
+/* Define to 2 if needed for POSIX-compatible behavior.  */
+#ifndef _POSIX_1_SOURCE
+/* # undef _POSIX_1_SOURCE */
+#endif
+/* Enable POSIX-compatible threading on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-5:2014.  */
+#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-1:2014.  */
+#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+# define __STDC_WANT_IEC_60559_BFP_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-2:2015.  */
+#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
+# define __STDC_WANT_IEC_60559_DFP_EXT__ 1
+#endif
+/* Enable extensions specified by C23 Annex F.  */
+#ifndef __STDC_WANT_IEC_60559_EXT__
+# define __STDC_WANT_IEC_60559_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-4:2015.  */
+#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1
+#endif
+/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015.  */
+#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
+# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TR 24731-2:2010.  */
+#ifndef __STDC_WANT_LIB_EXT2__
+# define __STDC_WANT_LIB_EXT2__ 1
+#endif
+/* Enable extensions specified by ISO/IEC 24747:2009.  */
+#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
+# define __STDC_WANT_MATH_SPEC_FUNCS__ 1
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable X/Open extensions.  Define to 500 only if necessary
+   to make mbstate_t available.  */
+#ifndef _XOPEN_SOURCE
+/* # undef _XOPEN_SOURCE */
+#endif
+
+
+/* Version number of package */
+#define VERSION "{LIBXCB_VERSION}"
+
+/* XCB buffer queue size */
+#define XCB_QUEUE_BUFFER_SIZE 16384
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Define to 1 on platforms where this makes off_t a 64-bit type. */
+/* #undef _LARGE_FILES */
+
+/* Number of bits in time_t, on hosts where this is settable. */
+/* #undef _TIME_BITS */
+
+/* Defined if needed to expose struct msghdr.msg_control */
+/* #undef _XOPEN_SOURCE */
+
+/* Define to 1 on platforms where this makes time_t a 64-bit type. */
+/* #undef __MINGW_USE_VC2005_COMPAT */
diff --git a/modules/libxcb/1.17.0.bcr.2/presubmit.yml b/modules/libxcb/1.17.0.bcr.2/presubmit.yml
new file mode 100644
index 0000000..b65b141
--- /dev/null
+++ b/modules/libxcb/1.17.0.bcr.2/presubmit.yml
@@ -0,0 +1,17 @@
+matrix:
+  platform:
+  - debian11
+  - ubuntu2204
+  - ubuntu2404
+  - macos
+  - macos_arm64
+  # TODO: Support pthread on windows
+  # - windows
+  bazel: [7.x, 8.x, rolling]
+tasks:
+  verify_targets:
+    name: Verify build targets
+    platform: ${{ platform }}
+    bazel: ${{ bazel }}
+    build_targets:
+      - '@libxcb'
diff --git a/modules/libxcb/1.17.0.bcr.2/source.json b/modules/libxcb/1.17.0.bcr.2/source.json
new file mode 100644
index 0000000..be0d7d2
--- /dev/null
+++ b/modules/libxcb/1.17.0.bcr.2/source.json
@@ -0,0 +1,11 @@
+{
+    "integrity": "sha256-ETpvj2FOA3/wPK0hjNy/4wffydkJqEKxcnamlEdu1jk=",
+    "strip_prefix": "libxcb-libxcb-1.17.0",
+    "url": "https://github.com/gitlab-freedesktop-mirrors/libxcb/archive/refs/tags/libxcb-1.17.0.tar.gz",
+    "patch_strip": 0,
+    "overlay": {
+        "BUILD.bazel": "sha256-m1ZpfzegYMvriuSdDWsxncMvC2n5BfXhVK6l2/DGFQM=",
+        "MODULE.bazel": "sha256-g9Z0CCKiliEMDGDNQpqJKTS9sjf3E16vOVs3DAWvMqU=",
+        "src/config.h.in": "sha256-uyBWngCnRn6xrJlW59dej3tO/9HOhU3K99ScTOKXi2k="
+    }
+}
diff --git a/modules/libxcb/metadata.json b/modules/libxcb/metadata.json
index 61420fb..4ba4e44 100644
--- a/modules/libxcb/metadata.json
+++ b/modules/libxcb/metadata.json
@@ -13,7 +13,8 @@
     ],
     "versions": [
         "1.17.0",
-        "1.17.0.bcr.1"
+        "1.17.0.bcr.1",
+        "1.17.0.bcr.2"
     ],
     "yanked_versions": {}
 }
diff --git a/modules/libxtrans/1.5.2.bcr.1/MODULE.bazel b/modules/libxtrans/1.5.2.bcr.1/MODULE.bazel
new file mode 100644
index 0000000..4609704
--- /dev/null
+++ b/modules/libxtrans/1.5.2.bcr.1/MODULE.bazel
@@ -0,0 +1,8 @@
+module(
+    name = "libxtrans",
+    version = "1.5.2.bcr.1",
+    bazel_compatibility = [">=7.2.1"],
+    compatibility_level = 1,
+)
+
+bazel_dep(name = "rules_cc", version = "0.1.1")
diff --git a/modules/libxtrans/1.5.2.bcr.1/overlay/BUILD.bazel b/modules/libxtrans/1.5.2.bcr.1/overlay/BUILD.bazel
new file mode 100644
index 0000000..70e39d5
--- /dev/null
+++ b/modules/libxtrans/1.5.2.bcr.1/overlay/BUILD.bazel
@@ -0,0 +1,23 @@
+load("@rules_cc//cc:defs.bzl", "cc_library")
+
+cc_library(
+    name = "xtrans",
+    hdrs = [
+        "Xtrans.c",
+        "Xtrans.h",
+        "Xtransint.h",
+        "Xtranslcl.c",
+        "Xtranssock.c",
+        "Xtransutil.c",
+        "transport.c",
+    ],
+    features = ["parse_headers"],
+    include_prefix = "X11/Xtrans",
+    visibility = ["//visibility:public"],
+)
+
+alias(
+    name = "libxtrans",
+    actual = ":xtrans",
+    visibility = ["//visibility:public"],
+)
diff --git a/modules/libxtrans/1.5.2.bcr.1/overlay/MODULE.bazel b/modules/libxtrans/1.5.2.bcr.1/overlay/MODULE.bazel
new file mode 120000
index 0000000..9b599e3
--- /dev/null
+++ b/modules/libxtrans/1.5.2.bcr.1/overlay/MODULE.bazel
@@ -0,0 +1 @@
+../MODULE.bazel
\ No newline at end of file
diff --git a/modules/libxtrans/1.5.2.bcr.1/presubmit.yml b/modules/libxtrans/1.5.2.bcr.1/presubmit.yml
new file mode 100644
index 0000000..249a4c0
--- /dev/null
+++ b/modules/libxtrans/1.5.2.bcr.1/presubmit.yml
@@ -0,0 +1,18 @@
+matrix:
+  platform:
+  - debian11
+  - ubuntu2204
+  - ubuntu2404
+  - macos
+  - macos_arm64
+  - windows
+  bazel: [7.x, 8.x, rolling]
+tasks:
+  verify_targets:
+    name: Verify build targets
+    platform: ${{ platform }}
+    bazel: ${{ bazel }}
+    build_flags:
+      - '--process_headers_in_dependencies'
+    build_targets:
+      - '//...'
diff --git a/modules/libxtrans/1.5.2.bcr.1/source.json b/modules/libxtrans/1.5.2.bcr.1/source.json
new file mode 100644
index 0000000..381e50e
--- /dev/null
+++ b/modules/libxtrans/1.5.2.bcr.1/source.json
@@ -0,0 +1,9 @@
+{
+    "integrity": "sha256-kY9QPGDK52OcxValEofk9pAo+v//pbBNxE74PT/chl8=",
+    "strip_prefix": "libxtrans-xtrans-1.5.2",
+    "url": "https://gitlab.freedesktop.org/xorg/lib/libxtrans/-/archive/xtrans-1.5.2/libxtrans-xtrans-1.5.2.tar.gz",
+    "overlay": {
+        "BUILD.bazel": "sha256-lVrE1CxAfeeYbVtCDSlVwmnzocQv5U7Zq6m40saPtBQ=",
+        "MODULE.bazel": "sha256-qzB9ubSd00UMZwKZfNKhkNzO1dxcFbDoV4jLbbGwJNU="
+    }
+}
diff --git a/modules/libxtrans/metadata.json b/modules/libxtrans/metadata.json
index 9b45526..ade669f 100644
--- a/modules/libxtrans/metadata.json
+++ b/modules/libxtrans/metadata.json
@@ -12,7 +12,8 @@
         "https://gitlab.freedesktop.org/xorg/lib/libxtrans"
     ],
     "versions": [
-        "1.5.2"
+        "1.5.2",
+        "1.5.2.bcr.1"
     ],
     "yanked_versions": {}
 }