mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 17:09:10 -07:00
sci-libs/keras: drop 2.8.0, 2.9.0
Signed-off-by: Jason Zaman <perfinion@gentoo.org>
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
DIST bazelbuild-rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d.zip 201360 BLAKE2B 0173a8edb17f344b18e42026e2f8a62a1909d4694ab0be83562b6437a3f1ef38889f069269ddd2308b41062e5f375f791be0d2631a8e52ede668203779813b56 SHA512 2ba1dc316d88947c1d17ec67154c052700e3571b8d03370a9f204cf9fe94a1bd58f93a2c4a3c0b02233ee3250053a4c30a4133b5b38745858c1d04be8c9d973f
|
||||
DIST bazelbuild-rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip 9422 BLAKE2B bbc45c97551ee8126335b611ffca6574dac843d4db9b3221b10d26487f8eecfe38ba0cd67a4039a3ad921c25fea6294c43e4f4e7a57a060a30791acd6c4f9d39 SHA512 ba06242feb711e7fb6e821fd9ac029248b4f3e466fb1acf971d0db8196f3efe4d114ef137acbe4913073f8cbe8ccab4d47d8bafa21b867b2d6a6d57f5a647f0c
|
||||
DIST keras-2.10.0.tar.gz 2250425 BLAKE2B eb05537739cdc81e279b5c400e2e2b77d46f4085e8530fef565bde12414ddccedb44c0b13265106a3353e67c367106e1d341412dc25b32e2221f144a31d76079 SHA512 8682110495a045c2ebc61f31a98d646b88fd9608d5169be78701cf528457ff0d2e39669d885854c14c1e6bebb380b14968957f2a8a34a8a023f8860efc7aeecd
|
||||
DIST keras-2.8.0.tar.gz 2001168 BLAKE2B 64e756da102369bd41b176245f7f8184b2376b6fb714485627e30107af552035931c9fcff18d82def5f4e1b83f2eae2fa3d0c18b030986f8d3a53dffbdbb2963 SHA512 a70ae1409761211f3b59d358df4d5abf6bb76b915f5dde90ada5a867aef2831581836d38876bd2e962f3c345f59373bf76a7c21247cef8aeaec45ba1301f787b
|
||||
DIST keras-2.9.0.tar.gz 2142884 BLAKE2B 9d90ad998ef7215f9a3ab0f0ac9d035f81023f7049e5c73823a0aa8561ead2f697ff762c225f668f3d9fe376d69a2bfbdf8b137128c915a711cee53d809093d6 SHA512 779828aff9aa31970e7f68b32423e47b81f47d2284d9e9734428c3bc3789e6b0e9ef151315e1cae666b14b1cdc387828ddaf520811250f9ad4fa73cf5c98781d
|
||||
|
||||
@@ -1,316 +0,0 @@
|
||||
From 71f50c026a4b7658596ab4209cc63520710f02b5 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Zaman <jason@perfinion.com>
|
||||
Date: Sun, 14 Nov 2021 17:59:39 -0800
|
||||
Subject: [PATCH] bazel: Use system protobuf
|
||||
|
||||
---
|
||||
WORKSPACE | 38 -------
|
||||
keras/protobuf/BUILD | 2 +-
|
||||
third_party/BUILD | 8 +-
|
||||
third_party/protobuf.bzl | 216 +++++++++++++++++++++++++++++++++++++++
|
||||
4 files changed, 224 insertions(+), 40 deletions(-)
|
||||
create mode 100644 third_party/protobuf.bzl
|
||||
|
||||
diff --git a/WORKSPACE b/WORKSPACE
|
||||
index 2c03ebba..61282aea 100644
|
||||
--- a/WORKSPACE
|
||||
+++ b/WORKSPACE
|
||||
@@ -1,39 +1 @@
|
||||
workspace(name = "org_keras")
|
||||
-
|
||||
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
-
|
||||
-# Needed by protobuf
|
||||
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
-http_archive(
|
||||
- name = "bazel_skylib",
|
||||
- url = "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.1/bazel-skylib-1.0.1.tar.gz",
|
||||
- sha256 = "f1c8360c01fcf276778d3519394805dc2a71a64274a3a0908bc9edff7b5aebc8",
|
||||
-)
|
||||
-load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
|
||||
-bazel_skylib_workspace()
|
||||
-
|
||||
-# Needed by protobuf
|
||||
-http_archive(
|
||||
- name = "six_archive",
|
||||
- build_file = "//third_party:six.BUILD",
|
||||
- sha256 = "d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73",
|
||||
- strip_prefix = "six-1.12.0",
|
||||
- urls = [
|
||||
- "http://mirror.bazel.build/pypi.python.org/packages/source/s/six/six-1.12.0.tar.gz",
|
||||
- "https://pypi.python.org/packages/source/s/six/six-1.12.0.tar.gz", # 2018-12-10
|
||||
- ],
|
||||
-)
|
||||
-
|
||||
-bind(
|
||||
- name = "six",
|
||||
- actual = "@six_archive//:six",
|
||||
-)
|
||||
-
|
||||
-http_archive(
|
||||
- name = "com_google_protobuf",
|
||||
- sha256 = "1fbf1c2962af287607232b2eddeaec9b4f4a7a6f5934e1a9276e9af76952f7e0",
|
||||
- strip_prefix = "protobuf-3.9.2",
|
||||
- urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.9.2.tar.gz"],
|
||||
-)
|
||||
-load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
|
||||
-protobuf_deps()
|
||||
diff --git a/keras/protobuf/BUILD b/keras/protobuf/BUILD
|
||||
index 871d9f6b..9df2b8ce 100644
|
||||
--- a/keras/protobuf/BUILD
|
||||
+++ b/keras/protobuf/BUILD
|
||||
@@ -1,7 +1,7 @@
|
||||
# Description:
|
||||
# Contains Keras protobufs
|
||||
|
||||
-load("@com_google_protobuf//:protobuf.bzl", "py_proto_library")
|
||||
+load("//third_party:protobuf.bzl", "py_proto_library")
|
||||
|
||||
package(
|
||||
default_visibility = [
|
||||
diff --git a/third_party/BUILD b/third_party/BUILD
|
||||
index 9be54076..9399232f 100644
|
||||
--- a/third_party/BUILD
|
||||
+++ b/third_party/BUILD
|
||||
@@ -1,4 +1,5 @@
|
||||
package(
|
||||
+ default_visibility = ["//visibility:public"],
|
||||
licenses = ["notice"], # Apache 2.0
|
||||
)
|
||||
|
||||
@@ -7,4 +8,9 @@ exports_files([
|
||||
"six.BUILD",
|
||||
])
|
||||
|
||||
-package(default_visibility = ["//visibility:public"])
|
||||
+genrule(
|
||||
+ name = "protoc",
|
||||
+ outs = ["protoc.bin"],
|
||||
+ cmd = "ln -s $$(which protoc) $@",
|
||||
+ executable = 1,
|
||||
+)
|
||||
diff --git a/third_party/protobuf.bzl b/third_party/protobuf.bzl
|
||||
new file mode 100644
|
||||
index 00000000..3a7ef0a2
|
||||
--- /dev/null
|
||||
+++ b/third_party/protobuf.bzl
|
||||
@@ -0,0 +1,216 @@
|
||||
+def _GetPath(ctx, path):
|
||||
+ if ctx.label.workspace_root:
|
||||
+ return ctx.label.workspace_root + "/" + path
|
||||
+ else:
|
||||
+ return path
|
||||
+
|
||||
+def _IsNewExternal(ctx):
|
||||
+ # Bazel 0.4.4 and older have genfiles paths that look like:
|
||||
+ # bazel-out/local-fastbuild/genfiles/external/repo/foo
|
||||
+ # After the exec root rearrangement, they look like:
|
||||
+ # ../repo/bazel-out/local-fastbuild/genfiles/foo
|
||||
+ return ctx.label.workspace_root.startswith("../")
|
||||
+
|
||||
+def _GenDir(ctx):
|
||||
+ if _IsNewExternal(ctx):
|
||||
+ # We are using the fact that Bazel 0.4.4+ provides repository-relative paths
|
||||
+ # for ctx.genfiles_dir.
|
||||
+ return ctx.genfiles_dir.path + (
|
||||
+ "/" + ctx.attr.includes[0] if ctx.attr.includes and ctx.attr.includes[0] else ""
|
||||
+ )
|
||||
+
|
||||
+ # This means that we're either in the old version OR the new version in the local repo.
|
||||
+ # Either way, appending the source path to the genfiles dir works.
|
||||
+ return ctx.var["GENDIR"] + "/" + _SourceDir(ctx)
|
||||
+
|
||||
+def _SourceDir(ctx):
|
||||
+ if not ctx.attr.includes:
|
||||
+ return ctx.label.workspace_root
|
||||
+ if not ctx.attr.includes[0]:
|
||||
+ return _GetPath(ctx, ctx.label.package)
|
||||
+ if not ctx.label.package:
|
||||
+ return _GetPath(ctx, ctx.attr.includes[0])
|
||||
+ return _GetPath(ctx, ctx.label.package + "/" + ctx.attr.includes[0])
|
||||
+
|
||||
+def _PyOuts(srcs, use_grpc_plugin = False):
|
||||
+ ret = [s[:-len(".proto")] + "_pb2.py" for s in srcs]
|
||||
+ if use_grpc_plugin:
|
||||
+ ret += [s[:-len(".proto")] + "_pb2_grpc.py" for s in srcs]
|
||||
+ return ret
|
||||
+
|
||||
+def _proto_gen_impl(ctx):
|
||||
+ """General implementation for generating protos"""
|
||||
+ srcs = ctx.files.srcs
|
||||
+ deps = []
|
||||
+ deps += ctx.files.srcs
|
||||
+ source_dir = _SourceDir(ctx)
|
||||
+ gen_dir = _GenDir(ctx)
|
||||
+ if source_dir:
|
||||
+ import_flags = ["-I" + source_dir, "-I" + gen_dir]
|
||||
+ else:
|
||||
+ import_flags = ["-I."]
|
||||
+
|
||||
+ for dep in ctx.attr.deps:
|
||||
+ import_flags += dep.proto.import_flags
|
||||
+ deps += dep.proto.deps
|
||||
+ import_flags = depset(import_flags).to_list()
|
||||
+ deps = depset(deps).to_list()
|
||||
+
|
||||
+ args = []
|
||||
+ if ctx.attr.gen_cc:
|
||||
+ args += ["--cpp_out=" + gen_dir]
|
||||
+ if ctx.attr.gen_py:
|
||||
+ args += ["--python_out=" + gen_dir]
|
||||
+
|
||||
+ inputs = srcs + deps
|
||||
+ tools = [ctx.executable.protoc]
|
||||
+ if ctx.executable.plugin:
|
||||
+ plugin = ctx.executable.plugin
|
||||
+ lang = ctx.attr.plugin_language
|
||||
+ if not lang and plugin.basename.startswith("protoc-gen-"):
|
||||
+ lang = plugin.basename[len("protoc-gen-"):]
|
||||
+ if not lang:
|
||||
+ fail("cannot infer the target language of plugin", "plugin_language")
|
||||
+
|
||||
+ outdir = gen_dir
|
||||
+ if ctx.attr.plugin_options:
|
||||
+ outdir = ",".join(ctx.attr.plugin_options) + ":" + outdir
|
||||
+ args += ["--plugin=protoc-gen-%s=%s" % (lang, plugin.path)]
|
||||
+ args += ["--%s_out=%s" % (lang, outdir)]
|
||||
+ tools.append(plugin)
|
||||
+
|
||||
+ if args:
|
||||
+ ctx.actions.run(
|
||||
+ inputs = inputs,
|
||||
+ outputs = ctx.outputs.outs,
|
||||
+ arguments = args + import_flags + [s.path for s in srcs],
|
||||
+ executable = ctx.executable.protoc,
|
||||
+ mnemonic = "ProtoCompile",
|
||||
+ tools = tools,
|
||||
+ use_default_shell_env = True,
|
||||
+ )
|
||||
+
|
||||
+ return struct(
|
||||
+ proto = struct(
|
||||
+ srcs = srcs,
|
||||
+ import_flags = import_flags,
|
||||
+ deps = deps,
|
||||
+ ),
|
||||
+ )
|
||||
+
|
||||
+proto_gen = rule(
|
||||
+ attrs = {
|
||||
+ "srcs": attr.label_list(allow_files = True),
|
||||
+ "deps": attr.label_list(providers = ["proto"]),
|
||||
+ "includes": attr.string_list(),
|
||||
+ "protoc": attr.label(
|
||||
+ cfg = "host",
|
||||
+ executable = True,
|
||||
+ allow_single_file = True,
|
||||
+ mandatory = True,
|
||||
+ ),
|
||||
+ "plugin": attr.label(
|
||||
+ cfg = "host",
|
||||
+ allow_files = True,
|
||||
+ executable = True,
|
||||
+ ),
|
||||
+ "plugin_language": attr.string(),
|
||||
+ "plugin_options": attr.string_list(),
|
||||
+ "gen_cc": attr.bool(),
|
||||
+ "gen_py": attr.bool(),
|
||||
+ "outs": attr.output_list(),
|
||||
+ },
|
||||
+ output_to_genfiles = True,
|
||||
+ implementation = _proto_gen_impl,
|
||||
+)
|
||||
+"""Generates codes from Protocol Buffers definitions.
|
||||
+
|
||||
+This rule helps you to implement Skylark macros specific to the target
|
||||
+language. You should prefer more specific `cc_proto_library `,
|
||||
+`py_proto_library` and others unless you are adding such wrapper macros.
|
||||
+
|
||||
+Args:
|
||||
+ srcs: Protocol Buffers definition files (.proto) to run the protocol compiler
|
||||
+ against.
|
||||
+ deps: a list of dependency labels; must be other proto libraries.
|
||||
+ includes: a list of include paths to .proto files.
|
||||
+ protoc: the label of the protocol compiler to generate the sources.
|
||||
+ plugin: the label of the protocol compiler plugin to be passed to the protocol
|
||||
+ compiler.
|
||||
+ plugin_language: the language of the generated sources
|
||||
+ plugin_options: a list of options to be passed to the plugin
|
||||
+ gen_cc: generates C++ sources in addition to the ones from the plugin.
|
||||
+ gen_py: generates Python sources in addition to the ones from the plugin.
|
||||
+ outs: a list of labels of the expected outputs from the protocol compiler.
|
||||
+"""
|
||||
+
|
||||
+def py_proto_library(
|
||||
+ name,
|
||||
+ srcs = [],
|
||||
+ deps = [],
|
||||
+ py_libs = [],
|
||||
+ py_extra_srcs = [],
|
||||
+ include = None,
|
||||
+ default_runtime = None,
|
||||
+ protoc = "//third_party:protoc",
|
||||
+ use_grpc_plugin = False,
|
||||
+ **kwargs):
|
||||
+ """Bazel rule to create a Python protobuf library from proto source files
|
||||
+
|
||||
+ NOTE: the rule is only an internal workaround to generate protos. The
|
||||
+ interface may change and the rule may be removed when bazel has introduced
|
||||
+ the native rule.
|
||||
+
|
||||
+ Args:
|
||||
+ name: the name of the py_proto_library.
|
||||
+ srcs: the .proto files of the py_proto_library.
|
||||
+ deps: a list of dependency labels; must be py_proto_library.
|
||||
+ py_libs: a list of other py_library targets depended by the generated
|
||||
+ py_library.
|
||||
+ py_extra_srcs: extra source files that will be added to the output
|
||||
+ py_library. This attribute is used for internal bootstrapping.
|
||||
+ include: a string indicating the include path of the .proto files.
|
||||
+ default_runtime: the implicitly default runtime which will be depended on by
|
||||
+ the generated py_library target.
|
||||
+ protoc: the label of the protocol compiler to generate the sources.
|
||||
+ use_grpc_plugin: a flag to indicate whether to call the Python C++ plugin
|
||||
+ when processing the proto files.
|
||||
+ **kwargs: other keyword arguments that are passed to py_library.
|
||||
+
|
||||
+ """
|
||||
+ outs = _PyOuts(srcs, use_grpc_plugin)
|
||||
+
|
||||
+ includes = []
|
||||
+ if include != None:
|
||||
+ includes = [include]
|
||||
+
|
||||
+ grpc_python_plugin = None
|
||||
+ if use_grpc_plugin:
|
||||
+ grpc_python_plugin = "//external:grpc_python_plugin"
|
||||
+ # Note: Generated grpc code depends on Python grpc module. This dependency
|
||||
+ # is not explicitly listed in py_libs. Instead, host system is assumed to
|
||||
+ # have grpc installed.
|
||||
+
|
||||
+ proto_gen(
|
||||
+ name = name + "_genproto",
|
||||
+ srcs = srcs,
|
||||
+ deps = [s + "_genproto" for s in deps],
|
||||
+ includes = includes,
|
||||
+ protoc = protoc,
|
||||
+ gen_py = 1,
|
||||
+ outs = outs,
|
||||
+ visibility = ["//visibility:public"],
|
||||
+ plugin = grpc_python_plugin,
|
||||
+ plugin_language = "grpc",
|
||||
+ )
|
||||
+
|
||||
+ if default_runtime and not default_runtime in py_libs + deps:
|
||||
+ py_libs = py_libs + [default_runtime]
|
||||
+
|
||||
+ native.py_library(
|
||||
+ name = name,
|
||||
+ srcs = outs + py_extra_srcs,
|
||||
+ deps = py_libs + deps,
|
||||
+ imports = includes,
|
||||
+ **kwargs
|
||||
+ )
|
||||
--
|
||||
2.32.0
|
||||
|
||||
@@ -1,331 +0,0 @@
|
||||
From c79e1177ff9f2e0de9070c604a812ff768c2c8c8 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Zaman <jason@perfinion.com>
|
||||
Date: Sun, 14 Nov 2021 17:59:39 -0800
|
||||
Subject: [PATCH] bazel: Use system protobuf
|
||||
|
||||
---
|
||||
WORKSPACE | 53 ----------
|
||||
keras/protobuf/BUILD | 2 +-
|
||||
third_party/BUILD | 8 +-
|
||||
third_party/protobuf.bzl | 216 +++++++++++++++++++++++++++++++++++++++
|
||||
4 files changed, 224 insertions(+), 55 deletions(-)
|
||||
create mode 100644 third_party/protobuf.bzl
|
||||
|
||||
diff --git a/WORKSPACE b/WORKSPACE
|
||||
index 39f478f8..61282aea 100644
|
||||
--- a/WORKSPACE
|
||||
+++ b/WORKSPACE
|
||||
@@ -1,54 +1 @@
|
||||
workspace(name = "org_keras")
|
||||
-
|
||||
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
-
|
||||
-# Needed by protobuf
|
||||
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
-http_archive(
|
||||
- name = "bazel_skylib",
|
||||
- url = "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.1/bazel-skylib-1.0.1.tar.gz",
|
||||
- sha256 = "f1c8360c01fcf276778d3519394805dc2a71a64274a3a0908bc9edff7b5aebc8",
|
||||
-)
|
||||
-load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
|
||||
-bazel_skylib_workspace()
|
||||
-
|
||||
-# Needed by protobuf
|
||||
-http_archive(
|
||||
- name = "six_archive",
|
||||
- build_file = "//third_party:six.BUILD",
|
||||
- sha256 = "d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73",
|
||||
- strip_prefix = "six-1.12.0",
|
||||
- urls = [
|
||||
- "http://mirror.bazel.build/pypi.python.org/packages/source/s/six/six-1.12.0.tar.gz",
|
||||
- "https://pypi.python.org/packages/source/s/six/six-1.12.0.tar.gz", # 2018-12-10
|
||||
- ],
|
||||
-)
|
||||
-
|
||||
-bind(
|
||||
- name = "six",
|
||||
- actual = "@six_archive//:six",
|
||||
-)
|
||||
-
|
||||
-http_archive(
|
||||
- name = "com_google_protobuf",
|
||||
- sha256 = "1fbf1c2962af287607232b2eddeaec9b4f4a7a6f5934e1a9276e9af76952f7e0",
|
||||
- strip_prefix = "protobuf-3.9.2",
|
||||
- urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.9.2.tar.gz"],
|
||||
-)
|
||||
-
|
||||
-# ZLIB
|
||||
-# Need by com_google_protobuf. Note that the original URL from zlib side is not
|
||||
-# available for now. We need to use bazel mirror as a backup.
|
||||
-http_archive(
|
||||
- name = "zlib",
|
||||
- build_file = "@com_google_protobuf//:third_party/zlib.BUILD",
|
||||
- sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1",
|
||||
- strip_prefix = "zlib-1.2.11",
|
||||
- urls = [
|
||||
- "https://mirror.bazel.build/zlib.net/zlib-1.2.11.tar.gz",
|
||||
- "https://zlib.net/zlib-1.2.11.tar.gz",
|
||||
- ],
|
||||
-)
|
||||
-
|
||||
-load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
|
||||
-protobuf_deps()
|
||||
diff --git a/keras/protobuf/BUILD b/keras/protobuf/BUILD
|
||||
index 413dcb74..80133c06 100644
|
||||
--- a/keras/protobuf/BUILD
|
||||
+++ b/keras/protobuf/BUILD
|
||||
@@ -1,7 +1,7 @@
|
||||
# Description:
|
||||
# Contains Keras protobufs
|
||||
|
||||
-load("@com_google_protobuf//:protobuf.bzl", "py_proto_library")
|
||||
+load("//third_party:protobuf.bzl", "py_proto_library")
|
||||
|
||||
package(
|
||||
default_visibility = [
|
||||
diff --git a/third_party/BUILD b/third_party/BUILD
|
||||
index 9be54076..9399232f 100644
|
||||
--- a/third_party/BUILD
|
||||
+++ b/third_party/BUILD
|
||||
@@ -1,4 +1,5 @@
|
||||
package(
|
||||
+ default_visibility = ["//visibility:public"],
|
||||
licenses = ["notice"], # Apache 2.0
|
||||
)
|
||||
|
||||
@@ -7,4 +8,9 @@ exports_files([
|
||||
"six.BUILD",
|
||||
])
|
||||
|
||||
-package(default_visibility = ["//visibility:public"])
|
||||
+genrule(
|
||||
+ name = "protoc",
|
||||
+ outs = ["protoc.bin"],
|
||||
+ cmd = "ln -s $$(which protoc) $@",
|
||||
+ executable = 1,
|
||||
+)
|
||||
diff --git a/third_party/protobuf.bzl b/third_party/protobuf.bzl
|
||||
new file mode 100644
|
||||
index 00000000..3a7ef0a2
|
||||
--- /dev/null
|
||||
+++ b/third_party/protobuf.bzl
|
||||
@@ -0,0 +1,216 @@
|
||||
+def _GetPath(ctx, path):
|
||||
+ if ctx.label.workspace_root:
|
||||
+ return ctx.label.workspace_root + "/" + path
|
||||
+ else:
|
||||
+ return path
|
||||
+
|
||||
+def _IsNewExternal(ctx):
|
||||
+ # Bazel 0.4.4 and older have genfiles paths that look like:
|
||||
+ # bazel-out/local-fastbuild/genfiles/external/repo/foo
|
||||
+ # After the exec root rearrangement, they look like:
|
||||
+ # ../repo/bazel-out/local-fastbuild/genfiles/foo
|
||||
+ return ctx.label.workspace_root.startswith("../")
|
||||
+
|
||||
+def _GenDir(ctx):
|
||||
+ if _IsNewExternal(ctx):
|
||||
+ # We are using the fact that Bazel 0.4.4+ provides repository-relative paths
|
||||
+ # for ctx.genfiles_dir.
|
||||
+ return ctx.genfiles_dir.path + (
|
||||
+ "/" + ctx.attr.includes[0] if ctx.attr.includes and ctx.attr.includes[0] else ""
|
||||
+ )
|
||||
+
|
||||
+ # This means that we're either in the old version OR the new version in the local repo.
|
||||
+ # Either way, appending the source path to the genfiles dir works.
|
||||
+ return ctx.var["GENDIR"] + "/" + _SourceDir(ctx)
|
||||
+
|
||||
+def _SourceDir(ctx):
|
||||
+ if not ctx.attr.includes:
|
||||
+ return ctx.label.workspace_root
|
||||
+ if not ctx.attr.includes[0]:
|
||||
+ return _GetPath(ctx, ctx.label.package)
|
||||
+ if not ctx.label.package:
|
||||
+ return _GetPath(ctx, ctx.attr.includes[0])
|
||||
+ return _GetPath(ctx, ctx.label.package + "/" + ctx.attr.includes[0])
|
||||
+
|
||||
+def _PyOuts(srcs, use_grpc_plugin = False):
|
||||
+ ret = [s[:-len(".proto")] + "_pb2.py" for s in srcs]
|
||||
+ if use_grpc_plugin:
|
||||
+ ret += [s[:-len(".proto")] + "_pb2_grpc.py" for s in srcs]
|
||||
+ return ret
|
||||
+
|
||||
+def _proto_gen_impl(ctx):
|
||||
+ """General implementation for generating protos"""
|
||||
+ srcs = ctx.files.srcs
|
||||
+ deps = []
|
||||
+ deps += ctx.files.srcs
|
||||
+ source_dir = _SourceDir(ctx)
|
||||
+ gen_dir = _GenDir(ctx)
|
||||
+ if source_dir:
|
||||
+ import_flags = ["-I" + source_dir, "-I" + gen_dir]
|
||||
+ else:
|
||||
+ import_flags = ["-I."]
|
||||
+
|
||||
+ for dep in ctx.attr.deps:
|
||||
+ import_flags += dep.proto.import_flags
|
||||
+ deps += dep.proto.deps
|
||||
+ import_flags = depset(import_flags).to_list()
|
||||
+ deps = depset(deps).to_list()
|
||||
+
|
||||
+ args = []
|
||||
+ if ctx.attr.gen_cc:
|
||||
+ args += ["--cpp_out=" + gen_dir]
|
||||
+ if ctx.attr.gen_py:
|
||||
+ args += ["--python_out=" + gen_dir]
|
||||
+
|
||||
+ inputs = srcs + deps
|
||||
+ tools = [ctx.executable.protoc]
|
||||
+ if ctx.executable.plugin:
|
||||
+ plugin = ctx.executable.plugin
|
||||
+ lang = ctx.attr.plugin_language
|
||||
+ if not lang and plugin.basename.startswith("protoc-gen-"):
|
||||
+ lang = plugin.basename[len("protoc-gen-"):]
|
||||
+ if not lang:
|
||||
+ fail("cannot infer the target language of plugin", "plugin_language")
|
||||
+
|
||||
+ outdir = gen_dir
|
||||
+ if ctx.attr.plugin_options:
|
||||
+ outdir = ",".join(ctx.attr.plugin_options) + ":" + outdir
|
||||
+ args += ["--plugin=protoc-gen-%s=%s" % (lang, plugin.path)]
|
||||
+ args += ["--%s_out=%s" % (lang, outdir)]
|
||||
+ tools.append(plugin)
|
||||
+
|
||||
+ if args:
|
||||
+ ctx.actions.run(
|
||||
+ inputs = inputs,
|
||||
+ outputs = ctx.outputs.outs,
|
||||
+ arguments = args + import_flags + [s.path for s in srcs],
|
||||
+ executable = ctx.executable.protoc,
|
||||
+ mnemonic = "ProtoCompile",
|
||||
+ tools = tools,
|
||||
+ use_default_shell_env = True,
|
||||
+ )
|
||||
+
|
||||
+ return struct(
|
||||
+ proto = struct(
|
||||
+ srcs = srcs,
|
||||
+ import_flags = import_flags,
|
||||
+ deps = deps,
|
||||
+ ),
|
||||
+ )
|
||||
+
|
||||
+proto_gen = rule(
|
||||
+ attrs = {
|
||||
+ "srcs": attr.label_list(allow_files = True),
|
||||
+ "deps": attr.label_list(providers = ["proto"]),
|
||||
+ "includes": attr.string_list(),
|
||||
+ "protoc": attr.label(
|
||||
+ cfg = "host",
|
||||
+ executable = True,
|
||||
+ allow_single_file = True,
|
||||
+ mandatory = True,
|
||||
+ ),
|
||||
+ "plugin": attr.label(
|
||||
+ cfg = "host",
|
||||
+ allow_files = True,
|
||||
+ executable = True,
|
||||
+ ),
|
||||
+ "plugin_language": attr.string(),
|
||||
+ "plugin_options": attr.string_list(),
|
||||
+ "gen_cc": attr.bool(),
|
||||
+ "gen_py": attr.bool(),
|
||||
+ "outs": attr.output_list(),
|
||||
+ },
|
||||
+ output_to_genfiles = True,
|
||||
+ implementation = _proto_gen_impl,
|
||||
+)
|
||||
+"""Generates codes from Protocol Buffers definitions.
|
||||
+
|
||||
+This rule helps you to implement Skylark macros specific to the target
|
||||
+language. You should prefer more specific `cc_proto_library `,
|
||||
+`py_proto_library` and others unless you are adding such wrapper macros.
|
||||
+
|
||||
+Args:
|
||||
+ srcs: Protocol Buffers definition files (.proto) to run the protocol compiler
|
||||
+ against.
|
||||
+ deps: a list of dependency labels; must be other proto libraries.
|
||||
+ includes: a list of include paths to .proto files.
|
||||
+ protoc: the label of the protocol compiler to generate the sources.
|
||||
+ plugin: the label of the protocol compiler plugin to be passed to the protocol
|
||||
+ compiler.
|
||||
+ plugin_language: the language of the generated sources
|
||||
+ plugin_options: a list of options to be passed to the plugin
|
||||
+ gen_cc: generates C++ sources in addition to the ones from the plugin.
|
||||
+ gen_py: generates Python sources in addition to the ones from the plugin.
|
||||
+ outs: a list of labels of the expected outputs from the protocol compiler.
|
||||
+"""
|
||||
+
|
||||
+def py_proto_library(
|
||||
+ name,
|
||||
+ srcs = [],
|
||||
+ deps = [],
|
||||
+ py_libs = [],
|
||||
+ py_extra_srcs = [],
|
||||
+ include = None,
|
||||
+ default_runtime = None,
|
||||
+ protoc = "//third_party:protoc",
|
||||
+ use_grpc_plugin = False,
|
||||
+ **kwargs):
|
||||
+ """Bazel rule to create a Python protobuf library from proto source files
|
||||
+
|
||||
+ NOTE: the rule is only an internal workaround to generate protos. The
|
||||
+ interface may change and the rule may be removed when bazel has introduced
|
||||
+ the native rule.
|
||||
+
|
||||
+ Args:
|
||||
+ name: the name of the py_proto_library.
|
||||
+ srcs: the .proto files of the py_proto_library.
|
||||
+ deps: a list of dependency labels; must be py_proto_library.
|
||||
+ py_libs: a list of other py_library targets depended by the generated
|
||||
+ py_library.
|
||||
+ py_extra_srcs: extra source files that will be added to the output
|
||||
+ py_library. This attribute is used for internal bootstrapping.
|
||||
+ include: a string indicating the include path of the .proto files.
|
||||
+ default_runtime: the implicitly default runtime which will be depended on by
|
||||
+ the generated py_library target.
|
||||
+ protoc: the label of the protocol compiler to generate the sources.
|
||||
+ use_grpc_plugin: a flag to indicate whether to call the Python C++ plugin
|
||||
+ when processing the proto files.
|
||||
+ **kwargs: other keyword arguments that are passed to py_library.
|
||||
+
|
||||
+ """
|
||||
+ outs = _PyOuts(srcs, use_grpc_plugin)
|
||||
+
|
||||
+ includes = []
|
||||
+ if include != None:
|
||||
+ includes = [include]
|
||||
+
|
||||
+ grpc_python_plugin = None
|
||||
+ if use_grpc_plugin:
|
||||
+ grpc_python_plugin = "//external:grpc_python_plugin"
|
||||
+ # Note: Generated grpc code depends on Python grpc module. This dependency
|
||||
+ # is not explicitly listed in py_libs. Instead, host system is assumed to
|
||||
+ # have grpc installed.
|
||||
+
|
||||
+ proto_gen(
|
||||
+ name = name + "_genproto",
|
||||
+ srcs = srcs,
|
||||
+ deps = [s + "_genproto" for s in deps],
|
||||
+ includes = includes,
|
||||
+ protoc = protoc,
|
||||
+ gen_py = 1,
|
||||
+ outs = outs,
|
||||
+ visibility = ["//visibility:public"],
|
||||
+ plugin = grpc_python_plugin,
|
||||
+ plugin_language = "grpc",
|
||||
+ )
|
||||
+
|
||||
+ if default_runtime and not default_runtime in py_libs + deps:
|
||||
+ py_libs = py_libs + [default_runtime]
|
||||
+
|
||||
+ native.py_library(
|
||||
+ name = name,
|
||||
+ srcs = outs + py_extra_srcs,
|
||||
+ deps = py_libs + deps,
|
||||
+ imports = includes,
|
||||
+ **kwargs
|
||||
+ )
|
||||
--
|
||||
2.35.1
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{8,9} )
|
||||
inherit bazel distutils-r1
|
||||
|
||||
DESCRIPTION="Deep Learning for humans"
|
||||
HOMEPAGE="https://keras.io/"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE=""
|
||||
|
||||
bazel_external_uris="
|
||||
https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip -> bazelbuild-rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d.zip
|
||||
https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip -> bazelbuild-rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
|
||||
|
||||
SRC_URI="https://github.com/keras-team/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
||||
${bazel_external_uris}"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-libs/protobuf-3.13.0:=
|
||||
dev-python/absl-py[${PYTHON_USEDEP}]
|
||||
dev-python/h5py[${PYTHON_USEDEP}]
|
||||
dev-python/numpy[${PYTHON_USEDEP}]
|
||||
dev-python/pandas[${PYTHON_USEDEP}]
|
||||
dev-python/pillow[${PYTHON_USEDEP}]
|
||||
>=dev-python/protobuf-python-3.13.0[${PYTHON_USEDEP}]
|
||||
dev-python/six[${PYTHON_USEDEP}]
|
||||
>=sci-libs/keras-applications-1.0.8[${PYTHON_USEDEP}]
|
||||
>=sci-libs/keras-preprocessing-1.1.2[${PYTHON_USEDEP}]
|
||||
>=sci-libs/tensorflow-2.8[python,${PYTHON_USEDEP}]"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]"
|
||||
BDEPEND="
|
||||
app-arch/unzip
|
||||
>=dev-libs/protobuf-3.13.0
|
||||
dev-java/java-config
|
||||
>=dev-util/bazel-4.2.2"
|
||||
|
||||
# Bazel tests not pytest, also want GPU access
|
||||
RESTRICT="test"
|
||||
DOCS=( CONTRIBUTING.md README.md )
|
||||
PATCHES=(
|
||||
"${FILESDIR}/keras-2.7.0-0001-bazel-Use-system-protobuf.patch"
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
unpack "${P}.tar.gz"
|
||||
bazel_load_distfiles "${bazel_external_uris}"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
bazel_setup_bazelrc
|
||||
default
|
||||
python_copy_sources
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export JAVA_HOME=$(java-config --jre-home)
|
||||
|
||||
do_compile() {
|
||||
ebazel build //keras/tools/pip_package:build_pip_package
|
||||
ebazel shutdown
|
||||
|
||||
local srcdir="${T}/src-${EPYTHON/./_}"
|
||||
mkdir -p "${srcdir}" || die
|
||||
bazel-bin/keras/tools/pip_package/build_pip_package --src "${srcdir}" || die
|
||||
}
|
||||
|
||||
python_foreach_impl run_in_build_dir do_compile
|
||||
}
|
||||
|
||||
src_install() {
|
||||
do_install() {
|
||||
cd "${T}/src-${EPYTHON/./_}" || die
|
||||
esetup.py install
|
||||
python_optimize
|
||||
}
|
||||
python_foreach_impl do_install
|
||||
|
||||
cd "${S}" || die
|
||||
einstalldocs
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{8,9,10} )
|
||||
inherit bazel distutils-r1
|
||||
|
||||
DESCRIPTION="Deep Learning for humans"
|
||||
HOMEPAGE="https://keras.io/"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE=""
|
||||
|
||||
bazel_external_uris="
|
||||
https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip -> bazelbuild-rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d.zip
|
||||
https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip -> bazelbuild-rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
|
||||
|
||||
SRC_URI="https://github.com/keras-team/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
||||
${bazel_external_uris}"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-libs/protobuf-3.13.0:=
|
||||
dev-python/absl-py[${PYTHON_USEDEP}]
|
||||
dev-python/h5py[${PYTHON_USEDEP}]
|
||||
dev-python/numpy[${PYTHON_USEDEP}]
|
||||
dev-python/pandas[${PYTHON_USEDEP}]
|
||||
dev-python/pillow[${PYTHON_USEDEP}]
|
||||
>=dev-python/protobuf-python-3.13.0[${PYTHON_USEDEP}]
|
||||
dev-python/six[${PYTHON_USEDEP}]
|
||||
>=sci-libs/keras-applications-1.0.8[${PYTHON_USEDEP}]
|
||||
>=sci-libs/keras-preprocessing-1.1.2[${PYTHON_USEDEP}]
|
||||
>=sci-libs/tensorflow-2.9[python,${PYTHON_USEDEP}]"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]"
|
||||
BDEPEND="
|
||||
app-arch/unzip
|
||||
>=dev-libs/protobuf-3.13.0
|
||||
dev-java/java-config
|
||||
>=dev-util/bazel-4.2.2"
|
||||
|
||||
# Bazel tests not pytest, also want GPU access
|
||||
RESTRICT="test"
|
||||
DOCS=( CONTRIBUTING.md README.md )
|
||||
PATCHES=(
|
||||
"${FILESDIR}/keras-2.9.0-0001-bazel-Use-system-protobuf.patch"
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
unpack "${P}.tar.gz"
|
||||
bazel_load_distfiles "${bazel_external_uris}"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
bazel_setup_bazelrc
|
||||
default
|
||||
python_copy_sources
|
||||
}
|
||||
|
||||
python_compile() {
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
|
||||
ebazel build //keras/tools/pip_package:build_pip_package
|
||||
ebazel shutdown
|
||||
|
||||
local srcdir="${T}/src-${EPYTHON/./_}"
|
||||
mkdir -p "${srcdir}" || die
|
||||
bazel-bin/keras/tools/pip_package/build_pip_package --src "${srcdir}" || die
|
||||
|
||||
popd || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export JAVA_HOME=$(java-config --jre-home)
|
||||
distutils-r1_src_compile
|
||||
}
|
||||
|
||||
python_install() {
|
||||
pushd "${T}/src-${EPYTHON/./_}" >/dev/null || die
|
||||
esetup.py install
|
||||
python_optimize
|
||||
popd || die
|
||||
}
|
||||
Reference in New Issue
Block a user