+ notes: 'Not feasible (vendored-binary, gotchas 35/126/157/183, feasibility-and-triage.md): no riscv64 mongod exists at any version, official or third-party, and MongoDB cannot be built from source on riscv64 without porting work upstream has never done. (1) WHAT IT IS. fiftyone-db 1.4.1 (Apache-2.0, voxel51/fiftyone package/db, unchanged on develop) compiles nothing: setup.py''s CustomBdistWheel.write_wheelfile downloads a prebuilt MongoDB server tarball from fastdl.mongodb.org and copies only bin/mongod into fiftyone/db/bin, retagging the wheel py3-none-<plat>. The URL comes from LINUX_DOWNLOADS[/etc/os-release ID][VERSION_ID prefix][platform.machine()], whose leaves carry only x86_64/aarch64 keys (mongodb-linux-*-{ubuntu2204,rhel90,debian12,amazon2023,...}-7.0.28, ubuntu2404-8.0.17, a few 6.0.27). (2) UPSTREAM SHIPS NO LINUX WHEEL ON ANY ARCH (gotcha 50/126 shape): PyPI 1.4.1 is sdist + macosx_10_13_x86_64 + macosx_11_0_arm64 + win32 + win_amd64; the last Linux wheels were 0.4.5 (plus the retired fiftyone-db-rhel7/-ubuntu2004/-ubuntu2204 siblings), so every Linux install builds the sdist on the host and fetches a distro-matched mongod there. On riscv64 that lookup raises KeyError(''riscv64''), which write_wheelfile''s bare except swallows, so `pip install fiftyone` (which requires fiftyone-db>=0.4,<2.0) already succeeds on riscv64 today with an empty fiftyone/db/bin; fiftyone only fails, with ServiceExecutableNotFound from core/service.py DatabaseService.find_mongod(), when it tries to launch a local DB. (3) NO riscv64 mongod ANYWHERE, checked 2026-10-02: downloads.mongodb.org/full.json lists 1245 versions up to 9.0.2 with arches x86_64/aarch64/arm64/s390x/ppc64le/i686/i386 and zero riscv entries (grep -ci riscv = 0). Gentoo dev-db/mongodb: 6.0.27 and 7.0.28 have KEYWORDS="amd64 ~arm64 -riscv" (explicitly marked broken), 8.0.29 and 8.3.8 have "~amd64 ~arm64" with no riscv keyword, and both fetch MongoDB''s own prebuilt bazel binary from mdb-build-public for linux-x86_64/linux-arm64 only. Ubuntu dropped mongodb after focal (SSPL); focal''s riscv64 mongodb-server is 3.6.9, below fiftyone''s MONGODB_MIN_VERSION 6.0 (fiftyone/constants.py), which core/odm/database.py enforces through server_info(). GitHub repository search for "mongodb riscv64" returns 0 results. (4) FROM SOURCE IS BLOCKED IN-TREE, NOT JUST LARGE: src/mongo/platform/pause.h at both r7.0.28 and master defines MONGO_YIELD_CORE_FOR_SMT for x86/PPC64/aarch64/arm/s390x/sparc/emscripten and otherwise hits #error "No processor pause implementation for this architecture." (no __riscv branch); r7.0.28''s SConstruct knows riscv64 only for endian detection; 8.0+ is Bazel-only with no riscv entry in bazel/platforms/BUILD.bazel. A public 2025 attempt (mongodb.com community forum t/322387, r8.0.0 on openEuler riscv64) stalled on the embedded mozjs SpiderMonkey (no riscv64 platform config), mongo-ninja-python (prebuilt wheels only) and hardware_destructive_interference_size, with no reply from MongoDB. Even with those patched it would be a first-ever, multi-day mongod build on the 4-core runners with no upstream riscv64 CI to mirror (goal 2), producing a server binary MongoDB itself does not support. (5) REJECTED ALTERNATIVE: wekan/FerretDB v1.86.0 publishes ferretdb-riscv64, but it is a MongoDB wire-protocol proxy over SQLite, not mongod. It does not accept fiftyone''s launch argv (mongod --dbpath --logpath --port 0 --nounixsocket, core/service.py), and core/odm/database.py requires server version >= 6.0 and issues getParameter/setFeatureCompatibilityVersion, so shipping it as fiftyone/db/bin/mongod would be an impostor binary, not a port. riscv64 fiftyone users are already served by fiftyone''s documented database_uri setting pointing at a MongoDB >= 6.0 on another host, which needs nothing from this repo. No branch, workflow, docs/packages yaml, patch or PR created. Revisit if downloads.mongodb.org/full.json ever lists a riscv64 target, or if MongoDB''s tree gains a __riscv branch in pause.h and a riscv64 mozjs platform.'
0 commit comments