[Python-modules-commits] [python-llfuse] 02/03: [ Ondřej Nový ] [ Nikolaus Rath ] Don't use pytest.skip at module level. Closes: #837254.
Nikolaus Rath
nikratio-guest at moszumanska.debian.org
Sat Sep 24 04:04:07 UTC 2016
This is an automated email from the git hooks/post-receive script.
nikratio-guest pushed a commit to branch master
in repository python-llfuse.
commit 531c6331c2fc8f79a91b5a64071f8a6c06816d31
Merge: f602071 19b0db8
Author: Nikolaus Rath <Nikolaus at rath.org>
Date: Fri Sep 23 20:40:20 2016 -0700
[ Ondřej Nový ]
[ Nikolaus Rath ]
Don't use pytest.skip at module level. Closes: #837254.
debian/.git-dpm | 4 +-
debian/changelog | 4 +
...003-Use-cython3-instead-of-cython-command.patch | 2 +-
...Backport-properties-to-Cython-0.23-syntax.patch | 4 +-
...mpiler-warnings-due-to-old-Cython-version.patch | 2 +-
.../patches/0006-Work-around-Cython-0.23-bug.patch | 2 +-
...tended-attribute-tests-under-GNU-kFreeBSD.patch | 2 +-
debian/patches/mips_dev_t.diff | 2 +-
debian/patches/pytest-skip.diff | 110 +++++++++++++++++++++
debian/patches/series | 1 +
.../patches/use-local-intersphinx-inventory.patch | 2 +-
test/test_examples.py | 4 +-
test/test_fs.py | 5 +-
test/util.py | 20 ++--
14 files changed, 143 insertions(+), 21 deletions(-)
diff --cc debian/.git-dpm
index 540feb1,0000000..94f8b15
mode 100644,000000..100644
--- a/debian/.git-dpm
+++ b/debian/.git-dpm
@@@ -1,11 -1,0 +1,11 @@@
+# see git-dpm(1) from git-dpm package
- 4686182e678b4be3535c4ea4ccc016dd725fb57d
- 4686182e678b4be3535c4ea4ccc016dd725fb57d
++19b0db84e5635cc8f33ffe8d08b78bce7135443c
++19b0db84e5635cc8f33ffe8d08b78bce7135443c
+df84cf8d74324f750f847be2f6fb0bcb39e571ce
+df84cf8d74324f750f847be2f6fb0bcb39e571ce
+python-llfuse_1.1.1+dfsg.orig.tar.xz
+560ea615e9dfe24153860c3c2ef0184f082367e3
+171264
+debianTag="debian/%e%v"
+patchedTag="patched/%e%v"
+upstreamTag="upstream/%e%u"
diff --cc debian/changelog
index 4b48a1c,0000000..3a9e24b
mode 100644,000000..100644
--- a/debian/changelog
+++ b/debian/changelog
@@@ -1,208 -1,0 +1,212 @@@
+python-llfuse (1.1.1+dfsg-3) UNRELEASED; urgency=medium
+
++ [ Ondřej Nový ]
+ * Fixed VCS URL (https)
+
++ [ Nikolaus Rath ]
++ * Don't use pytest.skip at module level. Closes: #837254.
++
+ -- Ondřej Nový <novy at ondrej.org> Tue, 29 Mar 2016 22:10:26 +0200
+
+python-llfuse (1.1.1+dfsg-2) unstable; urgency=medium
+
+ * Added missing pytest-catchlog build dependency
+ * Fixup 0004-Backport-properties-to-Cython-0.23-syntax.patch
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Wed, 27 Jul 2016 11:25:48 -0700
+
+python-llfuse (1.1.1+dfsg-1) unstable; urgency=medium
+
+ * New upstream release.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Wed, 27 Jul 2016 10:20:40 -0700
+
+python-llfuse (1.0+dfsg-2) unstable; urgency=medium
+
+ * Cherry picked ns-resolution support for kFreeBSD
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Thu, 10 Mar 2016 09:13:08 -0800
+
+python-llfuse (1.0+dfsg-1) unstable; urgency=medium
+
+ * New upstream release.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Tue, 08 Mar 2016 09:04:29 -0800
+
+python-llfuse (0.43+dfsg-3) unstable; urgency=medium
+
+ * Skip extended attribute tests under kFreeBSD.
+ * Bump standards version to 3.9.7, no changes required.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Mon, 07 Mar 2016 13:23:53 -0800
+
+python-llfuse (0.43+dfsg-2) unstable; urgency=medium
+
+ * Added Breaks: borgbackup.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Thu, 25 Feb 2016 09:42:48 -0800
+
+python-llfuse (0.43+dfsg-1) unstable; urgency=medium
+
+ * Updated URL in copyright file.
+ * New upstream release.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Tue, 23 Feb 2016 16:10:05 -0800
+
+python-llfuse (0.41.1+dfsg-4) unstable; urgency=medium
+
+ * Added patches/mips_dev_t.diff to work around bug in mips/mipsel libc
+ (cf. https://sourceware.org/bugzilla/show_bug.cgi?id=17786).
+ Closes: #635197.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Wed, 16 Sep 2015 13:59:11 -0700
+
+python-llfuse (0.41.1+dfsg-3) unstable; urgency=medium
+
+ * Bumped Cython dependency to >= 0.21.1. Older versions don't have
+ posix/time.pxi.
+ * Added patches/setattr_compat.diff to restore full backwards
+ compatibility with version 0.40 (some applications were relying
+ on undocumented behavior were broken by the update to 0.41.1).
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Thu, 10 Sep 2015 14:09:16 -0700
+
+python-llfuse (0.41.1+dfsg-1) unstable; urgency=medium
+
+ * Added test suite.
+ * 'nostrip' build option is now honored.
+ * New upstream release.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Sat, 22 Aug 2015 19:34:48 -0700
+
+python-llfuse (0.41+dfsg-1) unstable; urgency=medium
+
+ * New upstream release.
+ * Use Python 3 versions of Cython and Sphinx.
+ * Dropped build dependency on cython3-dbg (fixed upstream).
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Fri, 21 Aug 2015 08:52:21 -0700
+
+python-llfuse (0.40+dfsg-2) unstable; urgency=medium
+
+ * Correctly handle symlink-to-directory transition of
+ /usr/share/doc/{python,python3}-llfuse-dbg when upgrading from jessie.
+ Closes: #788161.
+ * Add versioned Breaks and Conflicts to -dbg packages to avoid
+ upgrade problems due to moved file. Closes: #781652.
+ * Put debugging symbols for regular interpreter into -dbg
+ package again. Closes: #781719.
+ * Bumped Standards-Version to 3.9.6 (no changes needed).
+ * Added missing build-depends on cython3 and cython-dbg.
+ Closes: #794056.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Wed, 29 Jul 2015 20:49:49 -0700
+
+python-llfuse (0.40+dfsg-1) unstable; urgency=medium
+
+ * Updated watch file to use pypi, and validate pgp signature.
+ * Remove minified javascript files from upstream source.
+ * Switched package build system to pybuild.
+ * Updated project URL.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Thu, 10 Jul 2014 21:34:34 -0700
+
+python-llfuse (0.40-2) unstable; urgency=low
+
+ * Some cosmetic fixes to debian/
+ * Bumped standards version to 3.9.5, no other changes required.
+ * Added force_xattr_api.diff to support compilation under GNU/kFreeBSD.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Wed, 27 Nov 2013 20:19:13 -0800
+
+python-llfuse (0.40-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Tue, 26 Nov 2013 21:59:10 -0800
+
+python-llfuse (0.39-1) unstable; urgency=low
+
+ [ Nikolaus Rath ]
+ * Bumped standards version to 3.9.4, no other changes required.
+ * Bumped debhelper compatibility level to 9 to get support for
+ dpkg-buildflags.
+ * Added lintian override for hardening-no-fortify-functions,
+ this is a false positive.
+ * Build depend on newer Cython (> 0.16).
+ * New upstream release.
+
+ [ Jakub Wilk ]
+ * Use canonical URIs for Vcs-* fields.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Sat, 11 May 2013 12:33:34 -0700
+
+python-llfuse (0.37.1-2) unstable; urgency=low
+
+ * Fix build failure, only call dh_sphinxdoc when building
+ python-llfuse-doc package.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Thu, 22 Dec 2011 22:37:26 -0500
+
+python-llfuse (0.37.1-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Sat, 10 Dec 2011 20:57:38 -0500
+
+python-llfuse (0.36-2) unstable; urgency=low
+
+ * Use dh_sphinxdoc. Closes: #637393.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Mon, 24 Oct 2011 19:36:59 -0400
+
+python-llfuse (0.36-1) unstable; urgency=low
+
+ * New upstream release.
+ * Depend on Cython > 0.15.1, previous versions generated segfaulting
+ code.
+ * Breaks S3QL < 1.2, API changed in non-backwards compatible way.
+ (python-llfuse is not in any stable release, and S3QL is the
+ only reverse dependency, so a new package name does not seem
+ justified).
+ * Update format of copyright file.
+ * Fixed argument parsing under Python 3.x
+ * Do correct typecasting of mode_t constants. Fix introduces
+ build dependency on Cython 0.15 (Closes: #635196).
+ * Use underscore.js from libjs-underscore rather than shipping
+ our own version.
+ * Added correct copyright information for files in doc/html/_static.
+ * Thanks to Jakub Wilk for his packaging review.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Tue, 20 Sep 2011 22:16:17 -0400
+
+python-llfuse (0.33-1) unstable; urgency=low
+
+ * New upstream release.
+ * Build extension before generating documentation, so that
+ autogenerated documentation is no longer empty. Closes: 631871
+ * Ship cached python intersphinx file in debian/, so that it
+ does not need to be downloaded at build time.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Wed, 06 Jul 2011 09:32:38 -0400
+
+python-llfuse (0.32-2) unstable; urgency=low
+
+ * Created separate -doc package for documentation. Closes: 630632
+ * Regenerate documentation in debian/rules. Closes: 630605
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Sat, 25 Jun 2011 13:01:03 -0400
+
+python-llfuse (0.32-1) unstable; urgency=low
+
+ * First official debian release. Closes: 626658
+ * Breaks and Replaces s3ql <= 0.28, this package isn't in the official
+ debian package but was provided by upstream over various channels (LLFUSE
+ was factored out of S3QL in version 0.29).
+ * Rebuilding of HTML documentation requires (yet unreleased) Sphinx version
+ 1.1 or resolution of wishlist bug #63040, therefore we do not rebuild the
+ documentation in debian/rules but use the HTML files included in the
+ upstream tarball.
+
+ -- Nikolaus Rath <Nikolaus at rath.org> Thu, 12 May 2011 10:19:11 -0400
+
diff --cc debian/patches/0003-Use-cython3-instead-of-cython-command.patch
index 06aeb71,0000000..af5396c
mode 100644,000000..100644
--- a/debian/patches/0003-Use-cython3-instead-of-cython-command.patch
+++ b/debian/patches/0003-Use-cython3-instead-of-cython-command.patch
@@@ -1,37 -1,0 +1,37 @@@
+From baf2d5e68316623c4787dd486c7dbebf7c019389 Mon Sep 17 00:00:00 2001
+From: Nikolaus Rath <Nikolaus at rath.org>
+Date: Tue, 23 Feb 2016 16:30:36 -0800
+Subject: Use 'cython3' instead of 'cython' command
+
+Origin: debian
+Forwarded: not-needed
+
+In Debian, python3-cython provides only a 'cython3' command. To avoid
+pulling in the complete Python 2.x runtime environment for
+python-cython, we use 'cython3' instead.
+---
+ setup.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
- index 353c..8a5c 100755
++index 353c0..8a5ca 100755
+--- a/setup.py
++++ b/setup.py
+@@ -210,7 +210,7 @@ class build_cython(setuptools.Command):
+
+ def run(self):
+ try:
+- version = subprocess.check_output(['cython', '--version'],
++ version = subprocess.check_output(['cython3', '--version'],
+ universal_newlines=True,
+ stderr=subprocess.STDOUT)
+ except OSError:
+@@ -220,7 +220,7 @@ class build_cython(setuptools.Command):
+ if not hit or LooseVersion(hit.group(1)) < "0.24":
+ raise SystemExit('Need Cython 0.24 or newer, found ' + version)
+
+- cmd = ['cython', '-Wextra', '--force', '-3', '--fast-fail',
++ cmd = ['cython3', '-Wextra', '--force', '-3', '--fast-fail',
+ '--directive', 'embedsignature=True', '--include-dir',
+ os.path.join(basedir, 'Include'), '--verbose' ]
+ if DEVELOPER_MODE:
diff --cc debian/patches/0004-Backport-properties-to-Cython-0.23-syntax.patch
index f40d12a,0000000..689c5d4
mode 100644,000000..100644
--- a/debian/patches/0004-Backport-properties-to-Cython-0.23-syntax.patch
+++ b/debian/patches/0004-Backport-properties-to-Cython-0.23-syntax.patch
@@@ -1,348 -1,0 +1,348 @@@
+From 4423b7ddfd6e035ac862e4a008c3bc5df2d25d96 Mon Sep 17 00:00:00 2001
+From: Nikolaus Rath <Nikolaus at rath.org>
+Date: Tue, 23 Feb 2016 16:17:31 -0800
+Subject: Backport properties to Cython 0.23 syntax
+
+Origin: debian
+Forwarded: not-needed
+Last-Update: <2016-02-23>
+Author: Nikolaus Rath <Nikolaus at rath.org>
+
+The syntax to define properties in Cython has changed from
+version 0.23 to 0.24. Upstream uses the newer syntax, but Cython
+0.24 is not available in Debian yet. Thus, we backport to the
+older syntax.
+---
+ setup.py | 4 +-
+ src/misc.pxi | 283 ++++++++++++++++++++++-------------------------------------
+ 2 files changed, 109 insertions(+), 178 deletions(-)
+
+diff --git a/setup.py b/setup.py
- index 8a5c..cc21 100755
++index 8a5ca..cc21a 100755
+--- a/setup.py
++++ b/setup.py
+@@ -217,8 +217,8 @@ class build_cython(setuptools.Command):
+ raise SystemExit('Cython needs to be installed for this command')
+
+ hit = re.match('^Cython version (.+)$', version)
+- if not hit or LooseVersion(hit.group(1)) < "0.24":
+- raise SystemExit('Need Cython 0.24 or newer, found ' + version)
++ if not hit or LooseVersion(hit.group(1)) < "0.23":
++ raise SystemExit('Need Cython 0.23 or newer, found ' + version)
+
+ cmd = ['cython3', '-Wextra', '--force', '-3', '--fast-fail',
+ '--directive', 'embedsignature=True', '--include-dir',
+diff --git a/src/misc.pxi b/src/misc.pxi
- index c949..77ff 100644
++index c9498..77ffe 100644
+--- a/src/misc.pxi
++++ b/src/misc.pxi
+@@ -368,126 +368,82 @@ cdef class EntryAttributes:
+ self.attr.st_blksize = 4096
+ self.attr.st_nlink = 1
+
+- @property
+- def st_ino(self):
+- return self.fuse_param.ino
+- @st_ino.setter
+- def st_ino(self, val):
+- self.fuse_param.ino = val
+- self.attr.st_ino = val
+-
+- @property
+- def generation(self):
+- '''The inode generation number'''
+- return self.fuse_param.generation
+- @generation.setter
+- def generation(self, val):
+- self.fuse_param.generation = val
+-
+- @property
+- def attr_timeout(self):
+- '''Validity timeout for the attributes of the directory entry
+-
+- Floating point numbers may be used. Units are seconds.
+- '''
+- return self.fuse_param.attr_timeout
+- @attr_timeout.setter
+- def attr_timeout(self, val):
+- self.fuse_param.attr_timeout = val
++ property st_ino:
++ def __get__(self): return self.fuse_param.ino
++ def __set__(self, val):
++ self.fuse_param.ino = val
++ self.attr.st_ino = val
+
+- @property
+- def entry_timeout(self):
+- '''Validity timeout for the name/existence of the directory entry
++ property generation:
++ def __get__(self): return self.fuse_param.generation
++ def __set__(self, val): self.fuse_param.generation = val
+
+- Floating point numbers may be used. Units are seconds.
+- '''
+- return self.fuse_param.entry_timeout
+- @entry_timeout.setter
+- def entry_timeout(self, val):
+- self.fuse_param.entry_timeout = val
+-
+- @property
+- def st_mode(self):
+- return self.attr.st_mode
+- @st_mode.setter
+- def st_mode(self, val):
+- self.attr.st_mode = val
+-
+- @property
+- def st_nlink(self):
+- return self.attr.st_nlink
+- @st_nlink.setter
+- def st_nlink(self, val):
+- self.attr.st_nlink = val
+-
+- @property
+- def st_uid(self):
+- return self.attr.st_uid
+- @st_uid.setter
+- def st_uid(self, val):
+- self.attr.st_uid = val
+-
+- @property
+- def st_gid(self):
+- return self.attr.st_gid
+- @st_gid.setter
+- def st_gid(self, val):
+- self.attr.st_gid = val
+-
+- @property
+- def st_rdev(self):
+- return self.attr.st_rdev
+- @st_rdev.setter
+- def st_rdev(self, val):
+- self.attr.st_rdev = val
+-
+- @property
+- def st_size(self):
+- return self.attr.st_size
+- @st_size.setter
+- def st_size(self, val):
+- self.attr.st_size = val
+-
+- @property
+- def st_blocks(self):
+- return self.attr.st_blocks
+- @st_blocks.setter
+- def st_blocks(self, val):
+- self.attr.st_blocks = val
+-
+- @property
+- def st_blksize(self):
+- return self.attr.st_blksize
+- @st_blksize.setter
+- def st_blksize(self, val):
+- self.attr.st_blksize = val
+-
+- @property
+- def st_atime_ns(self):
++ property attr_timeout:
++ def __get__(self): return self.fuse_param.attr_timeout
++ def __set__(self, val): self.fuse_param.attr_timeout = val
++
++ property entry_timeout:
++ def __get__(self): return self.fuse_param.entry_timeout
++ def __set__(self, val): self.fuse_param.entry_timeout = val
++
++ property st_mode:
++ def __get__(self): return self.attr.st_mode
++ def __set__(self, val): self.attr.st_mode = val
++
++ property st_nlink:
++ def __get__(self): return self.attr.st_nlink
++ def __set__(self, val): self.attr.st_nlink = val
++
++ property st_uid:
++ def __get__(self): return self.attr.st_uid
++ def __set__(self, val): self.attr.st_uid = val
++
++ property st_gid:
++ def __get__(self): return self.attr.st_gid
++ def __set__(self, val): self.attr.st_gid = val
++
++ property st_rdev:
++ def __get__(self): return self.attr.st_rdev
++ def __set__(self, val): self.attr.st_rdev = val
++
++ property st_size:
++ def __get__(self): return self.attr.st_size
++ def __set__(self, val): self.attr.st_size = val
++
++ property st_blocks:
++ def __get__(self): return self.attr.st_blocks
++ def __set__(self, val): self.attr.st_blocks = val
++
++ property st_blksize:
++ def __get__(self): return self.attr.st_blksize
++ def __set__(self, val): self.attr.st_blksize = val
++
++ property st_atime_ns:
+ '''Time of last access in (integer) nanoseconds'''
+- return (int(self.attr.st_atime) * 10**9 + GET_ATIME_NS(self.attr))
+- @st_atime_ns.setter
+- def st_atime_ns(self, val):
+- self.attr.st_atime = val / 10**9
+- SET_ATIME_NS(self.attr, val % 10**9)
+-
+- @property
+- def st_mtime_ns(self):
++ def __get__(self):
++ return (int(self.attr.st_atime) * 10**9
++ + GET_ATIME_NS(self.attr))
++ def __set__(self, val):
++ self.attr.st_atime = val / 10**9
++ SET_ATIME_NS(self.attr, val % 10**9)
++
++ property st_mtime_ns:
+ '''Time of last modification in (integer) nanoseconds'''
+- return (int(self.attr.st_mtime) * 10**9 + GET_MTIME_NS(self.attr))
+- @st_mtime_ns.setter
+- def st_mtime_ns(self, val):
+- self.attr.st_mtime = val / 10**9
+- SET_MTIME_NS(self.attr, val % 10**9)
+-
+- @property
+- def st_ctime_ns(self):
++ def __get__(self):
++ return (int(self.attr.st_mtime) * 10**9
++ + GET_MTIME_NS(self.attr))
++ def __set__(self, val):
++ self.attr.st_mtime = val / 10**9
++ SET_MTIME_NS(self.attr, val % 10**9)
++
++ property st_ctime_ns:
+ '''Time of last inode modification in (integer) nanoseconds'''
+- return (int(self.attr.st_ctime) * 10**9 + GET_CTIME_NS(self.attr))
+- @st_ctime_ns.setter
+- def st_ctime_ns(self, val):
+- self.attr.st_ctime = val / 10**9
+- SET_CTIME_NS(self.attr, val % 10**9)
++ def __get__(self):
++ return (int(self.attr.st_ctime) * 10**9
++ + GET_CTIME_NS(self.attr))
++ def __set__(self, val):
++ self.attr.st_ctime = val / 10**9
++ SET_CTIME_NS(self.attr, val % 10**9)
+
+ @cython.freelist(1)
+ cdef class StatvfsData:
+@@ -502,61 +458,37 @@ cdef class StatvfsData:
+ def __cinit__(self):
+ string.memset(&self.stat, 0, sizeof(statvfs))
+
+- @property
+- def f_bsize(self):
+- return self.stat.f_bsize
+- @f_bsize.setter
+- def f_bsize(self, val):
+- self.stat.f_bsize = val
+-
+- @property
+- def f_frsize(self):
+- return self.stat.f_frsize
+- @f_frsize.setter
+- def f_frsize(self, val):
+- self.stat.f_frsize = val
+-
+- @property
+- def f_blocks(self):
+- return self.stat.f_blocks
+- @f_blocks.setter
+- def f_blocks(self, val):
+- self.stat.f_blocks = val
+-
+- @property
+- def f_bfree(self):
+- return self.stat.f_bfree
+- @f_bfree.setter
+- def f_bfree(self, val):
+- self.stat.f_bfree = val
+-
+- @property
+- def f_bavail(self):
+- return self.stat.f_bavail
+- @f_bavail.setter
+- def f_bavail(self, val):
+- self.stat.f_bavail = val
+-
+- @property
+- def f_files(self):
+- return self.stat.f_files
+- @f_files.setter
+- def f_files(self, val):
+- self.stat.f_files = val
+-
+- @property
+- def f_ffree(self):
+- return self.stat.f_ffree
+- @f_ffree.setter
+- def f_ffree(self, val):
+- self.stat.f_ffree = val
+-
+- @property
+- def f_favail(self):
+- return self.stat.f_favail
+- @f_favail.setter
+- def f_favail(self, val):
+- self.stat.f_favail = val
++ property f_bsize:
++ def __get__(self): return self.stat.f_bsize
++ def __set__(self, val): self.stat.f_bsize = val
++
++ property f_frsize:
++ def __get__(self): return self.stat.f_frsize
++ def __set__(self, val): self.stat.f_frsize = val
++
++ property f_blocks:
++ def __get__(self): return self.stat.f_blocks
++ def __set__(self, val): self.stat.f_blocks = val
++
++ property f_bfree:
++ def __get__(self): return self.stat.f_bfree
++ def __set__(self, val): self.stat.f_bfree = val
++
++ property f_bavail:
++ def __get__(self): return self.stat.f_bavail
++ def __set__(self, val): self.stat.f_bavail = val
++
++ property f_files:
++ def __get__(self): return self.stat.f_files
++ def __set__(self, val): self.stat.f_files = val
++
++ property f_ffree:
++ def __get__(self): return self.stat.f_ffree
++ def __set__(self, val): self.stat.f_ffree = val
++
++ property f_favail:
++ def __get__(self): return self.stat.f_favail
++ def __set__(self, val): self.stat.f_favail = val
+
+
+ # As of Cython 0.23.1, @cython.freelist cannot be used for
+@@ -574,13 +506,12 @@ cdef class FUSEError(Exception):
+ # a macro?)
+ cdef int errno_
+
+- @property
+- def errno(self):
++ property errno:
+ '''Error code to return to client process'''
+- return self.errno_
+- @errno.setter
+- def errno(self, val):
+- self.errno_ = val
++ def __get__(self):
++ return self.errno_
++ def __set__(self, val):
++ self.errno_ = val
+
+ def __cinit__(self, errno):
+ self.errno_ = errno
diff --cc debian/patches/0005-Ignore-compiler-warnings-due-to-old-Cython-version.patch
index a1b78c5,0000000..0d13dfc
mode 100644,000000..100644
--- a/debian/patches/0005-Ignore-compiler-warnings-due-to-old-Cython-version.patch
+++ b/debian/patches/0005-Ignore-compiler-warnings-due-to-old-Cython-version.patch
@@@ -1,30 -1,0 +1,30 @@@
+From 1069a4f2bbc3d2aba2984d64eb19c73f20aec500 Mon Sep 17 00:00:00 2001
+From: Nikolaus Rath <Nikolaus at rath.org>
+Date: Tue, 23 Feb 2016 16:14:11 -0800
+Subject: Ignore compiler warnings due to old Cython version
+
+Origin: debian
+Forwarded: not-needed
+Last-Update: <2016-02-23>
+Author: Nikolaus Rath <Nikolaus at rath.org>
+
+Cython versions prior to 0.24 generate Gcc compiler warnings.
+Since Cython 0.24 isn't in Debian yet, we ignore these warnings.
+---
+ setup.py | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
- index cc21..16cc 100755
++index cc21a..16cc0 100755
+--- a/setup.py
++++ b/setup.py
+@@ -80,9 +80,6 @@ def main():
+ # We may have unused functions if we compile for older FUSE versions
+ compile_args.append('-Wno-unused-function')
+
+- # Value-changing conversions should always be explicit.
+- compile_args.append('-Werror=conversion')
+-
+ # Note that (i > -1) is false if i is unsigned (-1 will be converted to
+ # a large positive value). We certainly don't want to do this by
+ # accident.
diff --cc debian/patches/0006-Work-around-Cython-0.23-bug.patch
index 14faa41,0000000..086561b
mode 100644,000000..100644
--- a/debian/patches/0006-Work-around-Cython-0.23-bug.patch
+++ b/debian/patches/0006-Work-around-Cython-0.23-bug.patch
@@@ -1,41 -1,0 +1,41 @@@
+From e7fc1d9b0413e9a72fdb0fb55aab2ee024572a43 Mon Sep 17 00:00:00 2001
+From: Nikolaus Rath <Nikolaus at rath.org>
+Date: Tue, 23 Feb 2016 16:39:59 -0800
+Subject: Work around Cython 0.23 bug.
+
+Origin: Debian
+Forwarded: not-needed
+
+Cython 0.23 has a wrong definition of posix.signal.sigaction_t,
+so we provide the correct one. This is fixed in Cython 0.24.
+---
+ src/llfuse.pyx | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/src/llfuse.pyx b/src/llfuse.pyx
- index 10c6..357a 100644
++index 10c61..357ae 100644
+--- a/src/llfuse.pyx
++++ b/src/llfuse.pyx
+@@ -46,7 +46,7 @@ from libc.errno cimport ETIMEDOUT, EPROTO, EINVAL, EPERM, ENOMSG
+ from posix.unistd cimport getpid
+ from posix.time cimport timespec
+ from posix.signal cimport (sigemptyset, sigaddset, SIG_BLOCK, SIG_SETMASK,
+- siginfo_t, sigaction_t, sigaction, SA_SIGINFO)
++ siginfo_t, sigaction, SA_SIGINFO)
+ from cpython.bytes cimport (PyBytes_AsStringAndSize, PyBytes_FromStringAndSize,
+ PyBytes_AsString, PyBytes_FromString, PyBytes_AS_STRING)
+ from cpython.buffer cimport (PyObject_GetBuffer, PyBuffer_Release,
+@@ -61,6 +61,13 @@ from libc cimport signal
+ # EXTERNAL DEFINITIONS
+ ######################
+
++cdef extern from * nogil:
++ cdef struct sigaction_t "sigaction":
++ void sa_handler(int)
++ void sa_sigaction(int, siginfo_t *, void *)
++ sigset_t sa_mask
++ int sa_flags
++
+ cdef extern from "lock.h" nogil:
+ int acquire(double timeout) nogil
+ int release() nogil
diff --cc debian/patches/0007-Skip-extended-attribute-tests-under-GNU-kFreeBSD.patch
index 6d847eb,0000000..ca01680
mode 100644,000000..100644
--- a/debian/patches/0007-Skip-extended-attribute-tests-under-GNU-kFreeBSD.patch
+++ b/debian/patches/0007-Skip-extended-attribute-tests-under-GNU-kFreeBSD.patch
@@@ -1,36 -1,0 +1,36 @@@
+From 4686182e678b4be3535c4ea4ccc016dd725fb57d Mon Sep 17 00:00:00 2001
+From: Nikolaus Rath <Nikolaus at rath.org>
+Date: Mon, 7 Mar 2016 13:22:36 -0800
+Subject: Skip extended attribute tests under GNU/kFreeBSD
+
+Origin: Debian
+Forwarded: not-needed
+
+Under GNU/kFreeBSD the setxattr and getxattr functions are dummies
+that return ENOTIMPL.
+---
+ test/test_api.py | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/test/test_api.py b/test/test_api.py
- index 8124..e2b3 100755
++index 81242..e2b37 100755
+--- a/test/test_api.py
++++ b/test/test_api.py
+@@ -21,6 +21,7 @@ import tempfile
+ import os
+ import errno
+ import pytest
++import sys
+
+ def test_inquire_bits():
+ assert 0 < llfuse.get_ino_t_bits() < 256
+@@ -64,6 +65,9 @@ def test_entry_res():
+ a.st_atime_ns = val*1e9
+ assert a.st_atime_ns / 1e9 == val
+
++
++ at pytest.mark.skipif(sys.platform.startswith('gnukfreebsd'),
++ reason='GNU/kFreeBSD does not have xattr support')
+ def test_xattr():
+ with tempfile.NamedTemporaryFile() as fh:
+ key = 'user.new_attribute'
diff --cc debian/patches/mips_dev_t.diff
index 44158c1,0000000..192e5cf
mode 100644,000000..100644
--- a/debian/patches/mips_dev_t.diff
+++ b/debian/patches/mips_dev_t.diff
@@@ -1,53 -1,0 +1,53 @@@
+From 12ee26cd101b7e6ef75121d2f7fbc9c5b9ba82a4 Mon Sep 17 00:00:00 2001
+From: Nikolaus Rath <Nikolaus at rath.org>
+Date: Mon, 1 Feb 2016 09:40:04 -0800
+Subject: Work around bug in mips+mipsel libc
+
+Forwarded: no
+Patch-Name: mips_dev_t.diff
+
+On mips and mipsel, the st_dev and st_rdev members of struct stat do not
+have type dev_t. This breaks POSIX compatibility, but is difficult to fix
+(cf. https://sourceware.org/bugzilla/show_bug.cgi?id=17786).
+
+To work around the issue, we change the definition of struct stat that
+is used by Cython when we are compiling under mips. Note that this
+requires the Cython compilation to run under mips, and that the
+resulting C file will be mips specific (without the patch, the
+generated C file is suitable for any architecture).
+
+Upstream is not interested in this change for obvious reasons.
+---
+ src/llfuse.pyx | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/src/llfuse.pyx b/src/llfuse.pyx
- index 53a6..10c6 100644
++index 53a64..10c61 100644
+--- a/src/llfuse.pyx
++++ b/src/llfuse.pyx
+@@ -20,7 +20,24 @@ cdef extern from "llfuse.h":
+
+ from fuse_lowlevel cimport *
+ from pthread cimport *
+-from posix.stat cimport struct_stat, S_IFMT, S_IFDIR, S_IFREG
++IF UNAME_MACHINE.startswith('mips64'):
++ cdef extern from "sys/stat.h" nogil:
++ struct stat:
++ int st_dev
++ ino_t st_ino
++ mode_t st_mode
++ nlink_t st_nlink
++ uid_t st_uid
++ gid_t st_gid
++ int st_rdev
++ off_t st_size
++ blksize_t st_blksize
++ blkcnt_t st_blocks
++ time_t st_atime
++ time_t st_mtime
++ time_t st_ctime
++ELSE:
++ from posix.stat cimport struct_stat, S_IFMT, S_IFDIR, S_IFREG
+ from posix.types cimport mode_t, dev_t, off_t
+ from libc.stdint cimport uint32_t
+ from libc.stdlib cimport const_char
diff --cc debian/patches/pytest-skip.diff
index 0000000,0000000..bee73a7
new file mode 100644
--- /dev/null
+++ b/debian/patches/pytest-skip.diff
@@@ -1,0 -1,0 +1,110 @@@
++From 19b0db84e5635cc8f33ffe8d08b78bce7135443c Mon Sep 17 00:00:00 2001
++From: Nikolaus Rath <Nikolaus at rath.org>
++Date: Fri, 23 Sep 2016 20:38:53 -0700
++Subject: Don't use pytest.skip at module level.
++
++Origin: upstream
++Forwarded: not-needed
++Patch-Name: pytest-skip.diff
++
++This was cherry picked from upstream. pytest 3 no longer support
++pytest.skip at module level.
++---
++ test/test_examples.py | 4 ++--
++ test/test_fs.py | 5 ++---
++ test/util.py | 20 ++++++++++++++------
++ 3 files changed, 18 insertions(+), 11 deletions(-)
++
++diff --git a/test/test_examples.py b/test/test_examples.py
++index 707c7..0e8f6c 100755
++--- a/test/test_examples.py
+++++ b/test/test_examples.py
++@@ -25,12 +25,12 @@ import shutil
++ import filecmp
++ import errno
++ from tempfile import NamedTemporaryFile
++-from util import skip_if_no_fuse, wait_for_mount, umount, cleanup
+++from util import fuse_test_marker, wait_for_mount, umount, cleanup
++
++ basename = os.path.join(os.path.dirname(__file__), '..')
++ TEST_FILE = __file__
++
++-skip_if_no_fuse()
+++pytestmark = fuse_test_marker()
++
++ with open(TEST_FILE, 'rb') as fh:
++ TEST_DATA = fh.read()
++diff --git a/test/test_fs.py b/test/test_fs.py
++index b6c25..7bbd4 100755
++--- a/test/test_fs.py
+++++ b/test/test_fs.py
++@@ -25,10 +25,9 @@ import stat
++ import time
++ import logging
++ import threading
++-from util import skip_if_no_fuse, wait_for_mount, umount, cleanup, wait_for
++-
++-skip_if_no_fuse()
+++from util import fuse_test_marker, wait_for_mount, umount, cleanup, wait_for
++
+++pytestmark = fuse_test_marker()
++
++ @pytest.yield_fixture()
++ def testfs(tmpdir):
++diff --git a/test/util.py b/test/util.py
++index 2e8fe..043fd 100644
++--- a/test/util.py
+++++ b/test/util.py
++@@ -23,12 +23,18 @@ import sys
++ if sys.version_info[0] == 2:
++ subprocess.DEVNULL = open('/dev/null', 'w')
++
++-def skip_if_no_fuse():
++- '''Skip test if system/user/environment does not support FUSE'''
+++def fuse_test_marker():
+++ '''Return a pytest.marker that indicates FUSE availability
+++
+++ If system/user/environment does not support FUSE, return
+++ a `pytest.mark.skip` object with more details. If FUSE is
+++ supported, return `pytest.mark.uses_fuse()`.
+++ '''
++
++ if platform.system() == 'Darwin':
++ # No working autodetection, just assume it will work.
++ return
+++ skip = lambda x: pytest.mark.skip(reason=x)
++
++ # Python 2.x: Popen is not a context manager...
++ which = subprocess.Popen(['which', 'fusermount'], stdout=subprocess.PIPE,
++@@ -39,25 +45,27 @@ def skip_if_no_fuse():
++ which.wait()
++
++ if not fusermount_path or which.returncode != 0:
++- pytest.skip("Can't find fusermount executable")
+++ return skip("Can't find fusermount executable")
++
++ if not os.path.exists('/dev/fuse'):
++- pytest.skip("FUSE kernel module does not seem to be loaded")
+++ return skip("FUSE kernel module does not seem to be loaded")
++
++ if os.getuid() == 0:
++ return
++
++ mode = os.stat(fusermount_path).st_mode
++ if mode & stat.S_ISUID == 0:
++- pytest.skip('fusermount executable not setuid, and we are not root.')
+++ return skip('fusermount executable not setuid, and we are not root.')
++
++ try:
++ fd = os.open('/dev/fuse', os.O_RDWR)
++ except OSError as exc:
++- pytest.skip('Unable to open /dev/fuse: %s' % exc.strerror)
+++ return skip('Unable to open /dev/fuse: %s' % exc.strerror)
++ else:
++ os.close(fd)
++
+++ return pytest.mark.uses_fuse()
+++
++ def exitcode(process):
++ if isinstance(process, subprocess.Popen):
++ return process.poll()
diff --cc debian/patches/series
index cebec59,0000000..480bb1b
mode 100644,000000..100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@@ -1,7 -1,0 +1,8 @@@
+use-local-intersphinx-inventory.patch
+mips_dev_t.diff
+0003-Use-cython3-instead-of-cython-command.patch
+0004-Backport-properties-to-Cython-0.23-syntax.patch
+0005-Ignore-compiler-warnings-due-to-old-Cython-version.patch
+0006-Work-around-Cython-0.23-bug.patch
+0007-Skip-extended-attribute-tests-under-GNU-kFreeBSD.patch
++pytest-skip.diff
diff --cc debian/patches/use-local-intersphinx-inventory.patch
index d75ae51,0000000..c574b9b
mode 100644,000000..100644
--- a/debian/patches/use-local-intersphinx-inventory.patch
+++ b/debian/patches/use-local-intersphinx-inventory.patch
@@@ -1,28 -1,0 +1,28 @@@
+From 48e6c33f77106b9368e7db430d296ba6c31e47a6 Mon Sep 17 00:00:00 2001
+From: Nikolaus Rath <Nikolaus at rath.org>
+Date: Thu, 8 Oct 2015 12:24:34 -0700
+Subject: Use local intersphinx inventory
+
+Forwarded: not-needed
+Last-Update: 2011-07-06
+ Instead of downloading the Python intersphinx directory
+ at build time, use the cached copy shipped in debian/.
+Patch-Name: use-local-intersphinx-inventory.patch
+---
+ rst/conf.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
... 15 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-llfuse.git
More information about the Python-modules-commits
mailing list