git: dbe3ef482b63 - main - databases/mongodb80: 8.0.29
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 01 Oct 2026 22:30:23 UTC
The branch main has been updated by ronald:
URL: https://cgit.FreeBSD.org/ports/commit/?id=dbe3ef482b636d706d044991101342d6f1603a88
commit dbe3ef482b636d706d044991101342d6f1603a88
Author: Ronald Klop <ronald@FreeBSD.org>
AuthorDate: 2026-10-01 07:41:55 +0000
Commit: Ronald Klop <ronald@FreeBSD.org>
CommitDate: 2026-10-01 22:29:56 +0000
databases/mongodb80: 8.0.29
Upstream changed the build tool from SCons to Bazel.
Please test before deploying to production.
Announcement:
https://www.mongodb.com/community/forums/t/mongodb-8-0-29-is-released/342426?u=r_k
Release Notes:
https://www.mongodb.com/docs/manual/release-notes/8.0/#8029---aug-11-2026
---
databases/mongodb80/Makefile | 171 ++++++++++-------
databases/mongodb80/distinfo | 18 +-
.../d497aa4f770ca02f6083e93b94996a8fe32c2ff4.patch | 81 --------
databases/mongodb80/files/extrapatch-SConstruct | 16 --
.../extrapatch-src_third__party_mozjs_SConscript | 11 --
databases/mongodb80/files/patch-MODULE.bazel | 35 ++++
databases/mongodb80/files/patch-SConstruct | 11 --
databases/mongodb80/files/patch-WORKSPACE.bazel | 23 +++
.../mongodb80/files/patch-bazel_config_BUILD.bazel | 105 +++++++++++
.../files/patch-bazel_freebsd__repositories.bzl | 18 ++
.../patch-bazel_install__rules_install__rules.bzl | 46 +++++
.../files/patch-bazel_mongo__src__rules.bzl | 32 ++++
...tch-bazel_platforms_local__config__platform.bzl | 25 +++
.../files/patch-bazel_platforms_normalize.bzl | 8 +
.../patch-bazel_rules__poetry_rules__poetry.patch | 170 +++++++++++++++++
.../files/patch-bazel_separate__debug.bzl | 38 ++++
...-bazel_toolchains_cc_mongo__compiler__flags.bzl | 20 ++
...h-bazel_toolchains_python_python__toolchain.bzl | 208 +++++++++++++++++++++
.../mongodb80/files/patch-buildscripts_scons.py | 18 --
databases/mongodb80/files/patch-src_BUILD.bazel | 21 +++
.../mongodb80/files/patch-src_mongo_BUILD.bazel | 12 ++
...h-src_mongo_BUILD.bazel_stack__locator__freebsd | 10 +
...rc_mongo_crypto_crypto__parameters__openssl.idl | 17 ++
.../files/patch-src_mongo_db_ftdc_BUILD.bazel | 10 +
...-src_mongo_platform_stack__locator__freebsd.cpp | 65 +++++++
...rc_mongo_transport_asio_asio__session__impl.cpp | 11 ++
...c_third__party_IntelRDFPMathLib20U1_BUILD.bazel | 13 ++
...asio-master_asio_include_asio_detail_config.hpp | 18 ++
.../files/patch-src_third__party_boost_BUILD.bazel | 33 ++++
...-src_third__party_boost_boost_thread_future.hpp | 18 --
.../patch-src_third__party_libbson_BUILD.bazel | 32 ++++
...atch-src_third__party_libmongocrypt_BUILD.bazel | 33 ++++
.../files/patch-src_third__party_mozjs_BUILD.bazel | 23 +++
...h-src_third__party_mozjs_scripts_gen-config.sh} | 29 +--
.../files/patch-src_third__party_s2_BUILD.bazel | 13 ++
...rd__party_snappy_platform_build__posix_config.h | 11 ++
.../patch-src_third__party_wiredtiger_BUILD.bazel | 18 ++
37 files changed, 1195 insertions(+), 246 deletions(-)
diff --git a/databases/mongodb80/Makefile b/databases/mongodb80/Makefile
index 54bc6fa6aede..3c016916a285 100644
--- a/databases/mongodb80/Makefile
+++ b/databases/mongodb80/Makefile
@@ -1,14 +1,17 @@
PORTNAME= mongodb
DISTVERSIONPREFIX= r
-DISTVERSION= 8.0.12
-PORTREVISION= 12
+DISTVERSION= 8.0.29
CATEGORIES= databases net
+MASTER_SITES+= LOCAL/ronald:mongodb_bazel \
+ https://codeload.github.com/bazelbuild/bazel-central-registry/tar.gz/${BAZEL_REGISTRY_COMMIT}?dummy=/:bazel_registry \
+ https://codeload.github.com/mongodb-forks/rules_poetry/tar.gz/${RULES_POETRY_COMMIT}?dummy=/:rules_poetry
PKGNAMESUFFIX= ${DISTVERSION:R:S/.//}
-
-PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
-# https://github.com/mongodb/mongo/pull/1619/
-# "Modernize dynamic module loading to work with Python3.12"
-PATCHFILES+= 0877732109589e441cbf234dce17ec0e7b614902.patch:-p1
+BAZEL_CACHE_DISTFILE= ${PORTNAME}-${DISTVERSIONFULL}-bazel-repository-cache.tar.gz
+BAZEL_REGISTRY_DISTFILE= bazelbuild-bazel-central-registry-${BAZEL_REGISTRY_COMMIT}_GH0.tar.gz
+RULES_POETRY_DISTFILE= mongodb-forks-rules_poetry-${RULES_POETRY_COMMIT}_GH0.tar.gz
+DISTFILES+= ${BAZEL_CACHE_DISTFILE}:mongodb_bazel \
+ ${BAZEL_REGISTRY_DISTFILE}:bazel_registry \
+ ${RULES_POETRY_DISTFILE}:rules_poetry
MAINTAINER= ronald@FreeBSD.org
COMMENT= MongoDB Community Edition (8.0.x Branch)
@@ -20,12 +23,14 @@ LICENSE_NAME_SSPLv1= Server Side Public License Version 1
LICENSE_FILE_SSPLv1= ${WRKSRC}/LICENSE-Community.txt
LICENSE_PERMS_SSPLv1= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
-BROKEN_FreeBSD_16= integral_wrapper.hpp:62:51: error: in-class initializer for static data member is not a constant expression
+BROKEN_FreeBSD_16= src/third_party/boost/boost/mpl/aux_/integral_wrapper.hpp:71:51: error: in-class initializer for static data member is not a constant expression
ONLY_FOR_ARCHS= aarch64 amd64 powerpc64le
ONLY_FOR_ARCHS_REASON= only ported to amd64, aarch64, and powerpc64le on FreeBSD; upstream supports arm64, ppc64le, s390x, and x86-64
-BUILD_DEPENDS= ${PY_SETUPTOOLS} \
+BUILD_DEPENDS= bazel:devel/bazel7 \
+ bash:shells/bash \
+ ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}cheetah3>0:devel/py-cheetah3@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}distro>0:sysutils/py-distro@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gitpython>0:devel/py-gitpython@${PY_FLAVOR} \
@@ -36,28 +41,25 @@ BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}retry2>0:devel/py-retry2@${PY_FLAVOR} \
git:devel/git@tiny \
- rust-cbindgen>0:devel/rust-cbindgen
-# build depends used while running ${WRKSRC}/src/third_party/mozjs/gen-config.sh
+ rust-cbindgen>0:devel/rust-cbindgen \
+ yq:textproc/go-yq
+# build depends used while running ${WRKSRC}/src/third_party/mozjs/scripts/gen-config.sh
BUILD_DEPENDS+= gm4:devel/m4 \
gsed:textproc/gsed
-LIB_DEPENDS= libcurl.so:ftp/curl \
- libsnappy.so:archivers/snappy \
- libstemmer.so:textproc/snowballstemmer \
- libunwind.so:devel/libunwind \
- libyaml-cpp.so:devel/yaml-cpp \
- libzstd.so:archivers/zstd
+LIB_DEPENDS= libcurl.so:ftp/curl
FLAVORS= default armv80a
armv80a_PKGNAMESUFFIX= ${DISTVERSION:R:S/.//}-armv80a
-USES= compiler:c++20-lang cpe python:build scons shebangfix ssl
-# gmake is used while running ${WRKSRC}/src/third_party/mozjs/gen-config.sh
-USES+= gmake pkgconfig
+# gmake is used while running ${WRKSRC}/src/third_party/mozjs/scripts/gen-config.sh
+USES= compiler:c++20-lang cpe gmake pkgconfig python:build shebangfix ssl
CPE_PRODUCT= mongodb
-# mozjs tag comes from ${WRKSRC}/src/third_party/mozjs/get-sources.sh
-MOZJS_TAG= 5acd3be6c9563ad3e7ca6182285c69a38de47bab
+# mozjs tag comes from ${WRKSRC}/src/third_party/mozjs/scripts/import.sh
+MOZJS_TAG= 7aeaf7a44d420360bde75db8453636092c3e2f56
+BAZEL_REGISTRY_COMMIT= 5df17720d4367282afb8e5ca27a35199ab7620e4
+RULES_POETRY_COMMIT= 917630033c736c188605cf0f558c34afc1eca540
USE_GITHUB= yes
GH_ACCOUNT= mongodb mongodb-forks:mozjs
@@ -65,44 +67,70 @@ GH_PROJECT= mongo spidermonkey:mozjs
GH_TAGNAME= ${MOZJS_TAG}:mozjs
USE_RC_SUBR= mongod
-SHEBANG_FILES= buildscripts/scons.py
-python_OLD_CMD= @python_interpreter@
+SHEBANG_FILES= src/third_party/mozjs/scripts/gen-config.sh
HAS_CONFIGURE= yes
-CONFIGURE_SCRIPT= gen-config.sh
+CONFIGURE_SCRIPT= scripts/gen-config.sh
CONFIGURE_ARGS= ${MOZJS_ARCH} \
freebsd
CONFIGURE_ENV+= PYTHON3="${PYTHON_CMD}"
-MAKE_ARGS= --allocator=system \
- --cxx-std=20 \
- --disable-warnings-as-errors \
- --libc++ \
- --runtime-hardening=on \
- --ssl \
- --use-system-libunwind \
- --use-system-snappy \
- --use-system-stemmer \
- --use-system-yaml \
- --use-system-zlib \
- --use-system-zstd \
- -j${MAKE_JOBS_NUMBER} \
- AR=llvm-ar \
- MONGO_VERSION=${DISTVERSION} \
- VERBOSE=on
-ALL_TARGET= install-servers
-
-CFLAGS+= -DBOOST_NO_CXX98_FUNCTION_BASE
+BAZEL= ${LOCALBASE}/bin/bazel
+BAZEL_OUTPUT_USER_ROOT= ${WRKDIR}/bazel
+BAZEL_REPOSITORY_CACHE=${WRKDIR}/bazel-repository-cache
+BAZEL_STARTUP_ARGS= --output_user_root=${BAZEL_OUTPUT_USER_ROOT}
+BAZEL_ENV= BAZEL_SH=${LOCALBASE}/bin/bash \
+ CC="${CC}" \
+ CXX="${CXX}" \
+ HOME=${WRKDIR} \
+ MONGO_USE_SYSTEM_PYTHON=1 \
+ PYTHON_CMD=${PYTHON_CMD} \
+ TMPDIR=${WRKDIR}
+BAZEL_ARGS= --repository_cache=${BAZEL_REPOSITORY_CACHE} \
+ --distdir=${DISTDIR} \
+ --registry=file://${BAZEL_REGISTRY_WRKSRC} \
+ --repository_disable_download \
+ --lockfile_mode=off \
+ --//bazel/config:running_through_bazelisk=True \
+ --config=local \
+ --config=opt \
+ --verbose_failures \
+ --jobs=${MAKE_JOBS_NUMBER} \
+ --action_env=AR=llvm-ar \
+ --action_env=CC=${CC} \
+ --action_env=CXX=${CXX} \
+ --action_env=PATH=${LOCALBASE}/bin:/bin:/usr/bin \
+ --repo_env=CC=${CC} \
+ --repo_env=CXX=${CXX} \
+ --repo_env=LOCALBASE=${LOCALBASE} \
+ --repo_env=MONGO_USE_SYSTEM_PYTHON=1 \
+ --repo_env=PATH=${LOCALBASE}/bin:/bin:/usr/bin \
+ --repo_env=PYTHON_CMD=${PYTHON_CMD} \
+ --build_enterprise=False \
+ --enterprise_feature_all=False \
+ --allocator=system \
+ --libunwind=off \
+ --ssl=True \
+ --disable_warnings_as_errors=True \
+ --create_dwp=False \
+ --copt=-isystem${LOCALBASE}/include \
+ --define=GIT_COMMIT_HASH=freebsd-${PORTVERSION} \
+ --define=MONGO_DISTMOD=freebsd \
+ --define=MONGO_VERSION=${DISTVERSION} \
+ --cxxopt=-isystem${LOCALBASE}/include \
+ --cxxopt=-DBOOST_NO_CXX98_FUNCTION_BASE \
+ --linkopt=-L${LOCALBASE}/lib \
+ --linkopt=-lm \
+ --linkopt=-pthread \
+ --linkopt=-lexecinfo \
+ --linkopt=-lkvm \
+ --noexperimental_collect_system_network_usage
+ALL_TARGET= install-core
CONFLICTS_INSTALL= mongodb[0-9][0-9]
-EXTRACT_AFTER_ARGS= --exclude src/third_party/snappy-* \
- --exclude src/third_party/libstemmer_c \
- --exclude src/third_party/unwind \
- --exclude src/third_party/yaml-cpp \
- --exclude src/third_party/zlib-* \
- --exclude src/third_party/zstandard \
- --no-same-owner --no-same-permissions
+BINARY_ALIAS= python3=${PYTHON_CMD}
+EXTRACT_AFTER_ARGS= --no-same-owner --no-same-permissions
# This ports is only following the Major Release.
# https://docs.mongodb.com/manual/reference/versioning/
@@ -113,9 +141,9 @@ CONFIGURE_WRKSRC= ${MOZJS_WRKSRC}
USERS= mongodb
GROUPS= mongodb
-OPTIONS_DEFINE= LTO NOAVX SASL
+OPTIONS_DEFINE= LTO NOAVX
OPTIONS_DEFINE_aarch64= ARMV80A
-OPTIONS_DEFAULT= NOAVX SASL
+OPTIONS_DEFAULT= NOAVX
# MongoDB on non-LSE ARM cpu like Raspberry Pi can work but is unsupported upstream.
# Can give corruption on high concurrency.
@@ -123,18 +151,16 @@ OPTIONS_DEFAULT= NOAVX SASL
ARMV80A_DESC= Enable non-LSE ARM64 CPUs like RPI4.
NOAVX_DESC= "Disable AVX instructions on amd64 (Sandybridge+)"
-ARMV80A_EXTRA_PATCHES= ${FILESDIR}/extrapatch-SConstruct
-
-LTO_MAKE_ARGS= --lto=on
+ARMV80A_VARS= BAZEL_ARGS+="--copt=-march=armv8-a --cxxopt=-march=armv8-a"
-NOAVX_MAKE_ARGS= --experimental-optimization="-sandybridge"
-NOAVX_EXTRA_PATCHES= ${FILESDIR}/extrapatch-src_third__party_mozjs_SConscript \
- ${FILESDIR}/extrapatch-src_third__party_mozjs_extract_mozglue_misc_SIMD.cpp
+LTO_VARS= BAZEL_ARGS+=--thin_lto=True
-SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2
-SASL_MAKE_ARGS= --use-sasl-client
+NOAVX_EXTRA_PATCHES= ${FILESDIR}/extrapatch-src_third__party_mozjs_extract_mozglue_misc_SIMD.cpp
MOZJS_WRKSRC= ${WRKSRC}/src/third_party/mozjs
+BAZEL_REGISTRY_WRKSRC= ${WRKDIR}/bazel-central-registry-${BAZEL_REGISTRY_COMMIT}
+RULES_POETRY_WRKSRC= ${WRKDIR}/rules_poetry-${RULES_POETRY_COMMIT}
+BAZEL_INSTALL_WRKSRC= ${WRKSRC}/bazel-bin/${ALL_TARGET}
.if ${FLAVOR:U} == armv80a
OPTIONS_SET+= ARMV80A
@@ -156,29 +182,32 @@ MOZJS_ARCH= ${ARCH}
post-extract:
# Verify we downloaded the proper mozjs git tag.
- ${SH} -xc "test \"X`grep -E '^LIB_GIT_REVISION=' ${MOZJS_WRKSRC}/get-sources.sh`\" = \"XLIB_GIT_REVISION=${MOZJS_TAG}\""
- ${PATCH} -d ${WRKDIR}/spidermonkey-${MOZJS_TAG} -p1 < ${PATCHDIR}/d497aa4f770ca02f6083e93b94996a8fe32c2ff4.patch
+ ${SH} -xc "test \"X`grep -E '^LIB_GIT_REVISION=' ${MOZJS_WRKSRC}/scripts/import.sh`\" = \"XLIB_GIT_REVISION=${MOZJS_TAG}\""
pre-configure:
-# Replacement of ${WRKSRC}/src/third_party/mozjs/get-sources.sh
+# Replacement of ${WRKSRC}/src/third_party/mozjs/scripts/import.sh
${LN} -sF ${WRKDIR}/spidermonkey-${MOZJS_TAG} ${MOZJS_WRKSRC}/mozilla-release
+post-patch:
+ ${PATCH} -d ${RULES_POETRY_WRKSRC} -p0 < ${WRKSRC}/bazel/rules_poetry/rules_poetry.patch
+
do-build:
- ${WRKSRC}/buildscripts/scons.py -C ${WRKSRC} ${MAKE_ARGS}
+ ${MKDIR} ${BAZEL_REPOSITORY_CACHE}
+ cd ${WRKSRC} && ${SETENV} ${BAZEL_ENV} ${BAZEL} ${BAZEL_STARTUP_ARGS} build ${BAZEL_ARGS} ${ALL_TARGET}
do-install:
-.for f in mongod mongos
- ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${f}
-.endfor
+ ${INSTALL_PROGRAM} ${BAZEL_INSTALL_WRKSRC}/bin/mongod ${STAGEDIR}${PREFIX}/bin/
+ ${INSTALL_PROGRAM} ${BAZEL_INSTALL_WRKSRC}/bin/mongos ${STAGEDIR}${PREFIX}/bin/
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/mongod
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/mongos
${INSTALL_DATA} ${WRKSRC}/rpm/mongod.conf ${STAGEDIR}${PREFIX}/etc/mongodb.conf.sample
${MKDIR} ${STAGEDIR}${DOCSDIR}
-.for doc in LICENSE-Community.txt MPL-2 README THIRD-PARTY-NOTICES
- ${MV} ${STAGEDIR}${PREFIX}/${doc} ${STAGEDIR}${DOCSDIR}/
+.for doc in LICENSE-Community.txt distsrc/MPL-2 distsrc/README distsrc/THIRD-PARTY-NOTICES
+ ${INSTALL_DATA} ${WRKSRC}/${doc} ${STAGEDIR}${DOCSDIR}/
.endfor
${INSTALL_MAN} ${WRKSRC}/debian/mongod.1 ${STAGEDIR}${PREFIX}/share/man/man1/
${INSTALL_MAN} ${WRKSRC}/debian/mongos.1 ${STAGEDIR}${PREFIX}/share/man/man1/
${INSTALL_MAN} ${WRKSRC}/debian/mongodb-parameters.5 ${STAGEDIR}${PREFIX}/share/man/man5/
- ${RM} ${STAGEDIR}${PREFIX}/bin/resmoke.py
do-test:
${SH} ${FILESDIR}/make.test.sh "${STAGEDIR}${PREFIX}/bin"
diff --git a/databases/mongodb80/distinfo b/databases/mongodb80/distinfo
index 8c7c6fe893ec..ade903469b6b 100644
--- a/databases/mongodb80/distinfo
+++ b/databases/mongodb80/distinfo
@@ -1,7 +1,11 @@
-TIMESTAMP = 1782994633
-SHA256 (mongodb-mongo-r8.0.12_GH0.tar.gz) = 0e9000bd8674e8b7c4f48906f6799f9604a1d61f79220cbb099b231a50ac05ea
-SIZE (mongodb-mongo-r8.0.12_GH0.tar.gz) = 98534080
-SHA256 (mongodb-forks-spidermonkey-5acd3be6c9563ad3e7ca6182285c69a38de47bab_GH0.tar.gz) = 1420533e23970171ff7a420e3ded1ea493e1976fb8896a5fd6f35e5b2d75733b
-SIZE (mongodb-forks-spidermonkey-5acd3be6c9563ad3e7ca6182285c69a38de47bab_GH0.tar.gz) = 280439685
-SHA256 (0877732109589e441cbf234dce17ec0e7b614902.patch) = 96bcf70f8ee66424b5601632fb91dbcbb6b14df0553f59f36cd10325bfce7105
-SIZE (0877732109589e441cbf234dce17ec0e7b614902.patch) = 1770
+TIMESTAMP = 1790747755
+SHA256 (mongodb-r8.0.29-bazel-repository-cache.tar.gz) = f1301200c6d28c3f86a91e5de63fa5e12737074def30db9567006b326483c984
+SIZE (mongodb-r8.0.29-bazel-repository-cache.tar.gz) = 39982114
+SHA256 (bazelbuild-bazel-central-registry-5df17720d4367282afb8e5ca27a35199ab7620e4_GH0.tar.gz) = 8e50f26b47e345a32aaff54d8477b4d9a277cab1cb7d4db6b7aa361191d55be4
+SIZE (bazelbuild-bazel-central-registry-5df17720d4367282afb8e5ca27a35199ab7620e4_GH0.tar.gz) = 14273558
+SHA256 (mongodb-forks-rules_poetry-917630033c736c188605cf0f558c34afc1eca540_GH0.tar.gz) = 48001b928488e78f03a47bcc712c56432a471fc6cdd90fe57c884efbfcd13696
+SIZE (mongodb-forks-rules_poetry-917630033c736c188605cf0f558c34afc1eca540_GH0.tar.gz) = 339587
+SHA256 (mongodb-mongo-r8.0.29_GH0.tar.gz) = a45686998d5bc29c97f6d2fbc5a6dc5a1260a10c9d830e42080dffb74649124b
+SIZE (mongodb-mongo-r8.0.29_GH0.tar.gz) = 88788792
+SHA256 (mongodb-forks-spidermonkey-7aeaf7a44d420360bde75db8453636092c3e2f56_GH0.tar.gz) = 8ec7aa1399b6fb15b859c448ae6f361ab28cf48bd8fc4f0de2fb3776582e202f
+SIZE (mongodb-forks-spidermonkey-7aeaf7a44d420360bde75db8453636092c3e2f56_GH0.tar.gz) = 392664341
diff --git a/databases/mongodb80/files/d497aa4f770ca02f6083e93b94996a8fe32c2ff4.patch b/databases/mongodb80/files/d497aa4f770ca02f6083e93b94996a8fe32c2ff4.patch
deleted file mode 100644
index 62a81a051d65..000000000000
--- a/databases/mongodb80/files/d497aa4f770ca02f6083e93b94996a8fe32c2ff4.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-!!! This patch is a modified version of the phabricator mention !!!
-!!! You can diff them to see the difference !!!
-
-From d497aa4f770ca02f6083e93b94996a8fe32c2ff4 Mon Sep 17 00:00:00 2001
-From: Mike Hommey <mh+mozilla@glandium.org>
-Date: Tue, 19 Aug 2025 05:09:09 +0000
-Subject: [PATCH] Bug 1969769 - Change uses of ast.Str with ast.Constant.
- r=firefox-build-system-reviewers,ahochheiden
-
-ast.Str was deprecated in python 3.12 and removed in 3.14. It inherited
-from ast.Constant, `Str.s` was equivalent to `Constant.value`, so we can
-use the latter on both old and newer python versions.
-
-Differential Revision: https://phabricator.services.mozilla.com/D261512
----
- python/mozbuild/mozbuild/frontend/reader.py | 14 +++++++-------
- .../mozbuild/mozbuild/vendor/rewrite_mozbuild.py | 6 ++----
- 2 files changed, 9 insertions(+), 11 deletions(-)
-
-diff --git a/python/mozbuild/mozbuild/frontend/reader.py b/python/mozbuild/mozbuild/frontend/reader.py
-index 9f6292cb909de..89bf9995c1768 100644
---- a/python/mozbuild/mozbuild/frontend/reader.py
-+++ b/python/mozbuild/mozbuild/frontend/reader.py
-@@ -470,7 +470,7 @@
- return c(
- ast.Subscript(
- value=c(ast.Name(id=self._global_name, ctx=ast.Load())),
-- slice=c(ast.Index(value=c(ast.Str(s=node.id)))),
-+ slice=c(ast.Index(value=c(ast.Constant(value=node.id)))),
- ctx=node.ctx,
- )
- )
-@@ -1035,8 +1035,8 @@
- else:
- # Others
- assert isinstance(target.slice, ast.Index)
-- assert isinstance(target.slice.value, ast.Str)
-- key = target.slice.value.s
-+ assert isinstance(target.slice.value, ast.Constant)
-+ key = target.slice.value.value
-
- return name, key
-
-@@ -1044,11 +1044,11 @@
- value = node.value
- if isinstance(value, ast.List):
- for v in value.elts:
-- assert isinstance(v, ast.Str)
-- yield v.s
-+ assert isinstance(v, ast.Constant)
-+ yield v.value
- else:
-- assert isinstance(value, ast.Str)
-- yield value.s
-+ assert isinstance(value, ast.Constant)
-+ yield value.value
-
- assignments = []
-
-diff --git a/python/mozbuild/mozbuild/vendor/rewrite_mozbuild.py b/python/mozbuild/mozbuild/vendor/rewrite_mozbuild.py
-index cfcc0f18b9a9a..de06b58819b6a 100644
---- a/python/mozbuild/mozbuild/vendor/rewrite_mozbuild.py 2026-04-26 13:55:23.117672000 -0500
-+++ a/python/mozbuild/mozbuild/vendor/rewrite_mozbuild.py 2026-04-26 13:55:54.618049000 -0500
-@@ -327,15 +327,13 @@
- """
- if isinstance(node.value, ast.List) and "elts" in node.value._fields:
- for f in node.value.elts:
-- if not isinstance(f, ast.Constant) and not isinstance(f, ast.Str):
-+ if not isinstance(f, ast.Constant):
- log(
- "Found non-constant source file name in list: ",
- ast_get_source_segment(code, f),
- )
- return []
-- return [
-- f.value if isinstance(f, ast.Constant) else f.s for f in node.value.elts
-- ]
-+ return [f.value for f in node.value.elts]
- elif isinstance(node.value, ast.ListComp):
- # SOURCES += [f for f in foo if blah]
- log("Could not find the files for " + ast_get_source_segment(code, node.value))
diff --git a/databases/mongodb80/files/extrapatch-SConstruct b/databases/mongodb80/files/extrapatch-SConstruct
deleted file mode 100644
index 05946bd82cdc..000000000000
--- a/databases/mongodb80/files/extrapatch-SConstruct
+++ /dev/null
@@ -1,16 +0,0 @@
---- SConstruct.orig 2023-06-07 17:07:38 UTC
-+++ SConstruct
-@@ -3217,8 +3205,12 @@ if not env.TargetOSIs('windows', 'macOS') and (env.Too
- # setting it for both C and C++ by setting both of CFLAGS and
- # CXXFLAGS.
-
-+ arm_march_flag = "armv8-a"
-+ if get_option('use-hardware-crc32') == "on":
-+ arm_march_flag += "+crc"
-+
- default_targeting_flags_for_architecture = {
-- "aarch64": {"-march=": "armv8.2-a", "-mtune=": "generic"},
-+ "aarch64": {"-march=": arm_march_flag, "-mtune=": "generic"},
- "i386": {"-march=": "nocona", "-mtune=": "generic"},
- "ppc64le": {"-mcpu=": "power8", "-mtune=": "power8", "-mcmodel=": "medium"},
- "s390x": {"-march=": "z196", "-mtune=": "zEC12"},
diff --git a/databases/mongodb80/files/extrapatch-src_third__party_mozjs_SConscript b/databases/mongodb80/files/extrapatch-src_third__party_mozjs_SConscript
deleted file mode 100644
index 4370f13323a4..000000000000
--- a/databases/mongodb80/files/extrapatch-src_third__party_mozjs_SConscript
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/third_party/mozjs/SConscript.orig 2024-08-14 20:38:09 UTC
-+++ src/third_party/mozjs/SConscript
-@@ -144,7 +145,7 @@ sources = [
- "extract/js/src/wasm/WasmCode-platform.cpp",
- ]
-
--if env['TARGET_ARCH'] == 'x86_64' and not env.TargetOSIs('windows'):
-+if False and env['TARGET_ARCH'] == 'x86_64' and not env.TargetOSIs('windows'):
- env.Append(CCFLAGS=['-mavx2'])
- sources.extend(["extract/mozglue/misc/SIMD_avx2.cpp", "extract/mozglue/misc/SSE.cpp"])
-
diff --git a/databases/mongodb80/files/patch-MODULE.bazel b/databases/mongodb80/files/patch-MODULE.bazel
new file mode 100644
index 000000000000..c5c44e5b0532
--- /dev/null
+++ b/databases/mongodb80/files/patch-MODULE.bazel
@@ -0,0 +1,35 @@
+--- MODULE.bazel.orig
++++ MODULE.bazel
+@@ -78,11 +78,9 @@ single_version_override(
+ )
+
+ bazel_dep(name = "rules_poetry", version = "")
+-git_override(
++local_path_override(
+ module_name = "rules_poetry",
+- commit = "917630033c736c188605cf0f558c34afc1eca540",
+- patches = ["//bazel/rules_poetry:rules_poetry.patch"],
+- remote = "https://github.com/mongodb-forks/rules_poetry",
++ path = "../rules_poetry-917630033c736c188605cf0f558c34afc1eca540",
+ )
+
+ #
+@@ -164,5 +164,8 @@ use_repo(
+ setup_mongo_python_toolchains,
+ "py_host",
++ "py_freebsd_arm64",
++ "py_freebsd_ppc64le",
++ "py_freebsd_x86_64",
+ "py_linux_arm64",
+ "py_linux_ppc64le",
+ "py_linux_s390x",
+@@ -176,6 +179,9 @@ use_repo(
+ )
+
+ register_toolchains(
++ "@py_freebsd_arm64//:python_toolchain",
++ "@py_freebsd_ppc64le//:python_toolchain",
++ "@py_freebsd_x86_64//:python_toolchain",
+ "@py_linux_arm64//:python_toolchain",
+ "@py_linux_ppc64le//:python_toolchain",
+ "@py_linux_s390x//:python_toolchain",
diff --git a/databases/mongodb80/files/patch-SConstruct b/databases/mongodb80/files/patch-SConstruct
deleted file mode 100644
index 6e039812b1a2..000000000000
--- a/databases/mongodb80/files/patch-SConstruct
+++ /dev/null
@@ -1,11 +0,0 @@
---- SConstruct.orig 2025-07-07 23:12:17 UTC
-+++ SConstruct
-@@ -1848,7 +1848,7 @@ if unknown_vars:
-
- unknown_vars = env_vars.UnknownVariables()
- if unknown_vars:
-- env.FatalError("Unknown variables specified: {0}", ", ".join(list(unknown_vars.keys())))
-+ print("Unknown variables specified: {0}", ", ".join(list(unknown_vars.keys())))
-
- install_actions.setup(env, get_option('install-action'))
-
diff --git a/databases/mongodb80/files/patch-WORKSPACE.bazel b/databases/mongodb80/files/patch-WORKSPACE.bazel
new file mode 100644
index 000000000000..804f36c0a38a
--- /dev/null
+++ b/databases/mongodb80/files/patch-WORKSPACE.bazel
@@ -0,0 +1,23 @@
+--- WORKSPACE.bazel.orig
++++ WORKSPACE.bazel
+@@ -127,6 +127,20 @@ load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_N
+
+ rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION)
+
++load("//bazel:freebsd_repositories.bzl", "freebsd_system_yq_repo")
++
++freebsd_system_yq_repo(
++ name = "yq_freebsd_amd64",
++)
++
++freebsd_system_yq_repo(
++ name = "yq_freebsd_arm64",
++)
++
++freebsd_system_yq_repo(
++ name = "yq_freebsd_ppc64le",
++)
++
+ load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
+
+ npm_translate_lock(
diff --git a/databases/mongodb80/files/patch-bazel_config_BUILD.bazel b/databases/mongodb80/files/patch-bazel_config_BUILD.bazel
new file mode 100644
index 000000000000..56e046ec7420
--- /dev/null
+++ b/databases/mongodb80/files/patch-bazel_config_BUILD.bazel
@@ -0,0 +1,105 @@
+--- bazel/config/BUILD.bazel.orig 2026-08-11 19:14:56 UTC
++++ bazel/config/BUILD.bazel
+@@ -234,6 +234,30 @@ config_setting(
+ ],
+ )
+
++config_setting(
++ name = "freebsd_aarch64",
++ constraint_values = [
++ "@platforms//os:freebsd",
++ "@platforms//cpu:aarch64",
++ ],
++)
++
++config_setting(
++ name = "freebsd_x86_64",
++ constraint_values = [
++ "@platforms//os:freebsd",
++ "@platforms//cpu:x86_64",
++ ],
++)
++
++config_setting(
++ name = "freebsd_ppc64le",
++ constraint_values = [
++ "@platforms//os:freebsd",
++ "@platforms//cpu:ppc",
++ ],
++)
++
+ config_setting(
+ name = "rhel10",
+ constraint_values = [
+@@ -268,6 +292,7 @@ selects.config_setting_group(
+ match_any = [
+ "@platforms//os:macos",
+ "@platforms//os:linux",
++ "@platforms//os:freebsd",
+ ],
+ )
+
+@@ -276,6 +301,7 @@ selects.config_setting_group(
+ match_any = [
+ "@platforms//os:macos",
+ "@platforms//os:windows",
++ "@platforms//os:freebsd",
+ ],
+ )
+
+@@ -284,6 +310,7 @@ selects.config_setting_group(
+ match_any = [
+ "@platforms//os:linux",
+ "@platforms//os:windows",
++ "@platforms//os:freebsd",
+ ],
+ )
+
+@@ -309,6 +336,7 @@ selects.config_setting_group(
+ match_any = [
+ "@platforms//os:macos",
+ "@platforms//os:linux",
++ "@platforms//os:freebsd",
+ ],
+ )
+
+@@ -2177,6 +2205,22 @@ selects.config_setting_group(
+ ],
+ )
+
++selects.config_setting_group(
++ name = "ssl_enabled_freebsd",
++ match_all = [
++ "@platforms//os:freebsd",
++ ":ssl_enabled",
++ ],
++)
++
++selects.config_setting_group(
++ name = "ssl_disabled_freebsd",
++ match_all = [
++ "@platforms//os:freebsd",
++ ":ssl_disabled",
++ ],
++)
++
+ selects.config_setting_group(
+ name = "ssl_enabled_build_enterprise_disabled",
+ match_all = [
+@@ -2263,13 +2307,15 @@
+ selects.config_setting_group(
+ name = "mongo_crypto_openssl",
+- match_all = [
++ match_any = [
+ ":ssl_enabled_linux",
++ ":ssl_enabled_freebsd",
+ ],
+ )
+
+ selects.config_setting_group(
+ name = "mongo_crypto_tom",
+ match_any = [
+ ":ssl_disabled_linux",
++ ":ssl_disabled_freebsd",
+ ],
+ )
diff --git a/databases/mongodb80/files/patch-bazel_freebsd__repositories.bzl b/databases/mongodb80/files/patch-bazel_freebsd__repositories.bzl
new file mode 100644
index 000000000000..035d168b4799
--- /dev/null
+++ b/databases/mongodb80/files/patch-bazel_freebsd__repositories.bzl
@@ -0,0 +1,18 @@
+--- /dev/null
++++ bazel/freebsd_repositories.bzl
+@@ -0,0 +1,15 @@
++def _freebsd_system_yq_repo_impl(rctx):
++ localbase = rctx.os.environ.get("LOCALBASE", "/usr/local")
++ rctx.symlink("{}/bin/yq".format(localbase), "yq")
++ rctx.file(
++ "BUILD.bazel",
++ """
++package(default_visibility = ["//visibility:public"])
++exports_files(["yq"])
++""",
++ )
++
++freebsd_system_yq_repo = repository_rule(
++ implementation = _freebsd_system_yq_repo_impl,
++ environ = ["LOCALBASE"],
++)
diff --git a/databases/mongodb80/files/patch-bazel_install__rules_install__rules.bzl b/databases/mongodb80/files/patch-bazel_install__rules_install__rules.bzl
new file mode 100644
index 000000000000..f1cb2884d5be
--- /dev/null
+++ b/databases/mongodb80/files/patch-bazel_install__rules_install__rules.bzl
@@ -0,0 +1,46 @@
+--- bazel/install_rules/install_rules.bzl.orig 2026-08-11 19:14:56 UTC
++++ bazel/install_rules/install_rules.bzl
+@@ -103,7 +103,8 @@ def get_constraints(ctx):
+ """
+ linux_constraint = ctx.attr._linux_constraint[platform_common.ConstraintValueInfo]
+ macos_constraint = ctx.attr._macos_constraint[platform_common.ConstraintValueInfo]
+ windows_constraint = ctx.attr._windows_constraint[platform_common.ConstraintValueInfo]
+- return linux_constraint, macos_constraint, windows_constraint
++ freebsd_constraint = ctx.attr._freebsd_constraint[platform_common.ConstraintValueInfo]
++ return linux_constraint, macos_constraint, windows_constraint, freebsd_constraint
+
+ def is_binary_file(ctx, basename):
+@@ -117,7 +118,7 @@ def is_binary_file(ctx, basename):
+ True if it looks like a binary, False otherwise
+ """
+- linux_constraint, macos_constraint, windows_constraint = get_constraints(ctx)
+- if ctx.target_platform_has_constraint(linux_constraint):
++ linux_constraint, macos_constraint, windows_constraint, freebsd_constraint = get_constraints(ctx)
++ if ctx.target_platform_has_constraint(linux_constraint) or ctx.target_platform_has_constraint(freebsd_constraint):
+ return not (basename.startswith("lib") or basename.startswith("mongo_crypt_v") or basename.startswith("stitch_support.so"))
+ elif ctx.target_platform_has_constraint(macos_constraint):
+ return not (basename.startswith("lib") or basename.startswith("mongo_crypt_v") or basename.startswith("stitch_support.dylib"))
+@@ -138,7 +139,7 @@ def is_debug_file(ctx, basename):
+ True if it looks like a debug file, False otherwise
+ """
+- linux_constraint, macos_constraint, windows_constraint = get_constraints(ctx)
+- if ctx.target_platform_has_constraint(linux_constraint):
++ linux_constraint, macos_constraint, windows_constraint, freebsd_constraint = get_constraints(ctx)
++ if ctx.target_platform_has_constraint(linux_constraint) or ctx.target_platform_has_constraint(freebsd_constraint):
+ return basename.endswith(".debug") or basename.endswith(".dwp")
+ elif ctx.target_platform_has_constraint(macos_constraint):
+ return basename.endswith(".dSYM")
+@@ -176,5 +177,5 @@ def sort_file(ctx, file, install_dir, file_map, is_directory):
+
+ """
+- _, macos_constraint, _ = get_constraints(ctx)
++ _, macos_constraint, _, _ = get_constraints(ctx)
+ basename = paths.basename(file)
+ bin_install = install_dir + "/bin/" + basename
+@@ -410,5 +411,6 @@ mongo_install_rule = rule(
+ "_linux_constraint": attr.label(default = "@platforms//os:linux"),
+ "_macos_constraint": attr.label(default = "@platforms//os:macos"),
+ "_windows_constraint": attr.label(default = "@platforms//os:windows"),
++ "_freebsd_constraint": attr.label(default = "@platforms//os:freebsd"),
+ },
+ doc = "Install targets",
diff --git a/databases/mongodb80/files/patch-bazel_mongo__src__rules.bzl b/databases/mongodb80/files/patch-bazel_mongo__src__rules.bzl
new file mode 100644
index 000000000000..7f5de2127329
--- /dev/null
+++ b/databases/mongodb80/files/patch-bazel_mongo__src__rules.bzl
@@ -0,0 +1,32 @@
+--- bazel/mongo_src_rules.bzl.orig 2026-08-11 19:14:56 UTC
++++ bazel/mongo_src_rules.bzl
+@@ -269,6 +269,9 @@ def force_includes_hdr(package_name, name):
+ "//bazel/config:linux_ppc64le": ["//src/third_party/mozjs:platform/ppc64le/linux/build/js-config.h"],
+ "//bazel/config:linux_s390x": ["//src/third_party/mozjs:platform/s390x/linux/build/js-config.h"],
+ "//bazel/config:linux_x86_64": ["//src/third_party/mozjs:platform/x86_64/linux/build/js-config.h"],
++ "//bazel/config:freebsd_aarch64": ["//src/third_party/mozjs:platform/aarch64/freebsd/build/js-config.h"],
++ "//bazel/config:freebsd_ppc64le": ["//src/third_party/mozjs:platform/ppc64le/freebsd/build/js-config.h"],
++ "//bazel/config:freebsd_x86_64": ["//src/third_party/mozjs:platform/x86_64/freebsd/build/js-config.h"],
+ "//bazel/config:macos_aarch64": ["//src/third_party/mozjs:platform/aarch64/macOS/build/js-config.h"],
+ "//bazel/config:macos_x86_64": ["//src/third_party/mozjs:platform/x86_64/macOS/build/js-config.h"],
+ "//bazel/config:windows_x86_64": ["//src/third_party/mozjs:/platform/x86_64/windows/build/js-config.h"],
+@@ -473,6 +476,9 @@ def mongo_cc_shared_library(
+ "//bazel/config:linux_ppc64le": linux_rpath_flags,
+ "//bazel/config:linux_s390x": linux_rpath_flags,
+ "//bazel/config:linux_x86_64": linux_rpath_flags,
++ "//bazel/config:freebsd_aarch64": linux_rpath_flags,
++ "//bazel/config:freebsd_ppc64le": linux_rpath_flags,
++ "//bazel/config:freebsd_x86_64": linux_rpath_flags,
+ "//bazel/config:macos_aarch64": macos_rpath_flags,
+ "//bazel/config:macos_x86_64": macos_rpath_flags,
+ "//bazel/config:windows_x86_64": [],
+@@ -716,6 +722,9 @@ def mongo_cc_binary(
+ "//bazel/config:linux_ppc64le": linux_rpath_flags,
+ "//bazel/config:linux_s390x": linux_rpath_flags,
+ "//bazel/config:linux_x86_64": linux_rpath_flags,
++ "//bazel/config:freebsd_aarch64": linux_rpath_flags,
++ "//bazel/config:freebsd_ppc64le": linux_rpath_flags,
++ "//bazel/config:freebsd_x86_64": linux_rpath_flags,
+ "//bazel/config:macos_aarch64": macos_rpath_flags,
+ "//bazel/config:macos_x86_64": macos_rpath_flags,
+ "//bazel/config:windows_x86_64": [],
diff --git a/databases/mongodb80/files/patch-bazel_platforms_local__config__platform.bzl b/databases/mongodb80/files/patch-bazel_platforms_local__config__platform.bzl
new file mode 100644
index 000000000000..a5d082d77186
--- /dev/null
+++ b/databases/mongodb80/files/patch-bazel_platforms_local__config__platform.bzl
@@ -0,0 +1,25 @@
+--- bazel/platforms/local_config_platform.bzl.orig 2026-08-11 19:14:56 UTC
++++ bazel/platforms/local_config_platform.bzl
+@@ -18,8 +18,10 @@ def _setup_local_config_platform(ctx):
+ os = "windows"
+ elif "mac" in ctx.os.name:
+ os = "macos"
+- else:
++ elif "linux" in ctx.os.name:
+ os = "linux"
++ elif "freebsd" in ctx.os.name:
++ os = "freebsd"
+
+ arch = ctx.os.arch
+
+@@ -31,7 +33,9 @@ def _setup_local_config_platform(ctx):
+ # So Starlark doesn't throw an indentation error when this gets injected.
+ constraints_str = ",\n ".join(['"%s"' % c for c in constraints])
+
+- distro = get_host_distro_major_version(ctx)
++ distro = None
++ if os == "linux":
++ distro = get_host_distro_major_version(ctx)
+ if arch == "x86_64":
+ arch = "amd64"
+ elif arch == "aarch64":
diff --git a/databases/mongodb80/files/patch-bazel_platforms_normalize.bzl b/databases/mongodb80/files/patch-bazel_platforms_normalize.bzl
new file mode 100644
index 000000000000..f7281f7b5ca8
--- /dev/null
+++ b/databases/mongodb80/files/patch-bazel_platforms_normalize.bzl
@@ -0,0 +1,8 @@
+--- bazel/platforms/normalize.bzl.orig 2026-08-11 19:14:56 UTC
++++ bazel/platforms/normalize.bzl
+@@ -18,4 +18,5 @@ OS_TO_PLATFORM_MAP = {
+ "macos": "@platforms//os:osx",
+ "linux": "@platforms//os:linux",
+ "windows": "@platforms//os:windows",
++ "freebsd": "@platforms//os:freebsd",
+ }
diff --git a/databases/mongodb80/files/patch-bazel_rules__poetry_rules__poetry.patch b/databases/mongodb80/files/patch-bazel_rules__poetry_rules__poetry.patch
new file mode 100644
index 000000000000..4913e3550cd9
--- /dev/null
+++ b/databases/mongodb80/files/patch-bazel_rules__poetry_rules__poetry.patch
@@ -0,0 +1,170 @@
+--- bazel/rules_poetry/rules_poetry.patch.orig
++++ bazel/rules_poetry/rules_poetry.patch
+@@ -10,3 +10,167 @@ index 0000000..c09945f
+ +
+ +bazel_dep(name = "bazel_skylib", version = "1.5.0")
+ +bazel_dep(name = "platforms", version = "0.0.8")
++diff --git rules_poetry/defs.bzl rules_poetry/defs.bzl
++index b3c070b..564e159 100644
++--- rules_poetry/defs.bzl
+++++ rules_poetry/defs.bzl
++@@ -88,43 +88,18 @@ COMMON_ARGS = [
++ "--isolated",
++ ]
++
++-def _download(ctx, requirements):
++-
++- toolchain = ctx.toolchains["@bazel_tools//tools/python:toolchain_type"]
++- runtime = toolchain.py3_runtime
++- inputs = depset([requirements], transitive = [runtime.files])
++- tools = depset(direct = [runtime.interpreter], transitive = [runtime.files])
++-
++- python = ctx.toolchains["@bazel_tools//tools/python:toolchain_type"].py3_runtime
++- destination = ctx.actions.declare_directory("wheels/%s" % ctx.attr.name)
++- args = ctx.actions.args()
++- args.add("-m")
++- args.add("pip")
++- args.add("wheel")
++- args.add_all(COMMON_ARGS)
++- args.add("--require-hashes")
++- args.add("--wheel-dir")
++- args.add(destination.path)
++- args.add("-r")
++- args.add(requirements)
++- if ctx.attr.source_url != "":
++- args.add("-i")
++- args.add(ctx.attr.source_url)
++-
++- ctx.actions.run(
++- executable = python.interpreter.path,
++- inputs = inputs,
++- outputs = [destination],
++- arguments = [args],
++- env = deterministic_env(),
++- mnemonic = "DownloadWheel",
++- progress_message = "Collecting %s wheel from pypi" % ctx.attr.pkg,
++- execution_requirements = {
++- "requires-network": "",
++- },
++- tools = tools,
+++def _empty_directory(ctx, output, mnemonic, progress_message):
+++ ctx.actions.run_shell(
+++ outputs = [output],
+++ command = "mkdir -p \"$1\"",
+++ arguments = [output.path],
+++ mnemonic = mnemonic,
+++ progress_message = progress_message,
++ )
++
+++def _download(ctx, requirements):
+++ destination = ctx.actions.declare_directory("wheels/%s" % ctx.attr.name)
+++ _empty_directory(ctx, destination, "DownloadWheel", "Using system Python package for %s" % ctx.attr.pkg)
++ return destination
++
++ def _download_wheel_impl(ctx):
++@@ -161,33 +136,7 @@ download_wheel = rule(
++ def _install(ctx, wheel_info):
++
++ installed_wheel = ctx.actions.declare_directory(wheel_info.pkg)
++- python = ctx.toolchains["@bazel_tools//tools/python:toolchain_type"].py3_runtime
++-
++- args = [
++- "-m",
++- "pip",
++- 'install',
++- '--force-reinstall',
++- '--upgrade',
++- ] + COMMON_ARGS + [
++- "--no-compile",
++- "--no-index",
++- "--find-links",
++- ctx.files.wheel[0].path,
++- "--target="+installed_wheel.path,
++- wheel_info.pkg + " ; " + str(wheel_info.marker)
++- ]
++-
++- ctx.actions.run(
++- executable = python.interpreter.path,
++- outputs = [installed_wheel],
++- inputs = depset(ctx.files.wheel, transitive = [python.files]),
++- arguments = args,
++- env = deterministic_env(),
++- progress_message = "Installing %s wheel" % wheel_info.pkg,
++- mnemonic = "CopyWheel",
++- )
++-
+++ _empty_directory(ctx, installed_wheel, "CopyWheel", "Using system Python package for %s" % wheel_info.pkg)
++ return installed_wheel
++
++ def _pip_install_impl(ctx):
++diff --git rules_poetry/poetry.bzl rules_poetry/poetry.bzl
++index 32991e2..3e27600 100644
++--- rules_poetry/poetry.bzl
+++++ rules_poetry/poetry.bzl
++@@ -20,6 +20,26 @@ SUPPORTED_PLATFORMS = [
++ "win32!x86_64",
++ ]
++
+++def _toml_to_json_args(path):
+++ return [
+++ "-c",
+++ """
+++import json
+++import sys
+++
+++try:
+++ import tomllib
+++except ModuleNotFoundError:
+++ import tomli as tomllib
+++
+++with open(sys.argv[1], "rb") as handle:
+++ data = tomllib.load(handle)
+++
+++json.dump(data, sys.stdout, default=str)
+++""",
+++ path,
+++ ]
+++
++ def _clean_name(name):
++ return name.lower().replace("-", "_").replace(".", "_")
++
++@@ -68,18 +88,7 @@ def _resolve_python_interpreter(rctx):
++ def _mapping(repository_ctx):
++ python_interpreter = _resolve_python_interpreter(repository_ctx)
++ result = repository_ctx.execute(
++- [
++- python_interpreter,
++- repository_ctx.path(repository_ctx.attr._script),
++- "-i",
++- repository_ctx.path(repository_ctx.attr.pyproject),
++- "-o",
++- "-",
++- "--if",
++- "toml",
++- "--of",
++- "json",
++- ],
+++ [python_interpreter] + _toml_to_json_args(repository_ctx.path(repository_ctx.attr.pyproject)),
++ )
++
++ if result.return_code:
*** 850 LINES SKIPPED ***