Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zfs: update to 2.2.0, add zfs-lts package #45365

Merged
merged 2 commits into from
Oct 18, 2023

Conversation

zdykstra
Copy link
Contributor

Testing the changes

  • I tested the changes in this PR: YES

Place-holder PR so that we can get this out the door once 2.2.0 officially lands.

@zdykstra zdykstra marked this pull request as draft July 31, 2023 21:35
@zdykstra zdykstra changed the title DRAFT: zfs: update to 2.2.0. [NOMERGE] zfs: update to 2.2.0. Jul 31, 2023
@zdykstra
Copy link
Contributor Author

zdykstra commented Aug 1, 2023

Upstream fix for the broken test cmd at openzfs/zfs#15130

@dkwo
Copy link
Contributor

dkwo commented Aug 1, 2023

On the last coreutils update, this was reported: Locally I get a fail in tests/cp/sparse-2.sh, but I'm on ZFS...

@r-ricci
Copy link
Contributor

r-ricci commented Aug 2, 2023

I tested this PR on aarch64-musl with a natively built kernel (because of #44807).
It doesn't build when trying to install the package. This is the content of /var/lib/dkms/zfs/2.2.0/build/make.log.

DKMS make.log for zfs-2.2.0 for kernel 6.3.13_2 (aarch64)
Wed Aug  2 10:52:32 UTC 2023
make: Entering directory '/var/lib/dkms/zfs/2.2.0/build/module'
mkdir -p os/linux/spl/
mkdir -p avl/ icp/ icp/algs/aes/ icp/algs/blake3/ icp/algs/edonr/ icp/algs/modes/ icp/algs/sha2/ icp/algs/skein/ icp/api/ icp/asm-aarch64/blake3/ icp/asm-aarch64/sha2/ icp/asm-arm/sha2/ icp/asm-ppc64/blake3/ icp/asm-ppc64/sha2/ icp/asm-x86_64/aes/ icp/asm-x86_64/blake3/ icp/asm-x86_64/modes/ icp/asm-x86_64/sha2/ icp/core/ icp/io/ icp/spi/ lua/ lua/setjmp/ nvpair/ os/linux/zfs/ unicode/ zcommon/ zfs/ zstd/ zstd/lib/common/ zstd/lib/compress/ zstd/lib/decompress/
make -C /lib/modules/6.3.13_2/build  \
	  \
	M="$PWD"  CONFIG_ZFS=m modules
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-atomic.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-condvar.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-cred.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-err.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-generic.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-kmem-cache.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-kmem.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-kstat.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-proc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-procfs-list.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-taskq.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-thread.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-trace.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-tsd.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-vmem.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-xdr.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-zlib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-zone.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/avl/avl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/aes/aes_impl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/aes/aes_impl_generic.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/aes/aes_modes.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/blake3/blake3.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/blake3/blake3_generic.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/blake3/blake3_impl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/edonr/edonr.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/cbc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/ccm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/ctr.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/ecb.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/gcm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/gcm_generic.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/modes.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/sha2/sha2_generic.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/sha2/sha256_impl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/sha2/sha512_impl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/skein/skein.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/skein/skein_block.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/skein/skein_iv.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/api/kcf_cipher.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/api/kcf_ctxops.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/api/kcf_mac.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/core/kcf_callprov.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/core/kcf_mech_tabs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/core/kcf_prov_lib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/core/kcf_prov_tabs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/core/kcf_sched.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/illumos-crypto.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/io/aes.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/io/sha2_mod.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/io/skein_mod.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/spi/kcf_spi.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lapi.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lauxlib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lbaselib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lcode.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lcompat.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lcorolib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lctype.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/ldebug.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/ldo.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lfunc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lgc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/llex.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lmem.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lobject.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lopcodes.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lparser.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lstate.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lstring.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lstrlib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/ltable.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/ltablib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/ltm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lvm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lzio.o
  AS [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/setjmp/setjmp.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/nvpair/fnvpair.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/nvpair/nvpair.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/nvpair/nvpair_alloc_fixed.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/nvpair/nvpair_alloc_spl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/unicode/u8_textprep.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/unicode/uconv.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/cityhash.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfeature_common.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_comutil.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_deleg.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_fletcher.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_fletcher_superscalar.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_fletcher_superscalar4.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_namecheck.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_prop.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zpool_prop.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zprop_common.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/zfs_zstd.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/zstd_sparc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/common/entropy_common.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/common/error_private.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/common/fse_decompress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/common/pool.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/common/zstd_common.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/fse_compress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/hist.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/huf_compress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_compress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_compress_literals.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_compress_sequences.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_compress_superblock.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_double_fast.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_fast.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_lazy.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_ldm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_opt.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/decompress/huf_decompress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/decompress/zstd_ddict.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/decompress/zstd_decompress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/decompress/zstd_decompress_block.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/abd.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/aggsum.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/arc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/blake3_zfs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/blkptr.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/bplist.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/bpobj.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/bptree.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/bqueue.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/brt.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/btree.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dataset_kstats.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dbuf.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dbuf_stats.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/ddt.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/ddt_zap.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_diff.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_object.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_objset.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_recv.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_redact.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_send.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_traverse.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_tx.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_zfetch.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dnode.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dnode_sync.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_bookmark.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_crypt.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_dataset.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_deadlist.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_deleg.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_destroy.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_dir.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_pool.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_prop.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_scan.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_synctask.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_userhold.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/edonr_zfs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/fm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/gzip.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/hkdf.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/lz4.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/lz4_zfs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/lzjb.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/metaslab.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/mmp.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/multilist.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/objlist.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/pathname.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/range_tree.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/refcount.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/rrwlock.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/sa.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/sha2_zfs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/skein_zfs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_checkpoint.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_config.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_errlog.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_history.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_log_spacemap.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_misc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_stats.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/space_map.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/space_reftree.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/txg.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/uberblock.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/unique.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_draid.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_draid_rand.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_indirect.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_indirect_births.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_indirect_mapping.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_initialize.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_label.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_mirror.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_missing.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_queue.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_raidz.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_raidz_math.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_raidz_math_scalar.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_rebuild.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_removal.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_root.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_trim.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zap.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zap_leaf.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zap_micro.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zcp.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zcp_get.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zcp_global.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zcp_iter.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zcp_set.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zcp_synctask.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfeature.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_byteswap.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_chksum.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_fm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_fuid.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_impl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_ioctl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_log.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_onexit.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_quota.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_ratelimit.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_replay.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_rlock.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_sa.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_vnops.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zil.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zio.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zio_checksum.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zio_compress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zio_inject.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zle.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zrlock.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zthr.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zvol.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/abd_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/arc_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/mmp_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/policy.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/qat.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/qat_compress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/qat_crypt.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/spa_misc_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/trace.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/vdev_disk.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/vdev_file.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_acl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_ctldir.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_debug.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_dir.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_file_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_ioctl_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_racct.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_sysfs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_uio.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_vfsops.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_vnops_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_znode.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zio_crypt.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_ctldir.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_export.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_file.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_file_range.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_inode.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_super.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_xattr.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zvol_os.o
  AS [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/asm-aarch64/blake3/b3_aarch64_sse2.o
  AS [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/asm-aarch64/blake3/b3_aarch64_sse41.o
  AS [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/asm-aarch64/sha2/sha256-armv8.o
  AS [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/asm-aarch64/sha2/sha512-armv8.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_fletcher_aarch64_neon.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_raidz_math_aarch64_neon.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_raidz_math_aarch64_neonx2.o
  LD [M]  /var/lib/dkms/zfs/2.2.0/build/module/spl.o
  LD [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs.o
  MODPOST /var/lib/dkms/zfs/2.2.0/build/module/Module.symvers
ERROR: modpost: GPL-incompatible module zfs.ko uses GPL-only symbol 'kernel_neon_end'
ERROR: modpost: GPL-incompatible module zfs.ko uses GPL-only symbol 'kernel_neon_begin'
make[2]: *** [scripts/Makefile.modpost:136: /var/lib/dkms/zfs/2.2.0/build/module/Module.symvers] Error 1
make[1]: *** [Makefile:1977: modpost] Error 2
make: *** [Makefile:56: modules-Linux] Error 2
make: Leaving directory '/var/lib/dkms/zfs/2.2.0/build/module'

Something similar happens with version 2.1.12. Does upstream have any patches to avoid this?

@zdykstra
Copy link
Contributor Author

zdykstra commented Aug 2, 2023

Looks like this is a reiteration of openzfs/zfs#14555 . I don't see any real closure to that issue. Does ZFS 2.1.12 build against the same kernel?

@r-ricci
Copy link
Contributor

r-ricci commented Aug 2, 2023

Does ZFS 2.1.12 build against the same kernel?

No, it doesn't. The log is almost identical.

Looks like this is a reiteration of openzfs/zfs#14555 . I don't see any real closure to that issue.

I think there are at least two possible workarounds that a) don't require changes to the kernel at all and b) don't require heavy patching of zfs. I briefly tested them and they both allow zfs to compile and install (but I didn't test at run-time yet).

  1. Patch out neon stuff. Chimera already does this for other reasons.
  2. Tell zfs to lie about its license, by doing this.

The first approach may reduce the performance (but I didn't measure).
The second approach may lead to legal issues. We don't care about redistributing binaries because they are built on the user's machine with dkms. But I don't know whether this change would allow to redistribute the sources or not.

@zdykstra
Copy link
Contributor Author

zdykstra commented Aug 2, 2023

Determining which course of action to follow is in @Vaelatern's court. Barring any additional input from him, I won't take any action to resolve this, for now.

@Vaelatern
Copy link
Member

Huh, the Chimera patch references a closed/solved issue.

I'm going to read on this a bit more. I don't like lying about licenses, and I also don't like randomly disabling the instructions upstream uses.

@Vaelatern
Copy link
Member

@r-ricci could we tell ZFS to lie about its license only on aarch64? Having read the justification for the GPL symbol limit (that it's meant for internal-only interfaces that could only have violated the GPL unless GPL), I think such a patch, on the user's machine, just before running DKMS, only on neon architectures, would be reasonable. This might be the right solution for now while upstream linux and zfs fight it out.

@r-ricci
Copy link
Contributor

r-ricci commented Aug 3, 2023

Technically yes, legally I don't know.

Did you read https://lwn.net/Articles/154602/?
By marking a symbol as GPL-only kernel developers explicitly say they consider it an internal interface. Modules using internal interfaces are considered derivative works of the kernel and must be GPL.
Can you circumvent this limitation on your own machine without redistributing? Yes.
Can you distribute a module that is patched to circumvent this limitation? Probably not.
Can you distribute a patched kernel which exports all symbols as regular ones? I have no idea. It's code, so the license allows that. It's also a legal statement, so the law and the license forbid that.
Can you distribute a script which is automatically executed on the user's machine with the only purpose of circumventing the limitation? I have no idea. In theory yes, but

the law isn't a blind and mindless computer that takes what you say literally. Intent matters a LOT

@Vaelatern
Copy link
Member

Let's make the META file a conf file. Let's also leave it as default broken on aarch64. Let's finally consider documenting this on the void linux doc site... and leave an open issue in void-packages about zfs being broken on aarch64, so others may change the license and get a full speed ZFS themselves.

@zdykstra
Copy link
Contributor Author

zdykstra commented Aug 11, 2023

Bug report opened at #45552 and referenced in the template. Marked as broken on aarch64.

@zdykstra
Copy link
Contributor Author

Let's make the META file a conf file. Let's also leave it as default broken on aarch64. Let's finally consider documenting this on the void linux doc site... and leave an open issue in void-packages about zfs being broken on aarch64, so others may change the license and get a full speed ZFS themselves.

Does /usr/src/zfs/zfs-${version}/META need to be marked as a configuration file? Any future updates to ZFS will install under a different versioned directory.

@classabbyamp
Copy link
Member

it would get overwritten on reinstalls of the same version (or revbumps)

@zdykstra zdykstra force-pushed the zfs-2.2.0 branch 2 times, most recently from ae460e7 to f9ce86e Compare August 11, 2023 20:22
srcpkgs/zfs/template Outdated Show resolved Hide resolved
@zdykstra
Copy link
Contributor Author

Based on what I'm reading and seeing, the ZFS 2.1.x branch is going to continue to receive fixes and back-ports. https://github.com/openzfs/zfs/tree/zfs-2.1.13-staging exists, and there's at least one open PR for cherry picked fixes going to that branch.

Do we want to consider offering a zfs2.1 package that tracks the ZFS 2.1.x branch? That'd leave the 'zfs' package following the most recent release - and people could pick how much risk they want in their ZFS implementation.

@Vaelatern
Copy link
Member

Is it officially "LTS" or just a special one-time support for 2.1?

@zdykstra
Copy link
Contributor Author

Is it officially "LTS" or just a special one-time support for 2.1?

It's officially an LTS release; https://github.com/openzfs/zfs/blob/master/RELEASES.md

@classabbyamp
Copy link
Member

if we do it, maybe call it zfs-lts so we don't have to add/remove packages for later LTS?

@Vaelatern
Copy link
Member

"New kernel versions released after the OpenZFS LTS release are not supported" concerns me. We already hold moving the linux version for ZFS, this might make moving linux-lts very bad considering the 2 year support window.

@zdykstra
Copy link
Contributor Author

I'd say that zfs-lts shouldn't gate moving the linux kernel version. If you want to run an LTS ZFS, run a (supported) LTS kernel.

@zdykstra zdykstra force-pushed the zfs-2.2.0 branch 5 times, most recently from 81844a7 to 125054f Compare September 9, 2023 04:30
@zdykstra
Copy link
Contributor Author

zdykstra commented Sep 9, 2023

The lint stage is failing because I'm starting zfs-lts off with a revision of 3, to avoid transitioning backwards from zfs-2.2.12_2 in the event that people switch to zfs-lts. Once upstream officially tags 2.2.0 I'll flip the relevant template and this should be ready to go.

@darkbasic

This comment was marked as off-topic.

@zdykstra zdykstra changed the title [NOMERGE] zfs: update to 2.2.0, add zfs-lts package zfs: update to 2.2.0, add zfs-lts package Oct 13, 2023
@zdykstra zdykstra marked this pull request as ready for review October 13, 2023 17:25
@Vaelatern
Copy link
Member

Let's let this sit for a day or two, just to let other people test first, then 👍

@Vaelatern
Copy link
Member

I'm very excited about corrective zfs receive

@ahesford
Copy link
Member

I'm very excited about block cloning.

@classabbyamp
Copy link
Member

I'm very excited about container support stuff

@darkbasic
Copy link

I'm very excited about block cloning

That works very well, but be aware that you won't be able to clone between datasets if you use encryption.

Let's let this sit for a day or two, just to let other people test first

I've been testing 2.2 for weeks and it's mostly rock solid. I've encountered a single data corrupting bug but they managed to reproduce it and temporarily disable the offending feature just in the time for the stable release.

@heppu
Copy link

heppu commented Oct 14, 2023

Oh boy have I been waiting for this! Can confirm what @Vaelatern said; pool cannot be used with older zfs version if upgraded. Without thinking it about it I upgraded my pools from arch linux which had zfs-git installed and since then I have been manually installing zfs 2.2-rc versions on my void. 😅

@Vaelatern
Copy link
Member

@zdykstra I can't IRC right now, but 👍 for this.

@classabbyamp classabbyamp merged commit 9aec04d into void-linux:master Oct 18, 2023
8 checks passed
@zdykstra zdykstra deleted the zfs-2.2.0 branch October 18, 2023 02:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants