Closed Bug 1670579 Opened 4 years ago Closed 4 years ago

81.0 FTBFS in css_parser with rust 1.47

Categories

(Core :: CSS Parsing and Computation, defect)

Firefox 81
Unspecified
OpenBSD
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: gaston, Unassigned)

Details

Testing the new rust 1.47.0 release which builds 82.0b9 without issues, but building 81.0.1 fails with strange errors in rust code that hasnt changed in ages, and seems to be the same in beta..

   Compiling style_traits v0.0.1 (/usr/obj/ports/firefox-81.0.1/firefox-81.0.1/servo/components/style_traits)
     Running `CARGO=/usr/local/bin/cargo CARGO_CRATE_NAME=style_traits CARGO_MANIFEST_DIR=/usr/obj/ports/firefox-81.0.1/firefox-81.0.1/servo/components/style_traits CARGO_PKG_AUTHORS='The Servo Project Developers' CARGO_PKG_DESCRIPTION='' 
CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE=MPL-2.0 CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=style_traits CARGO_PKG_REPOSITORY='' CARGO_PKG_VERSION=0.0.1 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=0 CARGO_PKG_VERSION_PATCH=1 CARGO_PKG_VERSION_PRE='' LD_LIBRARY_PATH='/usr/obj/ports/firefox-81.0.1/build-amd64/release/deps:/usr/local/lib' /usr/local/bin/rustc --crate-name style_traits servo/components/style_traits/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=2 -C panic=abort -C linker-plugin-lto --cfg 'feature="gecko"' -C metadata=4246abbcd1c993f0 -C extra-filename=-4246abbcd1c993f0 --out-dir /usr/obj/ports/firefox-81.0.1/build-amd64/x86_64-unknown-openbsd/release/deps --target x86_64-unknown-openbsd -C linker=/usr/obj/ports/firefox-81.0.1/firefox-81.0.1/build/cargo-linker -L dependency=/usr/obj/ports/firefox-81.0.1/build-amd64/x86_64-unknown-openbsd/release/deps -L dependency=/usr/obj/ports/firefox-81.0.1/build-amd64/release/deps --extern app_units=/usr/obj/ports/firefox-81.0.1/build-amd64/x86_64-unknown-openbsd/release/deps/libapp_units-120264a13b2750c2.rmeta --extern bitflags=/usr/obj/ports/firefox-81.0.1/build-amd64/x86_64-unknown-openbsd/release/deps/libbitflags-6206c8c6d82c4ab2.rmeta --extern cssparser=/usr/obj/ports/firefox-81.0.1/build-amd64/x86_64-unknown-openbsd/release/deps/libcssparser-9926c318acdf7e63.rmeta --extern euclid=/usr/obj/ports/firefox-81.0.1/build-amd64/x86_64-unknown-openbsd/release/deps/libeuclid-0499bce74cad9f6c.rmeta --extern lazy_static=/usr/obj/ports/firefox-81.0.1/build-amd64/x86_64-unknown-openbsd/release/deps/liblazy_static-06d56d7997c67a89.rmeta --extern malloc_size_of=/usr/obj/ports/firefox-81.0.1/build-amd64/x86_64-unknown-openbsd/release/deps/libmalloc_size_of-aaf2e7631c4b904d.rmeta --extern malloc_size_of_derive=/usr/obj/ports/firefox-81.0.1/build-amd64/release/deps/libmalloc_size_of_derive-02af885905dcc758.so --extern selectors=/usr/obj/ports/firefox-81.0.1/build-amd64/x86_64-unknown-openbsd/release/deps/libselectors-2acaa3337615d3dc.rmeta --extern serde=/usr/obj/ports/firefox-81.0.1/build-amd64/x86_64-unknown-openbsd/release/deps/libserde-b6f7cac8286200e3.rmeta --extern servo_arc=/usr/obj/ports/firefox-81.0.1/build-amd64/x86_64-unknown-openbsd/release/deps/libservo_arc-dc7cfdddbbf4420f.rmeta --extern to_shmem=/usr/obj/ports/firefox-81.0.1/build-amd64/x86_64-unknown-openbsd/release/deps/libto_shmem-2de4fcb1fa3bd356.rmeta --extern to_shmem_derive=/usr/obj/ports/firefox-81.0.1/build-amd64/release/deps/libto_shmem_derive-d3ea810c65de15ed.so -C opt-level=2 -C debuginfo=2 -C force-frame-pointers=yes --cap-lints warn -Cembed-bitcode=yes -C codegen-units=1`

error: expected literal
  --> servo/components/style_traits/viewport.rs:12:1
   |
12 | / define_css_keyword_enum! {
13 | |     pub enum UserZoom {
14 | |         Zoom = "zoom",
15 | |         Fixed = "fixed",
16 | |     }
17 | | }
   | |_^
   |
   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error: expected literal
  --> servo/components/style_traits/viewport.rs:19:1
   |
19 | / define_css_keyword_enum! {
20 | |     pub enum Orientation {
21 | |         Auto = "auto",
22 | |         Portrait = "portrait",
23 | |         Landscape = "landscape",
24 | |     }
25 | | }
   | |_^
   |
   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0425]: cannot find value `MAX_LENGTH` in module `cssparser_internal`
  --> servo/components/style_traits/viewport.rs:12:1
   |
12 | / define_css_keyword_enum! {
13 | |     pub enum UserZoom {
14 | |         Zoom = "zoom",
15 | |         Fixed = "fixed",
16 | |     }
17 | | }
   | |_^ not found in `cssparser_internal`
   |
   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0425]: cannot find value `MAX_LENGTH` in module `cssparser_internal`
  --> servo/components/style_traits/viewport.rs:19:1
   |
19 | / define_css_keyword_enum! {
20 | |     pub enum Orientation {
21 | |         Auto = "auto",
22 | |         Portrait = "portrait",
23 | |         Landscape = "landscape",
24 | |     }
25 | | }
   | |_^ not found in `cssparser_internal`
   |
   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0425`.
error: could not compile `style_traits`.
Flags: needinfo?(emilio)

Yeah, this is https://github.com/rust-lang/rust/issues/76480.

Bug 1663715 fixed this. Do you need this uplifted somehow?

Status: NEW → RESOLVED
Closed: 4 years ago
Flags: needinfo?(emilio)
Resolution: --- → DUPLICATE

(In reply to Emilio Cobos Álvarez (:emilio) from comment #1)

Yeah, this is https://github.com/rust-lang/rust/issues/76480.

Bug 1663715 fixed this. Do you need this uplifted somehow?

Oh thanks, havent been able to find it.. well, it needs uplifting if one plans to build 81 with rust 1.47, decision which is left to releng ? As 81.0.2 just went to build.. oh well.

I see on bug 1663715 that 78esr is also affected and that uplifts have been requested for it, so why not for 81 ? In the meantime, i'll try to locally backport those.

(In reply to Landry Breuil (:gaston) from comment #2)

I see on bug 1663715 that 78esr is also affected and that uplifts have been requested for it, so why not for 81 ? In the meantime, i'll try to locally backport those.

Mostly because ESR has a lot longer support window, but sure, I'll try to uplift them to 81. You likely need bug 1663677 too, can you confirm that?

Flags: needinfo?(landry)

(In reply to Emilio Cobos Álvarez (:emilio) from comment #3)

(In reply to Landry Breuil (:gaston) from comment #2)

I see on bug 1663715 that 78esr is also affected and that uplifts have been requested for it, so why not for 81 ? In the meantime, i'll try to locally backport those.

Mostly because ESR has a lot longer support window, but sure, I'll try to uplift them to 81. You likely need bug 1663677 too, can you confirm that?

hmm, probably.. or we can also wait for 82 to be out and update rust to 1.47 after that, which would only then require us to backport the uplifts to 78esr if they missed 78.4.

Flags: needinfo?(landry)

i'm a bit lost now, since https://hg.mozilla.org/releases/mozilla-esr78/rev/65acca4d6d8b9e7d9f371c477656a1c5c8c3fbcf & https://hg.mozilla.org/releases/mozilla-esr78/rev/feb6a72d2e799af4df13e1f3d21bb32105f3b6d1 were backported to 78esr, something must still be missing as i fail to build 78.4.0rc2 with rust 1.47.

Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---

I think you still need bug 1663715, which didn't make it.

Ugh, https://hg.mozilla.org/integration/autoland/rev/e2cede25c027 will be painful to handle as a jumbo patch...sigh, well, thanks for pointing out the right bug/commit

Severity: -- → S3

just as a data point, thunderbird 78.4.0 and firefox esr 78.4.0 build fine with rust 1.47.0, using a huge jumbo patch backporting https://hg.mozilla.org/integration/autoland/rev/e2cede25c027

The patch above is in esr now so I don't think we can do much more here. Thanks Landry :)

Status: REOPENED → RESOLVED
Closed: 4 years ago4 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.