[Buildroot] [PATCH v7 2/7] package/depot-tools: new package
Adam Duskett
adam.duskett at amarulasolutions.com
Tue Aug 29 21:37:21 UTC 2023
Chromium and Chromium OS use a package of scripts called
depot_tools to manage checkouts and code reviews. This package
also includes the gclient utility.
gclient is a Python script to manage a workspace of modular dependencies that
are each checked out independently from different subversion or git
repositories. Features include:
- Dependencies can be specified on a per-OS basis.
- Dependencies can be specified relative to their parent dependency.
- Variables can be used to abstract concepts.
- Hooks can be specified to be run after a checkout.
- .gclient and DEPS are Python scripts. You can hack in easily or add
additional configuration data.
.gclient file: It's the primary file. It is, in fact, a Python script. It
specifies the following variables:
- solutions: an array of dictionaries specifying the projects that will be
fetched.
- hooks: additional hooks to be run when this meta checkout is synced.
- target_os: an optional array of (target) operating systems to fetch
OS-specific dependencies for.
- cache_dir: Primarily for bots, multiple working sets use a single git
cache.
gclient is necessary for checking out the flutter-engine source code, as the
release tarballs provided on the flutter-engine github are in no state to
compile. Google expects the use of gclient to download a source directory
structure suitable to build the Flutter engine.
Signed-off-by: Adam Duskett <adam.duskett at amarulasolutions.com>
---
V2 -> V3:
- Re-added Config.in.host. It needs to select host-python3, host-python3-six,
and host-python3-ssl
V1 -> V2:
- Remove Config.in.host
- Remove DEPOT_TOOLS_GCLIENT helper wrapper as it is unused.
DEVELOPERS | 3 +++
package/Config.in.host | 1 +
package/depot-tools/Config.in.host | 10 ++++++++++
package/depot-tools/depot-tools.hash | 3 +++
package/depot-tools/depot-tools.mk | 25 +++++++++++++++++++++++++
5 files changed, 42 insertions(+)
create mode 100644 package/depot-tools/Config.in.host
create mode 100644 package/depot-tools/depot-tools.hash
create mode 100644 package/depot-tools/depot-tools.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 241de082eb..0373d5243e 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -26,6 +26,9 @@
# infrastructure, and will be CC'ed on all patches that add or
# modify packages that use this infrastructure.
+N: Adam Duskett <adam.duskett at amarulasolutions.com>
+F: package/depot-tools/
+
N: Adam Duskett <aduskett at gmail.com>
F: package/firewalld/
diff --git a/package/Config.in.host b/package/Config.in.host
index 22e0dc64d4..377dbed7d3 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -19,6 +19,7 @@ menu "Host utilities"
source "package/cryptsetup/Config.in.host"
source "package/dbus-python/Config.in.host"
source "package/delve/Config.in.host"
+ source "package/depot-tools/Config.in.host"
source "package/dfu-util/Config.in.host"
source "package/dos2unix/Config.in.host"
source "package/dosfstools/Config.in.host"
diff --git a/package/depot-tools/Config.in.host b/package/depot-tools/Config.in.host
new file mode 100644
index 0000000000..935331dedb
--- /dev/null
+++ b/package/depot-tools/Config.in.host
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_HOST_DEPOT_TOOLS
+ bool "host depot-tools"
+ select BR2_PACKAGE_HOST_PYTHON3
+ select BR2_PACKAGE_HOST_PYTHON3_SSL
+ select BR2_PACKAGE_HOST_PYTHON_SIX
+ help
+ Chromium and Chromium OS use a package of scripts called
+ depot_tools to manage checkouts and code reviews.
+
+ https://www.chromium.org/developers/how-tos/install-depot-tools/
diff --git a/package/depot-tools/depot-tools.hash b/package/depot-tools/depot-tools.hash
new file mode 100644
index 0000000000..2109096901
--- /dev/null
+++ b/package/depot-tools/depot-tools.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 8e0bccdd6b1231f58d5453dc14a5e1d195295ac8d466dec34961e951e946b50b depot-tools-4e87f5bfe244e903f712408ea68dc3c3a6fe2d00-br1.tar.gz
+sha256 984523ee987f4e8b72d61df37d8f1189a7077cd4b77e41a397e35593b297a29d LICENSE
diff --git a/package/depot-tools/depot-tools.mk b/package/depot-tools/depot-tools.mk
new file mode 100644
index 0000000000..e3b840f29a
--- /dev/null
+++ b/package/depot-tools/depot-tools.mk
@@ -0,0 +1,25 @@
+################################################################################
+#
+# depot-tools
+#
+################################################################################
+
+DEPOT_TOOLS_VERSION = 4e87f5bfe244e903f712408ea68dc3c3a6fe2d00
+DEPOT_TOOLS_SITE = https://chromium.googlesource.com/chromium/tools/depot_tools
+DEPOT_TOOLS_SITE_METHOD = git
+DEPOT_TOOLS_LICENSE = BSD-3-Clause
+DEPOT_TOOLS_LICENSE_FILES = LICENSE
+DEPOT_TOOLS_CPE_ID_VENDOR = google
+
+HOST_DEPOT_TOOLS_DEPENDENCIES = \
+ host-python3 \
+ host-python-httplib2 \
+ host-python-pyparsing \
+ host-python-six
+
+define HOST_DEPOT_TOOLS_INSTALL_CMDS
+ mkdir -p $(HOST_DIR)/share/depot_tools
+ cp -dprf $(@D)/* $(HOST_DIR)/share/depot_tools/
+endef
+
+$(eval $(host-generic-package))
--
2.41.0
More information about the buildroot
mailing list