diff options
Diffstat (limited to 'sys-fs/zfs-kmod')
43 files changed, 4671 insertions, 0 deletions
diff --git a/sys-fs/zfs-kmod/Manifest b/sys-fs/zfs-kmod/Manifest new file mode 100644 index 000000000000..ecfdc1dc047b --- /dev/null +++ b/sys-fs/zfs-kmod/Manifest @@ -0,0 +1,66 @@ +AUX zfs-kmod-0.6.0_rc13-fix-invisible-snapshots.patch 1371 SHA256 f48710ba112304d994785b9fe29c973e4dbeaf4db5e73f0147e1e2ecf10cb9c4 SHA512 16828602d72f57a88dc1247e6107c61bb50db3a694f825eefa27d67aaa2cdc3ea0d6e0542d90e31ca399d4793261c2d9b8c304f3e6b55b6eeea7a95759e69539 WHIRLPOOL 87bc1890e099e97af4d57092ca5fabdccf2abe25bea73f0f8113b9ec587bf5f39e96ca1a1246dcad6827830e0535f19994576027863102325111f43c899ecd84 +AUX zfs-kmod-0.6.0_rc13-fix-recursive-reader.patch 1161 SHA256 f74db8f9704f35d460a1a2250993057d301710c065e553c688381e778fb8e320 SHA512 9a16107d448c90914e9e1fc767c68eba7fb3793c1a7b1e26182759d0b398d09641f51911981a1092e76223cd8a56724c634bc939e9f1fdc412cf4e469e1e9384 WHIRLPOOL ccd43c7610420c165ac19684217fc8d2aa6b5e95d3fa40dec651ea1bf145f9ec0463ff806f918678636d2658dc6c80946077d5773f7486e4d68c13ad3cb1960c +AUX zfs-kmod-0.6.0_rc13-gcc-4.7-compat.patch 1882 SHA256 bd691dfdb8379c276309715b597b2091595c0f177a2241249ec76f6e31f3f101 SHA512 7f24915fdacaca01620a961febcc524b4c40989e85754cc927df5d8d87b77ba6bcce919db54fd7e42646abf16b6b29349de5e8dc30b5c12a9744e7321a9280e4 WHIRLPOOL 432182663ba978f1ae530a27d7f813e7aba04380763354a5446933c53848abaca738145c316b4c6c5fee06e65812b4e210def8a6432f7f5a8c845f4334b09d5b +AUX zfs-kmod-0.6.0_rc14-cast-const-for-32bit-compatibility.patch 1068 SHA256 4fba06f71807086da90c9d8f4c2a04cd83af4b606ab2ab9a4bc22f08e9439861 SHA512 8f1d20ab9be3ae388424ad543d400244df9ad093a0e2c61243c6b481347cd2fc0ab194ace5062d4ef6d162622324a5ed14c43c8c6c4e63d56725624f86a3961e WHIRLPOOL 4edda0e2353e851fdfc8381d9ab91c3c68d7c7f60dd69778817a9aeea46ba8b15e51954ccc5c49c4e094063d3bf350f14e2ab49fed9837980772a2eb495cf2af +AUX zfs-kmod-0.6.0_rc14-flush-properly.patch 1058 SHA256 becf3bd60019415281f38633ad10d9a4b57587aa8b9d0679dfd7aa83ae76092b SHA512 5ffe861de9d7ff54a1108a08a1c077e9f2eb1266fe72a60d4b790be463714a6736fc8b96168d656192bdcd7a0d836e5d09dd04aba3dbdb7370a682542be68a35 WHIRLPOOL 2cc7619a3e76abedd0b77427f408562c5f7206f904dc40a58f2aa519305820c121ceea53311f747ea1f103bcedd5cf88cb27cf8bdfda6b43f879f35855a8724d +AUX zfs-kmod-0.6.0_rc14-improved-autotools-checks.patch 3841 SHA256 0c456d53f0f5c861fc3b92122290f9ae8dc90af9469bd66f35f5ad802a037f4a SHA512 985d1d3359cec0c5752adebd398e241e2b7cfe174ac500e2c66e84c960bddfc8908f6de19468f628f2752434f4987ea926842cc40c4268a9a18376d1c1c04460 WHIRLPOOL d3ee7ac7cd3711db31229a45b33cf0eeceae6a9710a4b5befb9ac4734bc0a8dcedc37a38d497827430e99282feaea8200b4b54295228238e9b39750c179d39a3 +AUX zfs-kmod-0.6.0_rc14-improved-hardened-support.patch 17568 SHA256 1155f2587e249fe2b80e887c10549da11dc0ccb2f1a86d7bf4ad37bc73eeede1 SHA512 0d7a3354a336a749be0aeb1781f9c78ac3037ad515e31039184fc13075ec10b237581d25d6eddf5c0bf9b9b49b137d73c0ad9685d544fa8f8a7200463300acfb WHIRLPOOL 365e07900bc89fde7624f987ecdbc5ce55cebe1318f60062ae0c36ad044cb2911af81a57886d958237b01de12b865cef3377b7cce8e760a55abc2ec4fbde0379 +AUX zfs-kmod-0.6.0_rc14-linux-3.9-compat.patch 1098 SHA256 3572e68fabdaea723a2f31e109fe17646c966e12e2c99364798fdcae1ec63b3f SHA512 c59a09d741549192bfb9433e4ab9ed2c42e8346c5c0eb7accd76a40edc8b50f3c49f9dab69c66e2c4fce4d9b62961121512c475ab7b9fd9f8d821ce1075dd309 WHIRLPOOL b4f29f80ba433196d12b2c4b0945841f6282d5def9eeaf4b59f032fd57042073d437b33a1ae849bc2323af3a0cc16f23808825f2fcccbc7bd1a2b8a98cfbb5d2 +AUX zfs-kmod-0.6.0_rc14-vfs-name-length-compatibility.patch 1074 SHA256 ca1efba212bdec982d519a05c81035271440a43f2aa6333c3e7f244690fbbdcc SHA512 0df3ca10c9919d554c197a45a0fc9217db19f6de39db6d00ff1f6501857430df79e9403c924c34928dc236adf73a5ce9bdc80b877a62709d4591a1fbab2c87fa WHIRLPOOL 3fe58a362d1c0fb0c8aa30bbec4a43d88d95b6c956445246ed8f28ae890c2fcc2b13de184eba91937e1ff8ac93b38a3f0b6824733da45cf46999e23b51f31d9a +AUX zfs-kmod-0.6.0_rc14-zfs_arc_memory_throttle_disable.patch 1354 SHA256 0d3690d53b7e3065198da6b0356c1b903f04c5f69f7097e0735a3af221d122d0 SHA512 816f7e52f6c97a06bd0cd28a6bed8c8d1f29be6c45a4b41a7e2090c796cdd5d519fde333d1932e959fde70ef9ecfdc1c8c9231c56d935a2c34b3e3897e0c7a94 WHIRLPOOL 52c1224114767957ef9211ebe73a64ededfd6d6bd6aada2470b3e916cae4a18f87eb8710a716cea55a6eae987efc250d3496d04eefb250335c031827b13ec08b +AUX zfs-kmod-0.6.1-fix-arc-read-panic.patch 1432 SHA256 2a2fb2a0b4960e7c616f4bb27a2a1ddf6dfcef30eb6b22ead20d70fe58055c1e SHA512 6063ad756aac5df4b850fb79630696f0616e3a906463bdce147b07383ed1cba47a60e02eac3cc2888fb92f9915e6ff8e28ca36c4e3d11cc9e65391c68a79d972 WHIRLPOOL 4d0432ca6468d44de7a870e03d20497eeb39b1e373d843862a695622b9d69e8eff6f3d52471b7756f80c9392ae12a797b6665c4d27f73710f67f0ee1aaafcbad +AUX zfs-kmod-0.6.1-fix-getdents.patch 971 SHA256 c55cc963c0a5e9d42b7462c18b3be25af0020284652f3a2c7e1901eaca2567f7 SHA512 e5c41547ee1ee0e6aa67555501d8a6e18bbbe294c1b2deb6ce7af5efb07857d07acf2590867e64cd46f4abb0732b1048ad9edd8b30ad787d302ad3f6ec6284b2 WHIRLPOOL 7912eb4833acde65b6a12537dd0d34941ccdd8b23de4c80757d36059a3654a18c843ca4125a4acba175e13b93a7c0af4353dffa1e55429d2b6af8ceee2e96674 +AUX zfs-kmod-0.6.1-fix-txg_quiesce-deadlock.patch 2368 SHA256 af06930be9d5b7a068edb7a6b2971ca64083f3d7f2e8a1030d4828aa4ea5095a SHA512 2c439a1373f30974154d990225e3207c01ac66261fda4457e05744cddff9dabf86deeff30e68834669487accf26ea502851dc11f370e84e0f14112adc7838bd6 WHIRLPOOL 7ad335596f02e07ad3a6c5ee721384c50336c544597b0272052ee7d58c597760bbd1f56f7edf1197ca939cfce53ffefb415704d9b8034a8f38797496c62fdc5b +AUX zfs-kmod-0.6.1-fix-xattr-behavior-1.patch 1218 SHA256 785b3649ec53aef5598b75e36686ee392541492b40221d468abf442c5eb0959d SHA512 f98ae5bf59ff84af3fe91b8d1589d4eac2588542007a7185b91dc40abf0f54f0b001d3614bfad342510ff2228fb79bb0275991e7d9ecfabf42659c5839737cc2 WHIRLPOOL e9e8512fb9e96d71e586d110e4db69dd49f42dcc59b62851c66541a5faf339665d7f99beb40357ed912daff6f85b7a75e92414cc4a8a65e3b634f8b56543c225 +AUX zfs-kmod-0.6.1-fix-xattr-behavior-2.patch 1205 SHA256 91e6e0e90504b5f71bcd4daae567b7f8830d6df21eefe299b03b6e3263fd1764 SHA512 23ce8867de27d8402b33ae672d009fabad8faa8a994021c745582aecad28519eeff3902503abb8842b04a649f720532535191fe16a53014157dfd89f55d95615 WHIRLPOOL 2fbe1ee885d53102dbdb22203ec7372039972e3e94b047134367c60e81dad28a845930e2d6cbbe22e2171dbd6cf56f9d91bf219b3e0c5f87ebc623518affc175 +AUX zfs-kmod-0.6.1-fix-zfs_sb_teardown-NULL-pointer-deref.patch 1786 SHA256 93524ad27a8a675833a4d0f31d023aa1f19df971e3224597fe2b8ba0b1cd7917 SHA512 d0da1ae4eaa8a11d7af58cbbbb97e9e7fc2e314f5cb41725e1178fa5a8ae60c8791713468faf11d64d5e8bf4720d37c014e38f5f353f844f9cb2ac4718274322 WHIRLPOOL 97b82c29ad786171cb18323b3f643ec1fa62057041b13e63b9257243e715775616140b01b3d1d5260770778760ceb9afe2f77f48820de0c06eee6253ede2f953 +AUX zfs-kmod-0.6.1-fix-zfsctl_expire_snapshot-deadlock.patch 2503 SHA256 f971fddca8a1b9da357fef42171230cf754649cffa45e59ce0c6610776737c29 SHA512 dbf9ef69262aba1a449c528145dcfc5bc4f9bc0ec46f1a04073d99d83c586ff8d76d788d6d2d798c98af8a22264db3969810711c5830cd3d64392de7c4f9bf91 WHIRLPOOL 73e5de6aafebf54b6fb1c5cc036252299d353c326fbd1e34c08e7ec7167ca064cb769c84a20ee12bf5b799d57cf191cead2cf996177f9dd542d1f7b0d57e872e +AUX zfs-kmod-0.6.1-fix-zvol-initialization-r1.patch 4803 SHA256 36f778dc0fa3c3c7aa4f2383e9463a75c51da19a1a719018f729e9d42ffb52ed SHA512 bfe5ee1185fe044cbf758414b0c8bc4311de6b0502a6f0c6a8fecec71402376f0ab4aa7e798f870c262f54d77f6b84590cc2ae371ff4880dcd97b834ac443483 WHIRLPOOL 3932ef6eea9ed0f23146f980504540843b04a684d5c55cdb5aec60d9fdb18354d61e485b55f5a0f2561ed3e379accd6b3d3f7c39bdbc91bc0d3194546e75ec5e +AUX zfs-kmod-0.6.1-linux-3.10-compat.patch 3513 SHA256 e1e4773f78faf53b591437dc4222c343a6a970e8c4e3a25a441cf8c32dcf66ef SHA512 aa0ee37ec071e1732533d620d88d47219d33579b164bcc3ef9ed92a68060e4587d171fa59f759c77799fc2112ceef494c201eed2614c8eed49808dfc09b8fe68 WHIRLPOOL ede846f6b8ce91a1c558693e36b3d7676096e27fae4db0a4139b7a4b79589158c3d834e4dbcaf4c4de3f6ca5d1742f715fa2cca2fdea069f286654618a1c1bdf +AUX zfs-kmod-0.6.5-discard-on-zvol-fix.patch 966 SHA256 3770a47646e35f9c5cd35bce49a8145905aaf5f005ee6ecec9054597095357cc SHA512 5de4a48727cdb21c3851a3310545eb9ab353c732df891d50f1c02da9d3db0a5104a1e6dd660fcdf73c0fe315e6694fa6f3932a76c90074126e723814e65fb6de WHIRLPOOL 81b2070f7c53eb6765c02ec833246b0c92832515a92b6a172c4687dfeedb08eac5fb98a984d61d90379ece52ab9da573acd877efcde045235b2f29c575548706 +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-p3.tar.xz 88736 SHA256 031cd97765f890d9b78e1a5746cbd2a3ce06c7208693ec75c0b47324ac67b97a SHA512 8f17cc6e02a35828a57a7c2a437d9d18a41203b6e3f9e154b2ab863296b64596dc827afeeb0f993e37f47881d0f2ed4834f270d0ba843ab84b21c491cc352576 WHIRLPOOL 20f69c0a936bb612d5e3b551d4bf904aca3aff6d885d72f67f3b14cd720094ec13e383032ee4e322b0e81017d8ffcfafb47bf07f273badef34f7210d687ddacc +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.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.6.5.tar.gz 1816180 SHA256 542121940122c922c9d21a2bb39bca4e4a9db2f6bbfd2e576630840e256d4c82 SHA512 58480ee9b0780f1f21d12504abc226be3e6df1939214f6a8f245315d1fa0b9da56b3a744df26426ee78f13684a4ca288df6dddc50f8f91d9d0b4c542980a9c53 WHIRLPOOL fdb5580ec8d4abe57069ce453c1d91225019758ecf5d31856a7897ac7e4b51c6a8ae3258e822f684fbd70a0a7d7410c65c37a569f37d132767522118c587cc24 +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-p2.tar.xz 28636 SHA256 12882463a38a5a57cf2bb3c14c5783f9511f6dc7b163a47575f2f3dcc24f26f6 SHA512 5792660ae8f5013d12e70d608e9cffa92a8c4089a88a5e78728ee88204b3f970d452d5b0b3874e02be49ebbc139e07139be7b5a86ca40bc8b23cb11a7198a9a8 WHIRLPOOL 0e4c57b363cdd3d736efbd1355567b18e22439bd3b20ef40b27f6b97ad4570c7cc99a11b196ac25359d1966c1a70e178f4fd1687b60450f148ccda47b07282a9 +EBUILD zfs-kmod-0.6.0_rc13-r4.ebuild 2918 SHA256 6ea818295d86269658cdd0f738ad1985b7e341fc1299b767d7ff097fec64cac4 SHA512 0181b33ef6c7be9d04ea82a70f4fad9d1857c0399afb990ee896a84abd8a39f56ae2cfa2c685fa12f3b7566cf1e22c4dfa3b11d7e8c1430ef6966ca2b76e5879 WHIRLPOOL 106c05b0563e4812beec09b4295216fff0f508cbdbad506256997254151ce89be341a26c6d7a363dce414cee264ad54c2329a54809bbf49cbcac91b24eea7c0e +EBUILD zfs-kmod-0.6.0_rc14-r5.ebuild 3545 SHA256 23e7f9dcdbc7def3170da5b2fba746f937084b5afd956f34698a33c9d0892dbe SHA512 b583ef7334962c967df9ea21cac71ff761373770dd861faf8416d78f33531573fdceb5f974526f02cb4a8a298657e4773ebca6c2079b2c08df34035bf2c3ccf6 WHIRLPOOL 86e214049e54eb6e20659907778f08fb8debc328f302a2dfd7eaf81d8bcc3a915c4ccea29ff3a42b9ece6b8386505ad898b36a21363d978f6433e295f6d016c7 +EBUILD zfs-kmod-0.6.1-r2.ebuild 4153 SHA256 e17f389040047f15ac0bbd142b4b6ac478793f29490aeeb855c3185e97332777 SHA512 7fdaad8fbd6d25ddba63695e78e8180ab708590f577902f007d807ab838a70dd59ceff539b9cb69d93f41e27e15784b3da265b592592835e1bbc60a9669c8b9d WHIRLPOOL e173995a1b2646c2adaa66f231637eed0d16ce00344fce8ba7fb24fa1f804198c77aa1799ff63347bb61c0777bc6504566a6c122c8ff997845d91e1fedde2612 +EBUILD zfs-kmod-0.6.2-r3.ebuild 3321 SHA256 c43d6939fb84cd00af17812d1ee1300d8e73719811c9863d5bbaad9fb7b0529c SHA512 bc568642dc62ec276a657730da4da79b8698849d1039e78dddc5b71769b5e333e96476e9925c013b751c9850db6fa81fb2be66bdeaac812336c9a55cd3437d4a WHIRLPOOL 69dd8e168d134031fdb2be3f35b146f74bcd8e440391c7e1e42b776245863f898de95c76fc985058cf01b556df925cabb924b6bcb8bf5e239c9b5d83351ce30f +EBUILD zfs-kmod-0.6.3-r1.ebuild 3792 SHA256 ad06fd9ccc7f5dcd4324b4e889bbb93829fb53fa1d407af9387f0940a213ed31 SHA512 3a49e413a010c47053932f78fae4b9e46fe8f641998a682404088d02d1afc53426055fb38ed907a9e115eaa17031a4c193c8e6a5370b44456c39d12ea171561d WHIRLPOOL 069c431319f19d493c5ef1e683b2a97184c038a0a5ea956062b2298176372a05b70fa7f840592d820852dbecbba6a3ee46428ef370845ebbb0dcf0d746f5742a +EBUILD zfs-kmod-0.6.4.2.ebuild 3989 SHA256 a0cfc07fdc639af190bab3ed7247f33fab70b654684a6b59bb0444713f83b3cb SHA512 4e1eec82ffa9243ef709ecef94ee47016b6c189951b057d25860f30bb33790d6d8f672956c1ed31d95470eb33b8222559181672f76e4ecf8670143e68d487185 WHIRLPOOL 6728e334b8b7e53da5d3c36280b604a3e74d6093d9e06311fa6e36493a7c5097795b1273b0de89c0f175ddc17a8dd9ccb1ff5f11fc0d123a3821a32e0700fe2e +EBUILD zfs-kmod-0.6.5-r1.ebuild 4282 SHA256 6fa7a2b8eb3b7838d060c8bba8f11db41a5113ff16435b75aa0bebabd46cc909 SHA512 fc5f4375db87185d15245a5e3859940d736a1af9fb90e07110bb257c270c1f14a19148e3185a47abc61617c104bfe37a07b692909ff9dbe8b4bd14938294da95 WHIRLPOOL c5b3cfa47d7fefefc2b29beb60e9377b9b9aca6baf0b4f72c7390ca3d02e967a9a055069543418faf4cd28562864a93a573f4230b6e50467d02c11df8683fd30 +EBUILD zfs-kmod-0.6.5.10.ebuild 4052 SHA256 ab375e8bdda895acc3ec1e115e8447a68bf4ec592489fb62ded1038662e9624b SHA512 773bb52b42462b69d5911e7f02a503872080f8c9c98c9a35959caaba65aa5cdf940f874f0b5058dd47548c6e3bc296b949ff37d46a4d9cdae177f289e83c1abd WHIRLPOOL 3a9686f6928d5709b3bfe236c5609cbda94990184e8d2b9cefca4cfe07cf42a39cfaf841e88b5f57fc0119cc2e672f9523a2460b203fcf5af3449f39c585e9a7 +EBUILD zfs-kmod-0.6.5.11.ebuild 4052 SHA256 ab375e8bdda895acc3ec1e115e8447a68bf4ec592489fb62ded1038662e9624b SHA512 773bb52b42462b69d5911e7f02a503872080f8c9c98c9a35959caaba65aa5cdf940f874f0b5058dd47548c6e3bc296b949ff37d46a4d9cdae177f289e83c1abd WHIRLPOOL 3a9686f6928d5709b3bfe236c5609cbda94990184e8d2b9cefca4cfe07cf42a39cfaf841e88b5f57fc0119cc2e672f9523a2460b203fcf5af3449f39c585e9a7 +EBUILD zfs-kmod-0.6.5.2.ebuild 4096 SHA256 209a84d941532cb7cb66b1d2dce37c8e1481a37236d7573149940288e25a794a SHA512 7bf181388726e85cfbb8ab1d50645216c26ef3a2fd6390996ab28a14c982b7939293e50248c8b1c63108bf267e505b10ac764ea58b8a47deddb48a24e4b706c5 WHIRLPOOL 557992f25e44fc902d6ffbede7cf03f466c6e02d2cf39f547b96cf9a5dfdaf3448344c32a6474460c930ef50f4c541b0f4e7878d90d4773101ac98915f7d5e72 +EBUILD zfs-kmod-0.6.5.3-r4.ebuild 4377 SHA256 fb1cc449621181c8d3e7d5c3821f4313a07e7241b6da20ead7f0292b4c80ce60 SHA512 98e158c83c3068ad513830f801b56bad90712815e857aebd610fe1fbc2b33f869fa93b3d956ad08d57dcad352be5ee610e25fe0e1c61685d6f73551c002719c8 WHIRLPOOL 2d383aeb86b1ca585e8acecd7b427b13d247e01654ba9a0cd880a20c5a0726042a3b5b4ffaa94c1e89c26e2c0c1f65cdd4a3409436d2e5384b5ca1198418429e +EBUILD zfs-kmod-0.6.5.3.ebuild 4066 SHA256 c467680283e2c119ff12adbf4ecb2523d5e41353b66d878f70a2795dc0bb64aa SHA512 e5a4f2be284d93a49ac9c96bcd186f72f793a92975648f40ec1bf90c31e25e61c8e7e22a95fb63014c888d513c4942a850dc359ef647ad17811a802188cbb2fd WHIRLPOOL ac57ee877275b8560ef3283818e7f47748737b3315a6419916554deb941f3aaa246f84f024f41eff51667036f596e3a8e51a2afd49c9c9966b795681bdafe602 +EBUILD zfs-kmod-0.6.5.4-r1.ebuild 4383 SHA256 fba8daf4f77627e2449bf9b14216abb8e3daaf0c95c025dc957a0b1e7d60c4c0 SHA512 5271ddb239c2f7bf1923a6cca7a9de5c4eba3bbb71ce5554f58edd448cbc97372f25d51ca4cfb188fe1c3285648e09c057e09e0ba485adc68ff5305499ae8a5f WHIRLPOOL d00a7164eddc74f6981fc0f8e53fc018e26020b38a632dfdcb054abfbcf01bb9758bdc738ccf7dabd34dd32f4e494222b365dd3e048a6dcd2c760b34544ba7b0 +EBUILD zfs-kmod-0.6.5.4.ebuild 4050 SHA256 d4edbbd98248d2ea31d4c64c57990d45ca5c0db7dec01c9b090baec01a1f3fb7 SHA512 0afd38d6ec053ceb83ad97551267a211d8b09aef69161af2f52d7a30ea990eb2d47e98b1efd0d8e672abbe5543b49972c2b1fd06ad9f9b3f47f80070d739afb3 WHIRLPOOL 36fbc3615335902e20f2f32cfcd11c89ace959b3d928d1e991ed391d59f98f0d693c41e80acdd252bc5cf1f306ba3605554579e94cfe4c0f4d1ecc9d297dd29e +EBUILD zfs-kmod-0.6.5.6.ebuild 4050 SHA256 bfeac68656924c0a7afcf9e80a504e3a4f4431a2dcd5533ca1deca1cb07a7753 SHA512 3ef97c146c589a4390dfa5f9b7deb481bc393aac3321a7beecf85526425f5bba4a961fea1ed2d0b6692ea0120485581b19a1232730d30150646c0c0e4ca6925a WHIRLPOOL d7dc0dbde5baa6d5d91d59df8f4a6ed79c8605b3393c13a8fea27dcf4faeed4a046c313827ae7cc28ca0e2fd02c3fa55d6686e81a51e7bb5c764561feb255068 +EBUILD zfs-kmod-0.6.5.7.ebuild 4050 SHA256 bf73462ca8e0f3e42d0f84150d20c91dd0e1fed240d61858076192740c39ffb3 SHA512 fc5e5bdb35cc23127f17ed6ed360a7e7566ba47aeb13118ee0d1caf54c317462dc67f04f14f34e49ef7dc30a2811bcd01a27eea473f15a0b5d14359206e32997 WHIRLPOOL 19d7126cdcd0c69002bf2bdea9af9c0c650a3cb17e4bea26f74f7ce0254f4c6522ea66e3fab2611f62265dcf0155e069448f66c678a9421e50eaa8d2a1dc0f2f +EBUILD zfs-kmod-0.6.5.8.ebuild 4050 SHA256 fb1bcba00c52f50fb4704af297e646f5ea84179af367a72510f2d7da8bac2459 SHA512 9380de435663ace10ef5d8791afee4896f9768f82b5f34c7aa77bc0f79661f7bb6b22bf4c2639e88bf75c66f003a48b56df1d1310b816b7293e87d6e422b0bfe WHIRLPOOL 417e53f00754752fbc4f32051ce6d20bdae0ef9506c4382f538dfad71b0a34c7ca06014a6ae5272344792a9c0ad9998cc5bdfaecab1981b802ca21bb2ee81640 +EBUILD zfs-kmod-0.6.5.9.ebuild 4052 SHA256 91c9c8f8119422495913038bcc2a26c686dbb639ed035d53d9a65ae9397c6a6e SHA512 67ac053fd1f304710b800ac3482c6a54bf49f2f0f35ce49ea11a36338f051a8acbf24502c4a237b40705076da4275ebd080c59befb54e37b1877300425c89c9a WHIRLPOOL 41f14429fb2287928f86f69f3cf8a8fa95b235a8f0aefa39bef701d3a8dd038334d5094bc0c1cb67a670239d6d36536ab46afbc3e8952ab11e781a772bb9492c +EBUILD zfs-kmod-0.7.0.ebuild 4052 SHA256 ab375e8bdda895acc3ec1e115e8447a68bf4ec592489fb62ded1038662e9624b SHA512 773bb52b42462b69d5911e7f02a503872080f8c9c98c9a35959caaba65aa5cdf940f874f0b5058dd47548c6e3bc296b949ff37d46a4d9cdae177f289e83c1abd WHIRLPOOL 3a9686f6928d5709b3bfe236c5609cbda94990184e8d2b9cefca4cfe07cf42a39cfaf841e88b5f57fc0119cc2e672f9523a2460b203fcf5af3449f39c585e9a7 +EBUILD zfs-kmod-0.7.1.ebuild 4052 SHA256 ab375e8bdda895acc3ec1e115e8447a68bf4ec592489fb62ded1038662e9624b SHA512 773bb52b42462b69d5911e7f02a503872080f8c9c98c9a35959caaba65aa5cdf940f874f0b5058dd47548c6e3bc296b949ff37d46a4d9cdae177f289e83c1abd WHIRLPOOL 3a9686f6928d5709b3bfe236c5609cbda94990184e8d2b9cefca4cfe07cf42a39cfaf841e88b5f57fc0119cc2e672f9523a2460b203fcf5af3449f39c585e9a7 +EBUILD zfs-kmod-9999.ebuild 4066 SHA256 e16f6edf739ac9ffcf91e1426e591cf585ef607182ea981f8f49248bbcc64dcf SHA512 30e78f5d73ab1bde1422f52ca1d773655c3ffa5e30385181daf650708639e34225c0367d5abcd80345d27868dcea8516024e9901c43590057783354847316517 WHIRLPOOL dc07d9f9f1df2ffc11628ebbbcc3e064c52e2b796b4f07bf4abb4e97afbd1899490908525ed4cbd686d69203168e95a264c714c64f5125e090dfcc0a0ef98e60 +MISC ChangeLog 12130 SHA256 3801bf091ee95d43a08aa11b014919287cb8071903b0dc75e482ad7418d6a0b1 SHA512 206dd30070d2f19e6c05fe4a122159916c597a60d28cf3c5f70e58394f613918986bbb0212884428ff7033a08b420556303ba1b53648d08e4218b02403a7b89a WHIRLPOOL 5eda564e5080101491e00362dec85baba0f09b5d948045151645de20e770d48940b13d019c42c5cd342d684c8174d66ac6c0de3d5365b713972548fc4411c003 +MISC ChangeLog-2015 17220 SHA256 44938d6e98d5c94b22a4934e9bea77ced5336708850e3525e674adb5477967d7 SHA512 93133a5bc445fc39c017ccd05a5b432fe4fff11cae819b4a4de84bf8da3d9ed7daeabef61924cc7886dff31f6e337fe98f81dfd7bcfb9de77f9486c9e23f0073 WHIRLPOOL c742602cc89dff432a8d091db5e126cbdadc5849afcb614769f83e12cfb9a64c2a61a65704a54aacfeeca8a50ed14c02edd06c9c051ce3076e4d62addddf1c60 +MISC metadata.xml 554 SHA256 f5c86d4654060d5481674ec419c3e4cc1a6e24c9b531f100c10ce14afca1b674 SHA512 c5dbcf5b795510abbe6c6dbea53ea6b9a438f0b2b8f7af28ae3ec9d8816d51c6ee22938bfe7d222d5b451065b57447064fba59e93a9621f1132e3d27ef8d385b WHIRLPOOL b9af8dc787c8aff8fe25336cd6a0b55955768f756a0a3f85c876627a7b181cb77f64f6dd43fdbd6f37883c0b6c31c6f44e2d7c7b1da22dc1d8a19c92649e88de diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-invisible-snapshots.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-invisible-snapshots.patch new file mode 100644 index 000000000000..2daf211c7744 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-invisible-snapshots.patch @@ -0,0 +1,39 @@ +From 1c50c992bafd96773dc3950d382a89806df8cc9c Mon Sep 17 00:00:00 2001 +From: Brian Behlendorf <behlendorf1@llnl.gov> +Date: Wed, 9 Jan 2013 11:09:06 -0800 +Subject: [PATCH] Revert "Avoid ELOOP on auto-mounted snapshots" + +This reverts commit 7afcf5b1da83549bfba70a61fae7a00eaa63c2b0 which +accidentally introduced a regression with the .zfs snapshot directory. +While the updated code still does correctly mount the requested +snapshot. It updates the vfsmount such that it references the +original dataset vfsmount. The result is that the snapshot itself +isn't visible. + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Issue #816 +--- + module/zfs/zpl_ctldir.c | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/module/zfs/zpl_ctldir.c b/module/zfs/zpl_ctldir.c +index a2d8fa9..7dfaf6e 100644 +--- a/module/zfs/zpl_ctldir.c ++++ b/module/zfs/zpl_ctldir.c +@@ -357,13 +357,6 @@ + return ERR_PTR(error); + + /* +- * Ensure path->dentry points to the dentry for the root of the +- * newly-mounted snapshot, otherwise this function may be called +- * repeatedly which can lead to an incorrect ELOOP error return. +- */ +- follow_up(path); +- +- /* + * Rather than returning the new vfsmount for the snapshot we must + * return NULL to indicate a mount collision. This is done because + * the user space mount calls do_add_mount() which adds the vfsmount +-- +1.7.10 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-recursive-reader.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-recursive-reader.patch new file mode 100644 index 000000000000..7d0263f31901 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-recursive-reader.patch @@ -0,0 +1,40 @@ +diff --git a/module/zfs/dsl_dataset.c b/module/zfs/dsl_dataset.c +index 21fdd08..872d44a 100644 +--- a/module/zfs/dsl_dataset.c ++++ b/module/zfs/dsl_dataset.c +@@ -20,7 +20,7 @@ + */ + /* + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +- * Copyright (c) 2011 by Delphix. All rights reserved. ++ * Copyright (c) 2012 by Delphix. All rights reserved. + * Copyright (c) 2012, Joyent, Inc. All rights reserved. + */ + +@@ -4158,9 +4220,13 @@ struct dsl_ds_releasearg { + dsl_dataset_t *snap; + uint64_t used, comp, uncomp; + +- err = dsl_dataset_hold_obj(dp, snapobj, FTAG, &snap); +- if (err != 0) +- break; ++ if (snapobj == new->ds_object) { ++ snap = new; ++ } else { ++ err = dsl_dataset_hold_obj(dp, snapobj, FTAG, &snap); ++ if (err != 0) ++ break; ++ } + + if (snap->ds_phys->ds_prev_snap_txg == + oldsnap->ds_phys->ds_creation_txg) { +@@ -4189,7 +4255,8 @@ struct dsl_ds_releasearg { + * was not a snapshot of/before new. + */ + snapobj = snap->ds_phys->ds_prev_snap_obj; +- dsl_dataset_rele(snap, FTAG); ++ if (snap != new) ++ dsl_dataset_rele(snap, FTAG); + if (snapobj == 0) { + err = EINVAL; + break; diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-gcc-4.7-compat.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-gcc-4.7-compat.patch new file mode 100644 index 000000000000..9f31ecc82307 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-gcc-4.7-compat.patch @@ -0,0 +1,51 @@ +From 37f000c5aa76613e644cf3e5b1ec7bd2df6f7451 Mon Sep 17 00:00:00 2001 +From: Ned Bass <bass6@llnl.gov> +Date: Wed, 26 Dec 2012 14:56:41 -0800 +Subject: [PATCH] Fix gcc array subscript above bounds warning + +In a debug build, certain GCC versions flag an array bounds warning in +the below code from dnode_sync.c + + } else { + int i; + ASSERT(dn->dn_next_nblkptr[txgoff] < dnp->dn_nblkptr); + /* the blkptrs we are losing better be unallocated */ + for (i = dn->dn_next_nblkptr[txgoff]; + i < dnp->dn_nblkptr; i++) + ASSERT(BP_IS_HOLE(&dnp->dn_blkptr[i])); + +This usage is in fact safe, since the ASSERT ensures the index does +not exceed to maximum possible number of block pointers. However gcc +can't determine that the assignment 'i = dn->dn_next_nblkptr[txgoff];' +falls within the array bounds so it issues a warning. To avoid this, +initialize i to zero to make gcc happy but skip the elements before +dn->dn_next_nblkptr[txgoff] in the loop body. Since a dnode contains +at most 3 block pointers this overhead should be negligible. + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Closes #950 +--- + module/zfs/dnode_sync.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/module/zfs/dnode_sync.c b/module/zfs/dnode_sync.c +index af636dc..f2dda86 100644 +--- a/module/zfs/dnode_sync.c ++++ b/module/zfs/dnode_sync.c +@@ -666,9 +666,10 @@ + int i; + ASSERT(dn->dn_next_nblkptr[txgoff] < dnp->dn_nblkptr); + /* the blkptrs we are losing better be unallocated */ +- for (i = dn->dn_next_nblkptr[txgoff]; +- i < dnp->dn_nblkptr; i++) +- ASSERT(BP_IS_HOLE(&dnp->dn_blkptr[i])); ++ for (i = 0; i < dnp->dn_nblkptr; i++) { ++ if (i >= dn->dn_next_nblkptr[txgoff]) ++ ASSERT(BP_IS_HOLE(&dnp->dn_blkptr[i])); ++ } + #endif + } + mutex_enter(&dn->dn_mtx); +-- +1.7.10 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-cast-const-for-32bit-compatibility.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-cast-const-for-32bit-compatibility.patch new file mode 100644 index 000000000000..13189244c69a --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-cast-const-for-32bit-compatibility.patch @@ -0,0 +1,36 @@ +From dd26aa535b395735ca61ea2a3e618aded45eb05e Mon Sep 17 00:00:00 2001 +From: Brian Behlendorf <behlendorf1@llnl.gov> +Date: Mon, 4 Feb 2013 16:35:54 -0800 +Subject: [PATCH] Cast 'zfs bad bloc' to ULL for x86 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Explicitly case this value to an unsigned long long for 32-bit +systems to inform the compiler that a long type should not be +used. Otherwise we get the following compiler error: + + dmu_send.c:376: error: integer constant is too large for + ‘long’ type + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +--- + module/zfs/dmu_send.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/module/zfs/dmu_send.c b/module/zfs/dmu_send.c +index 0cf3c4a..921c3d7 100644 +--- a/module/zfs/dmu_send.c ++++ b/module/zfs/dmu_send.c +@@ -373,7 +373,7 @@ + for (ptr = abuf->b_data; + (char *)ptr < (char *)abuf->b_data + blksz; + ptr++) +- *ptr = 0x2f5baddb10c; ++ *ptr = 0x2f5baddb10cULL; + } else { + return (EIO); + } +-- +1.7.10 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-flush-properly.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-flush-properly.patch new file mode 100644 index 000000000000..fb4c7c35696c --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-flush-properly.patch @@ -0,0 +1,42 @@ +diff --git a/config/kernel.m4 b/config/kernel.m4 +index 5623785..9d5aa46 100644 +--- a/config/kernel.m4 ++++ b/config/kernel.m4 +@@ -16,7 +16,6 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ + ZFS_AC_KERNEL_INVALIDATE_BDEV_ARGS + ZFS_AC_KERNEL_BDEV_LOGICAL_BLOCK_SIZE + ZFS_AC_KERNEL_BDEV_PHYSICAL_BLOCK_SIZE +- ZFS_AC_KERNEL_BIO_EMPTY_BARRIER + ZFS_AC_KERNEL_BIO_FAILFAST + ZFS_AC_KERNEL_BIO_FAILFAST_DTD + ZFS_AC_KERNEL_REQ_FAILFAST_MASK +diff --git a/module/zfs/vdev_disk.c b/module/zfs/vdev_disk.c +index cbf0a4d..e902a70 100644 +--- a/module/zfs/vdev_disk.c ++++ b/module/zfs/vdev_disk.c +@@ -604,8 +604,6 @@ + return __vdev_disk_physio(bdev, NULL, kbuf, size, offset, flags); + } + +-/* 2.6.24 API change */ +-#ifdef HAVE_BIO_EMPTY_BARRIER + BIO_END_IO_PROTO(vdev_disk_io_flush_completion, bio, size, rc) + { + zio_t *zio = bio->bi_private; +@@ -646,13 +644,6 @@ + + return 0; + } +-#else +-static int +-vdev_disk_io_flush(struct block_device *bdev, zio_t *zio) +-{ +- return ENOTSUP; +-} +-#endif /* HAVE_BIO_EMPTY_BARRIER */ + + static int + vdev_disk_io_start(zio_t *zio) +-- +1.7.10 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-autotools-checks.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-autotools-checks.patch new file mode 100644 index 000000000000..15d5af34d5c5 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-autotools-checks.patch @@ -0,0 +1,105 @@ +From d75af3c0ebb4e31ece087aeecfeff282cb6f1361 Mon Sep 17 00:00:00 2001 +From: Etienne Dechamps <etienne@edechamps.fr> +Date: Sun, 24 Feb 2013 12:42:28 +0000 +Subject: [PATCH] Use -Werror for all kernel configure tests. + +As a matter of fact, we're already using -Werror for most tests because +of a bug in kernel-bio-empty-barrier.m4 which sets -Werror without +reverting it afterwards. This meant that all tests which ran after this +one was using -Werror. + +This patch simply makes it clear that we're using -Werror and makes +the code more readable and more predictable. + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Closes #1317 +--- + config/kernel-bio-empty-barrier.m4 | 1 - + config/kernel-bio-end-io-t-args.m4 | 3 --- + config/kernel-security-inode-init.m4 | 6 ------ + config/kernel.m4 | 2 +- + 4 files changed, 1 insertion(+), 11 deletions(-) + +diff --git a/config/kernel-bio-empty-barrier.m4 b/config/kernel-bio-empty-barrier.m4 +index 99549fe..fda16b3 100644 +--- a/config/kernel-bio-empty-barrier.m4 ++++ b/config/kernel-bio-empty-barrier.m4 +@@ -4,7 +4,6 @@ dnl # Empty write barriers are now supported and we should use them. + dnl # + AC_DEFUN([ZFS_AC_KERNEL_BIO_EMPTY_BARRIER], [ + AC_MSG_CHECKING([whether bio_empty_barrier() is defined]) +- EXTRA_KCFLAGS="-Werror" + ZFS_LINUX_TRY_COMPILE([ + #include <linux/bio.h> + ],[ +diff --git a/config/kernel-bio-end-io-t-args.m4 b/config/kernel-bio-end-io-t-args.m4 +index ced4861..44e4826 100644 +--- a/config/kernel-bio-end-io-t-args.m4 ++++ b/config/kernel-bio-end-io-t-args.m4 +@@ -9,8 +9,6 @@ dnl # to void. + dnl # + AC_DEFUN([ZFS_AC_KERNEL_BIO_END_IO_T_ARGS], [ + AC_MSG_CHECKING([whether bio_end_io_t wants 2 args]) +- tmp_flags="$EXTRA_KCFLAGS" +- EXTRA_KCFLAGS="-Werror" + ZFS_LINUX_TRY_COMPILE([ + #include <linux/bio.h> + ],[ +@@ -25,5 +23,4 @@ AC_DEFUN([ZFS_AC_KERNEL_BIO_END_IO_T_ARGS], [ + ],[ + AC_MSG_RESULT(no) + ]) +- EXTRA_KCFLAGS="$tmp_flags" + ]) +diff --git a/config/kernel-security-inode-init.m4 b/config/kernel-security-inode-init.m4 +index c21588a..a62176d 100644 +--- a/config/kernel-security-inode-init.m4 ++++ b/config/kernel-security-inode-init.m4 +@@ -7,8 +7,6 @@ dnl # security checks will just be skipped. + dnl # + AC_DEFUN([ZFS_AC_KERNEL_6ARGS_SECURITY_INODE_INIT_SECURITY], [ + AC_MSG_CHECKING([whether security_inode_init_security wants 6 args]) +- tmp_flags="$EXTRA_KCFLAGS" +- EXTRA_KCFLAGS="-Werror" + ZFS_LINUX_TRY_COMPILE([ + #include <linux/security.h> + ],[ +@@ -27,7 +25,6 @@ AC_DEFUN([ZFS_AC_KERNEL_6ARGS_SECURITY_INODE_INIT_SECURITY], [ + ],[ + AC_MSG_RESULT(no) + ]) +- EXTRA_KCFLAGS="$tmp_flags" + ]) + + dnl # +@@ -39,8 +36,6 @@ dnl # and the EVM xattr. + dnl # + AC_DEFUN([ZFS_AC_KERNEL_CALLBACK_SECURITY_INODE_INIT_SECURITY], [ + AC_MSG_CHECKING([whether security_inode_init_security wants callback]) +- tmp_flags="$EXTRA_KCFLAGS" +- EXTRA_KCFLAGS="-Werror" + ZFS_LINUX_TRY_COMPILE([ + #include <linux/security.h> + ],[ +@@ -57,5 +52,4 @@ AC_DEFUN([ZFS_AC_KERNEL_CALLBACK_SECURITY_INODE_INIT_SECURITY], [ + ],[ + AC_MSG_RESULT(no) + ]) +- EXTRA_KCFLAGS="$tmp_flags" + ]) +diff --git a/config/kernel.m4 b/config/kernel.m4 +index 6d28074..5623785 100644 +--- a/config/kernel.m4 ++++ b/config/kernel.m4 +@@ -488,7 +488,7 @@ AC_DEFUN([ZFS_LINUX_COMPILE_IFELSE], [ + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + AS_IF( +- [AC_TRY_COMMAND(cp conftest.c build && make [$2] -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag) >/dev/null && AC_TRY_COMMAND([$3])], ++ [AC_TRY_COMMAND(cp conftest.c build && make [$2] -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag) >/dev/null && AC_TRY_COMMAND([$3])], + [$4], + [_AC_MSG_LOG_CONFTEST m4_ifvaln([$5],[$5])] + ) +-- +1.7.10 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-hardened-support.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-hardened-support.patch new file mode 100644 index 000000000000..03ee65ef9d4a --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-hardened-support.patch @@ -0,0 +1,473 @@ +From ead579050140bfa010d06f6e0fea3f680c781b38 Mon Sep 17 00:00:00 2001 +From: Richard Yao <ryao@cs.stonybrook.edu> +Date: Thu, 14 Feb 2013 18:54:04 -0500 +Subject: [PATCH] Eliminate runtime function pointer modifications in + autotools checks +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +PaX/GrSecurity patched kernels implement a dialect of C that relies on a +GCC plugin for enforcement. A basic idea in this dialect is that +function pointers in structures should not change during runtime. +This causes code that modifies function pointers at runtime to fail to +compile in many instances. The autotools checks rely on whether or +not small test cases compile against a given kernel. Some +autotools checks assume some default case if other cases fail. When one +of these autotools checks tests a PaX/GrSecurity patched kernel by +modifying a function pointer at runtime, the default case will be used. + +Early detection of such situations is possible by relying on compiler +warnings, which are compiler errors when --enable-debug is used. +Unfortunately, very few people build ZFS with --enable-debug. The more +common situation is that these issues manifest themselves as runtime +failures in the form of NULL pointer exceptions. + +Previous patches that addressed such issues with PaX/GrSecurity +compatibility largely relied on rewriting autotools checks to avoid +runtime function pointer modification or the addition of PaX/GrSecurity +specific checks. This patch takes the previous work to its logical +conclusion by eliminating the use of runtime function pointer +modification. This permits the removal of PaX-specific autotools checks +in favor of ones that work across all supported kernels. + +This should resolve issues that were reported to occur with +PaX/GrSecurity-patched Linux 3.7.5 kernels on Gentoo Linux. + +https://bugs.gentoo.org/show_bug.cgi?id=457176 + +We should be able to prevent future regressions in PaX/GrSecurity +compatibility by ensuring that all changes to ZFSOnLinux avoid runtime +function pointer modification. At the same time, this does not solve the +issue of silent failures triggering default cases in the autotools +check, which is what permitted these regressions to become runtime +failures in the first place. This will need to be addressed in a future +patch. + +Reported-by: Marcin Mirosław <bug@mejor.pl> +Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu> +--- + config/kernel-bdev-block-device-operations.m4 | 21 +++---- + config/kernel-bio-end-io-t-args.m4 | 6 +- + config/kernel-create-nameidata.m4 | 12 ++-- + config/kernel-dentry-operations.m4 | 6 +- + config/kernel-dirty-inode.m4 | 8 +-- + config/kernel-fallocate.m4 | 37 +++-------- + config/kernel-fsync.m4 | 84 ++++--------------------- + config/kernel-lookup-nameidata.m4 | 9 +-- + config/kernel-mkdir-umode-t.m4 | 7 ++- + config/kernel-shrink.m4 | 21 +++---- + 10 files changed, 62 insertions(+), 149 deletions(-) + +diff --git a/config/kernel-bdev-block-device-operations.m4 b/config/kernel-bdev-block-device-operations.m4 +index 28c3032..1674af0 100644 +--- a/config/kernel-bdev-block-device-operations.m4 ++++ b/config/kernel-bdev-block-device-operations.m4 +@@ -7,24 +7,21 @@ AC_DEFUN([ZFS_AC_KERNEL_BDEV_BLOCK_DEVICE_OPERATIONS], [ + EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" + ZFS_LINUX_TRY_COMPILE([ + #include <linux/blkdev.h> +- ],[ +- int (*blk_open) (struct block_device *, fmode_t) = NULL; +- int (*blk_release) (struct gendisk *, fmode_t) = NULL; +- int (*blk_ioctl) (struct block_device *, fmode_t, +- unsigned, unsigned long) = NULL; +- int (*blk_compat_ioctl) (struct block_device *, fmode_t, +- unsigned, unsigned long) = NULL; +- struct block_device_operations blk_ops = { ++ ++ int blk_open (struct block_device *bdev, fmode_t mode) { return 0; } ++ int blk_release (struct gendisk *g, fmode_t mode) { return 0; } ++ int blk_ioctl (struct block_device *bdev, fmode_t mode, ++ unsigned x, unsigned long y) { return 0; } ++ int blk_compat_ioctl (struct block_device * bdev, fmode_t mode, ++ unsigned x, unsigned long y) { return 0; } ++ static struct block_device_operations blk_ops __attribute__ ((unused)) = { + .open = blk_open, + .release = blk_release, + .ioctl = blk_ioctl, + .compat_ioctl = blk_compat_ioctl, + }; ++ ],[ + +- blk_ops.open(NULL, 0); +- blk_ops.release(NULL, 0); +- blk_ops.ioctl(NULL, 0, 0, 0); +- blk_ops.compat_ioctl(NULL, 0, 0, 0); + ],[ + AC_MSG_RESULT(struct block_device) + AC_DEFINE(HAVE_BDEV_BLOCK_DEVICE_OPERATIONS, 1, +diff --git a/config/kernel-bio-end-io-t-args.m4 b/config/kernel-bio-end-io-t-args.m4 +index ced4861..fe5707a 100644 +--- a/config/kernel-bio-end-io-t-args.m4 ++++ b/config/kernel-bio-end-io-t-args.m4 +@@ -13,11 +13,9 @@ AC_DEFUN([ZFS_AC_KERNEL_BIO_END_IO_T_ARGS], [ + EXTRA_KCFLAGS="-Werror" + ZFS_LINUX_TRY_COMPILE([ + #include <linux/bio.h> ++ void wanted_end_io(struct bio * bio, int x) { return; } + ],[ +- void (*wanted_end_io)(struct bio *, int) = NULL; +- bio_end_io_t *local_end_io __attribute__ ((unused)); +- +- local_end_io = wanted_end_io; ++ bio_end_io_t *local_end_io __attribute__ ((unused)) = wanted_end_io; + ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_2ARGS_BIO_END_IO_T, 1, +diff --git a/config/kernel-create-nameidata.m4 b/config/kernel-create-nameidata.m4 +index 100f077..c779715 100644 +--- a/config/kernel-create-nameidata.m4 ++++ b/config/kernel-create-nameidata.m4 +@@ -5,18 +5,18 @@ AC_DEFUN([ZFS_AC_KERNEL_CREATE_NAMEIDATA], [ + AC_MSG_CHECKING([whether iops->create() takes struct nameidata]) + ZFS_LINUX_TRY_COMPILE([ + #include <linux/fs.h> +- ],[ + #ifdef HAVE_MKDIR_UMODE_T +- int (*inode_create) (struct inode *,struct dentry *, +- umode_t, struct nameidata *) = NULL; ++ int inode_create (struct inode *inode ,struct dentry *dentry, ++ umode_t umode, struct nameidata *nidata) { return 0; } + #else +- int (*inode_create) (struct inode *,struct dentry *, +- int, struct nameidata *) = NULL; ++ int inode_create (struct inode *inode,struct dentry *dentry, ++ int umode, struct nameidata * nidata) { return 0; } + #endif +- struct inode_operations iops __attribute__ ((unused)) = { ++ static struct inode_operations iops __attribute__ ((unused)) = { + .create = inode_create, + }; + ],[ ++ ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_CREATE_NAMEIDATA, 1, + [iops->create() operation takes nameidata]) +diff --git a/config/kernel-dentry-operations.m4 b/config/kernel-dentry-operations.m4 +index dfbea7d..b89c51d 100644 +--- a/config/kernel-dentry-operations.m4 ++++ b/config/kernel-dentry-operations.m4 +@@ -5,12 +5,12 @@ AC_DEFUN([ZFS_AC_KERNEL_D_REVALIDATE_NAMEIDATA], [ + AC_MSG_CHECKING([whether dops->d_revalidate() takes struct nameidata]) + ZFS_LINUX_TRY_COMPILE([ + #include <linux/dcache.h> +- ],[ +- int (*revalidate) (struct dentry *, struct nameidata *) = NULL; +- struct dentry_operations dops __attribute__ ((unused)) = { ++ int revalidate (struct dentry *dentry, struct nameidata *nidata) { return 0; } ++ static struct dentry_operations dops __attribute__ ((unused)) = { + .d_revalidate = revalidate, + }; + ],[ ++ ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_D_REVALIDATE_NAMEIDATA, 1, + [dops->d_revalidate() operation takes nameidata]) +diff --git a/config/kernel-dirty-inode.m4 b/config/kernel-dirty-inode.m4 +index 2ededf1..86e3425 100644 +--- a/config/kernel-dirty-inode.m4 ++++ b/config/kernel-dirty-inode.m4 +@@ -8,11 +8,11 @@ AC_DEFUN([ZFS_AC_KERNEL_DIRTY_INODE_WITH_FLAGS], [ + AC_MSG_CHECKING([whether sops->dirty_inode() wants flags]) + ZFS_LINUX_TRY_COMPILE([ + #include <linux/fs.h> ++ void dirty_inode (struct inode * a, int b) { return; } ++ static struct super_operations sops __attribute__ ((unused)) = { ++ .dirty_inode = dirty_inode, ++ }; + ],[ +- void (*dirty_inode) (struct inode *, int) = NULL; +- struct super_operations sops __attribute__ ((unused)); +- +- sops.dirty_inode = dirty_inode; + ],[ + AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_DIRTY_INODE_WITH_FLAGS, 1, +diff --git a/config/kernel-fallocate.m4 b/config/kernel-fallocate.m4 +index 6ac5ae6..0041ef2 100644 +--- a/config/kernel-fallocate.m4 ++++ b/config/kernel-fallocate.m4 +@@ -5,12 +5,12 @@ AC_DEFUN([ZFS_AC_KERNEL_FILE_FALLOCATE], [ + AC_MSG_CHECKING([whether fops->fallocate() exists]) + ZFS_LINUX_TRY_COMPILE([ + #include <linux/fs.h> +- ],[ +- long (*fallocate) (struct file *, int, loff_t, loff_t) = NULL; +- struct file_operations fops __attribute__ ((unused)) = { +- .fallocate = fallocate, ++ long test_fallocate(struct file *file, int mode, loff_t offset, loff_t len) { return 0; } ++ static const struct file_operations fops __attribute__ ((unused)) = { ++ .fallocate = test_fallocate, + }; + ],[ ++ ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_FILE_FALLOCATE, 1, [fops->fallocate() exists]) + ],[ +@@ -25,34 +25,14 @@ AC_DEFUN([ZFS_AC_KERNEL_INODE_FALLOCATE], [ + AC_MSG_CHECKING([whether iops->fallocate() exists]) + ZFS_LINUX_TRY_COMPILE([ + #include <linux/fs.h> +- ],[ +- long (*fallocate) (struct inode *, int, loff_t, loff_t) = NULL; +- struct inode_operations fops __attribute__ ((unused)) = { +- .fallocate = fallocate, ++ long test_fallocate (struct inode *inode, int mode, loff_t offset, loff_t len) { return 0; } ++ static const struct inode_operations fops __attribute__ ((unused)) = { ++ .fallocate = test_fallocate, + }; + ],[ +- AC_MSG_RESULT(yes) +- AC_DEFINE(HAVE_INODE_FALLOCATE, 1, [fops->fallocate() exists]) +- ],[ +- AC_MSG_RESULT(no) +- ]) +-]) +- +-dnl # +-dnl # PaX Linux 2.6.38 - 3.x API +-dnl # +-AC_DEFUN([ZFS_AC_PAX_KERNEL_FILE_FALLOCATE], [ +- AC_MSG_CHECKING([whether fops->fallocate() exists]) +- ZFS_LINUX_TRY_COMPILE([ +- #include <linux/fs.h> +- ],[ +- long (*fallocate) (struct file *, int, loff_t, loff_t) = NULL; +- struct file_operations_no_const fops __attribute__ ((unused)) = { +- .fallocate = fallocate, +- }; + ],[ + AC_MSG_RESULT(yes) +- AC_DEFINE(HAVE_FILE_FALLOCATE, 1, [fops->fallocate() exists]) ++ AC_DEFINE(HAVE_INODE_FALLOCATE, 1, [fops->fallocate() exists]) + ],[ + AC_MSG_RESULT(no) + ]) +@@ -65,5 +45,4 @@ dnl # + AC_DEFUN([ZFS_AC_KERNEL_FALLOCATE], [ + ZFS_AC_KERNEL_FILE_FALLOCATE + ZFS_AC_KERNEL_INODE_FALLOCATE +- ZFS_AC_PAX_KERNEL_FILE_FALLOCATE + ]) +diff --git a/config/kernel-fsync.m4 b/config/kernel-fsync.m4 +index ca00d93..9ac0c79 100644 +--- a/config/kernel-fsync.m4 ++++ b/config/kernel-fsync.m4 +@@ -4,11 +4,11 @@ dnl # + AC_DEFUN([ZFS_AC_KERNEL_FSYNC_WITH_DENTRY], [ + ZFS_LINUX_TRY_COMPILE([ + #include <linux/fs.h> ++ int test_fsync (struct file *f, struct dentry *dentry, int x) { return 0; } ++ static const struct file_operations fops __attribute__ ((unused)) = { ++ .fsync = test_fsync, ++ }; + ],[ +- int (*fsync) (struct file *, struct dentry *, int) = NULL; +- struct file_operations fops __attribute__ ((unused)); +- +- fops.fsync = fsync; + ],[ + AC_MSG_RESULT([dentry]) + AC_DEFINE(HAVE_FSYNC_WITH_DENTRY, 1, +@@ -23,11 +23,11 @@ dnl # + AC_DEFUN([ZFS_AC_KERNEL_FSYNC_WITHOUT_DENTRY], [ + ZFS_LINUX_TRY_COMPILE([ + #include <linux/fs.h> ++ int test_fsync (struct file *f, int x) { return 0; } ++ static const struct file_operations fops __attribute__ ((unused)) = { ++ .fsync = test_fsync, ++ }; + ],[ +- int (*fsync) (struct file *, int) = NULL; +- struct file_operations fops __attribute__ ((unused)); +- +- fops.fsync = fsync; + ],[ + AC_MSG_RESULT([no dentry]) + AC_DEFINE(HAVE_FSYNC_WITHOUT_DENTRY, 1, +@@ -42,68 +42,11 @@ dnl # + AC_DEFUN([ZFS_AC_KERNEL_FSYNC_RANGE], [ + ZFS_LINUX_TRY_COMPILE([ + #include <linux/fs.h> ++ int test_fsync (struct file *f, loff_t a, loff_t b, int c) { return 0; } ++ static const struct file_operations fops __attribute__ ((unused)) = { ++ .fsync = test_fsync, ++ }; + ],[ +- int (*fsync) (struct file *, loff_t, loff_t, int) = NULL; +- struct file_operations fops __attribute__ ((unused)); +- +- fops.fsync = fsync; +- ],[ +- AC_MSG_RESULT([range]) +- AC_DEFINE(HAVE_FSYNC_RANGE, 1, +- [fops->fsync() with range]) +- ],[ +- ]) +-]) +- +-dnl # +-dnl # PaX Linux 2.6.x - 2.6.34 API +-dnl # +-AC_DEFUN([ZFS_AC_PAX_KERNEL_FSYNC_WITH_DENTRY], [ +- ZFS_LINUX_TRY_COMPILE([ +- #include <linux/fs.h> +- ],[ +- int (*fsync) (struct file *, struct dentry *, int) = NULL; +- file_operations_no_const fops __attribute__ ((unused)); +- +- fops.fsync = fsync; +- ],[ +- AC_MSG_RESULT([dentry]) +- AC_DEFINE(HAVE_FSYNC_WITH_DENTRY, 1, +- [fops->fsync() with dentry]) +- ],[ +- ]) +-]) +- +-dnl # +-dnl # PaX Linux 2.6.35 - Linux 3.0 API +-dnl # +-AC_DEFUN([ZFS_AC_PAX_KERNEL_FSYNC_WITHOUT_DENTRY], [ +- ZFS_LINUX_TRY_COMPILE([ +- #include <linux/fs.h> +- ],[ +- int (*fsync) (struct file *, int) = NULL; +- file_operations_no_const fops __attribute__ ((unused)); +- +- fops.fsync = fsync; +- ],[ +- AC_MSG_RESULT([no dentry]) +- AC_DEFINE(HAVE_FSYNC_WITHOUT_DENTRY, 1, +- [fops->fsync() without dentry]) +- ],[ +- ]) +-]) +- +-dnl # +-dnl # PaX Linux 3.1 - 3.x API +-dnl # +-AC_DEFUN([ZFS_AC_PAX_KERNEL_FSYNC_RANGE], [ +- ZFS_LINUX_TRY_COMPILE([ +- #include <linux/fs.h> +- ],[ +- int (*fsync) (struct file *, loff_t, loff_t, int) = NULL; +- file_operations_no_const fops __attribute__ ((unused)); +- +- fops.fsync = fsync; + ],[ + AC_MSG_RESULT([range]) + AC_DEFINE(HAVE_FSYNC_RANGE, 1, +@@ -117,7 +60,4 @@ AC_DEFUN([ZFS_AC_KERNEL_FSYNC], [ + ZFS_AC_KERNEL_FSYNC_WITH_DENTRY + ZFS_AC_KERNEL_FSYNC_WITHOUT_DENTRY + ZFS_AC_KERNEL_FSYNC_RANGE +- ZFS_AC_PAX_KERNEL_FSYNC_WITH_DENTRY +- ZFS_AC_PAX_KERNEL_FSYNC_WITHOUT_DENTRY +- ZFS_AC_PAX_KERNEL_FSYNC_RANGE + ]) +diff --git a/config/kernel-lookup-nameidata.m4 b/config/kernel-lookup-nameidata.m4 +index 5e30be4..20b8cca 100644 +--- a/config/kernel-lookup-nameidata.m4 ++++ b/config/kernel-lookup-nameidata.m4 +@@ -5,13 +5,14 @@ AC_DEFUN([ZFS_AC_KERNEL_LOOKUP_NAMEIDATA], [ + AC_MSG_CHECKING([whether iops->lookup() takes struct nameidata]) + ZFS_LINUX_TRY_COMPILE([ + #include <linux/fs.h> +- ],[ +- struct dentry * (*inode_lookup) (struct inode *,struct dentry *, +- struct nameidata *) = NULL; +- struct inode_operations iops __attribute__ ((unused)) = { ++ struct dentry * inode_lookup (struct inode * inode, ++ struct dentry * dentry, struct nameidata * nidata) ++ { return NULL; } ++ static struct inode_operations iops __attribute__ ((unused)) = { + .lookup = inode_lookup, + }; + ],[ ++ ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_LOOKUP_NAMEIDATA, 1, + [iops->lookup() operation takes nameidata]) +diff --git a/config/kernel-mkdir-umode-t.m4 b/config/kernel-mkdir-umode-t.m4 +index dd5d94b..ce8aa8f 100644 +--- a/config/kernel-mkdir-umode-t.m4 ++++ b/config/kernel-mkdir-umode-t.m4 +@@ -10,12 +10,13 @@ AC_DEFUN([ZFS_AC_KERNEL_MKDIR_UMODE_T], [ + AC_MSG_CHECKING([whether iops->create()/mkdir()/mknod() take umode_t]) + ZFS_LINUX_TRY_COMPILE([ + #include <linux/fs.h> +- ],[ +- int (*mkdir) (struct inode *,struct dentry *,umode_t) = NULL; +- struct inode_operations iops __attribute__ ((unused)) = { ++ int mkdir (struct inode * inode, struct dentry * dentry, umode_t umode) ++ { return 0; } ++ static struct inode_operations iops __attribute__ ((unused)) = { + .mkdir = mkdir, + }; + ],[ ++ ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_MKDIR_UMODE_T, 1, + [iops->create()/mkdir()/mknod() take umode_t]) +diff --git a/config/kernel-shrink.m4 b/config/kernel-shrink.m4 +index ea748c9..ce4b965 100644 +--- a/config/kernel-shrink.m4 ++++ b/config/kernel-shrink.m4 +@@ -8,15 +8,14 @@ AC_DEFUN([ZFS_AC_KERNEL_SHRINK], [ + AC_MSG_CHECKING([whether super_block has s_shrink]) + ZFS_LINUX_TRY_COMPILE([ + #include <linux/fs.h> +- ],[ +- int (*shrink)(struct shrinker *, struct shrink_control *sc) +- __attribute__ ((unused)) = NULL; +- struct super_block sb __attribute__ ((unused)) = { ++ int shrink(struct shrinker * s, struct shrink_control *sc) { return 0; } ++ static struct super_block sb __attribute__ ((unused)) = { + .s_shrink.shrink = shrink, + .s_shrink.seeks = DEFAULT_SEEKS, + .s_shrink.batch = 0, + }; + ],[ ++ ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SHRINK, 1, [struct super_block has s_shrink]) + +@@ -29,13 +28,12 @@ AC_DEFUN([ZFS_AC_KERNEL_NR_CACHED_OBJECTS], [ + AC_MSG_CHECKING([whether sops->nr_cached_objects() exists]) + ZFS_LINUX_TRY_COMPILE([ + #include <linux/fs.h> +- ],[ +- int (*nr_cached_objects)(struct super_block *) +- __attribute__ ((unused)) = NULL; +- struct super_operations sops __attribute__ ((unused)) = { ++ int nr_cached_objects(struct super_block * sb) { return 0; } ++ static struct super_operations sops __attribute__ ((unused)) = { + .nr_cached_objects = nr_cached_objects, + }; + ],[ ++ ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_NR_CACHED_OBJECTS, 1, + [sops->nr_cached_objects() exists]) +@@ -48,13 +46,12 @@ AC_DEFUN([ZFS_AC_KERNEL_FREE_CACHED_OBJECTS], [ + AC_MSG_CHECKING([whether sops->free_cached_objects() exists]) + ZFS_LINUX_TRY_COMPILE([ + #include <linux/fs.h> +- ],[ +- void (*free_cached_objects)(struct super_block *, int) +- __attribute__ ((unused)) = NULL; +- struct super_operations sops __attribute__ ((unused)) = { ++ void free_cached_objects(struct super_block * sb, int x) { return; } ++ static struct super_operations sops __attribute__ ((unused)) = { + .free_cached_objects = free_cached_objects, + }; + ],[ ++ ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_FREE_CACHED_OBJECTS, 1, + [sops->free_cached_objects() exists]) +-- +1.7.10 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-linux-3.9-compat.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-linux-3.9-compat.patch new file mode 100644 index 000000000000..1dfef6117f1a --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-linux-3.9-compat.patch @@ -0,0 +1,32 @@ +commit 3d8c9c9de0a5e1f1b496fcef2750a01a45860b04 +Author: Richard Yao <ryao@cs.stonybrook.edu> +Date: Mon Mar 4 15:52:11 2013 -0500 + + Linux 3.9 compat: Undefine GCC_VERSION + + The mainline kernel started defining GCC_VERSION with commit + torvalds/linux@3f3f8d2f48acfd8ed3b8e6b7377935da57b27b16. Unfortunately, + LZ4 also defines this macro, but the two defintions are incompatible. We + undefine GCC_VERSION in lz4.c to handle this. + + Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu> + +diff --git a/module/zfs/lz4.c b/module/zfs/lz4.c +index b9850c0..8afaad1 100644 +--- a/module/zfs/lz4.c ++++ b/module/zfs/lz4.c +@@ -243,6 +243,14 @@ lz4_decompress(void *s_start, void *d_start, size_t s_len, size_t d_len, int n) + /* Disable restrict */ + #define restrict + ++/* ++ * Linux : GCC_VERSION is defined as of 3.9-rc1, so undefine it. ++ * torvalds/linux@3f3f8d2f48acfd8ed3b8e6b7377935da57b27b16 ++ */ ++#ifdef GCC_VERSION ++#undef GCC_VERSION ++#endif ++ + #define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) + + #if (GCC_VERSION >= 302) || (__INTEL_COMPILER >= 800) || defined(__clang__)
\ No newline at end of file diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-vfs-name-length-compatibility.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-vfs-name-length-compatibility.patch new file mode 100644 index 000000000000..5f9f6525e73c --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-vfs-name-length-compatibility.patch @@ -0,0 +1,36 @@ +From 7f235381a0e501df55ebe2de10b69124e928d175 Mon Sep 17 00:00:00 2001 +From: Brian Behlendorf <behlendorf1@llnl.gov> +Date: Mon, 11 Feb 2013 12:55:24 -0800 +Subject: [PATCH] Add explicit MAXNAMELEN check + +It turns out that the Linux VFS doesn't strictly handle all cases +where a component path name exceeds MAXNAMELEN. It does however +appear to correctly handle MAXPATHLEN for us. + +The right way to handle this appears to be to add an explicit +check to the zpl_lookup() function. Several in-tree filesystems +handle this case the same way. + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Issue #1279 +--- + module/zfs/zpl_inode.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/module/zfs/zpl_inode.c b/module/zfs/zpl_inode.c +index e406288..8c8ec24 100644 +--- a/module/zfs/zpl_inode.c ++++ b/module/zfs/zpl_inode.c +@@ -41,6 +41,9 @@ + struct inode *ip; + int error; + ++ if (dlen(dentry) > ZFS_MAXNAMELEN) ++ return ERR_PTR(-ENAMETOOLONG); ++ + crhold(cr); + error = -zfs_lookup(dir, dname(dentry), &ip, 0, cr, NULL, NULL); + ASSERT3S(error, <=, 0); +-- +1.7.10 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-zfs_arc_memory_throttle_disable.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-zfs_arc_memory_throttle_disable.patch new file mode 100644 index 000000000000..81ec15f3e6c7 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-zfs_arc_memory_throttle_disable.patch @@ -0,0 +1,41 @@ +From 546c978bbd3f132a88609cab15ec0e954eaa62b8 Mon Sep 17 00:00:00 2001 +From: Brian Behlendorf <behlendorf1@llnl.gov> +Date: Thu, 21 Feb 2013 12:14:44 -0800 +Subject: [PATCH] Enable zfs_arc_memory_throttle_disable by default + +The zfs_arc_memory_throttle_disable module option was introduced +by commit 0c5493d47059f25ce9dbf20c9fe87655f55102a1 to resolve a +memory miscalculation which could result in the txg_sync thread +spinning. + +When this was first introduced the default behavior was left +unchanged until enough real world usage confirmed there were no +unexpected issues. We've now reached that point. Linux's +direct reclaim is working as expected so we're enabling this +behavior by default. + +This helps pave the way to retire the spl_kmem_availrmem() +functionality in the SPL layer. This was the only caller. + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Issue #938 +--- + module/zfs/arc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/module/zfs/arc.c b/module/zfs/arc.c +index 09924db..b7499ee 100644 +--- a/module/zfs/arc.c ++++ b/module/zfs/arc.c +@@ -189,7 +189,7 @@ + int zfs_arc_grow_retry = 0; + int zfs_arc_shrink_shift = 0; + int zfs_arc_p_min_shift = 0; +-int zfs_arc_memory_throttle_disable = 0; ++int zfs_arc_memory_throttle_disable = 1; + int zfs_disable_dup_eviction = 0; + int zfs_arc_meta_prune = 0; + +-- +1.8.1.5 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-arc-read-panic.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-arc-read-panic.patch new file mode 100644 index 000000000000..00ec1057efa1 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-arc-read-panic.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-kmod/files/zfs-kmod-0.6.1-fix-getdents.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-getdents.patch new file mode 100644 index 000000000000..ce7d5c0494d9 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-getdents.patch @@ -0,0 +1,32 @@ +From 8f1e11b6105bf46a4258958eb3dcae2ab21ed8b2 Mon Sep 17 00:00:00 2001 +From: Caleb James DeLisle <calebdelisle@lavabit.com> +Date: Tue, 16 Apr 2013 05:23:39 -0400 +Subject: [PATCH] Remove .readdir from zpl_file_operations table + +The zpl_readdir() function shouldn't be registered as part of +the zpl_file_operations table, it must only be part of the +zpl_dir_file_operations table. By removing this callback +the VFS will now correctly return ENOTDIR when calling +getdents() on a file. + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Closes #1404 +--- + module/zfs/zpl_file.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/module/zfs/zpl_file.c b/module/zfs/zpl_file.c +index 9c27b7f..db6a72c 100644 +--- a/module/zfs/zpl_file.c ++++ b/module/zfs/zpl_file.c +@@ -446,7 +446,6 @@ + .llseek = generic_file_llseek, + .read = zpl_read, + .write = zpl_write, +- .readdir = zpl_readdir, + .mmap = zpl_mmap, + .fsync = zpl_fsync, + #ifdef HAVE_FILE_FALLOCATE +-- +1.8.1.6 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-txg_quiesce-deadlock.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-txg_quiesce-deadlock.patch new file mode 100644 index 000000000000..8513e78882b1 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-txg_quiesce-deadlock.patch @@ -0,0 +1,73 @@ +From 57f5a2008e2e6acf58934cf43c5fdca0faffa73e Mon Sep 17 00:00:00 2001 +From: Brian Behlendorf <behlendorf1@llnl.gov> +Date: Thu, 25 Apr 2013 16:29:22 -0700 +Subject: [PATCH] Fix txg_quiesce thread deadlock + +A deadlock was accidentally introduced by commit e95853a which +can occur when the system is under memory pressure. What happens +is that while the txg_quiesce thread is holding the tx->tx_cpu +locks it enters memory reclaim. In the context of this memory +reclaim it then issues synchronous I/O to a ZVOL swap device. +Because the txg_quiesce thread is holding the tx->tx_cpu locks +a new txg cannot be opened to handle the I/O. Deadlock. + +The fix is straight forward. Move the memory allocation outside +the critical region where the tx->tx_cpu locks are held. And for +good measure change the offending allocation to KM_PUSHPAGE to +ensure it never attempts to issue I/O during reclaim. + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Issue #1274 +--- + module/zfs/dsl_pool.c | 2 +- + module/zfs/txg.c | 14 +++++++------- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/module/zfs/dsl_pool.c b/module/zfs/dsl_pool.c +index 704f034..771b265 100644 +--- a/module/zfs/dsl_pool.c ++++ b/module/zfs/dsl_pool.c +@@ -143,7 +143,7 @@ + { + txg_history_t *th, *rm; + +- th = kmem_zalloc(sizeof(txg_history_t), KM_SLEEP); ++ th = kmem_zalloc(sizeof(txg_history_t), KM_PUSHPAGE); + mutex_init(&th->th_lock, NULL, MUTEX_DEFAULT, NULL); + th->th_kstat.txg = txg; + th->th_kstat.state = TXG_STATE_OPEN; +diff --git a/module/zfs/txg.c b/module/zfs/txg.c +index c7c3df3..7c820af 100644 +--- a/module/zfs/txg.c ++++ b/module/zfs/txg.c +@@ -367,6 +367,13 @@ + tx->tx_open_txg++; + + /* ++ * Now that we've incremented tx_open_txg, we can let threads ++ * enter the next transaction group. ++ */ ++ for (c = 0; c < max_ncpus; c++) ++ mutex_exit(&tx->tx_cpu[c].tc_lock); ++ ++ /* + * Measure how long the txg was open and replace the kstat. + */ + th = dsl_pool_txg_history_get(dp, txg); +@@ -376,13 +383,6 @@ + dsl_pool_txg_history_add(dp, tx->tx_open_txg); + + /* +- * Now that we've incremented tx_open_txg, we can let threads +- * enter the next transaction group. +- */ +- for (c = 0; c < max_ncpus; c++) +- mutex_exit(&tx->tx_cpu[c].tc_lock); +- +- /* + * Quiesce the transaction group by waiting for everyone to txg_exit(). + */ + start = gethrtime(); +-- +1.8.1.6 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-1.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-1.patch new file mode 100644 index 000000000000..b4801708ae35 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-1.patch @@ -0,0 +1,50 @@ +From f706421173c571371afff5e2a2ee0784c5e3f95d Mon Sep 17 00:00:00 2001 +From: Brian Behlendorf <behlendorf1@llnl.gov> +Date: Wed, 17 Apr 2013 13:07:36 -0700 +Subject: [PATCH] Correctly return ERANGE in getxattr(2) + +According to the getxattr(2) man page the ERANGE errno should be +returned when the size of the value buffer is to small to hold the +result. Prior to this patch the implementation would just truncate +the value to size bytes. + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Closes #1408 +--- + module/zfs/zpl_xattr.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/module/zfs/zpl_xattr.c b/module/zfs/zpl_xattr.c +index c03764f..a7e38e6 100644 +--- a/module/zfs/zpl_xattr.c ++++ b/module/zfs/zpl_xattr.c +@@ -225,6 +225,11 @@ + goto out; + } + ++ if (size < i_size_read(xip)) { ++ error = -ERANGE; ++ goto out; ++ } ++ + error = zpl_read_common(xip, value, size, 0, UIO_SYSSPACE, 0, cr); + out: + if (xip) +@@ -263,9 +268,12 @@ + if (!size) + return (nv_size); + +- memcpy(value, nv_value, MIN(size, nv_size)); ++ if (size < nv_size) ++ return (-ERANGE); ++ ++ memcpy(value, nv_value, nv_size); + +- return (MIN(size, nv_size)); ++ return (nv_size); + } + + static int +-- +1.8.1.6 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-2.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-2.patch new file mode 100644 index 000000000000..bb4b1c4a3a34 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-2.patch @@ -0,0 +1,37 @@ +From 0377189b884fab7db02a95088e05712c7cf336f7 Mon Sep 17 00:00:00 2001 +From: Brian Behlendorf <behlendorf1@llnl.gov> +Date: Wed, 8 May 2013 09:20:04 -0700 +Subject: [PATCH] Only check directory xattr on ENOENT + +When SA xattrs are enabled only fallback to checking the directory +xattrs when the name is not found as a SA xattr. Otherwise, the SA +error which should be returned to the caller is overwritten by the +directory xattr errors. Positive return values indicating success +will also be immediately returned. + +In the case of #1437 the ERANGE error was being correctly returned +by zpl_xattr_get_sa() only to be overridden with ENOENT which was +returned by the subsequent unnessisary call to zpl_xattr_get_dir(). + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Closes #1437 +--- + module/zfs/zpl_xattr.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/module/zfs/zpl_xattr.c b/module/zfs/zpl_xattr.c +index a7e38e6..eb2c00d 100644 +--- a/module/zfs/zpl_xattr.c ++++ b/module/zfs/zpl_xattr.c +@@ -288,7 +288,7 @@ + + if (zsb->z_use_sa && zp->z_is_sa) { + error = zpl_xattr_get_sa(ip, name, value, size); +- if (error >= 0) ++ if (error != -ENOENT) + goto out; + } + +-- +1.8.1.6 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfs_sb_teardown-NULL-pointer-deref.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfs_sb_teardown-NULL-pointer-deref.patch new file mode 100644 index 000000000000..e59c869eed04 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfs_sb_teardown-NULL-pointer-deref.patch @@ -0,0 +1,58 @@ +From ab68b6e5db29abcd20c0c7b12a8c2fa570031c8b Mon Sep 17 00:00:00 2001 +From: Tim Chase <tim@chase2k.com> +Date: Mon, 24 Jun 2013 22:03:56 -0500 +Subject: [PATCH] Fix zfs_sb_teardown/zfs_resume_fs NULL dereference + +Fix a pair of conditions in which a concurrent umount can cause +NULL pointer dereferences: + +* zfs_sb_teardown - prevent a NULL dereference by not calling + dmu_objset_pool with a null z_os. + +* zfs_resume_fs - don't try to unmount with a null z_os. This + change makes the ZoL code more consistent + with both Illumos and FreeBSD. + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Closes #1543 +--- + module/zfs/zfs_vfsops.c | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/module/zfs/zfs_vfsops.c b/module/zfs/zfs_vfsops.c +index e618f2b..602c332 100644 +--- a/module/zfs/zfs_vfsops.c ++++ b/module/zfs/zfs_vfsops.c +@@ -1056,10 +1056,12 @@ + } + + /* +- * Drain the iput_taskq to ensure all active references to the ++ * If someone has not already unmounted this file system, ++ * drain the iput_taskq to ensure all active references to the + * zfs_sb_t have been handled only then can it be safely destroyed. + */ +- taskq_wait(dsl_pool_iput_taskq(dmu_objset_pool(zsb->z_os))); ++ if (zsb->z_os) ++ taskq_wait(dsl_pool_iput_taskq(dmu_objset_pool(zsb->z_os))); + + /* + * Close the zil. NB: Can't close the zil while zfs_inactive +@@ -1480,10 +1482,11 @@ + + if (err) { + /* +- * Since we couldn't reopen zfs_sb_t, force +- * unmount this file system. ++ * Since we couldn't reopen zfs_sb_t or, setup the ++ * sa framework, force unmount this file system. + */ +- (void) zfs_umount(zsb->z_sb); ++ if (zsb->z_os) ++ (void) zfs_umount(zsb->z_sb); + } + return (err); + } +-- +1.8.1.6 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfsctl_expire_snapshot-deadlock.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfsctl_expire_snapshot-deadlock.patch new file mode 100644 index 000000000000..7cca7d1137c8 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfsctl_expire_snapshot-deadlock.patch @@ -0,0 +1,73 @@ +From 76351672c222f28ea1b681097a9eff58a6791555 Mon Sep 17 00:00:00 2001 +From: Brian Behlendorf <behlendorf1@llnl.gov> +Date: Thu, 11 Jul 2013 14:11:32 -0700 +Subject: [PATCH] Fix zfsctl_expire_snapshot() deadlock + +It is possible for an automounted snapshot which is expiring to +deadlock with a manual unmount of the snapshot. This can occur +because taskq_cancel_id() will block if the task is currently +executing until it completes. But it will never complete because +zfsctl_unmount_snapshot() is holding the zsb->z_ctldir_lock which +zfsctl_expire_snapshot() must acquire. + +---------------------- z_unmount/0:2153 --------------------- + mutex_lock <blocking on zsb->z_ctldir_lock> + zfsctl_unmount_snapshot + zfsctl_expire_snapshot + taskq_thread + +------------------------- zfs:10690 ------------------------- + taskq_wait_id <waiting for z_unmount to exit> + taskq_cancel_id + __zfsctl_unmount_snapshot + zfsctl_unmount_snapshot <takes zsb->z_ctldir_lock> + zfs_unmount_snap + zfs_ioc_destroy_snaps_nvl + zfsdev_ioctl + do_vfs_ioctl + +We resolve the deadlock by dropping the zsb->z_ctldir_lock before +calling __zfsctl_unmount_snapshot(). The lock is only there to +prevent concurrent modification to the zsb->z_ctldir_snaps AVL +tree. Moreover, we're careful to remove the zfs_snapentry_t from +the AVL tree before dropping the lock which ensures no other tasks +can find it. On failure it's added back to the tree. + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Signed-off-by: Chris Dunlap <cdunlap@llnl.gov> +Closes #1527 +--- + module/zfs/zfs_ctldir.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/module/zfs/zfs_ctldir.c b/module/zfs/zfs_ctldir.c +index 4fa530b..168f853 100644 +--- a/module/zfs/zfs_ctldir.c ++++ b/module/zfs/zfs_ctldir.c +@@ -732,7 +732,11 @@ struct inode * + sep = avl_find(&zsb->z_ctldir_snaps, &search, NULL); + if (sep) { + avl_remove(&zsb->z_ctldir_snaps, sep); ++ mutex_exit(&zsb->z_ctldir_lock); ++ + error = __zfsctl_unmount_snapshot(sep, flags); ++ ++ mutex_enter(&zsb->z_ctldir_lock); + if (error == EBUSY) + avl_add(&zsb->z_ctldir_snaps, sep); + else +@@ -767,7 +771,11 @@ struct inode * + while (sep != NULL) { + next = AVL_NEXT(&zsb->z_ctldir_snaps, sep); + avl_remove(&zsb->z_ctldir_snaps, sep); ++ mutex_exit(&zsb->z_ctldir_lock); ++ + error = __zfsctl_unmount_snapshot(sep, flags); ++ ++ mutex_enter(&zsb->z_ctldir_lock); + if (error == EBUSY) { + avl_add(&zsb->z_ctldir_snaps, sep); + (*count)++; +-- +1.8.1.6 + diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zvol-initialization-r1.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zvol-initialization-r1.patch new file mode 100644 index 000000000000..b1e7d3736db0 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-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-kmod/files/zfs-kmod-0.6.1-linux-3.10-compat.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-linux-3.10-compat.patch new file mode 100644 index 000000000000..90755a1a527f --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-linux-3.10-compat.patch @@ -0,0 +1,108 @@ +commit a1d9543a39942be56879ca9338078afc77c25cea +Author: Chris Dunlop <chris@onthe.net.au> +Date: Mon Jun 3 16:58:52 2013 +1000 + + 3.10 API change: block_device_operations->release() returns void + + Linux kernel commit torvalds/linux@db2a144 changed the return type + of block_device_operations->release() to void. Detect the expected + prototype and defined our callout accordingly. + + Signed-off-by: Chris Dunlop <chris@onthe.net.au> + Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> + Closes #1494 + +diff --git a/config/kernel-bdev-block-device-operations.m4 b/config/kernel-bdev-block-device-operations.m4 +index 8b5e0a3..faacc19 100644 +--- a/config/kernel-bdev-block-device-operations.m4 ++++ b/config/kernel-bdev-block-device-operations.m4 +@@ -10,7 +10,6 @@ AC_DEFUN([ZFS_AC_KERNEL_BDEV_BLOCK_DEVICE_OPERATIONS], [ + + int blk_open(struct block_device *bdev, fmode_t mode) + { return 0; } +- int blk_release(struct gendisk *g, fmode_t mode) { return 0; } + int blk_ioctl(struct block_device *bdev, fmode_t mode, + unsigned x, unsigned long y) { return 0; } + int blk_compat_ioctl(struct block_device * bdev, fmode_t mode, +@@ -19,7 +18,7 @@ AC_DEFUN([ZFS_AC_KERNEL_BDEV_BLOCK_DEVICE_OPERATIONS], [ + static const struct block_device_operations + bops __attribute__ ((unused)) = { + .open = blk_open, +- .release = blk_release, ++ .release = NULL, + .ioctl = blk_ioctl, + .compat_ioctl = blk_compat_ioctl, + }; +diff --git a/config/kernel-block-device-operations-release-void.m4 b/config/kernel-block-device-operations-release-void.m4 +new file mode 100644 +index 0000000..a73f858 +--- /dev/null ++++ b/config/kernel-block-device-operations-release-void.m4 +@@ -0,0 +1,29 @@ ++dnl # ++dnl # 3.10.x API change ++dnl # ++AC_DEFUN([ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID], [ ++ AC_MSG_CHECKING([whether block_device_operations.release is void]) ++ tmp_flags="$EXTRA_KCFLAGS" ++ EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" ++ ZFS_LINUX_TRY_COMPILE([ ++ #include <linux/blkdev.h> ++ ++ void blk_release(struct gendisk *g, fmode_t mode) { return; } ++ ++ static const struct block_device_operations ++ bops __attribute__ ((unused)) = { ++ .open = NULL, ++ .release = blk_release, ++ .ioctl = NULL, ++ .compat_ioctl = NULL, ++ }; ++ ],[ ++ ],[ ++ AC_MSG_RESULT(void) ++ AC_DEFINE(HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID, 1, ++ [struct block_device_operations.release returns void]) ++ ],[ ++ AC_MSG_RESULT(int) ++ ]) ++ EXTRA_KCFLAGS="$tmp_flags" ++]) +diff --git a/config/kernel.m4 b/config/kernel.m4 +index 7b8e3b0..46c0255 100644 +--- a/config/kernel.m4 ++++ b/config/kernel.m4 +@@ -7,6 +7,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ + ZFS_AC_TEST_MODULE + ZFS_AC_KERNEL_CONFIG + ZFS_AC_KERNEL_BDEV_BLOCK_DEVICE_OPERATIONS ++ ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID + ZFS_AC_KERNEL_TYPE_FMODE_T + ZFS_AC_KERNEL_KOBJ_NAME_LEN + ZFS_AC_KERNEL_3ARG_BLKDEV_GET +diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c +index e35c91b..b516156 100644 +--- a/module/zfs/zvol.c ++++ b/module/zfs/zvol.c +@@ -1024,7 +1024,11 @@ out_mutex: + return (error); + } + ++#ifdef HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID ++static void ++#else + static int ++#endif + zvol_release(struct gendisk *disk, fmode_t mode) + { + zvol_state_t *zv = disk->private_data; +@@ -1044,7 +1048,9 @@ zvol_release(struct gendisk *disk, fmode_t mode) + if (drop_mutex) + mutex_exit(&zvol_state_lock); + ++#ifndef HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID + return (0); ++#endif + } + + static int diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.5-discard-on-zvol-fix.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.5-discard-on-zvol-fix.patch new file mode 100644 index 000000000000..632d08d28e1f --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.5-discard-on-zvol-fix.patch @@ -0,0 +1,31 @@ +From 96165264ad0afe7a5d440ef49f9712a188486266 Mon Sep 17 00:00:00 2001 +From: Richard Yao <ryao@gentoo.org> +Date: Fri, 18 Sep 2015 08:32:52 -0400 +Subject: [PATCH] Discard on zvols should not exceed the length of a block + +37f9dac592bf5889c3efb305c48ac39b4c7dd140 replaced the end-start +calculation with a cached value, but neglected to update it on discard +operations. This can cause us to discard data not requested, causing +data loss on zvols. + +Reported-by: Richard Connon <richard.connon@zynstra.com> +Signed-off-by: Richard Yao <ryao@gentoo.org> +--- + module/zfs/zvol.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c +index 492f8ff..c5a8071 100644 +--- a/module/zfs/zvol.c ++++ b/module/zfs/zvol.c +@@ -661,6 +661,7 @@ zvol_discard(struct bio *bio) + if (!(bio->bi_rw & REQ_SECURE)) { + start = P2ROUNDUP(start, zv->zv_volblocksize); + end = P2ALIGN(end, zv->zv_volblocksize); ++ size = end - start; + } + #endif + +-- +2.4.6 + diff --git a/sys-fs/zfs-kmod/metadata.xml b/sys-fs/zfs-kmod/metadata.xml new file mode 100644 index 000000000000..51cfee84a293 --- /dev/null +++ b/sys-fs/zfs-kmod/metadata.xml @@ -0,0 +1,18 @@ +<?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="rootfs">Install zfs-shutdown script to support exporting a pool containing rootfs</flag> + </use> + <upstream> + <remote-id type="github">zfsonlinux/zfs</remote-id> + </upstream> +</pkgmetadata> diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc13-r4.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc13-r4.ebuild new file mode 100644 index 000000000000..cf47024ea92d --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc13-r4.ebuild @@ -0,0 +1,123 @@ +# 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" + +inherit bash-completion-r1 flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +if [ ${PV} == "9999" ] ; then + inherit git-2 + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" +else + inherit eutils versionator + MY_PV=$(replace_version_separator 3 '-') + SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${MY_PV}.tar.gz" + S="${WORKDIR}/zfs-zfs-${MY_PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="test" + +DEPEND=" + =sys-kernel/spl-${PV}* + virtual/awk + dev-lang/perl +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + BLK_DEV_LOOP + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} BLK_DEV_INITRD + DEVTMPFS" + + kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 3 8 || die "Linux 3.8 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Fix regression where snapshots are not visible + epatch "${FILESDIR}/${P}-fix-invisible-snapshots.patch" + + # Fix deadlock involving concurrent `zfs destroy` and `zfs list` commands + epatch "${FILESDIR}/${P}-fix-recursive-reader.patch" + + # Fix USE=debug build failure involving GCC 4.7 + epatch "${FILESDIR}/${P}-gcc-4.7-compat.patch" + + # Cast constant for 32-bit compatibility + epatch "${FILESDIR}/${PN}-0.6.0_rc14-cast-const-for-32bit-compatibility.patch" + + # Handle missing name length check in Linux VFS + epatch "${FILESDIR}/${PN}-0.6.0_rc14-vfs-name-length-compatibility.patch" + + # Fix barrier regression on Linux 2.6.37 and later + epatch "${FILESDIR}/${PN}-0.6.0_rc14-flush-properly.patch" + fi + + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + $(use_enable debug) + dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown + ) + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install +} + +pkg_postinst() { + linux-mod_pkg_postinst + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc14-r5.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc14-r5.ebuild new file mode 100644 index 000000000000..83e7fafaae31 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc14-r5.ebuild @@ -0,0 +1,136 @@ +# 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" + +inherit bash-completion-r1 flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +if [ ${PV} == "9999" ] ; then + inherit git-2 + MY_PV=9999 + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" +else + inherit eutils versionator + MY_PV=$(replace_version_separator 3 '-') + SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${MY_PV}.tar.gz" + S="${WORKDIR}/zfs-zfs-${MY_PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + BLK_DEV_LOOP + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} BLK_DEV_INITRD + DEVTMPFS" + + kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 3 9 || die "Linux 3.9 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Cast constant for 32-bit compatibility + epatch "${FILESDIR}/${P}-cast-const-for-32bit-compatibility.patch" + + # Handle missing name length check in Linux VFS + epatch "${FILESDIR}/${P}-vfs-name-length-compatibility.patch" + + # Fix NULL pointer exception on hardened kernels, bug #457176 + epatch "${FILESDIR}/${P}-improved-hardened-support.patch" + + # Fix barrier regression on Linux 2.6.37 and later + epatch "${FILESDIR}/${P}-flush-properly.patch" + + # Improve accuracy of autotools checks + epatch "${FILESDIR}/${P}-improved-autotools-checks.patch" + + # Linux 3.9 Support + epatch "${FILESDIR}/${P}-linux-3.9-compat.patch" + + # Do not second guess Linux's memory management + epatch "${FILESDIR}/${P}-zfs_arc_memory_throttle_disable.patch" + fi + + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + $(use_enable debug) + ) + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install + dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown + + # Provide /usr/src/zfs symlink for lustre + dosym "$(basename $(echo "${ED}/usr/src/zfs-"*))/${KV_FULL}" /usr/src/zfs +} + +pkg_postinst() { + linux-mod_pkg_postinst + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux introduces support for features flags." + ewarn "If you upgrade your pools to make use of feature flags, you will lose" + ewarn "the ability to import them using older versions of ZFSOnLinux." + ewarn "Any new pools will be created with feature flag support and will" + ewarn "not be compatible with older versions of ZFSOnLinux. To create a new" + ewarn "pool that is backward compatible, use zpool create -o version=28 ..." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.1-r2.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.1-r2.ebuild new file mode 100644 index 000000000000..73671492db28 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.1-r2.ebuild @@ -0,0 +1,151 @@ +# 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" + +inherit bash-completion-r1 flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +if [ ${PV} == "9999" ] ; then + inherit git-2 + MY_PV=9999 + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" +else + inherit eutils versionator + MY_PV=$(replace_version_separator 3 '-') + SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${MY_PV}.tar.gz" + S="${WORKDIR}/zfs-zfs-${MY_PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + BLK_DEV_LOOP + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + !UIDGID_STRICT_TYPE_CHECKS + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} BLK_DEV_INITRD + DEVTMPFS" + + kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 3 10 || die "Linux 3.10 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Correctness fix for getdents + epatch "${FILESDIR}/${P}-fix-getdents.patch" + + # Prevent possible deadlock regression + epatch "${FILESDIR}/${P}-fix-txg_quiesce-deadlock.patch" + + # Correctness fixes for xattr + epatch "${FILESDIR}/${P}-fix-xattr-behavior-1.patch" + epatch "${FILESDIR}/${P}-fix-xattr-behavior-2.patch" + + # Make certain that zvols always appear + epatch "${FILESDIR}/${P}-fix-zvol-initialization-r1.patch" + + # Linux 3.10 Compatibility + epatch "${FILESDIR}/${PN}-0.6.1-linux-3.10-compat.patch" + + # ARC Read Panic Fix + epatch "${FILESDIR}/${PN}-0.6.1-fix-arc-read-panic.patch" + + # Fix zfsctl_expire_snapshot deadlock + epatch "${FILESDIR}/${PN}-0.6.1-fix-zfsctl_expire_snapshot-deadlock.patch" + + # Fix NULL pointer dereference in zfsctl_expire_snapshot + epatch "${FILESDIR}/${PN}-0.6.1-fix-zfs_sb_teardown-NULL-pointer-deref.patch" + fi + + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + $(use_enable debug) + ) + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install + dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown + + # Provide /usr/src/zfs symlink for lustre + dosym "$(basename $(echo "${ED}/usr/src/zfs-"*))/${KV_FULL}" /usr/src/zfs +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for features flags." + ewarn "If you upgrade your pools to make use of feature flags, you will lose" + ewarn "the ability to import them using older versions of ZFSOnLinux." + ewarn "Any new pools will be created with feature flag support and will" + ewarn "not be compatible with older versions of ZFSOnLinux. To create a new" + ewarn "pool that is backward compatible, use zpool create -o version=28 ..." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.2-r3.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.2-r3.ebuild new file mode 100644 index 000000000000..179739a94410 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.2-r3.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" + +inherit bash-completion-r1 flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +if [ ${PV} == "9999" ] ; then + inherit git-2 + MY_PV=9999 + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" +else + inherit eutils versionator + MY_PV=$(replace_version_separator 3 '-') + SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${MY_PV}.tar.gz + https://dev.gentoo.org/~ryao/dist/${PN}-${MY_PV}-p2.tar.xz" + S="${WORKDIR}/zfs-zfs-${MY_PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + BLK_DEV_LOOP + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} BLK_DEV_INITRD + DEVTMPFS" + + kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 3 12 || die "Linux 3.12 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + if [ ${PV} != "9999" ] + then + # Apply patch set + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/${PN}-${MY_PV}-patches" + fi + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + $(use_enable debug) + ) + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install + dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for features flags." + ewarn "If you upgrade your pools to make use of feature flags, you will lose" + ewarn "the ability to import them using older versions of ZFSOnLinux." + ewarn "Any new pools will be created with feature flag support and will" + ewarn "not be compatible with older versions of ZFSOnLinux. To create a new" + ewarn "pool that is backward compatible, use zpool create -o version=28 ..." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.3-r1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.3-r1.ebuild new file mode 100644 index 000000000000..0b675bc3253c --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.3-r1.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2015 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" + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +if [ ${PV} == "9999" ] ; then + inherit git-2 + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" +else + inherit eutils versionator + SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${PV}.tar.gz + https://dev.gentoo.org/~ryao/dist/zfs-${PV}-patches-${PR}.tar.xz" + S="${WORKDIR}/zfs-zfs-${PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + BLK_DEV_LOOP + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + !PAX_RANDKSTACK + !PAX_USERCOPY_SLABS + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 3 17 || die "Linux 3.17 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Apply patch set + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/zfs-${PV}-patches" + fi + + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" + dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for features flags." + ewarn "If you upgrade your pools to make use of feature flags, you will lose" + ewarn "the ability to import them using older versions of ZFSOnLinux." + ewarn "Any new pools will be created with feature flag support and will" + ewarn "not be compatible with older versions of ZFSOnLinux. To create a new" + ewarn "pool that is backward compatible, use zpool create -o version=28 ..." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.4.2.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.4.2.ebuild new file mode 100644 index 000000000000..b19cd598f867 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.4.2.ebuild @@ -0,0 +1,141 @@ +# Copyright 1999-2015 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" + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +if [ ${PV} == "9999" ] ; then + inherit git-2 + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" +else + inherit eutils versionator + SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-zfs-${PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + BLK_DEV_LOOP + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + !PAX_USERCOPY_SLABS + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 1 || die "Linux 4.1 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" + dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with ZFSOnLinux 0.6.3 and GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible, use " + ewarn "zpool create -o version=28 ..." + ewarn "Then explicitly enable older features. Note that the LZ4 feature has" + ewarn "been upgraded to support metadata compression and has not been" + ewarn "tested against the older GRUB2 code base. GRUB2 support will be" + ewarn "updated as soon as the GRUB2 developers and Open ZFS community write" + ewarn "GRUB2 patchese that pass mutual review." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5-r1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5-r1.ebuild new file mode 100644 index 000000000000..89ab1f556502 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5-r1.ebuild @@ -0,0 +1,153 @@ +# Copyright 1999-2015 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" + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +if [ ${PV} == "9999" ] ; then + inherit git-2 + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" +else + inherit eutils versionator + SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-zfs-${PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + BLK_DEV_LOOP + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + !PAX_USERCOPY_SLABS + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 2 || die "Linux 4.2 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Fix zvol data loss regression + # https://github.com/zfsonlinux/zfs/pull/3798 + epatch "${FILESDIR}/${P}-discard-on-zvol-fix.patch" + fi + + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" + dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.10.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.10.ebuild new file mode 100644 index 000000000000..ddbb09881e76 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.10.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +if [ ${PV} == "9999" ]; then + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" + inherit git-r3 +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS=" ~amd64" +fi + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown ) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 12 || die "Linux 4.12 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.11.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.11.ebuild new file mode 100644 index 000000000000..ddbb09881e76 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.11.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +if [ ${PV} == "9999" ]; then + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" + inherit git-r3 +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS=" ~amd64" +fi + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown ) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 12 || die "Linux 4.12 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.2.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.2.ebuild new file mode 100644 index 000000000000..b6b9fe5951cc --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.2.ebuild @@ -0,0 +1,145 @@ +# Copyright 1999-2015 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" + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +if [ ${PV} == "9999" ] ; then + inherit git-2 + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" +else + inherit eutils versionator + SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-zfs-${PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + !PAX_USERCOPY_SLABS + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 3 || die "Linux 4.3 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" + dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3-r4.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3-r4.ebuild new file mode 100644 index 000000000000..820a3730461d --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3-r4.ebuild @@ -0,0 +1,158 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ]; then + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" + inherit git-r3 +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz + https://dev.gentoo.org/~ryao/dist/zfs-${PV}-patches-p3.tar.xz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !<sys-kernel/spl-0.6.5.3-r1 + !sys-fs/zfs-fuse +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown ) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 4 || die "Linux 4.4 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Apply patch set + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/zfs-${PV}-patches" + fi + + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3.ebuild new file mode 100644 index 000000000000..95f4d0eea20c --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +if [ ${PV} == "9999" ]; then + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" + inherit git-r3 +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown ) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 3 || die "Linux 4.3 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.4-r1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.4-r1.ebuild new file mode 100644 index 000000000000..fdbff506ec4e --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.4-r1.ebuild @@ -0,0 +1,158 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ]; then + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" + inherit git-r3 +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz + https://dev.gentoo.org/~ryao/dist/zfs-${PV}-patches-p${PR#r}.tar.xz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !<sys-kernel/spl-0.6.5.3-r1 + !sys-fs/zfs-fuse +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown ) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 4 || die "Linux 4.4 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Apply patch set + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/zfs-${PV}-patches" + fi + + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.4.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.4.ebuild new file mode 100644 index 000000000000..bda3a991ca09 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.4.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +if [ ${PV} == "9999" ]; then + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" + inherit git-r3 +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS=" ~amd64" +fi + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown ) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 3 || die "Linux 4.3 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.6.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.6.ebuild new file mode 100644 index 000000000000..b22b3b796e2e --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.6.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +if [ ${PV} == "9999" ]; then + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" + inherit git-r3 +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS=" ~amd64" +fi + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown ) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 5 || die "Linux 4.5 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.7.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.7.ebuild new file mode 100644 index 000000000000..4d295e7b233b --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.7.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +if [ ${PV} == "9999" ]; then + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" + inherit git-r3 +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS=" ~amd64" +fi + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown ) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 6 || die "Linux 4.6 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.8.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.8.ebuild new file mode 100644 index 000000000000..dc3011a0f159 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.8.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +if [ ${PV} == "9999" ]; then + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" + inherit git-r3 +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS=" ~amd64" +fi + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown ) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 8 || die "Linux 4.8 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.9.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.9.ebuild new file mode 100644 index 000000000000..eba247a785f6 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.9.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +if [ ${PV} == "9999" ]; then + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" + inherit git-r3 +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS=" ~amd64" +fi + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown ) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 10 || die "Linux 4.10 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.7.0.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.7.0.ebuild new file mode 100644 index 000000000000..ddbb09881e76 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.7.0.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +if [ ${PV} == "9999" ]; then + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" + inherit git-r3 +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS=" ~amd64" +fi + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown ) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 12 || die "Linux 4.12 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.7.1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.7.1.ebuild new file mode 100644 index 000000000000..ddbb09881e76 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.7.1.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +if [ ${PV} == "9999" ]; then + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" + inherit git-r3 +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS=" ~amd64" +fi + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown ) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 12 || die "Linux 4.12 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} diff --git a/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild b/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild new file mode 100644 index 000000000000..03c1e90f7cf4 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +if [ ${PV} == "9999" ]; then + AUTOTOOLS_AUTORECONF="1" + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" + inherit git-r3 +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +fi + +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" +RESTRICT="debug? ( strip ) test" + +DEPEND=" + =sys-kernel/spl-${PV}* + dev-lang/perl + virtual/awk +" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse +" + +AT_M4DIR="config" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown ) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK="!DEBUG_LOCK_ALLOC + EFI_PARTITION + IOSCHED_NOOP + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + ZLIB_DEFLATE + ZLIB_INFLATE + " + + use debug && CONFIG_CHECK="${CONFIG_CHECK} + FRAME_POINTER + DEBUG_INFO + !DEBUG_INFO_REDUCED + " + + use rootfs && \ + CONFIG_CHECK="${CONFIG_CHECK} + BLK_DEV_INITRD + DEVTMPFS + " + + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required" + + [ ${PV} != "9999" ] && \ + { kernel_is le 4 3 || die "Linux 4.3 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" + + # Set module revision number + [ ${PV} != "9999" ] && \ + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; } + + autotools-utils_src_prepare +} + +src_configure() { + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))" + use custom-cflags || strip-flags + filter-ldflags -Wl,* + + set_arch_to_kernel + local myeconfargs=(${myeconfargs} + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-spl="${EROOT}usr/src/${SPL_PATH}" + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}" + $(use_enable debug) + ) + + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # Remove old modules + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ] + then + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs" + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs" + ewarn "Automatically removing old modules to avoid problems." + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules" + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon" + fi + + if use x86 || use arm + then + ewarn "32-bit kernels will likely require increasing vmalloc to" + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." + fi + + ewarn "This version of ZFSOnLinux includes support for new feature flags" + ewarn "that are incompatible with previous versions. GRUB2 support for" + ewarn "/boot with the new feature flags is not yet available." + ewarn "Do *NOT* upgrade root pools to use the new feature flags." + ewarn "Any new pools will be created with the new feature flags by default" + ewarn "and will not be compatible with older versions of ZFSOnLinux. To" + ewarn "create a newpool that is backward compatible wih GRUB2, use " + ewarn + ewarn "zpool create -d -o feature@async_destroy=enabled " + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled" + ewarn " -o feature@spacemap_histogram=enabled" + ewarn " -o feature@enabled_txg=enabled " + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled" + ewarn " ..." + ewarn + ewarn "GRUB2 support will be updated as soon as either the GRUB2" + ewarn "developers do a tag or the Gentoo developers find time to backport" + ewarn "support from GRUB2 HEAD." +} |