flathub / eu.betterbird.Betterbird

https://flathub.org/apps/details/eu.betterbird.Betterbird
9 stars 1 forks source link

build from source #5

Closed mfschumann closed 2 years ago

flathubbot commented 2 years ago

Build 109239 successful To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/106879/eu.betterbird.Betterbird.flatpakref
flathubbot commented 2 years ago

Started test build 109326

flathubbot commented 2 years ago

Build 109326 successful To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/106964/eu.betterbird.Betterbird.flatpakref
flathubbot commented 2 years ago

Started test build 109500

flathubbot commented 2 years ago

Started test build 109501

flathubbot commented 2 years ago

Started test build 109502

mfschumann commented 2 years ago

I'd say this pull request can be merged now:

Any further remarks or wishes @Betterbird or @hfiguiere ?

flathubbot commented 2 years ago

Build 109500 successful To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/107137/eu.betterbird.Betterbird.flatpakref
flathubbot commented 2 years ago

Build 109501 successful To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/107138/eu.betterbird.Betterbird.flatpakref
flathubbot commented 2 years ago

Build 109502 successful To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/107139/eu.betterbird.Betterbird.flatpakref
Betterbird commented 2 years ago

Any further remarks or wishes @Betterbird or @hfiguiere ?

Remarks, yes, or more a question: So in general terms, you download the TB flat source, apply the BB patches, compile the lot, and then hack the language packs into place patching the TB XPIs. That's all understood. What interests me (and likely @dbonner) is how you set up the compile/build environment. I'm sure you've read our "manual" build instructions (https://github.com/Betterbird/thunderbird-patches#building-betterbird) which involve installing a few packages (git, various python, mercurial, rust) and then our build script runs the Mozilla bootstrap which for X86-64 works and installs a whole heap of other packages (clang, node, cbindgen, etc.) to complete the build environment. Also, the build script sets the rust version since with a non-compatible rust compiler the build fails. Mozilla doesn't support aarch64, so their bootstrap doesn't work there and the build instructions for aarch64 are more complicated. So the question is: How do you do it? Maybe you have all the expertise from building TB. Somewhere in the conversation (I believe) @hfiguiere said something like "we have aarch64 builders", but having the physical/virtual machine is just the start.

flathubbot commented 2 years ago

Started test build 109515

flathubbot commented 2 years ago

Build 109515 failed

flathubbot commented 2 years ago

Started test build 109525

flathubbot commented 2 years ago

Build 109525 failed

mfschumann commented 2 years ago

bot, build

flathubbot commented 2 years ago

Queued test build for eu.betterbird.Betterbird.

flathubbot commented 2 years ago

Started test build 109590

flathubbot commented 2 years ago

Build 109590 successful To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/107226/eu.betterbird.Betterbird.flatpakref
flathubbot commented 2 years ago

Started test build 109602

Betterbird commented 2 years ago

Node.js is used in the Mozilla platform code, not TB/BB code. I can't tell what they're doing with it exactly, one post on a Firefox mailing list in 2019 said: Now that we have NodeJS in the tree, we want to unlock the rich set of tooling in the NodeJS/npm ecosystem so that we can start depending on things available there in a coherent, managed, more secure way.

flathubbot commented 2 years ago

Build 109602 successful To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/107238/eu.betterbird.Betterbird.flatpakref
mfschumann commented 2 years ago

... So the question is: How do you do it? Maybe you have all the expertise from building TB. Somewhere in the conversation (I believe) @hfiguiere said something like "we have aarch64 builders", but having the physical/virtual machine is just the start.

Setting up the build environment is one of the things done by flatpak-builder, the tool that reads the "manifest" eu.betterbird.Betterbird.json. The largest part of the manifest used for Betterbird is taken from the Thunderbird manifest. So I did not have to fiddle with setting up the correct build environment and getting the dependencies right myself.

Many of the build dependencies for Betterbird are already available in the freedesktop runtime, the freedesktop SDK, or an SDK extension (e.g. rust). The rest (just a handful) is built from source before building Betterbird. All of this is controlled by the manifest and is agnostic of the platform, so you should be able to build the flatpak on any machine by cloning this git repo, installing flatpak-builder, and running flatpak-builder build-dir eu.betterbird.Betterbird.json. This feature of flatpak made building on aarch64 just work after setting everything up for x86_64.

In case you want to learn more about how flatpaks are built, this documentation is a good starting point.