From fd8253781be5b3e5bf47275a917f5f9d0eeb2aa2 Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Thu, 3 Jun 2021 20:08:54 +0300 Subject: [PATCH 1/6] app-text/mdbook: add mdbook Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Alfred Wingate --- app-text/mdbook/Manifest | 208 +++++++++++++++++++++++ app-text/mdbook/mdbook-0.4.9.ebuild | 247 ++++++++++++++++++++++++++++ app-text/mdbook/metadata.xml | 11 ++ 3 files changed, 466 insertions(+) create mode 100644 app-text/mdbook/Manifest create mode 100644 app-text/mdbook/mdbook-0.4.9.ebuild create mode 100644 app-text/mdbook/metadata.xml diff --git a/app-text/mdbook/Manifest b/app-text/mdbook/Manifest new file mode 100644 index 0000000..31d22cd --- /dev/null +++ b/app-text/mdbook/Manifest @@ -0,0 +1,208 @@ +DIST aho-corasick-0.7.18.crate 112923 BLAKE2B 4f6947d1aacf89ccfab0592cdc55fa61ef09cea38231d3f758765dbce328a810c0b588be4ba96e81d64955379ee005722d22a7aec39caea6e72342245d7ca34f SHA512 7a23b16231a90d23ee60ad4c81bc225410599a4560d33d3a203138fc540c39cf1000100fed3aed40dcc371c3635656a3792545dca5dd1aefbde00d8774eebd00 +DIST ammonia-3.1.1.crate 35514 BLAKE2B 4cc4f9c50488264932347e3d8f710731e4ef43bd4e6b27fa5307b196f1142e0725c9f76595e430d2c8ed0880868d9e4fac226f3026e71c15de67c46b1e00cc3e SHA512 fae5b33ac0f6bc72acb51cf6ea87df55f308b798830342f92a24ed35a51a0eb7081a7fd14df0fedb30f4f516bd30de00d6059c246ab200a483fb8b4a68a4fac5 +DIST ansi_term-0.11.0.crate 17087 BLAKE2B 9bd35c045a01ce4c6c4a5db1b4f15e9412bb97426eec19d4421dffbec633de8d13452c13c1dc1b30998690b78d7ed38311aca700087f13a81f66bd1d5d7300c4 SHA512 a637466a380748f939b3af090b8c0333f35581925bc03f4dda9b3f95d338836403cf5487ae3af9ff68f8245a837f8ab061aabe57a126a6a2c20f2e972c77d1fa +DIST anyhow-1.0.40.crate 34534 BLAKE2B 79a3731153f8e3ace906b9a360521147fd055f7401a99ea2373501ade7e49ecdb280dd59b6a3b9b2f88e90857302e71f772c767e62cb702e32c8343fd4b0f741 SHA512 5efc7347a7fa72abce9a8b3b76649abb00d73c16c5125aa4b6faaa7040eb5138d7d9470b66c186825c9651272f5c359578503d0866ce7242ea7ca9dc05087165 +DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9 +DIST autocfg-1.0.1.crate 12908 BLAKE2B 40c53cab298e4f26634c3acff3ece6a3371188d91dbf377ed664eabedcde20536edaa93daf406618f37edde019f049a6e7b9a47f627344587dbd126bee2b5e3a SHA512 630b348acb98b012e97804e6325d03c89abc22f2157762c59144c04e6c733daf550bdc7f0fe0b9f3b50e15dae8c1c3c4bdfce3d805b02f0fc987311f5332419b +DIST base64-0.12.3.crate 57545 BLAKE2B 5ff7e888f6b750ddfe302438d52766f5d6281b8c8ce73827a9ad1d64641704414649e6c1e02bce6abbb2858b9f859fce54a0e0e793549a474c4b49a724c8663f SHA512 ec6ad7cbd4980a12189690e9e24ec1db3c3def9e93672a415808904f68db2b5d8c5740e44207b2c629db5dd5d6ba6bd9dd342dd82367da6198e0313d86e54f02 +DIST base64-0.13.0.crate 62070 BLAKE2B b957f65cdb1e28baeca0cefc92fa98be797409b7dabd15e0e88db6cdfb89779b662cba9f2270fbf3b7b66948fdc46c118b8040a78ab72049c48a928fa802bee0 SHA512 991a72999839daa232f508c5b24e7d3225e8a26db8d1d0e747881b115af9e408b92374e163b31e0b0d324c1c2e57e8e38d66861b61eb0a1dba87bb5871940151 +DIST bit-set-0.5.2.crate 14093 BLAKE2B 06d41a217438d9a00f8e57e592d12364b671d082f21a4d174673bc820dde28ef5ce02e782002d03c9311f71b0130eeeca7cfacbc4c1b27475069479163643ef3 SHA512 9709f35c7e69b84eed61f73da99ffe0693d1d0fa5fb94d13759cfbbb9dd4b0bb27628c3200e4b29ef29cdb0aede5fd3d7ddf663012b2c5946975bc169efbac34 +DIST bit-vec-0.6.3.crate 19927 BLAKE2B f5bd3bb9c87fdf3b206739b74df20cab50a1a45af3a58b2642a5a061c26207884be58ef8369a3cd06dfd3615bff0ce15915fdd4b6b6f03facc4a0f86c0b7e910 SHA512 b4b4a82c80d0ff13527ae4fff449ac9c1c7bc519c013af6ea3428348e0e5b9306b725c0a13a42d7d9dcf0f895a9eee0c63695a2503eb7fd2200083c9ea3a9aa8 +DIST bitflags-1.2.1.crate 16745 BLAKE2B 0fa6d3ce44aad7616d5cd02aad8c1d0b0fed4022650eb43067c4a72e6fc88da05442674fa51826e4858a47c9de233e1ba2229820af094197cd11bb416ceffb2b SHA512 ad89b3798845e23737a620bba581c2ff1ff3e15bac12555c765e201d2c0b90ecea0cdbc5b5b1a3fa9858c385e8e041f8226f5acfae5bbbe9925643fff2bf3f0b +DIST block-buffer-0.7.3.crate 7179 BLAKE2B 549e8532358f9a77fdfbd5ef7a06d60f20f034fcf69072757811cb4a95f5cee5589bebd40fe87af36127254ec42ef3240cc7542828085f590fb774faab8f0e21 SHA512 74c8b89777a006bd72511b32df94f8bd78e2b53c30d85d39ea3c52acf199c357140fb6181f7f7ab5e30dd80d37181582cad740c95b89328a7a4b0f84f77ad6bf +DIST block-buffer-0.9.0.crate 7108 BLAKE2B 42e99ec46c6e43d5f85e8d6d0a8fcef7175c97828758c93e55505c0e18e2646ae77bf264076041bf682532e28268a4978dd9c822c0475347ee3d29c5df2601fb SHA512 2d0f8908f59d4b1cccd1fbca0c1fa3cc4b224f09549669b28a16af5acfd4369b66851e9be8d65e1df71be998fbc42fc130ad32b71e035d6055724e8fa31fbf98 +DIST block-padding-0.1.5.crate 7342 BLAKE2B 876421fa89251d011a455163baa49e0931e0692ed928fad71357fc93b87493eeab4cfcf8fc4aa94638a90a8dce8ec1ad95e9ba91da9557008e5fc19c1f618ab4 SHA512 acf5369cdae38b6b1a5c1561a9df18b8a39c8fd434fa50c49a8f73d2654a835269b7b22876354c903514c49c77aa860c68cd84d3c1efcb36bdfa8b01af300a9a +DIST byte-tools-0.3.1.crate 5526 BLAKE2B e87163b1f2abde9c6ad5002c37b21308a98a879dc7af14059839be7b5a019d2487ef03867f3f5cd436b7081cb78a930abce79b5cce23eb95cc60e05067e1b1df SHA512 18e0f248a1e9780706e3a184d63558f03f30002646abc6d46ef49db9d5f6768af3d24d210b688aa4ad33d41248429e4df46bc3926f27851f90c92d260e5c4baa +DIST byteorder-1.4.3.crate 22512 BLAKE2B d39c546ba7346df315297fc53da4bfc77ecb1f38567ddb788549ee31cae2719a8bc0b7d1f1705abb3cff033aa57af004987d90748f5a31765273b3223a011c0d SHA512 8c8000eb8ecf40351c9ce36a3a8acd7a02f81786d1b11aab85adfeffa0f2267ed74df29b2ca5d1d38128484d1d3cad2b673aa0d0441dcd0620dfd3934bb888fa +DIST bytes-0.5.6.crate 46291 BLAKE2B 6d33ab47d04f2e469db2add31db118f95cad53002be7969738923d62a4fe3605ccbe9fbcae6d8741310c543625e80d9adac7d9e9fed01b71cb3943ddd015d920 SHA512 a1caa1f58754f4d2e54b8df8d0ca0083ee5282f5e4d3bb5b1735022933dd2e66fb3f39c7a82216bf7a7e29591695c2e10c8b7144c83ac598e34193f2425a32cc +DIST bytes-1.0.1.crate 48142 BLAKE2B 3ffe07c5429d7d2df821c04325b8dc84b343c634b4699e9c08b07181e741c06233a0501d987b95f513be57ac169537bd0812defd118305e0648ef41f6802d19a SHA512 885d3229e51c0deffe06824e81e8a016e3244106e7ed382a721a938cd2e69fcad7f5e757f95cb07ee1be83de04fcf98f9774f8f2e07aaa9a1ff068eaabf2fe87 +DIST cfg-if-0.1.10.crate 7933 BLAKE2B 063a96ed176f34f788666b40adc483d147fc011dee941ab60569ddd0e57502b5dd06ed71090f4e14ce005d06e240500a286f74652615e9d068fba649610d8cf8 SHA512 9d22616bfb4a75770a828a0a3cddac6787297a5fdc53eb17e25811cc94de717f2de8bd66d53c5d65ba1c83d8892aefee5ae758cf56a1ef0a0c3120f70b244339 +DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff +DIST chrono-0.4.19.crate 155663 BLAKE2B c92c273fb6475bbb2546dfb75eaa23321bc8f9a5fa8a7c652f527649b96ff8718fa932f52b500b02a4acae7837df5bdb14f69cb821d4962be2790dbd1d023a54 SHA512 a119349bfc2243a249f1d18b1ae548a04b30fecb75913a56f26d1ff8c0eb53097a2674d9141e2094018191cbbc1620843fbddaf52999824e077c1157f0907980 +DIST clap-2.33.3.crate 201925 BLAKE2B bec9c866481c5b3fddeb314f68af9bce38fc421e42816182de3209e8ea3447b72cf033e6251eea27fe974eff8085b7d98cdd2911b5cc0ec6b4bf4c750deb8a25 SHA512 3eb0fd648e2e3f9e5ff69a5e6cf0d867304fe18523accd036f28a86de368e4774088a6936c108ccc045092c539fe7f7494ea96420ebf6b4bec16880cea84bedf +DIST cpufeatures-0.1.1.crate 9863 BLAKE2B ce6ae66f4f855403cdffd92a0ffc3b831e9a53e61471e92ea34dd2feb02d6a9eeee547f0001fefdbe7486df724d36a565fb7c1118f1178a4a041fcfcc4973114 SHA512 6b4e0ef00673cf5af54cb1bb576e51447882d162ccfb3d62d0a6560c4759f36611db2aa52e8bd66f85c5cfdbb7e85ad75ecb52ff166bfb10741823a517da51f7 +DIST ctor-0.1.20.crate 9328 BLAKE2B bc2f4ce53f6b7d6a2fb441317a3f91b8852c541261f95f0b7d12adb35ec1c943810242ce71e514445479c5d225b735cd50fa4dfb514e6b121be753555ab3c30c SHA512 877f4663f8079a368d198a3351e98551c6d8123dd5e53b812529b77b09f1c08296e6df817d7429e4c70a73a6203fd98bce5ec2ce7b09baabe4f348bd54a9c0dd +DIST difference-2.0.0.crate 147616 BLAKE2B d720202ba8d73fb9b3cc6a982208e4fbe22eda4b3e296f4238a7b2d8ed0339827ca5a3d93a983396901614a9eabe36a0baf55ecc5f55075ebf7fa1e4c0699eb2 SHA512 cc9956757770ecf237d8f46abef25ce219193c877be6cf83163e87c494956cca3202951ac01bba0728e7202fcde2261009c1b4599f389cf979858f25936a5482 +DIST digest-0.8.1.crate 9449 BLAKE2B a610eb0144fdd49dbd846a86e88781b69ccb6a4f918b09fb4562ee9e3d535d12a1e499e36e5eb894d1d81f7a06ca00296b3aa35063f434fdcf22ff202890650c SHA512 186c3ddc01fefff6a134ea0be633a9fe8067b8db34f31e9991069e7a9b82ed595a1105283a87e3021af2337ad332faf1b85a6bb513a4482df7d24e3e7a5ba055 +DIST digest-0.9.0.crate 13247 BLAKE2B c5f2fa8a5bc12021d99ea63f08fa8c8b5b3353d90cf9d58ba84252b3f81b88b52f28c15c24c61fcee44f7d547a0bad11def7fa8f4616d070db163e48f89ab64b SHA512 8637a322c429f51ecb0fa4c3b58fabef01368c1a093492fad65f48eeeec2366fd1b7876e6e47723e089ec5ce11f881bfe4dcebdc605811252b797db027746a45 +DIST dtoa-0.4.8.crate 16175 BLAKE2B 5fff15e66c2edeb9eb9da89c66389b3a9bbb891d75afc3bb7da4dcbe9cad9e50af318cc8cc01cc7e56730763e8ea8ceb33b9447d1a7fa52a8d0f0d2060a97522 SHA512 fe1701ba2c40988b92f5f4ef78a8c81718b140ff8ca2d04023b09a89440e6ddb53ef36d1ebd9dd3e948428b361ed6611bd24ec1a31b5010c220c555e1f0bf6b8 +DIST either-1.6.1.crate 13641 BLAKE2B e5f40c40a5edb6dcb07a10bf79183cbe42438f1f70f3932dce72f6f6e91f75f24d17d82bc447507def4dad4345ffc9dd9162dde778afb253bdb1218e91887949 SHA512 4bfe56920e30cbc8eb4f90162db618f7dca653b42db35ab6a7045d3fd9a24ceb1778b1f79613850bdb1a87ad3794fa0d73015e46c48d513f368d8c3776fc9ddf +DIST elasticlunr-rs-2.3.11.crate 93003 BLAKE2B 1630d8a01e2f1717df9f8350068ca0268cdf66354346ac33dc24cf053ebefce6c71229db4c09e8dbfbfd6aa949200305581d0ce071066facc28a19242cd07682 SHA512 5179f247621e63cff039ff9f68de68659eb5a9e53d3815edea102973e0cce8e936183d843aeadb72fc069c2959d7fdfe7f5acfc6aad53858208dce68a715eabc +DIST env_logger-0.7.1.crate 32281 BLAKE2B 6f1894c64f301ca4b687270c911dbe230f674662aa0561b97c4d2537886e404664b5773d4e223e2018047c222a951232c3cb52ec5bddbfb6665e34c3e7ea52f5 SHA512 604060d2ee83ab337a2d20d6784d1b7541534d2fd9e1662fc5c709fa681672a9db5e34d00face864b56ae321962e644ebe29fbb6d68a0d556419cf5d71c6149f +DIST fake-simd-0.1.2.crate 5398 BLAKE2B 40437b18ca7b77258577f518232dcf67e2bf09b64234dc3f02b9eba0c5c1fede8f8d1dc7cbc112ce80e4f0bf317387d1b8046d41a4f83a7c54981fd2b71fc8e2 SHA512 d57242c54ea3283185eaecbf8d96a4c9decbada3ae3aceb516a79710be9bf038a6e06a29b9ba4ebcd41b8f42943a3024a983ea23e36b17edc445a8c4980f2893 +DIST filetime-0.2.14.crate 14358 BLAKE2B 7d50e71b5a556bc24a6bcf737ec07f185c6d6a2ba2717d91aaba71ec15d1981c47dd6010e5a4278f8996e05bd49d04f3481f0b9e3156a8ad1da1cf39a84796d6 SHA512 f2e6e41b8b705c510e1f1932451ab8a0acc6a4f84a7a21880c7e69639a6aace7c5ed4f694ebf47d04ae6ff227f8d6c6733f2c4bcb953088531dd91b37262e45b +DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334 +DIST form_urlencoded-1.0.1.crate 8773 BLAKE2B e2d2224dbd85d053343aea29ef1bd540fb8be12fd600289e9c048e3b74bfb009d0770f8296556309ef756086f22feec4713dfed1006e1101075c8897be5471cc SHA512 3ab371c223561a27ffbd35cf648ef4a9145d47bba9d71900a7c54cfc2f089175e9361f6352331a9a7fa018923b15e7a3553c8f9ff9fae80e1626e641a5faff68 +DIST fsevent-0.4.0.crate 7292 BLAKE2B e55fa22bca32165c17ab1cf623311de85d1c1cd78f89fcc016babfa3557658352c17e1fd9a2fa64c753b0073a96361461662c4583f780cd7195ffcaa254da0ce SHA512 98d5e6998e3ae0cf3e0f383aa1e8f7fadd9b75154753168da4f6b87cc9a37b8830e7bed4b2169993ddf49646c9d47aa022d6af8a8a66370e7fc533932e70855f +DIST fsevent-sys-2.0.1.crate 3984 BLAKE2B abcecda1e75e47b735f8cf638c958bcf0862d121b046b7b70b4ab6bd1913398967a1019422a0796398fc4f759cc2d326f656c003d9f2f47b63c884650d8513bd SHA512 4c7f96586c4564f804390c3ad22388456a138bef1902a5985463515ca9b56976fc14c993f08ac188897c449b2d2843890c2357398eb3ef5eb064326881e7167d +DIST fuchsia-zircon-0.3.3.crate 22565 BLAKE2B a4dac3457036efab8f79fe5d5b4545e4091e994d3dc63188f71fafbcc28bf98ef359dcd20add30ac1d990ab2e66159723302fb66697349c65fab0aa58d54535e SHA512 a43ee59452d49742111e506d6bdd8b8399a3a646e08648e25292864d7f71460c1dd1f2d77b8efa8ed09ac21fa4ff0442a2709f16d8833a3849bde0c388d83a93 +DIST fuchsia-zircon-sys-0.3.3.crate 7191 BLAKE2B 530bb5d475ac828843af248c6bbd24ca3b5dd8118c8884ccc6d7261818cff1c79038077114ffa04bc73a078177527824c4d9d20a9b022e4057afee3330258cff SHA512 978b7e8795a5877a68409ed3a1d7b4246263f8e7e7ce9ba8a022643be98f58f329cc1c234717df80a509db849da4394f39e90a8e2a6f56f8fa8dd3c07e7d4386 +DIST futf-0.1.4.crate 11341 BLAKE2B 804cdb89803ecba0371ba045d3af3f4c4cf219e31f0cfff3ab96720ef39cbde14418ae8031601c211b279682781b1d3e6d2ce31c2d212d21afda7fc1da64d8cd SHA512 4cd5ecbb8c180c9b390a6884edf65bfc3aff53ffe7b930cf2b432ff9c46a8c5a06001f3f412f99c41a60def52207e709ffa07a4b432ada488e77067fb5e1b3bf +DIST futures-0.3.14.crate 45557 BLAKE2B f58e82dcdd7a238427a394aa05d98104fac3bf498f73475f2ec6c5af021672f41dab71819551b2ae4b2a472764e96ad020bbc2e9217a887bc41b08da247d0859 SHA512 a5a93ec0bfc62409299816022e93850bf110ff8038b2d09bc0ed533fd7057e002b32b0aa141852d961e218190d1e1a0dc7d483d75882203966a0b89469932e2c +DIST futures-channel-0.3.14.crate 31260 BLAKE2B 86809f71b17c5b285ca7c05b02f5d864afd3eac865472d08b45e71cff54574dddf9f0069f4db2bb9589e4ea32377787695d8b03c7a2906fb4c36478d1be5fe28 SHA512 0f88863d9d2cdb58426cdf1898c050ccf08f6086963308518725e3b778eea87ed632c776e450c0e890c872d6e67ad9680554d4d1c7433200986877e593eae642 +DIST futures-core-0.3.14.crate 13831 BLAKE2B 0380b7ce85ad227715db962af37b7427de60ea5a033637fda5d9a389a9e92dd21346182490bedb02b438c3521a19e25aa1ad1c45f5035cd90f0ce662dec30bae SHA512 7cc7c7073a7a5bfe4295073e63a7dff82f32f43df3a0fcf6e7c0905a1272a50a19a8bceb32755590e456c8cd1b296574a2c48d02b8fd3622aaad305ac4520d75 +DIST futures-io-0.3.14.crate 9056 BLAKE2B eec9cfdfafeb2794959cb3a94f5c8b463ef31a55d68e6a762e82125a90cc61233e9e9219e355c5bd7354e7c133669811e40fc5e8902ab9651d0b88e1845eed10 SHA512 7533e75d82864709299a29df3a2770aa9b14cdff91c6a2b6a3f98e577866afbc20f329ae71e748320553fc1cb7754027c6e11ac7bf28913e9fe8b26dab59c01f +DIST futures-macro-0.3.14.crate 9681 BLAKE2B 35f8870fd86d33c0713535de85545726b7b22fa019f363d4b688a24367de1c87899b10207e8df73f2dbb4249b4d274095901f2632cc558621ae793977a369e7b SHA512 07e50e955f4b666d2457ebfd15503f359b7b9605d4736e6be939a02b30754be4f8761201780d8cb7929429a293d013f7a853ac1d9be4b7ea2060dccabebde489 +DIST futures-sink-0.3.14.crate 7658 BLAKE2B 7d560ff741ae650497137f4b23720bb32f7f7ee57346e124a0fb69f742f4cb622728be35ac917870dca52e8ed44c808d522f0a9e42235c10f400cb7e5676b6f0 SHA512 839f1a4fd62e4552673f2e35c4abee5d84ce99acd4f27cf4845662fe951a255ea5617de2b2c2c8882fea416407ac6b3b826b23a46e4f4dbbab4e98cf8587b425 +DIST futures-task-0.3.14.crate 11115 BLAKE2B 6d68f897fb4ad7f80ee4bfa851da15516da20177c1ccdb610121bccadc6c587ef9869c01d266275bbba4742fb400be23be00db68565a5091660b5d987c76e3a9 SHA512 32e55a5651e23733e2b60872de25d307d201fb9990c1418edc955ba2c93a083a52584a16ab951c28560069ba4da588f5b070b670c7244fab0074e28459a49da3 +DIST futures-util-0.3.14.crate 140139 BLAKE2B 8d22ad08d86e8ae11f4bc9ee53a458c126b9bb75f43960f66a5004a8bd4e6dce351e2123cf80972c2ff67803ce40147e8c955e84f27c31f56fd89bfb79831355 SHA512 b1ba5bf402be6fefefe2fdd54df7eb802fcf11470ab6cde987ea01c9ea0fa7da61a5a4cff79e3a7f58db3f1c8b98df39345eeae8d9455e337878f8f6f395f341 +DIST generic-array-0.12.4.crate 18212 BLAKE2B 6e7d77c884ea5a2a8a2d34d7d714730709bdf52f0ebbdb232a1ec8403de4b4f431eafedfc3c2d7ea1f8a28a84660fd34b71b09117dee4bb86052912143142734 SHA512 f92002b549aa9db2a80f65c50357c1f0f490a63e104fae7a271e0b16d6c43ec9146cb7f371f00eb1575a1bfc713ded3beb51f9e96ede93f2ce66ebf78ec85cb8 +DIST generic-array-0.14.4.crate 28916 BLAKE2B 41adcb738bb316d17967e029a829dcf7377427977309b010c2f2e365f16306b44991eb5f65698782497f614b129b14cad11bfeba2ae19b45efd117114492517e SHA512 34ac71fee2cd50ff786d39b4abacd9e090a8598baf4dc36ba5fecfb7171cd8e4f58e5360cbb0baf02a87eea26b7dca85b35555b82bbefe06635d2fd38f7b8b40 +DIST getopts-0.2.21.crate 18457 BLAKE2B 10651e947e49acc768d99ae56ca5a7f37c1f61bbd1674e2ca58e3ae563fd64f3563d53ccdd0ae7a878710a39e13a99ac8c274974157db2c691f8c222de14992d SHA512 5515ae6ccb0f03efb783683f46cfd1755342c4e83bb673ff8914c7f9dea0dae333f8d9703865e992659a359067df0e8b0e2253de0d4b0c7707cbe7d73401bb1f +DIST getrandom-0.1.16.crate 25077 BLAKE2B 0cbe96c27e78100c181a064e5fe524efa9a7a267fe60f8336d2ae0125883acd5d575ff17d1d56607255d9b2c30cb9d962026fdea1a5c3c29a5e0760d27c3136a SHA512 c5450c522c07c7a38b326f9a9062bac7d089630219d577ea4b55abad4e0c31d17b7cde385fc43912dfa100b42334e7a52422c55fda8b738caae428c6f9addb53 +DIST getrandom-0.2.2.crate 26010 BLAKE2B f2df79db0fff4a4e57bb5c748932dd7a8d24f7072f9a81fa92159ea79de29a70e7b834af6ffc5178e898af456188f16476043e9be4dd25c6e7edde06d93cbb8a SHA512 f498fe00c9887748a0be88fbd698a6087ccb79874cfeb35a18f90994603be29cb2aacfbc65fb8ba967190ccbc41ff9ff56bfff1de40811e1bc99a08b0568f59b +DIST gitignore-1.0.7.crate 12148 BLAKE2B 730b52920af24a58199c8350e59154b5e71796bc44c54fbff918316dc731712bdc6045730bf9e4060f17a1e589166d17fbeb6715c51bf459b83345ab1383bdf7 SHA512 17b421257ed83cc3fd0a855b5573bd24fdeec13549280bd24b194657f579ce4494d9068aa17f09b1734467aa381289ef465142d349cc5005c7ae44eca917e0a8 +DIST glob-0.3.0.crate 18724 BLAKE2B 1f1dd380e7d668a0c2cff9134279ebda958b4bccdd4a65ff01f9665b45ec4cce8ffbd47eb46e52cf516c5fd5803561e6bcb60cdee21ddfbb8601a95d45500620 SHA512 87098ffdbc518442995c422120cef71f83069c8f88a1970ecec5105b0f284ddd92bcee929f5c230d5b90ae1ead7e1214c3eea26f4a8b26715a00c1ab8b09bc46 +DIST h2-0.2.7.crate 156989 BLAKE2B 2f75a2f82391c994299e01fae5958dc7e21b78e38b8ade83a0c90698f54d232e6f0068bed88b98314e702bff773e8753c600ecf6b638b5bc1c7e692ef636d289 SHA512 6157bcd335d303246478f45b8740dca687f693dbbb462a0ea9560af12d1fe12a9c680c57c1e7ea0b0842137ee66cde827f273e0faa619db3b6180c5587bd0fc9 +DIST handlebars-3.5.5.crate 77308 BLAKE2B ad3fe42425ea8b668402bd20be4647659df7d23cd14f1d1a2973b4286b9fe9add88b0c2de5fff31e091f555f52f5402126a4b3d727a1dbbc2bd3b65eb84f5a10 SHA512 51d4802ae707cb53bfe34f2aa8fba614eb44c127bd9a3fd85d997e248f5b2c7f1e7e1a394ec0ac2458c76501bd56e15ddfd6e31abdf0122d247e2c56bbc21f2a +DIST hashbrown-0.9.1.crate 77734 BLAKE2B d59002253112cf92173c3c1b305fd03fb7318ef187d7e033433baf6a354db046d1f3fe0387b3cf500fbcc0f83d2b2076527ba7cda2695f7627eca0bc3e3487c1 SHA512 dfa4742111f6fe757b7fa97f04c7b4a78ce9708c87e8e09ecf3c28f2566e48af9885fda380ed918cec37b5c696110fbdd30273aba6e7d2221c9e65f72af064fd +DIST headers-0.3.4.crate 67384 BLAKE2B 4e5b2767fe120911b15f72605f4be957cb0ad7d2d87bb521f9c960fd0fbf56f7d761a69516c708dc1c5c7c0f4d44f2086e43537d689a15f484bc17b04eac17e2 SHA512 b19f4058f2a69dc9bd3b20294962beb9e02d7fa82630740a7eff19720ebab2e8332f11b129d9932eec34a03070d6b807f72979060a4ef582860996a13b88dcc0 +DIST headers-core-0.2.0.crate 2380 BLAKE2B b9edc2634ef43c53372038a67713785656bf5c030ae285bce287b7b130abc04bf56e66fcc2c67e3eda162d64b008c9a45a1f7be990d248da3ec1c18b361f33bc SHA512 1d502e6a3b2ad70a0d1e410c55864ddbf4118ea073ff7697e6b763cd18748d91f074b36451c015e3bbadad4400d099f4a2e350c609f44daee4ad40398633a8fd +DIST heck-0.3.2.crate 54718 BLAKE2B 6514f604361932e0a8e1a86786d3ec7218d95f8b3b3bcfc9e21c5fddc58ebe28bc0781e2ad24de4dd4296da85e97c742d8473370c99a593e7e5fc7df00fc9b4c SHA512 cbc72c3473ab14fe445491b1d9586d50de9a462af344638b871f7309fa805069a1405bcb1e0859b561f48583fc71045f38d03b92332d35131c67e140ccd241ad +DIST hermit-abi-0.1.18.crate 9936 BLAKE2B a5a1d1c9bdf83fdca8edc392f8fa7d9b9b248ac8d716e009300220befa5d8d80601643e768037be89bbbe6e21adbe6349c94c595cee3837c4b92b5f98ba838ad SHA512 54f060c6c1c80d41f40cec7102345147efb535aff9fa5cc0ed4ccd7f010bfdb6daaf40626fd5069af60ceb42058452803b59d4bbcfbed4c5546c79b57ae0f914 +DIST html5ever-0.25.1.crate 73165 BLAKE2B 70bee0c77337b2fee3fedda6fc475969b5e9a20342bf6890819fa9a69be8cac66e0dfc0a608f5cd6ba789a780f403ee736dbde1af52cb800a599b0113801dc99 SHA512 2b946224a0c5859436a57a507a89601adeffc12092376fe47429c5c5a61bd1d00b3271f0be7dea82ba1dce93a1cb820f72df8ba4c90fd13bd1ec408cff6ca660 +DIST http-0.2.4.crate 105489 BLAKE2B 07acee6b91b6a316f3277ad324df6da1d2ac804a409983384d2fc027ab63ed05390278b21867c0096730c91a00b8f8971ab6a66d17b9764f119d245592a1cfb6 SHA512 0b5c609c12ae4020801a184dd6c751919bfd4db985844c55b53368afbe2b9f641cf9aa523ae49a0b25a251cd8f19ed634fa28990d4582cf7a27f10c4304eb465 +DIST http-body-0.3.1.crate 5394 BLAKE2B 9dd7a35cd22d22060762e17f028e9353fd66fcdc81c0fcb2f0361dc7ac86bab18b89ba774f28e2e2b451aebd01a31b01029587a3d119c5a30ff176c203482367 SHA512 0c81b2d8512be3f07d5b08534d2a27424fd6abdf175e9bad9a657b9d95a48e2916c8713bea8de3154520c7ebd097324de246a1d2ca6595f2355e1c93fd9fe6ee +DIST httparse-1.4.0.crate 25546 BLAKE2B 5ea52423fd2734f423643c37be2464d192644eddca5a072567cf3c439acf7f686be002d5d3c4969bace7c5a6a8f811270e3dfbce704433df255d41477abc0594 SHA512 378dfe2fa2600eb186cef45cbf3db1051750ac863a6c31edb421a59671b876fdc1668cba270b1625f5d4c4cc892a50c6bc00d86ab0375585d2d7f25c22baabc4 +DIST httpdate-0.3.2.crate 10768 BLAKE2B b435d0a530fcab46496a921a565c3ad8654cb39ea038bc942c8fefab8dee2576e9b157f203b376e80a10690650c1c899eaa29e5af75888c8998b07d5d049fa97 SHA512 5cb56c85aac5acc0e9e2c72fe0913d2faaaaeab10a15c0479407ab779494bd81f8e3fc9675f5990186a34689e841427e83723a87a91a5204ff57188e89be98ea +DIST humantime-1.3.0.crate 17020 BLAKE2B 37efaacedac293197ff7acc8b0446a73243a2d90ed8dbdcecd9cb0af6e901f135e1d92aa1a642460f531a6811a5f08075f8aabaa9941e96eddef301e205fdbe1 SHA512 2589bfdac96108951882b7ee497528b9084ddd344a67914810ea9961a1e319167d5cab959c66cbb26e398e75ca50d488a251694fff35f3c2f69a88b6f22844da +DIST hyper-0.13.10.crate 141981 BLAKE2B 8cc13ed7579957040f19a81aa2540d4b9d453737b6e277dc65df648530673a536ba009e8b1d61f61da88dd2613d2fd5ba537271b1105eaa528ba2933cd66c9d7 SHA512 cc7c6b00e1864c44a647fcdbe6e59c7a7574169b787778b1074d102a39e092a80802383d93eb4a6d0f7f5da9449c45e5dcd1e6caf6efb946ddebd687d2c2c10a +DIST idna-0.2.3.crate 271023 BLAKE2B 157ece18825fd3f8055581ccbd14191a6923da4c806ce51b3d6376682878db000a1b873f744c8e9e1966e4c1f8393643bcb603deae299ed0bd87847b0bd2c591 SHA512 1278bd561ce329e1dc7a6f24a10f83d9a068af5d15a088414f3921c6728b0d54f4d60d6f4d0d5a786596ad226263e1e50c3842f192d5758aa4665ba4ed5c269f +DIST indexmap-1.6.2.crate 50225 BLAKE2B 38f40c5aae0c5dc5da515e610007983b2d581994293f2eac747a3fd78c9cefb9faff64555e0c6dda146e9d1332d59f23c353c6758e63f99b6c4676123723ec67 SHA512 1509b6aa6b3b84fa15b98026052f6d5f0f1aedd065b02b24e31b799f8db68d5770e9a8302ef10e1ad16817256dbc03c55593928a48eddb252d25de7e0b7e6406 +DIST inotify-0.7.1.crate 24637 BLAKE2B 7089e15c76ab1585850cc17d1c7d5094f6c229d2009dd90648df78d08a5b82567ccfbc116547e4d78df5b4821f4d3fdd7b46b22e0d1b8cd1569cf22c4877b4da SHA512 e98e041efbfaa932f0eb2e21f1831776280ec3873ecba8815dc3af716a37ec19c863a909d9f10a49347e964eae0aba33290a892dc0f0e178f6ccc0a4fdcf2c6f +DIST inotify-sys-0.1.5.crate 6965 BLAKE2B d70124656ce3e6f5ea3f430e8e7100d0691003161234b40542ca86c407ecaac1785f3eca98e9fd2914dababbc3f47a0855c99c9f19245d1f2cd5312739c802af SHA512 dae749f32c533b0c9f99963d97a77dcbfcacf173ec8fd7a02f275804f9925e867b4dfdf6be52c3c3c3de136d64e6e7d6b30a3bf804a01608cf974b0cc2e346da +DIST input_buffer-0.3.1.crate 7812 BLAKE2B 4e607c9ef5220d82d11988f06877a14b264e032d01cfa996b4122fcbafd8270c39f841ff823e5f4b5d3133f957742fdfda1da27633e24d00caa67221f2ef961e SHA512 6d62e304e5747f496bd39a0689aa246b9bfb5832f2418af92c72f010f531817f6c8835415952aa9969b45ee468a880e66a9abaa9f6cd304b65fd09850b4af10d +DIST iovec-0.1.4.crate 8720 BLAKE2B aa1b4cd98ebe47901c0959cf1d8eb2586a803d0453e2a8bdd5c63442b32886dbcb37650aa218c748fd45c9fe3a7fdf20569eae5b19716487b139caae1526da4c SHA512 e23fcaac239807daea20ddcf2cdd4fb858ba1aa970ce6248f70f0fba5bff7ebdb27247c0997ac0ff2791178f86ff9657e473d8f64b86c644763e5b3474edd158 +DIST itoa-0.4.7.crate 12099 BLAKE2B 0e4ffbaad504565056f74c3ef560a87eff321a0da6d7a2c8fa35813c207713c22d77080c3b830fefbb21370dd29cfbc6a2807044485b38ac1e0c9c1de3ccebc5 SHA512 c61eb50aa00591af28698b45c528c36bd92088f7cd2f453cf686a1824f4656292638bebc468cf67f903473a5045f22777af623cc0515ef3bf25146b89a7c454f +DIST kernel32-sys-0.2.2.crate 24537 BLAKE2B dfc4a1e31d3ec9e2ac62b890839919fb7fed1444070c1dcd75bb75acfb53556d6cf2eddf5a6639e7852a3df2a0cc715c5ce1d3fc898ef16a1687020d98f715bc SHA512 682bc7c629aefd035966a2873518fd60719121cca7d63d89d6c97ff5306f24d8b5055a3c91b4eedaec22b1d5dd3fb8b48ff7341a05bbd72d86e06c422dab473b +DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8 +DIST lazycell-1.3.0.crate 12502 BLAKE2B dca2d3f46823a52dcf87b7d6103fc4f1f83bc5247ce361946ac2d9df239fb43ce4b418104503698dff0242480cd014996e77da4ae0a88f3cedbce4eb9d3c9ef8 SHA512 f9d627afc28b61e9687a3f72260eb013401fd64057647641ff2e763770d7380ab1d2d8cbb4a3c8818d53d504c618a3b46aaf701f72f4d7b25d226042824c2f8d +DIST libc-0.2.94.crate 511713 BLAKE2B 6ad3fe9aa5ea5fb06a7b2beeb68fa245e5ed7d19aa7e4b21c9e2ab73da11a9249913e604f0f87fbcc82676cceee16f14403cd2f27ae462730e1682c539666283 SHA512 316717d2e46b57c200d67d0ebb4fb162cb1f0b688895b9eb6075924cda3be8ba7fae85319692682178b6fc5cb2764e8b3a9d3e7ce234fd8a21a0a9c453ca174c +DIST log-0.4.14.crate 34582 BLAKE2B ddfba35947ae1f5905cd9ecb9eb862a78af6f00ee8b8fe6258b369b140928fe677a02b1b3ca5bdec36ff2b16abd85a9f49688fd5f3d1ba2b2905e7f96b8a84c1 SHA512 796100167663d85a7bc4244cd305e9b3f0a1b1520764b63464698eb136318d0928c40c16f5d19d9f602a5bf769851275bbd48d66b088b0c37be7a6fb62def7cc +DIST mac-0.1.1.crate 4838 BLAKE2B c87e9f9283f179acd28c189d02d9d3de0ec99f9cfbefa590daa2880c275894951c5b0b935b652ab6c8c0172ac59e87f52fd49b787b230e6730365dc076d17578 SHA512 dbc6def04c482911ace311f34be79992fa04042c7ce36b71459b5af5c1c43e9fa66b6b40f63f8c3647daba287bf1c1be9b1a8031ead1d855f99a988898c96f1a +DIST maplit-1.0.2.crate 8871 BLAKE2B 3cf975d35de2d2fbd50227a6d2c5e72227e99197b620c8f29be97bd3666ec162deeef0d9e6bd327a063f175201beeb73c4ed27272449b1df0b78238b2d36ca22 SHA512 917b5cf665e12b687035c895b60b2ae05622963f495f5693515fd24d56f49e95a06ffced68606d061bd20822c655100035930673fd4b0d4790168763b6961a9f +DIST markup5ever-0.10.1.crate 34668 BLAKE2B a13f39ba93a26a558a8f03ebbbaa98bf2c7caa4fd393be3e307acd5b59a6d91fa8fbf4deff234266cd55772d5047145cc80c5a215ff8eb5b2fddb88468ae4fb2 SHA512 447b0f44ea8b786688127aba1b6eed826dc0127658d293c22db74864381b5e7bc0584243dcc0ee19929d3e757521167c13a108155ed5c8e78375cb0fd3c6f7b7 +DIST markup5ever_rcdom-0.1.0.crate 25165 BLAKE2B 4123ee804991e9be31e6a4dbcb7dcce12bb776d22e4409ad388678a92965834acb9b1b2fa51e6472ee2c0db156e4a75e5b6db5f6b6d4220159ab93b056d0418c SHA512 7c21836fcdd45bfdef7305327255291c92d75d3329798d31abab26297de8c381e41b4419fb7ac631310835d590b63751a63bdd87e2697ea3dfdd6599033433c7 +DIST matches-0.1.8.crate 2216 BLAKE2B f18176110921b1cf6e58d52d12f1d1a3455ce2dc04421fbf1b392f66cdd81a88e924571fa27e307a06301d83b04f3b8a0ca3ae40d2da6f2decb8aac4e2801fbb SHA512 98b58f6a2694b03a7dd1be69ebf7e3ad14483fc8e4cb6e6c26a4937e4e660e843efb4dd04a7312dd9659ca02acd3775678f73b8faac44a76ffafaf873c22f590 +DIST mdbook-0.4.9.tar.gz 1482002 BLAKE2B 0597c8771fe3e27aab68ac60aec561ec1782347c409d11ced27b315b33c4a87526af36934f9be8dfb32667c745f95e3323a080b0770089171241c1f38b488bcf SHA512 b8df26893054f05b28e81353fe71bc3e0355db70a2b7f894a9c8a4c5b2f608e8eae5e0b3de285e1ddf2c34d53a8902fd4513a72f0f2b1c35d1f0a054ed231782 +DIST memchr-2.4.0.crate 63392 BLAKE2B a3f30546c3b58ff4eba534bd7046446e96ad793718edfd3379bd125c47eb270728c4aed4aed1c6afa27032f74078b2b2ddddd5cc6044e117e2b956bb13f902a6 SHA512 b142e308a5aef8e45910411789031e194349ee540c4ced0e2384d864dc1913299fb63a161ceb5228256e97d0949661b7f83a169ef9d4b78afbd9004cb7b8a2fb +DIST mime-0.3.16.crate 15206 BLAKE2B 9a599ca82fd0dd6d3d2dea68a47b8441b1024d016ee1fb23cc6431b39ead20c9b3fe1ff3397af79c2c1b2cd277c440d4fff69f6b28c550ddbe15f680923c834b SHA512 cb1d691610cb82720e553247336fc5eab63407ad37febf2eb50aaa4e329cca70959ecd8bb8c7af5753acec2c8e86fc9a0f8ad9ad2de93fe9295ce84033d6054c +DIST mime_guess-2.0.3.crate 27437 BLAKE2B 6f9176749241dc9b8c08eea3285ac1aeb40ab079f8184d93c436c00b205ab754d9c2b5c481774837bd1c4522b33338fb7ecabe88ee2da471478cdc1391d9281c SHA512 b08013ce235e66eaf49a88ab4c5cf4d1f1b95846c1bbdc1a73efea9052058860c7dbe2b028fe1b33c713621862fe9af2ed097558cbf5e08903ee406a44af162d +DIST mio-0.6.23.crate 103554 BLAKE2B 1286ea6deb7579964a5c15926509d438c5454d4f56e936753c76927826fbc5444dbe33b7465a15d0ae6c122bcc98899959391a5418bff31c176d51d7b2f33077 SHA512 ea95d15072fe36524a85b50108415a809d7ea3744deee45e4b6a1b763a11c88cda6dbabe4f8d01945a5edeb52296a74fcf457c85be3032c1311a35025860d05c +DIST mio-extras-2.0.6.crate 16292 BLAKE2B 08b9fc0d594e8ac8a04c70be88e34e390a24d90b9640907ac7900c26bfc1f982502e70c19172d57a0b697ed4701493ebc03ae4959284b74babedb8059e9faf10 SHA512 2d92e5afb34ef4c7d00c78d6ed15d4e786aaa9b57ea6e2743b996b8377389c9ae058a6aa227c5c66c39a2f86a7bb0b22a13c73a3e35c4b7c65b7b01fcf7fa232 +DIST miow-0.2.2.crate 22044 BLAKE2B bec3bbd899a080e5c97a8c1dd9dead16a57aa44cf2bcd97be03155c28345c45fb731650eabffd2fe18a633ff947e63561327cfc86560ee86c3fa71ad4d2a3b62 SHA512 e42012f67e1c5a475d1c9790bc731add53f7a3838d36f8a701f69974c3ff33d31364006220e69c8f37bae2eb31055ee704c42b64241d13be528c768ca5c3d6ba +DIST net2-0.2.37.crate 21311 BLAKE2B 21cef5df92d5d51c8e23c57ad2225e3311c13083fb86830bcb313965eb5ad0170519bed9a47cefb2305d3614ce55e11896a06437cf9ca50c79b7843ea633e99f SHA512 9ae70c655468c3e35ce05988626e0398a3cdf7b7343c08aaecf1267bb958329e608b814cc7be252fe085de3cf6913a1c72aad206c677459469ba4886c20206ec +DIST new_debug_unreachable-1.0.4.crate 2561 BLAKE2B 5c9831b04e2a44b2dd27816df0a331a8108991a84ebdfefe4e42f325ec3519ee50e89a99d490020a65a3d75acc371316c2253d2c6382453a0b15f4c3d5b96520 SHA512 6f964bb322aa8f2ff92078381dd720527600c6449e237b703278cbcf47b39a2581fddfc2f34ebb7cf31229e33d58de48bb5050e083fec6dad9aefddc1d771c85 +DIST notify-4.0.16.crate 53902 BLAKE2B 4155fc7986f6a5d617f5dc3e5a41c4b03ffb9df1aa1a4d948ea1cbe42f23d5348710bff55f6a70bffc171985568a6d4fe697bbf92226947153e9e959786c64bf SHA512 7c8ceda432db562d2d261ebf1b18a8ac323bb05d1a7df1caafdc5a0c409edd3a04d84da1761fea8ceb41e4717600c3572ac9257458af0a19b17004ec0496376f +DIST num-integer-0.1.44.crate 22216 BLAKE2B e1c08427e006cde6f2084adadb6086e87e6d6f8bb8dfa757a8228aa671e862a366e4bd8ca5e0500008c18bab128aead9bd5b1e53568a4f40afadcaf3882ee98f SHA512 d07e27ede02a1d007373935fd91e57a26e0e84ae14bbe24be66763baae6850788bd64ad2598d2bde4f4fad6c8a4675c40bfe0927164b16b9b69de5e9a83d9771 +DIST num-traits-0.2.14.crate 45476 BLAKE2B ae310d9d5640acc3e45e1e5d1d2f519539795922c0058ee940c94c94b6654b39358b7c18dd23a276f2c1b16a30dd4de4cbc8575bcda6a5c11e70665d670e6439 SHA512 c3028eca9f7b718de0db3a36cf3e462bdba43562d52c9b809ed4cc0aa6af403aea542d6d4da743cd1dd541397815a3c5a84cef4d6e40122994e4be6a62319b2e +DIST opaque-debug-0.2.3.crate 5643 BLAKE2B fc0cf1ca373f2eef8a37f6d7eb02acc7cbe4d71f7844e01453c036c7595121272c207023f43ae5287b343756ca0a8bddc53c5e0186e95c75c019268a5f716087 SHA512 7aa44aedd3fa5a6ed3d60239c23dce4cb7b27693e110140e6b332579bf1c1b773244f12271ced975e53caf68f3f381a7edaada573efb982d2e13d638a3a6dd40 +DIST opaque-debug-0.3.0.crate 5767 BLAKE2B fb5d32c876a271b41582563f5d6978d75bc1cba2cc34167f491bc198e6eded45b9dea65effa3aa972ede20978808b37ad1aadb6837f926fa3378ffd382076d41 SHA512 9909b06668a4f97b4d0e916de3e1d0a922a5a0b911a7ce190de786f62ceaccd382cbd0dbe01ab0f15e5472c10848482da2307a6d897928b6b7d5365bc0321cae +DIST open-1.7.0.crate 6101 BLAKE2B a0ab3b5c9c48999962dcd7af73231f3b2887fdc4244ac066998660029216f10c71cf32e7f08e788bb6cf4f945569acdc4ebb2ce2094d82377b7a4f38304a03da SHA512 755d199424644347dc60527865141616a64d86c2629b35960e30a8130f6f1e6c389c1f6cbb13b9c2f8746f9bfbf599ed708a54aeef95a107ab73631e8006921b +DIST output_vt100-0.1.2.crate 4062 BLAKE2B eed08c0a1800560d4f623f451d818e3c7f0dcd72fa99f4e5e6dd4934e50a9649011ec955e06728fd017d58bb9f36cecbeb9b4aa8c13c040225c24019f774e63a SHA512 b8eb00a541bebef2e0bb44975c4547fadfd4ab88a14aa8e31945f3c73531a550cf5729f1f3d18fae5cf36286b82d1a54fb08b28720f1592ab6cfe0814c8d3036 +DIST percent-encoding-2.1.0.crate 9748 BLAKE2B f3ff35ac683724b15e40c85e0fb8ececb07b61beeea82b7020f02d27df05a8a3535f157b3cd688533e414d6541de7de8640ef4756706d8061af0fec94ba04ab3 SHA512 98af4dfa7c6a3cf0d5aa929c436f9eb1ba1b576a944513f1284e6df2ad06be7cab9eba145d888d50af88f8c970bacc702b323041bec6d4fa1dc34095186c628a +DIST pest-2.1.3.crate 77986 BLAKE2B 210638cdc2cc5e389d2248fbc06b8163dd5ddd77974a04d32f674e7f959acb3c5efc7f26100b6ceb7c346ee06a39db0e11ad5b793a1bc09dba679e6a5a4aa2f1 SHA512 08a36d4571cc0e912ae87e1f2116424b3d4139b653dd9a446fec8ff39cd9a691e8305c86cf75d227b5349197ada4ce79912ac25f0726b98a0642981ac4673c83 +DIST pest_derive-2.1.0.crate 14049 BLAKE2B b85c5a625579e9bddf22ceda1ff808e33989d259f07ddfacaf833ee313029e1a8a01f824da915cfd3d57de57394608a9b506589d642be30e8d5e6a3afcac6a9e SHA512 4d554921b35b6c2491f56b859d389e93459552807df6ff989f9913a9314171e5b6eba93cf7e03528973d6025b663cde7b841d38fabd8197c33beddafaf83fbba +DIST pest_generator-2.1.3.crate 14227 BLAKE2B 2fba3732d71e6036a911e6455d12ec7f4a1a14331b50f762fda1d6dd244269106130b72025d21e684bdadc0b5971c4b19ccf1f113067c26aa5f1ac71c78def8d SHA512 8be05ef3fd59dc4ccb7871388f8e3cb24cbc2f64eacf7a32fb887f1d8911b528ec545fe78bdd7beb03e2c04eb7fc0ad98ac9fce8579f95ea71cc280912f07c3b +DIST pest_meta-2.1.3.crate 27818 BLAKE2B bd96b36d47e39d6f8cc6f07ab373d1bf8b8f9907afb8b3774f62677c800914f40a0b44531f50b065ae9d11ec77a940da865b5a574d0cb0d2dc51059f718fa826 SHA512 f31492b452b58c632c0c5c3e357ba2b41ae2b5816d0ec432c1a281dfc681c5b5c2ab4f194c1049938e671ac232d85667aab91323e986df4edf6093a4e2d47ac3 +DIST phf-0.8.0.crate 3902 BLAKE2B 3f1d4f9c23cfa2a3a0b7e4f809ff00783d71bb4839b27246d5244e5aee61a211498715ed576f00749e8132a6af1cdf50b2eb27d2f49896f006212981886a0e44 SHA512 a3013c4106ba72aa3cf22bd3f903eeacc24ac7cc47aad791bc5e9a63e1aff928a537399b6a86b0346c5eb37979ec01b404807e622e79a0a70a0e01e63c07a47f +DIST phf_codegen-0.8.0.crate 3192 BLAKE2B 65c733fb896fa034c97482d122a2ed4c39d763cbb65ee48a229cdb320910aefeef125674bb1305a4a12f5fccefd71f859e33cb26c3e6be09ed8f776f9ff9b463 SHA512 6649779b50683b1b83c89da921ee52963fd517660540148e9ba4b59f9639c705e08400c4da972880ed161564816c7ad45704d6bd51d1429717137de8f46cb941 +DIST phf_generator-0.8.0.crate 7604 BLAKE2B 936c9ad95d2d5b6b4bc97dac9bcf99813462950f6280d9cbb8c8ae9253d3197f25b8173c202cdd51c4a2d3f422ca1d6f5c9055e7a87e45b2dc5fbe5aa6aa45ce SHA512 de045f47567defd43fe32fc62191a9a892e5a478e1a84b853cff3005e94967ded68e5770eacb43f2e97e58b8f4283327a38a3bdbd55e1d5c708dab601ea66270 +DIST phf_shared-0.8.0.crate 2860 BLAKE2B db48d88ad6e7aa6bdb2f6750ab66063a55d005b4f5e92ededb59da1f1fa9b1296d30f87d32d036f08e3a74111ea4d8287e8eb6c86d0edd76b3ceb38f223696db SHA512 6ad7ac732b7cc42e7e179329fbfee7074d26652d73eb4f2b97224491d978ad9b14c66e5a539c96b84c70124ac44cfc009bf963a42c438d028bd9737b99f463f3 +DIST pin-project-0.4.28.crate 47895 BLAKE2B 9833ebaed73495bbc730334186f54880cd804a9a25027a98b1089cb23831b3a197cdea3cfee47fe26ff30536c258506cfb5add0cce99813be6d2133d48c290c3 SHA512 e82a511bce7795d32c691ec61ed1746f8b7ca5913d2b46e6959ceb4071a633b2754ed6bec52b8f7e8320026614ba9a276186ace120e899fbaa5c19704a670492 +DIST pin-project-1.0.7.crate 54847 BLAKE2B d902d2bd9008ffb0f254adbf0fff3c55614abec67db5a5814707f00ce50690e47890c2ab89ac488e12661c59db7692502eb7003cffafb4a57a66959a01f139b4 SHA512 e3903b508abb9a1412d8fe31f04d01c2bf634c770b1d6f697da1ec4eaee023ed95d5488e1fb4f3aca62afe145b52730c40781eb6d52deb55d5f9820503a92f86 +DIST pin-project-internal-0.4.28.crate 29989 BLAKE2B 8d651639b8a4766723d8d9c528e0d54115db833c1eb9f20d08d11114cac87bca58acf32e3003698e2b53491aa1090f2294030ea7409373536677794b64969be5 SHA512 35a41e7ed1acf30f8cf4681b214bd7a5931fa5805402b60239d899cb5135cd872aa95d942beb3e33c9884cc139f4119e7aef3dc676b8da7252653e71fe9ce8aa +DIST pin-project-internal-1.0.7.crate 27884 BLAKE2B 52ef94e6c2fb44ee36d7d5bcda09fe65dc69386f6df6e4573674c6e796ce506ba672c1421603ca7501a7b3747f7277cd8f4e9c121e4068d5e857232de08cb1be SHA512 14d96d6cc73c7b86151f206383d24e1c7d79d70f586ff59f1bc47fccf271bef4a0561eecf86f7b03cd14520040f80ec00c266df79b2eeb04506582d80cd2ef97 +DIST pin-project-lite-0.1.12.crate 16854 BLAKE2B 48ecd648fd7a7694a48144e9e3f05a3e2878e52a5e5ecf2c6cc2cdc556957282bbaa3bb04f6418cbcfb254cceab5a0bca92173cf293db5cfc9c9589ec1597543 SHA512 4285eb45548b1827b54890162c68698e50d3747eba7b4c1c75a8104124846bc745a40d9acce18115bd06993d7d8f11232168e5e6f4159d3d273ff800706e5bc4 +DIST pin-project-lite-0.2.6.crate 25494 BLAKE2B 851a8388c3837d8516d98b561a3ae95b584e7b0e56cb04a300b45e5a97b4c81bde991a9625f42a596244f3f8638c26d6ddf46cdc7697aa24c823e991d0c107db SHA512 21b298896a10c2b21e481f5769a9ce557ec376819681599699f0881769d2dd378bd0bfdf7c43cc16eb521c48c67207e63373622fff84ff26da88703a57461461 +DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70 +DIST ppv-lite86-0.2.10.crate 20915 BLAKE2B 83a075381c24b2b89f5266929f5672ce051c3781c1a199252738dadbf471618c8b87452ce84e1cd87a9eac11b44107002894f544091210cc7e77bf52c045288e SHA512 c9941052e504b9b310024064026e4b1d540dd877705ef450a833d9ff6dee70ba874cdad68c46381a71d5b54482cd80b3dbb8e0c225758fd339069031a55195f1 +DIST precomputed-hash-0.1.1.crate 1640 BLAKE2B 64a37ef3edd317f771e833bb394f7c19bc9b8c844156c831d2b550692c7e2e36bce44ecf18dd9f2d0f0511346eaf0d2a0ebe792fc288ca0e94a93933f2051846 SHA512 a118a98286a47e2f0cf35d2678d0325c18b9b7d5bdf40ceadc16483b282307fd1498434d5bdfa25477a4f420d97c34d786e42e9fa70431b788b4b8fde9718e05 +DIST pretty_assertions-0.6.1.crate 61551 BLAKE2B 1e92be2282e42720c9e1d1d26f9e67515cf8aa528479e14bae9c79193652c435e9513e85b7958016c105ed581fcbae19ceaa742fac6b07374a2e6f7b57a689b2 SHA512 10010c6e6b02098def38a8e6cbfe34fd052fe5773628d57a8141c7933f868906870158b4d4b1948b752d2c5f7b2981806d5f835e125aa2447d408415ba764f71 +DIST proc-macro-hack-0.5.19.crate 15556 BLAKE2B 98c22fc3e5f5fa8b6f44d15de42b6ffcc82ba3f98a07ffa48bcbc5d3abcfca6af136c5d0d8c7f1ca34261ed8f8c9c17a394231f97a4c342c81aa7f8b9e74b203 SHA512 9e4cbec41056438287f5b23086264c86e2f0cdc193064006556736377b2954229de13a585149b9995002c9aee3334ee2a80ae4afdcc96cabe7ed2bf718476952 +DIST proc-macro-nested-0.1.7.crate 6495 BLAKE2B c27ad92b57837ab1ce220958846253ed29de12ee1ed849948e5202913371d877bb648e6880ac3e6619b8d48342e1fe105df56a0abda1b13bd62262bea4c85fff SHA512 dc5d898c6d5588d279aa0852193105bbb3824798a05875e2181c66da8c3849fcb32189d9b213cad09054242aa4ae9cb602f9c2d1b5e7302963bac244bbaa27c2 +DIST proc-macro2-1.0.26.crate 38233 BLAKE2B e44a5d98fbf75130c0eeb8fad6d025ce66fe41cc5ef882f418bd8c9e5d228d712020e309dad68e2f862e5f9216a1103fd6e69953e17c213166467b335f604802 SHA512 e6d39cc0d5ec644e3fb424347bde0a82a8ce8549745a1a827bf4dc21f6248471935b5499c3b6d1b7a129f0ddc560754254c528ac39fb1fce2ec3bd9520afc3e2 +DIST pulldown-cmark-0.7.2.crate 102716 BLAKE2B eed82045f85940b21628f142c11f8fe1bb2bb93a059222dd50c5c4cea7f526dd7c84e357a92217e7ef181379da478e35111a95c48ea06ef072283f695462eba7 SHA512 2bd539845cbcc952543c45d3e323377c961c1ca67b7a2161782eaf829a759beb3e360d2cc550044e176a25e77e94cba2248dad4377dfbbaecebc1a413db464af +DIST quick-error-1.2.3.crate 15066 BLAKE2B 1c61525d383f3588c1c5017f016f60b484bbf2035e7f63c553bd9a49b638ab0c6106ac3676a41072b24da4e13dde78706e0f99fd1ec9ee329d5be81d45a85866 SHA512 f8aaf9024d20ccd42b706c756eed8320aee339f8776392b47a41cc82ca06b03df1a5b1f00854cea96689c5af261b4d8c5d2b1a242d10f2755e7e33dc41be35b9 +DIST quick-error-2.0.1.crate 14265 BLAKE2B 3815c89e960923bfe0abc962c38714b953fa1d5af991f3de22d1d084a8cd1ba1761fc961ba97e06ead3992ed1b61f525d04bcce459599e5546315932281c1dfd SHA512 e028deb598466ae91663e5d090606be4f117662d0fa6e0c0b0043c7261f26787057e84e644cae72a45b1a0a7b1fb03fc9712faa3abee94b97ce2c8d25c365c32 +DIST quote-1.0.9.crate 25042 BLAKE2B 26ef31e89fd2f0cc21ff65f8072f30c7977ac634d2536cf9845a0894d6659f62a96cd0a6ee48f7706036c2c1b898ef8c9167bd62714ad0c9cba4fb02f30922af SHA512 dd6cdaea183b85400531ef01e56657edbec0d8f7c27898c1e591b72dff755fa5875b33ca320bd65be0e9aecfc6a61ec119a4bd1291e9f2057fca642ab5b198c8 +DIST rand-0.7.3.crate 112246 BLAKE2B ecc7c1bd70ac874c03bd8b7faa3016bb2d5ee5c19603280a12a45a81598f706e445971ee081e6ca410ab6f0f5f7a06d9315848cd556a2d8522a82024f6ff91e4 SHA512 f9b68ef9446f1ca2c8092c50990f15c1b4cb5529eeeac4df8d69755e0b7253c663c587775e7cb0a7298c31edb444975dda34926759306541f6d43d0d3cf57b7e +DIST rand-0.8.3.crate 84493 BLAKE2B 5db817304b94424cdc77b60c9a3aa451abfbe315d97e311776ff9cf968585ca98f24994df3fa708e3896d36ba66d5f8dc795a652d2c568edc6be355baa7b4d69 SHA512 fd61348a8c3187881473c8764238d2388da3419e82174f2877cda51a7cd136106b2c7f0dea6b914f120b929c1db323529fa161465156661ffd19eef9b2737e4d +DIST rand_chacha-0.2.2.crate 13267 BLAKE2B 7908867ceac98243ade22e1b38f1903fe0249324484d91c948a5058a1e099e5213f325c5ba3400898c8319158ed69f4ed064164f235470856a8191bd990d5a10 SHA512 1e2117442e4ffdd834dcbf0ea1829e73202c0ff9041d5969d81a59330242145f2753f2a56de2fdbff65f26cf0d227c7d08b2094ab2f946b764aef88106a6ac84 +DIST rand_chacha-0.3.0.crate 13920 BLAKE2B 9e329831b46c4d6cf2bc6755024588df907f87145adf35e156bc1c2b7068b583b652f90ba35094a1bba26e0449d32d2877fa52cea012ab50429ee526264caf7c SHA512 631f32a5b0bb42ca87ee8381795402f8c5a80202700b786655537f981c0e210e41eaa42ad4247a25bce1260c29caa8ba3b03f92e520ac331403fd8e76fbbfe93 +DIST rand_core-0.5.1.crate 21116 BLAKE2B e74791f941a79971f2741172d489d546373c9abcb0dfbffcb7b97b858ec800b2e0c97df4ac636f3aa1b8dd6c14685edf317336d577f31b5c6cb7d89a157e547a SHA512 4f7500b35e165e6c817fdd67a50745d5497d24e554bb554705097e37258751e8755c4d6b8a69fcb5e1977708ba78620bc35d640e4e018fcd4e88d9dbdbebdcbf +DIST rand_core-0.6.2.crate 21708 BLAKE2B 745aab7160c4d9b52e7d0ab0fab257bcead4dfca1242d820d760bade713822b7b8e283852a2e337a6d33b40ddbd95f86c36bfc4c418ef0ded86f59ae4a4df56a SHA512 f1f21dd6306d6f4b5666d1ef4994d0d68f10a7a94fe628a5aa8ba28ae0376cb34b7c091f82e2db8f2555eec4f35088f6c4df42ed84de7467d5780e284b397115 +DIST rand_hc-0.2.0.crate 11670 BLAKE2B 55fd048f2524cecd4f0e17927a81111e3070a8cc6a5b0234a46445400ad5527194edf8c91fb5ad6538f4958d53044ab02424f61a38adb2931e2cb7568c458ee8 SHA512 bca185612bed5cee4da76fb68fe854105da276f5bf2da464e596d586b925df798cc692ed881e276ab77c36b4b0551930966c93656be122ad05899d87853533b0 +DIST rand_hc-0.3.0.crate 11780 BLAKE2B 7600829591c3631aed73598d4837b0e3be55aa0594e0562ab7914013b19c4f88648e0103765ddf32643e771e0961ff2f726b9c8b323798d36ef9b994c1d03ffc SHA512 c78372332aa0bed3352d58e07be3e97f01e69410051be2d3cba569b05037df7379e896a84638b4e9f4e477b9851e4bdef0accba2c53d118bf4667a3e1bbe95bf +DIST rand_pcg-0.2.1.crate 11291 BLAKE2B f8837f3f3dcd7ecfc90f88bb6464b9f79f7c1975ecc68289fd10a5c97323de9c1106de9847fc798f50d96044e46cca9d41f1635130be40bc789492bfaf999de9 SHA512 612c0d1cdc591f80733bf8097e251f02ef7a7e71cafb74e37b63ac68043558045c0c96196200ad07ce7aa9f2d373640c20e598ae5774935c8b52350ec20958ba +DIST redox_syscall-0.2.8.crate 23697 BLAKE2B 5a084a48e06ab0dc69f64b05058b78d994040da6c42f04c8b615b1977fa3e813cd5a531ab33402402914362301670709679aaaa321e8904424c38d35c284b7ec SHA512 250556a7683254c9daf22887b39abb010eb9d4fe08b944e52bc6595ef6d8acfed76e5f43931fe20c84bdb3743772fb62a0be154ecfb6e66c2facb4c73546eacf +DIST regex-1.5.4.crate 236581 BLAKE2B 6efaf69d1a99dc3a2e04b2d1a96b036f631e9a0ad0d3aa57263febd47f7ec12765526f06f9c52a5497bf0d9b455f1d1b39e011adc4c28530c44b65c8a453efc0 SHA512 1a9208358c4ab87c19ec91bcf5c1e35dede46f3a0c0097061b7b53fa77a1e5ad38090d243aab274956f09c491e5fbe3b3b35a91db079b82a2dde2fd9fbad4c19 +DIST regex-syntax-0.6.25.crate 293293 BLAKE2B d5ca0dbc26b03c6a1818026f9a69cd226ec934e7c64094d0ebe843052b648617ffae7aa3a074f8da46d03c46996d8b547d8916576342000bd9711089b3e57d73 SHA512 a3d31f82aadc6be1796f76c03152ff24f37fe42d6ce27fb98e2f55ab102f86502bc37ccd563f6e0eba61aab20d002184c618517b678b3b93cb8f0497cc046ca5 +DIST remove_dir_all-0.5.3.crate 9184 BLAKE2B ab7ef94e0230ddc9b363f038254a180881bbc20eb04a254f97e6f71ed491c99ba1c88f5e85632d450243882a4a0df63f3b8b183bc1fbca9caf30ec23d577b1d7 SHA512 50417d6d8a33912193a1ed37eb72b47431b12ae65d2780cdb7080c3d141e63819da13751c3fb737685cea322f70b36d413389c3dc01aa12b4dce615aefed0e2c +DIST ryu-1.0.5.crate 49570 BLAKE2B 3bfba4a5f290a429de7ac3b86823b2a973f40eb6f48c15329173d95964d31ada36f2618be4b36774a03f97f2ce61364900c6a3ad5465a294e2df311a1f4104ed SHA512 d1708ffa3112a684edf2956b6730ead040401d38f1457cde074eaaa59c249007dc8b925629e7f6df89f7ea757e9d0826649d685cc8ede0a04d50296048bf476c +DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c +DIST scoped-tls-1.0.0.crate 9146 BLAKE2B e6cecc543760a293b9ba4e71bf0d12f3360782795bc9d0f0bb054614a1c393f081b6178e98708b896037f5b8edcf371b727e7eb80f62bca24fe09a1903456729 SHA512 f09dd404bb45349ef444e7274a2aabfeaeda7c3c9f964bf5c52c39984c137f63bdf9fb3e33df8e312e52872f7721de25951a7f3b8333a670626c51afd36d314c +DIST select-0.5.0.crate 60423 BLAKE2B 96520bd4ce08fdc86836aa7132b92578668795926747900a52d382c8a3fc27a491d9f06454bdc0aa3acf69de20849bb67311be3021a629041a46ae5900b2b232 SHA512 f76fcc87dcba0e2b2804e82e12f744c2a7609080e85dcc6c3eb65ee470ca832d693d3e206c72241d2155112701f0c96a1716f4b666f2e0118b245ec55032d043 +DIST semver-0.11.0.crate 20826 BLAKE2B 9006a801dab95e7a28605f623984b467221c3207b64af251bce3fb4fa74f731c4a3b9f95081bac59f754fab215782856edd98dd763b66563010498b97e8f35d9 SHA512 bdbd8eba37071ec1d24d372cc34ac4d82b6d914e7396ed51276e80d4d299864507a9d837ef381f6c4868981b7ca35514050ab8d7a621d43697a9c4b4bd5d8573 +DIST semver-parser-0.10.2.crate 23176 BLAKE2B a946a635d207f14a59f3b5db3d0a6dd8ea283bfade3fc15f07bd9f19087bc12203591a17d697692ca12abf3618481d53f4e7492b80e7233a519bfefa49b95da0 SHA512 154a6905eb5fb854450a0bd00381f93ededd6f1a992103a53464429195102eb266c7e8681e89cf952223a51427fa17c0a36e3b7c2eb6d375b309e5fd3d721f1a +DIST serde-1.0.125.crate 75144 BLAKE2B 0823f4cec3704ce5232c266fcb69323dbcd93d2d15712abcc8cc61a2d123d662ae8153a32b3723324ea55a40f2b9101ed654cced45c500fcf399b9d7ccc113b8 SHA512 ed2819d678e7405e2d8a0cc1b43540abf2ad8871eeda4985af5e37016a42b938d7429c4e865cec2ae5364cc7fbe1052a5a46ea51b42c3ed5b9c7c1acb596ac3b +DIST serde_derive-1.0.125.crate 54155 BLAKE2B c99e9e806831dccb3ccca20675e11f603a7348c433a641a46cf9a448a7a8b7ee242d0d6110780089b08e88b8f33aef5b75e8b1d25e2e6d242a44e9093b2badfa SHA512 dd4e247c9581b437157f37e355bc3335a3927417920acce72e73d6fe05a80e19fb3160c72abede7842e7d54749c33a94335fe9f3468c2f561267b863df368a6f +DIST serde_json-1.0.64.crate 115138 BLAKE2B c61a404db9800cfb4e2ac29d4e287a7c8f388b62407d5e25e07514e2840fdf9c127476db35cb556b56143755c64c26be1c6b1facc7529067b06946ac8f54a573 SHA512 55a45dd4c60fd93d2d9331f6a8eac39fdfece9ddc1aae45ea27e3dfa81352f08c71bf03906ba99d0feb5df8d847b68547ecaa8eb5a2c76011ebbe8d4cd5bfc2d +DIST serde_urlencoded-0.6.1.crate 12540 BLAKE2B a8d697cbe24c0b1dab0c0a42a8e2277e197821427647147eb9ce1217dc41635004f6374f1a54b00e5a7b6ee54ffcb4a2c855f8ac3177645e7a8cc1bd9fe0415b SHA512 e48b87717549d1b99f5759aa12b5c76507b26a6176a69f0a3c7297145b50b539344b43a827345096783256ac8053bf700505091c6d9d0e430bf01a990803d444 +DIST sha-1-0.8.2.crate 12338 BLAKE2B 90702eff48c15b49195b547d797976837b0fc9028f76da626e094b80d5d630bedee637053dc57274c27d68b8b6f3c443f1aef37c06b7aad895630bd9d73039b2 SHA512 65ddb7bd8f0157d134e70f7c6d6abf7aea198cb97da17b418a265642c5930b8cbd9c8e0b97b557102787cc842cddc93213d669345c2aaac6a1e7146765b2d5cd +DIST sha-1-0.9.5.crate 13780 BLAKE2B d21bf44b67fdf7cb3a68cf1b9a7648c4cce4d036bb43175acda9163dca9702f17b8f4de4efdb9e30ae50a7f51a666984354e31b51bbfdb3b23c2b4bc4287ce07 SHA512 91de1c379c12ab3c15416eb48b82229856db866fdcfad75c055a1b0bb3ba521a8611c240bf44566a97d77b2519aa9740887c80f051f47a8a8486c29ff9f41f21 +DIST shlex-1.0.0.crate 4555 BLAKE2B c39f219b68e7a85fc0a0bb2df38d3b232a80815f5e541a03173d308c0274f55c61e54887c95c22d51b2e62339365bf5deac5b0d0ab3bb5d40fb70b8f75f1755b SHA512 aea9827adb630b9ed71423fb216113ee20dba31e5f1e7d078445e8bd77e7e9bfe64ea2e73f3be0fcaa472023b724793f86c06ff8efb9e4cc133f805bcf11c560 +DIST siphasher-0.3.5.crate 9455 BLAKE2B 73a09ba949dc4ea670a01e4cfc4f34d8f6ab53facd656beadda396fee087b36afd895e2acba5fecb796fb629b0f56bca84f971970c2f771ed84f74f667f9708d SHA512 4887f7b7b4c0df55c185249a16041052e16ad1f7c80d69ca69dba76af7b25095f2ace3d5b2a33346797f74b63c476a67055929c2856a6b4dff60e8fe2147f8ae +DIST slab-0.4.3.crate 15681 BLAKE2B d7e3eb0374de081d1870d2b46c9137e5ec75950a8fec217e3b120e455fe847e9245884990fbff4d01d512ea297c2012cb1a64f9b169264168081f5f7d6b20b39 SHA512 8649f32f26c1354b3281534fa0e062a145b62813c46f9ff5989ae688154221b00ed1b8c044c67a4b78c00a2e3478a8eb9c1c96fb424c24cd6cefd4df875fbb15 +DIST socket2-0.3.19.crate 33782 BLAKE2B 1ab3c61a439c1594e19c4a14958d0a85b54666532d16eaa9a1e40e586b7707b1c7b5a751fb373f16bcc26510abc25e0321808e721c0b33b7b04416b9f6cbc5bb SHA512 113d902ca0b966bc0bcad71e3b7d715c79cd075d9dd7fc4140a042bac91b3ce692fb0f1fd0216fa3f6286920b4a92e1a4c342d7ae8d1d98ded36e7480ddafec9 +DIST string_cache-0.8.1.crate 14423 BLAKE2B af0c9b9f52a246d5537ac2831be6aea462ce253b086baf6fb1773f760d566ba70917b686c2c732f60cff4c30068c5800b7c26f73763e9ef825b2fa619f6a7c00 SHA512 476aa99da2d83de7eabe68b3dc2d064cb549e2caa2b708459f883cc0a8f27bed1b1607abb1481959cc26046cfd4c44886bb87bbef5aba95a195a9d850311915b +DIST string_cache_codegen-0.5.1.crate 8243 BLAKE2B 3ce7bd89edfdd58260fb58e7b954eec503dab2562d13274f401a0af5f7e5152a660298e9884f578e361557225c67c80c0342e5c71d47aad7ec43a47ea91c617c SHA512 c3aeb752cbdbcb78cee6156b726264d182e77b3d6ac89066c366d87d8bdffc32d83e6e59a40471f07d7c827717db25fa6fb489dbd3a650f2fc252a7c85f4ecae +DIST strsim-0.8.0.crate 9309 BLAKE2B 40a8be506c43ee1ffe006ddc7dee98c3d418bdd205d57b78f5d1e4c9312feb57e1eaf952e02d92d4e0932db240c6fba45beb06ea8c4fc6de1cf1faa8b6a3a939 SHA512 1d55a8d946cd55f5f37d06aea536549ded95739fa58c0f2da285a0041154c181f663682bdcac643aa198b3e762d694a04f058db985c62ebe22b5c16327ba6d34 +DIST strum-0.18.0.crate 4207 BLAKE2B c34eb922b3d6e9aebcc92b5f6031a1e02c92bb0828ba2a69f197da80c11da78cc91a7b275cb976ece55398a3ec08470eed5ce3d18d8b5851ae306d47cb5d23ca SHA512 ed81f891fdf8a2bcf563b1b103d9cd02a2ffbdbb8c33c1be5c09920c4d1ab5409d0917bebdd4a13573a44be626dfdfe3d0892c54c7340a2f8fff7a56c4f4dac7 +DIST strum_macros-0.18.0.crate 10229 BLAKE2B cdfb1d626f8b338ec7002056e70d539e41af7ae060fb85d787d66218f6b7f58c260f99f02e0c3ba9512de371d35456ffab29a7633d0d6f716c1879adadf08b3b SHA512 df13553e2b89b2c87be3948f4881434a5eb851d0318fafab9eeb9764ea56ae8ebd50639d10fa508f674442a859d4cbd4d344c7d1253fc7f8eed3443891f4defd +DIST syn-1.0.72.crate 232500 BLAKE2B 8f71f7fb66426f78eec3439688b0468fbef582c8ca912781f19607acd9e8371f2230b305a96f613c16f7299e66fdb2395dc037e1093d3897864bd2bf50ab3d7e SHA512 f01e2ef74fc3f84a753c1c379c24e3c63f3c575d72ab865f8e7d51f4dee4293ac8197b4e123ebaa942e9199bf0a0d8194e57a5aa6314bee6951d3d458dfc3da9 +DIST tempfile-3.2.0.crate 25892 BLAKE2B ea6870c642c5712c7c96072a5d3dc04d75c19cf1413081e3bf53c1ae6c75e05ab537446071cadb5460b34f7fb7715a03005a1335a64139458db938c3415f7c0d SHA512 56d1c5af7cb6863f9eac990354126979534aae7bf298bc8b1c918c7317ce2ba31f53089aaa1ecf8baa4a39d4111d74f4450be82b509b3c2aa0428880029e663a +DIST tendril-0.4.2.crate 37138 BLAKE2B 444fd1ac19fa456075534123f73774f95f36b296afbb4b1e82a6c306971928c851dd663ab6baf09cd20f65b06e7ad46a726690df19bf00c3dddd164420b815ae SHA512 84cce485442a2e1ee6f8806a20dff038b1ff446d22ecfc9865c9ec8bcd209afe0748c7dd31f89c45cd5fd98e34abc1faf3c7a21b6d4bd5863e53d295bb700b3f +DIST termcolor-1.1.2.crate 17287 BLAKE2B 5ff748064c9fb6663befce2fd299edf6a6deb06ea72d21a62d6e77642934cca0933e10340fa84f636631cc08c76ba83ef2284b2212759129d54248e5fccb4c49 SHA512 f37b034345382cd621b1344a3fb301ca3d4d9db8b5858ac1ea82372c983229fce3c0ea8213d6b7e91291b6034affe11e2c3e593dbd95256294ce5c584b33e14c +DIST textwrap-0.11.0.crate 17322 BLAKE2B 257428908342774593bbd3528fcdae710712ff54e8a711393a24356d8ba0e16e466a4b20c05f942c48ca76b3b5b5aaa90ec202f782cad892caa8b71ccf124da6 SHA512 f5c0fe4f28ff1a3a0931e8e235b5157a45f67967985bcc752418c5ec3481fca44a8ae4800088889b37e8cd0533f53d3c456d5ffd19b767b3f83a87b49a2e209a +DIST time-0.1.43.crate 28653 BLAKE2B 95fe69647e8d52784be1fd3457578896aa38279d00f51f1070eadab111d39450583c63854c73d4384f2e4349b0250f1c9bff9901529b776c596846c057c93335 SHA512 c3e0c68cab1ed2f33f41955f83e632c51924e4d3c1d22dd0c4ae98499e03f3cafde8b0c2d9e69b67a78d6e4055e464ee00d1ed6af5eb9fa75052405b43e24a25 +DIST tinyvec-1.2.0.crate 41625 BLAKE2B d7ffe63aa2f076ecf57a2c8af3269abc7c811b7e19c3bb6ce4830f9d12a9942620a43786f4f578000d01883a9cc33105619e4357b29d64babb9d6313ad99bbd1 SHA512 eae5ef44a90995a3e7186e52c1d90447f677b9b6db2f4e120e5c32f2077f324f000a16474e347eae702b7fa2a487f3e5ff06baa2082f3904ecf404c27ceae74e +DIST tinyvec_macros-0.1.0.crate 1817 BLAKE2B a3d1966bf57c11afcd026269135a6189f149f905bb70b47537c0a7bcaef0bfc6c89bdcbdb0f6cb8e5255632855134631c683fc90606a254ec8ba818fd5ef0794 SHA512 d6afc83a3c70cde916a6ff599e2772588e4bbfa7a5b1c7e5c8aa0f4a8a5c9426182497a644e4a88194ece986d38fa64b6c8eda9eb1630441c8e65a8741a45873 +DIST tokio-0.2.25.crate 413390 BLAKE2B 3fc36579030bac46a733bbb061088eee56e9a172241f74d744de972065507db14202a0533a5d231bbba495404c16b5d6bec0d11ebb11e258ff0273b47b2f7d90 SHA512 19b8d46a81230be0a06d6354c2775b20fe0c108b4c504f5fe798952bf84f8ecfd9fd149ba899ee67a1158e1b0ea9eab49f6249a655eb0ab1cf418c0097b30705 +DIST tokio-macros-0.2.6.crate 6460 BLAKE2B 239493963b5fb28eb9ea7dd568576db4d38c7e6b8ead4d072862891ca5aa096a8ae61481f3cc256d1bba2a2ae9a62660a8a0ac3a1b0408cf33f4b204a252d095 SHA512 1e3f7f42dcece16d8785e500816768ecdef944b0297bea9ca215c15aadf1dc89030061cd4ac01fc9d3c32ee83c6471dccbf7e99ff8f2385853e831e08954a51f +DIST tokio-tungstenite-0.11.0.crate 30705 BLAKE2B 769218c0c6b29bb47e0e9f6bada613a11ac6e80fb59afdbaae6073aba13f2a09365ea6f6af3617a5a02f125faf8fa21fdc91f331d8f03e346609815075ba1725 SHA512 3a297c68556e4baff01b27fb0e03054c8be003f45535e28622ffe61a5104bd1ec8528838a7944de7289cf607ca7bfde34e7cd71efc26c1e833e40d41ae10ee16 +DIST tokio-util-0.3.1.crate 27233 BLAKE2B 96e43dd3f6f6209a6436e6ef3a40739f44507312b02a83f0316c7500dd6a59b5a71af005a98818d9b1db0e33aed4a9330e4cf955855925c8a428132762985db2 SHA512 301a5d9a8a9537653e17d3360dc27d41c95aa28bcda3e0815923dca0ac735071b01b9fc8c1d53e826e0cd1e6e5f98cc233f1e9dea906ba06c6b5192608ae7ae8 +DIST toml-0.5.8.crate 54219 BLAKE2B b4f9f563e5ba4574d4f2dcbe244378a2e1e984bd9fbbbfa5a06bdd5f8b8d677394f0db9cb8696f6936c80a52caa86b1b3ebaf3885c53855af23f03d318785f19 SHA512 26b7901ee4b7cbb4cf8ea57d365a99ed05e0a76e73452e47d4bcb3b4eeb7bbd393c13eea9ea33dc13622942efcda39acdba9425b74b40c920c9f19673a1f2082 +DIST tower-service-0.3.1.crate 6299 BLAKE2B f56562faebe3a933f39f8e2093af65378bd307c59f9695408510ea9ca2230c68228c6726a0a2c7c42943002837dd9d86ce0a1d4b7849ba5c61df28df7632d909 SHA512 d23f9db2d6632f561970b55eaeaac22a20c8b9af18931cd564db193688eb2a2973127b440e175cfd7358f3d0ead53f7a759e34b7b86c293751079af9c2181ba7 +DIST tracing-0.1.26.crate 68583 BLAKE2B dbdeb4081dddb777d52afd1afb043e018e72f99ce6c4fbb16cb14e618da9c794ee594252cdd7a6d4a7c149a8ea86d63f6e4f1d75ad3bd76590d70af107616eac SHA512 19ddccaebb2d3b2230a6ceda5f72af29200ae760e8d411c2073e7338a6ca2231c8b2b14180eabec78dd521ab7b48996966b0419725adf8c67a03d1775ec834be +DIST tracing-core-0.1.18.crate 48381 BLAKE2B f175efd5481bbc9e881a36dad6c29eeb4b39400dd117e178d9e7a0e765cfdd3f36abe7e3fc2a537c79c5af544c764a0273a382cae907f5e79b6c140ffd2b9a91 SHA512 a5fddcc04651d05e61c2422d028a399cca260672f7a8e5c072126d9d4e21ef7a38911fca09e32c6da287a0f1cb6d1297d30e0f6fbb951fc190d2a67281a115b7 +DIST tracing-futures-0.2.5.crate 11637 BLAKE2B 2b23233705674cadf5dc8092d3990f375e780de2b9bdfcbfdd5f4bc9bd0f15a14c6bc8e36963bcd332e729b33b90ecd10b2250495e0657eaeb302e666313534e SHA512 8a437a029e18dcac3a3be7a3355a63e75432ff892316c9f2929c7557e3895b1bb5efb59a7588372bd9efc386b5cab54c2b382be99ef8fa643e66ae5656e506bb +DIST try-lock-0.2.3.crate 4158 BLAKE2B d8bb2fd8ba10285871ac3dee069474d4225e312c0a13b6bc238604c5207fe33437541abfdb507a6b400fc3359b78d39a7e9a5bebca426692b5dab4622b09c192 SHA512 ebae7ba9227e6fc20499b48ab85169943765342d4790bb4a31ac33a2be0af9401e2854c8e00b9d3b7e225d16875c90700b1c3fa99af07833d3b7a91b7a414fc3 +DIST tungstenite-0.11.1.crate 53895 BLAKE2B 6a08674ed6c1b161dbebcf32a43345bd3f167e57599eb070aca57cfeab09339505afbbfe5d10214bfb68c0775ce4b44e4337767fac60e1fd938b1f165db99d06 SHA512 b63a4c0d50a4d4ed11e21741f8c7f0eb958bd1cc930c09b104d3823d8a0f81a310b08c58968cad44730229f32c7d043accb1acd6e905c1227ef07c2990b78aed +DIST typenum-1.13.0.crate 40238 BLAKE2B 5e5f9c8c60a4406c5a9a487033ddf7e8fd835bc255547e8b3f94c966e0f661f9b8a2f4a844661c00ee3c7e01f9fa109ac79c6bf53a064335c317dc9d9f8b0923 SHA512 0cd0b884509a5b4a252bed10309139350fce24b5d4bb887f4c0757ed18cb2481e331d7dc32fc81f4cabeeb5849e89ea5d92ea9815cb2985e5df4a022ac703de1 +DIST ucd-trie-0.1.3.crate 44615 BLAKE2B 491f604d63446dbccf5176333edd159ac56261a9aa76efecf57e9a11ae017a6cba975658a4ffdd310561704fb0831686fb7770b1142b4ac495f01e26de51b099 SHA512 54d43b3824669aa20b725c7747f4fb65bd24e620670c968c1bb0094a0503773acda921b50a0b200c1ea0f84e1e059883c1704bfa5a856d2e2ccda116fb8c3e2b +DIST unicase-2.6.0.crate 23478 BLAKE2B 6e580108ac81b1cbee70e5bd331f43b12f266dae4f4f758bb8f5f073bd1af61943ee0de34cc27769525b19da8c24f8dea4941d0f5454594ab0cc8b78071ff053 SHA512 7e76a5f344e32c56cf87223585d87a56c79627b52bba0b29eb6de82de874b2964accededa8e9b5741f57944b6750fba5c61e679a50d4fd5a5646f431e2f4f188 +DIST unicode-bidi-0.3.5.crate 33423 BLAKE2B 26434df7646ca6fc3b655ac2482c2be70700bd84fdd31d016f49b5276b23308d1f9258d40ff97a4090e3dd603d3a19f8fe45c13c5dcde6b00816dcee1695c7d3 SHA512 4541d84db17eef16da6ea59f1ff7103549ff338d6ffabef21e75fbfcfdb1a3fd0f8e8fe18abab7b6117e997cefeaa5e87fb01fed8fedbcd0657fc913743de8ad +DIST unicode-normalization-0.1.17.crate 100345 BLAKE2B 2579748ab87f6d74ab8e845d88c1990e4ef32e46e38f9a1841e3381d257d973f2f8a9da359c8e3f11790a888acf81f548ed3b749a67bb3e95acf3b744dd063f3 SHA512 727b4844a4eb103375dff7d88d620e1fb581cbdf2523f07a5c1673ff333d772d48ffae7658bfe4816a5bb42de5f68a96e15be9341c540a0f746c2990eeccb3d6 +DIST unicode-segmentation-1.7.1.crate 93066 BLAKE2B 80058a79c64972dfff897b08a24e9f18ae0fa312a50f86fc321961eeab83c5546bdbc30534315870d891e648bde1d7d77f459ec9744455bdebb94bf6e326f2ef SHA512 183ca68d456a8d53e6f255129e8fd07b87d8da23b8f18187231d6fa70dac80e4069eb6c501d45155d9f0050b6bd713964e55f0e4b25a40546c4d245a17fc8dc6 +DIST unicode-width-0.1.8.crate 16732 BLAKE2B 5aa7b87eef1322e4151a3fcf981ade311b8fa030527d7561815950e58d3f15156163dfe34da6a708c37dccc3f7652bf7fc2cd899fe8bb0118b67c4113ff3a2d2 SHA512 0abba6da6981a2451e01d93bbd47652c46eb6fb07cc0214f33259fb29945bfd5ee2b302e883ddca8f68e921635f222701b7310e7da2a5e225f854980d1e474b0 +DIST unicode-xid-0.2.2.crate 14955 BLAKE2B 6c6da49ac08dbd8b3248272224d6bff96b9cd1f36029b1937a58a0b929c3a48326053305ed49e73edd70f572f5abbc4817cedc899c69e3457805ad056669f6af SHA512 92ffd0dd34e3ca235ecf110b38c447d3ec1faa23d76c112457f28d432f92fa6b5f428bc5e1bfd278f361f55426dd96e19ecb0d3eff6cf250892f069c52bd89a8 +DIST url-2.2.2.crate 68555 BLAKE2B f8e59f784b6c2e16bacfba36ad68670a6af17c16ea3b0866b5aa98e5bf4686cf1b1aac9b1f0a0ea3b89a01e044a2ca37830416f42d147158ea8e88f23fd28ac2 SHA512 f9b6ad99d69ff303283b3fd9e98945fbd6cb411a3d141badcbb3a0566723a451375e6dd5d5357e3eb7a1b5b1ee5756a2347c43817db2de6fe35b9004b090e077 +DIST urlencoding-1.1.1.crate 3711 BLAKE2B d325fb842acc932f66e93e167f7bda071bdfbac21af6dc7ff6dd88407c038dab377920843cd8e6eb843a3e0cc590f423f71d4d6a866b3e27378b147c64cb09a0 SHA512 6d04e4b7d5dacfb24665b16fc7b3eca309864e5620f0d57517e6fc0f8a1342d39d225346ee5534fcd16045b0d0ee1a22aa8ca2d09508753e2449aa8b5931399a +DIST utf-8-0.7.6.crate 10422 BLAKE2B 296690040895ba9da9e69d527aea415f4bd6bd3c010e67a08f9cffd2f4cd92a99f9ddde77512f9ef5a0db069ac9ac3cd6fd91aa18f0bcadf870ed212fdd76f2b SHA512 6bf0787cc297a1ac4e47389464d05ef6850602f549621687e776618bec96c1f7bacbb1ac8faaa63e5d28d975b850db8d6c784eb66e2466128f0521b91c14015b +DIST vec_map-0.8.2.crate 14466 BLAKE2B 8f109fbff19604b82ea2aa61c952e2ce9b5597ccc8e1ef4e847648e2de08dece8c4debe92889edeccb8d393645fd0b62436b49d236ded7ad181c4a51239a9539 SHA512 4f1ef59bc2c437e79f1f84fe021bce5aa8ccd581f500f3d5776913d5f17d45b03ccee64f5bd03d47656318cfc9344a1f4311079d471fa409a8e4e94c143973f9 +DIST version_check-0.9.3.crate 12547 BLAKE2B 85761c300a8d755e0b376191ef0604728ae641261fdb10682a3134a828eadc4a33216426d286bcdbd8d0c5fcfe6ca8ba20ed078c4f53066b959739a0e73daec0 SHA512 4b3b428214a0322af536a18e6f050438398766af6589389f20a804121a6721962ba411e2dcfded60aaa74313128fb0e831bea31378e2695c29b29bdc24d7cbfd +DIST walkdir-2.3.2.crate 23516 BLAKE2B 473f2b51aafd6ac17e5c3da8d545d179b31486b3a65ab39fbd8bd7fbb2ebcc24bebf01781200a26a68f0b1cb464f5763a919aead3b03eba5a7e1be6efec5500b SHA512 6c44071354faf37720ec4117ded34c8d530489542ee107ac26a7a56ef4a882b9003e22e84f1d61f6078643521343e35aa1f7b57c838779e78e5937a667bf82da +DIST want-0.3.0.crate 6550 BLAKE2B d97ac51dd5e49bec27cd196711110679013bb7aca520235db3f38c7d4399a2a17b9cf599cd0811137df957f2341e75442d48483dc7aed6910f0eed7a78ddad37 SHA512 7e7af8ddcc6faed3e3d18384a000339617187b74b0adf111a02bc15fdb152c88007844d6fe6f35a47a13f3384a19ee4723b884623de7d45c6619d76aa6699404 +DIST warp-0.2.5.crate 110850 BLAKE2B 130083bcab21932d50a8d45eae0cef547060de673ae715499e662ab5e3c7ca33cc0abfd701cae397cc1d9d2e15d78eb9857b487ef9fdb974f3ac981924901b27 SHA512 7f3d7a2c014b34405abf89dd04b4d38434b2f95db809cb30acbacf3cec4341051857ca870d92a42489b9489e56b8030e59192954ebd98ab36adea58b8af3b406 +DIST wasi-0.10.2+wasi-snapshot-preview1.crate 27505 BLAKE2B 4eb8644b945633d6e856ad80dd74990be19eb6af99823b147163384f61d471e2d9ec054d78a7064072344be53783e57073e8fffc6d5555c149b4834a9bf31dba SHA512 06977a294d76369a3867c45abdd8a87ea5c84e5a3681075ba0d14af1aee3114ff24495c7e7f7fe1e6e42230e65fba0e062898e69bc89e0209af62c2d14094ec7 +DIST wasi-0.9.0+wasi-snapshot-preview1.crate 31521 BLAKE2B 716bdd2ec46d0bc9911c5e5e29fc783840559931b2563d8619675fc11da9527ddbe653a0f1ce0b782ee0c5f7a3131aba2b0867d415f003aa9c2389357569e7dc SHA512 dbe641f796ee3a5daafcaafc911ecc6dff170340f477c2df7a61fb4858a85aefc2637c9e61973ecce66a987aa8e08a736273a4aad3ef47eaf61ed4268dbf9c47 +DIST which-4.1.0.crate 7684 BLAKE2B 4d8eb0a263c14b506f446fa808d9326c6e4e781cc2d79a1f6efcf7b9bb9a294d3266a2f3de4526ac0ec08ca65a18622ac064e9ae1e86dd1b325b122f684371f8 SHA512 4fffd3dd4ac73f5c232ee8a53bbc948a7295a2a51ec3f792d5d0aa84ceb6c2322fc11b35d29f5d3181c763b34c434c5ea2807ae6cc3393cd30d68b0fd44c7a22 +DIST winapi-0.2.8.crate 455145 BLAKE2B 50f3c2a0cf4eeedd6891b11392e520c1cca139a71f8f736eabaf43aa7e4b1b5d57697918978220459572d373940edf971eb8302f292cbff832283e905076319a SHA512 115e6f027cdd4a56f77ca24f4ab249d2a6cac1e1f955c826a9b6ee05db4861790a533f5e674aebbb540370fff52ed41618c2cd7c906e73200e92df213109cebe +DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97 +DIST winapi-build-0.1.1.crate 669 BLAKE2B 6c8d8e0f81574c086f06fb3f234b0e6759d293d1d254857c3d491e4d43279e5c2f57f2fcfdc9d5d7b083280f4cc2a75a6ee9bc1541ec6ce8f8d904ded0567faf SHA512 8b0a239e205a5368892f41c870a8a7ea16e3468c364b03382bef7fa3a2e7159b09c07661e95b1227578f6d72c14879daa4444b28c51ae20ef15d985d59ca5a77 +DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2 +DIST winapi-util-0.1.5.crate 10164 BLAKE2B fc800aceae5249a858c806c3e969ef2545766099872d856ebee51c883d9acf1122278db9607d50ca53eac351502b700fd2463900932d342240f97f683d517963 SHA512 7baeb661f397c4693dfa001fdc774b323c51a7c55caad40f2de5112a1cefd1d6151e3df41fa4ee193460a5905917c83d2b1de5fa10b4bd014ad96690af95c0fd +DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513 +DIST ws2_32-sys-0.2.1.crate 4697 BLAKE2B 52a7a3f57bcd73156730ada4d78fe12a54a498c9064e0928e09de13a95bd9237f884538e5f9368b47a7ac3c425f0f798c26bad85f20bed4ea26c2fa16c779b97 SHA512 18356861fc595efe7d0180afb8ce7649da35a4f9ba456271d2068679ab258a861af32a2e016e241fbfbf5f6ef0eb33127b26eabfc11428af39506538faa4821f +DIST xml5ever-0.16.1.crate 41282 BLAKE2B 3a1a634244a138faf665ca3a287bafb54adad829a1e8edc541d6cd6a2357c5afd00114e340f33b0735139a630475a58d7e5d36bef094574efcceccfd08b57778 SHA512 20ad09f202336950c13867d69582a12e5daba671d5ffc79d3f8a69a13f7911b04e135cf5791a24744d6bb909b10e6eef5d5f0b52b5d1124ead2b1017e4d4c4ee diff --git a/app-text/mdbook/mdbook-0.4.9.ebuild b/app-text/mdbook/mdbook-0.4.9.ebuild new file mode 100644 index 0000000..0c5363c --- /dev/null +++ b/app-text/mdbook/mdbook-0.4.9.ebuild @@ -0,0 +1,247 @@ +# Copyright 2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CRATES=" +aho-corasick-0.7.18 +ammonia-3.1.1 +ansi_term-0.11.0 +anyhow-1.0.40 +atty-0.2.14 +autocfg-1.0.1 +base64-0.12.3 +base64-0.13.0 +bit-set-0.5.2 +bit-vec-0.6.3 +bitflags-1.2.1 +block-buffer-0.7.3 +block-buffer-0.9.0 +block-padding-0.1.5 +byte-tools-0.3.1 +byteorder-1.4.3 +bytes-0.5.6 +bytes-1.0.1 +cfg-if-0.1.10 +cfg-if-1.0.0 +chrono-0.4.19 +clap-2.33.3 +cpufeatures-0.1.1 +ctor-0.1.20 +difference-2.0.0 +digest-0.8.1 +digest-0.9.0 +dtoa-0.4.8 +either-1.6.1 +elasticlunr-rs-2.3.11 +env_logger-0.7.1 +fake-simd-0.1.2 +filetime-0.2.14 +fnv-1.0.7 +form_urlencoded-1.0.1 +fsevent-0.4.0 +fsevent-sys-2.0.1 +fuchsia-zircon-0.3.3 +fuchsia-zircon-sys-0.3.3 +futf-0.1.4 +futures-0.3.14 +futures-channel-0.3.14 +futures-core-0.3.14 +futures-io-0.3.14 +futures-macro-0.3.14 +futures-sink-0.3.14 +futures-task-0.3.14 +futures-util-0.3.14 +generic-array-0.12.4 +generic-array-0.14.4 +getopts-0.2.21 +getrandom-0.1.16 +getrandom-0.2.2 +gitignore-1.0.7 +glob-0.3.0 +h2-0.2.7 +handlebars-3.5.5 +hashbrown-0.9.1 +headers-0.3.4 +headers-core-0.2.0 +heck-0.3.2 +hermit-abi-0.1.18 +html5ever-0.25.1 +http-0.2.4 +http-body-0.3.1 +httparse-1.4.0 +httpdate-0.3.2 +humantime-1.3.0 +hyper-0.13.10 +idna-0.2.3 +indexmap-1.6.2 +inotify-0.7.1 +inotify-sys-0.1.5 +input_buffer-0.3.1 +iovec-0.1.4 +itoa-0.4.7 +kernel32-sys-0.2.2 +lazy_static-1.4.0 +lazycell-1.3.0 +libc-0.2.94 +log-0.4.14 +mac-0.1.1 +maplit-1.0.2 +markup5ever-0.10.1 +markup5ever_rcdom-0.1.0 +matches-0.1.8 +memchr-2.4.0 +mime-0.3.16 +mime_guess-2.0.3 +mio-0.6.23 +mio-extras-2.0.6 +miow-0.2.2 +net2-0.2.37 +new_debug_unreachable-1.0.4 +notify-4.0.16 +num-integer-0.1.44 +num-traits-0.2.14 +opaque-debug-0.2.3 +opaque-debug-0.3.0 +open-1.7.0 +output_vt100-0.1.2 +percent-encoding-2.1.0 +pest-2.1.3 +pest_derive-2.1.0 +pest_generator-2.1.3 +pest_meta-2.1.3 +phf-0.8.0 +phf_codegen-0.8.0 +phf_generator-0.8.0 +phf_shared-0.8.0 +pin-project-0.4.28 +pin-project-1.0.7 +pin-project-internal-0.4.28 +pin-project-internal-1.0.7 +pin-project-lite-0.1.12 +pin-project-lite-0.2.6 +pin-utils-0.1.0 +ppv-lite86-0.2.10 +precomputed-hash-0.1.1 +pretty_assertions-0.6.1 +proc-macro-hack-0.5.19 +proc-macro-nested-0.1.7 +proc-macro2-1.0.26 +pulldown-cmark-0.7.2 +quick-error-1.2.3 +quick-error-2.0.1 +quote-1.0.9 +rand-0.7.3 +rand-0.8.3 +rand_chacha-0.2.2 +rand_chacha-0.3.0 +rand_core-0.5.1 +rand_core-0.6.2 +rand_hc-0.2.0 +rand_hc-0.3.0 +rand_pcg-0.2.1 +redox_syscall-0.2.8 +regex-1.5.4 +regex-syntax-0.6.25 +remove_dir_all-0.5.3 +ryu-1.0.5 +same-file-1.0.6 +scoped-tls-1.0.0 +select-0.5.0 +semver-0.11.0 +semver-parser-0.10.2 +serde-1.0.125 +serde_derive-1.0.125 +serde_json-1.0.64 +serde_urlencoded-0.6.1 +sha-1-0.8.2 +sha-1-0.9.5 +shlex-1.0.0 +siphasher-0.3.5 +slab-0.4.3 +socket2-0.3.19 +string_cache-0.8.1 +string_cache_codegen-0.5.1 +strsim-0.8.0 +strum-0.18.0 +strum_macros-0.18.0 +syn-1.0.72 +tempfile-3.2.0 +tendril-0.4.2 +termcolor-1.1.2 +textwrap-0.11.0 +time-0.1.43 +tinyvec-1.2.0 +tinyvec_macros-0.1.0 +tokio-0.2.25 +tokio-macros-0.2.6 +tokio-tungstenite-0.11.0 +tokio-util-0.3.1 +toml-0.5.8 +tower-service-0.3.1 +tracing-0.1.26 +tracing-core-0.1.18 +tracing-futures-0.2.5 +try-lock-0.2.3 +tungstenite-0.11.1 +typenum-1.13.0 +ucd-trie-0.1.3 +unicase-2.6.0 +unicode-bidi-0.3.5 +unicode-normalization-0.1.17 +unicode-segmentation-1.7.1 +unicode-width-0.1.8 +unicode-xid-0.2.2 +url-2.2.2 +urlencoding-1.1.1 +utf-8-0.7.6 +vec_map-0.8.2 +version_check-0.9.3 +walkdir-2.3.2 +want-0.3.0 +warp-0.2.5 +wasi-0.10.2+wasi-snapshot-preview1 +wasi-0.9.0+wasi-snapshot-preview1 +which-4.1.0 +winapi-0.2.8 +winapi-0.3.9 +winapi-build-0.1.1 +winapi-i686-pc-windows-gnu-0.4.0 +winapi-util-0.1.5 +winapi-x86_64-pc-windows-gnu-0.4.0 +ws2_32-sys-0.2.1 +xml5ever-0.16.1 +" + +inherit cargo + +DESCRIPTION="Create book from markdown files. Like Gitbook but implemented in Rust." +HOMEPAGE="https://rust-lang.github.io/mdBook/" +SRC_URI=" + https://github.com/rust-lang/mdBook/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + $(cargo_crate_uris ${CRATES}) +" +S="${WORKDIR}/mdBook-${PV}" + +LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 CC0-1.0 ISC MIT MPL-2.0 Unlicense ZLIB" +SLOT="0" +KEYWORDS="~amd64" +RESTRICT="mirror" +IUSE="doc" + +BDEPEND="doc? ( app-text/mdbook )" + +src_compile() { + cargo_src_compile + if use doc; then + pushd guide || die + mdbook build || die + HTML_DOCS=( "${S}/guide/book/" ) + popd || die + fi +} + +src_install() { + cargo_src_install + einstalldocs +} diff --git a/app-text/mdbook/metadata.xml b/app-text/mdbook/metadata.xml new file mode 100644 index 0000000..50f4835 --- /dev/null +++ b/app-text/mdbook/metadata.xml @@ -0,0 +1,11 @@ + + + + + parona@protonmail.com + Alfred Wingate + + + rust-lang/mdBook + + From 9f1e5010883d395e242f55a78c1ea5871e30e009 Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Thu, 3 Jun 2021 20:17:19 +0300 Subject: [PATCH 2/6] dev-tex/tectonic: add doc use flag and improve dependencies Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Alfred Wingate --- dev-tex/tectonic/tectonic-0.4.1.ebuild | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/dev-tex/tectonic/tectonic-0.4.1.ebuild b/dev-tex/tectonic/tectonic-0.4.1.ebuild index a2f3f84..e1235a5 100644 --- a/dev-tex/tectonic/tectonic-0.4.1.ebuild +++ b/dev-tex/tectonic/tectonic-0.4.1.ebuild @@ -245,20 +245,18 @@ RESTRICT="mirror" LICENSE="0BSD all-rights-reserved Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0 ISC MIT MPL-2.0 Unlicense ZLIB" SLOT="0" KEYWORDS="~amd64" -#IUSE="doc" +IUSE="doc" DEPEND=" dev-libs/icu dev-libs/openssl media-libs/fontconfig media-gfx/graphite2 - media-libs/harfbuzz + media-libs/harfbuzz[graphite,icu] sys-libs/zlib " RDEPEND="${DEPEND}" - -# TODO: -# Add mdbook and then enable documentation +BDEPEND="doc? ( app-text/mdbook )" src_configure() { # Test fails with -ftree-slp-vectorize, therefore disable @@ -270,17 +268,17 @@ src_configure() { src_compile() { cargo_src_compile - #if use doc; then - # pushd docs - # mdbook build - # HTML_DOCS="${S}/docs" - # popd - #fi + if use doc; then + pushd docs || die + mdbook build || die + HTML_DOCS="${S}/docs/book" + popd || die + fi } src_install() { cargo_src_install - #einstalldocs + einstalldocs } # There is feature called serialization that is enabled by default, From b0ba8032199c37eac858ccf2d3810a517acb5fba Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Fri, 4 Jun 2021 00:58:06 +0300 Subject: [PATCH 3/6] www-client/makeicecat: bump to 78.11.0 Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Alfred Wingate --- www-client/makeicecat/Manifest | 2 + .../makeicecat/makeicecat-78.11.0.ebuild | 62 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 www-client/makeicecat/makeicecat-78.11.0.ebuild diff --git a/www-client/makeicecat/Manifest b/www-client/makeicecat/Manifest index 897efc7..afd9882 100644 --- a/www-client/makeicecat/Manifest +++ b/www-client/makeicecat/Manifest @@ -1,2 +1,4 @@ +DIST Mozilla_pgp_key-20210507.pgp 23372 BLAKE2B 91eeef4d8f54acc7c43b390c59eea266d6674b83a7eea8850a92aff95ef3fcbd2153ee348a6e0dc01d75c146e148c8d8dd169100114b39fb62b2c703d48276f7 SHA512 7a3fcff9131e49996e2272915ea8c07c8de1625fa732fe97a54500d35411d47d0be3054b2cacdd86c03ce05e524f215993277eadbfa112b5db1bd7be7d2755ca DIST makeicecat-78.10.0.tar.gz 8005956 BLAKE2B f84f172efac5c38cbbba980f73bbcb3218410950900dd45453eed30dbe3fd253220085f10bd7785fd4c001971a0d3346cdd6c229df69132f6147d2f75a63ccab SHA512 124dc4222d1dcf20e03d050b8fe657be436df5ce7c332c36dc1f5332b52e1221f05e9279866d7eac4872ef3825881b6e2d2067a8c88e96fa094baff6f4631495 +DIST makeicecat-78.11.0.tar.gz 8005504 BLAKE2B 66b86b48cce26cf8087d78d7d369325c64f28b8bd92dc5ace284bbba1fdfe9aa9d8e0b82a825ccf45d8c9dae14d634d6a88ace701f7618419775d0a0b1ffe384 SHA512 97e4e1a51387374417d04eb0e46cc4ba6e7ef0188eb05750b3db820857853fec597a81516a83612a085a1e7f9f1fd6f82779deb38488fdf842419c6b774a62e3 DIST makeicecat-78.9.0.tar.gz 8005836 BLAKE2B 54cea711db234e5547994a84466561247e344fbfc1e0d552c549c0743e3d4ab8454190aafff90e7abd0180c3c7ee89636b7508723920f268ebf3f9f5f4d2e8e1 SHA512 b0f53383c32233251fae2350569c3ac55e7e5b7fc54a911b5ad4bc6deba47abb2a02ad4df94ac0d1fd9aa3682d70f9113cfb7efa18a0cf116bec540674dc1504 diff --git a/www-client/makeicecat/makeicecat-78.11.0.ebuild b/www-client/makeicecat/makeicecat-78.11.0.ebuild new file mode 100644 index 0000000..0ae0d9f --- /dev/null +++ b/www-client/makeicecat/makeicecat-78.11.0.ebuild @@ -0,0 +1,62 @@ +# Copyright 2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Script for creating GNU Icecat tarball" +HOMEPAGE="https://www.gnu.org/software/gnuzilla/" + +COMMIT="27c91a14d6c389ebbbaeed6191207bfbf8f97c75" + +SRC_URI=" + https://git.savannah.gnu.org/cgit/gnuzilla.git/snapshot/gnuzilla-"${COMMIT}".tar.gz -> "${P}".tar.gz + https://archive.mozilla.org/pub/firefox/releases/89.0/KEY -> Mozilla_pgp_key-20210507.pgp +" + +LICENSE="GPL-3" +SLOT="${PV}" +KEYWORDS="~amd64" + +IUSE="+buildtarball" + +RESTRICT="buildtarball? ( network-sandbox )" + +RDEPEND="${BDEPEND}" +BDEPEND=" + app-crypt/gnupg + dev-vcs/mercurial + dev-perl/File-Rename +" + +S=""${WORKDIR}"/gnuzilla-"${COMMIT}"" + +src_prepare() { + default_src_prepare + # Making sure that latest Mozilla public key is available for verying the firefox tarball + gpg --import "${DISTDIR}/Mozilla_pgp_key-20210507.pgp" || die +} + +src_compile() { + if use buildtarball; then + ./makeicecat || die + fi +} + +src_install() { + insinto /usr/src/makeicecat-"${PV}" + doins -r "${S}"/{artwork,CHANGELOG,COPYING,data,makeicecat,README,tools} + fperms +x /usr/src/makeicecat-"${PV}"/{makeicecat,tools/{AddonsScraper.py,buildbinaries,createdebsrcrepo,gnupload}} + if use buildtarball; then + insinto /usr/src/makeicecat-"${PV}"/output + doins "${S}"/output/icecat-"${PV}"-gnu1.tar.bz2 + fi +} + +pkg_postinst() { + if ! use buildtarball; then + einfo "You haven't enabled buildtarball, therefore you have to create the tarball yourself." + einfo "You can create the tarball in /usr/share/makeicecat-"${PV}" by starting the script manually." + einfo " ./makeicecat" + einfo "It will take a while so be prepared." + fi +} From b04d4cec988ecad7b4642c730005ef10a3c6ba30 Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Fri, 4 Jun 2021 00:58:40 +0300 Subject: [PATCH 4/6] www-client/icecat: bump to 78.11.0 Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Alfred Wingate --- www-client/icecat/Manifest | 2 + www-client/icecat/icecat-78.11.0.ebuild | 1069 +++++++++++++++++++++++ 2 files changed, 1071 insertions(+) create mode 100644 www-client/icecat/icecat-78.11.0.ebuild diff --git a/www-client/icecat/Manifest b/www-client/icecat/Manifest index 409d12b..fe0fe76 100644 --- a/www-client/icecat/Manifest +++ b/www-client/icecat/Manifest @@ -1,4 +1,6 @@ DIST firefox-78esr-patches-10.tar.xz 66396 BLAKE2B c29b723e47c58b10885b220080568aba751e1b73c58e28fce62a2da4c4c3ba8c71b63e60448d17599a3df4446dbd9f9387b4b2b75da5ed1e545591aafe8ec83c SHA512 6bb9caf1f6867b894ab315a73f8ae6f381b5c80c90539f38e786ee653c72c0df055aade854faa23f22cab2253f54abaf918a756945b76ed88f5a224ba8a8f12f DIST firefox-78esr-patches-12.tar.xz 67840 BLAKE2B d85abdbb54a252852badac50866cf5b5009c050ec4aa80ae2454eef2719e80f3442f5a74ec58d3c36531539042830427cd85507b708c1d5b36ea44dd0cef60b7 SHA512 4445c0880fc234c3838394483ce986e4e222260a99427069ba9c55b56fcd49a485ec916ee6aa2629f922390e92bfcd78028e30cc2e62fad9bc080ae45b26ba2e +DIST firefox-78esr-patches-14.tar.xz 82976 BLAKE2B 08cc3618c8069f4169b7647e7eb699153d558bb89f8a4f1ed74d5ccd339f77119cd8f253df011f0c2f255ad889b65e843171d7559f469788463ca7e9aa2e96aa SHA512 1611c6f9d2c7d586e7b53810c1cfdb2682f5d289b1b019b71694b1ab2d8bbdfe827a73cfaf59f7e4808c0b90409ca4fa57e27655d8cdf0c578ffdbad33659f26 DIST icecat-78.10.0-gnu1.tar.bz2 513140961 BLAKE2B e008b4bebc6dbec78eecd18c14f37c155c5f883279120584c2a774e1e8fc4a6d1d24369ef1799224ec309fde6f4a8c276cf205eea5ecbfd061bea55a089e6e9b SHA512 682d194c1404b039d60c1916648d319bb428ce5fb3058a8e5989437de7a80d2184aefd69004e22e0a8e639f026df4f6d7445a2cce551d929323b6193cbedad94 +DIST icecat-78.11.0-gnu1.tar.bz2 514067936 BLAKE2B 88b0b76a1e08d3c6114d55e3613097e778eeae11d271c722552fd90da51b50c6abf621b11c6ba15702d737510dbd5a72397c1078722dcf149b165435fc349794 SHA512 8969c4c6726364cb96dc9735942e39b1532ef1d591202e098b0a3bd269f12168c7efdd813373fc11e0dada1c6db964794db21ac0f08add6a0cc82daf183e136e DIST icecat-78.9.0-gnu1.tar.bz2 512766353 BLAKE2B e1a7b0ef7b57a525fff75c9558f951a176bb021f835176fbab2b9600b2d8a20d02086074c7f3bfbbb0f534565c4403670dc16145241d957ebe0306fea6c2f322 SHA512 a228570d44992c160318489e7b9745b34e6429da88dd9225372f6e90243d7e7794ef98a691024d1de0a14cf555a54a27b1897d78d39e5d14d100e9938bbb3d54 diff --git a/www-client/icecat/icecat-78.11.0.ebuild b/www-client/icecat/icecat-78.11.0.ebuild new file mode 100644 index 0000000..09a5c56 --- /dev/null +++ b/www-client/icecat/icecat-78.11.0.ebuild @@ -0,0 +1,1069 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Ebuild is based on the Firefox ebuilds in the main repo + +EAPI="7" + +# Using Gentoos firefox patches as system libraries and lto are quite nice +FIREFOX_PATCHSET="firefox-78esr-patches-14.tar.xz" + +LLVM_MAX_SLOT=11 + +PYTHON_COMPAT=( python3_{7..9} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="pgo" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils llvm \ + multiprocessing pax-utils python-any-r1 toolchain-funcs \ + virtualx xdg + +PATCH_URIS=( + https://dev.gentoo.org/~{axs,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +SRC_URI=" + !buildtarball? ( icecat-${PV}-gnu1.tar.bz2 ) + ${PATCH_URIS[@]} +" + +DESCRIPTION="GNU IceCat Web Browser" +HOMEPAGE="https://www.gnu.org/software/gnuzilla/" + +KEYWORDS="~amd64" + +SLOT="0" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="+clang cpu_flags_arm_neon dbus debug +buildtarball geckodriver + hardened hwaccel jack lto +openh264 pgo pulseaudio screencast selinux + +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent + +system-libvpx +system-webp wayland wifi" + +REQUIRED_USE="debug? ( !system-av1 ) + screencast? ( wayland ) + wifi? ( dbus )" + +BDEPEND="${PYTHON_DEPS} + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.14.3 + >=net-libs/nodejs-10.21.0 + virtual/pkgconfig + >=virtual/rust-1.41.0 + || ( + ( + sys-devel/clang:12 + sys-devel/llvm:12 + clang? ( + =sys-devel/lld-12* + pgo? ( =sys-libs/compiler-rt-sanitizers-12*[profile] ) + ) + ) + ( + sys-devel/clang:11 + sys-devel/llvm:11 + clang? ( + =sys-devel/lld-11* + pgo? ( =sys-libs/compiler-rt-sanitizers-11*[profile] ) + ) + ) + ( + sys-devel/clang:10 + sys-devel/llvm:10 + clang? ( + =sys-devel/lld-10* + pgo? ( =sys-libs/compiler-rt-sanitizers-10*[profile] ) + ) + ) + ) + lto? ( + !clang? ( sys-devel/binutils[gold] ) + ) + amd64? ( >=dev-lang/yasm-1.1 ) + x86? ( >=dev-lang/yasm-1.1 ) + !system-av1? ( + amd64? ( >=dev-lang/nasm-2.13 ) + x86? ( >=dev-lang/nasm-2.13 ) + ) + buildtarball? ( ~www-client/makeicecat-"${PV}"[buildtarball] )" + +CDEPEND=" + >=dev-libs/nss-3.53.1 + >=dev-libs/nspr-4.25 + dev-libs/atk + dev-libs/expat + >=x11-libs/cairo-1.10[X] + >=x11-libs/gtk+-2.18:2 + >=x11-libs/gtk+-3.4.0:3[X] + x11-libs/gdk-pixbuf + >=x11-libs/pango-1.22.0 + >=media-libs/libpng-1.6.35:0=[apng] + >=media-libs/mesa-10.2:* + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) + virtual/freedesktop-icon-theme + >=x11-libs/pixman-0.19.2 + >=dev-libs/glib-2.26:2 + >=sys-libs/zlib-1.2.3 + >=dev-libs/libffi-3.0.10:= + media-video/ffmpeg + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrender + x11-libs/libXt + dbus? ( + sys-apps/dbus + dev-libs/dbus-glib + ) + screencast? ( media-video/pipewire:0/0.3 ) + system-av1? ( + >=media-libs/dav1d-0.3.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.6.8:0= + >=media-gfx/graphite2-1.3.13 + ) + system-icu? ( >=dev-libs/icu-67.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wifi? ( + kernel_linux? ( + sys-apps/dbus + dev-libs/dbus-glib + net-misc/networkmanager + ) + ) + jack? ( virtual/jack ) + selinux? ( sec-policy/selinux-mozilla )" + +RDEPEND="${CDEPEND} + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] ) + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4 + ) + ) + selinux? ( sec-policy/selinux-mozilla )" + +DEPEND="${CDEPEND} + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + wayland? ( >=x11-libs/gtk+-3.11:3[wayland] ) + amd64? ( virtual/opengl ) + x86? ( virtual/opengl )" + +S="${WORKDIR}/${PN}-${PV%_*}" + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang ; then + if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then + ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then + ewarn "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy + da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu + fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM + ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my + nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru + si sk sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi + xh zh-CN zh-TW +) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + IUSE+=" l10n_${xflag/[_@]/-}" + done + +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json \ + || die +} + +moz_build_xpi() { + debug-print-function ${FUNCNAME} "$@" + + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + cd "${BUILD_DIR}"/browser/locales || die + local lang xflag + for lang in "${MOZ_LANGS[@]}"; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + if use l10n_"${xflag}"; then + emake langpack-"${lang}" LOCALE_MERGEDIR=. + fi + done +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_nofetch() { + if ! use buildtarball; then + einfo "You have not enabled buildtarball use flag, therefore you will have to" + einfo "build the tarball manually and place it in your distfiles directory." + einfo "You may find the script for building the tarball here" + einfo "https://git.savannah.gnu.org/cgit/gnuzilla.git/, but make sure it is the" + einfo "right version." + einfo "The output of the script should be icecat-"${PV}"-gnu1.tar.bz2" + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm_pkg_setup + + if use clang && use lto ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + # temp fix for https://bugs.gentoo.org/768543 + # we can assume that rust 1.{49,50}.0 always uses llvm 11 + local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }') + [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}") + [[ -z ${version_rust} ]] && die "Failed to read version from rustc!" + + if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then + local version_llvm_rust="11" + else + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + fi + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi +} + +src_unpack() { + if use buildtarball; then + unpack /usr/src/makeicecat-"${PV}"/output/icecat-"${PV}"-gnu1.tar.bz2 || eerror "Tarball is missing, check that www-client/makeicecat has use flag buildtarball enabled." + else + unpack icecat-"${PV}"-gnu1.tar.bz2 + fi + unpack "${FIREFOX_PATCHSET}" +} + +src_prepare() { + use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make LTO respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure \ + || die "sed failed to set num_cores" + + # Make ICU respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py \ + || die "sed failed to set num_cores" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ + || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py \ + || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clearing checksums where we have applied patches + moz_clear_vendor_checksums target-lexicon-0.9.0 + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + xdg_src_prepare +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang && ! tc-is-clang ; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + have_switched_compiler=yes + AR=llvm-ar + CC=${CHOST}-clang + CXX=${CHOST}-clang++ + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + + # Set Gentoo defaults + export MOZILLA_OFFICIAL=1 + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-install-strip \ + --disable-strip \ + --disable-updater \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --with-intl-api \ + --with-l10n-base="${S}"/l10n \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-png \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${SYSROOT}${EPREFIX}/usr/include" \ + --x-libraries="${SYSROOT}${EPREFIX}/usr/$(get_libdir)" + + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent system-libevent "${SYSROOT}${EPREFIX}/usr" + mozconfig_use_with system-libvpx + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + + mozconfig_use_enable geckodriver + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + fi + + mozconfig_use_enable jack + + mozconfig_use_enable pulseaudio + # force the deprecated alsa sound code if pulseaudio is disabled + if use kernel_linux && ! use pulseaudio ; then + mozconfig_add_options_ac '-pulseaudio' --enable-alsa + fi + + mozconfig_use_enable screencast pipewire + + mozconfig_use_enable wifi necko-wifi + + if use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland + else + mozconfig_add_options_ac '' --enable-default-toolkit=cairo-gtk3 + fi + + if use lto ; then + if use clang ; then + # Upstream only supports lld when using clang + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + + mozconfig_add_options_ac '+lto' --enable-lto=cross + else + # Linking only works when using ld.gold when LTO is enabled + mozconfig_add_options_ac "forcing ld=gold due to USE=lto" --enable-linker=gold + + # ThinLTO is currently broken, see bmo#1644409 + mozconfig_add_options_ac '+lto' --enable-lto=full + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # This is upstream's default + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + elif tc-ld-is-gold ; then + mozconfig_add_options_ac "linker is set to gold" --enable-linker=gold + else + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + fi + + # LTO flag was handled via configure + filter-flags '-flto*' + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + else + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # Modifications to better support ARM, bug #553364 + if use cpu_flags_arm_neon ; then + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon + + if ! tc-is-clang ; then + # thumb options aren't supported when using clang, bug 666966 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \ + --with-thumb=yes \ + --with-thumb-interwork=no + fi + fi + + if [[ ${CHOST} == armv*h* ]] ; then + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard + + if ! use system-libvpx ; then + sed -i \ + -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build \ + || die + fi + fi + + if use clang ; then + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') + local disable_elf_hack= + if use amd64 ; then + disable_elf_hack=yes + elif use x86 ; then + disable_elf_hack=yes + elif use arm ; then + disable_elf_hack=yes + fi + + if [[ -n ${disable_elf_hack} ]] ; then + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack + fi + elif tc-is-gcc ; then + if ver_test $(gcc-fullversion) -ge 10 ; then + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." + append-cxxflags -fno-tree-loop-vectorize + fi + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif tc-ld-is-gold || use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc ; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export MACH_USE_SYSTEM_PYTHON=1 + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Build system requires xargs but is unable to find it + mozconfig_add_options_mk 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if use pgo ; then + virtx_cmd=virtx + + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + fi + + local -x GDK_BACKEND=x11 + + ${virtx_cmd} ./mach build --verbose \ + || die + + # Build language packs + moz_build_xpi +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Set installDistroAddons to true so that language packs work + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set extensions.installDistroAddons pref" + pref("extensions.installDistroAddons", true); + pref("extensions.langpacks.signatures.required", false); + EOF + + # Disable signatures for language packs so that unsigned just built language packs work + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable langpacks signatures" + pref("extensions.langpacks.signatures.required", false); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${BUILD_DIR}"/dist/linux-x86_64/xpi -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/browser/extensions" "${langpacks[@]}" + fi + + # Install geckodriver + if use geckodriver ; then + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/geckodriver + + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/"${PN}"-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" "${PN}"-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menus + local wrapper_wayland="${PN}-wayland.sh" + local wrapper_x11="${PN}-x11.sh" + local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop" + local display_protocols="auto X11" + local icon="${PN}" + local name="GNU IceCat" + local use_wayland="false" + + if use wayland ; then + display_protocols+=" Wayland" + use_wayland="true" + fi + + local app_name desktop_filename display_protocol exec_command + for display_protocol in ${display_protocols} ; do + app_name="${name} on ${display_protocol}" + desktop_filename="${PN}-${display_protocol,,}.desktop" + + case ${display_protocol} in + Wayland) + exec_command="${PN}-wayland --name ${PN}-wayland" + newbin "${FILESDIR}/${wrapper_wayland}" ${PN}-wayland + ;; + X11) + if ! use wayland ; then + # Exit loop here because there's no choice so + # we don't need wrapper/.desktop file for X11. + continue + fi + + exec_command="${PN}-x11 --name ${PN}-x11" + newbin "${FILESDIR}/${wrapper_x11}" ${PN}-x11 + ;; + *) + app_name="${name}" + desktop_filename="${PN}.desktop" + exec_command="${PN}" + ;; + esac + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + done + + # Install generic wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}.sh" ${PN} + + # Update wrapper + local wrapper + for wrapper in \ + "${ED}/usr/bin/${PN}" \ + "${ED}/usr/bin/${PN}-x11" \ + "${ED}/usr/bin/${PN}-wayland" \ + ; do + [[ ! -f "${wrapper}" ]] && continue + + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${wrapper}" \ + || die + done +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + elog "Cloudflare browser checks are broken with GNU IceCats anti fingerprinting measures." + elog "You can fix cloudflare browser checks by undoing them in about:config like below:" + elog " general.appversion.override: 78.0 (X11)" + elog " general.oscpu.override: Linux x86_64" + elog " general.platform.override: Linux x86_64" + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi +} From c38486a02142a42af68cc094f59b12745638f762 Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Fri, 4 Jun 2021 00:59:15 +0300 Subject: [PATCH 5/6] www-client/makeicecat: drop 78.9.0 Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Alfred Wingate --- www-client/makeicecat/Manifest | 1 - .../makeicecat/makeicecat-78.9.0.ebuild | 52 ------------------- 2 files changed, 53 deletions(-) delete mode 100644 www-client/makeicecat/makeicecat-78.9.0.ebuild diff --git a/www-client/makeicecat/Manifest b/www-client/makeicecat/Manifest index afd9882..da967f0 100644 --- a/www-client/makeicecat/Manifest +++ b/www-client/makeicecat/Manifest @@ -1,4 +1,3 @@ DIST Mozilla_pgp_key-20210507.pgp 23372 BLAKE2B 91eeef4d8f54acc7c43b390c59eea266d6674b83a7eea8850a92aff95ef3fcbd2153ee348a6e0dc01d75c146e148c8d8dd169100114b39fb62b2c703d48276f7 SHA512 7a3fcff9131e49996e2272915ea8c07c8de1625fa732fe97a54500d35411d47d0be3054b2cacdd86c03ce05e524f215993277eadbfa112b5db1bd7be7d2755ca DIST makeicecat-78.10.0.tar.gz 8005956 BLAKE2B f84f172efac5c38cbbba980f73bbcb3218410950900dd45453eed30dbe3fd253220085f10bd7785fd4c001971a0d3346cdd6c229df69132f6147d2f75a63ccab SHA512 124dc4222d1dcf20e03d050b8fe657be436df5ce7c332c36dc1f5332b52e1221f05e9279866d7eac4872ef3825881b6e2d2067a8c88e96fa094baff6f4631495 DIST makeicecat-78.11.0.tar.gz 8005504 BLAKE2B 66b86b48cce26cf8087d78d7d369325c64f28b8bd92dc5ace284bbba1fdfe9aa9d8e0b82a825ccf45d8c9dae14d634d6a88ace701f7618419775d0a0b1ffe384 SHA512 97e4e1a51387374417d04eb0e46cc4ba6e7ef0188eb05750b3db820857853fec597a81516a83612a085a1e7f9f1fd6f82779deb38488fdf842419c6b774a62e3 -DIST makeicecat-78.9.0.tar.gz 8005836 BLAKE2B 54cea711db234e5547994a84466561247e344fbfc1e0d552c549c0743e3d4ab8454190aafff90e7abd0180c3c7ee89636b7508723920f268ebf3f9f5f4d2e8e1 SHA512 b0f53383c32233251fae2350569c3ac55e7e5b7fc54a911b5ad4bc6deba47abb2a02ad4df94ac0d1fd9aa3682d70f9113cfb7efa18a0cf116bec540674dc1504 diff --git a/www-client/makeicecat/makeicecat-78.9.0.ebuild b/www-client/makeicecat/makeicecat-78.9.0.ebuild deleted file mode 100644 index 458d07d..0000000 --- a/www-client/makeicecat/makeicecat-78.9.0.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Script for creating GNU Icecat tarball" -HOMEPAGE="https://www.gnu.org/software/gnuzilla/" - -COMMIT="8b54aee6bd0c39f043bbba7a654870e032a910bc" - -SRC_URI="https://git.savannah.gnu.org/cgit/gnuzilla.git/snapshot/gnuzilla-"${COMMIT}".tar.gz -> "${P}".tar.gz" - -LICENSE="GPL-3" -SLOT="${PV}" -KEYWORDS="~amd64" - -IUSE="+buildtarball" - -RESTRICT="buildtarball? ( network-sandbox )" - -RDEPEND="${BDEPEND}" -BDEPEND=" - dev-vcs/mercurial - dev-perl/File-Rename -" - -S=""${WORKDIR}"/gnuzilla-"${COMMIT}"" - -src_compile() { - if use buildtarball; then - ./makeicecat || die - fi -} - -src_install() { - insinto /usr/src/makeicecat-"${PV}" - doins -r "${S}"/{artwork,CHANGELOG,COPYING,data,makeicecat,README,tools} - fperms +x /usr/src/makeicecat-"${PV}"/{makeicecat,tools/{AddonsScraper.py,buildbinaries,createdebsrcrepo,gnupload}} - if use buildtarball; then - insinto /usr/src/makeicecat-"${PV}"/output - doins "${S}"/output/icecat-"${PV}"-gnu1.tar.bz2 - fi -} - -pkg_postinst() { - if ! use buildtarball; then - einfo "You haven't enabled buildtarball, therefore you have to create the tarball yourself." - einfo "You can create the tarball in /usr/share/makeicecat-"${PV}" by starting the script manually." - einfo " ./makeicecat" - einfo "It will take a while so be prepared." - fi -} From e1871f54d729deb4135224b1fcec32ac67a49715 Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Fri, 4 Jun 2021 00:59:51 +0300 Subject: [PATCH 6/6] www-client/icecat: drop 78.9.0{,-r1} Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Alfred Wingate --- www-client/icecat/Manifest | 2 - www-client/icecat/icecat-78.9.0-r1.ebuild | 1046 --------------------- www-client/icecat/icecat-78.9.0.ebuild | 933 ------------------ 3 files changed, 1981 deletions(-) delete mode 100644 www-client/icecat/icecat-78.9.0-r1.ebuild delete mode 100644 www-client/icecat/icecat-78.9.0.ebuild diff --git a/www-client/icecat/Manifest b/www-client/icecat/Manifest index fe0fe76..6aaf12a 100644 --- a/www-client/icecat/Manifest +++ b/www-client/icecat/Manifest @@ -1,6 +1,4 @@ -DIST firefox-78esr-patches-10.tar.xz 66396 BLAKE2B c29b723e47c58b10885b220080568aba751e1b73c58e28fce62a2da4c4c3ba8c71b63e60448d17599a3df4446dbd9f9387b4b2b75da5ed1e545591aafe8ec83c SHA512 6bb9caf1f6867b894ab315a73f8ae6f381b5c80c90539f38e786ee653c72c0df055aade854faa23f22cab2253f54abaf918a756945b76ed88f5a224ba8a8f12f DIST firefox-78esr-patches-12.tar.xz 67840 BLAKE2B d85abdbb54a252852badac50866cf5b5009c050ec4aa80ae2454eef2719e80f3442f5a74ec58d3c36531539042830427cd85507b708c1d5b36ea44dd0cef60b7 SHA512 4445c0880fc234c3838394483ce986e4e222260a99427069ba9c55b56fcd49a485ec916ee6aa2629f922390e92bfcd78028e30cc2e62fad9bc080ae45b26ba2e DIST firefox-78esr-patches-14.tar.xz 82976 BLAKE2B 08cc3618c8069f4169b7647e7eb699153d558bb89f8a4f1ed74d5ccd339f77119cd8f253df011f0c2f255ad889b65e843171d7559f469788463ca7e9aa2e96aa SHA512 1611c6f9d2c7d586e7b53810c1cfdb2682f5d289b1b019b71694b1ab2d8bbdfe827a73cfaf59f7e4808c0b90409ca4fa57e27655d8cdf0c578ffdbad33659f26 DIST icecat-78.10.0-gnu1.tar.bz2 513140961 BLAKE2B e008b4bebc6dbec78eecd18c14f37c155c5f883279120584c2a774e1e8fc4a6d1d24369ef1799224ec309fde6f4a8c276cf205eea5ecbfd061bea55a089e6e9b SHA512 682d194c1404b039d60c1916648d319bb428ce5fb3058a8e5989437de7a80d2184aefd69004e22e0a8e639f026df4f6d7445a2cce551d929323b6193cbedad94 DIST icecat-78.11.0-gnu1.tar.bz2 514067936 BLAKE2B 88b0b76a1e08d3c6114d55e3613097e778eeae11d271c722552fd90da51b50c6abf621b11c6ba15702d737510dbd5a72397c1078722dcf149b165435fc349794 SHA512 8969c4c6726364cb96dc9735942e39b1532ef1d591202e098b0a3bd269f12168c7efdd813373fc11e0dada1c6db964794db21ac0f08add6a0cc82daf183e136e -DIST icecat-78.9.0-gnu1.tar.bz2 512766353 BLAKE2B e1a7b0ef7b57a525fff75c9558f951a176bb021f835176fbab2b9600b2d8a20d02086074c7f3bfbbb0f534565c4403670dc16145241d957ebe0306fea6c2f322 SHA512 a228570d44992c160318489e7b9745b34e6429da88dd9225372f6e90243d7e7794ef98a691024d1de0a14cf555a54a27b1897d78d39e5d14d100e9938bbb3d54 diff --git a/www-client/icecat/icecat-78.9.0-r1.ebuild b/www-client/icecat/icecat-78.9.0-r1.ebuild deleted file mode 100644 index 357d0b2..0000000 --- a/www-client/icecat/icecat-78.9.0-r1.ebuild +++ /dev/null @@ -1,1046 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Ebuild is based on the Firefox ebuilds in the main repo - -EAPI="7" - -# Using Gentoos firefox patches as system libraries and lto are quite nice -FIREFOX_PATCHSET="firefox-78esr-patches-10.tar.xz" - -LLVM_MAX_SLOT=11 - -PYTHON_COMPAT=( python3_{7..9} ) -PYTHON_REQ_USE="ncurses,sqlite,ssl" - -WANT_AUTOCONF="2.1" - -VIRTUALX_REQUIRED="pgo" - -inherit autotools check-reqs desktop flag-o-matic gnome2-utils llvm \ - multiprocessing pax-utils python-any-r1 toolchain-funcs \ - virtualx xdg - -PATCH_URIS=( - https://dev.gentoo.org/~{axs,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET} -) - -SRC_URI=" - !buildtarball? ( icecat-"${PV}"-gnu1.tar.bz2 ) - ${PATCH_URIS[@]} -" - -DESCRIPTION="GNU IceCat Web Browser" -HOMEPAGE="https://www.gnu.org/software/gnuzilla/" - -KEYWORDS="~amd64" - -SLOT="0" -LICENSE="MPL-2.0 GPL-2 LGPL-2.1" -IUSE="+clang cpu_flags_arm_neon dbus debug +buildtarball geckodriver - hardened hwaccel jack lto +openh264 pgo pulseaudio screencast selinux - +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent - +system-libvpx +system-webp wayland wifi" - -REQUIRED_USE="debug? ( !system-av1 ) - screencast? ( wayland ) - wifi? ( dbus )" - -BDEPEND="${PYTHON_DEPS} - app-arch/unzip - app-arch/zip - >=dev-util/cbindgen-0.14.3 - >=net-libs/nodejs-10.21.0 - virtual/pkgconfig - >=virtual/rust-1.41.0 - || ( - ( - sys-devel/clang:11 - sys-devel/llvm:11 - clang? ( - =sys-devel/lld-11* - pgo? ( =sys-libs/compiler-rt-sanitizers-11*[profile] ) - ) - ) - ( - sys-devel/clang:10 - sys-devel/llvm:10 - clang? ( - =sys-devel/lld-10* - pgo? ( =sys-libs/compiler-rt-sanitizers-10*[profile] ) - ) - ) - ) - lto? ( - !clang? ( sys-devel/binutils[gold] ) - ) - amd64? ( >=dev-lang/yasm-1.1 ) - x86? ( >=dev-lang/yasm-1.1 ) - !system-av1? ( - amd64? ( >=dev-lang/nasm-2.13 ) - x86? ( >=dev-lang/nasm-2.13 ) - )" - -CDEPEND=" - buildtarball? ( ~www-client/makeicecat-"${PV}"[buildtarball] ) - >=dev-libs/nss-3.53.1 - >=dev-libs/nspr-4.25 - dev-libs/atk - dev-libs/expat - >=x11-libs/cairo-1.10[X] - >=x11-libs/gtk+-2.18:2 - >=x11-libs/gtk+-3.4.0:3[X] - x11-libs/gdk-pixbuf - >=x11-libs/pango-1.22.0 - >=media-libs/libpng-1.6.35:0=[apng] - >=media-libs/mesa-10.2:* - media-libs/fontconfig - >=media-libs/freetype-2.4.10 - kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) - virtual/freedesktop-icon-theme - >=x11-libs/pixman-0.19.2 - >=dev-libs/glib-2.26:2 - >=sys-libs/zlib-1.2.3 - >=dev-libs/libffi-3.0.10:= - media-video/ffmpeg - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXrender - x11-libs/libXt - dbus? ( - sys-apps/dbus - dev-libs/dbus-glib - ) - screencast? ( media-video/pipewire:0/0.3 ) - system-av1? ( - >=media-libs/dav1d-0.3.0:= - >=media-libs/libaom-1.0.0:= - ) - system-harfbuzz? ( - >=media-libs/harfbuzz-2.6.8:0= - >=media-gfx/graphite2-1.3.13 - ) - system-icu? ( >=dev-libs/icu-67.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] ) - system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) - system-webp? ( >=media-libs/libwebp-1.1.0:0= ) - wifi? ( - kernel_linux? ( - sys-apps/dbus - dev-libs/dbus-glib - net-misc/networkmanager - ) - ) - jack? ( virtual/jack ) - selinux? ( sec-policy/selinux-mozilla )" - -RDEPEND="${CDEPEND} - jack? ( virtual/jack ) - openh264? ( media-libs/openh264:*[plugin] ) - pulseaudio? ( - || ( - media-sound/pulseaudio - >=media-sound/apulse-0.1.12-r4 - ) - ) - selinux? ( sec-policy/selinux-mozilla )" - -DEPEND="${CDEPEND} - pulseaudio? ( - || ( - media-sound/pulseaudio - >=media-sound/apulse-0.1.12-r4[sdk] - ) - ) - wayland? ( >=x11-libs/gtk+-3.11:3[wayland] ) - amd64? ( virtual/opengl ) - x86? ( virtual/opengl )" - -S="${WORKDIR}/${PN}-${PV%_*}" - -llvm_check_deps() { - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then - ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang ; then - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then - ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use pgo ; then - if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then - ewarn "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -MOZ_LANGS=( - ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy - da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu - fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM - ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my - nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru - si sk sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi - xh zh-CN zh-TW -) - -mozilla_set_globals() { - # https://bugs.gentoo.org/587334 - local MOZ_TOO_REGIONALIZED_FOR_L10N=( - fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE - ) - - local lang xflag - for lang in "${MOZ_LANGS[@]}" ; do - # en and en_US are handled internally - if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then - continue - fi - - # strip region subtag if $lang is in the list - if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then - xflag=${lang%%-*} - else - xflag=${lang} - fi - - IUSE+=" l10n_${xflag/[_@]/-}" - done - -} -mozilla_set_globals - -moz_clear_vendor_checksums() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -ne 1 ]] ; then - die "${FUNCNAME} requires exact one argument" - fi - - einfo "Clearing cargo checksums for ${1} ..." - - sed -i \ - -e 's/\("files":{\)[^}]*/\1/' \ - "${S}"/third_party/rust/${1}/.cargo-checksum.json \ - || die -} - -moz_build_xpi() { - debug-print-function ${FUNCNAME} "$@" - - local MOZ_TOO_REGIONALIZED_FOR_L10N=( - fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE - ) - - cd "${BUILD_DIR}"/browser/locales || die - local lang xflag - for lang in "${MOZ_LANGS[@]}"; do - # en and en_US are handled internally - if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then - continue - fi - - # strip region subtag if $lang is in the list - if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then - xflag=${lang%%-*} - else - xflag=${lang} - fi - - if use l10n_"${xflag}"; then - emake langpack-"${lang}" LOCALE_MERGEDIR=. - fi - done -} - -moz_install_xpi() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 2 ]] ; then - die "${FUNCNAME} requires at least two arguments" - fi - - local DESTDIR=${1} - shift - - insinto "${DESTDIR}" - - local emid xpi_file xpi_tmp_dir - for xpi_file in "${@}" ; do - emid= - xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") - - # Unpack XPI - unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die - - # Determine extension ID - if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then - emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") - [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" - elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then - emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") - [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" - else - die "failed to determine extension id" - fi - - einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." - newins "${xpi_file}" "${emid}.xpi" - done -} - -mozconfig_add_options_ac() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 2 ]] ; then - die "${FUNCNAME} requires at least two arguments" - fi - - local reason=${1} - shift - - local option - for option in ${@} ; do - echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} - done -} - -mozconfig_add_options_mk() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 2 ]] ; then - die "${FUNCNAME} requires at least two arguments" - fi - - local reason=${1} - shift - - local option - for option in ${@} ; do - echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} - done -} - -mozconfig_use_enable() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 1 ]] ; then - die "${FUNCNAME} requires at least one arguments" - fi - - local flag=$(use_enable "${@}") - mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" -} - -mozconfig_use_with() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 1 ]] ; then - die "${FUNCNAME} requires at least one arguments" - fi - - local flag=$(use_with "${@}") - mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has usersandbox $FEATURES ; then - die "You must enable usersandbox as X server can not run as root!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_pretend - fi -} - -pkg_nofetch() { - if ! use buildtarball; then - einfo "You have not enabled buildtarball use flag, therefore you will have to" - einfo "build the tarball manually and place it in your distfiles directory." - einfo "You may find the script for building the tarball here" - einfo "https://git.savannah.gnu.org/cgit/gnuzilla.git/, but make sure it is the" - einfo "right version." - einfo "The output of the script should be icecat-"${PV}"-gnu1.tar.bz2" - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has userpriv ${FEATURES} ; then - eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - llvm_pkg_setup - - if use clang && use lto ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - # temp fix for https://bugs.gentoo.org/768543 - # we can assume that rust 1.{49,50}.0 always uses llvm 11 - local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }') - [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}") - [[ -z ${version_rust} ]] && die "Failed to read version from rustc!" - - if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then - local version_llvm_rust="11" - else - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - fi - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Avoid PGO profiling problems due to enviroment leakage - # These should *always* be cleaned up anyway - unset \ - DBUS_SESSION_BUS_ADDRESS \ - DISPLAY \ - ORBIT_SOCKETDIR \ - SESSION_MANAGER \ - XAUTHORITY \ - XDG_CACHE_HOME \ - XDG_SESSION_COOKIE - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi -} - -src_unpack() { - if use buildtarball; then - unpack /usr/src/makeicecat-"${PV}"/output/icecat-"${PV}"-gnu1.tar.bz2 || eerror "Tarball is missing, check that www-client/makeicecat has use flag buildtarball enabled." - else - unpack icecat-"${PV}"-gnu1.tar.bz2 - fi - unpack "${FIREFOX_PATCHSET}" -} - -src_prepare() { - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch - eapply "${WORKDIR}/firefox-patches" - - # Allow user to apply any additional patches without modifing ebuild - eapply_user - - # Make LTO respect MAKEOPTS - sed -i \ - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/build/moz.configure/lto-pgo.configure \ - || die "sed failed to set num_cores" - - # Make ICU respect MAKEOPTS - sed -i \ - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/intl/icu_sources_data.py \ - || die "sed failed to set num_cores" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - sed -i \ - -e 's/ccache_stats = None/return None/' \ - "${S}"/python/mozbuild/mozbuild/controller/building.py \ - || die "sed failed to disable ccache stats call" - - einfo "Removing pre-built binaries ..." - find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - # Clearing checksums where we have applied patches - moz_clear_vendor_checksums target-lexicon-0.9.0 - - # Create build dir - BUILD_DIR="${WORKDIR}/${PN}_build" - mkdir -p "${BUILD_DIR}" || die - - xdg_src_prepare -} - -src_configure() { - # Show flags set at the beginning - einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" - einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" - einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" - einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" - einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" - - local have_switched_compiler= - if use clang && ! tc-is-clang ; then - # Force clang - einfo "Enforcing the use of clang due to USE=clang ..." - have_switched_compiler=yes - AR=llvm-ar - CC=${CHOST}-clang - CXX=${CHOST}-clang++ - NM=llvm-nm - RANLIB=llvm-ranlib - elif ! use clang && ! tc-is-gcc ; then - # Force gcc - have_switched_compiler=yes - einfo "Enforcing the use of gcc due to USE=-clang ..." - AR=gcc-ar - CC=${CHOST}-gcc - CXX=${CHOST}-g++ - NM=gcc-nm - RANLIB=gcc-ranlib - fi - - if [[ -n "${have_switched_compiler}" ]] ; then - # Because we switched active compiler we have to ensure - # that no unsupported flags are set - strip-unsupported-flags - fi - - # Ensure we use correct toolchain - export HOST_CC="$(tc-getBUILD_CC)" - export HOST_CXX="$(tc-getBUILD_CXX)" - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG - - # Pass the correct toolchain paths through cbindgen - if tc-is-cross-compiler ; then - export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" - fi - - # Set MOZILLA_FIVE_HOME - export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" - - # python/mach/mach/mixin/process.py fails to detect SHELL - export SHELL="${EPREFIX}/bin/bash" - - # Set MOZCONFIG - export MOZCONFIG="${S}/.mozconfig" - - # Initialize MOZCONFIG - mozconfig_add_options_ac '' --enable-application=browser - - mozconfig_add_options_ac 'Gentoo default' \ - --allow-addon-sideload \ - --disable-cargo-incremental \ - --disable-crashreporter \ - --disable-install-strip \ - --disable-strip \ - --disable-updater \ - --enable-official-branding \ - --enable-release \ - --enable-system-ffi \ - --enable-system-pixman \ - --host="${CBUILD:-${CHOST}}" \ - --libdir="${EPREFIX}/usr/$(get_libdir)" \ - --prefix="${EPREFIX}/usr" \ - --target="${CHOST}" \ - --without-ccache \ - --with-intl-api \ - --with-l10n-base="${S}"/l10n \ - --with-libclang-path="$(llvm-config --libdir)" \ - --with-system-nspr \ - --with-system-nss \ - --with-system-png \ - --with-system-zlib \ - --with-toolchain-prefix="${CHOST}-" \ - --with-unsigned-addon-scopes=app,system \ - --x-includes="${SYSROOT}${EPREFIX}/usr/include" \ - --x-libraries="${SYSROOT}${EPREFIX}/usr/$(get_libdir)" - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then - mozconfig_add_options_ac '' --enable-rust-simd - fi - - mozconfig_use_with system-av1 - mozconfig_use_with system-harfbuzz - mozconfig_use_with system-harfbuzz system-graphite2 - mozconfig_use_with system-icu - mozconfig_use_with system-jpeg - mozconfig_use_with system-libevent system-libevent "${SYSROOT}${EPREFIX}/usr" - mozconfig_use_with system-libvpx - mozconfig_use_with system-webp - - mozconfig_use_enable dbus - - mozconfig_use_enable geckodriver - - if use hardened ; then - mozconfig_add_options_ac "+hardened" --enable-hardening - append-ldflags "-Wl,-z,relro -Wl,-z,now" - fi - - mozconfig_use_enable jack - - mozconfig_use_enable pulseaudio - # force the deprecated alsa sound code if pulseaudio is disabled - if use kernel_linux && ! use pulseaudio ; then - mozconfig_add_options_ac '-pulseaudio' --enable-alsa - fi - - mozconfig_use_enable screencast pipewire - - mozconfig_use_enable wifi necko-wifi - - if use wayland ; then - mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland - else - mozconfig_add_options_ac '' --enable-default-toolkit=cairo-gtk3 - fi - - if use lto ; then - if use clang ; then - # Upstream only supports lld when using clang - mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld - - mozconfig_add_options_ac '+lto' --enable-lto=cross - else - # Linking only works when using ld.gold when LTO is enabled - mozconfig_add_options_ac "forcing ld=gold due to USE=lto" --enable-linker=gold - - # ThinLTO is currently broken, see bmo#1644409 - mozconfig_add_options_ac '+lto' --enable-lto=full - fi - - if use pgo ; then - mozconfig_add_options_ac '+pgo' MOZ_PGO=1 - - if use clang ; then - # Used in build/pgo/profileserver.py - export LLVM_PROFDATA="llvm-profdata" - fi - fi - else - # Avoid auto-magic on linker - if use clang ; then - # This is upstream's default - mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld - elif tc-ld-is-gold ; then - mozconfig_add_options_ac "linker is set to gold" --enable-linker=gold - else - mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd - fi - fi - - # LTO flag was handled via configure - filter-flags '-flto*' - - mozconfig_use_enable debug - if use debug ; then - mozconfig_add_options_ac '+debug' --disable-optimize - else - if is-flag '-g*' ; then - if use clang ; then - mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') - else - mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols - fi - else - mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols - fi - - if is-flag '-O0' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 - elif is-flag '-O4' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 - elif is-flag '-O3' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 - elif is-flag '-O1' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 - elif is-flag '-Os' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os - else - mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 - fi - fi - - # Debug flag was handled via configure - filter-flags '-g*' - - # Optimization flag was handled via configure - filter-flags '-O*' - - # Modifications to better support ARM, bug #553364 - if use cpu_flags_arm_neon ; then - mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - mozconfig_add_options_ac '+cpu_flags_arm_neon' \ - --with-thumb=yes \ - --with-thumb-interwork=no - fi - fi - - if [[ ${CHOST} == armv*h* ]] ; then - mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard - - if ! use system-libvpx ; then - sed -i \ - -e "s|softfp|hard|" \ - "${S}"/media/libvpx/moz.build \ - || die - fi - fi - - if use clang ; then - # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 - # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 - # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') - local disable_elf_hack= - if use amd64 ; then - disable_elf_hack=yes - elif use x86 ; then - disable_elf_hack=yes - elif use arm ; then - disable_elf_hack=yes - fi - - if [[ -n ${disable_elf_hack} ]] ; then - mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack - fi - elif tc-is-gcc ; then - if ver_test $(gcc-fullversion) -ge 10 ; then - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." - append-cxxflags -fno-tree-loop-vectorize - fi - fi - - # Additional ARCH support - case "${ARCH}" in - arm) - # Reduce the memory requirements for linking - if use clang ; then - # Nothing to do - :; - elif tc-ld-is-gold || use lto ; then - append-ldflags -Wl,--no-keep-memory - else - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - fi - ;; - esac - - if ! use elibc_glibc ; then - mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc - fi - - # Allow elfhack to work in combination with unstripped binaries - # when they would normally be larger than 2GiB. - append-ldflags "-Wl,--compress-debug-sections=zlib" - - # Make revdep-rebuild.sh happy; Also required for musl - append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags - - # Pass $MAKEOPTS to build system - export MOZ_MAKE_FLAGS="${MAKEOPTS}" - - # Use system's Python environment - export MACH_USE_SYSTEM_PYTHON=1 - - # Disable notification when build system has finished - export MOZ_NOSPAM=1 - - # Build system requires xargs but is unable to find it - mozconfig_add_options_mk 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" - - # Set build dir - mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" - - # Show flags we will use - einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" - einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" - einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" - einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" - einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" - - # Handle EXTRA_CONF and show summary - local ac opt hash reason - - # Apply EXTRA_ECONF entries to $MOZCONFIG - if [[ -n ${EXTRA_ECONF} ]] ; then - IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} - for opt in "${ac[@]}"; do - mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} - done - fi - - echo - echo "==========================================================" - echo "Building ${PF} with the following configuration" - grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do - [[ -z ${hash} || ${hash} == \# ]] \ - || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" - printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" - done - echo "==========================================================" - echo - - ./mach configure || die -} - -src_compile() { - local virtx_cmd= - - if use pgo ; then - virtx_cmd=virtx - - # Reset and cleanup environment variables used by GNOME/XDG - gnome2_environment_reset - - addpredict /root - fi - - local -x GDK_BACKEND=x11 - - ${virtx_cmd} ./mach build --verbose \ - || die - - # Build language packs - moz_build_xpi -} - -src_install() { - # xpcshell is getting called during install - pax-mark m \ - "${BUILD_DIR}"/dist/bin/xpcshell \ - "${BUILD_DIR}"/dist/bin/${PN} \ - "${BUILD_DIR}"/dist/bin/plugin-container - - DESTDIR="${D}" ./mach install || die - - # Upstream cannot ship symlink but we can (bmo#658850) - rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die - dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin - - # Don't install llvm-symbolizer from sys-devel/llvm package - if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then - rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die - fi - - # Install policy (currently only used to disable application updates) - insinto "${MOZILLA_FIVE_HOME}/distribution" - newins "${FILESDIR}"/distribution.ini distribution.ini - - # Install system-wide preferences - local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" - insinto "${PREFS_DIR}" - newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js - - local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js" - - # Set dictionary path to use system hunspell - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" - pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); - EOF - - # Set installDistroAddons to true so that language packs work - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set extensions.installDistroAddons pref" - pref("extensions.installDistroAddons", true); - EOF - - # Force hwaccel prefs if USE=hwaccel is enabled - if use hwaccel ; then - cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \ - >>"${GENTOO_PREFS}" \ - || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" - fi - - # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it - if use system-harfbuzz ; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" - sticky_pref("gfx.font_rendering.graphite.enabled", true); - EOF - fi - - # Install language packs - local langpacks=( $(find "${BUILD_DIR}"/dist/linux-x86_64/xpi -type f -name '*.xpi') ) - if [[ -n "${langpacks}" ]] ; then - moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" - fi - - # Install geckodriver - if use geckodriver ; then - einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." - pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/geckodriver - - dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver - fi - - # Install icons - local icon_srcdir="${S}/browser/branding/official" - local icon_symbolic_file="${FILESDIR}/icon/"${PN}"-symbolic.svg" - - insinto /usr/share/icons/hicolor/symbolic/apps - newins "${icon_symbolic_file}" "${PN}"-symbolic.svg - - local icon size - for icon in "${icon_srcdir}"/default*.png ; do - size=${icon%.png} - size=${size##*/default} - - if [[ ${size} -eq 48 ]] ; then - newicon "${icon}" ${PN}.png - fi - - newicon -s ${size} "${icon}" ${PN}.png - done - - # Install menus - local wrapper_wayland="${PN}-wayland.sh" - local wrapper_x11="${PN}-x11.sh" - local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop" - local display_protocols="auto X11" - local icon="${PN}" - local name="GNU IceCat" - local use_wayland="false" - - if use wayland ; then - display_protocols+=" Wayland" - use_wayland="true" - fi - - local app_name desktop_filename display_protocol exec_command - for display_protocol in ${display_protocols} ; do - app_name="${name} on ${display_protocol}" - desktop_filename="${PN}-${display_protocol,,}.desktop" - - case ${display_protocol} in - Wayland) - exec_command="${PN}-wayland --name ${PN}-wayland" - newbin "${FILESDIR}/${wrapper_wayland}" ${PN}-wayland - ;; - X11) - if ! use wayland ; then - # Exit loop here because there's no choice so - # we don't need wrapper/.desktop file for X11. - continue - fi - - exec_command="${PN}-x11 --name ${PN}-x11" - newbin "${FILESDIR}/${wrapper_x11}" ${PN}-x11 - ;; - *) - app_name="${name}" - desktop_filename="${PN}.desktop" - exec_command="${PN}" - ;; - esac - - cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die - - sed -i \ - -e "s:@NAME@:${app_name}:" \ - -e "s:@EXEC@:${exec_command}:" \ - -e "s:@ICON@:${icon}:" \ - "${WORKDIR}/${PN}.desktop-template" \ - || die - - newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" - - rm "${WORKDIR}/${PN}.desktop-template" || die - done - - # Install generic wrapper script - [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" - newbin "${FILESDIR}/${PN}.sh" ${PN} - - # Update wrapper - local wrapper - for wrapper in \ - "${ED}/usr/bin/${PN}" \ - "${ED}/usr/bin/${PN}-x11" \ - "${ED}/usr/bin/${PN}-wayland" \ - ; do - [[ ! -f "${wrapper}" ]] && continue - - sed -i \ - -e "s:@PREFIX@:${EPREFIX}/usr:" \ - -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ - -e "s:@APULSELIB_DIR@:${apulselib}:" \ - -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ - "${wrapper}" \ - || die - done -} - -pkg_preinst() { - xdg_pkg_preinst - - # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse - # does not need to be forced into the LD_LIBRARY_PATH - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - einfo "APULSE found; Generating library symlinks for sound support ..." - local lib - pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die - for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do - # A quickpkg rolled by hand will grab symlinks as part of the package, - # so we need to avoid creating them if they already exist. - if [[ ! -L ${lib##*/} ]] ; then - ln -s "${lib}" ${lib##*/} || die - fi - done - popd &>/dev/null || die - fi -} - -pkg_postinst() { - xdg_pkg_postinst - - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - elog "Apulse was detected at merge time on this system and so it will always be" - elog "used for sound. If you wish to use pulseaudio instead please unmerge" - elog "media-sound/apulse." - elog - fi -} diff --git a/www-client/icecat/icecat-78.9.0.ebuild b/www-client/icecat/icecat-78.9.0.ebuild deleted file mode 100644 index dad07ec..0000000 --- a/www-client/icecat/icecat-78.9.0.ebuild +++ /dev/null @@ -1,933 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Ebuild is based on the Firefox ebuilds in the main repo - -EAPI="7" - -# Using Gentoos firefox patches as system libraries and lto are quite nice -FIREFOX_PATCHSET="firefox-78esr-patches-10.tar.xz" - -LLVM_MAX_SLOT=11 - -PYTHON_COMPAT=( python3_{7..9} ) -PYTHON_REQ_USE="ncurses,sqlite,ssl" - -WANT_AUTOCONF="2.1" - -VIRTUALX_REQUIRED="pgo" - -inherit autotools check-reqs desktop flag-o-matic gnome2-utils llvm \ - multiprocessing pax-utils python-any-r1 toolchain-funcs \ - virtualx xdg - -PATCH_URIS=( - https://dev.gentoo.org/~{axs,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET} -) - -SRC_URI=" - !buildtarball? ( icecat-"${PV}"-gnu1.tar.bz2 ) - ${PATCH_URIS[@]} -" - -DESCRIPTION="GNU IceCat Web Browser" -HOMEPAGE="https://www.gnu.org/software/gnuzilla/" - -KEYWORDS="~amd64" - -SLOT="0" -LICENSE="MPL-2.0 GPL-2 LGPL-2.1" -IUSE="+clang cpu_flags_arm_neon dbus debug +buildtarball geckodriver - hardened hwaccel jack lto +openh264 pgo pulseaudio screencast selinux - +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent - +system-libvpx +system-webp wayland wifi" - -REQUIRED_USE="debug? ( !system-av1 ) - screencast? ( wayland ) - wifi? ( dbus )" - -BDEPEND="${PYTHON_DEPS} - app-arch/unzip - app-arch/zip - >=dev-util/cbindgen-0.14.3 - >=net-libs/nodejs-10.21.0 - virtual/pkgconfig - >=virtual/rust-1.41.0 - || ( - ( - sys-devel/clang:11 - sys-devel/llvm:11 - clang? ( - =sys-devel/lld-11* - pgo? ( =sys-libs/compiler-rt-sanitizers-11*[profile] ) - ) - ) - ( - sys-devel/clang:10 - sys-devel/llvm:10 - clang? ( - =sys-devel/lld-10* - pgo? ( =sys-libs/compiler-rt-sanitizers-10*[profile] ) - ) - ) - ) - lto? ( - !clang? ( sys-devel/binutils[gold] ) - ) - amd64? ( >=dev-lang/yasm-1.1 ) - x86? ( >=dev-lang/yasm-1.1 ) - !system-av1? ( - amd64? ( >=dev-lang/nasm-2.13 ) - x86? ( >=dev-lang/nasm-2.13 ) - )" - -CDEPEND=" - buildtarball? ( ~www-client/makeicecat-"${PV}"[buildtarball] ) - >=dev-libs/nss-3.53.1 - >=dev-libs/nspr-4.25 - dev-libs/atk - dev-libs/expat - >=x11-libs/cairo-1.10[X] - >=x11-libs/gtk+-2.18:2 - >=x11-libs/gtk+-3.4.0:3[X] - x11-libs/gdk-pixbuf - >=x11-libs/pango-1.22.0 - >=media-libs/libpng-1.6.35:0=[apng] - >=media-libs/mesa-10.2:* - media-libs/fontconfig - >=media-libs/freetype-2.4.10 - kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) - virtual/freedesktop-icon-theme - >=x11-libs/pixman-0.19.2 - >=dev-libs/glib-2.26:2 - >=sys-libs/zlib-1.2.3 - >=dev-libs/libffi-3.0.10:= - media-video/ffmpeg - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXrender - x11-libs/libXt - dbus? ( - sys-apps/dbus - dev-libs/dbus-glib - ) - screencast? ( media-video/pipewire:0/0.3 ) - system-av1? ( - >=media-libs/dav1d-0.3.0:= - >=media-libs/libaom-1.0.0:= - ) - system-harfbuzz? ( - >=media-libs/harfbuzz-2.6.8:0= - >=media-gfx/graphite2-1.3.13 - ) - system-icu? ( >=dev-libs/icu-67.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] ) - system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) - system-webp? ( >=media-libs/libwebp-1.1.0:0= ) - wifi? ( - kernel_linux? ( - sys-apps/dbus - dev-libs/dbus-glib - net-misc/networkmanager - ) - ) - jack? ( virtual/jack ) - selinux? ( sec-policy/selinux-mozilla )" - -RDEPEND="${CDEPEND} - jack? ( virtual/jack ) - openh264? ( media-libs/openh264:*[plugin] ) - pulseaudio? ( - || ( - media-sound/pulseaudio - >=media-sound/apulse-0.1.12-r4 - ) - ) - selinux? ( sec-policy/selinux-mozilla )" - -DEPEND="${CDEPEND} - pulseaudio? ( - || ( - media-sound/pulseaudio - >=media-sound/apulse-0.1.12-r4[sdk] - ) - ) - wayland? ( >=x11-libs/gtk+-3.11:3[wayland] ) - amd64? ( virtual/opengl ) - x86? ( virtual/opengl )" - -S="${WORKDIR}/${PN}-${PV%_*}" - -llvm_check_deps() { - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then - ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang ; then - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then - ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use pgo ; then - if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then - ewarn "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -moz_clear_vendor_checksums() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -ne 1 ]] ; then - die "${FUNCNAME} requires exact one argument" - fi - - einfo "Clearing cargo checksums for ${1} ..." - - sed -i \ - -e 's/\("files":{\)[^}]*/\1/' \ - "${S}"/third_party/rust/${1}/.cargo-checksum.json \ - || die -} -mozconfig_add_options_ac() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 2 ]] ; then - die "${FUNCNAME} requires at least two arguments" - fi - - local reason=${1} - shift - - local option - for option in ${@} ; do - echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} - done -} - -mozconfig_add_options_mk() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 2 ]] ; then - die "${FUNCNAME} requires at least two arguments" - fi - - local reason=${1} - shift - - local option - for option in ${@} ; do - echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} - done -} - -mozconfig_use_enable() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 1 ]] ; then - die "${FUNCNAME} requires at least one arguments" - fi - - local flag=$(use_enable "${@}") - mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" -} - -mozconfig_use_with() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 1 ]] ; then - die "${FUNCNAME} requires at least one arguments" - fi - - local flag=$(use_with "${@}") - mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has usersandbox $FEATURES ; then - die "You must enable usersandbox as X server can not run as root!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_pretend - fi -} - -pkg_nofetch() { - if ! use buildtarball; then - einfo "You have not enabled buildtarball use flag, therefore you will have to" - einfo "build the tarball manually and place it in your distfiles directory." - einfo "You may find the script for building the tarball here" - einfo "https://git.savannah.gnu.org/cgit/gnuzilla.git/, but make sure it is the" - einfo "right version." - einfo "The output of the script should be icecat-"${PV}"-gnu1.tar.bz2" - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has userpriv ${FEATURES} ; then - eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - llvm_pkg_setup - - if use clang && use lto ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - # temp fix for https://bugs.gentoo.org/768543 - # we can assume that rust 1.{49,50}.0 always uses llvm 11 - local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }') - [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}") - [[ -z ${version_rust} ]] && die "Failed to read version from rustc!" - - if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then - local version_llvm_rust="11" - else - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - fi - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Avoid PGO profiling problems due to enviroment leakage - # These should *always* be cleaned up anyway - unset \ - DBUS_SESSION_BUS_ADDRESS \ - DISPLAY \ - ORBIT_SOCKETDIR \ - SESSION_MANAGER \ - XAUTHORITY \ - XDG_CACHE_HOME \ - XDG_SESSION_COOKIE - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi -} - -src_unpack() { - if use buildtarball; then - unpack /usr/src/makeicecat-"${PV}"/output/icecat-"${PV}"-gnu1.tar.bz2 || eerror "Tarball is missing, check that www-client/makeicecat has use flag buildtarball enabled." - else - unpack icecat-"${PV}"-gnu1.tar.bz2 - fi - unpack "${FIREFOX_PATCHSET}" -} - -src_prepare() { - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch - eapply "${WORKDIR}/firefox-patches" - - # Allow user to apply any additional patches without modifing ebuild - eapply_user - - # Make LTO respect MAKEOPTS - sed -i \ - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/build/moz.configure/lto-pgo.configure \ - || die "sed failed to set num_cores" - - # Make ICU respect MAKEOPTS - sed -i \ - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/intl/icu_sources_data.py \ - || die "sed failed to set num_cores" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - sed -i \ - -e 's/ccache_stats = None/return None/' \ - "${S}"/python/mozbuild/mozbuild/controller/building.py \ - || die "sed failed to disable ccache stats call" - - einfo "Removing pre-built binaries ..." - find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - # Clearing checksums where we have applied patches - moz_clear_vendor_checksums target-lexicon-0.9.0 - - # Create build dir - BUILD_DIR="${WORKDIR}/${PN}_build" - mkdir -p "${BUILD_DIR}" || die - - xdg_src_prepare -} - -src_configure() { - # Show flags set at the beginning - einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" - einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" - einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" - einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" - einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" - - local have_switched_compiler= - if use clang && ! tc-is-clang ; then - # Force clang - einfo "Enforcing the use of clang due to USE=clang ..." - have_switched_compiler=yes - AR=llvm-ar - CC=${CHOST}-clang - CXX=${CHOST}-clang++ - NM=llvm-nm - RANLIB=llvm-ranlib - elif ! use clang && ! tc-is-gcc ; then - # Force gcc - have_switched_compiler=yes - einfo "Enforcing the use of gcc due to USE=-clang ..." - AR=gcc-ar - CC=${CHOST}-gcc - CXX=${CHOST}-g++ - NM=gcc-nm - RANLIB=gcc-ranlib - fi - - if [[ -n "${have_switched_compiler}" ]] ; then - # Because we switched active compiler we have to ensure - # that no unsupported flags are set - strip-unsupported-flags - fi - - # Ensure we use correct toolchain - export HOST_CC="$(tc-getBUILD_CC)" - export HOST_CXX="$(tc-getBUILD_CXX)" - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG - - # Pass the correct toolchain paths through cbindgen - if tc-is-cross-compiler ; then - export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" - fi - - # Set MOZILLA_FIVE_HOME - export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" - - # python/mach/mach/mixin/process.py fails to detect SHELL - export SHELL="${EPREFIX}/bin/bash" - - # Set MOZCONFIG - export MOZCONFIG="${S}/.mozconfig" - - # Initialize MOZCONFIG - mozconfig_add_options_ac '' --enable-application=browser - - # Set Gentoo defaults - #export MOZILLA_OFFICIAL=1 - - mozconfig_add_options_ac 'Gentoo default' \ - --allow-addon-sideload \ - --disable-cargo-incremental \ - --disable-crashreporter \ - --disable-install-strip \ - --disable-strip \ - --disable-updater \ - --enable-official-branding \ - --enable-release \ - --enable-system-ffi \ - --enable-system-pixman \ - --host="${CBUILD:-${CHOST}}" \ - --libdir="${EPREFIX}/usr/$(get_libdir)" \ - --prefix="${EPREFIX}/usr" \ - --target="${CHOST}" \ - --without-ccache \ - --with-intl-api \ - --with-libclang-path="$(llvm-config --libdir)" \ - --with-system-nspr \ - --with-system-nss \ - --with-system-png \ - --with-system-zlib \ - --with-toolchain-prefix="${CHOST}-" \ - --with-unsigned-addon-scopes=app,system \ - --x-includes="${SYSROOT}${EPREFIX}/usr/include" \ - --x-libraries="${SYSROOT}${EPREFIX}/usr/$(get_libdir)" - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then - mozconfig_add_options_ac '' --enable-rust-simd - fi - - mozconfig_use_with system-av1 - mozconfig_use_with system-harfbuzz - mozconfig_use_with system-harfbuzz system-graphite2 - mozconfig_use_with system-icu - mozconfig_use_with system-jpeg - mozconfig_use_with system-libevent system-libevent "${SYSROOT}${EPREFIX}/usr" - mozconfig_use_with system-libvpx - mozconfig_use_with system-webp - - mozconfig_use_enable dbus - - mozconfig_use_enable geckodriver - - if use hardened ; then - mozconfig_add_options_ac "+hardened" --enable-hardening - append-ldflags "-Wl,-z,relro -Wl,-z,now" - fi - - mozconfig_use_enable jack - - mozconfig_use_enable pulseaudio - # force the deprecated alsa sound code if pulseaudio is disabled - if use kernel_linux && ! use pulseaudio ; then - mozconfig_add_options_ac '-pulseaudio' --enable-alsa - fi - - mozconfig_use_enable screencast pipewire - - mozconfig_use_enable wifi necko-wifi - - if use wayland ; then - mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland - else - mozconfig_add_options_ac '' --enable-default-toolkit=cairo-gtk3 - fi - - if use lto ; then - if use clang ; then - # Upstream only supports lld when using clang - mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld - - mozconfig_add_options_ac '+lto' --enable-lto=cross - else - # Linking only works when using ld.gold when LTO is enabled - mozconfig_add_options_ac "forcing ld=gold due to USE=lto" --enable-linker=gold - - # ThinLTO is currently broken, see bmo#1644409 - mozconfig_add_options_ac '+lto' --enable-lto=full - fi - - if use pgo ; then - mozconfig_add_options_ac '+pgo' MOZ_PGO=1 - - if use clang ; then - # Used in build/pgo/profileserver.py - export LLVM_PROFDATA="llvm-profdata" - fi - fi - else - # Avoid auto-magic on linker - if use clang ; then - # This is upstream's default - mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld - elif tc-ld-is-gold ; then - mozconfig_add_options_ac "linker is set to gold" --enable-linker=gold - else - mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd - fi - fi - - # LTO flag was handled via configure - filter-flags '-flto*' - - mozconfig_use_enable debug - if use debug ; then - mozconfig_add_options_ac '+debug' --disable-optimize - else - if is-flag '-g*' ; then - if use clang ; then - mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') - else - mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols - fi - else - mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols - fi - - if is-flag '-O0' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 - elif is-flag '-O4' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 - elif is-flag '-O3' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 - elif is-flag '-O1' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 - elif is-flag '-Os' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os - else - mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 - fi - fi - - # Debug flag was handled via configure - filter-flags '-g*' - - # Optimization flag was handled via configure - filter-flags '-O*' - - # Modifications to better support ARM, bug #553364 - if use cpu_flags_arm_neon ; then - mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - mozconfig_add_options_ac '+cpu_flags_arm_neon' \ - --with-thumb=yes \ - --with-thumb-interwork=no - fi - fi - - if [[ ${CHOST} == armv*h* ]] ; then - mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard - - if ! use system-libvpx ; then - sed -i \ - -e "s|softfp|hard|" \ - "${S}"/media/libvpx/moz.build \ - || die - fi - fi - - if use clang ; then - # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 - # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 - # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') - local disable_elf_hack= - if use amd64 ; then - disable_elf_hack=yes - elif use x86 ; then - disable_elf_hack=yes - elif use arm ; then - disable_elf_hack=yes - fi - - if [[ -n ${disable_elf_hack} ]] ; then - mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack - fi - elif tc-is-gcc ; then - if ver_test $(gcc-fullversion) -ge 10 ; then - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." - append-cxxflags -fno-tree-loop-vectorize - fi - fi - - # Additional ARCH support - case "${ARCH}" in - arm) - # Reduce the memory requirements for linking - if use clang ; then - # Nothing to do - :; - elif tc-ld-is-gold || use lto ; then - append-ldflags -Wl,--no-keep-memory - else - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - fi - ;; - esac - - if ! use elibc_glibc ; then - mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc - fi - - # Allow elfhack to work in combination with unstripped binaries - # when they would normally be larger than 2GiB. - append-ldflags "-Wl,--compress-debug-sections=zlib" - - # Make revdep-rebuild.sh happy; Also required for musl - append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags - - # Pass $MAKEOPTS to build system - export MOZ_MAKE_FLAGS="${MAKEOPTS}" - - # Use system's Python environment - export MACH_USE_SYSTEM_PYTHON=1 - - # Disable notification when build system has finished - export MOZ_NOSPAM=1 - - # Build system requires xargs but is unable to find it - mozconfig_add_options_mk 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" - - # Set build dir - mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" - - # Show flags we will use - einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" - einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" - einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" - einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" - einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" - - # Handle EXTRA_CONF and show summary - local ac opt hash reason - - # Apply EXTRA_ECONF entries to $MOZCONFIG - if [[ -n ${EXTRA_ECONF} ]] ; then - IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} - for opt in "${ac[@]}"; do - mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} - done - fi - - echo - echo "==========================================================" - echo "Building ${PF} with the following configuration" - grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do - [[ -z ${hash} || ${hash} == \# ]] \ - || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" - printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" - done - echo "==========================================================" - echo - - ./mach configure || die -} - -src_compile() { - local virtx_cmd= - - if use pgo ; then - virtx_cmd=virtx - - # Reset and cleanup environment variables used by GNOME/XDG - gnome2_environment_reset - - addpredict /root - fi - - local -x GDK_BACKEND=x11 - - ${virtx_cmd} ./mach build --verbose \ - || die -} - -src_install() { - # xpcshell is getting called during install - pax-mark m \ - "${BUILD_DIR}"/dist/bin/xpcshell \ - "${BUILD_DIR}"/dist/bin/${PN} \ - "${BUILD_DIR}"/dist/bin/plugin-container - - DESTDIR="${D}" ./mach install || die - - # Upstream cannot ship symlink but we can (bmo#658850) - rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die - dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin - - # Don't install llvm-symbolizer from sys-devel/llvm package - if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then - rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die - fi - - # Install policy (currently only used to disable application updates) - insinto "${MOZILLA_FIVE_HOME}/distribution" - newins "${FILESDIR}"/distribution.ini distribution.ini - - # Install system-wide preferences - local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" - insinto "${PREFS_DIR}" - newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js - - local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js" - - # Set dictionary path to use system hunspell - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" - pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); - EOF - - # Force hwaccel prefs if USE=hwaccel is enabled - if use hwaccel ; then - cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \ - >>"${GENTOO_PREFS}" \ - || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" - fi - - # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it - if use system-harfbuzz ; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" - sticky_pref("gfx.font_rendering.graphite.enabled", true); - EOF - fi - - # Install geckodriver - if use geckodriver ; then - einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." - pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/geckodriver - - dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver - fi - - # Install icons - local icon_srcdir="${S}/browser/branding/official" - local icon_symbolic_file="${FILESDIR}/icon/"${PN}"-symbolic.svg" - - insinto /usr/share/icons/hicolor/symbolic/apps - newins "${icon_symbolic_file}" "${PN}"-symbolic.svg - - local icon size - for icon in "${icon_srcdir}"/default*.png ; do - size=${icon%.png} - size=${size##*/default} - - if [[ ${size} -eq 48 ]] ; then - newicon "${icon}" ${PN}.png - fi - - newicon -s ${size} "${icon}" ${PN}.png - done - - # Install menus - local wrapper_wayland="${PN}-wayland.sh" - local wrapper_x11="${PN}-x11.sh" - local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop" - local display_protocols="auto X11" - local icon="${PN}" - local name="GNU IceCat" - local use_wayland="false" - - if use wayland ; then - display_protocols+=" Wayland" - use_wayland="true" - fi - - local app_name desktop_filename display_protocol exec_command - for display_protocol in ${display_protocols} ; do - app_name="${name} on ${display_protocol}" - desktop_filename="${PN}-${display_protocol,,}.desktop" - - case ${display_protocol} in - Wayland) - exec_command="${PN}-wayland --name ${PN}-wayland" - newbin "${FILESDIR}/${wrapper_wayland}" ${PN}-wayland - ;; - X11) - if ! use wayland ; then - # Exit loop here because there's no choice so - # we don't need wrapper/.desktop file for X11. - continue - fi - - exec_command="${PN}-x11 --name ${PN}-x11" - newbin "${FILESDIR}/${wrapper_x11}" ${PN}-x11 - ;; - *) - app_name="${name}" - desktop_filename="${PN}.desktop" - exec_command="${PN}" - ;; - esac - - cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die - - sed -i \ - -e "s:@NAME@:${app_name}:" \ - -e "s:@EXEC@:${exec_command}:" \ - -e "s:@ICON@:${icon}:" \ - "${WORKDIR}/${PN}.desktop-template" \ - || die - - newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" - - rm "${WORKDIR}/${PN}.desktop-template" || die - done - - # Install generic wrapper script - [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" - newbin "${FILESDIR}/${PN}.sh" ${PN} - - # Update wrapper - local wrapper - for wrapper in \ - "${ED}/usr/bin/${PN}" \ - "${ED}/usr/bin/${PN}-x11" \ - "${ED}/usr/bin/${PN}-wayland" \ - ; do - [[ ! -f "${wrapper}" ]] && continue - - sed -i \ - -e "s:@PREFIX@:${EPREFIX}/usr:" \ - -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ - -e "s:@APULSELIB_DIR@:${apulselib}:" \ - -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ - "${wrapper}" \ - || die - done -} - -pkg_preinst() { - xdg_pkg_preinst - - # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse - # does not need to be forced into the LD_LIBRARY_PATH - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - einfo "APULSE found; Generating library symlinks for sound support ..." - local lib - pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die - for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do - # A quickpkg rolled by hand will grab symlinks as part of the package, - # so we need to avoid creating them if they already exist. - if [[ ! -L ${lib##*/} ]] ; then - ln -s "${lib}" ${lib##*/} || die - fi - done - popd &>/dev/null || die - fi -} - -pkg_postinst() { - xdg_pkg_postinst - - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - elog "Apulse was detected at merge time on this system and so it will always be" - elog "used for sound. If you wish to use pulseaudio instead please unmerge" - elog "media-sound/apulse." - elog - fi -}