New issue
Advanced search Search tips

Issue 796779 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Mar 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: Fuchsia
Pri: 2
Type: Bug



Sign in to add a comment

Write GN logic to produce Fuchsia packages for executable targets

Project Member Reported by kmarshall@chromium.org, Dec 21 2017

Issue description

The preferred (and soon, only) method for loading executables onto Fuchsia is to package the executables as .far files.

This bug is to track the effort to produce .far files from the Chrome build system, and to integrate them into the emulator and on-device workflows.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jan 23 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b2b018c5a98218a3c08ad090fc38d20826eaee77

commit b2b018c5a98218a3c08ad090fc38d20826eaee77
Author: Kevin Marshall <kmarshall@chromium.org>
Date: Tue Jan 23 18:40:17 2018

Build Fuchsia packages for test and executable targets.

All targets that use the test() or fuchsia_executable_runner rules
will produce Fuchsia packages, which contain the test executable and
their runtime dependencies.

The packages are modules which can be deployed in an already-running
system, as opposed to the current scheme which bakes the files into
the system boot image.

Deployment and support for dynamic libraries will be addressed
in followup CLs.

This CL also:
* Fixes PathService logic for packaged invocations.
* Adds a new "build_manifest.py" GN helper script.
* Fixes the dependency graph for Fuchsia runner script generation
  so that it accurately captures the real dependency ordering.


Bug:  796779 
Change-Id: I4e3a38e0075573b328ad98425cc493e28cff1ca4
Reviewed-on: https://chromium-review.googlesource.com/841749
Commit-Queue: Kevin Marshall <kmarshall@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531288}
[modify] https://crrev.com/b2b018c5a98218a3c08ad090fc38d20826eaee77/base/BUILD.gn
[modify] https://crrev.com/b2b018c5a98218a3c08ad090fc38d20826eaee77/base/base_paths_fuchsia.cc
[add] https://crrev.com/b2b018c5a98218a3c08ad090fc38d20826eaee77/base/base_paths_fuchsia.h
[modify] https://crrev.com/b2b018c5a98218a3c08ad090fc38d20826eaee77/base/i18n/icu_util.cc
[add] https://crrev.com/b2b018c5a98218a3c08ad090fc38d20826eaee77/build/config/fuchsia/build_manifest.py
[add] https://crrev.com/b2b018c5a98218a3c08ad090fc38d20826eaee77/build/config/fuchsia/package.gni
[modify] https://crrev.com/b2b018c5a98218a3c08ad090fc38d20826eaee77/build/config/fuchsia/rules.gni
[add] https://crrev.com/b2b018c5a98218a3c08ad090fc38d20826eaee77/build/config/fuchsia/sandbox_policy
[modify] https://crrev.com/b2b018c5a98218a3c08ad090fc38d20826eaee77/testing/test.gni
[modify] https://crrev.com/b2b018c5a98218a3c08ad090fc38d20826eaee77/tools/mb/mb.py

Project Member

Comment 2 by bugdroid1@chromium.org, Jan 23 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/12550a7b2446c1de28011c46c3550d61e45eafad

commit 12550a7b2446c1de28011c46c3550d61e45eafad
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Tue Jan 23 19:47:22 2018

[Fuchsia] Update PathProvideFuchsia to avoid blocking IO.

Previously GetPackageRoot() was calling base::FileExists(), which requires
blocking IO, i.e. it DCHECKs on some threads. Updated the logic used to
detect that the app is packaged to avoid blocking IO.

Bug:  796779 , 778467
Change-Id: I3ae8f5fefea182295a7fda4ff40964f21ba63e5c
Reviewed-on: https://chromium-review.googlesource.com/876660
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Reviewed-by: Kevin Marshall <kmarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531308}
[modify] https://crrev.com/12550a7b2446c1de28011c46c3550d61e45eafad/base/base_paths_fuchsia.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Jan 25 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7f8f205ac00e221c60a2f1f3f8fe393dba86a4c7

commit 7f8f205ac00e221c60a2f1f3f8fe393dba86a4c7
Author: John Budorick <jbudorick@chromium.org>
Date: Thu Jan 25 17:48:44 2018

Revert "Build Fuchsia packages for test and executable targets."

This reverts commit b2b018c5a98218a3c08ad090fc38d20826eaee77.

Reason for revert: Breaking compilation on multiple Fuchsia bots: crbug.com/805844 (includes net_unittests.archive_manifest files)

Original change's description:
> Build Fuchsia packages for test and executable targets.
>
> All targets that use the test() or fuchsia_executable_runner rules
> will produce Fuchsia packages, which contain the test executable and
> their runtime dependencies.
>
> The packages are modules which can be deployed in an already-running
> system, as opposed to the current scheme which bakes the files into
> the system boot image.
>
> Deployment and support for dynamic libraries will be addressed
> in followup CLs.
>
> This CL also:
> * Fixes PathService logic for packaged invocations.
> * Adds a new "build_manifest.py" GN helper script.
> * Fixes the dependency graph for Fuchsia runner script generation
>   so that it accurately captures the real dependency ordering.
>
>
> Bug:  796779 
> Change-Id: I4e3a38e0075573b328ad98425cc493e28cff1ca4
> Reviewed-on: https://chromium-review.googlesource.com/841749
> Commit-Queue: Kevin Marshall <kmarshall@chromium.org>
> Reviewed-by: Wez <wez@chromium.org>
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#531288}

TBR=dcheng@chromium.org,wez@chromium.org,dpranke@chromium.org,kmarshall@chromium.org,sergeyu@chromium.org


Bug:  796779 ,805844
Change-Id: I451b714715b72a9a4b2f723a515a1f7c0dff7687
Reviewed-on: https://chromium-review.googlesource.com/886821
Commit-Queue: John Budorick <jbudorick@chromium.org>
Reviewed-by: John Budorick <jbudorick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531934}
[modify] https://crrev.com/7f8f205ac00e221c60a2f1f3f8fe393dba86a4c7/base/BUILD.gn
[modify] https://crrev.com/7f8f205ac00e221c60a2f1f3f8fe393dba86a4c7/base/base_paths_fuchsia.cc
[delete] https://crrev.com/7835b9fa5aaf2d56503742c8a1871ebf4fd8b793/base/base_paths_fuchsia.h
[modify] https://crrev.com/7f8f205ac00e221c60a2f1f3f8fe393dba86a4c7/base/i18n/icu_util.cc
[delete] https://crrev.com/7835b9fa5aaf2d56503742c8a1871ebf4fd8b793/build/config/fuchsia/build_manifest.py
[delete] https://crrev.com/7835b9fa5aaf2d56503742c8a1871ebf4fd8b793/build/config/fuchsia/package.gni
[modify] https://crrev.com/7f8f205ac00e221c60a2f1f3f8fe393dba86a4c7/build/config/fuchsia/rules.gni
[delete] https://crrev.com/7835b9fa5aaf2d56503742c8a1871ebf4fd8b793/build/config/fuchsia/sandbox_policy
[modify] https://crrev.com/7f8f205ac00e221c60a2f1f3f8fe393dba86a4c7/testing/test.gni
[modify] https://crrev.com/7f8f205ac00e221c60a2f1f3f8fe393dba86a4c7/tools/mb/mb.py

Project Member

Comment 4 by bugdroid1@chromium.org, Jan 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f35fa5ff8934ea9bf06b45337c5168e12265fce9

commit f35fa5ff8934ea9bf06b45337c5168e12265fce9
Author: Kevin Marshall <kmarshall@chromium.org>
Date: Mon Jan 29 19:24:42 2018

Reland "Build Fuchsia packages for test and executable targets."

This is a reland of b2b018c5a98218a3c08ad090fc38d20826eaee77.

Original change's description:
> Build Fuchsia packages for test and executable targets.
> 
> All targets that use the test() or fuchsia_executable_runner rules
> will produce Fuchsia packages, which contain the test executable and
> their runtime dependencies.
> 
> The packages are modules which can be deployed in an already-running
> system, as opposed to the current scheme which bakes the files into
> the system boot image.
> 
> Deployment and support for dynamic libraries will be addressed
> in followup CLs.
> 
> This CL also:
> * Fixes PathService logic for packaged invocations.
> * Adds a new "build_manifest.py" GN helper script.
> * Fixes the dependency graph for Fuchsia runner script generation
>   so that it accurately captures the real dependency ordering.
> 
> 
> Bug:  796779 
> Change-Id: I4e3a38e0075573b328ad98425cc493e28cff1ca4
> Reviewed-on: https://chromium-review.googlesource.com/841749
> Commit-Queue: Kevin Marshall <kmarshall@chromium.org>
> Reviewed-by: Wez <wez@chromium.org>
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#531288}

Bug:  796779 
Change-Id: I8c365a51abb49c2542aec8f66073e7fb7217cf75
Reviewed-on: https://chromium-review.googlesource.com/886982
Commit-Queue: Kevin Marshall <kmarshall@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532537}
[modify] https://crrev.com/f35fa5ff8934ea9bf06b45337c5168e12265fce9/base/BUILD.gn
[modify] https://crrev.com/f35fa5ff8934ea9bf06b45337c5168e12265fce9/base/base_paths_fuchsia.cc
[add] https://crrev.com/f35fa5ff8934ea9bf06b45337c5168e12265fce9/base/base_paths_fuchsia.h
[modify] https://crrev.com/f35fa5ff8934ea9bf06b45337c5168e12265fce9/base/i18n/icu_util.cc
[add] https://crrev.com/f35fa5ff8934ea9bf06b45337c5168e12265fce9/build/config/fuchsia/build_manifest.py
[add] https://crrev.com/f35fa5ff8934ea9bf06b45337c5168e12265fce9/build/config/fuchsia/package.gni
[modify] https://crrev.com/f35fa5ff8934ea9bf06b45337c5168e12265fce9/build/config/fuchsia/rules.gni
[add] https://crrev.com/f35fa5ff8934ea9bf06b45337c5168e12265fce9/build/config/fuchsia/sandbox_policy
[modify] https://crrev.com/f35fa5ff8934ea9bf06b45337c5168e12265fce9/testing/test.gni
[modify] https://crrev.com/f35fa5ff8934ea9bf06b45337c5168e12265fce9/tools/mb/mb.py

Project Member

Comment 5 by bugdroid1@chromium.org, Jan 30 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6cea1c6cef8146e0a81c6c494964b946abb15e13

commit 6cea1c6cef8146e0a81c6c494964b946abb15e13
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Tue Jan 30 00:32:50 2018

[Fuchsia] Fix assets loading for content_shell package.

content_shell previously was failing to find V8 natives file and resources
when packaged on Fuchsia. Update paths used to locate these assets to make
content_shell usable again.

Bug:  796779 , 778467
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I257124223f953bbf048ca6ab649322e8f726bf5d
Reviewed-on: https://chromium-review.googlesource.com/865466
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532695}
[modify] https://crrev.com/6cea1c6cef8146e0a81c6c494964b946abb15e13/content/shell/app/shell_main_delegate.cc
[modify] https://crrev.com/6cea1c6cef8146e0a81c6c494964b946abb15e13/gin/v8_initializer.cc

Status: Verified (was: Assigned)
Project Member

Comment 7 by bugdroid1@chromium.org, May 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/75b2f822f6df3b663c1653e2c7eede1e7abb2269

commit 75b2f822f6df3b663c1653e2c7eede1e7abb2269
Author: Wez <wez@chromium.org>
Date: Tue May 08 18:27:29 2018

Make a single 'readelf' invocation for each iteration of lib-deps.

We gather the library dependencies of the executable, to include them
in the manifest, by running 'readelf' on it, then iterating over each
library in turn to add its dependencies, and so-on.

'readelf' can accept multiple filenames on the command-line, so rather
then invoking it once per-file, run it on a batch of all the not-yet-
processed dependencies, at each iteration.

Bug:  798851 ,  796779 
Change-Id: If1ff5be592bfea120b93d16b09eb53c651d6c50f
Reviewed-on: https://chromium-review.googlesource.com/1049174
Commit-Queue: Wez <wez@chromium.org>
Reviewed-by: Kevin Marshall <kmarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556884}
[modify] https://crrev.com/75b2f822f6df3b663c1653e2c7eede1e7abb2269/build/config/fuchsia/build_manifest.py

Sign in to add a comment