diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest new file mode 100644 index 0000000..bc730f3 --- /dev/null +++ b/sys-cluster/ceph/Manifest @@ -0,0 +1,113 @@ +AUX README.gentoo 1085 BLAKE2B 761a88dbcb3126a47ae6257409d47c3e936743d102430cfc71fac90ea4b8ed876af9815b445e06d88ef407a47963eacd8027cf912ab3fcde724af22fd6a43741 SHA512 cee1b5fb9823333eda0750c04db0c56d71cca1cbf6fed6887ac4ba68949114df74aace3861343bdacd2a1dc4fc38932de805cc03074f981d26891673e454f250 +AUX ceph-10.2.0-dont-use-virtualenvs.patch 3253 BLAKE2B 099d80efbccfb4ce8ac6c7809c70b2fb66b44f3c6ee5fbea64988576320df9b5ea6c420088fc4dba2d899c9410979dae3a7609676271c53b1eaef5187ab33cfa SHA512 f6351c97ca6766aa5eb4ebb91bc013aaf8222029743c95f5c88b9bd8a6caca48908315e8850ffc83651573377b48e5feb170c310b42e2447fec739379169b500 +AUX ceph-10.2.1-libzfs.patch 440 BLAKE2B 8d0c46d54917a0d8f61f913562b4e8f9a54efd04ccf548a2290832a765f69b4db120bab6e72b94295bf1fd3214512db8c598af6ec514b1e9e4361f964b7fe4d9 SHA512 5afe85113f310b86a13fb18ba57030d50ae5bd9afbf4d6f5aacd7cca415dd13544522c5d903eb58ec90cc0f6ae2cbb022941debe7036d1b7fa6c5af26af9b9db +AUX ceph-10.2.1-unbundle-jerasure.patch 16190 BLAKE2B 6a5969ca39389ae26ed83c7a76c69adf049f32d6f183d602a460d844427d18825846d034b9753a359fd18bb19828532ba770318fd8c9c0294954d68b10c1e0ff SHA512 8076a69bb81f89f8892576c4e2ceb03131cbd7ffee82a0d4d66016120f6c79b906172d1a1c30d7642a32ef7afd46d77d7311b65ca55d065995f305cb0e89485a +AUX ceph-10.2.10-assert_h_clobber_detection.patch 565 BLAKE2B e8b2c4d43a9700bed7e0e19af26f429e844d67aec396fef26d9a40669ea85000568b4df4d07c30cf6f2c36a47758295c5b9debcd3211617c1d06c648a151bbc6 SHA512 b8084257014e90453a0c933e0bfdc2ebbbeeb0f5fcc96c509f04ce9b8add0fb3fc335c11106d42f362c907bf6a3fe3a602a544c9083914b2fe89be595bcd104e +AUX ceph-10.2.10-ceph_ver.patch 418 BLAKE2B e55cd8634a7ae9024dcda8d74f73cc22a4504143ee841bcf5a77faee96380ba90c27b4fa166cd36a05bac71448679f0eb476a902c1ca79ddea0397a67169eca9 SHA512 a533a52c44a55a37e42eb8435faec7ee9182c819466571917a606fff32bd6afbcb89af15f6457e756e17b256f9410b1ec43f465bc09a4bc0c0c704b694dc0347 +AUX ceph-10.2.10-duration-problem.patch 1303 BLAKE2B 0e04a4a9b86728e701f7e92d1d2c6c1a8d61796293be02a4b864b174f262703c522206c7786eac342da059b27b6ab32f40554dcc03c85b16d66b41628cb674f1 SHA512 72118c870a1c025c4c275655f127760f2c8c417c3cea88cb36c0a27a8b6fc7387ac98dc7b0e88ffaa34f433fa92609edc03d14881e0acd83207ff0fd13f114e0 +AUX ceph-10.2.10-python3.patch 400 BLAKE2B 8ef0928302d3a7aedbc2788de9cd9688874698acf9f08bf5978a3a7ea6371d46a1f8d156e8800705fe2c695de8d3162b38c5a41b5bb8f536613d97fc9bde35e8 SHA512 0ef0f6e251d3157914678014d50f7677457962acc435a0e54881b3143838561e714e27e18b4fcff36c40ab8cb58b44eb19c484dcb28e5648577c37abe285580b +AUX ceph-10.2.3-CVE-2016-8626.patch 1102 BLAKE2B 394efc3b3cf743790ef46a1ed5941081f6c5da89fb6b72a7d0413f1ae0b90d0142f4d1a60b5f1986beafd7f3f77de45b00632f7c251c9801802bd821fe9b6c2b SHA512 e924b4719f0c4a0aa27ed383c816d0d24d7a979b73fb2962193dbdc31cd23c02061904a696222d73e58e1892b2ca51e9c6df6674fec5c17f013c2f4664790fbd +AUX ceph-10.2.3-ETIMEOUT-fix-in-polling.patch 1167 BLAKE2B c8d50310831ef6213bbdfe8ce29c847a5a546ce0be20d90196ae930a58a191d9af740015a2baa3c688aef9a842b6febb178df5e306ec9e815a1ad82c00c5cafa SHA512 2be99be0a023d95ed91185114d9348cb6827f61135e4f83312f7b2ec21242f4789b248249f47a11b4447855fa74ac9da9757d72573098bd53eb4cb9c3d80a44f +AUX ceph-10.2.3-build-without-openldap.patch 1209 BLAKE2B 5ba29095421ebbcc7362814627b3459ee364f7a2f5d4256b9b5b85d39c15aabbba8faf725e6a67cee77d4a391e09087f12d15a94b22ffd1124dfc08cc94c9c48 SHA512 2b0476eeb78246f252bd294eabc66c6fe5724d753d0cc2dde56720aada2517e42df3387eb368a53fa553617d436d18393a4e856d6fe7395022b249d522d1ec88 +AUX ceph-10.2.3-sphinx.patch 396 BLAKE2B 4864311a23180971e8e0cd0c6224ec11fe715358ef68c15b284758b3b9b913657578ac19af0e547693933c0d3d1979381884f9dfd6b84b3085ce2b2d02d2e56e SHA512 73946cac357b1036f70fe46c73b39e37bc3c525bb81b1b0392e0076d87a7d731500047cdafbfa10da82a572e56dadf9119ebfd70f5313269ae303eda0c0e9b5b +AUX ceph-10.2.3-zstd.patch 1212 BLAKE2B 742bdeaa051d099806b0938b29d6e5186690d7e174353e792e5c00bb57a3f6e99367e7160a8fcd8a5467c9dfceff90636af22e8f4a622f3cd0a42bfc39c4d63f SHA512 eada803a0bb6785a12264c4da9c41bda56f1c1115724909289828ce0e6c33de8fea65c91d5601b88ec3c4746328fee2eb129143189cfd357138cd2c50d3e1494 +AUX ceph-10.2.5-Make-CephFS-bindings-and-tests-compatible-with-Python-3.patch 794 BLAKE2B d6448cfed9a67d38ed82fa7d7d3a5ba6aa26d629912cb5450cad628eb8c498b4934534404e70d2fea3db12c8e28e84e0c914e86d294071d7662a0fbee05c6cdd SHA512 1261d3f088ffc4514069e73e49f627c6f87e89683cedc0048dba6d0e18f53f9a784f6c558478ebe72dff70669e5a453809a720cde77f5b89675d92840e6609b7 +AUX ceph-10.2.5-Make-RBD-Python-bindings-compatible-with-Python-3.patch 2155 BLAKE2B 65ecae6fe095c9b61f26d80a5f12a6d5d22ea3f65d37837e382b24e608ef1bf47bb275183b136c49a95383c9d38e2839e2c7999d21708b95d1bb678a5e2ad729 SHA512 c64b4def2ee9cdc9109ff6c32391384980d5ac4e33d425454fe1ff59910ba622ecb458a6722a5ed0f988e021b83ace5d89cb3974a1cf65862e8766595d8cfb0e +AUX ceph-10.2.7-fix-compilation-with-zstd.patch 1782 BLAKE2B 35c63ded6f1a4740befe952e3685743f0f4cb2500f6451406133d3074179cba0703389c07a9936ecee7d2afc83db24aa212aaea3a856f240230bb6ea76fcb975 SHA512 5929217f64deb45fd803e33cd277443cbb5f5f956fc4be05490a07dae0b02467317426993c7fc44173a18955261e3a73e603775db12e788a93c851f992539ad6 +AUX ceph-10.2.9-cflags.patch 449 BLAKE2B a1fc3d1a1e5bb891932d0697631b9a604a47e4c564dc99ef1247cb9e5c26ba7bb5e421b4ca624e78b31d279c93db2965eab31d38f1d3b8fd93d247789ae9408c SHA512 17a165710b0effacc34257daf077f70f55e27f0bddd4dd58bbc8638653ebd13eeabffbb4ead40ddc3a69586c65e01f911ee5f8e1bde94576d66928f0928fa510 +AUX ceph-10.2.9-dont-run-lsb_release.patch 2862 BLAKE2B 94e31ddba114ff798f3334c71df551fd267ca716a4aa4aa8e8ebf534a5e38d1b55d7a102306b60cb7dc7337ba009898c02f953a74b34580a85369788a7169018 SHA512 e97a0c2a40c886029bbff12f8591147b88d5eae86dc79a63b267f10745a465da62786cf41c9fd0f01f51805907633c1fe954ebe09b0730660cf690f2c53a8252 +AUX ceph-10.2.9-filestore_fix_infinit_loops_in_fiemap.patch 2970 BLAKE2B 24bcf9d00532b0712d5de34ca1422c2f8774571c4b15fb0a3345f5e161a5d6c33b88b33ac96c81afa0517e8619dcd1dd0fb982c56e1967e705fa081ffff62776 SHA512 e0adf5b7c299a69393dcf0ff31def1ad7f39eb242f8d9e170c84ee5c1ea92442287575af1f64fd630ac6877500b9e2ccb34dee1286cf91b1d52094042dfdb0d8 +AUX ceph-10.2.9-libradosstriper_fix_format_injection_vulnerability.patch 1412 BLAKE2B b1768b95c109bb281a4963e9fcc4d471eb6a0b19484273965a3cf1dfc6ba4ef239b14c67b0e98118356840ef709544813bb3a1defb97e2ab1d8aadce42e9461b SHA512 23dd7651edb176419d62648e9d29957b9819129f1f50ac97608c16d658d21787ded5f162b6f4c3e6b404f2d5aee47514a84278692684f0d6f7506c84cc71f37a +AUX ceph-10.2.9-librbd_filter_expected_error_codes_from_is_exclusive_lock_owner.patch 1017 BLAKE2B a76eaa64db3e19848fc9b1ae964b355783b30f24e998f16e121f29227ff4de4cb3b7e1552e437f1681c7826ed77b4a11a3b7bf489b8159c91c718cd834b949a2 SHA512 76a051a0fb2cf2f2b38655f7cc1866c745b6e59d999bc49666efc0e29d5e72aa26259241b9a9f4cc20a1863c3636a42a4d49d6d942d2d7456ce122b346a0f378 +AUX ceph-10.2.9-osd-scrub_to_specifies_clone_ver_but_transaction_include.patch 1422 BLAKE2B 4413687757d944c43d216a46db731d5dc3594f795e836d95c9367a5d66b8a828b614ad1079fef2459ccc7ff5ae1fdd448244aa9d2f18f78d1fe0e6c221cd1aa2 SHA512 62351c1ac682938e138cb1b6f668f9d9b841d3d57b84fbe6402ae9f7d7e2379c538c5d83335535d842da2870c3449bfcd39f66118f89422e7eb6fe8f04b0a52b +AUX ceph-10.2.9-rbd-do_not_attempt_to_load_key_if_auth_is_disabled.patch 1358 BLAKE2B 433acfc3a777fdce8b636d73848d06c6de03f68a53480d1523c5518f9350072fbbe1562ae0723c32f4f048019b7221ef9278a6b2c95f70d3d3a4dfa9da46590e SHA512 0c07702ca78195575a66efecb8e75393da8dc5706e08ffc1e598daab288f6678f6333085d929d69dc5828494c360a83bae3df2b96efb7ddaf782d43691eedba9 +AUX ceph-10.2.9-rbd-nbd_relax_size_check_for_newer_kernel_versions.patch 1111 BLAKE2B fc109bb20f3f6259f5ca78b2ac076dac0077e2f8466c76d9db1fcff2b59ab28991b69484e73b6cbe9618b74e1d3141079950ff183382c72f03a92f922b92089d SHA512 cf475d9de2ae0c4c41389458f9f256da0f584650ce8204779e7a537cf62195cb5017233b3dcdbe0a5aeed8d7512e4db964a43ac4856e779b6ebcb7a6f676e7bc +AUX ceph-10.2.9-unlock_sdata_op_ordering_lock_with_sdata_lock.patch 1353 BLAKE2B 9bc3a246093f851c51ec3b094f22b90727eda6ac88ab1eef671184370cd3c70de613b97bf96ad9fd01cdf4dd9cc6a44f17b4aa6918f86c1eb4c281b30677e483 SHA512 050d4439fb66b8dcb3ec3fe010bc6193e287dae2a7d25e7a58c4ce733e32a596271f6a69667039abe3e21b66918396a65d579b5da5665fb6e1e292be4b78ffa1 +AUX ceph-12.2.0-cflags.patch 536 BLAKE2B 9eb8dc48db09d35f86de280a36763b7a56d980adbaa2d68045e6378cb68904e939d8e7f7325fc5102151ea4e1f5133751b620885d1d0b3d6fe565291272b4b2a SHA512 9864da1a83c1145d143eedd73fd3ff142b354fd0bffa73a25f30eabd68d7eddee82208be7b7da74536ba4c996808aa77fc55bcf562a409240d69cbd249ef1d75 +AUX ceph-12.2.0-use-provided-cpu-flag-values.patch 1590 BLAKE2B 684dfd301a144e2958497bf588515b0319d4e2c5cc5a6c5949d4c2c6f0d41f94aca2c43c020285f4b467f42f9f9a3944ce3a5600dc95e3b8443c8420cfb76128 SHA512 ecf4067776a146cf2aaf0b83298e508a6073147e555f4f9ba73cf2d9e0fe26d9ea72fff8af1c67eaa436e30d32ed260f75683c7d77b27a88fbb098b561d13f0d +AUX ceph-12.2.1-systemd-unitdir.patch 345 BLAKE2B b97856edd071beb28e46301e97f996176dd62b6824ccc2154b7640ce629b1c0698c2d79e074a2df3af91ab34d6f7e84b2a5a04d41d8fa3b64b571a016ab14f19 SHA512 a29373704f645f5b52597f5482fb4538f3d335bb1020c206a089ba58707f988cf42d335f17a36911f373936f8e769613c3d3fa98f55c1fd91d433d036b769bcc +AUX ceph-12.2.11-boost-sonames.patch 7971 BLAKE2B 259be2dd12c15d5951e0ea4f2da50a003352cef9e1228d70be0e62b426aa2e5e1ec8509707511986b9067dcb98d96b9b02ac9f5ddeca72bccdb162fdb20cf72b SHA512 03af0a0f2c287f3edc685857d51b8e8d370337f42a1e0630deb1f69c8bb2fad2aab065d43fa22ca099aa51d3b5b962e0aa63a5f7110bb2b39577df71b65c18e5 +AUX ceph-12.2.11-fix-min-call.patch 692 BLAKE2B 636938a262cbf640531481f3f5030f1975c96253f56baf34a059c3c0b2d4dfa7c80cfbced41b8a832614a26532a6de497ab004950e0bc7b197d33040c0d38646 SHA512 9eece21ea40f785cbc1003f6af1d05ba764969a9c0ff275fd28b10bb4be5efab322bf9154d9bae575b45e9229572162901668c963333a00d8e98a48e0a6a3df9 +AUX ceph-12.2.12-civetweb-openssl-1.1.1.patch 383 BLAKE2B 77d2c5bde22b2239faf5d81ad6e8cc59b5d538e41cda50dc505c860421d392c9e3c53eeb9ad6c626fc3f610851b3ab03b013a33e88a5f28dedc7f7f9bd4f68bb SHA512 52a7fb10fed600e390d207e32aef7e1f53c7e3d0866e8cf607709cc233811a2ff697a342295f05b6787ea64b7e914487f1bbfd1f9f7d258a328d34ce2758be9f +AUX ceph-12.2.12-dont-use-bad-namespace.patch 416 BLAKE2B 10018739a4a726bdf4eef44904a1e0a95eb9e6ce43750606a4159c8577190d2cf07fe7a50cc41f9aff6135f1aecb3d0d836b49594322f443ddf8d92bb9941364 SHA512 50e6d0ddbac9380ddf68b259e99ec585e9b1b5b26ac813e9ed947f417706adcf128a9c49e36af0373762233a1020611addab05832effd7a4fce7bca928264bdc +AUX ceph-12.2.12-ncurses-tinfo.patch 573 BLAKE2B 87a2bb90dbebfeaa538697020a0d94d3b96a25e2d576a2b7b1281db81ee93db98c42b72f5cbda8b6a8b66e84b20429ceae9bb6a16110c1db371f6447c79a0287 SHA512 e0d24fe288f56fdb4ffabb25701a1b343083932fd97dc00fe66dda4c339409f922a4b3b5803534467b1138deaa5f8b886a1bbd9f10636c38fce7f656aede18f2 +AUX ceph-12.2.12-qa-warning.patch 494 BLAKE2B eeee0d451264390f8b6c712b08592b5dca5670b09771225833831c9a052cd227a5528d52521d6fd9420723bef291adb082970df58bdb0e1b14a964345098a315 SHA512 75ea26415a54a5e1c670adf1461516b01473728a9768429c4df6bdb9b9a28073acb7372167651dcc5680e268e5ef7641ef0643ea1ae90d4611feca912819581f +AUX ceph-12.2.2-build-without-radosgw.patch 999 BLAKE2B 2e4d995f82c43ca3d96c3e5f9acd8bf827b85055f4d558688de899b52573d7445ed72979bec5cd074b6ed3a7139227605571f79a5fbc5b2f0a2ce942d11d2296 SHA512 8ff2efef0bcf0fcf339cefeee6a54384ea6a2c219bc8b171e2306ca9043ffd9d95468c567966fabb5c1373adb00b4fe036daddb7715c232c029cda1e3d21bb83 +AUX ceph-12.2.4-boost-build-none-options.patch 932 BLAKE2B 7925da8f8f18e26af24a00a4fe595f900d9f676769614576c059513299c05cae1c982db8bdd3a571c04ace1ff1ea6171631c1373c408f465261b73e05f66580e SHA512 6ff46a90d76f667fa23be0f9eb1ed2fb7e30af9a2621aec19944d0a22a431a0f5721603c588286e483ff55c14aac920adfccb039c9678a87cc59640dd70367ae +AUX ceph-12.2.4-boost-sonames.patch 5145 BLAKE2B 70609fbcf98c556bc681a27da37abaf0178f0d60850f3d5dd7806f71dcc21affd103bbc4ffcd21be7ebe6a82a04eab5a46548aeb1d18ad398860e14f50b86ec6 SHA512 d8a69c34c02848ba918bf65f318bb02f27cbbbd618a337cc21153cad4ab33a07dfef27d8cfb1d2839b145a245483c57dfdbddb87061a5f9ce215fb6df94ef591 +AUX ceph-12.2.4-cflags.patch 1473 BLAKE2B 971ae7673ed21485248eb582762529c20991b487fae16221a7b6b6d30e29795e26ef83b5af3f7003f58a86784e9c846d2512cee76a440bf5f12b2b5b64968ec6 SHA512 402a5948e90f7daeb29c84a6204d88f6198fab17ac78ef69b5e7d8f54f9f61ed4995c4da2b37bed4448049077bd6167f69ad1c7c62105e924d5d8f8313f68f4e +AUX ceph-12.2.4-rocksdb-cflags.patch 601 BLAKE2B e434a0e05148e4df0848d9d0d36c7894ecadef0f1c9254dcc1eda782002f473471803372130e12a6b070f857b5f0279e8a7ee2dcf3623b8ca8e02234d4b9d6c1 SHA512 324acb8b94a050bee19e149d6a48a73f596fdf921c5f06d75475069bafcf2a230e0c12f3bb25ec6cd78f1f12334702691b73c2e2643dac63ba4bc71ac9ad0a48 +AUX ceph-12.2.5-boost-sonames.patch 5546 BLAKE2B 8062f550dd36371b1f89981ed2c63e5d8ff4273a6843f8cb8227c38fcfe29c1ce42c07578c3491a9b04e548d0c76a27481a7cb9ae2afad2870191090697c6f4b SHA512 0f48e5107be166306c832bc998c4375759e783ce0159250b3440f22ed7ef3b16fefc9e2258b53829145361d2e2e6bae97e09dde6ed81149a137f3ce84fe4ee47 +AUX ceph-12.2.5-no-werror.patch 2214 BLAKE2B b8878f8dd9e971f0f11f0954ba81fdf2df270e0ac3588220f629255737119a05def4012caa202b2e13f693b3962322126d7b6fb91ca18e844b0a1aed3de37586 SHA512 db945087453b83a87c963bf87b35ab77946a53f3b86e24dafd4b947e098d9780ff41aa6df979adcd306fa9e740d1dbba8cf7c391feb5b934ea83c55621b350cd +AUX ceph-13.2.0-boost-sonames.patch 6598 BLAKE2B 906530f288518b26b005140645241da4deda6ab38a1780fdd92e9a7602547cc8f6ef65da66a2fe689d047339aa1237a32ea524419649109309634b8516ce687b SHA512 4d62c4babfcd20fadbe25572d3aebb4b01360a22fa5554e73454d59d9a46ed011b59ab0538e0ddd182c006889c160394d8eda171171aeb55c131ce7237c54343 +AUX ceph-13.2.0-cflags.patch 1011 BLAKE2B a7d911ed0ded1a1eb5426bae3a7b1cc169774668cdefd120ce8a5bb2f2082d792dfa0d2e14bac558bf27343763b66d42b9d84046acfa5a1cb1d61fc1219955b3 SHA512 8ec0d668fefee12d2c7f5b5297dd81fc6a559f5823d069e6395d9b4240110eb8f95049d3054697a459948c1f3784b4450539849cf9d7f3b1aa1c7fbd96c475df +AUX ceph-13.2.0-mgr-python-version.patch 675 BLAKE2B 2458bd067f9947189b65c439df501f1c31eaf6a9ca7d46164e84a37aec7e99ac12456bd299604d18b2f0ac70898de90427a80390644a8e3d455c5e3caf297854 SHA512 aa0f3dab73573c1ac91513bca378a8441ace5f58a0e469f4f01d7ab22869b41e5d4a1e44c3fe8e2bc23ab5249fd1a52a4b72000d458521b6ee291512e51d474c +AUX ceph-13.2.0-no-virtualenvs.patch 4466 BLAKE2B 9f5176b7d3ee3b3602341864af8eb2494cfcc2268492d7ecf9f43576963de913c9be52259dd16c2a3ad6440eeb33604ce609fc11e7e36236a37c02b84ad81890 SHA512 7b9ab0a7e22784f66253f873dd76bb3e76cfff4781632ed51d39beefacdd1a7f4d90441aff9fd93987837fadaa847906bba32eb18c86f8a8fe31205246cbfd8d +AUX ceph-13.2.2-dont-install-sysvinit-script.patch 471 BLAKE2B 85ef94f49408496360fa24a433e9d6f3568749a6dfb415cbd17bfb950b9500f182c5141eab402686001f95e1611e60accdac7111ceca14f03b1ff8b4345c087f SHA512 ea069b75b786c22166c609b127b512802cc5c6e9512d792d7b7b34d276f5b86d57c8c35cfc7b5c855a59c0ba87ba1aabe2ca26da72b26bff46b6ba8410ddb27e +AUX ceph-13.2.5-armv7a_increase_largest_singleton.patch 650 BLAKE2B a11c3a5aa738010e881ff8b688edb5fa9fb1d2aefd24695e9e48ab8404fe0e39dd0ab663c5953052f0c7f9caffeac90bd1d30f025326430739779bfd5988afcf SHA512 dfe894e366bde7800ae01ec9bc53e77e0b5692872534163ed03c739388c4e4f71a5b352015a647d74df7c6ebf993c0b85eeb3550bf13c086a7237473e2006376 +AUX ceph-13.2.5-boost-get-static-assert-fix.patch 69917 BLAKE2B 813d347e566ca0c28f2893db6b22193d3cac4c55a42e5c70f2158733a4ef5af9001065489c3d10038f3b58572ad9a5011076e37d2177cd9870196e5bbc3e7748 SHA512 d826c2efbf40c2cf07fefdd18553d9c27231c3b7c66d68a36d4a357472fa5f18eac4169783c1c771a0cf9dae3c0d575503c52bf9f40feaf679305cbd02a7e654 +AUX ceph-13.2.5-concrete-minmax64.patch 2510 BLAKE2B 4ca952d379676538528e0f4772cdc1d8801bce61219dea8a95bdc9658a6e6b57d3b2ffe1d141095f562cd9c952b915b239c631bcb743b7f0f0ef22c4d9cc26bd SHA512 f013ac865583d4b6d60d78a15b2a8c1553ddb72d202189dc5f30c11659864a4006d5d448822b11a18da68571e24cddcb6f99f13ff91b9724c1465ead2898d16c +AUX ceph-13.2.5-no-automagic-deps.patch 1056 BLAKE2B dbae76e4be1ca690ff59c0b905ef63b9fbcddcb25d181af2a514113f4bfd5028a8b5bce98c965d195ae69f8532731b2e9d9002f01bb91ccfcde5a29eb43b8f41 SHA512 60616eaaadbf4431769bc2e192718ee28842efc818ee561af1c2c7a5269e393efeb455260c36582d3265730d482a92fb911b4c501e486a3a6387ab4a10d1589d +AUX ceph-13.2.5-size_t-initializer.patch 687 BLAKE2B 29154b4a7f28b29ae1d59d0dd12fa20bba787ccd9f9d7439e395bb463903646a4a73bf144ab850956d9c03feac3c0319fa59cb479c1c9820b59214e8a82c5d13 SHA512 9e8062423fe4f4ac3cb61ad7b4eeef60c1804618918c301ac9780d96142cb5daff20041b5095e4155fccb736dc84dbfd4ffe70707270a492ecf69ae315739414 +AUX ceph-13.2.6-arm32-build.patch 4881 BLAKE2B 9111619f7b95e5beeb667dd3740bb264b5f1e7b586d303869d72672d115e1a8a250d2ad17b6795e3399d139f94e858b18e294e2d81cbd8247b093873ac0200f4 SHA512 af709b4ca400fbb85f9acf280041c7a22b8f1eda3923d3565b352a5b32d13604935284d03d00e2e0c62e2c7bb8944539019542181f71c1c5fef18c11b43cde30 +AUX ceph-13.2.6-dpdk-alignment.patch 612 BLAKE2B 7f75b53383979d5790862c91ff67b41c16d94e6572c9c387ae511401d22562493bddb296f47bef60ebf586683df36b5b62744ac30d43b1c4eede053d6ae4438a SHA512 058bf0a564a158356e5a87099ea8d1372123eeee8bfdb3c25870911dccc351f33e00793456c5c04f670946559cd49bc6a8cab5553dc99bebb570910b4a787d58 +AUX ceph-13.2.6-no-virtualenvs.patch 4137 BLAKE2B 9cef3ed31ec0ab2d13091b0b76071532ffd021a5627fa91808bb7eff382a4b29945eaa6bc529e8ee3176056caf9f62af0fb4b4210d2549bbc05f018fd4ecd75c SHA512 051c80c70a951135e2a00f6688ff03f604f89c65be47c4e00e2f72ee1a071be067cc8a7a60fd4ef78587a6b79b2b26d52d5dc3efbdcf0e11d4e3e1156483b03e +AUX ceph-14.2.0-boost-1.70-sonames.patch 13703 BLAKE2B a619a07217895ae34a84c145930d9b477cc557d5088d1fb915f0427556330a24cb4385e953facf7cb2dcf99c1245bd25d2ebe25db56dec40648ad065bce7e873 SHA512 69f82d5f10b1237c17428b11e746422fcd0e1be735500032892d834361e636a23135cb7e6f537cbd808b74378325c24132a88f256abcce40ec1bdfe212b7648c +AUX ceph-14.2.0-boost-1.70.patch 5556 BLAKE2B 7610a48c30fe5cf8462f498501a36c17c33289967e7d50456d6b8e6c467db89b768f73bb6e69ecd4c6dec0432d4fbb47af339f02eb510ba69770b9b122b41dbf SHA512 71ee1d583f71b2c52fee40e5105d1ff1d4b676230eac7c19f42754316c3958808304155a48992f8766eded52d3e28007b631680dca8b4672153fa44b8eccbbb8 +AUX ceph-14.2.0-boost-sonames.patch 14155 BLAKE2B 766a3e40c8a4d94d1cc52a511f0d440178c199cb37b1d06a792fe627df4f01793d8555005054604397d02d9e366521b10788f6e56381a6d967814370e4298844 SHA512 91184e32d3ef28a43bc8e0d53b4f359c5b2177250b39bbcc7921e38d044ba54610713826bc64450a0b2232450f68e724d23757cc5c6d39e50855060e86890ed2 +AUX ceph-14.2.0-cflags.patch 545 BLAKE2B 0f5c4e509b2252de7a4b914b99fb4abe13010a1c21b2b701530f6a29dcd41924e3b81841cb65b7b949af42b168ce9fe756b0551c31babf9c9498d394b2ea6aa8 SHA512 9e6bb46d5bbdc5d93f4f026b2a8d6bdb692d9ea6e7018c1bb0188d95ea8574c76238d968b340fd67ddaa3d8183b310e393e3549dc3a63a795fde696413b0ca94 +AUX ceph-14.2.0-cython-0.29.patch 946 BLAKE2B c251b6a171e5e0bab3f8716b79eb3138a177c1f39e7cf433ba52d03d73de4b45abc2db6742237c8044519337297025cf577d210ace81457ff05325073aa5bb43 SHA512 82c1608928ee669ef60b8930ce82c443152c446e669e7bde9ce32f78571afb19a9620c3818b69ac8cb3ea33e7d7ac40f77c89162c71b19b157336d907fa23e3d +AUX ceph-14.2.0-dpdk-cflags.patch 1171 BLAKE2B a6815317d3828cee8d2476d6cc77b60d089db5b5ab0b30fd24c0ac10270ce930ce3049f1b22af71e5b39a6e323c672245fb78753e7ed901055afac8371cbcb9f SHA512 ece01fcaf0b82c441618eea1f37fc2658aa356de1128121d368769fdbf6316b226ea15a781353b115c0a81921c8872bb3d003ecbb1e8f1b456bb8cf6db8f091e +AUX ceph-14.2.0-link-crc32-statically.patch 428 BLAKE2B d324855dab736eeecf5835e79c4f2fad9ea4d10aa29b2b03ab6274efa2f54a5cfdad710552662a49d5f61466e1cd9d6c2fc8a42373961e3334f39b806e647feb SHA512 3efe70f826ebc207f1ce8744483c9a82ebbf8f3cfa81c9cbb3152b40f5b540cc9cc21e6bd3370197bee9a27a01c3e3725754d044069bb760c3dbfbc97fe4276d +AUX ceph-14.2.0-mgr-python-version.patch 685 BLAKE2B fbd36e0f5fe45be7cc58cf11b2b83613c2f7f7fdfd64d4f04729c36e5ebc110341aa4c5521d9be590bfb7a7812525130e773a346827461df0a108fbde359b161 SHA512 af0851913cf8b42bad71ece4e41017f71e91db19aeeebb5ea0306055d6d6d9e7eb9ba34224bb2583ca437d44827de8852727e8a9dd809d942d4c277ec3da3214 +AUX ceph-14.2.0-no-virtualenvs.patch 2349 BLAKE2B a012ab044f92c2a22c8f04661d2210585dbacb531ece528cc3d8d026ba692f46d1306b920826d02b93317de24c325542ac222a4e2b42684aa44f5c12019e2a29 SHA512 623eacb30565725768b80e56e876cef6f52c07b63d8a0f0cc9b16d82677014636f1fdffbf7ca77b21d6465fc84b7fa429153b5c51e6202c85b1fdd6c5ae96a38 +AUX ceph-14.2.1-32bit-build.patch 1256 BLAKE2B c00b8bedc259820a6176c8b4deece059f464a43df50533daab17a07f4965e2f6535d585bf83bcf34e59bb6fd3a88b822655f20a4921da53051fdefe77bd24e7a SHA512 169c352050d8a99834fc89e74034dfce931eaf0216bbfd9824737f1908d29fd0cf93d11697465baf632773e2edb65ce11daea55a188f1d32402301849a38cded +AUX ceph-14.2.1-ncurses-tinfo.patch 959 BLAKE2B f13e6fd85401cba869cc459568e731ff43176b75ff427ee7b16ed714cc0ac49437c4d8532cffd79e724dc2a48a142391f138c8669fda78a1091dcb98b9d8dd96 SHA512 7ea763a87ce14fc1a1a33f84e96d6fbd36af8833080e53eaa7ea674219e86c76a087766ef28091d6ea0667b170340a46ceca2300501a61265ae6cb66904eb82e +AUX ceph-14.2.10-build-without-mgr.patch 3248 BLAKE2B a0d435b1e5572d29f5d961bdb5e27da10060777d02c07616cd57abf0a734af0595093f3ead54be6ea74e450543917df55657b08d5f04681468d166c7dd0570ab SHA512 e03cd8dd9f08f348805d04e554e8a4c9bb2d83e931d1ba27c4265084b899031ddee12e3cc289aa927994c35b75a1bc383a0ee6648c7f8fee6864d775bb800fbf +AUX ceph-14.2.10-missing-includes.patch 634 BLAKE2B 2c12c908e74a93de06a8d554057a2b45cbf3969c0eee51402e31f713ecae7394d195e0a85433d90be944b9df4aee93259fd8a50663cad1c3a7a798defb71f5de SHA512 4b5cf3201b03e9c92260bf01966aa4f6992fe9ba76f2b2f4c3211bcd2f978a76e9b7d4820d79dfbbf9e3f98ccda1929ae92343397db29724120047ce0bbd25d2 +AUX ceph-14.2.10-python-warnings.patch 1536 BLAKE2B 49ce59204096e02f9e10037dcd365fdc6e95cabf69602592019470cc069835b139b6ac2664aff94ddf6226998fa63337db751b9daa7c9ec87eb4729063a34f4e SHA512 c9ebdfaa9d93ca8e287059f817df01294d0a523831e4212e534cfbcabfc70d4e11d154fce42931f8e65926cb7e5cff09dc9c8165268bf24010533e471e370aa1 +AUX ceph-14.2.11-systemd-unit-fix.patch 1110 BLAKE2B 6964fb2e9e09fef25020b8c0f3bdfc225864f3840c63349355111626260116a25c6eff9f3e34a1cdc7d5ddbf2517b8df768f4fb83a9f7d2088393c7dc6a91848 SHA512 c9d43af2d02e77c163b457603d0a519a0849eca4109b828a4e000b5e428679e81396f842f91a521d688f6c5867420a40fe893f529f9bbea9624bbcc4400377fb +AUX ceph-14.2.3-dpdk-compile-fix-1.patch 4729 BLAKE2B 96e709b592a7ea9324f54acf75ac3f78334a0d2b155f6d4b5360df8b13e2c9c8e5f6d6b19da5ddb7760c56d9307e056db9aeecec1926dddec88b6b685eb55374 SHA512 d0849fa120b3d7c26106e75bd830874854ee4214ac867b577f4486e4a033b2f555fa6745910f90d26f7fa5280bff01f5880eda9a2bc6edc856400a5756a8346b +AUX ceph-14.2.4-python-executable.patch 922 BLAKE2B a5c9e8c70de62a974ea0bea4159874447d725a566d75a026ca125a7db0f24a8d92212d067c8dd91b75ec1e2aab12e46da464f320c7e696cc916e29a4e0d28f93 SHA512 b263de28897f05fc3a201622b90a222bb2c6605d4e6d8921d3c8101247a41a44e1f9da4242f208e1ef4d10ae028917510f4390cc69595b77b723545f0f72eeb2 +AUX ceph-14.2.4-undefined-behaviour.patch 1990 BLAKE2B 4f9839bc05c95d40c870f346ebb1856f2846adb26fcbbed67e260f47def9b7167bac4a15917262e8c9dbb99cb83892da2aa315b6d9ee8cd60eb222876dc56482 SHA512 15e4df7cadb02e65144dffea3c287e853e27a04c18281c13282409f1bc28184f31b80d505123a3a29e5394fa0b5e3e3f1246bb70353f142e52e19939149a341e +AUX ceph-14.2.5-no-virtualenvs.patch 2144 BLAKE2B 1ade0666aa6dcaee8bf9da5d6e0d4f9c433afe2e59f7403d37409923f23c5de5de4451cf7193d57198c6b7617333f0ac7acdb2299411550f9bda833a9feb1e51 SHA512 e40fdef0c5b55393863cd662f52354f33f175519d746ee0ac37803616f02f9c207aeca0a1af8ecdc93742a3a63b97869a2032078a419c5746582c96fc7ecd012 +AUX ceph-14.2.8-32bit.patch 1574 BLAKE2B 55b16931dc6d4503f61274149f66b8acc345064ae9b9d9e6956369f38ae9c64b42bfb935bbfdc5b6238e40885d2da17404e4701695dca0f16a085037d41864d3 SHA512 e29e7a136ee1f27eba2f225db9c4826ad6c36044016536ca19f367ab906356ba7a0ab8eb0e272373dcaaff352950c4015b9144a0aca713f450dbd6d2fe5146a4 +AUX ceph-15.2.0-no-virtualenvs.patch 3197 BLAKE2B 356a5d465e449b9de1ec2e0f1f1b38950954844bc3d47a2ba22118aba5376b050fbd56b366fe2913f87fa1ef7822ad4a6fff93511d02c67e3718bab0a1962b7a SHA512 181d56a168875ede97b1945976481061c5632ae79232f9d35a00adb4e5d1cf0acc9bd2e4ac7a62638574b149bcac639522c9914a08636603504385e0cbdd1292 +AUX ceph-15.2.0-rocksdb-cmake.patch 703 BLAKE2B 1c99a1a89be22cedf39326cbf7d6e381c76598ceb8efd4dc6e9f97033c8e654314b8a59c147a7d5daf0305aaedbb4ceb14b9c14e79f61e8fa789e74c0205b1f4 SHA512 20256de5c3227caa149f8285bcc90fcbd67be8cefa568fb72ad0d43688f1f62db7c7fc231dfd4ecf2dd11be68bf1ccc284ebbc691a82a26f3968200f12c82097 +AUX ceph-15.2.2-systemd-unit.patch 682 BLAKE2B 1ec8c0a23fc7d572c79ca24aaf82100e108e2bb4f99ca2c695efcbefdc9543f853fff16c3f7b4636a38260e5ab9251228e9da1bf1a5cbc7a237c78e52bc8bf3a SHA512 8be953b7873f7e45f7f859ac9074b0f446a2ae6954997f93bcb2bdb2c1d85d36bb3fee571b3e57590131bbca3ff202911e0b31340cec8e39d447163c36bfdc1b +AUX ceph-15.2.3-spdk-compile.patch 376 BLAKE2B 073cee321c1a99f9a161fbec8f9e33bb13df14574e48300d1331dc2b31353f1ccac40f723de501c6e33bc6f065f4b4500048de9d9b0bae646c76ba715eab580a SHA512 c2890202820d022bf610d6317b0a6e3521da2060bb12e39ba1a5c347096d5688adcd98b1cbf25ad33ddfa78d3cae42669c21f4e1dbe6eceb150e4ee17bece582 +AUX ceph-15.2.4-system-uring.patch 2170 BLAKE2B aabfb8c5085de8d69c9afedd20cb99161fd556148f1e6c88c35ed1bdb83dafe28ddbe75ac1e579e23d0728856bb2c650895ab4c0791b0f8e6acf2652822b14f1 SHA512 8258661e56b5360f4260fdd29b07bac4d415068a112b61ca8c55c529fb1593d8d61a0d59a4eec8f1567b97167c058082198d008f55f8ee701cb46489df5f7823 +AUX ceph-15.2.5-glibc-2.32.patch 511 BLAKE2B d2327c3108355d6b25bd020539cb938e5969def1c0b6392cba546b0aa8b555388f5cab6534aebfde17a55e59baf8a0b6cbea2be77cbac5062b7f89c296a53a60 SHA512 491c4a8d4120c6620960d349effd76fcc780995c7a0ed4e9264642e40970a05c4238952a2b8355ad35268f0a9410be9bc38f6c77ddb8f55ad72adf294a0043c6 +AUX ceph-15.2.5-missing-includes.patch 435 BLAKE2B 66c4b30629203694bd0d5c82f5977a0576c67b3cb14d678e6ab60bc7a933e65306b122e253856bae7862637564e14a93b9cd2c48c9b510e01cc316fc7be9f218 SHA512 84de66f64ea96cd59b40dfb5b8c5d093fe49df1139b45ad9d1bd6b9ebd2f1200b6e931adcf032639a4995af322cf05c1ef9050eb1cb6673e29e040d4e348b3d5 +AUX ceph-15.2.5-systemd-unit-fix.patch 1114 BLAKE2B 589874deeda1bd21fb0aa83980083448b03f2185be15e23bc1a550f96d46f613d55f5134244f8b36f9e08883acdc3b49731ea5f56726c9ab2c455a1cdb0f796a SHA512 91fc1b88cba37d329f6280c94ed246bdaf5eb6e602a2537b130a764bad4179090bbb79e8a3e50e464e57703233da85da7e1a795987d28dd3aab7ef544d9af78a +AUX ceph-15.2.8-arm32build.patch 4110 BLAKE2B d64714bf7a305d14f402488aadeddd1ec9c9cd0563bb0b78d94ede4f6cf8846d49ee4da9d6a8c8d15d6acf777e968b7deb0efb197c939efbebcbb1ca3fbb4f21 SHA512 24fe4816652074a92598ab2b915a8bfd38c38aab86903532068531cc6ff8873c8043d052a2e3aa699f40f3131f283e98dd3718ae9e5859dc976c829e534a86fa +AUX ceph-glibc-2.32-no-sys_siglist.patch 589 BLAKE2B 221b13815ee6b1ffcd15c45d1e7a7191c28e7261e8ebd8ad65e6ab04528572e3404c7df73d7d69872e378a0c7335ba31d915b4edd2473e73306edfe2d85509ca SHA512 87eae0b9e4c477dbc3d8bfa2cdf745ccdbaa48275d05442fafe9148a614ba33f45f0b639afe343036a0143674c73792bacad4322e72373fd8e9f12d807f3f41d +AUX ceph-mds_at.service 282 BLAKE2B 3a51e5d5e0490c021282a37961824d650891c2d84c077c6479a9ee733f8a16fbe65cf204aa74e30ddd24dc01f32740037a6bd137a40464d57e1afeba5a49f893 SHA512 3a37e187f925e1a5fb672ac90937f544f3b98ed5a30b6a6b931a600f9d6a245373085ed61b40e0c64b30dbfac51dd99cbeaeb7538b5f23953bc0dde1df94742d +AUX ceph-mds_at.service.conf 115 BLAKE2B aaaa28074bf47ee98272337b536e6ca89dbbbb0443d7774c38f62da4b210a5b2ffbb53fa2b7f20dffbee08206a0868e33d381a89b613a25b88f897dd32753fd5 SHA512 e0b51882ec864271a6468141fdd185e24cafcd677f312a7658880a30c00fd58d9043b2651548ab23bd01e54be248a1e8c03545a8fda0b699ca051de7ceb925d8 +AUX ceph-osd_at.service 362 BLAKE2B 7ccbf3428d687d1dfc3a8e10d56083802bba621d7cc9b965b55677e7ae8ce19bd178d31be687e47ed4ae21eef017c8913339cb465822ceadecd2e90cf84d692d SHA512 99c932fa99679a26b288ad57ca725a50847199915368a07ae1bb589ca777cd6e6a68e84f4d506a1097a06ace06eede176ea573e694bcbe43b434381116d63300 +AUX ceph-osd_at.service.conf 115 BLAKE2B d234b9bd718585baf43f229f583e211607aab02942590f90e41d646205c44c9d4c7778c844fcc268d69410a6e76ca825882a5e1d4b1e86b0123905b1d6c081de SHA512 8f169a73f21968f550c6fb21ca7b1efde522b7cccaae0e0c4e22c67ee9c7ccfec7845de3cf84af1075ac9f8840b044dc9440e7936fb9079899df06df350ff9f2 +AUX ceph-tmpfilesd 29 BLAKE2B 02c5d6c59f6e93d03df3bb304529760824f64895f5bc0eff4a0a311013479e29cd3aa0fe554bbc65941838116d465b7df1ab351e2d80d7a4d1d109e26a7f0f2c SHA512 2d84199c6e57db1c0dd1074d94b899bf04c71ab0b10e91a34a0aa7c6a8136d34310ebe0967dcdde801f5b022502db00a891ce71af10c3ccef4ed396e8d316e15 +AUX ceph.confd-r1 69 BLAKE2B 2e75612a1c36057ab41939b4022c8211e32082a812e9636862fd97b4250594fbf3fbd6739e4faf84c056a8b5402a9089250ea84ce504f2bf2453c09f34dc2fee SHA512 b7f7ebb48b94398eaabb6df2cf3a5697d9a055ea4dd9b73c40d2bbf0e1445f418ed760b1f4ebb13cbb7315b2583847eb97b8649f67b6b7cf98081c0599c86aaa +AUX ceph.confd-r2 171 BLAKE2B 1d36905fdf12edd863679ddaede09b479091a972eba05fab9a6db402e49907e270ecc395524326d6d7fb37901224e4ba45a3eaa23adb2227e2d1b78d9661fd0a SHA512 f7170644341e6c8dcb71ca3a4325c8da3325ebe83898cbf11b47b41ea4f899781b9bc87fd21e006292de78fe9e905ac4703d10afcf91a4687002663469201ba9 +AUX ceph.confd-r3 1315 BLAKE2B bf5c573be6bcfd2c7f077087c36f8e918f027ad81b18ec496348ed155c97332ad6d1567a9c69a3c887fa0bdd184b98cbe7b73198db32aae248e31c7599857a96 SHA512 1d192cc8eec9b294440ee6c43966ccc36669b94007dd6b990c5ee8d18ee1b36730a9a0082ef7170846dcc64adcc61481808e854b6c9bdb2eb1db1c71435d3f05 +AUX ceph.confd-r4 1502 BLAKE2B 51b3d14ce7078a1ba3c458e3c028ceb8b7de02f8187b242c856efab51e64f36ae5435bec761bd85f7b42bfe78ebc28c267ba80ee0b4123b960ffaf35b749ff25 SHA512 ea3e7b668f6fcdf7f1884968a33d06c86448426a83cb132f927c32d83e28adaf8789489e7e817d4349479e3647577ef40190fc75fa88553aac1c7b4f515184c9 +AUX ceph.confd-r5 619 BLAKE2B 6d495b970c7ff14972845e46aafc55d227c45817f5f8a9a1cad2e242398cc49f2c53896affe1373433db4175c426f1148242588207c7dee60f28a8c3ee543e5f SHA512 288560fee187c496402d46e3fa17fe99c4d3f2c0bbb389a5a91384a1015939f2389a81398045f0d1c978c4da5a1400e97126b98374185424bc5501d0b821ad5c +AUX ceph.initd-r11 3070 BLAKE2B b8e875705720c323377dcedb2fddd76d199eb6430761a75d0da3b26a5a25295e33382ccc88843a894d81a7b07d76ec38faa9a292e67ec6102985d8002ecb3337 SHA512 e3b310a7f99b9226a80bbb9e0b4ed43b3bbe5b69e72f5c0dec5d2f9a7d5f5fc274b1f8e847183d92f27dd283511db8cf5428803bbc833708ce25a38a9da59a63 +AUX ceph.initd-r12 3088 BLAKE2B 371ee28604bef04766b3b13687feb56e076cf4ef23797bdf469db8b85454624ab005304c798c0945bcd4c5c0478ad7d724ccd33074afef39ab939464969e32b1 SHA512 4eeb1d589cd010b39405d1664f077a79d6a8bb8d9693b32390546e14a240f98ba6e4d6281940f482f57e8364339c68b1b02219c0f837f65a738686b00ac9498c +AUX ceph.initd-r2 958 BLAKE2B 9aeda4d2a0bad2fc1c190b19b78dd165230aeef932a5335038e650439ff3420a41d2a43ac527fadf700919ba9944b6da551b2fc5a665f915104717ef45474421 SHA512 6f42b8540797d3f55d64b9842e190ca2973c1779c720b7c9923b8bcc06dddf95672bee066275599e4feafeff38652235746433305dd4d7df8ad086a8deb960c0 +AUX ceph.initd-r4 1189 BLAKE2B 065554902fdd5c44fff69868e72817ee24916c6f93a3e332b7a673414dc27f80dc73f9f4266fb3c367ccdce036bb90a03b09cdd152f64567d1ba250d711ba0d0 SHA512 dbb69228ee566490bec93823040885e419bfbd7dc076c802cc97b47dde9fbb06a99f61498cc438c90fd0474b2ad7247d756b977fb415b0f1168442036a48bd97 +AUX ceph.initd-r5 2178 BLAKE2B d943da59449e796a9c592e173654275b40ba3701fd6c694521a1975e3070ee465b9dbc2ba748cbd99d94e00a82d792ca88f6b4c1cd299572bdd3d8829adcedbe SHA512 4037639b6de65e0966f1aa850778b87f4f8f926af621f68155e98f103e233b7ebb2fba18a65ca150b16767bb80581259f4720c925ed00777d640f19471147c90 +AUX ceph.initd-r6 2180 BLAKE2B c262225412e6e5bf61d315f661721c27f97726dd5eb4cb8696845c29ab95d2ad29b011db6e8d488ce58d71ac875008588737a453de8472ef7f6bb9309fd4f100 SHA512 9f19186da7a6150b4d371fdd5523a07979ef9c318242422f04ed0178b33e6886ac1333cad8a41aa0d75af2aa08d7ee8ec9075d980d32fcddc8558d143a425a01 +AUX ceph.initd-r7 2197 BLAKE2B 7df3ab975cd14a3cc782ed58f8e6c2f0bfdc3f1b96383400490d7cab27b4d5afa6381cdb02843c1bbfe30f62e5d801ccecf2b61178013855e13ec504da84aa4c SHA512 93890b9e049ff5925ce56b524389873e22560315bf25c40ac86ec11dd2375d184215e7a217d863d4e32bb817a3e0577fdea71a76bb5d5c28ecbeb8544f1b763c +AUX ceph.initd-r8 2363 BLAKE2B 43dd8f5eb9516b76609a91b1884cbe81d3afbd7634bc39987ecceab612a431e6b967d07c9b7d4a02352fe6545d999eaf1a137bb8d49865830a865ff2ed979186 SHA512 9061c97848e1826ae731202c763d8464f09dff013ae5855ce698d839f99d5184a533c3a81bba223d8f50051573e1fec92e915db32b26ac278b01bf17406cbba8 +AUX ceph.initd-r9 2435 BLAKE2B 2e1246f9d409bbe4d2895e9747490ddd108ef22c2060e151944ad2bda1e7ae13d61330cf9f33ec4900eb4fd4a26ff454dd081869901d21bff8309bf8db6d7533 SHA512 c7f0dd45bbada67e93b2e1acdafdb0ccd1de107d9d582b6b83889c5e0f91e524ea1324ab21e96d4c56d6016be6fed718a7791695c95c68813c6b9d6d3dc2a384 +AUX ceph.logrotate 427 BLAKE2B 9677f1a2a4872addff71527c800dd06bf65e18b589de3869e2a742c43070de789d5089f8739367efb913a64aeec5a8b82f47c129fac580e7c34e4f8cdc8b7332 SHA512 6edace611f46683ca3b8d2154b86ec77cc241909704e0362b728a5f51c2a809c22e83d69df0d58ec6b3a6b8dc8ef2518c220cac920f51e63fe668cdfe1b48bae +AUX ceph.logrotate-r2 545 BLAKE2B ef7dab92aa5fbbe7f5d5418feaae1a1f4400dce08ca4484fe5889888f4dcb6d180bfb5888d5c7d6d9bc32bb5c58443fb83c1cb4613a2810cab45e8a74c421279 SHA512 c30edd67b7cc064f09d4e02bac68a0aa26827d8d4e3c027393932587e8ce782893b93b53d7165d361602b29c90ef3d6b755e79d11a1edb054e0172decd4e627b +AUX envd-tcmalloc 48 BLAKE2B 4a0799ac6bbedfe5e701eead67600312d86f06143dbfd11d2c594c03d09bf13dfa645e5a0bde1189211ad20036dc4fcfce6758d3a5829d943eb337cc65783af9 SHA512 d180b1a888ec6d870ff523a3b10fd00eca479ee2586a236458af5ffaba21c84e7b8098da6d4bc08fb86c82c61a861dd3c3596a01063d734c329a92808682fc8c +AUX make-node-frontend-tarball.bash 3196 BLAKE2B 1779c8fe924d8a341bcf922da310c9e3543dd9875db79b2f08fd99419fc2a693e24a5d0c36e7db7b9c46f02bb78b51359e844c8265ff266e8a931a32b877b665 SHA512 4c13ebc9f2a7ba3d45a01cd72135a57b2dc6ad3edfe06a05645957c5522a053be940782f1148c117d8bf785937655083d3d1c74668e8c72d75ae000888a65d85 +AUX rbdmap.initd 2373 BLAKE2B b88d79efc722e2de3d1f0269664a976ed45fbb0a1c9d46fcfd058ea64d3ae7fe27d13455f2ac5ca06663d77cfac1d2f9d86d12bba926541042ac09a8778a3a52 SHA512 bbd48d6987e52eaf6d02bccf3aecd06596465af4d3ac93063f9a814106de162a27bf1a33ae1646e669efb3c754f3ba57f395523293ad643b0d81ee588252216b +AUX sysctld 57 BLAKE2B 840eec3d188df4998c7ba8fb923777636ae9d2aa342545b69c12e5ea8aa98ae97349b42b56c65a531b207c5f970f873a79c41789941cdd10b279e38f1616f84d SHA512 410f5d721c6cfcc5d7ddaff4f348345140d4b8e1b8fddccb537118bfc59f573ecad63db448598423c9a58fcfdb4cef90e6af27b838e6b77955dfd47673f0f52a +DIST ceph-10.2.10.tar.gz 14573701 BLAKE2B 78c68deb8537cae8394b4d35569983431e938eff42b01f448dea68016b33ca5770c83d1e1d382bfd6c8164d5259e821779c6515f8c8fb4d5d52ee90b7df43180 SHA512 883d1b8340aaefc7a1eee4bbfb5b1d1cc15bffed8f35fb1e8fb86b1208a4d0d16753eb6c688ea0e661c4877d3d148b2b6c2b41620c4e8a61e47c69f46f98e537 +EBUILD ceph-10.2.10-r2.ebuild 7840 BLAKE2B bb8f3a90b3fdea5c6dcf3fbb07e0b4d455e0bc8c855af87b786d67be0d23799d31b38685f525a0aec923fe8a089d805057a9f0d34ecc4b4675239a64ae5523b1 SHA512 35764b9d6fec9b25d5147d415409d77584f3f64937ff091532814fee71c1224fcae98fb466d77f2312aaeb947d9bbf7d8c47dbca57a598b9ecb088a6bbdd5095 +EBUILD ceph-10.2.10-r3.ebuild 7889 BLAKE2B 480a004d504c825de64784f9d333d904c79b6a4529e2f4823a478cda97e382084191bf2c0fee8eb8be05780ea02a99584f84f1addf4802f6ed2f925758571d8f SHA512 20de80cb781a852541f51f1528a0b0a6647f5d4452522f91f4ed5707fcd87d4c70249223dff04a8ce63e10a717c499ff63b3e4daf9eef6d22752742e5d599bba +MISC metadata.xml 2044 BLAKE2B f9a309d38c66cfb87071206331a6e2ba88366ed09802e949cb4499f1a0b2ee7a3ceca7df5653d1955c76ad2daf900aeee166265a2ced9c0b393e609f397dd563 SHA512 c051bacbbc9e64f0774714c1f6f8cf99990e1669de0ca1633173d870c03e04827cae993fd5e6846b310d838eead8471d2181a0678693ea43423e08795dfc0a47 diff --git a/sys-cluster/ceph/ceph-10.2.10-r2.ebuild b/sys-cluster/ceph/ceph-10.2.10-r2.ebuild new file mode 100644 index 0000000..86d9fd8 --- /dev/null +++ b/sys-cluster/ceph/ceph-10.2.10-r2.ebuild @@ -0,0 +1,310 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PYTHON_COMPAT=( python{2_7,3_{4,5,6,7}} ) + +inherit check-reqs autotools eutils python-r1 udev user \ + readme.gentoo-r1 systemd versionator flag-o-matic toolchain-funcs + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/ceph/ceph.git" + SRC_URI="" +else + SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86 ~arm" +fi + +DESCRIPTION="Ceph distributed filesystem" +HOMEPAGE="https://ceph.com/" + +LICENSE="LGPL-2.1" +SLOT="0" + +IUSE="babeltrace cephfs cryptopp debug fuse gtk jemalloc ldap +libaio" +IUSE+=" libatomic lttng +nss +radosgw static-libs +tcmalloc test xfs zfs" + +# unbundling code commented out pending bugs 584056 and 584058 +#>=dev-libs/jerasure-2.0.0-r1 +#>=dev-libs/gf-complete-2.0.0 +COMMON_DEPEND=" + app-arch/snappy:= + sys-libs/zlib:= + app-arch/lz4:= + app-arch/bzip2:= + app-arch/zstd:= + dev-libs/boost:=[threads] + dev-libs/libaio:= + dev-libs/leveldb:=[snappy] + nss? ( dev-libs/nss:= ) + libatomic? ( dev-libs/libatomic_ops:= ) + cryptopp? ( dev-libs/crypto++:= ) + sys-apps/keyutils + sys-apps/util-linux + dev-libs/libxml2:= + radosgw? ( dev-libs/fcgi:= ) + ldap? ( net-nds/openldap:= ) + babeltrace? ( dev-util/babeltrace ) + fuse? ( sys-fs/fuse:0= ) + xfs? ( sys-fs/xfsprogs:= ) + zfs? ( sys-fs/zfs:= ) + gtk? ( + x11-libs/gtk+:2= + dev-cpp/gtkmm:2.4 + gnome-base/librsvg:= + ) + radosgw? ( + dev-libs/fcgi:= + dev-libs/expat:= + net-misc/curl:= + ) + jemalloc? ( dev-libs/jemalloc:= ) + !jemalloc? ( =dev-util/google-perftools-2.4*:= ) + lttng? ( dev-util/lttng-ust:= ) + ${PYTHON_DEPS} + " +DEPEND="${COMMON_DEPEND} + dev-python/cython[${PYTHON_USEDEP}] + app-arch/cpio + dev-lang/yasm + virtual/pkgconfig + dev-python/sphinx + test? ( + sys-fs/btrfs-progs + sys-apps/grep[pcre] + dev-python/tox[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + )" +RDEPEND="${COMMON_DEPEND} + sys-apps/hdparm + sys-block/parted + sys-fs/cryptsetup + sys-apps/gptfdisk + !/dev/null || die + # + # This generates a QA warning about running econf in src_compile + # and src_install. Unfortunately the only other way to do this would + # involve building all of for each python implementation times, which + # wastes a _lot_ of CPU time and disk space. This hack will no longer + # be needed with >=ceph-11.2. + # + python_setup "${1}" + econf "${ECONFARGS[@]}" + + popd >/dev/null || die +} + +src_compile() { + emake + emake_python_bindings all + + use test && emake check-local +} + +src_test() { + make check || die "make check failed" +} + +src_install() { + default + emake_python_bindings install-exec "DESTDIR=\"${D}\"" + + prune_libtool_files --all + + exeinto /usr/$(get_libdir)/ceph + newexe src/init-ceph ceph_init.sh + + insinto /etc/logrotate.d/ + newins "${FILESDIR}"/ceph.logrotate ${PN} + + keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat + + fowners -R ceph:ceph /var/lib/ceph /var/log/ceph + + newinitd "${FILESDIR}/rbdmap.initd" rbdmap + newinitd "${FILESDIR}/${PN}.initd-r7" ${PN} + newconfd "${FILESDIR}/${PN}.confd-r3" ${PN} + + insinto /etc/sysctl.d + newins "${FILESDIR}"/sysctld 90-${PN}.conf + + use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc + + systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service" + systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service" + + udev_dorules udev/*.rules + + readme.gentoo_create_doc + + python_setup 'python2*' + python_fix_shebang "${ED}"/usr/{,s}bin/ + + # python_fix_shebang apparently is not idempotent + sed -i -r 's:(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]:\1:' \ + "${ED}"/usr/{sbin/ceph-disk,bin/ceph-detect-init} || die "sed failed" +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git a/sys-cluster/ceph/ceph-10.2.10-r3.ebuild b/sys-cluster/ceph/ceph-10.2.10-r3.ebuild new file mode 100644 index 0000000..b2041c9 --- /dev/null +++ b/sys-cluster/ceph/ceph-10.2.10-r3.ebuild @@ -0,0 +1,311 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PYTHON_COMPAT=( python{2_7,3_{6,7,8}} ) + +inherit check-reqs autotools eutils python-r1 udev user \ + readme.gentoo-r1 systemd versionator flag-o-matic toolchain-funcs + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/ceph/ceph.git" + SRC_URI="" +else + SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86 ~arm" +fi + +DESCRIPTION="Ceph distributed filesystem" +HOMEPAGE="https://ceph.com/" + +LICENSE="LGPL-2.1" +SLOT="0" + +IUSE="babeltrace cephfs cryptopp debug fuse gtk jemalloc ldap +libaio" +IUSE+=" libatomic lttng +nss +radosgw static-libs +tcmalloc test xfs zfs" + +# unbundling code commented out pending bugs 584056 and 584058 +#>=dev-libs/jerasure-2.0.0-r1 +#>=dev-libs/gf-complete-2.0.0 +COMMON_DEPEND=" + app-arch/snappy:= + sys-libs/zlib:= + app-arch/lz4:= + app-arch/bzip2:= + app-arch/zstd:= + dev-libs/boost:=[threads] + dev-libs/libaio:= + dev-libs/leveldb:=[snappy] + nss? ( dev-libs/nss:= ) + libatomic? ( dev-libs/libatomic_ops:= ) + cryptopp? ( dev-libs/crypto++:= ) + sys-apps/keyutils + sys-apps/util-linux + dev-libs/libxml2:= + radosgw? ( dev-libs/fcgi:= ) + ldap? ( net-nds/openldap:= ) + babeltrace? ( dev-util/babeltrace ) + fuse? ( sys-fs/fuse:0= ) + xfs? ( sys-fs/xfsprogs:= ) + zfs? ( sys-fs/zfs:= ) + gtk? ( + x11-libs/gtk+:2= + dev-cpp/gtkmm:2.4 + gnome-base/librsvg:= + ) + radosgw? ( + dev-libs/fcgi:= + dev-libs/expat:= + net-misc/curl:= + ) + jemalloc? ( dev-libs/jemalloc:= ) + !jemalloc? ( >=dev-util/google-perftools-2.4 ) + lttng? ( dev-util/lttng-ust:= ) + ${PYTHON_DEPS} + " +DEPEND="${COMMON_DEPEND} + dev-python/cython[${PYTHON_USEDEP}] + app-arch/cpio + dev-lang/yasm + virtual/pkgconfig + dev-python/sphinx + test? ( + sys-fs/btrfs-progs + sys-apps/grep[pcre] + dev-python/tox[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + )" +RDEPEND="${COMMON_DEPEND} + sys-apps/hdparm + sys-block/parted + sys-fs/cryptsetup + sys-apps/gptfdisk + !/dev/null || die + # + # This generates a QA warning about running econf in src_compile + # and src_install. Unfortunately the only other way to do this would + # involve building all of for each python implementation times, which + # wastes a _lot_ of CPU time and disk space. This hack will no longer + # be needed with >=ceph-11.2. + # + python_setup "${1}" + econf "${ECONFARGS[@]}" + + popd >/dev/null || die +} + +src_compile() { + emake + emake_python_bindings all + + use test && emake check-local +} + +src_test() { + make check || die "make check failed" +} + +src_install() { + default + emake_python_bindings install-exec "DESTDIR=\"${D}\"" + + prune_libtool_files --all + + exeinto /usr/$(get_libdir)/ceph + newexe src/init-ceph ceph_init.sh + + insinto /etc/logrotate.d/ + newins "${FILESDIR}"/ceph.logrotate ${PN} + + keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat + + fowners -R ceph:ceph /var/lib/ceph /var/log/ceph + + newinitd "${FILESDIR}/rbdmap.initd" rbdmap + newinitd "${FILESDIR}/${PN}.initd-r7" ${PN} + newconfd "${FILESDIR}/${PN}.confd-r3" ${PN} + + insinto /etc/sysctl.d + newins "${FILESDIR}"/sysctld 90-${PN}.conf + + use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc + + systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service" + systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service" + + udev_dorules udev/*.rules + + readme.gentoo_create_doc + + python_setup 'python2*' + python_fix_shebang "${ED}"/usr/{,s}bin/ + + # python_fix_shebang apparently is not idempotent + sed -i -r 's:(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]:\1:' \ + "${ED}"/usr/{sbin/ceph-disk,bin/ceph-detect-init} || die "sed failed" +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git a/sys-cluster/ceph/files/README.gentoo b/sys-cluster/ceph/files/README.gentoo new file mode 100644 index 0000000..6e5f836 --- /dev/null +++ b/sys-cluster/ceph/files/README.gentoo @@ -0,0 +1,30 @@ +1) We'd suggest you to install following packages + sys-block/parted to manage disk partions + sys-fs/btrfs-progs to use btrfs filesytem + sys-fs/cryptsetup to use encrypted devices with dm-crypt + +2) To start several daemons of one specific type, create your own scripts + cd /etc/init.d + for dmn in mds.a mon.a osd.0 osd.1 osd.2; do + ln -s ceph ceph-${dmn}; + rc-update add ceph-${dmn} default; + done + +3) If you spread ceph daemons over several different machines, + We'd highly recommend you to start ntp-client to keep the system time sync. + Try to choose one of following ntp client to install and add into runlevel. + net-misc/ntp + net-misc/openntpd + net-misc/chrony + +4) Starting from version 9.0.x, Ceph daemons run as user 'ceph' instead of 'root'. + In order to solve this, we recommand to stop ceph daemons, and fix the ownership + + # chown -R ceph:ceph /var/lib/ceph + + or + + Add the following line to ceph.conf on all hosts: + " setuser match path = /var/lib/ceph/$type/$cluster-$id " + + https://ceph.com/releases/v9-2-0-infernalis-released/ diff --git a/sys-cluster/ceph/files/ceph-10.2.0-dont-use-virtualenvs.patch b/sys-cluster/ceph/files/ceph-10.2.0-dont-use-virtualenvs.patch new file mode 100644 index 0000000..f362763 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.0-dont-use-virtualenvs.patch @@ -0,0 +1,95 @@ +diff --git a/Makefile.am b/Makefile.am +index 7734be2..ba33bda 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -79,7 +79,6 @@ clean-local: + cd src/gmock && $(MAKE) $(AM_MAKEFLAGS) clean; \ + fi + +- @rm -rf src/test/virtualenv + @rm -rf install-deps-* + + +diff --git a/src/Makefile-env.am b/src/Makefile-env.am +index df225d6..ca030cf 100644 +--- a/src/Makefile-env.am ++++ b/src/Makefile-env.am +@@ -297,10 +297,6 @@ LIBCIVETWEB_DEPS = + DENCODER_SOURCES = + DENCODER_DEPS = + +-# put virtualenvs in this directory +-# otherwise it may overflow #! 80 kernel limit +-# beware that some build environments might not be able to write to /tmp + export TMPDIR ?= /tmp +-export CEPH_BUILD_VIRTUALENV = $(TMPDIR) + + radoslibdir = $(libdir)/rados-classes +diff --git a/src/ceph-detect-init/Makefile.am b/src/ceph-detect-init/Makefile.am +index 8ddcb1e..52dd5d5 100644 +--- a/src/ceph-detect-init/Makefile.am ++++ b/src/ceph-detect-init/Makefile.am +@@ -53,15 +53,10 @@ EXTRA_DIST += \ + ceph-detect-init/tests/test_all.py \ + ceph-detect-init/tox.ini + +-export CEPH_DETECT_INIT_VIRTUALENV = ${CEPH_BUILD_VIRTUALENV}/ceph-detect-init-virtualenv +- +-ceph-detect-init-all: ${CEPH_DETECT_INIT_VIRTUALENV} +- +-${CEPH_DETECT_INIT_VIRTUALENV}: +- cd $(srcdir)/ceph-detect-init ; ../tools/setup-virtualenv.sh ${CEPH_DETECT_INIT_VIRTUALENV} ; test -d wheelhouse && export NO_INDEX=--no-index ; ${CEPH_DETECT_INIT_VIRTUALENV}/bin/pip install $$NO_INDEX --use-wheel --find-links=file://$$(pwd)/wheelhouse -e . ++ceph-detect-init-all: + + ceph-detect-init-clean: +- cd $(srcdir)/ceph-detect-init ; python setup.py clean ; rm -fr wheelhouse .tox build ${CEPH_DETECT_INIT_VIRTUALENV} .coverage *.egg-info ++ cd $(srcdir)/ceph-detect-init + + ceph-detect-init-install-data: + cd $(srcdir)/ceph-detect-init ; \ +diff --git a/src/ceph-disk/Makefile.am b/src/ceph-disk/Makefile.am +index 9006303..0b35b0f 100644 +--- a/src/ceph-disk/Makefile.am ++++ b/src/ceph-disk/Makefile.am +@@ -29,15 +29,10 @@ EXTRA_DIST += \ + ceph-disk/tests/test_main.py \ + ceph-disk/tox.ini + +-export CEPH_DISK_VIRTUALENV = ${CEPH_BUILD_VIRTUALENV}/ceph-disk-virtualenv +- +-ceph-disk-all: ${CEPH_DISK_VIRTUALENV} +- +-${CEPH_DISK_VIRTUALENV}: +- cd $(srcdir)/ceph-disk ; ../tools/setup-virtualenv.sh ${CEPH_DISK_VIRTUALENV} ; test -d wheelhouse && export NO_INDEX=--no-index ; ${CEPH_DISK_VIRTUALENV}/bin/pip install $$NO_INDEX --use-wheel --find-links=file://$$(pwd)/wheelhouse -e . ++ceph-disk-all: + + ceph-disk-clean: +- cd $(srcdir)/ceph-disk ; python setup.py clean ; rm -fr wheelhouse .tox build ${CEPH_DISK_VIRTUALENV} .coverage *.egg-info ++ cd $(srcdir)/ceph-disk + + ceph-disk-install-data: + cd $(srcdir)/ceph-disk ; \ +diff --git a/src/tools/Makefile.am b/src/tools/Makefile.am +index e730850..9569947 100644 +--- a/src/tools/Makefile.am ++++ b/src/tools/Makefile.am +@@ -45,6 +45,3 @@ noinst_HEADERS += \ + tools/rados/PoolDump.h \ + tools/cephfs/DataScan.h \ + tools/cephfs/RoleSelector.h +- +-EXTRA_DIST += \ +- tools/setup-virtualenv.sh +diff --git a/src/tools/setup-virtualenv.sh b/src/tools/setup-virtualenv.sh +index 9ff2d26..b6fca0a 100755 +--- a/src/tools/setup-virtualenv.sh ++++ b/src/tools/setup-virtualenv.sh +@@ -15,6 +15,8 @@ + # GNU Library Public License for more details. + # + ++exit 0 ++ + DIR=$1 + rm -fr $DIR + mkdir -p $DIR diff --git a/sys-cluster/ceph/files/ceph-10.2.1-libzfs.patch b/sys-cluster/ceph/files/ceph-10.2.1-libzfs.patch new file mode 100644 index 0000000..34f8eb8 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.1-libzfs.patch @@ -0,0 +1,11 @@ +--- ceph-10.2.1/configure.ac ++++ ceph-10.2.1/configure.ac +@@ -908,7 +908,7 @@ + , + [with_libzfs=no]) + AS_IF([test "x$with_libzfs" = xyes], +- [PKG_CHECK_MODULES([LIBZFS], [zfs], [], [true])]) ++ [PKG_CHECK_MODULES([LIBZFS], [libzfs], [], [true])]) + AS_IF([test "x$with_libzfs" = xyes], + [AC_DEFINE([HAVE_LIBZFS], [1], [Defined if you have libzfs enabled])]) + AM_CONDITIONAL(WITH_LIBZFS, [ test "$with_libzfs" = "yes" ]) diff --git a/sys-cluster/ceph/files/ceph-10.2.1-unbundle-jerasure.patch b/sys-cluster/ceph/files/ceph-10.2.1-unbundle-jerasure.patch new file mode 100644 index 0000000..8340b4d --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.1-unbundle-jerasure.patch @@ -0,0 +1,355 @@ +diff --git a/src/erasure-code/jerasure/Makefile.am b/src/erasure-code/jerasure/Makefile.am +index adcb95d..8099208 100644 +--- a/src/erasure-code/jerasure/Makefile.am ++++ b/src/erasure-code/jerasure/Makefile.am +@@ -1,52 +1,17 @@ + # jerasure plugin + noinst_HEADERS += \ +- erasure-code/jerasure/gf-complete/include/gf_complete.h \ +- erasure-code/jerasure/gf-complete/include/gf_general.h \ +- erasure-code/jerasure/gf-complete/include/gf_int.h \ +- erasure-code/jerasure/gf-complete/include/gf_method.h \ +- erasure-code/jerasure/gf-complete/include/gf_rand.h \ +- erasure-code/jerasure/gf-complete/include/gf_w16.h \ +- erasure-code/jerasure/gf-complete/include/gf_w32.h \ +- erasure-code/jerasure/gf-complete/include/gf_w4.h \ +- erasure-code/jerasure/gf-complete/include/gf_w64.h \ +- erasure-code/jerasure/gf-complete/include/gf_w8.h \ +- erasure-code/jerasure/jerasure/include/cauchy.h \ +- erasure-code/jerasure/jerasure/include/galois.h \ +- erasure-code/jerasure/jerasure/include/jerasure.h \ +- erasure-code/jerasure/jerasure/include/liberation.h \ +- erasure-code/jerasure/jerasure/include/reed_sol.h \ + erasure-code/jerasure/ErasureCodeJerasure.h + + jerasure_sources = \ + erasure-code/ErasureCode.cc \ +- erasure-code/jerasure/jerasure/src/cauchy.c \ +- erasure-code/jerasure/jerasure/src/galois.c \ +- erasure-code/jerasure/jerasure/src/jerasure.c \ +- erasure-code/jerasure/jerasure/src/liberation.c \ +- erasure-code/jerasure/jerasure/src/reed_sol.c \ +- erasure-code/jerasure/gf-complete/src/gf_wgen.c \ +- erasure-code/jerasure/gf-complete/src/gf_method.c \ +- erasure-code/jerasure/gf-complete/src/gf_w16.c \ +- erasure-code/jerasure/gf-complete/src/gf.c \ +- erasure-code/jerasure/gf-complete/src/gf_w32.c \ +- erasure-code/jerasure/gf-complete/src/gf_w64.c \ +- erasure-code/jerasure/gf-complete/src/gf_w128.c \ +- erasure-code/jerasure/gf-complete/src/gf_general.c \ +- erasure-code/jerasure/gf-complete/src/gf_w4.c \ +- erasure-code/jerasure/gf-complete/src/gf_rand.c \ +- erasure-code/jerasure/gf-complete/src/gf_w8.c \ + erasure-code/jerasure/ErasureCodePluginJerasure.cc \ + erasure-code/jerasure/ErasureCodeJerasure.cc + + erasure-code/jerasure/ErasureCodePluginJerasure.cc: ./ceph_ver.h + + libec_jerasure_generic_la_SOURCES = ${jerasure_sources} +-libec_jerasure_generic_la_CFLAGS = ${AM_CFLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include +-libec_jerasure_generic_la_CXXFLAGS= ${AM_CXXFLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include ++libec_jerasure_generic_la_CFLAGS = ${AM_CFLAGS} ++libec_jerasure_generic_la_CXXFLAGS= ${AM_CXXFLAGS} + libec_jerasure_generic_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) + libec_jerasure_generic_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared + if LINUX +@@ -55,20 +20,11 @@ endif + + erasure_codelib_LTLIBRARIES += libec_jerasure_generic.la + +-libec_jerasure_neon_la_SOURCES = ${jerasure_sources} \ +- erasure-code/jerasure/gf-complete/src/neon/gf_w4_neon.c \ +- erasure-code/jerasure/gf-complete/src/neon/gf_w8_neon.c \ +- erasure-code/jerasure/gf-complete/src/neon/gf_w16_neon.c \ +- erasure-code/jerasure/gf-complete/src/neon/gf_w32_neon.c \ +- erasure-code/jerasure/gf-complete/src/neon/gf_w64_neon.c ++libec_jerasure_neon_la_SOURCES = ${jerasure_sources} + libec_jerasure_neon_la_CFLAGS = ${AM_CFLAGS} \ +- ${ARM_NEON_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include ++ ${ARM_NEON_FLAGS} + libec_jerasure_neon_la_CXXFLAGS= ${AM_CXXFLAGS} \ +- ${ARM_NEON_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include ++ ${ARM_NEON_FLAGS} + libec_jerasure_neon_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) + libec_jerasure_neon_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared + if LINUX +@@ -84,16 +40,12 @@ libec_jerasure_sse3_la_CFLAGS = ${AM_CFLAGS} \ + ${INTEL_SSE_FLAGS} \ + ${INTEL_SSE2_FLAGS} \ + ${INTEL_SSE3_FLAGS} \ +- ${INTEL_SSSE3_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include ++ ${INTEL_SSSE3_FLAGS} + libec_jerasure_sse3_la_CXXFLAGS= ${AM_CXXFLAGS} \ + ${INTEL_SSE_FLAGS} \ + ${INTEL_SSE2_FLAGS} \ + ${INTEL_SSE3_FLAGS} \ +- ${INTEL_SSSE3_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include ++ ${INTEL_SSSE3_FLAGS} + libec_jerasure_sse3_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) + libec_jerasure_sse3_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared + if LINUX +@@ -111,18 +63,14 @@ libec_jerasure_sse4_la_CFLAGS = ${AM_CFLAGS} \ + ${INTEL_SSE3_FLAGS} \ + ${INTEL_SSSE3_FLAGS} \ + ${INTEL_SSE4_1_FLAGS} \ +- ${INTEL_SSE4_2_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include ++ ${INTEL_SSE4_2_FLAGS} + libec_jerasure_sse4_la_CXXFLAGS= ${AM_CXXFLAGS} \ + ${INTEL_SSE_FLAGS} \ + ${INTEL_SSE2_FLAGS} \ + ${INTEL_SSE3_FLAGS} \ + ${INTEL_SSSE3_FLAGS} \ + ${INTEL_SSE4_1_FLAGS} \ +- ${INTEL_SSE4_2_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include ++ ${INTEL_SSE4_2_FLAGS} + libec_jerasure_sse4_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) + libec_jerasure_sse4_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared + if LINUX +diff --git a/src/erasure-code/shec/ErasureCodePluginShec.cc b/src/erasure-code/shec/ErasureCodePluginShec.cc +index d2b72f5..acbd172 100644 +--- a/src/erasure-code/shec/ErasureCodePluginShec.cc ++++ b/src/erasure-code/shec/ErasureCodePluginShec.cc +@@ -71,7 +71,7 @@ public: + }; + + extern "C" { +-#include "jerasure/include/galois.h" ++#include "galois.h" + + extern gf_t *gfp_array[]; + extern int gfp_is_composite[]; +diff --git a/src/erasure-code/shec/ErasureCodeShec.cc b/src/erasure-code/shec/ErasureCodeShec.cc +index 2180328..c84ffc7 100644 +--- a/src/erasure-code/shec/ErasureCodeShec.cc ++++ b/src/erasure-code/shec/ErasureCodeShec.cc +@@ -28,8 +28,8 @@ + #include "crush/CrushWrapper.h" + #include "osd/osd_types.h" + extern "C" { +-#include "jerasure/include/jerasure.h" +-#include "jerasure/include/galois.h" ++#include "jerasure.h" ++#include "galois.h" + + extern int calc_determinant(int *matrix, int dim); + extern int* reed_sol_vandermonde_coding_matrix(int k, int m, int w); +diff --git a/src/erasure-code/shec/Makefile.am b/src/erasure-code/shec/Makefile.am +index 6b658d5..3281c60 100644 +--- a/src/erasure-code/shec/Makefile.am ++++ b/src/erasure-code/shec/Makefile.am +@@ -4,49 +4,19 @@ shec_sources = \ + erasure-code/shec/ErasureCodePluginShec.cc \ + erasure-code/shec/ErasureCodeShec.cc \ + erasure-code/shec/ErasureCodeShecTableCache.cc \ +- erasure-code/shec/determinant.c \ +- erasure-code/jerasure/jerasure/src/cauchy.c \ +- erasure-code/jerasure/jerasure/src/galois.c \ +- erasure-code/jerasure/jerasure/src/jerasure.c \ +- erasure-code/jerasure/jerasure/src/liberation.c \ +- erasure-code/jerasure/jerasure/src/reed_sol.c \ +- erasure-code/jerasure/gf-complete/src/gf_wgen.c \ +- erasure-code/jerasure/gf-complete/src/gf_method.c \ +- erasure-code/jerasure/gf-complete/src/gf_w16.c \ +- erasure-code/jerasure/gf-complete/src/gf.c \ +- erasure-code/jerasure/gf-complete/src/gf_w32.c \ +- erasure-code/jerasure/gf-complete/src/gf_w64.c \ +- erasure-code/jerasure/gf-complete/src/gf_w128.c \ +- erasure-code/jerasure/gf-complete/src/gf_general.c \ +- erasure-code/jerasure/gf-complete/src/gf_w4.c \ +- erasure-code/jerasure/gf-complete/src/gf_rand.c \ +- erasure-code/jerasure/gf-complete/src/gf_w8.c ++ erasure-code/shec/determinant.c + + noinst_HEADERS += \ + erasure-code/shec/ErasureCodeShec.h \ +- erasure-code/shec/ErasureCodeShecTableCache.h \ +- erasure-code/jerasure/jerasure/include/cauchy.h \ +- erasure-code/jerasure/jerasure/include/galois.h \ +- erasure-code/jerasure/jerasure/include/jerasure.h \ +- erasure-code/jerasure/jerasure/include/liberation.h \ +- erasure-code/jerasure/jerasure/include/reed_sol.h \ +- erasure-code/jerasure/gf-complete/include/gf_int.h \ +- erasure-code/jerasure/gf-complete/include/gf_complete.h \ +- erasure-code/jerasure/gf-complete/include/gf_rand.h \ +- erasure-code/jerasure/gf-complete/include/gf_method.h \ +- erasure-code/jerasure/gf-complete/include/gf_general.h ++ erasure-code/shec/ErasureCodeShecTableCache.h + + erasure-code/shec/ErasureCodePluginShec.cc: ./ceph_ver.h + + libec_shec_generic_la_SOURCES = ${shec_sources} + libec_shec_generic_la_CFLAGS = ${AM_CFLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + libec_shec_generic_la_CXXFLAGS= ${AM_CXXFLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + libec_shec_generic_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) +@@ -57,22 +27,13 @@ endif + + erasure_codelib_LTLIBRARIES += libec_shec_generic.la + +-libec_shec_neon_la_SOURCES = ${shec_sources} \ +- erasure-code/jerasure/gf-complete/src/neon/gf_w4_neon.c \ +- erasure-code/jerasure/gf-complete/src/neon/gf_w8_neon.c \ +- erasure-code/jerasure/gf-complete/src/neon/gf_w16_neon.c \ +- erasure-code/jerasure/gf-complete/src/neon/gf_w32_neon.c \ +- erasure-code/jerasure/gf-complete/src/neon/gf_w64_neon.c ++libec_shec_neon_la_SOURCES = ${shec_sources} + libec_shec_neon_la_CFLAGS = ${AM_CFLAGS} \ + ${ARM_NEON_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + libec_shec_neon_la_CXXFLAGS= ${AM_CXXFLAGS} \ + ${ARM_NEON_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + libec_shec_neon_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) +@@ -91,8 +52,6 @@ libec_shec_sse3_la_CFLAGS = ${AM_CFLAGS} \ + ${INTEL_SSE2_FLAGS} \ + ${INTEL_SSE3_FLAGS} \ + ${INTEL_SSSE3_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + libec_shec_sse3_la_CXXFLAGS= ${AM_CXXFLAGS} \ +@@ -100,8 +59,6 @@ libec_shec_sse3_la_CXXFLAGS= ${AM_CXXFLAGS} \ + ${INTEL_SSE2_FLAGS} \ + ${INTEL_SSE3_FLAGS} \ + ${INTEL_SSSE3_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + libec_shec_sse3_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) +@@ -122,8 +79,6 @@ libec_shec_sse4_la_CFLAGS = ${AM_CFLAGS} \ + ${INTEL_SSSE3_FLAGS} \ + ${INTEL_SSE4_1_FLAGS} \ + ${INTEL_SSE4_2_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + libec_shec_sse4_la_CXXFLAGS= ${AM_CXXFLAGS} \ +@@ -133,8 +88,6 @@ libec_shec_sse4_la_CXXFLAGS= ${AM_CXXFLAGS} \ + ${INTEL_SSSE3_FLAGS} \ + ${INTEL_SSE4_1_FLAGS} \ + ${INTEL_SSE4_2_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + libec_shec_sse4_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) +diff --git a/src/erasure-code/shec/determinant.c b/src/erasure-code/shec/determinant.c +index 15b62c9..bf5d290 100755 +--- a/src/erasure-code/shec/determinant.c ++++ b/src/erasure-code/shec/determinant.c +@@ -19,7 +19,7 @@ + #include + #include + +-#include "jerasure/include/galois.h" ++#include "galois.h" + + void print_matrix(int *mat, int dim) + { +diff --git a/src/test/erasure-code/Makefile.am b/src/test/erasure-code/Makefile.am +index bdce080..11895ae 100644 +--- a/src/test/erasure-code/Makefile.am ++++ b/src/test/erasure-code/Makefile.am +@@ -166,12 +166,8 @@ check_TESTPROGRAMS += unittest_erasure_code + unittest_erasure_code_jerasure_SOURCES = \ + test/erasure-code/TestErasureCodeJerasure.cc \ + ${jerasure_sources} +-unittest_erasure_code_jerasure_CFLAGS = $(AM_CFLAGS) \ +- -Ierasure-code/jerasure/gf-complete/include \ +- -Ierasure-code/jerasure/jerasure/include +-unittest_erasure_code_jerasure_CXXFLAGS = $(UNITTEST_CXXFLAGS) \ +- -Ierasure-code/jerasure/gf-complete/include \ +- -Ierasure-code/jerasure/jerasure/include ++unittest_erasure_code_jerasure_CFLAGS = $(AM_CFLAGS) ++unittest_erasure_code_jerasure_CXXFLAGS = $(UNITTEST_CXXFLAGS) + unittest_erasure_code_jerasure_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL) + if LINUX + unittest_erasure_code_jerasure_LDADD += -ldl +@@ -232,13 +228,9 @@ unittest_erasure_code_shec_SOURCES = \ + test/erasure-code/TestErasureCodeShec.cc \ + ${shec_sources} + unittest_erasure_code_shec_CFLAGS = ${libec_shec_la_CFLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + unittest_erasure_code_shec_CXXFLAGS = ${libec_shec_la_CXXFLAGS} $(UNITTEST_CXXFLAGS) \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + unittest_erasure_code_shec_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL) +@@ -251,13 +243,9 @@ unittest_erasure_code_shec_all_SOURCES = \ + test/erasure-code/TestErasureCodeShec_all.cc \ + ${shec_sources} + unittest_erasure_code_shec_all_CFLAGS = ${libec_shec_la_CFLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + unittest_erasure_code_shec_all_CXXFLAGS = ${libec_shec_la_CXXFLAGS} $(UNITTEST_CXXFLAGS) \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + unittest_erasure_code_shec_all_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL) +@@ -270,13 +258,9 @@ unittest_erasure_code_shec_thread_SOURCES = \ + test/erasure-code/TestErasureCodeShec_thread.cc \ + ${shec_sources} + unittest_erasure_code_shec_thread_CFLAGS = ${libec_shec_la_CFLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + unittest_erasure_code_shec_thread_CXXFLAGS = ${libec_shec_la_CXXFLAGS} $(UNITTEST_CXXFLAGS) \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + unittest_erasure_code_shec_thread_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL) +@@ -289,13 +273,9 @@ unittest_erasure_code_shec_arguments_SOURCES = \ + test/erasure-code/TestErasureCodeShec_arguments.cc \ + ${shec_sources} + unittest_erasure_code_shec_arguments_CFLAGS = ${libec_shec_la_CFLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + unittest_erasure_code_shec_arguments_CXXFLAGS = ${libec_shec_la_CXXFLAGS} $(UNITTEST_CXXFLAGS) \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ + -I$(srcdir)/erasure-code/jerasure \ + -I$(srcdir)/erasure-code/shec + unittest_erasure_code_shec_arguments_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL) diff --git a/sys-cluster/ceph/files/ceph-10.2.10-assert_h_clobber_detection.patch b/sys-cluster/ceph/files/ceph-10.2.10-assert_h_clobber_detection.patch new file mode 100644 index 0000000..4558766 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.10-assert_h_clobber_detection.patch @@ -0,0 +1,14 @@ +diff -Naur ceph-10.2.10-orig/src/common/dout.h ceph-10.2.10/src/common/dout.h +--- ceph-10.2.10-orig/src/common/dout.h 2017-10-04 16:19:25.000000000 +0200 ++++ ceph-10.2.10/src/common/dout.h 2019-08-11 12:14:27.638297278 +0200 +@@ -77,8 +77,9 @@ + + // NOTE: depend on magic value in _ASSERT_H so that we detect when + // /usr/include/assert.h clobbers our fancier version. ++// Which seems to be broken somehow.... + #define dendl std::flush; \ +- _ASSERT_H->_log->submit_entry(_dout_e); \ ++ _dout_cct->_log->submit_entry(_dout_e); \ + } \ + } while (0) + diff --git a/sys-cluster/ceph/files/ceph-10.2.10-ceph_ver.patch b/sys-cluster/ceph/files/ceph-10.2.10-ceph_ver.patch new file mode 100644 index 0000000..73c0a29 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.10-ceph_ver.patch @@ -0,0 +1,11 @@ +diff -Naur ceph-10.2.10-orig/src/Makefile.am ceph-10.2.10/src/Makefile.am +--- ceph-10.2.10-orig/src/Makefile.am 2019-08-10 18:41:24.048994440 +0200 ++++ ceph-10.2.10/src/Makefile.am 2019-08-10 18:40:01.336650753 +0200 +@@ -214,6 +214,7 @@ + + ceph_ver.c: ./ceph_ver.h + common/version.cc: ./ceph_ver.h ++rgw/rgw_rest_swift.cc: ./ceph_ver.h + test/encoding/ceph_dencoder.cc: ./ceph_ver.h + + sample.fetch_config: fetch_config diff --git a/sys-cluster/ceph/files/ceph-10.2.10-duration-problem.patch b/sys-cluster/ceph/files/ceph-10.2.10-duration-problem.patch new file mode 100644 index 0000000..4b7c74a --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.10-duration-problem.patch @@ -0,0 +1,32 @@ +diff -Naur ceph-10.2.10-orig/src/rbd_replay/Replayer.cc ceph-10.2.10/src/rbd_replay/Replayer.cc +--- ceph-10.2.10-orig/src/rbd_replay/Replayer.cc 2017-10-04 16:19:25.000000000 +0200 ++++ ceph-10.2.10/src/rbd_replay/Replayer.cc 2019-08-11 11:44:11.678127039 +0200 +@@ -12,6 +12,8 @@ + * + */ + ++#define BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG ++ + #include "Replayer.hpp" + #include "common/errno.h" + #include "rbd_replay/ActionTypes.h" +@@ -23,9 +25,9 @@ + #include "global/global_context.h" + #include "rbd_replay_debug.hpp" + +- + using namespace std; + using namespace rbd_replay; ++//using namespace boost::posix_time; + + namespace { + +@@ -339,7 +341,7 @@ + dout(DEPGRAPH_LEVEL) << "Finished waiting for " << dep.id << " after " << micros << " microseconds" << dendl; + // Apparently the nanoseconds constructor is optional: + // http://www.boost.org/doc/libs/1_46_0/doc/html/date_time/details.html#compile_options +- boost::system_time sub_release_time(action_completed_time + boost::posix_time::microseconds(dep.time_delta * m_latency_multiplier / 1000)); ++ boost::system_time sub_release_time(action_completed_time + boost::posix_time::microseconds(int64_t(dep.time_delta * m_latency_multiplier / 1000))); + if (sub_release_time > release_time) { + release_time = sub_release_time; + } diff --git a/sys-cluster/ceph/files/ceph-10.2.10-python3.patch b/sys-cluster/ceph/files/ceph-10.2.10-python3.patch new file mode 100644 index 0000000..3dca730 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.10-python3.patch @@ -0,0 +1,12 @@ +diff -Naur ceph-10.2.10-orig/man/conf.py ceph-10.2.10/man/conf.py +--- ceph-10.2.10-orig/man/conf.py 2017-10-04 16:19:25.000000000 +0200 ++++ ceph-10.2.10/man/conf.py 2019-08-11 12:21:34.664177573 +0200 +@@ -9,7 +9,7 @@ + + + def _get_description(fname, base): +- with file(fname) as f: ++ with open(fname) as f: + one = None + while True: + line = f.readline().rstrip('\n') diff --git a/sys-cluster/ceph/files/ceph-10.2.3-CVE-2016-8626.patch b/sys-cluster/ceph/files/ceph-10.2.3-CVE-2016-8626.patch new file mode 100644 index 0000000..d767d81 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.3-CVE-2016-8626.patch @@ -0,0 +1,33 @@ +commit dc2ffda7819d2ebeed3526d9e6da8f53221818de +Author: Yehuda Sadeh +Date: Thu Oct 20 10:17:36 2016 -0700 + + rgw: handle empty POST condition + + Fixes: http://tracker.ceph.com/issues/17635 + + Before accessing json entity, need to check that iterator is valid. + If there is no entry return appropriate error code. + + Signed-off-by: Yehuda Sadeh + (cherry picked from commit 23cb642243e09ca4a8e104f62a3bb7b2cbb6ea12) + +diff --git a/src/rgw/rgw_policy_s3.cc b/src/rgw/rgw_policy_s3.cc +index 3843511..8af70a8 100644 +--- a/src/rgw/rgw_policy_s3.cc ++++ b/src/rgw/rgw_policy_s3.cc +@@ -286,11 +286,13 @@ int RGWPolicy::from_json(bufferlist& bl, string& err_msg) + int r = add_condition(v[0], v[1], v[2], err_msg); + if (r < 0) + return r; +- } else { ++ } else if (!citer.end()) { + JSONObj *c = *citer; + dout(0) << "adding simple_check: " << c->get_name() << " : " << c->get_data() << dendl; + + add_simple_check(c->get_name(), c->get_data()); ++ } else { ++ return -EINVAL; + } + } + return 0; diff --git a/sys-cluster/ceph/files/ceph-10.2.3-ETIMEOUT-fix-in-polling.patch b/sys-cluster/ceph/files/ceph-10.2.3-ETIMEOUT-fix-in-polling.patch new file mode 100644 index 0000000..313efeb --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.3-ETIMEOUT-fix-in-polling.patch @@ -0,0 +1,50 @@ +diff -Naur ceph-10.2.3-orig/src/krbd.cc ceph-10.2.3/src/krbd.cc +--- ceph-10.2.3-orig/src/krbd.cc 2016-09-21 15:48:55.000000000 +0000 ++++ ceph-10.2.3/src/krbd.cc 2019-04-29 16:24:41.136578239 +0000 +@@ -40,6 +40,8 @@ + #include + #include + ++const static int POLL_TIMEOUT=120000; ++ + using namespace std; + + struct krbd_ctx { +@@ -184,12 +186,17 @@ + for (;;) { + struct pollfd fds[1]; + struct udev_device *dev; ++ int r; + + fds[0].fd = udev_monitor_get_fd(mon); + fds[0].events = POLLIN; +- if (poll(fds, 1, -1) < 0) ++ r = poll(fds, 1, POLL_TIMEOUT); ++ if (r < 0) + return -errno; + ++ if (r == 0) ++ return -ETIMEDOUT; ++ + dev = udev_monitor_receive_device(mon); + if (!dev) + continue; +@@ -458,12 +465,17 @@ + for (;;) { + struct pollfd fds[1]; + struct udev_device *dev; ++ int r; + + fds[0].fd = udev_monitor_get_fd(mon); + fds[0].events = POLLIN; +- if (poll(fds, 1, -1) < 0) ++ r = poll(fds, 1, POLL_TIMEOUT); ++ if (r < 0) + return -errno; + ++ if (r == 0) ++ return -ETIMEDOUT; ++ + dev = udev_monitor_receive_device(mon); + if (!dev) + continue; diff --git a/sys-cluster/ceph/files/ceph-10.2.3-build-without-openldap.patch b/sys-cluster/ceph/files/ceph-10.2.3-build-without-openldap.patch new file mode 100644 index 0000000..ffc1645 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.3-build-without-openldap.patch @@ -0,0 +1,32 @@ +diff --git a/src/rgw/librgw.cc b/src/rgw/librgw.cc +index c476129..cad54b8 100644 +--- a/src/rgw/librgw.cc ++++ b/src/rgw/librgw.cc +@@ -470,7 +470,11 @@ namespace rgw { + const string& ldap_searchdn = store->ctx()->_conf->rgw_ldap_searchdn; + const string& ldap_dnattr = + store->ctx()->_conf->rgw_ldap_dnattr; ++#ifdef HAVE_OPENLDAP + std::string ldap_bindpw = parse_rgw_ldap_bindpw(store->ctx()); ++#else ++ std::string ldap_bindpw; ++#endif /* HAVE_OPENLDAP */ + + ldh = new rgw::LDAPHelper(ldap_uri, ldap_binddn, ldap_bindpw.c_str(), + ldap_searchdn, ldap_dnattr); +diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc +index e9f24f3..7291e69 100644 +--- a/src/rgw/rgw_rest_s3.cc ++++ b/src/rgw/rgw_rest_s3.cc +@@ -3091,7 +3091,11 @@ void RGW_Auth_S3::init_impl(RGWRados* store) + const string& ldap_searchdn = store->ctx()->_conf->rgw_ldap_searchdn; + const string& ldap_dnattr = + store->ctx()->_conf->rgw_ldap_dnattr; ++#ifdef HAVE_OPENLDAP + std::string ldap_bindpw = parse_rgw_ldap_bindpw(store->ctx()); ++#else ++ std::string ldap_bindpw; ++#endif /* HAVE_OPENLDAP */ + + ldh = new rgw::LDAPHelper(ldap_uri, ldap_binddn, ldap_bindpw, + ldap_searchdn, ldap_dnattr); diff --git a/sys-cluster/ceph/files/ceph-10.2.3-sphinx.patch b/sys-cluster/ceph/files/ceph-10.2.3-sphinx.patch new file mode 100644 index 0000000..1a0adc0 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.3-sphinx.patch @@ -0,0 +1,12 @@ +diff -Naur ceph-10.2.3-orig/man/conf.py ceph-10.2.3/man/conf.py +--- ceph-10.2.3-orig/man/conf.py 2016-09-21 17:48:55.000000000 +0200 ++++ ceph-10.2.3/man/conf.py 2019-04-22 22:50:21.000000000 +0200 +@@ -9,7 +9,7 @@ + + + def _get_description(fname, base): +- with file(fname) as f: ++ with open(fname) as f: + one = None + while True: + line = f.readline().rstrip('\n') diff --git a/sys-cluster/ceph/files/ceph-10.2.3-zstd.patch b/sys-cluster/ceph/files/ceph-10.2.3-zstd.patch new file mode 100644 index 0000000..f9f3149 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.3-zstd.patch @@ -0,0 +1,28 @@ +diff -Naur ceph-10.2.3-orig/configure.ac ceph-10.2.3/configure.ac +--- ceph-10.2.3-orig/configure.ac 2016-09-21 17:48:55.000000000 +0200 ++++ ceph-10.2.3/configure.ac 2019-04-22 11:36:01.000000000 +0200 +@@ -854,9 +854,11 @@ + # rocksdb detects bzlib and lz4 in its Makefile, which forces us to do the same. + AS_IF([test "x$with_librocksdb_static" = "xyes"], [ + AC_CHECK_HEADER([bzlib.h], [have_bzlib=yes]) ++ AC_CHECK_HEADER([zstd.h], [have_zstd=yes]) + AC_CHECK_HEADER([lz4.h], [have_lz4=yes])]) + AM_CONDITIONAL(HAVE_BZLIB, [test "x$have_bzlib" = "xyes"]) + AM_CONDITIONAL(HAVE_LZ4, [test "x$have_lz4" = "xyes"]) ++AM_CONDITIONAL(HAVE_ZSTD, [test "x$have_zstd" = "xyes"]) + + # needs libcurl and libxml2 + if test "x$with_rest_bench" = xyes && test "x$with_system_libs3" = xno; then +diff -Naur ceph-10.2.3-orig/src/Makefile-env.am ceph-10.2.3/src/Makefile-env.am +--- ceph-10.2.3-orig/src/Makefile-env.am 2016-09-21 17:48:55.000000000 +0200 ++++ ceph-10.2.3/src/Makefile-env.am 2019-04-22 12:04:53.000000000 +0200 +@@ -280,6 +280,9 @@ + if HAVE_LZ4 + LIBKV += -llz4 + endif ++if HAVE_ZSTD ++LIBKV += -lzstd ++endif + endif # WITH_SLIBROCKSDB + LIBKV += -lz -lleveldb -lsnappy + LIBOS += $(LIBOS_TYPES) $(LIBKV) $(LIBFUSE_LIBS) diff --git a/sys-cluster/ceph/files/ceph-10.2.5-Make-CephFS-bindings-and-tests-compatible-with-Python-3.patch b/sys-cluster/ceph/files/ceph-10.2.5-Make-CephFS-bindings-and-tests-compatible-with-Python-3.patch new file mode 100644 index 0000000..08a7920 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.5-Make-CephFS-bindings-and-tests-compatible-with-Python-3.patch @@ -0,0 +1,22 @@ +commit e1dc386f93eb4613dc7e89cc76a031aeee5022ba +Author: Oleh Prypin +Date: Thu Jul 21 18:33:25 2016 +0300 + + pybind: Make CephFS bindings and tests compatible with Python 3 + + Signed-off-by: Oleh Prypin + +diff --git a/src/pybind/cephfs/cephfs.pyx b/src/pybind/cephfs/cephfs.pyx +index ac17ada1a1..bd14de3b16 100644 +--- a/src/pybind/cephfs/cephfs.pyx ++++ b/src/pybind/cephfs/cephfs.pyx +@@ -613,8 +613,7 @@ cdef class LibCephFS(object): + + if not isinstance(mode, int): + raise TypeError('mode must be an int') +- if isinstance(flags, basestring): +- flags = cstr(flags, 'flags') ++ if isinstance(flags, str_type): + cephfs_flags = 0 + if flags == '': + cephfs_flags = os.O_RDONLY diff --git a/sys-cluster/ceph/files/ceph-10.2.5-Make-RBD-Python-bindings-compatible-with-Python-3.patch b/sys-cluster/ceph/files/ceph-10.2.5-Make-RBD-Python-bindings-compatible-with-Python-3.patch new file mode 100644 index 0000000..a81aae6 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.5-Make-RBD-Python-bindings-compatible-with-Python-3.patch @@ -0,0 +1,45 @@ +commit 773e01294da518c6ec18f0a8b72e05def85fef6c +Author: Oleh Prypin +Date: Fri Jun 24 15:48:57 2016 +0300 + + pybind: Make RBD Python bindings compatible with Python 3 + + Signed-off-by: Oleh Prypin + +diff --git a/src/pybind/rbd/rbd.pyx b/src/pybind/rbd/rbd.pyx +index 52727bf39e..8f25dfbee0 100644 +--- a/src/pybind/rbd/rbd.pyx ++++ b/src/pybind/rbd/rbd.pyx +@@ -745,7 +745,7 @@ class RBD(object): + break + elif ret != -errno.ERANGE: + raise make_ex(ret, 'error listing images') +- return [decode_cstr(name) for name in c_names[:ret].split('\0') ++ return [decode_cstr(name) for name in c_names[:ret].split(b'\0') + if name] + finally: + free(c_names) +@@ -1885,8 +1885,8 @@ written." % (self.name, ret, length)) + raise make_ex(ret, 'error listing images') + if ret == 0: + return [] +- pools = map(decode_cstr, c_pools[:pools_size - 1].split('\0')) +- images = map(decode_cstr, c_images[:images_size - 1].split('\0')) ++ pools = map(decode_cstr, c_pools[:pools_size - 1].split(b'\0')) ++ images = map(decode_cstr, c_images[:images_size - 1].split(b'\0')) + return list(zip(pools, images)) + finally: + free(c_pools) +@@ -1933,9 +1933,9 @@ written." % (self.name, ret, length)) + raise make_ex(ret, 'error listing images') + if ret == 0: + return [] +- clients = map(decode_cstr, c_clients[:clients_size - 1].split('\0')) +- cookies = map(decode_cstr, c_cookies[:cookies_size - 1].split('\0')) +- addrs = map(decode_cstr, c_addrs[:addrs_size - 1].split('\0')) ++ clients = map(decode_cstr, c_clients[:clients_size - 1].split(b'\0')) ++ cookies = map(decode_cstr, c_cookies[:cookies_size - 1].split(b'\0')) ++ addrs = map(decode_cstr, c_addrs[:addrs_size - 1].split(b'\0')) + return { + 'tag' : decode_cstr(c_tag), + 'exclusive' : exclusive == 1, diff --git a/sys-cluster/ceph/files/ceph-10.2.7-fix-compilation-with-zstd.patch b/sys-cluster/ceph/files/ceph-10.2.7-fix-compilation-with-zstd.patch new file mode 100644 index 0000000..4e76dea --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.7-fix-compilation-with-zstd.patch @@ -0,0 +1,49 @@ +From 5a11f31aac4fa6a5c5ebb4fa0964e1c07a420e8c Mon Sep 17 00:00:00 2001 +From: Zac Medico +Date: Wed, 12 Apr 2017 01:49:09 -0700 +Subject: [PATCH] configure: link against zstd if detected + +https://bugs.gentoo.org/show_bug.cgi?id=601610 +--- + configure.ac | 6 ++++-- + src/Makefile-env.am | 3 +++ + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 51daf91..8914b71 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -851,12 +851,14 @@ AS_IF([test "x$with_librocksdb_static" = "xyes"], + AM_CONDITIONAL(WITH_SLIBROCKSDB, [ test "x$with_librocksdb_static" = "xyes" ]) + AM_CONDITIONAL(WITH_LIBROCKSDB, [ test "x$with_librocksdb_static" = "xyes" -o "x$with_librocksdb" = "xyes" ]) + +-# rocksdb detects bzlib and lz4 in its Makefile, which forces us to do the same. ++# rocksdb detects headers in its Makefile, which forces us to do the same. + AS_IF([test "x$with_librocksdb_static" = "xyes"], [ + AC_CHECK_HEADER([bzlib.h], [have_bzlib=yes]) +- AC_CHECK_HEADER([lz4.h], [have_lz4=yes])]) ++ AC_CHECK_HEADER([lz4.h], [have_lz4=yes])] ++ AC_CHECK_HEADER([zstd.h], [have_zstd=yes])]) + AM_CONDITIONAL(HAVE_BZLIB, [test "x$have_bzlib" = "xyes"]) + AM_CONDITIONAL(HAVE_LZ4, [test "x$have_lz4" = "xyes"]) ++AM_CONDITIONAL(HAVE_ZSTD, [test "x$have_zstd" = "xyes"]) + + # needs libcurl and libxml2 + if test "x$with_rest_bench" = xyes && test "x$with_system_libs3" = xno; then +diff --git a/src/Makefile-env.am b/src/Makefile-env.am +index 4771bad..0ee42f8 100644 +--- a/src/Makefile-env.am ++++ b/src/Makefile-env.am +@@ -280,6 +280,9 @@ endif + if HAVE_LZ4 + LIBKV += -llz4 + endif ++if HAVE_ZSTD ++LIBKV += -lzstd ++endif + endif # WITH_SLIBROCKSDB + LIBKV += -lz -lleveldb -lsnappy + LIBOS += $(LIBOS_TYPES) $(LIBKV) $(LIBFUSE_LIBS) +-- +2.10.2 + diff --git a/sys-cluster/ceph/files/ceph-10.2.9-cflags.patch b/sys-cluster/ceph/files/ceph-10.2.9-cflags.patch new file mode 100644 index 0000000..31221ae --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.9-cflags.patch @@ -0,0 +1,15 @@ +diff --git a/src/Makefile-env.am b/src/Makefile-env.am +index 4771bad02d..f92e20479b 100644 +--- a/src/Makefile-env.am ++++ b/src/Makefile-env.am +@@ -53,10 +53,6 @@ endif + ## automake environment + + HARDENING_CFLAGS = \ +- -O2 \ +- -g \ +- -pipe \ +- -Wall \ + -Wp,-U_FORTIFY_SOURCE \ + -Wp,-D_FORTIFY_SOURCE=2 \ + -fexceptions \ diff --git a/sys-cluster/ceph/files/ceph-10.2.9-dont-run-lsb_release.patch b/sys-cluster/ceph/files/ceph-10.2.9-dont-run-lsb_release.patch new file mode 100644 index 0000000..a6b5515 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.9-dont-run-lsb_release.patch @@ -0,0 +1,65 @@ +diff --git a/src/ceph-detect-init/Makefile.am b/src/ceph-detect-init/Makefile.am +index 3926ac4bec..90e2eae50c 100644 +--- a/src/ceph-detect-init/Makefile.am ++++ b/src/ceph-detect-init/Makefile.am +@@ -67,7 +67,7 @@ ceph-detect-init-clean: + ceph-detect-init-install-data: + cd $(srcdir)/ceph-detect-init ; \ + if test "$(DESTDIR)" ; then \ +- if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \ ++ if command -v lsb_release >/dev/null && lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \ + options=--install-layout=deb ; \ + else \ + options=--prefix=/usr ; \ +diff --git a/src/ceph-disk/Makefile.am b/src/ceph-disk/Makefile.am +index a8532878c8..d908b1649a 100644 +--- a/src/ceph-disk/Makefile.am ++++ b/src/ceph-disk/Makefile.am +@@ -43,7 +43,7 @@ ceph-disk-clean: + ceph-disk-install-data: + cd $(srcdir)/ceph-disk ; \ + if test "$(DESTDIR)" ; then \ +- if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \ ++ if command -v lsb_release >/dev/null && lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \ + options=--install-layout=deb ; \ + else \ + options=--prefix=/usr ; \ +diff --git a/src/pybind/cephfs/Makefile.am b/src/pybind/cephfs/Makefile.am +index 698522daa4..c49c190986 100644 +--- a/src/pybind/cephfs/Makefile.am ++++ b/src/pybind/cephfs/Makefile.am +@@ -15,7 +15,7 @@ cephfs-pybind-clean: ${srcdir}/ceph_ver.h + + cephfs-pybind-install-exec: ${srcdir}/ceph_ver.h + if test "$(DESTDIR)" ; then \ +- if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \ ++ if command -v lsb_release >/dev/null && lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \ + options=--install-layout=deb ; \ + else \ + options=--prefix=/usr ; \ +diff --git a/src/pybind/rados/Makefile.am b/src/pybind/rados/Makefile.am +index a4145bf0f4..960395fee8 100644 +--- a/src/pybind/rados/Makefile.am ++++ b/src/pybind/rados/Makefile.am +@@ -15,7 +15,7 @@ rados-pybind-clean: ${srcdir}/ceph_ver.h + + rados-pybind-install-exec: ${srcdir}/ceph_ver.h + if test "$(DESTDIR)" ; then \ +- if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \ ++ if command -v lsb_release >/dev/null && lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \ + options=--install-layout=deb ; \ + else \ + options=--prefix=/usr ; \ +diff --git a/src/pybind/rbd/Makefile.am b/src/pybind/rbd/Makefile.am +index 7dd49333fa..fbb940d07d 100644 +--- a/src/pybind/rbd/Makefile.am ++++ b/src/pybind/rbd/Makefile.am +@@ -15,7 +15,7 @@ rbd-pybind-clean: ${srcdir}/ceph_ver.h + + rbd-pybind-install-exec: ${srcdir}/ceph_ver.h + if test "$(DESTDIR)" ; then \ +- if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \ ++ if command -v lsb_release >/dev/null && lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \ + options=--install-layout=deb ; \ + else \ + options=--prefix=/usr ; \ diff --git a/sys-cluster/ceph/files/ceph-10.2.9-filestore_fix_infinit_loops_in_fiemap.patch b/sys-cluster/ceph/files/ceph-10.2.9-filestore_fix_infinit_loops_in_fiemap.patch new file mode 100644 index 0000000..e67113e --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.9-filestore_fix_infinit_loops_in_fiemap.patch @@ -0,0 +1,82 @@ +From b52bfe6b443f0ff88c8614441752102058063699 Mon Sep 17 00:00:00 2001 +From: Ning Yao +Date: Thu, 6 Apr 2017 11:12:04 +0000 +Subject: [PATCH] os/filestore: fix infinit loops in fiemap() + +since fiemap can get extents based on offset --> len +but we should consider last extents is retrieved when len == 0 +even though it is not last fiemap extents + +Signed-off-by: Ning Yao +(cherry picked from commit 36f6b668a8910d76847674086cbc86910c78faee) +--- + src/os/filestore/FileStore.cc | 13 +++++-------- + src/test/objectstore/store_test.cc | 21 +++++++++++++++++++++ + 2 files changed, 26 insertions(+), 8 deletions(-) + +diff --git a/src/os/filestore/FileStore.cc b/src/os/filestore/FileStore.cc +index c47b0d0d2eae..95f48cdf4960 100644 +--- a/src/os/filestore/FileStore.cc ++++ b/src/os/filestore/FileStore.cc +@@ -3102,17 +3102,14 @@ int FileStore::_do_fiemap(int fd, uint64_t offset, size_t len, + i++; + last = extent++; + } +- const bool is_last = last->fe_flags & FIEMAP_EXTENT_LAST; ++ uint64_t xoffset = last->fe_logical + last->fe_length - offset; ++ offset = last->fe_logical + last->fe_length; ++ len -= xoffset; ++ const bool is_last = (last->fe_flags & FIEMAP_EXTENT_LAST) || (len == 0); ++ free(fiemap); + if (!is_last) { +- uint64_t xoffset = last->fe_logical + last->fe_length - offset; +- offset = last->fe_logical + last->fe_length; +- len -= xoffset; +- free(fiemap); /* fix clang warn: use-after-free */ + goto more; + } +- else { +- free(fiemap); +- } + + return r; + } +diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc +index 5ab011ad17d8..4cada7e2e435 100644 +--- a/src/test/objectstore/store_test.cc ++++ b/src/test/objectstore/store_test.cc +@@ -279,6 +279,7 @@ TEST_P(StoreTest, FiemapHoles) { + ASSERT_EQ(r, 0); + } + { ++ //fiemap test from 0 to SKIP_STEP * (MAX_EXTENTS - 1) + 3 + bufferlist bl; + store->fiemap(cid, oid, 0, SKIP_STEP * (MAX_EXTENTS - 1) + 3, bl); + map m, e; +@@ -295,6 +296,26 @@ TEST_P(StoreTest, FiemapHoles) { + ASSERT_TRUE((m.size() == 1 && + m[0] > SKIP_STEP * (MAX_EXTENTS - 1)) || + (m.size() == MAX_EXTENTS && extents_exist)); ++ ++ // fiemap test from SKIP_STEP to SKIP_STEP * (MAX_EXTENTS - 2) + 3 ++ // reset bufferlist and map ++ bl.clear(); ++ m.clear(); ++ e.clear(); ++ store->fiemap(cid, oid, SKIP_STEP, SKIP_STEP * (MAX_EXTENTS - 2) + 3, bl); ++ p = bl.begin(); ++ ::decode(m, p); ++ cout << " got " << m << std::endl; ++ ASSERT_TRUE(!m.empty()); ++ ASSERT_GE(m[SKIP_STEP], 3u); ++ extents_exist = true; ++ if (m.size() == (MAX_EXTENTS - 2)) { ++ for (uint64_t i = 1; i < MAX_EXTENTS - 1; i++) ++ extents_exist = extents_exist && m.count(SKIP_STEP*i); ++ } ++ ASSERT_TRUE((m.size() == 1 && ++ m[SKIP_STEP] > SKIP_STEP * (MAX_EXTENTS - 2)) || ++ (m.size() == (MAX_EXTENTS - 1) && extents_exist)); + } + { + ObjectStore::Transaction t; diff --git a/sys-cluster/ceph/files/ceph-10.2.9-libradosstriper_fix_format_injection_vulnerability.patch b/sys-cluster/ceph/files/ceph-10.2.9-libradosstriper_fix_format_injection_vulnerability.patch new file mode 100644 index 0000000..eaf18c3 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.9-libradosstriper_fix_format_injection_vulnerability.patch @@ -0,0 +1,35 @@ +diff --git a/src/libradosstriper/RadosStriperImpl.cc b/src/libradosstriper/RadosStriperImpl.cc +index 22352d9125..70dcb7569f 100644 +--- a/src/libradosstriper/RadosStriperImpl.cc ++++ b/src/libradosstriper/RadosStriperImpl.cc +@@ -12,6 +12,8 @@ + * + */ + ++#include ++ + #include "libradosstriper/RadosStriperImpl.h" + + #include +@@ -466,7 +468,9 @@ int libradosstriper::RadosStriperImpl::aio_read(const std::string& soid, + // get list of extents to be read from + vector *extents = new vector(); + if (read_len > 0) { +- std::string format = soid + RADOS_OBJECT_EXTENSION_FORMAT; ++ std::string format = soid; ++ boost::replace_all(format, "%", "%%"); ++ format += RADOS_OBJECT_EXTENSION_FORMAT; + file_layout_t l; + l.from_legacy(layout); + Striper::file_to_extents(cct(), format.c_str(), &l, off, read_len, +@@ -776,7 +780,9 @@ libradosstriper::RadosStriperImpl::internal_aio_write(const std::string& soid, + if (len > 0) { + // get list of extents to be written to + vector extents; +- std::string format = soid + RADOS_OBJECT_EXTENSION_FORMAT; ++ std::string format = soid; ++ boost::replace_all(format, "%", "%%"); ++ format += RADOS_OBJECT_EXTENSION_FORMAT; + file_layout_t l; + l.from_legacy(layout); + Striper::file_to_extents(cct(), format.c_str(), &l, off, len, 0, extents); diff --git a/sys-cluster/ceph/files/ceph-10.2.9-librbd_filter_expected_error_codes_from_is_exclusive_lock_owner.patch b/sys-cluster/ceph/files/ceph-10.2.9-librbd_filter_expected_error_codes_from_is_exclusive_lock_owner.patch new file mode 100644 index 0000000..6800285 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.9-librbd_filter_expected_error_codes_from_is_exclusive_lock_owner.patch @@ -0,0 +1,28 @@ +From 787ba33e5dba285dff874955a8f0d7aabd3f87fe Mon Sep 17 00:00:00 2001 +From: Jason Dillaman +Date: Mon, 5 Jun 2017 08:17:05 -0400 +Subject: [PATCH] librbd: filter expected error codes from + is_exclusive_lock_owner + +Fixes: http://tracker.ceph.com/issues/20182 +Signed-off-by: Jason Dillaman +(cherry picked from commit d4daaf54e6bc42cd4fb2111ea20b2042941b0c31) +--- + src/librbd/internal.cc | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc +index 9fecb1e1688f..6021be078090 100644 +--- a/src/librbd/internal.cc ++++ b/src/librbd/internal.cc +@@ -2110,7 +2110,9 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force, + // might have been blacklisted by peer -- ensure we still own + // the lock by pinging the OSD + int r = ictx->exclusive_lock->assert_header_locked(); +- if (r < 0) { ++ if (r == -EBUSY || r == -ENOENT) { ++ return 0; ++ } else if (r < 0) { + return r; + } + diff --git a/sys-cluster/ceph/files/ceph-10.2.9-osd-scrub_to_specifies_clone_ver_but_transaction_include.patch b/sys-cluster/ceph/files/ceph-10.2.9-osd-scrub_to_specifies_clone_ver_but_transaction_include.patch new file mode 100644 index 0000000..8bf14c2 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.9-osd-scrub_to_specifies_clone_ver_but_transaction_include.patch @@ -0,0 +1,39 @@ +From 153f77544118613e19d5e88c030c3901234cf950 Mon Sep 17 00:00:00 2001 +From: David Zafman +Date: Tue, 18 Jul 2017 15:08:14 -0700 +Subject: [PATCH] osd: scrub_to specifies clone ver, but transaction include + head write ver + +Fixes: http://tracker.ceph.com/issues/20041 + +Signed-off-by: David Zafman +(cherry picked from commit fd598a0d23d61c645633ae774c3404a43d035e3c) + +Conflicts: + src/osd/ReplicatedPG.cc (trivial) +--- + src/osd/ReplicatedPG.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc +index 4b4dc34c602a..4d80ad1770e1 100644 +--- a/src/osd/ReplicatedPG.cc ++++ b/src/osd/ReplicatedPG.cc +@@ -8318,7 +8318,7 @@ void ReplicatedPG::op_applied(const eversion_t &applied_version) + last_update_applied = applied_version; + if (is_primary()) { + if (scrubber.active) { +- if (last_update_applied == scrubber.subset_last_update) { ++ if (last_update_applied >= scrubber.subset_last_update) { + requeue_scrub(); + } + } else { +@@ -8326,7 +8326,7 @@ void ReplicatedPG::op_applied(const eversion_t &applied_version) + } + } else { + if (scrubber.active_rep_scrub) { +- if (last_update_applied == static_cast( ++ if (last_update_applied >= static_cast( + scrubber.active_rep_scrub->get_req())->scrub_to) { + osd->op_wq.queue( + make_pair( diff --git a/sys-cluster/ceph/files/ceph-10.2.9-rbd-do_not_attempt_to_load_key_if_auth_is_disabled.patch b/sys-cluster/ceph/files/ceph-10.2.9-rbd-do_not_attempt_to_load_key_if_auth_is_disabled.patch new file mode 100644 index 0000000..4b03e33 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.9-rbd-do_not_attempt_to_load_key_if_auth_is_disabled.patch @@ -0,0 +1,39 @@ +From 0cd7df3649d7486d444a61cab89c48a89ddd3e8d Mon Sep 17 00:00:00 2001 +From: Jason Dillaman +Date: Thu, 29 Jun 2017 14:54:40 -0400 +Subject: [PATCH] rbd: do not attempt to load key if auth is disabled + +Fixes: http://tracker.ceph.com/issues/19035 +Signed-off-by: Jason Dillaman +(cherry picked from commit 8b9c8df6d7f0b75c5451953bb322bc1f9afb6299) +--- + src/krbd.cc | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +diff --git a/src/krbd.cc b/src/krbd.cc +index a0e546fa7f6f..2bb6b4270abd 100644 +--- a/src/krbd.cc ++++ b/src/krbd.cc +@@ -129,13 +129,15 @@ static int build_map_buf(CephContext *cct, const char *pool, const char *image, + oss << " name=" << cct->_conf->name.get_id(); + + KeyRing keyring; +- r = keyring.from_ceph_context(cct); +- if (r == -ENOENT && !(cct->_conf->keyfile.length() || +- cct->_conf->key.length())) +- r = 0; +- if (r < 0) { +- cerr << "rbd: failed to get secret" << std::endl; +- return r; ++ if (cct->_conf->auth_client_required != "none") { ++ r = keyring.from_ceph_context(cct); ++ if (r == -ENOENT && !(cct->_conf->keyfile.length() || ++ cct->_conf->key.length())) ++ r = 0; ++ if (r < 0) { ++ cerr << "rbd: failed to get secret" << std::endl; ++ return r; ++ } + } + + CryptoKey secret; diff --git a/sys-cluster/ceph/files/ceph-10.2.9-rbd-nbd_relax_size_check_for_newer_kernel_versions.patch b/sys-cluster/ceph/files/ceph-10.2.9-rbd-nbd_relax_size_check_for_newer_kernel_versions.patch new file mode 100644 index 0000000..5cb89be --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.9-rbd-nbd_relax_size_check_for_newer_kernel_versions.patch @@ -0,0 +1,28 @@ +diff --git a/src/tools/rbd_nbd/rbd-nbd.cc b/src/tools/rbd_nbd/rbd-nbd.cc +index 2e399ab832..88e1e0ff65 100644 +--- a/src/tools/rbd_nbd/rbd-nbd.cc ++++ b/src/tools/rbd_nbd/rbd-nbd.cc +@@ -469,6 +469,10 @@ static int open_device(const char* path, bool try_load_moudle = false) + + static int check_device_size(int nbd_index, unsigned long expected_size) + { ++ // There are bugs with some older kernel versions that result in an ++ // overflow for large image sizes. This check is to ensure we are ++ // not affected. ++ + unsigned long size = 0; + std::string path = "/sys/block/nbd" + stringify(nbd_index) + "/size"; + std::ifstream ifs; +@@ -480,6 +484,12 @@ static int check_device_size(int nbd_index, unsigned long expected_size) + ifs >> size; + size *= RBD_NBD_BLKSIZE; + ++ if (size == 0) { ++ // Newer kernel versions will report real size only after nbd ++ // connect. Assume this is the case and return success. ++ return 0; ++ } ++ + if (size != expected_size) { + cerr << "rbd-nbd: kernel reported invalid device size (" << size + << ", expected " << expected_size << ")" << std::endl; diff --git a/sys-cluster/ceph/files/ceph-10.2.9-unlock_sdata_op_ordering_lock_with_sdata_lock.patch b/sys-cluster/ceph/files/ceph-10.2.9-unlock_sdata_op_ordering_lock_with_sdata_lock.patch new file mode 100644 index 0000000..60f46ab --- /dev/null +++ b/sys-cluster/ceph/files/ceph-10.2.9-unlock_sdata_op_ordering_lock_with_sdata_lock.patch @@ -0,0 +1,32 @@ +From 3fa277b479d69699bf5a6875cd4a5efcf9ae0788 Mon Sep 17 00:00:00 2001 +From: Alexey Sheplyakov +Date: Tue, 27 Jun 2017 16:07:01 +0400 +Subject: [PATCH] jewel: osd: unlock sdata_op_ordering_lock with sdata_lock + hold to avoid missing wakeup signal + +Based on commit bc683385819146f3f6f096ceec97e1226a3cd237. The OSD code has +been refactored a lot since Jewel, hence cherry-picking that patch introduces +a lot of unrelated changes, and is much more difficult than reusing the idea. + +Fixes: http://tracker.ceph.com/issues/20428 + +Signed-off-by: Alexey Sheplyakov +--- + src/osd/OSD.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc +index f5cfda3b686a..38a2711f6f92 100644 +--- a/src/osd/OSD.cc ++++ b/src/osd/OSD.cc +@@ -8727,9 +8727,9 @@ void OSD::ShardedOpWQ::_process(uint32_t thread_index, heartbeat_handle_d *hb ) + assert(NULL != sdata); + sdata->sdata_op_ordering_lock.Lock(); + if (sdata->pqueue->empty()) { +- sdata->sdata_op_ordering_lock.Unlock(); + osd->cct->get_heartbeat_map()->reset_timeout(hb, 4, 0); + sdata->sdata_lock.Lock(); ++ sdata->sdata_op_ordering_lock.Unlock(); + sdata->sdata_cond.WaitInterval(osd->cct, sdata->sdata_lock, utime_t(2, 0)); + sdata->sdata_lock.Unlock(); + sdata->sdata_op_ordering_lock.Lock(); diff --git a/sys-cluster/ceph/files/ceph-12.2.0-cflags.patch b/sys-cluster/ceph/files/ceph-12.2.0-cflags.patch new file mode 100644 index 0000000..0f02e6e --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.0-cflags.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/modules/Distutils.cmake b/cmake/modules/Distutils.cmake +index 24d1a50654..a9fac61196 100644 +--- a/cmake/modules/Distutils.cmake ++++ b/cmake/modules/Distutils.cmake +@@ -43,7 +43,7 @@ function(distutils_add_cython_module name src) + CC=${PY_CC} + CXX=${PY_CXX} + LDSHARED=${PY_LDSHARED} +- OPT=\"-DNDEBUG -g -fwrapv -O2 -w\" ++ OPT=\"-DNDEBUG -fwrapv -w\" + LDFLAGS=-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY} + CYTHON_BUILD_DIR=${CMAKE_CURRENT_BINARY_DIR} + CEPH_LIBDIR=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} diff --git a/sys-cluster/ceph/files/ceph-12.2.0-use-provided-cpu-flag-values.patch b/sys-cluster/ceph/files/ceph-12.2.0-use-provided-cpu-flag-values.patch new file mode 100644 index 0000000..55c82b0 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.0-use-provided-cpu-flag-values.patch @@ -0,0 +1,37 @@ +diff --git a/cmake/modules/SIMDExt.cmake b/cmake/modules/SIMDExt.cmake +index 5330835aa1..a4dd881e34 100644 +--- a/cmake/modules/SIMDExt.cmake ++++ b/cmake/modules/SIMDExt.cmake +@@ -76,32 +76,25 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm|ARM") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|amd64|x86_64|AMD64") + set(HAVE_INTEL 1) + if(CMAKE_SYSTEM_PROCESSOR MATCHES "i686|amd64|x86_64|AMD64") +- CHECK_C_COMPILER_FLAG(-msse HAVE_INTEL_SSE) + if(HAVE_INTEL_SSE) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse") + endif() + if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64|AMD64") +- CHECK_C_COMPILER_FLAG(-msse2 HAVE_INTEL_SSE2) + if(HAVE_INTEL_SSE2) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse2") + endif() +- CHECK_C_COMPILER_FLAG(-msse3 HAVE_INTEL_SSE3) + if(HAVE_INTEL_SSE3) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse3") + endif() +- CHECK_C_COMPILER_FLAG(-mssse3 HAVE_INTEL_SSSE3) + if(HAVE_INTEL_SSSE3) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mssse3") + endif() +- CHECK_C_COMPILER_FLAG(-mpclmul HAVE_INTEL_PCLMUL) + if(HAVE_INTEL_PCLMUL) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mpclmul") + endif() +- CHECK_C_COMPILER_FLAG(-msse4.1 HAVE_INTEL_SSE4_1) + if(HAVE_INTEL_SSE4_1) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.1") + endif() +- CHECK_C_COMPILER_FLAG(-msse4.2 HAVE_INTEL_SSE4_2) + if(HAVE_INTEL_SSE4_2) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.2") + endif() diff --git a/sys-cluster/ceph/files/ceph-12.2.1-systemd-unitdir.patch b/sys-cluster/ceph/files/ceph-12.2.1-systemd-unitdir.patch new file mode 100644 index 0000000..28d1a02 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.1-systemd-unitdir.patch @@ -0,0 +1,10 @@ +diff --git a/systemd/CMakeLists.txt b/systemd/CMakeLists.txt +index 3b03b6e613..c359ad2df9 100644 +--- a/systemd/CMakeLists.txt ++++ b/systemd/CMakeLists.txt +@@ -17,4 +17,4 @@ install(FILES + ceph-disk@.service + ceph-volume@.service + rbdmap.service +- DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/systemd/system) ++ DESTINATION ${SYSTEMD_UNITDIR}) diff --git a/sys-cluster/ceph/files/ceph-12.2.11-boost-sonames.patch b/sys-cluster/ceph/files/ceph-12.2.11-boost-sonames.patch new file mode 100644 index 0000000..bd17686 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.11-boost-sonames.patch @@ -0,0 +1,214 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5403de8f4c..ee3336ee27 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -563,7 +563,7 @@ set(BOOST_COMPONENTS + set(BOOST_HEADER_COMPONENTS container) + + if(WITH_MGR) +- list(APPEND BOOST_COMPONENTS python) ++ list(APPEND BOOST_COMPONENTS python-${EPYTHON_VERSION}) + endif() + if(WITH_BOOST_CONTEXT) + list(APPEND BOOST_COMPONENTS context coroutine) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index b0837ab1d9..e12cecf354 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -623,13 +623,13 @@ set(ceph_common_objs + $) + set(ceph_common_deps + json_spirit erasure_code rt ${LIB_RESOLV} +- Boost::thread +- Boost::system +- Boost::regex +- Boost::random +- Boost::program_options +- Boost::date_time +- Boost::iostreams ++ boost_thread ++ boost_system ++ boost_regex ++ boost_random ++ boost_program_options ++ boost_date_time ++ boost_iostreams + ${BLKID_LIBRARIES} + ${Backtrace_LIBRARIES} + ${BLKIN_LIBRARIES} +@@ -727,7 +727,7 @@ if (WITH_MGR) + $) + target_include_directories(ceph-mgr PRIVATE "${PYTHON_INCLUDE_DIRS}") + target_link_libraries(ceph-mgr osdc client global-static common +- Boost::python ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS}) ++ boost_python-${EPYTHON_VERSION} ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS}) + install(TARGETS ceph-mgr DESTINATION bin) + endif (WITH_MGR) + +@@ -901,7 +901,7 @@ set(ceph_mds_srcs + ceph_mds.cc) + add_executable(ceph-mds ${ceph_mds_srcs}) + target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static common +- Boost::thread) ++ boost_thread) + install(TARGETS ceph-mds DESTINATION bin) + + add_subdirectory(erasure-code) +diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt +index 57cb2a5b94..971af8ebec 100644 +--- a/src/rgw/CMakeLists.txt ++++ b/src/rgw/CMakeLists.txt +@@ -156,7 +156,7 @@ if (WITH_CURL_OPENSSL OR (WITH_RADOSGW_BEAST_FRONTEND AND WITH_RADOSGW_BEAST_OPE + endif() + if (WITH_RADOSGW_BEAST_FRONTEND) + target_compile_definitions(rgw_a PUBLIC BOOST_COROUTINES_NO_DEPRECATION_WARNING) +- target_link_libraries(rgw_a Boost::coroutine Boost::context) ++ target_link_libraries(rgw_a boost_coroutine boost_context) + endif() + + set(radosgw_srcs +diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt +index 66e24b8bc9..0f659c98e2 100644 +--- a/src/test/CMakeLists.txt ++++ b/src/test/CMakeLists.txt +@@ -145,7 +145,7 @@ add_executable(ceph_omapbench + ) + target_link_libraries(ceph_omapbench + librados +- Boost::program_options ++ boost_program_options + global + ${BLKID_LIBRARIES} + ${CMAKE_DL_LIBS} +@@ -199,7 +199,7 @@ if(${WITH_RADOSGW}) + cls_rgw_client + cls_user_client + cls_lock_client +- Boost::regex ++ boost_regex + ${BLKID_LIBRARIES} + ${CURL_LIBRARIES} + ${EXPAT_LIBRARIES} +@@ -229,7 +229,7 @@ if(${WITH_RADOSGW}) + cls_rgw_client + cls_user_client + cls_lock_client +- Boost::regex ++ boost_regex + ${BLKID_LIBRARIES} + ${CURL_LIBRARIES} + ${EXPAT_LIBRARIES} +diff --git a/src/test/bench/CMakeLists.txt b/src/test/bench/CMakeLists.txt +index 9fba701e05..da3cbcfe96 100644 +--- a/src/test/bench/CMakeLists.txt ++++ b/src/test/bench/CMakeLists.txt +@@ -8,7 +8,7 @@ set(smalliobench_srcs + add_executable(ceph_smalliobench + ${smalliobench_srcs} + ) +-target_link_libraries(ceph_smalliobench librados Boost::program_options global ++target_link_libraries(ceph_smalliobench librados boost_program_options global + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + + # ceph_smalliobenchrbd +@@ -27,7 +27,7 @@ if(WITH_RBD) + librados + os + global +- Boost::program_options ++ boost_program_options + ${BLKID_LIBRARIES} + ${CMAKE_DL_LIBS} + ) +@@ -50,7 +50,7 @@ set(ceph_smalliobenchfs_srcs + add_executable(ceph_smalliobenchfs + ${ceph_smalliobenchfs_srcs} + ) +-target_link_libraries(ceph_smalliobenchfs librados Boost::program_options os global ++target_link_libraries(ceph_smalliobenchfs librados boost_program_options os global + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + + # ceph_smalliobenchdumb +@@ -63,7 +63,7 @@ set(smalliobenchdumb_srcs + add_executable(ceph_smalliobenchdumb + ${smalliobenchdumb_srcs} + ) +-target_link_libraries(ceph_smalliobenchdumb librados Boost::program_options os global ++target_link_libraries(ceph_smalliobenchdumb librados boost_program_options os global + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + + # ceph_tpbench +@@ -73,7 +73,7 @@ set(tpbench_srcs + add_executable(ceph_tpbench + ${tpbench_srcs} + ) +-target_link_libraries(ceph_tpbench librados Boost::program_options global ++target_link_libraries(ceph_tpbench librados boost_program_options global + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + + install(TARGETS +diff --git a/src/test/erasure-code/CMakeLists.txt b/src/test/erasure-code/CMakeLists.txt +index dc4e0865d0..69502342bb 100644 +--- a/src/test/erasure-code/CMakeLists.txt ++++ b/src/test/erasure-code/CMakeLists.txt +@@ -2,15 +2,15 @@ + add_executable(ceph_erasure_code_benchmark + ${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc + ceph_erasure_code_benchmark.cc) +-target_link_libraries(ceph_erasure_code_benchmark ceph-common Boost::program_options global ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph_erasure_code_benchmark ceph-common boost_program_options global ${CMAKE_DL_LIBS}) + install(TARGETS ceph_erasure_code_benchmark + DESTINATION bin) + + add_executable(ceph_erasure_code_non_regression ceph_erasure_code_non_regression.cc) +-target_link_libraries(ceph_erasure_code_non_regression ceph-common Boost::program_options global ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph_erasure_code_non_regression ceph-common boost_program_options global ${CMAKE_DL_LIBS}) + + add_executable(ceph_erasure_code ceph_erasure_code.cc) +-target_link_libraries(ceph_erasure_code ceph-common Boost::program_options global ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph_erasure_code ceph-common boost_program_options global ${CMAKE_DL_LIBS}) + install(TARGETS ceph_erasure_code + DESTINATION bin) + +diff --git a/src/test/librados/CMakeLists.txt b/src/test/librados/CMakeLists.txt +index c35ddb3d8f..3916544259 100644 +--- a/src/test/librados/CMakeLists.txt ++++ b/src/test/librados/CMakeLists.txt +@@ -137,7 +137,7 @@ add_executable(ceph_test_rados_api_tier + set_target_properties(ceph_test_rados_api_tier PROPERTIES COMPILE_FLAGS + ${UNITTEST_CXX_FLAGS}) + target_link_libraries(ceph_test_rados_api_tier +- global rados_a ${UNITTEST_LIBS} Boost::system radostest) ++ global rados_a ${UNITTEST_LIBS} boost_system radostest) + + # ceph_test_rados_api_snapshots + add_executable(ceph_test_rados_api_snapshots +diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt +index 9f72fa3b48..665c977606 100644 +--- a/src/tools/CMakeLists.txt ++++ b/src/tools/CMakeLists.txt +@@ -24,13 +24,13 @@ target_link_libraries(ceph_radosacl librados global) + install(TARGETS ceph_radosacl DESTINATION bin) + + add_executable(ceph-osdomap-tool ceph_osdomap_tool.cc) +-target_link_libraries(ceph-osdomap-tool os global Boost::program_options) ++target_link_libraries(ceph-osdomap-tool os global boost_program_options) + install(TARGETS ceph-osdomap-tool DESTINATION bin) + + add_executable(ceph-monstore-tool + ceph_monstore_tool.cc + ../mgr/mgr_commands.cc) +-target_link_libraries(ceph-monstore-tool os global Boost::program_options) ++target_link_libraries(ceph-monstore-tool os global boost_program_options) + install(TARGETS ceph-monstore-tool DESTINATION bin) + install(PROGRAMS + ceph-monstore-update-crush.sh +@@ -41,7 +41,7 @@ add_executable(ceph-objectstore-tool + ceph_objectstore_tool.cc + rebuild_mondb.cc + RadosDump.cc) +-target_link_libraries(ceph-objectstore-tool osd os global Boost::program_options ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph-objectstore-tool osd os global boost_program_options ${CMAKE_DL_LIBS}) + if(WITH_FUSE) + target_link_libraries(ceph-objectstore-tool fuse) + endif(WITH_FUSE) diff --git a/sys-cluster/ceph/files/ceph-12.2.11-fix-min-call.patch b/sys-cluster/ceph/files/ceph-12.2.11-fix-min-call.patch new file mode 100644 index 0000000..cd9eb48 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.11-fix-min-call.patch @@ -0,0 +1,13 @@ +diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc +index 0074c7964b..98991be7d2 100644 +--- a/src/osd/PrimaryLogPG.cc ++++ b/src/osd/PrimaryLogPG.cc +@@ -1582,7 +1582,7 @@ void PrimaryLogPG::calc_trim_to() + if (limit != eversion_t() && + limit != pg_trim_to && + pg_log.get_log().approx_size() > target) { +- size_t num_to_trim = std::min(pg_log.get_log().approx_size() - target, ++ size_t num_to_trim = std::min((uint64_t)(pg_log.get_log().approx_size() - target), + cct->_conf->osd_pg_log_trim_max); + if (num_to_trim < cct->_conf->osd_pg_log_trim_min && + cct->_conf->osd_pg_log_trim_max >= cct->_conf->osd_pg_log_trim_min) { diff --git a/sys-cluster/ceph/files/ceph-12.2.12-civetweb-openssl-1.1.1.patch b/sys-cluster/ceph/files/ceph-12.2.12-civetweb-openssl-1.1.1.patch new file mode 100644 index 0000000..a21bcc9 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.12-civetweb-openssl-1.1.1.patch @@ -0,0 +1,10 @@ +--- a/src/civetweb/src/civetweb.c 2017-11-02 10:58:06.000000000 -0700 ++++ b/src/civetweb/src/civetweb.c 2019-04-11 17:23:30.736346783 -0700 +@@ -851,6 +851,7 @@ + #include + #include + #include ++#include + #else + /* SSL loaded dynamically from DLL. + * I put the prototypes here to be independent from OpenSSL source diff --git a/sys-cluster/ceph/files/ceph-12.2.12-dont-use-bad-namespace.patch b/sys-cluster/ceph/files/ceph-12.2.12-dont-use-bad-namespace.patch new file mode 100644 index 0000000..9a23e1e --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.12-dont-use-bad-namespace.patch @@ -0,0 +1,13 @@ +diff --git a/src/rgw/rgw_crypt.cc b/src/rgw/rgw_crypt.cc +index cf4e38995e..7a4089fca9 100644 +--- a/src/rgw/rgw_crypt.cc ++++ b/src/rgw/rgw_crypt.cc +@@ -31,7 +31,7 @@ using namespace CryptoPP; + #define dout_subsys ceph_subsys_rgw + + using namespace rgw; +-using ceph::crypto::PK11_ImportSymKey_FIPS; ++//using ceph::crypto::PK11_ImportSymKey_FIPS; + + /** + * Encryption in CTR mode. offset is used as IV for each block. diff --git a/sys-cluster/ceph/files/ceph-12.2.12-ncurses-tinfo.patch b/sys-cluster/ceph/files/ceph-12.2.12-ncurses-tinfo.patch new file mode 100644 index 0000000..1b72e54 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.12-ncurses-tinfo.patch @@ -0,0 +1,20 @@ +diff --git a/src/tools/rbd/CMakeLists.txt b/src/tools/rbd/CMakeLists.txt +index 7aa42e9efd..66186b159f 100644 +--- a/src/tools/rbd/CMakeLists.txt ++++ b/src/tools/rbd/CMakeLists.txt +@@ -1,3 +1,6 @@ ++set(CURSES_NEED_NCURSES TRUE) ++find_package(Curses REQUIRED) ++ + set(rbd_srcs + rbd.cc + ArgumentTypes.cc +@@ -46,7 +49,7 @@ target_link_libraries(rbd librbd librados + cls_journal_client cls_rbd_client + rbd_types + journal +- ceph-common global ++ ceph-common global ${CURSES_LIBRARIES} + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + if(WITH_KRBD) + target_link_libraries(rbd diff --git a/sys-cluster/ceph/files/ceph-12.2.12-qa-warning.patch b/sys-cluster/ceph/files/ceph-12.2.12-qa-warning.patch new file mode 100644 index 0000000..1b63d6e --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.12-qa-warning.patch @@ -0,0 +1,13 @@ +diff --git a/src/common/blkdev.cc b/src/common/blkdev.cc +index d95a397a84..d2cbf4b7b9 100644 +--- a/src/common/blkdev.cc ++++ b/src/common/blkdev.cc +@@ -225,7 +225,7 @@ int get_device_by_uuid(uuid_d dev_uuid, const char* label, char* partition, + rc = get_block_device_base(partition, basename, + sizeof(basename)); + if (rc >= 0) { +- strncpy(device, basename, sizeof(basename)); ++ strncpy(device, basename, sizeof(device)); + rc = 0; + } else { + rc = -ENODEV; diff --git a/sys-cluster/ceph/files/ceph-12.2.2-build-without-radosgw.patch b/sys-cluster/ceph/files/ceph-12.2.2-build-without-radosgw.patch new file mode 100644 index 0000000..29257c4 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.2-build-without-radosgw.patch @@ -0,0 +1,34 @@ +From b00ac12f4045cd39ac9a436cf32d233d16bc3485 Mon Sep 17 00:00:00 2001 +From: Jason Dillaman +Date: Tue, 5 Dec 2017 09:58:04 -0500 +Subject: [PATCH] ceph-dencoder: moved RBD types outside of RGW preprocessor + guard + +Fixes: http://tracker.ceph.com/issues/22321 +Signed-off-by: Jason Dillaman +--- + src/test/encoding/types.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/test/encoding/types.h b/src/test/encoding/types.h +index c061e93bd58c..4cfcb15edff1 100644 +--- a/src/test/encoding/types.h ++++ b/src/test/encoding/types.h +@@ -405,6 +405,8 @@ TYPE(rgw_data_sync_info) + TYPE(rgw_data_sync_marker) + TYPE(rgw_data_sync_status) + ++#endif ++ + #ifdef WITH_RBD + #include "cls/rbd/cls_rbd.h" + TYPE(cls_rbd_parent) +@@ -416,8 +418,6 @@ TYPE(cls::rbd::MirrorImage) + TYPE(cls::rbd::MirrorImageMap) + #endif + +-#endif +- + #include "cls/lock/cls_lock_types.h" + TYPE(rados::cls::lock::locker_id_t) + TYPE_FEATUREFUL(rados::cls::lock::locker_info_t) diff --git a/sys-cluster/ceph/files/ceph-12.2.4-boost-build-none-options.patch b/sys-cluster/ceph/files/ceph-12.2.4-boost-build-none-options.patch new file mode 100644 index 0000000..6e3ad41 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.4-boost-build-none-options.patch @@ -0,0 +1,26 @@ +diff --git a/src/boost/tools/build/src/tools/features/debug-feature.jam b/src/boost/tools/build/src/tools/features/debug-feature.jam +index 04958f9a..38b6acf1 100644 +--- a/src/boost/tools/build/src/tools/features/debug-feature.jam ++++ b/src/boost/tools/build/src/tools/features/debug-feature.jam +@@ -8,7 +8,7 @@ + import feature ; + + feature.feature debug-symbols +- : on off ++ : on off none + : propagated ; + + feature.feature profiling +diff --git a/src/boost/tools/build/src/tools/features/optimization-feature.jam b/src/boost/tools/build/src/tools/features/optimization-feature.jam +index 761f76f1..fb2a5dec 100644 +--- a/src/boost/tools/build/src/tools/features/optimization-feature.jam ++++ b/src/boost/tools/build/src/tools/features/optimization-feature.jam +@@ -8,7 +8,7 @@ + import feature ; + + feature.feature optimization +- : off speed space ++ : off none speed space + : propagated ; + + feature.feature inlining diff --git a/sys-cluster/ceph/files/ceph-12.2.4-boost-sonames.patch b/sys-cluster/ceph/files/ceph-12.2.4-boost-sonames.patch new file mode 100644 index 0000000..59c645d --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.4-boost-sonames.patch @@ -0,0 +1,152 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 7aa8a4392e..111f669f2e 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -622,13 +622,13 @@ set(ceph_common_objs + $) + set(ceph_common_deps + json_spirit erasure_code rt ${LIB_RESOLV} +- Boost::thread +- Boost::system +- Boost::regex +- Boost::random +- Boost::program_options +- Boost::date_time +- Boost::iostreams ++ boost_thread ++ boost_system ++ boost_regex ++ boost_random ++ boost_program_options ++ boost_date_time ++ boost_iostreams + ${BLKID_LIBRARIES} + ${Backtrace_LIBRARIES} + ${BLKIN_LIBRARIES} +@@ -712,7 +712,7 @@ if (WITH_MGR) + $) + target_include_directories(ceph-mgr PRIVATE "${PYTHON_INCLUDE_DIRS}") + target_link_libraries(ceph-mgr osdc client global-static common +- Boost::python ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS}) ++ boost_python-${EPYTHON_VERSION} ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS}) + install(TARGETS ceph-mgr DESTINATION bin) + endif (WITH_MGR) + +@@ -885,7 +885,7 @@ set(ceph_mds_srcs + ceph_mds.cc) + add_executable(ceph-mds ${ceph_mds_srcs}) + target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static common +- Boost::thread) ++ boost_thread) + install(TARGETS ceph-mds DESTINATION bin) + + add_subdirectory(erasure-code) +diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt +index f3999e3b01..0ce7fca1ba 100644 +--- a/src/test/CMakeLists.txt ++++ b/src/test/CMakeLists.txt +@@ -148,7 +148,7 @@ add_executable(ceph_omapbench + ) + target_link_libraries(ceph_omapbench + librados +- Boost::program_options ++ boost_program_options + global + ${BLKID_LIBRARIES} + ${CMAKE_DL_LIBS} +@@ -202,7 +202,7 @@ if(${WITH_RADOSGW}) + cls_rgw_client + cls_user_client + cls_lock_client +- Boost::regex ++ boost_regex + ${BLKID_LIBRARIES} + ${CURL_LIBRARIES} + ${EXPAT_LIBRARIES} +@@ -232,7 +232,7 @@ if(${WITH_RADOSGW}) + cls_rgw_client + cls_user_client + cls_lock_client +- Boost::regex ++ boost_regex + ${BLKID_LIBRARIES} + ${CURL_LIBRARIES} + ${EXPAT_LIBRARIES} +diff --git a/src/test/bench/CMakeLists.txt b/src/test/bench/CMakeLists.txt +index 9fba701e05..da3cbcfe96 100644 +--- a/src/test/bench/CMakeLists.txt ++++ b/src/test/bench/CMakeLists.txt +@@ -8,7 +8,7 @@ set(smalliobench_srcs + add_executable(ceph_smalliobench + ${smalliobench_srcs} + ) +-target_link_libraries(ceph_smalliobench librados Boost::program_options global ++target_link_libraries(ceph_smalliobench librados boost_program_options global + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + + # ceph_smalliobenchrbd +@@ -27,7 +27,7 @@ if(WITH_RBD) + librados + os + global +- Boost::program_options ++ boost_program_options + ${BLKID_LIBRARIES} + ${CMAKE_DL_LIBS} + ) +@@ -50,7 +50,7 @@ set(ceph_smalliobenchfs_srcs + add_executable(ceph_smalliobenchfs + ${ceph_smalliobenchfs_srcs} + ) +-target_link_libraries(ceph_smalliobenchfs librados Boost::program_options os global ++target_link_libraries(ceph_smalliobenchfs librados boost_program_options os global + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + + # ceph_smalliobenchdumb +@@ -63,7 +63,7 @@ set(smalliobenchdumb_srcs + add_executable(ceph_smalliobenchdumb + ${smalliobenchdumb_srcs} + ) +-target_link_libraries(ceph_smalliobenchdumb librados Boost::program_options os global ++target_link_libraries(ceph_smalliobenchdumb librados boost_program_options os global + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + + # ceph_tpbench +@@ -73,7 +73,7 @@ set(tpbench_srcs + add_executable(ceph_tpbench + ${tpbench_srcs} + ) +-target_link_libraries(ceph_tpbench librados Boost::program_options global ++target_link_libraries(ceph_tpbench librados boost_program_options global + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + + install(TARGETS +diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt +index 7502085895..1a430c201a 100644 +--- a/src/tools/CMakeLists.txt ++++ b/src/tools/CMakeLists.txt +@@ -23,13 +23,13 @@ target_link_libraries(ceph_radosacl librados global) + install(TARGETS ceph_radosacl DESTINATION bin) + + add_executable(ceph-osdomap-tool ceph_osdomap_tool.cc) +-target_link_libraries(ceph-osdomap-tool os global Boost::program_options) ++target_link_libraries(ceph-osdomap-tool os global boost_program_options) + install(TARGETS ceph-osdomap-tool DESTINATION bin) + + add_executable(ceph-monstore-tool + ceph_monstore_tool.cc + ../mgr/mgr_commands.cc) +-target_link_libraries(ceph-monstore-tool os global Boost::program_options) ++target_link_libraries(ceph-monstore-tool os global boost_program_options) + install(TARGETS ceph-monstore-tool DESTINATION bin) + install(PROGRAMS + ceph-monstore-update-crush.sh +@@ -40,7 +40,7 @@ add_executable(ceph-objectstore-tool + ceph_objectstore_tool.cc + rebuild_mondb.cc + RadosDump.cc) +-target_link_libraries(ceph-objectstore-tool osd os global Boost::program_options ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph-objectstore-tool osd os global boost_program_options ${CMAKE_DL_LIBS}) + if(WITH_FUSE) + target_link_libraries(ceph-objectstore-tool fuse) + endif(WITH_FUSE) diff --git a/sys-cluster/ceph/files/ceph-12.2.4-cflags.patch b/sys-cluster/ceph/files/ceph-12.2.4-cflags.patch new file mode 100644 index 0000000..3535d8c --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.4-cflags.patch @@ -0,0 +1,38 @@ +diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake +index c7cd39a110..e7b8115485 100644 +--- a/cmake/modules/BuildBoost.cmake ++++ b/cmake/modules/BuildBoost.cmake +@@ -29,7 +29,7 @@ function(do_build_boost version) + else() + list(APPEND boost_features "address-model=32") + endif() +- set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX ++ set(BOOST_CXXFLAGS "${CMAKE_CXX_FLAGS} -fPIC -w") # check on arm, etc <---XXX + list(APPEND boost_features "cxxflags=${BOOST_CXXFLAGS}") + + string(REPLACE ";" "," boost_with_libs "${Boost_BUILD_COMPONENTS}") +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 7aa8a4392e..c7543a62bd 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -808,6 +808,7 @@ install(TARGETS ceph-mon DESTINATION bin) + + if (NOT WITH_SYSTEM_ROCKSDB) + set(ROCKSDB_CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON) ++ list(APPEND ROCKSDB_CMAKE_ARGS -DDISABLE_WARNING_AS_ERROR=ON) + + if(ALLOCATOR STREQUAL "jemalloc") + list(APPEND ROCKSDB_CMAKE_ARGS -DWITH_JEMALLOC=ON) +diff --git a/src/compressor/zstd/CMakeLists.txt b/src/compressor/zstd/CMakeLists.txt +index d9d2b6e560..1b2099fcbd 100644 +--- a/src/compressor/zstd/CMakeLists.txt ++++ b/src/compressor/zstd/CMakeLists.txt +@@ -1,7 +1,7 @@ + # zstd + + # libzstd - build it statically +-set(ZSTD_C_FLAGS -fPIC -Wno-unused-variable -O3) ++set(ZSTD_C_FLAGS -fPIC -Wno-unused-variable $ENV{CFLAGS}) + + include(ExternalProject) + ExternalProject_Add(zstd_ext diff --git a/sys-cluster/ceph/files/ceph-12.2.4-rocksdb-cflags.patch b/sys-cluster/ceph/files/ceph-12.2.4-rocksdb-cflags.patch new file mode 100644 index 0000000..d744318 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.4-rocksdb-cflags.patch @@ -0,0 +1,11 @@ +--- ceph-12.2.4.orig/src/rocksdb/CMakeLists.txt 2018-03-05 19:06:21.016923872 -0800 ++++ ceph-12.2.4/src/rocksdb/CMakeLists.txt 2018-03-05 19:09:01.798721666 -0800 +@@ -147,7 +147,7 @@ + endif() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -fno-omit-frame-pointer") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer") + include(CheckCXXCompilerFlag) + CHECK_CXX_COMPILER_FLAG("-momit-leaf-frame-pointer" HAVE_OMIT_LEAF_FRAME_POINTER) + if(HAVE_OMIT_LEAF_FRAME_POINTER) diff --git a/sys-cluster/ceph/files/ceph-12.2.5-boost-sonames.patch b/sys-cluster/ceph/files/ceph-12.2.5-boost-sonames.patch new file mode 100644 index 0000000..57482b3 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.5-boost-sonames.patch @@ -0,0 +1,165 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index aa90ba65da..ea65dd4209 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -567,7 +567,7 @@ set(BOOST_COMPONENTS + set(BOOST_HEADER_COMPONENTS container) + + if(WITH_MGR) +- list(APPEND BOOST_COMPONENTS python) ++ list(APPEND BOOST_COMPONENTS python-${EPYTHON_VERSION}) + endif() + if(WITH_BOOST_CONTEXT) + list(APPEND BOOST_COMPONENTS context coroutine) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 7aa8a4392e..111f669f2e 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -622,13 +622,13 @@ set(ceph_common_objs + $) + set(ceph_common_deps + json_spirit erasure_code rt ${LIB_RESOLV} +- Boost::thread +- Boost::system +- Boost::regex +- Boost::random +- Boost::program_options +- Boost::date_time +- Boost::iostreams ++ boost_thread ++ boost_system ++ boost_regex ++ boost_random ++ boost_program_options ++ boost_date_time ++ boost_iostreams + ${BLKID_LIBRARIES} + ${Backtrace_LIBRARIES} + ${BLKIN_LIBRARIES} +@@ -712,7 +712,7 @@ if (WITH_MGR) + $) + target_include_directories(ceph-mgr PRIVATE "${PYTHON_INCLUDE_DIRS}") + target_link_libraries(ceph-mgr osdc client global-static common +- Boost::python ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS}) ++ boost_python-${EPYTHON_VERSION} ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS}) + install(TARGETS ceph-mgr DESTINATION bin) + endif (WITH_MGR) + +@@ -885,7 +885,7 @@ set(ceph_mds_srcs + ceph_mds.cc) + add_executable(ceph-mds ${ceph_mds_srcs}) + target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static common +- Boost::thread) ++ boost_thread) + install(TARGETS ceph-mds DESTINATION bin) + + add_subdirectory(erasure-code) +diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt +index f3999e3b01..0ce7fca1ba 100644 +--- a/src/test/CMakeLists.txt ++++ b/src/test/CMakeLists.txt +@@ -148,7 +148,7 @@ add_executable(ceph_omapbench + ) + target_link_libraries(ceph_omapbench + librados +- Boost::program_options ++ boost_program_options + global + ${BLKID_LIBRARIES} + ${CMAKE_DL_LIBS} +@@ -202,7 +202,7 @@ if(${WITH_RADOSGW}) + cls_rgw_client + cls_user_client + cls_lock_client +- Boost::regex ++ boost_regex + ${BLKID_LIBRARIES} + ${CURL_LIBRARIES} + ${EXPAT_LIBRARIES} +@@ -232,7 +232,7 @@ if(${WITH_RADOSGW}) + cls_rgw_client + cls_user_client + cls_lock_client +- Boost::regex ++ boost_regex + ${BLKID_LIBRARIES} + ${CURL_LIBRARIES} + ${EXPAT_LIBRARIES} +diff --git a/src/test/bench/CMakeLists.txt b/src/test/bench/CMakeLists.txt +index 9fba701e05..da3cbcfe96 100644 +--- a/src/test/bench/CMakeLists.txt ++++ b/src/test/bench/CMakeLists.txt +@@ -8,7 +8,7 @@ set(smalliobench_srcs + add_executable(ceph_smalliobench + ${smalliobench_srcs} + ) +-target_link_libraries(ceph_smalliobench librados Boost::program_options global ++target_link_libraries(ceph_smalliobench librados boost_program_options global + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + + # ceph_smalliobenchrbd +@@ -27,7 +27,7 @@ if(WITH_RBD) + librados + os + global +- Boost::program_options ++ boost_program_options + ${BLKID_LIBRARIES} + ${CMAKE_DL_LIBS} + ) +@@ -50,7 +50,7 @@ set(ceph_smalliobenchfs_srcs + add_executable(ceph_smalliobenchfs + ${ceph_smalliobenchfs_srcs} + ) +-target_link_libraries(ceph_smalliobenchfs librados Boost::program_options os global ++target_link_libraries(ceph_smalliobenchfs librados boost_program_options os global + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + + # ceph_smalliobenchdumb +@@ -63,7 +63,7 @@ set(smalliobenchdumb_srcs + add_executable(ceph_smalliobenchdumb + ${smalliobenchdumb_srcs} + ) +-target_link_libraries(ceph_smalliobenchdumb librados Boost::program_options os global ++target_link_libraries(ceph_smalliobenchdumb librados boost_program_options os global + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + + # ceph_tpbench +@@ -73,7 +73,7 @@ set(tpbench_srcs + add_executable(ceph_tpbench + ${tpbench_srcs} + ) +-target_link_libraries(ceph_tpbench librados Boost::program_options global ++target_link_libraries(ceph_tpbench librados boost_program_options global + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + + install(TARGETS +diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt +index 9f72fa3b48..665c977606 100644 +--- a/src/tools/CMakeLists.txt ++++ b/src/tools/CMakeLists.txt +@@ -24,13 +24,13 @@ target_link_libraries(ceph_radosacl librados global) + install(TARGETS ceph_radosacl DESTINATION bin) + + add_executable(ceph-osdomap-tool ceph_osdomap_tool.cc) +-target_link_libraries(ceph-osdomap-tool os global Boost::program_options) ++target_link_libraries(ceph-osdomap-tool os global boost_program_options) + install(TARGETS ceph-osdomap-tool DESTINATION bin) + + add_executable(ceph-monstore-tool + ceph_monstore_tool.cc + ../mgr/mgr_commands.cc) +-target_link_libraries(ceph-monstore-tool os global Boost::program_options) ++target_link_libraries(ceph-monstore-tool os global boost_program_options) + install(TARGETS ceph-monstore-tool DESTINATION bin) + install(PROGRAMS + ceph-monstore-update-crush.sh +@@ -41,7 +41,7 @@ add_executable(ceph-objectstore-tool + ceph_objectstore_tool.cc + rebuild_mondb.cc + RadosDump.cc) +-target_link_libraries(ceph-objectstore-tool osd os global Boost::program_options ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph-objectstore-tool osd os global boost_program_options ${CMAKE_DL_LIBS}) + if(WITH_FUSE) + target_link_libraries(ceph-objectstore-tool fuse) + endif(WITH_FUSE) diff --git a/sys-cluster/ceph/files/ceph-12.2.5-no-werror.patch b/sys-cluster/ceph/files/ceph-12.2.5-no-werror.patch new file mode 100644 index 0000000..dd24e78 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-12.2.5-no-werror.patch @@ -0,0 +1,55 @@ +diff -ur ceph-12.2.5.orig/src/rapidjson/CMakeLists.txt ceph-12.2.5/src/rapidjson/CMakeLists.txt +--- ceph-12.2.5.orig/src/rapidjson/CMakeLists.txt 2018-07-09 11:18:09.188115751 -0700 ++++ ceph-12.2.5/src/rapidjson/CMakeLists.txt 2018-07-09 11:36:56.848639110 -0700 +@@ -50,7 +50,7 @@ + endif(CCACHE_FOUND) + + if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -Wextra -Werror") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -Wextra") + if (RAPIDJSON_BUILD_CXX11) + if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.7.0") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") +@@ -73,7 +73,7 @@ + endif() + endif() + elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -Wextra -Werror -Wno-missing-field-initializers") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -Wextra -Wno-missing-field-initializers") + if (RAPIDJSON_BUILD_CXX11) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + endif() +diff -ur ceph-12.2.5.orig/src/rocksdb/CMakeLists.txt ceph-12.2.5/src/rocksdb/CMakeLists.txt +--- ceph-12.2.5.orig/src/rocksdb/CMakeLists.txt 2018-07-09 11:18:09.219115543 -0700 ++++ ceph-12.2.5/src/rocksdb/CMakeLists.txt 2018-07-09 11:34:58.843411195 -0700 +@@ -174,15 +174,6 @@ + PROPERTIES COMPILE_FLAGS "-msse4.2") + endif() + +-option(FAIL_ON_WARNINGS "Treat compile warnings as errors" ON) +-if(FAIL_ON_WARNINGS) +- if(MSVC) +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") +- else() # assume GCC +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") +- endif() +-endif() +- + option(WITH_ASAN "build with ASAN" OFF) + if(WITH_ASAN) + add_definitions(-DROCKSDB_TSAN_RUN) +diff -ur ceph-12.2.5.orig/src/rocksdb/Makefile ceph-12.2.5/src/rocksdb/Makefile +--- ceph-12.2.5.orig/src/rocksdb/Makefile 2018-03-11 18:58:51.000000000 -0700 ++++ ceph-12.2.5/src/rocksdb/Makefile 2018-07-09 11:35:53.847049123 -0700 +@@ -243,11 +243,6 @@ + WARNING_FLAGS = -W -Wextra -Wall -Wsign-compare -Wshadow \ + -Wno-unused-parameter + +-ifndef DISABLE_WARNING_AS_ERROR +- WARNING_FLAGS += -Werror +-endif +- +- + ifdef LUA_PATH + + ifndef LUA_INCLUDE diff --git a/sys-cluster/ceph/files/ceph-13.2.0-boost-sonames.patch b/sys-cluster/ceph/files/ceph-13.2.0-boost-sonames.patch new file mode 100644 index 0000000..8de09b9 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-13.2.0-boost-sonames.patch @@ -0,0 +1,166 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2f997d03f8..748cb190e6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -591,7 +591,7 @@ set(BOOST_COMPONENTS + set(BOOST_HEADER_COMPONENTS container) + + if(WITH_MGR) +- list(APPEND BOOST_COMPONENTS python) ++ list(APPEND BOOST_COMPONENTS python-${EPYTHON_VERSION}) + endif() + if(WITH_BOOST_CONTEXT) + list(APPEND BOOST_COMPONENTS context coroutine) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 3d3b4c0919..94ab42ef9f 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -630,12 +630,12 @@ set(ceph_common_objs + $) + set(ceph_common_deps + json_spirit erasure_code ${LIB_RESOLV} +- Boost::thread +- Boost::system +- Boost::random +- Boost::program_options +- Boost::date_time +- Boost::iostreams ++ boost_thread ++ boost_system ++ boost_random ++ boost_program_options ++ boost_date_time ++ boost_iostreams + ${BLKID_LIBRARIES} + ${Backtrace_LIBRARIES} + ${BLKIN_LIBRARIES} +@@ -759,7 +759,7 @@ if (WITH_MGR) + $) + target_include_directories(ceph-mgr SYSTEM PRIVATE "${PYTHON_INCLUDE_DIRS}") + target_link_libraries(ceph-mgr osdc client global-static ceph-common +- Boost::python ${MGR_PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS}) ++ boost_python-${EPYTHON_VERSION} ${MGR_PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS}) + install(TARGETS ceph-mgr DESTINATION bin) + endif (WITH_MGR) + +@@ -888,7 +888,7 @@ set(ceph_mds_srcs + ceph_mds.cc) + add_executable(ceph-mds ${ceph_mds_srcs}) + target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static ceph-common +- Boost::thread) ++ boost_thread) + install(TARGETS ceph-mds DESTINATION bin) + + add_subdirectory(erasure-code) +diff --git a/src/rbd_replay/CMakeLists.txt b/src/rbd_replay/CMakeLists.txt +index e9d3804c5f..5c6eb58de1 100644 +--- a/src/rbd_replay/CMakeLists.txt ++++ b/src/rbd_replay/CMakeLists.txt +@@ -36,7 +36,7 @@ if(HAVE_BABELTRACE) + global + babeltrace + babeltrace-ctf +- Boost::date_time ++ boost_date_time + ) + install(TARGETS rbd-replay-prep DESTINATION bin) + endif(HAVE_BABELTRACE) +diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt +index c1edd3b882..000c8daaf8 100644 +--- a/src/rgw/CMakeLists.txt ++++ b/src/rgw/CMakeLists.txt +@@ -162,7 +162,7 @@ target_link_libraries(rgw_a librados cls_otp_client cls_lock_client cls_rgw_clie + + if (WITH_RADOSGW_BEAST_FRONTEND) + target_compile_definitions(rgw_a PUBLIC BOOST_COROUTINES_NO_DEPRECATION_WARNING) +- target_link_libraries(rgw_a Boost::coroutine Boost::context) ++ target_link_libraries(rgw_a boost_coroutine boost_context) + endif() + + if (WITH_CURL_OPENSSL OR (WITH_RADOSGW_BEAST_FRONTEND AND WITH_RADOSGW_BEAST_OPENSSL)) +diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt +index a43335e825..a0d056faaa 100644 +--- a/src/test/CMakeLists.txt ++++ b/src/test/CMakeLists.txt +@@ -147,7 +147,7 @@ add_executable(ceph_omapbench + ) + target_link_libraries(ceph_omapbench + librados +- Boost::program_options ++ boost_program_options + global + ${BLKID_LIBRARIES} + ${CMAKE_DL_LIBS} +diff --git a/src/test/erasure-code/CMakeLists.txt b/src/test/erasure-code/CMakeLists.txt +index 4ba31ab2a8..ab66208b57 100644 +--- a/src/test/erasure-code/CMakeLists.txt ++++ b/src/test/erasure-code/CMakeLists.txt +@@ -2,15 +2,15 @@ + add_executable(ceph_erasure_code_benchmark + ${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc + ceph_erasure_code_benchmark.cc) +-target_link_libraries(ceph_erasure_code_benchmark ceph-common Boost::program_options global ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph_erasure_code_benchmark ceph-common boost_program_options global ${CMAKE_DL_LIBS}) + install(TARGETS ceph_erasure_code_benchmark + DESTINATION bin) + + add_executable(ceph_erasure_code_non_regression ceph_erasure_code_non_regression.cc) +-target_link_libraries(ceph_erasure_code_non_regression ceph-common Boost::program_options global ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph_erasure_code_non_regression ceph-common boost_program_options global ${CMAKE_DL_LIBS}) + + add_executable(ceph_erasure_code ceph_erasure_code.cc) +-target_link_libraries(ceph_erasure_code ceph-common Boost::program_options global ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph_erasure_code ceph-common boost_program_options global ${CMAKE_DL_LIBS}) + install(TARGETS ceph_erasure_code + DESTINATION bin) + +diff --git a/src/test/librados/CMakeLists.txt b/src/test/librados/CMakeLists.txt +index 1c909ee1ce..7c1ef32df1 100644 +--- a/src/test/librados/CMakeLists.txt ++++ b/src/test/librados/CMakeLists.txt +@@ -61,7 +61,7 @@ set_target_properties(ceph_test_rados_api_asio PROPERTIES COMPILE_FLAGS + target_link_libraries(ceph_test_rados_api_asio global + librados ${UNITTEST_LIBS}) + if(WITH_BOOST_CONTEXT) +- target_link_libraries(ceph_test_rados_api_asio Boost::coroutine Boost::context) ++ target_link_libraries(ceph_test_rados_api_asio boost_coroutine boost_context) + endif() + + # ceph_test_rados_api_list +@@ -147,7 +147,7 @@ add_executable(ceph_test_rados_api_tier + set_target_properties(ceph_test_rados_api_tier PROPERTIES COMPILE_FLAGS + ${UNITTEST_CXX_FLAGS}) + target_link_libraries(ceph_test_rados_api_tier +- librados global ${UNITTEST_LIBS} Boost::system radostest) ++ librados global ${UNITTEST_LIBS} boost_system radostest) + + # ceph_test_rados_api_snapshots + add_executable(ceph_test_rados_api_snapshots +diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt +index e0844ec0c7..886839302c 100644 +--- a/src/tools/CMakeLists.txt ++++ b/src/tools/CMakeLists.txt +@@ -29,20 +29,20 @@ install(PROGRAMS + endif(WITH_TESTS) + + add_executable(ceph-osdomap-tool ceph_osdomap_tool.cc) +-target_link_libraries(ceph-osdomap-tool os global Boost::program_options) ++target_link_libraries(ceph-osdomap-tool os global boost_program_options) + install(TARGETS ceph-osdomap-tool DESTINATION bin) + + add_executable(ceph-monstore-tool + ceph_monstore_tool.cc + ../mgr/mgr_commands.cc) +-target_link_libraries(ceph-monstore-tool os global Boost::program_options) ++target_link_libraries(ceph-monstore-tool os global boost_program_options) + install(TARGETS ceph-monstore-tool DESTINATION bin) + + add_executable(ceph-objectstore-tool + ceph_objectstore_tool.cc + rebuild_mondb.cc + RadosDump.cc) +-target_link_libraries(ceph-objectstore-tool osd os global Boost::program_options ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph-objectstore-tool osd os global boost_program_options ${CMAKE_DL_LIBS}) + if(WITH_FUSE) + target_link_libraries(ceph-objectstore-tool fuse) + endif(WITH_FUSE) diff --git a/sys-cluster/ceph/files/ceph-13.2.0-cflags.patch b/sys-cluster/ceph/files/ceph-13.2.0-cflags.patch new file mode 100644 index 0000000..b275a17 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-13.2.0-cflags.patch @@ -0,0 +1,26 @@ +diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake +index d6572115a4..cc0bdddc9f 100644 +--- a/cmake/modules/BuildBoost.cmake ++++ b/cmake/modules/BuildBoost.cmake +@@ -62,7 +62,7 @@ function(do_build_boost version) + else() + list(APPEND boost_features "address-model=32") + endif() +- set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX ++ set(BOOST_CXXFLAGS "${CMAKE_CXX_FLAGS} -fPIC -w") # check on arm, etc <---XXX + list(APPEND boost_features "cxxflags=${BOOST_CXXFLAGS}") + + list(FIND Boost_BUILD_COMPONENTS "python" with_python) +diff --git a/src/compressor/zstd/CMakeLists.txt b/src/compressor/zstd/CMakeLists.txt +index 5a80aa539c..8d6ff5c8f0 100644 +--- a/src/compressor/zstd/CMakeLists.txt ++++ b/src/compressor/zstd/CMakeLists.txt +@@ -1,7 +1,7 @@ + # zstd + + # libzstd - build it statically +-set(ZSTD_C_FLAGS "-fPIC -Wno-unused-variable -O3") ++set(ZSTD_C_FLAGS "-fPIC -Wno-unused-variable $ENV{CFLAGS} -O3") + + include(ExternalProject) + ExternalProject_Add(zstd_ext diff --git a/sys-cluster/ceph/files/ceph-13.2.0-mgr-python-version.patch b/sys-cluster/ceph/files/ceph-13.2.0-mgr-python-version.patch new file mode 100644 index 0000000..0dc90eb --- /dev/null +++ b/sys-cluster/ceph/files/ceph-13.2.0-mgr-python-version.patch @@ -0,0 +1,16 @@ +diff --git a/src/pybind/CMakeLists.txt b/src/pybind/CMakeLists.txt +index c996cd9402..f99765702b 100644 +--- a/src/pybind/CMakeLists.txt ++++ b/src/pybind/CMakeLists.txt +@@ -62,11 +62,6 @@ foreach(python_version ${py_vers}) + endforeach() + + if(WITH_MGR) +- if(NOT WITH_PYTHON2 AND MGR_PYTHON_VERSION_MAJOR EQUAL 2) +- message(FATAL_ERROR "mgr plugins require python2 binding") +- elseif(NOT WITH_PYTHON3 AND MGR_PYTHON_VERSION_MAJOR EQUAL 3) +- message(FATAL_ERROR "mgr plugins require python3 binding") +- endif() + # Location needs to match default setting for mgr_module_path, currently: + # OPTION(mgr_module_path, OPT_STR, CEPH_PKGLIBDIR "/mgr") + install(DIRECTORY diff --git a/sys-cluster/ceph/files/ceph-13.2.0-no-virtualenvs.patch b/sys-cluster/ceph/files/ceph-13.2.0-no-virtualenvs.patch new file mode 100644 index 0000000..470dbae --- /dev/null +++ b/sys-cluster/ceph/files/ceph-13.2.0-no-virtualenvs.patch @@ -0,0 +1,78 @@ +diff --git a/src/ceph-detect-init/CMakeLists.txt b/src/ceph-detect-init/CMakeLists.txt +index 6e5946b784..233cccfc9b 100644 +--- a/src/ceph-detect-init/CMakeLists.txt ++++ b/src/ceph-detect-init/CMakeLists.txt +@@ -2,8 +2,8 @@ set(CEPH_DETECT_INIT_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-detect-init-virtua + + add_custom_target(ceph-detect-init + COMMAND +- ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=python2.7 ${CEPH_DETECT_INIT_VIRTUALENV} && +- ${CEPH_DETECT_INIT_VIRTUALENV}/bin/pip install --no-index --find-links=file:${CMAKE_SOURCE_DIR}/src/ceph-detect-init/wheelhouse -e . ++ #${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=python2.7 ${CEPH_DETECT_INIT_VIRTUALENV} && ++ #${CEPH_DETECT_INIT_VIRTUALENV}/bin/pip install --no-index --find-links=file:${CMAKE_SOURCE_DIR}/src/ceph-detect-init/wheelhouse -e . + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-detect-init + COMMENT "ceph-detect-init is being created") + add_dependencies(tests ceph-detect-init) +diff --git a/src/ceph-disk/CMakeLists.txt b/src/ceph-disk/CMakeLists.txt +index 00aaec4a80..b0700c488f 100644 +--- a/src/ceph-disk/CMakeLists.txt ++++ b/src/ceph-disk/CMakeLists.txt +@@ -2,8 +2,8 @@ set(CEPH_DISK_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-disk-virtualenv) + + add_custom_target(ceph-disk + COMMAND +- ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=python2.7 ${CEPH_DISK_VIRTUALENV} && +- ${CEPH_DISK_VIRTUALENV}/bin/pip install --no-index --find-links=file:${CMAKE_SOURCE_DIR}/src/ceph-disk/wheelhouse -e . ++ #${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=python2.7 ${CEPH_DISK_VIRTUALENV} && ++ #${CEPH_DISK_VIRTUALENV}/bin/pip install --no-index --find-links=file:${CMAKE_SOURCE_DIR}/src/ceph-disk/wheelhouse -e . + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-disk + COMMENT "ceph-disk is being created") + add_dependencies(tests ceph-disk) +diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt +index 2b050f6c6e..e9fb87f76b 100644 +--- a/src/pybind/mgr/dashboard/CMakeLists.txt ++++ b/src/pybind/mgr/dashboard/CMakeLists.txt +@@ -2,7 +2,7 @@ set(MGR_DASHBOARD_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/mgr-dashboard-virtualenv) + + add_custom_target(mgr-dashboard-test-venv + COMMAND +- ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${MGR_DASHBOARD_VIRTUALENV} ++ #${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${MGR_DASHBOARD_VIRTUALENV} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard + COMMENT "dashboard tests virtualenv is being created") + add_dependencies(tests mgr-dashboard-test-venv) +@@ -13,9 +13,9 @@ set(mgr-dashboard-nodeenv ${CMAKE_CURRENT_BINARY_DIR}/node-env) + + add_custom_command( + OUTPUT "${mgr-dashboard-nodeenv}/bin/npm" +- COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv} +- COMMAND ${mgr-dashboard-nodeenv}/bin/pip install nodeenv +- COMMAND ${mgr-dashboard-nodeenv}/bin/nodeenv -p -n 8.10.0 ++ #COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv} ++ #COMMAND ${mgr-dashboard-nodeenv}/bin/pip install nodeenv ++ #COMMAND ${mgr-dashboard-nodeenv}/bin/nodeenv -p -n 8.10.0 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "dashboard nodeenv is being installed" + ) +@@ -27,7 +27,7 @@ add_custom_target(mgr-dashboard-nodeenv + + add_custom_command( + OUTPUT "${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend/node_modules" +- COMMAND . ${mgr-dashboard-nodeenv}/bin/activate && npm install && deactivate ++ #COMMAND . ${mgr-dashboard-nodeenv}/bin/activate && npm install && deactivate + DEPENDS frontend/package.json + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend + COMMENT "dashboard frontend dependencies are being installed" +@@ -62,9 +62,11 @@ else() + set(npm_command npm run build) + endif() + ++LIST(APPEND CMAKE_PROGRAM_PATH ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend/node_modules/.bin) ++ + add_custom_command( + OUTPUT "${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend/dist" +- COMMAND . ${mgr-dashboard-nodeenv}/bin/activate && ${npm_command} && deactivate ++ COMMAND PREFIX="${CMAKE_SOURCE_DIR}" ${npm_command} + DEPENDS ${frontend_src} frontend/node_modules + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend + COMMENT "dashboard frontend is being created" diff --git a/sys-cluster/ceph/files/ceph-13.2.2-dont-install-sysvinit-script.patch b/sys-cluster/ceph/files/ceph-13.2.2-dont-install-sysvinit-script.patch new file mode 100644 index 0000000..4fbc8b6 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-13.2.2-dont-install-sysvinit-script.patch @@ -0,0 +1,15 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 874eabfaa1..e337f4cf8e 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -601,10 +601,6 @@ install(PROGRAMS + ${CMAKE_SOURCE_DIR}/src/ceph-run + ${CMAKE_SOURCE_DIR}/src/ceph-clsinfo + DESTINATION bin) +-install(PROGRAMS +- ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/init-ceph +- DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/init.d +- RENAME ceph) + + install(FILES + ${CMAKE_SOURCE_DIR}/share/id_rsa_drop.ceph.com diff --git a/sys-cluster/ceph/files/ceph-13.2.5-armv7a_increase_largest_singleton.patch b/sys-cluster/ceph/files/ceph-13.2.5-armv7a_increase_largest_singleton.patch new file mode 100644 index 0000000..5e1b71f --- /dev/null +++ b/sys-cluster/ceph/files/ceph-13.2.5-armv7a_increase_largest_singleton.patch @@ -0,0 +1,12 @@ +diff -Naur ceph-13.2.5-orig/src/common/ceph_context.h ceph-13.2.5/src/common/ceph_context.h +--- ceph-13.2.5-orig/src/common/ceph_context.h 2019-03-12 17:48:03.000000000 +0100 ++++ ceph-13.2.5/src/common/ceph_context.h 2019-04-16 16:26:29.000000000 +0200 +@@ -144,7 +144,7 @@ + void do_command(std::string_view command, const cmdmap_t& cmdmap, + std::string_view format, ceph::bufferlist *out); + +- static constexpr std::size_t largest_singleton = sizeof(void*) * 72; ++ static constexpr std::size_t largest_singleton = sizeof(void*) * 128; + + template + T& lookup_or_create_singleton_object(std::string_view name, diff --git a/sys-cluster/ceph/files/ceph-13.2.5-boost-get-static-assert-fix.patch b/sys-cluster/ceph/files/ceph-13.2.5-boost-get-static-assert-fix.patch new file mode 100644 index 0000000..7f090de Binary files /dev/null and b/sys-cluster/ceph/files/ceph-13.2.5-boost-get-static-assert-fix.patch differ diff --git a/sys-cluster/ceph/files/ceph-13.2.5-concrete-minmax64.patch b/sys-cluster/ceph/files/ceph-13.2.5-concrete-minmax64.patch new file mode 100644 index 0000000..bffa133 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-13.2.5-concrete-minmax64.patch @@ -0,0 +1,45 @@ +diff -Naur ceph-13.2.5-orig/src/mon/OSDMonitor.cc ceph-13.2.5/src/mon/OSDMonitor.cc +--- ceph-13.2.5-orig/src/mon/OSDMonitor.cc 2019-03-12 17:48:03.000000000 +0100 ++++ ceph-13.2.5/src/mon/OSDMonitor.cc 2019-04-18 22:46:05.000000000 +0200 +@@ -821,7 +821,7 @@ + << " modified " << p->second.modified + << " [" << p->second.start << "-" << p->second.end << ")" + << dendl; +- int n = std::min(max - pending_creatings.pgs.size(), ++ int n = std::min(max - pending_creatings.pgs.size(), + p->second.end - p->second.start); + ps_t first = p->second.start; + ps_t end = first + n; +diff -Naur ceph-13.2.5-orig/src/os/bluestore/BlueStore.cc ceph-13.2.5/src/os/bluestore/BlueStore.cc +--- ceph-13.2.5-orig/src/os/bluestore/BlueStore.cc 2019-03-12 17:48:03.000000000 +0100 ++++ ceph-13.2.5/src/os/bluestore/BlueStore.cc 2019-04-18 22:44:28.000000000 +0200 +@@ -12577,7 +12577,7 @@ + if (e.second == 0) { + continue; + } +- size_t pos = max(e.first / granularity, prev_pos); ++ size_t pos = max(e.first / granularity, prev_pos); + size_t end_pos = 1 + (e.first + e.second - 1) / granularity; + while (pos != npos && pos < end_pos) { + ceph_assert( collections_bfs[pos].element_count() == +diff -Naur ceph-13.2.5-orig/src/osd/PrimaryLogPG.cc ceph-13.2.5/src/osd/PrimaryLogPG.cc +--- ceph-13.2.5-orig/src/osd/PrimaryLogPG.cc 2019-03-12 17:48:03.000000000 +0100 ++++ ceph-13.2.5/src/osd/PrimaryLogPG.cc 2019-04-18 22:46:05.000000000 +0200 +@@ -1626,7 +1626,7 @@ + if (limit != eversion_t() && + limit != pg_trim_to && + pg_log.get_log().approx_size() > target) { +- size_t num_to_trim = std::min(pg_log.get_log().approx_size() - target, ++ size_t num_to_trim = std::min(pg_log.get_log().approx_size() - target, + cct->_conf->osd_pg_log_trim_max); + if (num_to_trim < cct->_conf->osd_pg_log_trim_min && + cct->_conf->osd_pg_log_trim_max >= cct->_conf->osd_pg_log_trim_min) { +@@ -1672,7 +1672,7 @@ + pg_log.get_log().approx_size() > target) { + dout(10) << __func__ << " approx pg log length = " + << pg_log.get_log().approx_size() << dendl; +- size_t num_to_trim = std::min(pg_log.get_log().approx_size() - target, ++ size_t num_to_trim = std::min(pg_log.get_log().approx_size() - target, + cct->_conf->osd_pg_log_trim_max); + dout(10) << __func__ << " num_to_trim = " << num_to_trim << dendl; + if (num_to_trim < cct->_conf->osd_pg_log_trim_min && diff --git a/sys-cluster/ceph/files/ceph-13.2.5-no-automagic-deps.patch b/sys-cluster/ceph/files/ceph-13.2.5-no-automagic-deps.patch new file mode 100644 index 0000000..1eb42b3 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-13.2.5-no-automagic-deps.patch @@ -0,0 +1,37 @@ +--- ceph-13.2.5.orig/src/rocksdb/CMakeLists.txt 2019-03-20 11:39:25.065954652 -0700 ++++ ceph-13.2.5/src/rocksdb/CMakeLists.txt 2019-03-20 13:18:01.548085828 -0700 +@@ -286,18 +286,24 @@ + endif() + endif() + +-find_package(NUMA) +-if(NUMA_FOUND) +- add_definitions(-DNUMA) +- include_directories(${NUMA_INCLUDE_DIR}) +- list(APPEND THIRDPARTY_LIBS ${NUMA_LIBRARIES}) ++option(WITH_NUMA "build with UBSAN" OFF) ++if(WITH_NUMA) ++ find_package(NUMA) ++ if(NUMA_FOUND) ++ add_definitions(-DNUMA) ++ include_directories(${NUMA_INCLUDE_DIR}) ++ list(APPEND THIRDPARTY_LIBS ${NUMA_LIBRARIES}) ++ endif() + endif() + +-find_package(TBB) +-if(TBB_FOUND) +- add_definitions(-DTBB) +- include_directories(${TBB_INCLUDE_DIR}) +- list(APPEND THIRDPARTY_LIBS ${TBB_LIBRARIES}) ++option(WITH_TBB "build with UBSAN" OFF) ++if(WITH_TBB) ++ find_package(TBB) ++ if(TBB_FOUND) ++ add_definitions(-DTBB) ++ include_directories(${TBB_INCLUDE_DIR}) ++ list(APPEND THIRDPARTY_LIBS ${TBB_LIBRARIES}) ++ endif() + endif() + + # Used to run CI build and tests so we can run faster diff --git a/sys-cluster/ceph/files/ceph-13.2.5-size_t-initializer.patch b/sys-cluster/ceph/files/ceph-13.2.5-size_t-initializer.patch new file mode 100644 index 0000000..c97a986 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-13.2.5-size_t-initializer.patch @@ -0,0 +1,12 @@ +diff -Naur ceph-13.2.5-orig/src/rgw/rgw_sync_log_trim.cc ceph-13.2.5/src/rgw/rgw_sync_log_trim.cc +--- ceph-13.2.5-orig/src/rgw/rgw_sync_log_trim.cc 2019-03-12 17:48:03.000000000 +0100 ++++ ceph-13.2.5/src/rgw/rgw_sync_log_trim.cc 2019-04-19 11:30:48.000000000 +0200 +@@ -351,7 +351,7 @@ + status->clear(); + // The initialisation below is required to silence a false positive + // -Wmaybe-uninitialized warning +- boost::optional num_shards = boost::make_optional(false, 0UL); ++ boost::optional num_shards = boost::make_optional(false, (size_t)0); + for (auto peer = first; peer != last; ++peer) { + const size_t peer_shards = peer->size(); + if (!num_shards) { diff --git a/sys-cluster/ceph/files/ceph-13.2.6-arm32-build.patch b/sys-cluster/ceph/files/ceph-13.2.6-arm32-build.patch new file mode 100644 index 0000000..89d197c --- /dev/null +++ b/sys-cluster/ceph/files/ceph-13.2.6-arm32-build.patch @@ -0,0 +1,80 @@ +diff -Naur ceph-13.2.6/work/ceph-13.2.6/src/CMakeLists.txt ceph-13.2.6-success/work/ceph-13.2.6/src/CMakeLists.txt +--- ceph-13.2.6/work/ceph-13.2.6/src/CMakeLists.txt 2019-06-03 17:18:57.000000000 +0200 ++++ ceph-13.2.6-success/work/ceph-13.2.6/src/CMakeLists.txt 2019-07-14 18:46:05.524767854 +0200 +@@ -24,6 +24,7 @@ + add_definitions("-DCEPH_PKGLIBDIR=\"${CMAKE_INSTALL_FULL_PKGLIBDIR}\"") + add_definitions("-DHAVE_CONFIG_H -D__CEPH__ -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS") + add_definitions("-D_FILE_OFFSET_BITS=64") ++add_definitions("-DBOOST_VARIANT_USE_RELAXED_GET_BY_DEFAULT") + if(LINUX) + add_definitions("-D_GNU_SOURCE") + endif() +diff -Naur ceph-13.2.6/work/ceph-13.2.6/src/common/ceph_context.h ceph-13.2.6-success/work/ceph-13.2.6/src/common/ceph_context.h +--- ceph-13.2.6/work/ceph-13.2.6/src/common/ceph_context.h 2019-06-03 17:18:57.000000000 +0200 ++++ ceph-13.2.6-success/work/ceph-13.2.6/src/common/ceph_context.h 2019-07-14 08:58:01.950546863 +0200 +@@ -144,7 +144,7 @@ + void do_command(std::string_view command, const cmdmap_t& cmdmap, + std::string_view format, ceph::bufferlist *out); + +- static constexpr std::size_t largest_singleton = sizeof(void*) * 72; ++ static constexpr std::size_t largest_singleton = sizeof(void*) * 144; + + template + T& lookup_or_create_singleton_object(std::string_view name, +diff -Naur ceph-13.2.6/work/ceph-13.2.6/src/mon/OSDMonitor.cc ceph-13.2.6-success/work/ceph-13.2.6/src/mon/OSDMonitor.cc +--- ceph-13.2.6/work/ceph-13.2.6/src/mon/OSDMonitor.cc 2019-06-03 17:18:57.000000000 +0200 ++++ ceph-13.2.6-success/work/ceph-13.2.6/src/mon/OSDMonitor.cc 2019-07-14 15:00:30.032429503 +0200 +@@ -821,7 +821,7 @@ + << " modified " << p->second.modified + << " [" << p->second.start << "-" << p->second.end << ")" + << dendl; +- int n = std::min(max - pending_creatings.pgs.size(), ++ int n = std::min((uint64_t)(max - pending_creatings.pgs.size()), + p->second.end - p->second.start); + ps_t first = p->second.start; + ps_t end = first + n; +diff -Naur ceph-13.2.6/work/ceph-13.2.6/src/os/bluestore/BlueStore.cc ceph-13.2.6-success/work/ceph-13.2.6/src/os/bluestore/BlueStore.cc +--- ceph-13.2.6/work/ceph-13.2.6/src/os/bluestore/BlueStore.cc 2019-06-03 17:18:57.000000000 +0200 ++++ ceph-13.2.6-success/work/ceph-13.2.6/src/os/bluestore/BlueStore.cc 2019-07-15 06:08:24.938166321 +0200 +@@ -12569,7 +12569,7 @@ + if (e.second == 0) { + continue; + } +- size_t pos = max(e.first / granularity, prev_pos); ++ size_t pos = max(e.first / granularity, (long long unsigned int&)prev_pos); + size_t end_pos = 1 + (e.first + e.second - 1) / granularity; + while (pos != npos && pos < end_pos) { + ceph_assert( collections_bfs[pos].element_count() == +diff -Naur ceph-13.2.6/work/ceph-13.2.6/src/osd/PrimaryLogPG.cc ceph-13.2.6-success/work/ceph-13.2.6/src/osd/PrimaryLogPG.cc +--- ceph-13.2.6/work/ceph-13.2.6/src/osd/PrimaryLogPG.cc 2019-06-03 17:18:57.000000000 +0200 ++++ ceph-13.2.6-success/work/ceph-13.2.6/src/osd/PrimaryLogPG.cc 2019-07-14 16:24:48.346295044 +0200 +@@ -1626,7 +1626,7 @@ + if (limit != eversion_t() && + limit != pg_trim_to && + pg_log.get_log().approx_size() > target) { +- size_t num_to_trim = std::min(pg_log.get_log().approx_size() - target, ++ size_t num_to_trim = std::min((uint64_t)(pg_log.get_log().approx_size() - target), + cct->_conf->osd_pg_log_trim_max); + if (num_to_trim < cct->_conf->osd_pg_log_trim_min && + cct->_conf->osd_pg_log_trim_max >= cct->_conf->osd_pg_log_trim_min) { +@@ -1672,7 +1672,7 @@ + pg_log.get_log().approx_size() > target) { + dout(10) << __func__ << " approx pg log length = " + << pg_log.get_log().approx_size() << dendl; +- size_t num_to_trim = std::min(pg_log.get_log().approx_size() - target, ++ size_t num_to_trim = std::min((uint64_t)(pg_log.get_log().approx_size() - target), + cct->_conf->osd_pg_log_trim_max); + dout(10) << __func__ << " num_to_trim = " << num_to_trim << dendl; + if (num_to_trim < cct->_conf->osd_pg_log_trim_min && +diff -Naur ceph-13.2.6/work/ceph-13.2.6/src/rgw/rgw_sync_log_trim.cc ceph-13.2.6-success/work/ceph-13.2.6/src/rgw/rgw_sync_log_trim.cc +--- ceph-13.2.6/work/ceph-13.2.6/src/rgw/rgw_sync_log_trim.cc 2019-06-03 17:18:57.000000000 +0200 ++++ ceph-13.2.6-success/work/ceph-13.2.6/src/rgw/rgw_sync_log_trim.cc 2019-07-15 16:34:38.795259035 +0200 +@@ -351,7 +351,7 @@ + status->clear(); + // The initialisation below is required to silence a false positive + // -Wmaybe-uninitialized warning +- boost::optional num_shards = boost::make_optional(false, 0UL); ++ boost::optional num_shards = boost::make_optional(false, 0U); + for (auto peer = first; peer != last; ++peer) { + const size_t peer_shards = peer->size(); + if (!num_shards) { diff --git a/sys-cluster/ceph/files/ceph-13.2.6-dpdk-alignment.patch b/sys-cluster/ceph/files/ceph-13.2.6-dpdk-alignment.patch new file mode 100644 index 0000000..c5d048e --- /dev/null +++ b/sys-cluster/ceph/files/ceph-13.2.6-dpdk-alignment.patch @@ -0,0 +1,14 @@ +diff --git a/src/spdk/dpdk/lib/librte_net/rte_ether.h b/src/spdk/dpdk/lib/librte_net/rte_ether.h +index 3a87ff184..8090b7c01 100644 +--- a/src/spdk/dpdk/lib/librte_net/rte_ether.h ++++ b/src/spdk/dpdk/lib/librte_net/rte_ether.h +@@ -55,7 +55,8 @@ extern "C" { + * See http://standards.ieee.org/regauth/groupmac/tutorial.html + */ + struct ether_addr { +- uint8_t addr_bytes[ETHER_ADDR_LEN]; /**< Addr bytes in tx order */ ++ /** Addr bytes in tx order */ ++ uint8_t addr_bytes[ETHER_ADDR_LEN] __rte_aligned(2); + } __attribute__((__packed__)); + + #define ETHER_LOCAL_ADMIN_ADDR 0x02 /**< Locally assigned Eth. address. */ diff --git a/sys-cluster/ceph/files/ceph-13.2.6-no-virtualenvs.patch b/sys-cluster/ceph/files/ceph-13.2.6-no-virtualenvs.patch new file mode 100644 index 0000000..ad38799 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-13.2.6-no-virtualenvs.patch @@ -0,0 +1,74 @@ +diff --git a/src/ceph-detect-init/CMakeLists.txt b/src/ceph-detect-init/CMakeLists.txt +index 6e5946b784..233cccfc9b 100644 +--- a/src/ceph-detect-init/CMakeLists.txt ++++ b/src/ceph-detect-init/CMakeLists.txt +@@ -2,8 +2,8 @@ set(CEPH_DETECT_INIT_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-detect-init-virtua + + add_custom_target(ceph-detect-init + COMMAND +- ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=python2.7 ${CEPH_DETECT_INIT_VIRTUALENV} && +- ${CEPH_DETECT_INIT_VIRTUALENV}/bin/pip install --no-index --find-links=file:${CMAKE_SOURCE_DIR}/src/ceph-detect-init/wheelhouse -e . ++ #${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=python2.7 ${CEPH_DETECT_INIT_VIRTUALENV} && ++ #${CEPH_DETECT_INIT_VIRTUALENV}/bin/pip install --no-index --find-links=file:${CMAKE_SOURCE_DIR}/src/ceph-detect-init/wheelhouse -e . + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-detect-init + COMMENT "ceph-detect-init is being created") + add_dependencies(tests ceph-detect-init) +diff --git a/src/ceph-disk/CMakeLists.txt b/src/ceph-disk/CMakeLists.txt +index 00aaec4a80..b0700c488f 100644 +--- a/src/ceph-disk/CMakeLists.txt ++++ b/src/ceph-disk/CMakeLists.txt +@@ -2,8 +2,8 @@ set(CEPH_DISK_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-disk-virtualenv) + + add_custom_target(ceph-disk + COMMAND +- ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=python2.7 ${CEPH_DISK_VIRTUALENV} && +- ${CEPH_DISK_VIRTUALENV}/bin/pip install --no-index --find-links=file:${CMAKE_SOURCE_DIR}/src/ceph-disk/wheelhouse -e . ++ #${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=python2.7 ${CEPH_DISK_VIRTUALENV} && ++ #${CEPH_DISK_VIRTUALENV}/bin/pip install --no-index --find-links=file:${CMAKE_SOURCE_DIR}/src/ceph-disk/wheelhouse -e . + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-disk + COMMENT "ceph-disk is being created") + add_dependencies(tests ceph-disk) +diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt +index 88ca8a60bb..77c716cdb1 100644 +--- a/src/pybind/mgr/dashboard/CMakeLists.txt ++++ b/src/pybind/mgr/dashboard/CMakeLists.txt +@@ -2,7 +2,7 @@ set(MGR_DASHBOARD_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/mgr-dashboard-virtualenv) + + add_custom_target(mgr-dashboard-test-venv + COMMAND +- ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${MGR_DASHBOARD_VIRTUALENV} ++ #${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${MGR_DASHBOARD_VIRTUALENV} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard + COMMENT "dashboard tests virtualenv is being created") + add_dependencies(tests mgr-dashboard-test-venv) +@@ -13,9 +13,6 @@ set(mgr-dashboard-nodeenv ${CMAKE_CURRENT_BINARY_DIR}/node-env) + + add_custom_command( + OUTPUT "${mgr-dashboard-nodeenv}/bin/npm" +- COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv} +- COMMAND ${mgr-dashboard-nodeenv}/bin/pip install nodeenv +- COMMAND ${mgr-dashboard-nodeenv}/bin/nodeenv -p -n 10.13.0 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "dashboard nodeenv is being installed" + ) +@@ -27,7 +24,6 @@ add_custom_target(mgr-dashboard-nodeenv + + add_custom_command( + OUTPUT "${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend/node_modules" +- COMMAND . ${mgr-dashboard-nodeenv}/bin/activate && npm ci && deactivate + DEPENDS frontend/package.json + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend + COMMENT "dashboard frontend dependencies are being installed" +@@ -62,9 +58,11 @@ else() + set(npm_command npm run build) + endif() + ++LIST(APPEND CMAKE_PROGRAM_PATH ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend/node_modules/.bin) ++ + add_custom_command( + OUTPUT "${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend/dist" +- COMMAND . ${mgr-dashboard-nodeenv}/bin/activate && ${npm_command} && deactivate ++ COMMAND PREFIX="${CMAKE_SOURCE_DIR}" ${npm_command} + DEPENDS ${frontend_src} frontend/node_modules + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend + COMMENT "dashboard frontend is being created" diff --git a/sys-cluster/ceph/files/ceph-14.2.0-boost-1.70-sonames.patch b/sys-cluster/ceph/files/ceph-14.2.0-boost-1.70-sonames.patch new file mode 100644 index 0000000..6d71200 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.0-boost-1.70-sonames.patch @@ -0,0 +1,321 @@ +diff --git a/cmake/modules/FindBoost.cmake b/cmake/modules/FindBoost.cmake +index bfab4ca436..90ed0cbb17 100644 +--- a/cmake/modules/FindBoost.cmake ++++ b/cmake/modules/FindBoost.cmake +@@ -1181,10 +1181,10 @@ endif() + # on all platforms to keep end user code free from platform dependent + # code. Also provide convenience targets to disable autolinking and + # enable dynamic linking. +-if(NOT TARGET Boost::diagnostic_definitions) +- add_library(Boost::diagnostic_definitions INTERFACE IMPORTED) +- add_library(Boost::disable_autolinking INTERFACE IMPORTED) +- add_library(Boost::dynamic_linking INTERFACE IMPORTED) ++if(NOT TARGET boost_diagnostic_definitions) ++ add_library(boost_diagnostic_definitions INTERFACE IMPORTED) ++ add_library(boost_disable_autolinking INTERFACE IMPORTED) ++ add_library(boost_dynamic_linking INTERFACE IMPORTED) + endif() + if(WIN32) + # In windows, automatic linking is performed, so you do not have +@@ -1205,11 +1205,11 @@ if(WIN32) + # code to emit a #pragma message each time a library is selected + # for linking. + set(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC") +- set_target_properties(Boost::diagnostic_definitions PROPERTIES ++ set_target_properties(boost_diagnostic_definitions PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_LIB_DIAGNOSTIC") +- set_target_properties(Boost::disable_autolinking PROPERTIES ++ set_target_properties(boost_disable_autolinking PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB") +- set_target_properties(Boost::dynamic_linking PROPERTIES ++ set_target_properties(boost_dynamic_linking PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_DYN_LINK") + endif() + +@@ -2018,52 +2018,52 @@ if(Boost_FOUND) + endif() + + foreach(COMPONENT ${Boost_FIND_COMPONENTS}) +- if(_Boost_IMPORTED_TARGETS AND NOT TARGET Boost::${COMPONENT}) ++ if(_Boost_IMPORTED_TARGETS AND NOT TARGET boost_${COMPONENT}) + string(TOUPPER ${COMPONENT} UPPERCOMPONENT) + if(Boost_${UPPERCOMPONENT}_FOUND) + if(Boost_USE_STATIC_LIBS) +- add_library(Boost::${COMPONENT} STATIC IMPORTED) ++ add_library(boost_${COMPONENT} STATIC IMPORTED) + else() + # Even if Boost_USE_STATIC_LIBS is OFF, we might have static + # libraries as a result. +- add_library(Boost::${COMPONENT} UNKNOWN IMPORTED) ++ add_library(boost_${COMPONENT} UNKNOWN IMPORTED) + endif() + if(Boost_INCLUDE_DIRS) +- set_target_properties(Boost::${COMPONENT} PROPERTIES ++ set_target_properties(boost_${COMPONENT} PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}") + endif() + if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY}") +- set_target_properties(Boost::${COMPONENT} PROPERTIES ++ set_target_properties(boost_${COMPONENT} PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" + IMPORTED_LOCATION "${Boost_${UPPERCOMPONENT}_LIBRARY}") + endif() + if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE}") +- set_property(TARGET Boost::${COMPONENT} APPEND PROPERTY ++ set_property(TARGET boost_${COMPONENT} APPEND PROPERTY + IMPORTED_CONFIGURATIONS RELEASE) +- set_target_properties(Boost::${COMPONENT} PROPERTIES ++ set_target_properties(boost_${COMPONENT} PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" + IMPORTED_LOCATION_RELEASE "${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE}") + endif() + if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG}") +- set_property(TARGET Boost::${COMPONENT} APPEND PROPERTY ++ set_property(TARGET boost_${COMPONENT} APPEND PROPERTY + IMPORTED_CONFIGURATIONS DEBUG) +- set_target_properties(Boost::${COMPONENT} PROPERTIES ++ set_target_properties(boost_${COMPONENT} PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX" + IMPORTED_LOCATION_DEBUG "${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG}") + endif() + if(_Boost_${UPPERCOMPONENT}_DEPENDENCIES) + unset(_Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES) + foreach(dep ${_Boost_${UPPERCOMPONENT}_DEPENDENCIES}) +- list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES Boost::${dep}) ++ list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES boost_${dep}) + endforeach() + if(COMPONENT STREQUAL "thread") + list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES Threads::Threads) + endif() +- set_target_properties(Boost::${COMPONENT} PROPERTIES ++ set_target_properties(boost_${COMPONENT} PROPERTIES + INTERFACE_LINK_LIBRARIES "${_Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES}") + endif() + if(_Boost_${UPPERCOMPONENT}_COMPILER_FEATURES) +- set_target_properties(Boost::${COMPONENT} PROPERTIES ++ set_target_properties(boost_${COMPONENT} PROPERTIES + INTERFACE_COMPILE_FEATURES "${_Boost_${UPPERCOMPONENT}_COMPILER_FEATURES}") + endif() + endif() +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 1b1f19d464..21c222280f 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -353,12 +353,12 @@ set(ceph_common_objs + set(ceph_common_deps + json_spirit erasure_code arch crc32 + ${LIB_RESOLV} +- Boost::thread +- Boost::system +- Boost::random +- Boost::program_options +- Boost::date_time +- Boost::iostreams ++ boost_thread ++ boost_system ++ boost_random ++ boost_program_options ++ boost_date_time ++ boost_iostreams + ${BLKID_LIBRARIES} + ${Backtrace_LIBRARIES} + ${BLKIN_LIBRARIES} +@@ -518,7 +518,7 @@ if (WITH_CEPHFS) + ceph_mds.cc) + add_executable(ceph-mds ${ceph_mds_srcs}) + target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static ceph-common +- Boost::thread) ++ boost_thread) + install(TARGETS ceph-mds DESTINATION bin) + endif() + +diff --git a/src/crimson/CMakeLists.txt b/src/crimson/CMakeLists.txt +index d7b58521d4..e1533af33f 100644 +--- a/src/crimson/CMakeLists.txt ++++ b/src/crimson/CMakeLists.txt +@@ -106,8 +106,8 @@ target_link_libraries(crimson-common + PRIVATE + crc32 + crimson::cflags +- Boost::iostreams +- Boost::random ++ boost_iostreams ++ boost_random + ${NSS_LIBRARIES} ${NSPR_LIBRARIES} OpenSSL::Crypto) + + set(crimson_auth_srcs +diff --git a/src/mgr/CMakeLists.txt b/src/mgr/CMakeLists.txt +index 252fb3e5e3..213482da16 100644 +--- a/src/mgr/CMakeLists.txt ++++ b/src/mgr/CMakeLists.txt +@@ -26,7 +26,7 @@ target_include_directories(ceph-mgr SYSTEM PRIVATE "${PYTHON_INCLUDE_DIRS}") + target_link_libraries(ceph-mgr + osdc client heap_profiler + global-static ceph-common +- Boost::python${MGR_PYTHON_VERSION_MAJOR}${MGR_PYTHON_VERSION_MINOR} ++ boost_python${MGR_PYTHON_VERSION_MAJOR}${MGR_PYTHON_VERSION_MINOR} + ${MGR_PYTHON_LIBRARIES} ${CMAKE_DL_LIBS} ${GSSAPI_LIBRARIES}) + set_target_properties(ceph-mgr PROPERTIES + POSITION_INDEPENDENT_CODE ${EXE_LINKER_USE_PIE}) +diff --git a/src/rbd_replay/CMakeLists.txt b/src/rbd_replay/CMakeLists.txt +index e9d3804c5f..5c6eb58de1 100644 +--- a/src/rbd_replay/CMakeLists.txt ++++ b/src/rbd_replay/CMakeLists.txt +@@ -36,7 +36,7 @@ if(HAVE_BABELTRACE) + global + babeltrace + babeltrace-ctf +- Boost::date_time ++ boost_date_time + ) + install(TARGETS rbd-replay-prep DESTINATION bin) + endif(HAVE_BABELTRACE) +diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt +index ccc4f74cfe..854aa6e5e9 100644 +--- a/src/rgw/CMakeLists.txt ++++ b/src/rgw/CMakeLists.txt +@@ -199,7 +199,7 @@ if(WITH_CURL_OPENSSL) + endif() + + if(WITH_BOOST_CONTEXT) +- target_link_libraries(rgw_a PRIVATE Boost::coroutine Boost::context) ++ target_link_libraries(rgw_a PRIVATE boost_coroutine boost_context) + endif() + + set(rgw_libs rgw_a) +@@ -341,7 +341,7 @@ if(WITH_RADOSGW_AMQP_ENDPOINT) + target_link_libraries(rgw_admin_user PRIVATE RabbitMQ::RabbitMQ) + endif() + if(WITH_BOOST_CONTEXT) +- target_link_libraries(rgw_admin_user PRIVATE Boost::coroutine Boost::context) ++ target_link_libraries(rgw_admin_user PRIVATE boost_coroutine boost_context) + endif() + + if(WITH_TESTS) +diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt +index 20a64fd41b..a8bb323614 100644 +--- a/src/test/CMakeLists.txt ++++ b/src/test/CMakeLists.txt +@@ -158,7 +158,7 @@ add_executable(ceph_omapbench + ) + target_link_libraries(ceph_omapbench + librados +- Boost::program_options ++ boost_program_options + global + ${BLKID_LIBRARIES} + ${CMAKE_DL_LIBS} +diff --git a/src/test/common/CMakeLists.txt b/src/test/common/CMakeLists.txt +index 71fb77cda9..aff8fb6565 100644 +--- a/src/test/common/CMakeLists.txt ++++ b/src/test/common/CMakeLists.txt +@@ -315,8 +315,8 @@ add_ceph_unittest(unittest_hobject) + + add_executable(unittest_async_completion test_async_completion.cc) + add_ceph_unittest(unittest_async_completion) +-target_link_libraries(unittest_async_completion Boost::system) ++target_link_libraries(unittest_async_completion boost_system) + + add_executable(unittest_async_shared_mutex test_async_shared_mutex.cc) + add_ceph_unittest(unittest_async_shared_mutex) +-target_link_libraries(unittest_async_shared_mutex ceph-common Boost::system) ++target_link_libraries(unittest_async_shared_mutex ceph-common boost_system) +diff --git a/src/test/erasure-code/CMakeLists.txt b/src/test/erasure-code/CMakeLists.txt +index 721f6c3675..1cd9635c77 100644 +--- a/src/test/erasure-code/CMakeLists.txt ++++ b/src/test/erasure-code/CMakeLists.txt +@@ -2,15 +2,15 @@ + add_executable(ceph_erasure_code_benchmark + ${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc + ceph_erasure_code_benchmark.cc) +-target_link_libraries(ceph_erasure_code_benchmark ceph-common Boost::program_options global ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph_erasure_code_benchmark ceph-common boost_program_options global ${CMAKE_DL_LIBS}) + install(TARGETS ceph_erasure_code_benchmark + DESTINATION bin) + + add_executable(ceph_erasure_code_non_regression ceph_erasure_code_non_regression.cc) +-target_link_libraries(ceph_erasure_code_non_regression ceph-common Boost::program_options global ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph_erasure_code_non_regression ceph-common boost_program_options global ${CMAKE_DL_LIBS}) + + add_executable(ceph_erasure_code ceph_erasure_code.cc) +-target_link_libraries(ceph_erasure_code ceph-common Boost::program_options global ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph_erasure_code ceph-common boost_program_options global ${CMAKE_DL_LIBS}) + install(TARGETS ceph_erasure_code + DESTINATION bin) + +diff --git a/src/test/librados/CMakeLists.txt b/src/test/librados/CMakeLists.txt +index 4fc53d2406..e6304394f8 100644 +--- a/src/test/librados/CMakeLists.txt ++++ b/src/test/librados/CMakeLists.txt +@@ -62,7 +62,7 @@ add_executable(ceph_test_rados_api_asio asio.cc) + target_link_libraries(ceph_test_rados_api_asio global + librados ${UNITTEST_LIBS}) + if(WITH_BOOST_CONTEXT) +- target_link_libraries(ceph_test_rados_api_asio Boost::coroutine Boost::context) ++ target_link_libraries(ceph_test_rados_api_asio boost_coroutine boost_context) + endif() + + add_executable(ceph_test_rados_api_list +@@ -132,7 +132,7 @@ add_executable(ceph_test_rados_api_tier_pp + tier_cxx.cc + $) + target_link_libraries(ceph_test_rados_api_tier_pp +- librados global ${UNITTEST_LIBS} Boost::system radostest-cxx) ++ librados global ${UNITTEST_LIBS} boost_system radostest-cxx) + + add_executable(ceph_test_rados_api_snapshots + snapshots.cc) +diff --git a/src/test/librbd/CMakeLists.txt b/src/test/librbd/CMakeLists.txt +index 2bf6723c40..e99b8afa11 100644 +--- a/src/test/librbd/CMakeLists.txt ++++ b/src/test/librbd/CMakeLists.txt +@@ -27,7 +27,7 @@ target_link_libraries(rbd_test PRIVATE + radostest + radostest-cxx + librados +- Boost::thread ++ boost_thread + GMock::GMock + GTest::GTest) + +diff --git a/src/test/rgw/CMakeLists.txt b/src/test/rgw/CMakeLists.txt +index 9b2c6b6321..80e4cb7829 100644 +--- a/src/test/rgw/CMakeLists.txt ++++ b/src/test/rgw/CMakeLists.txt +@@ -143,7 +143,7 @@ add_ceph_unittest(unittest_rgw_dmclock_scheduler) + target_link_libraries(unittest_rgw_dmclock_scheduler ${rgw_libs} dmclock) + if(WITH_BOOST_CONTEXT) + target_compile_definitions(unittest_rgw_dmclock_scheduler PRIVATE BOOST_COROUTINES_NO_DEPRECATION_WARNING) +- target_link_libraries(unittest_rgw_dmclock_scheduler Boost::coroutine Boost::context) ++ target_link_libraries(unittest_rgw_dmclock_scheduler boost_coroutine boost_context) + endif() + + if(WITH_RADOSGW_AMQP_ENDPOINT) +diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt +index d31f3d2408..6945018b11 100644 +--- a/src/tools/CMakeLists.txt ++++ b/src/tools/CMakeLists.txt +@@ -35,20 +35,20 @@ install(PROGRAMS + endif(WITH_TESTS) + + add_executable(ceph-osdomap-tool ceph_osdomap_tool.cc) +-target_link_libraries(ceph-osdomap-tool os global Boost::program_options) ++target_link_libraries(ceph-osdomap-tool os global boost_program_options) + install(TARGETS ceph-osdomap-tool DESTINATION bin) + + add_executable(ceph-monstore-tool + ceph_monstore_tool.cc + ../mgr/mgr_commands.cc) +-target_link_libraries(ceph-monstore-tool os global Boost::program_options) ++target_link_libraries(ceph-monstore-tool os global boost_program_options) + install(TARGETS ceph-monstore-tool DESTINATION bin) + + add_executable(ceph-objectstore-tool + ceph_objectstore_tool.cc + rebuild_mondb.cc + RadosDump.cc) +-target_link_libraries(ceph-objectstore-tool osd os global Boost::program_options ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph-objectstore-tool osd os global boost_program_options ${CMAKE_DL_LIBS}) + if(WITH_FUSE) + target_link_libraries(ceph-objectstore-tool ${FUSE_LIBRARIES}) + endif(WITH_FUSE) diff --git a/sys-cluster/ceph/files/ceph-14.2.0-boost-1.70.patch b/sys-cluster/ceph/files/ceph-14.2.0-boost-1.70.patch new file mode 100644 index 0000000..ce2ee92 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.0-boost-1.70.patch @@ -0,0 +1,120 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f97f96b5bf..f5e5d06d35 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -657,13 +657,13 @@ if(WITH_SYSTEM_BOOST) + if(BOOST_ROOT AND CMAKE_LIBRARY_ARCHITECTURE) + set(BOOST_LIBRARYDIR "${BOOST_ROOT}/lib/${CMAKE_LIBRARY_ARCHITECTURE}") + endif() +- find_package(Boost 1.67 COMPONENTS ${BOOST_COMPONENTS} REQUIRED) ++ find_package(Boost 1.70 COMPONENTS ${BOOST_COMPONENTS} REQUIRED) + else() + set(BOOST_J 1 CACHE STRING + "max jobs for Boost build") # override w/-DBOOST_J= + set(Boost_USE_STATIC_LIBS ON) + include(BuildBoost) +- build_boost(1.67 ++ build_boost(1.70 + COMPONENTS ${BOOST_COMPONENTS} ${BOOST_HEADER_COMPONENTS}) + endif() + include_directories(BEFORE SYSTEM ${Boost_INCLUDE_DIRS}) +diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake +index f46cc0d485..4254508570 100644 +--- a/cmake/modules/BuildBoost.cmake ++++ b/cmake/modules/BuildBoost.cmake +@@ -137,14 +137,14 @@ function(do_build_boost version) + check_boost_version("${PROJECT_SOURCE_DIR}/src/boost" ${version}) + set(source_dir + SOURCE_DIR "${PROJECT_SOURCE_DIR}/src/boost") +- elseif(version VERSION_GREATER 1.67) ++ elseif(version VERSION_GREATER 1.70) + message(FATAL_ERROR "Unknown BOOST_REQUESTED_VERSION: ${version}") + else() + message(STATUS "boost will be downloaded...") + # NOTE: If you change this version number make sure the package is available + # at the three URLs below (may involve uploading to download.ceph.com) +- set(boost_version 1.67.0) +- set(boost_sha256 2684c972994ee57fc5632e03bf044746f6eb45d4920c343937a465fd67a5adba) ++ set(boost_version 1.70.0) ++ set(boost_sha256 430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778) + string(REPLACE "." "_" boost_version_underscore ${boost_version} ) + set(boost_url + https://dl.bintray.com/boostorg/release/${boost_version}/source/boost_${boost_version_underscore}.tar.bz2) +diff --git a/src/rgw/rgw_asio_frontend.cc b/src/rgw/rgw_asio_frontend.cc +index e4be074ec7..4af3695dc1 100644 +--- a/src/rgw/rgw_asio_frontend.cc ++++ b/src/rgw/rgw_asio_frontend.cc +@@ -81,7 +81,8 @@ class StreamIO : public rgw::asio::ClientIO { + using SharedMutex = ceph::async::SharedMutex; + + template +-void handle_connection(RGWProcessEnv& env, Stream& stream, ++void handle_connection(boost::asio::io_context& context, ++ RGWProcessEnv& env, Stream& stream, + boost::beast::flat_buffer& buffer, bool is_ssl, + SharedMutex& pause_mutex, + rgw::dmclock::Scheduler *scheduler, +@@ -152,7 +153,7 @@ void handle_connection(RGWProcessEnv& env, Stream& stream, + rgw::io::add_conlen_controlling( + &real_client)))); + RGWRestfulIO client(cct, &real_client_io); +- auto y = optional_yield{socket.get_io_context(), yield}; ++ auto y = optional_yield{context, yield}; + process_request(env.store, env.rest, &req, env.uri_prefix, + *env.auth_registry, &client, env.olog, y, scheduler); + } +@@ -560,7 +561,7 @@ void AsioFrontend::accept(Listener& l, boost::system::error_code ec) + return; + } + buffer.consume(bytes); +- handle_connection(env, stream, buffer, true, pause_mutex, ++ handle_connection(context, env, stream, buffer, true, pause_mutex, + scheduler.get(), ec, yield); + if (!ec) { + // ssl shutdown (ignoring errors) +@@ -578,7 +579,7 @@ void AsioFrontend::accept(Listener& l, boost::system::error_code ec) + auto c = connections.add(conn); + boost::beast::flat_buffer buffer; + boost::system::error_code ec; +- handle_connection(env, s, buffer, false, pause_mutex, ++ handle_connection(context, env, s, buffer, false, pause_mutex, + scheduler.get(), ec, yield); + s.shutdown(tcp::socket::shutdown_both, ec); + }); +diff --git a/src/rgw/rgw_dmclock_async_scheduler.h b/src/rgw/rgw_dmclock_async_scheduler.h +index 70487a5253..1d454acd2e 100644 +--- a/src/rgw/rgw_dmclock_async_scheduler.h ++++ b/src/rgw/rgw_dmclock_async_scheduler.h +@@ -82,7 +82,12 @@ class AsyncScheduler : public md_config_obs_t, public Scheduler { + using Completion = async::Completion>; + + using Clock = ceph::coarse_real_clock; ++#if BOOST_VERSION < 107000 + using Timer = boost::asio::basic_waitable_timer; ++#else ++ using Timer = boost::asio::basic_waitable_timer, executor_type>; ++#endif + Timer timer; //< timer for the next scheduled request + + CephContext *const cct; +diff --git a/src/rgw/rgw_reshard.h b/src/rgw/rgw_reshard.h +index d99a6ff68d..213fc238d2 100644 +--- a/src/rgw/rgw_reshard.h ++++ b/src/rgw/rgw_reshard.h +@@ -183,7 +183,14 @@ class RGWReshardWait { + ceph::condition_variable cond; + + struct Waiter : boost::intrusive::list_base_hook<> { +- boost::asio::basic_waitable_timer timer; ++#if BOOST_VERSION < 107000 ++ using Timer = boost::asio::basic_waitable_timer; ++#else ++ using Executor = boost::asio::io_context::executor_type; ++ using Timer = boost::asio::basic_waitable_timer, Executor>; ++#endif ++ Timer timer; + explicit Waiter(boost::asio::io_context& ioc) : timer(ioc) {} + }; + boost::intrusive::list waiters; diff --git a/sys-cluster/ceph/files/ceph-14.2.0-boost-sonames.patch b/sys-cluster/ceph/files/ceph-14.2.0-boost-sonames.patch new file mode 100644 index 0000000..497d595 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.0-boost-sonames.patch @@ -0,0 +1,334 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index dbabecbe97..d12b696bb5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -640,7 +640,7 @@ set(BOOST_HEADER_COMPONENTS container) + + if(WITH_MGR) + list(APPEND BOOST_COMPONENTS +- python${MGR_PYTHON_VERSION_MAJOR}${MGR_PYTHON_VERSION_MINOR}) ++ python-${MGR_PYTHON_VERSION_MAJOR}.${MGR_PYTHON_VERSION_MINOR}) + endif() + if(WITH_BOOST_CONTEXT) + list(APPEND BOOST_COMPONENTS context coroutine) +diff --git a/cmake/modules/FindBoost.cmake b/cmake/modules/FindBoost.cmake +index bfab4ca436..90ed0cbb17 100644 +--- a/cmake/modules/FindBoost.cmake ++++ b/cmake/modules/FindBoost.cmake +@@ -1181,10 +1181,10 @@ endif() + # on all platforms to keep end user code free from platform dependent + # code. Also provide convenience targets to disable autolinking and + # enable dynamic linking. +-if(NOT TARGET Boost::diagnostic_definitions) +- add_library(Boost::diagnostic_definitions INTERFACE IMPORTED) +- add_library(Boost::disable_autolinking INTERFACE IMPORTED) +- add_library(Boost::dynamic_linking INTERFACE IMPORTED) ++if(NOT TARGET boost_diagnostic_definitions) ++ add_library(boost_diagnostic_definitions INTERFACE IMPORTED) ++ add_library(boost_disable_autolinking INTERFACE IMPORTED) ++ add_library(boost_dynamic_linking INTERFACE IMPORTED) + endif() + if(WIN32) + # In windows, automatic linking is performed, so you do not have +@@ -1205,11 +1205,11 @@ if(WIN32) + # code to emit a #pragma message each time a library is selected + # for linking. + set(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC") +- set_target_properties(Boost::diagnostic_definitions PROPERTIES ++ set_target_properties(boost_diagnostic_definitions PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_LIB_DIAGNOSTIC") +- set_target_properties(Boost::disable_autolinking PROPERTIES ++ set_target_properties(boost_disable_autolinking PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB") +- set_target_properties(Boost::dynamic_linking PROPERTIES ++ set_target_properties(boost_dynamic_linking PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_DYN_LINK") + endif() + +@@ -2018,52 +2018,52 @@ if(Boost_FOUND) + endif() + + foreach(COMPONENT ${Boost_FIND_COMPONENTS}) +- if(_Boost_IMPORTED_TARGETS AND NOT TARGET Boost::${COMPONENT}) ++ if(_Boost_IMPORTED_TARGETS AND NOT TARGET boost_${COMPONENT}) + string(TOUPPER ${COMPONENT} UPPERCOMPONENT) + if(Boost_${UPPERCOMPONENT}_FOUND) + if(Boost_USE_STATIC_LIBS) +- add_library(Boost::${COMPONENT} STATIC IMPORTED) ++ add_library(boost_${COMPONENT} STATIC IMPORTED) + else() + # Even if Boost_USE_STATIC_LIBS is OFF, we might have static + # libraries as a result. +- add_library(Boost::${COMPONENT} UNKNOWN IMPORTED) ++ add_library(boost_${COMPONENT} UNKNOWN IMPORTED) + endif() + if(Boost_INCLUDE_DIRS) +- set_target_properties(Boost::${COMPONENT} PROPERTIES ++ set_target_properties(boost_${COMPONENT} PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}") + endif() + if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY}") +- set_target_properties(Boost::${COMPONENT} PROPERTIES ++ set_target_properties(boost_${COMPONENT} PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" + IMPORTED_LOCATION "${Boost_${UPPERCOMPONENT}_LIBRARY}") + endif() + if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE}") +- set_property(TARGET Boost::${COMPONENT} APPEND PROPERTY ++ set_property(TARGET boost_${COMPONENT} APPEND PROPERTY + IMPORTED_CONFIGURATIONS RELEASE) +- set_target_properties(Boost::${COMPONENT} PROPERTIES ++ set_target_properties(boost_${COMPONENT} PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" + IMPORTED_LOCATION_RELEASE "${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE}") + endif() + if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG}") +- set_property(TARGET Boost::${COMPONENT} APPEND PROPERTY ++ set_property(TARGET boost_${COMPONENT} APPEND PROPERTY + IMPORTED_CONFIGURATIONS DEBUG) +- set_target_properties(Boost::${COMPONENT} PROPERTIES ++ set_target_properties(boost_${COMPONENT} PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX" + IMPORTED_LOCATION_DEBUG "${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG}") + endif() + if(_Boost_${UPPERCOMPONENT}_DEPENDENCIES) + unset(_Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES) + foreach(dep ${_Boost_${UPPERCOMPONENT}_DEPENDENCIES}) +- list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES Boost::${dep}) ++ list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES boost_${dep}) + endforeach() + if(COMPONENT STREQUAL "thread") + list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES Threads::Threads) + endif() +- set_target_properties(Boost::${COMPONENT} PROPERTIES ++ set_target_properties(boost_${COMPONENT} PROPERTIES + INTERFACE_LINK_LIBRARIES "${_Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES}") + endif() + if(_Boost_${UPPERCOMPONENT}_COMPILER_FEATURES) +- set_target_properties(Boost::${COMPONENT} PROPERTIES ++ set_target_properties(boost_${COMPONENT} PROPERTIES + INTERFACE_COMPILE_FEATURES "${_Boost_${UPPERCOMPONENT}_COMPILER_FEATURES}") + endif() + endif() +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 1b1f19d464..21c222280f 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -353,12 +353,12 @@ set(ceph_common_objs + set(ceph_common_deps + json_spirit erasure_code arch crc32 + ${LIB_RESOLV} +- Boost::thread +- Boost::system +- Boost::random +- Boost::program_options +- Boost::date_time +- Boost::iostreams ++ boost_thread ++ boost_system ++ boost_random ++ boost_program_options ++ boost_date_time ++ boost_iostreams + ${BLKID_LIBRARIES} + ${Backtrace_LIBRARIES} + ${BLKIN_LIBRARIES} +@@ -518,7 +518,7 @@ if (WITH_CEPHFS) + ceph_mds.cc) + add_executable(ceph-mds ${ceph_mds_srcs}) + target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static ceph-common +- Boost::thread) ++ boost_thread) + install(TARGETS ceph-mds DESTINATION bin) + endif() + +diff --git a/src/crimson/CMakeLists.txt b/src/crimson/CMakeLists.txt +index d7b58521d4..e1533af33f 100644 +--- a/src/crimson/CMakeLists.txt ++++ b/src/crimson/CMakeLists.txt +@@ -106,8 +106,8 @@ target_link_libraries(crimson-common + PRIVATE + crc32 + crimson::cflags +- Boost::iostreams +- Boost::random ++ boost_iostreams ++ boost_random + ${NSS_LIBRARIES} ${NSPR_LIBRARIES} OpenSSL::Crypto) + + set(crimson_auth_srcs +diff --git a/src/mgr/CMakeLists.txt b/src/mgr/CMakeLists.txt +index 252fb3e5e3..3f3823a68e 100644 +--- a/src/mgr/CMakeLists.txt ++++ b/src/mgr/CMakeLists.txt +@@ -26,7 +26,7 @@ target_include_directories(ceph-mgr SYSTEM PRIVATE "${PYTHON_INCLUDE_DIRS}") + target_link_libraries(ceph-mgr + osdc client heap_profiler + global-static ceph-common +- Boost::python${MGR_PYTHON_VERSION_MAJOR}${MGR_PYTHON_VERSION_MINOR} ++ boost_python-${MGR_PYTHON_VERSION_MAJOR}.${MGR_PYTHON_VERSION_MINOR} + ${MGR_PYTHON_LIBRARIES} ${CMAKE_DL_LIBS} ${GSSAPI_LIBRARIES}) + set_target_properties(ceph-mgr PROPERTIES + POSITION_INDEPENDENT_CODE ${EXE_LINKER_USE_PIE}) +diff --git a/src/rbd_replay/CMakeLists.txt b/src/rbd_replay/CMakeLists.txt +index e9d3804c5f..5c6eb58de1 100644 +--- a/src/rbd_replay/CMakeLists.txt ++++ b/src/rbd_replay/CMakeLists.txt +@@ -36,7 +36,7 @@ if(HAVE_BABELTRACE) + global + babeltrace + babeltrace-ctf +- Boost::date_time ++ boost_date_time + ) + install(TARGETS rbd-replay-prep DESTINATION bin) + endif(HAVE_BABELTRACE) +diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt +index ccc4f74cfe..854aa6e5e9 100644 +--- a/src/rgw/CMakeLists.txt ++++ b/src/rgw/CMakeLists.txt +@@ -199,7 +199,7 @@ if(WITH_CURL_OPENSSL) + endif() + + if(WITH_BOOST_CONTEXT) +- target_link_libraries(rgw_a PRIVATE Boost::coroutine Boost::context) ++ target_link_libraries(rgw_a PRIVATE boost_coroutine boost_context) + endif() + + set(rgw_libs rgw_a) +@@ -341,7 +341,7 @@ if(WITH_RADOSGW_AMQP_ENDPOINT) + target_link_libraries(rgw_admin_user PRIVATE RabbitMQ::RabbitMQ) + endif() + if(WITH_BOOST_CONTEXT) +- target_link_libraries(rgw_admin_user PRIVATE Boost::coroutine Boost::context) ++ target_link_libraries(rgw_admin_user PRIVATE boost_coroutine boost_context) + endif() + + if(WITH_TESTS) +diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt +index 20a64fd41b..a8bb323614 100644 +--- a/src/test/CMakeLists.txt ++++ b/src/test/CMakeLists.txt +@@ -158,7 +158,7 @@ add_executable(ceph_omapbench + ) + target_link_libraries(ceph_omapbench + librados +- Boost::program_options ++ boost_program_options + global + ${BLKID_LIBRARIES} + ${CMAKE_DL_LIBS} +diff --git a/src/test/common/CMakeLists.txt b/src/test/common/CMakeLists.txt +index 71fb77cda9..aff8fb6565 100644 +--- a/src/test/common/CMakeLists.txt ++++ b/src/test/common/CMakeLists.txt +@@ -315,8 +315,8 @@ add_ceph_unittest(unittest_hobject) + + add_executable(unittest_async_completion test_async_completion.cc) + add_ceph_unittest(unittest_async_completion) +-target_link_libraries(unittest_async_completion Boost::system) ++target_link_libraries(unittest_async_completion boost_system) + + add_executable(unittest_async_shared_mutex test_async_shared_mutex.cc) + add_ceph_unittest(unittest_async_shared_mutex) +-target_link_libraries(unittest_async_shared_mutex ceph-common Boost::system) ++target_link_libraries(unittest_async_shared_mutex ceph-common boost_system) +diff --git a/src/test/erasure-code/CMakeLists.txt b/src/test/erasure-code/CMakeLists.txt +index 721f6c3675..1cd9635c77 100644 +--- a/src/test/erasure-code/CMakeLists.txt ++++ b/src/test/erasure-code/CMakeLists.txt +@@ -2,15 +2,15 @@ + add_executable(ceph_erasure_code_benchmark + ${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc + ceph_erasure_code_benchmark.cc) +-target_link_libraries(ceph_erasure_code_benchmark ceph-common Boost::program_options global ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph_erasure_code_benchmark ceph-common boost_program_options global ${CMAKE_DL_LIBS}) + install(TARGETS ceph_erasure_code_benchmark + DESTINATION bin) + + add_executable(ceph_erasure_code_non_regression ceph_erasure_code_non_regression.cc) +-target_link_libraries(ceph_erasure_code_non_regression ceph-common Boost::program_options global ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph_erasure_code_non_regression ceph-common boost_program_options global ${CMAKE_DL_LIBS}) + + add_executable(ceph_erasure_code ceph_erasure_code.cc) +-target_link_libraries(ceph_erasure_code ceph-common Boost::program_options global ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph_erasure_code ceph-common boost_program_options global ${CMAKE_DL_LIBS}) + install(TARGETS ceph_erasure_code + DESTINATION bin) + +diff --git a/src/test/librados/CMakeLists.txt b/src/test/librados/CMakeLists.txt +index 4fc53d2406..e6304394f8 100644 +--- a/src/test/librados/CMakeLists.txt ++++ b/src/test/librados/CMakeLists.txt +@@ -62,7 +62,7 @@ add_executable(ceph_test_rados_api_asio asio.cc) + target_link_libraries(ceph_test_rados_api_asio global + librados ${UNITTEST_LIBS}) + if(WITH_BOOST_CONTEXT) +- target_link_libraries(ceph_test_rados_api_asio Boost::coroutine Boost::context) ++ target_link_libraries(ceph_test_rados_api_asio boost_coroutine boost_context) + endif() + + add_executable(ceph_test_rados_api_list +@@ -132,7 +132,7 @@ add_executable(ceph_test_rados_api_tier_pp + tier_cxx.cc + $) + target_link_libraries(ceph_test_rados_api_tier_pp +- librados global ${UNITTEST_LIBS} Boost::system radostest-cxx) ++ librados global ${UNITTEST_LIBS} boost_system radostest-cxx) + + add_executable(ceph_test_rados_api_snapshots + snapshots.cc) +diff --git a/src/test/librbd/CMakeLists.txt b/src/test/librbd/CMakeLists.txt +index 2bf6723c40..e99b8afa11 100644 +--- a/src/test/librbd/CMakeLists.txt ++++ b/src/test/librbd/CMakeLists.txt +@@ -27,7 +27,7 @@ target_link_libraries(rbd_test PRIVATE + radostest + radostest-cxx + librados +- Boost::thread ++ boost_thread + GMock::GMock + GTest::GTest) + +diff --git a/src/test/rgw/CMakeLists.txt b/src/test/rgw/CMakeLists.txt +index 9b2c6b6321..80e4cb7829 100644 +--- a/src/test/rgw/CMakeLists.txt ++++ b/src/test/rgw/CMakeLists.txt +@@ -143,7 +143,7 @@ add_ceph_unittest(unittest_rgw_dmclock_scheduler) + target_link_libraries(unittest_rgw_dmclock_scheduler ${rgw_libs} dmclock) + if(WITH_BOOST_CONTEXT) + target_compile_definitions(unittest_rgw_dmclock_scheduler PRIVATE BOOST_COROUTINES_NO_DEPRECATION_WARNING) +- target_link_libraries(unittest_rgw_dmclock_scheduler Boost::coroutine Boost::context) ++ target_link_libraries(unittest_rgw_dmclock_scheduler boost_coroutine boost_context) + endif() + + if(WITH_RADOSGW_AMQP_ENDPOINT) +diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt +index d31f3d2408..6945018b11 100644 +--- a/src/tools/CMakeLists.txt ++++ b/src/tools/CMakeLists.txt +@@ -35,20 +35,20 @@ install(PROGRAMS + endif(WITH_TESTS) + + add_executable(ceph-osdomap-tool ceph_osdomap_tool.cc) +-target_link_libraries(ceph-osdomap-tool os global Boost::program_options) ++target_link_libraries(ceph-osdomap-tool os global boost_program_options) + install(TARGETS ceph-osdomap-tool DESTINATION bin) + + add_executable(ceph-monstore-tool + ceph_monstore_tool.cc + ../mgr/mgr_commands.cc) +-target_link_libraries(ceph-monstore-tool os global Boost::program_options) ++target_link_libraries(ceph-monstore-tool os global boost_program_options) + install(TARGETS ceph-monstore-tool DESTINATION bin) + + add_executable(ceph-objectstore-tool + ceph_objectstore_tool.cc + rebuild_mondb.cc + RadosDump.cc) +-target_link_libraries(ceph-objectstore-tool osd os global Boost::program_options ${CMAKE_DL_LIBS}) ++target_link_libraries(ceph-objectstore-tool osd os global boost_program_options ${CMAKE_DL_LIBS}) + if(WITH_FUSE) + target_link_libraries(ceph-objectstore-tool ${FUSE_LIBRARIES}) + endif(WITH_FUSE) diff --git a/sys-cluster/ceph/files/ceph-14.2.0-cflags.patch b/sys-cluster/ceph/files/ceph-14.2.0-cflags.patch new file mode 100644 index 0000000..3a9f52c --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.0-cflags.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/modules/Distutils.cmake b/cmake/modules/Distutils.cmake +index 5697dff85f..7fdcfe4112 100644 +--- a/cmake/modules/Distutils.cmake ++++ b/cmake/modules/Distutils.cmake +@@ -61,7 +61,7 @@ function(distutils_add_cython_module name src) + CC="${PY_CC}" + CXX="${PY_CXX}" + LDSHARED="${PY_LDSHARED}" +- OPT=\"-DNDEBUG -g -fwrapv -O2 -w\" ++ OPT=\"-DNDEBUG -g -fwrapv -w\" + LDFLAGS=-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY} + CYTHON_BUILD_DIR=${CMAKE_CURRENT_BINARY_DIR} + CEPH_LIBDIR=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} diff --git a/sys-cluster/ceph/files/ceph-14.2.0-cython-0.29.patch b/sys-cluster/ceph/files/ceph-14.2.0-cython-0.29.patch new file mode 100644 index 0000000..be133c1 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.0-cython-0.29.patch @@ -0,0 +1,17 @@ +--- ceph-13.2.1/cmake/modules/Distutils.cmake.old 2018-07-26 17:39:56.000000000 -0000 ++++ ceph-13.2.1/cmake/modules/Distutils.cmake 2018-12-24 05:43:51.566174070 -0000 +@@ -58,8 +62,13 @@ + function(distutils_install_cython_module name) + get_property(compiler_launcher GLOBAL PROPERTY RULE_LAUNCH_COMPILE) + get_property(link_launcher GLOBAL PROPERTY RULE_LAUNCH_LINK) +- set(PY_CC "${compiler_launcher} ${CMAKE_C_COMPILER}") ++ string(REPLACE " " ";" cflags ${CMAKE_C_FLAGS}) ++ list(APPEND cflags -iquote${CMAKE_SOURCE_DIR}/src/include -w) ++ list(APPEND cflags -D'void0=dead_function\(void\)') ++ list(APPEND cflags -D'__Pyx_check_single_interpreter\(ARG\)=ARG \#\# 0') ++ string(REPLACE ";" " " cflags "${cflags}") ++ set(PY_CC "${compiler_launcher} ${CMAKE_C_COMPILER} ${cflags}") + set(PY_LDSHARED "${link_launcher} ${CMAKE_C_COMPILER} -shared") + install(CODE " + set(ENV{CC} \"${PY_CC}\") + set(ENV{LDSHARED} \"${PY_LDSHARED}\") diff --git a/sys-cluster/ceph/files/ceph-14.2.0-dpdk-cflags.patch b/sys-cluster/ceph/files/ceph-14.2.0-dpdk-cflags.patch new file mode 100644 index 0000000..ab5d980 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.0-dpdk-cflags.patch @@ -0,0 +1,30 @@ +diff --git a/cmake/modules/BuildDPDK.cmake b/cmake/modules/BuildDPDK.cmake +index 12a831a8b1..a5485aa205 100644 +--- a/cmake/modules/BuildDPDK.cmake ++++ b/cmake/modules/BuildDPDK.cmake +@@ -16,17 +16,14 @@ function(do_build_dpdk dpdk_dir) + set(arch "x86_64") + set(machine "default") + set(machine_tmpl "native") +- set(rte_cflags "-march=core2") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm|ARM") + set(arch "arm") + set(machine "armv7a") + set(machine_tmpl "armv7a") +- set(rte_cflags "-march=armv7-a") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64") + set(arch "arm64") + set(machine "armv8a") + set(machine_tmpl "armv8a") +- set(rte_cflags "-march=armv8-a+crc") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(powerpc|ppc)64") + set(arch "ppc_64") + set(machine "power8") +@@ -35,7 +32,6 @@ function(do_build_dpdk dpdk_dir) + message(FATAL_ERROR "not able to build DPDK support: " + "unknown arch \"${CMAKE_SYSTEM_PROCESSOR}\"") + endif() +- set(dpdk_rte_CFLAGS "${rte_cflags}" CACHE INTERNAL "") + if(CMAKE_SYSTEM_NAME MATCHES "Linux") + set(execenv "linuxapp") + elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") diff --git a/sys-cluster/ceph/files/ceph-14.2.0-link-crc32-statically.patch b/sys-cluster/ceph/files/ceph-14.2.0-link-crc32-statically.patch new file mode 100644 index 0000000..ec7a4fb --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.0-link-crc32-statically.patch @@ -0,0 +1,11 @@ +--- ceph-14.2.0.orig/src/common/CMakeLists.txt 2019-03-18 04:08:29.000000000 -0600 ++++ ceph-14.2.0/src/common/CMakeLists.txt 2019-03-21 18:42:32.903182824 -0600 +@@ -165,7 +165,7 @@ + crc32c_aarch64.c) + endif(HAVE_INTEL) + +-add_library(crc32 ${crc32_srcs}) ++add_library(crc32 STATIC ${crc32_srcs}) + if(HAVE_ARMV8_CRC) + set_target_properties(crc32 PROPERTIES + COMPILE_FLAGS "${CMAKE_C_FLAGS} ${ARMV8_CRC_COMPILE_FLAGS}") diff --git a/sys-cluster/ceph/files/ceph-14.2.0-mgr-python-version.patch b/sys-cluster/ceph/files/ceph-14.2.0-mgr-python-version.patch new file mode 100644 index 0000000..e4502a6 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.0-mgr-python-version.patch @@ -0,0 +1,17 @@ +diff --git a/src/pybind/CMakeLists.txt b/src/pybind/CMakeLists.txt +index 664543172a..e74d73c084 100644 +--- a/src/pybind/CMakeLists.txt ++++ b/src/pybind/CMakeLists.txt +@@ -62,12 +62,6 @@ foreach(python_version ${py_vers}) + endforeach() + + if(WITH_MGR) +- if(NOT WITH_PYTHON2 AND MGR_PYTHON_VERSION_MAJOR EQUAL 2) +- message(FATAL_ERROR "mgr plugins require python2 binding") +- elseif(NOT WITH_PYTHON3 AND MGR_PYTHON_VERSION_MAJOR EQUAL 3) +- message(FATAL_ERROR "mgr plugins require python3 binding") +- endif() +- + if(USE_OPENSSL) + execute_process( + COMMAND ${PYTHON${PYTHON_VERSION}_EXECUTABLE} -c "import ssl; print('.'.join(map(str,ssl.OPENSSL_VERSION_INFO[0:3])))" diff --git a/sys-cluster/ceph/files/ceph-14.2.0-no-virtualenvs.patch b/sys-cluster/ceph/files/ceph-14.2.0-no-virtualenvs.patch new file mode 100644 index 0000000..5647ac5 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.0-no-virtualenvs.patch @@ -0,0 +1,54 @@ +diff --git a/.gitignore b/.gitignore +index 2c2afc282e..80c05ee2f0 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -13,10 +13,8 @@ + *.swp + *.swo + *.tmp +-*.orig + *.patch + !debian/patches/*.patch +-*.rej + *.rpm + *.pyc + ceph.spec +diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt +index 24a2efc9e2..b11d4d0303 100644 +--- a/src/pybind/mgr/dashboard/CMakeLists.txt ++++ b/src/pybind/mgr/dashboard/CMakeLists.txt +@@ -2,7 +2,7 @@ set(MGR_DASHBOARD_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/mgr-dashboard-virtualenv) + + add_custom_target(mgr-dashboard-test-venv + COMMAND +- ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${MGR_DASHBOARD_VIRTUALENV} ++ #${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${MGR_DASHBOARD_VIRTUALENV} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard + COMMENT "dashboard tests virtualenv is being created") + add_dependencies(tests mgr-dashboard-test-venv) +@@ -14,9 +14,9 @@ function(add_npm_command) + set(multi_kw COMMAND DEPENDS) + cmake_parse_arguments(NC "${options}" "${single_kw}" "${multi_kw}" ${ARGN}) + string(REPLACE ";" " " command "${NC_COMMAND}") +- if(NC_NODEENV) +- string(REGEX REPLACE "^(npm .*)$" ". ${mgr-dashboard-nodeenv-dir}/bin/activate && \\1 && deactivate" command ${command}) +- endif() ++ #if(NC_NODEENV) ++ # string(REGEX REPLACE "^(npm .*)$" ". ${mgr-dashboard-nodeenv-dir}/bin/activate && \\1 && deactivate" command ${command}) ++ #endif() + string(REPLACE " " ";" command "${command}") + add_custom_command( + OUTPUT "${NC_OUTPUT}" +@@ -41,9 +41,9 @@ else() + + add_custom_command( + OUTPUT "${mgr-dashboard-nodeenv-dir}/bin/npm" +- COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv-dir} +- COMMAND ${mgr-dashboard-nodeenv-dir}/bin/pip install nodeenv +- COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv -p --node=10.13.0 ++ #COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv-dir} ++ #COMMAND ${mgr-dashboard-nodeenv-dir}/bin/pip install nodeenv ++ #COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv -p --node=10.13.0 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "dashboard nodeenv is being installed" + ) diff --git a/sys-cluster/ceph/files/ceph-14.2.1-32bit-build.patch b/sys-cluster/ceph/files/ceph-14.2.1-32bit-build.patch new file mode 100644 index 0000000..36bc7e5 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.1-32bit-build.patch @@ -0,0 +1,26 @@ +diff -Naur --no-dereference ceph-14.2.1.orig/src/common/buffer.cc ceph-14.2.1/src/common/buffer.cc +--- ceph-14.2.1.orig/src/common/buffer.cc 2019-04-25 20:15:48.000000000 +0200 ++++ ceph-14.2.1/src/common/buffer.cc 2019-07-12 14:58:21.047996778 +0200 +@@ -730,7 +730,7 @@ + : iterator_impl(i.bl, i.off, i.p, i.p_off) {} + + template +- void buffer::list::iterator_impl::advance(unsigned o) ++ void buffer::list::iterator_impl::advance(unsigned int o) + { + //cout << this << " advance " << o << " from " << off + // << " (p_off " << p_off << " in " << p->length() << ")" +diff -Naur --no-dereference ceph-14.2.1.orig/src/include/buffer.h ceph-14.2.1/src/include/buffer.h +--- ceph-14.2.1.orig/src/include/buffer.h 2019-04-25 20:15:48.000000000 +0200 ++++ ceph-14.2.1/src/include/buffer.h 2019-07-12 14:58:00.170669724 +0200 +@@ -736,8 +736,8 @@ + } + + void advance(int o) = delete; +- void advance(unsigned o); +- void advance(size_t o) { advance(static_cast(o)); } ++ void advance(unsigned int o); ++ void advance(size_t o) { advance(static_cast(o)); } + void seek(unsigned o); + char operator*() const; + iterator_impl& operator++(); diff --git a/sys-cluster/ceph/files/ceph-14.2.1-ncurses-tinfo.patch b/sys-cluster/ceph/files/ceph-14.2.1-ncurses-tinfo.patch new file mode 100644 index 0000000..7f74a10 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.1-ncurses-tinfo.patch @@ -0,0 +1,30 @@ +From b7bf406cff5e0f82fc87f19d5987cd4e719919e1 Mon Sep 17 00:00:00 2001 +From: Lars Wendler +Date: Mon, 8 Apr 2019 16:34:53 +0200 +Subject: [PATCH] cmake: Fix build against ncurses with separate libtinfo + +Signed-off-by: Lars Wendler +--- + src/tools/rbd/CMakeLists.txt | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/tools/rbd/CMakeLists.txt b/src/tools/rbd/CMakeLists.txt +index 36b2408a8d28..0e38a033ff55 100644 +--- a/src/tools/rbd/CMakeLists.txt ++++ b/src/tools/rbd/CMakeLists.txt +@@ -1,3 +1,6 @@ ++set(CURSES_NEED_NCURSES TRUE) ++find_package(Curses REQUIRED) ++ + set(rbd_srcs + rbd.cc + ArgumentTypes.cc +@@ -52,7 +55,7 @@ target_link_libraries(rbd librbd librados + cls_journal_client cls_rbd_client + rbd_types + journal +- ceph-common global ncurses ++ ceph-common global ${CURSES_LIBRARIES} + ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) + if(WITH_KRBD) + target_link_libraries(rbd diff --git a/sys-cluster/ceph/files/ceph-14.2.10-build-without-mgr.patch b/sys-cluster/ceph/files/ceph-14.2.10-build-without-mgr.patch new file mode 100644 index 0000000..0742945 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.10-build-without-mgr.patch @@ -0,0 +1,111 @@ +commit 41c1cee88b38bc43002b232ede42dc157364f61a +Author: Casey Bodley +Date: Fri Nov 1 16:04:37 2019 -0400 + + cmake: define mgr_cap_obj library when WITH_MGR=OFF + + resolves the cmake error when WITH_MGR=OFF: + + Error evaluating generator expression: + + $ + + Objects of target "mgr_cap_obj" referenced but no such target exists. + Call Stack (most recent call first): + src/mon/CMakeLists.txt:34 (add_library) + + Signed-off-by: Casey Bodley + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 275a8ebd17..c2a9d7a669 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -473,9 +473,7 @@ if(WITH_LIBRADOSSTRIPER) + add_subdirectory(libradosstriper) + endif() + +-if(WITH_MGR) +- add_subdirectory(mgr) +-endif() ++add_subdirectory(mgr) + + set(librados_config_srcs + librados-config.cc) +diff --git a/src/mgr/CMakeLists.txt b/src/mgr/CMakeLists.txt +index 79227bcc1d..e69335eb69 100644 +--- a/src/mgr/CMakeLists.txt ++++ b/src/mgr/CMakeLists.txt +@@ -1,37 +1,39 @@ + add_library(mgr_cap_obj OBJECT + MgrCap.cc) + +-set(mgr_srcs +- ${CMAKE_SOURCE_DIR}/src/ceph_mgr.cc +- ${CMAKE_SOURCE_DIR}/src/mon/PGMap.cc +- ActivePyModule.cc +- ActivePyModules.cc +- BaseMgrModule.cc +- BaseMgrStandbyModule.cc +- ClusterState.cc +- DaemonHealthMetricCollector.cc +- DaemonServer.cc +- DaemonState.cc +- Gil.cc +- Mgr.cc +- MgrStandby.cc +- OSDPerfMetricTypes.cc +- OSDPerfMetricCollector.cc +- PyFormatter.cc +- PyModule.cc +- PyModuleRegistry.cc +- PyModuleRunner.cc +- PyOSDMap.cc +- StandbyPyModules.cc +- mgr_commands.cc +- $) +-add_executable(ceph-mgr ${mgr_srcs}) +-target_include_directories(ceph-mgr SYSTEM PRIVATE "${PYTHON_INCLUDE_DIRS}") +-target_link_libraries(ceph-mgr +- osdc client heap_profiler +- global-static ceph-common +- Boost::python${MGR_PYTHON_VERSION_MAJOR}${MGR_PYTHON_VERSION_MINOR} +- ${MGR_PYTHON_LIBRARIES} ${CMAKE_DL_LIBS} ${GSSAPI_LIBRARIES}) +-set_target_properties(ceph-mgr PROPERTIES +- POSITION_INDEPENDENT_CODE ${EXE_LINKER_USE_PIE}) +-install(TARGETS ceph-mgr DESTINATION bin) ++if(WITH_MGR) ++ set(mgr_srcs ++ ${CMAKE_SOURCE_DIR}/src/ceph_mgr.cc ++ ${CMAKE_SOURCE_DIR}/src/mon/PGMap.cc ++ ActivePyModule.cc ++ ActivePyModules.cc ++ BaseMgrModule.cc ++ BaseMgrStandbyModule.cc ++ ClusterState.cc ++ DaemonHealthMetricCollector.cc ++ DaemonServer.cc ++ DaemonState.cc ++ Gil.cc ++ Mgr.cc ++ MgrStandby.cc ++ OSDPerfMetricTypes.cc ++ OSDPerfMetricCollector.cc ++ PyFormatter.cc ++ PyModule.cc ++ PyModuleRegistry.cc ++ PyModuleRunner.cc ++ PyOSDMap.cc ++ StandbyPyModules.cc ++ mgr_commands.cc ++ $) ++ add_executable(ceph-mgr ${mgr_srcs}) ++ target_include_directories(ceph-mgr SYSTEM PRIVATE "${PYTHON_INCLUDE_DIRS}") ++ target_link_libraries(ceph-mgr ++ osdc client heap_profiler ++ global-static ceph-common ++ Boost::python${MGR_PYTHON_VERSION_MAJOR}${MGR_PYTHON_VERSION_MINOR} ++ ${MGR_PYTHON_LIBRARIES} ${CMAKE_DL_LIBS} ${GSSAPI_LIBRARIES}) ++ set_target_properties(ceph-mgr PROPERTIES ++ POSITION_INDEPENDENT_CODE ${EXE_LINKER_USE_PIE}) ++ install(TARGETS ceph-mgr DESTINATION bin) ++endif() diff --git a/sys-cluster/ceph/files/ceph-14.2.10-missing-includes.patch b/sys-cluster/ceph/files/ceph-14.2.10-missing-includes.patch new file mode 100644 index 0000000..aaa6ee0 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.10-missing-includes.patch @@ -0,0 +1,26 @@ +diff --git a/src/common/bit_str.h b/src/common/bit_str.h +index c4c24f6a75..b5631e8b84 100644 +--- a/src/common/bit_str.h ++++ b/src/common/bit_str.h +@@ -14,6 +14,8 @@ + #ifndef CEPH_COMMON_BIT_STR_H + #define CEPH_COMMON_BIT_STR_H + ++#include ++#include + #include + + namespace ceph { +diff --git a/src/librbd/api/PoolMetadata.h b/src/librbd/api/PoolMetadata.h +index 977ce3638d..8d982879aa 100644 +--- a/src/librbd/api/PoolMetadata.h ++++ b/src/librbd/api/PoolMetadata.h +@@ -8,6 +8,8 @@ + #include "include/rados/librados_fwd.hpp" + + #include ++#include ++#include + + namespace librbd { + diff --git a/sys-cluster/ceph/files/ceph-14.2.10-python-warnings.patch b/sys-cluster/ceph/files/ceph-14.2.10-python-warnings.patch new file mode 100644 index 0000000..8be3e50 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.10-python-warnings.patch @@ -0,0 +1,31 @@ +diff --git a/src/pybind/ceph_volume_client.py b/src/pybind/ceph_volume_client.py +index 7d7e5b49e4..9a1ba80e69 100644 +--- a/src/pybind/ceph_volume_client.py ++++ b/src/pybind/ceph_volume_client.py +@@ -355,7 +355,7 @@ class CephFSVolumeClient(object): + continue + + (group_id, volume_id) = volume.split('/') +- group_id = group_id if group_id is not 'None' else None ++ group_id = group_id if group_id != 'None' else None + volume_path = VolumePath(group_id, volume_id) + access_level = volume_data['access_level'] + +@@ -378,7 +378,7 @@ class CephFSVolumeClient(object): + if vol_meta['auths'][auth_id] == want_auth: + continue + +- readonly = True if access_level is 'r' else False ++ readonly = True if access_level == 'r' else False + self._authorize_volume(volume_path, auth_id, readonly) + + # Recovered from partial auth updates for the auth ID's access +@@ -1120,7 +1120,7 @@ class CephFSVolumeClient(object): + + # Construct auth caps that if present might conflict with the desired + # auth caps. +- unwanted_access_level = 'r' if want_access_level is 'rw' else 'rw' ++ unwanted_access_level = 'r' if want_access_level == 'rw' else 'rw' + unwanted_mds_cap = 'allow {0} path={1}'.format(unwanted_access_level, path) + if namespace: + unwanted_osd_cap = 'allow {0} pool={1} namespace={2}'.format( diff --git a/sys-cluster/ceph/files/ceph-14.2.11-systemd-unit-fix.patch b/sys-cluster/ceph/files/ceph-14.2.11-systemd-unit-fix.patch new file mode 100644 index 0000000..7309fea --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.11-systemd-unit-fix.patch @@ -0,0 +1,27 @@ +From bd8b8540f6b67a25585ca9cf140d6de760bc2a43 Mon Sep 17 00:00:00 2001 +From: Jan Fajerski +Date: Fri, 12 Jun 2020 09:27:36 +0200 +Subject: [PATCH] systemd/ceph-osd: ceph-osd-prestart.sh now lives in + /usr/libexec + +Fixes: https://tracker.ceph.com/issues/45984 +Fixes: ed6552d5067c9f1d34c426f9ae18b0c37f2a9d29 + +Signed-off-by: Jan Fajerski +--- + systemd/ceph-osd@.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/systemd/ceph-osd@.service.in b/systemd/ceph-osd@.service.in +index a0067d347220..4a2254e99478 100644 +--- a/systemd/ceph-osd@.service.in ++++ b/systemd/ceph-osd@.service.in +@@ -9,7 +9,7 @@ Environment=CLUSTER=ceph + EnvironmentFile=-@SYSTEMD_ENV_FILE@ + Environment=CLUSTER=ceph + ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph +-ExecStartPre=/usr/lib/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i ++ExecStartPre=@CMAKE_INSTALL_FULL_LIBEXECDIR@/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i + ExecReload=/bin/kill -HUP $MAINPID + LockPersonality=true + MemoryDenyWriteExecute=true diff --git a/sys-cluster/ceph/files/ceph-14.2.3-dpdk-compile-fix-1.patch b/sys-cluster/ceph/files/ceph-14.2.3-dpdk-compile-fix-1.patch new file mode 100644 index 0000000..ef06758 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.3-dpdk-compile-fix-1.patch @@ -0,0 +1,111 @@ +diff --git a/src/msg/async/dpdk/DPDKStack.cc b/src/msg/async/dpdk/DPDKStack.cc +index 3101ae57ac..1db97c289a 100644 +--- a/src/msg/async/dpdk/DPDKStack.cc ++++ b/src/msg/async/dpdk/DPDKStack.cc +@@ -203,7 +203,9 @@ DPDKWorker::Impl::~Impl() + _dev->unset_local_queue(id); + } + +-int DPDKWorker::listen(entity_addr_t &sa, const SocketOptions &opt, ++int DPDKWorker::listen(entity_addr_t &sa, ++ unsigned addr_slot, ++ const SocketOptions &opt, + ServerSocket *sock) + { + ceph_assert(sa.get_family() == AF_INET); +diff --git a/src/msg/async/dpdk/DPDKStack.h b/src/msg/async/dpdk/DPDKStack.h +index a44ae38367..622ff8a3c6 100644 +--- a/src/msg/async/dpdk/DPDKStack.h ++++ b/src/msg/async/dpdk/DPDKStack.h +@@ -37,7 +37,7 @@ class DPDKServerSocketImpl : public ServerSocketImpl { + typename Protocol::listener _listener; + public: + DPDKServerSocketImpl(Protocol& proto, uint16_t port, const SocketOptions &opt, +- int type); ++ int type, unsigned addr_slot); + int listen() { + return _listener.listen(); + } +@@ -184,8 +184,9 @@ class NativeConnectedSocketImpl : public ConnectedSocketImpl { + + template + DPDKServerSocketImpl::DPDKServerSocketImpl( +- Protocol& proto, uint16_t port, const SocketOptions &opt, int type) +- : ServerSocketImpl(type), _listener(proto.listen(port)) {} ++ Protocol& proto, uint16_t port, const SocketOptions &opt, ++ int type, unsigned addr_slot) ++ : ServerSocketImpl(type, addr_slot), _listener(proto.listen(port)) {} + + template + int DPDKServerSocketImpl::accept(ConnectedSocket *s, const SocketOptions &options, entity_addr_t *out, Worker *w) { +@@ -229,7 +230,8 @@ class DPDKWorker : public Worker { + + public: + explicit DPDKWorker(CephContext *c, unsigned i): Worker(c, i) {} +- virtual int listen(entity_addr_t &addr, const SocketOptions &opts, ServerSocket *) override; ++ virtual int listen(entity_addr_t &addr, unsigned addr_slot, ++ const SocketOptions &opts, ServerSocket *) override; + virtual int connect(const entity_addr_t &addr, const SocketOptions &opts, ConnectedSocket *socket) override; + void arp_learn(ethernet_address l2, ipv4_address l3) { + _impl->_inet.learn(l2, l3); +diff --git a/src/msg/async/dpdk/TCP.cc b/src/msg/async/dpdk/TCP.cc +index c6397709b1..26f29e10f7 100644 +--- a/src/msg/async/dpdk/TCP.cc ++++ b/src/msg/async/dpdk/TCP.cc +@@ -153,9 +153,10 @@ bool ipv4_tcp::forward(forward_hash& out_hash_data, Packet& p, size_t off) + } + + int tcpv4_listen(tcp& tcpv4, uint16_t port, const SocketOptions &opts, +- int type, ServerSocket *sock) ++ int type, unsigned addr_slot, ServerSocket *sock) + { +- auto p = new DPDKServerSocketImpl>(tcpv4, port, opts, type); ++ auto p = new DPDKServerSocketImpl>(tcpv4, port, opts, ++ type, addr_slot); + int r = p->listen(); + if (r < 0) { + delete p; +diff --git a/src/msg/async/dpdk/DPDK.h b/src/msg/async/dpdk/DPDK.h +index fa12af6b27..6bb52973e0 100644 +--- a/src/msg/async/dpdk/DPDK.h ++++ b/src/msg/async/dpdk/DPDK.h +@@ -833,7 +833,7 @@ class DPDKDevice { + subscription receive(unsigned cpuid, std::function next_packet) { + auto sub = _queues[cpuid]->_rx_stream.listen(std::move(next_packet)); + _queues[cpuid]->rx_start(); +- return std::move(sub); ++ return sub; + } + ethernet_address hw_address() { + struct ether_addr mac; +@@ -849,7 +849,7 @@ class DPDKDevice { + std::unique_ptr init_local_queue(CephContext *c, EventCenter *center, string hugepages, uint16_t qid) { + std::unique_ptr qp; + qp = std::unique_ptr(new DPDKQueuePair(c, center, this, qid)); +- return std::move(qp); ++ return qp; + } + unsigned hash2qid(uint32_t hash) { + // return hash % hw_queues_count(); +diff --git a/src/msg/async/dpdk/Packet.h b/src/msg/async/dpdk/Packet.h +index db9cd2a764..f929da3178 100644 +--- a/src/msg/async/dpdk/Packet.h ++++ b/src/msg/async/dpdk/Packet.h +@@ -125,7 +125,7 @@ class Packet { + n->rss_hash.construct(old->rss_hash); + std::copy(old->frags, old->frags + old->_nr_frags, n->frags); + old->copy_internal_fragment_to(n.get()); +- return std::move(n); ++ return n; + } + + static std::unique_ptr copy(impl* old) { +@@ -134,7 +134,7 @@ class Packet { + + static std::unique_ptr allocate_if_needed(std::unique_ptr old, size_t extra_frags) { + if (old->_allocated_frags >= old->_nr_frags + extra_frags) { +- return std::move(old); ++ return old; + } + return copy(old.get(), std::max(old->_nr_frags + extra_frags, 2 * old->_nr_frags)); + } diff --git a/sys-cluster/ceph/files/ceph-14.2.4-python-executable.patch b/sys-cluster/ceph/files/ceph-14.2.4-python-executable.patch new file mode 100644 index 0000000..40feaf1 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.4-python-executable.patch @@ -0,0 +1,29 @@ +diff --git a/src/ceph-crash.in b/src/ceph-crash.in +index 5bfb50c474..d53c4eeb6a 100755 +--- a/src/ceph-crash.in ++++ b/src/ceph-crash.in +@@ -1,4 +1,4 @@ +-#!@PYTHON_EXECUTABLE@ ++#!@PYTHON3_EXECUTABLE@ + # -*- mode:python -*- + # vim: ts=4 sw=4 smarttab expandtab + +diff --git a/src/ceph.in b/src/ceph.in +index f060023f57..3a84263ccc 100755 +--- a/src/ceph.in ++++ b/src/ceph.in +@@ -1,4 +1,4 @@ +-#!@PYTHON_EXECUTABLE@ ++#!@PYTHON3_EXECUTABLE@ + # -*- mode:python -*- + # vim: ts=4 sw=4 smarttab expandtab + # +@@ -66,7 +66,7 @@ DEVMODEMSG = '*** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH * + def respawn_in_path(lib_path, pybind_path, pythonlib_path, asan_lib_path): + execv_cmd = [] + if 'CEPH_DBG' in os.environ: +- execv_cmd += ['@PYTHON_EXECUTABLE@', '-mpdb'] ++ execv_cmd += ['@PYTHON3_EXECUTABLE@', '-mpdb'] + + if platform.system() == "Darwin": + lib_path_var = "DYLD_LIBRARY_PATH" diff --git a/sys-cluster/ceph/files/ceph-14.2.4-undefined-behaviour.patch b/sys-cluster/ceph/files/ceph-14.2.4-undefined-behaviour.patch new file mode 100644 index 0000000..99249fb --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.4-undefined-behaviour.patch @@ -0,0 +1,76 @@ +diff --git a/src/include/blobhash.h b/src/include/blobhash.h +index 597884e4c9..97f2065ce3 100644 +--- a/src/include/blobhash.h ++++ b/src/include/blobhash.h +@@ -14,33 +14,40 @@ + #ifndef CEPH_BLOBHASH_H + #define CEPH_BLOBHASH_H + ++#include + #include "hash.h" + +-/* +-- this is to make some of the STL types work with 64 bit values, string hash keys, etc. +-- added when i was using an old STL.. maybe try taking these out and see if things +- compile now? +-*/ +- + class blobhash { + public: +- uint32_t operator()(const char *p, unsigned len) { +- static rjhash H; +- uint32_t acc = 0; ++ uint32_t operator()(const void* p, size_t len) { ++ static rjhash H; ++ std::uint32_t acc = 0; ++ auto buf = static_cast(p); + while (len >= sizeof(acc)) { +- acc ^= *(uint32_t*)p; +- p += sizeof(uint32_t); +- len -= sizeof(uint32_t); ++ acc ^= unaligned_load(buf); ++ buf += sizeof(std::uint32_t); ++ len -= sizeof(std::uint32_t); + } +- int sh = 0; +- while (len) { +- acc ^= (uint32_t)*p << sh; +- sh += 8; +- len--; +- p++; ++ // handle the last few bytes of p[-(len % 4):] ++ switch (len) { ++ case 3: ++ acc ^= buf[2] << 16; ++ [[fallthrough]]; ++ case 2: ++ acc ^= buf[1] << 8; ++ [[fallthrough]]; ++ case 1: ++ acc ^= buf[0]; ++ [[fallthrough]]; + } + return H(acc); + } ++private: ++ static inline std::uint32_t unaligned_load(const unsigned char* p) { ++ std::uint32_t result; ++ __builtin_memcpy(&result, p, sizeof(result)); ++ return result; ++ } + }; + + +diff --git a/src/msg/msg_types.h b/src/msg/msg_types.h +index b6952ca498..576b7d6b8a 100644 +--- a/src/msg/msg_types.h ++++ b/src/msg/msg_types.h +@@ -566,7 +566,7 @@ namespace std { + size_t operator()( const entity_addr_t& x ) const + { + static blobhash H; +- return H((const char*)&x, sizeof(x)); ++ return H(&x, sizeof(x)); + } + }; + } // namespace std diff --git a/sys-cluster/ceph/files/ceph-14.2.5-no-virtualenvs.patch b/sys-cluster/ceph/files/ceph-14.2.5-no-virtualenvs.patch new file mode 100644 index 0000000..5b7cb41 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.5-no-virtualenvs.patch @@ -0,0 +1,39 @@ +diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt +index b6c7861838..8ce95a93a5 100644 +--- a/src/pybind/mgr/dashboard/CMakeLists.txt ++++ b/src/pybind/mgr/dashboard/CMakeLists.txt +@@ -2,7 +2,7 @@ set(MGR_DASHBOARD_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/mgr-dashboard-virtualenv) + + add_custom_target(mgr-dashboard-test-venv + COMMAND +- ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${MGR_DASHBOARD_VIRTUALENV} ++ #${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${MGR_DASHBOARD_VIRTUALENV} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard + COMMENT "dashboard tests virtualenv is being created") + add_dependencies(tests mgr-dashboard-test-venv) +@@ -14,9 +14,9 @@ function(add_npm_command) + set(multi_kw COMMAND DEPENDS) + cmake_parse_arguments(NC "${options}" "${single_kw}" "${multi_kw}" ${ARGN}) + string(REPLACE ";" " " command "${NC_COMMAND}") +- if(NC_NODEENV) +- string(REGEX REPLACE "^(.*(npm|npx) .*)$" ". ${mgr-dashboard-nodeenv-dir}/bin/activate && \\1 && deactivate" command ${command}) +- endif() ++ #if(NC_NODEENV) ++ # string(REGEX REPLACE "^(.*(npm|npx) .*)$" ". ${mgr-dashboard-nodeenv-dir}/bin/activate && \\1 && deactivate" command ${command}) ++ #endif() + string(REPLACE " " ";" command "${command}") + add_custom_command( + OUTPUT "${NC_OUTPUT}" +@@ -41,9 +41,9 @@ else() + + add_custom_command( + OUTPUT "${mgr-dashboard-nodeenv-dir}/bin/npm" +- COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv-dir} +- COMMAND ${mgr-dashboard-nodeenv-dir}/bin/pip install nodeenv +- COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv -p --node=10.13.0 ++ #COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv-dir} ++ #COMMAND ${mgr-dashboard-nodeenv-dir}/bin/pip install nodeenv ++ #COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv -p --node=10.13.0 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "dashboard nodeenv is being installed" + ) diff --git a/sys-cluster/ceph/files/ceph-14.2.8-32bit.patch b/sys-cluster/ceph/files/ceph-14.2.8-32bit.patch new file mode 100644 index 0000000..8247c00 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.8-32bit.patch @@ -0,0 +1,41 @@ +diff -Naur ceph-14.2.8.orig/CMakeLists.txt ceph-14.2.8/CMakeLists.txt +--- ceph-14.2.8.orig/CMakeLists.txt 2020-03-02 18:49:20.000000000 +0100 ++++ ceph-14.2.8/CMakeLists.txt 2020-04-08 18:01:17.060097883 +0200 +@@ -150,6 +150,8 @@ + CHECK_TYPE_SIZE(__s16 __S16) + CHECK_TYPE_SIZE(__s32 __S32) + CHECK_TYPE_SIZE(__s64 __S64) ++CHECK_TYPE_SIZE(size_t SIZE_SIZE_T) ++CHECK_TYPE_SIZE(unsigned SIZE_UNSIGNED) + unset(CMAKE_EXTRA_INCLUDE_FILES) + + include(CheckSymbolExists) +diff -Naur ceph-14.2.8.orig/src/include/buffer.h ceph-14.2.8/src/include/buffer.h +--- ceph-14.2.8.orig/src/include/buffer.h 2020-03-02 18:49:20.000000000 +0100 ++++ ceph-14.2.8/src/include/buffer.h 2020-04-08 18:01:55.099897524 +0200 +@@ -737,7 +737,9 @@ + + void advance(int o) = delete; + void advance(unsigned o); ++#if SIZE_SIZE_T != SIZE_UNSIGNED + void advance(size_t o) { advance(static_cast(o)); } ++#endif + void seek(unsigned o); + char operator*() const; + iterator_impl& operator++(); +diff -Naur ceph-14.2.8.orig/src/include/config-h.in.cmake ceph-14.2.8/src/include/config-h.in.cmake +--- ceph-14.2.8.orig/src/include/config-h.in.cmake 2020-03-02 18:49:20.000000000 +0100 ++++ ceph-14.2.8/src/include/config-h.in.cmake 2020-04-08 18:01:33.360012038 +0200 +@@ -81,6 +81,12 @@ + /* Define to 1 if the system has the type `__u8'. */ + #cmakedefine HAVE___U8 1 + ++/* Size of `size_t` */ ++#cmakedefine SIZE_SIZE_T @SIZE_SIZE_T@ ++ ++/* Size of `unsigned` */ ++#cmakedefine SIZE_UNSIGNED @SIZE_UNSIGNED@ ++ + /* Define if you have res_nquery */ + #cmakedefine HAVE_RES_NQUERY + diff --git a/sys-cluster/ceph/files/ceph-15.2.0-no-virtualenvs.patch b/sys-cluster/ceph/files/ceph-15.2.0-no-virtualenvs.patch new file mode 100644 index 0000000..097639c --- /dev/null +++ b/sys-cluster/ceph/files/ceph-15.2.0-no-virtualenvs.patch @@ -0,0 +1,73 @@ +diff --git a/cmake/modules/AddCephTest.cmake b/cmake/modules/AddCephTest.cmake +index c9ee8c1b8f..09f75543da 100644 +--- a/cmake/modules/AddCephTest.cmake ++++ b/cmake/modules/AddCephTest.cmake +@@ -68,14 +68,6 @@ function(add_tox_test name) + endif() + string(REPLACE ";" "," tox_envs "${tox_envs}") + find_package(Python3 QUIET REQUIRED) +- add_custom_command( +- OUTPUT ${venv_path}/bin/activate +- COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python="${Python3_EXECUTABLE}" ${venv_path} +- WORKING_DIRECTORY ${tox_path} +- COMMENT "preparing venv for ${name}") +- add_custom_target(${name}-venv +- DEPENDS ${venv_path}/bin/activate) +- add_dependencies(tests ${name}-venv) + add_test( + NAME ${test_name} + COMMAND ${CMAKE_SOURCE_DIR}/src/script/run_tox.sh +diff --git a/src/ceph-volume/CMakeLists.txt b/src/ceph-volume/CMakeLists.txt +index 4224499c47..9a6c87595b 100644 +--- a/src/ceph-volume/CMakeLists.txt ++++ b/src/ceph-volume/CMakeLists.txt +@@ -8,22 +8,6 @@ if(FREEBSD) + add_subdirectory(plugin/zfs) + endif() + +-# Required for running ceph-volume inventory in a vstart environment +-set(CEPH_VOLUME_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-volume-virtualenv) +- +-add_custom_command( +- OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/python +- COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${Python_EXECUTABLE} ${CEPH_VOLUME_VIRTUALENV} +- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume +- COMMENT "ceph-volume venv is being created") +- +-add_custom_command( +- OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume +- DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/python +- COMMAND . ${CEPH_VOLUME_VIRTUALENV}/bin/activate && ${CEPH_VOLUME_VIRTUALENV}/bin/python setup.py develop && deactivate +- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume +- COMMENT "${CMAKE_SOURCE_DIR}/src/ceph-volume") +- + add_custom_target(ceph-volume-venv-setup + DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume) + +diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt +index 9a8a03f0a8..8fbf65988e 100644 +--- a/src/pybind/mgr/dashboard/CMakeLists.txt ++++ b/src/pybind/mgr/dashboard/CMakeLists.txt +@@ -5,9 +5,6 @@ function(add_npm_command) + set(multi_kw COMMAND DEPENDS) + cmake_parse_arguments(NC "${options}" "${single_kw}" "${multi_kw}" ${ARGN}) + string(REPLACE ";" " " command "${NC_COMMAND}") +- if(NC_NODEENV) +- string(REGEX REPLACE "^(.*(npm|npx) .*)$" ". ${mgr-dashboard-nodeenv-dir}/bin/activate && \\1 && deactivate" command ${command}) +- endif() + string(REPLACE " " ";" command "${command}") + add_custom_command( + OUTPUT "${NC_OUTPUT}" +@@ -29,10 +26,8 @@ else() + set(nodeenv NODEENV) + + add_custom_command( +- OUTPUT "${mgr-dashboard-nodeenv-dir}/bin/npm" +- COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv-dir} +- COMMAND ${mgr-dashboard-nodeenv-dir}/bin/pip install nodeenv +- COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv -p --node=10.18.1 ++ OUTPUT "/bin/npm" ++ COMMAND /bin/nodeenv -p --node=10.18.1 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "dashboard nodeenv is being installed" + ) diff --git a/sys-cluster/ceph/files/ceph-15.2.0-rocksdb-cmake.patch b/sys-cluster/ceph/files/ceph-15.2.0-rocksdb-cmake.patch new file mode 100644 index 0000000..9b3d348 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-15.2.0-rocksdb-cmake.patch @@ -0,0 +1,15 @@ +diff --git a/cmake/modules/BuildRocksDB.cmake b/cmake/modules/BuildRocksDB.cmake +index de9748878b..4b86b36d35 100644 +--- a/cmake/modules/BuildRocksDB.cmake ++++ b/cmake/modules/BuildRocksDB.cmake +@@ -6,10 +6,6 @@ function(build_rocksdb) + # CMAKE_PREFIX_PATH, for which reason we'll have to use some other separator. + string(REPLACE ";" "!" CMAKE_PREFIX_PATH_ALT_SEP "${CMAKE_PREFIX_PATH}") + list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH_ALT_SEP}) +- if(CMAKE_TOOLCHAIN_FILE) +- list(APPEND rocksdb_CMAKE_ARGS +- -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE) +- endif() + + if(ALLOCATOR STREQUAL "jemalloc") + list(APPEND rocksdb_CMAKE_ARGS -DWITH_JEMALLOC=ON) diff --git a/sys-cluster/ceph/files/ceph-15.2.2-systemd-unit.patch b/sys-cluster/ceph/files/ceph-15.2.2-systemd-unit.patch new file mode 100644 index 0000000..fdd3a6a --- /dev/null +++ b/sys-cluster/ceph/files/ceph-15.2.2-systemd-unit.patch @@ -0,0 +1,12 @@ +diff -ur ceph-15.2.2/systemd/ceph-osd@.service.in ceph-15.2.2.af/systemd/ceph-osd@.service.in +--- ceph-15.2.2/systemd/ceph-osd@.service.in 2020-05-18 16:25:12.000000000 +0000 ++++ ceph-15.2.2.af/systemd/ceph-osd@.service.in 2020-05-21 21:20:58.318655944 +0000 +@@ -10,7 +10,7 @@ + EnvironmentFile=-@SYSTEMD_ENV_FILE@ + Environment=CLUSTER=ceph + ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph +-ExecStartPre=/usr/lib/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i ++ExecStartPre=/usr/libexec/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i + ExecReload=/bin/kill -HUP $MAINPID + LockPersonality=true + MemoryDenyWriteExecute=true diff --git a/sys-cluster/ceph/files/ceph-15.2.3-spdk-compile.patch b/sys-cluster/ceph/files/ceph-15.2.3-spdk-compile.patch new file mode 100644 index 0000000..3ea6ead --- /dev/null +++ b/sys-cluster/ceph/files/ceph-15.2.3-spdk-compile.patch @@ -0,0 +1,9 @@ +--- ceph-15.2.3.orig/cmake/modules/BuildSPDK.cmake 2020-05-29 09:24:50.000000000 -0700 ++++ ceph-15.2.3/cmake/modules/BuildSPDK.cmake 2020-06-01 10:36:14.629306433 -0700 +@@ -1,5 +1,5 @@ + macro(build_spdk) +- set(DPDK_DIR ${CMAKE_BINARY_DIR}/src/dpdk) ++ set(DPDK_DIR ${CMAKE_SOURCE_DIR}/src/dpdk) + if(NOT TARGET dpdk-ext) + include(BuildDPDK) + build_dpdk(${DPDK_DIR}) diff --git a/sys-cluster/ceph/files/ceph-15.2.4-system-uring.patch b/sys-cluster/ceph/files/ceph-15.2.4-system-uring.patch new file mode 100644 index 0000000..64df81b --- /dev/null +++ b/sys-cluster/ceph/files/ceph-15.2.4-system-uring.patch @@ -0,0 +1,66 @@ +diff --git a/src/os/CMakeLists.txt b/src/os/CMakeLists.txt +index 760244b9b4..7f83923671 100644 +--- a/src/os/CMakeLists.txt ++++ b/src/os/CMakeLists.txt +@@ -134,27 +134,6 @@ if(WITH_EVENTTRACE) + endif() + + if(WITH_LIBURING) +- include(ExternalProject) +- if("${CMAKE_GENERATOR}" MATCHES "Make") +- set(make_cmd "$(MAKE)") +- else() +- set(make_cmd "make") +- endif() +- ExternalProject_Add(liburing_ext +- DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/src/ +- GIT_REPOSITORY http://git.kernel.dk/liburing +- GIT_TAG "4e360f71131918c36774f51688e5c65dea8d43f2" +- SOURCE_DIR ${CMAKE_BINARY_DIR}/src/liburing +- CONFIGURE_COMMAND /configure +- BUILD_COMMAND env CC=${CMAKE_C_COMPILER} ${make_cmd} -C src -s +- BUILD_IN_SOURCE 1 +- INSTALL_COMMAND "") +- unset(make_cmd) +- add_library(liburing STATIC IMPORTED GLOBAL) +- add_dependencies(liburing liburing_ext) +- set_target_properties(liburing PROPERTIES +- IMPORTED_LINK_INTERFACE_LANGUAGES "C" +- IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/src/liburing/src/liburing.a") +- target_link_libraries(os liburing) +- target_include_directories(os SYSTEM PRIVATE "${CMAKE_BINARY_DIR}/src/liburing/src/include") ++ pkg_check_modules(LIBURING REQUIRED IMPORTED_TARGET liburing) ++ target_link_libraries(os uring) + endif(WITH_LIBURING) +diff --git a/src/os/bluestore/io_uring.cc b/src/os/bluestore/io_uring.cc +index 54fa0f9535..4ba83cf172 100644 +--- a/src/os/bluestore/io_uring.cc ++++ b/src/os/bluestore/io_uring.cc +@@ -7,6 +7,8 @@ + + #include "liburing.h" + #include ++#include ++#include + + /* Options */ + +@@ -134,8 +136,7 @@ int ioring_queue_t::init(std::vector &fds) + if (ret < 0) + return ret; + +- ret = io_uring_register(d->io_uring.ring_fd, IORING_REGISTER_FILES, +- &fds[0], fds.size()); ++ ret = io_uring_register_files(&d->io_uring, &fds[0], fds.size()); + if (ret < 0) { + ret = -errno; + goto close_ring_fd; +@@ -214,7 +215,7 @@ bool ioring_queue_t::supported() + struct io_uring_params p; + + memset(&p, 0, sizeof(p)); +- int fd = io_uring_setup(16, &p); ++ int fd = syscall(SYS_io_uring_setup, 16, &p); + if (fd < 0) + return false; + diff --git a/sys-cluster/ceph/files/ceph-15.2.5-glibc-2.32.patch b/sys-cluster/ceph/files/ceph-15.2.5-glibc-2.32.patch new file mode 100644 index 0000000..f8f7fad --- /dev/null +++ b/sys-cluster/ceph/files/ceph-15.2.5-glibc-2.32.patch @@ -0,0 +1,15 @@ +diff -NaurBwdp a/src/global/signal_handler.h src/global/b/signal_handler.h +--- a/src/global/signal_handler.h 2020-10-01 03:15:48.208164979 +0700 ++++ b/src/global/signal_handler.h 2020-10-01 03:15:40.655244081 +0700 +@@ -20,11 +20,7 @@ + + typedef void (*signal_handler_t)(int); + +-#ifndef HAVE_REENTRANT_STRSIGNAL +-# define sig_str(signum) sys_siglist[signum] +-#else + # define sig_str(signum) strsignal(signum) +-#endif + + void install_sighandler(int signum, signal_handler_t handler, int flags); + diff --git a/sys-cluster/ceph/files/ceph-15.2.5-missing-includes.patch b/sys-cluster/ceph/files/ceph-15.2.5-missing-includes.patch new file mode 100644 index 0000000..5f4ed84 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-15.2.5-missing-includes.patch @@ -0,0 +1,12 @@ +diff --git a/src/tools/rbd/action/Bench.cc b/src/tools/rbd/action/Bench.cc +index aa6edbc18b..90c551c179 100644 +--- a/src/tools/rbd/action/Bench.cc ++++ b/src/tools/rbd/action/Bench.cc +@@ -9,6 +9,7 @@ + #include "common/ceph_mutex.h" + #include "include/types.h" + #include "global/signal_handler.h" ++#include + #include + #include + #include diff --git a/sys-cluster/ceph/files/ceph-15.2.5-systemd-unit-fix.patch b/sys-cluster/ceph/files/ceph-15.2.5-systemd-unit-fix.patch new file mode 100644 index 0000000..a127ada --- /dev/null +++ b/sys-cluster/ceph/files/ceph-15.2.5-systemd-unit-fix.patch @@ -0,0 +1,27 @@ +From bd8b8540f6b67a25585ca9cf140d6de760bc2a43 Mon Sep 17 00:00:00 2001 +From: Jan Fajerski +Date: Fri, 12 Jun 2020 09:27:36 +0200 +Subject: [PATCH] systemd/ceph-osd: ceph-osd-prestart.sh now lives in + /usr/libexec + +Fixes: https://tracker.ceph.com/issues/45984 +Fixes: ed6552d5067c9f1d34c426f9ae18b0c37f2a9d29 + +Signed-off-by: Jan Fajerski +--- + systemd/ceph-osd@.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/systemd/ceph-osd@.service.in b/systemd/ceph-osd@.service.in +index a0067d347220..4a2254e99478 100644 +--- a/systemd/ceph-osd@.service.in ++++ b/systemd/ceph-osd@.service.in +@@ -9,7 +9,7 @@ Environment=CLUSTER=ceph + EnvironmentFile=-@SYSTEMD_ENV_FILE@ + Environment=CLUSTER=ceph + ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph +-ExecStartPre=/usr/libexec/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i ++ExecStartPre=@CMAKE_INSTALL_FULL_LIBEXECDIR@/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i + ExecReload=/bin/kill -HUP $MAINPID + LockPersonality=true + MemoryDenyWriteExecute=true diff --git a/sys-cluster/ceph/files/ceph-15.2.8-arm32build.patch b/sys-cluster/ceph/files/ceph-15.2.8-arm32build.patch new file mode 100644 index 0000000..599df8f --- /dev/null +++ b/sys-cluster/ceph/files/ceph-15.2.8-arm32build.patch @@ -0,0 +1,77 @@ +diff -Naur ceph-15.2.8-orig/src/mds/PurgeQueue.cc ceph-15.2.8/src/mds/PurgeQueue.cc +--- ceph-15.2.8-orig/src/mds/PurgeQueue.cc 2020-12-16 18:29:50.000000000 +0100 ++++ ceph-15.2.8/src/mds/PurgeQueue.cc 2021-03-01 07:57:26.654460816 +0100 +@@ -503,7 +503,7 @@ + + in_flight[expire_to] = item; + logger->set(l_pq_executing, in_flight.size()); +- files_high_water = std::max(files_high_water, in_flight.size()); ++ files_high_water = std::max(files_high_water, static_cast(in_flight.size())); + logger->set(l_pq_executing_high_water, files_high_water); + auto ops = _calculate_ops(item); + ops_in_flight += ops; +@@ -581,7 +581,7 @@ + logger->set(l_pq_executing_ops_high_water, ops_high_water); + in_flight.erase(expire_to); + logger->set(l_pq_executing, in_flight.size()); +- files_high_water = std::max(files_high_water, in_flight.size()); ++ files_high_water = std::max(files_high_water, static_cast(in_flight.size())); + logger->set(l_pq_executing_high_water, files_high_water); + return; + } +@@ -659,7 +659,7 @@ + + in_flight.erase(iter); + logger->set(l_pq_executing, in_flight.size()); +- files_high_water = std::max(files_high_water, in_flight.size()); ++ files_high_water = std::max(files_high_water, static_cast(in_flight.size())); + logger->set(l_pq_executing_high_water, files_high_water); + dout(10) << "in_flight.size() now " << in_flight.size() << dendl; + +diff -Naur ceph-15.2.8-orig/src/pybind/ceph_argparse.py ceph-15.2.8/src/pybind/ceph_argparse.py +--- ceph-15.2.8-orig/src/pybind/ceph_argparse.py 2020-12-16 18:29:50.000000000 +0100 ++++ ceph-15.2.8/src/pybind/ceph_argparse.py 2021-02-26 06:57:25.428574224 +0100 +@@ -1319,7 +1319,10 @@ + # otherwise it will keep polling until timeout or thread stops. + # wait for INT32_MAX, as python 3.6.8 use int32_t to present the + # timeout in integer when converting it to nanoseconds +- timeout = (1 << (32 - 1)) - 1 ++ #timeout = (1 << (32 - 1)) - 1 ++ # On arm32 this leads to a nearly immediately thrown timeout exception... ++ # The following works... ++ timeout = (1 << (29 - 1)) - 1 + t = RadosThread(func, *args, **kwargs) + + # allow the main thread to exit (presumably, avoid a join() on this +diff -Naur ceph-15.2.8-orig/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc ceph-15.2.8/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc +--- ceph-15.2.8-orig/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc 2020-12-16 18:29:50.000000000 +0100 ++++ ceph-15.2.8/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc 2021-02-25 16:47:45.405117124 +0100 +@@ -234,7 +234,7 @@ + + json_spirit::mObject root_obj; + root_obj["replay_state"] = replay_state; +- root_obj["remote_snapshot_timestamp"] = remote_snap_info->timestamp.sec(); ++ root_obj["remote_snapshot_timestamp"] = static_cast(remote_snap_info->timestamp.sec()); + + auto matching_remote_snap_id = util::compute_remote_snap_id( + m_state_builder->local_image_ctx->image_lock, +@@ -248,8 +248,8 @@ + // use the timestamp from the matching remote image since + // the local snapshot would just be the time the snapshot was + // synced and not the consistency point in time. +- root_obj["local_snapshot_timestamp"] = +- matching_remote_snap_it->second.timestamp.sec(); ++ root_obj["local_snapshot_timestamp"] = static_cast( ++ matching_remote_snap_it->second.timestamp.sec()); + } + + matching_remote_snap_it = m_state_builder->remote_image_ctx->snap_info.find( +@@ -257,7 +257,7 @@ + if (m_remote_snap_id_end != CEPH_NOSNAP && + matching_remote_snap_it != + m_state_builder->remote_image_ctx->snap_info.end()) { +- root_obj["syncing_snapshot_timestamp"] = remote_snap_info->timestamp.sec(); ++ root_obj["syncing_snapshot_timestamp"] = static_cast(remote_snap_info->timestamp.sec()); + root_obj["syncing_percent"] = static_cast( + 100 * m_local_mirror_snap_ns.last_copied_object_number / + static_cast(std::max(1U, m_local_object_count))); diff --git a/sys-cluster/ceph/files/ceph-glibc-2.32-no-sys_siglist.patch b/sys-cluster/ceph/files/ceph-glibc-2.32-no-sys_siglist.patch new file mode 100644 index 0000000..630de20 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-glibc-2.32-no-sys_siglist.patch @@ -0,0 +1,16 @@ +diff -Naur ceph-10.2.10.orig/src/global/signal_handler.h ceph-10.2.10/src/global/signal_handler.h +--- ceph-10.2.10.orig/src/global/signal_handler.h 2017-10-04 16:19:25.000000000 +0200 ++++ ceph-10.2.10/src/global/signal_handler.h 2021-03-07 21:29:10.000445565 +0100 +@@ -22,11 +22,7 @@ + + typedef void (*signal_handler_t)(int); + +-#ifndef HAVE_REENTRANT_STRSIGNAL +-# define sig_str(signum) sys_siglist[signum] +-#else +-# define sig_str(signum) strsignal(signum) +-#endif ++#define sig_str(signum) strsignal(signum) + + void install_sighandler(int signum, signal_handler_t handler, int flags); + diff --git a/sys-cluster/ceph/files/ceph-mds_at.service b/sys-cluster/ceph/files/ceph-mds_at.service new file mode 100644 index 0000000..c28604e --- /dev/null +++ b/sys-cluster/ceph/files/ceph-mds_at.service @@ -0,0 +1,12 @@ +[Unit] +Description=Ceph metadata server daemon +After=network-online.target local-fs.target +Wants=network-online.target local-fs.target +PartOf=ceph.target + +[Service] +Environment=CLUSTER=ceph +ExecStart=/usr/bin/ceph-mds -f --cluster ${CLUSTER} --id %i + +[Install] +WantedBy=ceph.target diff --git a/sys-cluster/ceph/files/ceph-mds_at.service.conf b/sys-cluster/ceph/files/ceph-mds_at.service.conf new file mode 100644 index 0000000..0172cbe --- /dev/null +++ b/sys-cluster/ceph/files/ceph-mds_at.service.conf @@ -0,0 +1,4 @@ +# Uncomment the following lines to configure the cluster name for Ceph MDSs. + +#[Service] +#Environment=CLUSTER=ceph diff --git a/sys-cluster/ceph/files/ceph-osd_at.service b/sys-cluster/ceph/files/ceph-osd_at.service new file mode 100644 index 0000000..7bf125f --- /dev/null +++ b/sys-cluster/ceph/files/ceph-osd_at.service @@ -0,0 +1,13 @@ +[Unit] +Description=Ceph object storage daemon +After=network-online.target local-fs.target +Wants=network-online.target local-fs.target +PartOf=ceph.target + +[Service] +Environment=CLUSTER=ceph +ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i +ExecStartPre=/usr/libexec/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i + +[Install] +WantedBy=ceph.target diff --git a/sys-cluster/ceph/files/ceph-osd_at.service.conf b/sys-cluster/ceph/files/ceph-osd_at.service.conf new file mode 100644 index 0000000..959b948 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-osd_at.service.conf @@ -0,0 +1,4 @@ +# Uncomment the following lines to configure the cluster name for Ceph OSDs. + +#[Service] +#Environment=CLUSTER=ceph diff --git a/sys-cluster/ceph/files/ceph-tmpfilesd b/sys-cluster/ceph/files/ceph-tmpfilesd new file mode 100644 index 0000000..2ded82f --- /dev/null +++ b/sys-cluster/ceph/files/ceph-tmpfilesd @@ -0,0 +1 @@ +d /run/ceph 0770 ceph ceph - diff --git a/sys-cluster/ceph/files/ceph.confd-r1 b/sys-cluster/ceph/files/ceph.confd-r1 new file mode 100644 index 0000000..3bdb8b4 --- /dev/null +++ b/sys-cluster/ceph/files/ceph.confd-r1 @@ -0,0 +1,4 @@ +# Example + +# default ceph conf file +#ceph_conf="/etc/ceph/ceph.conf" diff --git a/sys-cluster/ceph/files/ceph.confd-r2 b/sys-cluster/ceph/files/ceph.confd-r2 new file mode 100644 index 0000000..13b1cfa --- /dev/null +++ b/sys-cluster/ceph/files/ceph.confd-r2 @@ -0,0 +1,8 @@ +# default ceph conf file +#ceph_conf="/etc/ceph/ceph.conf" + +# Set ulimits for Ceph services. +rc_ulimit="-n 32768" + +# initd stop timeout. +#CEPH_TERMTIMEOUT="TERM/60/KILL/5" diff --git a/sys-cluster/ceph/files/ceph.confd-r3 b/sys-cluster/ceph/files/ceph.confd-r3 new file mode 100644 index 0000000..281037c --- /dev/null +++ b/sys-cluster/ceph/files/ceph.confd-r3 @@ -0,0 +1,63 @@ +# /etc/conf.d/ceph: startup configurations for ceph + +# default ceph conf file +#ceph_conf="/etc/ceph/ceph.conf" + +# Set ulimits for Ceph services. +#rc_ulimit="-n 131072 -u 257256" + +# the directory under /run to store runtime information in +#rundir=/run/ceph + +# the user and group to run ceph as + +# settings for openrc supervisor for various ceph daemons +# +# defaults (can be overidden for each daemon) +# stderr and stdout values get .${id}-std{out,err}.log appended to the provided value +# +#respawn_delay=20 +#respawn_max=5 +#respawn_period=1800 +#stdout="/dev/null" +#stderr="/dev/null" + +# radosgw +#radosgw_respawn_max +#radosgw_respawn_delay=20 +#radosgw_respawn_period=1800 +#radosgw_stdout="/dev/null" +#radosgw_stderr="/dev/null" + +# mon +#mon_respawn_max=5 +#mon_respawn_delay=20 +#mon_respawn_period=1800 +#mon_stdout="/dev/null" +#mon_stderr="/dev/null" + +# osd +#osd_respawn_max=5 +#osd_respawn_delay=30 +#osd_respawn_period=1800 +#osd_stdout="/dev/null" +#osd_stderr="/dev/null" + +# mds +#mds_respawn_max=5 +#mds_respawn_delay=20 +#mds_respawn_period=1800 +#mds_stdout="/dev/null" +#mds_stderr="/dev/null" + +# mgr +#mgr_respawn_max=5 +#mgr_respawn_delay=20 +#mgr_respawn_period=1800 +#mgr_stdout="/dev/null" +#mgr_stderr="/dev/null" + +# initd stop timeout. +#CEPH_TERMTIMEOUT="TERM/120/KILL/5" +# +# vim:ft=gentoo-conf-d:ts=4:sts=4:sw=4:noet: diff --git a/sys-cluster/ceph/files/ceph.confd-r4 b/sys-cluster/ceph/files/ceph.confd-r4 new file mode 100644 index 0000000..b8a0c93 --- /dev/null +++ b/sys-cluster/ceph/files/ceph.confd-r4 @@ -0,0 +1,70 @@ +# /etc/conf.d/ceph: startup configurations for ceph + +# default ceph conf file +#ceph_conf="/etc/ceph/ceph.conf" + +# Set ulimits for Ceph services. +#rc_ulimit="-n 1048576 -u 1048576" + +# the directory under /run to store runtime information in +#rundir=/run/ceph + +# the user and group to run ceph as +#user="ceph" +#group="ceph" + +# tell openrc to use control groups to make sure everything gets killed +# properly on stop. Highly reccommended to leave this enabled. +rc_cgroup_cleanup=1 + +# settings for openrc supervisor for various ceph daemons +# +# defaults (can be overidden for each daemon) +# stderr and stdout values get .${id}-std{out,err}.log appended +# to the provided value +# +#respawn_delay=20 +#respawn_max=5 +#respawn_period=1800 +#stdout="/dev/null" +#stderr="/dev/null" + +# radosgw +#radosgw_respawn_max +#radosgw_respawn_delay=20 +#radosgw_respawn_period=1800 +#radosgw_stdout="/dev/null" +#radosgw_stderr="/dev/null" + +# mon +#mon_respawn_max=5 +#mon_respawn_delay=20 +#mon_respawn_period=1800 +#mon_stdout="/dev/null" +#mon_stderr="/dev/null" + +# osd +#osd_respawn_max=5 +#osd_respawn_delay=30 +#osd_respawn_period=1800 +#osd_stdout="/dev/null" +#osd_stderr="/dev/null" + +# mds +#mds_respawn_max=5 +#mds_respawn_delay=20 +#mds_respawn_period=1800 +#mds_stdout="/dev/null" +#mds_stderr="/dev/null" + +# mgr +#mgr_respawn_max=5 +#mgr_respawn_delay=20 +#mgr_respawn_period=1800 +#mgr_stdout="/dev/null" +#mgr_stderr="/dev/null" + +# initd stop timeout. +#CEPH_TERMTIMEOUT="TERM/120/KILL/5" +# +# vim:ft=gentoo-conf-d:ts=4:sts=4:sw=4:noet: diff --git a/sys-cluster/ceph/files/ceph.confd-r5 b/sys-cluster/ceph/files/ceph.confd-r5 new file mode 100644 index 0000000..5d11439 --- /dev/null +++ b/sys-cluster/ceph/files/ceph.confd-r5 @@ -0,0 +1,15 @@ +# Example + +# default ceph conf file +#ceph_conf="/etc/ceph/ceph.conf" + +# Set RADOSGW_WANT_NAME_PARAM=y in order to make the init script add +# a --name=client.${RC_SVCNAME} parameter to command_args for radosgw.* +# service instances. This will make the service use a key by the name +# of client.${RC_SVCNAME} instead of the default client.admin key. +# A setting like this in the ceph config file can be used to customize +# the rgw_data and keyring paths used by radosgw instances: +# [client] +# rgw_data = /var/lib/ceph/radosgw/$cluster-$id +# keyring = /var/lib/ceph/radosgw/$cluster-$id/keyring +RADOSGW_WANT_NAME_PARAM=n diff --git a/sys-cluster/ceph/files/ceph.initd-r11 b/sys-cluster/ceph/files/ceph.initd-r11 new file mode 100644 index 0000000..23827e1 --- /dev/null +++ b/sys-cluster/ceph/files/ceph.initd-r11 @@ -0,0 +1,115 @@ +#!/sbin/openrc-run + +# make sure /etc/conf.d/ceph gets loaded for ceph-mon etc +_CONFD_FILE="${RC_SERVICE%/*}/../conf.d/${RC_SVCNAME%-*}" +if [ -r "${_CONFD_FILE}" ]; then + . "${_CONFD_FILE}" || exit 1 +fi + +: "${ceph_conf:=/etc/ceph/ceph.conf}" +daemon_type="${RC_SVCNAME#ceph-}" +daemon_type="${daemon_type%%.*}" +daemon_id="${RC_SVCNAME#ceph-*.}" +daemon_id="${daemon_id:-0}" +: "${rundir:=/run/ceph}" +: "${user:=ceph}" +: "${group:=ceph}" +: "${rc_ulimit:=-n 1048576 -u 1048576}" + +pidfile="${rundir}/supervisor-${daemon_type}.${daemon_id}.pid" +daemon_pidfile="${rundir}/${daemon_type}.${daemon_id}.pid" + +command="/usr/bin/${RC_SVCNAME%%.*}" +command_args="-i ${daemon_id} --pid-file ${daemon_pidfile} -c ${ceph_conf}" +extra_commands="reload" +command_args_foreground="--foreground" + +retry="${CEPH_TERMTIMEOUT:-TERM/120/KILL/5}" +start_stop_daemon_args="--user ${user} --group ${group}" +supervise_daemon_args="--user ${user} --group ${group}" + +: "${supervisor:=supervise-daemon}" +: "${stdout:=/var/log/ceph/ceph}" +: "${stderr:=/var/log/ceph/ceph}" +: "${respawn_delay:=10}" +: "${respawn_max:=5}" +: "${respawn_period:=1800}" + +: "${osd_respawn_delay:=15}" +: "{osd_respawn_max:=10}" + +: "{radosgw_respawn_max:=5}" +: "${radosgw_respawn_period:=30}" + +depend() { + use dns logger + after net ntpd ntp-client chronyd + before netmount +} + +is_type_valid() { + case ${daemon_type} in + mon|mds|osd|mgr|radosgw) return 0;; + *) return 1;; + esac +} + +start_pre() { + local log_dir + export CEPH_CONF="${ceph_conf}" + + checkpath -d -q -o "${user}:${group}" "${rundir}" + + if ! is_type_valid ;then + eerror "Please give valid Ceph Server Type: mds, mon, osd" + return 1 + + elif pgrep -f "[c]eph-${daemon_type} -i ${daemon_id} "; then + eerror "${daemon_type}.${daemon_id} is still running, refusing to start" + return 1 + fi + + if [ -n "${bluestore_osd_fsid}" ]; then + einfo "Mounting Bluestore" + ceph-volume lvm activate "${daemon_id}" "${bluestore_osd_fsid}" --no-systemd + fi + + if [ "${daemon_type}" = radosgw ] && [ "${RADOSGW_WANT_NAME_PARAM}" = y ]; then + command_args="${command_args} --name client.${daemon_id}" + fi + + local arg_name arg_val repl_arg_name + for arg_name in stdout stderr respawn_delay respawn_max respawn_period; do + eval arg_val="\${${daemon_type}_${arg_name}}" + + if [ -z "${arg_val}" ]; then + eval arg_val="\${${arg_name}}" + else + eval "${arg_name}=\"${arg_val}\"" + fi + + if [ "${arg_name}" = "stderr" ] || [ "${arg_name}" = "stdout" ]; then + local log_file log_postfix + log_postfix=".${daemon_id}-${arg_name}.log" + log_file="${arg_val}" + + if [ "${log_file}" != /dev/null ]; then + log_file="${log_file}${log_postfix}" + + log_dir="$(dirname "${log_file}")" + checkpath -m 0755 -o "${user}:${group}" -d "${log_dir}" + fi + + repl_arg_name="$(printf -- "%s\n" "${arg_name}" | tr _ -)" + supervise_daemon_args="${supervise_daemon_args} --${repl_arg_name}=${log_file}" + fi + done +} + +reload() { + ebegin "Reloading Ceph ${daemon_type}.${daemon_id}" + start-stop-daemon --signal 1 "${start_stop_daemon_args}" + eend ${?} +} + +# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet: diff --git a/sys-cluster/ceph/files/ceph.initd-r12 b/sys-cluster/ceph/files/ceph.initd-r12 new file mode 100644 index 0000000..4a90e3c --- /dev/null +++ b/sys-cluster/ceph/files/ceph.initd-r12 @@ -0,0 +1,115 @@ +#!/sbin/openrc-run + +# make sure /etc/conf.d/ceph gets loaded for ceph-mon etc +_CONFD_FILE="${RC_SERVICE%/*}/../conf.d/${RC_SVCNAME%-*}" +if [ -r "${_CONFD_FILE}" ]; then + . "${_CONFD_FILE}" || exit 1 +fi + +: "${ceph_conf:=/etc/ceph/ceph.conf}" +daemon_type="${RC_SVCNAME#ceph-}" +daemon_type="${daemon_type%%.*}" +daemon_id="${RC_SVCNAME#ceph-*.}" +daemon_id="${daemon_id:-0}" +: "${rundir:=/run/ceph}" +: "${user:=ceph}" +: "${group:=ceph}" +: "${rc_ulimit:=-n 1048576 -u 1048576}" + +pidfile="${rundir}/supervisor-${daemon_type}.${daemon_id}.pid" +daemon_pidfile="${rundir}/${daemon_type}.${daemon_id}.pid" + +command="/usr/bin/${RC_SVCNAME%%.*}" +command_args="-i ${daemon_id} --pid-file ${daemon_pidfile} -c ${ceph_conf}" +extra_commands="${extra_commands} reload" +command_args_foreground="--foreground" + +retry="${CEPH_TERMTIMEOUT:-TERM/120/KILL/5}" +start_stop_daemon_args="--user ${user} --group ${group}" +supervise_daemon_args="--user ${user} --group ${group}" + +: "${supervisor:=supervise-daemon}" +: "${stdout:=/var/log/ceph/ceph}" +: "${stderr:=/var/log/ceph/ceph}" +: "${respawn_delay:=10}" +: "${respawn_max:=5}" +: "${respawn_period:=1800}" + +: "${osd_respawn_delay:=15}" +: "{osd_respawn_max:=10}" + +: "{radosgw_respawn_max:=5}" +: "${radosgw_respawn_period:=30}" + +depend() { + use dns logger + after net ntpd ntp-client chronyd + before netmount +} + +is_type_valid() { + case ${daemon_type} in + mon|mds|osd|mgr|radosgw) return 0;; + *) return 1;; + esac +} + +start_pre() { + local log_dir + export CEPH_CONF="${ceph_conf}" + + checkpath -d -q -o "${user}:${group}" "${rundir}" + + if ! is_type_valid ;then + eerror "Please give valid Ceph Server Type: mds, mon, osd" + return 1 + + elif pgrep -f "[c]eph-${daemon_type} -i ${daemon_id} "; then + eerror "${daemon_type}.${daemon_id} is still running, refusing to start" + return 1 + fi + + if [ -n "${bluestore_osd_fsid}" ]; then + einfo "Mounting Bluestore" + ceph-volume lvm activate "${daemon_id}" "${bluestore_osd_fsid}" --no-systemd + fi + + if [ "${daemon_type}" = radosgw ] && [ "${RADOSGW_WANT_NAME_PARAM}" = y ]; then + command_args="${command_args} --name client.${daemon_id}" + fi + + local arg_name arg_val repl_arg_name + for arg_name in stdout stderr respawn_delay respawn_max respawn_period; do + eval arg_val="\${${daemon_type}_${arg_name}}" + + if [ -z "${arg_val}" ]; then + eval arg_val="\${${arg_name}}" + else + eval "${arg_name}=\"${arg_val}\"" + fi + + if [ "${arg_name}" = "stderr" ] || [ "${arg_name}" = "stdout" ]; then + local log_file log_postfix + log_postfix=".${daemon_id}-${arg_name}.log" + log_file="${arg_val}" + + if [ "${log_file}" != /dev/null ]; then + log_file="${log_file}${log_postfix}" + + log_dir="$(dirname "${log_file}")" + checkpath -m 0755 -o "${user}:${group}" -d "${log_dir}" + fi + + repl_arg_name="$(printf -- "%s\n" "${arg_name}" | tr _ -)" + supervise_daemon_args="${supervise_daemon_args} --${repl_arg_name}=${log_file}" + fi + done +} + +reload() { + ebegin "Reloading Ceph ${daemon_type}.${daemon_id}" + start-stop-daemon --signal 1 "${start_stop_daemon_args}" + eend ${?} +} + +# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet: diff --git a/sys-cluster/ceph/files/ceph.initd-r2 b/sys-cluster/ceph/files/ceph.initd-r2 new file mode 100644 index 0000000..16267c5 --- /dev/null +++ b/sys-cluster/ceph/files/ceph.initd-r2 @@ -0,0 +1,40 @@ +#!/sbin/openrc-run + +ceph_conf="${ceph_conf:-/etc/ceph/ceph.conf}" +extra_commands="reload" +daemon_type="${RC_SVCNAME#ceph-}" +daemon_type="${daemon_type%.*}" +daemon_id="${RC_SVCNAME#ceph-*.}" +daemon_id="${daemon_id:-0}" +command="/usr/bin/ceph-${daemon_type}" +pidfile="/run/ceph/${daemon_type}.${daemon_id}.pid" +command_args="-i ${daemon_id} --pid-file ${pidfile} -c ${ceph_conf}" +start_stop_daemon_args="--user ceph --group ceph" + +depend() { + after net ntpd ntp-client chronyd + before netmount +} + +is_type_valid() { + case ${daemon_type} in + mon|mds|osd) return 0;; + *) return 1;; + esac +} + +start_pre() { + checkpath -d -q -o ceph "$(dirname "${pidfile}")" + if ! is_type_valid ;then + eerror "Please give valid Ceph Server Type: mds, mon, osd" + return 1 + fi +} + +reload() { + ebegin "Reloading Ceph ${daemon_type}.${daemon_id}" + start-stop-daemon --signal 1 ${start_stop_daemon_args} --pidfile "${pidfile}" + eend $? +} + +# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet: diff --git a/sys-cluster/ceph/files/ceph.initd-r4 b/sys-cluster/ceph/files/ceph.initd-r4 new file mode 100644 index 0000000..33e1a30 --- /dev/null +++ b/sys-cluster/ceph/files/ceph.initd-r4 @@ -0,0 +1,49 @@ +#!/sbin/openrc-run + +ceph_conf="${ceph_conf:-/etc/ceph/ceph.conf}" +extra_commands="reload" +daemon_type="${RC_SVCNAME#ceph-}" +daemon_type="${daemon_type%%.*}" +daemon_id="${RC_SVCNAME#ceph-*.}" +daemon_id="${daemon_id:-0}" +command="/usr/bin/ceph-${daemon_type}" +pidfile="/run/ceph/${daemon_type}.${daemon_id}.pid" +command_args="-i ${daemon_id} --pid-file ${pidfile} -c ${ceph_conf}" +start_stop_daemon_args="--user ceph --group ceph" +retry="${CEPH_TERMTIMEOUT:-TERM/60/KILL/5}" + +depend() { + after net ntpd ntp-client chronyd + before netmount +} + +is_type_valid() { + case ${daemon_type} in + mon|mds|osd) return 0;; + *) return 1;; + esac +} + +start_pre() { + export CEPH_CONF="${ceph_conf}" + + checkpath -d -q -o ceph "$(dirname "${pidfile}")" + + if ! is_type_valid ;then + eerror "Please give valid Ceph Server Type: mds, mon, osd" + return 1 + fi + + if pgrep -f "[c]eph-${daemon_type} -i ${daemon_id} "; then + eerror "${daemon_type}.${daemon_id} is still running, refusing to start" + return 1 + fi +} + +reload() { + ebegin "Reloading Ceph ${daemon_type}.${daemon_id}" + start-stop-daemon --signal 1 ${start_stop_daemon_args} --pidfile "${pidfile}" + eend $? +} + +# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet: diff --git a/sys-cluster/ceph/files/ceph.initd-r5 b/sys-cluster/ceph/files/ceph.initd-r5 new file mode 100644 index 0000000..18f539a --- /dev/null +++ b/sys-cluster/ceph/files/ceph.initd-r5 @@ -0,0 +1,87 @@ +#!/sbin/openrc-run + +ceph_conf="${ceph_conf:-/etc/ceph/ceph.conf}" +extra_commands="reload" +daemon_type="${RC_SVCNAME#ceph-}" +daemon_type="${daemon_type%%.*}" +daemon_id="${RC_SVCNAME#ceph-*.}" +daemon_id="${daemon_id:-0}" +: ${rundir:=/run/ceph} +: ${user:=ceph} +: ${group:=ceph} +: ${rc_ulimit:=-n 131072 -u 257256} + +pidfile="${rundir}/supervisor-${daemon_type}.${daemon_id}.pid" +daemon_pidfile="${rundir}/${daemon_type}.${daemon_id}.pid" + +command="/usr/bin/${RC_SVCNAME%%.*}" +command_args="-i ${daemon_id} --pid-file ${daemon_pidfile} -c ${ceph_conf}" +command_args_foreground="--foreground" + +retry="${CEPH_TERMTIMEOUT:-TERM/120/KILL/5}" +start_stop_daemon_args="--user ${user} --group ${group}" +supervise_daemon_args="--user ${user} --group ${group}" + +: ${supervisor:=supervise-daemon} +: ${stdout:=/dev/null} +: ${stderr:=/dev/null} +: ${respawn_delay:=10} +: ${respawn_max:=5} +: ${respawn_period:=1800} + +: ${osd_respawn_delay:=15} +: ${osd_respawn_max:=10} + +: ${radosgw_respawn_max:=5} +: ${radosgw_respawn_period:=30} + +depend() { + use dns logger + after net ntpd ntp-client chronyd + before netmount +} + +is_type_valid() { + case ${daemon_type} in + mon|mds|osd|mgr|radosgw) return 0;; + *) return 1;; + esac +} + +start_pre() { + export CEPH_CONF="${ceph_conf}" + + checkpath -d -q -o "${user}:${group}" "${rundir}" + + if ! is_type_valid ;then + eerror "Please give valid Ceph Server Type: mds, mon, osd" + return 1 + + elif pgrep -f "[c]eph-${daemon_type} -i ${daemon_id} "; then + eerror "${daemon_type}.${daemon_id} is still running, refusing to start" + return 1 + fi + + local arg_name arg_val + for arg_name in std{out,err} respawn_{delay,max,period}; do + eval arg_val="\${${daemon_type}_${arg_name}}" + + if [ -z "${arg_val}" ]; then + eval arg_val="\${${arg_name}}" + else + eval "${arg_name}=\"${arg_val}\"" + fi + + if [ "${arg_name}" = "stderr" ] || [ "${arg_name}" = "stdout" ]; then + supervise_daemon_args="${supervise_daemon_args} --${arg_name//_/-}=${arg_val}.${daemon_id}-${arg_name}.log" + fi + done +} + +reload() { + ebegin "Reloading Ceph ${daemon_type}.${daemon_id}" + start-stop-daemon --signal 1 "${start_stop_daemon_args}" + eend ${?} +} + +# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet: diff --git a/sys-cluster/ceph/files/ceph.initd-r6 b/sys-cluster/ceph/files/ceph.initd-r6 new file mode 100644 index 0000000..fd31b17 --- /dev/null +++ b/sys-cluster/ceph/files/ceph.initd-r6 @@ -0,0 +1,87 @@ +#!/sbin/openrc-run + +ceph_conf="${ceph_conf:-/etc/ceph/ceph.conf}" +extra_commands="reload" +daemon_type="${RC_SVCNAME#ceph-}" +daemon_type="${daemon_type%%.*}" +daemon_id="${RC_SVCNAME#ceph-*.}" +daemon_id="${daemon_id:-0}" +: ${rundir:=/run/ceph} +: ${user:=ceph} +: ${group:=ceph} +: ${rc_ulimit:=-n 1048576 -u 1048576} + +pidfile="${rundir}/supervisor-${daemon_type}.${daemon_id}.pid" +daemon_pidfile="${rundir}/${daemon_type}.${daemon_id}.pid" + +command="/usr/bin/${RC_SVCNAME%%.*}" +command_args="-i ${daemon_id} --pid-file ${daemon_pidfile} -c ${ceph_conf}" +command_args_foreground="--foreground" + +retry="${CEPH_TERMTIMEOUT:-TERM/120/KILL/5}" +start_stop_daemon_args="--user ${user} --group ${group}" +supervise_daemon_args="--user ${user} --group ${group}" + +: ${supervisor:=supervise-daemon} +: ${stdout:=/dev/null} +: ${stderr:=/dev/null} +: ${respawn_delay:=10} +: ${respawn_max:=5} +: ${respawn_period:=1800} + +: ${osd_respawn_delay:=15} +: ${osd_respawn_max:=10} + +: ${radosgw_respawn_max:=5} +: ${radosgw_respawn_period:=30} + +depend() { + use dns logger + after net ntpd ntp-client chronyd + before netmount +} + +is_type_valid() { + case ${daemon_type} in + mon|mds|osd|mgr|radosgw) return 0;; + *) return 1;; + esac +} + +start_pre() { + export CEPH_CONF="${ceph_conf}" + + checkpath -d -q -o "${user}:${group}" "${rundir}" + + if ! is_type_valid ;then + eerror "Please give valid Ceph Server Type: mds, mon, osd" + return 1 + + elif pgrep -f "[c]eph-${daemon_type} -i ${daemon_id} "; then + eerror "${daemon_type}.${daemon_id} is still running, refusing to start" + return 1 + fi + + local arg_name arg_val + for arg_name in std{out,err} respawn_{delay,max,period}; do + eval arg_val="\${${daemon_type}_${arg_name}}" + + if [ -z "${arg_val}" ]; then + eval arg_val="\${${arg_name}}" + else + eval "${arg_name}=\"${arg_val}\"" + fi + + if [ "${arg_name}" = "stderr" ] || [ "${arg_name}" = "stdout" ]; then + supervise_daemon_args="${supervise_daemon_args} --${arg_name//_/-}=${arg_val}.${daemon_id}-${arg_name}.log" + fi + done +} + +reload() { + ebegin "Reloading Ceph ${daemon_type}.${daemon_id}" + start-stop-daemon --signal 1 "${start_stop_daemon_args}" + eend ${?} +} + +# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet: diff --git a/sys-cluster/ceph/files/ceph.initd-r7 b/sys-cluster/ceph/files/ceph.initd-r7 new file mode 100644 index 0000000..110d7bd --- /dev/null +++ b/sys-cluster/ceph/files/ceph.initd-r7 @@ -0,0 +1,87 @@ +#!/sbin/openrc-run + +ceph_conf="${ceph_conf:-/etc/ceph/ceph.conf}" +extra_commands="reload" +daemon_type="${RC_SVCNAME#ceph-}" +daemon_type="${daemon_type%%.*}" +daemon_id="${RC_SVCNAME#ceph-*.}" +daemon_id="${daemon_id:-0}" +: ${rundir:=/run/ceph} +: ${user:=ceph} +: ${group:=ceph} +: ${rc_ulimit:=-n 1048576 -u 1048576} + +pidfile="${rundir}/supervisor-${daemon_type}.${daemon_id}.pid" +daemon_pidfile="${rundir}/${daemon_type}.${daemon_id}.pid" + +command="/usr/bin/${RC_SVCNAME%%.*}" +command_args="-i ${daemon_id} --pid-file ${daemon_pidfile} -c ${ceph_conf}" +command_args_foreground="--foreground" + +retry="${CEPH_TERMTIMEOUT:-TERM/120/KILL/5}" +start_stop_daemon_args="--user ${user} --group ${group}" +supervise_daemon_args="--user ${user} --group ${group}" + +: ${supervisor:=supervise-daemon} +: ${stdout:=/var/log/ceph/ceph} +: ${stderr:=/var/log/ceph/ceph} +: ${respawn_delay:=10} +: ${respawn_max:=5} +: ${respawn_period:=1800} + +: ${osd_respawn_delay:=15} +: ${osd_respawn_max:=10} + +: ${radosgw_respawn_max:=5} +: ${radosgw_respawn_period:=30} + +depend() { + use dns logger + after net ntpd ntp-client chronyd + before netmount +} + +is_type_valid() { + case ${daemon_type} in + mon|mds|osd|mgr|radosgw) return 0;; + *) return 1;; + esac +} + +start_pre() { + export CEPH_CONF="${ceph_conf}" + + checkpath -d -q -o "${user}:${group}" "${rundir}" + + if ! is_type_valid ;then + eerror "Please give valid Ceph Server Type: mds, mon, osd" + return 1 + + elif pgrep -f "[c]eph-${daemon_type} -i ${daemon_id} "; then + eerror "${daemon_type}.${daemon_id} is still running, refusing to start" + return 1 + fi + + local arg_name arg_val + for arg_name in std{out,err} respawn_{delay,max,period}; do + eval arg_val="\${${daemon_type}_${arg_name}}" + + if [ -z "${arg_val}" ]; then + eval arg_val="\${${arg_name}}" + else + eval "${arg_name}=\"${arg_val}\"" + fi + + if [ "${arg_name}" = "stderr" ] || [ "${arg_name}" = "stdout" ]; then + supervise_daemon_args="${supervise_daemon_args} --${arg_name//_/-}=${arg_val}.${daemon_id}-${arg_name}.log" + fi + done +} + +reload() { + ebegin "Reloading Ceph ${daemon_type}.${daemon_id}" + start-stop-daemon --signal 1 "${start_stop_daemon_args}" + eend ${?} +} + +# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet: diff --git a/sys-cluster/ceph/files/ceph.initd-r8 b/sys-cluster/ceph/files/ceph.initd-r8 new file mode 100644 index 0000000..2ef2ed1 --- /dev/null +++ b/sys-cluster/ceph/files/ceph.initd-r8 @@ -0,0 +1,95 @@ +#!/sbin/openrc-run + +ceph_conf="${ceph_conf:-/etc/ceph/ceph.conf}" +extra_commands="reload" +daemon_type="${RC_SVCNAME#ceph-}" +daemon_type="${daemon_type%%.*}" +daemon_id="${RC_SVCNAME#ceph-*.}" +daemon_id="${daemon_id:-0}" +: ${rundir:=/run/ceph} +: ${user:=ceph} +: ${group:=ceph} +: ${rc_ulimit:=-n 1048576 -u 1048576} + +pidfile="${rundir}/supervisor-${daemon_type}.${daemon_id}.pid" +daemon_pidfile="${rundir}/${daemon_type}.${daemon_id}.pid" + +command="/usr/bin/${RC_SVCNAME%%.*}" +command_args="-i ${daemon_id} --pid-file ${daemon_pidfile} -c ${ceph_conf}" +command_args_foreground="--foreground" + +retry="${CEPH_TERMTIMEOUT:-TERM/120/KILL/5}" +start_stop_daemon_args="--user ${user} --group ${group}" +supervise_daemon_args="--user ${user} --group ${group}" + +: ${supervisor:=supervise-daemon} +: ${stdout:=/var/log/ceph/ceph} +: ${stderr:=/var/log/ceph/ceph} +: ${respawn_delay:=10} +: ${respawn_max:=5} +: ${respawn_period:=1800} + +: ${osd_respawn_delay:=15} +: ${osd_respawn_max:=10} + +: ${radosgw_respawn_max:=5} +: ${radosgw_respawn_period:=30} + +depend() { + use dns logger + after net ntpd ntp-client chronyd + before netmount +} + +is_type_valid() { + case ${daemon_type} in + mon|mds|osd|mgr|radosgw) return 0;; + *) return 1;; + esac +} + +start_pre() { + export CEPH_CONF="${ceph_conf}" + + checkpath -d -q -o "${user}:${group}" "${rundir}" + + if ! is_type_valid ;then + eerror "Please give valid Ceph Server Type: mds, mon, osd" + return 1 + + elif pgrep -f "[c]eph-${daemon_type} -i ${daemon_id} "; then + eerror "${daemon_type}.${daemon_id} is still running, refusing to start" + return 1 + fi + + local arg_name arg_val + for arg_name in std{out,err} respawn_{delay,max,period}; do + eval arg_val="\${${daemon_type}_${arg_name}}" + + if [ -z "${arg_val}" ]; then + eval arg_val="\${${arg_name}}" + else + eval "${arg_name}=\"${arg_val}\"" + fi + + if [ "${arg_name}" = "stderr" ] || [ "${arg_name}" = "stdout" ]; then + local log_file log_postfix + log_postfix=".${daemon_id}-${arg_name}.log" + log_file="${arg_val}" + + if [ "${log_file}" != /dev/null ]; then + log_file="${log_file}${log_postfix}" + fi + + supervise_daemon_args="${supervise_daemon_args} --${arg_name//_/-}=${log_file}" + fi + done +} + +reload() { + ebegin "Reloading Ceph ${daemon_type}.${daemon_id}" + start-stop-daemon --signal 1 "${start_stop_daemon_args}" + eend ${?} +} + +# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet: diff --git a/sys-cluster/ceph/files/ceph.initd-r9 b/sys-cluster/ceph/files/ceph.initd-r9 new file mode 100644 index 0000000..cfbd58e --- /dev/null +++ b/sys-cluster/ceph/files/ceph.initd-r9 @@ -0,0 +1,97 @@ +#!/sbin/openrc-run + +ceph_conf="${ceph_conf:-/etc/ceph/ceph.conf}" +extra_commands="reload" +daemon_type="${RC_SVCNAME#ceph-}" +daemon_type="${daemon_type%%.*}" +daemon_id="${RC_SVCNAME#ceph-*.}" +daemon_id="${daemon_id:-0}" +: ${rundir:=/run/ceph} +: ${user:=ceph} +: ${group:=ceph} +: ${rc_ulimit:=-n 1048576 -u 1048576} + +pidfile="${rundir}/supervisor-${daemon_type}.${daemon_id}.pid" +daemon_pidfile="${rundir}/${daemon_type}.${daemon_id}.pid" + +command="/usr/bin/${RC_SVCNAME%%.*}" +command_args="-i ${daemon_id} --pid-file ${daemon_pidfile} -c ${ceph_conf}" +command_args_foreground="--foreground" + +retry="${CEPH_TERMTIMEOUT:-TERM/120/KILL/5}" +start_stop_daemon_args="--user ${user} --group ${group}" +supervise_daemon_args="--user ${user} --group ${group}" + +: ${supervisor:=supervise-daemon} +: ${stdout:=/var/log/ceph/ceph} +: ${stderr:=/var/log/ceph/ceph} +: ${respawn_delay:=10} +: ${respawn_max:=5} +: ${respawn_period:=1800} + +: ${osd_respawn_delay:=15} +: ${osd_respawn_max:=10} + +: ${radosgw_respawn_max:=5} +: ${radosgw_respawn_period:=30} + +depend() { + use dns logger + after net ntpd ntp-client chronyd + before netmount +} + +is_type_valid() { + case ${daemon_type} in + mon|mds|osd|mgr|radosgw) return 0;; + *) return 1;; + esac +} + +start_pre() { + export CEPH_CONF="${ceph_conf}" + + checkpath -d -q -o "${user}:${group}" "${rundir}" + + if ! is_type_valid ;then + eerror "Please give valid Ceph Server Type: mds, mon, osd" + return 1 + + elif pgrep -f "[c]eph-${daemon_type} -i ${daemon_id} "; then + eerror "${daemon_type}.${daemon_id} is still running, refusing to start" + return 1 + fi + + local arg_name arg_val + for arg_name in std{out,err} respawn_{delay,max,period}; do + eval arg_val="\${${daemon_type}_${arg_name}}" + + if [ -z "${arg_val}" ]; then + eval arg_val="\${${arg_name}}" + else + eval "${arg_name}=\"${arg_val}\"" + fi + + if [ "${arg_name}" = "stderr" ] || [ "${arg_name}" = "stdout" ]; then + local log_file log_postfix + log_postfix=".${daemon_id}-${arg_name}.log" + log_file="${arg_val}" + + if [ "${log_file}" != /dev/null ]; then + log_file="${log_file}${log_postfix}" + fi + + checkpath -m 0755 -o "${user}:${group}" -d $(dirname "${log_file}") + + supervise_daemon_args="${supervise_daemon_args} --${arg_name//_/-}=${log_file}" + fi + done +} + +reload() { + ebegin "Reloading Ceph ${daemon_type}.${daemon_id}" + start-stop-daemon --signal 1 "${start_stop_daemon_args}" + eend ${?} +} + +# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet: diff --git a/sys-cluster/ceph/files/ceph.logrotate b/sys-cluster/ceph/files/ceph.logrotate new file mode 100644 index 0000000..df03f5e --- /dev/null +++ b/sys-cluster/ceph/files/ceph.logrotate @@ -0,0 +1,18 @@ +/var/log/ceph/*.log +{ + rotate 7 + daily + compress + sharedscripts + prerotate + for dmn in $(cd /run/ceph && ls *.asok 2>/dev/null); do + ceph --admin-daemon /run/ceph/${dmn} log flush 2>/dev/null >/dev/null + done + endscript + postrotate + for dmn in $(cd /run/ceph && ls *.asok 2>/dev/null); do + ceph --admin-daemon /run/ceph/${dmn} log reopen 2>/dev/null >/dev/null + done + endscript + missingok +} diff --git a/sys-cluster/ceph/files/ceph.logrotate-r2 b/sys-cluster/ceph/files/ceph.logrotate-r2 new file mode 100644 index 0000000..74d96e2 --- /dev/null +++ b/sys-cluster/ceph/files/ceph.logrotate-r2 @@ -0,0 +1,33 @@ +# +# /etc/logrotate.d/ceph +# + +/var/log/ceph/*.log +{ + rotate 7 + daily + compress + sharedscripts + prerotate + for dmn in $(cd /run/ceph && ls *.asok 2>/dev/null); do + ceph --admin-daemon /run/ceph/${dmn} log flush 2>/dev/null >/dev/null + done + endscript + postrotate + for dmn in $(cd /run/ceph && ls *.asok 2>/dev/null); do + ceph --admin-daemon /run/ceph/${dmn} log reopen 2>/dev/null >/dev/null + done + endscript + missingok +} + +/var/log/ceph/console/*.log +{ + rotate 7 + daily + compress + missingok + copytruncate +} +# +# vim:ft=conf:ts=4:sts=4:sw=4:noet: diff --git a/sys-cluster/ceph/files/envd-tcmalloc b/sys-cluster/ceph/files/envd-tcmalloc new file mode 100644 index 0000000..bdb0967 --- /dev/null +++ b/sys-cluster/ceph/files/envd-tcmalloc @@ -0,0 +1 @@ +TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=134217728 diff --git a/sys-cluster/ceph/files/make-node-frontend-tarball.bash b/sys-cluster/ceph/files/make-node-frontend-tarball.bash new file mode 100644 index 0000000..0a8015f --- /dev/null +++ b/sys-cluster/ceph/files/make-node-frontend-tarball.bash @@ -0,0 +1,140 @@ +#!/bin/bash + +frontend_path="src/pybind/mgr/dashboard/frontend" +node_dir="node_modules" +output_name_format="ceph-%s-frontend-node-modules.tar.xz" +cache_dir_format="ceph-%s-npm-cache" + +# regexes for modules to remove +remove_modules=( + "^karma.*" + "^jasmine.*" + ".+/jasmine.*" + "^tslint.*" + "^codelyzer" + "^protractor" + "^ts-node" +) + +# location to find dependencies to prune +node_dep_location="devDependencies" + +# node package files +node_package_file="package.json" +node_package_lock="package-lock.json" + +# system commands needed +dependencies=( + wget + git + gzip + jq + tar + xz +) + +check_deps() { + local dep + + for dep in "${dependencies[@]}"; do + if ! command -v "${dep}" >/dev/null; then + printf '%s: ERROR could not find required command "%s"\n' "${appname}" "${dep}" >&2 + exit 1 + fi + done + + # make sure that jq was compiled with support for regexes + if ! jq -c 'map( select(. | test("TEST"; "i")))' <<< '{"TEST": "TEST"}' >/dev/null; then + printf '%s: ERROR: jq does not support regular expressions, make sure the "oniguruma" USE flag is enabled\n' \ + "${appname}" + exit 1 + fi + : +} + +get_npm_packages() { + local tempfile jq_regex full_cache_dir + + full_cache_dir="${PWD}/${cache_dir}" + + pushd "${source_path}/${frontend_path}" > /dev/null + if [[ ! -r "${node_package_file}" ]]; then + printf '%s: ERROR: could not find "%s" in "%s"\n' "${appname}" \ + "${node_package_file}" "${frontend_path}" + exit 1 + fi + + tempfile="$(TMPDIR="." mktemp packages-XXXXX.json)" + + jq_regex="$(printf "%s|" "${remove_modules[@]}")" + + # filter out test only deps that pull in precompiled binaries + # shellcheck disable=SC2031 + jq --monochrome-output --raw-output --exit-status \ + '."'"${node_dep_location}"'"|=with_entries(select(.key|test("('"${jq_regex%|}"')")|not))' \ + "${node_package_file}" > "${tempfile}" + + # make sure output is still valid JSON + jq . --exit-status "${tempfile}" > /dev/null + + mv "${tempfile}" "${node_package_file}" + + rm -rf "${full_cache_dir:?}" "${node_dir:?}" "${node_package_lock:?}" + + npm install --ignore-scripts --cache="${full_cache_dir}" + + popd >/dev/null +} + +main() { + local appname source_path version cache_dir + + set -e + set -o pipefail + shopt -s nullglob + + appname=$(basename "${0}") + source_path="${1}" + version="${2}" + + if [[ -z ${source_path} || -z ${version} ]]; then + printf 'Syntax: %s \n' "${appname}" >&2 + return 1 + + elif [[ ! -d ${source_path} ]]; then + printf '%s: ERROR: Not a directory: %s\n' "${appname}" "${source_path}" + return 1 + fi + + check_deps + + # shellcheck disable=SC2059 + cache_dir="$(printf -- "${cache_dir_format}\\n" "${version}")" + + get_npm_packages + pack_tarball +} + +pack_tarball() { + local output + + # shellcheck disable=SC2059 + output="$(printf -- "${output_name_format}\\n" "${version}")" + + tar caf "${output}" \ + --numeric-owner \ + --anchored \ + --owner="root:0" \ + --group="root:0" \ + --exclude-vcs \ + --transform="s:^${source_path}/:ceph-${version}/:" \ + "${cache_dir}" \ + "${source_path}/${frontend_path}/${node_package_file}" \ + "${source_path}/${frontend_path}/${node_package_lock}" + + printf '%s: Output written to "%s"\n' "${appname}" "${output}" +} + +main "${@}" + +# vim:ft=sh:noet:ts=4:sts=4:sw=4: diff --git a/sys-cluster/ceph/files/rbdmap.initd b/sys-cluster/ceph/files/rbdmap.initd new file mode 100644 index 0000000..9313cf6 --- /dev/null +++ b/sys-cluster/ceph/files/rbdmap.initd @@ -0,0 +1,122 @@ +#!/sbin/openrc-run + +DESC="RBD Mapping:" +RBDMAPFILE="/etc/ceph/rbdmap" + +extra_started_commands="reload" + +depend() { + need localmount net + before netmount +} + +start() { + + if [ ! -f "${RBDMAPFILE}" ]; then + ewarn "$DESC : No ${RBDMAPFILE} found." + exit 0 + fi + + RET=0 + # Read /etc/ceph/rbdmap to create non-existant mapping + while read DEV PARAMS; do + case "$DEV" in + ""|\#*) + continue + ;; + */*) + ;; + *) + DEV=rbd/$DEV + ;; + esac + ebegin "${DESC} '${DEV}'" + newrbd="" + MAP_RV="" + RET_OP=0 + OIFS=$IFS + IFS=',' + for PARAM in ${PARAMS[@]}; do + CMDPARAMS="${CMDPARAMS} --$(echo ${PARAM} | tr '=' ' ')" + done + IFS=$OIFS + if [ ! -b /dev/rbd/${DEV} ]; then + MAP_RV=$(rbd map ${DEV} ${CMDPARAMS} 2>&1) + if [ $? -eq 0 ]; then + newrbd="yes" + else + RET=$((${RET}+$?)) + RET_OP=1 + fi + fi + eend ${RET_OP} "${MAP_RV}" + + if [ "$newrbd" ]; then + ## Mount new rbd + MNT_RV="" + mount --fake /dev/rbd/${DEV} >>/dev/null 2>&1 \ + && MNT_RV=$(mount -vn /dev/rbd/${DEV} 2>&1) + [ -n "${MNT_RV}" ] && einfo "mount: ${MNT_RV}" + + ## post-mapping + if [ -x "/etc/ceph/rbd.d/${DEV}" ]; then + einfo "RBD Running post-map hook '/etc/ceph/rbd.d/${DEV}'" + /etc/ceph/rbd.d/${DEV} map "/dev/rbd/${DEV}" + fi + fi + done < ${RBDMAPFILE} + eend ${RET} +} + +stop() { + + RET=0 + ## Unmount and unmap all rbd devices + if ls /dev/rbd[0-9]* >/dev/null 2>&1; then + for DEV in /dev/rbd[0-9]*; do + ## pre-unmapping + for L in $(find /dev/rbd -type l); do + LL="${L##/dev/rbd/}" + if [ "$(readlink -f $L)" = "${DEV}" ] \ + && [ -x "/etc/ceph/rbd.d/${LL}" ]; then + einfo "RBD pre-unmap: '${DEV}' hook '/etc/ceph/rbd.d/${LL}'" + /etc/ceph/rbd.d/${LL} unmap "$L" + break + fi + done + + ebegin "Unmapping RBD device: '${DEV}'" + UMNT_RV="" + UMAP_RV="" + RET_OP=0 + MNT=$(findmnt --mtab --source ${DEV} --noheadings | awk '{print $1'}) + if [ -n "${MNT}" ]; then + einfo "un-mounting '${MNT}'" + UMNT_RV=$(umount "${MNT}" 2>&1) + fi + if mountpoint -q "${MNT}"; then + ## Un-mounting failed. + RET_OP=1 + RET=$((${RET}+1)) + else + ## Un-mapping. + UMAP_RV=$(rbd unmap $DEV 2>&1) + if [ $? -ne 0 ]; then + RET=$((${RET}+$?)) + RET_OP=1 + fi + fi + eend ${RET_OP} "${UMAP_RV}" + [ -n "${UMNT_RV}" ] && einfo "${UMNT_RV}" + done + fi + eend ${RET} +} + +reload() { + start +} + +status() { + rbd showmapped +} diff --git a/sys-cluster/ceph/files/sysctld b/sys-cluster/ceph/files/sysctld new file mode 100644 index 0000000..4d13326 --- /dev/null +++ b/sys-cluster/ceph/files/sysctld @@ -0,0 +1,2 @@ +# up the global pid max for ceph +kernel.pid_max = 257256 diff --git a/sys-cluster/ceph/metadata.xml b/sys-cluster/ceph/metadata.xml new file mode 100644 index 0000000..141b26f --- /dev/null +++ b/sys-cluster/ceph/metadata.xml @@ -0,0 +1,41 @@ + + + + + chutzpah@gentoo.org + Patrick McLean + + + dlan@gentoo.org + Yixun Lan + + + cluster@gentoo.org + Gentoo Cluster Project + + + Ceph is a distributed network file system designed to provide excellent performance, reliability, and scalability. + + + Add support for LTTng babeltrace + Build support for cephfs, a POSIX compatible filesystem built on top of ceph + Enable DPDK messaging + Enable local diskprediction module to predict disk failures + Enable SPDK user-mode storage driver toolkit + Build fuse client + Install grafana dashboards + Rados Gateway's pubsub support for Kafka push endpoint + Add support for LTTng + Build the ceph-mgr daemon + Use sys-process/numactl for numa support in rocksdb + Use dev-libs/openssl + Enable PMDK libraries + Use rabbitmq-c to build rgw amqp push endpoint + Add radosgw support + Enable librbd persistent write back cache + Use system dev-libs/boost instead of the bundled one + Build with support for sys-libs/liburing + Add xfs support + Add zfs support + +