# # spec file for package python-pyftpdlib # # Copyright (c) 2024 SUSE LLC # Copyright (c) 2016 LISA GmbH, Bingen, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %{?sle15_python_module_pythons} Name: python-pyftpdlib Version: 1.5.10 Release: 1.4 Summary: Asynchronous FTP server library for Python License: MIT URL: https://github.com/giampaolo/pyftpdlib/ Source: https://files.pythonhosted.org/packages/source/p/pyftpdlib/pyftpdlib-%{version}.tar.gz Source1: keycert.pem BuildRequires: %{python_module pip} BuildRequires: %{python_module psutil} BuildRequires: %{python_module pyOpenSSL} BuildRequires: %{python_module pysendfile} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-pyOpenSSL Requires(post): update-alternatives Requires(postun): update-alternatives Recommends: python-pysendfile BuildArch: noarch %python_subpackages %description The Python FTP server library provides a high-level interface to write very asynchronous FTP servers with Python. %prep %autosetup -p1 -n pyftpdlib-%{version} sed -i '1 {/env python/ d}' pyftpdlib/test/*.py pyftpdlib/_compat.py cp %{SOURCE1} pyftpdlib/test %build %pyproject_wheel %install %pyproject_install %python_clone -a %{buildroot}%{_bindir}/ftpbench %python_expand %fdupes %{buildroot}%{$python_sitelib} # Note: Do not remove tests. Other packages import them %check ignorebuild="--ignore build" %{python_expand # expand to python flavor, not to the binary name, then strip the trailing _ builddir=_build.$python_ ignorebuild+=" --ignore ${builddir%%_}" } cat > pytest.ini < - update to 1.5.10: * use black formatter. * use argparse instead of deprecated optparse. * use pytest instead of unittest. * add ability to run tests in parallel with make test- parallel. * PermissionError may occur on Windows when binding ports from a pre-configured PASV range. * Mon Mar 25 2024 Dirk Müller - update to 1.5.9: * Enhancements * #611: use ruff code style checker instead of flake8 + isort (much faster + makes many more code quality checks). * Bug fixes * #604: client connection may be reset in PASV/EPSV mode during TLS handshake. (patch by Benedikt McMullin) * #607: possible infinite wait in Epoll (patch by @stat1c-void) * #607: possible infinite traceback printing in DTPHandler (patch by @stat1c-void) * #613: (CRITICAL) bugfix for TLS disconnect causing 100%% CPU usage. (patch by @hakai) * #614: close connection on SSL EOF error, instead of erroneously replying with "226 Transfer completed." * Enhancements * #586: removed Python 2.6 support. * #591: speedup logging by 28%% by using logging._srcfile = None trick. This avoids calling calling sys._getframe() for each log record. * #605: added support for Python 3.12. * Enhancements * #544: replace Travis with Github Actions for CI testing. * Bug fixes * #481: fix [WinError 10038] an operation was attempted on something that is not a socket. (patch by Tailing Yuan) * #578, [critical]: FTPS broke with PyOpenSSL version 22.1.0. * Enhancements * #467: added pre-fork concurrency model, spawn()ing worker processes to split load. * #520: directory LISTing is now 3.7x times faster. * Enhancements * #495: colored test output. * Bug fixes * #492: CRLF line endings are replaced with CRCRLF in ASCII mode downloads. * #496: import error due to multiprocessing.Lock() bug. * Enhancements * #463: FTPServer class can now be used as a context manager. * Bug fixes * #431: Ctrl-C doesn't exit python -m pyftpdlib on Windows. * #436: ThreadedFTPServer.max_cons is evaluated threading.activeCount(). If the user uses threads of its own it will consume the number of max_cons. * #447: ThreadedFTPServer and MultiprocessFTPServer do not join() tasks which are no longer consuming resources. * Enhancements * #201: implemented SITE MFMT command which changes file modification time. (patch by Tahir Ijaz) * #327: add username and password command line options * #433: documentation moved to readthedocs: http://pyftpdlib.readthedocs.io * Bug fixes * #403: fix duplicated output log. (path by PonyPC) * #414: Respond successfully to STOR only after closing file handle. - drop support-python-312.patch (upstream) * Tue Sep 19 2023 Steve Kowalik - Add patch support-python-312.patch, support Python 3.12+ - Stop using greedy globs in %%files - Switch to autosetup and pyproject macros - Remove Python 2 leftovers - Enable running the tests again * Fri Apr 21 2023 Dirk Müller - add sle15_python_module_pythons (jsc#PED-68) * Thu Apr 13 2023 Matej Cepl - Make calling of %%{sle15modernpython} optional. * Fri Oct 28 2022 Yogalakshmi Arunachalam - Update to Version: 1.5.7 - 2022-10-04 Enhancements * #544: replace Travis with Github Actions for CI testing. Bug fixes * #481: fix [WinError 10038] an operation was attempted on something that is not a socket. (patch by Tailing Yuan) * #578, [critical]: FTPS broke with PyOpenSSL version 22.1.0. - Update to Version: 1.5.6 - 2020-02-16 Enhancements * #467: added pre-fork concurrency model, spawn()ing worker processes to split load. * #520: directory LISTing is now 3.7x times faster. * Wed Jan 19 2022 Matej Cepl - Switch off the test suite, it just doesn't work reliably (gh#giampaolo/pyftpdlib#540). * Tue Oct 26 2021 Steve Kowalik - Regenerate new private key/x509 certificate for the test suite. (thanks, Jason!) * Fri May 7 2021 Ben Greiner - Skip masquerade tests failung because the newest Pythons don't allow invalid addresses gh#giampaolo/pyftpdlib#550, bpo-43285 - Remove script interpreter lines for test files and _compyt.py (fix rpmlint warnings) * Fri Dec 18 2020 Benjamin Greiner - add ignore _build directories to pytest args to fix builds for multiple pytest flavors gh#openSUSE/python-rpm-macros#66 - fix tests failing locally because of gh#giampaolo/pyftpdlib#478 * Sun Aug 16 2020 John Vandenberg - Re-activate test suite, replacing nose with pytest * Wed May 20 2020 Petr Gajdos - %%python3_only -> %%python_alternative * Mon Apr 20 2020 Tomáš Chvátal - Fix build without python2 * Fri Mar 27 2020 Antonio Larrosa - Do not remove tests, other packages import them * Wed Mar 18 2020 Tomáš Chvátal - Update to 1.5.6: - #467: added pre-fork concurrency model, spawn()ing worker processes to split load. - #520: directory LISTing is now 3.7x times faster. * Tue May 28 2019 Tomáš Chvátal - Do not remove tests, other packages import them * Sat May 25 2019 Tomáš Chvátal - Update to 1.5.5: * Various minor fixes and documentation updates * Tue Dec 4 2018 Matej Cepl - Remove superfluous devel dependency for noarch package * Wed May 9 2018 toddrme2178@gmail.com - Version update to 1.5.4 + Enhancements * #463: FTPServer class can now be used as a context manager. + Bug fixes * #431: Ctrl-C doesn't exit `python -m pyftpdlib` on Windows. * #436: ThreadedFTPServer.max_cons is evaluated threading.activeCount(). If the user uses threads of its own it will consume the number of max_cons. * #447: ThreadedFTPServer and MultiprocessFTPServer do not join() tasks which are no longer consuming resources. - Disable tests since they randomly fail. See https://github.com/giampaolo/pyftpdlib/issues/386 * Wed May 2 2018 tchvatal@suse.com - Version update to 1.5.3: * implemented SITE MFMT command which changes file modification time. (patch by Tahir Ijaz) * add username and password command line options * documentation moved to readthedocs: http://pyftpdlib.readthedocs.io * fix duplicated output log. (path by PonyPC) * Respond successfully to STOR only after closing file handle. * Thu Jul 6 2017 jengelh@inai.de - Trim exaggeration from descriptions. * Thu Jun 22 2017 jmatejek@suse.com - update to 1.5.2 * disables old SSL methods * fixed some hangs/crashes - fixes test failures in OBS - drop patches that are no longer needed: * pyftpdlib-disable-error-0-ssl-unwrap.diff * pyftpdlib-disable-incomplete-file-received.diff * pyftpdlib-handle-missing-SSLv3.diff - convert to singlespec * Mon May 9 2016 hpj@urpla.net - add patch to disable another failing test, related to icomplete file receptions * Mon May 9 2016 hpj@urpla.net - add patch to test SSLv3 only, if available * Mon May 9 2016 hpj@urpla.net - add patch to disable a test, that triggers an error 0 in ssl * Sun May 8 2016 hpj@urpla.net - version 1.5.1: initial build