jceel / py-libzfs

Python libzfs bindings
16 stars 8 forks source link

Build error: cimported module has no attribute 'ZFS_ONLINE_EXPAND' #23

Open gronke opened 7 years ago

gronke commented 7 years ago

Commit https://github.com/jceel/py-libzfs/commit/8ed656e278e556b2f56ce28889a96ab9ec47dea0 does not build on HardenedBSD-11 and FreeBSD-11.0

HardenedBSD

# python3.6 setup.py build
running build
running build_py
copying libzfs.c -> build/lib.freebsd-11.1-STABLE-HBSD-amd64-3.6
running build_ext
cythoning libzfs.pyx to libzfs.c

Error compiling Cython file:
------------------------------------------------------------
...

        if self.type not in ('disk', 'file'):
            raise ZFSException(Error.NOTSUP, "Can make disks online only")

        if expand:
            flags |= zfs.ZFS_ONLINE_EXPAND
                       ^
------------------------------------------------------------

libzfs.pyx:1346:24: cimported module has no attribute 'ZFS_ONLINE_EXPAND'

Error compiling Cython file:
------------------------------------------------------------
...

    def get_send_progress(self, fd):
        cdef zfs.zfs_cmd_t cmd
        cdef int ret

        memset(&cmd, 0, cython.sizeof(libzfs.zfs_cmd))
                                           ^
------------------------------------------------------------

libzfs.pyx:2376:44: cimported module has no attribute 'zfs_cmd'
building 'libzfs' extension
cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -DHARDENEDBSD -fPIE -fPIC -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-11.1-STABLE-HBSD-amd64-3.6/libzfs.o -DNEED_SOLARIS_BOOLEAN -D_XPG6 -g -O0
libzfs.c:1:2: error: Do not use this file, it is the result of a failed Cython compilation.
#error Do not use this file, it is the result of a failed Cython compilation.
 ^
1 error generated.
error: command 'cc' failed with exit status 1
# uname -a
FreeBSD localhost 11.1-STABLE-HBSD FreeBSD 11.1-STABLE-HBSD #3  r313908+d9d98e063c4(hardened/11-stable/master): Tue Aug  1 11:29:55 CEST 2017     root@localhost:/usr/obj/usr/src/sys/HARDENEDBSD  amd64
# uname -K
1101501

FreeBSD

# python3.6 setup.py build
running build
running build_py
copying libzfs.c -> build/lib.freebsd-11.0-RELEASE-amd64-3.6
running build_ext
cythoning libzfs.pyx to libzfs.c

Error compiling Cython file:
------------------------------------------------------------
...

        if self.type not in ('disk', 'file'):
            raise ZFSException(Error.NOTSUP, "Can make disks online only")

        if expand:
            flags |= zfs.ZFS_ONLINE_EXPAND
                       ^
------------------------------------------------------------

libzfs.pyx:1346:24: cimported module has no attribute 'ZFS_ONLINE_EXPAND'

Error compiling Cython file:
------------------------------------------------------------
...

    def get_send_progress(self, fd):
        cdef zfs.zfs_cmd_t cmd
        cdef int ret

        memset(&cmd, 0, cython.sizeof(libzfs.zfs_cmd))
                                           ^
------------------------------------------------------------

libzfs.pyx:2376:44: cimported module has no attribute 'zfs_cmd'
building 'libzfs' extension
cc -Wno-unused-result -Wsign-compare -Wunreachable-code -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-11.0-RELEASE-amd64-3.6/libzfs.o -DNEED_SOLARIS_BOOLEAN -D_XPG6 -g -O0
libzfs.c:1:2: error: Do not use this file, it is the result of a failed Cython compilation.
#error Do not use this file, it is the result of a failed Cython compilation.
 ^
1 error generated.
error: command 'cc' failed with exit status 1
# uname -a
FreeBSD localhost 11.0-RELEASE FreeBSD 11.0-RELEASE #15 daaabd4def6(release/11.0.0-vnet-fix): Thu Aug  3 20:07:27 UTC 2017     root@localhost:/usr/obj/usr/src/sys/VIMAGE  amd64
# uname -K
1100122
igalic commented 7 years ago

same issue, but on FreeBSD 11.1 (uname -K: 1101001 & -a: FreeBSD container-host1 11.1-RELEASE FreeBSD 11.1-RELEASE #0 r321309: Fri Jul 21 02:08:28 UTC 2017 root@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64 )

gronke commented 7 years ago

This was fixed in https://github.com/freenas/py-libzfs/pull/1 - I'm confused about the upstream repo situation, but would suggest to cherry-pick that commit.