summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoonas Niilola <juippis@gentoo.org>2023-09-14 15:58:49 +0300
committerJoonas Niilola <juippis@gentoo.org>2023-09-14 17:24:56 +0300
commitf214ad8c2f27f7a152b69663baf312793435284e (patch)
treebaf5d50645cab4966da0133831e7ea0d435ee061 /mail-client
parentnet-misc/nextcloud-client: add 3.9.4 (diff)
downloadgentoo-f214ad8c2f27f7a152b69663baf312793435284e.tar.gz
gentoo-f214ad8c2f27f7a152b69663baf312793435284e.tar.bz2
gentoo-f214ad8c2f27f7a152b69663baf312793435284e.zip
mail-client/thunderbird: add 102.15.1
Bug: https://bugs.gentoo.org/914073 Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'mail-client')
-rw-r--r--mail-client/thunderbird/Manifest65
-rw-r--r--mail-client/thunderbird/thunderbird-102.15.1.ebuild1190
2 files changed, 1255 insertions, 0 deletions
diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index 715f70adb985..2567e8240b12 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -65,6 +65,71 @@ DIST thunderbird-102.15.0-vi.xpi 745664 BLAKE2B c216509e251c68a65ba8073b33f617f9
DIST thunderbird-102.15.0-zh-CN.xpi 739889 BLAKE2B 34a8010d8196439fbb65944d7ee1b949d301f5a68fbc1b2c2c00c68bf99b18033aa9dd6b986a6cf3dfefbc3f32f20264819594a2b24462daf626eccbfddeb86f SHA512 bc71e1b668cd4a6b5e73d07662c2ebfaf16600c5c5060f3b01f3541f8afaa2c2fddec4cb0c68d22f0115a9b4a8e93b32ce6150ab806d17c9c79407cd27f78010
DIST thunderbird-102.15.0-zh-TW.xpi 748348 BLAKE2B fd37512a10fd4d7c3922b6fee79f619567209d459dcf5fe4500bb8ac720cb47226fca7471f0e13225cbacaeb2ee67e4bed98122af7abc055c93138033ad98f6f SHA512 95a7f02da8ed56622ee37eef4db013535364f6c1f1ceea971b36fc4ee58056b73846e15a3dabe542ea1107d286b6842df82ab900d323412cad164a45b6ddb548
DIST thunderbird-102.15.0.source.tar.xz 510180232 BLAKE2B 3f7adaf14d0d4aa271520603c877a53ba20e41a239d70de2789fd9b8414f2d9b6c0b7451aac7a9f490607ee4266f233eb91e420e30d83f942cb96fd925a0f302 SHA512 11d4c77049c532753c9b693d69ab9a0bcd0eb13d49f87a511ad8ba680b70041ac6f64c5f9cd5dd44246d46e7695d9bd51146b1fe62b0b7c9fbc862eb53d5cfda
+DIST thunderbird-102.15.1-af.xpi 556867 BLAKE2B 4a084cba1c414d788252fbbec52dd88982910c4af82ce418f10f3f8527e63ffa74a607ea06e2fed32f5973bc520d4a4f3eb89e1d6d24e7aa71cc81c9a82eddb9 SHA512 5a62dfb70174ce595b66d3e68e2fe0426a6c66d2b77964cbe5d1e73739278b4f3660c7ea7354e98a6cb0f4cdc5ea578b35d97ea1c2ae2fb98579e77f85b51a96
+DIST thunderbird-102.15.1-ar.xpi 666808 BLAKE2B a35bd1979b6f4ed374aaf5373badcec33dddd1a30c35f50b9589903a3023ec2f41eb8d3ffb40754fb0f04f43b5bbde14bce193bc77369ccaa5d9efabc0e657fb SHA512 fed83e1325c56a3f067810ff531af999e05d22bf1b2c8bcc9442ea1fe1841ebd4588aab1159237a9c29ec144bc278fd85a29315db26b0a20808c7a1e4a4c25fe
+DIST thunderbird-102.15.1-ast.xpi 572285 BLAKE2B 9bbbc9b64902c4c373be79e80e325afa12b3ceeefa34376d8e9edd6fe7e23e5d74e652e1b03e43dfd55e13b01699c61ff3889f8251f3d2d5b692238ec834ab2e SHA512 ae34b0826ce74280685b93bf940a377942167bfab223e745ed5232821f911e8c4ec032df06aec3ecc05dafb0099ca1d0b8bb5654d8ecf2e6d95be4f42ec41a3b
+DIST thunderbird-102.15.1-be.xpi 701911 BLAKE2B 036f9e9623036874ccbb47a1c9e12854ba636c24570a2830d243f5533e42469d773989bb335a2b2afd57c8ff576a9dc3cade21119ed5740bba3bf927ae20b5ff SHA512 d490773f0ef246b86bfb3bd6d7ee4c0173fc7bca4aa2293fb6fef0930e4e8a3bee7d96b72aead6af2b6d4137ef8d28f1981c0eee9591a3228a5fde0e281afcfe
+DIST thunderbird-102.15.1-bg.xpi 693376 BLAKE2B 31c98795a387dcf51fbdfec64e9403736190e8c9b6d9854dd8eba2e7a10168396b6f3ceee58cdb444839d880102190bc2eaef6d73f7dc2e4102c15b5d6ee2d7b SHA512 3a47cbea8831c6ad30c4194f7f13aef7f226d5a1eac0e520f0fe83e8fbf67bc263181756fe3fa72c4e6bf7848b708c608f56c9b45dd988553e8f92f10165468e
+DIST thunderbird-102.15.1-br.xpi 626469 BLAKE2B 74b29055aec6aacce016c207c934d1528dd5b4085cf559c583ecc9247cb0c93f120eeaec91782313b968c79c7f6918132235d9b36917d7afd4b446193fa74e23 SHA512 af9a45cba4bf51d1892ba35e5f34dc0389e14ac6e48aa302fa85f3c46bc4d628c59968a5bf0cbf7a746af82ce653a941895cb2a6b3130428f00e590423f1bbcd
+DIST thunderbird-102.15.1-ca.xpi 651364 BLAKE2B fd5cc9068ff4f2c78b9ca85e8bdc2c8a8781ed8c8702566745a64321c62f68966835d4f488a5bbf9b82740b58b0e4c0de374aeba689a1c491560997d60cdd52e SHA512 d4659aea9e55ae7fae8d95d87f34678914238248e5d639cc6ed50552e7051b0631ebafc8ed951fc915eec3a242059118686e08eeb5ab194eb143f599f1625f2b
+DIST thunderbird-102.15.1-cak.xpi 651778 BLAKE2B 6a0b52611748664dc5e76fce295078608ebf48e445fdab34233884e1f5119112cdde9f76eeba2859d8550e81db98afe3be37803f2474f05f4c68c5b3f2f0e401 SHA512 94b07990a48f0d56a3ff7d0c908f89b5298627082e48f1f8797ee427a5b1df17206a75aa08d8cf7e7066f481ec15e0529416319413648507bf5e41daebad592b
+DIST thunderbird-102.15.1-cs.xpi 728623 BLAKE2B 0a1d3f14dd07199076aa30997744c8c437bb302d60969933b4dad860f14beda909c68c9a9bb95ad35ea710ced8962ad1ffddbec26e8aab4966a69595fe3f98c7 SHA512 a0ed8751da41f727f01396cce0bf89939a02a3f0884342ceac019f365f8d789b882414a21bf5707b1a76d4b3577fc2f81bbc26679407bcef2edaf0e74b536eeb
+DIST thunderbird-102.15.1-cy.xpi 705574 BLAKE2B 1abc8453de2ae18d3e06070e7e338c6665dbc16e946479ea2c1677c2270cd47c9dae7c088beced54b799fce6ea63e9913c9365f265b743cd88955ab50c8fe0e1 SHA512 1016a71112f02699871259bd1e805e93233419c3695e6d29d0ef683de317dfb00523260330f4c20a6f10ab8503e1ce53f8bb67cb12045381f5190a2374774470
+DIST thunderbird-102.15.1-da.xpi 685254 BLAKE2B c26401930387a314d1de1a912b062a92e06c053538eb9f19e04e8a1f21ec684f068b0f0c1c8670ab583731309a853bbc2ab559408bfbb08251dbf97971ce5743 SHA512 6eefa771ba941bd2867f4e97f18e3a23bf2eac5d65a3f470a128b0520345d8ec0fe95fa28c804bd1c7dd526b2bd7acf9dc74bd9c7c4b3bbfc7acbc8560697392
+DIST thunderbird-102.15.1-de.xpi 717943 BLAKE2B 4912dfd1b4029d846e7b89d873cbfde045017274dd11617906d5ecf54b9fe62099f1fe50b1a4f9a8f857c2cdfea7855b4207eeed7ff6f43a754f2011dc66add5 SHA512 c6c1c5e3b86f2ee8c4df0da0f6e614ae0ae0a41024b9fee700a18f78b54f3307a0898887fd31f03e0710f0a85f68d264323f89c6931bb418b2d1dd6c26e63fe5
+DIST thunderbird-102.15.1-dsb.xpi 737082 BLAKE2B a155e313088013e9019a1028696a40cb3fbbe7b772241d2acbe1ebcc6e0e8c7a7e15d8f6360c12ebb548f6cc65dc05fb0c449ac835b7b4748aecb5b27df930ce SHA512 0724f6c0675b62e1966c968aa42a74962ff8f719b853107485ad228e9d2360f9d169984c1f620c3a7ac87e83c5bff34d03072ed56445cc214546969bd08300e3
+DIST thunderbird-102.15.1-el.xpi 840811 BLAKE2B d835412a2612683676b468f31051bc5308f3431d8c800fb15b9100b68a54d6fa97f2b02b2506877a560c85ae108d098676d49c3fba3fac7c2dd2cd1448e8a567 SHA512 8ac0897fab426746bb920d4b1b096fda6e8ebde3102a1dbba48e6aebc832a1dce089e1047e0b9158d7b5608ba21bcb88768c9eee357e175886cd2fefbc1d41ec
+DIST thunderbird-102.15.1-en-CA.xpi 659093 BLAKE2B f531b11f7760e65c6b596a5df311bd6b31ad753a8fa9bb14c0394146a93ba0e181d0c7c2e7f2c19d4fb90aab03871fd54953d8afbbc56ad839180835ef255c45 SHA512 89c4a4d7046e095623d93da4afd5616598e5f8a6b0c2fecab66c3d6b3478997392ac28a590236cfb82e21be1168f8eea93739d9652986a55d5509a7431a61137
+DIST thunderbird-102.15.1-en-GB.xpi 665007 BLAKE2B f61c8e68a039b680b46c575912d61db9f32875f22e01e926c0b013ad371f2b0fe475ace75a6203c73e6a60626640b3ee75924f78a31f7979dc4e23d06b51318b SHA512 e200bdd90b58bcd79830dacf920adba1e5a2827b42b7ef9a47f5dd73544556e730f26bd295be2834659a9535f4845f4069eef4d3914dc49223dc6990ea5a3546
+DIST thunderbird-102.15.1-es-AR.xpi 717272 BLAKE2B 6640d6c9cc9e6128de266866a03fe362b62f4f56b60c59c6f097e89d54d2973b834a68370eaad4ecb53e1e74215d9fe31a523c5ef32dac93cee3f0dfcd2dec8c SHA512 14b68bb72d5537682e75a4b023f7b5357edb945f313ff4b0533ff5fcabca707a905a32a4c6ec641f141afe6cd62d51543cc5139ae07ad82b7b764a14f81c03fc
+DIST thunderbird-102.15.1-es-ES.xpi 677479 BLAKE2B c5ad2697de8de20f9f2130fde852ee6894c69c14e7e640c62e855217c21132365c06b4f04773c9e923e182a140c26e5a6f68ac01c57f2cf32e0c09bf8b9a0971 SHA512 fa4618e7024861292749e51de3f93a42f1ed6aebb5b67a21ae9c060f604c196b566b7c0a01056ebc622f1eeb629491cf3f6e22fd307db2196873ced525f73a19
+DIST thunderbird-102.15.1-es-MX.xpi 719706 BLAKE2B 1f09522dc3e920698c31c23ffc54ae1797e144546d023c0d0da925170b458faf62a4ef0407ad428e55108d381eaa6904548f32996b8f7680f3403e386a605917 SHA512 25a898a51e4911621bbe7af5399db087e4dc5d0e5903eb903e5b84c7b96c3408463dd9bc250ff8ba11dd6ae2027c61f270d98b14a4966f5da7b653ea69ec69b8
+DIST thunderbird-102.15.1-et.xpi 676673 BLAKE2B e0e2516c326bd6c40a6edffea74805221dc40faedf18615d24e61293f8aae47bba7554dcccc8e21cf32325c30258cc1164d84eeba04830d85982b63e18ecdeb3 SHA512 aaaf778ce76a62a4dd5f0efbe22d00be32993f5a0928ea587a6ec0abbcd51e922cfae76b3dd368a76a3be086a2c2f1ee3f379308d3deee0bc1452f6731ae2602
+DIST thunderbird-102.15.1-eu.xpi 701827 BLAKE2B c4a2c96f2b93ee9b01e843d190064e1c4cd891408e9b9e145b0a24ab95622fd16e2a50dbb766e2ef360501f9cd15ec07aba275bbe341114263551050cc9a7213 SHA512 0a963e08253884e8db2db12eb877b9b207e0399379b4ff6e553374abc5acf0e5f5f5e87eb2af564e181715b11d0ddfbd96b9acc03f28889e77033bc8bdc6bd73
+DIST thunderbird-102.15.1-fi.xpi 693484 BLAKE2B 3d469fb18155f453fb66ed02018224f03d5dacf2c637d6036c280981a6bad0fc75c494e1bd64cf9e349e87a5a60ce3c1934dc30ffe22cd8147bdb91911e06a36 SHA512 a3a60da468539fcde731e0dedf92c8f7b364b7af8889f29674cd379c6918852aad171ad1d9337a746bc00393d165fdb76ceca9d44e56434f759714808f17c095
+DIST thunderbird-102.15.1-fr.xpi 730314 BLAKE2B f6f0c4031d8e47aa2ce32cdda94ab897fcb3ba664ed06f61126474313af69b15f58a7a6daf3427dddb62721629479a9cd61b7c5f1c86e49cb27fd737b8db93b6 SHA512 efa266b25259d69bbaae5ab5220379472d7edc80e56a5c08492239a0965d15ccf6fb30e7d49ebbe84368ebc5771f43d98a1b7d10c701a53c6839850dcdb6cc7a
+DIST thunderbird-102.15.1-fy-NL.xpi 711990 BLAKE2B 3ab27fa0a7c0260a458c23acfb72de41378f275d09347fdd360c780dd5a19ab5bc320b9cb2c3fdb39c8d4884b14f8b45be27958334becce3c9c6676e19187231 SHA512 f24caab4df202cdd054199354b3c85b808be12108614367d0bce6f1fe2785944f4c6d6e79345eab37e7448f7de1f41597b648744fe1a1ba5fe19ae65ca03b3ab
+DIST thunderbird-102.15.1-ga-IE.xpi 614535 BLAKE2B 5b4118bbea2519082eecf1d7460ec6e970e973a53ea008972634713d6a4a88e9e0819f46afc54e7e0db239d1101dc48d02221c3a51a85638cef1439b432b3079 SHA512 2066b0d3a2c89d467bcdf142e467c7a19051655e84f2d255d2b507a0953f4922e821ea943b4c02f1f872c4b2e43d455b06fbf8f97e81b81187a9339a695c335c
+DIST thunderbird-102.15.1-gd.xpi 643572 BLAKE2B 2ae836bfaa35c22c5fda145c9e396c2d50c83f82090e0884b64b05987d147294d12e0f35d9a54d3e18ecd347ade7ccfa2c2dd9ced6e9d1ce52de7f4eb1dd503d SHA512 5d504b7dd7a2bf1cc4ae9ec6aefb2fcd495f4f2befba36d3b03531f33645b063e528000fb7ceff0eb20224f44c670a756bb1c43bed761d498f0502f5cdafe690
+DIST thunderbird-102.15.1-gl.xpi 672999 BLAKE2B da34bc56ba8166f27383607ed5f0c32e1738a18bbe460ce27d98439f980e0599f39544038a20beb8b3a79a6d642e8ef7406abc64ef1ed7325d5798cc144aadde SHA512 89c2a5631d87694c61f7697244e63c2815defeca38074edd9d345c1b979ef1c5372f81ab3c48c0348275a5201b222428fd2f7e1e061d5d5a505eb2e2221b2bc7
+DIST thunderbird-102.15.1-he.xpi 676367 BLAKE2B 01880923abf8720ed907a85618c166dc22b43c6af02865feba711eea01dbd497ffbc375d61909e3fe4f75cb6aa0d695d47deede8463394ac1af615235e78e161 SHA512 b5f7019bbadba185ab5494f6340397d674eeaadb0c7a8e3187cc8ca8078707b6ccf032b0b8050eb710c60634c434819a81118a9fdf24b9284837959864e09b4b
+DIST thunderbird-102.15.1-hr.xpi 677717 BLAKE2B a47008b76ccae630724fdba63023b5a97ea6e4d9d2cbaf01268dfb0d3861e97174755db21dc44e49d88a78140d026ec58855748fd70342489e5452d163dc77f6 SHA512 7c4c747b1c035ce1b81ee7aa68ad33c02f77ec7d75f404113c7b1fad8617a26a0098858fefdeb68dcf102f61fcf312b388ec595f40bad85fcd9a51c773f73c6e
+DIST thunderbird-102.15.1-hsb.xpi 736538 BLAKE2B 03da7718115841e84b7bae4175670565c99dfdaba953297b464cbb6f9c12c9c71c0e7ae6115c1ae719d66340c86dc357502c34939fc89eaaf3d001dd1a227bae SHA512 f33150d20f87bc812cd63ac9c84c1938cd0e81061a3c9dce005ce3fc7e19b83d536bf8b86d0018e1550bcaa231f262a54d00555926bff815a67afab3576e3d2c
+DIST thunderbird-102.15.1-hu.xpi 741199 BLAKE2B 575814969143a0af0d388eb379845cff32e61a8e21692b71fd82a59b4c117f90d503320947705ae1a98d95b6c19fae312f910be3cc3b0ccd403d934f049a0c58 SHA512 6b6a786f15d3462e90620f66bb23a4e70a74fc56cd66ea4cf54d3085277bea9c5b502c9c72ec7848ceff7d5599ba9c06626b242b23c8eeb3c63a5cbc3a22ab28
+DIST thunderbird-102.15.1-id.xpi 653190 BLAKE2B f28f3b64dbb22d0eb9684bcc54596bf089fa0db7d7989f7895a79d4280bff2b72db9d44d88af11170fd7fdf29af741efa9b071a94095f665edeffdf5462501ff SHA512 04dc8f6f32f07783a50924aa26b3bd6ea7c157b08ce78c3b1fb83a58618bace56cdd9f385addb0922b1739fe7bbd2bb9260303526e8e33b57636d02a9bb4555d
+DIST thunderbird-102.15.1-is.xpi 706391 BLAKE2B 1e6752cf0e11aee1461252cda0087d130d6a192e6b8cf27add604e01a09548c6962d1ecc254ad05a63508658fcde3b47ca331168bf989ae7db9df28c8c65f5b5 SHA512 9a0e5d8c3cc4aacfe8046167ed896e83d3a39e9bde3a2409e714e48c879ce8db11207dcfc9404cb95d2aca8d3d2245b211fbba6e45ca3f4f2b0c1dbc8e8f2337
+DIST thunderbird-102.15.1-it.xpi 639986 BLAKE2B beaddfbb045bd7af0820d49d6f31811ad5ef733804fdcc3fcec984260639da4770f74c9a43bad0f4ae03e51d2e0b2c7891600de4927bdbd81388d0b0c5879e02 SHA512 6bf50cbb9485fe318b34e8edf9e7d34b5b0d3f5b55e6fdbc245a68c393a7060f0d6e0d350fe17ff8bd402b4e3256be024dc75f845a22158a211260353165ec2a
+DIST thunderbird-102.15.1-ja.xpi 781906 BLAKE2B 785a3e2d23b5c3d4514cee520e66e6f18148bda015af58a117d494b27a5ffa38ab382a6a02375c03324ce00faa68e6c5aa5f6e65a74e8b1ef8e696afd6085f6c SHA512 b187be58c8388fb18b7c728c9460585dea16d1c67449d5af49a64e63e3d9594f37c5de5c64824a015fa90510070ebaaba45bb4437ef63483dde742ce32261152
+DIST thunderbird-102.15.1-ka.xpi 769800 BLAKE2B cc96ecde197054094643f3e276f52b44cbda5ebe571e17ecb5e5a580d02ef039c06a39ad784ed6f80703e9515b38753a4c972167edc9f9ea469077383afa265d SHA512 746b18753979ae39f7bf14fcce3357393a0219f980bf703c48cb8a1d95ff185ed73580b6080ca9b7d923b1d53b18f0f409da8e4e39c3db381c15a8a20e204b38
+DIST thunderbird-102.15.1-kab.xpi 702701 BLAKE2B 249868f0187f5176bc92fc8f0cc65034f669365fb94b2ae4b9e192887e63fa5ad56b805be78aa6356632e542f1e6d78673fe610d09cd293c394f3a277aa3b705 SHA512 8362fefad1900254010f02714bc4cd0eb475b15494065bb6f27e30e1adf243cfa8f5f43514f1d975446f4de1327f0d3d46728a7bdaa30ad803e004374af6a833
+DIST thunderbird-102.15.1-kk.xpi 810964 BLAKE2B 47ea299ba8773971c860abb87d8f1a7de0099a4f60f85ab9938473df04c8d60749e610762e2cdc7ffaba0af5726f18ca6f8cfdda26c5004fc0e9962bb042fd51 SHA512 07203b2184d59d78ba3b9c4ccaa021882ddea70de5bd551fb68fab5b44fa6e386803fd3aa62aae5f4b5fbf10ef836ce63e1de44a981d6da42dcbb3c738f86e4a
+DIST thunderbird-102.15.1-ko.xpi 716819 BLAKE2B c4de13706da0c97d12afc71005faf411dcf5fe816a3ea605a869547031592bbeb319d0df516dc1e5146c7023d04ccb3ad6a28b382cb8c35201fdfdd5de25ff6d SHA512 7ab6de78bef723ae99a057e22776a4a5accc4fb228d34e99bfbc01d8b3ed9e6f61bae0e4263c36ace98859d30f68c0642db41118ed85edbc4a04634d03fea305
+DIST thunderbird-102.15.1-lt.xpi 690853 BLAKE2B 9896ec2467806923e08892538d94b2491d1930402ef8ee5f9a27d669c1710a52d912934e53d6db1d12c266ebb7464a0514842c78edb551a8ae5ec5e47b6bb0dd SHA512 f124f3fe430d4fbaa2444a9d84769e71e75d7a56fb64f6dc84ee843b6469f5f21de2b3fc9e447e290686224d1f0fe4b09e16d095daa79848aa60b8a12187479f
+DIST thunderbird-102.15.1-lv.xpi 617765 BLAKE2B d3d594bfe7f0fc5f29b307217b4bea238f3e1cbe2e7509fdf1b977a75f50b9ca30cccff06bbb51ff4688cfb010fd13928e78e96476aab53eab00f5fd75d725b3 SHA512 69dc32327888e54998d8b1bc54c5d26fe5290b92da32dc887da92a9c7e40986ecbf08eee1ce93eb4add61f6538b0bf4fd7c9c3e6faeb834c25d9587faa5c8e71
+DIST thunderbird-102.15.1-ms.xpi 577756 BLAKE2B 8a6d3df6fd6a55cec005b8acf504383bc2b28f91b8314a2350889a8618614bd1fa7bb8abc49be8f2f595f771d603fc016d84e3a777114f54872ff1be018cbd4b SHA512 568c2f3a77f37f20abd4f48ebd1d92aec6e18d26659f48f3ab2e27379472a2ba173543b2dd575add58e9854904303ea9bbba483221815988ea6e23b098254f1a
+DIST thunderbird-102.15.1-nb-NO.xpi 662681 BLAKE2B c4c3a070438959a0bb74d80ff53468b8332657293af215cba5614ad37db5096ae73f151d1abf6a3d42e9b014abb0c06ed361582f2454fd1d8d0b68e11ad21932 SHA512 e6496610d2c15b23a1ac13505ff1a25645f2c1ea0b684e0d1617752a12763b6ff602064059baf3697fde94002222d39d3b380768c7d5b9b13872e6d50bc86ad9
+DIST thunderbird-102.15.1-nl.xpi 703274 BLAKE2B d235f7a8bfbf4301d71a87057a555ef68b4d0f858438f23aa3ca38d13f93eddec121914c9c974b81e06ca310148974ce2227b19f461594fb66c0ca34c94688e4 SHA512 b1b71731274e71104046b61ab182b3bd1ea70c95c2dd3ef421af4defdf1eed4053f6d9089182fb15b382d2d4c1d8dc60470e3361395bded9919777d34f332083
+DIST thunderbird-102.15.1-nn-NO.xpi 672831 BLAKE2B c8b260ab0e221c15f389299b0987ad664f72e401a0c9d0791a6a2aaa427ab2edb2afd8dd695658f0444ccfc01a8b6c85326bfc04e14a28f4f4c08faff2c83a14 SHA512 992691d46138431e1ebae809b65eda62f2258c6ab6ddc0268fb87126f9fb98f7c9cdb727867b3e9f67a427e213cb6a05a4da148f42e0fa20879d24109722ea0a
+DIST thunderbird-102.15.1-pa-IN.xpi 668030 BLAKE2B edd425371e2b331057fdbc0f93c268aecc7fbbe541764d3b1f324b79efd51839704bcb7ee87c14911a15912365f1ff280205a46cffc767416ed621a0932c7ae1 SHA512 6ee25091e96ba2fcabdc7a2f39a2ed6036bb603d2e5a09dff3e2ed18b76e825fa2df5d0fa0979bab9bf701320a61f0ea4e9dbb29d6003511b85a4e09f7b3273d
+DIST thunderbird-102.15.1-pl.xpi 716228 BLAKE2B 50658910592a1efec6c32769b896277b8272729b09f44e69bc1c9492acd715dc6662fa3c7778b70f59099c024a56bade96106eede9530647dda5beed4275e1fa SHA512 db87ee0f7b6f717ad59e77475a66c16d90841a3fd0aa0bec44d531ddc5f1dc5659a8c817a3f7b98bf0b632d299b60334cb32c5974f6f20549130828ff168c1e4
+DIST thunderbird-102.15.1-pt-BR.xpi 711150 BLAKE2B 9cf8f74ad72f7c24689faa8d0be9dfd052ff7c8232f85cfe1b27713fc836eaedfb7cab07dccea686c0960e89f97e15616f37e21ae0a56490f8c434e4664ff728 SHA512 1611bcc3dcf6e6ef9fa7386ff2e2872d92b4e0729c6e818b9500301dba6b392bf7e363b6971872f7eb2af2753360836ac9766eaea5ae87772e13be2afd5cb47f
+DIST thunderbird-102.15.1-pt-PT.xpi 686909 BLAKE2B 1e6aa88ade8b5cf6ec79fa066052e57349541798679742097708570750f58802e7afc201117280cbca3f52ec88f5145e39ab926c053cd1290a06023aaa890fc2 SHA512 181b325075fe6a4db8b4e90873a58fefd4865784b951924ec9441d651b332e696d9c8072a1f58dc73574977f33911322ec46f32fc758a6b86f1b5ecb729dc75a
+DIST thunderbird-102.15.1-rm.xpi 701680 BLAKE2B d218f082e22c678208039d99533b93f28d296f2ec197760f8793ef0c8b46290f42f61b3a0630a0b918637a12d7f21f236ddf57c03ee0d853e0c1dcd3541d82cd SHA512 3aea6ebabb22ebeaacbcf88f8ac1b53d2eda9f8db87585053132539bead2f51eb44b0b3b013d33c5b7159af36ed6962890ead4dc7f0168688d6576356d82641a
+DIST thunderbird-102.15.1-ro.xpi 661281 BLAKE2B 99c1342f9f88df433a9051e74bd80697da4b946385ed5f04b239fa626e5befd5c9ce4f5f1e627ddeb69946d2292c0022964dbbf68b170941a162603d68918022 SHA512 5bb737ae504ecfc32e3ad4698a6edecb7f79b875e062d920cef9f7a16aa05a0a71e793c7b9d73ac6b743f1cacc109e106d9fe834ded8ee913b12417281b34a88
+DIST thunderbird-102.15.1-ru.xpi 827219 BLAKE2B a13e621caecd51e3730d70cc148494d580379f44532d47aa94b0bf315d8ec2c4039d95a5ec3fb60c2ce1da65f4fb433231fee5b53fee4b6bbeb7529c35b8241d SHA512 f3020601f570c8701e353927a2be59d40bf50d71fe9b426fd110952031b8616b5bf87619414e03cface953c29e2025c01d7efe0f494224d4b55221d97f730371
+DIST thunderbird-102.15.1-sk.xpi 740979 BLAKE2B 46a9b560a9bc43a34874dbc4b5bc3bcfcb91e805b5530c1a136d63feb4f83cc1ee00f72e5e02837d1e1d7a0e880427f4d26f6d135fd400be5353d27120c06c05 SHA512 74bde4af466c79e3e38d83de25ce2d075a65e5fd6978f1c665397149ba976c6dce9706a713c4ec222e98881d05335655a6ae23460b3104cc58d3a8a2b6b7704d
+DIST thunderbird-102.15.1-sl.xpi 704056 BLAKE2B fdfaba4b70c990b1560429c5b194fbd71baa5ec711e87dec35d56801c1b75a79b2887c22d5c7f07d2372c77344ce565843856503c613ffc920d2cb8914f261f0 SHA512 41172887970bc116fd6138f0618eaac235ebd418af479a5c82e8712b5926106e666f003ccb492c99bff289361749e691d85ebf461cac91a99601bbfe9c1e6a6e
+DIST thunderbird-102.15.1-sq.xpi 726033 BLAKE2B b05a720a6bef04dea2dfd53bb29584a3e8c844c857b14a50458efa9c53a58d0e99b9e11141aa5ad968b289592ce61696d071c993470cf52761d7ad32231dc010 SHA512 f3dffbc82d01603523aa6b6b91f3b29bf81579a12d2a418cb53f5cd4efdb3b509338dceb2b23b298d73aeb8f3b405c8518e15889102c2f716776fa62134d416b
+DIST thunderbird-102.15.1-sr.xpi 720554 BLAKE2B d529ff1c639af2987e2549ace727912879affecee0a8a812e172a0f33c2dab9dbbe3d2c3d6e9f68921ae6cf111dfd6379caee01779ba1c9a5aa891bc0d059b43 SHA512 634383b60937fb98e8cd5c6fbcd3319e34c3ee14ef448b934fb0338ea4c974e9382990ff55040c1e52a8198f8c579b950ecf1c7d9b32b8b2675ce9d6a5f2570b
+DIST thunderbird-102.15.1-sv-SE.xpi 706951 BLAKE2B 01d25ca940b46eb8a6deb845b750986e6ade89abfb6ae0589a4aa2914fc69a109441fa050b93a7d2b3bdbe7757d6cc9a1fa8739e1d455e6c9f8386e6b04b2b31 SHA512 8df9fd9112b964b36098e74dd82128aacdf80eaf4935dbd63ec68a84ec413ab90314fa9b83b357641e6bfaecd64f1e48b15c8f57ea4ecb630848024a0e44a952
+DIST thunderbird-102.15.1-th.xpi 758235 BLAKE2B bc417c8626c70cd09ac841d21f4843f4a841f3d1a6677389abc5dbbb357965590eea362c0931f78a09474db7024272f77fd37b68c8217aee93c8acbf9bc25cf3 SHA512 70349b7356dff8737e0d8158aa09ee9bbfe569738319603740c260fb1367fc352bc5924b90ab44b8eb6898328fe914d7a0ee8d74b4b1836699c85b58c195f7f7
+DIST thunderbird-102.15.1-tr.xpi 720174 BLAKE2B 04e9ecfe72639f91920e018bd0b9d3c6d28822479284e9fca6a107bb233bdcf6a65c02eecf33c0468d12ddc633cecf74e840e4ea11f565eb8aa36b32d1582946 SHA512 7e890b6e764571eaeefb91aa5d986758fe106bda640369a13bb408ceb4035e0f02ddc1aa2cc6caea04a8eefb400c138939e6c192ea78510f681081625495601c
+DIST thunderbird-102.15.1-uk.xpi 818661 BLAKE2B 0a802e198a906a65e8b07332860901826ab726af4465cd650820516abf209989cbe07ed879f4cb2027800a56b8f8298d7ad4d167de17bd2cdd6a6293832e67d8 SHA512 516d905ebe38d4e065cd627f78e3bff6424d933023cb42cf44550c0c13f56b549eabc84d62f1239a67a4db53eada15341e6aa2ecc454a898045b441549bdc025
+DIST thunderbird-102.15.1-uz.xpi 593010 BLAKE2B f292a57be02dd6123a76e6f40cdd2c27f3f6dc814cfbfd420f649c3ffb6dfc5f21042b272f91b043b5ebac42669a56f8a9d1d21647f38186a666fb220618b023 SHA512 8e51e998595076771fa39a5f6ebd0f4438c6ebab974ea498820c40694f56fe1752fd5e4016f2d25db307b380935ec32534d5775757f4dc5211539e6319220fb1
+DIST thunderbird-102.15.1-vi.xpi 745660 BLAKE2B fd33ea64dc4d08530ce19e440dd5bac20c395d1ba9491b0bdc4c0d704fff53252ba7cfba12236bb41dbb6a372bfb3f1965e213f9cc069f964e4e3ea936e613cd SHA512 3f521beeb920cff979287022ace2320f331b7c6a1a8f8d22c7c15418884e9dcd2f9a73ee4444c5aac85b90339c6b340362f83d7f5d26ef9b48d97d5b04913aca
+DIST thunderbird-102.15.1-zh-CN.xpi 739885 BLAKE2B 9bcb263aca4a53dd19ae030f8dd8174377154348c0de7e3ba221e6b88acaeaea23aee5c2712e3accc2b15601844192403b1c5d4c61d8ea38d4e9cb3d50f8e32b SHA512 56554b81fc3be72db18ebdd91f3ece0eade91b939ca290390db15ae5ee217ceb9e4300f42dc33e53702ac6243dd66c9564a26580aae88f14e371fe4158a75d05
+DIST thunderbird-102.15.1-zh-TW.xpi 748346 BLAKE2B 6924d29f27ecdb829b527a57bbbf03c17961a3de259fcc5338a50c8fb1935b6a8650d337ba2eddea733ec1e7e08a22ded153768e685edcd901cbc6a21020fac1 SHA512 cdacf57bc383cffa7b8f0c663427ceb68ec4d155bb2857ef12143e8ea5bb123d7783b12bf772e84880862bd61da46022053c900206fcbff010bb03da110ab712
+DIST thunderbird-102.15.1.source.tar.xz 504786376 BLAKE2B ca3689e3884aedca7287616e7af0b24c2e340c87b8e00242a5a3f7c2585e1a622fda9b42423491909f9b15a4b29232d3edcb141e6b0ca69fd13a92fae1a48751 SHA512 2c96b9cae7acbf354a6aaf7a7987f40ffddbcb8d05a579e6782afbf9c685392e29b274460e7a82426f41f604cec06cb96139be45f099121603ffe434ec8fac06
DIST thunderbird-115.2.0-af.xpi 542155 BLAKE2B 0d59b01fe620890230c2b7ad9b4256ae18666ba95cb559ac90870bbde3f1dd69ed746493d419e7f98a8fc0e2a7b007ba3c2eea8c3d7638270893084734078b01 SHA512 e444ad83e092e0714f5100e68908256d019cbb64843d90487b3a104ddc24427fed2e4a4cdb6b51c3007534f2dd00077a1c53e9d69870db1abe49fb4d1c180f33
DIST thunderbird-115.2.0-ar.xpi 654727 BLAKE2B c709aff1a06d128878343f7909a6ef1028e68da409b4bd96392c14783d606e57b02e5ab4eb3dc1ea943f825d22311fbc5dcc6a81c813a99d8047f5d81e213d28 SHA512 3e92e6d6c397fe5b326d434d2a6ad7630c7af7f470084bbd5948b46298a8c25b24139bfd1107ab2827ce89d87ead826be4cd3afb352504b75b109c6e121a0bf7
DIST thunderbird-115.2.0-ast.xpi 561118 BLAKE2B 0fce35581098af8d6a616c75ce0d67249b42256dc28b82c9f443333bf7f7ef4aca276bd8448c01b21cefbd9b76c0b1f74e7c1c1c046647046dabfd9004c042e7 SHA512 65d6390dc2f0c16c6a975ebc5fc41b77d3c8a3f7e1f823baa7546edb803a7ce26e011e4c2c678667c9255c15a5c976858917e4981317c15a9f5470a548272397
diff --git a/mail-client/thunderbird/thunderbird-102.15.1.ebuild b/mail-client/thunderbird/thunderbird-102.15.1.ebuild
new file mode 100644
index 000000000000..20088fd5208f
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-102.15.1.ebuild
@@ -0,0 +1,1190 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-102esr-patches-13.tar.xz"
+
+LLVM_MAX_SLOT=16
+
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+MOZ_ESR=
+
+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 \
+ llvm 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,whissi,slashbeast}/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 cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp"
+IUSE+=" wayland wifi"
+
+# Thunderbird-only USE flags.
+IUSE+=" +system-librnp"
+
+REQUIRED_USE="debug? ( !system-av1 )
+ pgo? ( lto )
+ wayland? ( dbus )
+ wifi? ( dbus )"
+
+# Thunderbird-only dependencies.
+TB_ONLY_DEPEND="!<x11-plugins/enigmail-2.2
+ selinux? ( sec-policy/selinux-thunderbird )
+ !system-librnp? ( dev-libs/jsoncpp )
+ system-librnp? ( dev-util/librnp )"
+BDEPEND="${PYTHON_DEPS}
+ || (
+ (
+ sys-devel/clang:16
+ sys-devel/llvm:16
+ clang? (
+ || (
+ sys-devel/lld:16
+ sys-devel/mold
+ )
+ virtual/rust:0/llvm-16
+ pgo? ( =sys-libs/compiler-rt-sanitizers-16*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:15
+ sys-devel/llvm:15
+ clang? (
+ sys-devel/lld:15
+ virtual/rust:0/llvm-15
+ pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:14
+ sys-devel/llvm:14
+ clang? (
+ sys-devel/lld:14
+ virtual/rust:0/llvm-14
+ pgo? ( =sys-libs/compiler-rt-sanitizers-14*[profile] )
+ )
+ )
+ )
+ !clang? ( virtual/rust )
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.24.3
+ net-libs/nodejs
+ virtual/pkgconfig
+ amd64? ( >=dev-lang/nasm-2.14 )
+ x86? ( >=dev-lang/nasm-2.14 )"
+
+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.79.2
+ >=dev-libs/nspr-4.34
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ sys-libs/zlib
+ virtual/freedesktop-icon-theme
+ virtual/opengl
+ x11-libs/cairo[X]
+ x11-libs/gdk-pixbuf
+ 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/libXtst
+ x11-libs/libxcb:=
+ x11-libs/libxkbcommon[X]
+ x11-libs/pango
+ x11-libs/pixman
+ dbus? (
+ dev-libs/dbus-glib
+ sys-apps/dbus
+ )
+ jack? ( virtual/jack )
+ libproxy? ( net-libs/libproxy )
+ pulseaudio? (
+ || (
+ media-libs/libpulse
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ 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-71.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+ system-libevent? ( >=dev-libs/libevent-2.0: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? (
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libdrm
+ x11-libs/libxkbcommon[wayland]
+ )
+ wifi? (
+ kernel_linux? (
+ dev-libs/dbus-glib
+ net-misc/networkmanager
+ sys-apps/dbus
+ )
+ )"
+
+RDEPEND="${COMMON_DEPEND}
+ jack? ( virtual/jack )
+ openh264? ( media-libs/openh264:*[plugin] )"
+
+DEPEND="${COMMON_DEPEND}
+ 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 ; 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! 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}"
+}
+
+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_pkg_setup
+
+ if use clang && use lto ; 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
+ # Allow access to GPU during PGO run
+ local ati_cards mesa_cards nvidia_cards render_cards
+ shopt -s nullglob
+
+ ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+ if [[ -n "${ati_cards}" ]] ; then
+ addpredict "${ati_cards}"
+ fi
+
+ mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+ if [[ -n "${mesa_cards}" ]] ; then
+ addpredict "${mesa_cards}"
+ fi
+
+ nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+ if [[ -n "${nvidia_cards}" ]] ; then
+ addpredict "${nvidia_cards}"
+ fi
+
+ render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g')
+ if [[ -n "${render_cards}" ]] ; then
+ addpredict "${render_cards}"
+ fi
+
+ shopt -u nullglob
+ 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
+
+ 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)"
+
+ # Make LTO respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/build/moz.configure/lto-pgo.configure \
+ || die "sed failed to set num_cores"
+
+ # Make ICU respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/intl/icu_sources_data.py \
+ || die "sed failed to set num_cores"
+
+ # 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
+
+ # Clearing crate checksums where we have applied patches
+ moz_clear_vendor_checksums bindgen
+
+ # 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 ..."
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
+ AR=llvm-ar
+ CC=${CHOST}-clang
+ CXX=${CHOST}-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
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ export AS="$(tc-getCC) -c"
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB 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
+
+ # Set Gentoo defaults
+ export MOZILLA_OFFICIAL=1
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --allow-addon-sideload \
+ --disable-cargo-incremental \
+ --disable-crashreporter \
+ --disable-gpsd \
+ --disable-install-strip \
+ --disable-parental-controls \
+ --disable-strip \
+ --disable-updater \
+ --enable-js-shell \
+ --enable-negotiateauth \
+ --enable-new-pass-manager \
+ --enable-official-branding \
+ --enable-release \
+ --enable-system-ffi \
+ --enable-system-pixman \
+ --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 && [[ ${CHOST} != armv*h* ]] ; 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.
+ if use ppc64; then
+ mozconfig_add_options_ac '' --disable-sandbox
+ else
+ mozconfig_add_options_ac '' --enable-sandbox
+ fi
+
+ 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_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"
+ 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 wayland ; then
+ mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland
+ else
+ mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3
+ fi
+
+ if use lto ; then
+ if use clang ; then
+ # Upstream only supports lld when using clang
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
+
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+ else
+ # ThinLTO is currently broken, see bmo#1644409
+ 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
+ # This is upstream's default
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
+ else
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-lto
+
+ mozconfig_use_enable debug
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ else
+ 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*'
+
+ # Modifications to better support ARM, bug #553364
+ if use cpu_flags_arm_neon ; then
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+ --with-thumb=yes \
+ --with-thumb-interwork=no
+ fi
+ fi
+
+ if [[ ${CHOST} == armv*h* ]] ; then
+ mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+ if ! use system-libvpx ; then
+ sed -i \
+ -e "s|softfp|hard|" \
+ "${S}"/media/libvpx/moz.build \
+ || die
+ fi
+ fi
+
+ if use clang ; then
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+ # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64')
+ local disable_elf_hack=
+ if use amd64 ; then
+ disable_elf_hack=yes
+ elif use x86 ; then
+ disable_elf_hack=yes
+ elif use arm ; then
+ disable_elf_hack=yes
+ fi
+
+ if [[ -n ${disable_elf_hack} ]] ; then
+ mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack
+ fi
+ elif tc-is-gcc ; then
+ if ver_test $(gcc-fullversion) -ge 10 ; then
+ einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
+ append-cxxflags -fno-tree-loop-vectorize
+ fi
+ fi
+
+ # Additional ARCH support
+ case "${ARCH}" in
+ arm)
+ # Reduce the memory requirements for linking
+ if use clang ; then
+ # Nothing to do
+ :;
+ elif use lto ; then
+ append-ldflags -Wl,--no-keep-memory
+ else
+ append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
+ fi
+ ;;
+ esac
+
+ if ! use elibc_glibc ; then
+ mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+ fi
+
+ # Allow elfhack to work in combination with unstripped binaries
+ # when they would normally be larger than 2GiB.
+ append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+ # Make revdep-rebuild.sh happy; Also required for musl
+ append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+ # Pass $MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ if use system-python-libs; then
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"
+ else
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+ fi
+
+ # 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 pgo ; then
+ virtx_cmd=virtx
+
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+ fi
+
+ local -x GDK_BACKEND=x11
+
+ ${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.js gentoo-prefs.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+ # 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 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
+
+ # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it
+ if use system-harfbuzz ; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref"
+ sticky_pref("gfx.font_rendering.graphite.enabled", true);
+ EOF
+ fi
+
+ # Install language packs
+ local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
+ if [[ -n "${langpacks}" ]] ; then
+ moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/comm/mail/branding/thunderbird"
+ local icon_symbolic_file="${icon_srcdir}/TB-symbolic.svg"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menu
+ local app_name="Mozilla ${MOZ_PN^}"
+ local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop"
+ local desktop_filename="${PN}.desktop"
+ local exec_command="${PN}"
+ local icon="${PN}"
+ local use_wayland="false"
+
+ if use wayland ; then
+ use_wayland="true"
+ fi
+
+ cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+ sed -i \
+ -e "s:@NAME@:${app_name}:" \
+ -e "s:@EXEC@:${exec_command}:" \
+ -e "s:@ICON@:${icon}:" \
+ "${WORKDIR}/${PN}.desktop-template" \
+ || die
+
+ newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+ rm "${WORKDIR}/${PN}.desktop-template" || die
+
+ # Install wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+ # Update wrapper
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+ -e "s:@APULSELIB_DIR@:${apulselib}:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" \
+ || die
+}
+
+pkg_preinst() {
+ xdg_pkg_preinst
+
+ # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+ # does not need to be forced into the LD_LIBRARY_PATH
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ einfo "APULSE found; Generating library symlinks for sound support ..."
+ local lib
+ pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+ for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+ # A quickpkg rolled by hand will grab symlinks as part of the package,
+ # so we need to avoid creating them if they already exist.
+ if [[ ! -L ${lib##*/} ]] ; then
+ ln -s "${lib}" ${lib##*/} || die
+ fi
+ done
+ popd &>/dev/null || die
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ elog "Apulse was detected at merge time on this system and so it will always be"
+ elog "used for sound. If you wish to use pulseaudio instead please unmerge"
+ elog "media-sound/apulse."
+ elog
+ fi
+
+ local show_doh_information
+ local show_shortcut_information
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ # New install; Tell user that DoH is disabled by default
+ show_doh_information=yes
+ show_shortcut_information=no
+ else
+ local replacing_version
+ for replacing_version in ${REPLACING_VERSIONS} ; do
+ if ver_test "${replacing_version}" -lt 91.0 ; then
+ # Tell user that we no longer install a shortcut
+ # per supported display protocol
+ show_shortcut_information=yes
+ fi
+ done
+ fi
+
+ if [[ -n "${show_doh_information}" ]] ; then
+ elog
+ elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):"
+ elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all"
+ elog "DNS traffic to Cloudflare by default is not a good idea and applications"
+ elog "should respect OS configured settings), \"network.trr.mode\" was set to 5"
+ elog "(\"Off by choice\") by default."
+ elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+ fi
+
+ if [[ -n "${show_shortcut_information}" ]] ; then
+ elog
+ elog "Since ${PN}-91.0 we no longer install multiple shortcuts for"
+ elog "each supported display protocol. Instead we will only install"
+ elog "one generic Mozilla ${PN^} shortcut."
+ elog "If you still want to be able to select between running Mozilla ${PN^}"
+ elog "on X11 or Wayland, you have to re-create these shortcuts on your own."
+ fi
+
+ # bug 835078
+ if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
+ ewarn "You have nouveau drivers installed in your system and 'hwaccel' "
+ ewarn "enabled for Firefox. Nouveau / your GPU might not support the "
+ ewarn "required EGL, so either disable 'hwaccel' or try the workaround "
+ ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes."
+ fi
+
+ optfeature_header "Optional programs for extra features:"
+ optfeature "desktop notifications" x11-libs/libnotify
+ optfeature "encrypted chat support" net-libs/libotr
+ optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas
+}