python3-gevent-1.2.2-150000.5.3.1<>,Έevp9|!p-L)Y-Oy]ڇa?/[%љ[4C}u*"N&QcG4BK9@ϝ ۘe_]]MuoXNL*/Bs{Ghr |W/4omizyt}trZhl-9xy9 ϣVO5HLǸϏ^HjVg\8J9IKvJ3sdlxpaSĘ/yтF`Malܮz>A?d $ [DHTXq  L     :" :=AfEE4HHDHI(J,8J4 9Jd :KB F&G@H(IXY\]^u b#cdLeQfTlVulvTwxyz@PTcdhnCpython3-gevent1.2.2150000.5.3.1Python network library that uses greenlet and libeventGevent is a Python networking library that uses greenlet to provide synchronous API on top of a libevent event loop. Features include: * Fast event loop based on libevent. * Lightweight execution units based on greenlet. * Familiar API that re-uses concepts from the Python standard library. * Cooperative sockets with ssl support. * DNS queries performed through libevent-dns. * Ability to use standard library and 3rd party modules written for standard blocking sockets * Fast WSGI server based on libevent-http. gevent is inspired by eventlet but features more consistent API, simpler implementation and better performance. Read why others use gevent and check out the list of the open source projects based on gevent.evh04-armsrv1USUSE Linux Enterprise 15SUSE LLC MIThttps://www.suse.com/Development/Languages/Pythonhttp://www.gevent.org/linuxaarch64 i W Wee##6j6jb6b6""+d+dBzBzFF"";p;p//.i.i ;y;yppZyZyssGBGB00``CCII**  }} ccQQ | |7h7h  G G<<T).)(M6'Abmk*3@ y/`?:[ 4Efii  rrp F'jd#6 "^hdF#o0UO< "N7O1 C& 5GAA큤A큤큤큤A큤A큤큤큤A큤A큤ev|ev|ev|ev|ev|ev|ev|ev|Y5A&ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|ev|Y5A&Y5A&Y5A&ev}Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&ev}Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5ABY5AAY5AAY5A&Y5A&ev|Y5A&ev|ev|ev|ev|ev|ev|ev|ev}Y5A&Y5A&Y5A&Y5A&Y5A&ev}Y5A&Y5A@Y5A&Y5AAY5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&e Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&e Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&Y5A&ev~Y5A&Y5A&Y5A&Y5A&Y5A&ev~Y5A&3f63c006e27d1dfd0151e0b576a5f7615ad7132321f81ced86b48bb7ec062f4b61614d25f9e4eb1ee371975bff17a02104e63d98f2a122d079cd13af5abfe04101ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b934bd451f9d310c9327a930ab2ae00bc08697da0f655241236aa026be982e3a17e91251a24ded9f770dbbbe6371755e4c429ca7763cd664c9394c1fcd3183d2229f0f1407c2b560b2d2f8ab5c31917551f7a824d4442364ab3a1e6588b7b7a0fdafae52d4e451ce0ddcceb2ca1e87930f878600aeaf9e63df4f72ab828869fd5282725eeb54185c286c39afecae28ee38b279711ac1b8292b70e689022b88a17734bb3c6aab0a0016a7aaebe9ccf1063656560746a1ab4624c6c53acaddc7022953fd2c3f2a2a6da5a194c6fe1101b6a83f8cf960eaa6ce4dcf7b22e185b54fdecea32ff7fa6bf57a63893e115557b07a3e9351daa0561d9135996614df3c315b212ec002ca5496b43dccf943e6a9988a07ce263cf28709b80bbc908baf6bb916f2225672be73d1d1abc97c7f3ade6e0b3f4665b3fa9f4d06dcc83d104c5162c670d9b0114301aab53b477957922f930f60a354d1dfcd6a3f55174e09c5435364eb4d88b32e81aad06c213f6c1b0cbf1367729545e284468c8fecaba621ec97a58b1cad29c5156e59de69bf8af5b17e58f47d923b543d9701f88c4a70e79b6359cc4a83b28edd6a34571646edd8e07f676699883e63e196aef95d35526e10c05396883cc80318a5e027231d759ca5fba4cb8a9e3a0952d6530f64c74688aa9be32e97efcbdda857bda4475a47b2edcc217ca61564f7d9a8c6f5a20b4d0c321ea8fc71632e7afc51b45ec06b7811feece3190467e8aebf02e0c4fe42b7b55eb0fbfdcf851c8bda3bfe6a574efcaa2b4aee190e9fbc41bd2f47aceef50aaf716ff0b3047a72fde89c2df9a1a6f6eef90f7c8ff9b72145a1575e2a388badca808dfaaca27a71c5bd02cecfb8f12ed89c04935df9881aebe8c23d4d79afbd3c26597f556cc25839ae4276f71b443be318b8cd9b83c29a7856bd6fcce5e30754dd5f95d822c6d3ae43bd633cd716fa0519822fcabcab2481dcd7a21611913a9bd9351390fbee9926d7a183e661dae78889a5059d437da7b932ae8bc3f4d7aa2478431f5059440731e3fcc3307294d9291a7ffdade43897c324e829998865a9f361a93459a006c97192994eda6ad3b365bf96982ff28f11bae81706b52a23ff49f3b8166c0bf5e556e85707d4278302d27fbd06b233c4d55132c8a710200fe69d1b731155620cd3f33b4c2b49ea04880ba869ab6d93a201c52d696db7bf7679533d11fb6073ad5743bfe0356dbe59dad76452ea9c4d0e946d46def6277acaf82c4b25391aa1d5f617131ca529c6e8fc3b94e73ab8aa09df6dcf9f3300ffdbed8befe3427ce059b6b8969413acb816e3b5c4cfe397ccdca3ba4f772438ef84dba354cce99fd49f27424b595cd8207124554382bbb3433e35f3d12ea1bc15f9a5b93d24dcef2dcfc5efa5000c887ddfc10dcf180e983c71914088246d4e892b81ea72a6e73b3497ee067ca6a80ead96eaab8d1daed05669547e8930f77deb15c6ef63412c2a9252693e210fcfdbbfbf34f4aa340420b84df02acbf116b65ed96777d4ee880d4517057925ae941673086ed210023b11ec999169923dcbe2b555a085b0cd5524ea17c4fbfde0f6432c43548f562af9e7e9c185d98c23827314a36a21732de9a81796518f4b4887cef01e1921153d8915eb1605971c2d8cf73db635a5ee1c62009c0767079efade9c6bd3d904b80e68a66914f009d7a0fcdf1520d9b22a5faa3ead7203fa1cde729eb7bb267a21f9415c3cd9e1c16d3c3ef25e68a64b035583cdb9d62d464c38f00977690210289e63fec167d4cfe859da7f646a14a63b9ed27cc861010a30652bebaec22eecf5efc48b0e89a6fc256d27740f608b738fa289aad66b142e83885ffc03ac99d6c63835f15e4487cdb65c3508da0c8ffa9bd6d0df30f36cf813d7513e183b3c20700b6bcf3ff1a38ebd5a667693662eb8389f3dd1cc07580a74a8f4dabdfb4b4bb5215e3562171727daddaac6d8cc01fdf2e697e4cd6d5fa77ec186447994e114956f0b3e6ff55791119c8d318f3e59c90bb38b0d52f0c146e2f71ddfe96a25d8d0e362da609cc57cc1ca33dc5f58041adbd481b3328826957898ce65c4b7c925d7943459fa983de4b708bf38883c4758423ce25f69c208c4df3aae66ee03ab4bd0ba45b3e8ce3ccc6285fdd5857daef25992525f69c208c4df3aae66ee03ab4bd0ba45b3e8ce3ccc6285fdd5857daef2599250a097b33dafb71277d99f76fc1f19ed18f87a911e4633a0efd9bbb1ea937cf20a24ab9f72da5c7d5a58dd48cc468f2cd2f5f0e27b74a2f2d36c00e9ffa869f5e43af6c565566bd795063e2f610b5f468edd2d3dafe02e53359cca492d7ab5f6eb27b433dc22efadd6d73c925a87395a5f8ea7bce370f9862f556b353a5b517220e45d059a709c1e72ffd6dc4516b6303f7e404495bf7622d791dca8928df654600f9f57b6bc9f0aa0fe724d6f91abfaa38451c546fe6f1226f9fc3afc3112558152fd006aa941c13d35aa8cf1cc0b7645d6425a4c261e598303ac9039349e3ab4025889e090ddba7f4c85436c357e5e1f608a8fde83b3f409734670f3eee5e70e87a7731c1a147769c0da4d1b5770ae85a523f5974edd91e0c2a49b2b275b679a2abcce7956f2d56fd46e05eff3f593777a6722120509961389c5c2e7bde9092c63ac35599dd4ae21336c740046686394da125a9fd37b190b5092237fc4f717088c8fa513f117e853f3342f7c1cbc0ae8433087a7196a1b0de7449b83fee3bebe8405c2be775e3ec9e59c362d59180e8a4f9d14518e8d942999598ef3af4824a911fc516fe0f23e13adde256b75a8693dafc69f419c40e1c491d9520647f7d97395c5836a43f54ce08de8f18306944ae6dc97e3f7cd326d37ca509d618ce9fdab319afe5c9a00356ef78ce6c25e324026733fcf977d336fc5256025baca0fee2d4a91413b99f233e513bbf27ac61052f75a31cf6a00abadef6335d6d4ec517bbfc93f0858cf34d5cb7a9f47f57912a255b6010460c03fe91b98dd595754c9b1e8bcdc996db9efb474029365a6875b64083d6db342e89ebe6e67c6934c3cc5eab9f2966e38697c24ffc44509612f208feafdcc879a42ec2e40ea2231c3788723df0f8f6221d3c808bc5dd41f717ae49d7c5195ade9183f6ed1ce033811c958db6d81cbac1f339529c362202312f300313d1e2d894b5ccfcf8d734b84cc124474bc5dee052d4b57e4786cb60d42e30878f9d3a1ae02c9eb17d1ec1312c07ccefc3421ec78b0bc05f7957ebbfcd44e0cc2c457a850b70c8344a3a43b54731840172161e30aaeca32e7b0aa372b6f4af860a1d0b789982836faa7602c9e1094519a12634110565b3119e04dd5b69cad72693f5bf415bd9f3d7e813318f1db610b49094edd46625a0aa1ff5dd63836e0643a61ff36f00b99411e8cd70c00f88a7052887a3d1ddaa538aaec38b8f44ae663238dd97ecb7a54d6fbd488af0ba7f87dc66c543a8994d1bc59ff434e84dc4d771ff0714d41eba3c1ec1d48c4d5bcb70f6e4fe8bae9e8fd4606c0f650b0c33df603a9289dc0856fa57f73d5e644faafe69d9eddd81b063503a35cb24c7403fe7f8372d1af4c3f4eabd23aa68c0b912c7252cc75c875e2e6a3076d744b3e73a7c3e73b46029a601544a35b239c824530748f3cf1042e36adad3d936254348bd6c8b0ab7af6b95ded15168e59041e461c56334caef19ce215e5453a6f1147395993954ca3ea6b9801b18a1e365b3379868e58071fcd2db1ec6d16bd99be88565d4c18c0b5aa9cb147fed8771ccfc973c0608729f6350155644e8e55d7a3fd2cfb495171fb1fb5373b24e1e4e18b18ad6d220ad742d8ca28d9bc165b5b8fc709fd758d912aee6829f75398bf7ed40f76c4fbbaf510e0e5e1dc854f5d4cb3bd87f7795db147f13c94e5c23b4eba42bdb0737706b95730df5893cd6bf46e9aca7cfeefe9c02f13b396b3c2fe2f221e1d35f3cd38336f433c57a67bad3c501cbef4ba78a4b9a9a7d3d1db119b69c5a1bdababc09ce27cf767d1784e03134b7d39989e1b65c188e34995f1a5c61c191fc21a78026ae27cf767d1784e03134b7d39989e1b65c188e34995f1a5c61c191fc21a78026ae4d32b0c49c96efc9275616f80068f84caf8cbe80d9a00ae38b378a9e00cf25ae37a6f3b1d27c9699ba26e566a3da24d8f1c54d01e06b54b245ee8e12c2988f147902bf5f1aa5cd27c19ba83cfa334477ab61e3a85b64fe61a9417ca7fe86300124a94dcda078ed93828b51a09061f12e0ccae4cacdd7fadf34410a8330068e79110f7359de3507954c5550bee3839dfc6203426c1208a762934cd64cb4e8dfd8964c37af7bd08bae2f00f4c6a98b488ea3cada28ec5bb5db94d6b1d20a8f8e2913822aa929934c50814132312303f1b69da3100d0081e32083e2e19e3983410ad26e68a55696761f441dd4930344e4fb67e0c736811bd4166499294006e35cf833857b936ee6af1465f5f3de7aadb524c0f97cf75aa01df508b6fb29a8fb6f91d9fe7d47aac91b24477a4913017e1ad5cffaf614ecf22f970f402cfe2827a5d8f5ff9be9638fd798fc6f3eb1286405968e9c500d2266ede01df0d728a55a7d5656765ec240c60ab84e1eb15a447b8f81778d48f489b85ad87b9d42ad11ea5a160613ef6edb6dee6ebec54eaf5b613138cf253a3fbe70ce375b836ca7285b3dacd9248a00586021c3663262c16c2099343e605023e9ed32194d3bb0084efe0e0b05c96f738bb3cf10471f4fa3f6ee88b5b5eb3b7acbc3a899d3177bbe4305d5bc522f5ea974be5eff94660e243a8a99385b25e441d00247697c65888e3ced6e2ea109803afd14d6210182f72426abbedcdff3001910d35f49d76c5ce23bbcdceff13f48efea3842cb5c5d2c76f735e890dd92a871127da6475c4a3fb4ebf0f300f75d7b77e175f6bdcd66f19560ebf1dbdcba66c9936a63e7845d0b4d0fce123509b4c04ad462773cf78632120100d66e05994ec13b62aa8766bd06c516fe0566e8a77d0d45924d55181b7247f956cf625a874dab61f730db577a06b0b3600516af05fe222b85141504ab611267b188130a960e3671ecf7d749fba9c0e3957007f9810f3540f721bc7786febf208d6243e9d5395b316dc1b88012eb9e34da53229dfbd673efbef963c7252c8c1ed02c07ac89592b7183661d63040c34340c72ec6ff1f503e6aca6a2b6101a19cfec0095b26acc0c5f650d0de00870a8d082b70bc2bb916335042bd34adedc4739578a6e306d4de31380385310645c4733a846660b7c7f58971cfd3b7b8113a46f38d1a5eba8ec3c6e11f34e2fcc887859be0acf2f201a0123f68bde42f6994f3fb12f809318f863c1b89fef2fa54b50291a27ae3f5924c4a4f027bfad10e295293a373ccb8e12737998d808ee90b5b15056a44f32ab968dc481062a5be57f2e6f341dd823c05e83cbf17a6aaeff266135aae8771218e9338b3edee0781c52b10c4221497e98debbc6e12b3cff11bdbaf9f40b3460e87c59871d7576bc4bec6917925007ea5f98cf220ee944e12bfa62e6f929e9a345a50b0f0396cce310e5f5b422399e672c7b863695ac3a8bdc4242c39e0f54e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85536172a48f2fa1d317e3c19720ca9bc368c427aaf185745813922cdd5415a1f0e36172a48f2fa1d317e3c19720ca9bc368c427aaf185745813922cdd5415a1f0ed6f9090db71dbe6b5d4326c53111ab8df328b5de6bff3674740a2c1d28527a3cdd764b65c9512d3e6578a673a18984d8fb9cb79a08dbcc0bb5798a57a0a662bd42ba52d91427849d4c13aa0eb12567f107b77ba2104cb10351b01385d82b48bedcc5fab6ff2639cf42d6566884f95ba100541ef9955bb94d67048626e1cb12dee02c8ba8ed2b652af356e3d67b503fa7dabce61a6dafbb8a871bfca6bd8e5cda76f7770cc6a362657abcf1c77ca6cc577b3bae894658e1daa9fee74837727cbdc7f15b3a801f697b994d430d1ae95933248575f7d9b62d3c5798779b36b97f38753179891103582150fb2e8516d14263688b2e7c53246b2f405be35490b69b5709f8216f48958819564a62e22ef04b136adab838718587afa4a942ab190f94ec89ac86d0f4696a88fbe579691e34566df5e486af21d0c612c616336883331f60c7e65645867cb7fc88f846bd7b14a4a9d4b713fe3691a64a78bef8318b557ef105a5ee18b01426505f51abac9de86cc8c5ecb181e1e5bee7c3c6e9e778c667658aeb20eff5f10c859a27adfaf87d8e9f890f25b905a1eb341fa965561cc0267120ae3dde7030adabce3f5022b77bc2548770e14f16104f7ecd78608ef1f5a1ac76a35f3127dd3281f667acf3ebc351641092cd48154ae7f0b86832ca7d4a8bc6296e617552b0b7f30dbf9e7c07d0e32d66c513a8b72c357b41e105ae3d0bc96ee513eddd0ed8e4c2651256c33c573f4cd8037df7ae03b3471a8d34515b4c7fca7b4a99062e28e3c2392f41eda13fc2b05c2af42756786b1d32b94dacb8662f2d9075e5bcdaf21bee8d9c0985452d28c329f202d5a31d0dea872a7781c760036b27ea2f4fb9fd8bad4cc1b1442ad84baaa517545a46868133f2cf7e076121a69fc1ca48eae1f138dea63598ae8220ea24f829dea6dc768eff3b74b224fc47cd44807ab887f6b938211b25aa8f6f5e08860fbd8cf11b284a10688ecf59faa8f0bf32c3bead1ea45510ec3a11e876499d62fb8251feed206fa531a6d6581ce074c689e2c993d11629f78d6170a479de0389d8b2a17cc1731b581f741b63b88862738703a0d02d42f5e2585b3b5edf49b1c277ca2bc39b019abdc8681aa5e03205b8954bd435ee32eff4655d39630ec01b5397f0fb33a91c59133abd4ee7b7cc4db8dc95fd03d808c58c26431c2b1cfbd0b8d95e76c6dd5c61e8c04be3102911391442af9edd56712ad5e7b801e0e002e79fa54bceb067add769a229bba3cc64c4508d38e08129fce812182bf10c375f8c067b033121d012b87f661cc25ca46ae1db15513de5f4abe30c4c0e9811cefb3d98f398b0e918ef50722e25e4c0f6471421615fd04154b3f0f75c1740a0f82398d75b51de3a0eed024e9e10ed00a1201a1b21d13d35b6da02c6e8705913ae4b402ac11ce9f309bf7734892a82d3cb062b7766619d56f0130e5024160df459b8ef3b8987ff4b7d72c9875166c46a106424bd659384d341b3b375f81d72a93c27f6ffb7e31dc8e06d5051f8d04534ecac5e729328324e70bcd09e3948965de0ce6c1cbe38aeed42088fce95f42ceabf87f0cdef0fb0460aaad8207490a0f8df0b51357f9ef232e2b1eecff5ac2f2dbbc86a6d1aae0789eb3bc813b53b108694c6bd0376bfb7752b06728c8c15e3f87465434b411ff98abe6e511c87644a21d553fa1eff0f3aed1c8584984e66353d40530613cd69de88d215d22c54593c907bdb706a9c7147ed17543cea7a366663f79d71ee24647cdc4d44823317600970f7a1213adb91a23c66f271a674088ce4dd2b1afb58193f60d7ff924dd01773cc51d49caa033f3eb785e0e0617d7ab65b9dbae27dce861e147ad6c79054464f97795df253a4d5a93ed59a9f3f9c021ad2f49d60f287bdc559f6015cb945743c8bc342bb542110d38781490e04782e9976a869dc3168fe373134aab5f5081caad8f1088318991098ffe52d8c672817214d5ef11ee39d50ec05a30c29bdd8a515f78f375ae04c2445e6989894bea1ac286eeb0546ea09aa4916fa6ebcf50582e4f5e729801c170325d6734158294b29c566e0340b8b1fe22cbab1696dfc7b38055b1c4d769b1b5d61909b38367d71aa66be4d55298c4d46bc11d19e3853d54325973b8e2c53090f5638a7bf27fa1f5f1232c78901f7rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-gevent-1.2.2-150000.5.3.1.src.rpmpython3-geventpython3-gevent(aarch-64)@@@@@@@@     ld-linux-aarch64.so.1()(64bit)ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.17)(64bit)libpython3.6m.so.1.0()(64bit)python(abi)python3-cffipython3-greenletrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.63.0.4-14.6.0-14.0.4-14.0-15.2-14.14.1e Zg#ZfZ7Y.@XQ@XOVaVT@U@UTk4mcepl@suse.comdimstar@opensuse.orgjmatejek@suse.comarun@gmx.dedmueller@suse.comtoddrme2178@gmail.comdmueller@suse.comtoddrme2178@gmail.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtoddrme2178@gmail.com- (bsc#1215469, CVE-2023-41419) Add CVE-2023-41419-http-req-smuggle.patch preventing http request smuggling. Make ``gevent.pywsgi`` comply more closely with the HTTP specification for chunked transfer encoding. In particular, we are much stricter about trailers, and trailers that are invalid (too long or featuring disallowed characters) forcibly close the connection to the client *after* the results have been sent. Trailers otherwise continue to be ignored and are not available to the WSGI application. Previously, carefully crafted invalid trailers in chunked requests on keep-alive connections might appear as two requests to ``gevent.pywsgi``. Because this was handled exactly as a normal keep-alive connection with two requests, the WSGI application should handle it normally. However, if you were counting on some upstream server to filter incoming requests based on paths or header fields, and the upstream server simply passed trailers through without validating them, then this embedded second request would bypass those checks. (If the upstream server validated that the trailers meet the HTTP specification, this could not occur, because characters that are required in an HTTP request, like a space, are not allowed in trailers.) CVE-2023-41419 was reserved for this.- Disable building of the documentation: the make html call fails already, and with rpm 4.14, this aborts the entire build. - Drop python-Sphinx buildrequires: not needed when not building the docs.- add greenlet dependency to Python 3 as well (bsc#1055386)- specfile: * added CHANGES.rst CONTRIBUTING.rst to %doc - update to version 1.2.2: * Testing on Python 3.5 now uses Python 3.5.3 due to SSL changes. See :issue:`943`. * Linux CI has been updated from Ubuntu 12.04 to Ubuntu 14.04 since the former has reached EOL. * Linux CI now tests on PyPy2 5.7.1, updated from PyPy2 5.6.0. * Linux CI now tests on PyPy3 3.5-5.7.1-beta, updated from PyPy3 3.3-5.5-alpha. * Python 2 sockets are compatible with the SOCK_CLOEXEC flag found on Linux. They no longer pass the socket type or protocol to getaddrinfo when connect is called. Reported in :issue:`944` by Bernie Hackett. * Replace optparse module with argparse. See :issue:`947`. * Update to version 1.3.1 of tblib to fix :issue:`954`, reported by ml31415. * Fix the name of the type parameter to :func:`gevent.socket.getaddrinfo` to be correct on Python 3. This would cause callers using keyword arguments to raise a :exc:`TypeError`. Reported in :issue:`960` by js6626069. Likewise, correct the argument names for fromfd and socketpair on Python 2, although they cannot be called with keyword arguments under CPython. Note: The gethost* functions take different argument names under CPython and PyPy. gevent follows the CPython convention, although these functions cannot be called with keyword arguments on CPython. * The previously-singleton exception objects FileObjectClosed and cancel_wait_ex were converted to classes. On Python 3, an exception object is stateful, including references to its context and possibly traceback, which could lead to objects remaining alive longer than intended. * Make sure that python -m gevent.monkey