summaryrefslogtreecommitdiff
path: root/mail-client/thunderbird
diff options
context:
space:
mode:
Diffstat (limited to 'mail-client/thunderbird')
-rw-r--r--mail-client/thunderbird/Manifest66
-rw-r--r--mail-client/thunderbird/thunderbird-128.3.0.ebuild1192
2 files changed, 1258 insertions, 0 deletions
diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index b7ca68096e3e..d279fd09645d 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -137,6 +137,72 @@ DIST thunderbird-128.2.3esr-vi.xpi 787028 BLAKE2B faa1a4f4c0589ff2f9758cc92facfd
DIST thunderbird-128.2.3esr-zh-CN.xpi 785327 BLAKE2B cf429f92fdb233e10bae1331215d0939bca18f866ee2e575feadf6d538a2afe1938c0f148e1a41b72c750c8719335064adafb01c9ef4b3c63800b38ecbe76463 SHA512 5f96714f241516c8f1427a038d7a64ed60f4a4be08b270f2b1b84ccb2655471a78e9bd25af908666e5be79e8c151b7dcfadf41a81b6ea34f9fe49e3767872301
DIST thunderbird-128.2.3esr-zh-TW.xpi 789781 BLAKE2B 52e5d1ed734bd3afa3d67eb9d39bb9c048a74610a50c38c11db722adb400d0983000ecd7aa61a3b380f3d229119a4619212a54f8f699b53f0ba4abc40ae709b2 SHA512 1706061452933c5d332353ec096adc296d14e8738c647a7d52048f090bb244f37890abd821e7b7872c1ee138035285c71ac0a220c4d04150aa7ce84026f529b6
DIST thunderbird-128.2.3esr.source.tar.xz 675213768 BLAKE2B 0d2257a976414d4cb0e2ce5bce76926737add33b50071dab3ad25fad64a69f08e491b9ac7430701555b740db67418133ce0e2995caf7be76094805b35a036b6d SHA512 f852d1fe6b8d41aa2f0fbc0fceae93cccf1e5f88d9c0447f504de775283289b82b246b79a01e8eb26e9c87197fb33138fb18c75ecc3f5f1bcfefa3920a7c7512
+DIST thunderbird-128.3.0esr-af.xpi 530350 BLAKE2B 6b28574c32c29580a4dbf5ae5509171644206173635ab8e7791363abfa504a862d6d8d0a4354c54d222efd6513984aa2e23478c4642793760dd075564d0433db SHA512 94b6f5f4639827d748f1d535426f90637ab4d6f099666d0afe9465f36a46109447652e7e0c1f8bfc4c654763ba5c5652d6153aaa57be9ea371a58a961566bf49
+DIST thunderbird-128.3.0esr-ar.xpi 679868 BLAKE2B d631cd3835bcf85e4256ca00e4ccde4a70bf88245352fbee31f1f7a02a7d998dab134acf1b49d84a57da03aa018a6d2e51a6e748bb48a74642bcad69173d8c7e SHA512 e9322715cafae588128efb8a49125346a9c68ce81b63bdc34f3220820882b43c920ab7d5332cbad47738299ef77b1f75927b387d586acf5d4923befb163f555c
+DIST thunderbird-128.3.0esr-ast.xpi 561055 BLAKE2B 1bbc32088b3b717aeb57824a1f572f266693dc5e7df30d942f9ed490b67330464815d33fdbe4cd0f67450c7229587ca8d55c5c72cfde651784c775933a96d179 SHA512 d313d8c2511c8dcb092161836fa4031d4acee3ee995339aa7df685b82e3224b5aad222997d3b69aab7b988ddf7c8e1f979b0e3a811ef7ee760f6ef2abcffef45
+DIST thunderbird-128.3.0esr-be.xpi 766043 BLAKE2B 5753503eef06b619f3c4b480dd219805a71301e3f6af356a66fffce927ea752497ebcb78aa1bb06b67518d83f3242a7dba27321941e8de5c025584b06b5d7342 SHA512 0906bc9e263f083d98afe6c0cced1f8b3aa9d24ff0b8e97edb9a77e974fe3225c1012c7ae2ccb4df15772a2f3e65e33f7e307226a310a8336d36f665a2ff6da4
+DIST thunderbird-128.3.0esr-bg.xpi 809258 BLAKE2B 22d68839973319af299ee6e13c01e3f945b2441c3443e6b0ce1ba1982f1da856117a69983e940089227860cc32069b2fa75a9bc116d99acd3b93c16718f70bfd SHA512 d3dc511c77223bc0ce7730a21c0e05a1c97b10260a33666b019474ce5ed549350f99aa5ba3736c7cc92e132c2e6cbf9e87707d0fa96e8638646605495d1b8421
+DIST thunderbird-128.3.0esr-br.xpi 652477 BLAKE2B 9e8008b94875932007fc4a14b5c179510f032ed64876ba0eaee3ef09176253f386024fa4ccfec2c5ab3212f3ffd75f2cc4eb10b775eb4ff4540c25d725494679 SHA512 aa9ee0b9346371bff4cb5f9898e26bd8d94ba69a024bbfcb50e584190ac1bc6b938777e1feddc4dc22e867849539cda6f77adc007f873c7d8d6099c1f0e5fb45
+DIST thunderbird-128.3.0esr-ca.xpi 709740 BLAKE2B 9d31089aad03506e1a64e9fe07461d575c1787aba53051684cd164e1d25c4efa29a6df6ee49d0d96aacede498886e66e82423bf5516d76d7f16923e460274991 SHA512 1fe5e6d9a96d0d0efc1d9524ad7220c80bb2eb882aaf254317a10612d25947e8b07652336ac0601f36a1a8cd782195b33c20e7daaa4c4d3385ca6c4a05be754f
+DIST thunderbird-128.3.0esr-cak.xpi 671704 BLAKE2B 9e448d1a48174f2a084b754050926c50948f8f62dc14cc7d8c699ea36822dd269517256bddb8b1405a7de4be5742962f5f04e3f5b72fd033130d0f4f0b147ad5 SHA512 47279f33cb89f7860602c004ce5ea1b85e50487a4255cf1639cc7999421d333ab7565cb86748a3616fba996d7051862644aac0612ef8d67a6b520e1b879c057b
+DIST thunderbird-128.3.0esr-cs.xpi 786626 BLAKE2B e8e5ecd350850087bf9cb96053a289727edd0f6c35b4e96bc0e3ff192e01727d02d918b0ef2a5267a90ce3cf65c882361119228cb5dda795965f5cf828740b81 SHA512 65cc0a4bc5fef8ec3a2957c06d04435e4e463e57a5572deb9614478f2735c0568a55d86848a57f97b1ec52920a93e90591c7132b5d87c764de4ed28ae9f4284b
+DIST thunderbird-128.3.0esr-cy.xpi 750627 BLAKE2B 20120e979f06c1581a84418ac04e680b44dcf65fd2d7a06b1aba18b17270295e3c05e59eab7495ceadfeb164fa610c0046f435e306ec28a94ad23f799d4830fd SHA512 63e93de3a28e6ff2098e1c576175ae9480d53159248a1f168375b7fa7c9825459ec92ec7126bd1650c2e36078d8399917a443c83eeccf5c3cba20a58eea6f5b6
+DIST thunderbird-128.3.0esr-da.xpi 734118 BLAKE2B 8d8c3021ebe7aa40fcc1c485a89f8767517f3b2f87e2d942064cc646915642977a4de41ad656aef5170dfa5082f1772bd874644aad1cbe7668afd0a404369c09 SHA512 58336aac9f34cdb756602c5354572df06b03f6cd1063350f89a7d473b9658f9f1497aa3673e32ca15e287428357866338f060dbf1d71eefd678823ab70b2b780
+DIST thunderbird-128.3.0esr-de.xpi 767775 BLAKE2B 9f3541d4c9d94b98ea1b7f7fffc2809652eea1315232702e0d9e50090af3f2526d72e5c2bc79cc75c16afd1466fc676527dd2faf6be99e79ff7e6213a04a6078 SHA512 c938f081a77a4addcd5c7750d7dde662484d2eb343be29baa685bdfc4b8c1f3765e48613cc3f5237d90ca9ee2edc25d961481125a29fe74f8d70523f5b5d65f0
+DIST thunderbird-128.3.0esr-dsb.xpi 784325 BLAKE2B e4cfce689f425e7ae7511064952ffe909bdf5fe0e6b13fbaa578f651ab5e70963c2f757d3eb11fe6af7c37d573ee5732a98fedaca7f75f5f1e85fa83f01b7f63 SHA512 f8cc9cd0445bb60cf5e32da1ea16eae0b84e5029edfbd93f9464934bc18c2b470ff15a0a18f8736adcc895746a04d256a030d3bdf4e9a17b65272ab7ec3d69b7
+DIST thunderbird-128.3.0esr-el.xpi 890906 BLAKE2B a15bd9b7fff56d6b9aed0ab0eb3c1082586333bbbfea0c59e66d995151ad2f31e27d259d14a41a1055b4b88263fa66da8b2a60e8d2cdcea17829a683362c09a0 SHA512 ea918107ec25a9889a6a8452c7e18704de444834fff06f1abb9852184b2ef81ddba73a2d7443837a91a92b747ac0a603d324922ec43720b19efab1e191541f86
+DIST thunderbird-128.3.0esr-en-CA.xpi 703807 BLAKE2B 850cf0193a50c994e165117b4874c1564505becdc472b0ebeaba0e7f43880cef9f428e12fdb074ec771cb86318629c70bac9f70d1d5aaff1c4b61c86d38e995d SHA512 7f1dc54cf061e116dc31f2a936b4a8ab92a071ac395aa6b70a95be13bcaddcd741e7e398ccce2ca5aa3b8dd3acae9c4ab124dd27a98ad43a7a24ae5197ccd792
+DIST thunderbird-128.3.0esr-en-GB.xpi 704130 BLAKE2B f8542c919503f0f8b28eff2deadb07ec9e989bc6788c6877d582a5cede4efffda9711f7936e82faa976d721e92e615149212b71d7fae4c3fed67f097f1109b1d SHA512 37c8750cf108acf1077d972ce20bb5eed8cdc4c5bd59957c7e91fd9c0231f93db98d528a3188a834ad77bfdcdfbc36f54fee5ccc2c14ee18b3d0a3405993450d
+DIST thunderbird-128.3.0esr-es-AR.xpi 759813 BLAKE2B 1b9a79d0efe4fbc07b3df30be87ef8364cad0f4769cdcb91b408fc28665a2befa7816b412b3fd92f244dd19030106c6179e204f93a26c954baf0876f01772ffb SHA512 ee80c09ee2dfee0c1ce38120544881a3f03b807365359f1b8cb5ba3d4c846a80b9d1cf38213848dba20de03ac9d99364e4ca046adcd35f229dae079f602f4ae1
+DIST thunderbird-128.3.0esr-es-ES.xpi 724715 BLAKE2B edf4e44833e6fb516c159330f9927878160a434eb3fc48c8650f4d047abc5eb25e15ba024227ca40f7fd06e66865e30df38702cc531665d71b772231b047766d SHA512 832c6e6609e01ff3cd1e970e9bee967af37f89cac55a1d7bbc273a9196866f0762a66bfeaac2620d5d1074d27d4b3ef3a7407103270155e38e1a03eb2a90abd5
+DIST thunderbird-128.3.0esr-es-MX.xpi 737707 BLAKE2B f04cb9973b842eb4877ba59723d0657f1f62c99a03136bbe9518139322ccad82c1e1c8fa1c2e4534cadc0d1c693ec3ca236c0845263bcb404366c728e44381b8 SHA512 d68661bd66399359b0c8697282114e37871f17a38560dc19f75eaec70570ac2965358c5d9e378afb591f5781d61d12beab4f59396aac6d38e5970ce11aa6a603
+DIST thunderbird-128.3.0esr-et.xpi 696280 BLAKE2B 905e9f5d3673ce7d0a7737ac14a0fe3ba9ddea788bf763cd433611236ec2d86ad3bf8f55f2a89a863eb1f7eb8cd1b1e1b4196203d60969a13f70b4be32ab46f5 SHA512 23146a9b0309ae64f246c4819e5cbc964c381ed10e6905751fc1232a1df6f919c52e7cf7a8d38b181ba8a7674a58267fabbc754b1d59499624d6232077b8b978
+DIST thunderbird-128.3.0esr-eu.xpi 733522 BLAKE2B 01cefb7fa268a1dfbbf95971e9715ef83a25075bcd636655bc2571add4901725577cc7377f1a64deb37176e03b75f26c19a0be93b046ee6d3abe5212dec713a2 SHA512 e8c9772fd3cd50a66dae40a4d6e7b4519821edaa4824f50cf3df8ecff560a4bfd363cfac0337543f3b3be4cbdb358ca6785fc4e29f1239c9e597850d18ec3e2c
+DIST thunderbird-128.3.0esr-fi.xpi 735417 BLAKE2B d413c880bc132d9c263f049ec76210e001ef20f51943b79c314a0c47bad86a329cd1641d0451a5844fba6b8077e24cb7d333449d99578b37830428251afa6f37 SHA512 0438d249b2a3827706ccb105e21f9cc702532ddfb05b05ffe2c3c067cc55a809f7010687fc2216ccb0e12e5ab6cb02d6ef646247930bd20a727c4e9c36cb6545
+DIST thunderbird-128.3.0esr-fr.xpi 771569 BLAKE2B 492d44889e3c43ec2f31bca283dc9808aed73d0de93d7a65030acd1fbc941eeeaf6f4da3be3d2c5f7c885969c8b2534a08e1c0f3a2d5c497df39355b6e138442 SHA512 589b74f2addd930dd87ac5161d590215405113dd16f598d0fba81f60b75f202665948eab12bda67b8d035f8288546add596dab6c6e86211774a86e825edd5e63
+DIST thunderbird-128.3.0esr-fy-NL.xpi 754305 BLAKE2B c7f9963a70dc9245c01730e90a6c272901f017bba4619ca8fd6f39c7a40410956f732d360abdcd92600162ea33a214b0261fe79747b908cde4a045ee30a20b72 SHA512 c615eb98d52174ff15391c6322c91748beb8eeb331fa419484f17e6bed97ff56d6b4b9bb82f754c395787d9997e87955ff94ce126aa0d4b1cab5c6f86b755b1a
+DIST thunderbird-128.3.0esr-ga-IE.xpi 615880 BLAKE2B 80a12d4f0360b7a8adbcd1e11d8c2d827e9eccf0b67566fa49b3a66072f41d99f98064de4d2793e95b123e70326b02d0d729c0aa7837c6a39f0530dbe3f818a2 SHA512 a41f42de9b8b3a867b7a06e51abf45f4fcea85958707c8264b8abc5569001a79d17170f7d1ba0955510869ed3932e138c8dd6c25ff2cd45f896576cbf107e17e
+DIST thunderbird-128.3.0esr-gd.xpi 727804 BLAKE2B 0a61072fdafa2efe80f90a3ad8074f0ae1f1e5773a2fe7b69728ec9df3057a398a37223377fbdbce48db9e6fe195f114055d63db74caa1c43fe8e203adb37bb0 SHA512 39b4b24a17567aa1e8057d2309ba7136d909b3a71a309ebec33e4b62e396530d8a2f69892017105725174896d74ec31689097a681ed5e929a8606f9fcc2f427f
+DIST thunderbird-128.3.0esr-gl.xpi 741260 BLAKE2B fdf4990e86bf9d1f2e9401548419b967b5ca94ea87b2633430ae8377632fd2ddf64ed0b213c3ba68a20512728b37221a571b5a1b85139ac1f23fa6bd247b3c2c SHA512 f1246db249667806dd2b8e8ee4b1372d93c0d1c9de4e0e54fa6c76146ead8fd981a669050f4ea4ecd615c00746c931d1c1c07f487e25a6c0d11e2c416599c33c
+DIST thunderbird-128.3.0esr-he.xpi 700303 BLAKE2B e59cd83036a7cc4c4ce614677c0c821766f743015827f60d72cc6c657d3ed3af6fa18b2bbaba9d9e2692f13da5b5bdbfa74c13a0595301c0f5630b9590d70f1b SHA512 ff166dabc443ca465513fa3342f37fc26f39319bc2614a7a79d5a856ccc4ebf7f22fd10b361c83a466f921aba82f6efa7f7028089c68dfebe036effae6fad6c9
+DIST thunderbird-128.3.0esr-hr.xpi 716557 BLAKE2B 1177ae0a09a9eee3f744e87cfebd19f7f424acbd6c51e35e9984a3da661e46b346708dcfac91534d17d2511a413b8a274679e9692e3c68dfe9b82263f6608dd1 SHA512 cc74413162f6cde6b12ec8624a0e9a348316ab222fd3de9b497798f7b249b84a210668a1650d62e5e98be6d32c19eb6c43fff0b798ef641c89f1a335b772a3c9
+DIST thunderbird-128.3.0esr-hsb.xpi 781729 BLAKE2B 223f4cfd71f9cd03a6c9ec63ebaf49f25e49c359f8cf31d823fc2a3acd50a3408519e7e87c9cf47ceccee3e0006e6134bf00a7a201b6c845d51a1b4785881072 SHA512 bf9a6fdc70b678c6aa1decdc236ea590ae45f6c86aa6c7c1bdbef14e0ba8a51065e7bcf221be627edbadff40c1d89c34416295e6388f9fefe53bfce892943c6a
+DIST thunderbird-128.3.0esr-hu.xpi 784761 BLAKE2B fdf7b17e7ea7406bdd719a9acface2d9a6699bda4d80b5713f958aef23cb65edee4b256eb8d270ed9fec181aa089f34c6d5bf448634891e6727a87f1a68a3099 SHA512 3c9fa37d7f4e7d990aed5490d422f270ff06c434e473874710611162c53177d206f892c18eff2635f779e75e1ac7b05177c59c5caa4be87e214344235c65d3bb
+DIST thunderbird-128.3.0esr-id.xpi 666012 BLAKE2B 81783da20e93b62e1e65ab69bcf46ba1a9660b2b2f9fda1a05cefdfccee457576669a9c65cbf240fa4d53c97499faa547d52b6055e6cfad6cf7787cc8f150310 SHA512 9da3d01f66b6be57abd22e0175f76a86693121c5db6bd29454a79a6f48f1104e5532f1b06df5b591bead123520e011d6671a836acc0dcefd0aa344bb67b61ebe
+DIST thunderbird-128.3.0esr-is.xpi 744889 BLAKE2B ad0be3fa342b44bd5c88db93899165464caac472535412395de29193e465bfc00155bd7448274d2cc2000c71e9d63899b1275bcb2744e718765bac9ddd402b75 SHA512 72a5d6ba4710e5cc9964fbf6977f0b97fff831c6d888c07764da7dc7bc73ea1cbd5dd7554c2fa0c862953a7b44dd22a06f8c6ce399b4aaad6693f193640d1dce
+DIST thunderbird-128.3.0esr-it.xpi 691966 BLAKE2B e430c4ddd3d6b6ca5d4e0fe6f4162d2b57d3b157e0b313ec17d95f3d07baf06f189484309d03edb312aef48f12db88ae57d49150b766d52ffc4fcdabaddf98e2 SHA512 5dd6d57c3107fa197fde3ef60ffa13a867d1aa7e745c55f68215e43ed679b0ee058ecbf3d3f01eb0293474ccd19e2d2d81c397f625ae85bc9d02a2aea5a2ccd9
+DIST thunderbird-128.3.0esr-ja.xpi 821187 BLAKE2B 9f287e0dc91c7eb22dbcf4833e39fcbd0fa390e8e9b4340cd7d1515652ce7a92fb90b56fc3286538787aa07eb983a67dfa8e0912325813207846901218a2be1a SHA512 c119c58c030c7304d0698d8dd3cfdcf994fb2872773686bdab5979928c8049361aea244c152add76e578638944c527580ac4d9f527a164ef012796bbb99e4795
+DIST thunderbird-128.3.0esr-ka.xpi 796048 BLAKE2B 5f47ca724f1e2a76a85e81fde5a281cdf97c6793401fc6d71d8fd25ff098caf277853b714aa13533e17c13fca5872aa16b4741d53c2d61556da7dada9b5c8ef6 SHA512 64f0eadb6de627a751a9b9fcaf278b7281ccaf26c5eab10a3a680f8c98dd8743d7363a78fd2aeadbede7b48ddae127a2285be09a55a7a6b49864986516714e8e
+DIST thunderbird-128.3.0esr-kab.xpi 731857 BLAKE2B d9bd3e8cfde699ca71ee21c7a3f203e3de74117548e937ddf8c577c4e146056462038b680b084aab9c9e8621d999a5facfe4c8a8554bf6e97151a60c04d514b1 SHA512 7a33a24e63fda63c613401419bf8191fc5bfa03ad67e1251f92de518ff46cbd469a20e450258221d2fffcce1c9833c919acc41493838bea7e134e81f77d2704f
+DIST thunderbird-128.3.0esr-kk.xpi 858940 BLAKE2B e0ee47d5e9987d4dcb5e0c8a66b877257aa796350bd5abc80f24df3eea75df1edaccff6023296224aa6290e4f04e89e05d5eca717cd2916b862afb7925ce1cba SHA512 e75f5dd4a1c13f07d98885b1d41a45175550cc69e8564ace718a39a91fed3c384d29ce31734b241aea76d17bc2fb0e4b0f6f9dec5df7c563489729794c33862e
+DIST thunderbird-128.3.0esr-ko.xpi 755165 BLAKE2B 9fdc2731516370c901f1ee10a90eba030ddc37fc80de249954a8c9571e4e3cdd8fd009043f3aeedb0e75d0bd650fda9c851fd560ae7329b4e12bf55867b3cd28 SHA512 411d1b612f63a9168844cb2eb9043bea09e80d1499755e13dc3c643c3e015011f9c4e4d150ac73ca576cbf1565f5a21c04e62166b29e300cf183e4251cba68d2
+DIST thunderbird-128.3.0esr-lt.xpi 700920 BLAKE2B 423224487435ed77b3aa1770ed82023cf099f45642ea028a7c943d9d232b3e1f236ace0bc9de06c0892c281f0f4414f741606c8cc158e55298de4cae338c630c SHA512 c5bcf3c2df6df658d48f16adb869889a00c2919e4c05af2e9f8b24d5b7460f9f3defd91f7f46f668ebb5c3854e398b5a700ee20caf30b5f089b8515d2ca05f02
+DIST thunderbird-128.3.0esr-lv.xpi 623624 BLAKE2B d3a520f3c570298cac055d6ee5be39b89f04cd45c299541ab991dae32207f8364809e3e34c8db100ce6ac7422eea445a0ee6fd3eb461be578c5575503caed4d7 SHA512 5a16908122327c17664b580c3000e6d730deceff34298573578e1463f23dfc2484f845d6bca1483f8b703a2afe6c76e9888c97c7ad5a0a6ec4ed23511ef8a76e
+DIST thunderbird-128.3.0esr-ms.xpi 581084 BLAKE2B 2e7a0ffacb5fc08b92bdea1c581d01d518386e9493fbd978de7c45a06f1a6a3e46df27e366ba13e75a6061b4c532f4d84c59ea52c302f3a4024e9729af1e5ce2 SHA512 c77be3a66d0d351d77162182961e658cc125897f0ab70ff4b2056b261ec418a06fb4ac14c63e445b9931746e6be50cbebaa83afd97a3508c54f4b6138e6c37bd
+DIST thunderbird-128.3.0esr-nb-NO.xpi 703766 BLAKE2B e999c98c69e74afbc5e94465160bcf66753bee0c154f4091ea91f8f2c02d326a08e6dd1514c11883ff2992552a4358bdb16c01b1495415f3445ae1c68fb202ce SHA512 ffb4fd35cbceba98a13d267e9067d91a11652ee769567b188a57d33aff677daa11aaff5f05bdee7dc43f71583dbde8989b2c41f9217e81c64fb695129b11c6bf
+DIST thunderbird-128.3.0esr-nl.xpi 745561 BLAKE2B 2f8b4703c589ba4dcb21cf28af137b06753af6481770a11f0b794a4bb5a683749d41a30d0518a327769822bede38af6d6523be5b505d74845fa2d1662c2fdbb5 SHA512 f15a134a137b5194d0d39d27b323e3545323bd0fc608d083511125d9137e976b8e464bfa4fb727f1c0649371d76806f84864c8faedbae955794f57c5fe23284c
+DIST thunderbird-128.3.0esr-nn-NO.xpi 725244 BLAKE2B 9a1d0aaa9f1cebd2fc1825d382e106997990ec7433c2f6f16419e055bb88d2aca01183f6d2f1badfb8e54adb7e34b0f4ff1a8fa1d7299ad3d9626565d25d4905 SHA512 4b0d1fcbafa4ae4d39fdf4bfdf77fbdc3fe7f30ecfef83d6ad51126c92babda65cc485d7e803afb5f623faeb3310e04e69a01244e1b6ea094a97acada708c70a
+DIST thunderbird-128.3.0esr-pa-IN.xpi 683345 BLAKE2B ae996c772dc890fcca91db99b5027d05eef484f32a5bef167dba9d19f1b05b494eeeea53b06efdec89fab59ffe6b704c5fc93b879f1ba18d0b5e34c160ebd15d SHA512 195069557ee73443c398704854c805909f3c715fc7aa8f4eb1fae762bb78f30bd2e1277a0c88db4244bfe99f2b6369d127a46cf1c2b033dacd403ca102bac2e7
+DIST thunderbird-128.3.0esr-pl.xpi 764580 BLAKE2B 631d426e0d31f53b79835a4a783eeb24b41271fabe8695010ab2342d37c021d9712c3017fcc0af054ce39f1d9ebf5bc7d662bc03c1ff184fb4ad2b8678245fb2 SHA512 b8bab94bdfcc5243da5d3665dea6d37f1f57f3600950dd61052e233da40762ee4a4e2a003a57c163df0c0112b8cab7a0f7f4d499ded9a36114db4a7365b33305
+DIST thunderbird-128.3.0esr-pt-BR.xpi 752927 BLAKE2B 6cc771d0b1c0666368939545a03a581891ea9575f3a2b79528d1cd97e16f862da93dedaf5d95ba40920a884d9dc929afde6e68c15db2cbdee3284033d2b3c969 SHA512 0354eae9ce5371578354927a67d00675b3d82a4293c69e5b2986e69efda81e7e7bd2ad0f332cd4340cb4c7966ea0bc41fb4e9c574dd4ea23f19f831f0ae1a11d
+DIST thunderbird-128.3.0esr-pt-PT.xpi 747132 BLAKE2B 6df56f1561e731380a1a24c3cc02d0d6a0d7efc59316e460f21c5f5e5d9d518a62deb90761fb6eec2fa7af3c90521c3821d29b557cedee49dc45e7644b087cca SHA512 65b08245cd5c4f2fd4488c5f5094cfff04672465310ef3a58df65e2af0d72f189760c3e59fd6bc9af6e914cff36aded840451c68e7d489673e0fe312917cc4b3
+DIST thunderbird-128.3.0esr-rm.xpi 747955 BLAKE2B 5ca28ce5a747b717eae407460333ab839b2d29579a7eb7758bf38b67797e9502cecf76953bbc6a484519cc35abfa8ed2528df3f2636ece0bbe6a198d4ffb70cd SHA512 9b50973521642df85a4f30ef867ab2e78cdcc91ce9e4c5583fdf13708050b980cc34a4b159160a0ca53e3903b1c453dc9ba67059a539eabe45256d50b298145c
+DIST thunderbird-128.3.0esr-ro.xpi 669742 BLAKE2B e7897b05e8202762a99aa8eb21abd1bd17f365a2ea9cb0cf67c08d4a77f8c7f158d63c886fde6d6b9739a88dd61f83f2215e63e57a60cdbf053af01d39b5d791 SHA512 add9849643d0ffad7a4c6e9a9e62039762448b54de3f5c1b70ed821d34a1c053d3946416f9e26fd4fb421456310f69730dc53a2d464ced2519b546cf577b99fe
+DIST thunderbird-128.3.0esr-ru.xpi 873913 BLAKE2B 303590359f854234e2cb8a82cee7aeb27cbd5182c48649293bbe424426455e1e1658414d29e7a4ce7af78b3440d2ebfac98046028e0c8282a25fa5d41cfb5cc4 SHA512 0c560aecd73b4aecee5d77c53316495750d21d37647b74ae8aae5d3a2ec3298820edcdac299f359ec4457cafd7616f8db591ca1f3e57fa2a404d82775c7bf19d
+DIST thunderbird-128.3.0esr-sk.xpi 785855 BLAKE2B 31835ada129d6db6d660297e83dcfbf82dff287a98f46e6eeff08089a2e23db93db78e497a44cbdd1c4e75c9406d54ed3f4642d144976df49c9b7bd6b4fc6996 SHA512 577e487ae2a4399f07486d401208270d80e4227d40d33de4cc597c100b0664a86413821dcbf5308d2218e4b4ef8ca524e9f37f9565593fe7d6ecd1a15ff9534a
+DIST thunderbird-128.3.0esr-sl.xpi 744735 BLAKE2B df80f65c7fcb850d90a5f3f7c29993ee1df1f73984191d8b09bf02e1cf1fd86eb8bcdea872adcc97550fbf0f4e459fd898b01c22d18d63bdc960a5749fd246b6 SHA512 5d0710a22ecbd348d1f2f0cbac600362f39aad1315ef0864129294d5e199f147b923196dd6aced4c264e2cb5e800bc23d658388348167ad54c799bcf0dd1c196
+DIST thunderbird-128.3.0esr-sq.xpi 767154 BLAKE2B 227ed4e78b0d1eedd90140471cd5cb46bf33b76982665dbee4157dfb7ae40d23f36bae2cfdc465e2df4cdd66cc66f68f99f572b16cc8eed904da8b549defe550 SHA512 48497e635283e656c913a16a1e8fbbab1ff6d88e7a5b4ed69d77d0382beef0238da4ab66366e5300d65c5c7ec13a2ecb1ee7ed173dfbfc3f4f40de6e72dd5f66
+DIST thunderbird-128.3.0esr-sr.xpi 771104 BLAKE2B 284c02dfd6dbc14b2b964c55c923cc2ca641fdec8824c70cbd2a97b884c12e4f37c88b022832ec7157389b2e7d83142a39cedf04331b5200d2f88ae23fa648ec SHA512 1fb10b865d1c4574647e35cacb449cc7b29ac7f7a6927766759958ba47ddb01b3c63eccf3e4bee15ff53f8aeeb3a92a252238fa1962bdde60df8e09e07a729e2
+DIST thunderbird-128.3.0esr-sv-SE.xpi 749010 BLAKE2B 46b5a2e8763293342ddaabc95203cbf9fd3fdfc21887b3aaae42861e738cc7c35dfd11c9667a758a450e29d95de4fb58a779d6227830e5fba69f662a293936d0 SHA512 ed874446500cc3c6e3439e72262067291866e7598b8457f26950048a674d88b57ee7d03c5a13f7fce9a707c4f5157436e32e194df55a9e61ef16ec4b14a177e2
+DIST thunderbird-128.3.0esr-th.xpi 814080 BLAKE2B 0b1651068fc7645fd3b2c21857418230ce92c98979e037212e8f395e7b73239f2664c9cfe69394ccfe6341da4a3c3cad1e5a1d90eeecfeb61485b5345e31ae01 SHA512 d74d07284bf0ebefb23b14f6081ede18168b36bbdec25c0bf54128fa84dac3d3400d8976a4b7c76152e38c6b1498af7213fb37a1f1618cef1c509d5b0e07aab2
+DIST thunderbird-128.3.0esr-tr.xpi 759750 BLAKE2B 311e1a92bd491fbeae27d15f186862d66c491fbde984a5eadbfd3f0c87ab64f1a11a7c2693eba95498bf9f29fe941759e363e72af35b6c8f7ea416c18066de85 SHA512 efd54fdd9eaa75d1004d77c97627df7074e2b053a9da36dbffec2c557c902aba0baffda3c7994ef721a58755d7e1c282e656f3656c6227a902f2614f32a12252
+DIST thunderbird-128.3.0esr-uk.xpi 859762 BLAKE2B 2e88d69e81f37a5547f1dfc7842bc89b4330ac7149da67bdde8c436c2c04846a7adf5512dfdf9e96ad501fd43614b13147dd744e10a6c6670bda7d6f9a024e67 SHA512 58bbc0ea5756988f1be3f2a0cd39baed91452d57921ec1e67a7cb2100ad942ae61313ef44447661eeee8980ab10e9113a66d49d8fbcc17cc0d181ff4b921c2ae
+DIST thunderbird-128.3.0esr-uz.xpi 592132 BLAKE2B 025ce3b8283fe1fbb2faf1ae43a610a39c1c73d3d31ea83f4dabc5fac1902e37cb56550be9359efdda2e0b0a26d9ceccffa3d51227cd125ca6d8384831544bcb SHA512 277b363c7a2d2403ea24b5de0c72ded4c9f90e0138bb7db7b48c7e406938005a1762e7c8b6234f8ac58e62df5559452043ba622e7f744100f65fbac646b59863
+DIST thunderbird-128.3.0esr-vi.xpi 788486 BLAKE2B 706e0f0d1c9860f71999b51afb04657a3f880a18fac7843ac36984e93a5b11374ff5b46f70ef775d9478dc8b8e429641881610fc858a160c45bacc7ab3afd2bc SHA512 12234b78ce6216602d015e5868e8c7ef017a0ae8e5121f61f22dda5ffe648b1f8020b373349ca5ef3e5b718d510e0a8f1c3bf31b1d725e697200fae81f88779d
+DIST thunderbird-128.3.0esr-zh-CN.xpi 786951 BLAKE2B ce6e4cf163bc6d6ad4f1842f796d383bbd35642f8551944a753f7cd4c4735f3525260aa8caaa041c724c3480ac66fc14cec1c4e35e546e043f23b5e1b4639852 SHA512 90cc47eb849e5e838564523cb6ca2e1f47ab4bb5753f6efe8ee5896a38a4e8396881b219943aaa74e5ccba528d855f2b696dfdcf0ac4e9f21d86a82fca116109
+DIST thunderbird-128.3.0esr-zh-TW.xpi 791295 BLAKE2B bbf10659067e76ebd2c7897d17f64d9dd94a1c3077af746d5250dd35c34fd6bb12e273a27da875ebc42421d3ae4e22d8f660ebf8283f2d033101860c3fbb95e3 SHA512 7239a020e70075cb6bde0d67fed701e3b285fed3054d5ebc3f910756559301470dc64a116d761a98ebd1d4ec78f512dbbc742a2cd6509f71e3650d2fa2755245
+DIST thunderbird-128.3.0esr.source.tar.xz 672592576 BLAKE2B 905e7d7aaa17ffb2eef09e54f904d008216b5d577ab98d89219c3a63ae127ea931818c5ec2e65136cd03c82b8cf91d5cfdd2e05d6b79c7412259bf87a023cd05 SHA512 10d5efecca85f8fb394bd01bbe92b949365a0f643fa25d42e5d701deafaca7694687941bc5ae5ee836bc6543c6db81f4e9998f006c134513e6cbd22e94594ae0
EBUILD thunderbird-115.15.0.ebuild 39759 BLAKE2B 2da23464f236749409d2809acf66d836379e9fbf393039c144c4223d942095b1235d0450a57cde3ea4b2e0867d285f5af336b9da95a299c9eecdf8a3a39302f9 SHA512 dc244a723ab46e1e781eaecbfa4c801b00687eaa58acd8569fc9334d28a5cadbf1c7d87d86af4d82857cd3241f7e3ed7e3ea2caeea32dcddb4da002049f94ce3
EBUILD thunderbird-128.2.3.ebuild 35930 BLAKE2B 5d89784ef4cf142109ff5d0cf4e4b1ee66ab6602daa1380f03681431baffcc20d3a2ca240a9f9756119ebdb82eff8bed9a23afc1dee1bc6bcf3990b2eb19bb5e SHA512 37f851e182cde572195fcd9e44064134bf45c55831abc3bd64b507c0c6dcd5217b0eba693d9e8f8c853a439c2513fcd0b85c1d047587f59f683def8efa2229fd
+EBUILD thunderbird-128.3.0.ebuild 35875 BLAKE2B 9f874604e1accdc59e147f06d15dbfae92e5c6146d89c16f544a619c83118a0225ca6afeac95178218f0529e88a73697591322bebb440bbb732b481580a3c10d SHA512 f8263faf943c228b822088953393959983ef42be49de051dbbd7a5650e9b05e9c2cad1dc34d8b0b05c0ed4c4492fc13539c3bdbbd148d7f2a1714cf9bad6577b
MISC metadata.xml 2522 BLAKE2B ae04a037a2497aa3cdbe64ab396557f8f73b67cedb943e48823261348645d4d2d88e9741f6724cc7b0dc68edf7d9b7a79bd738efef39a196ad14ca6353bbf377 SHA512 ff4f36837cea680c924d108e5110c04f3fc55537905f1ae73e297db3ecbcdf0f4409ba6e7a046e188554d640ddacaaf781ac0618c62b214b13a6a15599dbde8e
diff --git a/mail-client/thunderbird/thunderbird-128.3.0.ebuild b/mail-client/thunderbird/thunderbird-128.3.0.ebuild
new file mode 100644
index 000000000000..2bfc08ccbbce
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-128.3.0.ebuild
@@ -0,0 +1,1192 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-128esr-patches-03.tar.xz"
+
+LLVM_COMPAT=( 17 18 )
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+# Thunderbird will have separate release and esr channels, matching Firefox's rapid and esr.
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
+ optfeature pax-utils python-any-r1 toolchain-funcs virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+
+DESCRIPTION="Thunderbird Mail Client"
+HOMEPAGE="https://www.thunderbird.net/"
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+SLOT="0"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang +dbus debug eme-free hardened hwaccel jack libproxy lto pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx"
+IUSE+=" system-png +system-webp wayland wifi +X"
+
+# Thunderbird-only USE flags.
+IUSE+=" +rust-extensions +system-librnp"
+
+REQUIRED_USE="|| ( X wayland )
+ debug? ( !system-av1 )
+ pgo? ( lto )
+ rust-extensions? ( dbus )
+ wayland? ( dbus )
+ wifi? ( dbus )"
+
+TB_ONLY_DEPEND="selinux? ( sec-policy/selinux-thunderbird )
+ !system-librnp? ( dev-libs/jsoncpp )
+ system-librnp? ( >=dev-util/librnp-0.17.1 )"
+BDEPEND="${PYTHON_DEPS}
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ clang? (
+ sys-devel/lld:${LLVM_SLOT}
+ virtual/rust:0/llvm-${LLVM_SLOT}
+ pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+ )
+ ')
+ app-alternatives/awk
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.26.0
+ net-libs/nodejs
+ virtual/pkgconfig
+ !clang? ( >=virtual/rust-1.76 )
+ !elibc_glibc? ( dev-lang/rust )
+ amd64? ( >=dev-lang/nasm-2.14 )
+ x86? ( >=dev-lang/nasm-2.14 )
+ pgo? (
+ X? (
+ sys-devel/gettext
+ x11-base/xorg-server[xvfb]
+ x11-apps/xhost
+ )
+ !X? (
+ || (
+ gui-wm/tinywl
+ <gui-libs/wlroots-0.17.3[tinywl(-)]
+ )
+ x11-misc/xkeyboard-config
+ )
+ )"
+COMMON_DEPEND="${TB_ONLY_DEPEND}
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ dev-libs/expat
+ dev-libs/glib:2
+ dev-libs/libffi:=
+ >=dev-libs/nss-3.101
+ >=dev-libs/nspr-4.35
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ sys-libs/zlib
+ virtual/freedesktop-icon-theme
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango
+ x11-libs/pixman
+ dbus? ( sys-apps/dbus )
+ jack? ( virtual/jack )
+ pulseaudio? (
+ || (
+ media-libs/libpulse
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ libproxy? ( net-libs/libproxy )
+ selinux? ( sec-policy/selinux-mozilla )
+ sndio? ( >=media-sound/sndio-1.8.0-r1 )
+ system-av1? (
+ >=media-libs/dav1d-1.0.0:=
+ >=media-libs/libaom-1.0.0:=
+ )
+ system-harfbuzz? (
+ >=media-gfx/graphite2-1.3.13
+ >=media-libs/harfbuzz-2.8.1:0=
+ )
+ system-icu? ( >=dev-libs/icu-74.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= )
+ system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-png? ( >=media-libs/libpng-1.6.35:0=[apng] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ wayland? (
+ >=media-libs/libepoxy-1.5.10-r1
+ x11-libs/gtk+:3[wayland]
+ )
+ wifi? (
+ kernel_linux? (
+ || (
+ net-misc/networkmanager
+ net-misc/connman[networkmanager]
+ )
+ sys-apps/dbus
+ )
+ )
+ X? (
+ virtual/opengl
+ x11-libs/cairo[X]
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXrandr
+ x11-libs/libxcb:=
+ )"
+RDEPEND="${COMMON_DEPEND}
+ jack? ( virtual/jack )"
+DEPEND="${COMMON_DEPEND}
+ X? (
+ x11-base/xorg-proto
+ x11-libs/libICE
+ x11-libs/libSM
+ )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang && ! tc-ld-is-mold ; then
+ if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
+ einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+ einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use pgo ; then
+ if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+ einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
+ einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+ af ar ast be bg br ca cak cs cy da de dsb
+ el en-CA en-GB en-US es-AR es-ES es-MX et eu
+ fi fr fy-NL ga-IE gd gl he hr hsb hu
+ id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+ pa-IN pl pt-BR pt-PT rm ro ru
+ sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+mozilla_set_globals() {
+ # https://bugs.gentoo.org/587334
+ local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+ fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+ )
+
+ local lang xflag
+ for lang in "${MOZ_LANGS[@]}" ; do
+ # en and en_US are handled internally
+ if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+ continue
+ fi
+
+ # strip region subtag if $lang is in the list
+ if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+ xflag=${lang%%-*}
+ else
+ xflag=${lang}
+ fi
+
+ SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+ SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi"
+ SRC_URI+=" )"
+ IUSE+=" l10n_${xflag/[_@]/-}"
+ done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -ne 1 ]] ; then
+ die "${FUNCNAME} requires exact one argument"
+ fi
+
+ einfo "Clearing cargo checksums for ${1} ..."
+
+ sed -i \
+ -e 's/\("files":{\)[^}]*/\1/' \
+ "${S}"/third_party/rust/${1}/.cargo-checksum.json || die
+}
+
+moz_install_xpi() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local DESTDIR=${1}
+ shift
+
+ insinto "${DESTDIR}"
+
+ local emid xpi_file xpi_tmp_dir
+ for xpi_file in "${@}" ; do
+ emid=
+ xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+ # Unpack XPI
+ unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+ # Determine extension ID
+ if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+ emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf"
+ elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+ emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json"
+ else
+ die "failed to determine extension id"
+ fi
+
+ einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+ newins "${xpi_file}" "${emid}.xpi"
+ done
+}
+
+mozconfig_add_options_ac() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_add_options_mk() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_use_enable() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_enable "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+mozconfig_use_with() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_with "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+virtwl() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument"
+ [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset"
+ tinywl -h >/dev/null || die 'tinywl -h failed'
+
+ local VIRTWL VIRTWL_PID
+ coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; }
+ local -x WAYLAND_DISPLAY
+ read WAYLAND_DISPLAY <&${VIRTWL[0]}
+
+ debug-print "${FUNCNAME}: $@"
+ "$@"
+ local r=$?
+
+ [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+ exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+ return $r
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has usersandbox $FEATURES ; then
+ die "You must enable usersandbox as X server can not run as root!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6600M"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has userpriv ${FEATURES} ; then
+ eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6400M"
+ fi
+
+ check-reqs_pkg_setup
+
+ llvm-r1_pkg_setup
+
+ if use clang && use lto && tc-ld-is-lld ; then
+ local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
+ [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
+ [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
+
+ local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
+ [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+ [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
+
+ if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
+ eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+ eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
+ eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
+ eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
+ eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
+ eerror " llvm/clang/lld/rust chain depending on your @world updates)"
+ die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ fi
+ fi
+
+ python-any-r1_pkg_setup
+
+ # Avoid PGO profiling problems due to enviroment leakage
+ # These should *always* be cleaned up anyway
+ unset \
+ DBUS_SESSION_BUS_ADDRESS \
+ DISPLAY \
+ ORBIT_SOCKETDIR \
+ SESSION_MANAGER \
+ XAUTHORITY \
+ XDG_CACHE_HOME \
+ XDG_SESSION_COOKIE
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if use pgo ; then
+ # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure
+ # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage
+ # (PORTAGE_SCHEDULING_POLICY) update...
+ addpredict /proc
+
+ # Clear tons of conditions, since PGO is hardware-dependant.
+ addpredict /dev
+ fi
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to fail with
+ # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build failures!"
+ fi
+
+ # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+ MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+ fi
+
+ if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+ MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+ fi
+
+ # Mozilla API keys (see https://location.services.mozilla.com/api)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+ MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+}
+
+src_unpack() {
+ local _lp_dir="${WORKDIR}/language_packs"
+ local _src_file
+
+ if [[ ! -d "${_lp_dir}" ]] ; then
+ mkdir "${_lp_dir}" || die
+ fi
+
+ for _src_file in ${A} ; do
+ if [[ ${_src_file} == *.xpi ]]; then
+ cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!"
+ else
+ unpack ${_src_file}
+ fi
+ done
+}
+
+src_prepare() {
+ if use lto; then
+ rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+ fi
+
+ # Workaround for bgo#917599
+ if has_version ">=dev-libs/icu-74.1" && use system-icu ; then
+ eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch
+ fi
+ rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die
+
+ # Workaround for bgo#915651 on musl
+ if use elibc_glibc ; then
+ rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+ fi
+
+ eapply "${WORKDIR}/firefox-patches"
+
+ # Allow user to apply any additional patches without modifing ebuild
+ eapply_user
+
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+ # Workaround for bgo#915651
+ if ! use elibc_glibc ; then
+ if use amd64 ; then
+ export RUST_TARGET="x86_64-unknown-linux-musl"
+ elif use x86 ; then
+ export RUST_TARGET="i686-unknown-linux-musl"
+ else
+ die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651"
+ fi
+ fi
+
+ # Make LTO respect MAKEOPTS
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count"
+
+ # Make ICU respect MAKEOPTS
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count"
+
+ # Respect MAKEOPTS all around (maybe some find+sed is better)
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count"
+
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count"
+
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py ||
+ die "Failed sedding multiprocessing.cpu_count"
+
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count"
+
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count"
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py || die "sed failed to set toolchain prefix"
+
+ sed -i \
+ -e 's/ccache_stats = None/return None/' \
+ "${S}"/python/mozbuild/mozbuild/controller/building.py || die "sed failed to disable ccache stats call"
+
+ einfo "Removing pre-built binaries ..."
+
+ find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ # Clear checksums from cargo crates we've manually patched.
+ # moz_clear_vendor_checksums xyz
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+
+ # Write API keys to disk
+ echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+ echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
+ echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ local have_switched_compiler=
+ if use clang; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+
+ local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
+ [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
+ [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
+ AR=llvm-ar
+ CC=${CHOST}-clang-${version_clang}
+ CXX=${CHOST}-clang++-${version_clang}
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain,
+ # AS is used in a non-standard way by upstream, #bmo1654031
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ export AS="$(tc-getCC) -c"
+
+ # Configuration tests expect llvm-readelf output, bug 913130
+ READELF="llvm-readelf"
+
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # Set MOZILLA_FIVE_HOME
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ # python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set state path
+ export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-application=comm/mail
+ mozconfig_add_options_ac '' --enable-project=comm/mail
+
+ # Set Gentoo defaults
+ mozconfig_add_options_ac 'Gentoo default' \
+ --allow-addon-sideload \
+ --disable-cargo-incremental \
+ --disable-crashreporter \
+ --disable-disk-remnant-avoidance \
+ --disable-geckodriver \
+ --disable-gpsd \
+ --disable-install-strip \
+ --disable-legacy-profile-creation \
+ --disable-parental-controls \
+ --disable-strip \
+ --disable-tests \
+ --disable-updater \
+ --disable-valgrind \
+ --disable-wmf \
+ --enable-js-shell \
+ --enable-negotiateauth \
+ --enable-new-pass-manager \
+ --enable-official-branding \
+ --enable-release \
+ --enable-system-ffi \
+ --enable-system-pixman \
+ --enable-system-policies \
+ --host="${CBUILD:-${CHOST}}" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --target="${CHOST}" \
+ --without-ccache \
+ --without-wasm-sandboxed-libraries \
+ --with-intl-api \
+ --with-libclang-path="$(llvm-config --libdir)" \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system \
+ --x-includes="${ESYSROOT}/usr/include" \
+ --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+ if ! use x86 ; then
+ mozconfig_add_options_ac '' --enable-rust-simd
+ fi
+
+ # For future keywording: This is currently (97.0) only supported on:
+ # amd64, arm, arm64 & x86.
+ # Might want to flip the logic around if Firefox is to support more arches.
+ # bug 833001, bug 903411#c8
+ if use ppc64 || use riscv; then
+ mozconfig_add_options_ac '' --disable-sandbox
+ else
+ mozconfig_add_options_ac '' --enable-sandbox
+ fi
+
+ # Enable JIT on riscv64 explicitly
+ # Can be removed once upstream enable it by default in the future.
+ use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit
+
+ if [[ -s "${S}/api-google.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_enable rust-extensions thunderbird-rust
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-harfbuzz system-graphite2
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-png
+ mozconfig_use_with system-webp
+
+ if use system-librnp; then
+ mozconfig_add_options_ac "+system-librnp" --enable-compile-environment
+ mozconfig_use_with system-librnp
+ else
+ # This controls the backend of the bundled librnp. Choices are "botan" and "openssl".
+ # RNP Upstream recommends to use botan. In Gentoo it's preferred to use system-librnp.
+ mozconfig_add_options_ac "+bundled librnp backend = botan" --with-librnp-backend="botan"
+ fi
+
+ mozconfig_use_enable dbus
+ mozconfig_use_enable libproxy
+
+ use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+ if use hardened ; then
+ mozconfig_add_options_ac "+hardened" --enable-hardening
+ append-ldflags "-Wl,-z,relro -Wl,-z,now"
+
+ # Increase the FORTIFY_SOURCE value, #910071.
+ sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die
+ fi
+
+ local myaudiobackends=""
+ use jack && myaudiobackends+="jack,"
+ use sndio && myaudiobackends+="sndio,"
+ use pulseaudio && myaudiobackends+="pulseaudio,"
+ ! use pulseaudio && myaudiobackends+="alsa,"
+
+ mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}"
+
+ mozconfig_use_enable wifi necko-wifi
+
+ if use X && use wayland ; then
+ mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland
+ elif ! use X && use wayland ; then
+ mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only
+ else
+ mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only
+ fi
+
+ # LTO is handled via configure
+ filter-lto
+
+ if use lto ; then
+ if use clang ; then
+ # Upstream only supports lld or mold when using clang.
+ if tc-ld-is-mold ; then
+ # mold expects the -flto line from *FLAGS configuration, bgo#923119
+ append-ldflags "-flto=thin"
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
+ fi
+
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+ else
+ # ThinLTO is currently broken, see bmo#1644409.
+ # mold does not support gcc+lto combination.
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ fi
+
+ if use pgo ; then
+ mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+ if use clang ; then
+ # Used in build/pgo/profileserver.py
+ export LLVM_PROFDATA="llvm-profdata"
+ fi
+ fi
+ else
+ # Avoid auto-magic on linker
+ if use clang ; then
+ # lld is upstream's default
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
+ fi
+
+ else
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd
+ fi
+ fi
+ fi
+
+ mozconfig_use_enable debug
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ mozconfig_add_options_ac '+debug' --enable-jemalloc
+ mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+ else
+ mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing
+
+ if is-flag '-g*' ; then
+ if use clang ; then
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*')
+ else
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols
+ fi
+ else
+ mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols
+ fi
+
+ if is-flag '-O0' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0
+ elif is-flag '-O4' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4
+ elif is-flag '-O3' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3
+ elif is-flag '-O1' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1
+ elif is-flag '-Os' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os
+ else
+ mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2
+ fi
+ fi
+
+ # Debug flag was handled via configure
+ filter-flags '-g*'
+
+ # Optimization flag was handled via configure
+ filter-flags '-O*'
+
+ # elf-hack
+ # Filter "-z,pack-relative-relocs" and let the build system handle it instead.
+ if use amd64 || use x86 ; then
+ filter-flags "-z,pack-relative-relocs"
+
+ if tc-ld-is-mold ; then
+ # relr-elf-hack is currently broken with mold, bgo#916259
+ mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack
+ else
+ mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr
+ fi
+ elif use ppc64 || use riscv ; then
+ # '--disable-elf-hack' is not recognized on ppc64/riscv,
+ # see bgo #917049, #930046
+ :;
+ else
+ mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack
+ fi
+
+ if ! use elibc_glibc; then
+ mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+ fi
+
+ # System-av1 fix
+ use system-av1 && append-ldflags "-Wl,--undefined-version"
+
+ # Allow elfhack to work in combination with unstripped binaries
+ # when they would normally be larger than 2GiB.
+ append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+ # Make revdep-rebuild.sh happy; Also required for musl
+ append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+ # Pass $MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support arguments
+ mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ # Handle EXTRA_CONF and show summary
+ local ac opt hash reason
+
+ # Apply EXTRA_ECONF entries to $MOZCONFIG
+ if [[ -n ${EXTRA_ECONF} ]] ; then
+ IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+ for opt in "${ac[@]}"; do
+ mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+ done
+ fi
+
+ echo
+ echo "=========================================================="
+ echo "Building ${PF} with the following configuration"
+ grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+ [[ -z ${hash} || ${hash} == \# ]] \
+ || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
+ printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
+ done
+ echo "=========================================================="
+ echo
+
+ ./mach configure || die
+}
+
+src_compile() {
+ local virtx_cmd=
+
+ if tc-ld-is-mold && use lto; then
+ # increase ulimit with mold+lto, bugs #892641, #907485
+ if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
+ ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources."
+ ewarn "Please see bugs #892641 & #907485."
+ else
+ ulimit -n 16384
+ fi
+ fi
+
+ if use pgo; then
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+
+ if ! use X; then
+ virtx_cmd=virtwl
+ else
+ virtx_cmd=virtx
+ fi
+ fi
+
+ if ! use X; then
+ local -x GDK_BACKEND=wayland
+ else
+ local -x GDK_BACKEND=x11
+ fi
+
+ ${virtx_cmd} ./mach build --verbose || die
+}
+
+src_install() {
+ # xpcshell is getting called during install
+ pax-mark m \
+ "${BUILD_DIR}"/dist/bin/xpcshell \
+ "${BUILD_DIR}"/dist/bin/${PN} \
+ "${BUILD_DIR}"/dist/bin/plugin-container
+
+ DESTDIR="${D}" ./mach install || die
+
+ # Upstream cannot ship symlink but we can (bmo#658850)
+ rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+ dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+ # Don't install llvm-symbolizer from sys-devel/llvm package
+ if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+ rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+ fi
+
+ # Install policy (currently only used to disable application updates)
+ insinto "${MOZILLA_FIVE_HOME}/distribution"
+ newins "${FILESDIR}"/distribution.ini distribution.ini
+ newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/defaults/pref"
+ insinto "${PREFS_DIR}"
+ newins "${FILESDIR}"/gentoo-default-prefs-r1.js gentoo-prefs.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+ # Force hwaccel prefs if USE=hwaccel is enabled
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
+
+ if use wayland; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs"
+ pref("gfx.x11-egl.force-enabled", false);
+ EOF
+ else
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs"
+ pref("gfx.x11-egl.force-enabled", true);
+ EOF
+ fi
+ fi
+
+ # Set dictionary path to use system hunspell
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
+ pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+ EOF
+
+ # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it
+ if use system-harfbuzz ; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref"
+ sticky_pref("gfx.font_rendering.graphite.enabled", true);
+ EOF
+ fi
+
+ # Install language packs
+ local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
+ if [[ -n "${langpacks}" ]] ; then
+ moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/comm/mail/branding/thunderbird"
+ local icon_symbolic_file="${icon_srcdir}/TB-symbolic.svg"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menu
+ local app_name="Mozilla ${MOZ_PN^}"
+ local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop"
+ local desktop_filename="${PN}.desktop"
+ local exec_command="${PN}"
+ local icon="${PN}"
+ local use_wayland="false"
+
+ if use wayland ; then
+ use_wayland="true"
+ fi
+
+ cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+ sed -i \
+ -e "s:@NAME@:${app_name}:" \
+ -e "s:@EXEC@:${exec_command}:" \
+ -e "s:@ICON@:${icon}:" \
+ "${WORKDIR}/${PN}.desktop-template" || die
+
+ newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+ rm "${WORKDIR}/${PN}.desktop-template" || die
+
+ # Install wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+ # Update wrapper
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+ -e "s:@APULSELIB_DIR@:${apulselib}:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" || die
+}
+
+pkg_preinst() {
+ xdg_pkg_preinst
+
+ # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+ # does not need to be forced into the LD_LIBRARY_PATH
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ einfo "APULSE found; Generating library symlinks for sound support ..."
+ local lib
+ pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+ for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+ # A quickpkg rolled by hand will grab symlinks as part of the package,
+ # so we need to avoid creating them if they already exist.
+ if [[ ! -L ${lib##*/} ]] ; then
+ ln -s "${lib}" ${lib##*/} || die
+ fi
+ done
+ popd &>/dev/null || die
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ elog "Apulse was detected at merge time on this system and so it will always be"
+ elog "used for sound. If you wish to use pulseaudio instead please unmerge"
+ elog "media-sound/apulse."
+ elog
+ fi
+
+ optfeature_header "Optional programs for extra features:"
+ optfeature "desktop notifications" x11-libs/libnotify
+ optfeature "encrypted chat support" net-libs/libotr
+ optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas
+}