developer-docs
developer-docs copied to clipboard
mac build instructions do not work
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
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
.
Note that https://moz-conduit.readthedocs.io/en/latest/mozphab-macos.html worked for Joe to be able to do a submission.
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.
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?
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.
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.
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?
- It's called mozilla-unified because it's actually a combination of mozilla-central, mozilla-beta, mozilla-release, and mozilla-esr115. All the different repos a developer may have to work with when fixing a bug.