Building the port devel/py-libzfs on FreeBSD 12-CURRENT after r323355 fails with the following errors: ===> Building for py36-libzfs-1.0.20170814 WARNING: '' not a valid package name; please use only .-separated package names in setup.py running build running build_py running build_ext cythoning libzfs.pyx to libzfs.c building 'libzfs' extension creating build creating build/temp.freebsd-12.0-CURRENT-amd64-3.6 cc -DNDEBUG -O2 -pipe -fstack-protector -fno-strict-aliasing -fPIC -I/usr/src/cddl/lib/libumem -I/usr/src/sys/cddl/compat/opensolaris/ -I/usr/src/sys/cddl/compat/opensolaris -I/usr/src/cddl/compat/opensolaris/include -I/usr/src/cddl/compat/opensolaris/lib/libumem -I/usr/src/cddl/contrib/opensolaris/lib/libzpool/common -I/usr/src/sys/cddl/contrib/opensolaris/common/zfs -I/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs -I/usr/src/sys/cddl/contrib/opensolaris/uts/common/sys -I/usr/src/cddl/contrib/opensolaris/head -I/usr/src/sys/cddl/contrib/opensolaris/uts/common -I/usr/src/cddl/contrib/opensolaris/lib/libnvpair -I/usr/src/cddl/contrib/opensolaris/lib/libuutil/common -I/usr/src/cddl/contrib/opensolaris/lib/libzfs/common -I/usr/src/cddl/contrib/opensolaris/lib/libzfs_core/common -I/usr/local/include/python3.6m -c libzfs.c -o build/temp.freebsd-12.0-CURRENT-amd64-3.6/libzfs.o -DNEED_SOLARIS_BOOLEAN -D_XPG6 -g -O0 libzfs.c:20069:73: warning: incompatible pointer to integer conversion passing 'PyObject *' (aka 'struct _object *') to parameter of type 'zfs_type_t' [-Wint-conversion] __pyx_v_handle = zfs_path_to_zhandle(__pyx_v_self->handle, __pyx_t_1, __pyx_t_2); ^~~~~~~~~ /usr/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h:706:79: note: passing argument to parameter here extern zfs_handle_t *zfs_path_to_zhandle(libzfs_handle_t *, char *, zfs_type_t); ^ libzfs.c:44866:71: error: too few arguments to function call, expected 3, have 2 __pyx_v_ret = zpool_scan(__pyx_v_self->handle, POOL_SCAN_SCRUB); ~~~~~~~~~~ ^ /usr/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h:246:1: note: 'zpool_scan' declared here extern int zpool_scan(zpool_handle_t *, pool_scan_func_t, pool_scrub_cmd_t); ^ libzfs.c:45061:70: error: too few arguments to function call, expected 3, have 2 __pyx_v_ret = zpool_scan(__pyx_v_self->handle, POOL_SCAN_NONE); ~~~~~~~~~~ ^ /usr/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h:246:1: note: 'zpool_scan' declared here extern int zpool_scan(zpool_handle_t *, pool_scan_func_t, pool_scrub_cmd_t); ^ This is because the ability to pause a zpool scrub was added in r323355 which changed the libzfs API, as can be seen here: https://svnweb.freebsd.org/base/head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h?r1=323355&r2=323354&pathrev=323355 https://svnweb.freebsd.org/base/head/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h?r1=323355&r2=323354&pathrev=323355
Created attachment 186795 [details] Patch to fix py-libzfs on FreeBSD 12-CURRENT after r323355
Note that this has been fixed upstream with a similar, but slightly different set of patches: https://github.com/freenas/py-libzfs/commit/a7f9ad497dbcb5fda49e8434a34c0f143c560080 https://github.com/freenas/py-libzfs/commit/f2a11abf23791c9ea813d05024c5669975f0f590 Perhaps a better approach would be to update the port to the latest upstream github commit, and ensure the EXPERIMENTAL parameter is set correctly for FreeBSD 12-CURRENT systems after r323355.
Hello, Thanks for the patch however I have fixed it upstream and update the port version.
A commit references this bug: Author: wg Date: Mon Oct 9 17:35:04 UTC 2017 New revision: 451627 URL: https://svnweb.freebsd.org/changeset/ports/451627 Log: devel/py-libzfs: fix build on HEAD PR: 222679 Changes: head/devel/py-libzfs/Makefile head/devel/py-libzfs/distinfo