commit: 03b533cde175131d54958cc12a6187b7926b8dc3
Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 19 09:36:55 2025 +0000
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Mar 19 09:41:08 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=03b533cd
mail-client/thunderbird: add 128.8.1
- add subslots to differentiate esr and stable channels.
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
mail-client/thunderbird/Manifest | 65 ++
mail-client/thunderbird/thunderbird-128.8.1.ebuild | 1171 ++++++++++++++++++++
2 files changed, 1236 insertions(+)
diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index fda51bef18c9..0772ed1a455a 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -198,6 +198,71 @@ DIST thunderbird-128.8.0esr-vi.xpi 797499 BLAKE2B
201ce115b4e61e2cd72e106cec4ec3
DIST thunderbird-128.8.0esr-zh-CN.xpi 796658 BLAKE2B
4e5d6b1059d2f92435ff2cd2246c0346a814639c591f1c92a5e19ee4a97a5402ad3e8706cd7bb834c13d4f6473e8897e70580352b0ae70804bad0ced454644da
SHA512
0d5dca1f927245f54a24a82664237cce56367f2db8bf080d90e80ef55e04fc935c0d612da51faa5ad0cd337bee037462b973855a8a313bdf397f5f59efed392a
DIST thunderbird-128.8.0esr-zh-TW.xpi 800397 BLAKE2B
91062bc3211ccc586b928f5b36468c829e2a974725c1be6287021e44dfb6f9a3480bc7e5f7c92fcc251567ec0f376e08ad91b1875f59f348ea3b3b3c90eeccdf
SHA512
e1402fc20b81a3964c152a26ce96faa4d4e32c708568fac6eb832bef86e883269038b8cce7e0165c32f4c1c4da58858444b009d5b69b00c4adb76a42f172634c
DIST thunderbird-128.8.0esr.source.tar.xz 673614340 BLAKE2B
5aef89845b6bbc153f74e3f31f0880af8e70f74f0362a2c2cd723d5633c35de48ddb4f1488030204de76f38ea325755f985f8cba6abd424bf4b7a61e204b9e5f
SHA512
a6ccdf5a067a1f908246885b22a1dadc66f4667d4ac74d1c1867c88a70b194c508e8d9e139f357ebc1d344f032fdc9b75c365fe49937d2463d7bd61b85ef86d1
+DIST thunderbird-128.8.1esr-af.xpi 542240 BLAKE2B
5d99db7c6f3b330edb23f5f2054c3cfc193831ce2c6d6244e85a6e95a4b48de458507e2d8cd11bc15f706eda6a06d3414a2d58e9d9eee510ea961a21a6dd3745
SHA512
d28c6b686ee0a2b891f66a0f09a88583f2c3470af47d712bec877eee3fe23af731eb30e55779218fc2d81455abf3575681702170dbb2b965d9cac39612340e08
+DIST thunderbird-128.8.1esr-ar.xpi 695799 BLAKE2B
2a543a81f804c8d9076938814a63fec11727d9127628a8dce6817adb1301505c5c786c90d463ac1107e23b2af722657dad40eb3a01d626ec80893e796fb75125
SHA512
367965116b3858ad7474daf4dbeb2652555cd74191c7f3d6f184de57dc548a6cf374a505954dfd700f6ad8c9068209a5b091aa78e3adb40066b5c7602a0928db
+DIST thunderbird-128.8.1esr-ast.xpi 566203 BLAKE2B
619fbbf36dc64fb23552b2049cb718827e41c4a51ef16eb88fc056182187e4d1ba800b68bea7de696f03639d8eb637592c12d992aa5cc184da671ff6b4c3b315
SHA512
df7c43dc3fb006aea23fadb902fb2c3b50d9eb29a55cd46586cb22b33a7a1a08f915c5f77d829a10b70197ea85c1b49cb89037cf5c92e2114b157fa33dfd26f9
+DIST thunderbird-128.8.1esr-be.xpi 777280 BLAKE2B
1e970c5825230332f5436f9e3413708eedac3dcc3ff1b86de7c74f1824b0f58270338d2c6a922baf39ee73c0eb8e215d806080a8c4fa296d29c4f2054572cbfc
SHA512
bea5d061a2c05226612a1ef5ebe6d3ab38ad477faa0fd99aa391f78d2c9b17b1f9d097958c5f1f4cb0b10bf9c0401b874091b8a3b1f1fba27d9d4fac7d261f9c
+DIST thunderbird-128.8.1esr-bg.xpi 820586 BLAKE2B
0b1f3f503c0d5ff4b93d5718aaa1d3d7a0e4048bfcc8bfb4a12b1af756b9aa524e5acbe04fbf5858cedece1077ac3190ea6f16bdb34a9f4e9abb2061387ef8e9
SHA512
26881bcd79e1e7a68f7d274d80bd779c1f1399a506c62dc2cb8b4ad1715914e6a6c159592e8a95f0ee73b94053c87d656d9ecd50fa29c4b64b7a6eabb407d504
+DIST thunderbird-128.8.1esr-br.xpi 657274 BLAKE2B
d2be0b234e791fca6c4ae1f70dc3ab029020dab775487594b5e0bb57a3164d259e5324d44e1912243d4a7f8cd594025cf62f8c5160fdeb8e39abe50a74283994
SHA512
3b403aa54ecc2c28707252a29cfc0e696cf15b1b4bbd39303ed5b95235f32296917c10b64bf20db5b143b918c17ab54176bb3b891604fa9ad5c26b76d48f23a6
+DIST thunderbird-128.8.1esr-ca.xpi 714028 BLAKE2B
7cc8151cff3a47eb578cc72f92ad1ec8e736be0f8353454680578fc7dd2177ea773534d1171ef472fe7639c59724829928917efe081874ebb2f85b9d21ba98bc
SHA512
683ddbeccd3df8d7ff6852d4401e476bb0b461358d2405515a8361e658043e1881b1d8a3a45cb1fd0af2ed6686e650801367015702e2f95b6ad5e9355eb9db12
+DIST thunderbird-128.8.1esr-cak.xpi 676496 BLAKE2B
ffdb2df7033426e11c3fcc8317d1fceffd234bed723d39b8fa17372b2f3dbe85cae99463aa8035dc9631efc595b9acaf9388c87dfb8a3a928bff56d9d1837685
SHA512
12965b07fa107ba262bb462b65feab021376e74c02ba383a0b5b797423232194daaaa49b2f402bb2e4595ecfe758bc6720e6bb3f342575c85c407f0d959ca99b
+DIST thunderbird-128.8.1esr-cs.xpi 795938 BLAKE2B
a91e62f8abaa2283706662a1b9457630e55518eeede4074449ad44ae4c3c88d10449d9b01de3b64ea5b5b0d9366c0cf4b6ac7040a2cc4bb4b2f4e999c84620ef
SHA512
cf36965f649fa2115cd0064b4cc5654a1c2cf165f79bee939941f8db0efe385c239da4de3dd5e3b9567f8fbd8b1d44367a604804ba534282eb627e44735fc6c0
+DIST thunderbird-128.8.1esr-cy.xpi 759135 BLAKE2B
1947b34f78b1ccdb8054cf8b577d503cba9cfa28fb349f6af01f56e1b9daa8975b6e3e847071771fac89fc9611f0f02302f9f4173ca24006dc7a53d80ee4a8fc
SHA512
d96f5dd90882ecb58a3bae7e4668c1bcd7dc54eb645b86ddd6d5e02de6d5f2106bf35850b3f2d03c817789f6aa6d1397c06c8dedb3a0eccd2051be65a92d02d5
+DIST thunderbird-128.8.1esr-da.xpi 745004 BLAKE2B
56bca715a259d71a363dc3bbf0a604d26c2594f6d7e04d04456d8520c518be0ff9cec71ea5c8da308878a1e056040a10c209d5a6a80e1be0fe59c6aabda8465b
SHA512
0a5deb78eb77d0a2edd6636dbd579e2e8124cc01c592f2940d2f8ed78c5147e65f2d157289c14940d467c003d58aea97e5b370bf20428f11c4b6037d1168f760
+DIST thunderbird-128.8.1esr-de.xpi 777493 BLAKE2B
6ac5a56b08153d82f28dd2923d01b1113c7fef75446cb6c1eae2594e5b8aba446002f82d571e5ad9f739b530689adabc9bd47141699974a237db726af92e6302
SHA512
172e10da8776efe100a6320b76592434a083c7b0fa8a7f6b51613f0a1841958875c34e1a0ede75d97d0de487937cc16a46c7681ddd5dd60a2661a7dba280e99f
+DIST thunderbird-128.8.1esr-dsb.xpi 793687 BLAKE2B
7270bef83caf08e53102b81df5efaa408f8284b7ab2150ac0eda33603f46fb8ac5bc2f9839d09f77ddb3cd9eae2a86cb8c52af9452c8a0d078ac953931c0b395
SHA512
99f43ed4583e3f14e257f2cdf657113dfa65edbbd1229b2229bee6b649359d7b02b79168c7c8fbd90afd6250de937bf87b5429f4900467299396d65e8ef39f89
+DIST thunderbird-128.8.1esr-el.xpi 898952 BLAKE2B
cf81b31cb0bc4e0bfacae65fba673c728ea36e3025774d05c310b9717e0774a797d900b282992e1c2f632617a70d12200b44a6fa5d6381dd87ee1ba6c06b8a42
SHA512
01e2386591cf0a1c4f127253ca3f61a000641b07045029e0d695b98428c78fb6f864eff5753702f37ea53be41b90931311016328178c0d69f6d2c7898a25325a
+DIST thunderbird-128.8.1esr-en-CA.xpi 710348 BLAKE2B
34cb997536a2215fba36fcf807bc632260d50bcf0151b55bf116ce130041ad8d01b031dea475638ad2a2ca5abc0938b7bacf59a9ebaccc3d55a069aef910a77d
SHA512
3313eb3345a54abd94ce4986b382c2c60caa269643aa4c63addc3bc516f1ec47d45a37d978115e46c3f52ecf169357d2d0212402d1516d1f6b3a3828f2b9b6bb
+DIST thunderbird-128.8.1esr-en-GB.xpi 712292 BLAKE2B
f5dfe91c7becdf6e62daa53cce2689bdd589765c5fb9268a3558a2f830b703e5b81352fc5196024f133a00ea00fbf7abbe5cfc7c13427a558d98c6a72b513af2
SHA512
ae8505f8bf1752a2aaacbf528be8fce11efa5eeecd7c7da5060ceff5289982cb4480d108bd1dfdb6c14d06485cf769daf3fac61bb9d0cfade1effddfc6c47892
+DIST thunderbird-128.8.1esr-es-AR.xpi 768391 BLAKE2B
568d4a4a701dcb428ca56e2c8e53a38089f632caee0ebd9b42b59ae839641a18c9fe760168e286d472990db0813af36e33f33b1e775878995d4a82a9f963c6a6
SHA512
3188ec773b69acc8cdd051d9cae59b568cc131f9d0fe0e076fadb389ffd6a68e1848cc552d720583167168eb498a661edb23ed3ba6711fce5ea7b6069d276cce
+DIST thunderbird-128.8.1esr-es-ES.xpi 742909 BLAKE2B
6031411aa947fd7065647e330ad0d28925dbdba530e21587830c7747e71b869c8db5d531cb8db60c370e38adae831bdc854b99e08b9480f1c913a23fc1926b9e
SHA512
ec02b6c006a52251e4b939287f3a57ba6d8422dab4704a8579deea0d2bd8287e5c2510d832d756ff3492a233c8d193241468a06b70f0aa96b3f6f1a775b11cff
+DIST thunderbird-128.8.1esr-es-MX.xpi 759031 BLAKE2B
6377488aec6978284fbca3f713fe1a57d595045974bbe27dd22cdfee27374e2c672b67440daf9e70416691bc6975e007780a0f9d2811dfa7ae2caee496cc2385
SHA512
105a31662a9db17b4fc966355bbd90e87d24e881d0f4431664697a292dd2b7bb85edc0e4ce43b67ccc0f714e8c5a0fcc95d6869aa52f3032f385ea1155e9f48c
+DIST thunderbird-128.8.1esr-et.xpi 702583 BLAKE2B
5207b9e0cc575dda79274d3905ec0fb5ffa17813018dd4f207819b23c11b780fcd3180fdcddb393fb94f01fb25507ac558850741c5da78da9adaf2febc40d859
SHA512
9ee3ae458ea89d5512c71f700a637ab2836b36a77fd960a0555e7993c92a42b34815eaac516e6cf609bed38bc7ec4bc5e4aeefb7f71025d53ebcff9c1abd9555
+DIST thunderbird-128.8.1esr-eu.xpi 744877 BLAKE2B
4fd11ae2aa029c708df9e9caee5b3a7cb8d515dc0faaacbcde48366f8fe3429ce691ef12c13a4ce240c46c6ae7a728ea15b080b2e6596a5ba3e0ce6ef26b7324
SHA512
dd86549dfff1d7c71d29af894b3cf16c1215739597434221f2e7cfe24173e0e90a39b1b2cb021d50bf6c9ec13cfed0c550818cc65e4ec96020cdffba1d97ffce
+DIST thunderbird-128.8.1esr-fi.xpi 743157 BLAKE2B
47b1ea26c51d239ff26087c259a415940ad257d067cf3c8c0b2db9e732b8b8a252ec6e28aaf5dfd09944ec64e4853a9b711b43be6f57b7bd871862bc63bb281b
SHA512
0821a413acd30c3ba99976a4d62145c888028718b0d4e2431a53f066355fd7861fbe84a32b550dafedf48e54ac5f98d51e8025633209f05aa869f748b8a0d12d
+DIST thunderbird-128.8.1esr-fr.xpi 781732 BLAKE2B
4619a6a2101cd08e503a57bd550bf22861b16e8ecad888b617adde5083fe6ab25f64707933dcf4f5100f1fe34e919701ce6b112b5f94b145f12d981700997785
SHA512
5df0042bd5ab4a6a0cc39fd4b70030bcdf2ef5c73da6a3e8ccf42708509daf388a2270a54d559799a6b9b3b98a1da5c1491e687ff6ef446f11c2a869b6ccc859
+DIST thunderbird-128.8.1esr-fy-NL.xpi 763106 BLAKE2B
47580dcd549d12d04ce25d6afc227ae36f76bf75a777c04503e889157294533a1e5be51b5749b0a9730ce4feb48b3b0212eb2b24339edf6cb4b7db5af714b97d
SHA512
efd47591a46413ee15f8c24b41d253e666d1f0d5c85fd091efaaedd4ec9a2a9be1fb94ace90b3d38ef902ddf4e6001816f711c6ad2f730a1c2a4855b0ced4b9b
+DIST thunderbird-128.8.1esr-ga-IE.xpi 625854 BLAKE2B
d0028d2f40a78874aacc2d9cd042ae8755b63beca0a352e8a791d6fbe7a3eeddc2b98eae1bae23db61ccd91735f51c7bcec6870e57b57335f53f42b68afd49ad
SHA512
03fa5c90b8e3444d35c4a8e60675ab5fcccfe653b670884efa6ff45003203cdd3835ff2816c63172f4351ed5f93bdeab237475b6e6ebfcdaba460cafcf05153e
+DIST thunderbird-128.8.1esr-gd.xpi 733178 BLAKE2B
95453bcb9bc7aff757b7cd8f70bac067abe0e3a57de43666effce82d134e172d748e91eb77966c8fcffb9d6c337db714a0cd7e26455121e7f3fdd9a905233b1f
SHA512
eb96be4c370f9151e8041ed7f036f5946ce5592181fde353051b2a0721f1a719409df1454b39b1582ae630c0beeb81991a3940e101256971da8763879eb64e65
+DIST thunderbird-128.8.1esr-gl.xpi 745173 BLAKE2B
eeb9c6538d8ed0e325663ce3f11a6463479e3536edc70a7d73887823a7bf90401acfe804e4c3ebe8204dd58fb922bddc7e90db8848572100dddb9ba11ed9bb3e
SHA512
c80e7f53a987a825fa598f5b893742de872bb4fc4585685f83f7d35f0b3a2d417de9be85d4c21249b2a108cd77ee703f98afe09fef294c38f2c89d672a905140
+DIST thunderbird-128.8.1esr-he.xpi 706737 BLAKE2B
d25fbe5ad3e5b907b377e9d5b57932667e93fbe3b5164aeb2ade8064b0d86082260ed4f7340d187e786ec63b3fff9f4e88f83de27a3799d94d9d1bf464352296
SHA512
df1989a69de633a3d2a8781f63f6f67c46b6cedc2a4cebef177edef3fa18064c704279717e2425956dcdc59c82b002fe46ceb9e02597b6f263b40903f34842ab
+DIST thunderbird-128.8.1esr-hr.xpi 731594 BLAKE2B
2b35e6daee994ddafc8b2d8fe64229b47701b9db5f54037f8f7cf3bf3a08d57b10474b8b94d6644df44d2727004addfefa70c3118611544a21eaed6e13ad381f
SHA512
30520393d8460694201d613677165965fd6364ad41b710cf4a82028e0d9c1484ad18e5195dab65d842d0a4f4f336bef37b20084ab3caabb80547c0124741b0c8
+DIST thunderbird-128.8.1esr-hsb.xpi 791208 BLAKE2B
f56c2eb3dd28da4d7253f624778b2a88cbe61edb962805d92236e5421e377d9d98353115c12415764dc224f3425e6d608e8866cce342024cca9f43865d938200
SHA512
9b376804552bdccab493242749a2e21fa8375329ee25669dafcb137242cb8840855d89301eaea707d6e4ff83b6f5f5155cca9e0c738f2d0827d515e893c75cda
+DIST thunderbird-128.8.1esr-hu.xpi 793587 BLAKE2B
3773ea4eb2bc7789519319f4e307dc5803ca123d11b8aac4c4729e43f259f5aa4651b8b2182963fcd61478b3964afeae35fdc8894e9a25f5034dec4fee4b1736
SHA512
48111face43481e614b389f68a5acc7280d36f4b66054e7736dc047d0aeb70c36ad332796219478be63a44c496066edf3ab14d45e77f8385943eb2a45b8ddd6c
+DIST thunderbird-128.8.1esr-id.xpi 725488 BLAKE2B
956dcadb0906aa102fa557c597a5c69ecea9c7529971de6e958f35fd2bc1f8d6b463903dbca4e45c32fc788a2394ad31124f390353d76794fe3434767e8a18aa
SHA512
1327b8b2c129e4b1f0a29ac73cccc9448bb6bd40a5c598067cf8265bdd5ecca0722445fbbdd00d27d8396a789d97ecd2cb1449bab7ad20ed85715f657550eb4f
+DIST thunderbird-128.8.1esr-is.xpi 758192 BLAKE2B
066acf89b3698c0696ed148a14d034b2970e5651d891bcb8fced3ca1a90adbfac4ab66d5ff26991bf4ebbe06dceaf338a5ce5442ee6d4e64dec0dc2004ec7f8e
SHA512
48b5c3cb9941504e21fb52342bcac601330b1779a210e5761af12e3afcaa3f8e0e0c24f3aba610913ca1c7456a538e18d2593529cbccc6969c4211759d30e0d7
+DIST thunderbird-128.8.1esr-it.xpi 748988 BLAKE2B
29d60e45ea4814d0e4ce09ca36793d764ee8501758eecd87c9b9014775dbfbc4e34e3127058c4ba33d4f4b3186e7917eac7ca2f163bfa60bbba858f2b47decdb
SHA512
828b0287cbe37dae5c780abbaa0512948c6bbcb11c3ab0844cdaea4ab551ff306b1ff95e02f32bc8a2097f67f6c7b3535130bdac2ce3172f4d7d5fcb8b81be50
+DIST thunderbird-128.8.1esr-ja.xpi 820094 BLAKE2B
caf854c3089a5f6b751db2c477a092dfe1d51e6d64f811a829bfd68ea466ca9753f03786faa0c723897c584ca1f7c430d13f78bfc05d30584b8234ee2c5cb27e
SHA512
288277481cbc60aac4d3f0237cd11d2c65003494fec7c7d7320770b30845b39a5ab534f0e5530455f256dcb23249ea4e021f20ea33883b3416aa69f114f93523
+DIST thunderbird-128.8.1esr-ka.xpi 817018 BLAKE2B
124dfd3341458120d0b07c885bea5ac67aed4677df48fd4278f7ceb202359d149abdeae5f0942bf95e388a6aff4ae4737b36c924f8a30bc2008820b5a43f8112
SHA512
3d21b8ada17ba10b531c5cc0fbb32899e120dba0f1d2f2b0214a2e81eb02f06e187637052291cb75351542a6bfdeb4ec5c0aade58aa5bf3d3203956b5486dd56
+DIST thunderbird-128.8.1esr-kab.xpi 739548 BLAKE2B
ae4f33153b3ecdf257420b834546462890467ddefaaee8798b7fce37c0d0ddd722692d2d302d0a122ef548eb21333f72fe2143cb9e765342d74f1d3ce55c3c04
SHA512
0044960e4783c72daf8dfcf7e138a64efd6867372be824c0a61420449ff707bf35133d44818b775d8342e46b866cedb9e1da75b9e0ac5d5642684c2762b2e6bf
+DIST thunderbird-128.8.1esr-kk.xpi 866576 BLAKE2B
8807957621baeec3c3df6d7b3ec68ac57c311f9b7a44a0b363fa7f83b7342cf41c99b6dd3e6c41d5b1d94152062e4f263a65d9a0a0908df6d5f79a3718958f1a
SHA512
177d7fca562dd14bc1a67de9800b5ff6ff8716b214da9afc9ed4d0b3c7b9dfd114819cd2bcb8557d9754fd60c6548addc240d4091949cd338b99136e49584be7
+DIST thunderbird-128.8.1esr-ko.xpi 765495 BLAKE2B
3502ccb6c6a9be309c2fe83dec155ec3607b7c2a3e4d4b621d7075b70a52319e1900609d2ae441831642f4a8ac65ae36a6437f346ec3b3f6bc6f4b1e393f1639
SHA512
181b670750de3cad9373a2a5e1ac15d5a6548c33dbf526f118cdfa4575c16030b5b2ddd81fa8f17e6c0e3db2bf33ae70f275150b181e400a9b1e9e50754526a8
+DIST thunderbird-128.8.1esr-lt.xpi 707204 BLAKE2B
e5f5ad932f3030c0e68614fe46f6552e4fead86c9c5e9b5e6e7e3bfd6086b00320c7a455a25f4ead4f9aa6150978f67657c23e75b348a2463e4c3ccab057baff
SHA512
ab77d64180a6ce75c897500be218377fb274523781e9061fcf2512592e3676912d53725da9411b71b0a86b9c33c39c8f11517af378628152fbc554464ba5f983
+DIST thunderbird-128.8.1esr-lv.xpi 630394 BLAKE2B
e69b16af695bced231ffcb46989a32ed2e4893caf911ec9ab80f38e997e6130a2061f983b69cc8282f2b06f08aef4ed20e37af3a91e505e344c906fe4c60f0d4
SHA512
5453ca4a6ec047c501c94e830596d73eca56d559479cfe5203890585ea032f46178d9f24a75436b5ffc6610d93e035b887af0e93e76c8a6d08dc5fe7516bda6e
+DIST thunderbird-128.8.1esr-ms.xpi 596572 BLAKE2B
b3630e94057418ad3334e842e66d27699de13fb6271968bc8eb96ad413de5a9a6c4e8b865b737d98a94f231db126bee588964d9c19571cee8c6b7a687465542e
SHA512
1c5c15e8588b2c28341c7fcff60c6fa5a718ae9ed4c2461296f169ac31b43fbc794e62d395e23e1f131aa5d8e15bf6267f6de477d66bd91455f617ff576173c1
+DIST thunderbird-128.8.1esr-nb-NO.xpi 709656 BLAKE2B
64d62551000b0dcd71c4becce5d42e4702d301a212f97876b8fbe6bc09c6ef8cbcff9a91f80ae87679198488e4533bf7af306afbc9fcf95d8db96599f62b1cd9
SHA512
cdba669f48423372ab679cbcae3f384da3ab0f1bac22e882ec6b62db601dbc61a43bf54184df1bb15d5fe013d20bf467cc26e9b61108c6a82e66bd05aeeb01f3
+DIST thunderbird-128.8.1esr-nl.xpi 754405 BLAKE2B
64348b3193fcd346d864bb8b58f326a962249a5b53e9474deb1507767741959a0f69f1bb9518f65158665ea5992416f87bce9b46ecbda96a816ca23f80f71bba
SHA512
eb5b19547b568ab2b86bca00caeaa87ac80e8dcc2f605bc87d39e8c7866a25b9c6a5ab6a1b78e3a111cc808a892658563e512c91ceca2c416adb85af284b5f3c
+DIST thunderbird-128.8.1esr-nn-NO.xpi 731252 BLAKE2B
af61508948331fd24720bb13ca9b82e153f225b5d3de4e77382ada48141a23b8c8d18750f53603c776306ef23fc43692757c02033821f8a8d491cd88078845d6
SHA512
80389ae72b519b3ed5c9966a892691f31777775907550aa9de00f324c8da049299f21d1f83c16ce0787d725a511394f87c4993ee85094eb048029b47d3ff3bcb
+DIST thunderbird-128.8.1esr-pa-IN.xpi 693729 BLAKE2B
7edb6dbd72f86bba5388d4946ab794bc07dddcb26737760b42236d418ee763b4540a54043254525fb3383e5cedaf2e2d48e37532a57591e956ec257921a35656
SHA512
9fd8a0d2cf23d389f852315cced6f4903ceb14677d1cda66e793e97d33b1c161589c1a366153f10651edc7c16a61bde32ac5ad21c98a7b340b7211b00acf4271
+DIST thunderbird-128.8.1esr-pl.xpi 779285 BLAKE2B
4d3f51e0198e1b05aecd234944378d04d68950d99876161e43dec94b128739df8fd4bcca8f3aa4baff32299b1041e8336cc1301bac36873a75795d7f8064a898
SHA512
96c87cd22cdfeb57990575aa20fb6fcdba0103fbb45d9fc601263340c64b1a163f5e9544f669b091cc11f2312e81d65026a41f529f4fe7cfa14428e4c661139d
+DIST thunderbird-128.8.1esr-pt-BR.xpi 761900 BLAKE2B
0e08fc4d2e2a582e0b29f557ae15eb783f435dfe3a2ea8e3123cefe960b5feeb68331e2fa43b79d0669d983101a684d5430fa97f0acad516a504ca5fa7753449
SHA512
3af584876aff21c5f200199b54909c033bfb48abdedbb0b99fd964bbae4496b0469e4693d2efcfe2e8c9c4fc9f3506f5b5ff5b1879d82c45ae665e92963ccc9f
+DIST thunderbird-128.8.1esr-pt-PT.xpi 755777 BLAKE2B
f0b6f78f976f6c261de4d42a9c5b7a284529ee0a2e31b1107290e8fc575410f946e4c312d19d35a5e632d9add52fc68d9a3f281b6483b0e7619e0c36bd090f7f
SHA512
c90fb18a2fe683afc4fc0e5f6e320beaa5002f2a61e96b1b94f06156eadfc8caa4acab59214f0fdfbd753ad6d92a2abf1d70c36dab0b87f49bdf606c951e9545
+DIST thunderbird-128.8.1esr-rm.xpi 758943 BLAKE2B
c33f904fc2fcc2e050f24999d388919f6258bccb8c0907eba8dad9ad4b38c5757cd4732cf7e366e20ce7736967316d2ee9ea94a2a600df5b18038219838eaa77
SHA512
fee7903556f0c692aee593e4c6a1b03cb07b979101e9d8c382679fab13028ac32e8462d9de318b0f54ea12875130e05c45b2ead8bcbfd4a53e37f15ebc2b9790
+DIST thunderbird-128.8.1esr-ro.xpi 676132 BLAKE2B
52a7d7a032ad84473d4c8aef959f6e9f05f82a562c80285c7df07059ba8f1fb9bef25d9147b7a7244455ef4628a57e63486d0725bd1b47bb68eba380dee292bf
SHA512
83b0df0957c061f959c98bc931a704b3d02ab8d462759f406baffe50d27cb1098b9f47d3ed371dd8ff14d5cb137e06936889a2fd24e5ff9a4e9defe1e3837378
+DIST thunderbird-128.8.1esr-ru.xpi 883500 BLAKE2B
4f01617640e47f115c25f1946f516773f3a88a5c0a36e47f26f0a37a6c330625e74740ac8125df0674d9fe4c6bebe843e7d6838caa51533e999e1858fd06f9ad
SHA512
8607a7f488bdb26ed57cdfd5f032785d80d3be4ce0073a0cb4caa8115d26c73de8756d93b566285f50328c126c92693e0a614deef25da0f31dc871926ef6b6f1
+DIST thunderbird-128.8.1esr-sk.xpi 794970 BLAKE2B
dc853a2d56e25ce5f602c3d15040c93abc3fa51bab92a150a463b650bceae6486c54760241d2c4d151064ea7ced0d670d2931588c1875ff5aa6872cfd1baa387
SHA512
997edf44bfae414954748badeb3b9c38b262d8ee212f8ccda40630ecb307238c47030e59fec543c736075458ee50ec15dbff12302a2fed66b88540a35f146760
+DIST thunderbird-128.8.1esr-sl.xpi 757007 BLAKE2B
37fdf0f47c53e69c54ebf8fbd2614032c8aa82169c4eed02c27b72e5c1eb89bc72f7acde915cf10188afe806430542becadf4cf179e95c5a07a54c1c1ea07020
SHA512
f600c634cdeabca0280c74b143e0a19978f67de21247a0d177d914bd7f582424f80ce615c4d2536bc3cec235854b4d891553fad458b9f513e6eaba08dda2ab83
+DIST thunderbird-128.8.1esr-sq.xpi 779477 BLAKE2B
a8294d0ec0aa1c5388ed4356bbdee66f5dcdd6526691bda46958448b63132648cc1ce52cf6a3958ac6021192de10c5e62e6b85c0dcf86af88804977b2b09d2e1
SHA512
9b25921449228865b3bbf48a37232213eb3aa3408bb45a42c218e168d5f057436b0aa8e7505873072ce4f9e94d2df641ab555491caa3057b56e9a712929af584
+DIST thunderbird-128.8.1esr-sr.xpi 778040 BLAKE2B
4fce212dd10938e91a959e9a01cdb9391bef5c6a5cb48cac6b8d2759fb9c2da0a9a320831054d601f3bcb32707c01d521ca88a4a2b750e644c1ae62325de0b53
SHA512
a1dbaa69ffb00a404a81a2a04b1f369de0a384fe7eabf74e56671940adf21c7e2a8935b06b1754776f5a9590b543b34af607c515dbe6e4ee5320aeab49b68894
+DIST thunderbird-128.8.1esr-sv-SE.xpi 757658 BLAKE2B
c93ea9ea75802154fcb3e253700a6c80c16a1e2983b25761bfd6f88d4e7a3f5638692ded77bb7958dd2140d8b970bd6524919cbde7f0f00ba8db26ae5fd23475
SHA512
a9f91ddbfb6a7a4bad6f844b9411ab650bfe5eaeb860d32ca1a6646037dee2836941a75a5b1da342eda8408db4447897e58ce9a775331d9bdd939844c03cc3f5
+DIST thunderbird-128.8.1esr-th.xpi 825083 BLAKE2B
f73ee42175dcfe270a4e83a3fed917d88148be265cc46c3a5c1545380620819c8bb94445fff3f8d8b0ed97fdb577df5d8d06d9cd5b86164aadc449d46558f13d
SHA512
e89513e70f868290cafaf988d92b71e3a31a1de780884015f7a2fd68917d33e38fbad5412048af35fb782942d7bddcc6cd498627fefe3dfbdec51f038024e827
+DIST thunderbird-128.8.1esr-tr.xpi 768116 BLAKE2B
0a2d0562073a425d63389abdd64c60a13697769b7a7e91d47885ceeb87010a93f2b44fe15a06b22c1efeeb2b88529ac399860dd15910a91aaedb86e1e373506d
SHA512
6d8cfb00f98c54a5cac58a2ad8559b36d6820fdae421e6d97b69874c51010186d2538f28fa0bb0131602b2c04ac94c56645aabd421f2b3a339f8f1d4157a4f8b
+DIST thunderbird-128.8.1esr-uk.xpi 873923 BLAKE2B
17c4247be9d0bf82ae0730194e0727dbfdb8bf28fc64fdad1b6f71b06cea9d3c2a508f78edf5a81e0b349d20980c8a87ae71c9a737288f0dd9ab9591ff6fd7b7
SHA512
8fb061cc6feb8f847109446807ae45513977ec2ea13151aad1ded3703bf855aaaf9af1a88ab9344ea1e33bb100e32e80d60170cd3ae5af475327aa36063a707f
+DIST thunderbird-128.8.1esr-uz.xpi 600291 BLAKE2B
db66f5affa0cf5817b4961d230152232f6a24db7e6cd083456bc4e09685b3457dd3753040b43c66cd90cd8bad85771dbd1597fb0d2c6a55ec6453ad4e81e1f18
SHA512
5840ae6304bf1bf3d068808e0c23d06f148667cbf6dc66c0caf920084bf99bded1e2134b6f0eb4728c6dd9c9300db2444ce3d637c8ccd86bdc33b142822515eb
+DIST thunderbird-128.8.1esr-vi.xpi 797500 BLAKE2B
32c3d9530b2e43e2785dea0c8a93b55f766537819c2b4b2620f76e2e668457362d8c6ea679a387679a4c846dc09b7c2309b6f5f45acecc7f68bc9c643596cb51
SHA512
3111d9dbf7107623b70b053d057fb2e3d779e3dc3b83299a4769382514497f0bebdcf8572ed828d6e61f43c3f0fa1eea3915f502bf8faa123bace32605d08a12
+DIST thunderbird-128.8.1esr-zh-CN.xpi 796657 BLAKE2B
c450d5f85f798385d251c92cfdebe01f9ba7bcb32400108093d80b1f785018d26e2b1624c2a255b19440ee0c2504d167d58f5690c1df02bea73d12f6aa7178e8
SHA512
dc865d7dd0116150c6f9b0773538b7df469daad96924259fa2db78deb93a4999cc1f83c5d8d21ae09a84d75be16533760eb158f97466e07ab28bddca2f070921
+DIST thunderbird-128.8.1esr-zh-TW.xpi 800397 BLAKE2B
f56d82a7082c25f1b80ca98ba773d88aca9b6e725d70eb47a2b9d93f1f073da5b8f52a67c93bcd3ee893c66ab8dab916d8c75494939739755bdd28781113aebb
SHA512
aed9588947e7ef97526c58b74917e98c362409610ca45ed4aead213e79d3626e27182687e8c03408b0eb95e7c007af0a63d729e2fe4eec59ba7962fd3ea90dfd
+DIST thunderbird-128.8.1esr.source.tar.xz 676209488 BLAKE2B
df007e541266b2e5e95fa663b220ca6203ede35f75fe5b6b8f7187466d9b923ebf8386f465b3188bf1cb9e7d05533030e2f5ac1543550575cb30af980b6fb61d
SHA512
f1ef0a665f2cef49b427cbfb4a3548df0cccf4470c03367cdb3d2729d4f6bbf25056c378ffa9e1184b6687332998d12ff9ba251b97b7ca859d9d43be9d7414ba
DIST thunderbird-136.0-af.xpi 315237 BLAKE2B
38c380818291313eb232db7840994d66897673181cc7d86b7dd223345d045f8a5fd46157be92a39ad113f1ceafcb449930e8fad3e15a82d7ff413fccc86fbaa9
SHA512
a19f7361376ec99a1ad0c31372f1dd9aa4ead954666c2d9ce21a9ee7542ccaf52e57274a777b9be29a335b9fafb68c92d695cd5bf802222fe01f1d64aa9f024c
DIST thunderbird-136.0-ar.xpi 430240 BLAKE2B
123843dab3332af07ad41966d561f1104cc540a172e9a1cfda4c799479139edd510306f839bbc024d4a3e71889ebf57179ea73865f943bcad091cdd3221f36e9
SHA512
232bb40b11b302f9f8fabd1e47fdf2746ace3e5df710b547e3dfc45ab40426720e5a5f9ebfa70c0074b2208d9830e14477db1c9ff6e434f4f9d9d50278140c8a
DIST thunderbird-136.0-ast.xpi 340880 BLAKE2B
43dac2dd4a52e17656fa33497f38cb4850c88593a5ae9008e5131807ebc41e8f6990aebe7238e209c49d1afab78111e62332985ef4b3185fb180c9c3b69bd6ad
SHA512
0bf29c38fbd54b6643257e8e651ae7039ff72504a2dca34923b645edb4524ca54dec8b176cc0efe5353e12ff1234747fcc5208baeb250d5046065de8c8d16156
diff --git a/mail-client/thunderbird/thunderbird-128.8.1.ebuild
b/mail-client/thunderbird/thunderbird-128.8.1.ebuild
new file mode 100644
index 000000000000..c737cf50b0a6
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-128.8.1.ebuild
@@ -0,0 +1,1171 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-128esr-patches-09.tar.xz"
+
+LLVM_COMPAT=( 18 19 )
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+RUST_MIN_VER="1.77.1"
+RUST_NEEDS_LLVM=1
+
+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 rust toolchain-funcs virtualx xdg
+
+DESCRIPTION="Thunderbird Mail Client"
+HOMEPAGE="https://www.thunderbird.net/"
+
+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[@]}"
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ SLOT="0/esr"
+else
+ SLOT="0/stable"
+fi
+
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+IUSE="+clang +dbus debug eme-free hardened hwaccel jack libproxy 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 )
+ 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 '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ clang? (
+ llvm-core/lld:${LLVM_SLOT}
+ pgo? (
llvm-runtimes/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
+ 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
+ )"
+
+llvm_check_deps() {
+ if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
+ einfo "llvm-core/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 "llvm-core/lld:${LLVM_SLOT}" ; then
+ einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot
use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+
+ if use pgo ; then
+ if ! has_version -b
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+ einfo
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
+ einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ 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 debug ; then
+ CHECKREQS_DISK_BUILD="14300M"
+ elif tc-is-lto ; then
+ CHECKREQS_DISK_BUILD="10600M"
+ else
+ CHECKREQS_DISK_BUILD="6800M"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_setup() {
+
+ # Get LTO from environment; export after this phase for use in
src_configure (etc)
+ use_lto=no
+
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+
+ if tc-is-lto; then
+ use_lto=yes
+ # LTO is handled via configure
+ filter-lto
+ fi
+
+ if use pgo ; then
+ if ! has userpriv ${FEATURES} ; then
+ eerror "Building ${PN} with USE=pgo and
FEATURES=-userpriv is not supported!"
+ fi
+ fi
+
+ if [[ ${use_lto} = yes ]] ; then
+ # -Werror=lto-type-mismatch -Werror=odr are going to
fail with GCC,
+ # bmo#1516758, bgo#942288
+ filter-flags -Werror=lto-type-mismatch -Werror=odr
+ fi
+
+ if use pgo || use debug ; then
+ CHECKREQS_DISK_BUILD="14300M"
+ elif [[ ${use_lto} == "yes" ]] ; then
+ CHECKREQS_DISK_BUILD="10600M"
+ else
+ CHECKREQS_DISK_BUILD="6800M"
+ fi
+
+ check-reqs_pkg_setup
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+ 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
+
+ export use_lto
+}
+
+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} == "yes" ]]; 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"
+ elif use arm64 ; then
+ export RUST_TARGET="aarch64-unknown-linux-musl"
+ elif use ppc64 ; then
+ export RUST_TARGET="powerpc64le-unknown-linux-musl"
+ elif use riscv ; then
+ # We can pretty safely rule out any 32-bit riscvs, but
64-bit riscvs also have tons of
+ # different ABIs available.
riscv64gc-unknown-linux-musl seems to be the best working
+ # guess right now though.
+ elog "riscv detected, forcing a riscv64 target for now."
+ export RUST_TARGET="riscv64gc-unknown-linux-musl"
+ else
+ die "Unknown musl chost, please post a new bug with
your rustc -vV along with emerge --info"
+ 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-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-ffi \
+ --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 '' --enable-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, since it's not activated
automatically via "known arches" list.
+ # Update 128.1.0: Disable jit on riscv (this line can be blanked to
disable by default),
+ # bgo#937867.
+ use riscv && mozconfig_add_options_ac 'Disable JIT for RISC-V 64'
--disable-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
+
+ if [[ ${use_lto} == "yes" ]] ; 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
+
+ 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
+
+ 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
+
+ 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"
+
+ # 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 [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; 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 llvm-core/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 exec_command="${PN}"
+ local icon="${PN}"
+ local use_wayland="false"
+
+ if [[ -n ${MOZ_ESR} ]] ; then
+ local desktop_filename="${PN}-esr.desktop"
+ else
+ local desktop_filename="${PN}.desktop"
+ fi
+
+ 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:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" || die
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ 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
+}