Hello community, here is the log from the commit of package python-pyfuse3 for openSUSE:Factory checked in at 2019-06-17 21:34:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pyfuse3 (Old) and /work/SRC/openSUSE:Factory/.python-pyfuse3.new.4811 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyfuse3" Mon Jun 17 21:34:49 2019 rev:2 rq:710356 version:1.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pyfuse3/python-pyfuse3.changes 2019-06-01 09:44:47.495420729 +0200 +++ /work/SRC/openSUSE:Factory/.python-pyfuse3.new.4811/python-pyfuse3.changes 2019-06-17 21:35:18.134997704 +0200 @@ -1,0 +2,6 @@ +Mon Jun 17 11:48:24 UTC 2019 - Tomáš Chvátal <[email protected]> + +- Update to 1.3: + * Fixed a bug in the tmpfs.py and passthroughfs.py example file systems + +------------------------------------------------------------------- Old: ---- pyfuse3-1.2.tar.gz New: ---- pyfuse3-1.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pyfuse3.spec ++++++ --- /var/tmp/diff_new_pack.HSJ14I/_old 2019-06-17 21:35:18.754997564 +0200 +++ /var/tmp/diff_new_pack.HSJ14I/_new 2019-06-17 21:35:18.758997563 +0200 @@ -20,7 +20,7 @@ %define skip_python2 1 %define pname pyfuse3 Name: python-%{pname} -Version: 1.2 +Version: 1.3 Release: 0 Summary: Python Bindings for the low-level FUSE3 API License: LGPL-2.1-or-later ++++++ pyfuse3-1.2.tar.gz -> pyfuse3-1.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyfuse3-1.2/.travis.yml new/pyfuse3-1.3/.travis.yml --- old/pyfuse3-1.2/.travis.yml 2018-12-22 15:54:32.000000000 +0100 +++ new/pyfuse3-1.3/.travis.yml 2019-06-02 14:50:16.000000000 +0200 @@ -4,7 +4,6 @@ language: - python python: - - "3.6" - "3.7" addons: apt: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyfuse3-1.2/Changes.rst new/pyfuse3-1.3/Changes.rst --- old/pyfuse3-1.2/Changes.rst 2018-12-22 15:54:32.000000000 +0100 +++ new/pyfuse3-1.3/Changes.rst 2019-06-02 14:50:16.000000000 +0200 @@ -4,6 +4,12 @@ .. currentmodule:: pyfuse3 +Release 1.3 (2019-06-02) +======================== + +* Fixed a bug in the `tmpfs.py` and `passthroughfs.py` example + file systems (so rename operations no longer fail). + Release 1.2 (2018-12-22) ======================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyfuse3-1.2/developer-notes/release_process.rst new/pyfuse3-1.3/developer-notes/release_process.rst --- old/pyfuse3-1.2/developer-notes/release_process.rst 2018-12-22 15:54:32.000000000 +0100 +++ new/pyfuse3-1.3/developer-notes/release_process.rst 2019-06-02 14:50:16.000000000 +0200 @@ -23,9 +23,9 @@ I'm happy to announce a new release of pyfuse3, version <X.Y>. -pyfuse3 is a set of Python 3 bindings for libfuse3. It provides -an asynchronous API compatible with Trio, and enables you to easily -write a full-featured Linux filesystem in Python. +pyfuse3 is a set of Python 3 bindings for `libfuse 3`_. It provides an +asynchronous API compatible with Trio_ and asyncio_, and enables you +to easily write a full-featured Linux filesystem in Python. From the changelog: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyfuse3-1.2/examples/passthroughfs.py new/pyfuse3-1.3/examples/passthroughfs.py --- old/pyfuse3-1.2/examples/passthroughfs.py 2018-12-22 15:54:32.000000000 +0100 +++ new/pyfuse3-1.3/examples/passthroughfs.py 2019-06-02 14:50:16.000000000 +0200 @@ -239,7 +239,11 @@ self._add_path(stat.st_ino, path) return await self.getattr(stat.st_ino) - async def rename(self, inode_p_old, name_old, inode_p_new, name_new, ctx): + async def rename(self, inode_p_old, name_old, inode_p_new, name_new, + flags, ctx): + if flags != 0: + raise FUSEError(errno.EINVAL) + name_old = fsdecode(name_old) name_new = fsdecode(name_new) parent_old = self._inode_to_path(inode_p_old) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyfuse3-1.2/examples/tmpfs.py new/pyfuse3-1.3/examples/tmpfs.py --- old/pyfuse3-1.2/examples/tmpfs.py 2018-12-22 15:54:32.000000000 +0100 +++ new/pyfuse3-1.3/examples/tmpfs.py 2019-06-02 14:50:16.000000000 +0200 @@ -221,7 +221,11 @@ stat.S_IROTH | stat.S_IWOTH | stat.S_IXOTH) return await self._create(inode_p, name, mode, ctx, target=target) - async def rename(self, inode_p_old, name_old, inode_p_new, name_new, ctx): + async def rename(self, inode_p_old, name_old, inode_p_new, name_new, + flags, ctx): + if flags != 0: + raise FUSEError(errno.EINVAL) + entry_old = await self.lookup(inode_p_old, name_old) try: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyfuse3-1.2/setup.py new/pyfuse3-1.3/setup.py --- old/pyfuse3-1.2/setup.py 2018-12-22 15:54:32.000000000 +0100 +++ new/pyfuse3-1.3/setup.py 2019-06-02 14:50:16.000000000 +0200 @@ -57,7 +57,7 @@ # to work properly sys.path.insert(0, os.path.join(basedir, 'src')) -PYFUSE3_VERSION = '1.2' +PYFUSE3_VERSION = '1.3' def main(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyfuse3-1.2/test/test_examples.py new/pyfuse3-1.3/test/test_examples.py --- old/pyfuse3-1.2/test/test_examples.py 2018-12-22 15:54:32.000000000 +0100 +++ new/pyfuse3-1.3/test/test_examples.py 2019-06-02 14:50:16.000000000 +0200 @@ -80,6 +80,7 @@ tst_chmod(mnt_dir) tst_utimens(mnt_dir) tst_link(mnt_dir) + tst_rename(mnt_dir) tst_readdir(mnt_dir) tst_statvfs(mnt_dir) tst_truncate_path(mnt_dir) @@ -111,6 +112,7 @@ # Underlying fs may not have full nanosecond resolution tst_utimens(mnt_dir, ns_tol=1000) tst_link(mnt_dir) + tst_rename(mnt_dir) tst_readdir(mnt_dir) tst_statvfs(mnt_dir) tst_truncate_path(mnt_dir) @@ -242,6 +244,25 @@ assert fstat1.st_nlink == 1 os.unlink(name1) +def tst_rename(mnt_dir): + name1 = os.path.join(mnt_dir, name_generator()) + name2 = os.path.join(mnt_dir, name_generator()) + shutil.copyfile(TEST_FILE, name1) + + assert os.path.basename(name1) in os.listdir(mnt_dir) + assert os.path.basename(name2) not in os.listdir(mnt_dir) + assert filecmp.cmp(name1, TEST_FILE, False) + + fstat1 = os.lstat(name1) + os.rename(name1, name2) + fstat2 = os.lstat(name2) + + assert fstat1 == fstat2 + assert filecmp.cmp(name2, TEST_FILE, False) + assert os.path.basename(name1) not in os.listdir(mnt_dir) + assert os.path.basename(name2) in os.listdir(mnt_dir) + os.unlink(name2) + def tst_readdir(mnt_dir): dir_ = os.path.join(mnt_dir, name_generator()) file_ = dir_ + "/" + name_generator()
