import CS python-pdm-backend-2.1.8-1.el10

This commit is contained in:
Andrew Lukoshko 2026-02-16 11:37:47 +00:00
commit e3033c2f48
4 changed files with 249 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
pdm_backend-2.1.8.tar.gz

115
python-pdm-backend.spec Normal file
View File

@ -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 <lbalhar@redhat.com> - 2.1.8-1
- Update to 2.1.8 (rhbz#2255960)
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.7-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Oct 18 2023 Lumír Balhar <lbalhar@redhat.com> - 2.1.7-1
- Update to 2.1.7 (rhbz#2242730)
* Wed Sep 06 2023 Lumír Balhar <lbalhar@redhat.com> - 2.1.6-1
- Update to 2.1.6 (rhbz#2235604)
* Wed Aug 09 2023 Lumír Balhar <lbalhar@redhat.com> - 2.1.5-1
- Update to 2.1.5 (rhbz#2230229)
* Wed Aug 02 2023 Lumír Balhar <lbalhar@redhat.com> - 2.1.4-1
- Update to 2.1.4 (rhbz#2213464)
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.7-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 2.0.7-2
- Rebuilt for Python 3.12
* Mon May 15 2023 Lumír Balhar <lbalhar@redhat.com> - 2.0.7-1
- Update to 2.0.7 (rhbz#2203716)
- SPDX license
* Wed Apr 26 2023 Lumír Balhar <lbalhar@redhat.com> - 2.0.6-1
- Update to 2.0.6 (rhbz#2185582)
* Mon Mar 20 2023 Lumír Balhar <lbalhar@redhat.com> - 2.0.5-1
- Initial package
## END: Generated by rpmautospec

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (pdm_backend-2.1.8.tar.gz) = d1c717abb6dab31a091beadb096e00d8cd4f421d48caefdc017fc1bcfa9b61553c6daf3ca5080981162a50c7d364cadebcce8fecafc249c309b26cb2c3a6ffc7

View File

@ -0,0 +1,132 @@
From fa0b2f93801febb273f78d1123f9fdd216208533 Mon Sep 17 00:00:00 2001
From: Lumir Balhar <lbalhar@redhat.com>
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