diff options
| author | root <root@alpha.trunkmasters.com> | 2026-09-17 22:25:09 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-09-17 22:25:09 -0500 |
| commit | 79477d9c98f30c3ebedd8b75721260b257822d65 (patch) | |
| tree | 6382d7f3017e7fe54b0858648589f42075c9ca2e /mail-client | |
| parent | e354c0374d2aa19224b635b0ce38bd0e6a6b5fc3 (diff) | |
| download | baldeagleos-repo-79477d9c98f30c3ebedd8b75721260b257822d65.tar.gz baldeagleos-repo-79477d9c98f30c3ebedd8b75721260b257822d65.tar.xz baldeagleos-repo-79477d9c98f30c3ebedd8b75721260b257822d65.zip | |
Adding metadata
Diffstat (limited to 'mail-client')
| -rw-r--r-- | mail-client/thunderbird-l10n/Manifest | 126 | ||||
| -rw-r--r-- | mail-client/thunderbird-l10n/thunderbird-l10n-153.3.0.ebuild | 145 | ||||
| -rw-r--r-- | mail-client/thunderbird-l10n/thunderbird-l10n-156.0.ebuild | 145 | ||||
| -rw-r--r-- | mail-client/thunderbird/Manifest | 68 | ||||
| -rw-r--r-- | mail-client/thunderbird/thunderbird-140.16.0.ebuild | 1168 | ||||
| -rw-r--r-- | mail-client/thunderbird/thunderbird-153.3.0.ebuild | 1120 | ||||
| -rw-r--r-- | mail-client/thunderbird/thunderbird-156.0.ebuild | 1116 |
7 files changed, 3888 insertions, 0 deletions
diff --git a/mail-client/thunderbird-l10n/Manifest b/mail-client/thunderbird-l10n/Manifest index b8e3cdc72270..8a9493dced50 100644 --- a/mail-client/thunderbird-l10n/Manifest +++ b/mail-client/thunderbird-l10n/Manifest @@ -61,6 +61,69 @@ DIST thunderbird-153.2.0esr-uz.xpi 419568 BLAKE2B 8149d282935a60c9e482e2c104196f DIST thunderbird-153.2.0esr-vi.xpi 541823 BLAKE2B 33652bddaf0a3b472dc976096a41d75c2c6f196b510c946df70e41d41cfc39803ad478ab5f2252cf0c62a6f0fd3eaba28ddf1cd4eece1dc8dcc08e1e570b9948 SHA512 a89999acf12c824f752087c7b521b93f42175200ec284a3d7c906da084486364290d3c954e1a0a910388ab98df0a449dc7bb8cfe2365c7d5f790195f09f481cf DIST thunderbird-153.2.0esr-zh-CN.xpi 526380 BLAKE2B b10d76e0b9d30efb8c3fed235663456414eee4741ecc3583665e25bd4348bb860162b800daec5e02b6136b4065934b0b6d027c813cd67ca9346a6a655a147309 SHA512 828c7edab61bf38d9494f41191076cd67720bccff949bcb2f4ea422fe576734e5327a0ae8e02a81f9bd890a18a9322083897cefa7ceaee0d9a11240e1d3df653 DIST thunderbird-153.2.0esr-zh-TW.xpi 530610 BLAKE2B 9adcd2a99d7a7a65c49c5a13d067ac0969f788fb0d0edd9df3f0e95a30150904f3da2fce9a813f4e1617057c814ef36ac0202c2c232280b244564e19d91f1ac6 SHA512 b1c0c8278991590bcd668790dc4e3267347ddf1419bab80a058a415969a264ed0d03b2e6578f62bf8caad3ab8d7fedcf20a00ec1ae1803949f91da6549b4fb87 +DIST thunderbird-153.3.0esr-af.xpi 397508 BLAKE2B 49df336069dbd6537b5ac2e7e98740ae634c2f14648164dd35eebe4f523b59f01c3932a06cdef96d016cd899f6aafe99834a276e42bb91a92c4ac3a9e253a246 SHA512 962fdda61ca042a4c4493b5270f2b5556e4a7471e8a2c78a210bdfc4205a8d665aa0352576b2ccde985219329a989de48d183c9d6726247babd6ea8f48961407 +DIST thunderbird-153.3.0esr-ar.xpi 489260 BLAKE2B 325b0f0856703fbe183b5d40879aa18b8adf28a6c60b2377dc18bce3e8ad6959a01a48fd699e140dfbfffbbbe71a424261e5c1e655d613b50c010fdf2fd59906 SHA512 6a6d0b1932885ed13119cf2e479750de937ac18c65df95c69cb7deaa93e46d4723c8d37e018d9603261073b7fc85351c21f98624529f8609c496f51202b2c883 +DIST thunderbird-153.3.0esr-ast.xpi 414100 BLAKE2B 0474071d5d5af083619e245563b383f6ae5b110c74a150b39f388930eac138b644fcbc602c6a1f6e8cc82d8cc82a25749e7bda9ed7e7955e92842ed405ecd6b9 SHA512 67e947749999a71ea5da3e0a8df17e116fbd09cb6856995c7701b10a263d3a0c49b20bd229a598d93fe41a9cf2451bf53833c43d1670d7628e07b8eb68046b0b +DIST thunderbird-153.3.0esr-be.xpi 556041 BLAKE2B 35f17c6f88c499d9d06e7010e8a13fc897e02783003eaa823e8158d9ae38ad626f90947ba52719a4cd988b4cb6ad7c97f28aae3df62d9df641aa6011422d9903 SHA512 615551d5c69dda83261b8c2f0555d17d34a6c3c895fe6a4bee0917cb9ff04422abb162f3409abd2581a182daf4dfed07a70b74af65e04e7b75050bd2e7972e0b +DIST thunderbird-153.3.0esr-bg.xpi 567697 BLAKE2B bbe78ed4781332cb539352db80c467092481097a7c119049be30ebb37faab0f5b823e6443f79cfeb70c901464a061985918bba57074467dfab8b3958de9c6464 SHA512 57192d51c54ca8ee7ee09f80dd6e4316a70c50c52029bd34aad39d6769b6a360d90c4b0862a873653c7b94d19a8218830f0bf1883247dce263c29cca549022c3 +DIST thunderbird-153.3.0esr-br.xpi 440397 BLAKE2B 0246a51d1f208ab0902c15effe99da87f410945da1f70a16e6af29fadb107f86b14153f5910ef475d6cf32ba2f0ebdc119195738b32128202f6b26b0d8b9faac SHA512 e823af61038cb9001579a9d2e38fb072d4840b456c18829616063cbf989a2e3cee63bcfa00717e77efd57ba2b7464e79f9f45ee99b5c0b63482c34f5b07dcc38 +DIST thunderbird-153.3.0esr-ca.xpi 478071 BLAKE2B 88e9107607ecac32f34c2c1b7a9ff66e37de2c8d2c317d3aa6c3bc40a11f45e949a3e45e1dd93dee1a5151d76abdfa2ebba9a6b7d64a90783e8383c60ce690b8 SHA512 a8639be275c35a2120a6c96465505c509880bde2f21e36f022b8d43547475ddd0bec880a0f823396d2cd88e2565d70d856e88b4fd36fe3cab560336bdc3f65fe +DIST thunderbird-153.3.0esr-cak.xpi 457321 BLAKE2B 4a7e10f457e55acc2d7c16fd1ee029079feec0bc828eb1e8f7546c634b60a5d5179f421451844bdcb4c843cc5712f2ba93216fbcc536834e2a1f49fc696d99c0 SHA512 92abc0fc3af3c585521ae23607ae58c243f33e890444281f4bb87e014764fe10ff0d9133da4a4b050834e3519b890f7057f0fd278633ed4b9e93d01c1ae20875 +DIST thunderbird-153.3.0esr-cs.xpi 541324 BLAKE2B e862b2e14ac24fff3833fe78e6786a43d0b180b8758a600fd00b6734508d061743c6cd063714b2459483bf297a991fea3517bdaa0cfedc22d7036b6e3805ec9b SHA512 788dcb1d1eedc4173ff072230559bf6e23a53f4cd247eb18388242befedfdf0069984af8f0e2fb632d89f7d91808b65cf4f0ac2b48b9a4de4631e7fe583c21d9 +DIST thunderbird-153.3.0esr-cy.xpi 508886 BLAKE2B 2618384e664d4c9d2b1faeca3d0b58af8a1ab54aebc38347984f524179eea1f66ff77a4649df6c72ba55fb07ed0bc02f4f29d7a52672e4f21285b583b465c56a SHA512 9cede00548dd5faef225947bd2728653659609e0190d700389c6f2e053a4239df3bf24fb06e808d017abbde1fed409fcedae9518ef1d9a6ecaf4411fbea34b1b +DIST thunderbird-153.3.0esr-da.xpi 494753 BLAKE2B de622b3f01dad1cf67547b1668b634d48ee579b6eb15c6fb3f32c53899d9bd8a2dd93f8b17548e11ec5924e7bd22210933477d5680bf2901a3a441182d704d74 SHA512 1c0eee9e86a762860f74216d48682b21e62f3919034d77d1d8fa1391eff85c229267c6b13eebab9e6d5bdc1733890d88a78d68f64a0016554dc2295f3b2801ef +DIST thunderbird-153.3.0esr-de.xpi 524918 BLAKE2B 19d46064b20e4a01e2626f8473973e6e17fe3acaeaec1bc9bded29f6bba0e0e36a9cfeaa2c4ec07ae34612fb439501614a8fcba57fe5544982453cbd7aa3039c SHA512 70cf689fc1889a17d9644a5ba6ca7fb7e5eac3c06a5a91746cde9130dcb9bda92fb8c555faba5e4c470af0deab3cecd0aea1241bbad2bc3dfc074039d74197f8 +DIST thunderbird-153.3.0esr-dsb.xpi 538713 BLAKE2B 81308a1b0d2c7d3471feb10898410c329a738e49b0c66ed9f93fd7fa8509daa61d96c4dbf98d2c19a858878978268be5e657047305d619cf18084670bb732930 SHA512 4a0acd95d8a8d2190880c85a116c301af275c7ca9ab45bebae8577bbb8bf63ead051ccd8cb9af08e37feddce9d9318fe4c823fc1f0730ee0b57f08a1e7a8a2c7 +DIST thunderbird-153.3.0esr-el.xpi 631500 BLAKE2B e212584c758e032ddc152b7e9dd883dfdcc11873fcdbb61740ab320208dd245ce8aa6fb93fb113488b3ba625fd92181438aba429e374db3f2f80f79ba4a4b11e SHA512 8fc6a5e412b05332a0cf6e3328634d8767e349cf251aee4f90a0ff35c72c6f3c3e20e406948aea8369cfcc0c922dbc18f48b9b5ce01ca1f7fe722354f4a7ec9e +DIST thunderbird-153.3.0esr-en-CA.xpi 470422 BLAKE2B b766b15fa2b4f3224e7019e8effc56df7c2662ddfc77b824c7e3d10b31f3c49a060950893b4c0d812e12d3978e6eb8df542e10914d28f578e7e0e39dfce0d5b8 SHA512 c435bc971267339cf54e30ab8cdd3cf1e39a4242b51cecd0f0428d00ae0b74280d15c1234d0b1e1ebec7eca24349d849ffe755c8f94df94226f6827f1b799000 +DIST thunderbird-153.3.0esr-en-GB.xpi 470298 BLAKE2B 56251693cad73440819d36e53a41f14dbb34b9833adede6111020f4de16d3ef2fc7305e76a4518119538ca5642c525bca2877dc2a6a6c70c135d4bbca1739db4 SHA512 c49f1b2bb20da5c6ddd42d1306f66497ba9f1631654b9cabdca3a99edf3bff72ab1ffe8ab7f6c0c0afb77e638679c7175cc848530bb6a7914106aaba6a005b45 +DIST thunderbird-153.3.0esr-es-AR.xpi 514594 BLAKE2B 9c8936b49002e30c80007582a071fb7236c9f4e381025994508bb0f6064de2b7751244b3aa3bbdd5d541427529face4aa439fe6140b01d9fc81f36dc994dfc6b SHA512 a74a409f7e48259c08593ab3808bad0db8a30870c70ba8540a86949d2ef99059fc8c75486746ad8afb4b36355097eb3033312f13f645c8f3e61fbf0b99d877a7 +DIST thunderbird-153.3.0esr-es-ES.xpi 516904 BLAKE2B 6137ca1955ae0a3e99aae9725aa7a82c1a70e7621294864d60f80e105cfe5cc0120658d2ed43963b9dea251d272d3a0fe0d723a5d29d9859a8f9d6a8335337ef SHA512 d62cb685764716ee79afa07524c4bbb1e704f82b61b5acdbc0c0cf77d14bd47296a034e0439dd2e905ea6983d9c8fd98a47f210ed1617c51f9eba1309ff9d82d +DIST thunderbird-153.3.0esr-et.xpi 464356 BLAKE2B cc36fd6f2b392f03adcd9ddfac365b84ffbcf236f891ca7df3a234f01ab441ea5e7216dd74f86e50085c5e3cd8309894ba96d268786aac6253dc9178e52e3de6 SHA512 aaa738618de81ad7e3ff4f4b7fd566f9d81c51abb4b3db33c307b3dfa851400f6d3d3fc2ded1d98b94bb89bc5cde9ce4f7b8256b00d99fecfa601e4f25b39447 +DIST thunderbird-153.3.0esr-eu.xpi 497081 BLAKE2B bd763e03d8ebb923475945222a23cea0e64049dd35c82cabf93b297f4cbce8d7b6a7dd9c0744b0b1af517e7aa3d7788e8b7954f788626d7d9b2283e3475c626a SHA512 058f7221cb1a7396a9af06d6e398f7e02eaf15e08b43b5a6a84b8d351d371129c9139117681c6c58f655f79be9a188aece2d43c1fff3e3074d6eda16ec9276e6 +DIST thunderbird-153.3.0esr-fi.xpi 498097 BLAKE2B 66feee0a8eb560f32078a603effb424ff852158137bcb833b9b4b2848b0f3e5d60e295fdbc89269c8036d6d6a054a945b20f554b2b42e508d1917a8b35440cc9 SHA512 cfeb79456cf9deca9b3b4370dddc0337f329f93fd2cb9b2ba04c1881f581db2ddd2dc9cd12f44415b3223b178ca971982feb2e709e07651a1d5d46e4256aa768 +DIST thunderbird-153.3.0esr-fr.xpi 528630 BLAKE2B 8f10f5fe23aaf8bcc9e18985c60c14a4c93fc9992dcd6d62357e7e6cd42302ed3db4455e134e5662d95a3021cb2c46c616ec5813a7c8f8c21be4a0e63bcaa629 SHA512 bec0df2429b2b1607be97db693bab1dd203e5a00c07badacd8c4a2a507adfd21decd9b0a507c1dfd03b91004fdf3432c5df3ff2213e12b46a229df8286eb73ab +DIST thunderbird-153.3.0esr-fy-NL.xpi 510254 BLAKE2B 773da6080661a30eed334e58b0501e3f4319650efec02386618846ff64179d507d8592bc0bdb1247e3ff2553c024b42ccc13a9b8139a3a26213f935c8080eca3 SHA512 4f47835991b9491b4e5406318f289fbcd5870b2880e732dd5caf8211e238c319fed29ce9ee1317faf5b230a45691ec89ec1f23fafaef4a4c7c0c5677d7142774 +DIST thunderbird-153.3.0esr-ga-IE.xpi 432737 BLAKE2B d4d5c5375ad65713ae4144976744e8df740fea82f63dc51911535ee5e2cc512525ca144ac5c782f829deba2452c2c70aaa1a58cc8a1c6b31ccae414e2c121265 SHA512 836f77c0207c9e119572e712681dbf68b5066f55b7d88ce289f523091c566f37a457e967179897985a88bd84cd76b2d7c5bb9fdd8fccd201fb12b011f777a7c6 +DIST thunderbird-153.3.0esr-gd.xpi 486238 BLAKE2B 239dc3e9661a4f96bd1bb6727c4f1fa5156c2b74d6a4f958b85f14b01eca9fe58be512b8cd19eb28b99cd9019dc8ea8599aca00a7f79c588c80fe7a65a8fd41f SHA512 a8e292f8cdf4f1907092b10c3f7319b136a274e02cae4be5a82f2f70c92406f2c5bcd58d6fb42fdb19c136ff3b7455bcf7104cf6844357160d0d459f1bef4ed7 +DIST thunderbird-153.3.0esr-gl.xpi 500127 BLAKE2B 6d1c25b58bc6b504b8a9b4948a62089b827fdb0a49ccbd416b780f2ec16c0b86c2819e4ba9ae2bb9fd4504c4f7144b9ddfe988ff7b4309a351015390a179f1db SHA512 c8ad7eb41c5c8f74d9aa4c4ae3cd461390b300b1f1d5a5aed175eaa11634aebc0b98ed3364a68b2cfa7513f33d0b320ac70c5ee8e6c0e8aa23d82a08fd0105bb +DIST thunderbird-153.3.0esr-he.xpi 484645 BLAKE2B 81e1f6972e9d25a2b904188425782a150ba182ffe399df6adb2fcf13f8a78f2059d7cbaa08c81b510b91b19987c19287ea15af0a5f361cc785aefefedb2428b9 SHA512 996f8476ce6a2eca7858aa6474c3602e7e16a9896afd26d603e2fbd8e1941ff02d27bee36cd647dee6656cdfe72fa1fdc6b8cd06e5ec9dea59a063cc4908437c +DIST thunderbird-153.3.0esr-hr.xpi 498427 BLAKE2B 7aa0a823575a66686d185c35bbd4c295a4e9c5f1238f7db8554ba562c17805d19c4491ee43aaf8108c63745aabe00c8241aac089687181bab0cc0a607d1a93d1 SHA512 4d755c859fce9b7b62606c840c030153fed09ce91d92c089843d9b227b60f09e9619f22c26f1da143c9d2c6510bd122349011086983025761005b0aa1759bb8c +DIST thunderbird-153.3.0esr-hsb.xpi 536041 BLAKE2B 35f730a65b6f9bdd5a1156b34007db6ed2fe4b6b0b30c6934f0a9e41c6f40fe34f430c8b6480fc7ef8225fc8f0eb9c04d27c17b09bede70aa6ff2a2e559ea690 SHA512 de07bca6025332c90244769411df932c7f07b5a5d8944f464a91c91a15c07c99089474629d6982f672ca4b2bd4c5d202dd5b2af7de47a5640deaa9e7b6cd36b9 +DIST thunderbird-153.3.0esr-hu.xpi 538234 BLAKE2B 40aad7872d91aed82a008dba0fef83598ce6500c962863896a23104d13886243194107615b74e1de06aaad5da0cc890d1a905714ae978312cfa960aa7c6d0a90 SHA512 07024a8022873073a988f66f4503f2dce6fcbbce21c827ae9feee961bf1b48bd0860b3401738de2c0e12f71a515381554ac6337d727f27ba7628464f0f50ca66 +DIST thunderbird-153.3.0esr-id.xpi 482848 BLAKE2B 95da403b7fc3082389f6c7567db8ce4220bf06f6570db5f9f1d0cb9685f3e423fee62508393ccf899267a96953a5ec3d034471f9953d6e2f6e3260e14bf85eb4 SHA512 ce3a25f58655e34398b0109bc5e67f0b539e2122aa576e3f33f0205838ffba6ce5ecb30019d3cc40ed1175972f64a1a9a22811fbbbae72bce476432f19084949 +DIST thunderbird-153.3.0esr-is.xpi 508463 BLAKE2B 6066cb76388e920249b51288c9264ac8a85c80ce782a32c85a7dc32c6e3d04e2974fa0353ba13bb550c91f16fc3bfca526d749e167d2156d31a4add5e8b0ac57 SHA512 c3b6438e5750baf496894e9c8405e8fae17478f398e59e80c26cf656062408aa0721a5ecb33306b65ae595fdab00aeab9ef2bf01a0e16dcce5a35f8a3b7a86ea +DIST thunderbird-153.3.0esr-it.xpi 507911 BLAKE2B 35a359a36ce1ee0abb98ca8f7c9dba8e772b9fe027165ee216c194b17a69327243c496e2ed90d7d988e009f414ad80e8b080ba96e66ca3708d0d9f7d2b19a3a5 SHA512 9a201615ba05ef9e0c34004498ab74a27f0b18e501bf2cea6e50bc5586aac30f370e3aa58c74a40bb05de413eda8c6edd7c0d9b5107b68126e2d56e0cb03b04a +DIST thunderbird-153.3.0esr-ja.xpi 559784 BLAKE2B f79e186de0e0e63448d580669bee2b08bb7e1d830484c1dbcead4c2ce8a0a063f53252817d9a7f37a100084a998efe049a5ed861b0a01858ea15adce1da92bba SHA512 c0af2e9363d95b1bab51a71d1ba8ea089de375bb23df768a3ec9e978552a33172449f9980ad3ac123bdab93f669ef36858faf25875d31f462fb7a5cf25fba798 +DIST thunderbird-153.3.0esr-ka.xpi 577037 BLAKE2B 863e2af300b8391b6f0e20e00a7077c6b857800d1b4cc3fc20d98f588b88cfbedd519f6a5b959cbee1c3ba0ccee319d34f5d2f5d9731bfeb7c90c1a8d1e4d1c7 SHA512 40c9ff0477d0e8455de1e9e229cfaccb30caeb6d3b570f0d7ecd8a66a719b88bde8699c3f95f17ca1b66387420055e44f1cfaeec00d96fec54d91c77a679f9ae +DIST thunderbird-153.3.0esr-kab.xpi 488118 BLAKE2B 41a46dfc634674c1b47b38545031ad5243fca636c07973f50180215b2c9c36f789cee975fe7652c84954fe1105a1a3d1e5875b3d04a59f3760f327692e5cc40d SHA512 5680de98e22db62ab9c4ccc72966a65f55c0b4727aeb7eb640aa65ede83f7916649c1a8ec4d84b41f385e3ec0c759e8e5da25fe1cd508c51c7a49214bfd9eb61 +DIST thunderbird-153.3.0esr-kk.xpi 601244 BLAKE2B 9b579e7a172a34a49825f42f3edd334a4a076eab26c9fbbef01c4be1fd81fd7550a3075034aa4e6ce783d39c0e24d2dad5f5499057f916e5dfe44838fba07f1b SHA512 8bf949e68a077ba82e3564891a0edf43b2bd3f45930180185cb7d404e61196beae4d463825dfd99853ac28b951634b822f496f46d16ff1322c66f894a2b5043e +DIST thunderbird-153.3.0esr-ko.xpi 535390 BLAKE2B af47d2475272d74c876875133718c61def6e81ab24fe7162afebbf86194127ce3787358876b82a63bdec383e96cf819611d2122ff93af65c19bd55d829d4fcd0 SHA512 cdc96b29221cebbce72399246ec214393d8218648511ee1bd2ff481c82e11790d4f0185152b902f29182ae63efad410dea0f0049ad136d9f94a6679fb3bf0182 +DIST thunderbird-153.3.0esr-lt.xpi 481632 BLAKE2B 650be1c56a4a89e165247e58315ba212df716dcd16866df4353bbf21eb2675a1293770130c82f6173eb00d7156eb7298907efe58dc62932ef4fce52260ba1c36 SHA512 7f1a795a8b5533cad20f22ad7dddfa4faed10c673e2376ee4e8786eb571218098aea32487d9b27e122f805aad6ce0092796285d40088ea95de14d93da3be5c13 +DIST thunderbird-153.3.0esr-lv.xpi 452384 BLAKE2B 521b345a30d87a5bc0dfca7c6f63ac141e0089216d6bd5cc1ad4f6f3418a1ecaf9adcd78db1505df4a1c5e33047bd58980b87c6e9bd98ff8a15bfd0f0849050b SHA512 3268a4e9953f49d8c8b92bfd6d3eb969f43a7022db9166b2cd4cdf133dfae312d4692b18d673acc78abc191cd15e5477195cace6ffcc50bf289c92f4b9409264 +DIST thunderbird-153.3.0esr-ms.xpi 403311 BLAKE2B ed9e455d38078d33ce91ab57fc7158064d45442c6a37864244093108c6ff17477d3d18f3bd67c063bfa99fe5d979653a3955aed83061e83d4cd548e8333287a9 SHA512 b2766a15b85a0b9765b1883da689e0877cee14636aba70cf375dabb413dfa10b45b11765dd6b92cd14ee2c8536d24e9256a5b62c97e1b5bcbe0bb1df882b8dc4 +DIST thunderbird-153.3.0esr-nb-NO.xpi 495088 BLAKE2B cbaf2f3a01da52005843a247bde3504144828c1e0756057af154f06d95ef22df598967010d3baea85efdb4121334c2dd5dac8dee03c67ac2e44c22449c537d0f SHA512 6fa86aba29282f248d3c9003ed759e0cae69aa63b89f6479976d3a3ecfc451124b2cd878d6957d20d26e560faaa681b48c77d0fdff83449ea349986c2e88fa7e +DIST thunderbird-153.3.0esr-nl.xpi 501750 BLAKE2B ce6d0fe808eb765b2f83e5b4a98f256403ee6f6fcb7d1e344399c9b44b5a6d3304092f93e591dae91306ac914f2970c9fccfb2e1708b2e4fd3f4bad76ca23923 SHA512 3661b130518c08844e69bfbbe577c9407f575af37a509f124ea4ce8bfac13bbfca7925de4a476fb82c397f23f41f4312fc3814fec760f40eec61480b8af70249 +DIST thunderbird-153.3.0esr-nn-NO.xpi 499073 BLAKE2B 37717af903fd9e9e2ac997d50c76efbca933079dec86e69a995e47a3ecfaa6ed4c5f2b13db6c2ea2a6fa3be904dbdcc944c87f56b2dfb29d6c9160151a4dc3da SHA512 a25cd9fd6850659c1ca1ab344a00b48b740ebd39042fc82aad9c07367f5b58a008543a8be75491875d4e736379ceb77a98419d6ef67e7ed861d23b57203d77f5 +DIST thunderbird-153.3.0esr-pa-IN.xpi 491264 BLAKE2B d0d4454967a429817bbf73dbe046579155aa546fd759032083de62a0b04ef72bb6ff015e377784aa73f747cbaa34ca4ce6bd489b3d8f5d69c5195c2150039792 SHA512 086ffb901f52479b0a41419003bdde2746fcef38346b9737deacba87687801ef4e7dbb6f76a7f0dd65f8afba667dfb76170f306fffd044bdfc60304f12ffd45b +DIST thunderbird-153.3.0esr-pl.xpi 536404 BLAKE2B b6f4c27597666d96a964490336991c786a2a68ca0133a79304a951f0391932f2ffda1f9a1ad6ae425d7f40c6659b4024b8159b01544258f9e1a10bf8d34717de SHA512 1133136b515e6cfdac4735d2df2b93447f6bbd885a81b27c60306a116313b8214b43099116dfdeeb99be62e53b9cae6e1dcbe117b36d8057aa17019ae5250048 +DIST thunderbird-153.3.0esr-pt-BR.xpi 508297 BLAKE2B c07b0fba788857057095ae8102d601891685164f44a5fddbc0f4c16a35c93c05004fed4e9426fae18dafcc88fd01b4ad7c6af7eff5c3e6997bcb32dc5b53a4d8 SHA512 6b3b95ddb5e2349cb171990c0d8a2154544836109d6a83deb78468fa2173398e1f3b8882047e9c8a9b65abef9a337ba65b6f88df95f9bbb8467f571339d582a3 +DIST thunderbird-153.3.0esr-pt-PT.xpi 513429 BLAKE2B 8740e7274e23d7d10aa1a18d65b16d4c3979c2aebc664372595a474dc4855e475d0c74758d073eb841ed111ccfb516ff51d46c06cae47370c6ebbef5b8a6c72d SHA512 25ad9fa3aadf8c212c7b2d54b7ea8f52527c5ccb5bcdf751c9790a589363fd91e982a499936c23e0700de4498f1fb2e298497780c200cd1e46c6cc0b8fb42df5 +DIST thunderbird-153.3.0esr-rm.xpi 498934 BLAKE2B 165238cb46e71f3fcc6d08f404ecfd94238c37a97e30b87960239760b7800c7cdf48f30128e04ba7eb056e703170e810cfd14a6c413bef5070a9bfececba75c7 SHA512 063501f62ccafd24d61d698d0b7e4a5bb755b125bc46686fe2a172a2ba5dfc0c450ac83c215baf36bbc9220a16fc7440fa2dd6d8b8834d06da952cc1112e773c +DIST thunderbird-153.3.0esr-ro.xpi 521152 BLAKE2B 032c74acfc0d7b90c6e56f21467114d7e3d6122308d9be2677fe50ceb594ac5effc6348d3eb907057be7cf3e9fd42c6ed3de5f6cf044dc7f2953b7e09d7eaa0a SHA512 9d651b3273c9f3080386dbaa42f9206563eca574208c473a9a73c2523ad2ebc6c9b0ff27332279a58f428ee61a9711bc382f850b233d927f40d1464e58f7f578 +DIST thunderbird-153.3.0esr-ru.xpi 616071 BLAKE2B e164ae3ce768007ee3b00c9809c3608a7ccca8062b8bde12da8c8527da08f1e53061a5c6da44c1438357c5fda688ba4faab3f7a2f2190cc8c369e209ead29b41 SHA512 3f1add3b7012ad44ab95f8973964159332f416cd83c410e0dd3c1dce80777cc4fb2f7a46096c93d002982ada0e9c000c4d7daa00b9917d6518e483130bec867c +DIST thunderbird-153.3.0esr-sk.xpi 541182 BLAKE2B 4526f8c14178821ccd6f386f84ae3c8d0f79b8e8eca4f6af2691ec714f4ce9465169c8d59805772df9c7ab1e749f6c7854163e67d02dcd0d7a6561dd17725a3f SHA512 a3ee2beb2b05b2f4aa670c1cdd1d115756997a5061034c442bfc6d9caee53eef1b9f2f4362baf43e59ae86ecfdec168340dacea345cbfecbfedc2ebe1ef866a7 +DIST thunderbird-153.3.0esr-sl.xpi 508742 BLAKE2B 3e14ed7858add9640148b093c231b9cfc7370e2e85591160cd6503d82cb949c06aa7d0bc33de0bd798a58c82b3f085d55b4cb11b0e19b6a1f855fbc1b67e15e3 SHA512 14d212aac8f0e188934d60a7f63e1dbf4007ad6be54f9584ece4fd80223d909236444ec618461e25d4eca3597c4d5dd7032259984c18ef93839f2cddf400118c +DIST thunderbird-153.3.0esr-sq.xpi 525029 BLAKE2B 57c37f749ef58eb0887a8b7efcacf159edc5a5daad4071b04c46b45ae367c85d9f8ec6b1e80fe7b23ce13075956e1f5739f0f42ea00dadae9caa7179c326b234 SHA512 2875453530e742e93d7b624de58bb3d55754df673a575794759b4442292edd59f044a5959818e3473591ba8697a936c2b015df2e8b1ee4f370cece240870d79f +DIST thunderbird-153.3.0esr-sr.xpi 581150 BLAKE2B db63a7cd892c16bb42c5101f4152bf67bdab8bc205e1618da8bdf1fbf03dc0c73db25e2b6881eaa0aa1deb74c84bbd71c47b57398214bd5d943fbb450d0a5fae SHA512 5b65748a50f8162e078b7742e8572bdf80b38ab42eb01ddda7e309c897821ff0d59f5affa957f909e716da856b1298b4f25713b052bf160d1328e7fccb50568f +DIST thunderbird-153.3.0esr-sv-SE.xpi 503769 BLAKE2B 075dc2ca108e2f953a613850ad7eff7d9c1a166ed7a8407ffc7e861073a516c05e16c9e15d52306cd0154624e3819f521063991b2e236b243bf24767229ef896 SHA512 0573e4d67c94da3945ea21caf3b63eb7dfcf5112238b8bd9702d718de3b3da55e900b2372e58c5245a64d09202e6793eea06a327d418b0cf4d46264d4abdec1d +DIST thunderbird-153.3.0esr-th.xpi 585202 BLAKE2B a51b93d342eab4eaa7297cfedb03fefe801e32591034d1465cc730edc783cc485c2839eae8fd9ae46be0ad83dff6e2e218f7edd2abd8d3751ea32de4dc8e7b7a SHA512 229a1e58377281b8a9a542b3bc8d91fd17a5ee77b3ce39e5c26ca1407d36d8351768102b6ea9c47629c5ef2390adcf8c7c2c73d35add8d015766e6a625dad78a +DIST thunderbird-153.3.0esr-tr.xpi 515617 BLAKE2B 5b6a7c79adb3a926a3865048ee66c1979fb6e236fe9fa62c3a45ade44fac6361c24cea19cd1c9e5a1fa21db769013bf8990ba1dab338f0ae7e1bc0f7ad5cd19a SHA512 20e1df8c5fd832172f20c4b86559535ef23bc18e88de5b20593b4a680923de27f31a23552a05057041ea1962c224ccd4af1bd2180914aa6bea9da59765a1c07f +DIST thunderbird-153.3.0esr-uk.xpi 596148 BLAKE2B f7d5acf38596e90a8ceab355ea067540f52776675f30cc694ee3149760bad29a1d76f4d417613db9ade27b82c02643c2b59f20d9fa88b87ead976b0ebf328bf9 SHA512 248da5b36e06d8ebd0ceb0980c0d7a16ef6486aa42a59833c973b4e33abf85dfa9531245a611295025e3f9ec04120095a2d19eb00b06b774e36855c8949819b5 +DIST thunderbird-153.3.0esr-uz.xpi 419563 BLAKE2B d5871b13844816fb793684635514e4e8b246dd00fb172fec8bb2855086154b4bfcfbc24069560b61760a594df9f874bb7ba05503e59c54441860c2c97b06834c SHA512 022737c5e9987a2fbdc24c69ba9fb5fbc824b76ecb247f9cf3bab2c4da48033b916ff45f3ed9afcadc3a073b433e25c1bbce8be82a94ae665ce21473b746c04f +DIST thunderbird-153.3.0esr-vi.xpi 541930 BLAKE2B c29226f87d886a67f3a83e923fb91166aa04967b15f98dc55ec94bc5872b4ea3cd38404a069de6712b8afad61a9faae7fe83ba0944deb57d3ec915fb8e77ffd3 SHA512 1cb6d983fd27c04d4de556d797d98539ef983690a5a8c0cc9229ce4dac1dc80c668d2532ce457ffa5dd63143d97c8bab6e50ecd829f993cdb8c7f2b248968bbb +DIST thunderbird-153.3.0esr-zh-CN.xpi 526360 BLAKE2B df3f7f0a6dfe6cad3a06ee2d59588133fcab019f714d0dafe4f06a51e76ab48f98f3913e92a39278ffd68050efd894c6a2b351fae2c52a4ba26b94c736d2f9eb SHA512 c04bdd944744fff2945656b0a59a91bfe835846b1c25551462123646f710136f9b305389b44381007fc0f16fd9d2da1af3c12bda2fcaeaa236004bfa674acd5c +DIST thunderbird-153.3.0esr-zh-TW.xpi 530596 BLAKE2B 58d2881ee6e1190f557979c6701d197de09d21af3c5d3e3f58e481175da4a87da265a2cefc795d640102402f0cfe6d7ce61023781ff0fed818462b457d2df4e4 SHA512 5f541d0892335a2df75c36b447de8b6d36a822c53ddbf234b1b52311bd23280422e56dc7eb25d404f551846ceae33165799074201f31deb6e2f504c35d02b230 DIST thunderbird-155.0-af.xpi 394056 BLAKE2B f9724426c22d2ac5c6d9fa0f68b50ad4d700132abc5b9d3ac94ae024e1ad2dd6547eea16ee2821fd54db7c50e78bba9a2caf4ac1bc78be90c077f7907bd22312 SHA512 7509b73ff727f82b3184ad457b22f3adc91fef2818624caa74056c02436bfa475ca314d97f61904a3d00dfb8f0ba55d2197d90b94bf7aadaa8b3a184542c6fac DIST thunderbird-155.0-ar.xpi 490939 BLAKE2B 23df5323d7fd7c67da889b966e75bded92a9763ce13fcccb71591098c1bc749f131701fe2523b74a1344d39ea6b5eb6677f2cd75587511c57e9915c58ed97ccf SHA512 f3045783fa586207c3e4d443de7dd9227054c1444084fccd7a2acf0cfd2969f5362add6fc7a3828c5762e510de2b9b21a2e941627f361fe1fd24cf6d8e6fd245 DIST thunderbird-155.0-ast.xpi 411416 BLAKE2B c0927fdf6923a08f8f8f14cc8a2193fd0a787963b781a12f0b5a1f6b3302b4e38412d566852260ef8a8325dec4c8fad403ad0b8ce5a475766de4a88d2c6bd658 SHA512 471861ed5b1c735c05ebc115701fd28d1e38dbc6156885e3c192348b985b86ee3b0a43c070434287361d74b33b60278ed02bcd6bcdfd491e0e195955f1c940a9 @@ -187,3 +250,66 @@ DIST thunderbird-155.0.1-uz.xpi 417899 BLAKE2B ee17218b383642bca66a55a2e8d9d3ae5 DIST thunderbird-155.0.1-vi.xpi 546292 BLAKE2B b67044b2b7b0429761b0b6edea263014475317b3539e7a5f818736a0fd5808a9b05e3c34dead9dc646815ec85c02c12e7ec9d90117367cf75cb323cf1ae7ce41 SHA512 de4c9e292219315220357ad6772204e9a1be67d8199cc9239a2d4c0aa648c21be3c6dd448d582b3752ca482445599ed5e6c8aa388e0ee349304b12715538eb8b DIST thunderbird-155.0.1-zh-CN.xpi 529263 BLAKE2B d7a872a35773d0f26170d0eb1df7b8fe1d940330cdf05e08ff2d125858c5a3478d68a944fb16c755bdf35f7cb4751a89e0a2b4fedde8f0ec30a957d8f48bd1ff SHA512 7bfe552932a0d61dfed4c9f1e716a4e78cd65295ea2b94ec117bb13d0a1f8c46c4fd26115678718f412f4d1c14a2fb57a8e865ae3dc3c95dfd26a68ee6e363a0 DIST thunderbird-155.0.1-zh-TW.xpi 534870 BLAKE2B f96d780fd6786b2ea9b7e25ec75c0d6738d46bd8714662ada72c13081eb2df533f2f4af10a839bc2fba52dca9d5cc852a82c1d778c4858602b5bfb64368469c4 SHA512 8a04ca4708df980746686c008fc226c5fc02dd54b6e04fa46388ff29e46808751c4294ae04b212321bc8e33bd16222810452012aaadcfb313a009d16bbfb7cbf +DIST thunderbird-156.0-af.xpi 395008 BLAKE2B a840d16a01b572da3542032aec160184478209b873138deca4849890bb5b9c78dc767fd7fe0bc36f9aaee3c246e49321ccf1a13dece61ac8c5da86c7774e3443 SHA512 418d4e70b7e2eff9d0de78603300d73836dc9e0fb9a4f594c352cdf1250a30049135f3415c909f833a963d34c1502e497039c2d29979ef38b0182bd201504bb0 +DIST thunderbird-156.0-ar.xpi 492142 BLAKE2B 50e8fe48920482ada5a67e0f0749fb4db40b7946ba96af9f1de96b811f80d95f53f44dbd2f689dbfbb07fd89b1751a895808feeb459898c31b009b9c8fcc0179 SHA512 667b48b88e18507ba31939b027d97b0a6ffa0803ab22ec13e919b070bf1d934542a6dc0d516c41fdd4792d7bfe95f972db25e02661b8a2886b07a9c9845be9db +DIST thunderbird-156.0-ast.xpi 412398 BLAKE2B fc6794c4ff773246bd170773a9b383dbee617103fb9ea386e23e7bae0f2285696c786e83909a77a973a4d7713f9aa4759b0c36fcbd788c66e420c9abbd0d6c77 SHA512 8ac394ca5688a5776f95f78418d3fca54d13f475a37e7a3b85f62fcd6ff5ba2da0dd637d3ea4ef98916557e2381746f21722256d0877ccd10ffc2768f5e4be0e +DIST thunderbird-156.0-be.xpi 561533 BLAKE2B 07bf7cbf886a3eb495913b7f1c970cc48cb7f656fe9c4f13a3d539ee07e43c8377bc40e9ab08250c0c89482104bf907f2d1513064db926af43cecdf670f3d670 SHA512 aa4abd67f3930df939562eb1c03330d50b81ac5583ac5b2c9da338094b731614e98892349c4cb3d797064b06e7cae0e3713b368f2ef3642db6aa8c2a889863cb +DIST thunderbird-156.0-bg.xpi 569561 BLAKE2B de5b9028b1b851fdf83dfca65c3a0aea0ba53b4a96962c508c8ac8ab087dd8d9600421d2d4ec3c560f3881778b2a4f980adacd95a564d35d18edf4dcb61d3f8e SHA512 61156e0b08229741cedd3e366436e6ca3d7ea124af75ade96af3ab1fcdebb131c76116fca385582dee5e7f3af0a3d6662dad28792890aafb9f0353256598fc63 +DIST thunderbird-156.0-br.xpi 441277 BLAKE2B 4f16e3477b8a5c36a99a48af058d2291e9be237abcab808c235464fa3e0f257790e2da95a98e2755a20b146f7b6d56348add3bbc4c54d9401615bac2ba5810d8 SHA512 e9b10b4b1af070bd9080cb9e4f0e628bd6a47681e6e2ba93d47d02a12b928caf6435b43e3076c38c1483ea1598da6a6a12437f0233a7ae1f37c6377d1f03f90b +DIST thunderbird-156.0-ca.xpi 481093 BLAKE2B 269148e33a7c8a19c6987a979d124680efaf902377a659ccb930fc81441c39a375fbafdd876e07bdbc98a16c3579e19229be66186fc06d2b660e1bedb09d6de4 SHA512 fc6cad6ebff2105087d9c2c0b8d687cb61359d58b27944ed4ff0342ddee7847fe6324584d42efdcb5237fa115c0168855232ad0d85f500684c3affc31a44e5ae +DIST thunderbird-156.0-cak.xpi 457532 BLAKE2B 3f92324b0fac63fc662b600079d038c65bd45acadb87a3a8d06e7129855175b16cc3255eac7f0d489c3040f7f3ea45d0ba20ae0af61eff63b3d12d439ecf7118 SHA512 92308ccb1e8194ade964a785e046e1bcd619d2c4651a083b523da68ad4edaee27ec3f8daf0bf6ce04a866add76fb74af843f59abafff365a606df09b36a731d3 +DIST thunderbird-156.0-cs.xpi 548366 BLAKE2B df98bf020b59fbeb290ab92392ad7d52201d1136cda80d0274058b18a4f8532162207fb49dc1377ed097cebbfdc8eb217da3e0a8e914e04eeec1777d1b9297c2 SHA512 eb316c4ba34fd082d0e1663f10860b6c2632093236ac7e326ffb726b4ec9c3841e05216ef90fbd003b16db998d194ef2f410d8a65f68ad4b209a66cbd9b098b6 +DIST thunderbird-156.0-cy.xpi 515654 BLAKE2B 39c532b86cb906fe9878213436aa579988068463612dd1ca7bb0042c85309e323edc2161fe151aadda0ffbdcc672a624416212651d35562a91e99b0e32317e3a SHA512 6f9ccdf2c792e01008f5626bbbdd90dd40f2c9761013186a49c6fd33582613bb8cfe856c0d9eab9ec2ba494fa06b505a2b82433aa8188de19899df919c7afc12 +DIST thunderbird-156.0-da.xpi 498965 BLAKE2B 9bb230ed46743622efb0acb2741967e25474d9525503b4ba3113e8171e5791dc360a02975dc567b7be21f49078f4218eac081aa7cdf43d4293936e4c9f0161ba SHA512 776407fdaeb719ef48e5ab1b50be313d10f8e401643007c4472a4741255a8bd4ba0d8bbac556772b59917d4923bedf841b4ff3230d90565b7956876af56672c0 +DIST thunderbird-156.0-de.xpi 531666 BLAKE2B 4ffb506f56105c63b44970cc90ea3bd9e48f98cd4d6bbf83e71f457001c13a5652ad8815b60f213dea61f9b30c6119a62119555444303cd1b997bf8653662726 SHA512 d31f41507b0cd59bfb53af292e444af0f94c01c71e6745e36ecf4f955adeeecc0a96a34663b921dae3a1c60369cb497e94c992d75266d134b6d7aa42d23c81c7 +DIST thunderbird-156.0-dsb.xpi 545575 BLAKE2B 8b432c8c2022b3a58232cb2ee68d571c05ad704cd38148fd5ada203fb4a6c5784429f5d3dfb600245b244c3b289a18c78c662c062366d876a402759dbb567c81 SHA512 1cb9b0505740696c8e0fcc230206010a2e11543bd2cf8f3de0e913ad3c4259b9c406a51a905c094f8a3b5b9b688cb6de8ed3a978ec47e309ffbc3223854ec386 +DIST thunderbird-156.0-el.xpi 639582 BLAKE2B 60ff538717846f0901c25be32a66a91da936497a7e7e9cc4e3df81ff5e5c37ee659d03eccb3893578262cab4e895291e3f842dc1a15daf9136477470f55b1e9d SHA512 f86c07506a717c92c45b1781a469cd5eb587db8c51bcd5ac6981b2b09f1a68d688cd36edb0368276bcd01c104f88f507c47e50806e4ca8105c803cd1420d5d87 +DIST thunderbird-156.0-en-CA.xpi 474765 BLAKE2B 371eb8a856cbe589c51cb534f7ea7f0c99e9ea5adb8333f1e1d6a8f89823c588b79c0f553ec67295fb0c755a518fd9da94955c36fd824b66bc432bd7d52153d3 SHA512 98a7586c886cde46217034a38436cd0d44886349d640d6f4abbb95816095860f3d99c4e7af23bf90b0b1d0c748035f6d60db6dc3061f2858713a4d457f57f4f1 +DIST thunderbird-156.0-en-GB.xpi 475703 BLAKE2B 615e10ce27d9035d68bfc1b9697a48ef55432c0bb62924befcbb4a6d500588ec7efc22bc320d787a5d81b51ff2d78552a7b490f2ef16de75ad40bca65842fd72 SHA512 9d770d9935a4d6c66206cde357344c61896f589ee5f59292909f76fb04f94e00041165ba5b2f66c1749c4c78900a5a3efe82f0a21a7df8dc1b0fd94caf29efea +DIST thunderbird-156.0-es-AR.xpi 520624 BLAKE2B 672a4de0431e28edb0866e539281921366175df96e74f4f5bff489f25d0a53df47b064d6fee659c9272bf2404daad530a598f7790f09b6360b46794e5b1775ca SHA512 fc35c1c6e221f1f1a80dc760111ef000e26a1fed41c239a85cfbc07c6acc49922e2389fdcf44b385a02c0bf2fde11088acb0464ef36bc891e59529e3cebbde89 +DIST thunderbird-156.0-es-ES.xpi 519931 BLAKE2B 5258020d70a12efd498342feebe47d9eeec742311d9e2506a187b65180ed8d972c6544fe824b0ad7c22439c9b5b4d7c2e3644b8eb4a8b8233a7f055ebe1cc2c1 SHA512 b465a22f5098ccf92ad26b96bc61f828305907838426d9e4373dce96950a364b85b84af6cf6da424c4bf37e831fec2e891a382934fbe3ad0ce39036819575a4a +DIST thunderbird-156.0-et.xpi 466129 BLAKE2B f0c3ef160f905473cd8febd2304aa287a59a018e75122468ad8069b24ea4a93616c68c5bbaf5640216ea4ab3259e46f23042d5329f22238f5ae0f759d9942843 SHA512 04239b530ef2133e17f6789482371aa897732e780c5dd84ce25a540c85691c55eec679edd4464d3650bbd949d9d814a5927079de3f3c6a7285754b0394a816de +DIST thunderbird-156.0-eu.xpi 502718 BLAKE2B 9b090c82d86b245f4b1469a754c8b5f09bc849bc951818a40fa08711ab0f6b1de9ba46a715112c11446dfc4e29dbc8e452ed7e5b0ed1fb6ff42af2cae2ffaec9 SHA512 e8ac3b4af74f70b8fe533f03797e50c6dcb26608d1de90844e022f53ead8e558aa259a1243d12da151bb71bb6c58ec0b893c2fb7a0d14bb62c6dce71cf2f7e98 +DIST thunderbird-156.0-fi.xpi 502993 BLAKE2B 217f0ac0901d58da3ff1b568da527897320990426e6a4d68810fb893f0188474f47a332b359bfb39c3981aa41d596ae91e228e42deaebe7d1e3baef3a67c0403 SHA512 01c7364251c5ab7e368d108faf409ab45a67f2a48b4bfc39734cd60c6064b15ac0d06c77febdea242beb8799115359807bc548bc37f0427dbe9e69b298aa448c +DIST thunderbird-156.0-fr.xpi 535173 BLAKE2B 67d129fba359edc8ab6ec9a10599f55215203e11ec0a65774f6b3b28a1e18dca9f0761a3209fb5e3f16ecff72f1a41fc186564f8296bb1886d1240d2a3286fa7 SHA512 9cff61dfa89639a469f0a4b0990d0a1513c9d84213db7e8e605bc9c368a51183c5c103983c19c41cfee076565893581675f586dbf9e713d2770373ba17af09e6 +DIST thunderbird-156.0-fy-NL.xpi 515764 BLAKE2B 375f10e2066ea41cd43fd85d8804c604a9441ded75389b4c6b43b89e4f83d89621d7675e0effb1022a34bc7394651fdacb78d33dde8fcad8752809fe6bcb9f5f SHA512 dadaf632b5204f80acd3c6418817982ad3d1abb92ecd06b2e1d2a2765a851fe5e89ba03f352852ca007a544793de14dae1221eb00d2c1a4b9449ab2532322e2f +DIST thunderbird-156.0-ga-IE.xpi 433509 BLAKE2B 16dac22d2a793f52ba3574455b48bfb86bfc8e529aca8a677a8312f17fc5662a00c4148661dc734109f6b72e6916ec158ca4eed2f8cf4f5e6f87acaadb99fdd3 SHA512 e36e11882e50281c9a2bb9a86b298b3d7d5341d5d225c29365185dc40fb2f1a1ba18a2a381331eec01ee9ebd44c21e4da45a3fe8449ed421665d51f29105a2c1 +DIST thunderbird-156.0-gd.xpi 488009 BLAKE2B 4c872c05ea949b16646d307100041d948ab939c8478f078c0d0a3df526fab33bbac49e608fffccb0548db9883f253d549825e171e779145477e402df3bd4b41e SHA512 43576fcf2673be06dd56857854cc14b7b1fcd1a7fa44220c6bfc31d22d43a561475836141fc40b198746bae97dc2607dc013ca193c92a996a820f36be9a34f17 +DIST thunderbird-156.0-gl.xpi 501860 BLAKE2B b44f16e723fbd81afe68b503a613cb1aee8ae0080c5f5c431051612e3a8c87bdf869a4bd09049c1ead1616000f215e6265caaaccd07c81e4911768a98a1ebe2d SHA512 b4b4e41098e6183f959f6a1a6763d3fcfb2bcc8fe6c55b96c729bc7921faacc8420eca5ba2b0e371cf484ecef6f6eac9d6d5b59bb463c1c847e19f7fcd2bbcd9 +DIST thunderbird-156.0-he.xpi 489125 BLAKE2B 1e7142dce786986973f39d5153a9b3e1a5799890295b91f9daa8c1875524840310d604bcf845a8fd536630b20a9bcab54de8089fdd60fba19e25044ac7c679ed SHA512 fbaa2ecbfd170bc9a07a617454b7ed7be6a8190f18d4803378ab24e6997c6fc662b8ab39b7c6b555b76571c9ec875823ba7b5b472cf0a74172d9ebc091e31afb +DIST thunderbird-156.0-hr.xpi 500990 BLAKE2B 644efb7d715c1b9d7c4cc5179a738c656ecc06036fcd4e5fbf43b7aa6540251bd12821c352e85237eb212531fdee2cdccc797578eea666097f40a0a6c54828b6 SHA512 2217a23ac8a16bffc0ed3479b3be5ba1f6beba65bc5ee8deadc4ed764508ef28c2d791e5fa7ff134fc0f12c5b705fabbc2a17bbb1b5df926757a81ae09801f1a +DIST thunderbird-156.0-hsb.xpi 542816 BLAKE2B eca30f28b7a1a658d50a1f0ef5f7e06f31d819518f4a050e49ee64157ff6f03bd3503210702e47e33e7e43f7d0d58c03846633acbbd23675ca6a38e5a4e74593 SHA512 64c988897ac433e475058530ea61470d0ab61a9d1e8f464c6b73cedf9f67fd4669ce66a785cf3c07b616cd23103546f623e913aa842c686c436ece971f629259 +DIST thunderbird-156.0-hu.xpi 544853 BLAKE2B 8e8e8eec1e3e337000f05074aa07ae2cb252b7dedadc3f178dabd43cfc6fd329a62e608b4618902c73b722fae5323e64f9e5722935b0c06a8859f6e187fdfd74 SHA512 f9750c9683aea44abfa478445c00d44809c2e289f5b2cdea641f4417fe04c7e0ece2dad1cb9ca5329f0a3abcfa46d4c12667e15cb376678dea0685753e2fc4ff +DIST thunderbird-156.0-id.xpi 485902 BLAKE2B 7b3863a1be4d73ea449cfa351134d43d78ab861c9a03821a9dacf6d8b7f880df24447eb93f60f2d654f9a47ab0a779685b13efeff3696d8b9d0d7aa6c60771e7 SHA512 4f699dc165c44f373a35c65d09f6240f4d522f869fe7ceafecc32a19af4c33d5b613867d83c2b41fdc33bc366753bce3bfcdbefe8a7068574a2bcef00d148aba +DIST thunderbird-156.0-is.xpi 511750 BLAKE2B 25d2b4ce6564182890447e277aa756f338d9f075fa9de48f509190e74766988d10178dcb1ed44679df7d4f02a83a5c29c8d88deea75e87ce952b646d7344cd75 SHA512 0bbf9870dfaad30f2008ebc5b937bdd0e0dc6fc64a1a7732d253f1410828e761ce920e3146bd883be05c2a4bbf097992e76677ff59ac3f5f3a82be65f9a8472c +DIST thunderbird-156.0-it.xpi 514221 BLAKE2B 88e49f36aa8df23abb5fb18624633e7aa76e3204fe178b33607113072c56190819ab92a6baa01bcfb319b8aa53f3c28ce46adc21256b5bd14d209b64869f8547 SHA512 6bc3b3d93413ea3c5129d5daf7f56fa1e29523fd8b63c07e155d52ce1f40201d1d15e2c72bc0b0031b4ff530e1fb9183d1ab2720c640204a63ca968296185664 +DIST thunderbird-156.0-ja.xpi 566790 BLAKE2B c0a633fbcb35c2a7aeaa126c177f0bef8f2c693af366da5f7d6a826b153378683d60ea4f0c30ddcb38af73e529e5c2ea8a9ae4b8eb51e4157c388bd402ddab2d SHA512 c952362c5285c551f92f441191edf6450955e5de10ff507c1fd82ec6fa7993b4b533841084b14509f25c392357fa7e8c6f7134a3bafd57b52d469555d9fa5555 +DIST thunderbird-156.0-ka.xpi 583985 BLAKE2B cb0efad2a8a7bc3802165e6811f21b013870b25f8745fa24dea75c02a6593b338cac25a49ab0ea16271e09c6a66712382fa5448b46b8f90198225b624d4d7834 SHA512 9de0445294c97068f8d53cbe2a30660f8cdd07a6c6e2baea11cc0d5b105d8a7fac9c3cc0bd20d49ba2d8642a365776b5fb56a8d1f8b843c0d51f139275b80450 +DIST thunderbird-156.0-kab.xpi 489863 BLAKE2B c8519f45512235164b9b20ba03a2cab03aff65a02cea30f758bcce9464aa1e1df5bf5ad7332ada29b2a4c0d38802c9a4dd20916005400e365bcbc7f3d1a499b7 SHA512 5b19c5a76902fe6471d2f5b0da53686fc6d3fa817eade7e344e0866fb30e14dec4833e8a1312ec568dc35b4ab1393927a11db0ba4762b98592fee2e429cee385 +DIST thunderbird-156.0-kk.xpi 609035 BLAKE2B 2e8a97ad2fdf920e7c21a7340b0aa9af0abf0c0ac204e0bb33326adc2060fc3a6596a70eb568654a706d23c77d238775d5281c8c4b3781c4c700b648a70075e6 SHA512 c48f2b81b4e2de3a14a9807854f7574488878bca108f492e2809d5cd24b036c8c965aee0565f15e024b410955394594e8813e368c8aca2d259ed8af3e6ec42f0 +DIST thunderbird-156.0-ko.xpi 541826 BLAKE2B 09329688845052a365300e593a704b9041c966de00e2eb9130432653d486a3b9caeafcac9be90890c3abe0a8517a872fb45806c706e2da85a8906837b06c84f3 SHA512 b48faa17021acfef33abd3403a59b2a034b30ba456a2c082896b5678702a6aafe8e10e7f9e8986680a7d0de6fc26c7e674ab58207525b1ddf7d69fc724706c88 +DIST thunderbird-156.0-lt.xpi 483281 BLAKE2B 837a4370451e7275b756c1b37bae8be3515fc4aac3868ae5e411e2a72ed37d20b8cb0592a8f390285e75cdda97f863547bebd58c908b1e4141d2335e5dea9df5 SHA512 a5624e3ed0aacb378435008cb9854a3bef3fe9f56e9e90bfbc46aad633c12470c1574fd7e087156dadac0e0dc7416f5c8aa6f8a17b632e39f746655ca3c96a4d +DIST thunderbird-156.0-lv.xpi 450023 BLAKE2B 9553b183bd02c3c81fc184ef32d9d3be1d81a536fba4e6377f14bfd7ba8b697c68f82ad70a1a951fabf64dc496841477dba23e88be7770e92d7c06adaae5b326 SHA512 4054dc63a9e637fccbe6a83e1ef0d33a52767e4b394cbdfbfcfbc13b10040bcd0569f88ec7468b56b814943d3fe578fd22e7068fd82cfeb7dab2eacc18b9d078 +DIST thunderbird-156.0-ms.xpi 404885 BLAKE2B b10a8e96bd082fbbd6dab12293ca5c542636e86ebff8950136d158ee83cb98c2c4ffe13ef1ee780fc8992706efdd2fb1bdc2c7b829400a199820e2a881c11258 SHA512 c260a57775565cd0323498517ba4a276d0a2dbbce72ab4fd318d58b1a4eea1a0d7ee49ad02037b0474de3737bb8db2954338bd80526e528f36e4f4bcc7e40c39 +DIST thunderbird-156.0-nb-NO.xpi 500969 BLAKE2B 49e44ea04478663b6746301446fb41ccf8a0f31284a3fe22d381442d0488addcdecb4e1147c9c16e8d2ef5dd53fe246fba494ed39cea1509e3dca6402ebaa26d SHA512 371c5f25db0e50c089c6eaeaa79dec59026e5183779428ef83cecb612e32a5caad9db33b0b2bcbc5d682b7cd8c6b95ad4fa0500bde4c1b405425b620496386a3 +DIST thunderbird-156.0-nl.xpi 507803 BLAKE2B 1a0ab108734375aecd12fd3ce459967d081b577161807ab5fc8dcc56f7f73b36a41d7972f6ed8e243920e9e4c6be00772e4e99b8f07d733f71173b2fe5620f99 SHA512 3cdc691704af645d697d9572a6090435c584dd67760b0c5439f52f7ea4a20a524cc5a1168e035c85b176c7f899a7c82d1dd39103bd36e1de3eaea2dc1f15c4db +DIST thunderbird-156.0-nn-NO.xpi 505073 BLAKE2B 5706b6448a850dac4f034c25b3dbdc607b11359541a693bfc8892f1dc9e34230758435478b9d0f4a789f15d620b4330715f08cac6cf159244b16b9fb0edca648 SHA512 5d1fff4d0bab49fd074b625714425bce88954382fbd864ebdd95a803816cfba632ec4d271a1bdf33558cbd0214bd95006d39b455fb4aa86c2b2530e6f69cf8c6 +DIST thunderbird-156.0-pa-IN.xpi 493828 BLAKE2B 645809f27cc2361e8ee77f0464a9fb4a968b0194fa37c74fda22bb435b11c4b72f32db8b56928b551383440c68e5b2e3ca589e696e543664d12a5ed9303b1268 SHA512 3bf664f1801b2bff3c1e520ed006d3dc2960566cfab6ca2984030de6955cce125917acae64cac0c481085a22f97d359fb4276ccc3f01595cce22a1cc4ccb818d +DIST thunderbird-156.0-pl.xpi 543197 BLAKE2B 2508e789b1c9c4337c62e4cca15a9717af8b01f4159baa72cd69696f357c0b764b2532146aacaedfdc4890ae3202a5c1eda4105677bb7c62dc6c19950ef2f40a SHA512 9f9a3e8317934ed53c57c1bc56728518ff3f64efc7a130ab2372fe71dfb728e954aaeb4ce5a71f15cfdd2d5b1ed2493ac826b7e015bb70fc79a0b35b080285d8 +DIST thunderbird-156.0-pt-BR.xpi 513284 BLAKE2B 24ac67f5a726c8a5ed066c80bfecd44dc4db6a7a446fb6c44ca19d3ddeabee5a9277a4cf6f0b98134b6c8287442c3bad731f439b7d4be91da82b8c3531cd2094 SHA512 bdb0892a38bc6447c0b6fc79d598670e434f2f9b08ea2ab5fa3bebd7c31b9fc7aad84c01ddaa1937e32f798941693deca97bc19e185fc83924c2ed255e647933 +DIST thunderbird-156.0-pt-PT.xpi 520500 BLAKE2B 822d52a4986a9862f604fcd1edd811e194c72900c22eee86abbce0070514f72f807739cded3f5fa87f6c68d8fad9caf84860e468dcd8d6a94b5429f9028cf68a SHA512 e15947ed9f2f566b7a752f02c859b5068fee92ea9850527655176217ca0a873b0204b6db142a385f322582d953fc15336829f3a9ff11a28bac34c43815d028c2 +DIST thunderbird-156.0-rm.xpi 500745 BLAKE2B cac41f7d744587f259d33b50573ce1eecf9ee2fecb6fed342204791f2cc21ddc3cf5dc268d0bb331bb5676649d73e5cad44bf50d02ff2c48479549ea9e407a90 SHA512 26ad73467d3bd919e7f468704cdcb751e0d592454c8bef3f1a5b52e1cd9462384ce09ad96e59a0b3959e732fb100e345f019fbe73acbba939c22d7dad432a4d3 +DIST thunderbird-156.0-ro.xpi 527708 BLAKE2B 1539e66e94755a9f8b73dbb5aeca3faccdcdd28515b4aebf4349e8968d5fb2b0dde1baceb1dfc12abd99458b92db3851de76cf6afd2fb3e8ddcb4f41bfdd99c7 SHA512 9f1b2b0faf6be3e294f6c8b74af84ab8ecdb8342909f172a73a91afe3ebfb5881638050733f63a7c88bc703cbdfdcb3073629d684c3371c1bc7797e2c8094da2 +DIST thunderbird-156.0-ru.xpi 624164 BLAKE2B 53d38a4810be4433f225b572fc4a7d49231a5f85b0edd6415587f61273e813aded006f35182cc27a345dd5a3ac272f7f1c1cc3aa9df07355262407245c79394c SHA512 3aa2986029fbdcfde9475804b3863f82f35c8354ac9b483a6c814e119f43a63b56446b6c348eeeedb107599de4850cf82c804156db9c43848619daec86ba72f6 +DIST thunderbird-156.0-sk.xpi 548137 BLAKE2B 553c16010d9e4f078a2af4bef30f670d50e989054b99bde3a9d4db8a78f1a4894833623dc68eed7158e868df7b802868e045d31940afee8844d3ebe909296eca SHA512 57d3a855f0dff14ece8dfb6747133df6306dab067bb64d2ad116bf6119491d551f3a6bc96703a3383272991f0f00f0d7a62d9767c831d9728d12e7e98fa19d20 +DIST thunderbird-156.0-sl.xpi 514747 BLAKE2B 97eb839e49ea368e9d81c2b2817fc7523d3e7f60820ed2dc0c4c32f6ffb0057e7804c15f64748d1420a49881c699756427fef1bca5e3b0be48261745aa7de61f SHA512 6fe406ce8c33cc04d29b176b8344e970cd3bd23e3731e18be31acdba615d5c953bee7fd3c84b5665fbef8f25b1cc6042ba04e0d8deede21437dca924df8f1708 +DIST thunderbird-156.0-sq.xpi 526809 BLAKE2B 28a0f1c088473adf9b8157509f4b8048405f89983cf3b1c94674dafef6fdeb156383ae9215e06b38498619bf7aa7804830df77d1934e7e9c01efe75372917307 SHA512 e66ad2623e438373ba98a6826d3ecb9e81b7c28409c28ad7db2f399669c589d2ec481cf745f5e0585aac11f4bc29b9cc0d36ccb15482e9b98b29c3f1f86a00a0 +DIST thunderbird-156.0-sr.xpi 586688 BLAKE2B 338c484920811cae278e16983137deda69d48a7eab679c7858c1e022d571108b11369d20d2b904f583fde03505f2915157653d1b7e8e677e5b5aeffb66d783b8 SHA512 3c791facc4d52f5ec3b40319d9ac51d0d2fa2998f8243428d143644ab29703f9fbed66734be0256dbd1e4a5f77dda3380d4e9b8c3a72fe3c56a83ab303b05616 +DIST thunderbird-156.0-sv-SE.xpi 509830 BLAKE2B cd3fe15622299e13137f4417d2d4c37659cb4d5726d6c4704058987a08bbee359305dcf0d3fffd159632ec0153c81c7da1e8441760ef0f8d9de2181e56c9d186 SHA512 4c571a156932ea0f65edb25f029394c98a9cc322935b162311747a78bd5ecc6a95aa9046fe251305271fd635f0fd99ee455eadd8fece7d0a698be748c28e06e4 +DIST thunderbird-156.0-th.xpi 587296 BLAKE2B 62d2cbb5783b24351273c52f5fe6b68cdf8f5851caadf19a01fece7c834ee8732b13a45f6f606bd37730fa5c071765696145c774946815cbf0a84f954b575b7f SHA512 9b967b9f044acf6fee95f1bc12d7fb2ffbbb6a7eed71b7b32f4ff13e2cdfbb7eaefd3d7f7fccce135b3084ee2fce4bc79f1634239e916b8cd83aa888be9a30fe +DIST thunderbird-156.0-tr.xpi 521918 BLAKE2B ac9a89eaf163d7586c3857396adad410b141c4739303bd1891534921d0b76d0dc5013d7f1f777df3e3fc9d3c5930ebd1064c628703ca74a4df95be4336fd9cb0 SHA512 573bd130acd40a1434b7a855fc75a5e0fd28a378eebea67f6a5cba34b027b6361935b7b5063b5eb07a7ba161de3897e65089b430aef31613e816653a1bae59fb +DIST thunderbird-156.0-uk.xpi 598602 BLAKE2B f24e6e82dbe2d465e3c85c92ab9c1be0b3ecfa4af6b444e4efb37a6ce9c6f5ca4c25b158130138b963435c8168553922e80a735d7b616da69cf8d1a00ca6b1f4 SHA512 17cc0af7fbae6ab71f9407cb8c7ba28a85dd94954448cb72f2f3a54a0256e8cefd2b6f5f1ce5bc2387f15942979a47bcd81dff0c1eace702d8e96ea64605dcc7 +DIST thunderbird-156.0-uz.xpi 418950 BLAKE2B bb8a25e311e27e88f45a70b35f8452ee90836de6611c8c98139aed501912ea495cbb8960b3b81016ba86617ac8c7fcf7b87e0fc471d5d7a42e84827e09eb4119 SHA512 56c3f0476a7d0121089b6a2dbd29cb4945ec1d0e543f4c4dbaa0b1724b0c5a160bff4f1d905223867a58f72f9d9299820214747531f2fe95bd369e494186dac1 +DIST thunderbird-156.0-vi.xpi 548433 BLAKE2B 5ff564f0a0da27c2741acb33483a55fbe04406651b6b94cc3f7d4f3edd4efcfe098c23be041e1f1c02d7086a0aaefa2763e6a2d820a64a69b5d01eb6ffc39382 SHA512 0dc4a0fc675f1c0f1de65e1c9380c17aeaa8ddda6f94d59ae9b75cbfcb83fdb82a88b24465c7f663a45c60c4234c80ab75db97cf1c514a9f2943362a843086d4 +DIST thunderbird-156.0-zh-CN.xpi 530703 BLAKE2B b1436e172f289e91bcae34820fbd2e25bf6db1aab41940f307e18b782860349d9cb4647869095e1ed8ec974aefd9a486107312a17aeb27eb99f2f462926f41cf SHA512 03ed08d27bc4f9869a04611af5fd4fd01a62bcc8429f0cfc8ba6518877cb68e22dec953f68d750164bae8a7b0432558e402868dc9149ed028f6a25565e1c0e40 +DIST thunderbird-156.0-zh-TW.xpi 536937 BLAKE2B 5dd1a44e1523fa9a6ebc58da4bfc7e55e0cc66b1dc28f6a6ecec2ba7060428818725578c82346f811582d7492917375ac614815a5db8eb940dcccc48cb48e9da SHA512 6b181f0b8c256876d93bb24ceb474836468bfff63f3ac66d24d492e17085a6ab5bb26574d14d7fffe28584937026a36dc7bea22c1c2e35d2b7b5c19de2c9b0f6 diff --git a/mail-client/thunderbird-l10n/thunderbird-l10n-153.3.0.ebuild b/mail-client/thunderbird-l10n/thunderbird-l10n-153.3.0.ebuild new file mode 100644 index 000000000000..26c351213744 --- /dev/null +++ b/mail-client/thunderbird-l10n/thunderbird-l10n-153.3.0.ebuild @@ -0,0 +1,145 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +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%-l10n}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +DESCRIPTION="Thunderbird mail client's translation files" +HOMEPAGE="https://www.thunderbird.net/" + +LICENSE="MPL-2.0" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~x86" + +if [[ -n ${MOZ_ESR} ]] ; then + SLOT="0/esr" +else + SLOT="0/stable" +fi + +# 150.0 is when thunderbird-l10n was introduced. +RDEPEND="!<mail-client/thunderbird-150.0" +BDEPEND="app-arch/unzip" + +S="${WORKDIR}" + +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 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_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 +} + +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_install() { + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${MOZ_PN}" + + # 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 +} diff --git a/mail-client/thunderbird-l10n/thunderbird-l10n-156.0.ebuild b/mail-client/thunderbird-l10n/thunderbird-l10n-156.0.ebuild new file mode 100644 index 000000000000..454d5b9c0ea6 --- /dev/null +++ b/mail-client/thunderbird-l10n/thunderbird-l10n-156.0.ebuild @@ -0,0 +1,145 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +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%-l10n}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +DESCRIPTION="Thunderbird mail client's translation files" +HOMEPAGE="https://www.thunderbird.net/" + +LICENSE="MPL-2.0" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~x86" + +if [[ -n ${MOZ_ESR} ]] ; then + SLOT="0/esr" +else + SLOT="0/stable" +fi + +# 150.0 is when thunderbird-l10n was introduced. +RDEPEND="!<mail-client/thunderbird-150.0" +BDEPEND="app-arch/unzip" + +S="${WORKDIR}" + +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 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_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 +} + +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_install() { + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${MOZ_PN}" + + # 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 +} diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest index 23cf39fbeb06..74aad222f662 100644 --- a/mail-client/thunderbird/Manifest +++ b/mail-client/thunderbird/Manifest @@ -2,6 +2,7 @@ DIST firefox-139-loong-patches-02.tar.xz 3096 BLAKE2B 2e9c0f3dac780c808a13f70fe3 DIST firefox-140esr-patches-13t.tar.xz 40524 BLAKE2B 287d1b9a1e98918182e2e920de76e4ffb6692190e07568ca17c174c80ee9734209856a71795cbf34638a82721a97dd37880702a74b49de33d60ec36c82e92e87 SHA512 d56b82313ec6b60629df489481da1283fb20b7ed6a3c95b798f79fc11b9d6517cf40c37060b7d8d92175c8cb20e71604978febd4dabc22f9bf470d696690d7ba DIST firefox-153esr-patches-03.tar.xz 13056 BLAKE2B 25dcb9db586180e2e695a148eabcf226a271abac110c632bfca0f8f659387c2d14c5a5fd5706eb300cf990a4f424e34abc3d7edb3db0e62b662aa0ade47b75a9 SHA512 686164839139581802e08cae254d84e2e5c13a8f0826b47be645c697024af89eec51175f823586851ff18de717a366362898bb5a42ecbaa863ccfaf11af66dd3 DIST firefox-155-patches-05t.tar.xz 19632 BLAKE2B 02e8ec819a4e6594f4b7fbf76706e0cace2a90c7fc76367b1dbf89a17bbbdd5df9aceaff6ece25b3c8f4864c22733874b68339f4fde4ad3cb51c1d4bcaafa1f7 SHA512 795767a6dede0d679c0b53fa6fddb75f1245ec3607b529f0eec58633e4c96ac341358e60a16bd05296e203c4ae6317f3a102a2f959fd9cb83a389e93ad2eac9b +DIST firefox-156-patches-01t.tar.xz 19100 BLAKE2B d35bfda20213d665fabfa4948391771a4bac2af8c8cbe897bcaea544962020f52a0cc8be691020542bebbb880219b3abe22b2735e0af774b906b9f73bd46082e SHA512 4191e78d50bf0f7adc8353bd44ccc2f31a7615a568f9cc375dcdd6bb83105bfce36d4cd01dadf4b56a4728d3e17397792a34d8988481dc6a76db30aa00762902 DIST thunderbird-140.15.0esr-af.xpi 316215 BLAKE2B 60ae13ae7056dbbf5ba75db0a48b7fcaea1dae7192d013cac456f0356468c1a0b9c58e8dd419e9bd26647cbfe7618d2eb4bd40313b69e209a258e0b75d8264a2 SHA512 49d9c78a969db3fe5b1162c75710110e84087effbc8d8680f713462fadd8835d5ca8f1c306fa7e5aef5549096bab12a0c78c612097f1504fc933734b1dbedc8f DIST thunderbird-140.15.0esr-ar.xpi 436196 BLAKE2B 2425d0a91c24428f444efbb96972b16db61e32a219cecbf180a360ea7b3babf682886fc71cf3e4bcada548753824fdfc083d10c4072d5905cc3381e63dc5c125 SHA512 739a69b64d46669cad86af679bb19597ab6777f76a4bd4065c8812fa67d22145ecb5bc10608e151edbb2921b6954a4854625238a13cd1b793b8c33111ed9ab59 DIST thunderbird-140.15.0esr-ast.xpi 340598 BLAKE2B 97e38b4108da74ff28cebc544b5dcbd55a4619b4b89b06e29ec13278b036ba9a0579c66baf265a59941e04ad85862a714e3f7b17be2f355029fc9b75b33f4ea2 SHA512 ca2f5e89b22d3c1563ef63d5131693b3cb762145a0fa7a1eca63e3ea866ed5734c8faf7a319d09524d69de72077c0f3edac2c3efa61cb19973296d86968c904a @@ -67,6 +68,73 @@ DIST thunderbird-140.15.0esr-vi.xpi 518881 BLAKE2B 6bf070215eaf69898009c99b0f6cd DIST thunderbird-140.15.0esr-zh-CN.xpi 507845 BLAKE2B 1276108811ff7afc6315de83edabc4ea028bedc8514c1da87381cf4922702ab0248ca0ca7fbd899877f0b6d1816acf5f555eb7722d1c5d80883683cfb901fb67 SHA512 2737ad8e569ec81272ffabb46775685ccaf81e4426db66c6caf72f1e8600e18e326d0e524ba925e2f5a9956f06de70ebb4406d8cd4bfb2e8dd7cc8f72c74bcef DIST thunderbird-140.15.0esr-zh-TW.xpi 511430 BLAKE2B 7dffc7da610a874f3d64e77e12bc12f3f3933c4b77fc05f77be6600a59962db6c8499c89dd506a841a120922abd722ecd3417bf367916972ed78f78237a627c3 SHA512 baf6ed00cc6f228f270ee2fed21912b496f9157b38174b431d2ac611dc8799388e81de8419b15350a61e94dad8acedf58a124088f85f3df963a12ea1d2856d75 DIST thunderbird-140.15.0esr.source.tar.xz 753067952 BLAKE2B 4daa05bf6bec8d0caae0736b3b251f67475531f3d7033d7fe8c2170646e2fa65df3b0d672adec4e9ba32b0ae48fb7245714602a916e384429958551d4f9d82b4 SHA512 52f014fb75ac131780aba924dd973a1fb5d6a60be4f800c258dca931e2c6ad75baaad37a5ad52228e91d3d174823b6b4d38ddc2dbbf9c04b8700cc33079448bb +DIST thunderbird-140.16.0esr-af.xpi 316220 BLAKE2B cd64111cc906134e4441cb9128d20f281391665ad66c4fdcd4876b2cd092dae57c850379175539ebf1f49e65d3feacb0a60e6c5c8d923392c2c507a1a03db877 SHA512 cdef8f39f795e768d88de80b923e5aff71b9dcce8ae93d8fbdccef0127bbe78438ea2e004799ef1385e799af77b5955f713c53a385ed83f75fa277901e65a110 +DIST thunderbird-140.16.0esr-ar.xpi 436198 BLAKE2B 9be3d3e088bed02837e326add8392cc6153ee7eec06c184122e5c129ad585a60df7cefb273baaecaf3cf78433befb4ee92b18d9cadcf2c9f9ee3340f95a310b0 SHA512 8bcc62ac679fed8558d0c41f24587492d25ed0d7da353de89ac140b417949a7bc118dafad315dd7a7f3af644887869473807c991871e789716ea301122a1b0f4 +DIST thunderbird-140.16.0esr-ast.xpi 340600 BLAKE2B 4efde7530acf62366cd5912c16cc8079ff4b046f0bdc526e9de0a00d604a94910ae9e49b528016fd2aa5afd9ad70b6209cb2f9ed327635fb8d8170baea2e7867 SHA512 7e59b9c252212d2a9134e5cea0df7ec369a1a967daa417eed4bc164cd747b52c828632d009f71b1e7b5bd6af705de1fd812f3d6f345a8aa680c3591391a9b0b2 +DIST thunderbird-140.16.0esr-be.xpi 522094 BLAKE2B a2113a1fa4f98d14e8ca10acdb17709e7f77f8280a2cbe773ca7dfedab8571532c697ca0e4a01b2bc555eb56c5ee2091289107f48afa0975f8f34577183f3e75 SHA512 1a652d1a3a219a46223d99055d71b9748e35ec9be0ed56e6b0871646d3a2c40ab9a1a1610bea21781590bc0525265394a291d35029e7d3e6b10444727c6ac9c2 +DIST thunderbird-140.16.0esr-bg.xpi 539807 BLAKE2B 88f7bc5dee4816469842af4ba89e30dca6c3fd0f6fa8cc1c62f420953e6fb527794bdcdf4175698792287d5769fcbec13fa5f5adf37a8ae71d656018bd73a9c6 SHA512 7b3ac4eff21969b1c041e177d06d659b74ec08e19fbc3abd1ff7e5a3fc67274239c100e6ecd0aa4b4289db50641840e96e0ffc9f7cda09786da9848a45d8708f +DIST thunderbird-140.16.0esr-br.xpi 402748 BLAKE2B 7ed63fccd8fe330dfab6a39d654b40dd617d806d9a3553a6fb8d1885075af3fb9a609b16cf65757d355e2bdbd3d500de6fdf8ee14d283adc9121c4e5d94d8106 SHA512 43e75ed9f585494b764972b6d5d01dadf8786f7f3ffdde1c6d15397e5ddc517c2cc58be076615cb314e6a858e012dc0ba6a5159c6dcd09f9e340500323f209ff +DIST thunderbird-140.16.0esr-ca.xpi 440673 BLAKE2B 65b4b0bdcadf8263518a9db139520a4df68dd2d1a0335eb5b65fbc850b977c902fa9232a00dc4925a89e187ea15bb59dbba2fffd54c8ad8d3b62e8d8d7385182 SHA512 b365eb759911ab30e8bfb7a03d4c264f88d9579622fa1a40c9974f85161d0ae042e225a5da5ff6bfa12cdffdf87dd8564230e5500933cae3ffde019cd9b70ca5 +DIST thunderbird-140.16.0esr-cak.xpi 418024 BLAKE2B b65339d2828f3f369496343c184b0722a7196556f248756bc6aaec29450e9fa1f57dabe40d561459471d6dfc94e4c3765077cbbfbdda5569c480e40bcfa10cd9 SHA512 d279e03303a34068fd1184267c28be0b8b2892e3a708f2aa8e01eec1385032531aa907a209b2b7cfe5125a6b05cefa3c2a199f0fdf6c33cf31be450a352b3f7c +DIST thunderbird-140.16.0esr-cs.xpi 519564 BLAKE2B 212dc149776cd619e5405a947b081684bc25fc785b4ee84ae5d3e66a99ad5e66662391bd52e570e10812c1683a8726f1c4bc87965bbdc8465d470aea5600cf7b SHA512 0b38445156a986c0a0c72239766e6ddc6fa77fd2b685dd56a260ed6f9190d1a131649549e8d1f9b60e11f0f3fe33f625401230b1b06664f4bbd213977b542431 +DIST thunderbird-140.16.0esr-cy.xpi 487652 BLAKE2B 95c90a6f1523164b61e8cd0ff74d4957293e3ddbc603fb004fb1e865eb9677d174a9c4964757217710ddcf19da08521ee4cc43d72c8df2de0dcdb391a8b94ede SHA512 6fc7be210b42728e3b0ff9bf65e6f8f0b1a50c2672fdde071da13ed2227c8c8cfe5d064a4d321e842794ea25883152c03349997ec3e3756ef31c90384815c154 +DIST thunderbird-140.16.0esr-da.xpi 476625 BLAKE2B f1ca462008307a5039b3cd37b23cd80cb5aa2fc3e8e7b567974d157ec82a673822d14b42c764453d361b4c2ed210c25352d2f02bdedc9bfda3f2ba80a81b69cc SHA512 21724b9969a1f0283873cbdab0599e864addc662d243513114d6a0086957b2a1026104a1c2a9152af92ad3f24c83275ef3dc2637e3291e487082000ccb0f8b1c +DIST thunderbird-140.16.0esr-de.xpi 504710 BLAKE2B 02e8c482e5f4252f0ba1172b0b863743b116bbbb5a783146789fa7259dc1225186d89202f3bb2802a6f64b075bab5441b47ca7c670300d7dedfdf6725e13591a SHA512 1644d71f949be0be53e3ab182e0dba2bcbf4e13bccd05fb0a9334d6fa5c6cc19aed10a3f3949e636edb7cb87d7b25de03f46cc1e5031e7518923dac18eb5eeaf +DIST thunderbird-140.16.0esr-dsb.xpi 517789 BLAKE2B d4fad69db4e395e1a91ddbad8bbd1504e88a34432e57b68195167c86a451e2a4cc8d9767ab7481a1a2c9c097ed1d2085faa4fe29b52c5726686978577f226f59 SHA512 793a76eba02dd3d429ff00a1d5814af19480063558b90d4a426cc6119650dd59f930c4d7c679578ee5e20819cc6275bbb3a5918fda30c46377ef0cc1b1df7b3b +DIST thunderbird-140.16.0esr-el.xpi 609040 BLAKE2B 906d8e6eb9f050828e485471936942ec100197625239c7a19cb84d9f2ddbc2393f47ddca0fe3b05b28d56b1f86a68c95c9dd1b16b914e6987920358018fec22b SHA512 00d6f6db16b4bd8fa0f623ec5868030ca51d3fe640ee1532a1957ac3af1c0a1f44c25daa533e704b5abca2576d7e0223645b5cf028aca07abfaab41802e11bf9 +DIST thunderbird-140.16.0esr-en-CA.xpi 452240 BLAKE2B 09844b9135e3684a9497d3c30b82ac1769d3c9300b923b2023c967793dfbb7e0e37b82991affc85dc321c58455b3d50bfef2d13a817453d6ee2ed82f2373da33 SHA512 accdfe65c56944baac7dfe51f2c88b9b708dab984b5ec63972a22e080b3e299d3700610fd50d5e944c4dd89fb54d719cab534140e6eaf4e579fd932966ea1480 +DIST thunderbird-140.16.0esr-en-GB.xpi 452069 BLAKE2B f41b854ae2478b38429ae9aa0181f0ba5df6b7e87cf33b3e5ebe0ff079881f7d7d15f2514c0c07ead43a191033f09a80deca19552e611627ed0bda12e0849dfa SHA512 8b2cbbc8bcd2d943b051826897a0f3d6cc585c8e03a13c02290aa02a3c64466fdc0f6d70925467f52effc65e462c5bb9dce5c217f8343f89b1fdff4a83ccddb7 +DIST thunderbird-140.16.0esr-es-AR.xpi 495266 BLAKE2B bb828acfb936cd8419bfa9b8d42df59f3d44f7340b7886bd5af668dcb26bdc41885111ff7fd4b9120923c7f94564b15f62e026a025559140010cd867390fff6c SHA512 1ea62302d562694152de98e79d7ceaf850ad736194d2308ddb71f4c9afe471458f637f45bc0d2c1db0235f4de3443e65a12619467204ed6880e26bacc59b4a09 +DIST thunderbird-140.16.0esr-es-ES.xpi 497284 BLAKE2B 640ee07783bcc6e0b7b455a15ecc690942765084ad19a136c826c9d4100ef6674243e030913c378d2e42c5aca586756bb2ae2b97562aa8805a31bdd2aae8e7e1 SHA512 cec64a2d74631f396bed18b8e2e6abd0d765ca457e28ddc8d9d0ff003a097e9f0afb8f11ce468cde2d5973f2db0f095371534630e251d93ddc84db93f91a86be +DIST thunderbird-140.16.0esr-es-MX.xpi 490827 BLAKE2B 6e32b103bb1f6205d6acefd74c2ccb6cafdb914963154948be8bbed905816ab38eeb18b4d84ffd0355f31a3ccb8df3d2ce4de049d364dfc97f6c1fcaf5a7aa6a SHA512 db1ab13c4ce6ecc567d4f63407daee2e4fbeb8f882e716024dd911a2ec6558f0b4e32f90cdce085bc919bd07841280443003cd96a768bddc0ca73d5f884c2d15 +DIST thunderbird-140.16.0esr-et.xpi 443619 BLAKE2B 6a0dcfcc0aefea2c21eecb9ef5923fd40c8aa9dc75e84d5cfa8c310904ec9e5bf3370c3851550458fb64636b20fc68c8df99fa47cc791dbc8af148813da630db SHA512 34b03962fcbefc734793253e23f487edbc398151a8406517fb5177a8b81e8cf589eac432afed7f48d0b6f4368b7ae07740d30d13b621417fafc22b7f9efc0831 +DIST thunderbird-140.16.0esr-eu.xpi 473925 BLAKE2B 6b8a62080fe30272de971cd7492e6b002e644c4af486e58485582db52974ad7018d0a484086852edcdcd675e4ad211338c8ea1b1f62e75033ff25d4a10577ded SHA512 57547dc971370b3a023c5a0b50942a8259dc64f5f1246b895b9979d83a0ded1befdfafc0eacf5b10bfbd5b733c3634e78e09283caa2162e2c460f968caf73db2 +DIST thunderbird-140.16.0esr-fi.xpi 475621 BLAKE2B 9ddc28da39e7b52bf2a7566cfdb61f1a16bb5c009b95699c2f601d73135d66499497d9f4fb0e22e8a9d6fe7d5d809399a2b3bb66214b6c0ce426bb7e5a763388 SHA512 9a8a7fda5d8f22ff7d497a7960cb9c1c5535243380055114fb64242437db3e4059a7760c21052d8e5aa02138255314c6099d558442b1e7cbb1098ea0121f54a6 +DIST thunderbird-140.16.0esr-fr.xpi 508316 BLAKE2B 3870e6670a1b1185c93a94f2121b04e275bc5947179d8769cb4451e8fe73c3accf2f510973bdd81560ab6c83d4ee2e6b1e9ec2ba8147a386458886d9438d02c6 SHA512 890a4abc3d1664575ba1404a6aea3239c031cb633cac3973b2971432f718d528ecbb2785092175f3ec3b6b2cc23831e50d926a9f7749b788514da49955ddb16f +DIST thunderbird-140.16.0esr-fy-NL.xpi 490685 BLAKE2B 9846dbfa4fc2e9e5cc781dd4bccbed220afa146d9b5d3431852b1a1ba81f0b7f05b0a865e2bea58829e2ea9bd7b8ce75c95b453125a3aa845b0c07e54f1a81ac SHA512 7f3963696509cb497438aebae44182907dfd1813bff3405b389088025c7db051fab5511487c7187dff4d13f45782b5926a9be83e4b035722fba8e383f2de3062 +DIST thunderbird-140.16.0esr-ga-IE.xpi 376746 BLAKE2B 51117f3fb89cefd89cb6b4ea04877fa208cf36f4d85a48e9f4b554b83cecc509811f2e05a5e6e47d8cf007187cc87f9fdcae5d5bc59474953182f813765ee938 SHA512 892fa7bc064cb00899031f1ab271faaad405a7109586c0a08c7d05820ebbe6742c91c40e9de082a9e098db017ea0dcd5811c467753bfed23745af5b63f517351 +DIST thunderbird-140.16.0esr-gd.xpi 461976 BLAKE2B b572d5f20f4237ae6ce46241968038c82e67ac48d36139d265676c0d112fcae71161538ebd229b488f2dba5869183b3b82488dfb2b77a3ca443a47cc314cd72f SHA512 56ccab3532444d0281f9390e8481517c7e7cf3a1af15a5cf01641253316136af51d9b72afebcfeb4faeecb5659a4dfa936ee97cbd6b27c14777b0b00da8f845b +DIST thunderbird-140.16.0esr-gl.xpi 489346 BLAKE2B b6a8d25aa60ca5cebbe15c23ecb781cb2f0f4b0df0c043276e05d32fb0919ef5256222758f617e3d5d668dfaee34a5e0d1bbc1777ff6b5d46393a24d8d62e6e1 SHA512 d9093fcf94a77f7392c94b67ef7bdd7f977a1cd8941cf578b1acad6abee274a619347fe7ce372f5c7cdbe895a8f7943e40cfb138e223d4700b242c41bc1e4aa6 +DIST thunderbird-140.16.0esr-he.xpi 444207 BLAKE2B 6fb559000230cd480dc7b5b3ea94ce24a6f7cb8889e5fa57570c61af1dee605a9ed0b554f39d4e41737680a6aaa1cca0fad7bb8c09b6c96abe7bd7c58d0538bc SHA512 2d903ab792a0fbb8f42b98a3aae0a6af779f891d87b1d12c608fe8e5b90fe58cc21d4676fe7b71984cc49dcbf575ccdb135c3c3acfadcf5adbbe1049b0a91f7b +DIST thunderbird-140.16.0esr-hr.xpi 471056 BLAKE2B 1285bd790f9103c675cb8fcb5ae43f17c244e133beab52e9d6725724d4a2c337c0240aa32f7c949883ef2227f73aa3da6be272054319e38647210dffbab34871 SHA512 5f67a25930cb5f62e5c9ff2313b7faf9ad2c125a66b55f7bfba1525c1f6c90abf97b369ad3f9bdbac9cd3ace62842559433d3b31405f44894053cf2cd2ef04ba +DIST thunderbird-140.16.0esr-hsb.xpi 514954 BLAKE2B 88ef3dab60107222253f1e3e8ca48b0b9c075c1e75c158872c78899195c32087bc68aefe4c3796499dd0bf1f84f005179bd235bfa927ca7af080d2d0817c998f SHA512 d29efd7a27cf36890e8eeba558b289d865cec44472f377b05b0956675e2255542ca83e2d164b725eb7038bb58e64248807b2589d192ac44ea0e1d53b65f0b92c +DIST thunderbird-140.16.0esr-hu.xpi 517546 BLAKE2B d6ce436e0ebc85ece9fc6b6acac9186d64dbee391274f211ff127ee06a9863787d39b114c890629fa79cc9ed74ad648c25684ac689a805d2a6fec4d2847d1ef7 SHA512 ebc4c7382ad2bb2066926ba3e63ac496955eeb81082ff86e3d2ee1860419e54fb9f8a4308ab43fb818db4424f649bb876da8aea75fa9b9d902c05b4c3abf4527 +DIST thunderbird-140.16.0esr-id.xpi 467004 BLAKE2B 8b5f4bdb187320f8e7d050787095352c9257f43461ac6eeb251b7f3efd89676cfdd891bd8815c39751e65abff7b5cb933f31a312270c1f5309de77a194b9d57e SHA512 2a741984a7f57c7ecb417b74c1555ed0faeab06d0aa3fb82a6d5ac45f0778cf6636d121bcf2ac083736b66a8536bad68c8e346737fa2f212fa8d43c4f94a23cb +DIST thunderbird-140.16.0esr-is.xpi 482740 BLAKE2B 55c90bb50e5a259350207ddbc0e617426747f098dc945ada62c0375b7627c5556d9fcf8306846fd648c2882df8c021594e47a5426b871e6cb0fac38a1209fb65 SHA512 993da70b61bd130ff2252c86b7aae738df5e4dda4229aaaa6e92716a23f6d6800577f1dd246c07e2d7d40768b3c2de8ab324aa2dc2a8f9ea9f26036221cbefee +DIST thunderbird-140.16.0esr-it.xpi 488528 BLAKE2B a0340267e0f277a44e4b00be5e4101e8653bfcab4b63e8416614f5299c120dd095ebcb82493ac040fbfd9e06e10b5402dbc807c91116c8101ebccac1deebfb5d SHA512 d478879ba512a0e0a7954bcb3f7fc5a8a68c1ee8ee076fa58fc26ceb0cf1c729188bbd1af7cd11bf7f2977f33127445c357d133fcde6abfc3130f2a58f59be9c +DIST thunderbird-140.16.0esr-ja.xpi 539186 BLAKE2B bc9d61b626057b0ea0388f3bb40ae189e474e284afd4e942544a40c9b742d228114e543b3c992755b967adeb21e0e2f5fdfa995c8215a22cfe49620fbb1058a0 SHA512 a3c66d179b4748ddad12e1d39e8f8e767244adc15d41e60025f4be9664ca9c52e8e2ac2f3a42a4ba187e03afd4cb103048037984bf5c48f8d6699cedb0120e29 +DIST thunderbird-140.16.0esr-ka.xpi 554795 BLAKE2B 861230dd299670c01bd150204fcc78393511fd79190bb8c09ed79143542e9375a7d2ca3598807a839159ebe728bac6630539621c17ecdde399916b2a97a59c17 SHA512 d1c1de16a142e35bbbb020beabdea551798b876139e8dd2152590bb00d4d14b79422917e2a29f1ca07a140b6ab7317f3ffd1bdd1593d3a8769f4c0a758d92b85 +DIST thunderbird-140.16.0esr-kab.xpi 470498 BLAKE2B 2b5f236e74bd3e52c482437794726feb9dbab4550600273b1da185b685510485993ff293e846736d02c97360280501cfba22de4f78ec962bae94815843258c1f SHA512 5cf173473c70bac2b143fe92d08d963a488f7a3c327eaf32df893fb2e20b7124c2edb58de3219f28c055c9a33c62cbf1bdac74a9727a3b5a4b3b4b36c46b1741 +DIST thunderbird-140.16.0esr-kk.xpi 573884 BLAKE2B e141fc7ae9211c674741c652f7d327426797713e3516a0df47cb9911b6c025e944fc0f3491c684250719153e12ced22612c710624fa3b6e3d5cdad8c668cdea0 SHA512 a2cd68eab21760a956a56779df8384bed80549be77ce67608952cd979cb6e759c3767de61d6d920f154f20df111384a666b00e4005e98766a62fea81bee8da01 +DIST thunderbird-140.16.0esr-ko.xpi 515593 BLAKE2B f83dcc3d21e4ce16594f9ef3d52bcadbdeba0e7fe5d06e5c08754ec966d523301d530edd9adbee307182b3ed87906acdf30ae3402d8b18b67333c5d6590e92b5 SHA512 cffd0331a6c3df5d9fb183aeff27865715475b5959979809ad7b9d1d2d45c117602a2c9fa53389e1ed55b2e3d07ef5b31e1362837fad615e662d915ff9d00774 +DIST thunderbird-140.16.0esr-lt.xpi 453437 BLAKE2B c038cc84ce2fe3e4eafb24f77ea012a886590bff0cbc83ee0afd8f1bfc466f19084c957ed093da5d544360a1f629f9acfaabb87f5f6f7d2192d05fe02e5b2df9 SHA512 2d957d53d53f3a2ec8da4558c2626c54027970a48f7d14758c5e6d27d80da8cfac06db87e17881c53e6da4bcd0a74821187c3c0753e1c2b1ec4ec60b885e88cf +DIST thunderbird-140.16.0esr-lv.xpi 392815 BLAKE2B 32f2baeee6cd85d6967b5fe223418f38fbbba04aea58ba57302426562b26fa430de534030a19bc9a78df63e28cbc490a5414cecf79c25c86e6f596b2d334f759 SHA512 cb83e1bbaad704f61a733ce6541bccc1db76b5a18358737bb49d74e06ea8d3b2e044b97bd57cb099098a0c66ea92a3051b78e64b48daae285a65a72135965e08 +DIST thunderbird-140.16.0esr-ms.xpi 352182 BLAKE2B 9343449c42b1287b07501a4035cf0c6bfdf91e3be67497c828297d913946d54c4df9a0b097dc53f27082acf553b91ebeb4e8b67934ac3c1b003e5de1a96eebcd SHA512 03d34abc8f2cdd540be00c3bbad4cb7d7316c2567feae381e44e90433678d94d6b24726cc2db0608409bd2faf082a412b783164fd20144d7ca379d60478b5fea +DIST thunderbird-140.16.0esr-nb-NO.xpi 476123 BLAKE2B 7c4f6b4d0de8c6a8ab80bd1e119db26d69690fbe014a6b8323100ebdaba3c855e5c4fe79ead537c94d667d416032a4fe3203ed069ac3fdf625f63bd2b1255ad3 SHA512 94f085d6829d14035dcca504d182c12bd111c2bef6008bae57b42eabb87fb396386c2904a0adf60a17dfe86c9ebf41bffce79be7f7b5a543ff86351a51a8219b +DIST thunderbird-140.16.0esr-nl.xpi 482118 BLAKE2B d55cc28d061f3db2786b97c5891bdf71f861558dc916bcf47d8879974299211433fcd5ad5ec0382c7f4acb925653fbeaab7c54ec91fb09e63b9b22d446f591b5 SHA512 7e32608b2c8cad1737b6dd0e3ca42afd33b8acbe25d01d561d1791389d3d95cd39d8456f5db9d429bc2e7b58f9552d64d9564772610375bc335d7f19e5f4f81f +DIST thunderbird-140.16.0esr-nn-NO.xpi 479761 BLAKE2B ac658ce7ede3d5bd163c46f8252f9bca568cee8af3c39f126394d80554b852dbe28d450ea94ffade567b03d92c56fe82db209b30c2804e45af53331b70aa70e3 SHA512 c0eb1ffe1ecec9ee3426f65660e51ae25958d133aec6fba7dc7ce5e72233da5d861497ee5a8025b50c2a55c859d1a5b1b994df434e73b6ce87084ff408df3a63 +DIST thunderbird-140.16.0esr-pa-IN.xpi 435733 BLAKE2B 38922fd336b80e993e0cdf6ebc46cb8c43ce848e85b9dd71ac1eba8b7189e39de17067a222b38513f286eeab5380a4492bc43c1a1cca1001eae79ca6349510ce SHA512 38f66c1bed1812153fae94a3a60d0a4132e2704615aa1cd6afe1bb9e1c5db1ceaa4b20a2b12847b160416caa985c6f80bd1c6250fbed448d60faae80e6f55452 +DIST thunderbird-140.16.0esr-pl.xpi 515614 BLAKE2B 4715117802b3c75f36e08435bad88c4ba9d70e5c21ec5c3eadd1eb1bdcf7078acdc19a2a60ed0592bc4753a94e8297286f0fb0080fb932d74775d6c625f329ae SHA512 8e7ed6e7ce03231a90f10d8915f6e9492ed0a3fa97d80b4f39573f4b974dfcb4c9a0a16cb140e4071a5e68f52110dfd50af5e1ed35073c9efc3206fe161a509d +DIST thunderbird-140.16.0esr-pt-BR.xpi 490166 BLAKE2B c1bd84fa501b3c06a2ad77190005a1f21490a52060022c45e33af63356b7353dab7c480bfb6aa0406f0930b3ab9a19d6daa918057c2c44718faef0a30d330dc7 SHA512 bccf137c69da08d0301d258709c760e3f31197175122cfc1b710641ccae6833554ea12e622ea4d46e1e997b40ccf70615396f93998cb2e9c2baeda8b73802bb1 +DIST thunderbird-140.16.0esr-pt-PT.xpi 494211 BLAKE2B 17ecaff6a32e542ceda39d250b4c57b39d03ed2ae24ec337ed9d6a024d6dbdbc7d4b364f015d0012e0bdce7f6d604cbeec8c7bd3cfa52fc8b3d9f6d10c9686fe SHA512 26bb7a92a5297ab66789e2770d6977c649b9c2716a86a6afd1e966e9943b6026597dfc0447a69a3dc4b0462bf5006ac8c14a478f0848a4e32e3d888193c6b4dd +DIST thunderbird-140.16.0esr-rm.xpi 487885 BLAKE2B a6ec9385219ab6d43c25d18fa7a098b443063beca0c413ba99c94f7a9cf302c26e0dd60ab3cfdeda5f34cd1ec7a3b2ec54e1cd143ec1e3bb4d2b4510c739be31 SHA512 3d543b2a69d06af90a234b878e2b5607d0eca175b5069a0755400f98269c7009a5128d3ed9c9015c3015b8f3e3b611e97c1c415d90cdc31d0cf822d08e2648e6 +DIST thunderbird-140.16.0esr-ro.xpi 501095 BLAKE2B b427fab4ccc6000e4b7104bfeab816cbccd281e45581def7a8fc147184e89691e573e257b7c61b6e3460ea9be0affc4afdd5d8c86403124ad06a729891945a8a SHA512 2ebb3db583b2d1bc833a172e6a2bf44934f77f14956bbf42e1a6235d243dbdcc95ef54c6418823de0d164257db82abbfe6e7d97906262391baccd0949cd2f6ef +DIST thunderbird-140.16.0esr-ru.xpi 593345 BLAKE2B 64b71aa26fb3bb768aeb11baa9a5d0ad11fe8efde7693c50227ebcd276c8b2141a204f46a5f60084734ac1b0d631a34d829807abb08f8c113ffdcf6d871ed129 SHA512 b4a2c3f5e3b362676c9effb21cdc1161775f653a287eddfcaa95f7bc12bba7bacda150ff10a3adf267e8ac76658144da38f640afa2ceeb8b58993eabfbb27105 +DIST thunderbird-140.16.0esr-sk.xpi 519392 BLAKE2B 596c0371a6a30d70540104f2a121a95dcaca0f4c185f4163019d1e8ca9c7291b40fac607773c8212b5e418ad95fc46c9d511be6c5f8e1a9af4d8043d02ab180a SHA512 2e1b24f3ab6800c24324a49ad7f7ae508c69afa7cc00f5095894b0beb65922623d67e7a7f2d587ef0023dcd2617f34a15e0a367f67b12dd739e0d735e1eefaa4 +DIST thunderbird-140.16.0esr-sl.xpi 485963 BLAKE2B db00220b230514192621b46c478fb59315bbcc066e45465fd8b1953f20c8f8a0de5149f77a40ec018959f1fed382b6f7763aabecc087a272410e785e1456232a SHA512 26c98d3e1a4f61a9a82f6e254960617f1f3af767849b82cf833564bd7ef982b638777430a0a53bbf94ad3e8232c0ef5c0095084470cb0c280c96827cd42a1c22 +DIST thunderbird-140.16.0esr-sq.xpi 506282 BLAKE2B 75f05ea984985bf4622e57217b18072ca66099c028c0b2b33288b88778089e10c865380f431166454f46737f2b71ddf59103884404e3d2cc92011423d2862538 SHA512 83bc64d523140b9907e7563e48ad2ed4995df931e2b69153f9d53475b79c343a239fbc55e7a137940bd07cbe9283470ff16a62deb0f4929242860fa96e520598 +DIST thunderbird-140.16.0esr-sr.xpi 533251 BLAKE2B 4dd14e558f6330dc343f495a67180fd9f591c77f1ca8fa6732c96291ea968928eb7903bd199ce17a0d0a9dad0653c89298d12837cfa4e8ba8269cabd28df61dc SHA512 f37579393870fa37dfad028af5596082c406f5b2220f2f15fd2f46b75eef366860b45d72854aab7c58a48669aa504097eedd1844866f24048cdd2d3a850b0e37 +DIST thunderbird-140.16.0esr-sv-SE.xpi 484422 BLAKE2B cfe0c7b536cdeb0b8d14f5c1519b2f7918b4217e13a8c444079b011f276aa9599a4f6ad241cf2796122ccc5de2d9d9c6183580cd3beb33fbbaa722b35d8ede93 SHA512 18730c741c89154b0199ae770b626359c8159f4dd75a71f5538cf11b3b1d2536bf2f57c2f10b29ce189600babd3339186299820df2be56e91ca80f1145d3defd +DIST thunderbird-140.16.0esr-th.xpi 569104 BLAKE2B 0f28ebf7e4c53c5851935a5e8d31b74f7487726ea872539590c68286dd34debff2888083bb04d3496325beb3e9c3d4d56a61843a500b22553608f19eaa4a27d4 SHA512 643001ed7b6efbc4ad18a5a90fd271c4b4d61dbf49200741107a29b6841d8acd102764d9c5272889e778fe7370330748e710a668adbf7f4f1f0740757d852385 +DIST thunderbird-140.16.0esr-tr.xpi 496305 BLAKE2B 3cf3e8de6b42b330f3c40fbfc05ad3813f5c14c9ce9fb27c167a52b922f89b66c0463cf7e48750a5a06b3d8e8e45c7d38fdc8e026bd8846fdd5c0eec7fe3fbb2 SHA512 a5951ebf24e8af7475db12be40c2d712f2cbd8f867cfafa1ec7db8ba80897b19168ddfd894d3ee3e3e9f71fd192c0ef38bdc13438ffc47e12d46e10a0fe901f8 +DIST thunderbird-140.16.0esr-uk.xpi 582153 BLAKE2B 6550cfce78d16191e8767df516a969074d5d8d46065ef77f6ca214fd91f13077e52d3103265f31ec31a624c46cc88fd7bce7c7331674ca551bfdc7616d2a6d5c SHA512 209a76eca2a99c1fa9fa139d855a24cf07fde7a1f7ef1601f5c609af0560920f852b4669b9164c0de7c48c0054a28fe496b43257b927b2041e63e590acc60698 +DIST thunderbird-140.16.0esr-uz.xpi 355268 BLAKE2B 2dd9ddbf1d4327b12d51a819fa1a84d017caa5280305f8888a94eb1933f59a024ca03f6b951c0066a49981d1b6df20f336c401543c5267ec7d3fcd7f0f15dc9e SHA512 73a6a4c7ab1da559e8b813fc57e83795f0747ddb830e3fa51d472c7fd1c166b7288f15af4a5e94ba9acd8c4e39e016fdcb669eda29fe3d62fe2d0a1993e3862c +DIST thunderbird-140.16.0esr-vi.xpi 518886 BLAKE2B 5bbbe9ad4a3f44b0d2208f158eec8d82b13e1bbced6b54796c49aeb0ba379aec38db109c71782ef2fd8d0ba0414491a21ff066453477c765d70637e4a7587789 SHA512 27642eb0a407daaff735b3671b0c46fb9197c04e45cdcd8d056fdff75b6c8e82a18afaa0a5e1aee0a50e62e7f09c2551f4ebec35096c9fe94158af2ac9387dec +DIST thunderbird-140.16.0esr-zh-CN.xpi 507847 BLAKE2B 0fe3af4e13484b4518a92bd4d72c44a9bb4ba9271f8072703e9d1342a9aca7366c0993b70804d61f1a259869b71fb0e1a29b628b164ca09edd879d792f947a5f SHA512 8e972dad86086818599a75ab6aef5afdaf41565f8384c5180a9ace2a436a9f5d9789cd571ab706ec4965ca9f2f885aca5f9b1ebc9990cb345ac58024408cacbb +DIST thunderbird-140.16.0esr-zh-TW.xpi 511431 BLAKE2B fb97fc1aa94973ca62899e4ef5682a2125c6e3b3c510cb0c68c9fffedc55ba9184f9364a8422e40399f43e0a2bb8a25092f0d21d9cfbef3d16218d796d0da718 SHA512 2422714b0e7d3b6293fc5dd2b2e550800cb41653c64182154c6d8fa02db75e227bbe134ea60b472b836e01ac831a90524f472506afe660539aa4faeef8c5718a +DIST thunderbird-140.16.0esr.source.tar.xz 762960800 BLAKE2B d071734786c159495a70a3934f644d32a232aea14e6fb5c1fe46a754e191580c92240c9b0c9ca8f7bf32e59167ef3bfcaadc5de036facf1fe7625a6a9ae04972 SHA512 9844641f9c8b4e7c96445d6d6fc554fc80afd8652899de3458d183f9381a18f08233e5d2e2beedd6adf2a0a6e1331e7abb55e698765b27110ca2dafdf12ecbb7 DIST thunderbird-153.2.0esr.source.tar.xz 939120480 BLAKE2B 892d5c7fda25685bc5b076916c1c2ad99f2063f75c74447d78123a34e3e27d9a4e82917ef2514a0c48be0bf3b2d6877ae0db63b060076ed655b9e944d93c8efc SHA512 a00f94a63cffcea4268838acd85ed325653fdcbc575fc020471240423fc78c560f1377d3898216e39cece32eb9a24d32dfbf1bfc9522876092621c861c629b7b +DIST thunderbird-153.3.0esr.source.tar.xz 938162732 BLAKE2B 3ab1a6e10b376fa6ef7b7c26304a0b504532ac7def4655fdf1e4638d3cc66c2d5f3c95af5c7e77a3e62bbb3d887c8259f49992259a0576771fab67f379e7e215 SHA512 9cbf9f7a9891c475721abe04e32f455f2f8df4a1b755d9da876b436a68724383f091b44e5412dbc747e33406021dc9d351cb7c6882237300eb608eb45e191529 DIST thunderbird-155.0.1.source.tar.xz 945085524 BLAKE2B 7f25e4faff7f5892909c5943b784dd0c921cb308821cbd55c340afa88ff68471783ec925b5266c7bc01f4dc8b82fe746edc77f7240acbf5737f919cc8109603a SHA512 f0811a90cdad910d0265a37e18a36f2f51185b4a50f7f7647938a7ca1bd31f5bc49572954a5039a9e7e87dc2b4f98bb32f1dc393199c3304d8e87cf36b6c89f0 DIST thunderbird-155.0.source.tar.xz 948065880 BLAKE2B 0d639fb27512d54237858e10f30a7c32788217a98d72aebc1a730e093f67c572b4e297ea05d9f0b2f1d7e29dbbec464eec86aba1e38f5e2455efd720f25e33d9 SHA512 fe0247ac50d2741a49517fabe729dc990a66e7044f450e4fe6871b663096bcd15f22ed83eea0557106d38eee34e464fead5a7567d0906995ff2a945fae64b60c +DIST thunderbird-156.0.source.tar.xz 941437984 BLAKE2B ba3bcc3970299154c8c683d73355a7f0ac0e2eb7937378d4bb6903f2f33739101b935e7d40403a1e1522cc4deea44d1a2564ef3a7e1f195bc92a3443718ce201 SHA512 8fd524f9d622f007e9bd5e8bcc440f185427a928a04d3aae14fc476e011ff1c15b68607292624ea4c4e4d596722193dda88e233cdfb6bbf5d05bd180870532ba diff --git a/mail-client/thunderbird/thunderbird-140.16.0.ebuild b/mail-client/thunderbird/thunderbird-140.16.0.ebuild new file mode 100644 index 000000000000..dcfeaa6de6d3 --- /dev/null +++ b/mail-client/thunderbird/thunderbird-140.16.0.ebuild @@ -0,0 +1,1168 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-140esr-patches-13t.tar.xz" +FIREFOX_LOONG_PATCHSET="firefox-139-loong-patches-02.tar.xz" + +LLVM_COMPAT=( 19 20 21 ) + +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +RUST_MIN_VER="1.82.0" +RUST_MAX_VER="1.94.1" + +RUST_NEEDS_LLVM=1 + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +# Thunderbird will have separate release and esr channels, matching Firefox's rapid and esr. +MOZ_ESR=yes + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit check-reqs desktop eapi9-ver flag-o-matic gnome2-utils linux-info llvm-r1 \ + multiprocessing optfeature pax-utils python-any-r1 rust toolchain-funcs virtualx xdg + +DESCRIPTION="Thunderbird Mail Client" +HOMEPAGE="https://www.thunderbird.net/" + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]} + loong? ( + https://dev.gentoo.org/~xen0n/distfiles/www-client/${MOZ_PN}/${FIREFOX_LOONG_PATCHSET} + )" +S="${WORKDIR}/${PN}-${PV%_*}" + +if [[ -n ${MOZ_ESR} ]] ; then + SLOT="0/esr" +else + SLOT="0/stable" +fi + +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~x86" + +IUSE="+clang debug eme-free hardened hwaccel jack libproxy pgo pulseaudio selinux sndio" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx" +IUSE+=" system-pipewire system-png +system-webp wayland wifi +X" + +# Thunderbird-only USE flags. +IUSE+=" +system-librnp" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 )" + +TB_ONLY_DEPEND="selinux? ( sec-policy/selinux-thunderbird ) + !system-librnp? ( dev-libs/jsoncpp ) + system-librnp? ( >=dev-util/librnp-0.17.1 )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + clang? ( + llvm-core/lld:${LLVM_SLOT} + pgo? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.29.4 + net-libs/nodejs + virtual/pkgconfig + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + gui-wm/tinywl + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${TB_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.112.5 + >=dev-libs/nspr-4.36 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-apps/dbus + virtual/zlib:= + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/libdrm + x11-libs/pango + x11-libs/pixman + 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-76.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-pipewire? ( >=media-video/pipewire-1.4.7-r2:= ) + system-png? ( >=media-libs/libpng-1.6.58: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] + ) + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + jack? ( virtual/jack )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +llvm_check_deps() { + if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then + einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then + einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + if use pgo ; then + if ! has_version -b "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES es-MX et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + if [[ ${use_lto} = yes ]] ; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + export use_lto +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if [[ ${use_lto} == "yes" ]]; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#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" + use loong && eapply "${WORKDIR}/firefox-loong-patches" + + # ICU's subslot change should trigger rebuild on Firefox if it is updated 77->78. + if use system-icu && has_version ">=dev-libs/icu-78.1" ; then + eapply "${FILESDIR}/firefox-146.0.1-icu78.patch" # bgo#967261 + fi + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + elif use loong; then + # Only the LP64D ABI of LoongArch64 is actively supported among + # the wider Linux ecosystem, so the assumption is safe. + export RUST_TARGET="loongarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + elif use riscv ; then + # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of + # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working + # guess right now though. + elog "riscv detected, forcing a riscv64 target for now." + export RUST_TARGET="riscv64gc-unknown-linux-musl" + else + die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info" + fi + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/chromium/build/toolchain/get_cpu_count.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-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 + # glslopt: bgo#969412, bgo#969871 + moz_clear_vendor_checksums glslopt + # TB-specific + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/comm/third_party/rust/glslopt/.cargo-checksum.json || die + + # 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-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-valgrind \ + --disable-wmf \ + --enable-dbus \ + --enable-js-shell \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-packed-relative-relocs \ + --enable-release \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-ffi \ + --with-system-gbm \ + --with-system-libdrm \ + --with-system-nspr \ + --with-system-nss \ + --with-system-pixman \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --enable-update-channel=${update_channel} + + # Whitelist to allow unkeyworded arches to build with "--disable-rust-simd" by default. + if use amd64 || use arm64 || use loong ; 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 loong || use ppc64 || use riscv ; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # riscv-related options, bgo#947337, bgo#947338 + if use riscv ; then + mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-jit + mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc + 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-pipewire + 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 libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + if [[ ${use_lto} == "yes" ]] ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use loong || use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on loong/ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from llvm-core/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/defaults/pref" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs-r1.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + fi + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${S}/comm/mail/branding/thunderbird" + local icon_symbolic_file="${icon_srcdir}/TB-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die +} + +pkg_postinst() { + xdg_pkg_postinst + + if ver_replacing -lt 136.0 ; then + elog "In this version of Thunderbird, upstream introduced an in-app notification" + elog "system. Setting pref 'mail.inappnotifications.enabled' to false and nullifying" + elog "'mail.inappnotifications.url' may help you avoid these messages, if you don't" + elog "wish to receive them." + 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 +} diff --git a/mail-client/thunderbird/thunderbird-153.3.0.ebuild b/mail-client/thunderbird/thunderbird-153.3.0.ebuild new file mode 100644 index 000000000000..0d6a1fc0d54b --- /dev/null +++ b/mail-client/thunderbird/thunderbird-153.3.0.ebuild @@ -0,0 +1,1120 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-153esr-patches-03.tar.xz" + +LLVM_COMPAT=( 22 ) + +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +RUST_MIN_VER="1.90.0" +RUST_NEEDS_LLVM=1 + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +# Thunderbird will have separate release and esr channels, matching Firefox's rapid and esr. +MOZ_ESR=yes + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit check-reqs desktop eapi9-ver flag-o-matic gnome2-utils linux-info llvm-r1 \ + multiprocessing optfeature pax-utils python-any-r1 rust toolchain-funcs virtualx xdg + +DESCRIPTION="Thunderbird Mail Client" +HOMEPAGE="https://www.thunderbird.net/" + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" + +if [[ -n ${MOZ_ESR} ]] ; then + SLOT="0/esr" +else + SLOT="0/stable" +fi + +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~x86" + +IUSE="+clang debug eme-free hardened hwaccel jack libproxy pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx" +IUSE+=" system-pipewire system-png +system-webp wayland wifi +X" + +# Thunderbird-only USE flags. +IUSE+=" +system-librnp" + +# "-system-librnp" requires clang, bmo#2006910 +REQUIRED_USE="|| ( X wayland ) + !system-librnp? ( clang ) + debug? ( !system-av1 )" + +TB_ONLY_DEPEND="selinux? ( sec-policy/selinux-thunderbird ) + !system-librnp? ( dev-libs/jsoncpp ) + system-librnp? ( >=dev-util/librnp-0.17.1 )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + clang? ( + llvm-core/lld:${LLVM_SLOT} + pgo? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.29.4 + net-libs/nodejs + virtual/pkgconfig + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + gui-wm/tinywl + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${TB_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.125 + >=dev-libs/nspr-4.39 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-apps/dbus + virtual/zlib:= + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/libdrm + x11-libs/pango + x11-libs/pixman + 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.5.3:= + >=media-libs/libaom-3.12.1:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-78.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-pipewire? ( >=media-video/pipewire-1.6.8:= ) + system-png? ( >=media-libs/libpng-1.6.45: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] + ) + ) + ) + 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 + )" + +# Thunderbird-only RDEPEND, ESR and Stable. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" ~mail-client/thunderbird-l10n-${PV}:0/esr" +else + RDEPEND+=" ~mail-client/thunderbird-l10n-${PV}:0/stable" +fi + +llvm_check_deps() { + if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then + einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then + einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + if use pgo ; then + if ! has_version -b "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +moz_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 + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + if [[ ${use_lto} = yes ]] ; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + export use_lto +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if [[ ${use_lto} == "yes" ]]; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#915651 and bmo#1988166 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + else + # in musl, the rust-1.98 patch probably handles RUST_TARGET like we want to? + local rustver=$(rustc --version | cut -d' ' -f2) + if ver_test "${rustver}" -ge 1.98 ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + else + rm -v "${WORKDIR}"/firefox-patches/*-bmo-2053518-handle-oe-linux-rust-targets-added-in-rustc-1.98.patch || die + fi + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + elif use loong; then + # Only the LP64D ABI of LoongArch64 is actively supported among + # the wider Linux ecosystem, so the assumption is safe. + export RUST_TARGET="loongarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + elif use riscv ; then + # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of + # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working + # guess right now though. + elog "riscv detected, forcing a riscv64 target for now." + export RUST_TARGET="riscv64gc-unknown-linux-musl" + else + die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info" + fi + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/chromium/build/toolchain/get_cpu_count.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-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 + + # 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-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-valgrind \ + --disable-wmf \ + --enable-dbus \ + --enable-js-shell \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-packed-relative-relocs \ + --enable-release \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-ffi \ + --with-system-gbm \ + --with-system-libdrm \ + --with-system-nspr \ + --with-system-nss \ + --with-system-pixman \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --enable-update-channel=${update_channel} + + # Whitelist to allow unkeyworded arches to build with "--disable-rust-simd" by default. + if use amd64 || use arm64 || use loong ; 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 loong || use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # riscv-related options, bgo#947337, bgo#947338 + if use riscv ; then + mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-jit + mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc + 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-pipewire + 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 libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + # mozconfig_add_options_ac "+hardened stl" --enable-stl-hardening # not available in TB + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + if [[ ${use_lto} == "yes" ]] ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use loong || use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on loong/ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from llvm-core/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + + # 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 icons + local icon_srcdir="${S}/comm/mail/branding/thunderbird" + local icon_symbolic_file="${icon_srcdir}/TB-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die +} + +pkg_postinst() { + xdg_pkg_postinst + + if ver_replacing -lt 136.0 ; then + elog "In this version of Thunderbird, upstream introduced an in-app notification" + elog "system. Setting pref 'mail.inappnotifications.enabled' to false and nullifying" + elog "'mail.inappnotifications.url' may help you avoid these messages, if you don't" + elog "wish to receive them." + 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 +} diff --git a/mail-client/thunderbird/thunderbird-156.0.ebuild b/mail-client/thunderbird/thunderbird-156.0.ebuild new file mode 100644 index 000000000000..b36eb7179794 --- /dev/null +++ b/mail-client/thunderbird/thunderbird-156.0.ebuild @@ -0,0 +1,1116 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-156-patches-01t.tar.xz" + +LLVM_COMPAT=( 22 ) + +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +RUST_MIN_VER="1.90.0" +RUST_NEEDS_LLVM=1 + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +# Thunderbird will have separate release and esr channels, matching Firefox's rapid and esr. +MOZ_ESR= + +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 check-reqs desktop eapi9-ver flag-o-matic gnome2-utils linux-info llvm-r1 \ + multiprocessing optfeature pax-utils python-any-r1 rust toolchain-funcs virtualx xdg + +DESCRIPTION="Thunderbird Mail Client" +HOMEPAGE="https://www.thunderbird.net/" + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" + +if [[ -n ${MOZ_ESR} ]] ; then + SLOT="0/esr" +else + SLOT="0/stable" +fi + +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~x86" + +IUSE="+clang debug eme-free hardened hwaccel jack +jumbo-build libproxy pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx" +IUSE+=" system-pipewire system-png +system-webp wayland wifi +X" + +# Thunderbird-only USE flags. +IUSE+=" +system-librnp" + +# "-system-librnp" requires clang, bmo#2006910 +REQUIRED_USE="|| ( X wayland ) + !system-librnp? ( clang ) + debug? ( !system-av1 )" + +TB_ONLY_DEPEND="selinux? ( sec-policy/selinux-thunderbird ) + !system-librnp? ( dev-libs/jsoncpp ) + system-librnp? ( >=dev-util/librnp-0.17.1 )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + clang? ( + llvm-core/lld:${LLVM_SLOT} + pgo? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.29.4 + net-libs/nodejs + virtual/pkgconfig + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + gui-wm/tinywl + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${TB_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.128 + >=dev-libs/nspr-4.39 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-apps/dbus + virtual/zlib:= + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/libdrm + x11-libs/pango + x11-libs/pixman + 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.5.4:= + >=media-libs/libaom-3.12.1:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-78.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-pipewire? ( >=media-video/pipewire-1.6.8:= ) + system-png? ( >=media-libs/libpng-1.6.45: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] + ) + ) + ) + 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 + )" + +# Thunderbird-only RDEPEND, ESR and Stable. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" ~mail-client/thunderbird-l10n-${PV}:0/esr" +else + RDEPEND+=" ~mail-client/thunderbird-l10n-${PV}:0/stable" +fi + +llvm_check_deps() { + if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then + einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then + einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + if use pgo ; then + if ! has_version -b "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +moz_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 + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + if [[ ${use_lto} = yes ]] ; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + export use_lto +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if [[ ${use_lto} == "yes" ]]; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#915651 and bmo#1988166 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + elif use loong; then + # Only the LP64D ABI of LoongArch64 is actively supported among + # the wider Linux ecosystem, so the assumption is safe. + export RUST_TARGET="loongarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + elif use riscv ; then + # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of + # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working + # guess right now though. + elog "riscv detected, forcing a riscv64 target for now." + export RUST_TARGET="riscv64gc-unknown-linux-musl" + else + die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info" + fi + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/chromium/build/toolchain/get_cpu_count.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-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 + + # 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-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-valgrind \ + --disable-wmf \ + --enable-dbus \ + --enable-js-shell \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-packed-relative-relocs \ + --enable-release \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-ffi \ + --with-system-gbm \ + --with-system-libdrm \ + --with-system-nspr \ + --with-system-nss \ + --with-system-pixman \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --enable-update-channel=${update_channel} + + # Whitelist to allow unkeyworded arches to build with "--disable-rust-simd" by default. + if use amd64 || use arm64 || use loong ; 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 loong || use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # riscv-related options, bgo#947337, bgo#947338 + if use riscv ; then + mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc + 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-pipewire + 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 libproxy + mozconfig_use_enable jumbo-build unified-build + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + # mozconfig_add_options_ac "+hardened stl" --enable-stl-hardening # not available in TB + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + if [[ ${use_lto} == "yes" ]] ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use loong || use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on loong/ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from llvm-core/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + + # 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 + + # Install the gfxtest binary on supported arches + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/gfxtest + 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 icons + local icon_srcdir="${S}/comm/mail/branding/thunderbird" + local icon_symbolic_file="${icon_srcdir}/TB-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die +} + +pkg_postinst() { + xdg_pkg_postinst + + if ver_replacing -lt 136.0 ; then + elog "In this version of Thunderbird, upstream introduced an in-app notification" + elog "system. Setting pref 'mail.inappnotifications.enabled' to false and nullifying" + elog "'mail.inappnotifications.url' may help you avoid these messages, if you don't" + elog "wish to receive them." + 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 +} |
