diff --git a/.gitignore b/.gitignore index 225620b..1c101c5 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,9 @@ /ansible-520bb66f8ab6d53750f48f024287572962d975fa.tar.gz /ansible-ed924d64935b15341731544af6a03b55e9739741.tar.gz /ansible-ad9867ca5eb8ba27f827d5d5a7999cfb96ae0986.tar.gz +/Jinja2-3.1.2.tar.gz +/MarkupSafe-2.1.0.tar.gz +/ansible-core-2.14.2.tar.gz +/packaging-20.4.tar.gz +/pyparsing-2.4.7.tar.gz +/resolvelib-0.5.4.tar.gz diff --git a/ansible-core.spec b/ansible-core.spec index 77d614a..534f225 100644 --- a/ansible-core.spec +++ b/ansible-core.spec @@ -1,3 +1,6 @@ +%global __python3 /usr/bin/python3.11 +%global python3_pkgversion 3.11 + # We need this because we are no longer noarch, since our bundled deps might # conceivably need to compile arch-specific things. But we currently have no # useful debuginfo stuff. @@ -7,9 +10,6 @@ # ansible-test munges the shebangs itself. %global __brp_mangle_shebangs_exclude_from_file %{SOURCE1} -%global commitId ad9867ca5eb8ba27f827d5d5a7999cfb96ae0986 -%global python39_sitelib /usr/lib/python3.9/site-packages/ - # NOTE(pabelanger): Don't auto add pwsh as Requires for ansible-test. We do # not wish to package it. %global __requires_exclude ^/usr/bin/pwsh$ @@ -23,8 +23,8 @@ %define py2_shbang_opts %{nil} %define py3_shbang_opts %{nil} -%define vendor_path %{buildroot}%{python39_sitelib}/ansible/_vendor/ -%define vendor_pip /usr/bin/python3.9 -m pip install --no-deps -v --no-use-pep517 --no-binary :all: -t %{vendor_path} +%define vendor_path %{buildroot}%{python3_sitelib}/ansible/_vendor/ +%define vendor_pip %{__python3} -m pip install --no-deps -v --no-build-isolation --no-binary :all: -t %{vendor_path} # These control which bundled dep versions we pin against %global jinja2_version 3.1.2 @@ -32,29 +32,27 @@ %global packaging_version 20.4 %global pyparsing_version 2.4.7 %global resolvelib_version 0.5.4 -%global straightplugin_version 1.4.1 Name: ansible-core Summary: SSH-based configuration management, deployment, and task execution system Version: 2.14.2 -Release: 2%{?dist} +Release: 3%{?dist} ExcludeArch: i686 Group: Development/Libraries License: GPLv3+ -Source0: ansible-%{commitId}.tar.gz +Source0: https://files.pythonhosted.org/packages/source/a/ansible-core/ansible-core-%{version}.tar.gz Source1: ansible-test-data-files.txt # And bundled deps -Source2: jinja2-b08cd4bc64bb980df86ed2876978ae5735572280.tar.gz -Source3: markupsafe-b5a517506d6cb8091e215a4a89e47db5eee6a68f.tar.gz -Source4: packaging-ded06cedf6e20680eea0363fac894cb4a09e7831.tar.gz -Source5: pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605.tar.gz -Source6: resolvelib-d935f9fd07246d9641436c7a8e6ae39423374e28.tar.gz +Source2: https://files.pythonhosted.org/packages/source/J/Jinja2/Jinja2-%{jinja2_version}.tar.gz +Source3: https://files.pythonhosted.org/packages/source/M/MarkupSafe/MarkupSafe-%{markupsafe_version}.tar.gz +Source4: https://files.pythonhosted.org/packages/source/p/packaging/packaging-%{packaging_version}.tar.gz +Source5: https://files.pythonhosted.org/packages/source/p/pyparsing/pyparsing-%{pyparsing_version}.tar.gz +Source6: https://files.pythonhosted.org/packages/source/r/resolvelib/resolvelib-%{resolvelib_version}.tar.gz -# Deps to build man pages -Source7: straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed.tar.gz +Patch0: remove-bundled-deps-from-requirements.patch URL: http://ansible.com @@ -78,22 +76,19 @@ Provides: bundled(python-markupsafe) = %{markupsafe_version} Provides: bundled(python-packaging) = %{packaging_version} Provides: bundled(python-pyparsing) = %{pyparsing_version} Provides: bundled(python-resolvelib) = %{resolvelib_version} -Provides: bundled(python-straightplugin) = %{straightplugin_version} -BuildRequires: python3-docutils -BuildRequires: python39-devel -BuildRequires: python39-pip -BuildRequires: python39-pyyaml -BuildRequires: python39-rpm-macros -BuildRequires: python39-setuptools -BuildRequires: python39-wheel +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-pip +BuildRequires: python%{python3_pkgversion}-pyyaml +BuildRequires: python%{python3_pkgversion}-rpm-macros +BuildRequires: python%{python3_pkgversion}-setuptools +BuildRequires: python%{python3_pkgversion}-wheel BuildRequires: make git-core gcc Requires: git-core -Requires: python39 -Requires: python39-PyYAML >= 5.1 -Requires: python39-cryptography -Requires: python39-six +Requires: python%{python3_pkgversion}-PyYAML >= 5.1 +Requires: python%{python3_pkgversion}-cryptography +Requires: python%{python3_pkgversion}-six Requires: sshpass %description @@ -118,33 +113,25 @@ This package installs the ansible-test command for testing modules and plugins developed for ansible. %prep -%setup -q -T -b 2 -n jinja2-b08cd4bc64bb980df86ed2876978ae5735572280 -%setup -q -T -b 3 -n markupsafe-b5a517506d6cb8091e215a4a89e47db5eee6a68f -%setup -q -T -b 4 -n packaging-ded06cedf6e20680eea0363fac894cb4a09e7831 -%setup -q -T -b 5 -n pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605 -%setup -q -T -b 6 -n resolvelib-d935f9fd07246d9641436c7a8e6ae39423374e28 -%setup -q -T -b 7 -n straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed -%setup -q -n ansible-%{commitId} +%setup -q -b2 -b3 -b4 -b5 -b6 -n ansible-core-%{version} +%patch0 -p1 # Fix all Python shebangs recursively in ansible-test -# -p preserves timestamps -# -n prevents creating ~backup files -# -i specifies the interpreter for the shebang -pathfix3.9.py -pni "%{__python3} %{py3_shbang_opts}" test/lib/ansible_test +%{py3_shebang_fix} test/lib/ansible_test %build -/usr/bin/python3.9 setup.py build +%{py3_build} %install -/usr/bin/python3.9 setup.py install --root %{buildroot} +%{py3_install} # Handle bundled deps: %{vendor_pip} \ - ../jinja2-b08cd4bc64bb980df86ed2876978ae5735572280/ \ - ../markupsafe-b5a517506d6cb8091e215a4a89e47db5eee6a68f/ \ - ../packaging-ded06cedf6e20680eea0363fac894cb4a09e7831/ \ - ../pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605/ \ - ../resolvelib-d935f9fd07246d9641436c7a8e6ae39423374e28 + ../Jinja2-%{jinja2_version}/ \ + ../MarkupSafe-%{markupsafe_version}/ \ + ../packaging-%{packaging_version}/ \ + ../pyparsing-%{pyparsing_version}/ \ + ../resolvelib-%{resolvelib_version} # Create system directories that Ansible defines as default locations in # ansible/config/base.yml @@ -186,15 +173,7 @@ mkdir -p %{buildroot}%{_sysconfdir}/ansible/roles/ cp examples/hosts %{buildroot}%{_sysconfdir}/ansible/ cp examples/ansible.cfg %{buildroot}%{_sysconfdir}/ansible/ mkdir -p %{buildroot}/%{_mandir}/man1/ -## Build man pages -mkdir /tmp/_vendor -/usr/bin/python3.9 -m pip install ../straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed -t /tmp/_vendor --no-build-isolation - -# Remove plugins not needed, they bring in more dependencies -find hacking/build_library/build_ansible/command_plugins ! -name 'generate_man.py' -type f -exec rm -f {} + - -PYTHON=python3.9 PYTHONPATH=%{vendor_path}:/tmp/_vendor make docs cp -v docs/man/man1/*.1 %{buildroot}/%{_mandir}/man1/ cp -pr docs/docsite/rst . @@ -211,15 +190,21 @@ strip --strip-unneeded %{vendor_path}/markupsafe/_speedups%{python3_ext_suffix} %doc changelogs/CHANGELOG-v2.*.rst %doc %{_mandir}/man1/ansible* %{_datadir}/ansible/ -%{python39_sitelib}/ansible* -%exclude %{python39_sitelib}/ansible_test -%exclude %{python39_sitelib}/ansible/_vendor/markupsafe/_speedups.c +%{python3_sitelib}/ansible* +%exclude %{python3_sitelib}/ansible_test +%exclude %{python3_sitelib}/ansible/_vendor/markupsafe/_speedups.c %files -n ansible-test %{_bindir}/ansible-test -%{python39_sitelib}/ansible_test +%{python3_sitelib}/ansible_test %changelog +* Tue Feb 14 2023 Dimitri Savineau - 2.14.2-3 +- rebuild with python 3.11 (rhbz#2169524) +- remove bundled dependencies from requirements file (rhbz#2143974) +- use PyPi sources (rhbz#2160277) +- remove straightplugin + * Thu Feb 02 2023 Christian Adams - 2.14.2-2 - fix debuginfo symbols from markupsafe dependency (rhbz#2166414) diff --git a/remove-bundled-deps-from-requirements.patch b/remove-bundled-deps-from-requirements.patch new file mode 100644 index 0000000..9e6b433 --- /dev/null +++ b/remove-bundled-deps-from-requirements.patch @@ -0,0 +1,18 @@ +diff --git a/requirements.txt b/requirements.txt +index 20562c3e0f..792daa209a 100644 +--- a/requirements.txt ++++ b/requirements.txt +@@ -3,13 +3,5 @@ + # packages. Thus, this should be the loosest set possible (only required + # packages, not optional ones, and with the widest range of versions that could + # be suitable) +-jinja2 >= 3.0.0 + PyYAML >= 5.1 # PyYAML 5.1 is required for Python 3.8+ support + cryptography +-packaging +-# NOTE: resolvelib 0.x version bumps should be considered major/breaking +-# NOTE: and we should update the upper cap with care, at least until 1.0 +-# NOTE: Ref: https://github.com/sarugaku/resolvelib/issues/69 +-# NOTE: When updating the upper bound, also update the latest version used +-# NOTE: in the ansible-galaxy-collection test suite. +-resolvelib >= 0.5.3, < 0.9.0 # dependency resolver used by ansible-galaxy diff --git a/sources b/sources index 8063e43..99776ea 100644 --- a/sources +++ b/sources @@ -1,7 +1,6 @@ -SHA512 (ansible-ad9867ca5eb8ba27f827d5d5a7999cfb96ae0986.tar.gz) = 676b9fca35c67cb9f3092665015d73f11a41f5b4ab4054cba9da5ef7c92ea27f975da029e318bcf3a3e9b1e89e77fc5e1dab46f8a91a505d1c806dbb83f3ffd3 -SHA512 (jinja2-b08cd4bc64bb980df86ed2876978ae5735572280.tar.gz) = d596089beabdb4af4953fc2d0b786621f628232d2412b47b0baaa6e031b4bf693083a0e976b3df867451694c77817685c8ec5ffe80be6fb38709b4ae0819c984 -SHA512 (markupsafe-b5a517506d6cb8091e215a4a89e47db5eee6a68f.tar.gz) = 5f454607c2d4eb0eab46305696636341a6725cc03ebde170c592f49a79b84fd51d1be82e0c22023772fda1dee09d2ae4f5867d189e2f0bdc1a0246962367fd08 -SHA512 (packaging-ded06cedf6e20680eea0363fac894cb4a09e7831.tar.gz) = ceacb927289775fe901b2169053e3265db1531c8c22dc42329d28c24b64d021a791cf523044420e3a821fbbc251039796f951b21745a4870a8ec53e2eeac76a7 -SHA512 (pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605.tar.gz) = ad95ec904f35dce422e31c6fc5922ca5970757229463e9fc4d1cbb0e798b6b7c1c6f44dcb8aaccec47f106506e78e7482ffc40b21f2122ba9d83e4e27bd57118 -SHA512 (resolvelib-d935f9fd07246d9641436c7a8e6ae39423374e28.tar.gz) = 881846301756d66f4f21c4cae88610f4baf2dfb765121468e172c3086153a668749dc7d5d0ffbb174652721a94ad72239c551386ccdaaa3e287ccfe7bb821c32 -SHA512 (straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed.tar.gz) = 7a3ba87f0de4cd7c7c8dda564d737b1656f8f3a9fa33895a252dec49ed53cbaf7e140d7fa65a68efa959487f4477b079cf9ae8cd251df3b8977053cde8aab7a5 +SHA512 (Jinja2-3.1.2.tar.gz) = 5dfe122c1beef5305b34d25f22f96607bd3a6cba098b03091850ea36fefe62b645a7218d7584b35bea252393ac922c9bb3654a9e90f23bcfb273e811fcf2f2c1 +SHA512 (MarkupSafe-2.1.0.tar.gz) = 2a340f4f4cc7de0638cc32bf04f0daa8a0db579ebe7b514b296498c5c05ea0e36e164bfcce929a92bea9051e8211b6683602431dac1aaf490bc0e279dee520a6 +SHA512 (ansible-core-2.14.2.tar.gz) = 210dcd32b3a7faa50028200cc7f2ef4b8a8c5ee90fdfdf31cb61d2bc6d03c86aeb644a751e0c14aea3c1a95ea9e18703de1de304beeedcda4a98780f3e79cfec +SHA512 (packaging-20.4.tar.gz) = d53912041a9950efb5d221fc968adc328c2ef1e54ec9806d2158fd6db1b170e37afb05213f5750b10c59927504083ca3781c958caa0c802b1c7c0fe1ac1682a4 +SHA512 (pyparsing-2.4.7.tar.gz) = 0b9f8f18907f65cb3af1b48ed57989e183f28d71646f2b2f820e772476f596ca15ee1a689f3042f18458206457f4683d10daa6e73dfd3ae82d5e4405882f9dd2 +SHA512 (resolvelib-0.5.4.tar.gz) = cb027c5478c217f6f8288b42a933665aaf6e59280e7aa88a25f6594e589e34ac2b75734764e331d0889ad9cf0c60b8cbdfa14b01dce023a76870bb21cfc4d926