thunderbird / developer-docs

Developer documentation for Thunderbird contributors.
https://developer.thunderbird.net
79 stars 77 forks source link

mac build instructions do not work #178

Closed hellsworth closed 4 months ago

hellsworth commented 5 months ago

tb build on mac doesn't work. the bootstrap we suggest in dtn doesn't work. alex had to use the firefox method that makes you download a file - see step 2 of https://firefox-source-docs.mozilla.org/setup/macos_build.html

jfx2006 commented 5 months ago

Using https://hg.mozilla.org/comm-central/raw-file/tip/python/rocboot/bin/bootstrap.py rather than the script referred to in the Firefox docs handles the two-repo dance and sets up a mozconfig file for Thunderbird.

It does not ask if you want artifact mode, for that run it python3 bootstrap.py --artifact-mode.

hellsworth commented 5 months ago

Note that https://moz-conduit.readthedocs.io/en/latest/mozphab-macos.html worked for Joe to be able to do a submission.

hellsworth commented 4 months ago

Using https://hg.mozilla.org/comm-central/raw-file/tip/python/rocboot/bin/bootstrap.py rather than the script referred to in the Firefox docs handles the two-repo dance and sets up a mozconfig file for Thunderbird.

It does not ask if you want artifact mode, for that run it python3 bootstrap.py --artifact-mode.

After running this on a mac, I think https://hg.mozilla.org/comm-central/raw-file/tip/python/rocboot/bin/bootstrap.py is better than running ./mach bootstrap on say a linux system where the mach command works. Do you think maybe we should point all 3 platforms (winders, mac, linux) to using this bootstrap.py instead of ./mach bootstrap?

Also running this script did not setup a mozconfig file on the mac and unfortunately I didn't capture the output to see why not. Everything else seemed smooth. I can look into running this again on the mac to investigate why mozconfig wasn't created.

hellsworth commented 4 months ago

It turns out that the mozconfig is written but not to the expected ~/source dir. It is written to mozilla-unified/mozconfig. @jfx2006 do you know if the mozconfig needs to be in ~/source to build Thunderbird or will it still be picked up in mozilla-unified?

jfx2006 commented 4 months ago

Do you think maybe we should point all 3 platforms (winders, mac, linux) to using this bootstrap.py instead of ./mach bootstrap?

That's kind of the idea yeah. I do keep an eye on the Firefox version of the script and keep this one up to date.

It turns out that the mozconfig is written but not to the expected ~/source dir. It is written to mozilla-unified/mozconfig. @jfx2006 do you know if the mozconfig needs to be in ~/source to build Thunderbird or will it still be picked up in mozilla-unified?

The mozconfig file needs to be with your source tree whether it's in ~/source or ~/mozilla-unfied. If you're using the bootstrap script, you don't need to do the clone yourself into ~/source, so the bit at https://developer.thunderbird.net/thunderbird-development/getting-started#get-the-source is not needed.

When you run the bootstrap script, it should prompt for a directory for the clone to use. It will default to mozilla-unified, but you could enter "source" here.

While the bootstrap script is great for quick-and-easy setup. But I think there's value in keeping the actual two-repo clone process and running mach bootstrap instructions around so anyone interested has easy access to them.

hellsworth commented 4 months ago

Oh I see. I didn't realize all you needed to do was wget the bootstrap.py and run it! How handy :)

Ok I'll keep the instructions on cloning both source and comm, but also add this bootstrap.py method. Out of curiosity, why does the the name of the dir default to mozilla-unified, rather than source? Since the instructions all say to call it source (although it can be named anything), it would be nice for the default/recommended names be the same.

jfx2006 commented 4 months ago

That's the name of the first repository* (mozilla-central in your other getting started directions).

I can change the default easily enough -- personally I find "source" is too generic. I know you're trying to standardize documentation, but the source code directory can be named nearly anything. Maybe "thunderbird-source" or something like that?