diff options
Diffstat (limited to 'filesystems/py-libzfs')
-rw-r--r-- | filesystems/py-libzfs/Makefile | 35 | ||||
-rw-r--r-- | filesystems/py-libzfs/distinfo | 3 | ||||
-rw-r--r-- | filesystems/py-libzfs/files/extra-zpool-add.patch | 44 | ||||
-rw-r--r-- | filesystems/py-libzfs/pkg-descr | 1 |
4 files changed, 83 insertions, 0 deletions
diff --git a/filesystems/py-libzfs/Makefile b/filesystems/py-libzfs/Makefile new file mode 100644 index 000000000000..c4bc9fd0007b --- /dev/null +++ b/filesystems/py-libzfs/Makefile @@ -0,0 +1,35 @@ +PORTNAME= libzfs +PORTVERSION= 1.1.2023020700 +CATEGORIES= filesystems devel python +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= freqlabs@FreeBSD.org +COMMENT= Python libzfs bindings +WWW= https://github.com/freenas/py-libzfs + +LICENSE= BSD2CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +USE_GITHUB= yes +GH_ACCOUNT= truenas +GH_PROJECT= py-libzfs +GH_TAGNAME= c1bd4a0 + +HAS_CONFIGURE= yes +USES= compiler:c11 python +USE_PYTHON= autoplist distutils cython + +CONFIGURE_ENV= freebsd_src=${SRC_BASE} +MAKE_ENV= freebsd_src=${SRC_BASE} + +.include <bsd.port.options.mk> + +.if ${OPSYS} == FreeBSD && (${OSVERSION} >= 1500018 || (${OSVERSION} >= 1401000 && ${OSVERSION} < 1500000)) +EXTRA_PATCHES+= ${FILESDIR}/extra-zpool-add.patch +.endif + +.if !exists(${SRC_BASE}/sys/Makefile) +IGNORE= requires kernel source files in ${SRC_BASE} +.endif + +.include <bsd.port.mk> diff --git a/filesystems/py-libzfs/distinfo b/filesystems/py-libzfs/distinfo new file mode 100644 index 000000000000..3ae8f5fa9a4d --- /dev/null +++ b/filesystems/py-libzfs/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1675808317 +SHA256 (truenas-py-libzfs-1.1.2023020700-c1bd4a0_GH0.tar.gz) = 23b2d6e1b6ed78be2d12068f9b1b0b01270afaaf0f017817a5fb109d358aa818 +SIZE (truenas-py-libzfs-1.1.2023020700-c1bd4a0_GH0.tar.gz) = 99656 diff --git a/filesystems/py-libzfs/files/extra-zpool-add.patch b/filesystems/py-libzfs/files/extra-zpool-add.patch new file mode 100644 index 000000000000..7d0688ca4f13 --- /dev/null +++ b/filesystems/py-libzfs/files/extra-zpool-add.patch @@ -0,0 +1,44 @@ +From b5ffe1f1d6097df6e2f5cc6dd3c968872ec60804 Mon Sep 17 00:00:00 2001 +From: Ameer Hamza <ahamza@ixsystems.com> +Date: Tue, 2 Apr 2024 23:56:55 +0500 +Subject: [PATCH] zpool_add API changed in upstream zfs master + +--- + libzfs.pyx | 5 +++-- + pxd/libzfs.pxd | 2 +- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/libzfs.pyx b/libzfs.pyx +index a59fca8..71efa96 100644 +--- a/libzfs.pyx ++++ ./libzfs.pyx +@@ -3175,13 +3175,14 @@ cdef class ZFSPool(object): + hopts = self.root.generate_history_opts(fsopts, '-o') + self.root.write_history('zfs create', hopts, name) + +- def attach_vdevs(self, vdevs_tree): ++ def attach_vdevs(self, vdevs_tree, check_ashift=0): + cdef const char *command = 'zpool add' + cdef ZFSVdev vd = self.root.make_vdev_tree(vdevs_tree, {'ashift': self.properties['ashift'].parsed}) + cdef int ret ++ cdef boolean_t ashift = check_ashift + + with nogil: +- ret = libzfs.zpool_add(self.handle, vd.nvlist.handle) ++ ret = libzfs.zpool_add(self.handle, vd.nvlist.handle, ashift) + + if ret != 0: + raise self.root.get_error() +diff --git a/pxd/libzfs.pxd b/pxd/libzfs.pxd +index 3ab9374..6afa275 100644 +--- a/pxd/libzfs.pxd ++++ ./pxd/libzfs.pxd +@@ -228,7 +228,7 @@ cdef extern from "libzfs.h" nogil: + extern int zpool_create(libzfs_handle_t *, const char *, nvpair.nvlist_t *, + nvpair.nvlist_t *, nvpair.nvlist_t *) + extern int zpool_destroy(zpool_handle_t *, const char *) +- extern int zpool_add(zpool_handle_t *, nvpair.nvlist_t *) ++ extern int zpool_add(zpool_handle_t *, nvpair.nvlist_t *, boolean_t) + + IF HAVE_ZPOOL_SCAN == 3: + extern int zpool_scan(zpool_handle_t *, zfs.pool_scan_func_t, zfs.pool_scrub_cmd_t) diff --git a/filesystems/py-libzfs/pkg-descr b/filesystems/py-libzfs/pkg-descr new file mode 100644 index 000000000000..51a23404441a --- /dev/null +++ b/filesystems/py-libzfs/pkg-descr @@ -0,0 +1 @@ +Python libzfs bindings using cython. |