15
0

- Removed requirement for python-urwid in SPEC file, as the

code stopped using it.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-configshell-fb?expand=0&rev=42
This commit is contained in:
2025-04-18 17:44:18 +00:00
committed by Git OBS Bridge
commit 378178c1df
9 changed files with 498 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.osc

19
_service Normal file
View File

@@ -0,0 +1,19 @@
<services>
<service name="tar_scm" mode="disabled">
<param name="scm">git</param>
<param name="url">https://github.com/open-iscsi/configshell-fb.git</param>
<param name="package-meta">yes</param>
<param name="filename">python-configshell-fb</param>
<param name="revision">master</param>
<param name="version">master</param>
<param name="versionformat">2.0.0-@TAG_OFFSET@.%h</param>
<param name="versionrewrite-pattern">v(\d*\.\d*\.)(\d*)</param>
<param name="versionrewrite-replacement">\1\2</param>
<param name="match-tag">v2.0.0*</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">*configshell-fb*.tar</param>
<param name="compression">xz</param>
</service>
<service name="set_version" mode="disabled"/>
</services>

6
_servicedata Normal file
View File

@@ -0,0 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/open-iscsi/rtslib-fb.git</param>
<param name="changesrevision">b37bc67fc7ed3d1ec447e9f43eb68d30dd716367</param></service><service name="tar_scm">
<param name="url">https://github.com/open-iscsi/configshell-fb.git</param>
<param name="changesrevision">7e3b8ebe12519ad5cc20a9654a7c070b2ecf3cd8</param></service></servicedata>

160
no-six.patch Normal file
View File

@@ -0,0 +1,160 @@
Index: python-configshell-fb-1.1.30/configshell/console.py
===================================================================
--- python-configshell-fb-1.1.30.orig/configshell/console.py
+++ python-configshell-fb-1.1.30/configshell/console.py
@@ -17,7 +17,6 @@ under the License.
from fcntl import ioctl
import re
-import six
import struct
import sys
from termios import TIOCGWINSZ, TCSADRAIN, tcsetattr, tcgetattr
Index: python-configshell-fb-1.1.30/configshell/node.py
===================================================================
--- python-configshell-fb-1.1.30.orig/configshell/node.py
+++ python-configshell-fb-1.1.30/configshell/node.py
@@ -17,7 +17,6 @@ under the License.
import inspect
import re
-import six
class ExecutionError(Exception):
pass
@@ -503,7 +502,7 @@ class ConfigNode(object):
elif group not in self.list_config_groups():
raise ExecutionError("Unknown configuration group: %s" % group)
- for param, value in six.iteritems(parameter):
+ for param, value in parameter.items():
if param not in self.list_group_params(group):
raise ExecutionError("Unknown parameter %s in group '%s'."
% (param, group))
@@ -1256,7 +1255,7 @@ class ConfigNode(object):
bookmarks += "No bookmarks yet.\n"
else:
for (bookmark, path) \
- in six.iteritems(self.shell.prefs['bookmarks']):
+ in self.shell.prefs['bookmarks'].items():
if len(bookmark) == 1:
bookmark += '\0'
underline = ''.ljust(len(bookmark), '-')
@@ -1703,7 +1702,7 @@ class ConfigNode(object):
return []
else:
params = []
- for p_name, p_def in six.iteritems(self._configuration_groups[group]):
+ for p_name, p_def in self._configuration_groups[group].items():
(p_type, p_description, p_writable) = p_def
if writable is not None and p_writable != writable:
continue
Index: python-configshell-fb-1.1.30/configshell/prefs.py
===================================================================
--- python-configshell-fb-1.1.30.orig/configshell/prefs.py
+++ python-configshell-fb-1.1.30/configshell/prefs.py
@@ -16,8 +16,8 @@ under the License.
'''
import os
-import six
import fcntl
+import pickle
class Prefs(object):
'''
@@ -116,7 +116,7 @@ class Prefs(object):
@return: Iterates on the items in preferences.
@rtype: yields items that are (key, value) pairs
'''
- return six.iteritems(self._prefs)
+ return self._prefs.items()
def save(self, filename=None):
'''
@@ -132,7 +132,7 @@ class Prefs(object):
fsock = open(filename, 'wb')
fcntl.lockf(fsock, fcntl.LOCK_UN)
try:
- six.moves.cPickle.dump(self._prefs, fsock, 2)
+ pickle.dump(self._prefs, fsock, 2)
finally:
fsock.close()
@@ -148,6 +148,6 @@ class Prefs(object):
fsock = open(filename, 'rb')
fcntl.lockf(fsock, fcntl.LOCK_SH)
try:
- self._prefs = six.moves.cPickle.load(fsock)
+ self._prefs = pickle.load(fsock)
finally:
fsock.close()
Index: python-configshell-fb-1.1.30/configshell/shell.py
===================================================================
--- python-configshell-fb-1.1.30.orig/configshell/shell.py
+++ python-configshell-fb-1.1.30/configshell/shell.py
@@ -16,7 +16,6 @@ under the License.
'''
import os
-import six
import sys
from pyparsing import (alphanums, Empty, Group, locatedExpr,
OneOrMore, Optional, ParseResults, Regex,
@@ -173,7 +172,7 @@ class ConfigShell(object):
self.log.warning("Could not load preferences file %s."
% self._prefs_file)
- for pref, value in six.iteritems(self.default_prefs):
+ for pref, value in self.default_prefs.items():
if pref not in self.prefs:
self.prefs[pref] = value
@@ -239,7 +238,7 @@ class ConfigShell(object):
else:
nr_cols = 1
- for i in six.moves.range(0, len(matches), nr_cols):
+ for i in range(0, len(matches), nr_cols):
self.con.raw_write(''.join(matches[i:i+nr_cols]))
self.con.raw_write('\n')
@@ -402,7 +401,7 @@ class ConfigShell(object):
for index in range(len(pparams)):
if index < len(cmd_params):
current_parameters[cmd_params[index]] = pparams[index]
- for key, value in six.iteritems(kparams):
+ for key, value in kparams.items():
current_parameters[key] = value
self._completion_help_topic = command
completion_method = target.get_completion_method(command)
@@ -550,7 +549,7 @@ class ConfigShell(object):
current_parameters = {}
for index in range(len(pparams)):
current_parameters[cmd_params[index]] = pparams[index]
- for key, value in six.iteritems(kparams):
+ for key, value in kparams.items():
current_parameters[key] = value
completion_method = target.get_completion_method(command)
if completion_method:
@@ -722,7 +721,7 @@ class ConfigShell(object):
try:
readline.parse_and_bind("tab: complete")
readline.set_completer(self._complete)
- cmdline = six.moves.input(self._get_prompt()).strip()
+ cmdline = input(self._get_prompt()).strip()
except EOFError:
self.con.raw_write('exit\n')
cmdline = "exit"
Index: python-configshell-fb-1.1.30/setup.py
===================================================================
--- python-configshell-fb-1.1.30.orig/setup.py
+++ python-configshell-fb-1.1.30/setup.py
@@ -43,7 +43,6 @@ setup(
packages = ['configshell', 'configshell_fb'],
install_requires = [
'pyparsing >=2.0.2',
- 'six',
'urwid',
],
classifiers = [

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3f38784e622350115d8dac931eada2158894fff0b7b146aa96052e6202827a11
size 28652

Binary file not shown.

View File

@@ -0,0 +1,198 @@
-------------------------------------------------------------------
Fri Apr 18 17:39:26 UTC 2025 - Lee Duncan <lduncan@suse.com>
- Removed requirement for python-urwid in SPEC file, as the
code stopped using it.
-------------------------------------------------------------------
Mon Mar 24 15:43:17 UTC 2025 - Lee Duncan <lduncan@suse.com>
- Upgrade to current latest upstream, which is a few
commits past v2.0.0:
* Update pre-commit hooks, ruff rules
* Improve backwards configshell-fb compatibility
* Fix: log truncated
* v2.0.0
* Add pypi publish and pre-commit workflows
* Add backwards compatibility with _fb module name
* Explicitly declare wheel build target dir
* Adding -fb suffix to module name
* Remove urwid dependency
* Adding pre-commit config
* Use f-strings
* Use Pathlib
* Refactoring to Python>=3.9, adding ruff rules
* Move to PEP-621; Use configshell module name
* six is unneeded, get rid of it
* Fix help messages without a trailing newline
* Remove usage of six
Note that the last item means we can do away with the patch:
* no-six.patch (removed)
-------------------------------------------------------------------
Tue Apr 16 12:25:42 UTC 2024 - Markéta Machová <mmachova@suse.com>
- Add no-six.patch to get rid of unneeded six dependency
-------------------------------------------------------------------
Sun Jul 2 15:23:07 UTC 2023 - Lee Duncan <lduncan@suse.com>
- Upgrade to latest upstream version v1.1.30:
* setup.py: relax pyparsing version restriction
* Replace more occurrences of getargspec() with getfullargspec()
* replace getargspec() with getfullargspec()
-------------------------------------------------------------------
Fri Apr 21 12:23:32 UTC 2023 - Dirk Müller <dmueller@suse.com>
- add sle15_python_module_pythons (jsc#PED-68)
-------------------------------------------------------------------
Sun Sep 19 20:06:38 UTC 2021 - Lee Duncan <lduncan@suse.com>
- Upgrade to latest upstream version v1.1.29 (jre#SLE-17360):
* setup.py: specify a version range for pyparsing
* setup.py: lets stick to pyparsing v2.4.7
* Don't warn if prefs file doesn't exist
-------------------------------------------------------------------
Sat Jan 30 21:39:26 UTC 2021 - Lee Duncan <lduncan@suse.com>
- Update to version v1.1.28 from v1.1.27 (jre#SLE-17360):
* version 1.1.28
* Ensure that all output reaches the client when daemonized
* Remove Epydoc markup from command messages
* Remove epydoc imports and epydoc calls
Which removed the need for patch:
* Ensure-that-all-output-reaches-the-client-when-daemo.patch
-------------------------------------------------------------------
Tue Mar 03 17:32:48 UTC 2020 - lduncan@suse.com
- Update to version v1.1.27 from v1.1.26 (jre#SLE-7751):
* version 1.1.27
* Use pyparsing's locatedExpr instead of our custom helper
And updated the SPEC file, also adding a _service file.
Replacing configshell-fb-1.1.26.tar.gz with
python-configshell-fb-v1.1.27.tar.xz, and adding one
upstrem patch:
* Ensure-that-all-output-reaches-the-client-when-daemo.patch
-------------------------------------------------------------------
Mon Sep 16 17:27:49 UTC 2019 - Lee Duncan <lduncan@suse.com>
- Updated to latest upstream version 1.1.26. There were not very
many changes:
* Version number no longer contains "fb" to designate "free
branch", e.g. old was 1.1.fb25, new is 1.1.26
* Add urwid to setup.py dependencies
* Fix failing to parse params with additional chars
* export __version__ variable
resulting in replacing configshell-fb-1.1.25.tar.gz with
configshell-fb-1.1.26.tar.gz, and corresponding SPEC-file
updates.
-------------------------------------------------------------------
Fri Mar 8 14:41:00 CET 2019 - Matej Cepl <mcepl@suse.com>
- Using now new proper upstream release 1.1.25:
- Fix failing to parse param like pool/rbd;id=user
- Acquire a lock to a preference file before working with it
- Fix failing to pasre param like "cfgstr,par=val"
- Remove explicit dependency on /usr/bin/python
- make run_cmdline() log "Running command line" msg to new loglevel
- tweak ConfigShell.run_stdin() to strip whitespace/newline from cmds
- Fix failing to pasre par=val parameters
- Add missing dependency on pyparsing and six
- Fix path regex for [ and ]
- Handle if TERM is not set
-------------------------------------------------------------------
Tue Dec 4 12:46:52 UTC 2018 - Matej Cepl <mcepl@suse.com>
- Remove superfluous devel dependency for noarch package
-------------------------------------------------------------------
Thu Oct 18 23:37:59 UTC 2018 - opensuse-packaging@opensuse.org
- Update to version 1.1.fb23:
* version 1.1.25
* Fix failing to parse param like pool/rbd;id=user
* Acquire a lock to a preference file before working with it
* Fix failing to pasre param like "cfgstr,par=val"
* version 1.1.fb24
* Remove explicit dependency on /usr/bin/python
* make run_cmdline() log "Running command line" msg to new loglevel
* tweak ConfigShell.run_stdin() to strip whitespace/newline from cmds
* Fix failing to pasre par=val parameters
* Add missing dependency on pyparsing and six
* Fix path regex for [ and ]
* Handle if TERM is not set
Replacing configshell-fb-1.1.fb23.tar.xz with configshell-fb-1.1.fb25.tar.xz,
and updating the SPEC file. Also, two patches subsumed/removed:
* configshell-fb-example-should-not-specify-path.patch
* configshell-fb-Handle-if-TERM-is-not-set.patch
-------------------------------------------------------------------
Sun Feb 25 08:09:45 UTC 2018 - olaf@aepfle.de
- Fix upgrade path by provide/obsolete python-configshell (bsc#1082693)
-------------------------------------------------------------------
Wed Jan 3 16:02:44 UTC 2018 - tchvatal@suse.com
- Do not build epydoc documentation to allow py3 only build
-------------------------------------------------------------------
Fri Dec 8 19:34:23 UTC 2017 - lduncan@suse.com
- Converting RPM SPEC file to singlespec format (bsc#1045332),
adding patch:
* configshell-fb-example-should-not-specify-path.patch
- Fix targetcli.service problem when TERM not set (bsc#1071194),
adding patch (from LSZhu):
* configshell-fb-Handle-if-TERM-is-not-set.patch
- Moved build requirement on urwid to runtime requirement,
as suggested by scarabeus_iv
- ran spec-cleaner to clean up SPEC file
- Converted from manually-added configshell-fb tar file to
tar_scm service-generated file by adding _service and
_servicedata
-------------------------------------------------------------------
Thu Aug 17 06:11:22 UTC 2017 - lszhu@suse.com
- Update to version 1.1.23fb
*improving ALUA and TCMU support
-------------------------------------------------------------------
Mon Feb 27 09:10:39 UTC 2017 - shshyukriev@suse.com
- Update to v 1.1.22fb
*Fixed github source namespace
-------------------------------------------------------------------
Fri Jun 24 23:17:34 UTC 2016 - lduncan@suse.com
- Updated spec file: added Conflicts for python-configshell
(bsc#986475)
-------------------------------------------------------------------
Fri Jun 24 15:20:29 UTC 2016 - lduncan@suse.com
- Updated SPEC file: removed "Provides"/"Obsoletes" for
package name "python-confishell" (bsc#984935)
-------------------------------------------------------------------
Fri May 6 07:36:56 UTC 2016 - dmueller@suse.com
- cleanup buildroot parts
-------------------------------------------------------------------
Tue Apr 19 17:28:26 UTC 2016 - lduncan@suse.com
- Initial creation of this package, from upstream
version 1.1.fb20
-------------------------------------------------------------------

View File

@@ -0,0 +1,85 @@
#
# spec file for package python-configshell-fb
#
# Copyright (c) 2025 SUSE LLC
#
# 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}
%define configshell_service_tag 5.7088593241b4
Name: python-configshell-fb
Version: 2.0.0
Release: 0%{?dist}
Summary: A Python library for building configuration shells
License: Apache-2.0
Group: Development/Libraries/Python
URL: https://github.com/open-iscsi/configshell-fb
Source: %{name}-%{version}-%{configshell_service_tag}.tar.xz
BuildRequires: %{python_module hatch_vcs}
BuildRequires: %{python_module hatchling}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module pyparsing}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: git
BuildRequires: python-rpm-macros
Requires: %{_bindir}/env
Requires: python-pyparsing
Provides: python-configshell = %{version}-%{release}
Obsoletes: python-configshell < %{version}
BuildArch: noarch
%python_subpackages
%description
configshell-fb is a Python library that provides a framework for building simple
but nice CLI-based applications.
configshell-fb is a fork of the "configshell" code written by RisingTide
Systems. The "-fb" differentiates between the original and this version. Please
ensure to use either all "fb" versions of the targetcli components -- targetcli,
rtslib, and configshell, or stick with all non-fb versions, since they are
no longer strictly compatible.
%package doc
Summary: Documentation for Python configshell-fb
Group: Documentation/HTML
%description doc
configshell-fb is a Python library that provides a framework for building simple
but nice CLI-based applications.
configshell-fb is a fork of the "configshell" code written by RisingTide
Systems. The "-fb" differentiates between the original and this version. Please
ensure to use either all "fb" versions of the targetcli components -- targetcli,
rtslib, and configshell, or stick with all non-fb versions, since they are
no longer strictly compatible.
%prep
%autosetup -p1 -n %{name}-%{version}-%{configshell_service_tag}
%build
%pyproject_wheel
%install
%pyproject_install
%files %{python_files}
%license COPYING
%doc README.md
%{python_sitelib}/configshell*
%pycache_only %{python_sitelib}/__pycache__
%changelog