diff --git /mail-client/thunderbird/Manifest /mail-client/thunderbird/Manifest new file mode 100644 index 0000000..c4b837b --- /dev/null +++ /mail-client/thunderbird/Manifest @@ -0,0 +1,84 @@ +AUX enigmail-1.6.0-parallel-fix.patch 842 SHA256 9ece63c5bb90357908aca8fbf36be5c228a0da4cb3ca75192235eb43d2d500e8 SHA512 099b594c2e27b788890c4c176e6e3be9ea09e455de99389893b429594d0d96fd57d33ecf5678fa417cf9c6b9119c352b72a891ec38254132c5768936ee21d077 WHIRLPOOL 5ac72acd4eea2a731489c814254cf918465ccb4d107bb9112dafd10c72ede9209012a9a00a89a200b8227f56ba627c3349e67c54306d3a1a73dfc6046b9ea037 +AUX icon/thunderbird-unbranded.desktop 228 SHA256 6d6857476dc288d2470211869b3ad13241f938f2995ae273831fefefdeb64fe9 SHA512 c118873cd701f3582d18ebf5c9622b4c593bd9bae51079ec3daf9fd54aceb4b1406f2de20cc08499ced752cc7b4b2183de6777693c5e6853e47714a4df2a6e4a WHIRLPOOL 2df96beec8c941dddeb5e60d6c811f2456453e050e94e3552bcddddd0e951bfa589b64980bd9756e55a2d98611565d092d26d1d2d171b5651a7431ac077c5bca +AUX icon/thunderbird.desktop 218 SHA256 9e801b52b5f22086d38c3609dec28fc709708a5be1101809c68d17762bd596d6 SHA512 0cbe132759012c0da6f81f37d4ede62d2f4138f0d95e590da6259d7593ad858de28467b393e5d6129a6d37d61afa9b078df0f5a8b6a259189860653c44350a72 WHIRLPOOL 96425123ccc3cbf656c841dbd58812a76802a76b4acf4409ba171792ab0b1c120dc75dea8541a1cd6a2db1ab7ef32bf29477ef7670bf97adacd2e353bef042fd +AUX musl/thunderbird-38.3.0-basename.patch 964 SHA256 2a6b7d13a2c587b7d9803875190e33e6cc535717fa90eb2d99ba4735bc2c738c SHA512 fefcc3caf21aaa9345bb3a4ac7c5ac961589fbec145eb16a7bbb7e0d53290b4f1c1f006ca35d94eccef5d4f02615570127f0c629d2605a48a9f05cdb6423a827 WHIRLPOOL 4075cfa892bb5469580b6b5b299b5e40c3f200770fc0e0c990b8eb9bb84ee06308cf179440d05aa4b7a46891564115fa619094ec7674e870a14f19fe93d45e8b +AUX musl/thunderbird-38.3.0-crashreporter.patch 15239 SHA256 5d7aa652994b31d555ce2f50ee9dd3854f422d4f954d294e2e1465943c61123d SHA512 3e9fee642c1de1a4a4360efceb45ab43de48b3f6bd004b4a94e3e90e65e5e2ebb16b102082580e3798be223cfda7322749423deee42e129c42e00bbb8b5cde63 WHIRLPOOL 1a9ff12e9a34660f1824570f898c302ee9747778d16915c133d71528f5bff36d60f51302696facba8f2a47ef8e6c2cf93d0f58f83de845c78c9a99a038c0ea6c +AUX musl/thunderbird-38.3.0-fix-bug-1130175.patch 1055 SHA256 16bf8227641dcc63a79b3393bd067dfacb6d8706f53398db2b74650ea6cedf7c SHA512 2f5487a81271a6cc3db292069852dd15a9aa0dbfc5cadf094f6b580b71e5e5298a22163874eba9091ef5b20aa79e10563ebbadccdc6178fd8aeba28ceb1b0561 WHIRLPOOL ff312fdbd693fa57fe9320613e4398d9920cf9f9b02f936acf0ff750e7ac5d467033508580bd69f97ef2936011ff7562b4bcd2d358d63d2654996da9645a7648 +AUX musl/thunderbird-38.3.0-fix-bug-1130709.patch 5555 SHA256 7c305042fac52369e51bdf3dc95fdce5ee270e972794690f4307f74cc29f8660 SHA512 7783594a7028c826eb116f6bde89debcd56e52c0054d363f0fbf7f292cdfd98d2a810d31f7f04aa05a9e4888058be036566d8d1938bbeec30dba4a79af2f6c71 WHIRLPOOL 2f3661e65bd8b59a2f20f01bb00828e748fb2b6f84a27ce4178b8829f9c41538b57966e53e6b80da529dca38c478ae550a03b5a8bb2d0f203c888bde3d6643d7 +AUX musl/thunderbird-38.3.0-fix-cdefs-header.patch 1106 SHA256 43bd3ad81cf2e681309e5af3ba46c07bb56d3e36315ca68b696d7f0a65c94721 SHA512 0e7933b45ccf20d12b5a641d4bd1557b6be0013eb9ddf1c53644a468ceab3dce496d426e67c2d2933dd37479717488dcc8637642f42bdce303503852774073ec WHIRLPOOL 8f4b042c1d347344db55119cd51666ca368bf1679fa0fde25cf160badfbb6383b5b20038567471580299e1225a1fe6470f404204167ab02ca830b615f0e918cb +AUX musl/thunderbird-38.3.0-fix-fts-header.patch 17736 SHA256 700053d6824ac5bfae372d78b0128fcff8618455b0e9f7c143e933f7a6c46162 SHA512 7ec67c0a93d1975cd02631f49fe932007cc9886eef556cb1434592a736ec7ddb916c18496d3de703db7c524d7c99758885414fb77289fb12d4ac1a4639171572 WHIRLPOOL 8086f87e1fe03f04279be404ddadffa09410f77b682b0b045c335e37fa880c64269aec38ec62bdcc2875ee4ab02178dcd68e10507b9ff746f9b3535852b66d6a +AUX musl/thunderbird-38.3.0-fix-netwerk.patch 1258 SHA256 3c78ccd0086b3ab8728ca70c5802fb1cf2b40aa678e37dbd3e0c338490000680 SHA512 27900bf9ea30fd3c27457a2feed408c2cf93fead434c18f510a4faf52a18d3f983a5646d7ebba33af21162626188a79b3b388c1c2729520d495d055222dd0601 WHIRLPOOL 7562d20907cf8fd845a1dcdce7c871848890f46277c375b0bd133c5268cb3816e8f22c19a7fcc254eba2e5691e488709c05a52c033f88e5e48e2081c7c445290 +AUX musl/thunderbird-38.3.0-fix-sysctl-headers.patch 1055 SHA256 16bf8227641dcc63a79b3393bd067dfacb6d8706f53398db2b74650ea6cedf7c SHA512 2f5487a81271a6cc3db292069852dd15a9aa0dbfc5cadf094f6b580b71e5e5298a22163874eba9091ef5b20aa79e10563ebbadccdc6178fd8aeba28ceb1b0561 WHIRLPOOL ff312fdbd693fa57fe9320613e4398d9920cf9f9b02f936acf0ff750e7ac5d467033508580bd69f97ef2936011ff7562b4bcd2d358d63d2654996da9645a7648 +AUX musl/thunderbird-38.3.0-fix-u_int64_t.patch 2797 SHA256 55069b63a833ac17fa04305c025bf06acbad1491b57185e76116d1882e076022 SHA512 225ff666d177862ab2941550c615db7c165327b9456b52aa03e215930f26d4e26d8d0471a2c4ec39fef4d23f8d108eac6acb4b84de02f6fc8224e0eb47460534 WHIRLPOOL 628ad13febd3fc8b90b38df2e8b795fb4440bfd7e77d8949e6d65d5508860eee8f01cd6e5a8f779305d985f9864ac443b6341d63e8e2458044d2f2dbcb086016 +AUX musl/thunderbird-38.3.0-fix-xpcom-blocksize.patch 873 SHA256 46b44eea491c48ad7eaad4e5cc93c56bfe6cca5083d933fe87cbbb52301d66ef SHA512 5cd436932d184fe180cc5f9495f72907cfe6cc14d29d2c5e9a50de59dbb60b88959dbe74dfaa756c7b22614e0240a57b3c9f8f682d7df7acce19842aa8c2c58f WHIRLPOOL 4ad3274181815e851da974114f9d4343f93fecf10242cbc69e7f241afe4e9b28ea5a71c42f5c6354107038077c213478474353c8214a36cf93c76393a061d5c8 +AUX musl/thunderbird-38.3.0-profiler-gettid.patch 1555 SHA256 5098cf2e7d3a8888640ff7229202014aba886c4d254c72c5a35969beff04d193 SHA512 4140fad5b64404516ec40bf1cdb385500e3e88a6899b1c9831c72a4b1ee0c8d817da087f5aa81a39f25a067f1a8db06ec213325ae7de72f8944cc820f0fff4f9 WHIRLPOOL fd3bd1fb9a18515e48b77e5800b617368881cbf0ddb0bdb33fe1449db0be1e154e56f34ac7d045603c326e4b457635e63ed08818ac8f479220014cd406551e6e +AUX musl/thunderbird-38.3.0-queue.patch 1295 SHA256 907c02cbff0788c1bdcd23b003817e1633276947208287965e7af3d559c39f2c SHA512 61609fc6d40c1287f189aff7595583746adbaf1fe1f2c931b9e33added6fa64503d849ae8b807759989e05a670f052fe310e299b103e2c20bb1fb9d3772277ee WHIRLPOOL b8cd310f2162c2141f065f1c48634d57690d519d8c7bc318efec4af637a8161a9d027fefd3f99eb596f85eb96fc7d1d15eb30881bb205211e9cb564b5632e8a0 +AUX musl/thunderbird-38.3.0-sandbox-cdefs.patch 1030 SHA256 963079829868acbd37af55879ff0cda83b33b8b56f55ed8ef21880c980d02ec8 SHA512 758ddefdec6959430a9aafe775729ffbf4322143da6bbbc2da38e3ffbe81c898df27d095b868abad26d52bbe942911a64e0ab9f38a31a1f3d8e19314ccca8615 WHIRLPOOL 0b1b12cb6e18bc643861d738225ca0892de04546796c7eff7d3ac0b446773198c1f516cf5f4d439c046b1c757e185a19613c69dbcbca417e81fc6a0bf5d24526 +AUX musl/thunderbird-38.3.0-updater.patch 1344 SHA256 5f07ba110fcc1ee39e352af94786428d4e2c8c7924fe3a337942ffb572da0229 SHA512 56ebff8aaa054ae3a8e9859e77cee5c0b94867d5565399594d89b76f21a6eb1bd6546a878a259229d59c6eed9458e23c64da07c337a43c677cce1bc1d00d2a62 WHIRLPOOL 8fab4d24141c139cac5ac3779838967089d6692e94a2963b85302f619b74c8d53e83d14c07d3b9a0322a941dd90925495eba6c45a35916e6791520f67cac5dd9 +AUX musl/thunderbird-38.3.0-xre.patch 1569 SHA256 8656634992b8f6445f4c5f48f656d0355c2b26c1777a8ac95f39ef1ee3757c69 SHA512 f5f676531c71394be7d60ab45ae7e7073029477eb80cb85dde8e1c535bd50d86149f0f8282d198485155efc25bf13afdc764fa9d32c854a4bad45371f59348e6 WHIRLPOOL 72053950adf40fd21966eebb6d0a082f5b0ebb20452f1042645070b549440273b8fb144e9f2fafc24f8968a98cf293f8d227c5a04c7d62e6074a37d2f9654345 +AUX thunderbird-31.7.0-gcc5-1.patch 9670 SHA256 c43c3a1693176e986e1e7316bb368ea76e2cef15c1e0f70ddd54050d7b143f0b SHA512 8794f81dcd5ecec5b97cfa3f1faf7e0df080618ad982385c28ba7d49714fcb6b03692d88cfe0f30d0d563c6a13174f944a09a4c335c5550014bbf2b1b193b5bb WHIRLPOOL 9891bd52c23a78677d6181e59e2a854c79a11d56e7a97fc6475d48d31d564be4892afe204339cce757522e2aaaa264cdc121e4a887c7fefed394894bf1f37289 +AUX thunderbird-gentoo-default-prefs-1.js-1 426 SHA256 b5aba51045c700ae4d465e079f3e776600d4950806212f7c2fe1841fa25cf9d6 SHA512 b40e7b4789b7f43c382589f7d0eaa6043072bce86ab79fb3dda4800e9ab6a43af11f43b0cb3b6ab1c71d887aa1cf9356ac858f0a81dad013cef5b8a4b2107983 WHIRLPOOL cc3535e9a710d55c5386db51d7bd6ca24f6b36685a54e42d049a806fe99fd0b08afe7998d1478036bfa306129616778b8ac1386e14649646fc0a7ae4d37b830d +DIST enigmail-1.8.2.tar.gz 1604159 SHA256 1d2700799bc52aaa8e8c9f7a0f5111281ff9fbdffc093cdff070657d574eb2a6 SHA512 51eece988f466aeb4a343719a86dc7d95ec41dfc3ec7e3d8d2f360528675c605f8f2154f10aeea6ef82ed87c784f1d13bfc978e052a9ede0072b5137f6294b11 WHIRLPOOL e12a703899e0e4c98adc58b5f4bf1f74e24a2cf09c1a706a6edca6aca06140041b293f23e6e5b05c507177b4148533ebc3431fb75592aae07d791a899ba2c45c +DIST firefox-38.0-patches-04.tar.xz 5572 SHA256 501bd1cbd0ac7239674df4f7424e0dd57cab9ede47e18af0c99a8b8e04aa5ccc SHA512 311d494ba2a4219c88eea651e617aa776d6aa8ff68092302b76e9ff4e3e348c7197ec583923188e39973b7bd14f94df19756daf2495d9b0fe44aeaa3dcd19100 WHIRLPOOL 6605eaa0b80c97d2d5d23a23f7b8d92e7ed875787b932adf14622eb3fb5f5ccdebe8a094d78b3518d874b8819724af94100fd1728074ba4a5c426bbd91eeb722 +DIST gdata-provider-1.9.tar.xz 80812 SHA256 8e60960999c752c49d6414d14c35c2d0cc474d4a199ec99e531453d4d60bc5a3 SHA512 b1411b0a8614eb5e9fbdc0a41eb5ed38e8d4c90832e2a356fd0412b554af46bde4b766b213d9da3cafd85206da44d333354c9f6b469c95ddb190fa04fe14a54a WHIRLPOOL df7451e55f937c604d92faed82a16bddd6ca87a7c03981324c5409ab5824ac1c631ec767f10eaedc6f7128cd1f9001eca599c848d39e116d9722f26811b01092 +DIST lightning-4.0.2.xpi 6637618 SHA256 d2d4985058dc2755243fb60a7869cf07e835f871fb098ccc2c7faa5d07f63ea6 SHA512 f73afe1e4ee0e822102226a39f657fdcc397dd4bdd3824d9b793f6fab667fc70eb5bbee48cf088a5c1efe229ac8d564bf36c8998c2e10210f70612d380b7e2c9 WHIRLPOOL 7488b49ba36f385552951eb34c36098af522161ec9784cc10db5659efe002d415e5df13ae11b9eba06a1fa329e85f75adb0a025b8cbc71814f3f7195e6b4ad77 +DIST thunderbird-38.0-patches-0.1.tar.xz 684 SHA256 cd2a347b72a104e72d38e56bb92df3464e8820485119b4114dbd0bbda131a808 SHA512 52c83af301be959e861dfec55b3c4bc60035387c606976bd29232c4cba077230edcadef242491e699fba10027d0408dd4f33fa320bcf96727afe149166ca02de WHIRLPOOL a378a0fa1b152f17681a5e389662fedfacd45a137b224f038d3c98ab4a024bcf9e753fb2fe018cdb7126fb710ee8baabdf7882540450ead2985070d0d1f12eb0 +DIST thunderbird-38.3.0-ar.xpi 475296 SHA256 e3d72a91f7e644bd3d3bb31522f5d9a12bf14316cd95ada0dee700ddd765db38 SHA512 90b255c1b9fa89f63ac0e9908c29e964453c53c186189f82e829eef5c44df57b2f3d6c0eb6c7ae71276bea8ba4c4d43648df3837d802abdfde8d698a9c66ff01 WHIRLPOOL ba3e1eb35c25676d0fb4678a4473ae1df44c08197002cb8773608eafde40d70a5cbbfdf3f510baa239cfc2930e35bfeb8bd7f77a15661e3f5646ab8a8a69a94b +DIST thunderbird-38.3.0-ast.xpi 405872 SHA256 c78b3457825cd7e20094f2f162e1d2a9afb371fe7f7a53c8a2c948121d22c381 SHA512 50ec174b68adbfe3142c96a234f9f57848f9d0c1719edbe9648812d5cacb84bbd3f19ee32a90c5642c4489a3a9a538c90bf9b15d27a2398f6876ad3449168f51 WHIRLPOOL 8e8203d10a01356ae6f589259e3c857aa089879d76c7813b802cf5b3246b382ead32f7e0db9a0bdf9c58e8a7e4ea2f15f0a47326dff7aabd729dd21b84fd50fa +DIST thunderbird-38.3.0-be.xpi 442452 SHA256 4a4219218cf0ddf3b46da27124ba13e7b8e1ddcf2a0698f16e114ab572948a4a SHA512 17c9de46c2f5cfdfd7f9214241519362c4763569302780e591849a727d47a0a549147d9f6d915f33f1b094fc8408c6685c583abebb99ec0023ad2d10b26e7186 WHIRLPOOL d996be34081c970b867caa630bbda675c26c267977ae5ba418c152b7734dad036cab6476920badffcdf8dd86ee64023d4c0d20583fab8f465d6d58767cd61eb3 +DIST thunderbird-38.3.0-bg.xpi 506124 SHA256 d3a259e1c1be845c471e7678755b8e33ac0f896231a406a3a50e92f5a17bc2ee SHA512 23640ed1409e6f0aef7543f55de5798f2a763629b16af66e1e0fb51cfc3a125e8b5d7bbf6a52e818e1b9d6b821249927c37767dd35cb4274aed38664d5941aa4 WHIRLPOOL f0d315e3ebb275b58d88efef8d8ec6c7de68f5495814afa5eaba0d9fccda17414363c652cd592f6947fb08c35a590cc36c9910c67f1e2e1ddbc719928d163ace +DIST thunderbird-38.3.0-bn-BD.xpi 560626 SHA256 b56ae358e7b69096d914a0dab48eaa1c3d9b1a78aeeccb9e45fd0f5dbf361294 SHA512 08df8fa6ffd5063154f9009a330c50b7a02663dd89148364523146c015880396524907b9abbef6d4af8588fa0745eee20036c4b98fff395be4e4fc18eaa021a5 WHIRLPOOL 76838d62486813084177c837f072c398a369538282a7c92816788e641868758d3a1c79c11a013c2af2bdf82f1fb013fce7508c1604a43da2d8d68c47e618aa6d +DIST thunderbird-38.3.0-br.xpi 449767 SHA256 62aa01dc67b2dbab4a3966fc77c9e6e146caeabbcb9aa818d90a6e920f750ac3 SHA512 6e647fe1d365774fff98e2d85b62c098425163452df5e9656b9cea81d21cfb12d901cc34804863aaf25837103796474e9b1ac1437c998933da85bd6343f034c4 WHIRLPOOL ead867be3b50f4344def66596be7bd2f3c9975bfe618a315b5abcf95ff4fe0d2f04e6550c779447bf492adda60931f26dcc575be9f707b0a4dd1a16d06c6f974 +DIST thunderbird-38.3.0-ca.xpi 450325 SHA256 cf16841892fed72ed9c590d78e6bb93e7c4057f8070821b0a927fbd767ae6b9b SHA512 06ca1456b8f0e6689e2b434adf67f2150b6d6fba37a6eaab3b8474eec45aa53dca5c9798a01cc2014b3f6dd6b6542bf163c0e71ade17553866591c91b20aa746 WHIRLPOOL 77c043ab01ce644eff0180501424be3c0ced0f07f38b6859457dbfff02f61b973ec9493e5f9e1481a0bbb5e4bf0ed99584cfa595c70fdf1fa2ce483413d894da +DIST thunderbird-38.3.0-cs.xpi 448724 SHA256 4f0cec48206a84694e97e64776d26fc0eda5baa1b019b596af3ab1fe05a3c788 SHA512 7ce571fbd4e8b72088ac86e2e9da60ed65ed7914b5497f359b3c26165ee6e1a917e382204c21238d37bf5193dce776dc388d067e6a2a067c64f499276ec548be WHIRLPOOL f6df14c1ec74ad3f52402eee8f17a963d4a534d5a2f4c8abd1f8c928c7cc67d60fd874a0ec480bc4fd9517b42bee64da4de36f671a0fa1bf944c32c149047843 +DIST thunderbird-38.3.0-cy.xpi 434848 SHA256 96b695296966a61760485210adf967cda82f562290492ca4d34a435966925dc8 SHA512 08ff8a853aff2482e41e9a0c3db0a991213a076984c325f90ea590e2caf03a4bdd776660dc094e13808b00bd979e4b7974c976beff548f9c245232293d3ed18d WHIRLPOOL f47f0b3a1af75ff96968852b4e59ccd03f804690d94922ba7b64fc7fbd0eb9547a71ed68ed7d8048edd3e1d96d4f9e9d44089cd837ab9a036c9db402e3d8dddd +DIST thunderbird-38.3.0-da.xpi 425828 SHA256 908fb80a392d1aeb835bbf5e213f6dd62c9c1611b268641a50ff61dba3c4084c SHA512 bed405929c179c8a3db4729096fb43773659d222a592542f5dfd2e9ba403b406e178a13f5e5d3943864307413cb91fab600e948f3b824ff7ccc1eaaed01f4dbc WHIRLPOOL ed06a01e48d59e745801ab9ccc4d99e4f785a30162ed921a96f816b5310ba13e88afcc3732c24df767da1e595e4639c73d0662ce738e2e4bebc1ae96d1aafc0e +DIST thunderbird-38.3.0-de.xpi 429877 SHA256 a488ed7de074380ff02db8fc5941375f27579a41e2ee3c63d61f43e18ab88664 SHA512 cfb454b3aadbc7844b2e3b4e15d52229e2bb3910a68380f42f00ec89552e64717900428b3fcb0f4ee543969978506e9295d491be4a3b026a2f862f676e2f9d8e WHIRLPOOL dc901b29eb6b3f4c9f0e9d1acba4121259c2996c685f97a4289b613b847bd5f2fe31cdcfb342b40fa08cd2208102f43fc2bef4bc05b69180598c9eea63dc075e +DIST thunderbird-38.3.0-el.xpi 493490 SHA256 99b9b14ffd11b5a07aa6d89d947a73f378a113574ef53680c1c6992a8406292a SHA512 9f5ef751f5d503324cc0fcc8fff19751e23f6018bb19fb24c10db64496ad8878dd807661048d0d9675764b8a845698f1e5bd5ad919f312d338c476ffb47be545 WHIRLPOOL 2afc8b68eb53a80b10eb5755c556deba001a428bfee25ada476a17166f1d4405f04d29ed9a06b885a7e918808a85fb0e58c081379d390ba743bb3d2479f4f325 +DIST thunderbird-38.3.0-en-GB.xpi 416572 SHA256 1bf89952a3b876fffda0d94cd291a90a68dbebd55d286de9cf9ea87c7c241420 SHA512 852c10422e547a11219d38442f810df7989da323b3792bc07cee5dcccca20b6a80440b6e89c12fbadf65922afe3d34e4904ba8a08ade2f874682d4108593d420 WHIRLPOOL 6bbd6bd59444c0f3dc14823ceed05921e66649df179bda7c9eb760335c4300171ac9d3c6d0b1a717d1e05bc93d741af5377272ee3db4d6e713d524fbd3bca2ef +DIST thunderbird-38.3.0-es-AR.xpi 442641 SHA256 021493ea03343e7563c69ef78dcef55c2cbf32d3024d66b4ac50b3c4588414cf SHA512 1afdaa274acf1762b518ba08c6cf3606b4d9a875b83606be71fa1db421efd3257bc1c99650a7697ece697ae51319278ef3e90b8043d97f1397b653929c550ef9 WHIRLPOOL a2802d37c6ba03e9e31e60613d5bcd98142b1f08e021e4b3c61c3b824578d4185297f8bc919f8ee283eef66c116b632791e1a1336d477b1822ed43b0e4680aaf +DIST thunderbird-38.3.0-es-ES.xpi 376067 SHA256 fe97ee27daa33aae86e51f4f6ea16d703a4cdce713c550c6fef35b72730a4fa9 SHA512 f66d669752554938926c6827ba0d0a05e862be76b8cdddc2249c4d96dd65cd1244a17c69f9a49dc8ae6e9b65d3020f1e065d62177d4f2745a812fd2f5fa39c97 WHIRLPOOL 8276f1a3adf617ee3e97739137442031d295cd15710271640cd1400140b282064fd912869cda390ae0e6020518b628b66bf2a4a586a8eb15a31167dc9df20283 +DIST thunderbird-38.3.0-et.xpi 438262 SHA256 7bf5963dfe145dae28f9b7f8b62cd97039eb4b165a00f64ba4d4c654b11c40b1 SHA512 717e3fedaad0829c62aabeff09f9b085616a8d6c8d90a724b56691f1e8516cc33f295bd45065c553f9475be0f9e51d880c912d911cf2b31844a7b47dd96e95ed WHIRLPOOL 8bbe35c58aa5cf57a1b51d132fc84511b4e65e8ed7ee2ffea08a7c5f665f6a16133d7029a06922b854639f1dd90e019fe17d5c203b911e1bf30b2c34bf61f971 +DIST thunderbird-38.3.0-eu.xpi 434837 SHA256 e12806a8e1808e6cdba0db393fb444e17144599bdd3634530b89549dc55281e9 SHA512 6a2ede33f69dc8b3f42e5775c0a10bcd51afd898d331b302c27db32ed5c50294e0bea854aecdd3736a3a9b5236c72a6033ca168ffd87f548684e7c9998d89089 WHIRLPOOL 29f740e5ebca181b53863388462b1a77abf4f918af9fb9706c19fb0afb71da8e993a73a8b34f9b1becf5d709bd848667baa5827217d3d444b4c5119865d4065d +DIST thunderbird-38.3.0-fi.xpi 438889 SHA256 b12b8b0d3ac1d051e33c249add1baecacae6b9e71365f7604d82f2775e725cf1 SHA512 804e4459a9228ccf50ab90b0f9f8fad529a1c8bfe39059b86217e7ff6b3eca328ee5f51cfb520c8061e1e6e599d0c741dd5cc3739be710a2401bce9e64505807 WHIRLPOOL fe1a6916105e5c08b257be4da08aed245f41657918cf6fe40c07866728501d119fb05aef0557375748ef7d708e43086ef327d7481e9068d557ad2650c76ddef4 +DIST thunderbird-38.3.0-fr.xpi 448227 SHA256 dca0f3d8019dfdd3ce0489fa77a06d2d5cb39aa08e0ae3d16bb44ab630f75375 SHA512 ef7cc666727bbe07d62b67fca2ea1dc6f4c7b916c395c857ca3d8e761de9c86d114ceae553d4294ccb1b9c8abc8c9c4f59d6446273b54d6d5fbdd41e8ef1e447 WHIRLPOOL 0a8933e31b39d9cb6eb5d9e21c39d7627f00a80d135c450e318d2a1a6dfe28f7ae2f0cd3d9c5551ab002835784c8c2e4c2a7613f5ccc56d1751ec743fdb04073 +DIST thunderbird-38.3.0-fy-NL.xpi 442162 SHA256 efb561b34d258448ca28a0c54c681272436198e9f5bc771994b05b005116422f SHA512 53401a86a8c990b0c456520382a7dea41116346c2eb4ae458ff402315fd1132dc2fc5080c15b29a4e0c29342b60a314f854eaab9050451c3fd5d32037dd3b949 WHIRLPOOL 372316e36a5fc73681f80eb38bbd62bfc53578d52b7a669992dfb6efcea105fab5658f1f9843b4f07bba5ab4f282159cdd1429ebaf6e90518e4739cd5bfbffc8 +DIST thunderbird-38.3.0-ga-IE.xpi 457412 SHA256 b809cb068a54bfdd08016a798623653ab3b045a3df1e259e3ef29db6b16a61cb SHA512 e6c6f1c0efa1d010cfb20ffb1379d2f2842e2fc26a10ccccc98a55b3e289ae89e33a374b8aac6ae5da6cb181b279e686661e6cf044b698376dc5ef739c184abb WHIRLPOOL de5d32a1d2700e08e32506f0f36fa0260f340569fc86f2f6facc9c720d62f1ba7ce2c8ee95c2797fbef16efaf7364ae3e4c394091019d5e1356794c4419f991f +DIST thunderbird-38.3.0-gd.xpi 456317 SHA256 66243be7f539ca8dc376ecd5e9cd221b660af2313c0e13fe00c6c6cbbb20d2bf SHA512 657b01e22b36998d49b823a91bbd8a3e6a48f334d1a331c61c0917a0060e55f9fb6b95d83fd189b9fb765c0c0a7f4d0b63001e678161be66600a38e05caf9208 WHIRLPOOL 68d2e5e7a1e5b19483519cc3388f49e8874caae22f477adcd7174466b2f9b29b58cd33d34c5a90afa657b9f39779366b9294fd3f5a114fd2e1a0e248587763f9 +DIST thunderbird-38.3.0-gl.xpi 457839 SHA256 28870ca3614baddd95288000e7336503ad2e62d31b04c33394066d5d52443e09 SHA512 5ee1aa5b6a5ff105b83d9e2d6d2208f52b40a82c79fc9b885c27547969c813626d56398f9c8388c1e75665f9ed0d996d902b885233a7948ba5bb58930cc6ac76 WHIRLPOOL 2399a1afa00f36b96c7a62f760e1127c5b571237116ff2def7e75179dbff5c39889e1c8275c25376d8845798aec31d3807981ab44cb3a956cd62c1a01cc99e44 +DIST thunderbird-38.3.0-he.xpi 485867 SHA256 c74aae3a9048e60669292095c1c446f3806e73cee14d10cd0aab852c9bf19066 SHA512 416c4040be002b775b56253401fe57a04b4183c64ddf378dc30c140f48c5bff95d60377ccd7ddc1f6467726a1fbe9674dff2f4a402c882b89571c2406345aae3 WHIRLPOOL 55f1f9889fafc128f8f453aa21f87021720b1ed60db0340c1f9c9db1ee6428ac1be571e95ce7606c3df1f63056906a54e67a28ccd91b9c755246fe6cd958bdb3 +DIST thunderbird-38.3.0-hr.xpi 440420 SHA256 fc6ae694a971c7db823a1809ebdeec91231080e57caa0ff1ff05945a07755c66 SHA512 f5f8ed7dfc6f75ac4b3458dc19c395ea5ecb66f8a9cc616732e0a9949a231012fab0bb18b2d19a7b9b46655a1b265d0ce6c158604543c0501081184a60fb265c WHIRLPOOL a5b5d7d28cc61f673e12c8ca26ca30c291061e279504ac48ecab01835af96cab2ff6ce3fa1d4e50dc3a40c084519c566b9f7a0a4afbc62c63cb30423519f7307 +DIST thunderbird-38.3.0-hsb.xpi 456451 SHA256 3f2ea2b3ff1b662d09b3d4d2d611ffaf2f6dffba7cf6b0599587b61355012141 SHA512 050b06c03673cd50a4e03d03104da1f829ef5c286cc1e6d714c068efc41ccce54c47e7b202486202847246648711b5dbab515f39a2cdd5256915b4bde4c6270c WHIRLPOOL 636b7a65c84ea3ed89bccf0adf27e26c8ab855a997a208bb3c338977c0067631ff2201e50a30e9856f39427025f9fe465556855303d9dc7e9f91d587d93a717d +DIST thunderbird-38.3.0-hu.xpi 457988 SHA256 ebeb2ce1192b5baf8a0a6061cb1dd8e44bd11418a65d2dc118141d1219104407 SHA512 2d80c86219af7ca84299458afe996fedac7989ffcb0e941573be6af9c79428c97ef0d369a8a9b8c5a3f7eedc461f18d5269993e40b62d05603a4b0c247c98fdd WHIRLPOOL 332aa10af78d8c7733363d4d5ec2f07e7ea6e226a01ac090b1f08236b043afc91ade94b4cc89a4cad7ec98f35b43cfd5de616ab5a38c389a48b84f0d13a8ac7d +DIST thunderbird-38.3.0-hy-AM.xpi 500355 SHA256 b36e1bb1b3bd81185a6ff3f330f04e44a3f51278d900971faac8205b73775323 SHA512 5106d19bbd3945e9b7fe1f03fe33c37e950d56eb267d23924c2a34c8bb99740543fd65dfd610a2ba4980d9de22b91e041d8efb2477e4a5d98925d7f64b9a6ca3 WHIRLPOOL d6e11b114ac8fdb804a33d5296824d0d3d157978f6baec652eb8635b2166a56fd90bbb7ee8a0a711c335c47884fe486bc144c7daf3f5369cdf58b618c92995ea +DIST thunderbird-38.3.0-id.xpi 483187 SHA256 952d1a2a5ba664e5542448d656e37f410d0da60f0d45d88bc128ffff3a193d34 SHA512 827608b9a954746dd5b056b4c9be2038f261502f91f7b9b294475bf0f6cc5de4eb6900ffc12637d19cd343cafcadcd41bef7cf3ab49a562551501dc2e58f6209 WHIRLPOOL e6584fca44cbb4e8f13df811a7b74433d1974be2d4803ecf813182d29b52919328a39fb99b4b2eb49179788b996ccab5b9f7152af9c358e87299c9333fc2270f +DIST thunderbird-38.3.0-is.xpi 443008 SHA256 f97a4ad94f84bb1601d9c1b283ac84e33d191e5f6abbcbe1d6790c93c700c261 SHA512 90c51b3358c7154fd3482b97663046b5f1a46c05b4c63ee51a703c5ae830f192162c4db60f0cdea18ef4bf39ab210b7b5b0851585d80c8a1a7e2d93e39f10006 WHIRLPOOL 0373852acb7ba5b4f2bc78f296c851f4ff50bee839cdf5dc3c49540d10735c2b0e0d3e8456683e18fcfedfd096e90829af473fccbdf08f7ef8f9c531efd3d600 +DIST thunderbird-38.3.0-it.xpi 369024 SHA256 fe0461ac92410b68f6d2d506dd9ed5e85d3adcf090acfe02f88c9aea977f53db SHA512 b407c0909d7fcb290493369e89b3b73bc6e9e544585d46d3d0209591b6e010aa23d36ba4cabb1a18704035b82b5deb0b96209f8c67194ca57263b21444e9f773 WHIRLPOOL 85060b61bbc17a4407263d9ee158c06d2ad3d34de14292c6e40e851339ce2f02d6661deacdd6a8db727c44d535b6fb6ab147f995a704a3b59a1cfff2ad9b879b +DIST thunderbird-38.3.0-ja.xpi 492861 SHA256 2aa5e04e9d6a2c10e410e8dcbc51e2d2c093f0d5dc573b3cdc21e37facafb6d6 SHA512 59ab736984ccf9a359fb619a03932a8043f2ed2d9a6349b56e966e0f92a3538c9bb1581eb3b5bcf32574fb8991c9a27030cdb82d398e10ebebe4c2e5d9969709 WHIRLPOOL acb9e0883fcd569679427a7b972783c0050976a9347fbf7955eb09bce7ff2e830deb833cf6cd9e9991760519d43b6f1d34418a7690bf697b3fe6a0d82e5f184c +DIST thunderbird-38.3.0-ko.xpi 454852 SHA256 ed9e84328318cdac30e605a8be9c609bdb44828f4c288cdc4af141669ba33008 SHA512 a54a6c633a47d7c80e6add9bcd4115f72a481fbad1265e6f916515f6f7a1f4634ebaa91c0648564e856061e31373029946c2040d7264c5a50707e73acb3f135d WHIRLPOOL a14e4c927be898b64e81fb2436f8e0a97e95386d7b9b4512b405cdc5b27e11a4228e3e5e6e76e43b93d0eba918ef52a9017be6d22b6f2fb7493305f8b3712d67 +DIST thunderbird-38.3.0-lt.xpi 454572 SHA256 cab27cb9348180a19fdf32cdb67e03e2d98af10f39a3a158c495a72fcb9544f3 SHA512 970a9313056729fc5529563995970a475013feaaff66abf0c83519e22eb8af9b5840118065eb86b0985a02f59d480a0e82b212b2d04e149a92948d61adeb5847 WHIRLPOOL 27b96dacca7f79e31d242d9bbf38d360f968eb95062425c5744b48fed5fc5a078e9c667b1be590c1f225631a7a1dd896f8538a2a1659081777e7ec9ee701c4c5 +DIST thunderbird-38.3.0-nb-NO.xpi 434340 SHA256 62d9c3bc2d0a19384a5df220b9b6a190aeb8ee6ce4327839d08ad3a09b0f5b7b SHA512 dea037909c64b50c6c85e3a6109e391d766bce18dce226f9ecbffdde92169a2531dcfa8552230de9274d037a853d59b20aa570a0f286774c10f4339e4ad77207 WHIRLPOOL cf61ccdbb5acd2c0c4091c92c8c401cafd58377f88a907501c156b3d94172235802e665c0dec94bd70b2341aa40e3af4ed7f4ca85cde6b2095fc512bebf7ff0c +DIST thunderbird-38.3.0-nl.xpi 435108 SHA256 ffd7ba1110afc8096d0c316a5e4fb55b26f9d9f689705f795b00d3c296ceb5d3 SHA512 af6b7c28d9a35653b312986d6a1ca20ddcb9ccd921e4d7ccaa269b7ce21365df1b4b9bfcaacf2d104d940f8f07e8808e465a98362b7feca58798e7897a17da22 WHIRLPOOL 023009ee0fe9be0b0a05fa85dfe03a541de634a30423db0b265e03081437d0acb511d50b870e564e5c91d3b0a92e032d68bea4852d2f9d439e547d7113eb83b8 +DIST thunderbird-38.3.0-nn-NO.xpi 436623 SHA256 48d4095cfdd47fa876c17a13592be4c4b31f57709d770ea8cefa9293e54d8f87 SHA512 5557db58bdedc70cde8e48f9430cbbdc3784ea0865bb30eb50ce481649b3c053234a9b55d23d263d15becdeb4c5f643e4a2048405fcf0874e5011d5a5560e038 WHIRLPOOL 841fca18e18438841b387174dfecb35e43c1749853f6aca0505780bd117aebf9f98745e8bcde7078cedc86b0bae5de049791adcfec690ac5685858ac4b0cf9f1 +DIST thunderbird-38.3.0-pa-IN.xpi 530461 SHA256 78d139e9894b9ea9913f921d78ee3b8894770c08ad32c8530e32782439a36383 SHA512 75089034db5b778885581ab5c816332db5f7e1ae06cb16b656f4d59c934a8a110e0d8ade56cb1ce4dca8e419cc13b15587e2cac3cf975a720d758540dc166636 WHIRLPOOL f36db6260c4b8246aeec8506d3a58bcebd6b3189bb9bd3bbd87fdd8549f8b5032dce8d731137287bd0a441206315463531f04c3ff6a484c6c595f19f401ddb60 +DIST thunderbird-38.3.0-pl.xpi 411509 SHA256 8805fa13167f5fa509f44a31729e39800d8f022224cd86012bb18fc19ac21815 SHA512 ae4f43cae1dce1e42704c0a30746d4410562f3420302dc92598896da5ef1e3088e36465f50f0c98e37f7e7b7e3f35211a2d96ecf417da22f8f021f34174f0ab2 WHIRLPOOL 7bc311d1a8dbbf6a1ddd0bd34d3d1b0ef537151aba5cb184589e9ca45acdb390c78bd7015cd82e87841b5a24a3abdb0c89d5345a0fa952ececbb390ed0135278 +DIST thunderbird-38.3.0-pt-BR.xpi 443752 SHA256 c7e4582522489eb8149db41c4f2c7f7a4d3121f4f5bbcf136e456ece8189d975 SHA512 ced022729b7dfada5fa3d006aabb6c61de78971af1c709833ceac29389048dc4d17ba00c6eee3c1d11471be1b73245ec8ea0f5bc698c10e93d3b5f049506df46 WHIRLPOOL 17c997dec400bf4140db75778e7e588c5545f1cea1e44e2f2a78bed47c95f2f5d5a58d0f690c7b36d2741d889ce1374d96daf9cc2e3e56d982cccdf96211d2fc +DIST thunderbird-38.3.0-pt-PT.xpi 442064 SHA256 639a3b6d32be9dcc8d2f2eb8a2cca1cdbdb444ef00b10b76aa6f8dc9035e5b4e SHA512 01d2f964efdd4cdadca3269b549aea5f019a8765c994c168f601d1e59c762cf6533a07e4f76603ba9afbd8e64e04516756c57f73d59d046874583af6571b3a99 WHIRLPOOL 6ed3be4069e2cabb77668e003094cde50c2dd84fb83d2084f989131896d37e6db8050fd50e91c998a5a25471b8cabc4890f805205bf28128bc4fb254dff9f0a7 +DIST thunderbird-38.3.0-rm.xpi 442112 SHA256 72be95aae125d50fc9565c8bf40623040e37c5ca511d0f0a38f3924ddf48c845 SHA512 9ac7e7143bacc674ec37ae22e305149cbf97cee22b78a9ec0975ca21b6edf40da01dd7b4aac4ef6daa34ed6346e0801d4197e92bd304f6d1e7e7b7207f0eaa08 WHIRLPOOL 76c895ccc8dc476033e678aa7336b178cc843288d4702da43f8e02a4fd175ea17453080dd7e214ccd57563e83fdb95c6a882550f591a65f51c147033da009e3b +DIST thunderbird-38.3.0-ro.xpi 448349 SHA256 51a28a8984e070e6ca886238aa834ebd9bf845c536ba44407976db7c8bd0ab04 SHA512 2ebb5fc1d35e1031311b6e02b8641cc8df47fca86661f67ddc8bb68eac35835fbbc842ef2d24b872ce199f67d4015f57d61644a8122ebff142bef87b7dd89454 WHIRLPOOL fd1afdf5c1c2c859c7cdd35f7fe89ff21677182d359159f98194852dfa4af7c432a63a2717b750b08f8fea3e653f9d5db73580a1d67dbbad349d7981e0c375e1 +DIST thunderbird-38.3.0-ru.xpi 437591 SHA256 2e16abf3a7f2c133b8ee8a078834e81f141143cff35306056111830252e435b8 SHA512 3def67eaec198e986856036b7b56333e2d24adeb329cdc6315e9bcb96174cfb1065209ad36a57566582717eaf807ac38fed3a732e1b9078c3b8ed56e160e247f WHIRLPOOL 3137a69f50f91a4b6bdb542cb39b494238931debac32769d620eef21190f62b9432b1cadcf73adfbc242eab20a6bd5413486649cd0b53f43b664c16112dfb340 +DIST thunderbird-38.3.0-si.xpi 535341 SHA256 0561d311a4607e9db41d913fdae19dfc4ef9d0135d1b6bbb4bec8ec60617256f SHA512 b0bfdc267113cd30ce9e16551e8785aac6fa03ef311aed4918240b83c9607c42daa32a395c4c1ba2d77cc5634c7eb415a956c71349e3cb48d055e3da73b536ab WHIRLPOOL 947375e0e53925bf9b209a33cb69befa58317fe5f5746dd6e6d1d6a18d09d9feb70d0ff9f1a211a2ec2c7d3b2caf3e73e82f2b97972b6bde32ea5992d7f4e999 +DIST thunderbird-38.3.0-sk.xpi 456606 SHA256 5c937a4cc87299365991743f791d89a7ea11693f93a538659715f3dadb7d5b0d SHA512 b5edc13a4664656bd808256d2a6185197d412a82730f33b8a5275405a2f9100e11e7d089be19e13ff6954d8e82a6fbf88cd789f35764259cd33634dbaa0e8563 WHIRLPOOL 3a4ac12502bb2c993165207b8082033e50fcbd862e3e6913505489943acef05b782067f4e931c3a0b8f03170ed254671c29c24f81a078c470db1de14a1490d90 +DIST thunderbird-38.3.0-sl.xpi 437847 SHA256 a5d64faf18f4e05ecc68830ad7623bc378d30ab041d4fa65d9d15970c552a628 SHA512 aa1f915202c66b6c148b743e63bc77f5739dc4af6bfeed1a0a3b6a42a29044bf8fd23e6f6f8bd9d322b5a7d6ae83b179852d5f6efdb602ddf90b5ff1e3d1bf0e WHIRLPOOL 551342d803f216ba9fab8af6c47e0a92bcd948c4537bef0050b3773df70e31d8ecab7caf6bebd4659038a552842e211ecb61ebf4d1cceb0a3ffdd314daf2aa9b +DIST thunderbird-38.3.0-sq.xpi 446897 SHA256 f82cbbfed792a36383a8a78bd66b499de837dbbf1c0386a579bb602db31400e8 SHA512 3ac6605fe5c4fe8bf938b65a6cb0413117aee3773a09262b2f5ed15f7c67f16f9c67d023c3df03e9413acd5666fbb05ae63a8e84fa66ed25151f1dfc3da98d3f WHIRLPOOL f1f3946e64afc3ce326c94449a207ad0ff6a8a01ad831c304f7fbfc01b4c5ef6c5895992303012ac41687e7ad190e82bcedb4c28954c48fdfcb71f1c022766df +DIST thunderbird-38.3.0-sr.xpi 543314 SHA256 2fc3d2fda47c02cc3299e42a178b329dd43d3e09cb1b79be85a490deac77302a SHA512 c32d8300728b998c58a5e13a1b0311aa56bb3d51b07bd142b5421c121812fd940d2ad33a5050382e5f7ae5ae8c75f6337a1cedd3e0368ccdf37743dbc8415f1b WHIRLPOOL b3a0b009e0ac4a326b066e05b29fd45745259ca9352090c0e4be79c79852f296391ecda777ad35dd796a80c7a38ddadca60a5e1e759684aa2b05a97c6448893b +DIST thunderbird-38.3.0-sv-SE.xpi 439633 SHA256 0eeb64f903032b8456ec9fe9b1484add7ac45aa76406479f44abdb30b5bce119 SHA512 51d5ae6c4a0866db5bbaf28ee6c1d5111de23116d2460207d581f67c034bcb9f94c1e1753324ebb7744e7e264ee173d6e81d0a1fdbb698885dba90c4ed201550 WHIRLPOOL 1b76e3537cd3077f1665576394463b98f54d7bbb3d348a7e3a3779416ae2cee0cf480482d65669b19b8341c1c25d23c884ca553d94b7520e23f4bb91e91d7ac9 +DIST thunderbird-38.3.0-ta-LK.xpi 558738 SHA256 2f68f7c0596253b3fa2a3c9d895cde48d8bdc55f006264cae84eaa485ae10f37 SHA512 09cef8586b7f9c8b91351b2c67cdf54dac43178aabc9c20aa1fd9c64119a20808764c8afa0fe3634103e82450b0271d07d13a52d1dec73efbebe07b7b866122e WHIRLPOOL aaafac16c797512f44903e00f5b777ae815a1f75751ad2cd054a52da67dc19a63b6b97834f7cc3dd9240d14fdc0490da0ae0e3ffc97ec78daac53fb372ff9fae +DIST thunderbird-38.3.0-tr.xpi 447799 SHA256 be6321c62f3d5dceee8df225810ed42ecc76ec79c35330da62fdb11027eb9e10 SHA512 533f37baf82d54174d2d11551ec229692a65d7c80cb9a0896d516e988d7d1292caf01cebd8cfce8983cad60c41b379a461bcc86f4ec222caa28d1d59407a9a0b WHIRLPOOL 19f1b9d5edc1c278357ae48c13776893d6fd5965910c1b7c1587e8affb51285c0b53ab7fc91f2ca0cfbc595eea4a902d5ea6fc72dfd232fdf05eef6498d611d0 +DIST thunderbird-38.3.0-uk.xpi 509600 SHA256 3e64a3c28621b7e76b2b705cee2e721fddba762728ab180449873e69ccd9bcc2 SHA512 69f2e947563ed04b45352453811dec727e1ae539a47fdbdc2e5677727279b87ac7b639b72d2d63ced05a144d8b3e349c1aa94aa2152fc8810c64512fb2502e89 WHIRLPOOL 4b3c7f9f65b6971fa62bbebc5de1d5001eb01ec06d010efb3875fbd905438b6cb6a87acbbbe1510fe8384d8a69c321842e572133c6400d5ae2ca4de3915e11ea +DIST thunderbird-38.3.0-vi.xpi 519843 SHA256 d2d03bccd1bf564415e38ef3980b4a7e0a32fe30cada1ea8c15c0f96babca151 SHA512 8f567c7e6d04c73fda369e3b657a00c3402c585c730ba37e0680be167e7c9816651a279d14f944d103fd8dbe9d714f05e817b50e47c7cccb5b735680812cbf22 WHIRLPOOL 1911be7f96e50a7674271a4a4e65d934cbd682954a9aecec660e765cc8fff0060c4cc8853c68c3e2db102958819cc513fbb31d7911debf86b8e59c72ee6f5fba +DIST thunderbird-38.3.0-zh-CN.xpi 466412 SHA256 8c3455bbe76b167f94f1b1f7c836aafd7f5d11e5fa7cc4071bde0fe77b4bcf49 SHA512 741a624c4012ac8da81f0d6ae8c6808e6c6a5245ea8055f8aab948fa93e34dfa5160f8b4f2a4a9b3dd0ef9ba6c72006212a0f320b1f5aaf22f1c620389c66033 WHIRLPOOL afa24ef3a20981433469d24d16699fac4f7138e70c7702f7516958884c51704aa78e6f8b307379985b75e53900c3fb5a89a07c5d515a9883e98d036e8f0be41a +DIST thunderbird-38.3.0-zh-TW.xpi 466661 SHA256 fd10d148424c21731b877104ac50628c973348f8bc813573130503d08a0e045e SHA512 c183b8421a73253650e1d2e3bda3465aac42e0f3ecebdbaed3814218540b1f40e865ffe6028c8b2277c47241e85d9b67887fcc3b754328fd7323e8242d53b69e WHIRLPOOL 30b01926c975b7a70484ffe6a341fed0af039f9237cdc653cbe50ccc339b770236bf9e89789c958196ecc60f1d68fcc8f22aa6c26e616904d10d417229f8b1e3 +DIST thunderbird-38.3.0.source.tar.bz2 204361602 SHA256 9f3cb19a5ceabc5e8fa31f782b6d92720a77ef2c2d6c7b63b3d792cde491c961 SHA512 622731a3a6d40fabcf709e08ed20f8faf0d79a26229ab59c5a39d12b4445e090a7968055cc4804d829d6918f6879f1d47e3d453eefca58c8b68486bce20f21ea WHIRLPOOL afd0b9c0b4c1644e62329b744ad4ebd01d50e342f24d65bdc6f0634a910c6edae9d0e14b5307d51d6f2673969c962a831bb62109607ba01bd787409b5685246a +EBUILD thunderbird-38.3.0-r99.ebuild 13313 SHA256 98d377bb24c17843444568c17eae214afe4f2dba57c63bc449fe109a15ccf51e SHA512 519776acad78985378bf9f7f5c61be9070397c0ce0dfb266d4a10e103889654123720945c0224c70342b518412e3e6f17656614e4ae86ee1a1710919390d180e WHIRLPOOL 52bc9176c531f1014cfcd9b2eb3e7b2e248317d82e103e75db7e3db6efa153887e5800b39f467ff9d13cee57742c51f5ffdd356a56bdac80bc30e323e0e0312d +MISC metadata.xml 1499 SHA256 9e77bf6b427591dfdb3ef9962bbc1f2cf06c56c40481fb01ff4dde58b384ada5 SHA512 9b221808f226c1e1cc0cebd0abdf3b262eaed0c3392e8302fd1933141bf95840ab40bb1869b998d51d59a85fb83709963a21c114406c2a720f89d09bc0838d39 WHIRLPOOL c0398b529a65726b321968da4bbab0c156f418a01be51d2b7533589e726a93c28200035c4e664dbea4b90622d285f68464d4774e53e5c72d8292a1910233f36e diff --git /mail-client/thunderbird/files/enigmail-1.6.0-parallel-fix.patch /mail-client/thunderbird/files/enigmail-1.6.0-parallel-fix.patch new file mode 100644 index 0000000..ab4b613 --- /dev/null +++ /mail-client/thunderbird/files/enigmail-1.6.0-parallel-fix.patch @@ -0,0 +1,38 @@ +commit dd4ad2eebd36c84307222ca56c10c073527d7054 +Author: Patrick Brunschwig +Date: Sun Nov 24 19:06:23 2013 +0100 + + fixed broken parallel full build of TB (patch by Fabio Rossi) + +diff --git a/lang/Makefile.in b/lang/Makefile.in +index 2334d4f..38688e0 100644 +--- a/lang/Makefile.in ++++ b/lang/Makefile.in +@@ -16,12 +16,12 @@ include $(topsrcdir)/config/config.mk + + include $(srcdir)/../util/build.mk + +-all: export jar ++all: jar + + export: + $(PERL) $(srcdir)/make-lang-xpi.pl $(srcdir)/current-languages.txt $(srcdir) + +-jar: ++jar: export + $(MAKEJAR) + + clean: +diff --git a/ui/Makefile.in b/ui/Makefile.in +index 6309525..13c98ee 100644 +--- a/ui/Makefile.in ++++ b/ui/Makefile.in +@@ -28,7 +28,7 @@ include $(topsrcdir)/config/config.mk + + include $(srcdir)/../util/build.mk + +-jar: ++jar: dirs + $(MAKEJAR) + + clean: diff --git /mail-client/thunderbird/files/icon/thunderbird-unbranded.desktop /mail-client/thunderbird/files/icon/thunderbird-unbranded.desktop new file mode 100644 index 0000000..f9d87be --- /dev/null +++ /mail-client/thunderbird/files/icon/thunderbird-unbranded.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Mozilla Thunderbird +Comment=Mail & News Reader +Exec=/usr/bin/thunderbird %u +Icon=thunderbird-icon-unbranded +Terminal=false +Type=Application +Categories=Office;Network;Email; +MimeType=x-scheme-handler/mailto; diff --git /mail-client/thunderbird/files/icon/thunderbird.desktop /mail-client/thunderbird/files/icon/thunderbird.desktop new file mode 100644 index 0000000..f9c31eb --- /dev/null +++ /mail-client/thunderbird/files/icon/thunderbird.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Mozilla Thunderbird +Comment=Mail & News Reader +Exec=/usr/bin/thunderbird %u +Icon=thunderbird-icon +Terminal=false +Type=Application +Categories=Office;Network;Email; +MimeType=x-scheme-handler/mailto; diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-basename.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-basename.patch new file mode 100644 index 0000000..e54a69d --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-basename.patch @@ -0,0 +1,25 @@ +# HG changeset patch +# User Felix Janda +# Date 1423172942 -3600 +# Thu Feb 05 22:49:02 2015 +0100 +# Node ID 5f3abeb6ae6c0512901724428d908f601b9e49d4 +# Parent 2d344ef8da33717224d5a08570dc834ca2254f9f +# https://bugzilla.mozilla.org/show_bug.cgi?id=1041962 +LulElf: Avoid basename + +diff -r 2d344ef8da33 -r 5f3abeb6ae6c tools/profiler/LulElf.cpp +--- a/mozilla/tools/profiler/LulElf.cpp Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/tools/profiler/LulElf.cpp Thu Feb 05 22:49:02 2015 +0100 +@@ -611,9 +611,9 @@ + // last slash, or the whole filename if there are no slashes. + string BaseFileName(const string &filename) { + // Lots of copies! basename's behavior is less than ideal. +- char *c_filename = strdup(filename.c_str()); +- string base = basename(c_filename); +- free(c_filename); ++ const char *c_filename = filename.c_str(); ++ const char *p = strrchr(c_filename, '/'); ++ string base = p ? p+1 : c_filename; + return base; + } + diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-crashreporter.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-crashreporter.patch new file mode 100644 index 0000000..ca27693 --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-crashreporter.patch @@ -0,0 +1,358 @@ +# HG changeset patch +# User Felix Janda +# Date 1423172597 -3600 +# Thu Feb 05 22:43:17 2015 +0100 +# Node ID df5ec9e5685a52bcd19bbe566c0770daa40f14b1 +# Parent 2d344ef8da33717224d5a08570dc834ca2254f9f +crashreporter: compile with musl + +diff -r 2d344ef8da33 -r df5ec9e5685a toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation/crash_generation_server.cc +--- a/mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation/crash_generation_server.cc Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation/crash_generation_server.cc Thu Feb 05 22:43:17 2015 +0100 +@@ -28,7 +28,6 @@ + // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + #include +-#include + #include + #include + #include +@@ -49,6 +48,8 @@ + #include "common/linux/guid_creator.h" + #include "common/linux/safe_readlink.h" + ++#include ++ + static const char kCommandQuit = 'x'; + + namespace google_breakpad { +diff -r 2d344ef8da33 -r df5ec9e5685a toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.cc +--- a/mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.cc Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.cc Thu Feb 05 22:43:17 2015 +0100 +@@ -77,7 +77,7 @@ + #include + #include + +-#include ++#include + #include + #include + #include +@@ -418,11 +418,11 @@ + siginfo_t siginfo = {}; + // Mimic a trusted signal to allow tracing the process (see + // ExceptionHandler::HandleSignal(). +- siginfo.si_code = SI_USER; +- siginfo.si_pid = getpid(); +- struct ucontext context; +- getcontext(&context); +- return HandleSignal(sig, &siginfo, &context); ++// siginfo.si_code = SI_USER; ++// siginfo.si_pid = getpid(); ++// struct ucontext context; ++// getcontext(&context); ++// return HandleSignal(sig, &siginfo, &context); + } + + // This function may run in a compromised context: see the top of the file. +@@ -567,7 +567,7 @@ + sys_prctl(PR_SET_DUMPABLE, 1); + + CrashContext context; +- int getcontext_result = getcontext(&context.context); ++ int getcontext_result = 1;//getcontext(&context.context); + if (getcontext_result) + return false; + #if !defined(__ARM_EABI__) +diff -r 2d344ef8da33 -r df5ec9e5685a toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.h +--- a/mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.h Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.h Thu Feb 05 22:43:17 2015 +0100 +@@ -192,7 +192,7 @@ + struct ucontext context; + #if !defined(__ARM_EABI__) + // #ifdef this out because FP state is not part of user ABI for Linux ARM. +- struct _libc_fpstate float_state; ++ struct _fpstate float_state; + #endif + }; + +diff -r 2d344ef8da33 -r df5ec9e5685a toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc +--- a/mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc Thu Feb 05 22:43:17 2015 +0100 +@@ -174,7 +174,7 @@ + // out: the minidump structure + // info: the collection of register structures. + void CPUFillFromUContext(MDRawContextX86 *out, const ucontext *uc, +- const struct _libc_fpstate* fp) { ++ const struct _fpstate* fp) { + const greg_t* regs = uc->uc_mcontext.gregs; + + out->context_flags = MD_CONTEXT_X86_FULL | +@@ -274,7 +274,7 @@ + } + + void CPUFillFromUContext(MDRawContextAMD64 *out, const ucontext *uc, +- const struct _libc_fpstate* fpregs) { ++ const struct _fpstate* fpregs) { + const greg_t* regs = uc->uc_mcontext.gregs; + + out->context_flags = MD_CONTEXT_AMD64_FULL; +@@ -341,7 +341,7 @@ + } + + void CPUFillFromUContext(MDRawContextARM* out, const ucontext* uc, +- const struct _libc_fpstate* fpregs) { ++ const struct _fpstate* fpregs) { + out->context_flags = MD_CONTEXT_ARM_FULL; + + out->iregs[0] = uc->uc_mcontext.arm_r0; +@@ -1480,7 +1480,7 @@ + const char* path_; // Path to the file where the minidum should be written. + + const struct ucontext* const ucontext_; // also from the signal handler +- const struct _libc_fpstate* const float_state_; // ditto ++ const struct _fpstate* const float_state_; // ditto + LinuxDumper* dumper_; + MinidumpFileWriter minidump_writer_; + off_t minidump_size_limit_; +diff -r 2d344ef8da33 -r df5ec9e5685a toolkit/crashreporter/google-breakpad/src/common/android/include/stab.h +--- a/mozilla/toolkit/crashreporter/google-breakpad/src/common/android/include/stab.h Sun Feb 01 19:32:36 2015 +0100 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,100 +0,0 @@ +-// Copyright (c) 2012, Google Inc. +-// All rights reserved. +-// +-// Redistribution and use in source and binary forms, with or without +-// modification, are permitted provided that the following conditions are +-// met: +-// +-// * Redistributions of source code must retain the above copyright +-// notice, this list of conditions and the following disclaimer. +-// * Redistributions in binary form must reproduce the above +-// copyright notice, this list of conditions and the following disclaimer +-// in the documentation and/or other materials provided with the +-// distribution. +-// * Neither the name of Google Inc. nor the names of its +-// contributors may be used to endorse or promote products derived from +-// this software without specific prior written permission. +-// +-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- +-#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H +-#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H +- +-#include +- +-#ifdef __BIONIC_HAVE_STAB_H +-#include +-#else +- +-#ifdef __cplusplus +-extern "C" { +-#endif // __cplusplus +- +-#define _STAB_CODE_LIST \ +- _STAB_CODE_DEF(UNDF,0x00) \ +- _STAB_CODE_DEF(GSYM,0x20) \ +- _STAB_CODE_DEF(FNAME,0x22) \ +- _STAB_CODE_DEF(FUN,0x24) \ +- _STAB_CODE_DEF(STSYM,0x26) \ +- _STAB_CODE_DEF(LCSYM,0x28) \ +- _STAB_CODE_DEF(MAIN,0x2a) \ +- _STAB_CODE_DEF(PC,0x30) \ +- _STAB_CODE_DEF(NSYMS,0x32) \ +- _STAB_CODE_DEF(NOMAP,0x34) \ +- _STAB_CODE_DEF(OBJ,0x38) \ +- _STAB_CODE_DEF(OPT,0x3c) \ +- _STAB_CODE_DEF(RSYM,0x40) \ +- _STAB_CODE_DEF(M2C,0x42) \ +- _STAB_CODE_DEF(SLINE,0x44) \ +- _STAB_CODE_DEF(DSLINE,0x46) \ +- _STAB_CODE_DEF(BSLINE,0x48) \ +- _STAB_CODE_DEF(BROWS,0x48) \ +- _STAB_CODE_DEF(DEFD,0x4a) \ +- _STAB_CODE_DEF(EHDECL,0x50) \ +- _STAB_CODE_DEF(MOD2,0x50) \ +- _STAB_CODE_DEF(CATCH,0x54) \ +- _STAB_CODE_DEF(SSYM,0x60) \ +- _STAB_CODE_DEF(SO,0x64) \ +- _STAB_CODE_DEF(LSYM,0x80) \ +- _STAB_CODE_DEF(BINCL,0x82) \ +- _STAB_CODE_DEF(SOL,0x84) \ +- _STAB_CODE_DEF(PSYM,0xa0) \ +- _STAB_CODE_DEF(EINCL,0xa2) \ +- _STAB_CODE_DEF(ENTRY,0xa4) \ +- _STAB_CODE_DEF(LBRAC,0xc0) \ +- _STAB_CODE_DEF(EXCL,0xc2) \ +- _STAB_CODE_DEF(SCOPE,0xc4) \ +- _STAB_CODE_DEF(RBRAC,0xe0) \ +- _STAB_CODE_DEF(BCOMM,0xe2) \ +- _STAB_CODE_DEF(ECOMM,0xe4) \ +- _STAB_CODE_DEF(ECOML,0xe8) \ +- _STAB_CODE_DEF(NBTEXT,0xf0) \ +- _STAB_CODE_DEF(NBDATA,0xf2) \ +- _STAB_CODE_DEF(NBBSS,0xf4) \ +- _STAB_CODE_DEF(NBSTS,0xf6) \ +- _STAB_CODE_DEF(NBLCS,0xf8) \ +- _STAB_CODE_DEF(LENG,0xfe) +- +-enum __stab_debug_code { +-#define _STAB_CODE_DEF(x,y) N_##x = y, +-_STAB_CODE_LIST +-#undef _STAB_CODE_DEF +-}; +- +-#ifdef __cplusplus +-} // extern "C" +-#endif // __cplusplus +- +-#endif // __BIONIC_HAVE_STAB_H +- +-#endif // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H +diff -r 2d344ef8da33 -r df5ec9e5685a toolkit/crashreporter/google-breakpad/src/common/android/include/sys/signal.h +--- a/mozilla/toolkit/crashreporter/google-breakpad/src/common/android/include/sys/signal.h Sun Feb 01 19:32:36 2015 +0100 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,35 +0,0 @@ +-// Copyright (c) 2012, Google Inc. +-// All rights reserved. +-// +-// Redistribution and use in source and binary forms, with or without +-// modification, are permitted provided that the following conditions are +-// met: +-// +-// * Redistributions of source code must retain the above copyright +-// notice, this list of conditions and the following disclaimer. +-// * Redistributions in binary form must reproduce the above +-// copyright notice, this list of conditions and the following disclaimer +-// in the documentation and/or other materials provided with the +-// distribution. +-// * Neither the name of Google Inc. nor the names of its +-// contributors may be used to endorse or promote products derived from +-// this software without specific prior written permission. +-// +-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- +-#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_SIGNAL_H +-#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_SIGNAL_H +- +-#include +- +-#endif // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_SIGNAL_H +diff -r 2d344ef8da33 -r df5ec9e5685a toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc +--- a/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc Thu Feb 05 22:43:17 2015 +0100 +@@ -829,9 +829,9 @@ + // last slash, or the whole filename if there are no slashes. + string BaseFileName(const string &filename) { + // Lots of copies! basename's behavior is less than ideal. +- char *c_filename = strdup(filename.c_str()); +- string base = basename(c_filename); +- free(c_filename); ++ const char *c_filename = filename.c_str(); ++ const char *p = strrchr(c_filename, '/'); ++ string base = p ? p+1 : c_filename; + return base; + } + +diff -r 2d344ef8da33 -r df5ec9e5685a toolkit/crashreporter/google-breakpad/src/common/linux/elf_core_dump.h +--- a/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/elf_core_dump.h Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/elf_core_dump.h Thu Feb 05 22:43:17 2015 +0100 +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + + #include "common/memory_range.h" + +diff -r 2d344ef8da33 -r df5ec9e5685a toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc +--- a/mozilla/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc Thu Feb 05 22:43:17 2015 +0100 +@@ -34,7 +34,6 @@ + #include "common/stabs_reader.h" + + #include +-#include + #include + + #include +diff -r 2d344ef8da33 -r df5ec9e5685a toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h +--- a/mozilla/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h Thu Feb 05 22:43:17 2015 +0100 +@@ -53,12 +53,19 @@ + #include + #endif + +-#ifdef HAVE_A_OUT_H +-#include +-#endif + #ifdef HAVE_MACH_O_NLIST_H + #include + #endif ++// Definitions from and for systems which ++// do not have them ++#undef N_UNDF ++#define N_UNDF 0x0 ++#define N_FUN 0x24 ++#define N_SLINE 0x44 ++#define N_SO 0x64 ++#define N_LSYM 0x80 ++#define N_BINCL 0x82 ++#define N_SOL 0x84 + + #include + #include +diff -r 2d344ef8da33 -r df5ec9e5685a toolkit/crashreporter/google-breakpad/src/common/stabs_reader_unittest.cc +--- a/mozilla/toolkit/crashreporter/google-breakpad/src/common/stabs_reader_unittest.cc Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/toolkit/crashreporter/google-breakpad/src/common/stabs_reader_unittest.cc Thu Feb 05 22:43:17 2015 +0100 +@@ -33,7 +33,6 @@ + + #include + #include +-#include + #include + #include + #include +diff -r 2d344ef8da33 -r df5ec9e5685a toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h +--- a/mozilla/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h Thu Feb 05 22:43:17 2015 +0100 +@@ -2814,7 +2814,7 @@ + LSS_INLINE _syscall6(void*, mmap, void*, s, + size_t, l, int, p, + int, f, int, d, +- __off64_t, o) ++ off64_t, o) + + LSS_INLINE _syscall4(int, newfstatat, int, d, + const char *, p, +diff -r 2d344ef8da33 -r df5ec9e5685a toolkit/crashreporter/nsExceptionHandler.cpp +--- a/mozilla/toolkit/crashreporter/nsExceptionHandler.cpp Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/toolkit/crashreporter/nsExceptionHandler.cpp Thu Feb 05 22:43:17 2015 +0100 +@@ -49,6 +49,7 @@ + #elif defined(XP_LINUX) + #include "nsIINIParser.h" + #include "common/linux/linux_libc_support.h" ++#undef getdents64 + #include "third_party/lss/linux_syscall_support.h" + #include "client/linux/crash_generation/client_info.h" + #include "client/linux/crash_generation/crash_generation_server.h" diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-bug-1130175.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-bug-1130175.patch new file mode 100644 index 0000000..25f8198 --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-bug-1130175.patch @@ -0,0 +1,33 @@ +# HG changeset patch +# User Felix Janda +# Date 1423171460 -3600 +# Thu Feb 05 22:24:20 2015 +0100 +# Node ID af818fbea923d7c026bc8e22a6512f14f788ba56 +# Parent 9c40ffbcf6b32d688abf089f2cce3c85dd8bdb29 +Bug 1130175 - nICEr: avoid sysctl.h include. r=bwc + +diff -r 9c40ffbcf6b3 -r af818fbea923 media/mtransport/third_party/nICEr/src/stun/addrs.c +--- a/mozilla/media/mtransport/third_party/nICEr/src/stun/addrs.c Mon Feb 23 07:39:00 2015 -0500 ++++ b/mozilla/media/mtransport/third_party/nICEr/src/stun/addrs.c Thu Feb 05 22:24:20 2015 +0100 +@@ -45,13 +45,11 @@ + #include + #include + #ifndef ANDROID +-#include + #include + #else + #include + /* Work around an Android NDK < r8c bug */ + #undef __unused +-#include + #endif + #ifndef LINUX + #include +@@ -122,6 +120,7 @@ + */ + + #include ++#include + + static void stun_rt_xaddrs(caddr_t, caddr_t, struct rt_addrinfo *); + static int stun_grab_addrs(char *name, int addrcount, diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-bug-1130709.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-bug-1130709.patch new file mode 100644 index 0000000..063c4f5 --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-bug-1130709.patch @@ -0,0 +1,227 @@ +# HG changeset patch +# User Felix Janda +# Date 1423304332 -3600 +# Node ID 3e7a3784e7479ab7c663eecbccf8107c271290a0 +# Parent 12394290ae583134871ed40c93677f62ffb1e9e0 +Bug 1130709: Make __BEGIN_DECLS and __END_DECLS explicit r=bwc + +diff --git a/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_darwin_types.h b/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_darwin_types.h +--- a/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_darwin_types.h ++++ b/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_darwin_types.h +@@ -49,37 +49,16 @@ typedef uint8_t boolean; + #ifdef __GNUC__ + #define MAX(a,b) ({ typeof(a) _a = (a); typeof(b) _b = (b); _a > _b ? _a : _b; }) + #else + #define MAX(a,b) (((a) > (b)) ? (a) : (b)) + #endif + #endif + + /** +- * __BEGIN_DECLS and __END_DECLS +- * +- * Define macros for compilation by C++ compiler +- */ +-#ifndef __BEGIN_DECLS +-#ifdef __cplusplus +-#define __BEGIN_DECLS extern "C" { +-#else +-#define __BEGIN_DECLS +-#endif +-#endif +- +-#ifndef __END_DECLS +-#ifdef __cplusplus +-#define __END_DECLS } +-#else +-#define __END_DECLS +-#endif +-#endif +- +-/** + * Define TRUE/FALSE + * defined in several header files + */ + #ifndef TRUE + #define TRUE 1 + #endif + + #ifndef FALSE +diff --git a/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_linux_types.h b/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_linux_types.h +--- a/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_linux_types.h ++++ b/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_linux_types.h +@@ -57,38 +57,16 @@ typedef uint8_t boolean; + #ifndef MAX + #ifdef __GNUC__ + #define MAX(a,b) ({ typeof(a) _a = (a); typeof(b) _b = (b); _a > _b ? _a : _b; }) + #else + #define MAX(a,b) (((a) > (b)) ? (a) : (b)) + #endif + #endif + +- +- +-/** +- * __BEGIN_DECLS and __END_DECLS +- * +- * Define macros for compilation by C++ compiler +- */ +-#ifndef __BEGIN_DECLS +-#ifdef __cplusplus +-#define __BEGIN_DECLS extern "C" { +-#else +-#define __BEGIN_DECLS +-#endif +-#endif +- +-#ifndef __END_DECLS +-#ifdef __cplusplus +-#define __END_DECLS } +-#else +-#define __END_DECLS +-#endif +-#endif + /** + * Define TRUE/FALSE + * defined in several header files + */ + #ifndef TRUE + #define TRUE 1 + #endif + +diff --git a/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_string.h b/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_string.h +--- a/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_string.h ++++ b/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_string.h +@@ -5,17 +5,19 @@ + #ifndef _CPR_STRING_H_ + #define _CPR_STRING_H_ + + #include + + #include "cpr_types.h" + #include "cpr_strings.h" + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + /** + * sstrncpy + * + * @brief The CPR wrapper for strncpy + * + * This is Cisco's *safe* version of strncpy. The string will always + * be NUL terminated (which is not ANSI compliant). +@@ -125,11 +127,13 @@ void flex_string_sprintf(flex_string *fs + * @param[in] str - The string that needs to be duplicated + * + * @return The duplicated string or NULL in case of no memory + * + */ + char * + cpr_strdup(const char *str); + +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif +diff --git a/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_strings.h b/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_strings.h +--- a/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_strings.h ++++ b/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_strings.h +@@ -2,29 +2,25 @@ + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + #ifndef _CPR_STRINGS_H_ + #define _CPR_STRINGS_H_ + + #include "cpr_types.h" + +-__BEGIN_DECLS +- + + #include + + #if defined(_MSC_VER) + #define cpr_strcasecmp _stricmp + #define cpr_strncasecmp _strnicmp + #if _MSC_VER < 1900 + #define snprintf _snprintf + #endif + #else // _MSC_VER + + #define cpr_strcasecmp strcasecmp + #define cpr_strncasecmp strncasecmp + + #endif // _MSC_VER + +-__END_DECLS +- + #endif +diff --git a/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h b/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h +--- a/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h ++++ b/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h +@@ -8,17 +8,19 @@ + #if defined SIP_OS_LINUX + #include "cpr_linux_types.h" + #elif defined SIP_OS_WINDOWS + #include "cpr_win_types.h" + #elif defined SIP_OS_OSX + #include "cpr_darwin_types.h" + #endif + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + /* + * CPR Return Codes + */ + typedef enum + { + CPR_SUCCESS, + CPR_FAILURE +@@ -109,11 +111,13 @@ extern const cpr_ip_addr_t ip_addr_inval + * of memory that have a "hidden" header block immediately preceding + * the pointer. You MUST use the functions in string_lib.c to + * create, manipulate, destroy, copy, or otherwise work with these + * strings. + */ + + typedef const char *string_t; + +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif +diff --git a/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_win_types.h b/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_win_types.h +--- a/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_win_types.h ++++ b/mozilla/media/webrtc/signaling/src/sdp/sipcc/cpr_win_types.h +@@ -95,21 +95,10 @@ typedef int pid_t; + #endif + + /* + * Define NULL + * defined in numerous header files + */ + /* DONE defined in windef.h */ + +-/* +- * Define __BEGIN_DECLS and __END_DECLS +- */ +-#ifdef __cplusplus +-#define __BEGIN_DECLS extern "C" { +-#define __END_DECLS } +-#else +-#define __BEGIN_DECLS +-#define __END_DECLS +-#endif +- + #endif // _CPR_WIN_TYPES_H_ + + diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-cdefs-header.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-cdefs-header.patch new file mode 100644 index 0000000..703190a --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-cdefs-header.patch @@ -0,0 +1,30 @@ +# HG changeset patch +# User Felix Janda +# Date 1423171584 -3600 +# Node ID 0b586ba959b254e235cae639b0bbdded387d9253 +# Parent b6191f7e683ab87ed40af42b34041114a380341e +Bug 1151202 - libstagefright: Fix compilation for systems without . r=cpearce + +diff --git a/mozilla/media/libstagefright/system/core/include/cutils/properties.h b/mozilla/media/libstagefright/system/core/include/cutils/properties.h +--- a/mozilla/media/libstagefright/system/core/include/cutils/properties.h ++++ b/mozilla/media/libstagefright/system/core/include/cutils/properties.h +@@ -12,17 +12,17 @@ + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + #ifndef __CUTILS_PROPERTIES_H + #define __CUTILS_PROPERTIES_H + +-#include ++#include + #include + + #ifdef __cplusplus + extern "C" { + #endif + + /* System properties are *small* name value pairs managed by the + ** property service. If your data doesn't fit in the provided + diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-fts-header.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-fts-header.patch new file mode 100644 index 0000000..5ac5944 --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-fts-header.patch @@ -0,0 +1,503 @@ +# HG changeset patch +# User Felix Janda +# Date 1429134526 -7200 +# Wed Apr 15 23:48:46 2015 +0200 +# Node ID 62325b792c42746df0c4322d47c6c3e965ec6aaa +# Parent da3e6557e0301899024eeaa24b0a43e837a409d7 +Bug 1139173 - ipc/chromium: Use instead of non-standard . r=froydnj + +diff -r da3e6557e030 -r 62325b792c42 ipc/chromium/src/base/file_util_posix.cc +--- a/mozilla/ipc/chromium/src/base/file_util_posix.cc Wed Apr 22 19:17:15 2015 +0100 ++++ b/mozilla/ipc/chromium/src/base/file_util_posix.cc Wed Apr 15 23:48:46 2015 +0200 +@@ -14,7 +14,7 @@ + #include + #include + #include +-#include ++#include + #include + #define _DARWIN_USE_64_BIT_INODE // Use 64-bit inode data structures + #include +# HG changeset patch +# User Felix Janda +# Date 1429135060 -7200 +# Wed Apr 15 23:57:40 2015 +0200 +# Node ID 1e75c69141cadfd8ea35f5f60e32cb7320d297ab +# Parent 62325b792c42746df0c4322d47c6c3e965ec6aaa +Bug 1139173 - ipc/chromium: Remove ScopedTempDir. r=froydnj + +diff -r 62325b792c42 -r 1e75c69141ca ipc/chromium/moz.build +--- a/mozilla/ipc/chromium/moz.build Wed Apr 15 23:48:46 2015 +0200 ++++ b/mozilla/ipc/chromium/moz.build Wed Apr 15 23:57:40 2015 +0200 +@@ -50,7 +50,6 @@ + 'src/base/pickle.cc', + 'src/base/rand_util.cc', + 'src/base/revocable_store.cc', +- 'src/base/scoped_temp_dir.cc', + 'src/base/string_piece.cc', + 'src/base/string_util.cc', + 'src/base/thread.cc', +diff -r 62325b792c42 -r 1e75c69141ca ipc/chromium/src/base/scoped_temp_dir.cc +--- a/mozilla/ipc/chromium/src/base/scoped_temp_dir.cc Wed Apr 15 23:48:46 2015 +0200 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,47 +0,0 @@ +-// Copyright (c) 2009 The Chromium Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style license that can be +-// found in the LICENSE file. +- +-#include "base/scoped_temp_dir.h" +- +-#include "base/file_util.h" +-#include "base/logging.h" +-#include "base/string_util.h" +- +-ScopedTempDir::ScopedTempDir() { +-} +- +-ScopedTempDir::~ScopedTempDir() { +- if (!path_.empty() && !file_util::Delete(path_, true)) +- CHROMIUM_LOG(ERROR) << "ScopedTempDir unable to delete " << path_.value(); +-} +- +-bool ScopedTempDir::CreateUniqueTempDir() { +- // This "scoped_dir" prefix is only used on Windows and serves as a template +- // for the unique name. +- if (!file_util::CreateNewTempDirectory(FILE_PATH_LITERAL("scoped_dir"), +- &path_)) +- return false; +- +- return true; +-} +- +-bool ScopedTempDir::Set(const FilePath& path) { +- DCHECK(path_.empty()); +- if (!file_util::DirectoryExists(path) && +- !file_util::CreateDirectory(path)) { +- return false; +- } +- path_ = path; +- return true; +-} +- +-FilePath ScopedTempDir::Take() { +- FilePath ret = path_; +- path_ = FilePath(); +- return ret; +-} +- +-bool ScopedTempDir::IsValid() const { +- return !path_.empty() && file_util::DirectoryExists(path_); +-} +diff -r 62325b792c42 -r 1e75c69141ca ipc/chromium/src/base/scoped_temp_dir.h +--- a/mozilla/ipc/chromium/src/base/scoped_temp_dir.h Wed Apr 15 23:48:46 2015 +0200 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,47 +0,0 @@ +-// Copyright (c) 2009 The Chromium Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style license that can be +-// found in the LICENSE file. +- +-#ifndef BASE_SCOPED_TEMP_DIR_H_ +-#define BASE_SCOPED_TEMP_DIR_H_ +- +-// An object representing a temporary / scratch directory that should be cleaned +-// up (recursively) when this object goes out of scope. Note that since +-// deletion occurs during the destructor, no further error handling is possible +-// if the directory fails to be deleted. As a result, deletion is not +-// guaranteed by this class. +- +-#include "base/file_path.h" +- +-class ScopedTempDir { +- public: +- // No directory is owned/created initially. +- ScopedTempDir(); +- +- // Recursively delete path_ +- ~ScopedTempDir(); +- +- // Creates a unique directory in TempPath, and takes ownership of it. +- // See file_util::CreateNewTemporaryDirectory. +- bool CreateUniqueTempDir(); +- +- // Takes ownership of directory at |path|, creating it if necessary. +- // Don't call multiple times unless Take() has been called first. +- bool Set(const FilePath& path); +- +- // Caller takes ownership of the temporary directory so it won't be destroyed +- // when this object goes out of scope. +- FilePath Take(); +- +- const FilePath& path() const { return path_; } +- +- // Returns true if path_ is non-empty and exists. +- bool IsValid() const; +- +- private: +- FilePath path_; +- +- DISALLOW_COPY_AND_ASSIGN(ScopedTempDir); +-}; +- +-#endif // BASE_SCOPED_TEMP_DIR_H_ +# HG changeset patch +# User Felix Janda +# Date 1429135184 -7200 +# Wed Apr 15 23:59:44 2015 +0200 +# Node ID 9b6b694dd82e1a3f7652c35d3e8b264d701ec253 +# Parent 1e75c69141cadfd8ea35f5f60e32cb7320d297ab +Bug 1139173 - ipc/chromium: Remove unused functions from file_util. r=froydnj +CLOSED TREE + +diff -r 1e75c69141ca -r 9b6b694dd82e ipc/chromium/src/base/file_util.cc +--- a/mozilla/ipc/chromium/src/base/file_util.cc Wed Apr 15 23:57:40 2015 +0200 ++++ b/mozilla/ipc/chromium/src/base/file_util.cc Wed Apr 15 23:59:44 2015 +0200 +@@ -139,12 +139,6 @@ + path->push_back(FilePath::kSeparators[0]); + path->append(new_ending); + } +-bool CopyDirectory(const std::wstring& from_path, const std::wstring& to_path, +- bool recursive) { +- return CopyDirectory(FilePath::FromWStringHack(from_path), +- FilePath::FromWStringHack(to_path), +- recursive); +-} + bool CopyFile(const std::wstring& from_path, const std::wstring& to_path) { + return CopyFile(FilePath::FromWStringHack(from_path), + FilePath::FromWStringHack(to_path)); +@@ -172,8 +166,8 @@ + *temp_file = temp_file_path.ToWStringHack(); + return true; + } +-bool Delete(const std::wstring& path, bool recursive) { +- return Delete(FilePath::FromWStringHack(path), recursive); ++bool Delete(const std::wstring& path) { ++ return Delete(FilePath::FromWStringHack(path)); + } + bool DirectoryExists(const std::wstring& path) { + return DirectoryExists(FilePath::FromWStringHack(path)); +diff -r 1e75c69141ca -r 9b6b694dd82e ipc/chromium/src/base/file_util.h +--- a/mozilla/ipc/chromium/src/base/file_util.h Wed Apr 15 23:57:40 2015 +0200 ++++ b/mozilla/ipc/chromium/src/base/file_util.h Wed Apr 15 23:59:44 2015 +0200 +@@ -16,7 +16,6 @@ + #include + #elif defined(OS_POSIX) + #include +-#include + #include + #endif + +@@ -87,34 +86,17 @@ + + // Deletes the given path, whether it's a file or a directory. + // If it's a directory, it's perfectly happy to delete all of the +-// directory's contents. Passing true to recursive deletes +-// subdirectories and their contents as well. ++// directory's contents. + // Returns true if successful, false otherwise. +-// +-// WARNING: USING THIS WITH recursive==true IS EQUIVALENT +-// TO "rm -rf", SO USE WITH CAUTION. +-bool Delete(const FilePath& path, bool recursive); ++bool Delete(const FilePath& path); + // Deprecated temporary compatibility function. +-bool Delete(const std::wstring& path, bool recursive); ++bool Delete(const std::wstring& path); + + // Copies a single file. Use CopyDirectory to copy directories. + bool CopyFile(const FilePath& from_path, const FilePath& to_path); + // Deprecated temporary compatibility function. + bool CopyFile(const std::wstring& from_path, const std::wstring& to_path); + +-// Copies the given path, and optionally all subdirectories and their contents +-// as well. +-// If there are files existing under to_path, always overwrite. +-// Returns true if successful, false otherwise. +-// Dont't use wildcards on the names, it may stop working without notice. +-// +-// If you only need to copy a file use CopyFile, it's faster. +-bool CopyDirectory(const FilePath& from_path, const FilePath& to_path, +- bool recursive); +-// Deprecated temporary compatibility function. +-bool CopyDirectory(const std::wstring& from_path, const std::wstring& to_path, +- bool recursive); +- + // Returns true if the given path exists on the local filesystem, + // false otherwise. + bool PathExists(const FilePath& path); +diff -r 1e75c69141ca -r 9b6b694dd82e ipc/chromium/src/base/file_util_posix.cc +--- a/mozilla/ipc/chromium/src/base/file_util_posix.cc Wed Apr 15 23:57:40 2015 +0200 ++++ b/mozilla/ipc/chromium/src/base/file_util_posix.cc Wed Apr 15 23:59:44 2015 +0200 +@@ -8,9 +8,6 @@ + #include + #include + #include +-#ifndef ANDROID +-#include +-#endif + #include + #include + #include +@@ -53,7 +50,7 @@ + // which works both with and without the recursive flag. I'm not sure we need + // that functionality. If not, remove from file_util_win.cc, otherwise add it + // here. +-bool Delete(const FilePath& path, bool recursive) { ++bool Delete(const FilePath& path) { + const char* path_str = path.value().c_str(); + struct stat file_info; + int test = stat(path_str, &file_info); +@@ -64,174 +61,8 @@ + } + if (!S_ISDIR(file_info.st_mode)) + return (unlink(path_str) == 0); +- if (!recursive) +- return (rmdir(path_str) == 0); + +-#ifdef ANDROID +- // XXX Need ftsless impl for bionic +- return false; +-#else +- bool success = true; +- int ftsflags = FTS_PHYSICAL | FTS_NOSTAT; +- char top_dir[PATH_MAX]; +- if (base::strlcpy(top_dir, path_str, +- arraysize(top_dir)) >= arraysize(top_dir)) { +- return false; +- } +- char* dir_list[2] = { top_dir, NULL }; +- FTS* fts = fts_open(dir_list, ftsflags, NULL); +- if (fts) { +- FTSENT* fts_ent = fts_read(fts); +- while (success && fts_ent != NULL) { +- switch (fts_ent->fts_info) { +- case FTS_DNR: +- case FTS_ERR: +- // log error +- success = false; +- continue; +- break; +- case FTS_DP: +- success = (rmdir(fts_ent->fts_accpath) == 0); +- break; +- case FTS_D: +- break; +- case FTS_NSOK: +- case FTS_F: +- case FTS_SL: +- case FTS_SLNONE: +- success = (unlink(fts_ent->fts_accpath) == 0); +- break; +- default: +- DCHECK(false); +- break; +- } +- fts_ent = fts_read(fts); +- } +- fts_close(fts); +- } +- return success; +-#endif +-} +- +-bool Move(const FilePath& from_path, const FilePath& to_path) { +- if (rename(from_path.value().c_str(), to_path.value().c_str()) == 0) +- return true; +- +- if (!CopyDirectory(from_path, to_path, true)) +- return false; +- +- Delete(from_path, true); +- return true; +-} +- +-bool CopyDirectory(const FilePath& from_path, +- const FilePath& to_path, +- bool recursive) { +- // Some old callers of CopyDirectory want it to support wildcards. +- // After some discussion, we decided to fix those callers. +- // Break loudly here if anyone tries to do this. +- // TODO(evanm): remove this once we're sure it's ok. +- DCHECK(to_path.value().find('*') == std::string::npos); +- DCHECK(from_path.value().find('*') == std::string::npos); +- +- char top_dir[PATH_MAX]; +- if (base::strlcpy(top_dir, from_path.value().c_str(), +- arraysize(top_dir)) >= arraysize(top_dir)) { +- return false; +- } +- +-#ifdef ANDROID +- // XXX Need ftsless impl for bionic +- return false; +-#else +- char* dir_list[] = { top_dir, NULL }; +- FTS* fts = fts_open(dir_list, FTS_PHYSICAL | FTS_NOSTAT, NULL); +- if (!fts) { +- CHROMIUM_LOG(ERROR) << "fts_open failed: " << strerror(errno); +- return false; +- } +- +- int error = 0; +- FTSENT* ent; +- while (!error && (ent = fts_read(fts)) != NULL) { +- // ent->fts_path is the source path, including from_path, so paste +- // the suffix after from_path onto to_path to create the target_path. +- std::string suffix(&ent->fts_path[from_path.value().size()]); +- // Strip the leading '/' (if any). +- if (!suffix.empty()) { +- DCHECK_EQ('/', suffix[0]); +- suffix.erase(0, 1); +- } +- const FilePath target_path = to_path.Append(suffix); +- switch (ent->fts_info) { +- case FTS_D: // Preorder directory. +- // If we encounter a subdirectory in a non-recursive copy, prune it +- // from the traversal. +- if (!recursive && ent->fts_level > 0) { +- if (fts_set(fts, ent, FTS_SKIP) != 0) +- error = errno; +- continue; +- } +- +- // Try creating the target dir, continuing on it if it exists already. +- // Rely on the user's umask to produce correct permissions. +- if (mkdir(target_path.value().c_str(), 0777) != 0) { +- if (errno != EEXIST) +- error = errno; +- } +- break; +- case FTS_F: // Regular file. +- case FTS_NSOK: // File, no stat info requested. +- errno = 0; +- if (!CopyFile(FilePath(ent->fts_path), target_path)) +- error = errno ? errno : EINVAL; +- break; +- case FTS_DP: // Postorder directory. +- case FTS_DOT: // "." or ".." +- // Skip it. +- continue; +- case FTS_DC: // Directory causing a cycle. +- // Skip this branch. +- if (fts_set(fts, ent, FTS_SKIP) != 0) +- error = errno; +- break; +- case FTS_DNR: // Directory cannot be read. +- case FTS_ERR: // Error. +- case FTS_NS: // Stat failed. +- // Abort with the error. +- error = ent->fts_errno; +- break; +- case FTS_SL: // Symlink. +- case FTS_SLNONE: // Symlink with broken target. +- CHROMIUM_LOG(WARNING) << "CopyDirectory() skipping symbolic link: " << +- ent->fts_path; +- continue; +- case FTS_DEFAULT: // Some other sort of file. +- CHROMIUM_LOG(WARNING) << "CopyDirectory() skipping file of unknown type: " << +- ent->fts_path; +- continue; +- default: +- NOTREACHED(); +- continue; // Hope for the best! +- } +- } +- // fts_read may have returned NULL and set errno to indicate an error. +- if (!error && errno != 0) +- error = errno; +- +- if (!fts_close(fts)) { +- // If we already have an error, let's use that error instead of the error +- // fts_close set. +- if (!error) +- error = errno; +- } +- +- if (error) { +- CHROMIUM_LOG(ERROR) << "CopyDirectory(): " << strerror(error); +- return false; +- } +- return true; +-#endif ++ return (rmdir(path_str) == 0); + } + + bool PathExists(const FilePath& path) { +diff -r 1e75c69141ca -r 9b6b694dd82e ipc/chromium/src/base/file_util_win.cc +--- a/mozilla/ipc/chromium/src/base/file_util_win.cc Wed Apr 15 23:57:40 2015 +0200 ++++ b/mozilla/ipc/chromium/src/base/file_util_win.cc Wed Apr 15 23:59:44 2015 +0200 +@@ -27,14 +27,14 @@ + return true; + } + +-bool Delete(const FilePath& path, bool recursive) { ++bool Delete(const FilePath& path) { + if (path.value().length() >= MAX_PATH) + return false; + +- // If we're not recursing use DeleteFile; it should be faster. DeleteFile ++ // Use DeleteFile; it should be faster. DeleteFile + // fails if passed a directory though, which is why we fall through on + // failure to the SHFileOperation. +- if (!recursive && DeleteFile(path.value().c_str()) != 0) ++ if (DeleteFile(path.value().c_str()) != 0) + return true; + + // SHFILEOPSTRUCT wants the path to be terminated with two NULLs, +@@ -48,8 +48,7 @@ + file_operation.wFunc = FO_DELETE; + file_operation.pFrom = double_terminated_path; + file_operation.fFlags = FOF_NOERRORUI | FOF_SILENT | FOF_NOCONFIRMATION; +- if (!recursive) +- file_operation.fFlags |= FOF_NORECURSION | FOF_FILESONLY; ++ file_operation.fFlags |= FOF_NORECURSION | FOF_FILESONLY; + int err = SHFileOperation(&file_operation); + // Some versions of Windows return ERROR_FILE_NOT_FOUND when + // deleting an empty directory. +@@ -98,26 +97,6 @@ + return (SHFileOperation(&file_operation) == 0); + } + +-bool CopyDirectory(const FilePath& from_path, const FilePath& to_path, +- bool recursive) { +- if (recursive) +- return ShellCopy(from_path, to_path, true); +- +- // Instead of creating a new directory, we copy the old one to include the +- // security information of the folder as part of the copy. +- if (!PathExists(to_path)) { +- // Except that Vista fails to do that, and instead do a recursive copy if +- // the target directory doesn't exist. +- if (win_util::GetWinVersion() >= win_util::WINVERSION_VISTA) +- CreateDirectory(to_path); +- else +- ShellCopy(from_path, to_path, false); +- } +- +- FilePath directory = from_path.Append(L"*.*"); +- return ShellCopy(directory, to_path, false); +-} +- + bool PathExists(const FilePath& path) { + return (GetFileAttributes(path.value().c_str()) != INVALID_FILE_ATTRIBUTES); + } +diff -r 1e75c69141ca -r 9b6b694dd82e ipc/chromium/src/base/shared_memory_posix.cc +--- a/mozilla/ipc/chromium/src/base/shared_memory_posix.cc Wed Apr 15 23:57:40 2015 +0200 ++++ b/mozilla/ipc/chromium/src/base/shared_memory_posix.cc Wed Apr 15 23:59:44 2015 +0200 +@@ -93,7 +93,7 @@ + + FilePath path(WideToUTF8(mem_filename)); + if (file_util::PathExists(path)) { +- return file_util::Delete(path, false); ++ return file_util::Delete(path); + } + + // Doesn't exist, so success. +@@ -170,7 +170,7 @@ + // Deleting the file prevents anyone else from mapping it in + // (making it private), and prevents the need for cleanup (once + // the last fd is closed, it is truly freed). +- file_util::Delete(path, false); ++ file_util::Delete(path); + } else { + std::wstring mem_filename; + if (FilenameForMemoryName(name, &mem_filename) == false) diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-netwerk.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-netwerk.patch new file mode 100644 index 0000000..4a35e82 --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-netwerk.patch @@ -0,0 +1,37 @@ +--- a/mozilla/netwerk/sctp/src/netinet/sctp_os_userspace.h ++++ b/mozilla/netwerk/sctp/src/netinet/sctp_os_userspace.h +@@ -400,11 +400,8 @@ + }; + + #else /* !defined(Userspace_os_Windows) */ +-#include /* needed? added from old __FreeBSD__ */ + #include +-#if defined(__Userspace_os_DragonFly) || defined(__Userspace_os_FreeBSD) || defined(__Userspace_os_Linux) || defined(__Userspace_os_NetBSD) || defined(__Userspace_os_OpenBSD) || defined(ANDROID) + #include +-#endif + typedef pthread_mutex_t userland_mutex_t; + typedef pthread_cond_t userland_cond_t; + typedef pthread_t userland_thread_t; +--- a/mozilla/netwerk/sctp/src/netinet/sctp_pcb.c ++++ b/mozilla/netwerk/sctp/src/netinet/sctp_pcb.c +@@ -30,6 +30,9 @@ + * THE POSSIBILITY OF SUCH DAMAGE. + */ + ++#define _BSD_SOURCE /* for IPPORT_RESERVED */ ++#include ++ + #ifdef __FreeBSD__ + #include + __FBSDID("$FreeBSD: head/sys/netinet/sctp_pcb.c 258765 2013-11-30 12:51:19Z tuexen $"); +--- a/mozilla/netwerk/sctp/src/user_queue.h ++++ b/mozilla/netwerk/sctp/src/user_queue.h +@@ -31,7 +31,7 @@ + #ifndef _USER_QUEUE_H_ + #define _USER_QUEUE_H_ + +-#if !defined (__Userspace_os_Windows) ++#if defined(__Userspace_os_FreeBSD) + #include + #endif + /* diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-sysctl-headers.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-sysctl-headers.patch new file mode 100644 index 0000000..25f8198 --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-sysctl-headers.patch @@ -0,0 +1,33 @@ +# HG changeset patch +# User Felix Janda +# Date 1423171460 -3600 +# Thu Feb 05 22:24:20 2015 +0100 +# Node ID af818fbea923d7c026bc8e22a6512f14f788ba56 +# Parent 9c40ffbcf6b32d688abf089f2cce3c85dd8bdb29 +Bug 1130175 - nICEr: avoid sysctl.h include. r=bwc + +diff -r 9c40ffbcf6b3 -r af818fbea923 media/mtransport/third_party/nICEr/src/stun/addrs.c +--- a/mozilla/media/mtransport/third_party/nICEr/src/stun/addrs.c Mon Feb 23 07:39:00 2015 -0500 ++++ b/mozilla/media/mtransport/third_party/nICEr/src/stun/addrs.c Thu Feb 05 22:24:20 2015 +0100 +@@ -45,13 +45,11 @@ + #include + #include + #ifndef ANDROID +-#include + #include + #else + #include + /* Work around an Android NDK < r8c bug */ + #undef __unused +-#include + #endif + #ifndef LINUX + #include +@@ -122,6 +120,7 @@ + */ + + #include ++#include + + static void stun_rt_xaddrs(caddr_t, caddr_t, struct rt_addrinfo *); + static int stun_grab_addrs(char *name, int addrcount, diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-u_int64_t.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-u_int64_t.patch new file mode 100644 index 0000000..a01ecd1 --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-u_int64_t.patch @@ -0,0 +1,68 @@ +# HG changeset patch +# User Felix Janda +# Date 1423173074 -3600 +# Thu Feb 05 22:51:14 2015 +0100 +# Node ID a446b4e607445d1c6faec25b43a5d9b5d45bcacf +# Parent 89120ad0518fb4932de5b5f466debed68ee787ce +Bug 1130164 - tools/profiler: Use types. r=jseward + +diff -r 89120ad0518f -r a446b4e60744 tools/profiler/UnwinderThread2.cpp +--- a/mozilla/tools/profiler/UnwinderThread2.cpp Thu Mar 05 06:04:03 2015 -0500 ++++ b/mozilla/tools/profiler/UnwinderThread2.cpp Thu Feb 05 22:51:14 2015 +0100 +@@ -470,7 +470,7 @@ + ////////////////////////////////////////////////////////// + + // This is the interface to LUL. +-typedef struct { u_int64_t pc; u_int64_t sp; } PCandSP; ++typedef struct { uint64_t pc; uint64_t sp; } PCandSP; + + // Forward declaration. Implementation is below. + static +@@ -1338,7 +1338,7 @@ + else { + // We have at least one N and one P entry available. + // Scan forwards to find the SP of the current P entry +- u_int64_t sp_cur_P = 0; ++ uint64_t sp_cur_P = 0; + unsigned int m = next_P + 1; + while (1) { + /* This assertion should hold because in a well formed +@@ -1349,7 +1349,7 @@ + if (ent.is_ent_hint('Q')) + break; + if (ent.is_ent('S')) { +- sp_cur_P = reinterpret_cast(ent.get_tagPtr()); ++ sp_cur_P = reinterpret_cast(ent.get_tagPtr()); + break; + } + m++; +@@ -1358,7 +1358,7 @@ + if (0) LOG(" P <= last_was_P && sp_cur_P == 0"); + use_P = true; + } else { +- u_int64_t sp_cur_N = pairs[next_N].sp; ++ uint64_t sp_cur_N = pairs[next_N].sp; + use_P = (sp_cur_P > sp_cur_N); + if (0) LOGF(" %s <= sps P %p N %p", + use_P ? "P" : "N", (void*)(intptr_t)sp_cur_P, +diff -r 89120ad0518f -r a446b4e60744 tools/profiler/local_debug_info_symbolizer.cc +--- a/mozilla/tools/profiler/local_debug_info_symbolizer.cc Thu Mar 05 06:04:03 2015 -0500 ++++ b/mozilla/tools/profiler/local_debug_info_symbolizer.cc Thu Feb 05 22:51:14 2015 +0100 +@@ -222,7 +222,7 @@ + debug_info_module = it->second; + } + +- u_int64_t address = frame->instruction - frame->module->base_address(); ++ uint64_t address = frame->instruction - frame->module->base_address(); + Module::Function* function = + debug_info_module->FindFunctionByAddress(address); + if (function) { +@@ -282,7 +282,7 @@ + if (it == symbols_.end()) return NULL; + + Module* module = it->second; +- u_int64_t address = frame->instruction - frame->module->base_address(); ++ uint64_t address = frame->instruction - frame->module->base_address(); + Module::StackFrameEntry* entry = + module->FindStackFrameEntryByAddress(address); + if (!entry) diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-xpcom-blocksize.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-xpcom-blocksize.patch new file mode 100644 index 0000000..628f6f8 --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-fix-xpcom-blocksize.patch @@ -0,0 +1,31 @@ +# HG changeset patch +# User Felix Janda +# Date 1431977414 -7200 +# Node ID fd517a7fc20f9a63e0d3d3246aa617a0b203d141 +# Parent 580e0c9bb03f867512b4f839edc45c338ebdb411 +Bug 1152176 - xpcom: Define linux kernel BLOCK_SIZE if necessary. r=nfroyd + +diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp +--- a/mozilla/xpcom/io/nsLocalFileUnix.cpp ++++ b/mozilla/xpcom/io/nsLocalFileUnix.cpp +@@ -23,16 +23,19 @@ + #if defined(VMS) + #include + #endif + + #if defined(HAVE_SYS_QUOTA_H) && defined(HAVE_LINUX_QUOTA_H) + #define USE_LINUX_QUOTACTL + #include + #include ++#ifndef BLOCK_SIZE ++#define BLOCK_SIZE 1024 /* kernel block size */ ++#endif + #endif + + #include "xpcom-private.h" + #include "nsDirectoryServiceDefs.h" + #include "nsCRT.h" + #include "nsCOMPtr.h" + #include "nsMemory.h" + #include "nsIFile.h" + diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-profiler-gettid.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-profiler-gettid.patch new file mode 100644 index 0000000..c2630ff --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-profiler-gettid.patch @@ -0,0 +1,51 @@ +# HG changeset patch +# User Felix Janda +# Date 1423173146 -3600 +# Thu Feb 05 22:52:26 2015 +0100 +# Node ID c084550fcab646d911bbf4f05747f228759161e4 +# Parent 2d344ef8da33717224d5a08570dc834ca2254f9f +profiler: avoid getcontext and gettid + +diff -r 2d344ef8da33 -r c084550fcab6 tools/profiler/GeckoTaskTracer.cpp +--- a/mozilla/tools/profiler/GeckoTaskTracer.cpp Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/tools/profiler/GeckoTaskTracer.cpp Thu Feb 05 22:52:26 2015 +0100 +@@ -18,8 +18,8 @@ + + #include + +-#if defined(__GLIBC__) +-// glibc doesn't implement gettid(2). ++#if defined(OS_LINUX) && !defined(ANDROID) ++// only bionic wraps gettid(2). + #include + static pid_t gettid() + { +diff -r 2d344ef8da33 -r c084550fcab6 tools/profiler/platform-linux.cc +--- a/mozilla/tools/profiler/platform-linux.cc Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/tools/profiler/platform-linux.cc Thu Feb 05 22:52:26 2015 +0100 +@@ -92,8 +92,8 @@ + + #define SIGNAL_SAVE_PROFILE SIGUSR2 + +-#if defined(__GLIBC__) +-// glibc doesn't implement gettid(2). ++#if !defined(ANDROID) ++// only android wraps gettid(2). + #include + pid_t gettid() + { +@@ -652,10 +652,10 @@ + { + MOZ_ASSERT(aContext); + ucontext_t* pContext = reinterpret_cast(aContext); +- if (!getcontext(pContext)) { +- context = pContext; +- SetSampleContext(this, aContext); +- } ++// if (!getcontext(pContext)) { ++// context = pContext; ++// SetSampleContext(this, aContext); ++// } + } + + void OS::SleepMicro(int microseconds) diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-queue.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-queue.patch new file mode 100644 index 0000000..ad87fdd --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-queue.patch @@ -0,0 +1,28 @@ +# HG changeset patch +# User Felix Janda +# Date 1428437372 -7200 +# Tue Apr 07 22:09:32 2015 +0200 +# Node ID e783ca150f8370a4d8811ceecc28707617e6a4b8 +# Parent ab0490972e1e47a356c3fc2f9e749a2d77a9739b +# https://bugzilla.mozilla.org/show_bug.cgi?id=1152185 +Include port/generic/include also for webrtc/signaling/test + +diff -r ab0490972e1e media/webrtc/signaling/test/moz.build +--- a/mozilla/media/webrtc/signaling/test/moz.build Mon Apr 06 21:30:03 2015 -0400 ++++ b/mozilla/media/webrtc/signaling/test/moz.build Tue Apr 07 22:51:38 2015 +0200 +@@ -35,6 +35,7 @@ + '/media/mtransport/third_party/nrappkit/src/event', + '/media/mtransport/third_party/nrappkit/src/log', + '/media/mtransport/third_party/nrappkit/src/plugin', ++ '/media/mtransport/third_party/nrappkit/src/port/generic/include', + '/media/mtransport/third_party/nrappkit/src/registry', + '/media/mtransport/third_party/nrappkit/src/share', + '/media/mtransport/third_party/nrappkit/src/stats', +@@ -84,7 +85,6 @@ + if CONFIG['OS_TARGET'] in ('DragonFly', 'FreeBSD', 'NetBSD', 'OpenBSD'): + LOCAL_INCLUDES += [ + '/media/mtransport/third_party/nrappkit/src/port/darwin/include', +- '/media/mtransport/third_party/nrappkit/src/port/generic/include', + ] + + USE_LIBS += [ diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-sandbox-cdefs.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-sandbox-cdefs.patch new file mode 100644 index 0000000..692e39e --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-sandbox-cdefs.patch @@ -0,0 +1,22 @@ +# HG changeset patch +# User Felix Janda +# Date 1423172498 -3600 +# Thu Feb 05 22:41:38 2015 +0100 +# Node ID 375c73854f92701f13403b8461b35727dccde825 +# Parent 2d344ef8da33717224d5a08570dc834ca2254f9f +# https://code.google.com/p/chromium/issues/detail?id=463208 +# https://bugzilla.mozilla.org/show_bug.cgi?id=1157864 +chromium sandbox: Avoid cdefs.h + +diff -r 2d344ef8da33 -r 375c73854f92 security/sandbox/chromium/sandbox/linux/seccomp-bpf/linux_seccomp.h +--- a/mozilla/security/sandbox/chromium/sandbox/linux/seccomp-bpf/linux_seccomp.h Sun Feb 01 19:32:36 2015 +0100 ++++ b/mozilla/security/sandbox/chromium/sandbox/linux/seccomp-bpf/linux_seccomp.h Thu Feb 05 22:41:38 2015 +0100 +@@ -16,7 +16,7 @@ + #include + #include + +-#include ++#include + // Old Bionic versions do not have sys/user.h. The if can be removed once we no + // longer need to support these old Bionic versions. + // All x86_64 builds use a new enough bionic to have sys/user.h. diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-updater.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-updater.patch new file mode 100644 index 0000000..ce892d6 --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-updater.patch @@ -0,0 +1,43 @@ +# HG changeset patch +# User Felix Janda +# Date 1428142217 -7200 +# Sat Apr 04 12:10:17 2015 +0200 +# Node ID c04cc88f3bb26e254356df6de06583a542ae6796 +# Parent 90adc073cbc6398f4fab9b1cd07b685368559f34 +# https://bugzilla.mozilla.org/show_bug.cgi?id=1157850 +updater: no fts.h and MAXNAMLEN + +diff -r 90adc073cbc6 -r c04cc88f3bb2 toolkit/mozapps/update/common/updatedefines.h +--- a/mozilla/toolkit/mozapps/update/common/updatedefines.h Thu Apr 02 08:10:00 2015 -0400 ++++ b/mozilla/toolkit/mozapps/update/common/updatedefines.h Sat Apr 04 12:10:17 2015 +0200 +@@ -109,7 +109,7 @@ + # include + # include + +-#ifdef SOLARIS ++#if 1 + # include + #else + # include +diff -r 90adc073cbc6 -r c04cc88f3bb2 toolkit/mozapps/update/updater/updater.cpp +--- a/mozilla/toolkit/mozapps/update/updater/updater.cpp Thu Apr 02 08:10:00 2015 -0400 ++++ b/mozilla/toolkit/mozapps/update/updater/updater.cpp Sat Apr 04 12:10:17 2015 +0200 +@@ -3338,7 +3338,8 @@ + return rv; + } + +-#elif defined(SOLARIS) ++#elif 1 ++//#defined(SOLARIS) + int add_dir_entries(const NS_tchar *dirpath, ActionList *list) + { + int rv = OK; +@@ -3346,7 +3347,7 @@ + NS_tchar foundpath[MAXPATHLEN]; + struct { + dirent dent_buffer; +- char chars[MAXNAMLEN]; ++ char chars[NAME_MAX]; + } ent_buf; + struct dirent* ent; + diff --git /mail-client/thunderbird/files/musl/thunderbird-38.3.0-xre.patch /mail-client/thunderbird/files/musl/thunderbird-38.3.0-xre.patch new file mode 100644 index 0000000..9b0480d --- /dev/null +++ /mail-client/thunderbird/files/musl/thunderbird-38.3.0-xre.patch @@ -0,0 +1,37 @@ +# HG changeset patch +# User Felix Janda +# Date 1423172841 -3600 +# Thu Feb 05 22:47:21 2015 +0100 +# Node ID 48efa200aae98f4b5fced4f1afa4f1b8c8cde9e1 +# Parent 3693f117ad5018927922c92cf5bd9739bc25f394 +Bug 1130710 - xre: Use stdint uint*_t instead of nonstandard __uint*_t. r=bsmedberg + +diff -r 3693f117ad50 -r 48efa200aae9 toolkit/xre/nsSigHandlers.cpp +--- a/mozilla/toolkit/xre/nsSigHandlers.cpp Mon Dec 01 18:50:26 2014 +0100 ++++ b/mozilla/toolkit/xre/nsSigHandlers.cpp Thu Feb 05 22:47:21 2015 +0100 +@@ -165,7 +165,7 @@ + status->__invalid = status->__denorm = status->__zdiv = status->__ovrfl = status->__undfl = + status->__precis = status->__stkflt = status->__errsumm = 0; + +- __uint32_t *mxcsr = &uc->uc_mcontext->__fs.__fpu_mxcsr; ++ uint32_t *mxcsr = &uc->uc_mcontext->__fs.__fpu_mxcsr; + *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */ + *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */ + #endif +@@ -185,13 +185,13 @@ + *sw &= ~FPU_STATUS_FLAGS; + #endif + #if defined(__amd64__) +- __uint16_t *cw = &uc->uc_mcontext.fpregs->cwd; ++ uint16_t *cw = &uc->uc_mcontext.fpregs->cwd; + *cw |= FPU_EXCEPTION_MASK; + +- __uint16_t *sw = &uc->uc_mcontext.fpregs->swd; ++ uint16_t *sw = &uc->uc_mcontext.fpregs->swd; + *sw &= ~FPU_STATUS_FLAGS; + +- __uint32_t *mxcsr = &uc->uc_mcontext.fpregs->mxcsr; ++ uint32_t *mxcsr = &uc->uc_mcontext.fpregs->mxcsr; + *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */ + *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */ + #endif diff --git /mail-client/thunderbird/files/thunderbird-31.7.0-gcc5-1.patch /mail-client/thunderbird/files/thunderbird-31.7.0-gcc5-1.patch new file mode 100644 index 0000000..7723b81 --- /dev/null +++ /mail-client/thunderbird/files/thunderbird-31.7.0-gcc5-1.patch @@ -0,0 +1,242 @@ +Submitted By: Fernando de Oliveira +Date: 2015-05-17 +Initial Package Version: 31.7.0 +Upstream Status: Unknown +Origin: Upstream, self +URL: URL=https://bug1024492.bugzilla.mozilla.org/attachment.cgi?id=8439834&action=diff&context=patch&format=raw&headers=1 +Description: Fix building with gcc5 + +diff -Nur comm-esr31.orig/mozilla/js/src/builtin/TypedObject.cpp comm-esr31/mozilla/js/src/builtin/TypedObject.cpp +--- comm-esr31.orig/mozilla/js/src/builtin/TypedObject.cpp 2015-05-07 15:53:49.000000000 -0300 ++++ comm-esr31/mozilla/js/src/builtin/TypedObject.cpp 2015-05-17 09:38:36.550714030 -0300 +@@ -710,12 +710,12 @@ + contents.append(")"); + RootedAtom stringRepr(cx, contents.finishAtom()); + if (!stringRepr) +- return nullptr; ++ return false; + + // Extract ArrayType.prototype + RootedObject arrayTypePrototype(cx, GetPrototype(cx, arrayTypeGlobal)); + if (!arrayTypePrototype) +- return nullptr; ++ return false; + + // Create the instance of ArrayType + Rooted obj(cx); +@@ -728,7 +728,7 @@ + if (!JSObject::defineProperty(cx, obj, cx->names().length, + UndefinedHandleValue, nullptr, nullptr, + JSPROP_READONLY | JSPROP_PERMANENT)) +- return nullptr; ++ return false; + + args.rval().setObject(*obj); + return true; +@@ -762,7 +762,7 @@ + if (!size.isValid()) { + JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr, + JSMSG_TYPEDOBJECT_TOO_BIG); +- return nullptr; ++ return false; + } + + // Construct a canonical string `new ArrayType().dimension(N)`: +@@ -775,7 +775,7 @@ + contents.append(")"); + RootedAtom stringRepr(cx, contents.finishAtom()); + if (!stringRepr) +- return nullptr; ++ return false; + + // Create the sized type object. + Rooted obj(cx); +@@ -793,7 +793,7 @@ + if (!JSObject::defineProperty(cx, obj, cx->names().length, + lengthVal, nullptr, nullptr, + JSPROP_READONLY | JSPROP_PERMANENT)) +- return nullptr; ++ return false; + + // Add `unsized` property, which is a link from the sized + // array to the unsized array. +@@ -801,7 +801,7 @@ + if (!JSObject::defineProperty(cx, obj, cx->names().unsized, + unsizedTypeDescrValue, nullptr, nullptr, + JSPROP_READONLY | JSPROP_PERMANENT)) +- return nullptr; ++ return false; + + args.rval().setObject(*obj); + return true; +@@ -1253,7 +1253,7 @@ + Rooted proto(cx); + proto = NewObjectWithProto(cx, objProto, nullptr, TenuredObject); + if (!proto) +- return nullptr; ++ return false; + proto->initTypeDescrSlot(*descr); + descr->initReservedSlot(JS_DESCR_SLOT_TYPROTO, ObjectValue(*proto)); + +@@ -1358,14 +1358,14 @@ + #define BINARYDATA_SCALAR_DEFINE(constant_, type_, name_) \ + if (!DefineSimpleTypeDescr(cx, global, module, constant_, \ + cx->names().name_)) \ +- return nullptr; ++ return false; + JS_FOR_EACH_SCALAR_TYPE_REPR(BINARYDATA_SCALAR_DEFINE) + #undef BINARYDATA_SCALAR_DEFINE + + #define BINARYDATA_REFERENCE_DEFINE(constant_, type_, name_) \ + if (!DefineSimpleTypeDescr(cx, global, module, constant_, \ + cx->names().name_)) \ +- return nullptr; ++ return false; + JS_FOR_EACH_REFERENCE_TYPE_REPR(BINARYDATA_REFERENCE_DEFINE) + #undef BINARYDATA_REFERENCE_DEFINE + +@@ -1375,14 +1375,14 @@ + arrayType = DefineMetaTypeDescr( + cx, global, module, TypedObjectModuleObject::ArrayTypePrototype); + if (!arrayType) +- return nullptr; ++ return false; + + RootedValue arrayTypeValue(cx, ObjectValue(*arrayType)); + if (!JSObject::defineProperty(cx, module, cx->names().ArrayType, + arrayTypeValue, + nullptr, nullptr, + JSPROP_READONLY | JSPROP_PERMANENT)) +- return nullptr; ++ return false; + + // StructType. + +@@ -1390,14 +1390,14 @@ + structType = DefineMetaTypeDescr( + cx, global, module, TypedObjectModuleObject::StructTypePrototype); + if (!structType) +- return nullptr; ++ return false; + + RootedValue structTypeValue(cx, ObjectValue(*structType)); + if (!JSObject::defineProperty(cx, module, cx->names().StructType, + structTypeValue, + nullptr, nullptr, + JSPROP_READONLY | JSPROP_PERMANENT)) +- return nullptr; ++ return false; + + // Everything is setup, install module on the global object: + RootedValue moduleValue(cx, ObjectValue(*module)); +@@ -1407,7 +1407,7 @@ + nullptr, nullptr, + 0)) + { +- return nullptr; ++ return false; + } + + return module; +@@ -2466,7 +2466,7 @@ + if (length < 0) { + JS_ReportErrorNumber(cx, js_GetErrorMessage, + nullptr, JSMSG_TYPEDOBJECT_BAD_ARGS); +- return nullptr; ++ return false; + } + Rooted obj(cx, createZeroed(cx, callee, length)); + if (!obj) +diff -Nur comm-esr31.orig/mozilla/js/src/frontend/BytecodeCompiler.cpp comm-esr31/mozilla/js/src/frontend/BytecodeCompiler.cpp +--- comm-esr31.orig/mozilla/js/src/frontend/BytecodeCompiler.cpp 2015-05-07 15:53:49.000000000 -0300 ++++ comm-esr31/mozilla/js/src/frontend/BytecodeCompiler.cpp 2015-05-17 09:39:00.183186652 -0300 +@@ -544,7 +544,7 @@ + + RootedScriptSource sourceObject(cx, CreateScriptSourceObject(cx, options)); + if (!sourceObject) +- return nullptr; ++ return false; + ScriptSource* ss = sourceObject->source(); + + SourceCompressionTask sct(cx); +diff -Nur comm-esr31.orig/mozilla/js/src/vm/ScopeObject.h comm-esr31/mozilla/js/src/vm/ScopeObject.h +--- comm-esr31.orig/mozilla/js/src/vm/ScopeObject.h 2015-05-07 15:53:56.000000000 -0300 ++++ comm-esr31/mozilla/js/src/vm/ScopeObject.h 2015-05-17 09:53:20.202966820 -0300 +@@ -63,21 +63,9 @@ + bool onNamedLambda; + + public: +- StaticScopeIter(ExclusiveContext* cx, JSObject* obj) +- : obj(cx, obj), onNamedLambda(false) +- { +- JS_STATIC_ASSERT(allowGC == CanGC); +- JS_ASSERT_IF(obj, obj->is() || obj->is() || +- obj->is()); +- } ++ StaticScopeIter(ExclusiveContext *cx, JSObject *obj); + +- StaticScopeIter(JSObject* obj) +- : obj((ExclusiveContext*) nullptr, obj), onNamedLambda(false) +- { +- JS_STATIC_ASSERT(allowGC == NoGC); +- JS_ASSERT_IF(obj, obj->is() || obj->is() || +- obj->is()); +- } ++ explicit StaticScopeIter(JSObject *obj); + + bool done() const; + void operator++(int); +diff -Nur comm-esr31.orig/mozilla/js/src/vm/ScopeObject-inl.h comm-esr31/mozilla/js/src/vm/ScopeObject-inl.h +--- comm-esr31.orig/mozilla/js/src/vm/ScopeObject-inl.h 2015-05-07 15:53:56.000000000 -0300 ++++ comm-esr31/mozilla/js/src/vm/ScopeObject-inl.h 2015-05-17 09:51:33.939344362 -0300 +@@ -13,6 +13,26 @@ + + namespace js { + ++template ++inline ++StaticScopeIter::StaticScopeIter(ExclusiveContext *cx, JSObject *obj) ++ : obj(cx, obj), onNamedLambda(false) ++{ ++ JS_STATIC_ASSERT(allowGC == CanGC); ++ JS_ASSERT_IF(obj, obj->is() || obj->is() || ++ obj->is()); ++} ++ ++template ++inline ++StaticScopeIter::StaticScopeIter(JSObject *obj) ++ : obj((ExclusiveContext *) nullptr, obj), onNamedLambda(false) ++{ ++ JS_STATIC_ASSERT(allowGC == NoGC); ++ JS_ASSERT_IF(obj, obj->is() || obj->is() || ++ obj->is()); ++} ++ + inline void + ScopeObject::setAliasedVar(JSContext* cx, ScopeCoordinate sc, PropertyName* name, const Value& v) + { +diff -Naur comm-esr31.orig/mozilla/netwerk/ipc/NeckoParent.cpp porg-build-2015.05.17-10h30m39s/comm-esr31/mozilla/netwerk/ipc/NeckoParent.cpp +--- comm-esr31.orig/mozilla/netwerk/ipc/NeckoParent.cpp 2015-05-07 15:53:46.000000000 -0300 ++++ porg-build-2015.05.17-10h30m39s/comm-esr31/mozilla/netwerk/ipc/NeckoParent.cpp 2015-05-17 10:51:24.013181648 -0300 +@@ -359,7 +359,7 @@ + RtspChannelParent* p = static_cast(aActor); + return p->Init(aConnectArgs); + #else +- return nullptr; ++ return false; + #endif + } + +diff -Naur comm-esr31.orig/mozilla/js/xpconnect/wrappers/XrayWrapper.cpp comm-esr31/mozilla/js/xpconnect/wrappers/XrayWrapper.cpp +--- comm-esr31.orig/mozilla/js/xpconnect/wrappers/XrayWrapper.cpp 2015-05-07 15:53:42.000000000 -0300 ++++ comm-esr31/mozilla/js/xpconnect/wrappers/XrayWrapper.cpp 2015-05-17 11:22:59.442942469 -0300 +@@ -351,7 +351,7 @@ + { + JSAutoCompartment ac(cx, target); + if (!JS_GetClassPrototype(cx, key, protop)) +- return nullptr; ++ return false; + } + return JS_WrapObject(cx, protop); + } diff --git /mail-client/thunderbird/files/thunderbird-gentoo-default-prefs-1.js-1 /mail-client/thunderbird/files/thunderbird-gentoo-default-prefs-1.js-1 new file mode 100644 index 0000000..97c5fd0 --- /dev/null +++ /mail-client/thunderbird/files/thunderbird-gentoo-default-prefs-1.js-1 @@ -0,0 +1,9 @@ +pref("app.update.enabled", false); +pref("app.update.autoInstallEnabled", false); +pref("browser.display.use_system_colors", true); +pref("intl.locale.matchOS", true); +pref("general.useragent.locale", "chrome://global/locale/intl.properties"); +pref("mail.shell.checkDefaultClient", false); +# Do not switch to Smart Folders after upgrade to 3.0b4 +pref("mail.folder.views.version", "1"); +pref("extensions.autoDisableScopes", 0); diff --git /mail-client/thunderbird/metadata.xml /mail-client/thunderbird/metadata.xml new file mode 100644 index 0000000..71406ae --- /dev/null +++ /mail-client/thunderbird/metadata.xml @@ -0,0 +1,28 @@ + + + +mozilla + + Disable official Thunderbird branding (icons, name) which + are not binary-redistributable according to upstream. + Enable encryption support with enigmail + Enable Mozilla's DOM inspector + Enable app-global calendar support + (note 38.0 and above bundles calendar support when this flag is off) + Fine-tune custom compiler optimizations + (-Os, -O0, -O1, -O2, -O3) + Enable or disable jemalloc3 (forced-on when supported prior to 38.0) + Use gstreamer:0.10 instead of gstreamer:1 for media support + Use the system-wide x11-libs/cairo + instead of bundled. + Use the system-wide dev-libs/icu + instead of bundled. + Use the system-wide media-libs/libjpeg-turbo + instead of bundled. + Use the system-wide media-libs/libvpx + instead of bundled. + Use the system-wide dev-db/sqlite + installation with secure-delete enabled + Remove the software development kit and headers + + diff --git /mail-client/thunderbird/thunderbird-38.3.0-r99.ebuild /mail-client/thunderbird/thunderbird-38.3.0-r99.ebuild new file mode 100644 index 0000000..69715ac --- /dev/null +++ /mail-client/thunderbird/thunderbird-38.3.0-r99.ebuild @@ -0,0 +1,398 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +WANT_AUTOCONF="2.1" +MOZ_ESR="" +MOZ_LIGHTNING_VER="4.0.2" +MOZ_LIGHTNING_GDATA_VER="1.9" + +# This list can be updated using scripts/get_langs.sh from the mozilla overlay +MOZ_LANGS=(ar ast be bg bn-BD br ca cs cy da de el en en-GB en-US es-AR +es-ES et eu fi fr fy-NL ga-IE gd gl he hr hsb hu hy-AM id is it ja ko lt +nb-NO nl nn-NO pa-IN pl pt-BR pt-PT rm ro ru si sk sl sq sr sv-SE ta-LK tr +uk vi zh-CN zh-TW ) + +# Convert the ebuild version to the upstream mozilla version, used by mozlinguas +MOZ_PV="${PV/_beta/b}" +# ESR releases have slightly version numbers +if [[ ${MOZ_ESR} == 1 ]]; then + MOZ_PV="${MOZ_PV}esr" +fi +MOZ_P="${PN}-${MOZ_PV}" + +# Enigmail version +EMVER="1.8.2" + +# Patches +PATCH="thunderbird-38.0-patches-0.1" +PATCHFF="firefox-38.0-patches-04" + +MOZ_HTTP_URI="http://ftp.mozilla.org/pub/${PN}/releases" + +MOZCONFIG_OPTIONAL_JIT="enabled" +inherit flag-o-matic toolchain-funcs mozconfig-v6.38 makeedit multilib autotools pax-utils check-reqs nsplugins mozlinguas + +DESCRIPTION="Thunderbird Mail Client" +HOMEPAGE="http://www.mozilla.com/en-US/thunderbird/" + +KEYWORDS="amd64 ~arm ~ppc x86" +SLOT="0" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="bindist crypt hardened ldap lightning +minimal mozdom selinux" +RESTRICT="!bindist? ( bindist )" + +PATCH_URIS=( https://dev.gentoo.org/~{anarchy,axs,polynomial-c}/mozilla/patchsets/{${PATCH},${PATCHFF}}.tar.xz ) +SRC_URI="${SRC_URI} + ${MOZ_HTTP_URI}/${MOZ_PV}/source/${MOZ_P}.source.tar.bz2 + ${MOZ_HTTP_URI/${PN}/calendar/lightning}/${MOZ_LIGHTNING_VER}/linux/lightning.xpi -> lightning-${MOZ_LIGHTNING_VER}.xpi + lightning? ( https://dev.gentoo.org/~axs/distfiles/gdata-provider-${MOZ_LIGHTNING_GDATA_VER}.tar.xz ) + crypt? ( http://www.enigmail.net/download/source/enigmail-${EMVER}.tar.gz ) + ${PATCH_URIS[@]}" + +ASM_DEPEND=">=dev-lang/yasm-1.1" + +CDEPEND=" + >=dev-libs/nss-3.19.2 + >=dev-libs/nspr-4.10.8 + !x11-plugins/enigmail + crypt? ( || ( + ( >=app-crypt/gnupg-2.1.8 + || ( + app-crypt/pinentry[gtk] + app-crypt/pinentry[qt4] + ) + ) + =app-crypt/gnupg-1.4* + ) )" + +DEPEND="${CDEPEND} + amd64? ( ${ASM_DEPEND} + virtual/opengl ) + x86? ( ${ASM_DEPEND} + virtual/opengl )" + +RDEPEND="${CDEPEND} + selinux? ( sec-policy/selinux-thunderbird ) +" + +if [[ ${PV} =~ beta ]]; then + S="${WORKDIR}/comm-beta" +else + S="${WORKDIR}/comm-esr${PV%%.*}" +fi + +BUILD_OBJ_DIR="${S}/tbird" + +pkg_setup() { + moz_pkgsetup + + export MOZILLA_DIR="${S}/mozilla" + + if ! use bindist ; then + elog "You are enabling official branding. You may not redistribute this build" + elog "to any users on your network or the internet. Doing so puts yourself into" + elog "a legal problem with Mozilla Foundation" + elog "You can disable it by emerging ${PN} _with_ the bindist USE-flag" + elog + fi +} + +pkg_pretend() { + # Ensure we have enough disk space to compile + CHECKREQS_DISK_BUILD="4G" + check-reqs_pkg_setup + + if use jit && [[ -n ${PROFILE_IS_HARDENED} ]]; then + ewarn "You are emerging this package on a hardened profile with USE=jit enabled." + ewarn "This is horribly insecure as it disables all PAGEEXEC restrictions." + ewarn "Please ensure you know what you are doing. If you don't, please consider" + ewarn "emerging the package with USE=-jit" + fi +} + +src_unpack() { + unpack ${A} + + # Unpack language packs + mozlinguas_src_unpack + + xpi_unpack lightning-${MOZ_LIGHTNING_VER}.xpi + # this version of gdata-provider is a .tar.xz , no xpi needed + #use lightning && xpi_unpack gdata-provider-${MOZ_LIGHTNING_GDATA_VER}.xpi +} + +src_prepare() { + # Apply our Thunderbird patchset + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/thunderbird" + + # Apply our patchset from firefox to thunderbird as well + pushd "${S}"/mozilla &>/dev/null || die + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/firefox" + popd &>/dev/null || die + + ## patches for building with musl libc + + ## backports from firefox + + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-crashreporter.patch # fixed? + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-fix-fts-header.patch # bug 1139173, fixed in 40.0.a1 + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-fix-u_int64_t.patch # bug 1130164, fixed in 39.0a1 + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-profiler-gettid.patch # fixed? + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-sandbox-cdefs.patch # bug 1157864, fixed in 42.0a1 + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-updater.patch # bug 1157850, not fixed as of today + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-basename.patch # bug 1041962, not fixed as of today + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-fix-sysctl-headers.patch # bug 1130175, fixed in 39.0a1 + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-fix-xpcom-blocksize.patch # bug 1152176, fixed in 41.0a1 + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-fix-cdefs-header.patch # bug 1151202, fixed in 40.0a1 + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-xre.patch # bug 1130710, fixed in 40.0a1 + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-fix-netwerk.patch # from alpine + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-fix-bug-1130709.patch # bug 1130709, fixed in 40.0a1 + epatch "${FILESDIR}"/musl/thunderbird-38.3.0-queue.patch # bug 1152185, fixed in 41.0a1 | works, but not sure if needed + +# epatch "${FILESDIR}"/musl/thunderbird-38.3.0-fix-bug-1130175.patch # cannot be applied due to major changes in mozilla/media/mtransport/third_party/nICEr/src/stun/addrs.c + + ## end of musl patching + + # Ensure that are plugins dir is enabled as default + sed -i -e "s:/usr/lib/mozilla/plugins:/usr/lib/nsbrowser/plugins:" \ + "${S}"/mozilla/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 32bit!" + sed -i -e "s:/usr/lib64/mozilla/plugins:/usr/lib64/nsbrowser/plugins:" \ + "${S}"/mozilla/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 64bit!" + + # Don't exit with error when some libs are missing which we have in + # system. + sed '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' \ + -i "${S}"/mail/installer/Makefile.in || die + + # Don't error out when there's no files to be removed: + sed 's@\(xargs rm\)$@\1 -f@' \ + -i "${S}"/mozilla/toolkit/mozapps/installer/packager.mk || die + + # Shell scripts sometimes contain DOS line endings; bug 391889 + grep -rlZ --include="*.sh" $'\r$' . | + while read -r -d $'\0' file ; do + einfo edos2unix "${file}" + edos2unix "${file}" + done + + # Allow user to apply any additional patches without modifing ebuild + epatch_user + + # Confirm the version of lightning being grabbed for langpacks is the same + # as that used in thunderbird + local THIS_MOZ_LIGHTNING_VER=$(python "${S}"/calendar/lightning/build/makeversion.py ${PV}) + if [[ ${MOZ_LIGHTNING_VER} != ${THIS_MOZ_LIGHTNING_VER} ]]; then + eqawarn "The version of lightning used for localization differs from the version" + eqawarn "in thunderbird. Please update MOZ_LIGHTNING_VER in the ebuild from ${MOZ_LIGHTNING_VER}" + eqawarn "to ${THIS_MOZ_LIGHTNING_VER}" + fi + + eautoreconf + # Ensure we run eautoreconf in mozilla to regenerate configure + cd "${S}"/mozilla || die + eautoconf + cd "${S}"/mozilla/js/src || die + eautoconf +} + +src_configure() { + declare MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + MEXTENSIONS="default" + + #################################### + # + # mozconfig, CFLAGS and CXXFLAGS setup + # + #################################### + + mozconfig_init + mozconfig_config + + # It doesn't compile on alpha without this LDFLAGS + use alpha && append-ldflags "-Wl,--no-relax" + + # Add full relro support for hardened + use hardened && append-ldflags "-Wl,-z,relro,-z,now" + + mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}" + mozconfig_annotate '' --disable-mailnews + mozconfig_annotate '' --enable-calendar + + # Other tb-specific settings + mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME} + mozconfig_annotate '' --with-user-appdir=.thunderbird + + mozconfig_use_enable ldap + + mozlinguas_mozconfig + + # Bug #72667 + if use mozdom; then + MEXTENSIONS="${MEXTENSIONS},inspector" + fi + + # Use an objdir to keep things organized. + echo "mk_add_options MOZ_OBJDIR=${BUILD_OBJ_DIR}" >> "${S}"/.mozconfig + + # Finalize and report settings + mozconfig_final + + #################################### + # + # Configure and build + # + #################################### + + # Disable no-print-directory + MAKEOPTS=${MAKEOPTS/--no-print-directory/} + + if [[ $(gcc-major-version) -lt 4 ]]; then + append-cxxflags -fno-stack-protector + fi + + if use crypt; then + pushd "${WORKDIR}"/enigmail &>/dev/null ||die + econf + popd &>/dev/null ||die + fi +} + +src_compile() { + mkdir -p "${BUILD_OBJ_DIR}" && cd "${BUILD_OBJ_DIR}" || die + + CC="$(tc-getCC)" CXX="$(tc-getCXX)" LD="$(tc-getLD)" \ + MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX%/}/bin/bash}" \ + emake -f "${S}"/client.mk + + # Only build enigmail extension if crypt enabled. + if use crypt ; then + einfo "Building enigmail" + pushd "${WORKDIR}"/enigmail &>/dev/null || die + emake -j1 + emake -j1 xpi + popd &>/dev/null || die + fi +} + +src_install() { + declare MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + DICTPATH="\"${EPREFIX}/usr/share/myspell\"" + + declare emid + cd "${BUILD_OBJ_DIR}" || die + + # Copy our preference before omnijar is created. + cp "${FILESDIR}"/thunderbird-gentoo-default-prefs-1.js-1 \ + "${BUILD_OBJ_DIR}/dist/bin/defaults/pref/all-gentoo.js" \ + || die + + # Set default path to search for dictionaries. + echo "pref(\"spellchecker.dictionary_path\", ${DICTPATH});" \ + >> "${BUILD_OBJ_DIR}/dist/bin/defaults/pref/all-gentoo.js" \ + || die + + # Pax mark xpcshell for hardened support, only used for startupcache creation. + pax-mark m "${BUILD_OBJ_DIR}"/mozilla/dist/bin/xpcshell + + MOZ_MAKE_FLAGS="${MAKEOPTS}" \ + emake DESTDIR="${D}" install + + # Install language packs + mozlinguas_src_install + + if ! use bindist; then + newicon "${S}"/other-licenses/branding/thunderbird/content/icon48.png thunderbird-icon.png + domenu "${FILESDIR}"/icon/${PN}.desktop + else + newicon "${S}"/mail/branding/aurora/content/icon48.png thunderbird-icon-unbranded.png + newmenu "${FILESDIR}"/icon/${PN}-unbranded.desktop \ + ${PN}.desktop + + sed -i -e "s:Mozilla\ Thunderbird:EarlyBird:g" \ + "${ED}"/usr/share/applications/${PN}.desktop + fi + + local emid + # stage extra locales for lightning and install over existing + mozlinguas_xpistage_langpacks "${BUILD_OBJ_DIR}"/dist/xpi-stage/lightning \ + "${WORKDIR}"/lightning-${MOZ_LIGHTNING_VER} lightning calendar + + emid='{e2fda1a4-762b-4020-b5ad-a41df1933103}' + mkdir -p "${T}/${emid}" || die + cp -RLp -t "${T}/${emid}" "${BUILD_OBJ_DIR}"/dist/xpi-stage/lightning/* || die + insinto ${MOZILLA_FIVE_HOME}/distribution/extensions + doins -r "${T}/${emid}" + + if use lightning; then + # move lightning out of distribution/extensions and into extensions for app-global install + mv "${ED}"/${MOZILLA_FIVE_HOME}/{distribution,}/extensions/${emid} || die + + # stage extra locales for gdata-provider and install app-global + mozlinguas_xpistage_langpacks "${BUILD_OBJ_DIR}"/dist/xpi-stage/gdata-provider \ + "${WORKDIR}"/gdata-provider-${MOZ_LIGHTNING_GDATA_VER} + emid='{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}' + mkdir -p "${T}/${emid}" || die + cp -RLp -t "${T}/${emid}" "${BUILD_OBJ_DIR}"/dist/xpi-stage/gdata-provider/* || die + insinto ${MOZILLA_FIVE_HOME}/extensions + doins -r "${T}/${emid}" + fi + + if use crypt ; then + local enigmail_xpipath="${WORKDIR}/enigmail/build" + cd "${T}" || die + unzip "${enigmail_xpipath}"/enigmail*.xpi install.rdf || die + emid=$(sed -n '//!d; s/.*\({.*}\).*/\1/; p; q' install.rdf) + + dodir ${MOZILLA_FIVE_HOME}/extensions/${emid} || die + cd "${ED}"${MOZILLA_FIVE_HOME}/extensions/${emid} || die + unzip "${enigmail_xpipath}"/enigmail*.xpi || die + fi + + # Required in order for jit to work on hardened, for mozilla-31 and above + use jit && pax-mark pm "${ED}"${MOZILLA_FIVE_HOME}/{thunderbird,thunderbird-bin} + + # Plugin-container needs to be pax-marked for hardened to ensure plugins such as flash + # continue to work as expected. + pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/plugin-container + + if use minimal; then + rm -r "${ED}"/usr/include "${ED}"${MOZILLA_FIVE_HOME}/{idl,include,lib,sdk} || \ + die "Failed to remove sdk and headers" + fi + + # workaround to make thunderbird find libmozalloc.so on musl + into / + echo "LDPATH=${MOZILLA_FIVE_HOME}" > "${T}"/20thunderbird + doenvd "${T}"/20thunderbird || die + +} + +pkg_postinst() { + if use crypt; then + local peimpl=$(eselect --brief --colour=no pinentry show) + case "${peimpl}" in + *gtk*|*qt*) ;; + *) ewarn "The pinentry front-end currently selected is not one supported by thunderbird." + ewarn "You may be prompted for your password in an inaccessible shell!!" + ewarn "Please use 'eselect pinentry' to select either the gtk or qt front-end" + ;; + esac + fi + elog + elog "If you experience problems with plugins please issue the" + elog "following command : rm \${HOME}/.thunderbird/*/extensions.sqlite ," + elog "then restart thunderbird" + if ! use lightning; then + elog + elog "If calendar fails to show up in extensions please open config editor" + elog "and set extensions.lastAppVersion to 38.0.0 to force a reload. If this" + elog "fails to show the calendar extension after restarting with above change" + elog "please file a bug report." + fi +}