diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 000000000000..62ba5cfc7c99 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,2195 @@ +zfs-linux (0.7.0-rc4git1-0ubuntu1~23.gbp12ab31) UNRELEASED; urgency=medium + + ** SNAPSHOT build @12ab31cc0da8b3a9838b80b8ece70bf882c8571e ** + + [ Trevor Joynson (trevorj) ] + * Add new module + * Up + + [ Trevor Joynson (Debian) ] + + [ Tim Chase ] + * 4.10 compat - BIO flag changes and others + + [ Trevor Joynson (trevorj) ] + * Import 0.6.5.7-0ubuntu3 + * gbp changes + * Bump ver + * -j9 baby + * Up + * Yup + * Add new module + * Up + * Up + + [ Trevor Joynson (Debian) ] + + [ Trevor Joynson (trevorj) ] + * Bump + * Grr + + [ Trevor Joynson (Debian) ] + + [ Chunwei Chen ] + * Fix i_flags issue caused by 64c688d + * Fix wrong operator in xvattr.h + * Fix fchange in zpl_ioctl_setflags + * Use inode_set_flags when available + * Add test for chattr + * Fix zmo leak when zfs_sb_create fails + + [ cao ] + * Fix coverity defects: CID 155008 + + [ LOLi ] + * Fix dsl_props_set_sync_impl to work with nested nvlist + + [ Chunwei Chen ] + * Use a dedicated taskq for vdev_file + + [ bunder2015 ] + * Remove extra + from zfs man page + + [ GeLiXin ] + * Fix coverity defects: CID 147587 + + [ LOLi ] + * Don't persist temporary pool name on devices + + [ Tim Chase ] + * 4.10 compat - BIO flag changes and others + + [ ka7 ] + * Fix spelling + + [ George Melikov ] + * OpenZFS 7259 - DS_FIELD_LARGE_BLOCKS is unused + + [ Johnny Stenback ] + * Fix TypeError: unorderable types: str() > int() in arc_summary.py + + [ George Melikov ] + * Further work on Github usability (issue templates) + * OpenZFS 6328 - Fix cstyle errors in zfs codebase + * OpenZFS 6637 - replacing "dontclose" with "should_close" + + [ Don Brady ] + * OpenZFS 7303 - dynamic metaslab selection + + [ George Melikov ] + * OpenZFS 6603 - zfeature_register() should verify ZFEATURE_FLAG_PER_DATASET implies SPA_FEATURE_EXTENSIBLE_DATASET + + [ LOLi ] + * Fix zfs-share systemd unit file + + [ George Melikov ] + * OpenZFS 7276 - zfs(1m) manpage could better describe space properties + + [ Don Brady ] + * OpenZFS 7743 - per-vdev-zaps init path for upgrade + + [ bzzz77 ] + * Add *_by-dnode routines + + [ Jörg Thalheim ] + * module/Makefile.in: use relative cp + + [ Brian Behlendorf ] + * OpenZFS 7181 - race between zfs_mount and zfs_ioc_rollback + * OpenZFS 7603 - xuio_stat_wbuf_* should be declared (void) + + [ LOLi ] + * Fix unallocated object detection for large_dnode datasets + + [ clefru ] + * Don't hardcode perl path but use env instead + + [ Brian Behlendorf ] + * OpenZFS 6551 - cmd/zpool: cleanup gcc warnings + * OpenZFS 6550 - cmd/zfs: cleanup gcc warnings + * OpenZFS 6586 - Whitespace inconsistencies in the spa feature dependency arrays in zfeature_common.c + + [ George Melikov ] + * OpenZFS 7082 - bptree_iterate() passes wrong args to zfs_dbgmsg() + * OpenZFS 7071 - lzc_snapshot does not fill in errlist on ENOENT + * OpenZFS 7256 - low probability race in zfs_get_data + * OpenZFS 7235 - remove unused func dsl_dataset_set_blkptr + * OpenZFS 7257 - zfs manpage user property length needs to be updated + * OpenZFS 7659 - Missing thread_exit() in dmu_send.c + + [ Brian Behlendorf ] + * Disable racy test cases + + [ George Melikov ] + * OpenZFS 6529 - Properly handle updates of variably-sized SA entries + + [ Chunwei Chen ] + * Suspend/resume zvol for recv and rollback + + [ Brian Behlendorf ] + * Fix unused variable warning + * Tag 0.7.0-rc3 + + [ Chunwei Chen ] + * Partial revert "Disable slow tests for kmemleak" + + [ George Melikov ] + * OpenZFS 7729 - libzfs_core`lzc_rollback() leaks result nvl + + [ Paul Dagnelie ] + * OpenZFS 6459 - cstyle doesn't detect opening braces on the same line as function header Authored by: Paul Dagnelie <pcd@delphix.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Alex Reece <alex@delphix.com> Reviewed by: Albert Lee <trisk@omniti.com> Reviewed by: Dan McDonald <danmcd@omniti.com> Approved by: Robert Mustacchi <rm@joyent.com> Ported-by: George Melikov mail@gmelikov.ru + + [ George Melikov ] + * codebase style improvements for OpenZFS 6459 port + * OpenZFS 7054 - dmu_tx_hold_t should use refcount_t to track space + * OpenZFS 6052 - decouple lzc_create() from the implementation details + * OpenZFS 7233 - dir_is_empty should open directory with CLOEXEC + * OpenZFS 7304 - zfs filesystem/snapshot counts should be read-only + * OpenZFS 3746 - ZRLs are racy + * OpenZFS 7180 - potential race between zfs_suspend_fs+zfs_resume_fs and zfs_ioc_rename + * OpenZFS 6428 - set canmount=off on unmounted filesystem tries to unmount children + * OpenZFS 7604 - if volblocksize property is the default, it displays as "-" rather than 8K + + [ Brian Behlendorf ] + * Fix pool_names_001_pos test case + * Fix build-it compilation regression + + [ George Melikov ] + * OpenZFS 6880 - zdb incorrectly reports feature count mismatch when feature is disabled + + [ Håkan Johansson ] + * Minor man-page formatting fixes + + [ George Melikov ] + * OpenZFS 6871 - libzpool implementation of thread_create should enforce length is 0 + * OpenZFS 7571 - non-present readonly numeric ZFS props do not have default value + * OpenZFS 6872 - zfs libraries should not allow uninitialized variables + + [ Brian Behlendorf ] + * Refresh Linux test suite runfile + + [ George Melikov ] + * OpenZFS 7336 - vfork and O_CLOEXEC causes zfs_mount EBUSY + + [ Brian Behlendorf ] + * OpenZFS 7147 - ztest: ztest_ddt_repair fails with ztest_pattern_match assertion + + [ George Melikov ] + * OpenZFS 7253 - ztest failure: dsl_destroy_head(name) == 0 (0x10 == 0x0), file ../ztest.c, line 3235 (#5660) + * OpenZFS 7163 - ztest failures due to excess error injection + + [ Giuseppe Di Natale ] + * OpenZFS 6999 - fix 'Use of uninitialized value $picky in numeric eq (==)' in cstyle + * OpenZFS 7348 - cstyle can't handle ellipsis on continuation line + + [ George Melikov ] + * OpenZFS 6412 - zfs receive: -u can be ignored sometimes + * OpenZFS 7606 - dmu_objset_find_dp() takes a long time while importing pool + * OpenZFS 5142 - libzfs support raidz root pool (loader project) + * OpenZFS 7386 - zfs get does not work properly with bookmarks + * OpenZFS 6676 - Race between unique_insert() and unique_remove() causes ZFS fsid change + * OpenZFS 7500 - Simplify dbuf_free_range by removing dn_unlisted_l0_blkid + + [ Tim Chase ] + * OpenZFS 7613 - ms_freetree[4] is only used in syncing context + + [ Brian Behlendorf ] + * OpenZFS 5561 - support root pools on EFI/GPT partitioned disks + + [ Chunwei Chen ] + * Retire .write/.read file operations + + [ George Melikov ] + * Add realloc() success check in zpool_history_unpack() + * OpenZFS 7254 - ztest failed assertion in ztest_dataset_dirobj_verify: dirobjs + 1 == usedobjs + * OpenZFS 7301 - zpool export -f should be able to interrupt file freeing + * OpenZFS 7340 - receive manual origin should override automatic origin + * OpenZFS 7580 - ztest failure in dbuf_read_impl + + [ Brian Behlendorf ] + * Add -Wno-declaration-after-statement to KERNELCPPFLAGS + * Fix suspend Godfather I/Os io_reexecute bits + + [ George Melikov ] + * OpenZFS 7277 - zdb should be able to print zfs_dbgmsg's + * OpenZFS 7502 - ztest should run zdb with -G (debug mode) + * OpenZFS 7541 - zpool import/tryimport ioctl returns ENOMEM + * OpenZFS 6922 - Emit ESC_ZFS_VDEV_REMOVE_AUX after removing an aux device + * OpenZFS 7490 - real checksum errors are silenced when zinject is on + * OpenZFS 7280 - Allow changing global libzpool variables in zdb and ztest through command line + * OpenZFS 7136 - ESC_VDEV_REMOVE_AUX ought to always include vdev information + * OpenZFS 7019 - zfsdev_ioctl skips secpolicy when FKIOCTL is set + * OpenZFS 7745 - print error if lzc_* is called before libzfs_core_init + + [ Tim Chase ] + * Update deadman operation to better align with upstream OpenZFS + + [ Aron Xu ] + * contrib/dracut: fix syntax error in module-setup.sh + + [ Giuseppe Di Natale ] + * OpenZFS 7545 - zdb should disable reference tracking + + [ George Melikov ] + * OpenZFS 7742 - zfs send wrong error message with invalid long opts + * OpenZFS 6569 - large file delete can starve out write ops + + [ Tim Crawford ] + * Match on word for excluding pools from tests + + [ David Quigley ] + * Use fletcher_4 routines natively with `abd_iterate_func()` + + [ Brian Behlendorf ] + * Fix atomic_sub_64() i386 assembly implementation + + [ George Melikov ] + * OpenZFS 7072 - zfs fails to expand if lun added when os is in shutdown state + + [ Brian Behlendorf ] + * Fix reservation test cases for large disks + + [ Giuseppe Di Natale ] + * Remove lint ifdef checks in zdb and dbuf + + [ Chunwei Chen ] + * Fix write(2) returns zero bug from 933ec99 + + [ Don Brady ] + * Add nvlist payload stats for zdb -ll dump + + [ George Melikov ] + * OpenZFS 1300 - filename normalization doesn't work for removes + + [ Giuseppe Di Natale ] + * OpenZFS 4521 - zfstest is trying to execute evil "zfs unmount -a" + + [ Olaf Faaland ] + * Add tmpfile_003_pos to .gitignore + + [ Don Brady ] + * OpenZFS 6866 - zdb -l non-zero status if no label + + [ Brian Behlendorf ] + * Disable sparse_001_pos / truncate_001_pos.ksh on 32-bit systems + + [ George Melikov ] + * OpenZFS 7247 - zfs receive of deduplicated stream fails + * OpenZFS 7504 - kmem_reap hangs spa_sync and administrative tasks + * OpenZFS 7448 - ZFS doesn't notice when disk vdevs have no write cache + + [ Tim Chase ] + * Refresh dkio.h and add dkioc_free_util.h + + [ Saso Kiselkov ] + * 6363 Add UNMAP/TRIM functionality to ZFS + + [ Tim Chase ] + * Stop autotrim tasks before freeing zios + * Fix vdev_raidz_psize_floor() + * Don't lock rt_lock in range_tree_verify() + * Add "zpool trim -p" to initiate a partial trim + * Add TRIM tests to the test suite + + [ LOLi ] + * Fix ZFS Test Suite failures caused by ksh brace expansion feature + + [ Don Brady ] + * Fix coverity defects: CID 155928 + + [ David Quigley ] + * Add missing module_param for zfs_per_txg_dirty_frees_percent + + [ George Melikov ] + * OpenZFS 6931 - lib/libzfs: cleanup gcc warnings + + [ Matthew Ahrens ] + * Allow c99 code to compile + + [ George Melikov ] + * Fix coverity defects: CID 155964, 155965 + + [ Brian Behlendorf ] + * Fix zfs-mount.service failure on boot + + [ George Melikov ] + * Add `wait_freeing` helper function to ZTS + + [ Brian Behlendorf ] + * Fix iput() calls within a tx + * Move ziltest.sh to the ZTS framework + + [ Matthew Ahrens ] + * panic in bpobj_space(): null pointer dereference + * OpenZFS 7104 - increase indirect block size + + [ Simon Klinkert ] + * OpenZFS 5704 - libzfs can only handle 255 file descriptors + + [ Tony Hutter ] + * Clear enclosure sysfs path from VDEV label when sysfs path isn't present + * Enclosure LED fixes + + [ Chunwei Chen ] + * Fix off by one in zpl_lookup + + [ John Wren Kennedy ] + * OpenZFS 6642 - testrunner output can be displayed in the wrong order + * OpenZFS 7496 - cmp_ds_cont has never worked + + [ Yuri Pankov ] + * OpenZFS 6580 - zfs-tests use undefined variable WRAPPER + + [ Tim Chase ] + * Fix zfs_compressed_arc_enabled parameter description + + [ Matthew Ahrens ] + * OpenZFS 7162 - Intermittent failures from ro_props_001_pos + + [ Marcel Telka ] + * OpenZFS 7103 - failed test cli_root/zfs_snapshot/zfs_snapshot_009_pos + * OpenZFS 7398 - zfs test zfs_get_005_neg does not work as expected + + [ Igor Kozhukhov ] + * OpenZFS 7036 - zvol_swap_004_pos test failed + + [ George Melikov ] + * Disable racy snapshot_008_pos + + [ Yuri Pankov ] + * OpenZFS 6754 - zfs-tests: get_substr() function is redundant + + [ Akash Ayare ] + * OpenZFS 7027 - zfs_written_property_001_pos makes unreasonable assumptions about metadata space usage + + [ Olaf Faaland ] + * Use file-based pools for zpool_expand test 002 and enable it + + [ John Wren Kennedy ] + * OpenZFS 7260 - disable libdiskmgmt in zfstest unless it's required + + [ Christopher Voltz ] + * Fix broken URL + + [ Matthew Ahrens ] + * OpenZFS 6404 - zvol_swap_006_pos can occasionally fail due to swaplen being < 16 + * zfs_arc_num_sublists_per_state should be common to all multilists + + [ Prakash Surya ] + * OpenZFS 7762 - avoid division by zero in property_alias_001_pos + + [ John Wren Kennedy ] + * OpenZFS 7248 - large block support breaks rsend_009_pos + + [ Hans Rosenfeld ] + * OpenZFS 7001 - zvol_misc tests should not depend on /sbin or /usr/sbin being in PATH + + [ Christopher Voltz ] + * Retry setting LED + + [ Trevor Joynson (trevorj) ] + * Import 0.6.5.7-0ubuntu3 + * gbp changes + * Bump ver + * -j9 baby + * Up + * Yup + * Add new module + * Up + * Up + * Bump + * Grr + * Yay + * Yay + * Yay + * Yay + * Yay + * Yay + * yay + * yay + * yay + * Update ppa script + * Update gbp conf with br changes + * Update gbp conf with br changes + + [ Trevor Joynson (Debian) ] + + [ Trevor Joynson (trevorj) ] + * Bump + * No pristine + + [ Trevor Joynson (Debian) ] + + [ Tim Chase ] + * Refresh dkio.h and add dkioc_free_util.h + + [ Saso Kiselkov ] + * 6363 Add UNMAP/TRIM functionality to ZFS + + [ Tim Chase ] + * Stop autotrim tasks before freeing zios + * Fix vdev_raidz_psize_floor() + * Don't lock rt_lock in range_tree_verify() + * Add "zpool trim -p" to initiate a partial trim + * Add TRIM tests to the test suite + * Wait for trimming to finish in metaslab_fini + + [ Isaac Huang ] + * Fix incorrect spare vdev state after replacing + + [ Giuseppe Di Natale ] + * Allow zfs-tests to run a single test + + [ Matthew Ahrens ] + * OpenZFS 7337 - inherit_001_pos occasionally times out + + [ Andriy Gapon ] + * OpenZFS 7199 - dsl_dataset_rollback_sync may try to free already free blocks + + [ Prakash Surya ] + * OpenZFS 7761 - bootfs_005_neg's pool destruction must handle EBUSY + + [ Daniel Hoffman ] + * OpenZFS 7812 - Remove gender specific language + + [ Ahmed G ] + * OpenZFS 7736 - ZFS Performance tests should log FIO summary output + + [ Tim Crawford ] + * Fix checksumflags assignment in cksummer + + [ Isaac Huang ] + * ABD style cleanups + + [ Matthew Ahrens ] + * Clean up by-dnode code in dmu_tx.c + + [ Matt Kemp ] + * Fix initramfs hook for merged /usr/lib and /lib + + [ Tim Chase ] + * Format an error message when the ZFS_IOC_POOL_TRIM fails + + [ Olaf Faaland ] + * Linux 4.11 compat: avoid refcount_t name conflict + + [ Sydney Vanda ] + * Add auto-online test for ZED/FMA as part of the ZTS + + [ Giuseppe Di Natale ] + * Bug fixes for single test runs in zfs-tests + * Reduce size of zvol and enforce 4k blocksize in zvol tests + + [ Brian Behlendorf ] + * Fix powerpc build + + [ Chunwei Chen ] + * Fix loop device becomes read-only + + [ Olaf Faaland ] + * Dump unique configurations and Uberblocks in zdb -lu + + [ Brian Behlendorf ] + * OpenZFS 7843 - get_clones_stat() is suboptimal for lots of clones + * OpenZFS 7793 - ztest fails assertion in dmu_tx_willuse_space + + [ bunder2015 ] + * Fix multi-line error messages in blkdev_compat.h + + [ Gvozden Neskovic ] + * [icp] fpu and asm cleanup for linux + + [ bunder2015 ] + * Corrected highlight for zpool man page + + [ Andriy Gapon ] + * OpenZFS 7867 - ARC space accounting leak + + [ Tony Hutter ] + * Fix harmless "BARRIER is deprecated" kernel warning on Centos 6.8 + + [ Chunwei Chen ] + * Fix nfs snapdir automount + + [ Giuseppe Di Natale ] + * Enable shellcheck to run for select scripts + * Correct arc_summary and dbufstat python style + * Suppress cppcheck nullPointer error in zfs_write + + [ Brian Behlendorf ] + * Fix ZVOL BLKFLSBUF ioctl + * Rename zfs_sb_t -> zfsvfs_t + * Rename zfs_* functions + * Restructure mount option handling + + [ Matthew Ahrens ] + * OpenZFS 6874 - rollback and receive need to reset ZPL state to what's on disk + * OpenZFS 7801 - add more by-dnode routines (lint) + + [ DeHackEd ] + * zfs(8) fixes + + [ Olaf Faaland ] + * Linux 4.11 compat: iops.getattr and friends + + [ Matthew Ahrens ] + * OpenZFS 7968 - multi-threaded spa_sync() + + [ John Paul Adrian Glaubitz ] + * libspl: Fix incorrect use of platform defines on sparc64 + + [ wli5 ] + * GZIP compression offloading with QAT accelerator + + [ Brian Behlendorf ] + * Fix `zpool status -v` error message + + [ George Wilson ] + * OpenZFS 3821 - Race in rollback, zil close, and zil flush + + [ Brian Behlendorf ] + * Fix undefined reference to `libzfs_fru_compare' + * Retry zfs_znode_alloc() in zfs_mknode() + + [ LOLi ] + * Fix 'zdb -o' segmentation fault + + [ Brian Behlendorf ] + * Allow c99 when building ZFS in the kernel tree + + [ wli5 ] + * Update documentation for new parameter "zfs_qat_disable" + + [ Brian Behlendorf ] + * Disable rsend_009_pos + + [ Sen Haerens ] + * Fix "undefined reference to xdr_control" when building raidz_test cmd + + [ Chunwei Chen ] + * Fix wrong offset args in vdev_cache_write + + [ LOLi ] + * Check ashift validity in 'zpool add' + + [ Giuseppe Di Natale ] + * OpenZFS 7990 - libzfs: snapspec_cb() does not need to call zfs_strdup() + + [ Gvozden Neskovic ] + * Remove dependency on linear ABD + + [ Brian Behlendorf ] + * Fix add-o_ashift.ksh permissions + + [ Olaf Faaland ] + * glibc 2.5 compat: use correct header for makedev() et al. + + [ Giuseppe Di Natale ] + * Commit message format in contributing guidelines + + [ Trevor Joynson (trevorj) ] + * Import 0.6.5.7-0ubuntu3 + * gbp changes + * Bump ver + * -j9 baby + * Up + * Yup + * Add new module + * Up + * Up + * Bump + * Grr + * Yay + * Yay + * Yay + * Yay + * Yay + * Yay + * yay + * yay + * yay + * Update ppa script + * Update gbp conf with br changes + * Update gbp conf with br changes + * Bump + * No pristine + * Bump + * Lol whoops + * Fix name + * Fix name + * rebase + + [ Trevor Joynson (Debian) ] + + [ George Melikov ] + * zfs_get_005_neg.ksh fix typos + + [ Giuseppe Di Natale ] + * Prevent commitcheck.sh from running twice + + [ N Clark ] + * Additional Information for Zedlets + + [ Tom Matthews ] + * list -o props should be alloc,free not used,avail + + [ Steven Hartland ] + * OpenZFS 7885 - zpool list can report 16.0e for expandsz + + [ Giuseppe Di Natale ] + * Fix coverity defects: CID 161264 + + [ Don Brady ] + * Fix regression in zfs_ereport_start() + + [ Håkan Johansson ] + * Accept raidz and mirror with similar redundancy + + [ Sydney Vanda ] + * Added auto-replace FMA test for the ZFS Test Suite + + [ John Wren Kennedy ] + * OpenZFS 7290 - ZFS test suite needs to control what utilities it can run + + [ Giuseppe Di Natale ] + * Fix coverity defects: CID 161288 + + [ Brian Behlendorf ] + * Skip xfstests on Amazon Linux + + [ Giuseppe Di Natale ] + * Correct shellcheck make recipe + + [ Brian Behlendorf ] + * OpenZFS 7629 - Fix for 7290 neglected to remove some escape sequences + + [ Toomas Soome ] + * OpenZFS 7404 - rootpool_007_neg, bootfs_006_pos and bootfs_008_neg tests fail with the loader project bits + + [ George Melikov ] + * zfstests cli_user/misc/setup.ksh space missed + * zfs_receive_010_pos.ksh local => typeset change + + [ Andriy Gapon ] + * OpenZFS 8027 - tighten up dsl_pool_dirty_delta + + [ Pedro Giffuni ] + * OpenZFS 8046 - Let calloc() do the multiplication in libzfs_fru_refresh + + [ Andriy Gapon ] + * OpenZFS 5380 - receive of a send -p stream doesn't need to try renaming snapshots + + [ George Wilson ] + * OpenZFS 8023 - Panic destroying a metaslab deferred range tree + + [ George Melikov ] + * zfstest reservation_009_pos.sh missed backslash + * zfstest - replace dircmp with diff + + [ Giuseppe Di Natale ] + * OpenZFS 2932 - support crash dumps to raidz, etc. pools + + [ Matthew Ahrens ] + * OpenZFS 8005 - poor performance of 1MB writes on certain RAID-Z configurations + + [ LOLi ] + * Fix size inflation in spa_get_worst_case_asize() + + [ Yuri Pankov ] + * OpenZFS 6865 - want zfs-tests cases for zpool labelclear command + + [ Giuseppe Di Natale ] + * Skip rate limiting events in zfs_ereport_post + + [ Brian Behlendorf ] + * OpenZFS 7535 - need test for resumed send of top most filesystem + + [ Richard Yao ] + * Add missing includes to zed_log.c + * Fix `zpool iostat -T d 1` on musl + * Fix header inclusions for standards conformance + + [ Brian Behlendorf ] + * OpenZFS 7503 - zfs-test should tail ::zfs_dbgmsg on test failure + + [ Giuseppe Di Natale ] + * Invalidate cache during a zpool labelclear + + [ Brian Behlendorf ] + * OpenZFS 5120 - zfs should allow large block/gzip/raidz boot pool (loader project) + * OpenZFS 6410 - teach zdb to perform object lookups by path + + [ Debabrata Banerjee ] + * SEEK_HOLE should not block on txg_wait_synced() + + [ Andriy Gapon ] + * OpenZFS 8026 - retire zfs_throttle_delay and zfs_throttle_resolution + * OpenZFS 6101 - attempt to lzc_create() a filesystem under a volume results in a panic + + [ Alan Somers ] + * OpenZFS 7900 - zdb shouldn't print the path of a znode at verbosity < 5 + + [ Matthew Ahrens ] + * OpenZFS 8061 - sa_find_idx_tab can be declared more type-safely + + [ DHE ] + * Increase zfs_vdev_async_write_min_active to 2 + + [ George Melikov ] + * zfstest: add dmesg command to $PATH + + [ Giuseppe Di Natale ] + * Clean up correctly in zpool_scrub_004_pos + + [ Richard Yao ] + * OpenZFS 6392 - zdb: introduce -V for verbatim import + + [ Tim Crawford ] + * Fix leak in send_iterate_fs + + [ Tim Chase ] + * Refresh dkio.h and add dkioc_free_util.h + + [ Saso Kiselkov ] + * 6363 Add UNMAP/TRIM functionality to ZFS + + [ Tim Chase ] + * Want manual trim feature to skip never-allocated space + + [ Saso Kiselkov ] + * Trimming an offlined vdev asserts in zio_create. + + [ Tim Chase ] + * Want extended zpool iostat trim support + + [ Saso Kiselkov ] + * Matt Ahrens' review comments, round 2. Brian Behlendorf's review comments. + + [ Brian Behlendorf ] + * Async TRIM, Extended Stats + + [ George Melikov ] + * zfs_receive_010_pos: change dd arguments + + [ LOLi ] + * Allow bookmark short name in 'zfs bookmark' + + [ Ned Bass ] + * vdev_id: fix failure due to multipath -l bug + + [ LOLi ] + * Documentation fixes for zfs(8) and 'zfs' binary + + [ Tony Hutter ] + * Prebaked scripts for zpool status/iostat -c + + [ Olaf Faaland ] + * Correct lock ASSERTs in vdev_label_read/write + + [ Tony Hutter ] + * Fix shellcheck warning in pre-baked script + + [ dbavatar ] + * Fix lseek result when dnode is dirty + + [ Don Brady ] + * Fixed zdb -e regression for active cacheless pools + + [ DeHackEd ] + * Fix 'zpool iostat -v' cache and log output + * Typo in zfs-module-parameters(5) + + [ Matthew Ahrens ] + * OpenZFS 8025 - dbuf_read() creates unnecessary zio_root() for bonus buf + + [ bunder2015 ] + * Fix typo in zfs-module-parameters man page + + [ wli5 ] + * Change U16 to U32 due to atomic_inc_32_nv + + [ Dan Kimmel ] + * OpenZFS 7252 - compressed zfs send / receive + + [ Tim Chase ] + * Update documentation for zfs_vdev_queue_depth_pct + + [ Chunwei Chen ] + * Reinstate zvol_taskq to fix aio on zvol + + [ Brian Behlendorf ] + * Review feedback + * Fix abd_alloc_sametype() panic + + [ Trevor Joynson (trevorj) ] + * Import 0.6.5.7-0ubuntu3 + * gbp changes + * Bump ver + * -j9 baby + * Up + * Yup + * Add new module + * Up + * Up + * Bump + * Grr + * Yay + * Yay + * Yay + * Yay + * Yay + * Yay + * yay + * yay + * yay + * Update ppa script + * Update gbp conf with br changes + * Update gbp conf with br changes + * Bump + * No pristine + * Bump + * Lol whoops + * Fix name + * Fix name + * rebase + * Bump + + [ Trevor Joynson (Debian) ] + + [ Brian Behlendorf ] + * Limit zfs_dirty_data_max_max to 4G + + [ Yuri Pankov ] + * OpenZFS 7786 - zfs`vdev_online() needs better notification about state changes + + [ Brian Behlendorf ] + * Linux 4.12 compat: super_setup_bdi_name() + + [ jxiong ] + * Guarantee PAGESIZE alignment for large zio buffers + * minor improvement to abd_free_pages() + + [ Debabrata Banerjee ] + * Don't report ghost buffers as evictable mem + * Make arc_need_free updates atomic + * Stop double reclaiming or not reclaiming at all + * Do not stop kernel shrinker on lock contention + * Only wakeup waiters if we've actually done work + * Don't run the reaper if we didn't shrink the cache + * Correct signed operation + * Allow scaling of arc in proportion to pagecache + + [ LOLi ] + * Add zfs_nicebytes() to print human-readable sizes + + [ Olaf Faaland ] + * Write label 2,3 uberblocks when vdev expands + + [ LOLi ] + * More ashift improvements + + [ Brian Behlendorf ] + * Enable all zfs_destroy test cases + * Update rsend_014_pos and send-c_volume test cases + + [ RageLtMan ] + * Disable write merging on ZVOLs + + [ Richard Yao ] + * Enable Linux read-ahead for a single page on ZVOLs + + [ Brian Behlendorf ] + * Default to zvol_request_async=0 + + [ Gvozden Neskovic ] + * Add missing *_destroy/*_fini calls + + [ Brian Behlendorf ] + * Fix unused variable warning + * Tag 0.7.0-rc4 + + [ Chunwei Chen ] + * Linux 4.12 compat: PF_FSTRANS was removed + + [ Giuseppe Di Natale ] + * Fix coverity defects: CID 161638 + + [ LOLi ] + * Fix zfs .deb package warning in prerm script + * Fix NULL pointer dereference in 'zfs create' + + [ Christian Schwarz ] + * Make createtxg and guid properties public + + [ LOLi ] + * Add property overriding (-o|-x) to 'zfs receive' + + [ Brian Behlendorf ] + * Linux 4.12 compat: CURRENT_TIME removed + + [ Tom Caputi ] + * Add missing arc_free_cksum() to arc_release() + + [ Matthew Ahrens ] + * OpenZFS 8166 - zpool scrub thinks it repaired offline device + * OpenZFS 8063 - verify that we do not attempt to access inactive txg + + [ Brian Behlendorf ] + * Enable additional test cases + + [ Isaac Huang ] + * Skip spurious resilver IO on raidz vdev + + [ Tim Chase ] + * Refresh dkio.h and add dkioc_free_util.h + + [ Saso Kiselkov ] + * 6363 Add UNMAP/TRIM functionality to ZFS + + [ Tim Chase ] + * Want manual trim feature to skip never-allocated space + + [ Saso Kiselkov ] + * Trimming an offlined vdev asserts in zio_create. + + [ Tim Chase ] + * Want extended zpool iostat trim support + + [ Saso Kiselkov ] + * Matt Ahrens' review comments, round 2. Brian Behlendorf's review comments. + + [ Brian Behlendorf ] + * Async TRIM, Extended Stats + * Review feedback + * Fix abd_alloc_sametype() panic + + [ Boris Protopopov ] + * Revert commit 1ee159f4 + * Introduce zv_state_lock + + [ Justin Lecher ] + * Compatibilty with glibc-2.23 + + [ Trevor Joynson (trevorj) ] + * Import 0.6.5.7-0ubuntu3 + * gbp changes + * Bump ver + * -j9 baby + * Up + * Yup + * Add new module + * Up + * Up + * Bump + * Grr + * Yay + * Yay + * Yay + * Yay + * Yay + * Yay + * yay + * yay + * yay + * Update ppa script + * Update gbp conf with br changes + * Update gbp conf with br changes + * Bump + * No pristine + * Bump + * Lol whoops + * Fix name + * Fix name + * rebase + * Bump + * Bump + + [ Trevor Joynson (Debian) ] + + [ Trevor Joynson (trevorj) ] + * Bump + + [ Trevor Joynson (Debian) ] + + [ Brian Behlendorf ] + * Fix large dnode send stream flag conflict + + [ Tom Caputi ] + * Fixed small memory leak in ereport handling + + [ Tony Hutter ] + * Force fault a vdev with 'zpool offline -f' + + [ Alek P ] + * Implemented zpool sync command + + [ Feng Sun ] + * Fix LZ4_uncompress_unknownOutputSize caused panic + + [ Brian Behlendorf ] + * Enable remaining tests + * Enable xattr tests + * Add zpool events tests + * Retire zconfig.sh + + [ LOLi ] + * Linux 4.12 compat: fix super_setup_bdi_name() call + + [ Chunwei Chen ] + * Improve gitignore + * config: allow --with-linux without --with-linux-obj + + [ Yuri Pankov ] + * OpenZFS 8072 - zfs-tests: several test cases incorrectly spell TESTPOOL + + [ LOLi ] + * Fix "snapdev" property inheritance behaviour + + [ Alan Somers ] + * OpenZFS 8070 - Add some ZFS comments + + [ Yuri Pankov ] + * OpenZFS 8071 - zfs-tests: 7290 missed some cases + * OpenZFS 8076 - zfs-tests suite fails rootpool_002_neg + * OpenZFS 8077 - zfs-tests suite fails zpool_get_002_pos + + [ Brian Behlendorf ] + * Revert "Fix "snapdev" property inheritance behaviour" + + [ Alek P ] + * Don't dirty bpobj if it has no entries + + [ Boris Protopopov ] + * Fix ida leak in zvol_create_minor_impl + + [ kpande ] + * Explain reason for Signed-off-by in CONTRIBUTING + + [ LOLi ] + * Fix memory leak in zvol_set_volsize() + + [ Giuseppe Di Natale ] + * Retire filebench testing + + [ Chunwei Chen ] + * Fix import finding spare/l2cache when path changes + * Fix import wrong spare/l2 device when path change + + [ Tim Chase ] + * Refresh dkio.h and add dkioc_free_util.h + + [ Saso Kiselkov ] + * 6363 Add UNMAP/TRIM functionality to ZFS + * Trimming an offlined vdev asserts in zio_create. + + [ Tim Chase ] + * Want extended zpool iostat trim support + + [ Saso Kiselkov ] + * Matt Ahrens' review comments, round 2. Brian Behlendorf's review comments. + + [ Brian Behlendorf ] + * Async TRIM, Extended Stats + * Review feedback + * Fix abd_alloc_sametype() panic + + [ Saso Kiselkov ] + * Matt Ahrens' review comments. + * Matt Ahrens' review comments, round 3. + + [ Brian Behlendorf ] + * Tim Chase's review comments, round 2. + + [ Saso Kiselkov ] + * Matt Ahren's review comments round 4: + * Deadlockiness associated with doing postponing trimming on a metaslab wanting to condense. + * Matt Ahrens' review comments, round 5. + * Deadlockiness in autotrim due to recent changes. + + [ Tim Chase ] + * Want manual trim feature to skip never-allocated space + + [ Brian Behlendorf ] + * Update and add additional TRIM test cases + * Review feedback + + [ Isaac Huang ] + * Remove vdev_raidz_map_alloc() + + [ Brian Behlendorf ] + * Review feedback 2 + + [ LOLi ] + * Fix "snapdev" property issues + + [ Trevor Joynson (trevorj) ] + * Import 0.6.5.7-0ubuntu3 + * gbp changes + * Bump ver + * -j9 baby + * Up + * Yup + * Add new module + * Up + * Up + * Bump + * Grr + * Yay + * Yay + * Yay + * Yay + * Yay + * Yay + * yay + * yay + * yay + * Update ppa script + * Update gbp conf with br changes + * Update gbp conf with br changes + * Bump + * No pristine + * Bump + * Lol whoops + * Fix name + * Fix name + * rebase + * Bump + * Bump + * Bump + * Bump + * ntrim + + [ Trevor Joynson (Debian) ] + + [ Trevor Joynson (trevorj) ] + * Bump + * 9 + + [ Trevor Joynson (Debian) ] + + [ Trevor Joynson (trevorj) ] + * Bump + * Bump + * Bump + * Revert "9" + + [ Trevor Joynson (Debian) ] + + [ Trevor Joynson (trevorj) ] + * Bump + * Account for zconfig.sh being removed + + [ Trevor Joynson (Debian) ] + + [ Trevor Joynson (trevorj) ] + * Bump + * Add artful + * Add in zed.d and zpool.d scripts + + [ Trevor Joynson (Debian) ] + + [ Trevor Joynson (trevorj) ] + * Bump + + [ Trevor Joynson (Debian) ] + + [ Trevor Joynson (trevorj) ] + * Bump + * Bump + + [ Trevor Joynson (Debian) ] + + [ Trevor Joynson (trevorj) ] + * Bump + * ugh + + [ Trevor Joynson (Debian) ] + + [ Trevor Joynson (trevorj) ] + * fix zed upgrade + + [ Trevor Joynson (Debian) ] + + [ Trevor Joynson (trevorj) ] + * Bump + * conf file zed.d + + [ Trevor Joynson (Debian) ] + + -- Trevor Joynson (Debian) <debian@trevor.joynson.io> Thu, 13 Jul 2017 15:59:19 -0700 + +zfs-linux (0.6.99-0ubuntu1) yakkety; urgency=medium + + * 0.7.0-rc1 + + -- Trevor Joynson <debian@trevor.joynson.io> Tue, 13 Sep 2016 20:21:20 -0700 + +zfs-linux (0.6.5.7-0ubuntu99) yakkety; urgency=medium + + * Git import + + -- Trevor Joynson <debian@trevor.joynson.io> Thu, 07 Jul 2016 02:13:20 -0400 + +zfs-linux (0.6.5.7-0ubuntu3) yakkety; urgency=medium + + * Drop the Recommends: on zfs-dkms; technically correct but it confuses + germinate into promoting the real zfs-dkms package when we already have + a Provides: of this name from the main kernel package that will already + be installed. + + -- Steve Langasek <steve.langasek@ubuntu.com> Wed, 06 Jul 2016 11:10:35 -0700 + +zfs-linux (0.6.5.7-0ubuntu2) yakkety; urgency=medium + + * Minor changes to satisfy MIR request (LP: #1579082) + [ Richard Laager ] + - zfs-zed: Version "Replaces: zfsutils-linux" and add versioned + "Breaks: zfsutils-linux" + - explicitly specify the man pages so we don't include zed.8 + [ Colin Ian King ] + - remove root ALL=(ALL) ALL and R_ROOT from + debian/tree/zfsutils-linux/etc/sudoers.d/zfs. The R_ROOT serves + no useful purpose, complicates people actually using the sudoers + file, and pollutes the global namespace + - add init.d linitan overrides for zfsutils-linux and zfs-zed + as initscripts will never be used and we will rebase with the + Debian package initscripts once the package gets accepted by Debian + [ Richard Laager ] + * zfs-initramfs: When rootdelay is set, retry the `zpool export` command + until it stops returning "is busy" (or the rootdelay expires). + (LP: #1577057) + + -- Colin Ian King <colin.king@canonical.com> Thu, 26 May 2016 15:28:13 +0100 + +zfs-linux (0.6.5.7-0ubuntu1) yakkety; urgency=medium + + [ Colin Ian King ] + * Sync with upstream 0.6.5.7 release + * Update Debian/control Standards-Version to 3.9.8 + + -- Colin Ian King <colin.king@canonical.com> Tue, 17 May 2016 09:40:01 +0100 + +zfs-linux (0.6.5.6-0ubuntu8) xenial; urgency=medium + + [ Richard Laager ] + * zfs-initramfs: Set elevator=noop on disks used by the root pool. + (LP: #1550301) + + -- Colin Ian King <colin.king@canonical.com> Wed, 13 Apr 2016 11:44:39 +0100 + +zfs-linux (0.6.5.6-0ubuntu7) xenial; urgency=medium + + * Libraries should not be in /lib, but in /usr/lib (LP: #1569359) + + -- Colin Ian King <colin.king@canonical.com> Tue, 12 Apr 2016 12:54:17 +0100 + +zfs-linux (0.6.5.6-0ubuntu6) xenial; urgency=medium + + * Remove adm, admin, staff groups from /etc/sudoers.d/zfs + (LP: #1532198) + + -- Colin Ian King <colin.king@canonical.com> Fri, 8 Apr 2016 15:16:39 +0100 + +zfs-linux (0.6.5.6-0ubuntu5) xenial; urgency=medium + + * Only enable testing on 64 bit arches as these are the ones that ZFS + officially supports. + + -- Colin Ian King <colin.king@canonical.com> Tue, 5 Apr 2016 09:37:37 +0100 + +zfs-linux (0.6.5.6-0ubuntu4) xenial; urgency=medium + + * Drop mail-transport-agent to Suggests, and add default-mta preference. + + -- Colin Ian King <colin.king@canonical.com> Fri, 1 Apr 2016 19:18:11 +0100 + +zfs-linux (0.6.5.6-0ubuntu3) xenial; urgency=medium + + * Add support 32 bit FS_IOC32_{GET|SET}FLAGS compat ioctls + + -- Colin Ian King <colin.king@canonical.com> Wed, 30 Mar 2016 23:08:24 +0000 + +zfs-linux (0.6.5.6-0ubuntu2) xenial; urgency=medium + + * Fix aarch64 compilation, missing hrtime_t and timestruc_t types + + -- Colin Ian King <colin.king@canonical.com> Sat, 26 Mar 2016 10:30:41 +0000 + +zfs-linux (0.6.5.6-0ubuntu1) xenial; urgency=medium + + [ Colin Ian King ] + * Sync with upstream 0.6.5.6 release + Remove scripts/zfault.sh from debian/zfs-doc.examples (no longer exists) + Add libblkid-dev, libattr1-dev build dependencies + + [ Richard Laager ] + * Scrub all healthy pools monthly (LP: #1548009) + + -- Colin Ian King <colin.king@canonical.com> Wed, 23 Mar 2016 23:59:33 +0000 + +zfs-linux (0.6.5.5-0ubuntu1) xenial; urgency=medium + + [ Colin Ian King ] + * Sync with upstream 0.6.5.5 release + + [ Chad Miller ] + * Update /lib/udev/rules.d/60-zfs.rules to create symlinks for GRUB + (LP: #1530953) for cases when the parition type ID is not a "Solaris ZFS" + /"Apple ZFS" type. Peek at the asserted partition contents, not just the + container state. + + -- Colin Ian King <colin.king@canonical.com> Mon, 21 Mar 2016 10:27:11 +0000 + +zfs-linux (0.6.5.4-0ubuntu6) xenial; urgency=medium + + * cherry-pick 8e85373c1ded7866ae168dde3bd640769c093172 from + https://github.com/zfsonlinux/zfs/pull/4425. + * Set architecture to any. + + -- Dimitri John Ledkov <xnox@ubuntu.com> Wed, 16 Mar 2016 23:09:55 +0000 + +zfs-linux (0.6.5.4-0ubuntu5) xenial; urgency=medium + + * cherry-picked c352ec27d5c5ecea8f6af066258dfd106085eaac ('Illumos 6370 - + ZFS send fails to transmit some holes') + (LP: #1557151) + + -- Tim Gardner <tim.gardner@canonical.com> Mon, 14 Mar 2016 16:42:44 -0600 + +zfs-linux (0.6.5.4-0ubuntu4) xenial; urgency=medium + + [ Richard Laager ] + * Make zed work out-of-the box (LP: #1542276) + - zfs-zed: Install zed-functions.sh so scriptlets work + - zfs-zed: Enable most scriptlets on a fresh install. + - zfs-zed: Email root by default. + + -- Colin Ian King <colin.king@canonical.com> Wed, 24 Feb 2016 04:49:35 +0000 + +zfs-linux (0.6.5.4-0ubuntu3) xenial; urgency=medium + + * zfsutils-linux should Recommend zfs-zed (LP: #1547549) + + -- Colin Ian King <colin.king@canonical.com> Fri, 19 Feb 2016 15:23:11 +0000 + +zfs-linux (0.6.5.4-0ubuntu2) xenial; urgency=medium + + [ Colin Ian King ] + * Start ZFS post install with dh_systemd_start (LP: #1542276) + * Fix perms on initramfs-tools/hooks if they exist + * install bash completions to usr/share/bash-completion/completions + * debian/control: add in Homepage field + + [ Richard Laager ] + * Add /lib/udev/rules.d/60-zfs.rules to create symlinks for GRUB (LP: #1530953) + * debian/control: Remove incorrect Vcs-Git and Vcs-Browser + * zfs-initramfs: Re-architect initramfs script + - Require root=ZFS= syntax. rpool= and bootfs= are no longer supported. + - Honor Debian standard rootdelay= kernel command-line option instead of + ZFS_INITRD_PRE_MOUNTROOT_SLEEP. + - Use standard panic function, which honors the Debian standard panic= + kernel command-line option. + - Stop force importing the pool. + - Add debian/zfs-initramfs.postinst to apply udev rules without a reboot + - Update 60-zpool.rules to match on partition type to trigger on the + initial pool creation. + + -- Colin Ian King <colin.king@canonical.com> Tue, 9 Feb 2016 09:14:44 +0000 + +zfs-linux (0.6.5.4-0ubuntu1) xenial; urgency=medium + + * Sync with upstream 0.6.5.4 release + + -- Colin Ian King <colin.king@canonical.com> Fri, 29 Jan 2016 11:48:00 +0000 + +zfs-linux (0.6.5.3-0ubuntu6) xenial; urgency=medium + + * zfs-initramfs: Support GRUB's native root=ZFS= (LP: #1530953) + - from https://github.com/zfsonlinux/pkg-zfs/pull/140 (Richard Laager) + * debian/control: Add missing "Provides: zfs" (LP: #1535428) + + -- Colin Ian King <colin.king@canonical.com> Thu, 21 Jan 2016 11:09:01 +0000 + +zfs-linux (0.6.5.3-0ubuntu5) xenial; urgency=medium + + * Add adt smoke tests checking basic core ZFS functionality + + -- Colin Ian King <colin.king@canonical.com> Mon, 11 Jan 2016 16:25:00 +0000 + +zfs-linux (0.6.5.3-0ubuntu4) xenial; urgency=medium + + * Add dependency on dh-systemd for zfs-linux (LP: #1521952) + - Add installinit rules for zed, zfs, mounting and import cache/scan + - Copy zfs.target to /lib/systemd/system + - Add bash completion rules + - Add zed systemd service control + - Add zfs shared systemd service control + - Add zfs mount systemd service control + - Add zfs import scan systemd service control + - Add zfs import cache systemd service control + + -- Colin Ian King <colin.king@canonical.com> Wed, 2 Dec 2015 16:50:00 +0000 + +zfs-linux (0.6.5.3-0ubuntu3) xenial; urgency=medium + + * Build for powerpc64-smp + + -- Tim Gardner <tim.gardner@canonical.com> Fri, 06 Nov 2015 14:20:13 -0700 + +zfs-linux (0.6.5.3-0ubuntu2) xenial; urgency=medium + + * Dropped autogen output from orig tarball. + * update debian/gbp.conf from wily to xenial + + -- Tim Gardner <tim.gardner@canonical.com> Tue, 27 Oct 2015 18:16:11 +0000 + +zfs-linux (0.6.5.3-0ubuntu1) xenial; urgency=medium + + * Updated to zfs-0.6.5.3 from https://github.com/zfsonlinux/zfs.git + * Dropped: + Linux 4.2 compat: bdi_setup_and_register() + Linux 4.2 compat: remove bio->bi_cnt access + Linux 4.2 compat: follow_link() / put_link() + + -- Tim Gardner <tim.gardner@canonical.com> Tue, 27 Oct 2015 10:50:44 -0600 + +zfs-linux (0.6.4.2-0ubuntu2~apw8) wily; urgency=medium + + * ppc64el: drop endian override in powerpc architecture definition + allowing both big and little endian builds. + * zfs-initramfs -- this is only build on the indep architecture so only + attempt to chmod the hook files if they are present. + * arm64: reorder sys/types.h sys/param.h includes to avoid include ordering + issues on arm64. + + -- Andy Whitcroft <apw@ubuntu.com> Fri, 16 Oct 2015 13:57:18 +0100 + +zfs-linux (0.6.4.2-0ubuntu1) wily; urgency=medium + + [ Colin Ian King ] + * Linux 4.2 compat: bdi_setup_and_register() + * Linux 4.2 compat: remove bio->bi_cnt access + * Linux 4.2 compat: follow_link() / put_link() + * update debian/gbp.conf from vivid to wily + * update Standards-Version to 3.9.6 + * fix dep5-copyright-license-name-not-unique warning + * prepared for Ubuntu Wily upload + + [ Iain Lane ] + * Drop the upstart integration; this was causing various lintian errors and + required some fixing up - we use systemd in wily anyway. + * Copy the debian/copyright file as it is slightly more correct. + * Install the bash-completion files in the (new) correct directory. + * Don't handle upgrades from non-archive packages. + * Add Depends from the -dev package to all libraries which we ship .so files + for. + * Don't ship .la files. + * Make some packages Architecture: all where they don't ship architecture + dependent files. + + -- Colin Ian King <colin.king@canonical.com> Wed, 14 Oct 2015 15:46:29 +0100 + +zfs-linux (0.6.4.2-0~vivid) vivid; urgency=low + + [ Brian Behlendorf ] + * Wait in libzfs_init() for the /dev/zfs device + * Use ExecStartPre to load zfs modules + * Wait interruptibly in prefetch thread + + [ Tim Chase ] + * Linux 3.12 compat: NUMA-aware per-superblock shrinker + + [ Matus Kral ] + * Linux 4.1 compat: use read_iter() / write_iter() + + [ Brian Behlendorf ] + * Add zfs_sb_prune_aliases() function + + [ Chris Dunlop ] + * Wait for all znodes to be released before tearing down the superblock + + [ tuxoko ] + * Add cond_resched to zfs_zget to prevent infinite loop + + [ Ned Bass ] + * Serialize access to spa->spa_feat_stats nvlist + * Tag zfs-0.6.4.2 + + [ Darik Horn ] + * Refresh debian/patches after upstream merge. + + -- Darik Horn <dajhorn@vanadac.com> Thu, 09 Jul 2015 22:42:29 -0400 + +zfs-linux (0.6.4.1-1~vivid) vivid; urgency=low + + [ Tim Chase ] + * Allocate zfs_znode_cache on the Linux slab + + [ Brian Behlendorf ] + * Mark additional functions as PF_FSTRANS + + [ Chris Dunlap ] + * Fix io-spare.sh to work with disk vdevs + + [ Brian Behlendorf ] + * Extend PF_FSTRANS critical regions + * Tag zfs-0.6.4.1 + + -- Darik Horn <dajhorn@vanadac.com> Fri, 24 Apr 2015 16:42:15 -0500 + +zfs-linux (0.6.4-3~vivid) vivid; urgency=low + + [ SenH ] + * Fix man zpool property feature_guid + + [ Turbo Fredriksson ] + * Add information about the -o option to zpool replace + + [ Brian Behlendorf ] + * Improve differing sector size error + + [ Tim Chase ] + * Comment the lack of real_LZ4_uncompress() + + [ Dan McDonald ] + * Illumos #4936 fix potential overflow in lz4 + + [ Tim Chase ] + * Return default value on numeric properties failing the "head check. + * Document the optional "device" argument for "zpool split" + + [ Garrison Jensen ] + * Fix comment spelling errors. + + [ Andrew Barnes ] + * Preserve asize when last mirror child promoted to top-level vdev + + [ Matthew Ahrens ] + * Illumos #3641 compressed block histograms with zdb + + [ Tim Chase ] + * Convert zfs_mg_noalloc_threshold to a module parameter and document + + [ George Wilson ] + * Illumos 4168, 4169, 4170: ztest, zdb and zhack fixes + + [ Richard Yao ] + * zdb: Introduce -V for verbatim import + + [ Brian Behlendorf ] + * Fix zil_commit() NULL dereference + + [ Prakash Surya ] + * Move metaslab_group_alloc_update() call + + [ George Wilson ] + * Illumos #4101, #4102, #4103, #4105, #4106 + * Illumos #4730 destroy metaslab group taskq + * Illumos #4756 Fix metaslab_group_preload deadlock + + [ Brian Behlendorf ] + * zfs_trunc() should use dmu_tx_assign(tx, TXG_WAIT) + + [ Jan Engelhardt ] + * Do not attempt access beyond the declared end of the dn_blkptr array + + [ Brian Behlendorf ] + * Revert "Disable GCCs aggressive loop optimization" + * zpool-create.sh: allow features to be disabled + + [ Turbo Fredriksson ] + * Initial attempt to document events and payloads. + * Support '-H' (scripted mode) to 'zpool get' (Closes: #2522) + + [ Brian Behlendorf ] + * Remove patches directory + + [ Matthew Ahrens ] + * Illumos 4171, 4172 + + [ Max Grossman ] + * Illumos 4370, 4371 + + [ Matthew Ahrens ] + * Illumos 4368, 4369. + * Illumos #4374 + + [ George Wilson ] + * Illumos 4754, 4755 + + [ Tim Chase ] + * zed needs libzfs_core + + [ Matthew Ahrens ] + * Illumos 3835 zfs need not store 2 copies of all metadata + * Illumos 4757, 4913 + * Illumos 4390 - I/O errors can corrupt space map when deleting fs/vol + + [ Saso Kiselkov ] + * Illumos 4897 - Space accounting mismatch in L2ARC/zpool + + [ Matthew Ahrens ] + * Illumos 4881 - zfs send performance regression with embedded data + * Illumos 4914 - zfs on-disk bookmark structure should be named *_phys_t + + [ Turbo Fredriksson ] + * Add bash completions by Aneurin Price. + + [ Brian Behlendorf ] + * Use KM_PUSHPAGE in dsl_dataset_rollback_check() + * Avoid dynamic allocation of 'search zio' + * Avoid 128K kmem allocations in mzap_upgrade() + * Add zfs_iput_async() interface + * Revert "Revert "Revert "Fix unlink/xattr deadlock""" + + [ Alec Salazar ] + * Replace __va_list with va_list + * Avoid PAGESIZE redefinition + + [ Evan Susarret ] + * Correct autodetection of bootfs property + + [ Richard Yao ] + * Include sys/taskq.h in linux/vfs_compat.h + + [ Turbo Fredriksson ] + * Create an 'overlay' property (Closes: #2503) + + [ George Wilson ] + * Illumos 4976-4984 - metaslab improvements + + [ Tim Chase ] + * Don't upgrade a metaslab when the pool is not writable + + [ Richard Yao ] + * Drive database update + + [ Matthew Ahrens ] + * Illumos 4631 - zvol_get_stats triggering too many reads + + [ Isaac Huang ] + * Fixed memory leaks in zevent handling + + [ Andrew Hamilton ] + * 2493 change efi_rescan() to wait longer + + [ Matthew Ahrens ] + * Illumos 5034 - ARC's buf_hash_table is too small + * Illumos 4970-4974 - extreme rewind enhancements + + [ Brian Behlendorf ] + * Retire HAVE_IOCTL_* configure checks + + [ Turbo Fredriksson ] + * Add a pkgconfig file (Closes: #585) + + [ Brian Behlendorf ] + * Add a missing > to AUTHORS + + [ Chris Dunlap ] + * Fix race condition with zed pidfile creation + * Cleanup zed logging + + [ Ralf Ertzinger ] + * Change startup mode of ZED + + [ louwrentius ] + * Change delimiter for ZED email scripts + + [ Dan Swartzendruber ] + * Improve handling of filesystem versions (Closes: #2616) + + [ Alexey Smirnoff ] + * Change the default 'zfs_dedup_prefetch' value to '0' + + [ alteriks ] + * Import zfs pools after cryptsetup + + [ Stanislav Seletskiy ] + * Fix invalid locking order in rename operation + + [ Alex Reece ] + * Illumos 5049 - panic when removing log device + + [ ilovezfs ] + * Fragmentation should display as '-' if spacemap_histogram=disabled + + [ Richard Yao ] + * Linux AIO Support + + [ Brian Behlendorf ] + * Add object type checking to zap_lockdir() + + [ George Wilson ] + * Illumos 5117 - spacemap reallocation can cause corruption + + [ Tim Chase ] + * Implement fallocate FALLOC_FL_PUNCH_HOLE + * Document the "readonly" pool property + + [ Brian Behlendorf ] + * Fix z_teardown_inactive_lock deadlock + + [ Turbo Fredriksson ] + * Document environment variables for zdb, zfs, zinject and zpool. + + [ Matthew Ahrens ] + * Illumos 5140 - message about "%recv could not be opened" is printed when booting after crash + + [ Chris Dunlap ] + * Remove reverse indentation from zed comments. + + [ Ned Bass ] + * Remove obsolete comment about guard pages + + [ Adam Leventhal ] + * Illumos 5174 - add sdt probe for blocked read in dbuf_read() + + [ Matthew Ahrens ] + * Illumos 5177 - remove dead code from dsl_scan.c + * Illumos 5161 - add tunable for number of metaslabs per vdev + + [ George Wilson ] + * Illumos 5147 - zpool list -v should show individual disk capacity + + [ Richard Yao ] + * Properly NULL terminate string in zfs_strcmp_pathname + * Fix function call with uninitialized value in vdev_inuse + * lib/libzpool/kernel.c: Assert no owners in rw_destroy() + + [ Matthew Ahrens ] + * Illumos 5139 - SEEK_HOLE failed to report a hole at end of file + * Illumos 5135 - zpool_find_import_cached() can use fnvlist_* + * Illumos 5116 - zpool history -i goes into infinite loop + + [ Alex Reece ] + * Illumos 4753 - increase number of outstanding async writes when sync task is waiting + + [ Max Grossman ] + * Illumos 5138 - add tunable for maximum number of blocks freed in one txg + + [ Chris Dunlap ] + * Fix zed io-spare.sh dash incompatibility + * Replace zed's use of malloc with calloc + * Refer to ZED's scripts as ZEDLETs + + [ Tim Chase ] + * Perform whole-page page truncation for hole-punching under a range lock + + [ Brian Behlendorf ] + * Make user stack limit configurable + + [ Richard Yao ] + * Add add_prop_list_default helper + * zpool import -t should not update cachefile + * Implement -t option to zpool create for temporary pool names + + [ smh ] + * FreeBSD PR kern/172259: Fixes zfs receive errors + + [ Andriy Gapon ] + * zfs send -p send properties only for snapshots that are actually sent + + [ Chris Dunlap ] + * Obtain advisory lock on ZED PID file + * Cleanup struct zed_conf vars in zed_conf_destroy + + [ Lukas Wunner ] + * Amend Dracut module to export ZFS root on shutdown + + [ Matthew Ahrens ] + * Illumos 5176 - lock contention on godfather zio + + [ Turbo Fredriksson ] + * Add an example for 'zfs bookmark' to the Example section. + + [ Brian Behlendorf ] + * Fix CPU_SEQID use in preemptible context + * Improve VERIFY() error in dmu_write() + + [ Turbo Fredriksson ] + * Add a stern warning about dedup + + [ Tom Prince ] + * Install header during post-build rather than post-install. + * Point dkms build at installed source tree, rather than build directory. + + [ Brian Behlendorf ] + * Fix source_tree variable in dkms build + + [ Ned Bass ] + * ztest: print backtrace on SIGSEGV and SIGABRT + + [ Brian Behlendorf ] + * Make license compatibility checks consistent + * Update code to use misc_register()/misc_deregister() + * Remove shrink_dcache_memory() and shrink_icache_memory() + * Update utsname support + * Handle NULL mirror child vdev + + [ Darik Horn ] + * Let `zpool import` ignore a missing hostid record. + + [ Brian Behlendorf ] + * Suppress AIO kmem warnings + + [ Daniil Lunev ] + * Illumos 4924 - LZ4 Compression for metadata + + [ Tim Chase ] + * Don't perform ACL-to-mode translation on empty ACL + + [ Matthew Ahrens ] + * Illumos 3693 - restore_object uses at least two transactions to restore an object + * Illumos 5150 - zfs clone of a defer_destroy snapshot causes strangeness + * Illumos 5162 - zfs recv should use loaned arc buffer to avoid copy + + [ Ned Bass ] + * Remove checks for mandatory locks + + [ Brian Behlendorf ] + * Handle block pointers with a corrupt logical size + + [ ilovezfs ] + * Fix zpool create -t ENOENT bug. + + [ Matthew Ahrens ] + * Illumos 5178 - zdb -vvvvv on old-format pool fails in dump_deadlist() + * Illumos 5169-5171 - zdb fixes + + [ Brian Behlendorf ] + * Fix zdb segfault + + [ Alex Reece ] + * Illumos 4958 zdb trips assert on pools with ashift >= 0xe + + [ Matthew Ahrens ] + * Illumos 5164-5165 - space map fixes + + [ Tim Chase ] + * Linux 3.12 compat: shrinker semantics + + [ Richard Yao ] + * Kernel header installation should respect --prefix + * Search /usr/local/src for SPL Object Directory + * Make directory into which mount.zfs is installed configurable + * Make systemd-modules-load.service file directory configurable + + [ Alexander Pyhalov ] + * Fix modules installation directory + + [ Marcel Wysocki ] + * Add config/compile to config/.gitignore + + [ Dan Swartzendruber ] + * Improve zvol symlink handling. + + [ Alex Zhuravlev ] + * Export symbols for ZIL interface + + [ Chris Wedgwood ] + * Reduce buf/dbuf mutex contention + + [ Isaac Huang ] + * Fix inaccurate field descriptions + * Print header properly when terminal resizes + + [ Prakash Surya ] + * Illumos 5213 - panic in metaslab_init due to space_map_open returning ENXIO + + [ Randall Mason ] + * Fix small spelling mistake + + [ Ned Bass ] + * Move a few internal ARC strucutres to arc_impl.h + * Fix dprintf format specifiers + * cstyle: allow right paren on its own line + + [ Prakash Surya ] + * Swap DTRACE_PROBE* with Linux tracepoints + + [ Tim Chase ] + * Undirty freed spill blocks. + + [ smh ] + * Prevent ZFS leaking pool free space + + [ Ned Bass ] + * Fix improper null-byte termination handling + * Explicitly include SPL compat headers + + [ Isaac Huang ] + * bio_alloc() with __GFP_WAIT never returns NULL + + [ Dan Swartzendruber ] + * Fix systemd config for zfs-share.service + + [ Brian Behlendorf ] + * Fix snapshots with dirty inodes + + [ Dan Swartzendruber ] + * Improve systemd script to not leave stale sharetab + + [ Jacek Fefliński ] + * zpool upgrade return errors to stderr instead of stdout + + [ Andy Bakun ] + * Fix typo in %post scriptlet lines + + [ Boris Protopopov ] + * Correct error returns to unify cross-pool operation error handling + + [ Brian Behlendorf ] + * Fix cstyle issue from c66989b + + [ Ned Bass ] + * vdev_id: use mawk-compatible regular expression + + [ Brian Behlendorf ] + * Fix zfs_putpage() lock inversion + + [ Ned Bass ] + * Remove duplicate typedefs from trace.h + * Don't use AC_LANG_SOURCE for conftest.h source + * Document zfs_flags module parameter + + [ Brian Behlendorf ] + * Fix zfs_putpage() lock inversion (again) + * Mark IO pipeline with PF_FSTRANS + + [ Richard Yao ] + * Use is_vmalloc_addr() in vdev_disk.c + + [ Brian Behlendorf ] + * Retire KM_NODEBUG + * Change KM_PUSHPAGE -> KM_SLEEP + * Add kmem_cache.h include to default context + * Revert "Pre-allocate vdev I/O buffers" + * Revert "SA spill block cache" + + [ Tim Chase ] + * Linux 3.12 compat: split shrinker has s_shrink + + [ Richard Yao ] + * Use kmem_vasprintf() in log_internal() + + [ Tim Chase ] + * Fix removal of SA in sa_modify_attrs() + + [ cburroughs ] + * Add arc_summary.py from FreeNAS + * Modified arc_summary.py to run on linux + + [ Kyle Blatter ] + * Refactor arc_summary to simplify -p processing + * Add a help option with usage information + * Force all lines to be 80 columns + * Replace sysctl summary with tunables summary. + + [ Brian Behlendorf ] + * Make `zpool import -d|-c` behave consistently + + [ Richard Yao ] + * Use (void) memcpy(), not (void *) memcpy() + + [ Brian Behlendorf ] + * Add zvol_open() error handling for readonly property + * Handle closing an unopened ZVOL + + [ Chris Dunlap ] + * Protect against adding duplicate strings in ZED + * Cleanup _zed_event_add_nvpair() + + [ Brian Behlendorf ] + * Use zio buffers in zil_itx_create() + + [ avg ] + * fix l2arc compression buffers leak + + [ Tim Chase ] + * Spurious ENOMEM returns when reading dbufs kstat + + [ Chunwei Chen ] + * Read spl_hostid module parameter before gethostid() + * Fix build error when make deb + + [ Brian Behlendorf ] + * Skip evicting dbufs when walking the dbuf hash + + [ Ned Bass ] + * Fix SA header size accounting + + [ Justin T. Gibbs ] + * Illumos 5311 - traverse_dnode may report success when it should not + + [ Lukas Wunner ] + * Fix loop in Dracut shutdown script + * Fix Dracut scripts to allow for blanks in pool and dataset names + + [ Brian Behlendorf ] + * Don't read space maps during import for readonly pools + + [ Tim Chase ] + * Produce a full snapshot list for zfs send -p + + [ Brian Behlendorf ] + * Revert "Don't read space maps during import for readonly pools" + * Use vmem_alloc() for nvlists + + [ Jörg Thalheim ] + * Linux 3.19 compat: file_inode was added + + [ Brian Behlendorf ] + * Retire zio_bulk_flags + * Retire zio_cons()/zio_dest() + + [ Andrey Vesnovaty ] + * Fix readdir for .zfs/snapshot directory + + [ Brian Behlendorf ] + * Change VERIFY to ASSERT in mutex_destroy() + + [ Tim Chase ] + * Enhancements to zpool dry run mode. + + [ Sören Tempel ] + * Use test(1) in a proper way + * Write directly to $initdir + + [ Brian Behlendorf ] + * Skip bad DVAs during free by setting zfs_recover=1 + + [ Dan Swartzendruber ] + * Set zfs_autoimport_disable default value to 1 + + [ Steffen Müthing ] + * Add required files to initramfs + * Fix error in dracut script if not using ZFS root + + [ Brian Behlendorf ] + * Fix O_APPEND open(2) flag + * Retire spl_module_init()/spl_module_fini() + + [ Christer Ekholm ] + * Fix possible future overflow in zfs_nicenum + + [ Tim Chase ] + * Avoid dladdr() in ztest + + [ Brian Behlendorf ] + * Prevent "zpool destroy|export" when suspended + + [ Isaac Huang ] + * Fix deadlock between zpool export and zfs list + + [ Brian Behlendorf ] + * Use MUTEX_FSTRANS mutex type + * Linux 4.0 compat: bdi_setup_and_register() + * Change ASSERT(!"...") to cmn_err(CE_PANIC, ...) + + [ Turbo Fredriksson ] + * Install arc_summary.py + + [ Brian Behlendorf ] + * Replace zfs.redhat.in with zfs.lsb.in init script + + [ Chris Dunlap ] + * Add ZED to zfs.redhat.in script + + [ Ned Bass ] + * Use cached feature info in spa_add_feature_stats() + + [ Hajo Möller ] + * Actually source /etc/sysconfig/zfs instead of /etc/default/zfs + + [ Brian Behlendorf ] + * Mark zfs_inactive() with PF_FSTRANS + + [ Josef 'Jeff' Sipek ] + * Illumos 5047 - don't use atomic_*_nv if you discard the return value + + [ Justin T. Gibbs ] + * Illumos 5630 - stale bonus buffer in recycled dnode_t leads to data corruption + + [ Bill McGonigle ] + * Linux 4.0 compat: bdi_setup_and_register() __must_check + + [ Hajo Möller ] + * Fix warning about AM_INIT_AUTOMAKE arguments + + [ Chunwei Chen ] + * Use MUTEX_FSTRANS on l2arc_buflist_mtx + + [ Turbo Fredriksson ] + * Move duplicate information about the 'zfs send -e' option. + + [ Richard Yao ] + * Increase Linux pipe buffer size on 'zfs receive' + + [ Brian Behlendorf ] + * Fix arc_meta_max accounting + * Restructure per-filesystem reclaim + * Fix arc_adjust_meta() behavior + + [ Chris Dunlop ] + * Reduce size of zfs_sb_t: allocate z_hold_mtx separately + + [ Isaac Huang ] + * zio_injection_enabled should not be a module option + + [ Gordan Bobic ] + * Execute udevadm settle before trying to import pools + + [ Tim Chase ] + * Set the maximum ZVOL transfer size correctly + + [ Ned Bass ] + * dbuf_free_range() overzealously frees dbufs + + [ Brian Behlendorf ] + * Check all vdev labels in 'zpool import' + * Remove rpm/fedora directory + * Add RHEL style kmod packages + + [ Ned Bass ] + * Add NULL guard in zfs_zrlock_class event class + * zpool import should honor overlay property + + [ Prakash Surya ] + * Illumos 5695 - dmu_sync'ed holes do not retain birth time + + [ Chris Dunlop ] + * Align code with Illumos + + [ George Wilson ] + * Illumos 5694 - traverse_prefetcher does not prefetch enough + + [ Matthew Ahrens ] + * Illumus 5693 - ztest fails in dbuf_verify: buf[i] == 0, due to dedup and bp_override + + [ Brian Behlendorf ] + * Update zfs_pd_bytes_max default in zfs(8) + + [ Tim Chase ] + * Mark all ZPL and ioctl functions as PF_FSTRANS + + [ Brian Behlendorf ] + * Use vmem_alloc() in spa_config_write() + * Tag zfs-0.6.4 + + [ Darik Horn ] + * Refresh debian/patches after upstream merge. + * Package zed separately. + * Prevent driver modprobe in the zed upstart job. + + -- Darik Horn <dajhorn@vanadac.com> Thu, 09 Apr 2015 13:04:16 -0500 + +zfs-linux (0.6.3-15~vivid) vivid; urgency=low + + [ Brian Behlendorf ] + * Tag zfs-0.6.3-1.2 + + [ Darik Horn ] + * Update gbp.conf for Ubuntu 15.04 Vivid Vervet. + + -- Darik Horn <dajhorn@vanadac.com> Sat, 21 Feb 2015 13:40:18 -0500 diff --git a/debian/compat b/debian/compat new file mode 100644 index 000000000000..7f8f011eb73d --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +7 diff --git a/debian/control b/debian/control new file mode 100644 index 000000000000..86c6ac57f2a0 --- /dev/null +++ b/debian/control @@ -0,0 +1,207 @@ +Source: zfs-linux +Section: kernel +Priority: extra +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: Darik Horn <dajhorn@vanadac.com> +Build-Depends: autotools-dev, + autoconf, + autogen, + automake, + debhelper (>= 7), + dh-autoreconf, + dh-systemd, + dkms (>= 2.2.0.2), + libselinux1-dev, + libtool, + uuid-dev, + zlib1g-dev, + libblkid-dev, + libattr1-dev +Standards-Version: 3.9.8 +Homepage: https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.6.5.6 + +Package: libnvpair1linux +Section: libs +Architecture: any +Depends: ${misc:Depends}, ${shlibs:Depends} +Replaces: libnvpair0 +Description: Solaris name-value library for Linux + This library provides routines for packing and unpacking nv pairs for + transporting data across process boundaries, transporting between + kernel and userland, and possibly saving onto disk files. + +Package: libnvpair1linux-dbg +Section: debug +Architecture: any +Depends: ${misc:Depends}, libnvpair1linux (= ${binary:Version}) +Replaces: libnvpair0-dbg +Description: Debugging symbols for libnvpair1linux + This library provides routines for packing and unpacking nv pairs for + transporting data across process boundaries, transporting between + kernel and userland, and possibly saving onto disk files. + . + This package contains the debugging symbols for libnvpair1linux. + +Package: libuutil1linux +Section: libs +Architecture: any +Depends: ${misc:Depends}, ${shlibs:Depends} +Replaces: libuutil0 +Description: Solaris userland utility library for Linux + This library provides a variety of glue functions for OpenZFS on Linux: + * libspl: The Solaris Porting Layer library, which provides APIs that make it + possible to run Solaris user code in a Linux environment with relatively + minimal modification. + * libavl: The Adelson-Velskii Landis balanced binary tree manipulation + library. + * libefi: The Extensible Firmware Interface library for GUID disk + partitioning. + * libshare: NFS and SMB service integration for OpenZFS. + +Package: libuutil1linux-dbg +Section: debug +Architecture: any +Depends: ${misc:Depends}, libuutil1linux (= ${binary:Version}) +Replaces: libuutil0-dbg +Description: Debugging symbols for libuutil1linux + This library provides a variety of glue functions for OpenZFS on Linux: + * libspl: The Solaris Porting Layer library, which provides APIs that make it + possible to run Solaris user code in a Linux environment with relatively + minimal modification. + * libavl: The Adelson-Velskii Landis balanced binary tree manipulation + library. + * libefi: The Extensible Firmware Interface library for GUID disk + partitioning. + * libshare: NFS and SMB service integration for OpenZFS. + . + This package contains debugging symbols for libuutil1linux. + +Package: libzfslinux-dev +Section: libdevel +Architecture: any +Depends: ${misc:Depends}, + libnvpair1linux (= ${binary:Version}), + libuutil1linux (= ${binary:Version}), + libzfs2linux (= ${binary:Version}), + libzpool2linux (= ${binary:Version}) +Provides: libnvpair-dev, libuutil-dev +Replaces: libefi1, + libnvpair1, + libshare1, + libspl1, + libunicode1, + libuutil1, + libzavl1, + libzfs2, + libzpool2, +Description: Native OpenZFS filesystem development files for Linux + Header files and static libraries for compiling software + against libzfs. + +Package: libzfs2linux +Section: libs +Architecture: any +Depends: ${misc:Depends}, ${shlibs:Depends} +Replaces: libzfs0, libzfs1 +Description: Native OpenZFS filesystem library for Linux + The ZFS on Linux management library. + +Package: libzfs2linux-dbg +Section: debug +Architecture: any +Depends: ${misc:Depends}, libzfs2linux (= ${binary:Version}) +Replaces: libzfs0-dbg, libzfs1-dbg +Description: Debugging symbols for libzfs2 + The ZFS on Linux management library. + . + This package contains the debugging symbols for libzfs2. + +Package: libzpool2linux +Section: libs +Architecture: any +Depends: ${misc:Depends}, ${shlibs:Depends} +Replaces: libzpool0, libzpool1 +Description: Native OpenZFS pool library for Linux + The zpool management library. + +Package: libzpool2linux-dbg +Section: debug +Architecture: any +Depends: ${misc:Depends}, libzpool2linux (= ${binary:Version}) +Replaces: libzpool0-dbg, libzpool1-dbg +Description: Debugging symbols for libzpool2 + The zpool management library. + . + This package contains the debugging symbols for libzpool2. + +Package: zfs-dkms +Section: kernel +Architecture: any +Pre-Depends: spl-dkms (>= ${source:Upstream-Version}) +Depends: ${misc:Depends}, dkms (>= 2.2.0.2) +Replaces: lzfs, lzfs-dkms +Provides: lustre-backend-fs, lzfs, lzfs-dkms +Conflicts: lzfs, lzfs-dkms +Description: Native OpenZFS filesystem kernel modules for Linux + An advanced integrated volume manager and filesystem that is designed for + performance and data integrity. Snapshots, clones, checksums, deduplication, + compression, and RAID redundancy are built-in features. + . + Includes the SPA, DMU, ZVOL, and ZPL components of OpenZFS. + +Package: zfs-doc +Section: doc +Architecture: all +Depends: ${misc:Depends} +Description: Native OpenZFS filesystem documentation and examples. + Shared boilerplate files for OpenZFS on Linux that are not required at runtime. + +Package: zfs-initramfs +Section: kernel +Architecture: all +Depends: ${misc:Depends}, zfsutils-linux +Description: Native OpenZFS root filesystem capabilities for Linux + This package adds OpenZFS to the system initramfs with a hook + for the initramfs-tools infrastructure. + +Package: zfs-zed +Section: admin +Architecture: any +Depends: ${misc:Depends}, ${shlibs:Depends}, zfsutils-linux +Suggests: default-mta | mail-transport-agent +Replaces: zfsutils-linux (<< 0.6.5.6-0ubuntu9) +Breaks: zfsutils-linux (<< 0.6.5.6-0ubuntu9) +Description: OpenZFS Event Daemon (zed) + A monitor that automatically runs scripts for OpenZFS kernel events, + like disk failures. + +Package: zfs-zed-dbg +Section: debug +Architecture: any +Depends: ${misc:Depends}, zfs-zed (= ${binary:Version}) +Description: Debugging symbols for zfs-zed + This package contains the debugging symbols for zfs-zed. + +Package: zfsutils-linux +Section: admin +Architecture: any +Depends: ${misc:Depends}, ${shlibs:Depends} +Recommends: zfs-zed +Suggests: samba-common-bin (>= 3.0.23), nfs-kernel-server, zfs-initramfs +Conflicts: zfs, zfs-fuse +Provides: zfs +Replaces: zfs +Description: Native OpenZFS management utilities for Linux + This package provides the zpool and zfs commands that are used to + manage OpenZFS filesystems. + +Package: zfsutils-linux-dbg +Section: debug +Architecture: any +Depends: ${misc:Depends}, zfsutils-linux (= ${binary:Version}) +Replaces: zfs-dbg +Description: Debugging symbols for zfsutils-linux + This package provides the zpool and zfs commands that are used to + manage OpenZFS filesystems. + . + This package contains the debugging symbols for zfsutils-linux diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 000000000000..7fdfcae02d0c --- /dev/null +++ b/debian/copyright @@ -0,0 +1,1594 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Native ZFS for Linux +Upstream-Contact: Brian Behlendorf <behlendorf1@llnl.gov> +Source: https://github.com/zfsonlinux/zfs/ +Disclaimer: + This work was produced at the Lawrence Livermore National Laboratory + (LLNL) under Contract No. DE-AC52-07NA27344 (Contract 44) between + the U.S. Department of Energy (DOE) and Lawrence Livermore National + Security, LLC (LLNS) for the operation of LLNL. + . + This work was prepared as an account of work sponsored by an agency of + the United States Government. Neither the United States Government nor + Lawrence Livermore National Security, LLC nor any of their employees, + makes any warranty, express or implied, or assumes any liability or + responsibility for the accuracy, completeness, or usefulness of any + information, apparatus, product, or process disclosed, or represents + that its use would not infringe privately-owned rights. + . + Reference herein to any specific commercial products, process, or + services by trade name, trademark, manufacturer or otherwise does + not necessarily constitute or imply its endorsement, recommendation, + or favoring by the United States Government or Lawrence Livermore + National Security, LLC. The views and opinions of authors expressed + herein do not necessarily state or reflect those of the Untied States + Government or Lawrence Livermore National Security, LLC, and shall + not be used for advertising or product endorsement purposes. +License: CDDL-1.0 + +Files: * +Copyright: Lawrence Livermore National Security, LLC. +License: CDDL-1.0 + +Files: cmd/mount_zfs/* +Copyright: Oracle + Lawrence Livermore National Security, LLC. +License: CDDL-1.0 + +Files: cmd/zdb/* +Copyright: Oracle + Sun Microssystems, Inc. +License: CDDL-1.0 + +Files: cmd/zdb/zdb_il.c +Copyright: Sun Microsystems, Inc. + Cyril Plisko +License: CDDL-1.0 + +Files: cmd/zfs/zfs_iter.c +Copyright: Oracle + Pawel Jakub Dawidek +License: CDDL-1.0 + +Files: cmd/zfs/zfs_iter.h +Copyright: Sun Microssystems, Inc. +License: CDDL-1.0 + +Files: cmd/zfs/zfs_main.c +Copyright: Oracle + Nexenta Systems, Inc. + Delphix +License: CDDL-1.0 + +Files: cmd/zfs/zfs_util.? +Copyright: Oracle +License: CDDL-1.0 + +Files: cmd/zinject/* +Copyright: Oracle +License: CDDL-1.0 + +Files: cmd/zpios/* +Copyright: Cluster Filesystems, Inc. + Lawrence Livermore National Security, LLC. +License: GPL-2+ + +Files: cmd/zpool/zpool_iter.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: cmd/zpool/zpool_main.c +Copyright: Oracle + Nexenta Systems, Inc. + Delphix + Frederik Wessels +License: CDDL-1.0 + +Files: cmd/zpool/zpool_util.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: cmd/zpool/zpool_util.h +Copyright: Oracle +License: CDDL-1.0 + +Files: cmd/zpool/zpool_vdev.c +Copyright: Oracle +License: CDDL-1.0 + +Files: cmd/zstreamdump/zstreamdump.c +Copyright: Sun Microsystems, Inc. + Martin Matuska +License: CDDL-1.0 + +Files: cmd/ztest/ztest.c +Copyright: Oracle + Delphix + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: cmd/zvol_id/* +Copyright: Fajar A. Nugraha. +License: CDDL-1.0 + +Files: config/config.guess config/config.sub config/depcomp config/ltmain.sh config/missing +Copyright: Free Software Foundation, Inc. +License: GPL-2+ + +Files: debian/* +Copyright: + Darik Horn <dajhorn@vanadac.com> +License: GPL-2+ + +Files: debian/tree/zfsutils/etc/bash_completion.d/zfs +Copyright: 2013, Aneurin Price <aneurin.price@gmail.com> +License: Expat + +Files: etc/init.d/zfs.gentoo.in +Copyright: Gentoo Foundation +License: BSD-2-clause + Copyright (c) 2011, Gentoo Foundation + All rights reserved. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + . + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + . + Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: include/libnvpair.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/libuutil_common.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/libuutil.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/libuutil_impl.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/libzfs.h +Copyright: Oracle + Nexenta Systems, Inc. + Delphix +License: CDDL-1.0 + +Files: include/libzfs_impl.h +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: include/sys/arc.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/bplist.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/bpobj.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/dbuf.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/ddt.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/dmu.h +Copyright: Oracle + Delphix + Robert Milkowski +License: CDDL-1.0 + +Files: include/sys/dmu_impl.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/dmu_objset.h +Copyright: Oracle + Robert Milkowski +License: CDDL-1.0 + +Files: include/sys/dmu_traverse.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/dmu_tx.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/dmu_zfetch.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/dnode.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/dsl_* +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/dsl_dataset.h +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: include/sys/dsl_deleg.h +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: include/sys/efi_partition.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/fm/fs/zfs.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/fm/protocol.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/fm/util.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/fs/zfs.h +Copyright: Oracle + Delphix + Nexenta Systems, Inc. + Robert Milkowski +License: CDDL-1.0 + +Files: include/sys/metaslab.h +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: include/sys/metaslab_impl.h +Copyright: Sun Microsystems, Inc. + Delphix +License: CDDL-1.0 + +Files: include/sys/nvpair.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/nvpair_impl.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/refcount.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/rrwlock.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/sa.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/sa_impl.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/spa_boot.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/space_map.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/spa.h +Copyright: Oracle + Delphix + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: include/sys/spa_impl.h +Copyright: Oracle + Delphix + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: include/sys/txg.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/txg_impl.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/u8_textprep_data.h +Copyright: Unicode, Inc. + Sun Microsystems, Inc. +License: Expat~Unicode + Permission is hereby granted, free of charge, to any person obtaining + a copy of the Unicode data files and any associated documentation (the + "Data Files") or Unicode software and any associated documentation (the + "Software") to deal in the Data Files or Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, and/or sell copies of the Data Files or Software, and + to permit persons to whom the Data Files or Software are furnished to do so, + provided that (a) the above copyright notice(s) and this permission notice + appear with all copies of the Data Files or Software, (b) both the above + copyright notice(s) and this permission notice appear in associated + documentation, and (c) there is clear notice in each modified Data File or + in the Software as well as in the documentation associated with the Data + File(s) or Software that the data or software has been modified. + . + THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY + KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF + THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS + INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR + CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THE DATA FILES OR SOFTWARE. + . + Except as contained in this notice, the name of a copyright holder shall not + be used in advertising or otherwise to promote the sale, use or other + dealings in these Data Files or Software without prior written authorization + of the copyright holder. + . + Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be + registered in some jurisdictions. All other trademarks and registered + trademarks mentioned herein are the property of their respective owners. + +Files: include/sys/u8_textprep.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/uberblock.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/uberblock_impl.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/uio_impl.h +Copyright: Sun Microsystems, Inc. + AT&T + The Regents of the University of California +License: CDDL-1.0 + +Files: include/sys/unique.h +Copyright: Sun Microsystems, Inc. + Hewlett-Packard Company + Open Software Foundation, Inc. + Digital Equipment Corporation. + Microsoft +License: CDDL-1.0 + +Files: include/sys/vdev_file.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/vdev.h +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: include/sys/vdev_impl.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/xvattr.h +Copyright: AT&T + Oracle + The Regents of the University of California +License: CDDL-1.0 + +Files: include/sys/vdev_impl.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zap.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zap_impl.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zap_leaf.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zfs_acl.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zfs_context.h +Copyright: Sun Microsystems, Inc. + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: include/sys/zfs_ctldir.h +Copyright: Oracle + Lawrence Livermore National Security, LLC. +License: CDDL-1.0 + +Files: include/sys/zfs_debug.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zfs_dir.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/zfs_fuid.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/zfs_ioctl.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zfs_onexit.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zfs_rlock.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/zfs_sa.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/zfs_stat.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zfs_vfsops.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zfs_vnops.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zfs_znode.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zil.h +Copyright: Oracle + Robert Milkowski +License: CDDL-1.0 + +Files: include/sys/zil_impl.h +Copyright: Oracle + Robert Milkowski +License: CDDL-1.0 + +Files: include/sys/zio_checksum.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zio_compress.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/zio.h +Copyright: Oracle + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: include/sys/zio_impl.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/sys/zrlock.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/sys/zvol.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/zfs_comutil.h +Copyright: Oracle +License: CDDL-1.0 + +Files: include/zfs_deleg.h +Copyright: Oracle + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: include/zfs_fletcher.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/zfs_namecheck.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/zfs_prop.h +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: include/zpios-ctl.h +Copyright: Cluster File Systems, Inc. + Lawrence Livermore National Security, LLC. +License: GPL-2+ + +Files: include/zpios-internal.h +Copyright: Cluster File Systems, Inc. + Lawrence Livermore National Security, LLC. +License: GPL-2+ + +Files: lib/libefi/rdwr_efi.c +Copyright: Oracle +License: CDDL-1.0 + +Files: lib/libnvpair/libnvpair.c +Copyright: Oracle +License: CDDL-1.0 + +Files: lib/libnvpair/nvpair_alloc_system.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libshare/libshare.c +Copyright: Oracle + Gunnar Beutner +License: CDDL-1.0 + +Files: lib/libshare/libshare_impl.h +Copyright: Oracle + Gunnar Beutner +License: CDDL-1.0 + +Files: lib/libshare/nfs.c +Copyright: Oracle + Gunnar Beutner + Cyril Plisko +License: CDDL-1.0 + +Files: lib/libshare/nfs.h +Copyright: Oracle + Gunnar Beutner +License: CDDL-1.0 + +Files: lib/libspl/asm-generic/atomic.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libspl/asm-i386/atomic.S +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libspl/asm-x86_64/atomic.S +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libspl/getexecname.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libspl/gethrestime.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libspl/getmntany.c +Copyright: Sun Microsystems, Inc. + Ricardo Correia + AT&T +License: CDDL-1.0 + +Files: lib/libspl/include/* +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libspl/include/sys/dktp/fdisk.h +Copyright: Sun Microsystems, Inc. + AT&T +License: CDDL-1.0 + +Files: lib/libspl/include/sys/mntent.h +Copyright: Sun Microsystems, Inc. + AT&T +License: CDDL-1.0 + +Files: lib/libspl/include/sys/mnttab.h +Copyright: Sun Microsystems, Inc. + Ricardo Correia + AT&T +License: CDDL-1.0 + +Files: lib/libspl/include/sys/stat.h +Copyright: Oracle +License: CDDL-1.0 + +Files: lib/libspl/include/sys/sysevent/eventdefs.h +Copyright: Sun Microsystems, Inc. + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: lib/libspl/include/sys/uio.h +Copyright: Sun Microsystems, Inc. + AT&T + The Regents of the University of California +License: CDDL-1.0 + +Files: lib/libspl/include/sys/vtoc.h +Copyright: Sun Microsystems, Inc. + AT&T +License: CDDL-1.0 + +Files: lib/libspl/list.c +Copyright: 2008 Sun Microsystems, Inc. All rights reserved. +License: CDDL-1.0 + +Files: lib/libspl/mkdirp.c +Copyright: Sun Microsystems, Inc. + AT&T +License: CDDL-1.0 + +Files: lib/libspl/strlcat.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libspl/strlcpy.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libspl/strnlen.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libspl/timestamp.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libspl/xdr.c +Copyright: Sun Microsystems, Inc. + AT&T +License: CDDL-1.0 + +Files: lib/libspl/zone.c +Copyright: 2006 Ricardo Correia +License: CDDL-1.0 + +Files: lib/libuutil/uu_alloc.c +Copyright: Oracle +License: CDDL-1.0 + +Files: lib/libuutil/uu_avl.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libuutil/uu_dprintf.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libuutil/uu_ident.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libuutil/uu_list.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libuutil/uu_misc.c +Copyright: Oracle +License: CDDL-1.0 + +Files: lib/libuutil/uu_open.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libuutil/uu_pname.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libuutil/uu_string.c +Copyright: Oracle +License: CDDL-1.0 + +Files: lib/libuutil/uu_strtoint.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libzfs/libzfs_changelist.c +Copyright: Sun Microsystems, Inc. + Ramprakash Jelari +License: CDDL-1.0 + +Files: lib/libzfs/libzfs_config.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libzfs/libzfs_dataset.c +Copyright: Oracle + Nexenta Systems, Inc. + Delphix + DEY Storage Systems, Inc. + Pawel Jakub Dawidek +License: CDDL-1.0 + +Files: lib/libzfs/libzfs_diff.c +Copyright: Oracle +License: CDDL-1.0 + +Files: lib/libzfs/libzfs_fru.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libzfs/libzfs_graph.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: lib/libzfs/libzfs_import.c +Copyright: Oracle + Nexenta Systems, Inc. + Delphix +License: CDDL-1.0 + +Files: lib/libzfs/libzfs_iter.c +Copyright: Oracle + Nexenta Systems, Inc. + Delphix +License: CDDL-1.0 + +Files: lib/libzfs/libzfs_mount.c +Copyright: Oracle +License: CDDL-1.0 + +Files: lib/libzfs/libzfs_pool.c +Copyright: Oracle + Nexenta Systems, Inc. + Delphix +License: CDDL-1.0 + +Files: lib/libzfs/libzfs_sendrecv.c +Copyright: Oracle + Delphix + Pawel Jakub Dawidek +License: CDDL-1.0 + +Files: lib/libzfs/libzfs_status.c +Copyright: Oracle +License: CDDL-1.0 + +Files: lib/libzfs/libzfs_util.c +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: lib/libzpool/kernel.c +Copyright: Oracle +License: CDDL-1.0 + +Files: lib/libzpool/taskq.c +Copyright: Sun Microsystems, Inc. + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: lib/libzpool/util.c +Copyright: Oracle +License: CDDL-1.0 + +Files: man/man8/zdb.8 +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: man/man8/zfs.8 +Copyright: Sun Microsystems, Inc. + Delphix + Nexenta Systems, Inc. + Joshua M. Clulow +License: CDDL-1.0 + +Files: man/man8/zpool.8 +Copyright: Sun Microsystems, Inc. + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: man/man8/zstreamdump.8 +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/avl/avl.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/nvpair/nvpair_alloc_fixed.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/nvpair/nvpair_alloc_spl.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/nvpair/nvpair.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/unicode/u8_textprep.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/unicode/uconv.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zcommon/zfs_comutil.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zcommon/zfs_deleg.c +Copyright: Oracle + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: module/zcommon/zfs_fletcher.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zcommon/zfs_namecheck.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zcommon/zfs_prop.c +Copyright: Oracle + Delphix + Robert Milkowski +License: CDDL-1.0 + +Files: module/zcommon/zfs_uio.c +Copyright: Sun Microsystems, Inc. + AT&T + The Regents of the University of California +License: CDDL-1.0 + +Files: module/zcommon/zpool_prop.c +Copyright: Oracle + Nexenta Systems, Inc. + Delphix +License: CDDL-1.0 + +Files: module/zcommon/zprop_common.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/arc.c +Copyright: Oracle + Nexenta Systems, Inc. + Delphix +License: CDDL-1.0 + +Files: module/zfs/bplist.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/bpobj.c +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: module/zfs/dbuf.c +Copyright: Oracle + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: module/zfs/ddt.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/ddt_zap.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/dmu.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/dmu_diff.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/dmu_object.c +Copyright: Oracle + Robert Milkowski +License: CDDL-1.0 + +Files: module/zfs/dmu_send.c +Copyright: Oracle + Nexenta Systems, Inc. + Delphix +License: CDDL-1.0 + +Files: module/zfs/dmu_traverse.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/dmu_tx.c +Copyright: Oracle + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: module/zfs/dmu_zfetch.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/dnode.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/dnode_sync.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/dsl_dataset.c +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: module/zfs/dsl_deadlist.c +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: module/zfs/dsl_deleg.c +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: module/zfs/dsl_dir.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/dsl_pool.c +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: module/zfs/dsl_prop.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/dsl_scan.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/dsl_synctask.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/fm.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/gzip.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/lzjb.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/metaslab.c +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: module/zfs/refcount.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/rrwlock.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/sa.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/sha256.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/spa_boot.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/spa.c +Copyright: Oracle + Nexenta Systems, Inc. + Delphix +License: CDDL-1.0 + +Files: module/zfs/space_map.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/spa_config.c +Copyright: Oracle + Nexenta Systems, Inc. + Delphix +License: CDDL-1.0 + +Files: module/zfs/spa_errlog.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/spa_history.c +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: module/zfs/spa_misc.c +Copyright: Oracle + Delphix + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: module/zfs/txg.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/uberblock.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/unique.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/vdev_cache.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/vdev.c +Copyright: Oracle + Nexenta Systems, Inc. + Delphix +License: CDDL-1.0 + +Files: module/zfs/vdev_file.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/vdev_label.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/vdev_mirror.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/vdev_missing.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/vdev_queue.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/vdev_raidz.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/vdev_root.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/zap.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/zap_leaf.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/zap_micro.c +Copyright: Oracle + Delphix +License: CDDL-1.0 + +Files: module/zfs/zfs_acl.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/zfs_byteswap.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/zfs_ctldir.c +Copyright: Oracle + Lawrence Livermore National Security, LLC. +License: CDDL-1.0 + +Files: module/zfs/zfs_debug.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/zfs_dir.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/zfs_fm.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/zfs_fuid.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/zfs_ioctl.c +Copyright: Oracle + Martin Matuska + Pawel Jakub Dawidek + Joyent, Inc. + Nexenta Systems, Inc. + Delphix +License: CDDL-1.0 + +Files: module/zfs/zfs_log.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/zfs_onexit.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/zfs_replay.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/zfs_rlock.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/zfs_sa.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/zfs_vfsops.c +Copyright: Oracle + Robert Milkowski +License: CDDL-1.0 + +Files: module/zfs/zfs_vnops.c +Copyright: Oracle + Jeremy Teo + Robert Milkowski +License: CDDL-1.0 + +Files: module/zfs/zfs_znode.c +Copyright: Oracle + Jeremy Teo +License: CDDL-1.0 + +Files: module/zfs/zil.c +Copyright: Oracle + Delphix + Robert Milkowski +License: CDDL-1.0 + +Files: module/zfs/zio.c +Copyright: Oracle + Delphix + Nexenta Systems, Inc. +License: CDDL-1.0 + +Files: module/zfs/zio_checksum.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/zio_compress.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/zio_inject.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zfs/zle.c +Copyright: Sun Microsystems, Inc. +License: CDDL-1.0 + +Files: module/zfs/zpl_export.c +Copyright: Gunnar Beutner +License: CDDL-1.0 + +Files: module/zfs/zrlock.c +Copyright: Oracle +License: CDDL-1.0 + +Files: module/zpios/pios.c +Copyright: Cluster File Systems, Inc. + Lawrence Livermore National Security, LLC. +License: GPL-2+ + +Files: scripts/kmodtool +Copyright: 2003-2012, Ville Skyttä <ville.skytta@iki.fi>, + 2003-2012, Thorsten Leemhuis <fedora@leemhuis.info> + 2003-2012, Nicolas Chauvet <kwizart@gmail.com> +License: Expat + +License: Expat + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + . + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License: GPL-2+ + This program is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation; either version 2 of the License, or (at your option) any later + version. + . + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License along with + this package; if not, write to the Free Software Foundation, Inc., 51 Franklin + St, Fifth Floor, Boston, MA 02110-1301 USA + . + On Debian systems, the full text of the GNU General Public License version 2 + can be found in the file /usr/share/common-licenses/GPL-2. + +License: CDDL-1.0 + COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) + . + Version 1.0 + . + 1. Definitions. + . + 1.1. “Contributor” means each individual or entity that creates or contributes + to the creation of Modifications. + . + 1.2. “Contributor Version” means the combination of the Original Software, + prior Modifications used by a Contributor (if any), and the Modifications made + by that particular Contributor. + . + 1.3. “Covered Software” means (a) the Original Software, or (b) Modifications, + or (c) the combination of files containing Original Software with files + containing Modifications, in each case including portions thereof. + . + 1.4. “Executable” means the Covered Software in any form other than Source + Code. + . + 1.5. “Initial Developer” means the individual or entity that first makes + Original Software available under this License. + . + 1.6. “Larger Work” means a work which combines Covered Software or portions + thereof with code not governed by the terms of this License. + . + 1.7. “License” means this document. + . + 1.8. “Licensable” means having the right to grant, to the maximum extent + possible, whether at the time of the initial grant or subsequently acquired, + any and all of the rights conveyed herein. + . + 1.9. “Modifications” means the Source Code and Executable form of any of the + following: + . + A. Any file that results from an addition to, deletion from or modification of + the contents of a file containing Original Software or previous Modifications; + . + B. Any new file that contains any part of the Original Software or previous + Modification; or + . + C. Any new file that is contributed or otherwise made available under the terms + of this License. + . + 1.10. “Original Software” means the Source Code and Executable form of computer + software code that is originally released under this License. + . + 1.11. “Patent Claims” means any patent claim(s), now owned or hereafter + acquired, including without limitation, method, process, and apparatus claims, + in any patent Licensable by grantor. + . + 1.12. “Source Code” means (a) the common form of computer software code in + which modifications are made and (b) associated documentation included in or + with such code. + . + 1.13. “You” (or “Your”) means an individual or a legal entity exercising rights + under, and complying with all of the terms of, this License. For legal + entities, “You” includes any entity which controls, is controlled by, or is + under common control with You. For purposes of this definition, “control” means + (a) the power, direct or indirect, to cause the direction or management of such + entity, whether by contract or otherwise, or (b) ownership of more than fifty + percent (50%) of the outstanding shares or beneficial ownership of such entity. + . + 2. License Grants. + . + 2.1. The Initial Developer Grant. + . + Conditioned upon Your compliance with Section 3.1 below and subject to third + party intellectual property claims, the Initial Developer hereby grants You a + world-wide, royalty-free, non-exclusive license: + . + (a) under intellectual property rights (other than patent or trademark) + Licensable by Initial Developer, to use, reproduce, modify, display, perform, + sublicense and distribute the Original Software (or portions thereof), with or + without Modifications, and/or as part of a Larger Work; and + . + (b) under Patent Claims infringed by the making, using or selling of Original + Software, to make, have made, use, practice, sell, and offer for sale, and/or + otherwise dispose of the Original Software (or portions thereof). + . + (c) The licenses granted in Sections 2.1(a) and (b) are effective on the date + Initial Developer first distributes or otherwise makes the Original Software + available to a third party under the terms of this License. + . + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for + code that You delete from the Original Software, or (2) for infringements + caused by: (i) the modification of the Original Software, or (ii) the + combination of the Original Software with other software or devices. + . + 2.2. Contributor Grant. + . + Conditioned upon Your compliance with Section 3.1 below and subject to third + party intellectual property claims, each Contributor hereby grants You a + world-wide, royalty-free, non-exclusive license: + . + (a) under intellectual property rights (other than patent or trademark) + Licensable by Contributor to use, reproduce, modify, display, perform, + sublicense and distribute the Modifications created by such Contributor (or + portions thereof), either on an unmodified basis, with other Modifications, as + Covered Software and/or as part of a Larger Work; and + . + (b) under Patent Claims infringed by the making, using, or selling of + Modifications made by that Contributor either alone and/or in combination with + its Contributor Version (or portions of such combination), to make, use, sell, + offer for sale, have made, and/or otherwise dispose of: (1) Modifications made + by that Contributor (or portions thereof); and (2) the combination of + Modifications made by that Contributor with its Contributor Version (or + portions of such combination). + . + (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the + date Contributor first distributes or otherwise makes the Modifications + available to a third party. + . + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) for + any code that Contributor has deleted from the Contributor Version; (2) for + infringements caused by: (i) third party modifications of Contributor Version, + or (ii) the combination of Modifications made by that Contributor with other + software (except as part of the Contributor Version) or other devices; or (3) + under Patent Claims infringed by Covered Software in the absence of + Modifications made by that Contributor. + . + 3. Distribution Obligations. + . + 3.1. Availability of Source Code. + . + Any Covered Software that You distribute or otherwise make available in + Executable form must also be made available in Source Code form and that Source + Code form must be distributed only under the terms of this License. You must + include a copy of this License with every copy of the Source Code form of the + Covered Software You distribute or otherwise make available. You must inform + recipients of any such Covered Software in Executable form as to how they can + obtain such Covered Software in Source Code form in a reasonable manner on or + through a medium customarily used for software exchange. + . + 3.2. Modifications. + . + The Modifications that You create or to which You contribute are governed by + the terms of this License. You represent that You believe Your Modifications + are Your original creation(s) and/or You have sufficient rights to grant the + rights conveyed by this License. + . + 3.3. Required Notices. + . + You must include a notice in each of Your Modifications that identifies You as + the Contributor of the Modification. You may not remove or alter any copyright, + patent or trademark notices contained within the Covered Software, or any + notices of licensing or any descriptive text giving attribution to any + Contributor or the Initial Developer. + . + 3.4. Application of Additional Terms. + . + You may not offer or impose any terms on any Covered Software in Source Code + form that alters or restricts the applicable version of this License or the + recipients’ rights hereunder. You may choose to offer, and to charge a fee for, + warranty, support, indemnity or liability obligations to one or more recipients + of Covered Software. However, you may do so only on Your own behalf, and not on + behalf of the Initial Developer or any Contributor. You must make it absolutely + clear that any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial Developer + and every Contributor for any liability incurred by the Initial Developer or + such Contributor as a result of warranty, support, indemnity or liability terms + You offer. + . + 3.5. Distribution of Executable Versions. + . + You may distribute the Executable form of the Covered Software under the terms + of this License or under the terms of a license of Your choice, which may + contain terms different from this License, provided that You are in compliance + with the terms of this License and that the license for the Executable form + does not attempt to limit or alter the recipient’s rights in the Source Code + form from the rights set forth in this License. If You distribute the Covered + Software in Executable form under a different license, You must make it + absolutely clear that any terms which differ from this License are offered by + You alone, not by the Initial Developer or Contributor. You hereby agree to + indemnify the Initial Developer and every Contributor for any liability + incurred by the Initial Developer or such Contributor as a result of any such + terms You offer. + . + 3.6. Larger Works. + . + You may create a Larger Work by combining Covered Software with other code not + governed by the terms of this License and distribute the Larger Work as a + single product. In such a case, You must make sure the requirements of this + License are fulfilled for the Covered Software. + . + 4. Versions of the License. + . + 4.1. New Versions. + . + Sun Microsystems, Inc. is the initial license steward and may publish revised + and/or new versions of this License from time to time. Each version will be + given a distinguishing version number. Except as provided in Section 4.3, no + one other than the license steward has the right to modify this License. + . + 4.2. Effect of New Versions. + . + You may always continue to use, distribute or otherwise make the Covered + Software available under the terms of the version of the License under which + You originally received the Covered Software. If the Initial Developer includes + a notice in the Original Software prohibiting it from being distributed or + otherwise made available under any subsequent version of the License, You must + distribute and make the Covered Software available under the terms of the + version of the License under which You originally received the Covered + Software. Otherwise, You may also choose to use, distribute or otherwise make + the Covered Software available under the terms of any subsequent version of the + License published by the license steward. + . + 4.3. Modified Versions. + . + When You are an Initial Developer and You want to create a new license for Your + Original Software, You may create and use a modified version of this License if + You: (a) rename the license and remove any references to the name of the + license steward (except to note that the license differs from this License); + and (b) otherwise make it clear that the license contains terms which differ + from this License. + . + 5. DISCLAIMER OF WARRANTY. + . + COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT + WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT + LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, + MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK + AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD + ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL + DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, + REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART + OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT + UNDER THIS DISCLAIMER. + . + 6. TERMINATION. + . + 6.1. This License and the rights granted hereunder will terminate automatically + if You fail to comply with terms herein and fail to cure such breach within 30 + days of becoming aware of the breach. Provisions which, by their nature, must + remain in effect beyond the termination of this License shall survive. + . + 6.2. If You assert a patent infringement claim (excluding declaratory judgment + actions) against Initial Developer or a Contributor (the Initial Developer or + Contributor against whom You assert such claim is referred to as “Participant”) + alleging that the Participant Software (meaning the Contributor Version where + the Participant is a Contributor or the Original Software where the Participant + is the Initial Developer) directly or indirectly infringes any patent, then any + and all rights granted directly or indirectly to You by such Participant, the + Initial Developer (if the Initial Developer is not the Participant) and all + Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days + notice from Participant terminate prospectively and automatically at the + expiration of such 60 day notice period, unless if within such 60 day period + You withdraw Your claim with respect to the Participant Software against such + Participant either unilaterally or pursuant to a written agreement with + Participant. + . + 6.3. In the event of termination under Sections 6.1 or 6.2 above, all end user + licenses that have been validly granted by You or any distributor hereunder + prior to termination (excluding licenses granted to You by any distributor) + shall survive termination. + . + 7. LIMITATION OF LIABILITY. + . + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING + NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY + OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF + ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, + INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER + FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN + IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS + LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL + INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR + LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND + LIMITATION MAY NOT APPLY TO YOU. + . + 8. U.S. GOVERNMENT END USERS. + . + The Covered Software is a “commercial item,” as that term is defined in 48 + C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” (as that + term is defined at 48 C.F.R. § 252.227-7014(a)(1)) and “commercial computer + software documentation” as such terms are used in 48 C.F.R. 12.212 (Sept. + 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through + 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software + with only those rights set forth herein. This U.S. Government Rights clause is + in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision + that addresses Government rights in computer software under this License. + . + 9. MISCELLANEOUS. + . + This License represents the complete agreement concerning subject matter + hereof. If any provision of this License is held to be unenforceable, such + provision shall be reformed only to the extent necessary to make it + enforceable. This License shall be governed by the law of the jurisdiction + specified in a notice contained within the Original Software (except to the + extent applicable law, if any, provides otherwise), excluding such + jurisdiction’s conflict-of-law provisions. Any litigation relating to this + License shall be subject to the jurisdiction of the courts located in the + jurisdiction and venue specified in a notice contained within the Original + Software, with the losing party responsible for costs, including, without + limitation, court costs and reasonable attorneys’ fees and expenses. The + application of the United Nations Convention on Contracts for the International + Sale of Goods is expressly excluded. Any law or regulation which provides that + the language of a contract shall be construed against the drafter shall not + apply to this License. You agree that You alone are responsible for compliance + with the United States export administration regulations (and the export + control laws and regulation of any other countries) when You use, distribute or + otherwise make available any Covered Software. + . + 10. RESPONSIBILITY FOR CLAIMS. + . + As between Initial Developer and the Contributors, each party is responsible + for claims and damages arising, directly or indirectly, out of its utilization + of rights under this License and You agree to work with Initial Developer and + Contributors to distribute such responsibility on an equitable basis. Nothing + herein is intended or shall be deemed to constitute any admission of liability. diff --git a/debian/etc/build b/debian/etc/build new file mode 100755 index 000000000000..ebf6a1039874 --- /dev/null +++ b/debian/etc/build @@ -0,0 +1,16 @@ +#!/bin/bash +set -e +set -xv + +gbp buildpackage \ + --git-submodules \ + --git-builder='debuild --preserve-envvar=CCACHE_DIR --prepend-path=/usr/lib/ccache -i -I' \ + --git-no-pristine-tar \ + --git-force-create \ +&& : + #--git-ignore-branch \ + #--git-ignore-new \ + #--git-pristine-tar \ + #--git-tag \ + #--git-sign-tags \ + #--git-force-create diff --git a/debian/etc/update-ppa b/debian/etc/update-ppa new file mode 100755 index 000000000000..2bdf50577112 --- /dev/null +++ b/debian/etc/update-ppa @@ -0,0 +1,163 @@ +#!/bin/bash +set -e +set -xv + +: ${PPA:=ppa:trevorjay/zfs} + +on_exit() { + git checkout master || : +} + +trap 'on_exit' EXIT +on_exit + +debian_prefix="ubuntu" + +full_tags=($(git rev-parse --symbolic-full-name --tags)) + +tags=() +upstream_tags=() +debian_tags=() +ppa_tags=() +unknown_tags=() + +for full_tag in "${full_tags[@]}"; do + tag="${full_tag#refs/tags/}" + + tags+=("$tag") + + case "$tag" in + $debian_prefix/v*) + debian_tags+=("$tag") + + case "$tag" in + $debian_prefix/v*ppa*) + ppa_tags+=("$tag") + ;; + esac + + ;; + v*) + upstream_tags+=("$tag") + ;; + *) + unknown_tags+=("$tag") + ;; + esac +done + +echo "Tags: (${#tags[@]})" +echo "- Upstream:" "${upstream_tags[@]}" +echo "- Debian:" "${debian_tags[@]}" +echo "- PPA:" "${ppa_tags[@]}" +echo "- Unknown:" "${unknown_tags[@]}" +echo + +has-tag() { + local needle="$1" + + local tag + for tag in "${tags[@]}"; do + if [[ "$tag" == "$needle" ]]; then + return 0 + fi + done + + return 1 +} + +next-rev() { + local prefix="$1" + + local rev + for rev in {0..999}; do + if ! has-tag "$prefix$rev"; then + echo "$rev" + return 0 + fi + done + + return 1 +} + +taggify() { + local tag="$debian_prefix/v${1#$debian_prefix/v}" + tag="${tag//\~/_}" + echo "$tag" +} + +pkg=$(dpkg-parsechangelog -S Source) +base_version=$(dpkg-parsechangelog -S Version) + +#git tag -f "$debian_prefix/v${base_version}" + +if [[ ${#dists[@]} -eq 0 ]]; then + dists=(artful zesty yakkety xenial trusty) +fi + + +do_dist() { + local dist="$1"; shift + local dput_args=("$@") + local branch="$debian_prefix/$dist" + + local pre_version="${base_version}~${dist}" + local pre_tag_version=$(taggify "$pre_version") + + local next_rev=$(next-rev "$pre_tag_version") + local cur_rev=$(( $next_rev - 1 )) + [[ $cur_rev -gt 0 ]] || local cur_rev=0 + + if [[ -n "$INCR" ]]; then + local rev="$next_rev" + else + local rev="$cur_rev" + fi + + local version="$pre_version$rev" + local tag_version="$pre_tag_version$rev" + + echo + echo "Dist: $dist branch=$branch version=$version" + echo "---" + + echo "-- Checking out $branch" + git checkout -B "$branch" "master" + + echo "-- Checking out $branch" + git checkout "$branch" + echo "-- Merging from master" + git rebase --strategy into master + + echo "-- Updating changelog. version=$version" + dch -b \ + --force-distribution \ + -D "$dist" \ + -v "$version" \ + "Rebuild for ${dist}" + dch -a "Changed build-dependencies to packages available in ${dist}" + + echo "-- Committing" + git commit -m 'Bump' debian/changelog + + echo "-- Building" + gbp buildpackage \ + --git-debian-branch="$branch" \ + --git-submodules \ + -S \ + && : + #-sa + #--git-builder='debuild --preserve-envvar=CCACHE_DIR --prepend-path=/usr/lib/ccache -i -I' \ + + dput $dput_args "$PPA" "../build-area/${pkg}_${version}_source.changes" || return 1 + + echo "-- Tagging" + git tag -f "${tag_version}" +} + +for dist in "${dists[@]}"; do + do_dist "$dist" "$@" +done + +echo "DONE" + diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 000000000000..fb9681d63d2c --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,9 @@ +[DEFAULT] +#pristine-tar = True + +debian-branch = master +upstream-branch = upstream + +debian-tag = debian/%(version)s +upstream-tag = upstream/%(version)s +#upstream-tag=upstream/ntrim-%(version)s diff --git a/debian/libnvpair1linux.install b/debian/libnvpair1linux.install new file mode 100644 index 000000000000..ebe55d9f61d0 --- /dev/null +++ b/debian/libnvpair1linux.install @@ -0,0 +1 @@ +lib/libnvpair.so.* usr/lib diff --git a/debian/libuutil1linux.install b/debian/libuutil1linux.install new file mode 100644 index 000000000000..de21036d2f69 --- /dev/null +++ b/debian/libuutil1linux.install @@ -0,0 +1 @@ +lib/libuutil.so.* usr/lib diff --git a/debian/libzfs2linux.install b/debian/libzfs2linux.install new file mode 100644 index 000000000000..9ff82dcd549e --- /dev/null +++ b/debian/libzfs2linux.install @@ -0,0 +1,2 @@ +lib/libzfs.so.* usr/lib +lib/libzfs_core.so.* usr/lib diff --git a/debian/libzfslinux-dev.install b/debian/libzfslinux-dev.install new file mode 100644 index 000000000000..e7dde57bc87c --- /dev/null +++ b/debian/libzfslinux-dev.install @@ -0,0 +1,4 @@ +lib/*.a usr/lib +lib/*.la usr/lib +lib/*.so usr/lib +usr/include diff --git a/debian/libzpool2linux.install b/debian/libzpool2linux.install new file mode 100644 index 000000000000..321004024749 --- /dev/null +++ b/debian/libzpool2linux.install @@ -0,0 +1 @@ +lib/libzpool.so.* usr/lib diff --git a/debian/patches/0001-Prevent-manual-builds-in-the-DKMS-source.patch b/debian/patches/0001-Prevent-manual-builds-in-the-DKMS-source.patch new file mode 100644 index 000000000000..6a00f87f6976 --- /dev/null +++ b/debian/patches/0001-Prevent-manual-builds-in-the-DKMS-source.patch @@ -0,0 +1,58 @@ +From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +Date: Sat, 24 Dec 2016 16:55:38 -0800 +Subject: Prevent-manual-builds-in-the-DKMS-source + +=================================================================== +--- + config/dkms.m4 | 14 ++++++++++++++ + config/user.m4 | 1 + + config/zfs-build.m4 | 2 +- + 3 files changed, 16 insertions(+), 1 deletion(-) + create mode 100644 config/dkms.m4 + +diff --git a/config/dkms.m4 b/config/dkms.m4 +new file mode 100644 +index 0000000..cfa1152 +--- /dev/null ++++ b/config/dkms.m4 +@@ -0,0 +1,14 @@ ++dnl # ++dnl # Prevent manual building in DKMS source tree. ++dnl # ++AC_DEFUN([ZFS_AC_DKMS_INHIBIT], [ ++ AC_MSG_CHECKING([for dkms.conf file]) ++ AS_IF([test -e dkms.conf], [ ++ AC_MSG_ERROR([ ++ *** ZFS should not be manually built in the DKMS source tree. ++ *** Remove all ZFS packages before compiling the ZoL sources. ++ *** Running "make install" breaks ZFS packages.]) ++ ], [ ++ AC_MSG_RESULT([not found]) ++ ]) ++]) +diff --git a/config/user.m4 b/config/user.m4 +index 0e34307..f61bbe4 100644 +--- a/config/user.m4 ++++ b/config/user.m4 +@@ -2,6 +2,7 @@ dnl # + dnl # Default ZFS user configuration + dnl # + AC_DEFUN([ZFS_AC_CONFIG_USER], [ ++ ZFS_AC_DKMS_INHIBIT + ZFS_AC_CONFIG_USER_MOUNT_HELPER + ZFS_AC_CONFIG_USER_UDEV + ZFS_AC_CONFIG_USER_SYSTEMD +diff --git a/config/zfs-build.m4 b/config/zfs-build.m4 +index 7651dc2..63244ee 100644 +--- a/config/zfs-build.m4 ++++ b/config/zfs-build.m4 +@@ -63,8 +63,8 @@ AC_DEFUN([ZFS_AC_CONFIG], [ + ZFS_AC_CONFIG_ALWAYS + + case "$ZFS_CONFIG" in +- kernel) ZFS_AC_CONFIG_KERNEL ;; + user) ZFS_AC_CONFIG_USER ;; ++ kernel) ZFS_AC_CONFIG_KERNEL ;; + all) ZFS_AC_CONFIG_USER + ZFS_AC_CONFIG_KERNEL ;; + srpm) ;; diff --git a/debian/patches/0002-Check-for-META-and-DCH-consistency-in-autoconf.patch b/debian/patches/0002-Check-for-META-and-DCH-consistency-in-autoconf.patch new file mode 100644 index 000000000000..372ddf31321b --- /dev/null +++ b/debian/patches/0002-Check-for-META-and-DCH-consistency-in-autoconf.patch @@ -0,0 +1,68 @@ +From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +Date: Sat, 24 Dec 2016 16:55:38 -0800 +Subject: Check-for-META-and-DCH-consistency-in-autoconf + +=================================================================== +--- + config/zfs-meta.m4 | 34 +++++++++++++++++++++++++++++----- + 1 file changed, 29 insertions(+), 5 deletions(-) + +diff --git a/config/zfs-meta.m4 b/config/zfs-meta.m4 +index 3e1429d..b8e26c4 100644 +--- a/config/zfs-meta.m4 ++++ b/config/zfs-meta.m4 +@@ -1,9 +1,10 @@ + dnl # + dnl # DESCRIPTION: +-dnl # Read meta data from the META file. When building from a git repository +-dnl # the ZFS_META_RELEASE field will be overwritten if there is an annotated +-dnl # tag matching the form ZFS_META_NAME-ZFS_META_VERSION-*. This allows +-dnl # for working builds to be uniquely identified using the git commit hash. ++dnl # Read meta data from the META file or the debian/changelog file if it ++dnl # exists. When building from a git repository the ZFS_META_RELEASE field ++dnl # will be overwritten if there is an annotated tag matching the form ++dnl # ZFS_META_NAME-ZFS_META_VERSION-*. This allows for working builds to be ++dnl # uniquely identified using the git commit hash. + dnl # + dnl # The META file format is as follows: + dnl # ^[ ]*KEY:[ \t]+VALUE$ +@@ -49,6 +50,7 @@ AC_DEFUN([ZFS_AC_META], [ + _zfs_ac_meta_type="none" + if test -f "$META"; then + _zfs_ac_meta_type="META file" ++ _dpkg_parsechangelog=$(dpkg-parsechangelog 2>/dev/null) + + ZFS_META_NAME=_ZFS_AC_META_GETVAL([(Name|Project|Package)]); + if test -n "$ZFS_META_NAME"; then +@@ -66,8 +68,30 @@ AC_DEFUN([ZFS_AC_META], [ + AC_SUBST([ZFS_META_VERSION]) + fi + ++ if test -n "${_dpkg_parsechangelog}"; then ++ _dpkg_version=$(echo "${_dpkg_parsechangelog}" \ ++ | $AWK '$[]1 == "Version:" { print $[]2; }' \ ++ | cut -d- -f1) ++ if test "${_dpkg_version}" != "$ZFS_META_VERSION"; then ++ AC_MSG_ERROR([ ++ *** Version $ZFS_META_VERSION in the META file is different than ++ *** version $_dpkg_version in the debian/changelog file. DKMS and DEB ++ *** packaging require that these files have the same version. ++ ]) ++ fi ++ fi ++ + ZFS_META_RELEASE=_ZFS_AC_META_GETVAL([Release]); +- if test ! -f ".nogitrelease" && git rev-parse --git-dir > /dev/null 2>&1; then ++ ++ if test -n "${_dpkg_parsechangelog}"; then ++ _dpkg_release=$(echo "${_dpkg_parsechangelog}" \ ++ | $AWK '$[]1 == "Version:" { print $[]2; }' \ ++ | cut -d- -f2-) ++ if test -n "${_dpkg_release}"; then ++ ZFS_META_RELEASE=${_dpkg_release} ++ _zfs_ac_meta_type="dpkg-parsechangelog" ++ fi ++ elif test ! -f ".nogitrelease" && git rev-parse --git-dir > /dev/null 2>&1; then + _match="${ZFS_META_NAME}-${ZFS_META_VERSION}" + _alias=$(git describe --match=${_match} 2>/dev/null) + _release=$(echo ${_alias}|cut -f3- -d'-'|sed 's/-/_/g') diff --git a/debian/patches/0003-Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core.patch b/debian/patches/0003-Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core.patch new file mode 100644 index 000000000000..de9f590608bf --- /dev/null +++ b/debian/patches/0003-Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core.patch @@ -0,0 +1,36 @@ +From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +Date: Sat, 24 Dec 2016 16:55:38 -0800 +Subject: Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core + +=================================================================== +--- + lib/libzfs/Makefile.am | 1 + + lib/libzfs_core/Makefile.am | 3 ++- + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/lib/libzfs/Makefile.am b/lib/libzfs/Makefile.am +index f1260ea..5b07b9d 100644 +--- a/lib/libzfs/Makefile.am ++++ b/lib/libzfs/Makefile.am +@@ -31,6 +31,7 @@ nodist_libzfs_la_SOURCES = \ + + libzfs_la_LIBADD = \ + $(top_builddir)/lib/libzfs_core/libzfs_core.la \ ++ $(top_builddir)/lib/libuutil/libuutil.la \ + $(top_builddir)/lib/libshare/libshare.la \ + $(top_builddir)/lib/libnvpair/libnvpair.la \ + $(top_builddir)/lib/libzpool/libzpool.la +diff --git a/lib/libzfs_core/Makefile.am b/lib/libzfs_core/Makefile.am +index 5eafc25..10d6de3 100644 +--- a/lib/libzfs_core/Makefile.am ++++ b/lib/libzfs_core/Makefile.am +@@ -16,7 +16,8 @@ nodist_libzfs_core_la_SOURCES = \ + $(KERNEL_C) + + libzfs_core_la_LIBADD = \ +- $(top_builddir)/lib/libnvpair/libnvpair.la ++ $(top_builddir)/lib/libnvpair/libnvpair.la \ ++ $(top_builddir)/lib/libuutil/libuutil.la + + libzfs_core_la_LDFLAGS = -version-info 1:0:0 + diff --git a/debian/patches/enable-zed.patch b/debian/patches/enable-zed.patch new file mode 100644 index 000000000000..e6e2fac479bd --- /dev/null +++ b/debian/patches/enable-zed.patch @@ -0,0 +1,30 @@ +From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +Date: Sat, 24 Dec 2016 16:55:39 -0800 +Subject: enable-zed + +--- + cmd/zed/zed.d/zed.rc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cmd/zed/zed.d/zed.rc b/cmd/zed/zed.d/zed.rc +index a1dd337..be0a8c1 100644 +--- a/cmd/zed/zed.d/zed.rc ++++ b/cmd/zed/zed.d/zed.rc +@@ -15,7 +15,7 @@ + # Email will only be sent if ZED_EMAIL_ADDR is defined. + # Disabled by default; uncomment to enable. + # +-#ZED_EMAIL_ADDR="root" ++ZED_EMAIL_ADDR="root" + + ## + # Name or path of executable responsible for sending notifications via email; +@@ -41,7 +41,7 @@ + ## + # Minimum number of seconds between notifications for a similar event. + # +-#ZED_NOTIFY_INTERVAL_SECS=3600 ++ZED_NOTIFY_INTERVAL_SECS=3600 + + ## + # Notification verbosity. diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 000000000000..537565cf3d8d --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,4 @@ +0001-Prevent-manual-builds-in-the-DKMS-source.patch +0002-Check-for-META-and-DCH-consistency-in-autoconf.patch +0003-Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core.patch +enable-zed.patch diff --git a/debian/rules b/debian/rules new file mode 100755 index 000000000000..2c603f31d14c --- /dev/null +++ b/debian/rules @@ -0,0 +1,135 @@ +#!/usr/bin/make -f + +CHMOD ?= chmod +INSTALL ?= install +MAKE ?= make + +META_NAME := $(shell awk '$$1 == "Name:" { print $$2; }' META) +META_VERSION := $(shell dpkg-parsechangelog \ + | awk '$$1 == "Version:" { print $$2; }' | cut -d- -f1) +META_REVISION := $(shell dpkg-parsechangelog \ + | awk '$$1 == "Version:" { print $$2; }' | cut -d- -f2-) +META_DISTDIR := $(CURDIR)/$(META_NAME)-$(META_VERSION)/ + +%: + dh $@ --with autoreconf,dkms + +override_dh_auto_configure: + @# Embed the downstream version in the module. + @sed \ + -e 's/^Version:.*/Version: $(META_VERSION)/' \ + -e 's/^Release:.*/Release: $(META_REVISION)/' \ + -i.orig META + + @# Build the userland, but don't build the kernel modules. + dh_auto_configure -- \ + --bindir=/bin \ + --sbindir=/sbin \ + --libdir=/lib \ + --with-udevdir=/lib/udev \ + --with-config=user + +override_dh_auto_test: + # The dh_auto_test rule is disabled because + # `make check` cannot run in an unprivileged build environment. + +override_dh_auto_install: + @# Install the utilities. + $(MAKE) install DESTDIR='$(CURDIR)/debian/tmp' + + @# Zed has dependencies outside of the system root. + $(INSTALL) -d '$(CURDIR)/debian/tmp/usr/sbin/' + mv '$(CURDIR)/debian/tmp/sbin/zed' '$(CURDIR)/debian/tmp/usr/sbin/zed' + + @# Get a bare copy of the source code for DKMS. + @# This creates the $(META_DISTDIR)/ tree. + $(MAKE) distdir + + @# Delete components that are not required to build the kernel modules. + @# This prevents several lintian complaints, discourages users from + @# running `make install` in /usr/src, and reduces the installation + @# size by one third. The printf creates a dummy automake file. + umask 0111 && \ + cd '$(META_DISTDIR)' && \ + for ii in $$(find cmd dracut etc lib man rpm scripts udev -type f); do \ + rm "$$ii"; \ + test "$$ii" != "$${ii%.in}" && printf '%%:\n\t#\n' >"$$ii"; \ + true; \ + done + + @# This shunt allows DKMS to copy the Module.symvers and zfs_config.h + @# files into the ${dkms_tree} area through the POST_INSTALL directive. + printf '#!/bin/sh\ncp "$$@"\n' >'$(META_DISTDIR)/cp' + $(CHMOD) 755 '$(META_DISTDIR)/cp' + + @# Install the DKMS source directly, avoiding dh_install. + $(INSTALL) -d '$(CURDIR)/debian/zfs-dkms/usr/src/' + mv '$(META_DISTDIR)' '$(CURDIR)/debian/zfs-dkms/usr/src/' + +override_dh_dkms: + dh_dkms -V $(META_VERSION) + +override_dh_fixperms: + dh_fixperms + + @# Prevent execute bits from being stripped by the Launchpad pbuilder. + $(CHMOD) a+x '$(CURDIR)'/debian/zfsutils-linux/usr/share/initramfs-tools/hooks/* \ + '$(CURDIR)'/debian/zfsutils-linux/usr/lib/zfs-linux/scrub + if [ -d '$(CURDIR)'/debian/zfs-initramfs/usr/share/initramfs-tools/hooks ]; then \ + $(CHMOD) a+x '$(CURDIR)'/debian/zfs-initramfs/usr/share/initramfs-tools/hooks/*; \ + fi + +override_dh_install: + @# Exclude the upstream /usr/lib/udev/rules.d files. + dh_install -X/rules.d/ + + $(INSTALL) -d '$(CURDIR)/debian/zfs-initramfs/lib/udev/rules.d' + $(INSTALL) -m 644 '$(CURDIR)/debian/tree/zfs-initramfs/lib/udev/rules.d'/* \ + '$(CURDIR)/debian/zfs-initramfs/lib/udev/rules.d/' + + @# Ensure that /etc/zfs is in the zfsutils package + @# because git has difficulty tracking empty directories. + $(INSTALL) -d '$(CURDIR)/debian/zfsutils-linux/etc/zfs/' + $(INSTALL) -d '$(CURDIR)/debian/libzfslinux-dev/usr/lib/zfs-linux/' + + + # No need to ship .la files + find . -name lib*.la -delete + +override_dh_installdocs: + dh_installdocs --link-doc=zfs-doc + +override_dh_installinit: + # zfs.target isn't automatically handled by dh_systemd(?) + dh_systemd_enable -p zfsutils-linux zfs.target + + @# Install debian/zfs-zed.zed.upstart as /etc/init/zed.conf + @# and debian/zfs-zed.zed.service as /lib/systemd/system/zed.service + dh_installinit --name=zed + + @# Install debian/zfsutils.zfs.default as /etc/default/zfs. + dh_installinit --name=zfs + + @# Install debian/zfsutils.zpool-import.upstart as /etc/init/zpool-import.conf. + dh_installinit --name=zpool-import --no-restart-on-upgrade --no-start + + @# Ubuntu runs nfs-kernel-server at sysv sequence 20 80 and iscsitarget at 20 20. + dh_installinit --name=zfs-share --no-restart-on-upgrade --no-start -- defaults 25 15 + + @# Only for systemd: + dh_installinit --name=zfs-import-cache + dh_installinit --name=zfs-import-scan + dh_installinit --name=zfs-mount + dh_systemd_start + +override_dh_installudev: + dh_installudev --name=zvol --priority=60 + dh_installudev --name=vdev --priority=69 + +override_dh_strip: + dh_strip -plibnvpair1linux --dbg-package=libnvpair1linux-dbg + dh_strip -plibuutil1linux --dbg-package=libuutil1linux-dbg + dh_strip -plibzfs2linux --dbg-package=libzfs2linux-dbg + dh_strip -plibzpool2linux --dbg-package=libzpool2linux-dbg + dh_strip -pzfs-zed --dbg-package=zfs-zed-dbg + dh_strip -pzfsutils-linux --dbg-package=zfsutils-linux-dbg diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 000000000000..163aaf8d82b6 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 000000000000..f0197e683ce9 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,3 @@ +Tests: kernel-smoke-test +Restrictions: needs-root +Depends: @ diff --git a/debian/tests/kernel-smoke-test b/debian/tests/kernel-smoke-test new file mode 100755 index 000000000000..8edf18f85c55 --- /dev/null +++ b/debian/tests/kernel-smoke-test @@ -0,0 +1,48 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# +# We run all the tests in this specific order from this +# main script so that we don't have to go through the +# pain of checking and rebuilding installing and removing +# the modules for each test. A good smoke test will +# exercise all the base functionality with the same +# instance of the ZFS spl and zfs drivers to see what +# the cumulative testing of each scenario does to the +# environment. +# +TESTS="kernel-smoke-test-pool-2x2-mirror kernel-smoke-test-pool-4x1-mirror kernel-smoke-test-pool-nested-raidz3 kernel-smoke-test-pool-raidz1 kernel-smoke-test-pool-raidz2 kernel-smoke-test-pool-raidz3 kernel-smoke-test-pool-striped kernel-smoke-test-zil kernel-smoke-test-filesystem kernel-smoke-test-snapshot kernel-smoke-test-clone kernel-smoke-test-send-receive kernel-smoke-test-scrub" +rc=0 +# +# We only test on 64 bit arches for the moment +# as these are the ones that ZFS supports. +# +if [ `getconf LONG_BIT` = "32" ] +then + echo "Testing on 32 bit architectures not possible." + exit 0 +fi + +for t in ${TESTS} +do + ./debian/tests/$t + if [ $? -ne 0 ]; then + rc=1 + fi +done +exit $rc diff --git a/debian/tests/kernel-smoke-test-clone b/debian/tests/kernel-smoke-test-clone new file mode 100755 index 000000000000..eaa2c2391eec --- /dev/null +++ b/debian/tests/kernel-smoke-test-clone @@ -0,0 +1,96 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +echo -n "kernel smoke test, ZFS clone: " +TMP=/tmp +VDEV0=${TMP}/pool0-$$.img +VDEV1=${TMP}/pool1-$$.img +POOL=pool-smoke-$$ +DATA=/${POOL}/test/data +DATA_CLONE=/${POOL}/test-clone/data + +dd if=/dev/zero of=${VDEV0} bs=1M count=128 > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV1} bs=1M count=128 > /dev/null 2>&1 + +zpool create ${POOL} ${VDEV0} ${VDEV1} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool create failed, exit code=$ret" + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +zfs create ${POOL}/test +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zfs create failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +# +# Populate with files.. +# +cp -rp /etc /${POOL}/test +dd if=/dev/urandom of=${DATA} bs=1M count=64 > /dev/null 2>&1 +sum1=$(md5sum ${DATA} | awk '{print $1}') + +# +# Make a snapshot +# +zfs snapshot -r ${POOL}/test@snap +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zfs snapshot failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +# +# Clone +# +zfs clone ${POOL}/test@snap ${POOL}/test-clone + +# +# Checksums must agree +# +sum2=$(md5sum ${DATA_CLONE} | awk '{print $1}') +if [ x"$sum1" != x"$sum2" ]; then + echo "FAILED: cloned data different from original" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +zpool destroy ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool destroy failed, exit code=$ret" + # + # destroy failed, try to clean up, but this + # wil probably fail + # + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +rm ${VDEV0} ${VDEV1} +echo "PASSED" +exit 0 diff --git a/debian/tests/kernel-smoke-test-filesystem b/debian/tests/kernel-smoke-test-filesystem new file mode 100755 index 000000000000..d8fd834803c0 --- /dev/null +++ b/debian/tests/kernel-smoke-test-filesystem @@ -0,0 +1,99 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +echo -n "kernel smoke test, create and destroy ZFS filesystems: " +TMP=/tmp +VDEV0=${TMP}/pool0-$$.img +VDEV1=${TMP}/pool1-$$.img +POOL=pool-smoke-$$ +ZFSFS="test tmp example data1 data2 data3" + +dd if=/dev/zero of=${VDEV0} bs=1M count=512 > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV1} bs=1M count=512 > /dev/null 2>&1 + +zpool create ${POOL} ${VDEV0} ${VDEV1} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool create failed, exit code=$ret" + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +# +# And populate with ZFS file systems +# +for fs in ${ZFSFS} +do + zfs create ${POOL}/$fs + ret=$? + if [ $ret -ne 0 ]; then + echo "FAILED: zfs create filesystem $fs failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 + fi + + zfs set quota=128M ${POOL}/$fs + ret=$? + if [ $ret -ne 0 ]; then + echo "FAILED: zfs set quota on $fs failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 + fi + + zfs set compression=on ${POOL}/$fs + ret=$? + if [ $ret -ne 0 ]; then + echo "FAILED: zfs set compression on $fs failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 + fi +done + +# +# And destroy ZFS file systems +# +for fs in ${ZFSFS} +do + zfs destroy ${POOL}/$fs + ret=$? + if [ $ret -ne 0 ]; then + echo "FAILED: zfs destroy filesystem $fs failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 + fi +done + +zpool destroy ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool destroy failed, exit code=$ret" + # + # destroy failed, try to clean up, but this + # wil probably fail + # + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +rm ${VDEV0} ${VDEV1} +echo "PASSED" +exit 0 diff --git a/debian/tests/kernel-smoke-test-pool-2x2-mirror b/debian/tests/kernel-smoke-test-pool-2x2-mirror new file mode 100755 index 000000000000..7728f8853ac2 --- /dev/null +++ b/debian/tests/kernel-smoke-test-pool-2x2-mirror @@ -0,0 +1,55 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +echo -n "kernel smoke test, create and destroy pool, 2x2 mirror: " +TMP=/tmp +VDEV0=${TMP}/pool0-$$.img +VDEV1=${TMP}/pool1-$$.img +VDEV2=${TMP}/pool2-$$.img +VDEV3=${TMP}/pool3-$$.img +VDEV_SZ=128 +POOL=pool-smoke-$$ + +dd if=/dev/zero of=${VDEV0} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV1} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV2} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV3} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 + +zpool create ${POOL} mirror ${VDEV0} ${VDEV1} mirror ${VDEV2} ${VDEV3} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool create failed, exit code=$ret" + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +zpool destroy ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool destroy failed, exit code=$ret" + # + # destroy failed, try to clean up, but this + # wil probably fail + # + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} +echo "PASSED" +exit 0 diff --git a/debian/tests/kernel-smoke-test-pool-4x1-mirror b/debian/tests/kernel-smoke-test-pool-4x1-mirror new file mode 100755 index 000000000000..b48f86899fe6 --- /dev/null +++ b/debian/tests/kernel-smoke-test-pool-4x1-mirror @@ -0,0 +1,55 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +echo -n "kernel smoke test, create and destroy pool, 4x1 mirror: " +TMP=/tmp +VDEV0=${TMP}/pool0-$$.img +VDEV1=${TMP}/pool1-$$.img +VDEV2=${TMP}/pool2-$$.img +VDEV3=${TMP}/pool3-$$.img +VDEV_SZ=128 +POOL=pool-smoke-$$ + +dd if=/dev/zero of=${VDEV0} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV1} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV2} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV3} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 + +zpool create ${POOL} mirror ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool create failed, exit code=$ret" + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +zpool destroy ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool destroy failed, exit code=$ret" + # + # destroy failed, try to clean up, but this + # wil probably fail + # + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} +echo "PASSED" +exit 0 diff --git a/debian/tests/kernel-smoke-test-pool-nested-raidz3 b/debian/tests/kernel-smoke-test-pool-nested-raidz3 new file mode 100755 index 000000000000..5f233a59e6b1 --- /dev/null +++ b/debian/tests/kernel-smoke-test-pool-nested-raidz3 @@ -0,0 +1,63 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +echo -n "kernel smoke test, create and destroy pool, nested raidz3: " +TMP=/tmp +VDEV0=${TMP}/pool0-$$.img +VDEV1=${TMP}/pool1-$$.img +VDEV2=${TMP}/pool2-$$.img +VDEV3=${TMP}/pool3-$$.img +VDEV4=${TMP}/pool4-$$.img +VDEV5=${TMP}/pool5-$$.img +VDEV6=${TMP}/pool6-$$.img +VDEV7=${TMP}/pool7-$$.img +VDEV_SZ=64 +POOL=pool-smoke-$$ + +dd if=/dev/zero of=${VDEV0} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV1} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV2} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV3} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV4} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV5} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV6} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV7} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 + +zpool create ${POOL} raidz3 ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} raidz3 ${VDEV4} ${VDEV5} ${VDEV6} ${VDEV7} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool create failed, exit code=$ret" + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} ${VDEV4} ${VDEV5} ${VDEV6} ${VDEV7} + exit 1 +fi + +zpool destroy ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool destroy failed, exit code=$ret" + # + # destroy failed, try to clean up, but this + # wil probably fail + # + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} ${VDEV4} ${VDEV5} ${VDEV6} ${VDEV7} + exit 1 +fi + +rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} ${VDEV4} ${VDEV5} ${VDEV6} ${VDEV7} +echo "PASSED" +exit 0 diff --git a/debian/tests/kernel-smoke-test-pool-raidz1 b/debian/tests/kernel-smoke-test-pool-raidz1 new file mode 100755 index 000000000000..cf8d04b36a1d --- /dev/null +++ b/debian/tests/kernel-smoke-test-pool-raidz1 @@ -0,0 +1,55 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +echo -n "kernel smoke test, create and destroy pool, raidz1: " +TMP=/tmp +VDEV0=${TMP}/pool0-$$.img +VDEV1=${TMP}/pool1-$$.img +VDEV2=${TMP}/pool2-$$.img +VDEV3=${TMP}/pool3-$$.img +VDEV_SZ=128 +POOL=pool-smoke-$$ + +dd if=/dev/zero of=${VDEV0} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV1} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV2} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV3} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 + +zpool create ${POOL} raidz ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool create failed, exit code=$ret" + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +zpool destroy ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool destroy failed, exit code=$ret" + # + # destroy failed, try to clean up, but this + # wil probably fail + # + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} +echo "PASSED" +exit 0 diff --git a/debian/tests/kernel-smoke-test-pool-raidz2 b/debian/tests/kernel-smoke-test-pool-raidz2 new file mode 100755 index 000000000000..236aa2906f5e --- /dev/null +++ b/debian/tests/kernel-smoke-test-pool-raidz2 @@ -0,0 +1,55 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +echo -n "kernel smoke test, create and destroy pool, raidz2: " +TMP=/tmp +VDEV0=${TMP}/pool0-$$.img +VDEV1=${TMP}/pool1-$$.img +VDEV2=${TMP}/pool2-$$.img +VDEV3=${TMP}/pool3-$$.img +VDEV_SZ=128 +POOL=pool-smoke-$$ + +dd if=/dev/zero of=${VDEV0} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV1} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV2} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV3} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 + +zpool create ${POOL} raidz2 ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool create failed, exit code=$ret" + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +zpool destroy ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool destroy failed, exit code=$ret" + # + # destroy failed, try to clean up, but this + # wil probably fail + # + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} +echo "PASSED" +exit 0 diff --git a/debian/tests/kernel-smoke-test-pool-raidz3 b/debian/tests/kernel-smoke-test-pool-raidz3 new file mode 100755 index 000000000000..15835bf0166a --- /dev/null +++ b/debian/tests/kernel-smoke-test-pool-raidz3 @@ -0,0 +1,55 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +echo -n "kernel smoke test, create and destroy pool, raidz3: " +TMP=/tmp +VDEV0=${TMP}/pool0-$$.img +VDEV1=${TMP}/pool1-$$.img +VDEV2=${TMP}/pool2-$$.img +VDEV3=${TMP}/pool3-$$.img +VDEV_SZ=128 +POOL=pool-smoke-$$ + +dd if=/dev/zero of=${VDEV0} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV1} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV2} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV3} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 + +zpool create ${POOL} raidz3 ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool create failed, exit code=$ret" + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +zpool destroy ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool destroy failed, exit code=$ret" + # + # destroy failed, try to clean up, but this + # wil probably fail + # + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} +echo "PASSED" +exit 0 diff --git a/debian/tests/kernel-smoke-test-pool-striped b/debian/tests/kernel-smoke-test-pool-striped new file mode 100755 index 000000000000..d035f067638d --- /dev/null +++ b/debian/tests/kernel-smoke-test-pool-striped @@ -0,0 +1,55 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +echo -n "kernel smoke test, create and destroy pool, striped: " +TMP=/tmp +VDEV0=${TMP}/pool0-$$.img +VDEV1=${TMP}/pool1-$$.img +VDEV2=${TMP}/pool2-$$.img +VDEV3=${TMP}/pool3-$$.img +VDEV_SZ=128 +POOL=pool-smoke-$$ + +dd if=/dev/zero of=${VDEV0} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV1} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV2} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV3} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 + +zpool create ${POOL} ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool create failed, exit code=$ret" + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +zpool destroy ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool destroy failed, exit code=$ret" + # + # destroy failed, try to clean up, but this + # wil probably fail + # + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} +echo "PASSED" +exit 0 diff --git a/debian/tests/kernel-smoke-test-scrub b/debian/tests/kernel-smoke-test-scrub new file mode 100755 index 000000000000..a330715b4702 --- /dev/null +++ b/debian/tests/kernel-smoke-test-scrub @@ -0,0 +1,114 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +echo -n "kernel smoke test, corrupt data and clean with a scrub: " +TMP=/tmp +VDEV0=${TMP}/pool0-$$.img +VDEV1=${TMP}/pool1-$$.img +VDEV2=${TMP}/pool2-$$.img +VDEV3=${TMP}/pool3-$$.img +VDEV_SZ=128 +POOL=pool-smoke-$$ +DATA=/${POOL}/random.dat +ZFSFS="test tmp example data1 data2 data3" + +dd if=/dev/zero of=${VDEV0} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV1} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV2} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV3} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 + +zpool create ${POOL} mirror ${VDEV0} ${VDEV1} mirror ${VDEV2} ${VDEV3} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool create failed, exit code=$ret" + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +# +# Create a file +# +dd if=/dev/urandom of=$DATA bs=1M count=64 > /dev/null 2>&1 +sum1=$(md5sum ${DATA} | awk '{print $1}') + +# +# Corrupt VDEV0 +# +dd if=/dev/zero of=${VDEV0} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +sync + +# +# Offline "corrupted" VDEV +# +zpool detach ${POOL} ${VDEV0} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool detach failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +# +# Zero corrupted VDEV and re-attach +# +dd if=/dev/zero of=${VDEV0} bs=1M count=${VDEV_SZ} > /dev/null 2>&1 +zpool attach ${POOL} ${VDEV1} ${VDEV0} -f +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool attach failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +zpool scrub ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool scrub failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +sum2=$(md5sum ${DATA} | awk '{print $1}') +# +# Checksums must agree +# +if [ x"$sum1" != x"$sum2" ]; then + echo "FAILED: corrupted data on scrubbed pool" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +zpool destroy ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool destroy failed, exit code=$ret" + # + # destroy failed, try to clean up, but this + # wil probably fail + # + rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} + exit 1 +fi + +rm ${VDEV0} ${VDEV1} ${VDEV2} ${VDEV3} +echo "PASSED" +exit 0 diff --git a/debian/tests/kernel-smoke-test-send-receive b/debian/tests/kernel-smoke-test-send-receive new file mode 100755 index 000000000000..b1f6668edde1 --- /dev/null +++ b/debian/tests/kernel-smoke-test-send-receive @@ -0,0 +1,109 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +echo -n "kernel smoke test, ZFS send and receive: " +TMP=/tmp +VDEV0=${TMP}/pool0-$$.img +VDEV1=${TMP}/pool1-$$.img +POOL=pool-smoke-$$ +SNAP=${TMP}/snapshot-$$.zfs +DATA=/${POOL}/test/data + +dd if=/dev/zero of=${VDEV0} bs=1M count=512 > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV1} bs=1M count=512 > /dev/null 2>&1 + +zpool create ${POOL} ${VDEV0} ${VDEV1} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool create failed, exit code=$ret" + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +zfs create ${POOL}/test +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zfs create failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +# +# Populate with files.. +# +cp -rp /etc /${POOL}/test +dd if=/dev/urandom of=${DATA} bs=1M count=64 > /dev/null 2>&1 +sum1=$(md5sum ${DATA} | awk '{print $1}') + +# +# Make a snapshot +# +zfs snapshot -r ${POOL}/test@snap +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zfs snapshot failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +# +# Make snapshot +# +zfs send ${POOL}/test@snap > ${SNAP} + +rm -rf ${POOL}/test + +zfs destroy ${POOL}/test@snap +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zfs destroy snapshot failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +# +# Receive it back.. +# +zfs receive -F ${POOL}/test < ${SNAP} + +sum2=$(md5sum ${DATA} | awk '{print $1}') +if [ x"$sum1" != x"$sum2" ]; then + echo "FAILED: received data different from original" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +zpool destroy ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool destroy failed, exit code=$ret" + # + # destroy failed, try to clean up, but this + # wil probably fail + # + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +rm ${VDEV0} ${VDEV1} +echo "PASSED" +exit 0 diff --git a/debian/tests/kernel-smoke-test-snapshot b/debian/tests/kernel-smoke-test-snapshot new file mode 100755 index 000000000000..62e10c2679a8 --- /dev/null +++ b/debian/tests/kernel-smoke-test-snapshot @@ -0,0 +1,121 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +echo -n "kernel smoke test, ZFS snapshot: " +TMP=/tmp +VDEV0=${TMP}/pool0-$$.img +VDEV1=${TMP}/pool1-$$.img +POOL=pool-smoke-$$ +MARKER=/${POOL}/test/marker + +dd if=/dev/zero of=${VDEV0} bs=1M count=512 > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV1} bs=1M count=512 > /dev/null 2>&1 + +zpool create ${POOL} ${VDEV0} ${VDEV1} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool create failed, exit code=$ret" + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +zfs create ${POOL}/test +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zfs create failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +# +# Populate with files.. +# +cp -rp /etc /${POOL}/test +echo $$ > ${MARKER} + +# +# Make a snapshot +# +zfs snapshot -r ${POOL}/test@snap +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zfs snapshot failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +# +# Remove files +# +rm -rf /${POOL}/test/etc ${MARKER} + +# +# Roll back +# +zfs rollback ${POOL}/test@snap +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zfs rollback failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +# +# Check rolled back marker contains sane data +# +if [ ! -e ${MARKER} ]; then + echo "FAILED: zfs rollback failed, ${MARKER} not restored" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi +data=$(cat ${MARKER}) +if [ $data -ne $$ ]; then + echo "FAILED: zfs rollback failed, ${MARKER} contained unexpected data" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +zfs destroy ${POOL}/test@snap +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zfs destroy snapshot failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +zpool destroy ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool destroy failed, exit code=$ret" + # + # destroy failed, try to clean up, but this + # wil probably fail + # + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +rm ${VDEV0} ${VDEV1} +echo "PASSED" +exit 0 diff --git a/debian/tests/kernel-smoke-test-zil b/debian/tests/kernel-smoke-test-zil new file mode 100755 index 000000000000..42af87a59801 --- /dev/null +++ b/debian/tests/kernel-smoke-test-zil @@ -0,0 +1,76 @@ +#!/bin/sh +# +# Copyright (C) 2016 Canonical +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +echo -n "kernel smoke test, create and destroy ZFS Intent Log: " +TMP=/tmp +VDEV0=${TMP}/pool0-$$.img +VDEV1=${TMP}/pool1-$$.img +POOL=pool-smoke-$$ + +dd if=/dev/zero of=${VDEV0} bs=1M count=512 > /dev/null 2>&1 +dd if=/dev/zero of=${VDEV1} bs=1M count=512 > /dev/null 2>&1 + +zpool create ${POOL} ${VDEV0} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool create failed, exit code=$ret" + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +# +# And add the ZIL +# +zpool add ${POOL} log ${VDEV1} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: ZIL add failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +sync + +# +# And now remove ZIL +# +zpool remove ${POOL} ${VDEV1} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: ZIL remove failed, exit code=$ret" + zpool destroy ${POOL} + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +zpool destroy ${POOL} +ret=$? +if [ $ret -ne 0 ]; then + echo "FAILED: zpool destroy failed, exit code=$ret" + # + # destroy failed, try to clean up, but this + # wil probably fail + # + rm ${VDEV0} ${VDEV1} + exit 1 +fi + +rm ${VDEV0} ${VDEV1} +echo "PASSED" +exit 0 diff --git a/debian/tree/zfs-doc/etc/dpkg/dpkg.cfg.d/zfs-doc b/debian/tree/zfs-doc/etc/dpkg/dpkg.cfg.d/zfs-doc new file mode 100644 index 000000000000..363f5966c43d --- /dev/null +++ b/debian/tree/zfs-doc/etc/dpkg/dpkg.cfg.d/zfs-doc @@ -0,0 +1,6 @@ +## /etc/dpkg/dpkg.cfg.d/zfs-doc +## +## DPKG overrides that prevent the installation of ZoL documentation. + +## Enable this line to reduce installation size. +#path-exclude /usr/share/doc/zfs-doc/* diff --git a/debian/tree/zfs-initramfs/lib/udev/rules.d/60-zpool.rules b/debian/tree/zfs-initramfs/lib/udev/rules.d/60-zpool.rules new file mode 100644 index 000000000000..f8c29a750c91 --- /dev/null +++ b/debian/tree/zfs-initramfs/lib/udev/rules.d/60-zpool.rules @@ -0,0 +1,8 @@ +# This creates symlinks directly in /dev with the same names as those in +# /dev/disk/by-id, but only for ZFS partitions. This is necessary for GRUB to +# https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1527727 +# https://bugs.launchpad.net/ubuntu/+source/zfs-initramfs/+bug/1530953 +# locate the partitions using the output of `zpool status`. +KERNEL=="sd*[0-9]", IMPORT{parent}=="ID_*", ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_TYPE}=="6a898cc3-1dd2-11b2-99a6-080020736631", SYMLINK+="$env{ID_BUS}-$env{ID_SERIAL}-part%n" +KERNEL=="sd*[0-9]", IMPORT{parent}=="ID_*", ENV{ID_FS_TYPE}=="zfs_member", ENV{ID_FS_USAGE}=="raid", SYMLINK+="$env{ID_BUS}-$env{ID_SERIAL}-part%n" + diff --git a/debian/tree/zfs-initramfs/usr/share/initramfs-tools/conf-hooks.d/zfs b/debian/tree/zfs-initramfs/usr/share/initramfs-tools/conf-hooks.d/zfs new file mode 100644 index 000000000000..29950cac04bb --- /dev/null +++ b/debian/tree/zfs-initramfs/usr/share/initramfs-tools/conf-hooks.d/zfs @@ -0,0 +1,2 @@ +# Force the inclusion of Busybox in the initramfs. +BUSYBOX=y diff --git a/debian/tree/zfs-initramfs/usr/share/initramfs-tools/conf.d/zfs b/debian/tree/zfs-initramfs/usr/share/initramfs-tools/conf.d/zfs new file mode 100644 index 000000000000..5103cc450858 --- /dev/null +++ b/debian/tree/zfs-initramfs/usr/share/initramfs-tools/conf.d/zfs @@ -0,0 +1,8 @@ +for x in $(cat /proc/cmdline) +do + case $x in + root=ZFS=*) + BOOT=zfs + ;; + esac +done diff --git a/debian/tree/zfs-initramfs/usr/share/initramfs-tools/hooks/zfs b/debian/tree/zfs-initramfs/usr/share/initramfs-tools/hooks/zfs new file mode 100644 index 000000000000..16d644c7ffe2 --- /dev/null +++ b/debian/tree/zfs-initramfs/usr/share/initramfs-tools/hooks/zfs @@ -0,0 +1,75 @@ +#!/bin/sh +# +# Add ZoL filesystem capabilities to an initrd, usually for a native OpenZFS root. +# + +# This hook installs udev rules for ZoL. +PREREQ="zdev" + +# These prerequisites are provided by the zfsutils package. The zdb utility is +# not strictly required, but it can be useful at the initramfs recovery prompt. +COPY_EXEC_LIST="/sbin/zdb /sbin/zpool /sbin/zfs /sbin/mount.zfs" + +# These prerequisites are provided by the base system. +COPY_EXEC_LIST="$COPY_EXEC_LIST /bin/hostname /sbin/blkid" + +# Explicitly specify all kernel modules because automatic dependency resolution +# is unreliable on many systems. +MANUAL_ADD_MODULES_LIST="zlib_deflate spl zavl zcommon znvpair zunicode zfs" + +# Generic result code. +RC=0 + +case $1 in +prereqs) + echo "$PREREQ" + exit 0 + ;; +esac + +for ii in $COPY_EXEC_LIST +do + if [ ! -x "$ii" ] + then + echo "Error: $ii is not executable." + RC=2 + fi +done + +if [ "$RC" -ne 0 ] +then + exit "$RC" +fi + +. /usr/share/initramfs-tools/hook-functions + +mkdir -p "$DESTDIR/etc/" + +# ZDB uses pthreads for some functions, but the library dependency is not +# automatically detected. The `find` utility and extended `cp` options are +# used here because libgcc_s.so could be in a subdirectory of /lib for +# multi-arch installations. +cp --target-directory="$DESTDIR" --parents $(find /lib -type f -name libgcc_s.so.1) + +for ii in $COPY_EXEC_LIST +do + copy_exec "$ii" +done + +for ii in $MANUAL_ADD_MODULES_LIST +do + manual_add_modules "$ii" +done + +if [ -f "/etc/hostname" ] +then + cp -p "/etc/hostname" "$DESTDIR/etc/" +else + hostname >"$DESTDIR/etc/hostname" +fi + +# ZoL 0.6.3 deprecated the hostid check. +if [ -f /etc/hostid ] +then + cp -p /etc/hostid "$DESTDIR/etc/hostid" +fi diff --git a/debian/tree/zfs-initramfs/usr/share/initramfs-tools/scripts/zfs b/debian/tree/zfs-initramfs/usr/share/initramfs-tools/scripts/zfs new file mode 100644 index 000000000000..91ac02ac110b --- /dev/null +++ b/debian/tree/zfs-initramfs/usr/share/initramfs-tools/scripts/zfs @@ -0,0 +1,132 @@ +# ZFS boot stub for initramfs-tools. + +zfs_test_import() +{ + ZFS_STDERR=$(zpool import -o readonly=on -N "$ZFS_RPOOL" 2>&1) + ZFS_ERROR=$? + if [ "$ZFS_ERROR" -eq 0 ] + then + ZFS_HEALTH=$(zpool list -H -o health "$ZFS_RPOOL" 2>/dev/null) + fi + while [ "$retry_nr" -lt "$delay" ] + do + ZFS_STDERR=$(zpool export "$ZFS_RPOOL" 2>&1) + if ! echo "$ZFS_STDERR" | grep -q "is busy" + then + break + fi + /bin/sleep 1 + retry_nr=$(( $retry_nr + 1 )) + done +} + +mountroot() +{ + [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-top" + run_scripts /scripts/local-top + [ "$quiet" != "y" ] && log_end_msg + + [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-premount" + run_scripts /scripts/local-premount + [ "$quiet" != "y" ] && log_end_msg + + # Wait for all of the /dev/{hd,sd}[a-z] device nodes to appear. + wait_for_udev + + modprobe zfs zfs_autoimport_disable=1 + + ZFS_BOOTFS=${ROOT#ZFS=} + ZFS_RPOOL=$(echo "$ZFS_BOOTFS" | sed -e 's,/.*,,') + + delay=${ROOTDELAY:-0} + + if [ "$delay" -gt 0 ] + then + # Try to import the pool read-only. If it does not import with + # the ONLINE status, wait and try again. The pool could be + # DEGRADED because a drive is really missing, or it might just + # be slow to be detected. + retry_nr=0 + zfs_test_import + while [ "$retry_nr" -lt "$delay" ] && [ "$ZFS_HEALTH" != "ONLINE" ] + do + [ "$quiet" != "y" ] && log_begin_msg "Retrying ZFS read-only import" + /bin/sleep 1 + zfs_test_import + retry_nr=$(( $retry_nr + 1 )) + [ "$quiet" != "y" ] && log_end_msg + done + unset retry_nr + unset ZFS_HEALTH + fi + unset delay + + # At this point, the pool either imported cleanly, or we ran out of the + # allowed time (rootdelay). Perform the read-write import. + ZFS_STDERR=$(zpool import -N "$ZFS_RPOOL" 2>&1) + ZFS_ERROR=$? + + if [ "$ZFS_ERROR" -ne 0 ] + then + panic "Command: zpool import -N $ZFS_RPOOL +Message: $ZFS_STDERR +Error: $ZFS_ERROR + +Manually import the root pool at the command prompt and then exit. +Hint: Try: zpool import -f -R / -N $ZFS_RPOOL" + fi + + # Set elevator=noop on the root pool's vdevs' disks. ZFS already + # does this for wholedisk vdevs (for all pools), so this is only + # important for partitions. + zpool status -L "$ZFS_RPOOL" 2>/dev/null | + awk '/^\t / && !/(mirror|raidz)/ { + dev=$1; + sub(/[0-9]+$/, "", dev); + print dev + }' | + while read i + do + if [ -e "/sys/block/$i/queue/scheduler" ] + then + echo noop > "/sys/block/$i/queue/scheduler" + fi + done + + # Force the mountpoint to the only correct value for a root filesystem. + [ "$quiet" != "y" ] && log_begin_msg "Setting mountpoint=/ on ZFS filesystem $ZFS_BOOTFS" + ZFS_STDERR=$(zfs set mountpoint=/ "$ZFS_BOOTFS" 2>&1) + [ "$quiet" != "y" ] && log_end_msg + + # Ideally, the root filesystem would be mounted like this: + # + # zpool import -R "$rootmnt" -N "$ZFS_RPOOL" + # zfs mount -o mountpoint=/ "$ZFS_BOOTFS" + # + # but the MOUNTPOINT prefix is preserved on descendent filesystem after + # the pivot into the regular root, which later breaks things like + # `zfs mount -a` and the /etc/mtab refresh. + + [ "$quiet" != "y" ] && log_begin_msg "Mounting ZFS filesystem $ZFS_BOOTFS" + ZFS_STDERR=$(mount -t zfs -o zfsutil "$ZFS_BOOTFS" "$rootmnt" 2>&1) + ZFS_ERROR=$? + [ "$quiet" != "y" ] && log_end_msg + + if [ "$ZFS_ERROR" -ne 0 ] + then + panic "Command: mount -t zfs -o zfsutil $ZFS_BOOTFS $rootmnt +Message: $ZFS_STDERR +Error: $ZFS_ERROR + +Manually mount the root filesystem on $rootmnt and then exit." + fi + + unset ZFS_BOOTFS + unset ZFS_RPOOL + unset ZFS_STDERR + unset ZFS_ERROR + + [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-bottom" + run_scripts /scripts/local-bottom + [ "$quiet" != "y" ] && log_end_msg +} diff --git a/debian/tree/zfsutils-linux/etc/sudoers.d/zfs b/debian/tree/zfsutils-linux/etc/sudoers.d/zfs new file mode 100644 index 000000000000..5c5b789b9e97 --- /dev/null +++ b/debian/tree/zfsutils-linux/etc/sudoers.d/zfs @@ -0,0 +1,18 @@ +## Allow read-only ZoL commands to be called through sudo +## without a password. Remove the first '#' column to enable. +## +## CAUTION: Any syntax error introduced here will break sudo. +## +## Cmnd alias specification +#Cmnd_Alias C_ZFS = \ +# /sbin/zfs "", /sbin/zfs help *, \ +# /sbin/zfs get, /sbin/zfs get *, \ +# /sbin/zfs list, /sbin/zfs list *, \ +# /sbin/zpool "", /sbin/zpool help *, \ +# /sbin/zpool iostat, /sbin/zpool iostat *, \ +# /sbin/zpool list, /sbin/zpool list *, \ +# /sbin/zpool status, /sbin/zpool status *, \ +# /sbin/zpool upgrade, /sbin/zpool upgrade -v +# +## allow any user to use basic read-only ZFS commands +#ALL ALL = (root) NOPASSWD: C_ZFS diff --git a/debian/tree/zfsutils-linux/usr/lib/os-probes/10zvol-test b/debian/tree/zfsutils-linux/usr/lib/os-probes/10zvol-test new file mode 100755 index 000000000000..cdbe7a5fe305 --- /dev/null +++ b/debian/tree/zfsutils-linux/usr/lib/os-probes/10zvol-test @@ -0,0 +1,14 @@ +#!/bin/sh +# Sub-test to exclude ZVOLs +set -e +partition="$1" + +. /usr/share/os-prober/common.sh + +if [ "$(stat -L -c %t "$partition")" = "e6" ] ; then + debug "$1 is a ZVOL; skipping" + exit 0 +fi + +# No ZVOLs found +exit 1 diff --git a/debian/tree/zfsutils-linux/usr/lib/zfs-linux/scrub b/debian/tree/zfsutils-linux/usr/lib/zfs-linux/scrub new file mode 100644 index 000000000000..29b7709617a3 --- /dev/null +++ b/debian/tree/zfsutils-linux/usr/lib/zfs-linux/scrub @@ -0,0 +1,9 @@ +#!/bin/sh -eu + +# Scrub all healthy pools. +zpool list -H -o health,name 2>&1 | \ + awk 'BEGIN {FS="\t"} {if ($1 ~ /^ONLINE/) print $2}' | \ +while read pool +do + zpool scrub "$pool" +done diff --git a/debian/tree/zfsutils-linux/usr/share/bash-completion/completions/zfs b/debian/tree/zfsutils-linux/usr/share/bash-completion/completions/zfs new file mode 100644 index 000000000000..3304ea2a713f --- /dev/null +++ b/debian/tree/zfsutils-linux/usr/share/bash-completion/completions/zfs @@ -0,0 +1,391 @@ +# Copyright (c) 2013, Aneurin Price <aneurin.price@gmail.com> + +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, +# copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following +# conditions: + +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +if [[ -w /dev/zfs ]]; then + __ZFS_CMD="zfs" + __ZPOOL_CMD="zpool" +else + __ZFS_CMD="sudo zfs" + __ZPOOL_CMD="sudo zpool" +fi + +__zfs_get_commands() +{ + $__ZFS_CMD 2>&1 | awk '/^\t[a-z]/ {print $1}' | cut -f1 -d '|' | uniq +} + +__zfs_get_properties() +{ + $__ZFS_CMD get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all name space +} + +__zfs_get_editable_properties() +{ + $__ZFS_CMD get 2>&1 | awk '$2 == "YES" {print $1"="}' +} + +__zfs_get_inheritable_properties() +{ + $__ZFS_CMD get 2>&1 | awk '$3 == "YES" {print $1}' +} + +__zfs_list_datasets() +{ + $__ZFS_CMD list -H -o name -t filesystem,volume +} + +__zfs_list_filesystems() +{ + $__ZFS_CMD list -H -o name -t filesystem +} + +__zfs_match_snapshot() +{ + local base_dataset=${cur%@*} + if [[ $base_dataset != $cur ]] + then + $__ZFS_CMD list -H -o name -s name -t snapshot -d 1 $base_dataset + else + $__ZFS_CMD list -H -o name -t filesystem,volume | awk '{print $1"@"}' + fi +} + +__zfs_match_explicit_snapshot() +{ + local base_dataset=${cur%@*} + if [[ $base_dataset != $cur ]] + then + $__ZFS_CMD list -H -o name -s name -t snapshot -d 1 $base_dataset + fi +} + +__zfs_match_multiple_snapshots() +{ + local existing_opts=$(expr "$cur" : '\(.*\)[%,]') + if [[ $existing_opts ]] + then + local base_dataset=${cur%@*} + if [[ $base_dataset != $cur ]] + then + local cur=${cur##*,} + if [[ $cur =~ ^%|%.*% ]] + then + # correct range syntax is start%end + return 1 + fi + local range_start=$(expr "$cur" : '\(.*%\)') + $__ZFS_CMD list -H -o name -s name -t snapshot -d 1 $base_dataset | sed 's$.*@$'$range_start'$g' + fi + else + __zfs_match_explicit_snapshot; __zfs_list_datasets + fi +} + +__zfs_list_volumes() +{ + $__ZFS_CMD list -H -o name -t volume +} + +__zfs_argument_chosen() +{ + local word property + for word in $(seq $((COMP_CWORD-1)) -1 2) + do + local prev="${COMP_WORDS[$word]}" + if [[ ${COMP_WORDS[$word-1]} != -[tos] ]] + then + if [[ "$prev" == [^,]*,* ]] || [[ "$prev" == *[@:]* ]] + then + return 0 + fi + for property in $@ + do + if [[ $prev == "$property" ]] + then + return 0 + fi + done + fi + done + return 1 +} + +__zfs_complete_ordered_arguments() +{ + local list1=$1 + local list2=$2 + local cur=$3 + local extra=$4 + if __zfs_argument_chosen $list1 + then + COMPREPLY=($(compgen -W "$list2 $extra" -- "$cur")) + else + COMPREPLY=($(compgen -W "$list1 $extra" -- "$cur")) + fi +} + +__zfs_complete_multiple_options() +{ + local options=$1 + local cur=$2 + + COMPREPLY=($(compgen -W "$options" -- "${cur##*,}")) + local existing_opts=$(expr "$cur" : '\(.*,\)') + if [[ $existing_opts ]] + then + COMPREPLY=( "${COMPREPLY[@]/#/${existing_opts}}" ) + fi +} + +__zfs_complete_switch() +{ + local options=$1 + if [[ ${cur:0:1} == - ]] + then + COMPREPLY=($(compgen -W "-{$options}" -- "$cur")) + return 0 + else + return 1 + fi +} + +__zfs_complete() +{ + local cur prev cmd cmds + COMPREPLY=() + # Don't split on colon + _get_comp_words_by_ref -n : -c cur -p prev -w COMP_WORDS -i COMP_CWORD + cmd="${COMP_WORDS[1]}" + + if [[ ${prev##*/} == zfs ]] + then + cmds=$(__zfs_get_commands) + COMPREPLY=($(compgen -W "$cmds -?" -- "$cur")) + return 0 + fi + + case "${cmd}" in + clone) + case "${prev}" in + -o) + COMPREPLY=($(compgen -W "$(__zfs_get_editable_properties)" -- "$cur")) + ;; + *) + if ! __zfs_complete_switch "o,p" + then + if __zfs_argument_chosen + then + COMPREPLY=($(compgen -W "$(__zfs_list_datasets)" -- "$cur")) + else + COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur")) + fi + fi + ;; + esac + ;; + get) + case "${prev}" in + -d) + COMPREPLY=($(compgen -W "" -- "$cur")) + ;; + -t) + __zfs_complete_multiple_options "filesystem volume snapshot all" "$cur" + ;; + -s) + __zfs_complete_multiple_options "local default inherited temporary none" "$cur" + ;; + -o) + __zfs_complete_multiple_options "name property value source received all" "$cur" + ;; + *) + if ! __zfs_complete_switch "H,r,p,d,o,t,s" + then + if __zfs_argument_chosen $(__zfs_get_properties) + then + COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur")) + else + __zfs_complete_multiple_options "$(__zfs_get_properties)" "$cur" + fi + fi + ;; + esac + ;; + inherit) + if ! __zfs_complete_switch "r" + then + __zfs_complete_ordered_arguments "$(__zfs_get_inheritable_properties)" "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" $cur + fi + ;; + list) + case "${prev}" in + -d) + COMPREPLY=($(compgen -W "" -- "$cur")) + ;; + -t) + __zfs_complete_multiple_options "filesystem volume snapshot all" "$cur" + ;; + -o) + __zfs_complete_multiple_options "$(__zfs_get_properties)" "$cur" + ;; + -s|-S) + COMPREPLY=($(compgen -W "$(__zfs_get_properties)" -- "$cur")) + ;; + *) + if ! __zfs_complete_switch "H,r,d,o,t,s,S" + then + COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur")) + fi + ;; + esac + ;; + promote) + COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur")) + ;; + rollback) + if ! __zfs_complete_switch "r,R,f" + then + COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur")) + fi + ;; + send) + if ! __zfs_complete_switch "d,n,P,p,R,v,i,I" + then + COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur")) + fi + ;; + snapshot) + case "${prev}" in + -o) + COMPREPLY=($(compgen -W "$(__zfs_get_editable_properties)" -- "$cur")) + ;; + *) + if ! __zfs_complete_switch "o,r" + then + COMPREPLY=($(compgen -W "$(__zfs_list_datasets | awk '{print $1"@"}')" -- "$cur")) + fi + ;; + esac + ;; + set) + __zfs_complete_ordered_arguments "$(__zfs_get_editable_properties)" "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" $cur + ;; + upgrade) + case "${prev}" in + -a|-V|-v) + COMPREPLY=($(compgen -W "" -- "$cur")) + ;; + *) + if ! __zfs_complete_switch "a,V,v,r" + then + COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur")) + fi + ;; + esac + ;; + destroy) + if ! __zfs_complete_switch "d,f,n,p,R,r,v" + then + __zfs_complete_multiple_options "$(__zfs_match_multiple_snapshots)" $cur + fi + ;; + *) + COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur")) + ;; + esac + __ltrim_colon_completions "$cur" + return 0 +} + +__zpool_get_commands() +{ + $__ZPOOL_CMD 2>&1 | awk '/^\t[a-z]/ {print $1}' | uniq +} + +__zpool_get_properties() +{ + $__ZPOOL_CMD get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all +} + +__zpool_get_editable_properties() +{ + $__ZPOOL_CMD get 2>&1 | awk '$2 == "YES" {print $1"="}' +} + +__zpool_list_pools() +{ + $__ZPOOL_CMD list -H -o name +} + +__zpool_complete() +{ + local cur prev cmd cmds + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + cmd="${COMP_WORDS[1]}" + + if [[ ${prev##*/} == zpool ]] + then + cmds=$(__zpool_get_commands) + COMPREPLY=($(compgen -W "$cmds" -- "$cur")) + return 0 + fi + + case "${cmd}" in + get) + __zfs_complete_ordered_arguments "$(__zpool_get_properties)" "$(__zpool_list_pools)" $cur + return 0 + ;; + import) + if [[ $prev == -d ]] + then + _filedir -d + else + COMPREPLY=($(compgen -W "$(__zpool_list_pools) -d" -- "$cur")) + fi + return 0 + ;; + set) + __zfs_complete_ordered_arguments "$(__zpool_get_editable_properties)" "$(__zpool_list_pools)" $cur + return 0 + ;; + add|attach|clear|create|detach|offline|online|remove|replace) + local pools="$(__zpool_list_pools)" + if __zfs_argument_chosen $pools + then + _filedir + else + COMPREPLY=($(compgen -W "$pools" -- "$cur")) + fi + return 0 + ;; + *) + COMPREPLY=($(compgen -W "$(__zpool_list_pools)" -- "$cur")) + return 0 + ;; + esac + +} + +complete -F __zfs_complete zfs +complete -F __zpool_complete zpool diff --git a/debian/tree/zfsutils-linux/usr/share/initramfs-tools/hooks/zdev b/debian/tree/zfsutils-linux/usr/share/initramfs-tools/hooks/zdev new file mode 100644 index 000000000000..afd6dfbcf23f --- /dev/null +++ b/debian/tree/zfsutils-linux/usr/share/initramfs-tools/hooks/zdev @@ -0,0 +1,67 @@ +#!/bin/sh +# +# Add udev rules for ZoL to the initrd. +# + +PREREQ="udev" +PREREQ_UDEV_RULES="60-zvol.rules 69-vdev.rules" +COPY_EXEC_LIST="/lib/udev/vdev_id /lib/udev/zvol_id" + +# Generic result code. +RC=0 + +case $1 in +prereqs) + echo "$PREREQ" + exit 0 + ;; +esac + +for ii in $COPY_EXEC_LIST +do + if [ ! -x "$ii" ] + then + echo "Error: $ii is not executable." + RC=2 + fi +done + +if [ "$RC" -ne 0 ] +then + exit "$RC" +fi + +. /usr/share/initramfs-tools/hook-functions + +mkdir -p "$DESTDIR/lib/udev/rules.d/" +for ii in $PREREQ_UDEV_RULES +do + if [ -e "/etc/udev/rules.d/$ii" ] + then + cp -p "/etc/udev/rules.d/$ii" "$DESTDIR/lib/udev/rules.d/" + elif [ -e "/lib/udev/rules.d/$ii" ] + then + cp -p "/lib/udev/rules.d/$ii" "$DESTDIR/lib/udev/rules.d/" + else + echo "Error: Missing udev rule: $ii" + echo " This file must be in the /etc/udev/rules.d or /lib/udev/rules.d directory." + exit 1 + fi +done + +for ii in $COPY_EXEC_LIST +do + copy_exec "$ii" +done + +if [ -f '/etc/default/zfs' -a -r '/etc/default/zfs' ] +then + mkdir -p "$DESTDIR/etc/default" + cp -a '/etc/default/zfs' "$DESTDIR/etc/default/" +fi + +if [ -d '/etc/zfs' -a -r '/etc/zfs' ] +then + mkdir -p "$DESTDIR/etc" + cp -a '/etc/zfs' "$DESTDIR/etc/" +fi diff --git a/debian/zfs-dkms.dkms b/debian/zfs-dkms.dkms new file mode 100644 index 000000000000..efec5d3b548d --- /dev/null +++ b/debian/zfs-dkms.dkms @@ -0,0 +1,92 @@ +BUILD_DEPENDS[0]="spl" +AUTOINSTALL="yes" +PACKAGE_NAME="zfs" +PACKAGE_VERSION="#MODULE_VERSION#" +PRE_BUILD="configure + --prefix=/usr + --with-config=kernel + --with-linux=$( + case `lsb_release -is` in + (Debian) + if [[ -e ${kernel_source_dir/%build/source} ]] + then + echo ${kernel_source_dir/%build/source} + else + # A kpkg exception for Proxmox 2.0 + echo ${kernel_source_dir} + fi + ;; + (*) + echo ${kernel_source_dir} + ;; + esac + ) + --with-linux-obj=${kernel_source_dir} + --with-spl=${source_tree}/spl-${PACKAGE_VERSION} + --with-spl-obj=${dkms_tree}/spl/${PACKAGE_VERSION}/${kernelver}/${arch} + $( + [[ -r /etc/default/zfs ]] \ + && source /etc/default/zfs \ + && shopt -q -s extglob \ + && \ + { + if [[ ${ZFS_DKMS_ENABLE_DEBUG,,} == @(y|yes) ]] + then + echo --enable-debug + fi + if [[ ${ZFS_DKMS_ENABLE_DEBUG_DMU_TX,,} == @(y|yes) ]] + then + echo --enable-debug-dmu-tx + fi + } + ) +" +POST_BUILD="cp + ${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build/zfs_config.h + ${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build/module/Module.symvers + ${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/${kernelver}/${arch}/ +" +REMAKE_INITRD="$( + if [ -e /usr/share/initramfs-tools/hooks/zfs \ + -o -e /usr/share/dracut/modules.d/90zfs ] + then + echo -n yes + else + echo -n no + fi +)" +MAKE[0]="make -j9" +STRIP[0]="$( + [[ -r /etc/default/zfs ]] \ + && source /etc/default/zfs \ + && shopt -q -s extglob \ + && [[ ${ZFS_DKMS_DISABLE_STRIP,,} == @(y|yes) ]] \ + && echo -n no +)" +STRIP[1]="${STRIP[0]}" +STRIP[2]="${STRIP[0]}" +STRIP[3]="${STRIP[0]}" +STRIP[4]="${STRIP[0]}" +STRIP[5]="${STRIP[0]}" +STRIP[6]="${STRIP[0]}" +BUILT_MODULE_NAME[0]="zavl" +BUILT_MODULE_LOCATION[0]="module/avl/" +DEST_MODULE_LOCATION[0]="/extra/zfs/zavl" +BUILT_MODULE_NAME[1]="zcommon" +BUILT_MODULE_LOCATION[1]="module/zcommon/" +DEST_MODULE_LOCATION[1]="/extra/zfs/zcommon" +BUILT_MODULE_NAME[2]="znvpair" +BUILT_MODULE_LOCATION[2]="module/nvpair/" +DEST_MODULE_LOCATION[2]="/extra/zfs/znvpair" +BUILT_MODULE_NAME[3]="zpios" +BUILT_MODULE_LOCATION[3]="module/zpios/" +DEST_MODULE_LOCATION[3]="/extra/zfs/zpios" +BUILT_MODULE_NAME[4]="zunicode" +BUILT_MODULE_LOCATION[4]="module/unicode/" +DEST_MODULE_LOCATION[4]="/extra/zfs/zunicode" +BUILT_MODULE_NAME[5]="zfs" +BUILT_MODULE_LOCATION[5]="module/zfs/" +DEST_MODULE_LOCATION[5]="/extra/zfs/zfs" +BUILT_MODULE_NAME[6]="icp" +BUILT_MODULE_LOCATION[6]="module/icp/" +DEST_MODULE_LOCATION[6]="/extra/icp/icp" diff --git a/debian/zfs-doc.docs b/debian/zfs-doc.docs new file mode 100644 index 000000000000..425a0e5d9e28 --- /dev/null +++ b/debian/zfs-doc.docs @@ -0,0 +1,2 @@ +COPYRIGHT +OPENSOLARIS.LICENSE diff --git a/debian/zfs-doc.examples b/debian/zfs-doc.examples new file mode 100644 index 000000000000..cde8fd19fce5 --- /dev/null +++ b/debian/zfs-doc.examples @@ -0,0 +1,54 @@ +etc/zfs/vdev_id.conf.alias.example +etc/zfs/vdev_id.conf.multipath.example +etc/zfs/vdev_id.conf.sas_direct.example +etc/zfs/vdev_id.conf.sas_switch.example +scripts/common.sh +scripts/zfs.sh +scripts/zpios-profile/zpios-profile-disk.sh +scripts/zpios-profile/zpios-profile-pids.sh +scripts/zpios-profile/zpios-profile-post.sh +scripts/zpios-profile/zpios-profile-pre.sh +scripts/zpios-profile/zpios-profile.sh +scripts/zpios-sanity.sh +scripts/zpios-survey.sh +scripts/zpios-test/16th-8192rc-4rs-1cs-4off.sh +scripts/zpios-test/1th-16rc-4rs-1cs-4off.sh +scripts/zpios-test/1x256th-65536rc-4rs-1cs-4off.sh +scripts/zpios-test/256th-65536rc-4rs-1cs-4off.sh +scripts/zpios-test/4th-1024rc-4rs-1cs-4off.sh +scripts/zpios-test/large-thread-survey.sh +scripts/zpios-test/large.sh +scripts/zpios-test/lustre.sh +scripts/zpios-test/medium.sh +scripts/zpios-test/small.sh +scripts/zpios-test/tiny.sh +scripts/zpios.sh +scripts/zpool-config/dm0-raid0.sh +scripts/zpool-config/file-raid0.sh +scripts/zpool-config/file-raid10.sh +scripts/zpool-config/file-raidz.sh +scripts/zpool-config/file-raidz2.sh +scripts/zpool-config/hda-raid0.sh +scripts/zpool-config/lo-faulty-raid0.sh +scripts/zpool-config/lo-faulty-raid10.sh +scripts/zpool-config/lo-faulty-raidz.sh +scripts/zpool-config/lo-faulty-raidz2.sh +scripts/zpool-config/lo-faulty-raidz3.sh +scripts/zpool-config/lo-raid0.sh +scripts/zpool-config/lo-raid10.sh +scripts/zpool-config/lo-raidz.sh +scripts/zpool-config/lo-raidz2.sh +scripts/zpool-config/md0-raid10.sh +scripts/zpool-config/md0-raid5.sh +scripts/zpool-config/ram0-raid0.sh +scripts/zpool-config/scsi_debug-noraid.sh +scripts/zpool-config/scsi_debug-raid0.sh +scripts/zpool-config/scsi_debug-raid10.sh +scripts/zpool-config/scsi_debug-raidz.sh +scripts/zpool-config/scsi_debug-raidz2.sh +scripts/zpool-config/scsi_debug-raidz3.sh +scripts/zpool-config/sda-raid0.sh +scripts/zpool-config/zpool-raid0.sh +scripts/zpool-config/zpool-raid10.sh +scripts/zpool-config/zpool-raidz.sh +scripts/zpool-create.sh diff --git a/debian/zfs-doc.install b/debian/zfs-doc.install new file mode 100644 index 000000000000..e69563b76d9d --- /dev/null +++ b/debian/zfs-doc.install @@ -0,0 +1 @@ +../tree/zfs-doc/* / diff --git a/debian/zfs-initramfs.install b/debian/zfs-initramfs.install new file mode 100644 index 000000000000..b853d8eb5db1 --- /dev/null +++ b/debian/zfs-initramfs.install @@ -0,0 +1 @@ +../tree/zfs-initramfs/* / diff --git a/debian/zfs-initramfs.postinst b/debian/zfs-initramfs.postinst new file mode 100644 index 000000000000..41f58145c9be --- /dev/null +++ b/debian/zfs-initramfs.postinst @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +if [ "$1" = "configure" ]; then + if which udevadm > /dev/null 2>&1; then + udevadm control --reload-rules || true + udevadm trigger --subsystem-match=block --action=change || true + fi +fi + +#DEBHELPER# diff --git a/debian/zfs-initramfs.triggers b/debian/zfs-initramfs.triggers new file mode 100644 index 000000000000..6c9f4543c222 --- /dev/null +++ b/debian/zfs-initramfs.triggers @@ -0,0 +1 @@ +activate update-initramfs diff --git a/debian/zfs-zed.install b/debian/zfs-zed.install new file mode 100644 index 000000000000..565a223d0378 --- /dev/null +++ b/debian/zfs-zed.install @@ -0,0 +1,6 @@ +etc/zfs/zed.d/zed.rc usr/lib/zfs-linux/zfs/zed.d/ +etc/zfs/zed.d/zed-functions.sh usr/lib/zfs-linux/zfs/zed.d/ +etc/zfs/zed.d +usr/lib/zfs-linux/zfs/zed.d +usr/sbin/zed +usr/share/man/man8/zed.8 diff --git a/debian/zfs-zed.lintian-overrides b/debian/zfs-zed.lintian-overrides new file mode 100644 index 000000000000..9f7a380d28a0 --- /dev/null +++ b/debian/zfs-zed.lintian-overrides @@ -0,0 +1,2 @@ +zfs-zed: init.d-script-not-marked-as-conffile etc/init.d/zed +zfs-zed: init.d-script-not-included-in-package etc/init.d/zed diff --git a/debian/zfs-zed.postinst b/debian/zfs-zed.postinst new file mode 100644 index 000000000000..2ce2a100cbfc --- /dev/null +++ b/debian/zfs-zed.postinst @@ -0,0 +1,34 @@ +#!/bin/sh +set -e + +installed_dir=/usr/lib/zfs-linux/zfs/zed.d +enabled_dir=/etc/zfs/zed.d + +# On a fresh install, enable most scriptlets. +if [ -z "$2" ] +then + for scriptlet in "$installed_dir"/* + do + name=$(basename "$scriptlet") + case "$name" in + all-debug.sh) + continue + ;; + generic-notify.sh) + continue + ;; + esac + if ! [ -e "$enabled_dir/$name" ] + then + ln -s "$scriptlet" "$enabled_dir/" + fi + done +else + for fn in "zed.rc"; do + if [[ ! -e "$enabled_dir/$fn" ]]; then + ln -s "$installed_dir/$fn" "$enabled_dir/" + fi + done +fi + +#DEBHELPER# diff --git a/debian/zfs-zed.postrm b/debian/zfs-zed.postrm new file mode 100644 index 000000000000..a35f1c1e2f77 --- /dev/null +++ b/debian/zfs-zed.postrm @@ -0,0 +1,12 @@ +#!/bin/sh +set -e + +if [ "$1" = "purge" ] +then + for i in /etc/zfs/zed.d/*.sh + do + [ -L "$i" ] && rm -f "$i" + done +fi + +#DEBHELPER# diff --git a/debian/zfs-zed.zed.service b/debian/zfs-zed.zed.service new file mode 100644 index 000000000000..94228b373cec --- /dev/null +++ b/debian/zfs-zed.zed.service @@ -0,0 +1,9 @@ +[Unit] +Description=ZFS Event Daemon (zed) +Documentation=man:zed(8) +After=zfs-import-cache.service +After=zfs-import-scan.service + +[Service] +ExecStart=/usr/sbin/zed -F +Restart=on-abort diff --git a/debian/zfs.target b/debian/zfs.target new file mode 100644 index 000000000000..35415338560a --- /dev/null +++ b/debian/zfs.target @@ -0,0 +1,8 @@ +[Unit] +Description=ZFS startup target +Requires=zfs-mount.service +Requires=zfs-share.service +Wants=zed.service + +[Install] +WantedBy=multi-user.target diff --git a/debian/zfsutils-linux.cron.d b/debian/zfsutils-linux.cron.d new file mode 100644 index 000000000000..5d8b7fc3295e --- /dev/null +++ b/debian/zfsutils-linux.cron.d @@ -0,0 +1,2 @@ +# Scrub the second Sunday of every month. +24 0 8-14 * * root [ $(date +\%w) -eq 0 ] && [ -x /usr/lib/zfs-linux/scrub ] && /usr/lib/zfs-linux/scrub diff --git a/debian/zfsutils-linux.install b/debian/zfsutils-linux.install new file mode 100644 index 000000000000..398f142c8156 --- /dev/null +++ b/debian/zfsutils-linux.install @@ -0,0 +1,20 @@ +../tree/zfsutils-linux/* / +contrib/bash_completion.d/zfs /usr/share/bash-completion/completions/ +etc/zfs/zfs-functions* +etc/zfs/zpool.d/* +etc/zfs/*.example +usr/lib/*/zfs/zpool.d +bin +sbin +lib/udev +debian/zfs.target /lib/systemd/system +usr/share/man/man1 +usr/share/man/man5 +usr/share/man/man8/fsck.zfs.8 +usr/share/man/man8/mount.zfs.8 +usr/share/man/man8/vdev_id.8 +usr/share/man/man8/zdb.8 +usr/share/man/man8/zfs.8 +usr/share/man/man8/zinject.8 +usr/share/man/man8/zpool.8 +usr/share/man/man8/zstreamdump.8 diff --git a/debian/zfsutils-linux.lintian-overrides b/debian/zfsutils-linux.lintian-overrides new file mode 100644 index 000000000000..01e2064ca5b9 --- /dev/null +++ b/debian/zfsutils-linux.lintian-overrides @@ -0,0 +1,7 @@ +zfsutils-linux: init.d-script-not-marked-as-conffile etc/init.d/zfs-import-scan +zfsutils-linux: init.d-script-not-included-in-package etc/init.d/zfs-import-scan +zfsutils-linux: init.d-script-not-marked-as-conffile etc/init.d/zfs-mount +zfsutils-linux: init.d-script-not-included-in-package etc/init.d/zfs-mount +zfsutils-linux: init.d-script-not-marked-as-conffile etc/init.d/zfs-import-cache +zfsutils-linux: init.d-script-not-included-in-package etc/init.d/zfs-import-cache +zfsutils-linux: systemd-no-service-for-init-script zfs-share diff --git a/debian/zfsutils-linux.triggers b/debian/zfsutils-linux.triggers new file mode 100644 index 000000000000..6c9f4543c222 --- /dev/null +++ b/debian/zfsutils-linux.triggers @@ -0,0 +1 @@ +activate update-initramfs diff --git a/debian/zfsutils-linux.vdev.udev b/debian/zfsutils-linux.vdev.udev new file mode 100644 index 000000000000..d6df7856b03a --- /dev/null +++ b/debian/zfsutils-linux.vdev.udev @@ -0,0 +1,4 @@ +ENV{DEVTYPE}=="disk", IMPORT{program}="/lib/udev/vdev_id -d %k" +KERNEL=="*[!0-9]", ENV{SUBSYSTEM}=="block", ENV{ID_VDEV}=="?*", SYMLINK+="$env{ID_VDEV_PATH}" +KERNEL=="*[0-9]", ENV{SUBSYSTEM}=="block", ENV{DEVTYPE}=="partition", ENV{ID_VDEV}=="?*", SYMLINK+="$env{ID_VDEV_PATH}-part%n" +KERNEL=="dm-[0-9]*", ENV{SUBSYSTEM}=="block", ENV{ID_VDEV}=="?*", SYMLINK+="$env{ID_VDEV_PATH}" diff --git a/debian/zfsutils-linux.zfs-import-cache.service b/debian/zfsutils-linux.zfs-import-cache.service new file mode 100644 index 000000000000..de8ce44a1f23 --- /dev/null +++ b/debian/zfsutils-linux.zfs-import-cache.service @@ -0,0 +1,13 @@ +[Unit] +Description=Import ZFS pools by cache file +DefaultDependencies=no +Requires=systemd-udev-settle.service +After=systemd-udev-settle.service +After=cryptsetup.target +ConditionPathExists=/etc/zfs/zpool.cache + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStartPre=/sbin/modprobe zfs +ExecStart=/sbin/zpool import -c /etc/zfs/zpool.cache -aN diff --git a/debian/zfsutils-linux.zfs-import-scan.service b/debian/zfsutils-linux.zfs-import-scan.service new file mode 100644 index 000000000000..3ee45e9a40e7 --- /dev/null +++ b/debian/zfsutils-linux.zfs-import-scan.service @@ -0,0 +1,13 @@ +[Unit] +Description=Import ZFS pools by device scanning +DefaultDependencies=no +Requires=systemd-udev-settle.service +After=systemd-udev-settle.service +After=cryptsetup.target +ConditionPathExists=!/etc/zfs/zpool.cache + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStartPre=/sbin/modprobe zfs +ExecStart=/sbin/zpool import -d /dev/disk/by-id -aN diff --git a/debian/zfsutils-linux.zfs-mount.service b/debian/zfsutils-linux.zfs-mount.service new file mode 100644 index 000000000000..483ec40b9c44 --- /dev/null +++ b/debian/zfsutils-linux.zfs-mount.service @@ -0,0 +1,15 @@ +[Unit] +Description=Mount ZFS filesystems +DefaultDependencies=no +Wants=zfs-import-cache.service +Wants=zfs-import-scan.service +Requires=systemd-udev-settle.service +After=systemd-udev-settle.service +After=zfs-import-cache.service +After=zfs-import-scan.service +Before=local-fs.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/sbin/zfs mount -a diff --git a/debian/zfsutils-linux.zfs-share.init b/debian/zfsutils-linux.zfs-share.init new file mode 100644 index 000000000000..843271a58f84 --- /dev/null +++ b/debian/zfsutils-linux.zfs-share.init @@ -0,0 +1,80 @@ +#!/bin/sh + +### BEGIN INIT INFO +# Provides: shareiscsi sharenfs sharesmb zfs-share +# Required-Start: $local_fs $network $remote_fs +# Required-Stop: $local_fs $network $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Should-Start: iscsi iscsitarget istgt nfs-kernel-server samba +# Should-Stop: iscsi iscsitarget istgt nfs-kernel-server samba +# Short-Description: Network share OpenZFS datasets. +# Description: Run the `zfs share -a` or `zfs unmount -a` commands +# for controlling iSCSI, NFS, or CIFS network shares. +### END INIT INFO + +PATH=/sbin:/bin:/usr/sbin:/usr/bin + +. /lib/lsb/init-functions +. /lib/init/vars.sh + +[ -f /etc/default/zfs ] && . /etc/default/zfs + +do_start() +{ + log_begin_msg "Sharing OpenZFS filesystems" + log_progress_msg "filesystems" + zfs share -a + RET=$? + + if [ $RET != 0 ] ; then + log_end_msg $RET + exit $RET + fi + + log_end_msg 0 +} + +do_stop() +{ + log_begin_msg "Unsharing OpenZFS filesystems" + log_progress_msg "filesystems" + zfs unshare -a + RET=$? + + # Ignore a non-zero `zfs` result so that a busy OpenZFS instance + # does not hang the system during shutdown. + if [ $RET != 0 ] ; then + log_end_msg $RET + fi + + log_end_msg 0 +} + +case "$1" in + (start) + case "$ZFS_SHARE" in + ([Oo][Ff][Ff]|[Nn][Oo]|'') + exit 0 + ;; + esac + do_start + ;; + (stop) + case "$ZFS_UNSHARE" in + ([Oo][Ff][Ff]|[Nn][Oo]|'') + exit 0 + ;; + esac + do_stop + ;; + (force-reload|reload|restart|status) + # no-op + ;; + + (*) + [ -n "$1" ] && echo "Error: Unknown command $1." + echo "Usage: $0 {start|stop}" + exit 3 + ;; +esac diff --git a/debian/zfsutils-linux.zfs.default b/debian/zfsutils-linux.zfs.default new file mode 100644 index 000000000000..d0f1f71417d7 --- /dev/null +++ b/debian/zfsutils-linux.zfs.default @@ -0,0 +1,21 @@ +# ZoL userland configuration. + +# Wait this many seconds during system start for pool member devices to appear +# before attempting import and starting mountall. +ZFS_AUTOIMPORT_TIMEOUT='30' + +# Run `zfs share -a` during system start? +# nb: The shareiscsi, sharenfs, and sharesmb dataset properties. +ZFS_SHARE='no' + +# Run `zfs unshare -a` during system stop? +ZFS_UNSHARE='no' + +# Build kernel modules with the --enable-debug switch? +ZFS_DKMS_ENABLE_DEBUG='no' + +# Build kernel modules with the --enable-debug-dmu-tx switch? +ZFS_DKMS_ENABLE_DEBUG_DMU_TX='no' + +# Keep debugging symbols in kernel modules? +ZFS_DKMS_DISABLE_STRIP='no' diff --git a/debian/zfsutils-linux.zvol.udev b/debian/zfsutils-linux.zvol.udev new file mode 100644 index 000000000000..136c8f3b941b --- /dev/null +++ b/debian/zfsutils-linux.zvol.udev @@ -0,0 +1 @@ +KERNEL=="zd*" SUBSYSTEM=="block" ACTION=="add|change" PROGRAM="/lib/udev/zvol_id $tempnode" SYMLINK+="zvol/%c" diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf index c3c74910ba5b..ab171a606cdb 100755 --- a/scripts/dkms.mkconf +++ b/scripts/dkms.mkconf @@ -30,6 +30,12 @@ PRE_BUILD="configure --with-spl=\${source_tree}/spl-\${PACKAGE_VERSION} --with-spl-obj=\${dkms_tree}/spl/\${PACKAGE_VERSION}/\${kernelver}/\${arch} --with-spl-timeout=300 + \$( + [[ -n \"\${ICP_ROOT}\" ]] && \\ + { + echo --with-qat=\"\${ICP_ROOT}\" + } + ) \$( [[ -r \${PACKAGE_CONFIG} ]] \\ && source \${PACKAGE_CONFIG} \\