diff options
Diffstat (limited to 'sys-fs/zfs')
38 files changed, 6166 insertions, 0 deletions
diff --git a/sys-fs/zfs/Manifest b/sys-fs/zfs/Manifest new file mode 100644 index 000000000000..7f56c7386dbb --- /dev/null +++ b/sys-fs/zfs/Manifest @@ -0,0 +1,64 @@ +AUX bash-completion 6203 SHA256 15e742477fad0104871fc055b6ce9bf803540070e47fa515ea7ca3c1a401f831 SHA512 e7ccb7179c4c455c496daab192099d7553674b9505801e25a2ea8c67a1b4de15d68ac99b2c3347c1f3454f88ede7694f08da61c5d061f0577bb1594ca4a90f12 WHIRLPOOL 79dfdc9c80a707f6bb39bea51ec451c16b821886ce3e84c73a249313d991cf8019f0647b0fe439754fc1ad08cb294bf4c245955fdc4af30286a8afd61dba21ba +AUX bash-completion-r1 11310 SHA256 b60214f70ffffb62ffe489cbfabd2e069d14ed2a391fac0e36f914238394b540 SHA512 03be521e2c646196766d5fd049f241cb97f290abf0409881ea6ba709934984deda402c8513009e62a5787e0648023b55c040e5f99baef27709e81c3bc9c8f56e WHIRLPOOL b09558e80a96993c52915093c1c3f8488d0ef9294d2e401546c21998222f377e211ff368e18e8ba3b1dea7554a467cc3e32c882a1d872719d82f5e2c1ccd5848 +AUX zed 442 SHA256 feaa9731242d6cc9d497ab1cd729eac1bcb2cc5b6eead1120000d33bb62d417f SHA512 b128ec3b37aa9b55fa50a807af91a85190d2cb32395468605e139c352a0db56297e5086615342384bb6e1c092bf0950301ce4e51000db610b50628502cc8b0bb WHIRLPOOL 9bd1c42c05c16ce52883444c144ee8c740aac709888d3ba4d3609e3413fbcd6a6d82b9514f7ac200fdc993930da31993c8b0a16b46b3d13e44b52e70d7f186d4 +AUX zfs-0.6.0_rc14-fix-libzpool-function-relocations.patch 1159 SHA256 bd40a60408772cfe789bd0f055906cd2aebf43761adb2cb19ca6219c92c5f996 SHA512 aba0ee09e0070ee7472ffeb0274fdac1870e6a11390c110e9febd7240eb8465351355ce6b735d3f0a6ce2ce5bd167a4239ececc3dae33899df3b4f72c162f037 WHIRLPOOL 72635866ef46b592d257071d4902d36b95855850e40de0b6a6afc6ad416460ebdc5b2ece67d011a052895ab6ae9135d77622f7fb15f4cc0f3a6b96df6c2581d2 +AUX zfs-0.6.1-avoid-zdb-abort.patch 844 SHA256 651ece4a40b842c00d393d3f969435f733a987cc420f9a300ed2bd1c78e94dba SHA512 d976e0a829ddad680449d0a4d89a7130fb113668bf6766e3004df47a14620e26910e3d0f7cc2f8d5a7cef4a7ba3794ed36624d63ee6c577585d80964e931becf WHIRLPOOL fa47408a8116d5b72f322bbe878f2275febfca613e8718406ed566be23a4a8715113be66c1694c4272f6fc5c26aae78dbd2de31c095aa0cf95dbc7d13d276d4c +AUX zfs-0.6.1-fix-gcc-4.8-warning.patch 1432 SHA256 2a2fb2a0b4960e7c616f4bb27a2a1ddf6dfcef30eb6b22ead20d70fe58055c1e SHA512 6063ad756aac5df4b850fb79630696f0616e3a906463bdce147b07383ed1cba47a60e02eac3cc2888fb92f9915e6ff8e28ca36c4e3d11cc9e65391c68a79d972 WHIRLPOOL 4d0432ca6468d44de7a870e03d20497eeb39b1e373d843862a695622b9d69e8eff6f3d52471b7756f80c9392ae12a797b6665c4d27f73710f67f0ee1aaafcbad +AUX zfs-0.6.1-fix-zvol-initialization-r1.patch 4803 SHA256 36f778dc0fa3c3c7aa4f2383e9463a75c51da19a1a719018f729e9d42ffb52ed SHA512 bfe5ee1185fe044cbf758414b0c8bc4311de6b0502a6f0c6a8fecec71402376f0ab4aa7e798f870c262f54d77f6b84590cc2ae371ff4880dcd97b834ac443483 WHIRLPOOL 3932ef6eea9ed0f23146f980504540843b04a684d5c55cdb5aec60d9fdb18354d61e485b55f5a0f2561ed3e379accd6b3d3f7c39bdbc91bc0d3194546e75ec5e +AUX zfs-0.6.1-gentoo-openrc-dependencies.patch 2416 SHA256 01b4def8e15eb8854d87529d4540b7b85c927b64e81112cecf13a5aa30c1bc31 SHA512 d4012fb14f3c599d763b6412c092b95d76297afd4d65b71a602485357505aa1fbdc7f5ad437b5634365311349f1a29adcc1dd0e7d20cb85802ce58c0dd393d3c WHIRLPOOL 9c4e3ece9773efc5ec99f9a453eca4656d8e64ac47735878313cddbae8a64ba34503c4a3dd206e658c47f1b9360d545e497838e455af90b87ae4a935d28172f6 +AUX zfs-0.6.5-fix-openrc-scripts.patch 8250 SHA256 a71d6e0cc37684deb588e64ff4fa4bdeae6d45e04f2cb90c4b21d71be0a4f7e4 SHA512 f28b2884706ac38b71d08dd1a49bd9e41450069814a3f51ebfebf6b8dd808bbcc9516d62f4c39c72b1276114fc9f920c679022e35c8acc3a5891e06ae8c85ee1 WHIRLPOOL 96d31aa51219097928eaa5cd71576c44f94f6727d5b7ae9077cebf30cb7e4da0babced6a1baa47ef8d135e37406386ee579bbdacea6557af9836adbf7163c9c2 +AUX zfs-init.sh.in 582 SHA256 820cbbfe881315a640ea398c0c7eac60d2eeb191f694ef69f3e8ea725a8de085 SHA512 bed7eae5f902f13489241782d3d560b53a5a3258de492763b7b25783ca9417975afb9000f68f58be5c2057e1db50a569374ed0ff572140aa65e401e20e646461 WHIRLPOOL 3e9ec22a60a9ba4e71cfab74b25d5ad4aff1b64bfb210d31fc36d5a768527e8b692fe3a9712d9f6bfa8f08e03f7e92ed035a3d8bf4e360b22fa4a4e5b9e9d214 +AUX zfs.service.in 334 SHA256 a9db484e4087a814bdb24814895450c700246f1880fdfd4c29645bb7acd72f05 SHA512 f1066c8b06d2501be9c080a78bfd28ac7566a05bac5ddff7915836d083f8e791bbb2fd5e70a7633a0407762f12fd240d2ef049ed5244c4c4727e42f2332117e2 WHIRLPOOL 173449dcb7312c528d21eeb763936affc849f049e4b647d426296b3a35c5f0c86f056e4c0de7866c62a28344a8a734f42b34822fe5573f7873575be0434105b3 +DIST zfs-0.6.0-rc13.tar.gz 1490582 SHA256 3e689fc0704237c7d755c65e34ed214a262535afefafde4aef0f112f8c833a09 SHA512 c9bbf1fb7f293a0f5b1247e17c411073994bf419d5f6c1b781efeeb4022f62851e8ea3cf7ee0330b0609bfe13b8084c48f00e942ce52323d706733cccf49699e WHIRLPOOL 97083a6f5d66addc9bc7b3cc3f7dd3bc1696980affbd4033d71cd09ecad413ffb666a8a185dfa2e4f20dd4003746ad61d12142f7a6556db5b34008716c933798 +DIST zfs-0.6.0-rc14.tar.gz 1527612 SHA256 5eae8ef790b26e0dd7c801cc0a235a631ad91d67f148a444d912dbeb24b9a12d SHA512 ad38544ced150ce500c78507782e53a8534815b819e5b9aefda6d670fb7905e31a42cdb4d45164700df48673ea7c42bd1d29a60f1f00e25271b3906de9212d15 WHIRLPOOL cfd4de541eb6c18ee4df8950883525d1b1887e0d9c5f840d97353a5d716ed639f1ab3dc0fe4d8368a890564f10053026bcc738b6066c4488647f1b83be54288d +DIST zfs-0.6.1.tar.gz 1535521 SHA256 42ed127f74af0ecafc14800a5d2b766655f5ea821098aba92446c1c447093fad SHA512 ef583639f15a5b2e4582760bb013ab5091abc15bae17884d811afec707aff337248102a22fb9fb6f62f99cb3477a8ae82edfdcfdfb962276f593173a5dfe5871 WHIRLPOOL a6791fc2d384e03073abc850f99ba761afd18073337264d8a7bc08b4ddc6fff52df5ce11addc9a3ac7cdfdd9ce9bd779208e515cda631ec19de05fbf9f92307b +DIST zfs-0.6.2.tar.gz 1558656 SHA256 91b844bf7a42df22d7533e8004289270b7859b8fcbca3bff8087a79b131318b4 SHA512 008f9decdea3e92f6d74f5369ec9df5776b15efbb9f2bc01012999b71e1f2bc5b46b310a329b60545907dcc78773ec79eb6d21aca49d911f33299fd0a36e1a4b WHIRLPOOL 587279866b6ffa2bfebc91f00cb28de85f7f186426a0292f44c6cde7ca3a51c1911fc0ee431c25c3ee0866174522f90ce04b54de4aa3dc0829ba3a719e47af58 +DIST zfs-0.6.3-patches-r1.tar.xz 87852 SHA256 71b5286f77cb6a6c2b97cee406dfd4788f7b40b6675c4a56fc630a47e90d5280 SHA512 e2fa573c7b30a3811e9e1596d35b65f5d013ed5bac43e364b44ffab734398a3294979c152a80ec9a722611cc7c971aec217d8e1a37cc9240a3fa2dddb5b90e3b WHIRLPOOL f2da02d5c7d2385e7de1e858c31d299632ca864d422f0c94e5d3b8674d24beeb073ad2600698350306a9e70dbeef390f0e513d19c126502fceec18795c203d50 +DIST zfs-0.6.3.tar.gz 1665270 SHA256 00caeae63cc724d3dd741aeb36fd2dc03d2158794bd6a5e925cdc8d7e5d3da8c SHA512 8c7741f5f227eb031d79fe87bf7d60e790a098fa6caede462d556c97d798832f97f5a377cbb74fc99b8d198e5f3cc1a3491f69fcdaa0408933dbadd132013416 WHIRLPOOL db9791da12c441c89667b194154b209f5aa69ea46d5327cfcde0b3a910cf1f0e5ca448909824e45b31252a1907280b711fb6ba04eb313d09de0ffbf5e6e304fe +DIST zfs-0.6.4.2.tar.gz 1738601 SHA256 26af2924cbb891b79203a31827cba4cdc310162d5f7b9e2d643eb6576aa19015 SHA512 87a28997b8f9d36e189410171db583402418a55782b7b7f333993e98c5e17ccc4b6cd5825f38b904294c87e3dfdfb7748bd71cc371589c1358f16c942e0c18db WHIRLPOOL 1700de7da56311a7b608c99a821e2fa97a6145ccc88f3d8eff12f778421ba7b7b9cc5f5fbe5f1acd2ea2fd1db778c200a2ea961e3859a8fc89d80474894293f1 +DIST zfs-0.6.5.10.tar.gz 2597676 SHA256 90a0ca76667076e9f58776216cb761f68761eb0192f8b0c45893f84cabc6f27e SHA512 822004d11a1a7c0e258cce049bfee0248dd1ac225a922c1e4a25c8593f23e9b1d7aa4a45a1122f6904025ea0a8c7f4884ec4ab353bfa9c734aedb0969b8d6eb4 WHIRLPOOL 87596a0e89afd3b7da1476c996c87491ee3962f0accd0c1a50d9cd9ab4dd49b3c1c71e14c6eeeddfc53db9bba665bc525ef9580da8082b1e4426bce54ee83401 +DIST zfs-0.6.5.11.tar.gz 2521959 SHA256 136b3061737f1a43f5310919cacbf1b8a0db72b792ef8b1606417aff16dab59d SHA512 877052da2a0cdc78b10cb5041da55e31242db2618c502997f4df9aa46a14482c7f33adce8d21aaf16164a9fe52edc358922ea89c8e109c3247e107bf607d6451 WHIRLPOOL 867f6b22726ca13e43a5ff7a832610bbfd44e6c367bd314a20a7f0a03364b1c3bda1d7b3d7c3502e08249b8d8d9e8034e93d0200abb70f793352f7689e19deac +DIST zfs-0.6.5.2.tar.gz 1817267 SHA256 aecd2bc5189f2a71a45eb222230146bed231af4f35af5ec7af83a74987c3d595 SHA512 7f0b20feca91d5ab952c1d49ae94d241f8868825b163a3d5f2ad0fd7adcac3ab246a3e6a755019a833be553fbbfd6609828d8123f49a43b42bf76cfd64f234ec WHIRLPOOL 00fd628ef2267366b6f0705e6436ac55b260aabc3588c7f58a7042dfbfe95a0478740b4579326638d28f10ffc8f2d5b3ed21b9f8297e72344ec439fe30310634 +DIST zfs-0.6.5.3-patches-p0.tar.xz 63780 SHA256 cc6d2881304738619b9d00bc55fbd358119b35cbb345cae2ecf538051f1b7fe7 SHA512 4a531fd10d1d4d9c9cabaad9c13d8112eab3641249a7ce44599288bc4510b444d132833fae2fdf922eff43670ce77d32972c7b5b4a7d70f80c3365a0dcc89b70 WHIRLPOOL adc20e7917a518c790007499763210a4d27a164abe00a86f76d64f56f0fafc459f5d5c483019acacc136e41c57894e669fd58956b3f0ac0bcafeb1e02fec7988 +DIST zfs-0.6.5.3-patches-p2.tar.xz 85996 SHA256 0e38b1bd7e2eb96c74b3eaab49c14f1f65fa02dc42b62b6015200185bfc911c7 SHA512 0a8fb131cc9a5a239a7434593000259a581b20ee7c6fef87ec2ea78281b7887151e219ebe66603b9dafaa4fa22cbf8c55175e1f6b36af4502c147c478f0b3e38 WHIRLPOOL 726bf1c05605943a205e2e70099c6cf8c7ba8cc9bbf34d45a2d56cea87c1e23166700979e47c82dd91bd1778e297dd211a0e6f48e0eab2392471218bcb5853ce +DIST zfs-0.6.5.3-patches-p3.tar.xz 88736 SHA256 031cd97765f890d9b78e1a5746cbd2a3ce06c7208693ec75c0b47324ac67b97a SHA512 8f17cc6e02a35828a57a7c2a437d9d18a41203b6e3f9e154b2ab863296b64596dc827afeeb0f993e37f47881d0f2ed4834f270d0ba843ab84b21c491cc352576 WHIRLPOOL 20f69c0a936bb612d5e3b551d4bf904aca3aff6d885d72f67f3b14cd720094ec13e383032ee4e322b0e81017d8ffcfafb47bf07f273badef34f7210d687ddacc +DIST zfs-0.6.5.3-patches-p4.tar.xz 89140 SHA256 34114671614aec3b33b17e6fc66a31549b3dd3e1d21ccd68d6987a1e1641f86b SHA512 3f8a4490e654a2d13bf4d31ee688276243244d4e0ab7c7911d597730bbbf6c9d7dea8e075409de4c22e871928cd647ce3064a671a1259f3adaf2b27bcc5370b8 WHIRLPOOL a63c0a2eff6c29c9600e4aaafa7120a0c1bd9bdf9b2f1e52d5a85df2c02e5e924ed74a406919cff9353a77c697dcf4248749ad6a7137f17dc427c7f0d63ea99a +DIST zfs-0.6.5.3.tar.gz 2524218 SHA256 49e6f9760ea172cb756f7357e4bcb90ee0293028540a68d62ed087724276131f SHA512 325cb91b7ddbcd6aa0bb9fc41eb0099dbb047a4e32d096fd414799729ef68cbc9c2e15714092eff8044a681af4ab552bd9ac1949cc673c6c5c3de1a23d9895ec WHIRLPOOL 957c3a75bb11befd4b74583883f2f11f717deb6bda368939b342049e809aa191a9ee8d1e709eaddc2a831418c7fdb5e763f918ff56d45f03baf4569ef8a4a070 +DIST zfs-0.6.5.4-patches-p1.tar.xz 64004 SHA256 83877d9b7c629730838325fd5b16bcb54259520e200f0539de9b8edfdcee9403 SHA512 9203356b43bdad2ed78c946af8c95c9fc4d2996b41a09a3b1f5a8657d2742ac69d10b4a87d443db497d591878cf7a70ebb19762b0df135ee25f4e8d2ed6ad71f WHIRLPOOL ff5788356d6a85608d22ea2c010a799464922614204c7eea06b57930a44ee876e596a053a773205de0543d36c04337d60c32594939e8e64d3022906c51c4d4e6 +DIST zfs-0.6.5.4-patches-p2.tar.xz 63912 SHA256 bbcfe43ee4a46deed86543d23abd31bbc662408f56ef8f7c9500dc25fecd49c4 SHA512 9f598c2a750b92dadddb677a6a9dda4573fa91421a82270d8104d718da4b945a4d5412bab92037a033cec1ec177f2a0eb52207babd023847918e3754054ec5e9 WHIRLPOOL bab1330c7489dd172c522300698f6a2d670a2f6ddcf8cd2566d1daffe8b41a3667755ad1ab377d07716af66449f7332974bcd7df4647bb028b5f5279c59c428c +DIST zfs-0.6.5.4.tar.gz 2506470 SHA256 780862ec2301ccace412a324787e9df762cff6046e73e2ac0ebdce9e2bd59b0f SHA512 90c87cd95fd06cf34755358e7cc4053d19f351316133f0b808e7585a3fc8f82e7c0f49072c2995d0520de5104fd04d91a166a0d5b6c923c82dfb2fb4f7f57a01 WHIRLPOOL eacd2ec09afdbc3f6d946583116296fadcd7d0dea5158c89f82f6d0b02e0cbf075712015bfa5f321ae5815cf86af13b39ce93e5026e6a00da58d9ddb04d12320 +DIST zfs-0.6.5.6.tar.gz 2561093 SHA256 c349d46d86b4f61cd53a0891acad916cfc3f0d6754127db7f60a0bd98185aeff SHA512 94c55a50f0f9a90ce07a45dc72bb2730b2a41373ab5a12845df00ef38bb22e4a80ab2fb6e31a9c3a45e51516cdea441bb9da1d0acf71f2f88b38c7c3e9e995b0 WHIRLPOOL 6fcbe473bfce90f800989bac506fa6d4cf5662ad9ca617a477f1251c1625de906495a45759d6190e5a24dcf05f2ed3dd7ea1c0b2f243165a60e5efd098082935 +DIST zfs-0.6.5.7.tar.gz 2537816 SHA256 4a9e271bb9a6af8d564e4d5800e4fff36224f1697b923a7253659bdda80dc590 SHA512 559b826ae1a176217b92d8407729e2c5feeffb117dc9affaa8c9c2134d996b6c3cbe095f7a0c4666c9b131742491f1304eeb292e13e0df0b6d001fa620568af2 WHIRLPOOL bf2e0865de35496cc995738ddde34df797b0c5047c0dd17e5b755803ef16e7c16f8ba89927106a1f6131c2f75a6749c31a72dff95fc0fee186b308c50ce0b4f4 +DIST zfs-0.6.5.8.tar.gz 2521921 SHA256 d77f43f7dc38381773e2c34531954c52f3de80361b7bb10c933a7482f89cfe84 SHA512 e5b53a9531b865e7c650892c0deb1ee81db086a33538cd667a087a8a8d33a0ad93a30ae5e800096abfc4dc8ed00843da924230082e204fb7543dd401ef41fcde WHIRLPOOL 623bf8ee51d59dcd1842bf41ccf19c2eb6813fb1e88dea1ea1c6f1388c11484b798546bdcb94500735a0e9e5f9099a4df43308760b353b5b62ff56af035f88bd +DIST zfs-0.6.5.9.tar.gz 2610650 SHA256 b724b57dbddae59246fdc15f88f1224061c712945bb36412a2087e0c7760d77f SHA512 6e175f32421cf0f9e13429f12f0fac0564dc7059ab076831d0ebc4f6a17412160ca3526ebdf894bc7666e82580355b08701dd01c411d3177f82e7330b4529a37 WHIRLPOOL 149d730a26363b50691363b314669756d218c4a16e6d06e319c2b0866c5f8ed6e2da2396a516297c127d3343d51d78072d8b7371e3f4d327d30fa43c90be5cd3 +DIST zfs-0.7.0.tar.gz 6714094 SHA256 6907524f5ca4149b799fe65cd31b552b0ae90dba5dc20524e1a24fc708d807d2 SHA512 6e6cbf54399fc85b74b76a6ceb3f30e94903f755fe6386fccc56b5e6d307a907759e4b62acec5d32e8383ef1083423eaff8dee2b0ef01a99459171a42b47d217 WHIRLPOOL 74687be4220bab51f18fdd3c047400c4261acf16f38086c2485f5cb9d79af87f5adfafced92860b021814aece7446cb18e9ca310a363b90c6bac39343b72a4b6 +DIST zfs-0.7.1.tar.gz 6376234 SHA256 231b104979ddacfeb1889e1dec175337276e7b3b109d40656089744b5caf3ef6 SHA512 64b0a3b5eeaf09ce824e3e029880a8e5dcb3e4567d1fb2fa24c89d8e55fee1ebe2d2f3a9f77d5468cc5637074e27d5ba7696b566829c93fd69c610b288200a37 WHIRLPOOL 700c83aadca96578ae8d6a9795f91c0c25b69afcc6ec6c02141daafcbcd550ae413438e96c4821c5c90816e0e29366ecfc3e7289623f14c255722c37d9f9a7f6 +DIST zfs-kmod-0.6.2-p4.tar.xz 63984 SHA256 9167edc4be86e3fcda6b3c198e51f92ab0c95ac5baca11666c28029a628cdac9 SHA512 13e4ec415c35d2f268d89565745f5898c0943423577a2ba6714b3a069c5a80f244cd06dff91464f38dd4ed60673d1145ead080bb03a56d4be33e328f948ffa64 WHIRLPOOL 8c399ec67119ed4fbebb5599d00f888918678bc4e4ea369b4bdc5c75bfc90fc76396087624c8011de370a54ff103bccaa8922d05ac7ccebb2b3481bbbcf44b19 +EBUILD zfs-0.6.0_rc13-r2.ebuild 2670 SHA256 75422b6fc4e7965f79d3f216111b4f5eee128978b2a1928b27c621a8e92c8973 SHA512 f2ad5697ae9c1f36a14952ed105153079323e911695089cf3c0ff8f0cc370598a69610d45d6edd3a95f3ff13cb855e96e9140d8e8f14561b7e34c6d64afaeee7 WHIRLPOOL 310fd967842bf67da3d8bbc05aa15b83bf180c8ef6eba39ea8a3ccb1f0679972874291dcd7d6bf7b51e2c02e544bd91bfd6c050965d962e7c6d698f87914aa20 +EBUILD zfs-0.6.0_rc14-r1.ebuild 2801 SHA256 6b344e1c08e713ee786002026c5f6cbee1bdf62f93d698e63787e7c55275db30 SHA512 c0cb816ead51e183bcd2ec7cb4469c6df5b5e68fa7e9ac707ea4863f10631cc096a14a755dc2824b4e4ea42a1ca9a7c506adde7044ed8bea1113118a077b46ba WHIRLPOOL 42c5c48c6f5a766284e4421ba221f60e229938dba0b2fc2223317561eee5ce7c20655a96c12b629294da44604b46a26f88d02e4dfe062994bdb238a7668fbdb6 +EBUILD zfs-0.6.1-r4.ebuild 3641 SHA256 910501827f7b83d612b23edcd3a18e6df4b9b8148c41cc0dbd7e94837b648df2 SHA512 70d9166defdcf8a08f8000df8cf08a4364fd4f331ce55cfe2bab51a5c8da9e3eee538019ec42abea9d8b72fa4a4602f5cd56a96b8b3b4838ebb79b6ee17644c5 WHIRLPOOL 81149281afaf43abdb577048df9b3c21af86179bb01f7865d3acea362d758396e0507131950ce0e97d753d40913d8c6a9940521fcb5eb1783bc76b6c4361cdbd +EBUILD zfs-0.6.2-r5.ebuild 3581 SHA256 21705e7d5b7de5ae5c407bd4a3e5866d101977393f5ab65000b28a16e260a015 SHA512 2d1095a074e3659409b96902df7115e056a7650db5d82bced6cfc873bd88cbf5315395706a9f6eebc63ff2001df1ad4606340f1a49500199bc41b794b8a26841 WHIRLPOOL e0c445c8f4532792988695b09f0ea1602d2f09ee36abd1ddffa8cfd8ecf0177c08f0a3e0a326e346325a2a4ff7534bbeb23d0c572e7d4a357118e269e36e0684 +EBUILD zfs-0.6.3-r2.ebuild 3458 SHA256 7d2b9180a6180bc502b586dfc521a9b6bdcd100240c3e9b13d94b894c4aae5fa SHA512 3217775779d3c1c2bc08c91ade2553b904d617158f04a877b71af25821493e358a8543a80cd8d5a26b2c767c27ec92cbd6d3974ea588d775a8b3a748182f4aa3 WHIRLPOOL 1cfc668dea3e4789bab1ee1a88d675d2541c14fb5fee7ef608ca1982948fdeedfd6e0c6103db3418e2b65684dfa3385b0f33af9e3f029e26ccfec763d5a2a273 +EBUILD zfs-0.6.4.2.ebuild 3271 SHA256 6622f1357ddc7af7a6964dc409ac129d9edb48d84d022331bc383ef0778c6fea SHA512 a9f7663390a692fd7ae8d4ca2963dffa3481cf566a267c26b7107223c17f966546b388f85c5aefb7fba9ae432565f7358426c0c73f46b5161913d6219963a31f WHIRLPOOL a363bf1364b937c59d880a2440bc671acd73ed354336ae0c43f388cd2e5f277a4f7136919562862bc651712dcb83150b0b843e41600099578f6732ab399881fc +EBUILD zfs-0.6.5.10.ebuild 5534 SHA256 3d7b1890b009d8216c51623b7c0ad6ca46fa40bbfe9af537634c673d265b26e3 SHA512 641338ba22fa87e8725b89b508b3f5e1ae492a4e715eaaf506e07f0a6fc3cee14fdc1e8502ea8f619cddb57ee0dba1a0d6112161f8bfd216a44533c6e78678f7 WHIRLPOOL 20a7f40e9363c7c3e15bbc8599fc66e8e76bb6c5ca49f58b50e8b5c70de08934e8564313fd4ade69d1da79042459fab364d1cd89134a450f76346f0e96631155 +EBUILD zfs-0.6.5.11.ebuild 5534 SHA256 3d7b1890b009d8216c51623b7c0ad6ca46fa40bbfe9af537634c673d265b26e3 SHA512 641338ba22fa87e8725b89b508b3f5e1ae492a4e715eaaf506e07f0a6fc3cee14fdc1e8502ea8f619cddb57ee0dba1a0d6112161f8bfd216a44533c6e78678f7 WHIRLPOOL 20a7f40e9363c7c3e15bbc8599fc66e8e76bb6c5ca49f58b50e8b5c70de08934e8564313fd4ade69d1da79042459fab364d1cd89134a450f76346f0e96631155 +EBUILD zfs-0.6.5.2-r1.ebuild 5749 SHA256 1d0933677bae0826dfec85b41a9ca3ad72398960b85a6931e6412c9095723476 SHA512 22aaa885d5a5987e7f998126fd1a1ef41ad507c0c928fe9f13bb217da746e2e02db93bbaf4484c287ae26c566e6125263bfd2ac99bb2b5026511a718fb3c4e85 WHIRLPOOL d713f0bbb72855ca516c6051b1ffc7ee19dd0353a758e704beb312c77b00f4289ea86fd09f2049e762f4fead14d268ccd3504b58121d1648f2c79d06d7573c3b +EBUILD zfs-0.6.5.3-r1.ebuild 6516 SHA256 30d539bd7049180992abc74873cc505d0074819ceac1b91fa653397fd77dc5c7 SHA512 eb88429f61fb4abd7bf6a22afa6102fc9ea22a586e485d804e4cb644ed46d9ae8a9ed1e0c577b2ce92829156d1b35f35e7990d89f48e3eef41aaa28ab30d5965 WHIRLPOOL 43a9bed88640a252fc6e943d8b3c13d47a2fd20066299b3e24f537b0a83e09a7362f13616e0eb6a2813681345692a88a20c83a16d1db25d7e8ddc29801d26956 +EBUILD zfs-0.6.5.3-r3.ebuild 6590 SHA256 4bf1283af92f29820c5cbfd983780337bed3985c0611a113fe4a1d75fc1ad4e5 SHA512 d978859ded763c841ebf302091b8cfebecb991bd5ce14da1e38e10bbd2a920d4d2ed2c7840485296d2c2f6a4e9129cc8d2f2601200d49a50d12e4a813e45d703 WHIRLPOOL bf21d2e57194d88c2e62d5a6b825428c932df786f01dfabba2c8eab6be1c995800d57bbb18fa3f1a29e9c77ad104b5ea86b88bd19fdfa7a12a9ca5d65c0e44b2 +EBUILD zfs-0.6.5.3-r4.ebuild 6590 SHA256 fabbb511571c5ca1ca7e88d821d9b09dcd9517b9b12232d0b5c4b9b97ed61ee6 SHA512 6c7816e8818f6e946b11045b34036ac7e5e935dd1a510ac440c16c2ee06bfa65f0f269cc3edbaf4890c01c2714f285181242a020950c0e3e872085de7e1b1cc7 WHIRLPOOL a89abc68c9b6eaa34e773b103b04a5ed9f025cb08bf447e1c10267fe8e4489fdccee757a09402ea978f25cd0b2b372bfea7664332c04b0e3827ced54385f5449 +EBUILD zfs-0.6.5.3-r5.ebuild 6605 SHA256 79bb5d013b056103478f583172f568808a5815995f73278e13b23b916baf1edc SHA512 b47633119b68479d75cd10c02bbdb6cae8af69632dcf9b288dbba9c1296dce2ed875584e4a48706242eacb8f8d5e8f4a1fee0ecc78b560c103b0fb0a77434e71 WHIRLPOOL 2badfe3dac7b04d843fd99853059c949b05f327acc2d7cfb2ca9f82247d8412a50757b441de6ac314a8ee68d400c63bcc4fb37d469822bbe1dde237bce642bc5 +EBUILD zfs-0.6.5.3.ebuild 5556 SHA256 684d36984cf655d3e86c598e613e5a6e47306fba6da4dda2a986b66b43b0f7e0 SHA512 466efa8cdecc9140a7f1a37d6d33b132b5118c1ee98659120c888ca600b36aa0044518c52f9fb577a860b5356502b02df623bde7650ba485319e70bcd94b3685 WHIRLPOOL aa1a2a1cf1ae2b48b94379fdbad85a7cedc490a18134a6cb7d2e81810b7e69ed5fb2c09d870bcff141f826fbe51ff32b56f84887ce07a3e9f48cbb72a977ecaf +EBUILD zfs-0.6.5.4-r1.ebuild 6596 SHA256 8fabdadcf40d372b94315098a24a9a0fc8139c9445e4dbeb87e4ac01bc22f89c SHA512 29bafb4efca64ccbc9288a9fcc2d1cfac732ce433c5abf6c206c521f47810a32a63ec752d30c52d12dae0db5c5c5e145117f654d051f765eec10e73ec4736828 WHIRLPOOL e970b2d43cb7bc69d41a8f9851d218c7cfabd736ef21502dcdd01a842608a3c91e9c06665bb924116151863d2090123b2de46b753c0a57c3c0143fb47b4f4d87 +EBUILD zfs-0.6.5.4-r2.ebuild 6596 SHA256 8fabdadcf40d372b94315098a24a9a0fc8139c9445e4dbeb87e4ac01bc22f89c SHA512 29bafb4efca64ccbc9288a9fcc2d1cfac732ce433c5abf6c206c521f47810a32a63ec752d30c52d12dae0db5c5c5e145117f654d051f765eec10e73ec4736828 WHIRLPOOL e970b2d43cb7bc69d41a8f9851d218c7cfabd736ef21502dcdd01a842608a3c91e9c06665bb924116151863d2090123b2de46b753c0a57c3c0143fb47b4f4d87 +EBUILD zfs-0.6.5.4.ebuild 5540 SHA256 bf3ee2e989a8bde4f44454bc682acf93ecb3b70026c0278c13199d38017587d0 SHA512 bb3f1f116ed4dcbead3952e8a40d14dfed0c0d72a56fa3a6be64d9411f454950bca39471b0fd3d130af9433c34f9800a9605b3453ced61e9813cf51f73dcce19 WHIRLPOOL ace654c55b20c240a3c2f6064f00d96aca20a02fe81df3e5284938b8b8c63fbbfc069e31eeb63a00bb7ffc9cdde4f529fb2713fd8847828ac435cf8c91d3c669 +EBUILD zfs-0.6.5.6.ebuild 5540 SHA256 bf3ee2e989a8bde4f44454bc682acf93ecb3b70026c0278c13199d38017587d0 SHA512 bb3f1f116ed4dcbead3952e8a40d14dfed0c0d72a56fa3a6be64d9411f454950bca39471b0fd3d130af9433c34f9800a9605b3453ced61e9813cf51f73dcce19 WHIRLPOOL ace654c55b20c240a3c2f6064f00d96aca20a02fe81df3e5284938b8b8c63fbbfc069e31eeb63a00bb7ffc9cdde4f529fb2713fd8847828ac435cf8c91d3c669 +EBUILD zfs-0.6.5.7.ebuild 5540 SHA256 bf3ee2e989a8bde4f44454bc682acf93ecb3b70026c0278c13199d38017587d0 SHA512 bb3f1f116ed4dcbead3952e8a40d14dfed0c0d72a56fa3a6be64d9411f454950bca39471b0fd3d130af9433c34f9800a9605b3453ced61e9813cf51f73dcce19 WHIRLPOOL ace654c55b20c240a3c2f6064f00d96aca20a02fe81df3e5284938b8b8c63fbbfc069e31eeb63a00bb7ffc9cdde4f529fb2713fd8847828ac435cf8c91d3c669 +EBUILD zfs-0.6.5.8-r1.ebuild 5534 SHA256 3d7b1890b009d8216c51623b7c0ad6ca46fa40bbfe9af537634c673d265b26e3 SHA512 641338ba22fa87e8725b89b508b3f5e1ae492a4e715eaaf506e07f0a6fc3cee14fdc1e8502ea8f619cddb57ee0dba1a0d6112161f8bfd216a44533c6e78678f7 WHIRLPOOL 20a7f40e9363c7c3e15bbc8599fc66e8e76bb6c5ca49f58b50e8b5c70de08934e8564313fd4ade69d1da79042459fab364d1cd89134a450f76346f0e96631155 +EBUILD zfs-0.6.5.8.ebuild 5540 SHA256 bf3ee2e989a8bde4f44454bc682acf93ecb3b70026c0278c13199d38017587d0 SHA512 bb3f1f116ed4dcbead3952e8a40d14dfed0c0d72a56fa3a6be64d9411f454950bca39471b0fd3d130af9433c34f9800a9605b3453ced61e9813cf51f73dcce19 WHIRLPOOL ace654c55b20c240a3c2f6064f00d96aca20a02fe81df3e5284938b8b8c63fbbfc069e31eeb63a00bb7ffc9cdde4f529fb2713fd8847828ac435cf8c91d3c669 +EBUILD zfs-0.6.5.9.ebuild 5534 SHA256 3d7b1890b009d8216c51623b7c0ad6ca46fa40bbfe9af537634c673d265b26e3 SHA512 641338ba22fa87e8725b89b508b3f5e1ae492a4e715eaaf506e07f0a6fc3cee14fdc1e8502ea8f619cddb57ee0dba1a0d6112161f8bfd216a44533c6e78678f7 WHIRLPOOL 20a7f40e9363c7c3e15bbc8599fc66e8e76bb6c5ca49f58b50e8b5c70de08934e8564313fd4ade69d1da79042459fab364d1cd89134a450f76346f0e96631155 +EBUILD zfs-0.7.0-r2.ebuild 5666 SHA256 227eaedd821399d1c04c45a2093e5f4befd7c5546f665381863d4478bd28f86e SHA512 57d4292cbe99bf889280e8d6096cae72d862c64d35146599ad1c8a746f7b70d58972d607128cf827a9219eb4594e8e555dd87204ee13ac4a0d8ecef8bfc7968e WHIRLPOOL d9059292f9dcdc897ae91172c3612438a8c0959096a9ac1a81a0c6dd1d4f6a7dde49392f1420b69b0ab610fd5d92f7ef8917355dc31cd942f452a46abd782ad8 +EBUILD zfs-0.7.1-r1.ebuild 5664 SHA256 b391f3b7e3854c80566c3829486b058708292c21587ede1e14421f83f68cd12d SHA512 bceacbfac5efce785f90d68b3ea35bc3e44e5b7561684d1157842047dd878ae50f43222b473989a4c71380e362b919baf7eba77c28cdfe4bb9c63e425a7e55b9 WHIRLPOOL e22b229a4455e73efc91daffea8184f9976942df17eb74027e65966f57c2df70df537cfe714b0ca83f375f0f43b102e5a34f59baca79009ad8d9f215e35fced0 +EBUILD zfs-9999.ebuild 5805 SHA256 eaf5b0d4c9c3b4b104a186c37040d0653759726ea3863801a5fb376cc154d67c SHA512 3fd1ac15bd72bc98dff861e7860f83d63727aeafa9a35c3d355df9deb4c40009206f18d09794fd26f1fe9702238098452a8ab6fb67d84a5ac84be5776ad10f7a WHIRLPOOL 2d3107fc13230a9e55cf2b74eedf799070d70e82eea687260849568ed091f5674e3fc4abbb9df347a04d68684733bb04d99a5e284aa77b702b6a6c1548917e3e +MISC ChangeLog 13217 SHA256 9c37690b8a7b7c6a33139009109f582ca82bf3e6c8684c7ba5aad6c1217ee18c SHA512 9ec9c5ae1b4de72eb4b54d4ca9b5e15efcbbf47a87e9c2456656f25a0ed67258e135cd7bba6cbffc2ada994d6ff86d313449c79fcf1843a994808bac57b12546 WHIRLPOOL 270399247f437617eb0ac51bdb0c4d11e97bb894e6166066c8ba8aaa5e84e8aa3684fae19682d6a7e7d7e970199ed0d3025db6fcea2aa7df5e839dc89ccc6923 +MISC ChangeLog-2015 18930 SHA256 d01fb1add9dfd385b0156efea669dae84679277406d78994ae799f3a27537422 SHA512 7f2544d7bb7481e9212f3f2eb46cd0cafb7161b403505faa7134498edb648847818c688b8b9fc2bceb40f1d9692a6156f088ebd0713e29e98affc447ba0b6bc9 WHIRLPOOL ce3cca1ab6903fd92fb32f511ab321b9377018c51786563898247b7383fd32ae5eca047e0b7e12e47eb5f885530cddfd5ff72693349efb265802f99b5e0d70af +MISC metadata.xml 754 SHA256 8cba2e73f48119d523985e5ea568c0a3dbe8a40de7f62c7ae406872a7ba5668d SHA512 647ffa3857be38b2aed7462d26bbb1d3ea50fc53068b6d973514fdbadf7164421dd2025165a592855b86a03754d968d36e503dcfafc99e3ed75ee7db3f62df3a WHIRLPOOL 5bd5cf937dada8b3e43e68acfdd889b679fe25d43d4059d789884a30ad3ff3031d3dd36e6e5752ef3dd94c2b6226098be8f989e9217396b562f352855f27de54 diff --git a/sys-fs/zfs/files/bash-completion b/sys-fs/zfs/files/bash-completion new file mode 100644 index 000000000000..1b9428bf8602 --- /dev/null +++ b/sys-fs/zfs/files/bash-completion @@ -0,0 +1,232 @@ +# Copyright (c) 2010, Aneurin Price <aneurin.price@gmail.com> + +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, +# copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following +# conditions: + +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +__zfs_get_commands() +{ + zfs 2>&1 | awk '/^\t[a-z]/ {print $1}' | uniq +} + +__zfs_get_properties() +{ + zfs get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all +} + +__zfs_get_editable_properties() +{ + zfs get 2>&1 | awk '$2 == "YES" {printf("%s=\n", $1)}' +} + +__zfs_get_inheritable_properties() +{ + zfs get 2>&1 | awk '$3 == "YES" {print $1}' +} + +__zfs_list_datasets() +{ + zfs list -H -o name +} + +__zfs_list_filesystems() +{ + zfs list -H -o name -t filesystem +} + +__zfs_list_snapshots() +{ + zfs list -H -o name -t snapshot +} + +__zfs_list_volumes() +{ + zfs list -H -o name -t volume +} + +__zfs_argument_chosen() +{ + for word in $(seq $((COMP_CWORD-1)) -1 2) + do + local prev="${COMP_WORDS[$word]}" + for property in $@ + do + if [ "x$prev" = "x$property" ] + then + return 0 + fi + done + done + return 1 +} + +__zfs_complete_ordered_arguments() +{ + local list1=$1 + local list2=$2 + local cur=$3 + local extra=$4 + if __zfs_argument_chosen $list1 + then + COMPREPLY=($(compgen -W "$list2 $extra" -- "$cur")) + else + COMPREPLY=($(compgen -W "$list1 $extra" -- "$cur")) + fi +} + +__zfs_complete() +{ + local cur prev cmd cmds + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + cmd="${COMP_WORDS[1]}" + cmds=$(__zfs_get_commands) + + if [ "${prev##*/}" = "zfs" ] + then + COMPREPLY=($(compgen -W "$cmds -?" -- "$cur")) + return 0 + fi + + case "${cmd}" in + clone) + __zfs_complete_ordered_arguments "$(__zfs_list_snapshots)" "$(__zfs_list_filesystems) $(__zfs_list_volumes)" $cur + return 0 + ;; + get) + __zfs_complete_ordered_arguments "$(__zfs_get_properties)" "$(__zfs_list_datasets)" "$cur" "-H -r -p" + return 0 + ;; + inherit) + __zfs_complete_ordered_arguments "$(__zfs_get_inheritable_properties)" "$(__zfs_list_datasets)" $cur + return 0 + ;; + list) + if [ "x$prev" = "x-o" ] + then + COMPREPLY=($(compgen -W "$(__zfs_get_properties)" -- "${cur##*,}")) + local existing_opts=$(expr "$cur" : '\(.*,\)') + if [ ! "x$existing_opts" = "x" ] + then + COMPREPLY=( "${COMPREPLY[@]/#/${existing_opts}}" ) + fi + else + COMPREPLY=($(compgen -W "$(__zfs_list_datasets) -H -r -o" -- "$cur")) + fi + return 0 + ;; + promote) + COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur")) + return 0 + ;; + rollback|send) + COMPREPLY=($(compgen -W "$(__zfs_list_snapshots)" -- "$cur")) + return 0 + ;; + snapshot) + COMPREPLY=($(compgen -W "$(__zfs_list_filesystems) $(__zfs_list_volumes)" -- "$cur")) + return 0 + ;; + set) + __zfs_complete_ordered_arguments "$(__zfs_get_editable_properties)" "$(__zfs_list_filesystems) $(__zfs_list_volumes)" $cur + return 0 + ;; + *) + COMPREPLY=($(compgen -W "$(__zfs_list_datasets)" -- "$cur")) + return 0 + ;; + esac + +} + +__zpool_get_commands() +{ + zpool 2>&1 | awk '/^\t[a-z]/ {print $1}' | uniq +} + +__zpool_get_properties() +{ + zpool get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all +} + +__zpool_get_editable_properties() +{ + zpool get 2>&1 | awk '$2 == "YES" {printf("%s=\n", $1)}' +} + +__zpool_list_pools() +{ + zpool list -H -o name +} + +__zpool_complete() +{ + local cur prev cmd cmds + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + cmd="${COMP_WORDS[1]}" + cmds=$(__zpool_get_commands) + + if [ "${prev##*/}" = "zpool" ] + then + COMPREPLY=($(compgen -W "$cmds" -- "$cur")) + return 0 + fi + + case "${cmd}" in + get) + __zfs_complete_ordered_arguments "$(__zpool_get_properties)" "$(__zpool_list_pools)" $cur + return 0 + ;; + import) + if [ "x$prev" = "x-d" ] + then + _filedir -d + else + COMPREPLY=($(compgen -W "$(__zpool_list_pools) -d" -- "$cur")) + fi + return 0 + ;; + set) + __zfs_complete_ordered_arguments "$(__zpool_get_editable_properties)" "$(__zpool_list_pools)" $cur + return 0 + ;; + add|attach|clear|create|detach|offline|online|remove|replace) + local pools="$(__zpool_list_pools)" + if __zfs_argument_chosen $pools + then + _filedir + else + COMPREPLY=($(compgen -W "$pools" -- "$cur")) + fi + return 0 + ;; + *) + COMPREPLY=($(compgen -W "$(__zpool_list_pools)" -- "$cur")) + return 0 + ;; + esac + +} + +complete -F __zfs_complete zfs +complete -o filenames -F __zpool_complete zpool diff --git a/sys-fs/zfs/files/bash-completion-r1 b/sys-fs/zfs/files/bash-completion-r1 new file mode 100644 index 000000000000..b1aded368e85 --- /dev/null +++ b/sys-fs/zfs/files/bash-completion-r1 @@ -0,0 +1,391 @@ +# Copyright (c) 2013, Aneurin Price <aneurin.price@gmail.com> + +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, +# copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following +# conditions: + +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +#if [[ -w /dev/zfs ]]; then + __ZFS_CMD="zfs" + __ZPOOL_CMD="zpool" +#else +# __ZFS_CMD="sudo zfs" +# __ZPOOL_CMD="sudo zpool" +#fi + +__zfs_get_commands() +{ + $__ZFS_CMD 2>&1 | awk '/^\t[a-z]/ {print $1}' | cut -f1 -d '|' | uniq +} + +__zfs_get_properties() +{ + $__ZFS_CMD get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all name space +} + +__zfs_get_editable_properties() +{ + $__ZFS_CMD get 2>&1 | awk '$2 == "YES" {print $1"="}' +} + +__zfs_get_inheritable_properties() +{ + $__ZFS_CMD get 2>&1 | awk '$3 == "YES" {print $1}' +} + +__zfs_list_datasets() +{ + $__ZFS_CMD list -H -o name -t filesystem,volume +} + +__zfs_list_filesystems() +{ + $__ZFS_CMD list -H -o name -t filesystem +} + +__zfs_match_snapshot() +{ + local base_dataset=${cur%@*} + if [[ $base_dataset != $cur ]] + then + $__ZFS_CMD list -H -o name -t snapshot -d 1 $base_dataset + else + $__ZFS_CMD list -H -o name -t filesystem,volume | awk '{print $1"@"}' + fi +} + +__zfs_match_explicit_snapshot() +{ + local base_dataset=${cur%@*} + if [[ $base_dataset != $cur ]] + then + $__ZFS_CMD list -H -o name -t snapshot -d 1 $base_dataset + fi +} + +__zfs_match_multiple_snapshots() +{ + local existing_opts=$(expr "$cur" : '\(.*\)[%,]') + if [[ $existing_opts ]] + then + local base_dataset=${cur%@*} + if [[ $base_dataset != $cur ]] + then + local cur=${cur##*,} + if [[ $cur =~ ^%|%.*% ]] + then + # correct range syntax is start%end + return 1 + fi + local range_start=$(expr "$cur" : '\(.*%\)') + $__ZFS_CMD list -H -o name -t snapshot -d 1 $base_dataset | sed 's$.*@$'$range_start'$g' + fi + else + __zfs_match_explicit_snapshot; __zfs_list_datasets + fi +} + +__zfs_list_volumes() +{ + $__ZFS_CMD list -H -o name -t volume +} + +__zfs_argument_chosen() +{ + local word property + for word in $(seq $((COMP_CWORD-1)) -1 2) + do + local prev="${COMP_WORDS[$word]}" + if [[ ${COMP_WORDS[$word-1]} != -[tos] ]] + then + if [[ "$prev" == [^,]*,* ]] || [[ "$prev" == *[@:]* ]] + then + return 0 + fi + for property in $@ + do + if [[ $prev == "$property" ]] + then + return 0 + fi + done + fi + done + return 1 +} + +__zfs_complete_ordered_arguments() +{ + local list1=$1 + local list2=$2 + local cur=$3 + local extra=$4 + if __zfs_argument_chosen $list1 + then + COMPREPLY=($(compgen -W "$list2 $extra" -- "$cur")) + else + COMPREPLY=($(compgen -W "$list1 $extra" -- "$cur")) + fi +} + +__zfs_complete_multiple_options() +{ + local options=$1 + local cur=$2 + + COMPREPLY=($(compgen -W "$options" -- "${cur##*,}")) + local existing_opts=$(expr "$cur" : '\(.*,\)') + if [[ $existing_opts ]] + then + COMPREPLY=( "${COMPREPLY[@]/#/${existing_opts}}" ) + fi +} + +__zfs_complete_switch() +{ + local options=$1 + if [[ ${cur:0:1} == - ]] + then + COMPREPLY=($(compgen -W "-{$options}" -- "$cur")) + return 0 + else + return 1 + fi +} + +__zfs_complete() +{ + local cur prev cmd cmds + COMPREPLY=() + # Don't split on colon + _get_comp_words_by_ref -n : -c cur -p prev -w COMP_WORDS -i COMP_CWORD + cmd="${COMP_WORDS[1]}" + + if [[ ${prev##*/} == zfs ]] + then + cmds=$(__zfs_get_commands) + COMPREPLY=($(compgen -W "$cmds -?" -- "$cur")) + return 0 + fi + + case "${cmd}" in + clone) + case "${prev}" in + -o) + COMPREPLY=($(compgen -W "$(__zfs_get_editable_properties)" -- "$cur")) + ;; + *) + if ! __zfs_complete_switch "o,p" + then + if __zfs_argument_chosen + then + COMPREPLY=($(compgen -W "$(__zfs_list_datasets)" -- "$cur")) + else + COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur")) + fi + fi + ;; + esac + ;; + get) + case "${prev}" in + -d) + COMPREPLY=($(compgen -W "" -- "$cur")) + ;; + -t) + __zfs_complete_multiple_options "filesystem volume snapshot all" "$cur" + ;; + -s) + __zfs_complete_multiple_options "local default inherited temporary none" "$cur" + ;; + -o) + __zfs_complete_multiple_options "name property value source received all" "$cur" + ;; + *) + if ! __zfs_complete_switch "H,r,p,d,o,t,s" + then + if __zfs_argument_chosen $(__zfs_get_properties) + then + COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur")) + else + __zfs_complete_multiple_options "$(__zfs_get_properties)" "$cur" + fi + fi + ;; + esac + ;; + inherit) + if ! __zfs_complete_switch "r" + then + __zfs_complete_ordered_arguments "$(__zfs_get_inheritable_properties)" "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" $cur + fi + ;; + list) + case "${prev}" in + -d) + COMPREPLY=($(compgen -W "" -- "$cur")) + ;; + -t) + __zfs_complete_multiple_options "filesystem volume snapshot all" "$cur" + ;; + -o) + __zfs_complete_multiple_options "$(__zfs_get_properties)" "$cur" + ;; + -s|-S) + COMPREPLY=($(compgen -W "$(__zfs_get_properties)" -- "$cur")) + ;; + *) + if ! __zfs_complete_switch "H,r,d,o,t,s,S" + then + COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur")) + fi + ;; + esac + ;; + promote) + COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur")) + ;; + rollback) + if ! __zfs_complete_switch "r,R,f" + then + COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur")) + fi + ;; + send) + if ! __zfs_complete_switch "d,n,P,p,R,v,i,I" + then + COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur")) + fi + ;; + snapshot) + case "${prev}" in + -o) + COMPREPLY=($(compgen -W "$(__zfs_get_editable_properties)" -- "$cur")) + ;; + *) + if ! __zfs_complete_switch "o,r" + then + COMPREPLY=($(compgen -W "$(__zfs_list_datasets | awk '{print $1"@"}')" -- "$cur")) + fi + ;; + esac + ;; + set) + __zfs_complete_ordered_arguments "$(__zfs_get_editable_properties)" "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" $cur + ;; + upgrade) + case "${prev}" in + -a|-V|-v) + COMPREPLY=($(compgen -W "" -- "$cur")) + ;; + *) + if ! __zfs_complete_switch "a,V,v,r" + then + COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur")) + fi + ;; + esac + ;; + destroy) + if ! __zfs_complete_switch "d,f,n,p,R,r,v" + then + __zfs_complete_multiple_options "$(__zfs_match_multiple_snapshots)" $cur + fi + ;; + *) + COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur")) + ;; + esac + __ltrim_colon_completions "$cur" + return 0 +} + +__zpool_get_commands() +{ + $__ZPOOL_CMD 2>&1 | awk '/^\t[a-z]/ {print $1}' | uniq +} + +__zpool_get_properties() +{ + $__ZPOOL_CMD get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all +} + +__zpool_get_editable_properties() +{ + $__ZPOOL_CMD get 2>&1 | awk '$2 == "YES" {print $1"="}' +} + +__zpool_list_pools() +{ + $__ZPOOL_CMD list -H -o name +} + +__zpool_complete() +{ + local cur prev cmd cmds + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + cmd="${COMP_WORDS[1]}" + + if [[ ${prev##*/} == zpool ]] + then + cmds=$(__zpool_get_commands) + COMPREPLY=($(compgen -W "$cmds" -- "$cur")) + return 0 + fi + + case "${cmd}" in + get) + __zfs_complete_ordered_arguments "$(__zpool_get_properties)" "$(__zpool_list_pools)" $cur + return 0 + ;; + import) + if [[ $prev == -d ]] + then + _filedir -d + else + COMPREPLY=($(compgen -W "$(__zpool_list_pools) -d" -- "$cur")) + fi + return 0 + ;; + set) + __zfs_complete_ordered_arguments "$(__zpool_get_editable_properties)" "$(__zpool_list_pools)" $cur + return 0 + ;; + add|attach|clear|create|detach|offline|online|remove|replace) + local pools="$(__zpool_list_pools)" + if __zfs_argument_chosen $pools + then + _filedir + else + COMPREPLY=($(compgen -W "$pools" -- "$cur")) + fi + return 0 + ;; + *) + COMPREPLY=($(compgen -W "$(__zpool_list_pools)" -- "$cur")) + return 0 + ;; + esac + +} + +complete -F __zfs_complete zfs +complete -F __zpool_complete zpool diff --git a/sys-fs/zfs/files/zed b/sys-fs/zfs/files/zed new file mode 100644 index 000000000000..d46acfacb4a3 --- /dev/null +++ b/sys-fs/zfs/files/zed @@ -0,0 +1,25 @@ +#!/sbin/openrc-run +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need zfs +} + +start() { + ebegin "Starting ZFS Event daemon" + + checkpath -q -d -m 0755 /var/run/zed + + start-stop-daemon --start -q \ + --exec /sbin/zed -- -M \ + -p /var/run/zed/pid + eend $? + +} + +stop() { +ebegin "Stopping ZFS Event daemon" + start-stop-daemon --stop -q --pidfile /var/run/zed/pid +eend $? +} diff --git a/sys-fs/zfs/files/zfs-0.6.0_rc14-fix-libzpool-function-relocations.patch b/sys-fs/zfs/files/zfs-0.6.0_rc14-fix-libzpool-function-relocations.patch new file mode 100644 index 000000000000..b493424a1e77 --- /dev/null +++ b/sys-fs/zfs/files/zfs-0.6.0_rc14-fix-libzpool-function-relocations.patch @@ -0,0 +1,34 @@ +From 399f60c8b47f7513d078a7c181ff132e2cafdd15 Mon Sep 17 00:00:00 2001 +From: Richard Yao <ryao@cs.stonybrook.edu> +Date: Tue, 5 Feb 2013 18:14:30 -0500 +Subject: [PATCH] Fix function relocations in libzpool + +binutils 2.23.1 fails in situations that generate function relocations +on PowerPC and possibly other architectures. This causes linking of +libzpool to fail because it depends on libnvpair. We add a dependency on +libnvpair to lib/libzpool/Makefile.am to correct that. + +Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu> +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Closes #1267 +--- + lib/libzpool/Makefile.am | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/lib/libzpool/Makefile.am b/lib/libzpool/Makefile.am +index 3e62de6..cbba388 100644 +--- a/lib/libzpool/Makefile.am ++++ b/lib/libzpool/Makefile.am +@@ -94,7 +94,8 @@ libzpool_la_SOURCES = \ + + libzpool_la_LIBADD = \ + $(top_builddir)/lib/libunicode/libunicode.la \ +- $(top_builddir)/lib/libuutil/libuutil.la ++ $(top_builddir)/lib/libuutil/libuutil.la \ ++ $(top_builddir)/lib/libnvpair/libnvpair.la + + libzpool_la_LDFLAGS = -pthread -version-info 1:1:0 + +-- +1.7.10 + diff --git a/sys-fs/zfs/files/zfs-0.6.1-avoid-zdb-abort.patch b/sys-fs/zfs/files/zfs-0.6.1-avoid-zdb-abort.patch new file mode 100644 index 000000000000..f73840feeed6 --- /dev/null +++ b/sys-fs/zfs/files/zfs-0.6.1-avoid-zdb-abort.patch @@ -0,0 +1,30 @@ +From 5d3dc3fb72518a4c191e3a014622b74365eb3a74 Mon Sep 17 00:00:00 2001 +From: Mike Leddy <mike.leddy@gmail.com> +Date: Thu, 4 Jul 2013 01:02:05 -0300 +Subject: [PATCH] Avoid abort() in vn_rdwr(): libzpool/kernel.c + +Make sure that buffer is aligned to 512 bytes on linux so that +pread call combined with O_DIRECT does not return EINVAL. + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Closes #1570 +--- + cmd/zdb/zdb.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmd/zdb/zdb.c b/cmd/zdb/zdb.c +index 936974b..a2b6bfe 100644 +--- a/cmd/zdb/zdb.c ++++ b/cmd/zdb/zdb.c +@@ -2844,7 +2844,7 @@ + psize = size; + lsize = size; + +- pbuf = umem_alloc(SPA_MAXBLOCKSIZE, UMEM_NOFAIL); ++ pbuf = umem_alloc_aligned(SPA_MAXBLOCKSIZE, 512, UMEM_NOFAIL); + lbuf = umem_alloc(SPA_MAXBLOCKSIZE, UMEM_NOFAIL); + + BP_ZERO(bp); +-- +1.8.1.6 + diff --git a/sys-fs/zfs/files/zfs-0.6.1-fix-gcc-4.8-warning.patch b/sys-fs/zfs/files/zfs-0.6.1-fix-gcc-4.8-warning.patch new file mode 100644 index 000000000000..00ec1057efa1 --- /dev/null +++ b/sys-fs/zfs/files/zfs-0.6.1-fix-gcc-4.8-warning.patch @@ -0,0 +1,42 @@ +From 3db3ff4a787acf068b122562fb5be5aecec2611f Mon Sep 17 00:00:00 2001 +From: Richard Yao <ryao@gentoo.org> +Date: Tue, 2 Jul 2013 00:07:15 -0400 +Subject: [PATCH] Use MAXPATHLEN instead of sizeof in snprintf +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This silences a GCC 4.8.0 warning by fixing a programming error +caught by static analysis: + +../../cmd/ztest/ztest.c: In function ‘ztest_vdev_aux_add_remove’: +../../cmd/ztest/ztest.c:2584:33: error: argument to ‘sizeof’ + in ‘snprintf’ call is the same expression as the destination; + did you mean to provide an explicit length? + [-Werror=sizeof-pointer-memaccess] + (void) snprintf(path, sizeof (path), ztest_aux_template, + ^ + +Signed-off-by: Richard Yao <ryao@gentoo.org> +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Closes #1480 +--- + cmd/ztest/ztest.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmd/ztest/ztest.c b/cmd/ztest/ztest.c +index b38d7b1..93a5f1e 100644 +--- a/cmd/ztest/ztest.c ++++ b/cmd/ztest/ztest.c +@@ -2581,7 +2581,7 @@ enum ztest_object { + zs->zs_vdev_aux = 0; + for (;;) { + int c; +- (void) snprintf(path, sizeof (path), ztest_aux_template, ++ (void) snprintf(path, MAXPATHLEN, ztest_aux_template, + ztest_opts.zo_dir, ztest_opts.zo_pool, aux, + zs->zs_vdev_aux); + for (c = 0; c < sav->sav_count; c++) +-- +1.8.1.6 + diff --git a/sys-fs/zfs/files/zfs-0.6.1-fix-zvol-initialization-r1.patch b/sys-fs/zfs/files/zfs-0.6.1-fix-zvol-initialization-r1.patch new file mode 100644 index 000000000000..b1e7d3736db0 --- /dev/null +++ b/sys-fs/zfs/files/zfs-0.6.1-fix-zvol-initialization-r1.patch @@ -0,0 +1,167 @@ +diff --git a/module/zfs/spa.c b/module/zfs/spa.c +index e986e92..65f78b7 100644 +--- a/module/zfs/spa.c ++++ b/module/zfs/spa.c +@@ -64,6 +64,7 @@ + #include <sys/zfs_ioctl.h> + #include <sys/dsl_scan.h> + #include <sys/zfeature.h> ++#include <sys/zvol.h> + + #ifdef _KERNEL + #include <sys/bootprops.h> +@@ -2856,6 +2857,7 @@ spa_open_common(const char *pool, spa_t **spapp, void *tag, nvlist_t *nvpolicy, + spa_load_state_t state = SPA_LOAD_OPEN; + int error; + int locked = B_FALSE; ++ int firstopen = B_FALSE; + + *spapp = NULL; + +@@ -2879,6 +2881,8 @@ spa_open_common(const char *pool, spa_t **spapp, void *tag, nvlist_t *nvpolicy, + if (spa->spa_state == POOL_STATE_UNINITIALIZED) { + zpool_rewind_policy_t policy; + ++ firstopen = B_TRUE; ++ + zpool_get_rewind_policy(nvpolicy ? nvpolicy : spa->spa_config, + &policy); + if (policy.zrp_request & ZPOOL_DO_REWIND) +@@ -2953,6 +2957,11 @@ spa_open_common(const char *pool, spa_t **spapp, void *tag, nvlist_t *nvpolicy, + mutex_exit(&spa_namespace_lock); + } + ++#ifdef _KERNEL ++ if (firstopen) ++ zvol_create_minors(spa->spa_name); ++#endif ++ + *spapp = spa; + + return (0); +@@ -4010,6 +4019,10 @@ spa_import(const char *pool, nvlist_t *config, nvlist_t *props, uint64_t flags) + mutex_exit(&spa_namespace_lock); + spa_history_log_version(spa, LOG_POOL_IMPORT); + ++#ifdef _KERNEL ++ zvol_create_minors(pool); ++#endif ++ + return (0); + } + +diff --git a/module/zfs/zfs_ioctl.c b/module/zfs/zfs_ioctl.c +index 1226b2c..a9184a1 100644 +--- a/module/zfs/zfs_ioctl.c ++++ b/module/zfs/zfs_ioctl.c +@@ -1268,9 +1268,6 @@ zfs_ioc_pool_import(zfs_cmd_t *zc) + error = err; + } + +- if (error == 0) +- zvol_create_minors(zc->zc_name); +- + nvlist_free(config); + + if (props) +diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c +index 43a7bb6..e35c91b 100644 +--- a/module/zfs/zvol.c ++++ b/module/zfs/zvol.c +@@ -1215,6 +1215,9 @@ zvol_alloc(dev_t dev, const char *name) + + zv = kmem_zalloc(sizeof (zvol_state_t), KM_SLEEP); + ++ spin_lock_init(&zv->zv_lock); ++ list_link_init(&zv->zv_next); ++ + zv->zv_queue = blk_init_queue(zvol_request, &zv->zv_lock); + if (zv->zv_queue == NULL) + goto out_kmem; +@@ -1248,9 +1251,6 @@ zvol_alloc(dev_t dev, const char *name) + sizeof (rl_t), offsetof(rl_t, r_node)); + zv->zv_znode.z_is_zvol = TRUE; + +- spin_lock_init(&zv->zv_lock); +- list_link_init(&zv->zv_next); +- + zv->zv_disk->major = zvol_major; + zv->zv_disk->first_minor = (dev & MINORMASK); + zv->zv_disk->fops = &zvol_ops; +@@ -1561,30 +1561,36 @@ zvol_init(void) + { + int error; + ++ list_create(&zvol_state_list, sizeof (zvol_state_t), ++ offsetof(zvol_state_t, zv_next)); ++ mutex_init(&zvol_state_lock, NULL, MUTEX_DEFAULT, NULL); ++ + zvol_taskq = taskq_create(ZVOL_DRIVER, zvol_threads, maxclsyspri, + zvol_threads, INT_MAX, TASKQ_PREPOPULATE); + if (zvol_taskq == NULL) { + printk(KERN_INFO "ZFS: taskq_create() failed\n"); +- return (-ENOMEM); ++ error = -ENOMEM; ++ goto out1; + } + + error = register_blkdev(zvol_major, ZVOL_DRIVER); + if (error) { + printk(KERN_INFO "ZFS: register_blkdev() failed %d\n", error); +- taskq_destroy(zvol_taskq); +- return (error); ++ goto out2; + } + + blk_register_region(MKDEV(zvol_major, 0), 1UL << MINORBITS, + THIS_MODULE, zvol_probe, NULL, NULL); + +- mutex_init(&zvol_state_lock, NULL, MUTEX_DEFAULT, NULL); +- list_create(&zvol_state_list, sizeof (zvol_state_t), +- offsetof(zvol_state_t, zv_next)); ++ return (0); + +- (void) zvol_create_minors(NULL); ++out2: ++ taskq_destroy(zvol_taskq); ++out1: ++ mutex_destroy(&zvol_state_lock); ++ list_destroy(&zvol_state_list); + +- return (0); ++ return (error); + } + + void +diff --git a/scripts/zconfig.sh b/scripts/zconfig.sh +index 141348c..281166c 100755 +--- a/scripts/zconfig.sh ++++ b/scripts/zconfig.sh +@@ -264,8 +264,9 @@ test_4() { + zconfig_zvol_device_stat 0 ${POOL_NAME} ${FULL_ZVOL_NAME} \ + ${FULL_SNAP_NAME} ${FULL_CLONE_NAME} || fail 9 + +- # Load the modules, wait 1 second for udev ++ # Load the modules, list the pools to ensure they are opened + ${ZFS_SH} zfs="spa_config_path=${TMP_CACHE}" || fail 10 ++ ${ZPOOL} list &>/dev/null + + # Verify the devices were created + zconfig_zvol_device_stat 10 ${POOL_NAME} ${FULL_ZVOL_NAME} \ +diff --git a/udev/rules.d/90-zfs.rules.in b/udev/rules.d/90-zfs.rules.in +index 52e1d63..a2715d2 100644 +--- a/udev/rules.d/90-zfs.rules.in ++++ b/udev/rules.d/90-zfs.rules.in +@@ -1,4 +1,4 @@ +-SUBSYSTEM!="block", GOTO="zfs_end" ++SUBSYSTEM!="block|misc", GOTO="zfs_end" + ACTION!="add|change", GOTO="zfs_end" + + ENV{ID_FS_TYPE}=="zfs", RUN+="/sbin/modprobe zfs" +@@ -7,4 +7,6 @@ ENV{ID_FS_TYPE}=="zfs_member", RUN+="/sbin/modprobe zfs" + KERNEL=="null", SYMLINK+="root" + SYMLINK=="null", SYMLINK+="root" + ++SUBSYSTEM=="misc", KERNEL=="zfs", RUN+="@sbindir@/zpool list" ++ + LABEL="zfs_end" diff --git a/sys-fs/zfs/files/zfs-0.6.1-gentoo-openrc-dependencies.patch b/sys-fs/zfs/files/zfs-0.6.1-gentoo-openrc-dependencies.patch new file mode 100644 index 000000000000..e794b183eb33 --- /dev/null +++ b/sys-fs/zfs/files/zfs-0.6.1-gentoo-openrc-dependencies.patch @@ -0,0 +1,57 @@ +commit 75c2fb953c99bba008f1ef72ee71136002749f51 +Author: Richard Yao <ryao@cs.stonybrook.edu> +Date: Tue May 28 20:08:15 2013 -0400 + + Improve OpenRC init script + + The current zfs OpenRC script's dependencies cause OpenRC to attempt to + unmount ZFS filesystems at shutdown while things were still using them, + which would fail. This is a cosmetic issue, but it should still be + addressed. It probably does not affect systems where the rootfs is a + legacy filesystem, but any system with the rootfs on ZFS needs to run + the ZFS init script after the system is ready to shutdown filesystems. + + OpenRC's shutdown process occurs in the reverse order of the startup + process. Therefore running the ZFS shutdown procedure after filesystems + are ready to be unmounted requires running the startup procedure before + fstab. This patch changes the dependencies of the script to expliclty + run before fstab at boot when the rootfs is ZFS and to run after fstab + at boot whenever the rootfs is not ZFS. This should cover most use + cases. + + The only cases not covered well by this are systems with legacy + root filesystems where people want to configure fstab to mount a non-ZFS + filesystem off a zvol and possibly also systems whose pools are stored + on network block devices. The former requires that the ZFS script run + before fstab, which could cause ZFS datasets to mount too early and + appear under the fstab mount points. The latter requires that the ZFS + script run after networking starts, which precludes the ability to store + any system information on ZFS. An additional OpenRC script could be + written to handle non-root pools on network block devices, but that will + depend on user demand and developer time. + + Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu> + +diff --git a/etc/init.d/zfs.gentoo.in b/etc/init.d/zfs.gentoo.in +index 5b8671e..0034e02 100644 +--- a/etc/init.d/zfs.gentoo.in ++++ b/etc/init.d/zfs.gentoo.in +@@ -10,9 +10,16 @@ fi + + depend() + { ++ # Try to allow people to mix and match fstab with ZFS in a way that makes sense. ++ if [ "$(mountinfo -s /)" = 'zfs' ] ++ then ++ before localmount ++ else ++ after localmount ++ fi ++ + # bootmisc will log to /var which may be a different zfs than root. +- before net bootmisc +- after udev localmount ++ before bootmisc logger + keyword -lxc -openvz -prefix -vserver + } + diff --git a/sys-fs/zfs/files/zfs-0.6.5-fix-openrc-scripts.patch b/sys-fs/zfs/files/zfs-0.6.5-fix-openrc-scripts.patch new file mode 100644 index 000000000000..fec87d0123f3 --- /dev/null +++ b/sys-fs/zfs/files/zfs-0.6.5-fix-openrc-scripts.patch @@ -0,0 +1,256 @@ +commit 3cb750b249717b43cbfcde78b44b0e38a2a61dc2 +Author: James Lee <jlee@thestaticvoid.com> +Date: Sat Sep 19 22:00:36 2015 -0400 + + zfs-import: Perform verbatim import using cache file + + This change modifies the import service to use the default cache file + to perform a verbatim import of pools at boot. This fixes code that + searches all devices and imported all visible pools. + + Using the cache file is in keeping with the way ZFS has always worked, + how Solaris, Illumos, FreeBSD, and systemd performs imports, and is how + it is written in the man page (zpool(1M,8)): + + All pools in this cache are automatically imported when the + system boots. + + Importantly, the cache contains important information for importing + multipath devices, and helps control which pools get imported in more + dynamic environments like SANs, which may have thousands of visible + and constantly changing pools, which the ZFS_POOL_EXCEPTIONS variable + is not equipped to handle. Verbatim imports prevent rogue pools from + being automatically imported and mounted where they shouldn't be. + + The change also stops the service from exporting pools at shutdown. + Exporting pools is only meant to be performed explicitly by the + administrator of the system. + + The old behavior of searching and importing all visible pools is + preserved and can be switched on by heeding the warning and toggling + the ZPOOL_IMPORT_ALL_VISIBLE variable in /etc/default/zfs. + + Closes #3777 + Closes #3526 + +diff --git a/etc/init.d/zfs-import.in b/etc/init.d/zfs-import.in +index 5e21929..2258638 100755 +--- a/etc/init.d/zfs-import.in ++++ b/etc/init.d/zfs-import.in +@@ -1,11 +1,10 @@ + #!@SHELL@ + # +-# zfs-import This script will import/export zfs pools. ++# zfs-import This script will import ZFS pools + # + # chkconfig: 2345 01 99 +-# description: This script will import/export zfs pools during system +-# boot/shutdown. +-# It is also responsible for all userspace zfs services. ++# description: This script will perform a verbatim import of ZFS pools ++# during system boot. + # probe: true + # + ### BEGIN INIT INFO +@@ -17,7 +16,7 @@ + # X-Start-Before: checkfs + # X-Stop-After: zfs-mount + # Short-Description: Import ZFS pools +-# Description: Run the `zpool import` or `zpool export` commands. ++# Description: Run the `zpool import` command. + ### END INIT INFO + # + # NOTE: Not having '$local_fs' on Required-Start but only on Required-Stop +@@ -43,6 +42,16 @@ do_depend() + keyword -lxc -openvz -prefix -vserver + } + ++# Use the zpool cache file to import pools ++do_verbatim_import() ++{ ++ if [ -f "$ZPOOL_CACHE" ] ++ then ++ zfs_action "Importing ZFS pool(s)" \ ++ "$ZPOOL" import -c "$ZPOOL_CACHE" -N -a ++ fi ++} ++ + # Support function to get a list of all pools, separated with ';' + find_pools() + { +@@ -60,8 +69,8 @@ find_pools() + echo "${pools%%;}" # Return without the last ';'. + } + +-# Import all pools +-do_import() ++# Find and import all visible pools, even exported ones ++do_import_all_visible() + { + local already_imported available_pools pool npools + local exception dir ZPOOL_IMPORT_PATH RET=0 r=1 +@@ -109,7 +118,7 @@ do_import() + fi + fi + +- # Filter out any exceptions... ++ # Filter out any exceptions... + if [ -n "$ZFS_POOL_EXCEPTIONS" ] + then + local found="" +@@ -249,41 +258,15 @@ do_import() + return "$RET" + } + +-# Export all pools +-do_export() ++do_import() + { +- local already_imported pool root_pool RET r +- RET=0 +- +- root_pool=$(get_root_pool) +- +- [ -n "$init" ] && zfs_log_begin_msg "Exporting ZFS pool(s)" +- +- # Find list of already imported pools. +- already_imported=$(find_pools "$ZPOOL" list -H -oname) +- +- OLD_IFS="$IFS" ; IFS=";" +- for pool in $already_imported; do +- [ "$pool" = "$root_pool" ] && continue +- +- if [ -z "$init" ] +- then +- # Interactive - one 'Importing ...' line per pool +- zfs_log_begin_msg "Exporting ZFS pool $pool" +- else +- # Not interactive - a dot for each pool. +- zfs_log_progress_msg "." +- fi +- +- "$ZPOOL" export "$pool" +- r="$?" ; RET=$((RET + r)) +- [ -z "$init" ] && zfs_log_end_msg "$r" +- done +- IFS="$OLD_IFS" +- +- [ -n "$init" ] && zfs_log_end_msg "$RET" +- +- return "$RET" ++ if check_boolean "$ZPOOL_IMPORT_ALL_VISIBLE" ++ then ++ do_import_all_visible ++ else ++ # This is the default option ++ do_verbatim_import ++ fi + } + + # Output the status and list of pools +@@ -323,14 +306,6 @@ do_start() + fi + } + +-do_stop() +-{ +- # Check to see if the module is even loaded. +- check_module_loaded "zfs" || exit 0 +- +- do_export +-} +- + # ---------------------------------------------------- + + if [ ! -e /etc/gentoo-release ] +@@ -340,7 +315,7 @@ then + do_start + ;; + stop) +- do_stop ++ # no-op + ;; + status) + do_status +@@ -350,7 +325,7 @@ then + ;; + *) + [ -n "$1" ] && echo "Error: Unknown command $1." +- echo "Usage: $0 {start|stop|status}" ++ echo "Usage: $0 {start|status}" + exit 3 + ;; + esac +@@ -360,6 +335,5 @@ else + # Create wrapper functions since Gentoo don't use the case part. + depend() { do_depend; } + start() { do_start; } +- stop() { do_stop; } + status() { do_status; } + fi +diff --git a/etc/init.d/zfs.in b/etc/init.d/zfs.in +index eabb7e4..d81ef22 100644 +--- a/etc/init.d/zfs.in ++++ b/etc/init.d/zfs.in +@@ -16,6 +16,24 @@ ZFS_SHARE='yes' + # Run `zfs unshare -a` during system stop? + ZFS_UNSHARE='yes' + ++# By default, a verbatim import of all pools is performed at boot based on the ++# contents of the default zpool cache file. The contents of the cache are ++# managed automatically by the 'zpool import' and 'zpool export' commands. ++# ++# By setting this to 'yes', the system will instead search all devices for ++# pools and attempt to import them all at boot, even those that have been ++# exported. Under this mode, the search path can be controlled by the ++# ZPOOL_IMPORT_PATH variable and a list of pools that should not be imported ++# can be listed in the ZFS_POOL_EXCEPTIONS variable. ++# ++# Note that importing all visible pools may include pools that you don't ++# expect, such as those on removable devices and SANs, and those pools may ++# proceed to mount themselves in places you do not want them to. The results ++# can be unpredictable and possibly dangerous. Only enable this option if you ++# understand this risk and have complete physical control over your system and ++# SAN to prevent the insertion of malicious pools. ++ZPOOL_IMPORT_ALL_VISIBLE='no' ++ + # Specify specific path(s) to look for device nodes and/or links for the + # pool import(s). See zpool(8) for more information about this variable. + # It supersedes the old USE_DISK_BY_ID which indicated that it would only +@@ -23,6 +41,18 @@ ZFS_UNSHARE='yes' + # The old variable will still work in the code, but is deprecated. + #ZPOOL_IMPORT_PATH="/dev/disk/by-vdev:/dev/disk/by-id" + ++# List of pools that should NOT be imported at boot ++# when ZPOOL_IMPORT_ALL_VISIBLE is 'yes'. ++# This is a space separated list. ++#ZFS_POOL_EXCEPTIONS="test2" ++ ++# List of pools that SHOULD be imported at boot by the initramfs ++# instead of trying to import all available pools. If this is set ++# then ZFS_POOL_EXCEPTIONS is ignored. ++# Only applicable for Debian GNU/Linux {dkms,initramfs}. ++# This is a semi-colon separated list. ++#ZFS_POOL_IMPORT="pool1;pool2" ++ + # Should the datasets be mounted verbosely? + # A mount counter will be used when mounting if set to 'yes'. + VERBOSE_MOUNT='no' +@@ -97,17 +127,6 @@ ZFS_INITRD_POST_MODPROBE_SLEEP='0' + # Example: If root FS is 'rpool/ROOT/rootfs', this would make sense. + #ZFS_INITRD_ADDITIONAL_DATASETS="rpool/ROOT/usr rpool/ROOT/var" + +-# List of pools that should NOT be imported at boot? +-# This is a space separated list. +-#ZFS_POOL_EXCEPTIONS="test2" +- +-# List of pools to import? +-# If this variable is set, there will be NO auto-import of ANY other +-# pool. In essence, there will be no auto detection of availible pools. +-# This is a semi-colon separated list. +-# Makes the variable ZFS_POOL_EXCEPTIONS above redundant (won't be checked). +-#ZFS_POOL_IMPORT="pool1;pool2" +- + # Optional arguments for the ZFS Event Daemon (ZED). + # See zed(8) for more information on available options. + #ZED_ARGS="-M" diff --git a/sys-fs/zfs/files/zfs-init.sh.in b/sys-fs/zfs/files/zfs-init.sh.in new file mode 100644 index 000000000000..ed84585cd5f6 --- /dev/null +++ b/sys-fs/zfs/files/zfs-init.sh.in @@ -0,0 +1,29 @@ +#!/bin/sh + +ZFS="@sbindir@/zfs" +ZPOOL="@sbindir@/zpool" +ZPOOL_CACHE="@sysconfdir@/zfs/zpool.cache" + +if [ -f "${ZPOOL_CACHE}" ]; then + "${ZPOOL}" import -c "${ZPOOL_CACHE}" -aN 2>/dev/null + if [ "${?}" != "0" ]; then + echo "Failed to import not-yet imported pools." >&2 + fi +fi + +echo "Mounting ZFS filesystems" +"${ZFS}" mount -a +if [ "${?}" != "0" ]; then + echo "Failed to mount ZFS filesystems." >&2 + exit 1 +fi + +echo "Exporting ZFS filesystems" +"${ZFS}" share -a +if [ "${?}" != "0" ]; then + echo "Failed to export ZFS filesystems." >&2 + exit 1 +fi + +exit 0 + diff --git a/sys-fs/zfs/files/zfs.service.in b/sys-fs/zfs/files/zfs.service.in new file mode 100644 index 000000000000..c390a480708e --- /dev/null +++ b/sys-fs/zfs/files/zfs.service.in @@ -0,0 +1,16 @@ +[Unit] +Description=ZFS filesystems setup +Before=network.target +After=systemd-udev-settle.target local-fs.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStartPre=/sbin/modprobe zfs +ExecStartPre=/usr/bin/test -c /dev/zfs +ExecStart=/usr/libexec/zfs-init.sh +ExecStop=@sbindir@/zfs umount -a + +[Install] +WantedBy=multi-user.target + diff --git a/sys-fs/zfs/metadata.xml b/sys-fs/zfs/metadata.xml new file mode 100644 index 000000000000..75b863399dd4 --- /dev/null +++ b/sys-fs/zfs/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>ryao@gentoo.org</email> + <name>Richard Yao</name> + </maintainer> + <maintainer type="person"> + <email>fearedbliss@gentoo.org</email> + <name>Jonathan Vasquez</name> + </maintainer> + <use> + <flag name="kernel-builtin">Disable dependency on sys-fs/zfs-kmod under the assumption that ZFS is part of the kernel source tree</flag> + <flag name="rootfs">Enable dependencies required for booting off a pool containing a rootfs</flag> + <flag name="test-suite">Install regression test suite</flag> + </use> + <upstream> + <remote-id type="github">zfsonlinux/zfs</remote-id> + </upstream> +</pkgmetadata> diff --git a/sys-fs/zfs/zfs-0.6.0_rc13-r2.ebuild b/sys-fs/zfs/zfs-0.6.0_rc13-r2.ebuild new file mode 100644 index 000000000000..e545cac769a8 --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.0_rc13-r2.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="4" + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ] ; then + inherit git-2 linux-mod + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + inherit eutils versionator + MY_PV=$(replace_version_separator 3 '-') + SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${PN}-${MY_PV}.tar.gz" + S="${WORKDIR}/${PN}-${PN}-${MY_PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + ) +" + +pkg_setup() { + : +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + ) + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs + rm -rf "${ED}usr/share/dracut" + use test-suite || rm -rf "${ED}usr/libexec" + + newbashcomp "${FILESDIR}/bash-completion" zfs + +} + +pkg_postinst() { + + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + [ -e "${EROOT}etc/runlevels/boot/zfs" ] \ + || ewarn 'You should add zfs to the boot runlevel.' + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.0_rc14-r1.ebuild b/sys-fs/zfs/zfs-0.6.0_rc14-r1.ebuild new file mode 100644 index 000000000000..3c1aed0df31b --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.0_rc14-r1.ebuild @@ -0,0 +1,128 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="4" + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ] ; then + inherit git-2 linux-mod + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + inherit eutils versionator + MY_PV=$(replace_version_separator 3 '-') + SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${PN}-${MY_PV}.tar.gz" + S="${WORKDIR}/${PN}-${PN}-${MY_PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) +" + +pkg_setup() { + : +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + if [ ${PV} != "9999" ] + then + epatch "${FILESDIR}/${P}-fix-libzpool-function-relocations.patch" + fi + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + ) + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs + rm -rf "${ED}usr/share/dracut" + use test-suite || rm -rf "${ED}usr/libexec" + + newbashcomp "${FILESDIR}/bash-completion" zfs + +} + +pkg_postinst() { + + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + [ -e "${EROOT}etc/runlevels/boot/zfs" ] \ + || ewarn 'You should add zfs to the boot runlevel.' + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.1-r4.ebuild b/sys-fs/zfs/zfs-0.6.1-r4.ebuild new file mode 100644 index 000000000000..2ac499a40822 --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.1-r4.ebuild @@ -0,0 +1,153 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="4" + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ] ; then + inherit git-2 linux-mod + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + inherit eutils versionator + MY_PV=$(replace_version_separator 3 '-') + SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${PN}-${MY_PV}.tar.gz" + S="${WORKDIR}/${PN}-${PN}-${MY_PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev systemd + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="bash-completion custom-cflags kernel-builtin +rootfs selinux test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + selinux? ( sys-libs/libselinux ) + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) +" + +pkg_setup() { + : +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Fix OpenRC dependencies + epatch "${FILESDIR}/${P}-gentoo-openrc-dependencies.patch" + + # Make zvol initialization asynchronous + epatch "${FILESDIR}/${P}-fix-zvol-initialization-r1.patch" + + # Use MAXPATHLEN to silence GCC 4.8 warning + epatch "${FILESDIR}/${P}-fix-gcc-4.8-warning.patch" + + # Avoid zdb abort + epatch "${FILESDIR}/${P}-avoid-zdb-abort.patch" + fi + + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + $(use_with selinux) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs + rm -rf "${ED}usr/lib/dracut" + use test-suite || rm -rf "${ED}usr/share/zfs" + + use bash-completion && newbashcomp "${FILESDIR}/bash-completion" zfs + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + [ -e "${EROOT}etc/runlevels/boot/zfs" ] \ + || ewarn 'You should add zfs to the boot runlevel.' + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.2-r5.ebuild b/sys-fs/zfs/zfs-0.6.2-r5.ebuild new file mode 100644 index 000000000000..fa129ce86dbb --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.2-r5.ebuild @@ -0,0 +1,152 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4} ) + +inherit python-r1 + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ] ; then + inherit git-2 linux-mod + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + inherit eutils versionator + MY_PV=$(replace_version_separator 3 '-') + SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${PN}-${MY_PV}.tar.gz + https://dev.gentoo.org/~ryao/dist/${PN}-kmod-${MY_PV}-p4.tar.xz" + S="${WORKDIR}/${PN}-${PN}-${MY_PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev systemd + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL bash-completion? ( MIT )" +SLOT="0" +IUSE="bash-completion custom-cflags debug kernel-builtin +rootfs selinux test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + selinux? ( sys-libs/libselinux ) + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) +" + +pkg_setup() { + : +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Apply patch set + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/${PN}-kmod-${MY_PV}-patches" + fi + + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + $(use_with selinux) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs + rm -rf "${ED}usr/lib/dracut" + use test-suite || rm -rf "${ED}usr/share/zfs" + + use bash-completion && newbashcomp "${FILESDIR}/bash-completion-r1" zfs + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + [ -e "${EROOT}etc/runlevels/boot/zfs" ] \ + || ewarn 'You should add zfs to the boot runlevel.' + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.3-r2.ebuild b/sys-fs/zfs/zfs-0.6.3-r2.ebuild new file mode 100644 index 000000000000..08afee227fbe --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.3-r2.ebuild @@ -0,0 +1,149 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4} ) + +inherit python-r1 + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ] ; then + inherit git-2 linux-mod + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + inherit eutils versionator + SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${P}.tar.gz + https://dev.gentoo.org/~ryao/dist/${P}-patches-r1.tar.xz" + S="${WORKDIR}/${PN}-${P}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev systemd + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL bash-completion? ( MIT )" +SLOT="0" +IUSE="bash-completion custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) +" + +pkg_setup() { + : +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Apply patch set + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/${P}-patches" + fi + +# Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + use bash-completion && newbashcomp "${FILESDIR}/bash-completion-r1" zfs + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + [ -e "${EROOT}etc/runlevels/boot/zfs" ] \ + || ewarn 'You should add zfs to the boot runlevel.' + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.4.2.ebuild b/sys-fs/zfs/zfs-0.6.4.2.ebuild new file mode 100644 index 000000000000..ad8286b39e3d --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.4.2.ebuild @@ -0,0 +1,141 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4} ) + +inherit python-r1 + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ] ; then + inherit git-2 linux-mod + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + inherit eutils versionator + SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${P}.tar.gz" + S="${WORKDIR}/${PN}-${P}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev systemd + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL bash-completion? ( MIT )" +SLOT="0" +IUSE="bash-completion custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) +" + +pkg_setup() { + : +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + rm -rf "${ED}usr/lib/dracut" + use test-suite || rm -rf "${ED}usr/share/zfs" + + use bash-completion && newbashcomp "${FILESDIR}/bash-completion-r1" zfs + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" + doinitd "${FILESDIR}/zed" +} + +pkg_postinst() { + + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + [ -e "${EROOT}etc/runlevels/boot/zfs" ] \ + || ewarn 'You should add zfs to the boot runlevel.' + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.10.ebuild b/sys-fs/zfs/zfs-0.6.5.10.ebuild new file mode 100644 index 000000000000..535d86509fdf --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.10.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz" + KEYWORDS=" ~amd64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + sys-fs/udev-init-scripts +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.11.ebuild b/sys-fs/zfs/zfs-0.6.5.11.ebuild new file mode 100644 index 000000000000..535d86509fdf --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.11.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz" + KEYWORDS=" ~amd64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + sys-fs/udev-init-scripts +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.2-r1.ebuild b/sys-fs/zfs/zfs-0.6.5.2-r1.ebuild new file mode 100644 index 000000000000..b202c6dc5ffd --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.2-r1.ebuild @@ -0,0 +1,207 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4} ) + +inherit python-r1 linux-info + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ] ; then + inherit git-2 linux-mod + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + inherit eutils versionator + SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${P}.tar.gz" + S="${WORKDIR}/${PN}-${P}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev systemd + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL bash-completion? ( MIT )" +SLOT="0" +IUSE="bash-completion custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + !>=sys-fs/udev-init-scripts-28 +" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { +if [ ${PV} != "9999" ] + then + # Fix OpenRC scripts + epatch "${FILESDIR}/zfs-0.6.5-fix-openrc-scripts.patch" + fi + + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + use bash-completion && newbashcomp "${FILESDIR}/bash-completion-r1" zfs + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.3-r1.ebuild b/sys-fs/zfs/zfs-0.6.5.3-r1.ebuild new file mode 100644 index 000000000000..bff26ccbf7da --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.3-r1.ebuild @@ -0,0 +1,225 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz + https://dev.gentoo.org/~ryao/dist/${P}-patches-p0.tar.xz" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( + =sys-fs/zfs-kmod-${PV}* + !<sys-fs/zfs-kmod-0.6.5.3-r1 + ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + !>=sys-fs/udev-init-scripts-28 +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Apply patch set + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/${P}-patches" + fi + + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + + einfo "sys-kernel/spl-0.6.5.3-r1, sys-fs/zfs-kmod-0.6.5.3-r1 and " + einfo "sys-fs/zfs-0.6.5.3-r1 have introduced a partial stable " + einfo "/dev/zfs API developed by ClusterHQ. This means that situations " + einfo "arising from the kernel modules and userland tools being " + einfo "mismatched on future updates will not cause problems." + einfo + einfo "In specific, this should solve the failure to mount filesystems when " + einfo "old modules are cached in an old initramfs provided that those " + einfo "modules support this API" + if use rootfs + then + einfo + ewarn "The older modules will *NOT* work with the new userland code." + ewarn "It is very important that you update your initramfs after this " + ewarn "update." + fi +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.3-r3.ebuild b/sys-fs/zfs/zfs-0.6.5.3-r3.ebuild new file mode 100644 index 000000000000..5738ad4a5d9e --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.3-r3.ebuild @@ -0,0 +1,229 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz + https://dev.gentoo.org/~ryao/dist/${P}-patches-p2.tar.xz" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( + =sys-fs/zfs-kmod-${PV}* + !<sys-fs/zfs-kmod-0.6.5.3-r1 + ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + !>=sys-fs/udev-init-scripts-28 +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Apply patch set + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/${P}-patches" + fi + + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + + einfo "sys-kernel/spl-0.6.5.3-r1, sys-fs/zfs-kmod-0.6.5.3-r1 and " + einfo "sys-fs/zfs-0.6.5.3-r1 have introduced a partial stable " + einfo "/dev/zfs API developed by ClusterHQ. This means that situations " + einfo "arising from the kernel modules and userland tools being " + einfo "mismatched on future updates will not cause problems." + einfo + einfo "In specific, this should solve the failure to mount filesystems when " + einfo "old modules are cached in an old initramfs provided that those " + einfo "modules support this API" + if use rootfs + then + einfo + ewarn "The older modules will *NOT* work with the new userland code." + ewarn "It is very important that you update your initramfs after this " + ewarn "update." + fi +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.3-r4.ebuild b/sys-fs/zfs/zfs-0.6.5.3-r4.ebuild new file mode 100644 index 000000000000..7e7b6f6cd9d4 --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.3-r4.ebuild @@ -0,0 +1,229 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz + https://dev.gentoo.org/~ryao/dist/${P}-patches-p3.tar.xz" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( + =sys-fs/zfs-kmod-${PV}* + !<sys-fs/zfs-kmod-0.6.5.3-r1 + ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + !>=sys-fs/udev-init-scripts-28 +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Apply patch set + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/${P}-patches" + fi + + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + + einfo "sys-kernel/spl-0.6.5.3-r1, sys-fs/zfs-kmod-0.6.5.3-r1 and " + einfo "sys-fs/zfs-0.6.5.3-r1 have introduced a partial stable " + einfo "/dev/zfs API developed by ClusterHQ. This means that situations " + einfo "arising from the kernel modules and userland tools being " + einfo "mismatched on future updates will not cause problems." + einfo + einfo "In specific, this should solve the failure to mount filesystems when " + einfo "old modules are cached in an old initramfs provided that those " + einfo "modules support this API" + if use rootfs + then + einfo + ewarn "The older modules will *NOT* work with the new userland code." + ewarn "It is very important that you update your initramfs after this " + ewarn "update." + fi +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.3-r5.ebuild b/sys-fs/zfs/zfs-0.6.5.3-r5.ebuild new file mode 100644 index 000000000000..a16b87cb3010 --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.3-r5.ebuild @@ -0,0 +1,229 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz + https://dev.gentoo.org/~ryao/dist/${P}-patches-p$((${PR#r} - 1)).tar.xz" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( + =sys-fs/zfs-kmod-${PV}* + !<sys-fs/zfs-kmod-0.6.5.3-r1 + ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + !>=sys-fs/udev-init-scripts-28 +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Apply patch set + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/${P}-patches" + fi + + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + + einfo "sys-kernel/spl-0.6.5.3-r1, sys-fs/zfs-kmod-0.6.5.3-r1 and " + einfo "sys-fs/zfs-0.6.5.3-r1 have introduced a partial stable " + einfo "/dev/zfs API developed by ClusterHQ. This means that situations " + einfo "arising from the kernel modules and userland tools being " + einfo "mismatched on future updates will not cause problems." + einfo + einfo "In specific, this should solve the failure to mount filesystems when " + einfo "old modules are cached in an old initramfs provided that those " + einfo "modules support this API" + if use rootfs + then + einfo + ewarn "The older modules will *NOT* work with the new userland code." + ewarn "It is very important that you update your initramfs after this " + ewarn "update." + fi +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.3.ebuild b/sys-fs/zfs/zfs-0.6.5.3.ebuild new file mode 100644 index 000000000000..9e43172c6aa8 --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.3.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + !>=sys-fs/udev-init-scripts-28 +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.4-r1.ebuild b/sys-fs/zfs/zfs-0.6.5.4-r1.ebuild new file mode 100644 index 000000000000..aea524fba7b0 --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.4-r1.ebuild @@ -0,0 +1,229 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz + https://dev.gentoo.org/~ryao/dist/${P}-patches-p${PR#r}.tar.xz" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( + =sys-fs/zfs-kmod-${PV}* + !<sys-fs/zfs-kmod-0.6.5.3-r1 + ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + !>=sys-fs/udev-init-scripts-28 +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Apply patch set + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/${P}-patches" + fi + + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + + einfo "sys-kernel/spl-0.6.5.3-r1, sys-fs/zfs-kmod-0.6.5.3-r1 and " + einfo "sys-fs/zfs-0.6.5.3-r1 have introduced a partial stable " + einfo "/dev/zfs API developed by ClusterHQ. This means that situations " + einfo "arising from the kernel modules and userland tools being " + einfo "mismatched on future updates will not cause problems." + einfo + einfo "In specific, this should solve the failure to mount filesystems when " + einfo "old modules are cached in an old initramfs provided that those " + einfo "modules support this API" + if use rootfs + then + einfo + ewarn "The older modules will *NOT* work with the new userland code." + ewarn "It is very important that you update your initramfs after this " + ewarn "update." + fi +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.4-r2.ebuild b/sys-fs/zfs/zfs-0.6.5.4-r2.ebuild new file mode 100644 index 000000000000..aea524fba7b0 --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.4-r2.ebuild @@ -0,0 +1,229 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz + https://dev.gentoo.org/~ryao/dist/${P}-patches-p${PR#r}.tar.xz" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( + =sys-fs/zfs-kmod-${PV}* + !<sys-fs/zfs-kmod-0.6.5.3-r1 + ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + !>=sys-fs/udev-init-scripts-28 +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Apply patch set + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/${P}-patches" + fi + + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + + einfo "sys-kernel/spl-0.6.5.3-r1, sys-fs/zfs-kmod-0.6.5.3-r1 and " + einfo "sys-fs/zfs-0.6.5.3-r1 have introduced a partial stable " + einfo "/dev/zfs API developed by ClusterHQ. This means that situations " + einfo "arising from the kernel modules and userland tools being " + einfo "mismatched on future updates will not cause problems." + einfo + einfo "In specific, this should solve the failure to mount filesystems when " + einfo "old modules are cached in an old initramfs provided that those " + einfo "modules support this API" + if use rootfs + then + einfo + ewarn "The older modules will *NOT* work with the new userland code." + ewarn "It is very important that you update your initramfs after this " + ewarn "update." + fi +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.4.ebuild b/sys-fs/zfs/zfs-0.6.5.4.ebuild new file mode 100644 index 000000000000..706e33be491b --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.4.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz" + KEYWORDS=" ~amd64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + !>=sys-fs/udev-init-scripts-28 +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.6.ebuild b/sys-fs/zfs/zfs-0.6.5.6.ebuild new file mode 100644 index 000000000000..706e33be491b --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.6.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz" + KEYWORDS=" ~amd64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + !>=sys-fs/udev-init-scripts-28 +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.7.ebuild b/sys-fs/zfs/zfs-0.6.5.7.ebuild new file mode 100644 index 000000000000..706e33be491b --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.7.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz" + KEYWORDS=" ~amd64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + !>=sys-fs/udev-init-scripts-28 +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.8-r1.ebuild b/sys-fs/zfs/zfs-0.6.5.8-r1.ebuild new file mode 100644 index 000000000000..535d86509fdf --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.8-r1.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz" + KEYWORDS=" ~amd64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + sys-fs/udev-init-scripts +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.8.ebuild b/sys-fs/zfs/zfs-0.6.5.8.ebuild new file mode 100644 index 000000000000..706e33be491b --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.8.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz" + KEYWORDS=" ~amd64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + !>=sys-fs/udev-init-scripts-28 +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.6.5.9.ebuild b/sys-fs/zfs/zfs-0.6.5.9.ebuild new file mode 100644 index 000000000000..535d86509fdf --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.5.9.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz" + KEYWORDS=" ~amd64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) + sys-fs/udev-init-scripts +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.7.0-r2.ebuild b/sys-fs/zfs/zfs-0.7.0-r2.ebuild new file mode 100644 index 000000000000..b20cb49f36ad --- /dev/null +++ b/sys-fs/zfs/zfs-0.7.0-r2.ebuild @@ -0,0 +1,201 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz" + KEYWORDS=" ~amd64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + !<sys-kernel/genkernel-3.5.1.1 + !<sys-kernel/genkernel-next-67 + !<sys-kernel/bliss-initramfs-7.1.0 + !<sys-kernel/dracut-044-r1 + ) + sys-fs/udev-init-scripts +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-0.7.1-r1.ebuild b/sys-fs/zfs/zfs-0.7.1-r1.ebuild new file mode 100644 index 000000000000..c5bf93725371 --- /dev/null +++ b/sys-fs/zfs/zfs-0.7.1-r1.ebuild @@ -0,0 +1,201 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="git://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz" + KEYWORDS=" ~amd64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + !<sys-kernel/genkernel-3.5.1.1 + !<sys-kernel/genkernel-next-67 + !<sys-kernel/bliss-initramfs-7.1.0 + !<sys-kernel/dracut-044-r1 + ) + sys-fs/udev-init-scripts +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-9999.ebuild b/sys-fs/zfs/zfs-9999.ebuild new file mode 100644 index 000000000000..73df3b10b913 --- /dev/null +++ b/sys-fs/zfs/zfs-9999.ebuild @@ -0,0 +1,206 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +if [ ${PV} == "9999" ] ; then + inherit git-r3 linux-mod + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git" +else + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +pkg_setup() { + if use kernel_linux && use test-suite; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + # recheck that we don't have usblp to collide with libusb + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [ ] Loopback device support" + fi + fi + fi + fi + +} + +src_prepare() { + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + if use kernel-builtin + then + einfo "kernel-builtin enabled, removing module loading from" + einfo "systemd units." + sed -i -e '/modprobe\ zfs/d' etc/systemd/system/*.service.in || die + fi + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="/usr/$(get_libdir)/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-blkid + $(use_enable debug) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die + if use kernel-builtin + then + sed -i -e '/modprobe\ zfs/d' "${T}/zfs.service" || die + fi +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core + use test-suite || rm -rf "${ED}usr/share/zfs" + + newbashcomp "${FILESDIR}/bash-completion-r1" zfs + bashcomp_alias zfs zpool + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + if [ -e "${EROOT}etc/runlevels/boot/zfs" ] + then + einfo 'The zfs boot script has been split into the zfs-import,' + einfo 'zfs-mount and zfs-share scripts.' + einfo + einfo 'You had the zfs script in your boot runlevel. For your' + einfo 'convenience, it has been automatically removed and the three' + einfo 'scripts that replace it have been configured to start.' + einfo 'The zfs-import and zfs-mount scripts have been added to the boot' + einfo 'runlevel while the zfs-share script is in the default runlevel.' + + rm "${EROOT}etc/runlevels/boot/zfs" + ln -snf "${EROOT}etc/init.d/zfs-import" \ + "${EROOT}etc/runlevels/boot/zfs-import" + ln -snf "${EROOT}etc/init.d/zfs-mount" \ + "${EROOT}etc/runlevels/boot/zfs-mount" + ln -snf "${EROOT}etc/init.d/zfs-share" \ + "${EROOT}etc/runlevels/default/zfs-share" + else + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \ + einfo "You should add zfs-import to the boot runlevel." + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \ + einfo "You should add zfs-mount to the boot runlevel." + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \ + einfo "You should add zfs-share to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/default/zed" ] + then + einfo 'The downstream OpenRC zed script has replaced by the upstream' + einfo 'OpenRC zfs-zed script.' + einfo + einfo 'You had the zed script in your default runlevel. For your' + einfo 'convenience, it has been automatically removed and the zfs-zed' + einfo 'script that replaced it has been configured to start.' + + rm "${EROOT}etc/runlevels/boot/zed" + ln -snf "${EROOT}etc/init.d/zfs-sed" \ + "${EROOT}etc/runlevels/default/zfs-zed" + else + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \ + einfo "You should add zfs-zed to the default runlevel." + fi + + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} |