Add Eigen 5.0.0 (#6006)

Turns out Eigen 5 is (about to be) released!
https://gitlab.com/libeigen/eigen/-/releases/5.0.0

This is an alternative to
https://github.com/bazelbuild/bazel-central-registry/pull/6004
diff --git a/modules/eigen/5.0.0/MODULE.bazel b/modules/eigen/5.0.0/MODULE.bazel
new file mode 100644
index 0000000..e3c051c
--- /dev/null
+++ b/modules/eigen/5.0.0/MODULE.bazel
@@ -0,0 +1,9 @@
+module(
+    name = "eigen",
+    version = "5.0.0",
+    bazel_compatibility = [">=7.2.1"],
+    compatibility_level = 1,
+)
+
+bazel_dep(name = "rules_cc", version = "0.0.17")
+bazel_dep(name = "rules_license", version = "1.0.0")
diff --git a/modules/eigen/5.0.0/overlay/BUILD.bazel b/modules/eigen/5.0.0/overlay/BUILD.bazel
new file mode 100644
index 0000000..78d8c68
--- /dev/null
+++ b/modules/eigen/5.0.0/overlay/BUILD.bazel
@@ -0,0 +1,61 @@
+load("@rules_cc//cc:cc_library.bzl", "cc_library")
+load("@rules_license//rules:license.bzl", "license")
+
+package(
+    default_applicable_licenses = [
+        ":license.APACHE",
+        ":license.BSD",
+        ":license.MINPACK",  # Only used by unsupported/** not by Eigen/**.
+        ":license.MPL2",
+    ],
+)
+
+exports_files(glob(["COPYING.*"]))
+
+# Note: Eigen is primarily an MPL2 library with small bits of code under other
+# licenses. Previous versions of Eigen contained LGPL code which needed to be
+# carefully excluded, but as of approximately 2023-02-07 all LGPL code has been
+# removed upstream so does not need any special handling here.
+
+license(
+    name = "license.APACHE",
+    license_kinds = ["@rules_license//licenses/spdx:Apache-2.0"],
+    license_text = "COPYING.APACHE",
+)
+
+license(
+    name = "license.BSD",
+    license_kinds = ["@rules_license//licenses/spdx:BSD-3-Clause"],
+    license_text = "COPYING.BSD",
+)
+
+license(
+    name = "license.MINPACK",
+    license_kinds = ["@rules_license//licenses/spdx:BSD-3-Clause-Attribution"],
+    license_text = "COPYING.MINPACK",
+)
+
+license(
+    name = "license.MPL2",
+    license_kinds = ["@rules_license//licenses/spdx:MPL-2.0"],
+    license_text = "COPYING.MPL2",
+)
+
+HDRS = glob(
+    [
+        "Eigen/**",
+        "unsupported/Eigen/**",
+    ],
+    exclude = [
+        # We don't want any documentation files.
+        "**/*.md",
+        "**/*.txt",
+    ],
+)
+
+cc_library(
+    name = "eigen",
+    hdrs = HDRS,
+    includes = ["."],
+    visibility = ["//visibility:public"],
+)
diff --git a/modules/eigen/5.0.0/overlay/MODULE.bazel b/modules/eigen/5.0.0/overlay/MODULE.bazel
new file mode 120000
index 0000000..9b599e3
--- /dev/null
+++ b/modules/eigen/5.0.0/overlay/MODULE.bazel
@@ -0,0 +1 @@
+../MODULE.bazel
\ No newline at end of file
diff --git a/modules/eigen/5.0.0/presubmit.yml b/modules/eigen/5.0.0/presubmit.yml
new file mode 100644
index 0000000..e19268a
--- /dev/null
+++ b/modules/eigen/5.0.0/presubmit.yml
@@ -0,0 +1,18 @@
+matrix:
+  platform:
+  - debian10
+  - debian11
+  - ubuntu2004
+  - ubuntu2204
+  - ubuntu2404
+  - macos
+  - macos_arm64
+  - windows
+  bazel: ["7.x", "8.x", "rolling"]
+tasks:
+  verify_targets:
+    name: Verify build targets
+    platform: ${{ platform }}
+    bazel: ${{ bazel }}
+    build_targets:
+    - '@eigen//:eigen'
diff --git a/modules/eigen/5.0.0/source.json b/modules/eigen/5.0.0/source.json
new file mode 100644
index 0000000..5a3a1b6
--- /dev/null
+++ b/modules/eigen/5.0.0/source.json
@@ -0,0 +1,14 @@
+{
+    "url": "https://gitlab.com/libeigen/eigen/-/package_files/233618368/download",
+    "mirror_urls": [
+        "https://github.com/eigen-mirror/eigen/archive/refs/tags/5.0.0.tar.gz",
+        "https://gitlab.com/libeigen/eigen/-/archive/5.0.0/eigen-5.0.0.tar.gz"
+    ],
+    "archive_type": "tar.gz",
+    "integrity": "sha256-MVyIHhnhdUKn1CjFqjfRE8iblQDTUMQzeXtzDNRJwFY=",
+    "strip_prefix": "eigen-5.0.0",
+    "overlay": {
+        "BUILD.bazel": "sha256-FLG3o0e8uef58dPphOjnCjAfXYUMBvJQYbr1tfkNYO0=",
+        "MODULE.bazel": "sha256-ZaobPfzzsivUUVDtSrW/refN2jyoVzX7Rm1FOGoXIsA="
+    }
+}
diff --git a/modules/eigen/metadata.json b/modules/eigen/metadata.json
index 5b2b331..2179a7f 100644
--- a/modules/eigen/metadata.json
+++ b/modules/eigen/metadata.json
@@ -19,7 +19,8 @@
         "4.0.0-20241125",
         "4.0.0-20241125.bcr.1",
         "4.0.0-20241125.bcr.2",
-        "4.0.0-20241125.bcr.3"
+        "4.0.0-20241125.bcr.3",
+        "5.0.0"
     ],
     "yanked_versions": {}
 }