commit e3033c2f48092e657031431ea90de6929647302c Author: Andrew Lukoshko Date: Mon Feb 16 11:37:47 2026 +0000 import CS python-pdm-backend-2.1.8-1.el10 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6dcd85d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +pdm_backend-2.1.8.tar.gz diff --git a/python-pdm-backend.spec b/python-pdm-backend.spec new file mode 100644 index 0000000..f2d8623 --- /dev/null +++ b/python-pdm-backend.spec @@ -0,0 +1,115 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.5.1) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 1; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +Name: python-pdm-backend +Version: 2.1.8 +Release: %autorelease +Summary: The build backend used by PDM that supports latest packaging standards +# SPDX +License: MIT +URL: https://github.com/pdm-project/pdm-backend +Source: %{pypi_source pdm_backend} +# Unbundles vendored dependencies and drops +# validate_pyproject entirely. For context, see +# https://bugzilla.redhat.com/show_bug.cgi?id=2179101 +Patch: unbundle-vendored-deps.patch + +BuildArch: noarch +BuildRequires: python3-devel +BuildRequires: python3-packaging +BuildRequires: python3-tomli-w +BuildRequires: python3-pyproject-metadata +# Test-only deps +BuildRequires: gcc +BuildRequires: git-core +BuildRequires: python3-editables +BuildRequires: python3-pytest +BuildRequires: python3-setuptools + + +%global _description %{expand: +The build backend used by PDM that supports latest packaging standards.} + + +%description %_description + +%package -n python3-pdm-backend +Summary: %{summary} +Requires: python3-packaging +Requires: python3-tomli-w +Requires: python3-pyproject-metadata + +%description -n python3-pdm-backend %_description + + +%prep +%autosetup -p1 -n pdm_backend-%{version} +rm -rv src/pdm/backend/_vendor + + +%generate_buildrequires +%pyproject_buildrequires + + +%build +%pyproject_wheel + + +%install +%pyproject_install +%pyproject_save_files pdm + + +%check +%pytest + + +%files -n python3-pdm-backend -f %{pyproject_files} +%license LICENSE +%doc README.md + + +%changelog +## START: Generated by rpmautospec +* Wed Jan 24 2024 Lumir Balhar - 2.1.8-1 +- Update to 2.1.8 (rhbz#2255960) + +* Mon Jan 22 2024 Fedora Release Engineering - 2.1.7-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Oct 18 2023 Lumír Balhar - 2.1.7-1 +- Update to 2.1.7 (rhbz#2242730) + +* Wed Sep 06 2023 Lumír Balhar - 2.1.6-1 +- Update to 2.1.6 (rhbz#2235604) + +* Wed Aug 09 2023 Lumír Balhar - 2.1.5-1 +- Update to 2.1.5 (rhbz#2230229) + +* Wed Aug 02 2023 Lumír Balhar - 2.1.4-1 +- Update to 2.1.4 (rhbz#2213464) + +* Fri Jul 21 2023 Fedora Release Engineering - 2.0.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Python Maint - 2.0.7-2 +- Rebuilt for Python 3.12 + +* Mon May 15 2023 Lumír Balhar - 2.0.7-1 +- Update to 2.0.7 (rhbz#2203716) +- SPDX license + +* Wed Apr 26 2023 Lumír Balhar - 2.0.6-1 +- Update to 2.0.6 (rhbz#2185582) + +* Mon Mar 20 2023 Lumír Balhar - 2.0.5-1 +- Initial package + +## END: Generated by rpmautospec diff --git a/sources b/sources new file mode 100644 index 0000000..d0d5437 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (pdm_backend-2.1.8.tar.gz) = d1c717abb6dab31a091beadb096e00d8cd4f421d48caefdc017fc1bcfa9b61553c6daf3ca5080981162a50c7d364cadebcce8fecafc249c309b26cb2c3a6ffc7 diff --git a/unbundle-vendored-deps.patch b/unbundle-vendored-deps.patch new file mode 100644 index 0000000..b3c3e7e --- /dev/null +++ b/unbundle-vendored-deps.patch @@ -0,0 +1,132 @@ +From fa0b2f93801febb273f78d1123f9fdd216208533 Mon Sep 17 00:00:00 2001 +From: Lumir Balhar +Date: Wed, 2 Aug 2023 14:43:02 +0200 +Subject: [PATCH] Unbundle vendored deps + +and drop validate_pyproject entirely as it's experimental +and does not work well with RPM-installed packages. +--- + src/pdm/backend/config.py | 13 ++----------- + src/pdm/backend/editable.py | 2 +- + src/pdm/backend/hooks/version/scm.py | 2 +- + src/pdm/backend/sdist.py | 2 +- + src/pdm/backend/utils.py | 8 ++++---- + src/pdm/backend/wheel.py | 6 +++--- + 6 files changed, 12 insertions(+), 21 deletions(-) + +diff --git a/src/pdm/backend/config.py b/src/pdm/backend/config.py +index 09cbe65..30b4cb9 100644 +--- a/src/pdm/backend/config.py ++++ b/src/pdm/backend/config.py +@@ -6,8 +6,8 @@ import sys + from pathlib import Path + from typing import TYPE_CHECKING, Any, TypeVar + +-from pdm.backend._vendor import tomli_w +-from pdm.backend._vendor.pyproject_metadata import ConfigurationError, StandardMetadata ++import tomli_w ++from pyproject_metadata import StandardMetadata + from pdm.backend.exceptions import ConfigError, ValidationError + from pdm.backend.structures import Table + from pdm.backend.utils import find_packages_iter +@@ -41,7 +41,6 @@ class Config: + """ + + def __init__(self, root: Path, data: dict[str, Any]) -> None: +- self.validate(data, root) + self.root = root + self.data = data + self.metadata = Metadata(data["project"]) +@@ -56,14 +55,6 @@ class Config: + metadata.name = self.metadata["name"] + return str(metadata.as_rfc822()) + +- @classmethod +- def validate(cls, data: dict[str, Any], root: Path) -> None: +- """Validate the pyproject.toml data.""" +- try: +- StandardMetadata.from_pyproject(data, project_dir=root) +- except ConfigurationError as e: +- raise ValidationError(e.args[0], e.key) from e +- + @classmethod + def from_pyproject(cls, root: str | Path) -> Config: + """Load the pyproject.toml file from the given project root.""" +diff --git a/src/pdm/backend/editable.py b/src/pdm/backend/editable.py +index 2814c6f..36b868b 100644 +--- a/src/pdm/backend/editable.py ++++ b/src/pdm/backend/editable.py +@@ -6,7 +6,7 @@ from pathlib import Path + + from editables import EditableProject + +-from pdm.backend._vendor.packaging.utils import canonicalize_name ++from packaging.utils import canonicalize_name + from pdm.backend.exceptions import ConfigError, PDMWarning + from pdm.backend.hooks.base import Context + from pdm.backend.utils import to_filename +diff --git a/src/pdm/backend/hooks/version/scm.py b/src/pdm/backend/hooks/version/scm.py +index 64c975d..0e7589a 100644 +--- a/src/pdm/backend/hooks/version/scm.py ++++ b/src/pdm/backend/hooks/version/scm.py +@@ -15,7 +15,7 @@ from datetime import datetime + from pathlib import Path + from typing import TYPE_CHECKING, Iterable, NamedTuple + +-from pdm.backend._vendor.packaging.version import Version ++from packaging.version import Version + + if TYPE_CHECKING: + from _typeshed import StrPath +diff --git a/src/pdm/backend/sdist.py b/src/pdm/backend/sdist.py +index a08647f..feb4ae6 100644 +--- a/src/pdm/backend/sdist.py ++++ b/src/pdm/backend/sdist.py +@@ -8,7 +8,7 @@ from pathlib import Path + from posixpath import join as pjoin + from typing import Iterable + +-from pdm.backend._vendor.packaging.utils import canonicalize_name ++from packaging.utils import canonicalize_name + from pdm.backend.base import Builder + from pdm.backend.hooks import Context + from pdm.backend.utils import normalize_file_permissions, safe_version, to_filename +diff --git a/src/pdm/backend/utils.py b/src/pdm/backend/utils.py +index 4bcd568..07e81cd 100644 +--- a/src/pdm/backend/utils.py ++++ b/src/pdm/backend/utils.py +@@ -13,10 +13,10 @@ from fnmatch import fnmatchcase + from pathlib import Path + from typing import Callable, Generator, Iterable, Match + +-from pdm.backend._vendor.packaging import tags +-from pdm.backend._vendor.packaging.markers import Marker +-from pdm.backend._vendor.packaging.requirements import Requirement +-from pdm.backend._vendor.packaging.version import InvalidVersion, Version ++from packaging import tags ++from packaging.markers import Marker ++from packaging.requirements import Requirement ++from packaging.version import InvalidVersion, Version + from pdm.backend.macosx_platform import calculate_macosx_platform_tag + + +diff --git a/src/pdm/backend/wheel.py b/src/pdm/backend/wheel.py +index aafb9db..afeedd7 100644 +--- a/src/pdm/backend/wheel.py ++++ b/src/pdm/backend/wheel.py +@@ -14,9 +14,9 @@ from base64 import urlsafe_b64encode + from pathlib import Path + from typing import IO, Any, Iterable, Mapping, NamedTuple, cast + +-from pdm.backend._vendor.packaging import tags +-from pdm.backend._vendor.packaging.specifiers import SpecifierSet +-from pdm.backend._vendor.packaging.utils import canonicalize_name ++from packaging import tags ++from packaging.specifiers import SpecifierSet ++from packaging.utils import canonicalize_name + from pdm.backend.base import Builder + from pdm.backend.hooks import Context + from pdm.backend.hooks.setuptools import SetuptoolsBuildHook +-- +2.41.0 +