diff options
author | Joonas Niilola <juippis@gentoo.org> | 2024-09-17 10:11:48 +0300 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2024-09-17 10:17:46 +0300 |
commit | d542a15d30071bbf753da0b851812f66084d20fe (patch) | |
tree | 6f38065f3b274e8f11c3210f84d7ae56f7d1a4fd /mail-client | |
parent | mail-client/thunderbird-bin: drop 128.2.0 (diff) | |
download | gentoo-d542a15d30071bbf753da0b851812f66084d20fe.tar.gz gentoo-d542a15d30071bbf753da0b851812f66084d20fe.tar.bz2 gentoo-d542a15d30071bbf753da0b851812f66084d20fe.zip |
mail-client/thunderbird: add 128.2.1
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'mail-client')
-rw-r--r-- | mail-client/thunderbird/Manifest | 65 | ||||
-rw-r--r-- | mail-client/thunderbird/thunderbird-128.2.1.ebuild | 1190 |
2 files changed, 1255 insertions, 0 deletions
diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest index fe9c1c616efb..94e789805544 100644 --- a/mail-client/thunderbird/Manifest +++ b/mail-client/thunderbird/Manifest @@ -326,3 +326,68 @@ DIST thunderbird-128.2.0-vi.xpi 787029 BLAKE2B 8905a673b71236891630a9dfac65575e5 DIST thunderbird-128.2.0-zh-CN.xpi 785328 BLAKE2B a5cad2e891779711ab6be31929d96647c95b93bb50e6ec31f8a4b4f87eb2881f9ed20bf5818f4475aaaa301ed4a25a6a5350fdca9ce3d532747ff9a74593b535 SHA512 647dfe19d2866e1455d9c21ff0576f7a6ee5a780f5d07ca11cc02bade2a50cf42f21270d573f74258feba2a9adbede415fa4ae4a71e87f77a133e8931c259b47 DIST thunderbird-128.2.0-zh-TW.xpi 789781 BLAKE2B 2f584744f1ec20465b5e39d8cb966543a1d549fbfb133392aa6bea100f3657df9b29c01d4f07b3bdc4d531a370f7da8d0b85605a680d36919eaf2e4091b4aef6 SHA512 162d5a7ef2e84e55424a6fcb14d18999d0b4c781045180a30394d7f767507dc6b1b084b2d4f3bed63b11d605560bf1fd59fbed7ed0d1e0dce6e47511ed7e6a8e DIST thunderbird-128.2.0esr.source.tar.xz 674856032 BLAKE2B d86751b94bc6b611fa2ac740e79e57f4321d048e9bfb48f4237021ba2282036b79c449c08837b8b4c19e884cfb900493af4a8f6e221c56a4849241cd32d66de0 SHA512 24af7d705c13a0b49b0f9fa66a4d17ce4e95b65cc60f84f56364dc8fb480fb61b80166872e234a3c1cb843624874757407b2d9f0c5af82ddf2bf86de82571077 +DIST thunderbird-128.2.1-af.xpi 530350 BLAKE2B 029e36e76659b7ba83108dc975b456f57c088271d8f423574222ea3074861e7c8828a2e1949ed3b5f0119c5a141a17292a8a8deda0a97e484e9ebdd293701a9f SHA512 b4df011d615580de03296452a21012ca656b45889522bf80884a98bc3fac51f6913f34b525fc42953ee3e7ff2750c2bf6db4c0ae87c1af93f7fde709fc64b58c +DIST thunderbird-128.2.1-ar.xpi 679867 BLAKE2B 8bda4bb4bc068343bfbe89a59a24feb30c8205563031e549d0caa0fb30e89651dedd48ae0505bbf0c15bf56d2b568d7545d71808e78329ccccce038401f54206 SHA512 6d419a49791e9fee211fb3856390009326e86f99b45af0622f93a8f345abe15aba24b9c4504b905e11c96ceb267ffcbfe3e8eea9b010b55397a7ceff1156661d +DIST thunderbird-128.2.1-ast.xpi 561054 BLAKE2B 21f75810f09dc385b2932d2561044b12d38c04b70b06243b7b500142eb4c1acd82d079e07ea2d4acbf142aa836b9d1b48b8e24ab45733692a98b1250f107108a SHA512 a57f06c1053fc94d4ad860312411008aae42fe71599aeb75f7f619e8049d8f3c872b741524c86dfcfa8c7984450086c5778aa73f62a7ef76967bbc3467aba51a +DIST thunderbird-128.2.1-be.xpi 755106 BLAKE2B 4c19d5e5c913bda45b91dadab5156f6c0590eaf687bd7f016164a4f1c4c0ca386dba7f3b30edcf3077c5097c3fcd0e56d8d3be73d0140b41fdda9000b8ba5ac6 SHA512 e68ef72706ace40ec52e0f0961f96c7878bb5021e710bb820538beff2afd8582fa5b251c937346488a5d53f25a54e843993d45d1ccbb1de204b4abc7aec76831 +DIST thunderbird-128.2.1-bg.xpi 807861 BLAKE2B f11eaecb49b7a4de63e2e0cf38726936384545f8313ecd4647b19f8a2f71acae5e897b2000e44bdb3a44875e1264aaf4f88dc2c1bd5926dbabedae3068dff70a SHA512 d5f963301783d61f79a3a89d87f4e36f2d5e44de05937c895a1495a7d045565839efa884a75ba0de1e59e3a5b2006248ac0b02fedbbc6d8f0f9dc820da496006 +DIST thunderbird-128.2.1-br.xpi 652477 BLAKE2B 4983dc599fa782e1138813b998205f136cf6946c0e10343ead4b4ae59046bad38e88bdb45f8ab776bf09e3524e8cb64bd9c87e5c3c9fb6d2a46d975e62bd76db SHA512 789e9e2960548e30e11b48578d6f3fd9333e8cb6a8447519cfe40e931bc79d4d5edd25f2a1084b62276cfe1997d4089a71a03480a7ed0d770811f0c406843596 +DIST thunderbird-128.2.1-ca.xpi 708967 BLAKE2B d31dede8764c4703f7e1cb3a99f7060965fe826b9f2628aff1ae699eeeeca1b2091f5407f694d753a5dfc0f0472e293559644d11ee690c8e03bd9187631b5b23 SHA512 e78857f22081990ec3fb23cd99734d00d6df2242723fa6e5002a27bcb4540adea4c7a164587a3b5622f8fe6ac3e27d4ddf8bc1f3c519ba256be08a3a0169e1a7 +DIST thunderbird-128.2.1-cak.xpi 671704 BLAKE2B 91652a7f2e314077a4ea1d5121daf18f01ca157aba0295b1fbea77782acc20414311286c5c69fb4ae7bf6b75ac101fb67aa7704bf55c90d83b39987256a35d77 SHA512 d141352ec32e5a22bae9054e0a1609f87454f6199f45bda581ec85d7b3208071e2edb009a96db63f4504773a0bca2948d592731d4362cc4964b23bb97aaa7dec +DIST thunderbird-128.2.1-cs.xpi 785043 BLAKE2B 614f7487f91c2008cc929a1fe9ef65dec6c1279dee8db443c0a17e6a5c20d674aadf3e21e9a10d9aed1a4f69decae46501bf07d0dfa22e7da7a0c409bbc8936d SHA512 07a416b0c33b1dcfc95b0e7086c8a44aa1424b7fbff5e9bb08c0bc23ccbc13ba4a8cb6c7d7566a12a26c78bbb670c5d2539717a5bcb6c83d9376e1f936b4038a +DIST thunderbird-128.2.1-cy.xpi 749052 BLAKE2B de84446f54c6c875f90daad0cf5f77dab164dcf2e4525592354307397af51bf825dba73e65299614880e5be8d44b08404a78281043b05767d2b1fbc1f6595b97 SHA512 2da1b3a314d1072c029ac00b6ef4f8bd4f23d34e69ed94255b01ba0b7932e8ec19c169efa65b730d822e4804d9419eb0aacd4ec4645f14b59b3f98a796892780 +DIST thunderbird-128.2.1-da.xpi 734116 BLAKE2B ed0e00f99e9af82fe622f11dd114848d654fc10268c6f7c2d488d1c40a18ad48e803a0a7c952a990fb3a4ccdea60109705bb36f6b24837f95875981f57066c76 SHA512 bea309acb790dd4e605d9fd83018d3436a76942f3a04adb546fc004a1ac30704670d69f8397cc32666a59b4180dc1320f49f945f96e17718a0f1a967a326747e +DIST thunderbird-128.2.1-de.xpi 766250 BLAKE2B 7befc0bd55804848152a38882b28b3179103b750e5ba03aca0d25ee8993b15c72ed8f913aa1204d093608ef8e7bc6292cb965ab7b34e4e568701135989dd755e SHA512 8209b99caeb1807f6769efe8ac52780f25832179d6db98945c9b0cc5761ff5d7ec2c511afa359ba3bcb27ccc5f176bf761f639a8e68df8082a8615511a5cebc5 +DIST thunderbird-128.2.1-dsb.xpi 782740 BLAKE2B 2efbe071cb3526babafb7d2eb67da841c558da46b5f5d9b0bf823a57f36f75fa55f12eb14834d83f04e5308c6450316148430d264540d541ae407bfe86254985 SHA512 665d1803cab339390b6713e9628a31008c62aec62dab9a14e77d380a507a427d51fed7969d17982ac77d2bf10621aa4dda72c1709d96415dd8d9f0793fb0e0d9 +DIST thunderbird-128.2.1-el.xpi 889269 BLAKE2B 30fb03354dafd7fafe65ee852c24e639f577603db2d507aad0f4c4abfcb3adbe8d0bb3ac3eef5dce3905846f34acc25a8adb29a63d86fa7e99da9630629fa9cc SHA512 9c890d99c9e56ad592860a5cc8254fc8e685f93e5e77950842aa9fceb475ad61508884ad9ee9fad83b502b5de5723f7d3d4581b93b7910b7e34af7b9c0a073f4 +DIST thunderbird-128.2.1-en-CA.xpi 702143 BLAKE2B caf415b29be838a19680ccbe85d9e5d79672544b11d9b6ee13c69c3643b9f6a64e6a148d5bdf833899c01fa69e9e2cd59a99dace7743c6786e0758d46c3ff179 SHA512 5b536083b37a40e8aa189485dbd4163eec28c12a1ef859c4d2187d4ff54eb0761dceebada0c5dfb797a5c47adaa39bcad655587a74b5dc3a70a4fe49b9dc1e6f +DIST thunderbird-128.2.1-en-GB.xpi 702699 BLAKE2B d6daa753116c8f594628ab3eb444ddf89a3aa625835fecf3f06558de9c00d3fb7aae563785f227df866b008bde68eb448817d5ada60e67a11483a09ee0cc4fcb SHA512 8df247357f8275d36455f5566856c1687bb45ad36b7211111b2bb9df639cbdc7d3ad32ef32fdbe5178ec7ffdebfcc6fb73854bd26892119adea09221f977b5e0 +DIST thunderbird-128.2.1-es-AR.xpi 758349 BLAKE2B 8147f1d2cfc69e47f8438cdf231421b4e01b1b9e013a56755fe917ecfc835b04c06bb0e163b0898e7509e92f9cf0b9506c15ccbda54ecb16324491cce9695e68 SHA512 1d8c48570c62db60961308c401baced3f7a4b533c3cfd482760c33a736b647144bd674ec56ff0ab68eccf0144924218fcdb4b1169b0bbf68f46e059a748d242d +DIST thunderbird-128.2.1-es-ES.xpi 723515 BLAKE2B 8b01aa7bd41aab8f9b28688565ccbb91c69456ceea8cec9556b45ecb987e2a57139d021cfcc449553ca9e8487f818bbd3d16421dcdda57af81f06a96fc19bc50 SHA512 f81ba9665788c67cdf607b1d381fd5e55306e8796e4879c9a8ac86a1fc252ae8f574706cc59b86547d30db38a7e3c3c73fb1d2165170dea11507ce052815cf8f +DIST thunderbird-128.2.1-es-MX.xpi 737708 BLAKE2B 8c469daa61ec503df621fe7a4b1b2003495fadef96ea914507adeda2e4c6fc9378b553f351d9fdf5d3118b45251ebef3ac5f1d7b7a882f9c54c5f158f8955c06 SHA512 7797764b28d2b63e6741a4bb81b6841472fe0a49c29448edbe1f37fc5d7ea986c6e8c9eba2d47e0a73dc08c5985f9af406123ccb2ba7d853a11e528220c9d8e4 +DIST thunderbird-128.2.1-et.xpi 696281 BLAKE2B 30a5b741615a7e8059e4e7eff46f13246fb4893a7487a2154d3aa4fb67d1fe9cf976db8de5fe3388284a669f21e5994b7b69bca622db842b621d38ee0f1232ad SHA512 766771bd0036b80c201d8a4bf2328f14eb3f78f5e9cc128d82d48463803dd1e1bc91d74a92a98b0f9b37bdabee921d412b4844e75974c187f6ee8dd3ff78b4a7 +DIST thunderbird-128.2.1-eu.xpi 726802 BLAKE2B 3302a687f6899ca2a02aab958d1a3d568245b67a8e2c8d7800cefc5c4e1235237cc446c34c130065d7a0c8cbc532fc8a732517fede5a138121f9a4a090b8e99f SHA512 5b6f0770ac7d190aeff30bc177379aa5a7bdab682d9ce3944aec5215eec3b67bb807f0fb3d534c531619b7e81a494d16632be7b01e50dfbad862c82164da3364 +DIST thunderbird-128.2.1-fi.xpi 733651 BLAKE2B 840f69360c340ec1bda7031530ca67448750f87d10dfe14601b4e43e261b4e531c08b030c3d4e2890731343cc6a84ff2baf7807b59f2968d7b94f6a436d91b3d SHA512 15cacb9af1a626a7fdeefbe78c68fd9296a8743651f2a4a9c9b7e3fd9daab72166cf6f596835a9372dd5240789badce0ea46e4d4f657598660f25576c6f15ae4 +DIST thunderbird-128.2.1-fr.xpi 770186 BLAKE2B d8ef58005b2b3946dd6f5153308d937d54ff3ecdf0a7786c0e4ac673e01016753dcc8a5488a8f72b17a7bafec1f52c0f38e38a481122f543082b60c6f500c734 SHA512 bf338e98d6a1ca32f835e45d4557f4d9eb4d9de7ac7e5d73d241d5b24dd385427df4a37d0df518e4406f2d1badf93ccfbf0590b35ce1a9990d06deaa34ef70d2 +DIST thunderbird-128.2.1-fy-NL.xpi 752849 BLAKE2B 96b36322f9fa2c27353d66d3e35c6117b3ad85b153417645bd715c631adb67486dae62ae8f85081563980634b96e4c8afe612f21eb1d6e6d21933f3b193d74ac SHA512 0a29b05cdc6e282ab945007370cd56bd96f8f5e78c24b327ddf41e4abbf981ba595b06b1da81c63cb3b34478138f7a9abb83352e5bd1f098fb505a93bed2ec8f +DIST thunderbird-128.2.1-ga-IE.xpi 615199 BLAKE2B 3003eaa9db402e8794395bc0b6d17c7ed21844e4a9fdfe87222d7a3c2831900704ddc6302088034ae2aa3d99d6bd1ef8a991481513ca48f9df9e73b702fa0594 SHA512 fe2336002759657610d0afacf53eb4b071da742a0db53c511ad45721eb2616377012ba1376994980752209aa984d466db6322cb143d28223b2f076308dd4a910 +DIST thunderbird-128.2.1-gd.xpi 727803 BLAKE2B 14f142e6a163013e32b6b636edd64980798adf0d4210d1d933a2e6a1f66846b817b3353ee64ffaae0cbe5aae19292875917dafbd9eafd3f2306e8e373261a8b3 SHA512 5e95eb3ae53a81e9577bf0018e37e3c48208683bde3731b823207b5ccc9bb28445d2cac05104a14c8c99105918d70baa9470e59bdd3cb13aa13f04f5e481dbc7 +DIST thunderbird-128.2.1-gl.xpi 736573 BLAKE2B e9dd27f657ba949ed0f9c1487d2c8a7e06786951a05993af2600d73c89c5766753436f1c78f18239f93cc6e277af86b50366247ac76b202697772f3f53f347f1 SHA512 4f5d2abaf85d9beb3688f6765ccf46de53de76b26cf538ab598070a6614976cb3e2ddc98ee12972cbc84fa20bd71e7906938bb92717a8b4221ec4331b7390a26 +DIST thunderbird-128.2.1-he.xpi 700302 BLAKE2B 19ed0bd4d55435c88326450d0886e1fa482846f2f95ef4530bacf2b4955dbefb88960ba4f977451fd206a6f6f3b54f78a9b875ab67ccae6d12b4822ff08d7189 SHA512 609064139d4c03fa59eb3a5879f40fabfcf49cfcac3a5f0d6445116b625e255b8e000a008803dbb859d2613525f20a30383233979c1fa50d4a1d6fd6831c9c07 +DIST thunderbird-128.2.1-hr.xpi 715018 BLAKE2B 9db282369838be56c22daf034c72276595bc49f0ad85f2a91d9b180e97b0efbbec5cfe71d676520ad3f3ea615298d677cf8accfb7c94dcb67a5f2675885bd61b SHA512 2ccdda7f559a9ae2b36fd8b6b307ec058f8e657ba8261034f0c1c94f24641b7abd5184a088b858ee2ace635ac71f319b24bec237965209fbee0fc969b0b27b6d +DIST thunderbird-128.2.1-hsb.xpi 780138 BLAKE2B 73c1c8f8103bc5206d04cefee77b0f6b0d85ac4616b7587897ca2edd33e582e6290b06545168ae04386886b088f65474bc630ce6a705c6b7a2b2526c547d03fd SHA512 b9d9e057eec2c2d7987e5bf23ee73c1091f15373ffd405b1fef3bf0b403a0018f8496bccf599283b67fb9f7e896b120746c574a2033e544e54b97716ff6794d6 +DIST thunderbird-128.2.1-hu.xpi 782933 BLAKE2B b6caedfeb71766bd61b097014b88534b2d57066b2f6f60ef12241052bc1ca2b90885f3368b145f6f03e4749d4df85788b789a90790f164dc5c0c0580b7a60a96 SHA512 1934e9090abaf8e2ab0c6d0f9dc328e04a6643908f8c15422115d9408f7915e30bb300813ae49abfa800fd765b126fca44b9e082a5e5fe39c0019d15dfda3a2e +DIST thunderbird-128.2.1-id.xpi 666012 BLAKE2B b959625f7bcdb640cfc31bd4092ed67f4a9527562273ad5da8bf3afc63908481fa8ce4d6f481ea53c5f2b210d04bfbd5d5b9afb7960b786191e12cece7da850d SHA512 8ca188e30c781b0bacf564ebc76d60360102152ad9c53128136fe09f8d4feef395a4c05ab5a8851ef011a9650c3aaa80e2e97f99341e72c3bf016299f7475dfb +DIST thunderbird-128.2.1-is.xpi 743887 BLAKE2B 5a84e49807f9a58d59b82adee236000bb4ebafbd693f2a86959846e112eb6f61ac02622cb1a5ca9cfef2bbb8623912d18424661f87ed83197f796781928381da SHA512 bc59bc564522d4a1d6603114d66744762369c011c735a71959f80c5c568491ee5c6e81f30a655defe59b3f4ff21efad1dc6dda7b92487615c51a41078fe9126e +DIST thunderbird-128.2.1-it.xpi 690399 BLAKE2B 3fa933f6983bf5b1644de8181c59e9637e889e5ac772a61c739cfa186cb8acd3ba9196a07555c9cc49186b9fc2d15731aedf95024072ae7a763619a2b0f10f1f SHA512 6345b513959a45f9963eddcc716ebc22b02545d565a283bf6e48ae19a98f67ea6403abd1e9154e319145761b3e88f97a5bb682fc01bbc11e1f527e013b65dc6e +DIST thunderbird-128.2.1-ja.xpi 819903 BLAKE2B 9ab5d6463167e0e7fd818a4d74ad1191b87b35073d9bab2b34732f3dbc3272210d1353e80d7b42a969af05119b57d80b8a23ba3ae9d6f55210f8edb673322274 SHA512 8f96304191f9f3f0780a184950bf4ee031fc7e768beadccd114a4e4a24fdee9353e7c3e134e139acf129c59d317abf544dee325f087cf0c5462b9ec5cc418e6b +DIST thunderbird-128.2.1-ka.xpi 796046 BLAKE2B 8ac49290a772133c51c2ee6a23ec81cdc5856571ba299ff7c6254222fa48189ed14bc2059a6213f221ce1ad985c2684a593f60f5159426dedfc09d9f7d998ea0 SHA512 5be26bdd75362aae33a9f77bd772caf34f67fbc98a90dcf3a17d215d6f40d382ac04fb0a5af99aff16d7d207e45e5b4fe9e53f368ce578e696adeaeb7564a44a +DIST thunderbird-128.2.1-kab.xpi 731858 BLAKE2B 0c669becc31864983bf1717b9dd2725b0f1df72a26ca976aae5db8ef21fac2b54596630b858fdf110b95747a7a4f9aa5771666cedfe1f40da0c2e27101b004aa SHA512 1d79709a7a8c7171129a64093bde5263e2c35c17a4c99d0efa8e7e0f4f8d65d525d45e17ed51e7633ece13b46a0283c3b81a14d6ec72af046cfd311be6ea8614 +DIST thunderbird-128.2.1-kk.xpi 857290 BLAKE2B f5d67baa0271251c71c6d78e86e2763fbc6e223c14f8d2b388abd8d9a55d354eda30c99f2eb1b8fb9e1425b8bd74c0099895258e4e06ba025379a181a8020230 SHA512 582527b1aa96a9bffb00fc8b5b09de677268405b074a9f43aa47c29513c0110c22fc6b5f528e739d447b2556065c5e338635cb71bcb6c504be29d86adc8a3bc5 +DIST thunderbird-128.2.1-ko.xpi 755164 BLAKE2B 2e8e5bdafb6cd287003e68552573434fad16a5269360c0c07a43d8f4193ba70d1dfac79e9a47fe038fceb8b21947d591352038612023e3a8ac8029f19991bab1 SHA512 2d95d891f8b99ba68eba67e3b54c2bdc440de4c8c5aa27d745cfdf96c1ab843b1cb24db736e85aef3c82d6b18ae1c339a0e0aa7617031314f3f934f25f5ff07b +DIST thunderbird-128.2.1-lt.xpi 700919 BLAKE2B 9279a164acdfa298ce75107669a3c38b3d661e3e882cddd8e63f90fadbd7c6eb46160f514282b241ee97c2ee7dbdcd1030e59e102c2e96a716a8575f6491a2e5 SHA512 fdc8943bcfc112676fb4211853eb2a33ff8a33488e55b01473214b75e33c18ffea7e3340cc291653260101eb2c3cfa1dcb45487b5f8406595d7d948b8852632d +DIST thunderbird-128.2.1-lv.xpi 623625 BLAKE2B fadb3eef3480df834da8242ee71a21ca52084a5ada7664fa4dcb52284fcae079fa6bc075eae764192551d8908a1a7311cfc36543f9dcc2ebf94b2a5b2da8af22 SHA512 d1218de16de091b469e45bd1836dad34fdd1f4978b351aafa4712d2abc29db3400c6adb5b802625e6d104d45d20c2eb4e68a50375ad0075f9bd82bb95f2833f2 +DIST thunderbird-128.2.1-ms.xpi 581083 BLAKE2B dbe1ad18fecc692990d6d0bbf9b33f7ff34b8fd5854ec8ba8fb123f1f5f2b5d69bc186096dee9dde0798fee63171f4f768456fd02b536b54c01d792e5ae28bdc SHA512 c6eaddc26b9ce6a8f71959878c43c59816cc8141c188859d1286a5656aed0c0f13fd73aa6e33996fe9e5f63d998cd04b40af6145c88f8f2d9ccff31e43cabce7 +DIST thunderbird-128.2.1-nb-NO.xpi 703765 BLAKE2B e5918468de4d57f17a4184f9de0c6f7fe3fc570845e4baeae2db4a5817d91f8d958668db357ce0cb73aa2029d270a69d14b91df020a33dc2f275c2c61d7b1eb6 SHA512 c72fdfb6b96929f978f4bf21f025a69e84ac9b1ca88b6aff8e1a5bc8d78a8dd3e680686133ba017f63b527e3b3e184a6612ec977ed94f65e478c04b30a1dfc44 +DIST thunderbird-128.2.1-nl.xpi 744107 BLAKE2B 731d30bc43f2e8de96efff278d4c9d6fbff849be8c8e3d5a78f3ac70251ee9cd5057a96e08b0947aab762566317b1bc43b1bbba0b851eba8112a5f59e295c070 SHA512 a47fb34784617bb904a58dd521c6c994489ddc2f1352f56f40f8a4d787ecc3e3e085e5d85fb74b49a3d769f21b20d9cf82e24cbb48dc84c7e74c4fa10a8bd2fe +DIST thunderbird-128.2.1-nn-NO.xpi 723768 BLAKE2B 09756d7e04b5f25815a53dcee5393f4807eb229d8cf6b34c3c625c75dd3ad19559d7c45f9f5a27ea4d88178ee04a5fc8a353da9e3f6577142eba85f82687dce2 SHA512 6a78180385a8589a732f154d59114db64e50abdcf3a30c227861d1352f6a70cf3b899ea38d3a2f1a777ee551a17a41db9852055dd9debe79649ba6843f58a679 +DIST thunderbird-128.2.1-pa-IN.xpi 683076 BLAKE2B eedf1fd929ee7aa504d42918426403b2dafd98bd2b954d4db73a29e058b05510b37bd5e6ea803689791f4f13d78a15d07470f22a79506093fa4a219168cdca39 SHA512 ff3b7f2c167f4712020f4ee36dbbd25c26549ca2a0a7889bbf5f8815028233183ef87bf6080ed89010fcf6ca3944b5d964dcde74de85045dac85c9152b1e537f +DIST thunderbird-128.2.1-pl.xpi 762952 BLAKE2B 8a2c196b864f7f42a38533bdc13729107d1037d69ea6005311099d6cd44ef481635d9c0544529566b9a0783f3c5cdd1276954d3c7b4df1ceb9c6651ff99760fd SHA512 92aa91dc7c2dcd8f340992e0abfa8089495dd6e4108be22b5bb2972e3a9a0f034f39502048f0b5c5568b6db01fa0360dde8a844ac315e7e66ac08754fa14aa4b +DIST thunderbird-128.2.1-pt-BR.xpi 751314 BLAKE2B a575610d534e6845fafcc5d0839c309b553017d5badf0d843372ec40d4f8ea38676b0c34e82607f66e3a645d866b9fca74eaa02eae7a68fd35c10faff269e032 SHA512 b1b5812baa54eae0362676d4c5b3c25197c85d3822461fc40b46646d706a194fa73e5730f993f1978e9de7258e684bee09201530b70341b9a1be89dd02cd5d54 +DIST thunderbird-128.2.1-pt-PT.xpi 746870 BLAKE2B 3edfd1060c9f6132984089b3fa24e267b51c60167c271cfd447ba76934a028bd3f243b9c271230594e6159d4f58c9b37b7afcdb18d5061093b311a4e9bf995c0 SHA512 9165ba22ec09aa949a442a3d6b8275dbebe67674b1c930267d9cc12c2270f345488bdbae7f32a9098182650112bab32a9cf4ae7c22accb6b358f8b9e2f06aab6 +DIST thunderbird-128.2.1-rm.xpi 746779 BLAKE2B 4c56b2caf8f23df94b95db14b3887644a837d250e441085f8bb57966b0a7084a277986ece0d2a40e58dacae4c8f048d3c6c0b3aa8f64afd94db9115416bd8623 SHA512 b72e65bc157dcefba8577998dc916f334226d98e8d7bb1897d48fccc571c807797d6f675742459c586d18575290e68ac924c765f49b45bbb59cdd6a17782373e +DIST thunderbird-128.2.1-ro.xpi 669742 BLAKE2B 7269f94c345ab6f839dcfe10fb9c316240c23c814051b287376d0a939e37b8b9340be849d4959250cda057894445a5415d17ad6b2d12745403c48234cdefe208 SHA512 993952740d99f2f1f896d856c738a926d8320d05b33f514f25e5bbf879c24317c0f51dc979f06078ec8fb68624fc125835792f1a6246f78045de7bda08d1448b +DIST thunderbird-128.2.1-ru.xpi 872247 BLAKE2B 8f71476a0e71509f3448d1cff42b3f3d92b06c6d882ff8482f8f7ca529ab636762c526c74cfc02757955b8ccee69185b41b7b2e3722c25c86e28e469ce655a7c SHA512 a132dd16295f4880009db20d56d1cd785a8c018969969b207dc1771bbc111ce1b8abfdb23dc7e3f6319690bda5b1f9707d07885a4d6bda3353ce574de02c562a +DIST thunderbird-128.2.1-sk.xpi 784171 BLAKE2B 65d26edd887434de33f21b43525062a6df131111ca40e66016ff40f72acdfb9f74b02e5628d95a8e5c05079c0d342f247191e511c7f144554494f6d2622c2a52 SHA512 0240b86e82d5ad761a006131b033ab40c836ffa0cb95b30f8301972c8a4a48ada0bf495571151f74a93f2d433b86c63c69ed436c826d994d9d599c45d4521931 +DIST thunderbird-128.2.1-sl.xpi 743550 BLAKE2B f79390d189d8997b39a88220e90407555cd1b41c7041f1fb6c31d04df029c3d32697f11ea56184f267fe76856385558ab2ed269c174aed2d1833b548b9342dda SHA512 7236c4ccc161ff6551b14bf83efa218936ff9a59053db317f48477f509537bdb78777d5dac4a72a84670cb3015795327116acbe9a8ead2689c852762a5054b32 +DIST thunderbird-128.2.1-sq.xpi 765888 BLAKE2B 4215519862d0a1e0e9b6962f30adc5d5fd5d215ef821f882e5b45aec1167a9809b6d98896d1b4a1595e8fb5e56824057ab83b99f747f3fa99688cc3eb83ee8e0 SHA512 5401ff6040bd50e1f53fc02621471aec876c5a54798c96a1088e416057a0112e23420dd0997e74e21c7961471b82ed0c6153090632724160aa3745e56ec8bf47 +DIST thunderbird-128.2.1-sr.xpi 771007 BLAKE2B 83ed4a49c137b9983c8ba45b919b60fa723734c914e1c272b701242c78a93d3748183c34a37dbd3eae6268d6e5a3b6e13fc1f514300504835f9c3d5316824709 SHA512 87eaa384d0aab2de44157ec239bf87a5b5f2ae1a5d9036311dc887e97b63803621420a66a6be9a569084511593f570eb1019db83743357628fa2fb0726b83a22 +DIST thunderbird-128.2.1-sv-SE.xpi 747521 BLAKE2B 84e07a98cf96cc87fcc410ddfd9889f23bb36abd7e8f2c13091faf039faf6d30e044ea4598dc127655dd57c3c3d66bbd8b9e11cbd08d17f30d71f15b5ddee1dd SHA512 3412d1bee9bfc153be5c8c6c0c015d6fa3fa6d4d4c901ca914b0aee75aacb3648a1eb7dc77916d521d038f9220c80924859997f3bf9226e0726d330c7f91f5a5 +DIST thunderbird-128.2.1-th.xpi 813955 BLAKE2B 7abdacbfeaf7692642e5e90f7c3009f48d2071989d7247ce1dbdc57c16b028250c8f286c7f178d0e4b83f2f2120d66d1474d9baf85337f7d0727d8975796e27c SHA512 6f4ca7656ecf67a137f618e8bb6ab2a817968b1844a41d109d98bc665125ec68e5e007fbe7b76a28db8082b9c13659d82b3e31b82bbe27b0e6596fb799f95000 +DIST thunderbird-128.2.1-tr.xpi 758166 BLAKE2B eb4118bfce198810949f1b2fb399a405e80ce678d9ac35b3a0c9449fe222b23d49586ffb0bd0ec0c7a5b1425036d7162c2f81a832d0bb3a86a220d50d2032712 SHA512 98b5514915baba99cd2e060d3d91ac423147925aa6469a619b11f6a044e9ebeec8f57d7cdb220e034730cc496cda74664e0c5f07d9f326747c04a52f3eb82590 +DIST thunderbird-128.2.1-uk.xpi 856055 BLAKE2B 9b92c639a835c7a089a71ce7d56f322cb1c1b98a4aa89c291b96051de729a6cb3790e58e08445c60d0ca91490ae0d596fe2fff9945a26bc6a47a3a547a59feca SHA512 c33087e527575533563fd154808c364701c7b0dfbe512597206b6cbf086b6fc62b0757f7c0efe191edd7178609444c39a5626f39851d118205570eaf8bb9ef94 +DIST thunderbird-128.2.1-uz.xpi 592134 BLAKE2B 30ace0cfffae65aabdb6613470ab7a71f36f9cf81077a1f86807cea47c652e7f62b4426150d09da56b7f626c914361cf61c16b9f31c58dc20aa3e4d0880919e1 SHA512 c5df80c44f719964e00143b5fb6347c447907b936b0d4e8900d01127ed13d86be4367aa63b688666028a9908706677b7e89fb239f61110195382f3623477791c +DIST thunderbird-128.2.1-vi.xpi 787028 BLAKE2B b8855d3fe3afd29cf88252458cf5d298cc8ad531dd6470e1c21fc4c4cfdcb487692c5b12efd6bb1e57270ff16218a38fc503b676a7398dc5b0d5fff1342dbc98 SHA512 1caf0e8bd087531c373225bb54f30a49b3274a30a3e220e81bb2746b6fbf71ad18c50a36f644c90c02045eeaa14c54213429fb69c87b6bc2ec7fd91353e43b31 +DIST thunderbird-128.2.1-zh-CN.xpi 785328 BLAKE2B c0074053890028a8888e04fbc803337888715f9004b44823af4d6dcecfe6de70b8e8c5d45ca234d7ce4276bdd6e68d38e74866b9bc8da345b490b1dcbb870e28 SHA512 641c7296e86a859061116e7b5c9f0077d6dc02e1c81212c21ce0247e9e92a88f3d7fa2be307f717e6f95077c29c236487dc8fd93d7f9795aba569e36f9f5f1dc +DIST thunderbird-128.2.1-zh-TW.xpi 789780 BLAKE2B 26dd81ab3b1066b0e4e1fb94d7d1f0a6241a94420fdd34fcea42f841c6f86109a7d53e422ada0378b865998d7946bea315051e1df47f04e278840db4d94a752b SHA512 6e8c435ed7f07b1dd1b201730049aeb924a7b1b44ae2fa9ed1a209e7862abd0316845c929fea24f73e43262f147b7e092bfe26ed7f3d2914c09bc60f160ccd98 +DIST thunderbird-128.2.1esr.source.tar.xz 672402456 BLAKE2B 0a082fc46148162979c55da1e43d4592b1f012c01d227444f3157824a66dc7035cf81d9f200c834f62226415f52c550888bfee70eabea8c4765addef6409d3d3 SHA512 8a04c57f7c4c8f19ca3aa5f62a65fe05944a8425e074ff49ff087c542bb64091666078ed0b887528d2662d92e65f7a00a5fad98e7897d2f1e1def963923523f0 diff --git a/mail-client/thunderbird/thunderbird-128.2.1.ebuild b/mail-client/thunderbird/thunderbird-128.2.1.ebuild new file mode 100644 index 000000000000..37b1a02af219 --- /dev/null +++ b/mail-client/thunderbird/thunderbird-128.2.1.ebuild @@ -0,0 +1,1190 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-128esr-patches-03.tar.xz" + +LLVM_COMPAT=( 17 18 ) + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ + optfeature pax-utils python-any-r1 toolchain-funcs virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}esr" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}esr-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}esr.source.tar.xz -> ${MOZ_P_DISTFILES}esr.source.tar.xz + ${PATCH_URIS[@]}" + +DESCRIPTION="Thunderbird Mail Client" +HOMEPAGE="https://www.thunderbird.net/" + +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +SLOT="0" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" + +IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy lto +openh264 pgo pulseaudio sndio" +IUSE+=" selinux +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent" +IUSE+=" +system-libvpx system-png +system-webp wayland wifi +X" + +# Thunderbird-only USE flags. +IUSE+=" +system-librnp" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( lto ) + wayland? ( dbus ) + wifi? ( dbus )" + +TB_ONLY_DEPEND="selinux? ( sec-policy/selinux-thunderbird ) + !system-librnp? ( dev-libs/jsoncpp ) + system-librnp? ( >=dev-util/librnp-0.17.1 )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + clang? ( + sys-devel/lld:${LLVM_SLOT} + virtual/rust:0/llvm-${LLVM_SLOT} + pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.26.0 + net-libs/nodejs + virtual/pkgconfig + !clang? ( >=virtual/rust-1.76 ) + !elibc_glibc? ( dev-lang/rust ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + || ( + gui-wm/tinywl + <gui-libs/wlroots-0.17.3[tinywl(-)] + ) + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${TB_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.101 + >=dev-libs/nspr-4.35 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/pango + x11-libs/pixman + dbus? ( sys-apps/dbus ) + jack? ( virtual/jack ) + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-74.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + net-misc/connman[networkmanager] + ) + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +S="${WORKDIR}/${PN}-${PV%_*}" + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then + einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then + einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES es-MX et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm-r1_pkg_setup + + if use clang && use lto && tc-ld-is-lld ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if use lto; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#917599 + if has_version ">=dev-libs/icu-74.1" && use system-icu ; then + eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch + fi + rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + else + die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" + fi + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + # Make ICU respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count" + + # Respect MAKEOPTS all around (maybe some find+sed is better) + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || + die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clear checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + + if tc-is-gcc; then + have_switched_compiler=yes + fi + AR=llvm-ar + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_clang} + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain, + # AS is used in a non-standard way by upstream, #bmo1654031 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + export AS="$(tc-getCC) -c" + + # Configuration tests expect llvm-readelf output, bug 913130 + READELF="llvm-readelf" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=comm/mail + mozconfig_add_options_ac '' --enable-project=comm/mail + + # Set Gentoo defaults + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-disk-remnant-avoidance \ + --disable-geckodriver \ + --disable-gpsd \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-valgrind \ + --disable-wmf \ + --enable-js-shell \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --enable-system-policies \ + --enable-thunderbird-rust \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly + # Can be removed once upstream enable it by default in the future. + use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + if use system-librnp; then + mozconfig_add_options_ac "+system-librnp" --enable-compile-environment + mozconfig_use_with system-librnp + else + # This controls the backend of the bundled librnp. Choices are "botan" and "openssl". + # RNP Upstream recommends to use botan. In Gentoo it's preferred to use system-librnp. + mozconfig_add_options_ac "+bundled librnp backend = botan" --with-librnp-backend="botan" + fi + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + # LTO is handled via configure + filter-lto + + if use lto ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if tc-ld-is-mold && use lto; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/defaults/pref" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs-r1.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + fi + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${S}/comm/mail/branding/thunderbird" + local icon_symbolic_file="${icon_srcdir}/TB-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + 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 +} |