package/depot-tools: new package

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@amarulasolutions.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Adam Duskett 2023-09-19 14:42:47 -06:00 committed by Yann E. MORIN
parent 60b0f7141b
commit 48730a1a9d
5 changed files with 42 additions and 0 deletions

View File

@ -31,6 +31,9 @@ F: package/firewalld/
F: package/vulkan-loader/
F: package/vulkan-tools/
N: Adam Duskett <adam.duskett@amarulasolutions.com>
F: package/depot-tools/
N: Adam Heinrich <adam@adamh.cz>
F: package/jack1/

View File

@ -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"

View File

@ -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/

View File

@ -0,0 +1,3 @@
# Locally calculated
sha256 8e0bccdd6b1231f58d5453dc14a5e1d195295ac8d466dec34961e951e946b50b depot-tools-4e87f5bfe244e903f712408ea68dc3c3a6fe2d00-br1.tar.gz
sha256 984523ee987f4e8b72d61df37d8f1189a7077cd4b77e41a397e35593b297a29d LICENSE

View File

@ -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))