summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoonas Niilola <juippis@gentoo.org>2024-11-07 14:47:51 +0200
committerJoonas Niilola <juippis@gentoo.org>2024-11-07 14:47:51 +0200
commit75a09fda445317e9fffd797de4326e7a445ada54 (patch)
tree900e4c74a0975a3e205a46b9fbd648233bacadb1
parentsci-electronics/kicad-meta: add 8.0.6 (diff)
downloadgentoo-75a09fda445317e9fffd797de4326e7a445ada54.tar.gz
gentoo-75a09fda445317e9fffd797de4326e7a445ada54.tar.bz2
gentoo-75a09fda445317e9fffd797de4326e7a445ada54.zip
mail-client/thunderbird: add 128.4.2
- include gcc-15 swgl patches from upstream. Closes: https://bugs.gentoo.org/942554 Signed-off-by: Joonas Niilola <juippis@gentoo.org>
-rw-r--r--mail-client/thunderbird/Manifest66
-rw-r--r--mail-client/thunderbird/thunderbird-128.4.2.ebuild1162
2 files changed, 1228 insertions, 0 deletions
diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index d2f669dc638c..82635c9dacd3 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -1,5 +1,6 @@
DIST firefox-128esr-patches-03.tar.xz 14156 BLAKE2B 9a618f0ddb8596b740893dc9113f374d193a00e4e8e76dbb2794928ceaafc7b5309cb6f69f6287ae1e423f0be0a060580b0d9d59307c9889362dd17fb7d31d3d SHA512 c6ec7233b368fac623ec0cce6f5c37d358a0fa5bb2154dc67eebb50968376ca9d46f3a734f5d79a4aa4edde9e300a9c65315d0e499aa6a1325b6c76a6c164258
DIST firefox-128esr-patches-04.tar.xz 14416 BLAKE2B 0ffe3fd568480e37fe28fe71d5304e51028dcb8cb2d5fc1d838d725bdd36971696d7152c37bd90f7802c75e696aef0b1b075d386a906b40635f25083a6a58239 SHA512 adbac956dc2d6c1c29fb6641a42096bfd033a662f69e177f8d75a928f46d30fbc811e8a9ca24de8c7eb675ee80f6c1187f1a13dbca8e75782abfd54e276f5854
+DIST firefox-128esr-patches-05.tar.xz 16868 BLAKE2B 4a170f0badd9bb3b0411005e6916002b54f1f66e2088d316cb8532f53b3b1ba33ae02d32bf0b7c7605bd65f098cf5d4651d9f8b59a4023e562fa0ac15f93f242 SHA512 7847cad2ba3bde5ec17fdc404c1c872b3e4ad9658895de9fdee12e20ff9d27cae2ff56a7e1142c6a727cee49420fe6f3550c9b999ef94bf6f07562f5489c89ff
DIST thunderbird-128.3.1esr-af.xpi 530350 BLAKE2B 579853b1d476b123c34b6207dc2e35f994bb3638773d656f98dccf3dddb4888785b883dde93c6d22b3cf47aa6d058b9446ac2d051e2b748f0730ef9886bdad44 SHA512 94fc0d5210f0cb39fb4e7c8b97b467c6a8cb6d6fbebf813cec3c59c9b485bc343f04f47c7ce8c85debae1d75c9fed4c6bf0b79ea901014b401ecfa947627e602
DIST thunderbird-128.3.1esr-ar.xpi 679867 BLAKE2B 0643cd7085e093ccc2a381d1a1d71782942dc900e4451805773725731964d1b9ec981f5f7c6912759e22a2955e5a9d0acca71b5b8c54e262cf3d9b5b105b76ee SHA512 51ddb27f1411b867ab83c0dc92449a223a4fc5597fa1041f7a477859cb149f128ae0d7a5d25b178bb5b15a6384145eb9a20a5b60945778d11ca6db3280508c2d
DIST thunderbird-128.3.1esr-ast.xpi 561054 BLAKE2B 932789c16556c4503ecda989c5a3bdcd052626f1cebefc11e50e22a04581f052785badef76d03b6a51bd1e73a62b92c2697604baae77fc04c2ec472c207d1dab SHA512 6c7b68f2ed1e346c294890868710b8ed60226df6f147aa78a1a5ce28b5bccd20456d85bca59d02917bf954ea4eee10d1a9b1265e1cd773c99959661f0b9ef39f
@@ -195,3 +196,68 @@ DIST thunderbird-128.4.0esr-vi.xpi 790930 BLAKE2B 6b45127d272323d59c3f04de6c3080
DIST thunderbird-128.4.0esr-zh-CN.xpi 790746 BLAKE2B b293fb0bf8fa031b45bb48e899248ccc9b84d7fcc7eafc28af9e8dc9e0d3199cf250acbae3190fc67d04b2a35aa0d8e796acdf307e980ba566842a42b91baa5f SHA512 d79d8b66ae50e574b68a4a9fc8f726de2d8e15482a98a8427b8498572d01ca356c46704b06b73282dbf9ac8593395ee93bac41ac69986b8c6140d8b3dc74cfb8
DIST thunderbird-128.4.0esr-zh-TW.xpi 794101 BLAKE2B f11327c121c0f6572dc9a9731b00531a0e7a344e35bf3a8dc81f1005305225bc3208a9bdbc521f584c0136b5f644309edee79fde3206ceabe041f40cdfcd4614 SHA512 0fef1e5baf436705c1273f915e1beda9593e64d4bde61419159796c9372e9b8c0b879754734e926b5a5a1a4c5060d695348722041700bedeef78684513767e48
DIST thunderbird-128.4.0esr.source.tar.xz 672888608 BLAKE2B 5a68ae19ca8d63ccb3489cd52d5b35f6409d94d4c9df7d164cb58d70ca720e2bf331506f44ff8611304d4e963e6b13245d04fb614a0c8e1a7180c99d56300c30 SHA512 ad031b3a9b738598358cead23cf8438435016222cd9a474c31892dc1b3db43d2d5d3a10c9639df770dc76eb3c0bc9db8be8beab84828d54ee50fc1e03f0da0a5
+DIST thunderbird-128.4.2esr-af.xpi 530350 BLAKE2B 7fdd80b97f6f1895e6982f7bc4372378e7d3cfa0f23c6177a633d45f2fbc0cd7dcbe5b4e5808ac6d86d97b23129a36540f09679be90f8f100e0fcbb7194b5844 SHA512 4f09e6fbea7d3bf16ad347f61d625b185de3f9db79cbd3b9a76998b39496cb20e4ce5d637f43c2a16dcc7589d70e07ff71ff7dfd65a617fc2530c4f6c0ffd562
+DIST thunderbird-128.4.2esr-ar.xpi 686480 BLAKE2B d399a821141cebea5f105b3704276865c33af8bde734b6a3d41555cd0c8bc1c7c2202c02076d7ee0d9a8e3dfa1d04a6bf638e53633f69cbe0c9692229ec1cc2a SHA512 be07ae8e01ced8974d955d7e25719a4eb577bd4d0bc0160754c3aee23b35d56c878909f29827ec3688f399b5d0b972a6c97b53bd11e689406192ee675b73bf65
+DIST thunderbird-128.4.2esr-ast.xpi 561055 BLAKE2B 699e7fd2d8c774ab34898146e552771feb9863b6e89443dcf73c0f4173611210feaa18becfa274af5706e781dacfd1e44409866aa04c62ff43df4db9f9c35d52 SHA512 949996352b4432ccd64c43cd5bf03b4a618dbe2e82d3ececdff053bf83fdaf7fbc2d28be2c42283ea29a19dd0e458b3e045a9d88e71ebf66e0cf30eff83ff55f
+DIST thunderbird-128.4.2esr-be.xpi 769118 BLAKE2B 18d8702415cc7689d675b933feeec3e0e928c0086705c76f9b1e400eefe6231dfa1620249de5a4f1948998cc829f5414c89fc67ca6e76dd219d5c18562713292 SHA512 32f61adaec97e5808bc4e0be0d576416fd19e808e3c7cb50e69dae99faaf0124076d81a5f4cf116ebc8eee62f8b6a47d7ae40b5a3f976e9e3ebb48294d81e109
+DIST thunderbird-128.4.2esr-bg.xpi 811601 BLAKE2B 4d6ff2f0ad775d0cad1bb70e895ff253c70242da17733bd83bae627d67667cea850a26893cf6950c385d3dadb823c98a405bf10c54897d2aa7b3b34f7f53d125 SHA512 6815668be24c3429ff3f399303e43b5355069c3766161445c1708429c856f00ef603ec2da1c57cb83b964725441ec6a72eb3a30da0cb36f1bcf400c900848c2a
+DIST thunderbird-128.4.2esr-br.xpi 654632 BLAKE2B 224093914aa8a7e5e731aab8a55b3b3b478cc2b532d881317749a63cee75638114b376994b9c3c09a310fb1750872bcb8fe4a961217b1708f77b7eb767dee04d SHA512 aebd1f1635424fb43bd97afbaf0944d677f189291d5bbe9c81052d1082808de1a255fd9a2ef362fa2eb2e0f8db41d6463a756c1dae4d946896dd0954e406fdd2
+DIST thunderbird-128.4.2esr-ca.xpi 709852 BLAKE2B 2a6b17c7ed46fb075ead01a324de86cf72bea73e58b77186241571975f18d6697a59a28046d1d728aebbb2ce406d01383badd5b5ba85b260ed114c135f6fbeb4 SHA512 715761a2ad3b9523f021ab329499369414e6456af0c6a15844b54be87be5b6351c03fce2e7714c700bb2d3cc9f1f238cd904e1b8b29a06776da08cf0c2aa312f
+DIST thunderbird-128.4.2esr-cak.xpi 671703 BLAKE2B a06dae5bd1738eeb2f8853e121f93091a2c09ea8c1bfa9d9f1bed8d1e6d4df48df382559b3f3515e9e0850344c84b986696640aa8488bb29e4c163ea9ab71a53 SHA512 d1297fc132b0035ebc11270cda4cab2d197520da0df072fda1475d431a3673e44d8e9e36b7a0b59c121e7ee26978953908c456b189d3597d1ff5fccf4c291f44
+DIST thunderbird-128.4.2esr-cs.xpi 788816 BLAKE2B ddf1c785d42a3a05033324eb8d461e9f9f42b13ced7bdfa286d74afd767061c98e56b2a55739d1d9333408e60dc8010fa4c84442a6c7838ed7dfa559f110a7b6 SHA512 110699446d3d08d185c311bfa498c32d0fcdc13aeb784390286ce4d05695bf6aa39749e65a50db3595b5ba9ea3b379426b52404f6be3550ae88abc9baa97b498
+DIST thunderbird-128.4.2esr-cy.xpi 753453 BLAKE2B 356f7e859a61a244d187fa5b7dd0a8814976189dff77839d4982599963890785a65a75b2cca3179de59b1f14cda7511f70d677af801ddb31590e9497db600791 SHA512 867ed6ffd3e23953b756b8a78cb78649414dcd98f9e3d590105b57fe08f77d591f05a8bcb1ce1ff5915eb694793cfdb4fa0d457da18af7f39c51b85073937377
+DIST thunderbird-128.4.2esr-da.xpi 737122 BLAKE2B 922016e52284386873d3f4411a3838386d4ec3eb1cc04d5af2f2e2d4898cb07649568125fd4f192deaef82de17a342d40a73701dd9a9bd70e9d7c6a734ba4ec8 SHA512 aa32e002f46d9e3165c96725626e2e91b9b7e9af7c9fe820268e264d3591f95de67639b0f359559a6137b973839090516620a86ca4796fbc97fe82299fcdd948
+DIST thunderbird-128.4.2esr-de.xpi 771022 BLAKE2B e851128239262db57a6df56911d45b003dff1a48dd8e98ab0cd4a093703405dcaf9067ed25897e7a27537eb6274282e22a2eea5e50f4e205b5e099e635408e25 SHA512 f1c0c4c3aa556ca506d43dabe8f51b1375f3173df2b72b37cc00afee617d2033879112d9d2f752b75c4a02e0775c57919ca32c298ad4d09bac7c58326e09c849
+DIST thunderbird-128.4.2esr-dsb.xpi 787771 BLAKE2B 5e89dfca5abd702ecde35cd564d6df6f71efd3b0ed6d6033035e34869c0234c7676ac4d7c729efa2159a7c4cb9431052372c17f65df43f68294f1984e092931f SHA512 fe891f9df0e2e2e125cc3213c1400380febd0b8294252e2e88ba1957df2133e94f87c16eddba4ace965f92d0f23cf5f745304b74d24fa11e8fa67e3db7fe37fb
+DIST thunderbird-128.4.2esr-el.xpi 894339 BLAKE2B fbbeb09bd478fcd08cadc2d262cabede232d27b5175a049fac5143f972e1d5456e19c8552b0ef66d55c459ae8bf1486840c504dcc1303b3f1dd42ba0d52244ec SHA512 ff8550f535664a37bc7d772eb208266bb0a4df5d16b6627bc7565be447da5a18283601b208c043149879f5c0d8b3fae59956bf963489682aa056377a6067a2c6
+DIST thunderbird-128.4.2esr-en-CA.xpi 704737 BLAKE2B 28210334e4c183301ceb93f26343e4ef77705ee345061c0b159eac9f837abb0d98e363c124641077b9216383982bcf6083c85c3969c33e01a831a83d7f50f5dc SHA512 e12caa0f6814de1bc24aef80c984f5ca59b57bf1355e9ecbd8983459994bae5477b2cf0cb335685c735529da44ee0c576a1e22938adeb8006a93c395ea982f68
+DIST thunderbird-128.4.2esr-en-GB.xpi 706803 BLAKE2B 638aa2e2b2dc5479dcea349f4a5b093413ea73a106c408ca418eebc7ae28446f9108b861ecaee6bc1bd3bb19384b01efa749c6156beaa46112d914920e02045f SHA512 e8d110be96533810e8804b3df010aa6e5aff380247b1c048919492930506f4e4d63d17642fab38f5dba7d011bb16be8a520639ce1499795f89d6d4d30b172525
+DIST thunderbird-128.4.2esr-es-AR.xpi 762698 BLAKE2B 71c0af91336a9a387073bc24254fb04e37dd1b7c129324210e232695144eaa024b75e5a0c3f65a51b57f06d33d0ae345ae5c62f719aa5ebbabe5d1957ccb225c SHA512 c03e69244a27374b149f63498dfc6707b20536c8ae163a70f3fc7d56892680bc9766f2f071af0da703d071f98160bcaa4cf6d5617235df442f62c8d64035031b
+DIST thunderbird-128.4.2esr-es-ES.xpi 729373 BLAKE2B 89cdfdecbe646c820859578e9596def98747cb7cdfeacc852c093a0844b063f508db83f238f302a52e2af95ddb2461e39d0a81bce39b7403931df33a2033ccdb SHA512 4a1e2ffb4a78d3484b20281ffca49a8531cde57fea17d38a84dc51adab0203d3ecffdffd3badb1aab6da675ea7250f49f6d45cc03b65193a90fe717904fc270e
+DIST thunderbird-128.4.2esr-es-MX.xpi 748411 BLAKE2B 1ffbfb1c4d1c98c7aa369b51b81bf707078d0abe296b16c6c75e464c764c2b26557449456fbefe78e809b1f06a888626064800dd8317479cf74b70b902406a80 SHA512 07ffe235ec79f4f124747255025354bad2ba6ca975d7cddd775fbf9b91e6fa07541f60ace4b05b6f0b5e241d53f5bd9b24b20b02ec2d4bd3e47f1927aa377ebf
+DIST thunderbird-128.4.2esr-et.xpi 696281 BLAKE2B 72d1fa9c998628b966512d09be3465e816296e46bffb360063d0eca7b3c3c4817e1a983b6650146ffe08b82e86d9201dae01b6c51e2741733289d78b885bd6a0 SHA512 b2a3d6b28bcdb72d25a3efd6ce44420515c7dc503fd0cd43f123f04720ea3de5f7e70c2518705d95c167b7452d06673e127d80d334086967c28ffa36a0e56cae
+DIST thunderbird-128.4.2esr-eu.xpi 734389 BLAKE2B 742c881aadeec025b305f90d3c0dd82f6aa4ac83ee1a78752d15b1ed37364b5123e3b58caeb6f7807e24e08764a9cfcbd1d0c55d7f8d7cae7ae9894877a2ac7b SHA512 0a42503d9e6b27001e2bcc27648231c80c3d1107883c4108a4ba0f0f3e51b083a0af72097d70fdf5c243c5eb5aaf522fad316316c4a1d5387d9a35b588a22889
+DIST thunderbird-128.4.2esr-fi.xpi 738609 BLAKE2B 26414f4f2ea454bfd763669f71f0da969332ccede6704a5e3626602a97a93f4cc4e2dc21d68abb3aa4584f21b7847193de86df370afdda7d8ed28da821681682 SHA512 3d3a2789dfca3c1c34d57b3e7bfe27ea80b8ad3727f23d5184b8daf2eb698d90d7a2721949e478aea37fac82dc7a7cd866c04c17541d6c10ed4031ba2f6d94e6
+DIST thunderbird-128.4.2esr-fr.xpi 775787 BLAKE2B d2c68d08d11c409f6423f9445a63cd01337686ed057ae608125060fb3af10bb93388d1ec8c17f65a0858b072bc5f359c46ad634722ad81929e576c18196e029a SHA512 86fafb8728c08f31a3b1ee5860beedfb5e9124ef51fe8e95e9818a71246e1e69edabe096c20cd06f307ebeda1fb4fafd2dbc55ab841f7f9054995947363b1dec
+DIST thunderbird-128.4.2esr-fy-NL.xpi 755944 BLAKE2B ab0bd05b7757f16c3126406b40989c726f8ee184eb042278bf9db1cc3b1ec860c8bf3b3a73b884c3a0cdf8697161b59976550101d48649c873b73c3470b19090 SHA512 aa19214c0df58cd13fd104089e94a0db80c24eae93c95c82b8ec317a6a9a7d79c3870d989a17d6828519e82564a5407371ea9df49c4b8d2845287c7e62f91c11
+DIST thunderbird-128.4.2esr-ga-IE.xpi 615879 BLAKE2B f9cdb0c630d849facab932e4720606e3640b9efcbd456a8d0a5029b6d125759fff25f647c6f9344bbac82def8b160143d44c3063096107ea94cf9435a4462558 SHA512 2f933afc8b9fc849992cceef63c579c49f1c459eeee4bc23b65d71d952de253edcd4f1803aad5d0d75cebf17696199b79d75b0c1eced1de92a86bebea3dda159
+DIST thunderbird-128.4.2esr-gd.xpi 728646 BLAKE2B 8c86837b714ed5c827f080ddc84ff454367048589d46bd4e28da76c4c5da0de9b6a6813d4a41aad160c979e81cf05b2be7afab7398e2d820c14839e75e4a8a2b SHA512 d90ec2ea866d76dc05a525b9e8f9d4275fa2d2b05de4147b4d1f9013558c9822e7b267d850e5e6d81b4fde5c3bffe8f1277a404a94ee4a50676e6acc52029ebf
+DIST thunderbird-128.4.2esr-gl.xpi 741681 BLAKE2B 3fc21b8c5d40d12915bd89f5ca2981f0a5e24b71d7107fcc09eb8fd24187952fd87dfa6e90eb4d4d7fc07bfb52db6936affdc1ade66f4ca0ee1141b0f1d965e9 SHA512 3863f3b8cdb7c3c7294ae8eff8023f30b3bf6c0e37388974f76e6bc064744e19349603fc913cef52961f52cd4d9931faacce7faf5fe302c2709ad03d40bbfbda
+DIST thunderbird-128.4.2esr-he.xpi 700948 BLAKE2B da105324d7d67b3e21641e76ca121bfd3d67a0f6c9af4b06adc945068773ae5faddd4cbe87eacfc5a8b2a249c3cc55b1e0ed674c9439da331c0907c75272c0ad SHA512 939491b22a940f5e2fd39153e72b0e83ea43c0cb7725889fdc48033d493acf70b6155a840fec47c3524cde67d8de4b30b232f9f1a28db6cca7a590f8ddc1b95f
+DIST thunderbird-128.4.2esr-hr.xpi 719845 BLAKE2B abe252380057f7c090e8a9e1011c81e209f322e3d831f2088b880d620338e5fa35256f3031f912080bd275e2182b13d604572003e10c925240f0ada06e638f14 SHA512 be2b4a036f25dff639f15c2cff69f7e850a17535844859df2f162736a016b3ed69e4d7353e8a49a534f6497300dd2c49bbb3239ac224a98e2dbfed3e26bc0c47
+DIST thunderbird-128.4.2esr-hsb.xpi 785171 BLAKE2B 158bb80178b5e9245a4a2d59a918469463f671391873fa767d4f133b455790bea9e58b1cba751b6e1d07be81d63934df5ffe61c3b9add8f0ce91b2a66247af24 SHA512 6d1356c6a0cb0c23b7b5fa74f9b4c3cf46ed9ce5d9162289972ce779cd43f16fd1f36a9bc1a0600a1b31ceaa6ac2d76b3e88e1bdb05aeb34794fdd764986ba2c
+DIST thunderbird-128.4.2esr-hu.xpi 787991 BLAKE2B 9c85e8a325620631966b57fd2eae5d1898d21cb5fc82a887c5151aa88b6901ba80bcefb4fc69cfeec7f87a81b735cf66582d07cf7b2df845f9e0e3f323c555f3 SHA512 957095e9362ff2515379a6360b07ea7441f0b93c20f4fe6233c8a77546ed60317051ebbbe8f576f64709c164eb17942945ac33522ff7c9d4382a7f6c313d5143
+DIST thunderbird-128.4.2esr-id.xpi 666010 BLAKE2B d768d530a5f58a2b4bdc98737087b99bbe3da9595aaa0ab1affe74e014699ec29839c9aa2b296d2e3aca605df0fe48dda28cadd167244de2dd1f23a74c5cf267 SHA512 73bec7b629aba68333cafa26c45c21cca0ce34bee7b0343dc5b4bc3795ef519daaf1a098b9c249f702126236f98a93e3f871cae8d2b9d383bb4455ffcf462fb0
+DIST thunderbird-128.4.2esr-is.xpi 747033 BLAKE2B ce60aa623af12f1769a02687eee77edb7f5cd5a739d16f3805ab668e9dfd5b2b1be99eb2b6e31c94bf8d2b57b6b7c947a5829ee90e3b77310c814687bcd8f5b2 SHA512 7c68d754b37dfb5f1eba2a2f0f1810ff1a0406de7f4fa935a38ac0d19147b75c224df30fc5d6fd737ae00b7ca20ffa1f7cb3fba7bcbf697141bf16d994c9309e
+DIST thunderbird-128.4.2esr-it.xpi 694514 BLAKE2B 4448cca9cb4a3f4420012a8de10323c95337d6e06a145f472c8c6e329c3f59f8da5cdf500f1dc206da065b56a89730dcff717de1891f9919870ef569976d92e2 SHA512 4d33d263d0da6c4a56b0d8f81ccdbaa92ace3ab9d73cefa83ac359c93476f03c3c3c076e21735931e44c928e1f6e55b49841816c27087e9ccc533952c367ebbb
+DIST thunderbird-128.4.2esr-ja.xpi 824168 BLAKE2B cde25e5e77a40f5db438d115be1d6b67d7911ccbb69d45e4c79c74acb30102f9f45ea85915654083590d16505b5a76b723ee5e4ae61e32662c3f50435892d9e7 SHA512 9152b687fdb82c2aca1ab036b88dc388a99a3a3cb0185e67dfcea5a4a78aa06b1c0fa629b66298fcfc4d401af633928ae3b92c535688eb205ed1600b6d8aa863
+DIST thunderbird-128.4.2esr-ka.xpi 796221 BLAKE2B 703c2e24b4f9fa7d97d76d0f629761011be06cd3464b97433ebed3917062d6f734420ad4f18ee188ed55692fae12ef53cee2cb8873312ed6543f67a5ea1fc425 SHA512 c9ffbc6dfdf6100a1c5102ec6ebe08e12d9d01f2c5e282c8b0205dea69ffc62525066678ac7c41b218c18a651cba2aef5b8ace5c549295cddd1b336df65f8fdf
+DIST thunderbird-128.4.2esr-kab.xpi 733901 BLAKE2B dcf8d34074af35c34a74cfcedced983513125ee2d7bf68324f09e65062b758a4d5a82b12f3dedeba2566ec467124c197e1e7dcfd48570247251a6d67f5981f52 SHA512 305f94752ae0c67a2957813c11b3d3fdd47ae85609042347932a6303cd9a49aaa9cbcde11fefbb8262e554f92220f741239cfc5fc48ac27012e147677acea88a
+DIST thunderbird-128.4.2esr-kk.xpi 860677 BLAKE2B 9ef9403ca09cfa182667857015508ed6a35bcff0e807b6d1cb0e883ac980f562d0fcf235097bbe92bd8293abfc5ceb3ae9bf1ad450705d066f8cde0d46a67576 SHA512 f9b01294fcc5638ab8e03b4d348b600152b4f51d98f46397a73c1a947579eeea4c3a68f15ec7f52f3b23242ab6b0059f645beb35712c2c2c55faccb3fea7dba9
+DIST thunderbird-128.4.2esr-ko.xpi 756769 BLAKE2B 2b51ad7fefb3243745b763254cec8b6652734fb71697203e577608fce4f8468b862d24549a19fc1fa7a28b68a899fc47741f58b418facd8d0812d485d524f9e2 SHA512 204865d747185ffc84e2b35b9d8356d26923bdc396f935947c19b575fd114613f7c80efe84edb98e850b70ff1474e9580b9af6f5742489d8b5eec981b4b41b06
+DIST thunderbird-128.4.2esr-lt.xpi 700919 BLAKE2B ce5268bf99d8e67bf8b4ad48d2862f33a1103cfbeb4ad82b08d2e01a6d28e646671c42327bfb4511de5cb868bf75431cc30ee3565cbc3558bbfa0d947d4f113d SHA512 7509698b15020f2996012558fd339410e693bd324346bbc5f8a15171ec8e7fd64a174457e2e57df249dff51efbb4f352ab1b518268d31adae66b6b53d4a79a40
+DIST thunderbird-128.4.2esr-lv.xpi 625982 BLAKE2B d9d8e70d0aaadbcb24b79a6c9273e7581e090146acf54b98c8b998c5556962e3ab821dbeddb712f3334e11c8c3baa910aa7732f34192c8f0739e235e32714337 SHA512 2998fbc7531933d2a31e8297515564c0f917c50d65790f54ba226d0fb5b5b319d941014aedcbca158f43701b8357c91fd7a4ff0d3043ee8d200e79f3312ee5d8
+DIST thunderbird-128.4.2esr-ms.xpi 581082 BLAKE2B ced0303d2de57e73c858b4a2dc349ec7bafceaaa7f96ebc56d48c91a42f4ac6d87b04a9a9a9160ed565b4bd07ab4faf2a3669ea5c14a7430fa4b62ad89e65541 SHA512 9f03d6e6beb93b128fbdf0305d67390e9471a2b4112b1631aff068b802ad5c10c93a52f561f10a801881cf693042ea9c5a4938adf5e2debe049fa4f2ff18de13
+DIST thunderbird-128.4.2esr-nb-NO.xpi 706104 BLAKE2B d86e3e77dd49528f65384365a9d6033f44455d104a1db3877c7189de407c4832698fe099aff91b19d151811a058b60cea9b6ecc11782a5153399559ae4870ec3 SHA512 ad4a280982fa3ca4e6d5c8f6e8e3b2b5be3a79ad381939dcf13dce3efc733321c8589cb50008ef2926e4b5c4b9ab0b57c4e9e3916df5076f17eb52eb8ab2d117
+DIST thunderbird-128.4.2esr-nl.xpi 748486 BLAKE2B 40db7b84313362274d34d9aad4afb7e1f8ce891f44d7b712cdd10ed6de254abf2683e45dfb7c531a9f23f4bd38044956431c88208460d1fff0ce9aa9386102db SHA512 50ad0810247ac56abd5f10639340ecd720670abfc7852d1b64642930af050681f776f3ddf8770315f824b406e303f0454eb6d86f78ad05bb38f8490f67d31a37
+DIST thunderbird-128.4.2esr-nn-NO.xpi 726987 BLAKE2B 6a6f7c543bb20c45bd841844cd5ad649d3526869b3bd1165ce6c880dca07b27b66f7a3d6125f148516c622733f7d3200833388eba4974aec1ffd18a2c4bf0d87 SHA512 d418246e0ace6d179f99c230a472721e7e036dd216cbd50ada92237e5f7536568a477bc5035ac8a47b66b9de3c0b14ed9bd5387a08d20c0a13b234c0cef33b31
+DIST thunderbird-128.4.2esr-pa-IN.xpi 685674 BLAKE2B 241998c801ab27cfea3100abb1ca768f6253c871f7b9201393f6fc6c65987d17868196f88db4742267c1ad0269146c3ce2813b034b72d6086a67b291f3ecda35 SHA512 3d9a8a2a87d7cfa07dd408dc6b64caf9795c5b415a8fc6d3738446d2c84fe617666cd494448ebadbbcc7ab54227c8d50458a0edfdfd9eb529f8eb6286730ef7d
+DIST thunderbird-128.4.2esr-pl.xpi 767303 BLAKE2B 4167324f2743b5d08127685a2145a68b37cff5d6cd2654e1f8ba2ed5ace8a0682b122aed8412c67e8602c8b302479e6ded14089ea90d124e6ff0cc37190a351b SHA512 7c9bd1a101d0a0fc43724389460f70dbe5ca412d7b1dd1632cfd5dd9d153c56b4c1ebae79fcaf5f13dfc636776a53913afd2fa4ea7cb4af94c8a29a17224448c
+DIST thunderbird-128.4.2esr-pt-BR.xpi 755727 BLAKE2B 998aa56ba33395ae0030630e4f07d4f6dd091b731aad9695f91c7425b9d9ee8654923953c21db14fb96e0af855016a59a680d3c0afdf1856acce7cb52e9375be SHA512 c66f9ab29a3c8c5fe12e519c2aed2c559bc7363d78334c64c4fefba8d8c8ac6bcb3362db141d901fc1bf6c8269596b95462e826b1bccadd539859475bdd62377
+DIST thunderbird-128.4.2esr-pt-PT.xpi 750495 BLAKE2B b31dc4c1a4d4fe8005eea87a80587af80e44cd9e5c4c83fa9d44c9428a93a6aaa26dad3835226734bc638aebf768cb362a7c56ec9cfc269b240a4a140de80899 SHA512 f498bbe6f9eb7fc3ca3a2743957c1fef5520e8cb2726ce414f8a0a4ba05deec9f16ab14267776c1a24702137a1b1fca97d0ea64ea1089f177ceccaca38317134
+DIST thunderbird-128.4.2esr-rm.xpi 751462 BLAKE2B 1dda518f1a3c7507ca8595f2bb71ade158ce195af856c94b9a24b176b5a52100044bc49493db8e19aaa2207cd68195eb35b535ebd3872ec2f13efd47425c90dd SHA512 6399493112623b57c66af7ea650d59ced89e5aa168cd3c82772a9611fa5057414539734770a3560636e8cd32562088c944b254b8814ec731cc66e6deb1eb9bef
+DIST thunderbird-128.4.2esr-ro.xpi 669740 BLAKE2B 553b60900867c14f048fedf172a975ea644e5b598ebb2494adca4ec951289a79bbf2cae8491b3f450f9639a4319d8ec253af40c9ec7cbfe19bfcc7a73db5ea5a SHA512 9d023ba9044da706796f49ea3aafe3a968ed3e48a2c561c0a7bf04a3d6441e5479a5f78cf81bfebc06c0639d9b02dcaf72ce6842225ba03df52c06ef97522e58
+DIST thunderbird-128.4.2esr-ru.xpi 877213 BLAKE2B 17c7b77e9c33e01c3419b424bb3e535a39b7c1f75b013a9b70d2e2eac28512bb1d223cc6a07bf253c07ebfc2ef813678e028a88c080f8737763c44aaa6f4c3b6 SHA512 4de96e8af3ef756b53a0610bed847080e5e201a6e402a931577c5661f5f085e3266a58c344a5b83ad7b4f62b054230973ef9e8b4b46936921bb09819f7003d16
+DIST thunderbird-128.4.2esr-sk.xpi 788763 BLAKE2B 15622889c7aa13ace8fae9cf945a90ac5a3cb5f1259f8d9f52c9647dccd4db9f46494a6307907c66bd0625b757636eae033498bf3f6b6e8fb226052200df8fec SHA512 6e5e5e58ea81daf223ce0ad9c7ba991cf99748d0e23f9ae3c814854ef2e349150b985af314b4e3261df654c4c2a8591c2f6a4875c0be169ea81181ea180f0e3c
+DIST thunderbird-128.4.2esr-sl.xpi 749578 BLAKE2B c9c7ea505590d4e2d995564d36a82c98718735f19c0ca0a5a4df9567556f2ce6f04f378d4537e01308417094bdc6c6e417c1730c96054ede8b2f9e4e81a93fe3 SHA512 63aa78fab3ad7b084d716611f2665d3db9fd7e2a0bd5384d4c2b6927a1534897e6f8e030cbccb7cf63c6c379a5400de37c866b4e98b4b0c8a2b5386f10a05ef5
+DIST thunderbird-128.4.2esr-sq.xpi 771528 BLAKE2B a5d13e56dff2fc58d27ac981dcf4b7abacb0541bb7d0f0185727f9b253ee9560b634907106b6f01735869c3d03c66204963d73c0dae34a8b3a98094e03fd4ff4 SHA512 4550eac785072bdadeee6fa86ccdf099fe097657062a26a36939907259f84f111f94bdd9c88f3dca59f85cd6cf8a441f2ae66c218d261ce24b7517753040f263
+DIST thunderbird-128.4.2esr-sr.xpi 771225 BLAKE2B b3e56fc3a84d8de8973c4a26d328e2e305a0a2077c2a30460dc739b16e2bd898c74e692cbfc425b796c031eaf404e544233cd404e74cc87e77c9ac26089a6e42 SHA512 e58782d41c60d3e2958d414c756e97876304f46e772a5ac8f15c484551cbea70102438acca76187b79a65856af92e21de74ce692560d90a434f4e49355f98c1f
+DIST thunderbird-128.4.2esr-sv-SE.xpi 751824 BLAKE2B 1308a228e2157c468749385ce47e7dea243244c21a66b026871f66e1304765a3452565c29fcb3e497549088abec0a1914c80aedb007c8610d284c6c2a6442d99 SHA512 a0ba92a28eb0d62ce0771217c000526d5389dc61cb2e3ee1cfd5560d08ee6b3721fdc09456157991a5896890f38f8c75547f86c9919f74cdc4297a13792d1af8
+DIST thunderbird-128.4.2esr-th.xpi 815950 BLAKE2B 1303c80c573fcd35c26c1ef90fd777f91ce6af46444e3db0686c7cc6bc4dc3ab05044b89232685a37a0291c1ca3b51bbaad7cb836b47696369ca52b80ceaad2f SHA512 6eb2c83ef8207fd258a9d60b957c0079f3756cb45364f506f8c45fc1346235dfc97199a9c346cd26beef712f7797540662989e87ac650972e850ded9df238d64
+DIST thunderbird-128.4.2esr-tr.xpi 761635 BLAKE2B 3f2d1ff0ddba83326551b9c14e72d46729295c34303eb002bc61209f6930200b7b0edf41cf1fa2a45fd31dfe38dc4022ee9951142c21da2d451431276f51cac1 SHA512 c575244ccfd486f136bac57b931fb8d611bf2d7ad50ebcd800f8ce46f9461ca600c19ff51862659d08fb2549c62a12955b58f8fb28735cfb19aab519b23b1ddc
+DIST thunderbird-128.4.2esr-uk.xpi 867539 BLAKE2B 9f805813e2d15a17704b7c070f9232d684f4f62c79c7e1b6bcb0d8f7f0b45f684067ee93436c7832cc16a6befe1a9a3bd6d6d08e8602ff5b44d2124718f0912c SHA512 c04e9a07721f60ade2f003512d75f78153ca68cbefbbe144063cd4cc7f78152b0d58a3b05a175ea20a2e9981ce6984acdd93886c95d597ad0b69dbf39bb9de4d
+DIST thunderbird-128.4.2esr-uz.xpi 592134 BLAKE2B 75d75329207c7ae0bc38e9381b3ff528bf246642595dd8ac87d54e1e0857614abb8134097c3e6f71c5eddd484fb9a9f959adcd9b4121bed924b11226b164c8b4 SHA512 d67d44020d68486eb42c7ec53a0000c9cdc5e8a1b1ede37fdcc3f69f2fe022dcfe19dc28a31dcce0efc3772a4b56a364bba45f395750c85e3f03905c72707f23
+DIST thunderbird-128.4.2esr-vi.xpi 790929 BLAKE2B ddbd7590845c4709696bdc40bdde3199a1fdb95e83c65a7011000032f2c7887fce5cd4545e468ff10cd80823288a3932b706769d8a0404b6dcde3fac7029e5cb SHA512 c1779d683d4fb44657199d85f37b74fc3cb51d0ef4cffe6be1898b2f57d292b97e299adee187bc652fc6dcfdb826269197fec6fa7d24396c48c341682c0df0d4
+DIST thunderbird-128.4.2esr-zh-CN.xpi 790746 BLAKE2B e36db30ea55aca604401defc3b4dbf5b267b37b2c01ff8e49526a56c37eced2b3090fc2a6dc6572fac6f853670adca75636260f41c7560035743b029578ef70c SHA512 5cd3c20d9f8767f4a7cb8df5ca3fe332aad07aff4402d73cf86c5603ef072e71f03b099289394184b871bcade9e1312671bcd8ac4faf30660a7eaf10843fe349
+DIST thunderbird-128.4.2esr-zh-TW.xpi 794101 BLAKE2B 46ed75ed3dc6f687029bfb886f54142ded0ec1692ef4361d2057159800db1090913590d2cbd82b1eeb149cdd99f080bfcd40e5cf3afb5f290d29fea30260faca SHA512 6c42350e250b96ee5196c401e25f58dbaa4f4e54003af9732b799704c943db2ed79730a12f34c44f0d384a50a57d0cc078bc3c73cc1f0fca526ecb3fb2c82605
+DIST thunderbird-128.4.2esr.source.tar.xz 676111384 BLAKE2B a750acc2450c37ba0a20d8f6529e672568342be7ce4f0e7048a35792ad2b4f8a3c119250299162d5e6358be1aaf436e51259074d08ee8152412911f92b69a2ed SHA512 4e37b77eb4652bc36585656bd3fe5416053f6a1a96ed1ca64c17d8d73031c746cb3832fd275d25f1283d20e18aa3e7b1df6d67864ced21b5f73042a42767cb45
diff --git a/mail-client/thunderbird/thunderbird-128.4.2.ebuild b/mail-client/thunderbird/thunderbird-128.4.2.ebuild
new file mode 100644
index 000000000000..7eb7af76758e
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-128.4.2.ebuild
@@ -0,0 +1,1162 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-128esr-patches-05.tar.xz"
+
+LLVM_COMPAT=( 17 18 19 )
+
+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.
+ # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
+ # bmo#1516758, bgo#942288
+ filter-lto
+ filter-flags -Werror=lto-type-mismatch -Werror=odr
+
+ 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"
+
+ # 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:@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
+}