From 6e4eea3653070a71b182c0e6bf9627b5d6da6709d357676f180549e757404c87 Mon Sep 17 00:00:00 2001 From: Steve Kowalik Date: Mon, 16 Dec 2024 04:38:09 +0000 Subject: [PATCH] - Add patch no-more-makesuite.patch: * Do not use unittest.makeSuite() OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-acitoolkit?expand=0&rev=21 --- .gitattributes | 23 +++ .gitignore | 1 + no-more-makesuite.patch | 238 +++++++++++++++++++++++++++++ python-acitoolkit-python-310.patch | 20 +++ python-acitoolkit.changes | 115 ++++++++++++++ python-acitoolkit.spec | 142 +++++++++++++++++ remove-app-dependency.patch | 25 +++ v0.4.tar.gz | 3 + 8 files changed, 567 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 no-more-makesuite.patch create mode 100644 python-acitoolkit-python-310.patch create mode 100644 python-acitoolkit.changes create mode 100644 python-acitoolkit.spec create mode 100644 remove-app-dependency.patch create mode 100644 v0.4.tar.gz diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/no-more-makesuite.patch b/no-more-makesuite.patch new file mode 100644 index 0000000..3aebb25 --- /dev/null +++ b/no-more-makesuite.patch @@ -0,0 +1,238 @@ +Index: acitoolkit-0.4/tests/aciConcreteLib_test.py +=================================================================== +--- acitoolkit-0.4.orig/tests/aciConcreteLib_test.py ++++ acitoolkit-0.4/tests/aciConcreteLib_test.py +@@ -1023,6 +1023,6 @@ class TestConcreteCdpAdjEp(unittest.Test + + if __name__ == '__main__': + offline = unittest.TestSuite() +- offline.addTest(unittest.makeSuite(TestConcreteArp)) +- offline.addTest(unittest.makeSuite(TestConcreteArpDomain)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestConcreteArp)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestConcreteArpDomain)) + unittest.main() +Index: acitoolkit-0.4/tests/aciTable_test.py +=================================================================== +--- acitoolkit-0.4.orig/tests/aciTable_test.py ++++ acitoolkit-0.4/tests/aciTable_test.py +@@ -348,6 +348,6 @@ class TestTable(unittest.TestCase): + if __name__ == '__main__': + + offline = unittest.TestSuite() +- offline.addTest(unittest.makeSuite(TestTable)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestTable)) + + unittest.main() +Index: acitoolkit-0.4/tests/aciphysobject_test.py +=================================================================== +--- acitoolkit-0.4.orig/tests/aciphysobject_test.py ++++ acitoolkit-0.4/tests/aciphysobject_test.py +@@ -1401,23 +1401,23 @@ class TestInterface(unittest.TestCase): + if __name__ == '__main__': + offline = unittest.TestSuite() + +- offline.addTest(unittest.makeSuite(TestPod)) +- offline.addTest(unittest.makeSuite(TestNode)) +- offline.addTest(unittest.makeSuite(TestLink)) +- offline.addTest(unittest.makeSuite(TestFan)) +- offline.addTest(unittest.makeSuite(TestPowerSupply)) +- offline.addTest(unittest.makeSuite(TestLinecard)) +- offline.addTest(unittest.makeSuite(TestSupervisor)) +- offline.addTest(unittest.makeSuite(TestSystemcontroller)) +- offline.addTest(unittest.makeSuite(TestExternalSwitch)) +- offline.addTest(unittest.makeSuite(TestFind)) +- offline.addTest(unittest.makeSuite(TestInterface)) +- offline.addTest(unittest.makeSuite(TestCluster)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestPod)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestNode)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLink)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestFan)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestPowerSupply)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLinecard)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestSupervisor)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestSystemcontroller)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestExternalSwitch)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestFind)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestInterface)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestCluster)) + + live = unittest.TestSuite() +- live.addTest(unittest.makeSuite(TestLiveAPIC)) +- live.addTest(unittest.makeSuite(TestLivePod)) +- live.addTest(unittest.makeSuite(TestLiveCluster)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveAPIC)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLivePod)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveCluster)) + + full = unittest.TestSuite([live, offline]) + +Index: acitoolkit-0.4/tests/acitoolkit_fakeapic_test.py +=================================================================== +--- acitoolkit-0.4.orig/tests/acitoolkit_fakeapic_test.py ++++ acitoolkit-0.4/tests/acitoolkit_fakeapic_test.py +@@ -148,5 +148,5 @@ if __name__ == '__main__': + + # Run the tests + fake = unittest.TestSuite() +- fake.addTest(unittest.makeSuite(TestFakeApic)) ++ fake.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestFakeApic)) + unittest.main(defaultTest='fake', argv=sys.argv[:1] + unittest_args) +Index: acitoolkit-0.4/tests/acitoolkit_test.py +=================================================================== +--- acitoolkit-0.4.orig/tests/acitoolkit_test.py ++++ acitoolkit-0.4/tests/acitoolkit_test.py +@@ -5480,76 +5480,76 @@ class TestLiveHealthScores(TestLiveAPIC) + + if __name__ == '__main__': + live = unittest.TestSuite() +- live.addTest(unittest.makeSuite(TestLiveHealthScores)) +- live.addTest(unittest.makeSuite(TestLiveTenant)) +- live.addTest(unittest.makeSuite(TestLiveAPIC)) +- live.addTest(unittest.makeSuite(TestLiveCertAuth)) +- live.addTest(unittest.makeSuite(TestLiveAppcenterSubscription)) +- live.addTest(unittest.makeSuite(TestLiveInterface)) +- live.addTest(unittest.makeSuite(TestLivePortChannel)) +- live.addTest(unittest.makeSuite(TestLiveAppProfile)) +- live.addTest(unittest.makeSuite(TestLiveEPG)) +- live.addTest(unittest.makeSuite(TestLiveAnyEPG)) +- live.addTest(unittest.makeSuite(TestLiveAnyEPGWithTenantCommonContracts)) +- live.addTest(unittest.makeSuite(TestLiveL2ExtDomain)) +- live.addTest(unittest.makeSuite(TestLiveL3ExtDomain)) +- live.addTest(unittest.makeSuite(TestLiveEPGDomain)) +- live.addTest(unittest.makeSuite(TestLiveFilter)) +- live.addTest(unittest.makeSuite(TestLiveFilterEntry)) +- live.addTest(unittest.makeSuite(TestLiveContracts)) +- live.addTest(unittest.makeSuite(TestLiveContractSubject)) +- live.addTest(unittest.makeSuite(TestLiveEndpoint)) +- live.addTest(unittest.makeSuite(TestApic)) +- live.addTest(unittest.makeSuite(TestLivePhysDomain)) +- live.addTest(unittest.makeSuite(TestLiveVmmDomain)) +- live.addTest(unittest.makeSuite(TestLiveVmm)) +- live.addTest(unittest.makeSuite(TestLiveSubscription)) +- live.addTest(unittest.makeSuite(TestLiveOSPF)) +- live.addTest(unittest.makeSuite(TestLiveMonitorPolicy)) +- live.addTest(unittest.makeSuite(TestLiveOutsideL3)) +- live.addTest(unittest.makeSuite(TestLiveOutsideEPG)) +- live.addTest(unittest.makeSuite(TestLiveContractInterface)) +- live.addTest(unittest.makeSuite(TestLiveSession)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveHealthScores)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveTenant)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveAPIC)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveCertAuth)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveAppcenterSubscription)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveInterface)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLivePortChannel)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveAppProfile)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveEPG)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveAnyEPG)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveAnyEPGWithTenantCommonContracts)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveL2ExtDomain)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveL3ExtDomain)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveEPGDomain)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveFilter)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveFilterEntry)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveContracts)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveContractSubject)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveEndpoint)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestApic)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLivePhysDomain)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveVmmDomain)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveVmm)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveSubscription)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveOSPF)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveMonitorPolicy)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveOutsideL3)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveOutsideEPG)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveContractInterface)) ++ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveSession)) + + offline = unittest.TestSuite() +- offline.addTest(unittest.makeSuite(TestBaseRelation)) +- offline.addTest(unittest.makeSuite(TestBaseACIObject)) +- offline.addTest(unittest.makeSuite(TestTenant)) +- offline.addTest(unittest.makeSuite(TestSession)) +- offline.addTest(unittest.makeSuite(TestAppProfile)) +- offline.addTest(unittest.makeSuite(TestBridgeDomain)) +- offline.addTest(unittest.makeSuite(TestL2Interface)) +- offline.addTest(unittest.makeSuite(TestL3Interface)) +- offline.addTest(unittest.makeSuite(TestBaseContract)) +- offline.addTest(unittest.makeSuite(TestContract)) +- offline.addTest(unittest.makeSuite(TestContractInterface)) +- offline.addTest(unittest.makeSuite(TestContractSubject)) +- offline.addTest(unittest.makeSuite(TestFilter)) +- offline.addTest(unittest.makeSuite(TestFilterEntry)) +- offline.addTest(unittest.makeSuite(TestTaboo)) +- offline.addTest(unittest.makeSuite(TestEPG)) +- offline.addTest(unittest.makeSuite(TestOutsideEPG)) +- offline.addTest(unittest.makeSuite(TestPhysDomain)) +- offline.addTest(unittest.makeSuite(TestJson)) +- offline.addTest(unittest.makeSuite(TestEPGDomain)) +- offline.addTest(unittest.makeSuite(TestPortChannel)) +- offline.addTest(unittest.makeSuite(TestContext)) +- offline.addTest(unittest.makeSuite(TestOspf)) +- offline.addTest(unittest.makeSuite(TestBGP)) +- offline.addTest(unittest.makeSuite(TestEndpoint)) +- offline.addTest(unittest.makeSuite(TestMonitorPolicy)) +- offline.addTest(unittest.makeSuite(TestAttributeCriterion)) +- offline.addTest(unittest.makeSuite(TestOutsideL2)) +- offline.addTest(unittest.makeSuite(TestOutsideNetwork)) +- offline.addTest(unittest.makeSuite(TestTunnelInterface)) +- offline.addTest(unittest.makeSuite(TestFexInterface)) +- offline.addTest(unittest.makeSuite(TestInputTerminal)) +- offline.addTest(unittest.makeSuite(TestOutputTerminal)) +- offline.addTest(unittest.makeSuite(TestAnyEPG)) +- offline.addTest(unittest.makeSuite(TestOutsideL2EPG)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestBaseRelation)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestBaseACIObject)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestTenant)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestSession)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestAppProfile)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestBridgeDomain)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestL2Interface)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestL3Interface)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestBaseContract)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestContract)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestContractInterface)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestContractSubject)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestFilter)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestFilterEntry)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestTaboo)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestEPG)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestOutsideEPG)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestPhysDomain)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestJson)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestEPGDomain)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestPortChannel)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestContext)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestOspf)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestBGP)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestEndpoint)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestMonitorPolicy)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestAttributeCriterion)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestOutsideL2)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestOutsideNetwork)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestTunnelInterface)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestFexInterface)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestInputTerminal)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestOutputTerminal)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestAnyEPG)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestOutsideL2EPG)) + + graphs = unittest.TestSuite() +- graphs.addTest(unittest.makeSuite(TestAcitoolkitGraphBuilder)) ++ graphs.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestAcitoolkitGraphBuilder)) + + full = unittest.TestSuite([live, offline, graphs]) + +Index: acitoolkit-0.4/tests/acitoolkitlib_test.py +=================================================================== +--- acitoolkit-0.4.orig/tests/acitoolkitlib_test.py ++++ acitoolkit-0.4/tests/acitoolkitlib_test.py +@@ -72,6 +72,6 @@ class TestCredentials(unittest.TestCase) + if __name__ == '__main__': + + offline = unittest.TestSuite() +- offline.addTest(unittest.makeSuite(TestCredentials)) ++ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestCredentials)) + + unittest.main() diff --git a/python-acitoolkit-python-310.patch b/python-acitoolkit-python-310.patch new file mode 100644 index 0000000..5c99423 --- /dev/null +++ b/python-acitoolkit-python-310.patch @@ -0,0 +1,20 @@ +diff --git a/acitoolkit/acitoolkit.py b/acitoolkit/acitoolkit.py +index 3c4b0f61..495bf690 100755 +--- a/acitoolkit/acitoolkit.py ++++ b/acitoolkit/acitoolkit.py +@@ -30,7 +30,13 @@ + """ Main ACI Toolkit module + This is the main module that comprises the ACI Toolkit. + """ +-from collections import Sequence ++try: ++ # Python <=3.9 ++ from collections import Sequence ++except ImportError: ++ # Python > 3.8 ++ from collections.abc import Sequence ++ + import logging + from operator import attrgetter, itemgetter + import re + diff --git a/python-acitoolkit.changes b/python-acitoolkit.changes new file mode 100644 index 0000000..b65edb6 --- /dev/null +++ b/python-acitoolkit.changes @@ -0,0 +1,115 @@ +------------------------------------------------------------------- +Mon Dec 16 04:37:22 UTC 2024 - Steve Kowalik + +- Add patch no-more-makesuite.patch: + * Do not use unittest.makeSuite() + +------------------------------------------------------------------- +Fri Oct 13 16:21:03 UTC 2023 - Matej Cepl + +- Clean up the SPEC file + +------------------------------------------------------------------- +Wed Jun 21 10:39:27 UTC 2023 - Markéta Machová + +- Drop unneeded six dependency + +------------------------------------------------------------------- +Tue May 3 10:46:59 UTC 2022 - pgajdos@suse.com + +- python-mock is not required for build + +------------------------------------------------------------------- +Thu Feb 3 14:07:10 UTC 2022 - Dominique Leuenberger + +- Fix install dependencies of -doc-applications and -doc-samples: + make them rely on the primary python interpreter version. + +------------------------------------------------------------------- +Tue Feb 1 07:10:38 UTC 2022 - pgajdos@suse.com + +- use spec cleaner, remove redundant Provides + +------------------------------------------------------------------- +Fri Jan 28 10:10:09 UTC 2022 - pgajdos@suse.com + +- fix for python 3.10 +- added patches + fix https://github.com/datacenter/acitoolkit/commit/629b84887dd0f0183b81efc8adb16817f985541a + + python-acitoolkit-python-310.patch + +------------------------------------------------------------------- +Thu Mar 28 10:10:24 UTC 2019 - Tomáš Chvátal + +- Do not require python-deepdiff, such package does not exist + +------------------------------------------------------------------- +Tue Mar 19 15:41:31 UTC 2019 - John Vandenberg + +- Remove runtime dependencies from the library: + * remove-app-dependency.patch +- Add NOTICE to %license +- Create sub-packages -doc, -doc-applications and -doc-samples + +------------------------------------------------------------------- +Thu Nov 1 09:09:18 UTC 2018 - Jan Engelhardt + +- Fix RAS syndrome. Expand "APIC". + +------------------------------------------------------------------- +Wed Oct 31 12:19:17 UTC 2018 - Tomáš Chvátal + +- Version update to 0.4 release: + * Many various small fixes + * Better python3 compatibility +- Remove merged acitoolkit-urlparse.patch + +------------------------------------------------------------------- +Wed Oct 31 12:10:17 UTC 2018 - Tomáš Chvátal + +- Add patch to fix import error under py3: + * acitoolkit-urlparse.patch +- Fix permissions on the LICENSE file +- State group properly + +------------------------------------------------------------------- +Tue Oct 30 10:55:38 UTC 2018 - Tomáš Chvátal + +- Add remaining flask dependencies in order to be acceptable + in Tumbleweed + +------------------------------------------------------------------- +Thu Oct 18 08:10:43 UTC 2018 - Tomáš Chvátal + +- Respect the package requirements specified in setup.py + * Adds many flask dep/requires +- Run the tests + +------------------------------------------------------------------- +Tue Oct 16 15:43:21 UTC 2018 - sma@suse.com + +- Changed the spec file to singlespec format. Also removed + duplicates in the RPM. And explicit set the permission of all + files. + +------------------------------------------------------------------- +Mon Oct 15 15:03:28 UTC 2018 - sma@suse.com + +- Corrected the spelling in .spec file: python-sqlalchemy should + be python-SQLAlchemy. + +------------------------------------------------------------------- +Wed Oct 10 15:33:53 UTC 2018 - sma@suse.com + +- License should be Apache-2.0 according to the LICENSE file + in the v0.3.2.tar.gz tarball. + +------------------------------------------------------------------- +Thu Dec 21 12:02:53 UTC 2017 - mmnelemane@suse.com + +- Fix Requires python-oslo.config + +------------------------------------------------------------------- +Fri Aug 25 14:01:52 UTC 2017 - mmnelemane@suse.com + +- Initial packaging for ACI firmware 2.2.2 diff --git a/python-acitoolkit.spec b/python-acitoolkit.spec new file mode 100644 index 0000000..7620605 --- /dev/null +++ b/python-acitoolkit.spec @@ -0,0 +1,142 @@ +# +# spec file for package python-acitoolkit +# +# Copyright (c) 2024 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/ +# + + +Name: python-acitoolkit +Version: 0.4 +Release: 0 +Summary: Python library for programming ACI +License: Apache-2.0 +URL: https://github.com/datacenter/acitoolkit +Source: https://github.com/datacenter/acitoolkit/archive/v%{version}.tar.gz +Patch0: remove-app-dependency.patch +# https://github.com/datacenter/acitoolkit/commit/629b84887dd0f0183b81efc8adb16817f985541a +Patch1: python-acitoolkit-python-310.patch +Patch2: no-more-makesuite.patch +BuildRequires: %{python_module graphviz} +BuildRequires: %{python_module jsonschema} +BuildRequires: %{python_module pbr} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module requests} +BuildRequires: %{python_module tabulate} +BuildRequires: %{python_module websocket-client > 0.33.0} +BuildRequires: %{python_module wheel} +BuildRequires: dos2unix +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: python-graphviz +Requires: python-jsonschema +Requires: python-requests +Requires: python-tabulate +Requires: python-websocket-client > 0.33.0 +BuildArch: noarch +%python_subpackages + +%description +Python Library for configuring the Cisco Application Policy +Infrastructure Controller. + +%package -n %{name}-doc +Summary: Documentation for the Python acitoolkit library + +%description -n %{name}-doc +Python Library for configuring the Cisco Application Policy +Infrastructure Controller. + +This package contains the documentation. + +%package -n %{name}-doc-applications +Summary: Applications for the Python acitoolkit library +Requires: python-acitoolkit-doc +Requires: python3-Flask +Requires: python3-Flask-Admin +Requires: python3-Flask-Bootstrap +Requires: python3-Flask-Cors +Requires: python3-Flask-HTTPAuth +Requires: python3-Flask-SQLAlchemy +Requires: python3-Flask-WTF +Requires: python3-GitPython +Requires: python3-py-radix + +%description -n %{name}-doc-applications +Python applications using acitoolkit for programming ACI. + +%package -n %{name}-doc-samples +Summary: Sample code for the Python acitoolkit library +Requires: %{name}-doc +Requires: python3-PyMySQL + +%description -n %{name}-doc-samples +Python samples for using acitoolkit for programming ACI. + +%prep +%setup -q -n acitoolkit-%{version} +# Remove dependencies of applications/ and samples/ from the library +%autopatch -p1 + +chmod -x LICENSE NOTICE + +sed -i '1{/^#!.*env python/d}' acitoolkit/*.py samples/*.py samples/switch-commands/*.py +# drop unneeded six dependency +sed -i 's/six.moves.queue/queue/' acitoolkit/acisession.py + +rm applications/cableplan/.coverage applications/eventfeeds/.gitignore + +dos2unix \ + samples/aci-add-static-binding-leaves.py \ + applications/configpush/json_schema.json \ + applications/search/static/*.css applications/search/static/*.js \ + applications/connection_search/static/*.js \ + applications/reports/static/*.css applications/reports/static/*.js + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +# Install docs, samples and applications into a common doc area +install -d %{buildroot}%{_defaultdocdir}/%{name} +cp -rp docs/source/*.rst docs/source/*.png docs/source/stats/ samples/ applications/ %{buildroot}%{_defaultdocdir}/%{name}/ +find %{buildroot}%{_defaultdocdir}/%{name}/ -type f -exec chmod a-x \{\} \; + +%fdupes %{buildroot}%{_defaultdocdir}/%{name}/ + +%check +%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} $python tests/acitoolkit_test.py -v offline + +%files -n %{name}-doc +%license LICENSE NOTICE +%dir %{_defaultdocdir}/%{name} +%{_defaultdocdir}/%{name}/*.rst +%{_defaultdocdir}/%{name}/*.png +%{_defaultdocdir}/%{name}/stats/ + +%files -n %{name}-doc-samples +%{_defaultdocdir}/%{name}/samples/ + +%files -n %{name}-doc-applications +%{_defaultdocdir}/%{name}/applications/ + +%files %{python_files} +%doc README.md +%license LICENSE NOTICE +%{python_sitelib}/acitoolkit +%{python_sitelib}/acitoolkit-%{version}.dist-info + +%changelog diff --git a/remove-app-dependency.patch b/remove-app-dependency.patch new file mode 100644 index 0000000..2ca5bf5 --- /dev/null +++ b/remove-app-dependency.patch @@ -0,0 +1,25 @@ +--- acitoolkit-0.4/setup.py.orig 2019-03-19 12:54:59.889072645 +0700 ++++ acitoolkit-0.4/setup.py 2019-03-19 12:56:35.661890919 +0700 +@@ -21,21 +21,10 @@ + license=about["__license__"], + install_requires=["requests", + "websocket-client>0.33.0", +- "gitpython", +- "flask-httpauth", +- "flask-sqlalchemy", +- "flask-admin", +- "flask-bootstrap", +- "flask-wtf", +- "flask-cors", +- "flask", +- "pymysql", + "tabulate", +- "py-radix", + "jsonschema", + "graphviz", +- "ipaddress", +- "deepdiff"], ++ ], + tests_requires=["mock"], + description="This library allows basic Cisco ACI APIC configuration.", + ) diff --git a/v0.4.tar.gz b/v0.4.tar.gz new file mode 100644 index 0000000..eef2e06 --- /dev/null +++ b/v0.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:504cdced7b1d334c4d9ced58cdcc3705f93bd04adf4917aae6b918bf06165272 +size 4351036