New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 830302 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 0
Type: Bug



Sign in to add a comment

chromeos-ec: Public waterfall UnitTest broken

Project Member Reported by drinkcat@chromium.org, Apr 9 2018

Issue description

Since this build:
https://uberchromegw.corp.google.com/i/chromiumos/builders/oak-full/builds/7598 (~oak-full/R67-10550.0.0-b2449770: the version numbers are weird, but that's another problem)

chromeos-ec UnitTest fail:
chromeos-ec-0.0.1-r4701: /bin/sh: /usr/bin/cr50-codesigner: No such file or directory

We should not require cr50-codesigner on public builds.

This seems to be the first bad commit (a local revert fixed the issue for me):

commit 9e50bb04730c312f2f950963d8bce89aa4dab0bc
Author: Vadim Bendebury <vbendeb@chromium.org>
Date:   Wed Apr 4 09:01:52 2018 -0700

    cr50: use codesigner from chroot

 
Nicolas, what command are you running to reproduce the problem, it is not clear from the log what parameters the emerge is invoked with.
Labels: -Pri-1 Pri-0
Increasing to P0, it's breaking public builds.

> what command are you running to reproduce the problem,
>  it is not clear from the log what parameters the emerge is invoked with.

IMO It's mostly irrelevant here.
The commit linked by Nicolas in the description shows the cr50 build seems to unconditionally invoke /usr/bin/cr50-codesigner.
It has been added in the private superset on the ChromeOS SDK (by adding the private cr50-utils package to virtual/target-chrome-os-sdk-1.5)
How is this supposed to work for people having the public manifest ?


Comment 3 by drinkcat@google.com, Apr 10 2018

Vadim:

# Remove cr50-utils (public manifest does not include it in chroot)
sudo emerge -aC cr50-utils
# Build cr50 image
cd ~/trunk/src/platform/ec
make BOARD=cr50 -j
...
  RO_SIGN RO/ec.RO.flat
/bin/sh: /usr/bin/cr50-codesigner: No such file or directory
make: *** [Makefile.rules:328: build/cr50/RO/ec.RO.flat] Error 127
By the way, if you are interested in a full repro, doing a simple public build does repro it for me, e.g. :
 mkdir chromiumos && cd chromiumos/
 repo init -u https://chromium.googlesource.com/chromiumos/manifest.git --repo-url https://chromium.googlesource.com/external/repo.git -g minilayout
 repo sync -j15
 cros_sdk
 ./setup_board --board=amd64-generic
 # for speed you can optionally do: ./build_packages --board=amd64-generic
 cros_workon-amd64-generic start chromeos-ec
 repo sync ../platform/ec ../third_party/cryptoc ../third_party/tpm2
 FEATURES=test emerge-amd64-generic chromeos-ec

/bin/sh: /usr/bin/cr50-codesigner: No such file or directory
make[2]: *** [Makefile.rules:331: build/cr50/RW/ec.RW.flat] Error 127

guys, I understand why it is broken, I am trying to figure out how to avoid building cr50 for public builds. 

It must be built as part of 'buildall' for Oak at least, right?

It would be a shame to return the dummy codesigner which I dropped.
>  I am trying to figure out how to avoid building cr50 for public builds. 

I don't think this is what you want, we have a dozen of partners working on this code-base. Every commit to common code might potentially break your board if you disable building.

> It must be built as part of 'buildall' for Oak at least, right?

it's part of the testing phase of the ebuild:
https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/master/chromeos-base/chromeos-ec/chromeos-ec-9999.ebuild#186



yes, I mean to say 'to avoid signing'.
Project Member

Comment 8 by bugdroid1@chromium.org, Apr 11 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/ec/+/80f0f5c7cf42d32ce27690cb303d6ea26b2e01b9

commit 80f0f5c7cf42d32ce27690cb303d6ea26b2e01b9
Author: Vadim Bendebury <vbendeb@chromium.org>
Date: Wed Apr 11 18:25:15 2018

cr50: bypass signing step if cr50-codesigner is not available

When building EC targets in the setups where the Cr50 codesigner
utility is not present let's just bypass the signing step.

Also removing bitrotten source code of the old codesigner.

BRANCH=none
BUG= chromium:830302 
TEST='make buildall' succeeds even if cr50-codesigner is not available.

Change-Id: Ic6c4988455bcee6c45504e1fe781f6e03636d57a
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1005401
Reviewed-by: Allen Webb <allenwebb@google.com>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>

[delete] https://crrev.com/209f47b692bd74fc5afcfeaf0e713ceaa99b9932/util/signer/common/publickey.h
[delete] https://crrev.com/209f47b692bd74fc5afcfeaf0e713ceaa99b9932/util/signer/gnubby.cc
[delete] https://crrev.com/209f47b692bd74fc5afcfeaf0e713ceaa99b9932/util/signer/codesigner.cc
[delete] https://crrev.com/209f47b692bd74fc5afcfeaf0e713ceaa99b9932/util/signer/common/ecdh.h
[delete] https://crrev.com/209f47b692bd74fc5afcfeaf0e713ceaa99b9932/util/signer/publickey.cc
[delete] https://crrev.com/209f47b692bd74fc5afcfeaf0e713ceaa99b9932/util/signer/image.cc
[delete] https://crrev.com/209f47b692bd74fc5afcfeaf0e713ceaa99b9932/util/signer/common/gnubby.h
[delete] https://crrev.com/209f47b692bd74fc5afcfeaf0e713ceaa99b9932/util/signer/common/signed_header.h
[delete] https://crrev.com/209f47b692bd74fc5afcfeaf0e713ceaa99b9932/util/signer/common/aes.h
[delete] https://crrev.com/209f47b692bd74fc5afcfeaf0e713ceaa99b9932/util/signer/ecdh.cc
[delete] https://crrev.com/209f47b692bd74fc5afcfeaf0e713ceaa99b9932/util/signer/common/image.h
[modify] https://crrev.com/80f0f5c7cf42d32ce27690cb303d6ea26b2e01b9/chip/g/build.mk
[delete] https://crrev.com/209f47b692bd74fc5afcfeaf0e713ceaa99b9932/util/signer/aes.cc

Status: Fixed (was: Assigned)

Sign in to add a comment