How to build Thunderbird-ESR (and later patch it to become Betterbird)?

My aim is to build Betterbird, a soft fork of Thunderbird-ESR, for FreeBSD. My idea is to start with building mail/thunderbird-esr before applying all patches of Betterbird.

I read the Poudriere chapter in porters handbook and viewed/followed some tutorials like Setting up Poudriere on FreeBSD - Building Ports (youtube). I also read some Mozilla documentation like Linux Build Prerequisites and Betterbird build instructions.

I setup my jails and ports-tree:
Code:
~ # poudriere jail -l
JAILNAME VERSION         ARCH  METHOD TIMESTAMP           PATH
150build 15.0-RELEASE-p1 amd64 http   2026-01-02 20:59:41 /usr/local/poudriere/jails/150build

~ # poudriere ports -l
PORTSTREE METHOD    TIMESTAMP           PATH
default   git+https 2026-01-04 19:21:33 /usr/local/poudriere/ports/default

I setup my distfile
Code:
~ # cat /usr/local/etc/poudriere.d/portlist
mail/thunderbird-esr

I started poudriere options -j 150build -f /usr/local/etc/poudriere.d/portlist. But now I have tons of dependencies like mercurial, binutils, cmake, bash, Tesseract OCR, SANE, ffmpeg, CUPS, etc., which I am supposed to build by mysely. First I think I do not need a specific configurations for most dependencies. It seems pointless to me to rebuild all packages when I could just install them directly with pkg into the jail. Somewhere I saw a make -D NO_DIALOG for ports but I do not know how to use it with poudriere.

Here are my questions:
  1. The hard way: I have to build all dependencies by myself ⇒ Is there a way to get a list of sane configuration settings for Thunderbird dependencies?
  2. The simpler approach: There is a way to avoid building the complete dependency tree by myself:
    1. How to set up poudriere jail / ports-tree so that available packages from FreeBSD 15.0-RELEASE are used?
    2. How to run Thunderbird configuration to build only parts of the dependencies like ffmpeg?
  3. "You are holding it wrong!" ⇒ I am a complete beginner. Did I misunderstood something, or is there a simpler approach to building a Betterbird?
 
How to set up poudriere jail / ports-tree so that available packages from FreeBSD 15.0-RELEASE are used?

Code:
     -b branch
              Fetch binary packages from a binary package repository instead
              of building them.  The branch argument can be one of the
              following: latest, quarterly, release_X (where X is the minor
              version of a release, e.g., “0”), or url.

              With this option poudriere will first try to fetch a binary
              package from the specified binary package repository.
poudriere-bulk(8)
 
Code:
     -b branch
              Fetch binary packages from a binary package repository instead
              of building them.  The branch argument can be one of the
              following: latest, quarterly, release_X (where X is the minor
              version of a release, e.g., “0”), or url.

              With this option poudriere will first try to fetch a binary
              package from the specified binary package repository.
poudriere-bulk(8)
I found this option really tricky cuz i could never made use of it for myself. I think they can go into thunderbird port and run a make install-missing-packages then figure out later steps. I don't know how you can do that in jail/poudriere though.
 
Back
Top