diff options
author | Joonas Niilola <juippis@gentoo.org> | 2024-11-07 14:47:51 +0200 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2024-11-07 14:47:51 +0200 |
commit | 75a09fda445317e9fffd797de4326e7a445ada54 (patch) | |
tree | 900e4c74a0975a3e205a46b9fbd648233bacadb1 /mail-client | |
parent | sci-electronics/kicad-meta: add 8.0.6 (diff) | |
download | gentoo-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>
Diffstat (limited to 'mail-client')
-rw-r--r-- | mail-client/thunderbird/Manifest | 66 | ||||
-rw-r--r-- | mail-client/thunderbird/thunderbird-128.4.2.ebuild | 1162 |
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 +} |