From 6e2da9672f79f44048d597f0f61e4646cdeade9d Mon Sep 17 00:00:00 2001 From: Robert Clausecker Date: Fri, 27 Sep 2024 12:48:46 +0200 Subject: filesystems: add new category for file systems and related utilities The filesystems category houses file systems and file system utilities. It is added mainly to turn the sysutils/fusefs-* pseudo-category into a proper one, but is also useful for the sundry of other file systems related ports found in the tree. Ports that seem like they belong there are moved to the new category. Two ports, sysutils/fusefs-funionfs and sysutils/fusefs-fusepak are not moved as they currently don't fetch and don't have TIMESTAMP set in their distinfo, but that is required to be able to push a rename of the port by the pre-receive hook. Approved by: portmgr (rene) Reviewed by: mat Pull Request: https://github.com/freebsd/freebsd-ports/pull/302 PR: 281988 --- filesystems/py-libzfs/Makefile | 35 ++++++++++++++++++ filesystems/py-libzfs/distinfo | 3 ++ filesystems/py-libzfs/files/extra-zpool-add.patch | 44 +++++++++++++++++++++++ filesystems/py-libzfs/pkg-descr | 1 + 4 files changed, 83 insertions(+) create mode 100644 filesystems/py-libzfs/Makefile create mode 100644 filesystems/py-libzfs/distinfo create mode 100644 filesystems/py-libzfs/files/extra-zpool-add.patch create mode 100644 filesystems/py-libzfs/pkg-descr (limited to 'filesystems/py-libzfs') 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 + +.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 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 +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. -- cgit v1.2.3