- update to 1.2.7 (bsc#1268128, CVE-2026-42305):

* Verify that an object retrieved by id actually hashes to the
    requested id, raising ``ChecksumMismatch`` otherwise.
  * Check out files whose names contain a colon or backslash. The
    NTFS path validator rejected any element containing
    ``:`` or ````, so such files were silently dropped on clone.
    It now rejects only the ``.git``/``git~1``
  * alternate-data-stream spellings, like git.
  * Abort the checkout when a tree entry has an invalid path
    (e.g. a ``.git`` alias) instead of silently skipping it.
  * Reject pack names containing path separators in the dumb HTTP
    transport, so a malicious server can no longer escape the
    temporary directory.
  * SECURITY: Don't expand config ``include`` directives when
    parsing ``.gitmodules``, so a crafted ``.gitmodules`` in a cloned
    repository can no longer make ``clone --recurse-submodules``
    read arbitrary files.
  * SECURITY: Validate ref names before resolving them to a path,
    so a client-supplied name like ``../../secret`` can no longer read
    a file outside the ref store. This closes a traversal via git-
    upload-archive's ``argument`` and other lookup paths.
  * Add ``porcelain.request_pull`` and a ``dulwich request-pull``
    command that generate a summary of pending changes between
    repositories, suitable for emailing to a maintainer, like
    ``git request- pull``.
  * Add ``porcelain.range_diff`` and a ``dulwich range-diff``
    command that compare two ranges of commits and show how a
    patch series evolved, like ``git range-diff``. Requires the
    ``munkres`` package, installable via the
    ``dulwich[range_diff]`` extra. (Jelmer Vernooij, #1828)

OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/python-dulwich?expand=0&rev=53
This commit is contained in:
2026-06-27 15:35:50 +00:00
committed by Git OBS Bridge
commit 491df70503
10 changed files with 1466 additions and 0 deletions
File diff suppressed because it is too large Load Diff
+115
View File
@@ -0,0 +1,115 @@
#
# spec file for package python-dulwich
#
# Copyright (c) 2026 SUSE LLC and contributors
#
# 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/
#
%if 0%{?suse_version} >= 1650
%bcond_without test
%else
%bcond_with test
%endif
%{?sle15_python_module_pythons}
%define oldpython python
Name: python-dulwich
Version: 1.2.7
Release: 0
Summary: Pure-Python Git Library
License: Apache-2.0 OR GPL-2.0-or-later
Group: Development/Languages/Python
URL: https://www.dulwich.io
Source0: https://github.com/jelmer/dulwich/archive/dulwich-%{version}.tar.gz#/dulwich-%{version}.tar.gz
BuildRequires: %{python_module devel}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools >= 17.1}
BuildRequires: %{python_module setuptools-rust}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
%if %{with test}
BuildRequires: %{python_module aiohttp}
BuildRequires: %{python_module fastimport}
BuildRequires: %{python_module geventhttpclient}
BuildRequires: %{python_module gevent}
BuildRequires: %{python_module gpg}
BuildRequires: %{python_module merge3}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module typing_extensions if %python-base < 3.12}
BuildRequires: %{python_module urllib3 >= 1.24.1}
BuildRequires: openssh-common
%if 0%{?suse_version} <= 1500
BuildRequires: python-mock
%endif
%endif
Requires: python-urllib3 >= 1.24.1
%if %{python_version_nodots} < 312
Requires: python-typing_extensions
%endif
Requires(post): update-alternatives
Requires(preun): update-alternatives
Recommends: python-fastimport
Recommends: python-gpg
Obsoletes: %{oldpython}-dulwich-doc < 0.20.5
%python_subpackages
%description
Simple Pure-Python implementation of the Git file formats and protocols. Dulwich
is the place where Mr. and Mrs. Git live in one of the Monty Python sketches.
%prep
%autosetup -p1 -n dulwich-dulwich-%{version}
sed -i '/usr\/bin\/env/d' dulwich/diffstat.py
%build
export CFLAGS="%{optflags}"
# Rust extensions currently don't build because
# of missing vendoring
# TODO: fix building with Rust extensions
%pyproject_wheel
%install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%python_clone -a %{buildroot}%{_bindir}/dulwich
%python_clone -a %{buildroot}%{_bindir}/dul-receive-pack
%python_clone -a %{buildroot}%{_bindir}/dul-upload-pack
%check
%if %{with test}
%pytest tests/ -k "not (test_filter_branch_index_filter)"
%endif
%post
%python_install_alternative dulwich
%python_install_alternative dul-receive-pack
%python_install_alternative dul-upload-pack
%postun
%python_uninstall_alternative dulwich
%python_uninstall_alternative dul-receive-pack
%python_uninstall_alternative dul-upload-pack
%files %{python_files}
%license COPYING
%doc NEWS README.rst
%python_alternative dulwich
%python_alternative dul-receive-pack
%python_alternative dul-upload-pack
%{python_sitearch}/dulwich
%{python_sitearch}/dulwich-%{version}*-info
%changelog
+24
View File
@@ -0,0 +1,24 @@
*.changes merge=merge-changes
*.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
*.tar 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
+4
View File
@@ -0,0 +1,4 @@
*.obscpio
*.osc
_build.*
.pbuild
+3
View File
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0a051c551a1a736b751d7a8e7ab5fe8707edc2a73bf090ede69ed03a04e517be
size 1145665
+3
View File
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e544eb494211660fb291e125e8da9c814b8620da0e0866f87bc1b7d1e5172a1c
size 1186935
+3
View File
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e3c231816b1034c64c45cac0af61a7ef317ee151abd41771f630775c18d854f7
size 1235981
+3
View File
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d1a45689b29871238f561294d58f2cbd6bc61844d0dd4c20427d0e596141093e
size 1255832
+3
View File
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:87d6d9cb54b9e313bbfbc20714d2d8e2291028c9bf430323c802b7e9a8daf080
size 1266397
+3
View File
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4554d64d6948b6dc92eb08524129cd985ec4bb40884509b23e4fd01088c2573d
size 1297758