Closed Bug 1561926 Opened 4 months ago Closed 3 months ago

Crate style v0.0.1 fails to build

Categories

(Thunderbird :: General, defect)

defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird 60.0

People

(Reporter: pmenzel+bugzilla.mozilla.org, Unassigned)

Details

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0

Steps to reproduce:

Build Thunderbird 60.7.2 with Rust 1.34.2.

Actual results:

Build fails with the errors below.

error: missing documentation for macro
     --> /dev/shm/bee-root/thunderbird/thunderbird-60.7.2-0/build/toolkit/library/x86_64-unknown-linux-gnu/release/build/style-5fdbb8a725c05859/out/gecko/atom_macro.rs:15688:1
      |
15688 | macro_rules! atom {
      | ^^^^^^^^^^^^^^^^^
      |
note: lint level defined here
     --> servo/components/style/lib.rs:26:9
      |
26    | #![deny(missing_docs)]
      |         ^^^^^^^^^^^^

error: missing documentation for macro
  --> /dev/shm/bee-root/thunderbird/thunderbird-60.7.2-0/build/toolkit/library/x86_64-unknown-linux-gnu/release/build/style-5fdbb8a725c05859/out/properties.rs:60:1
   |
60 | macro_rules! property_name {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: missing documentation for macro
      --> /dev/shm/bee-root/thunderbird/thunderbird-60.7.2-0/build/toolkit/library/x86_64-unknown-linux-gnu/release/build/style-5fdbb8a725c05859/out/properties.rs:136752:1
       |
136752 | macro_rules! css_properties_accessors {
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: missing documentation for macro
      --> /dev/shm/bee-root/thunderbird/thunderbird-60.7.2-0/build/toolkit/library/x86_64-unknown-linux-gnu/release/build/style-5fdbb8a725c05859/out/properties.rs:138536:1
       |
138536 | macro_rules! longhand_properties_idents {
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 4 previous errors

Expected results:

Compilation should succeed.

The Firefox changes referenced in bug #1519629 1 need to be applied to Thunderbird as well.

There is no rust code in Thunderbird. Bug 1519629 states that mozilla60 is unaffected, so I don't know what you want us to do. TB 60.7.2 compiled fine in automation with whatever rust version that was using.

Status: UNCONFIRMED → RESOLVED
Closed: 4 months ago
Resolution: --- → WONTFIX

(In reply to Jorg K (GMT+2) from comment #2)

There is no rust code in Thunderbird.

Sorry, for not being clear. I hope the statement the following statement is correct. When building Mozilla Thunderbird Rust dependencies are built.

Bug 1519629 states that mozilla60 is unaffected, so I don't know what you want us to do. TB 60.7.2 compiled fine in automation with whatever rust version that was using.

Sorry, I find this statement rude. Obviously, the issue is still there, otherwise I would not experience it. Could you please re-open the issue, until it is clear, what Rust versions Thunderbird 60.7.2 requires and how to fix this for future releases?

Where is the rude part? The Thunderbird project ships TB 60.x on various platforms, we don't have resources to support people wanting to build it themselves with incompatible compiler versions. To the best of my knowledge, mozilla60 uses rust 1.19:
https://dxr.mozilla.org/comm-esr60/source/taskcluster/ci/toolchain/kind.yml#21
1.34 is used for current TB 68 beta and trunk 69.

You also need to understand that the Thunderbird project does not control Mozilla activities. If Mozilla use an older Rust version for their 60-series software, we can't change that.

BTW, what stops you from applying the necessary changes to your local copy of the code? Looks like it's a minimal change by adding some comments.

(In reply to Jorg K (GMT+2) from comment #5)

BTW, what stops you from applying the necessary changes to your local copy of the code? Looks like it's a minimal change by adding some comments.

That’s what we did. And it took time. So, it’d be great if it could be fixed upstream.

Sorry, but I really don't get it. You want me to put a patch on Mozilla ESR 60 software just for TB, which is going to be EOL soon, just so that you can compile your own special version with a newer Rust compiler? I could do that, but you've already added those couple of comment lines, so what's the point? The fix is upstream, just not at the version you want, or let's say the version together with a compiler that came out at least a year later.

(In reply to Jorg K (GMT+2) from comment #7)

Sorry, but I really don't get it. You want me to put a patch on Mozilla ESR 60 software just for TB, which is going to be EOL soon, just so that you can compile your own special version with a newer Rust compiler?

Sorry, I am not firm with the terminology. Mozilla ESR 60 refers to all Mozilla products?

Anyway, I thought having software that can be easily build is one of the goals of free software.

I could do that, but you've already added those couple of comment lines, so what's the point? The fix is upstream, just not at the version you want, or let's say the version together with a compiler that came out at least a year later.

I dug a little deeper and the Debian project ran into the same problem. So now two users ran into this issue and fixed it independently.

Anyway, I have no idea how long which ESR version will be supported. But my impression was, that these are supported alternatives to the latest versions. To live up to that promise these should be buildable also with the latest tool chains.

Status: RESOLVED → REOPENED
Component: Untriaged → General
Ever confirmed: true
Resolution: WONTFIX → ---
Target Milestone: --- → Thunderbird 60.0
Status: REOPENED → RESOLVED
Closed: 4 months ago4 months ago
Resolution: --- → FIXED

I don't think all the changesets are required since some of them are just reformatting. I think this is about macro documentation. Most likely only the first two:
https://hg.mozilla.org/mozilla-central/rev/4f2e84dc490d
https://hg.mozilla.org/mozilla-central/rev/f63ebd7e9e28

Do you have a patch you apply locally?

Status: REOPENED → RESOLVED
Closed: 4 months ago3 months ago
Resolution: --- → FIXED

No, I do not have a (good) patch. I remove the missing docs linter requirement like Debian and Linux From Scratch.

sed -i -e '/#!\[deny(missing_docs)\]/d' servo/components/style/lib.rs
sed -i -e 's/#!\[deny(unsafe_code, missing_docs)\]/#!\[deny(unsafe_code)\]/g' servo/components/style_traits/lib.rs
You need to log in before you can comment on or make changes to this bug.