Closed Bug 1804853 Opened 1 year ago Closed 1 year ago

build failure on OpenBSD since bug 1530373 (trait bound `Device: HIDDevice` is not satisfied)

Categories

(Core :: DOM: Web Authentication, defect)

All
OpenBSD
defect

Tracking

()

VERIFIED FIXED
110 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox107 --- unaffected
firefox108 --- unaffected
firefox109 --- fixed
firefox110 --- fixed

People

(Reporter: gaston, Assigned: jschanck)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file, 1 obsolete file)

m-c blows for me on OpenBSD/amd64 since bug 1530373 landed, cf full log at http://buildbot.rhaalovely.net/nine/#/builders/3/builds/1524/steps/8/logs/stdio

 3:00.82 error[E0277]: the trait bound `Device: HIDDevice` is not satisfied
 3:00.82    --> /build/buildslave-amd64/mozilla-central-amd64/build/third_party/rust/authenticator/src/statemachine.rs:306:5
 3:00.82     |
 3:00.82 306 | /     fn init_and_select(
 3:00.82 307 | |         info: DeviceBuildParameters,
 3:00.82 308 | |         selector: &Sender<DeviceSelectorEvent>,
 3:00.82 309 | |         ctap2_only: bool,
 3:00.82 ...   |
 3:00.82 381 | |         Some(dev)
 3:00.82 382 | |     }
 3:00.82     | |_____^ the trait `HIDDevice` is not implemented for `Device`
 3:00.97 error[E0277]: the trait bound `Device: HIDDevice` is not satisfied
 3:00.97   --> /build/buildslave-amd64/mozilla-central-amd64/build/third_party/rust/authenticator/src/transport/device_selector.rs:32:18
 3:00.97    |
 3:00.97 32 |     DevicesAdded(Vec<DeviceID>),
 3:00.97    |                  ^^^^^^^^^^^^^ the trait `HIDDevice` is not implemented for `Device`
 3:00.98 error[E0277]: the trait bound `Device: HIDDevice` is not satisfied in `DeviceSelectorEvent`
 3:00.98   --> /build/buildslave-amd64/mozilla-central-amd64/build/third_party/rust/authenticator/src/transport/device_selector.rs:41:13
 3:00.98    |
 3:00.98 41 |     sender: Sender<DeviceSelectorEvent>,
 3:00.98    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ within `DeviceSelectorEvent`, the trait `HIDDevice` is not implemented for `Device`
 3:00.98    |
 3:00.98 note: required because it appears within the type `DeviceSelectorEvent`
 3:00.98   --> /build/buildslave-amd64/mozilla-central-amd64/build/third_party/rust/authenticator/src/transport/device_selector.rs:29:10
 3:00.98    |
 3:00.98 29 | pub enum DeviceSelectorEvent {
 3:00.98    |          ^^^^^^^^^^^^^^^^^^^
 3:00.98 note: required by a bound in `Sender`
 3:00.98 error[E0277]: the trait bound `Device: HIDDevice` is not satisfied in `DeviceSelectorEvent`
 3:00.98    --> /build/buildslave-amd64/mozilla-central-amd64/build/third_party/rust/authenticator/src/transport/device_selector.rs:184:35
 3:00.98     |
 3:00.98 184 |     pub fn clone_sender(&self) -> Sender<DeviceSelectorEvent> {
 3:00.98     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ within `DeviceSelectorEvent`, the trait `HIDDevice` is not implemented for `Device`
 3:00.98     |
 3:00.98 note: required because it appears within the type `DeviceSelectorEvent`
 3:00.98    --> /build/buildslave-amd64/mozilla-central-amd64/build/third_party/rust/authenticator/src/transport/device_selector.rs:29:10
 3:00.98     |
 3:00.98 29  | pub enum DeviceSelectorEvent {
 3:00.98     |          ^^^^^^^^^^^^^^^^^^^
 3:00.98 note: required by a bound in `Sender`
 3:00.98 error[E0277]: the trait bound `Device: HIDDevice` is not satisfied
 3:00.98    --> /build/buildslave-amd64/mozilla-central-amd64/build/third_party/rust/authenticator/src/transport/device_selector.rs:188:5
 3:00.98     |
 3:00.98 188 | /     fn cancel_all(tokens: HashMap<Device, Sender<DeviceCommand>>, exclude: Option<&DeviceID>) {
 3:00.98 189 | |         tokens
 3:00.98 190 | |             .into_keys()
 3:00.98 191 | |             .filter(|x| exclude.map_or(true, |y| y != &x.id()))
 3:00.98 192 | |             .for_each(|mut dev| dev.cancel().unwrap()); // TODO
 3:00.98 193 | |     }
 3:00.98     | |_____^ the trait `HIDDevice` is not implemented for `Device`
 3:01.08 For more information about this error, try `rustc --explain E0277`.
 3:01.17 error: could not compile `authenticator` due to 5 previous errors
 3:01.17 warning: build failed, waiting for other jobs to finish...

i've tried a clean build of m-c to make sure it wasnt an objdir pollution but it failed the same.

Set release status flags based on info from the regressing bug 1530373

:jschanck, since you are the author of the regressor, bug 1530373, could you take a look? Also, could you set the severity field?

For more information, please visit auto_nag documentation.

Flags: needinfo?(jschanck)

msirringhaus: can you take a look?

Flags: needinfo?(jschanck) → needinfo?(msirringhaus)

this now affects beta since m-c was merged there... sigh.

I'm working on a build-fix now. But I can't promise it will work during runtime, as I don't have deep knowledge of how openBSD (or the other BSD-flavors) does things.
But it should buy us enough time to work this out, as that side of the code is currently not used (and can, for a while, be switched off, if Firefox activates it again by default).

Flags: needinfo?(msirringhaus)

(In reply to msirringhaus from comment #4)

I'm working on a build-fix now. But I can't promise it will work during runtime, as I don't have deep knowledge of how openBSD (or the other BSD-flavors) does things.

runtime isnt my worry for now as i dont have u2f hw to test and i doubt the low-level bits will work on openbsd straight away, but to me that's a rather small usecase. right now my worry is having m-c and m-b in a buildable state :)

But it should buy us enough time to work this out, as that side of the code is currently not used (and can, for a while, be switched off, if Firefox activates it again by default).

good to know !

available to test a diff when you have one :)

Flags: needinfo?(landry)

(In reply to msirringhaus from comment #6)

Could you try out https://github.com/mozilla/authenticator-rs/pull/211 ?

m-c seems to build further with the PR applied onthird_party/rust/authenticator - will do more build tests when i build 109.0b1.

Flags: needinfo?(landry)

Set release status flags based on info from the regressing bug 1530373

havent checked runtime yet, but backporting the current state of https://github.com/mozilla/authenticator-rs/pull/211 allows me to apparently build 109.0b1 - at least all the rust bits seem to build.

Chris, Ryo, you might be interested in testing this for FreeBSD/NetBSD builds. Cf https://github.com/mozilla/authenticator-rs/pull/211#issuecomment-1349587974

Version 0.4.0-alpha.5 fixes build errors on OpenBSD, NetBSD, and FreeBSD.

Assignee: nobody → jschanck
Status: NEW → ASSIGNED

Landry, can you please confirm that M-C builds with the attached patch. Thanks!

Flags: needinfo?(landry)

Version 0.4.0-alpha.6 fixes build errors on OpenBSD, NetBSD, and FreeBSD
that were present in 0.4.0-alpha.4, and fixes a build error on Android
that was introduced in 0.4.0-alpha.5.

Attachment #9308330 - Attachment is obsolete: true

(In reply to John Schanck [:jschanck] from comment #12)

Landry, can you please confirm that M-C builds with the attached patch. Thanks!

109.0b2 builds fine on OpenBSD/amd64 with the latest iteration of the patch on phabricator (eg 0.4.0-alpha.6)

Flags: needinfo?(landry)
Pushed by jschanck@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/bb872d1db370
upgrade to authenticator 0.4.0-alpha.6. r=supply-chain-reviewers
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 110 Branch

The patch landed in nightly and beta is affected.
:jschanck, is this bug important enough to require an uplift?

  • If yes, please nominate the patch for beta approval.
  • If no, please set status-firefox109 to wontfix.

For more information, please visit auto_nag documentation.

Flags: needinfo?(jschanck)

Comment on attachment 9308433 [details]
Bug 1804853 - upgrade to authenticator 0.4.0-alpha.6. r=#supply-chain-reviewers

Beta/Release Uplift Approval Request

  • User impact if declined: Firefox will not build on OpenBSD.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): The code is pref'd off by default in beta, so there is no functional change at run time.
  • String changes made/needed:
  • Is Android affected?: No
Flags: needinfo?(jschanck)
Attachment #9308433 - Flags: approval-mozilla-beta?

Comment on attachment 9308433 [details]
Bug 1804853 - upgrade to authenticator 0.4.0-alpha.6. r=#supply-chain-reviewers

Approved for 109.0b4.

Attachment #9308433 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: