Hello community, here is the log from the commit of package python-pysmbc for openSUSE:Leap:15.2 checked in at 2020-02-21 23:48:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/python-pysmbc (Old) and /work/SRC/openSUSE:Leap:15.2/.python-pysmbc.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pysmbc" Fri Feb 21 23:48:48 2020 rev:12 rq:777005 version:1.0.18 Changes: -------- --- /work/SRC/openSUSE:Leap:15.2/python-pysmbc/python-pysmbc.changes 2020-01-15 15:52:11.759555006 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.python-pysmbc.new.26092/python-pysmbc.changes 2020-02-21 23:48:49.192503070 +0100 @@ -1,0 +2,19 @@ +Mon Jan 6 03:56:31 UTC 2020 - Steve Kowalik <[email protected]> + +- Update to 1.0.18: + + New in 1.0.18: + * Support Fix memleak for auth_fn #32 + * Support readinto #31 + + + New in 1.0.17: + * Support buffer protocol #30 + * exceptions: use a shared superclass #28 + * setup: autodetect required library dirs #27 + +------------------------------------------------------------------- +Mon Jul 22 14:55:40 UTC 2019 - Tomáš Chvátal <[email protected]> + +- Update to 1.0.16: + * no changelog + +------------------------------------------------------------------- Old: ---- pysmbc-1.0.15.8.tar.bz2 New: ---- pysmbc-1.0.18.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pysmbc.spec ++++++ --- /var/tmp/diff_new_pack.ZB8NBf/_old 2020-02-21 23:48:50.436505543 +0100 +++ /var/tmp/diff_new_pack.ZB8NBf/_new 2020-02-21 23:48:50.472505615 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-pysmbc # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -21,12 +21,12 @@ # Tests don't work in rpmbuild sandbox %bcond_with test Name: python-pysmbc -Version: 1.0.15.8 +Version: 1.0.18 Release: 0 Summary: Python bindings for samba clients (libsmbclient) -License: GPL-2.0+ +License: GPL-2.0-or-later Group: Development/Languages/Python -Url: http://cyberelk.net/tim/software/pysmbc/ +URL: http://cyberelk.net/tim/software/pysmbc/ Source: https://files.pythonhosted.org/packages/source/p/pysmbc/pysmbc-%{version}.tar.bz2 BuildRequires: %{python_module devel} BuildRequires: %{python_module setuptools} @@ -45,7 +45,6 @@ Obsoletes: python3-smbc < %{version} Provides: python3-smbc = %{version} %endif - %python_subpackages %description @@ -63,7 +62,7 @@ %python_install %{python_expand chmod a+x %{buildroot}%{$python_sitearch}/smbc/xattr.py -sed -i "s|^#!/usr/bin/python$|#!%__$python|" %{buildroot}%{$python_sitearch}/smbc/xattr.py +sed -i "s|^#!%{_bindir}/python$|#!%__$python|" %{buildroot}%{$python_sitearch}/smbc/xattr.py $python -m compileall -d %{$python_sitearch} %{buildroot}%{$python_sitearch}/smbc/ $python -O -m compileall -d %{$python_sitelib} %{buildroot}%{$python_sitearch}/smbc/ %fdupes %{buildroot}%{$python_sitearch} @@ -78,8 +77,8 @@ %endif %files %{python_files} -%defattr(-,root,root,-) -%doc COPYING NEWS +%license COPYING +%doc NEWS %{python_sitearch}/* %changelog ++++++ pysmbc-1.0.15.8.tar.bz2 -> pysmbc-1.0.18.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysmbc-1.0.15.8/NEWS new/pysmbc-1.0.18/NEWS --- old/pysmbc-1.0.15.8/NEWS 2015-09-25 21:48:51.000000000 +0200 +++ new/pysmbc-1.0.18/NEWS 2019-09-27 10:38:14.000000000 +0200 @@ -1,6 +1,15 @@ NEWS ---- +New in 1.0.18: +* Support Fix memleak for auth_fn #32 +* Support readinto #31 + +New in 1.0.17: +* Support buffer protocol #30 +* exceptions: use a shared superclass #28 +* setup: autodetect required library dirs #27 + New in 1.0.15.5: * fix NUL-termination bug diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysmbc-1.0.15.8/PKG-INFO new/pysmbc-1.0.18/PKG-INFO --- old/pysmbc-1.0.15.8/PKG-INFO 2017-08-08 17:59:26.000000000 +0200 +++ new/pysmbc-1.0.18/PKG-INFO 2019-09-27 10:38:36.000000000 +0200 @@ -1,12 +1,11 @@ Metadata-Version: 1.1 Name: pysmbc -Version: 1.0.15.8 +Version: 1.0.18 Summary: Python bindings for libsmbclient -Home-page: http://cyberelk.net/tim/software/pysmbc/ +Home-page: https://github.com/hamano/pysmbc Author: ['Tim Waugh <[email protected]>', 'Tsukasa Hamano <[email protected]>', 'Roberto Polli <[email protected]>'] Author-email: UNKNOWN License: GPLv2+ -Download-URL: http://cyberelk.net/tim/data/pysmbc/ Description: This is a set of Python bindings for the libsmbclient library from the samba project. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysmbc-1.0.15.8/README.md new/pysmbc-1.0.18/README.md --- old/pysmbc-1.0.15.8/README.md 1970-01-01 01:00:00.000000000 +0100 +++ new/pysmbc-1.0.18/README.md 2019-09-27 10:36:50.000000000 +0200 @@ -0,0 +1,56 @@ +SMB bindings for Python +----------------------- + +[](https://pypi.python.org/pypi/pysmbc/) +[](https://travis-ci.org/hamano/pysmbc) +[]() + +These Python bindings are intended to wrap the libsmbclient API. + + +Prerequisites +------ + +Currently libsmbclient 3.2.x or later is required. Ubuntu Example: +~~~ +# sudo apt install pkg-config libopencv-dev smbclient libsmbclient libsmbclient-dev +~~~ + +Build +------ +~~~ +# make +~~~ + + +Test +------ + +To run Python tests in tests/ you need python-nose +See nose documentation http://readthedocs.org/docs/nose + +To run all the tests execute + +~~~ +# nosetests +~~~ + +To run just one test, use + +~~~ +# nosetests file.py +~~~ + +To selectively run test methods, printing output to console + +~~~ +# nosetests -vs test_context.py:test_Workgroup +~~~ + +NOTE: to run your tests, you need + + * a running samba server + * one shared folder with + * rw permissions + * guest ok = no + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysmbc-1.0.15.8/pysmbc.egg-info/PKG-INFO new/pysmbc-1.0.18/pysmbc.egg-info/PKG-INFO --- old/pysmbc-1.0.15.8/pysmbc.egg-info/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 +++ new/pysmbc-1.0.18/pysmbc.egg-info/PKG-INFO 2019-09-27 10:38:36.000000000 +0200 @@ -0,0 +1,44 @@ +Metadata-Version: 1.1 +Name: pysmbc +Version: 1.0.18 +Summary: Python bindings for libsmbclient +Home-page: https://github.com/hamano/pysmbc +Author: ['Tim Waugh <[email protected]>', 'Tsukasa Hamano <[email protected]>', 'Roberto Polli <[email protected]>'] +Author-email: UNKNOWN +License: GPLv2+ +Description: This is a set of Python bindings for the libsmbclient library + from the samba project. + + >>> # Directory listing example: + >>> import smbc + >>> ctx = smbc.Context (auth_fn=my_auth_callback_fn) + >>> entries = ctx.opendir ("smb://SERVER").getdents () + >>> for entry in entries: + ... print entry + <smbc.Dirent object "music" (File share) at 0x7fbd7c42b3a0> + <smbc.Dirent object "IPC$" (IPC share) at 0x7fbd7c42b148> + <smbc.Dirent object "Charlie" (Printer share) at 0x7fbd7c42b3c8> + >>> d = ctx.open ("smb://SERVER/music") + + >>> # Write file example: + >>> import smbc + >>> import os + >>> ctx = smbc.Context (auth_fn=my_auth_callback_fn) + >>> file = ctx.open ("smb://SERVER/music/file.txt", os.O_CREAT | os.O_WRONLY) + >>> file.write ("hello") + + >>> # Read file example: + >>> import smbc + >>> ctx = smbc.Context (auth_fn=my_auth_callback_fn) + >>> file = ctx.open ("smb://SERVER/music/file.txt") + >>> print file.read() + hello + + +Platform: UNKNOWN +Classifier: Intended Audience :: Developers +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: License :: OSI Approved :: GNU General Public License (GPL) +Classifier: Development Status :: 5 - Production/Stable +Classifier: Operating System :: Unix +Classifier: Programming Language :: C diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysmbc-1.0.15.8/pysmbc.egg-info/SOURCES.txt new/pysmbc-1.0.18/pysmbc.egg-info/SOURCES.txt --- old/pysmbc-1.0.15.8/pysmbc.egg-info/SOURCES.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/pysmbc-1.0.18/pysmbc.egg-info/SOURCES.txt 2019-09-27 10:38:36.000000000 +0200 @@ -0,0 +1,29 @@ +COPYING +MANIFEST.in +Makefile +NEWS +README.md +TODO +setup.py +pysmbc.egg-info/PKG-INFO +pysmbc.egg-info/SOURCES.txt +pysmbc.egg-info/dependency_links.txt +pysmbc.egg-info/top_level.txt +smbc/__init__.py +smbc/context.c +smbc/context.h +smbc/dir.c +smbc/dir.h +smbc/file.c +smbc/file.h +smbc/smbcdirent.c +smbc/smbcdirent.h +smbc/smbcmodule.c +smbc/smbcmodule.h +smbc/xattr.py +tests/settings.py +tests/test_acl.py +tests/test_auth.py +tests/test_context.py +tests/test_dir.py +tests/test_file.py \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysmbc-1.0.15.8/pysmbc.egg-info/dependency_links.txt new/pysmbc-1.0.18/pysmbc.egg-info/dependency_links.txt --- old/pysmbc-1.0.15.8/pysmbc.egg-info/dependency_links.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/pysmbc-1.0.18/pysmbc.egg-info/dependency_links.txt 2019-09-27 10:38:36.000000000 +0200 @@ -0,0 +1 @@ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysmbc-1.0.15.8/pysmbc.egg-info/top_level.txt new/pysmbc-1.0.18/pysmbc.egg-info/top_level.txt --- old/pysmbc-1.0.15.8/pysmbc.egg-info/top_level.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/pysmbc-1.0.18/pysmbc.egg-info/top_level.txt 2019-09-27 10:38:36.000000000 +0200 @@ -0,0 +1,2 @@ +_smbc +smbc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysmbc-1.0.15.8/setup.cfg new/pysmbc-1.0.18/setup.cfg --- old/pysmbc-1.0.15.8/setup.cfg 1970-01-01 01:00:00.000000000 +0100 +++ new/pysmbc-1.0.18/setup.cfg 2019-09-27 10:38:36.000000000 +0200 @@ -0,0 +1,4 @@ +[egg_info] +tag_build = +tag_date = 0 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysmbc-1.0.15.8/setup.py new/pysmbc-1.0.18/setup.py --- old/pysmbc-1.0.15.8/setup.py 2017-08-08 17:59:13.000000000 +0200 +++ new/pysmbc-1.0.18/setup.py 2019-09-27 10:37:31.000000000 +0200 @@ -5,6 +5,7 @@ ## Authors: ## Tim Waugh <[email protected]> ## Tsukasa Hamano <[email protected]> +## Laurent Coustet <[email protected]> ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -50,43 +51,59 @@ """ -from distutils.core import setup, Extension import subprocess +from setuptools import setup, Extension -def pkgconfig_I (pkg): +def pkgconfig_I(pkg): dirs = [] - c = subprocess.Popen (["pkg-config", "--cflags", pkg], - stdout=subprocess.PIPE) + c = subprocess.Popen(["pkg-config", "--cflags", pkg], stdout=subprocess.PIPE) (stdout, stderr) = c.communicate () - for p in stdout.decode ('ascii').split (): - if p.startswith ("-I"): - dirs.append (p[2:]) + for p in stdout.decode('ascii').split(): + if p.startswith("-I"): + dirs.append(p[2:]) return dirs - -setup (name="pysmbc", - version="1.0.15.8", - description="Python bindings for libsmbclient", - long_description=__doc__, - author=["Tim Waugh <[email protected]>", - "Tsukasa Hamano <[email protected]>", - "Roberto Polli <[email protected]>" ], - url="http://cyberelk.net/tim/software/pysmbc/", - download_url="http://cyberelk.net/tim/data/pysmbc/", - classifiers=[ + +def pkgconfig_L(pkg): + dirs = [] + c = subprocess.Popen(["pkg-config", "--libs", pkg], stdout=subprocess.PIPE) + (stdout, stderr) = c.communicate () + for p in stdout.decode('ascii').split(): + if p.startswith("-L"): + dirs.append(p[2:]) + return dirs + +setup( + name="pysmbc", + version="1.0.18", + description="Python bindings for libsmbclient", + long_description=__doc__, + author=[ + "Tim Waugh <[email protected]>", + "Tsukasa Hamano <[email protected]>", + "Roberto Polli <[email protected]>", + ], + url="https://github.com/hamano/pysmbc", + license="GPLv2+", + packages=["smbc"], + classifiers=[ "Intended Audience :: Developers", "Topic :: Software Development :: Libraries :: Python Modules", "License :: OSI Approved :: GNU General Public License (GPL)", "Development Status :: 5 - Production/Stable", "Operating System :: Unix", "Programming Language :: C", + ], + ext_modules=[ + Extension("_smbc", [ + "smbc/smbcmodule.c", + "smbc/context.c", + "smbc/dir.c", + "smbc/file.c", + "smbc/smbcdirent.c" ], - license="GPLv2+", - packages=["smbc"], - ext_modules=[Extension("_smbc", - ["smbc/smbcmodule.c", - "smbc/context.c", - "smbc/dir.c", - "smbc/file.c", - "smbc/smbcdirent.c"], - libraries=["smbclient"], - include_dirs=pkgconfig_I("smbclient"))]) + libraries=["smbclient"], + library_dirs=pkgconfig_L("smbclient"), + include_dirs=pkgconfig_I("smbclient") + ) + ], +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysmbc-1.0.15.8/smbc/context.c new/pysmbc-1.0.18/smbc/context.c --- old/pysmbc-1.0.15.8/smbc/context.c 2017-08-08 17:59:13.000000000 +0200 +++ new/pysmbc-1.0.18/smbc/context.c 2019-09-27 10:36:50.000000000 +0200 @@ -137,7 +137,7 @@ return -1; } - Py_XINCREF (auth); + Py_INCREF (auth); self->auth_fn = auth; } @@ -183,6 +183,7 @@ smbc_free_context (self->context, 1); } + Py_XDECREF (self->auth_fn); Py_TYPE(self)->tp_free ((PyObject *) self); } @@ -890,7 +891,8 @@ return -1; } - Py_XINCREF (value); + Py_XDECREF (self->auth_fn); + Py_INCREF (value); self->auth_fn = value; smbc_setFunctionAuthDataWithContext (self->context, auth_fn); return 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysmbc-1.0.15.8/smbc/file.c new/pysmbc-1.0.18/smbc/file.c --- old/pysmbc-1.0.15.8/smbc/file.c 2015-09-25 21:48:51.000000000 +0200 +++ new/pysmbc-1.0.18/smbc/file.c 2019-09-27 10:36:50.000000000 +0200 @@ -173,19 +173,43 @@ } static PyObject * +File_readinto (File *self, PyObject *args) +{ + Context *ctx = self->context; + smbc_read_fn fn; + Py_buffer buf; + ssize_t len; + + if (!PyArg_ParseTuple (args, "|s*", &buf)) + return NULL; + + fn = smbc_getFunctionRead (ctx->context); + + len = (*fn) (ctx->context, self->file, buf.buf, buf.len); + PyBuffer_Release(&buf); + if (len < 0) + { + pysmbc_SetFromErrno (); + return NULL; + } + + return PyLong_FromLong (len); +} + +static PyObject * File_write (File *self, PyObject *args) { Context *ctx = self->context; - int size = 0; smbc_write_fn fn; - char *buf; + Py_buffer buf; ssize_t len; - if (!PyArg_ParseTuple (args, "s#", &buf, &size)) + if (!PyArg_ParseTuple (args, "s*", &buf)) return NULL; fn = smbc_getFunctionWrite (ctx->context); - len = (*fn) (ctx->context, self->file, buf, size); + len = (*fn) (ctx->context, self->file, buf.buf, buf.len); + PyBuffer_Release(&buf); if (len < 0) { pysmbc_SetFromErrno (); @@ -307,6 +331,12 @@ "@param size: size of reading\n" "@return: read data" }, + {"readinto", (PyCFunction)File_readinto, METH_VARARGS, + "readinto(b) -> int\n\n" + "@type b: writable bytes-like object\n" + "@param b: buffer to fill\n" + "@return: number of bytes read" + }, {"write", (PyCFunction)File_write, METH_VARARGS, "write(buf) -> int\n\n" "@type buf: string\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysmbc-1.0.15.8/smbc/smbcmodule.c new/pysmbc-1.0.18/smbc/smbcmodule.c --- old/pysmbc-1.0.15.8/smbc/smbcmodule.c 2015-09-25 21:48:51.000000000 +0200 +++ new/pysmbc-1.0.18/smbc/smbcmodule.c 2019-09-27 10:36:50.000000000 +0200 @@ -127,35 +127,39 @@ INT_CONSTANT (SMBC_, XATTR_FLAG_REPLACE); // define exception objects - NoEntryError = PyErr_NewException("smbc.NoEntryError", NULL, NULL); + PyObject *SmbError = PyErr_NewException("smbc.SmbError", PyExc_IOError, NULL); + Py_INCREF(SmbError); + PyModule_AddObject(m, "SmbError", SmbError); + + NoEntryError = PyErr_NewException("smbc.NoEntryError", SmbError, NULL); Py_INCREF(NoEntryError); PyModule_AddObject(m, "NoEntryError", NoEntryError); - PermissionError = PyErr_NewException("smbc.PermissionError", NULL, NULL); + PermissionError = PyErr_NewException("smbc.PermissionError", SmbError, NULL); Py_INCREF(PermissionError); PyModule_AddObject(m, "PermissionError", PermissionError); - ExistsError = PyErr_NewException("smbc.ExistsError", NULL, NULL); + ExistsError = PyErr_NewException("smbc.ExistsError", SmbError, NULL); Py_INCREF(ExistsError); PyModule_AddObject(m, "ExistsError", ExistsError); - NotEmptyError = PyErr_NewException("smbc.NotEmptyError", NULL, NULL); + NotEmptyError = PyErr_NewException("smbc.NotEmptyError", SmbError, NULL); Py_INCREF(NotEmptyError); PyModule_AddObject(m, "NotEmptyError", NotEmptyError); - TimedOutError = PyErr_NewException("smbc.TimedOutError", NULL, NULL); + TimedOutError = PyErr_NewException("smbc.TimedOutError", SmbError, NULL); Py_INCREF(TimedOutError); PyModule_AddObject(m, "TimedOutError", TimedOutError); - NoSpaceError = PyErr_NewException("smbc.NoSpaceError", NULL, NULL); + NoSpaceError = PyErr_NewException("smbc.NoSpaceError", SmbError, NULL); Py_INCREF(NoSpaceError); PyModule_AddObject(m, "NoSpaceError", NoSpaceError); - NotDirectoryError = PyErr_NewException("smbc.NotDirectoryError", NULL, NULL); + NotDirectoryError = PyErr_NewException("smbc.NotDirectoryError", SmbError, NULL); Py_INCREF(NotDirectoryError); PyModule_AddObject(m, "NotDirectoryError", NotDirectoryError); - ConnectionRefusedError = PyErr_NewException("smbc.ConnectionRefusedError", NULL, NULL); + ConnectionRefusedError = PyErr_NewException("smbc.ConnectionRefusedError", SmbError, NULL); Py_INCREF(ConnectionRefusedError); PyModule_AddObject(m, "ConnectionRefusedError", ConnectionRefusedError);
