pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/devel/py-dulwich



Module Name:    pkgsrc
Committed By:   adam
Date:           Mon Jul  6 07:56:46 UTC 2026

Modified Files:
        pkgsrc/devel/py-dulwich: Makefile cargo-depends.mk distinfo

Log Message:
py-dulwich: updated to 1.2.8

1.2.8   2026-07-05

* Enumerate the objects to push before the HTTP ``git-receive-pack``
  request body starts streaming. ``generate_pack_data`` previously ran
  lazily inside the body generator, after the header pkt-lines were
  already on the wire, so on large repositories the request stalled
  mid-body while objects were counted and servers such as GitHub aborted
  the push with a timeout / "broken pipe".

* Support ``http.postBuffer``.

* SECURITY: Canonicalize file modes to ``0o644``/``0o755`` before ``chmod``
  on checkout and patch apply, matching git. An untrusted tree entry or
  patch ``new file mode`` could otherwise set setuid/setgid/sticky or
  world-writable bits on a materialized file. (netliomax25-code)

* SECURITY(GHSA-8w8g-wq8h-fq33): Write files through ``build_file_from_blob``
  in path-restricted ``porcelain.checkout(paths=...)`` instead of a raw
  ``os.open``. The old path followed a symlink left at the target, so a
  crafted repository could write attacker content outside the work tree
  (e.g. into ``.git/hooks``) on ``checkout``. (reported by zx (Jace) and
  Houlton McGuinn, Jelmer Vernooij)

* SECURITY(GHSA-5fqc-mrg8-w798): Build the temporary index for
  ``filter-branch --index-filter`` in memory instead of materializing tree
  entries into CWD. Persisted entries between commits let a symlink from
  an ancestor commit redirect a descendant's writes outside the work tree.
  (reported by zx (Jace), Jelmer Vernooij)

* SECURITY: Refuse to write a stash entry through an intermediate symlink
  on ``stash.pop``. The old ``os.path.exists`` check followed symlinks, so
  a crafted stash whose parent path was a symlink already present in the
  worktree (e.g. ``link`` -> ``.git/hooks``) let the subsequent write land
  outside the work tree. (reported by zx (Jace), Jelmer Vernooij)

* SECURITY: Refuse path-restricted ``porcelain.checkout``, ``restore`` and
  ``reset_file`` writes whose leading directory is an existing symlink, so
  a crafted repository can no longer land ``sub`` as a link to
  ``.git/hooks`` and have a write to ``sub/anything`` traverse it.
  (reported by zx (Jace), Jelmer Vernooij)

* SECURITY: Reject non-hex pkt-line length prefixes in the protocol parser.
  ``int(sizestr, 16)`` accepted a leading ``-``, whose negative length made
  the following ``read(size - 4)`` slurp the rest of the stream and caused
  ``PktLineParser`` to loop without consuming its buffer.

* SECURITY: Escape the repository path passed to the remote in the SSH
  client, so a path containing a single quote can no longer close the
  quoting and have the remainder interpreted by the remote shell.

* SECURITY: Reject an option-like host in ``TCPGitClient`` before invoking
  the ``core.gitProxy`` command, matching the ``SubprocessSSHVendor`` guard,
  so a URL like ``git://-oProxyCommand=...`` can no longer be interpreted
  as a flag by the proxy program.

* SECURITY: Validate object ids in the object store and refs container. An
  id containing path separators would previously be joined into a filename
  by ``DiskObjectStore._get_shafile_path`` (escaping the objects
  directory) or stored as a ref value.

* SECURITY: Validate the object id in LFS server request handlers before
  it reaches the store. The store maps ``oid`` onto
  ``objects/<oid[:2]>/<oid[2:4]>/<oid>``, so a request path containing
  ``..`` could otherwise escape the LFS directory.

* SECURITY: Don't expand config ``include``/``includeIf`` directives when
  parsing bundle lists served by an untrusted bundle-uri host, matching
  the handling of ``.gitmodules``.

* SECURITY: Read the signing key from gpg's ``--status-fd`` (``VALIDSIG``)
  in ``GPGCliSignatureVendor.verify`` instead of the human-readable
  ``using RSA key ...`` text on stderr, which could be spoofed by embedding
  a matching line in the signed payload.

* SECURITY: Raise ``UntrustedSignature`` from ``verify_commit`` and
  ``verify_tag`` when ``keyids`` is set and the object carries no
  signature, instead of silently accepting it.

* SECURITY: Fix quadratic backtracking in ``_find_scissors_line``. The
  perforation regex had two unbounded ``-+`` groups separated only by
  optional subpatterns, so a long dash-only line ran in O(n^2); every line
  of a mailbox is fed through ``mailinfo``/``git am --scissors``, so a
  crafted patch could stall the parser.

* SECURITY: Collapse consecutive ``*`` wildcards to at most ``**`` in
  ``.gitattributes``, ``.gitignore`` and config glob translation, so a
  pattern with a long run of stars can no longer produce adjacent
  unbounded regex quantifiers that backtrack catastrophically (ReDoS).

* SECURITY: Fix quadratic buffering in ``web.ChunkReader.read``. The
  buffered-byte total was recomputed from scratch on each iteration, so a
  large chunked request body ran in O(n^2).

* SECURITY: Skip invalid tree paths (containing ``..``, ``.git``, etc.) in
  ``diff_working_tree_to_tree`` instead of joining them onto the work
  tree, matching git. A working-tree diff against an untrusted commit
  could otherwise read a file outside the work tree and disclose its
  contents in the diff output.

* SECURITY: Fix quadratic header accumulation in ``ShaFile._parse_message``
  so parsing an object with many header lines no longer runs in O(n^2).

* Replace a symlink left at the target path with a fresh regular file in
  ``build_file_from_blob`` instead of writing through it, matching git on
  checkout.

* Raise ``GitProtocolError`` carrying the server's message when the
  fetch/send-pack tail loop sees a fatal side-band channel (``\x03``),
  instead of crashing with ``AssertionError: Invalid sideband channel 3``
  and swallowing the server's error text. (Jelmer Vernooij)

* Use ``ThreadingHTTPServer`` and advertise HTTP/1.1 in ``lfs_server`` so
  urllib3's keep-alive pool doesn't race a torn-down connection into
  ``RemoteDisconnected``. (Jelmer Vernooij)

* Deprecate ``dulwich.objects.filename_to_hex``, which is unused.
  (Jelmer Vernooij)

* Support pyo3 0.29. (Jelmer Vernooij)


To generate a diff of this commit:
cvs rdiff -u -r1.83 -r1.84 pkgsrc/devel/py-dulwich/Makefile
cvs rdiff -u -r1.17 -r1.18 pkgsrc/devel/py-dulwich/cargo-depends.mk
cvs rdiff -u -r1.78 -r1.79 pkgsrc/devel/py-dulwich/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/devel/py-dulwich/Makefile
diff -u pkgsrc/devel/py-dulwich/Makefile:1.83 pkgsrc/devel/py-dulwich/Makefile:1.84
--- pkgsrc/devel/py-dulwich/Makefile:1.83       Thu Jul  2 11:26:44 2026
+++ pkgsrc/devel/py-dulwich/Makefile    Mon Jul  6 07:56:46 2026
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.83 2026/07/02 11:26:44 adam Exp $
+# $NetBSD: Makefile,v 1.84 2026/07/06 07:56:46 adam Exp $
 
-DISTNAME=      dulwich-1.2.7
+DISTNAME=      dulwich-1.2.8
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME}
 CATEGORIES=    devel python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=d/dulwich/}

Index: pkgsrc/devel/py-dulwich/cargo-depends.mk
diff -u pkgsrc/devel/py-dulwich/cargo-depends.mk:1.17 pkgsrc/devel/py-dulwich/cargo-depends.mk:1.18
--- pkgsrc/devel/py-dulwich/cargo-depends.mk:1.17       Thu Jul  2 11:26:44 2026
+++ pkgsrc/devel/py-dulwich/cargo-depends.mk    Mon Jul  6 07:56:46 2026
@@ -1,17 +1,17 @@
-# $NetBSD: cargo-depends.mk,v 1.17 2026/07/02 11:26:44 adam Exp $
+# $NetBSD: cargo-depends.mk,v 1.18 2026/07/06 07:56:46 adam Exp $
 
 CARGO_CRATE_DEPENDS+=  bstr-1.12.1
 CARGO_CRATE_DEPENDS+=  heck-0.5.0
 CARGO_CRATE_DEPENDS+=  libc-0.2.185
-CARGO_CRATE_DEPENDS+=  memchr-2.8.1
+CARGO_CRATE_DEPENDS+=  memchr-2.8.2
 CARGO_CRATE_DEPENDS+=  once_cell-1.21.4
 CARGO_CRATE_DEPENDS+=  portable-atomic-1.13.1
 CARGO_CRATE_DEPENDS+=  proc-macro2-1.0.106
-CARGO_CRATE_DEPENDS+=  pyo3-0.28.3
-CARGO_CRATE_DEPENDS+=  pyo3-build-config-0.28.3
-CARGO_CRATE_DEPENDS+=  pyo3-ffi-0.28.3
-CARGO_CRATE_DEPENDS+=  pyo3-macros-0.28.3
-CARGO_CRATE_DEPENDS+=  pyo3-macros-backend-0.28.3
+CARGO_CRATE_DEPENDS+=  pyo3-0.29.0
+CARGO_CRATE_DEPENDS+=  pyo3-build-config-0.29.0
+CARGO_CRATE_DEPENDS+=  pyo3-ffi-0.29.0
+CARGO_CRATE_DEPENDS+=  pyo3-macros-0.29.0
+CARGO_CRATE_DEPENDS+=  pyo3-macros-backend-0.29.0
 CARGO_CRATE_DEPENDS+=  quote-1.0.45
 CARGO_CRATE_DEPENDS+=  serde-1.0.228
 CARGO_CRATE_DEPENDS+=  serde_core-1.0.228

Index: pkgsrc/devel/py-dulwich/distinfo
diff -u pkgsrc/devel/py-dulwich/distinfo:1.78 pkgsrc/devel/py-dulwich/distinfo:1.79
--- pkgsrc/devel/py-dulwich/distinfo:1.78       Thu Jul  2 11:26:44 2026
+++ pkgsrc/devel/py-dulwich/distinfo    Mon Jul  6 07:56:46 2026
@@ -1,20 +1,20 @@
-$NetBSD: distinfo,v 1.78 2026/07/02 11:26:44 adam Exp $
+$NetBSD: distinfo,v 1.79 2026/07/06 07:56:46 adam Exp $
 
 BLAKE2s (bstr-1.12.1.crate) = bf738250e22e04ffa6d9ae59e16bec4997bc7307983bb39e1672cea8cba81d6f
 SHA512 (bstr-1.12.1.crate) = 63a1e62d43c4dce00f287421b1ec76accbbab7f0897c8df26227f533af325896c0c8921a873f4125381e7b89fbb69a4358a96698ec6ee61191955464ff1c84ac
 Size (bstr-1.12.1.crate) = 354916 bytes
-BLAKE2s (dulwich-1.2.7.tar.gz) = 21160a6730accf751ed886a5d6356db7bb83930b03896380187de25b176a2174
-SHA512 (dulwich-1.2.7.tar.gz) = 57ebe0e682b7e01a2ee452f8378be6228ebfa8d35549c7f1d7d2c24263972649def0bf5c57e911ba859f61d7d26df9b6053c7b2222e858076f9a9272d8fed660
-Size (dulwich-1.2.7.tar.gz) = 1284735 bytes
+BLAKE2s (dulwich-1.2.8.tar.gz) = e225f0d6705417907b44d719313b0ba15efe6c801a0f0cb8c3c55d84cf115117
+SHA512 (dulwich-1.2.8.tar.gz) = a8da223bce5a2d07fca9f2e8eced5602efd1230cae9bd0f8d3b2e789ae6289d7c908615bcc5cd34072401ea71979938c2cce5c2e003bddb53ea24337a5868ed7
+Size (dulwich-1.2.8.tar.gz) = 1301174 bytes
 BLAKE2s (heck-0.5.0.crate) = 0bc71a5746c9d1e7c913d096fb68f1d422464744e18adc592540b291882f5660
 SHA512 (heck-0.5.0.crate) = f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
 Size (heck-0.5.0.crate) = 11517 bytes
 BLAKE2s (libc-0.2.185.crate) = 4571ea59c09944dc900f3e23b2729201780fa042c594cf127bf8140222daf20b
 SHA512 (libc-0.2.185.crate) = c8dbcaaf2e5d8377a4d1003af4a7210fbfe4f9b1e8497f07d88a231a8d5c9f67014e650a5e18e913e7b4d6a1835c4cbc9c31ce0cd224ea28acbdbb39034a300e
 Size (libc-0.2.185.crate) = 821775 bytes
-BLAKE2s (memchr-2.8.1.crate) = 1b8983eacf166f8ccb7312f81cff61cdefcfe0519857b66dce35b73328aba70b
-SHA512 (memchr-2.8.1.crate) = a11ff12e2e2fda7ee6e45dcc39bba289d0c2605e996263782d7039c3922781a51fdbe6e0b0455a0075e126b9ff2369a5935d9162e6d5903110120c12886322e1
-Size (memchr-2.8.1.crate) = 98743 bytes
+BLAKE2s (memchr-2.8.2.crate) = bc2997ad38b5f25065eb90fab249f423f107ad01304fc317f1e042084b12bcac
+SHA512 (memchr-2.8.2.crate) = 011574c7b8519b19298e553d170c1defc5fd06698d4c00684715802de57b235562c8849ca7bc0ad2b77a05eb2f94af1f49289285803d4461460469248319a15e
+Size (memchr-2.8.2.crate) = 99069 bytes
 BLAKE2s (once_cell-1.21.4.crate) = 5945879c1e46e46585a2692e5f3ac0beaa15f111aa45611e0419b50abb21fb4e
 SHA512 (once_cell-1.21.4.crate) = af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155
 Size (once_cell-1.21.4.crate) = 35010 bytes
@@ -24,21 +24,21 @@ Size (portable-atomic-1.13.1.crate) = 19
 BLAKE2s (proc-macro2-1.0.106.crate) = d914a8fc313c5a898a0a9381a19dfbdfe9b94efba3f431759ea2c7ce43cd5362
 SHA512 (proc-macro2-1.0.106.crate) = b726e2c92af434bfa88cd4f53c3fe6db647503567675fb439890dee3d15f5111137e3242b28d164114ce081c10acf3fd11950753ddb349190c87ee04e7d97744
 Size (proc-macro2-1.0.106.crate) = 59765 bytes
-BLAKE2s (pyo3-0.28.3.crate) = 3c6aaac1c9811198ec6da1c9fc48d2f6838f322132ada3667eacb8ed65c418f3
-SHA512 (pyo3-0.28.3.crate) = f955957eec4b95cc9337d331bba3bba52b4754b301cf86cd974601e64eb20c2424023b19be89a224661fe2e185de646cd3d0d00705b6b5cbd139856c9443a247
-Size (pyo3-0.28.3.crate) = 1204476 bytes
-BLAKE2s (pyo3-build-config-0.28.3.crate) = fbf0abd806eefd9d8e61c5c0074bed592f2cdfbf3a82db8e1d78996c13adc5ad
-SHA512 (pyo3-build-config-0.28.3.crate) = 78f85696901b16540d42187d10e888bd929b9f23415faeb73f9798abda1af3506a308145dd4113b070521271c72624d7930fb4b19bad25aa1afd3082030c9126
-Size (pyo3-build-config-0.28.3.crate) = 35961 bytes
-BLAKE2s (pyo3-ffi-0.28.3.crate) = e6ec195e9898889c1bd58068700c10823bb34dc8292bbf0c1ebb473563fc7aae
-SHA512 (pyo3-ffi-0.28.3.crate) = ec49b5cc67d19f46c9daea76b37b4988af0f63b9ed67c71190f015a0aa9691d4a8ffd4128413de430928428e1e8e26d44c3103f561e6b71b7e8c4597ab602d9f
-Size (pyo3-ffi-0.28.3.crate) = 80881 bytes
-BLAKE2s (pyo3-macros-0.28.3.crate) = 91c533aadcfafb9c1aac727e81e88fb1daf48ee50292f10de2fa67623d3d909d
-SHA512 (pyo3-macros-0.28.3.crate) = 57d178bd9b53dd98916e60c89bc26c34f9949829dc17bf7d6cc15b704bba7c874d85d6bd3c827d401268660a79230a6e32711048da939ec4e22342f3e08046d1
-Size (pyo3-macros-0.28.3.crate) = 8963 bytes
-BLAKE2s (pyo3-macros-backend-0.28.3.crate) = 4566cb08ea39578f852a847f909c3aa2b5fd0b9e65cf862a8a418e6982a8cdd0
-SHA512 (pyo3-macros-backend-0.28.3.crate) = 45ce31ed64ee4fd0249736d480c9840a756bc45934d6803ae11e0680057ecf4cc74c71b47ccf9241fc3ab5c1e0b9c758426f08bd523d1ace92fc308302ea3c84
-Size (pyo3-macros-backend-0.28.3.crate) = 88063 bytes
+BLAKE2s (pyo3-0.29.0.crate) = f25cfefac48e0d488a15bcace947cbedfae7afe57f1f7a142a5bc80ba8ed1609
+SHA512 (pyo3-0.29.0.crate) = e6822400de53ebcef4a14c899dc065abae621a126483873139f5eb850877c94f4bccee3a183d4e2a69eadcd3c3b82b0a6f3e1053d926b103be572329607f2f67
+Size (pyo3-0.29.0.crate) = 1241253 bytes
+BLAKE2s (pyo3-build-config-0.29.0.crate) = e0e97f7d0ac4e5042975ecefea1e7c59b0f5703b9432798585b20246f1a21ea6
+SHA512 (pyo3-build-config-0.29.0.crate) = df77e8d7d5fe173749437ff6b90fa1703083377d515ab8a85dc77d9cac9c3fc331ede4b040f7e3694311ddb5adff577cf90c181a27c196ab93a4569e918fdea8
+Size (pyo3-build-config-0.29.0.crate) = 39616 bytes
+BLAKE2s (pyo3-ffi-0.29.0.crate) = 3af279f26061a985347a80550d7bee3255c334ae2a8ffcc7f67c1418b571e72f
+SHA512 (pyo3-ffi-0.29.0.crate) = baaf01d13ddc09316ba16b22e9ca15a67e5bda5b861ed7961c3393fd4692fc1c96952f81465d1dcb6531b9083f96c5630981b3d7802cb1ac2af67aafaffbec76
+Size (pyo3-ffi-0.29.0.crate) = 88184 bytes
+BLAKE2s (pyo3-macros-0.29.0.crate) = bfbee9072175b5300ed98357459423798f130a3333bd796de32009a725d9ba4b
+SHA512 (pyo3-macros-0.29.0.crate) = fb6633ac76229d2e0ad88d51136a9318f03823b27c700a62cfbc957b4c834985e2f4c0cdaf5ea5e9993ec9e8ce3d63cd6b3fb823f2a042e65186adbed78da7c2
+Size (pyo3-macros-0.29.0.crate) = 8915 bytes
+BLAKE2s (pyo3-macros-backend-0.29.0.crate) = 6b63621bf64ba16ae267df41057b1ac4fcc3f47c5ac6ef4cc4f55ccd3c0d798e
+SHA512 (pyo3-macros-backend-0.29.0.crate) = 13a7af3958c09969637827d97ab9bbc664c407dda9e4283afaf495757798cf6f84932468bc092160fa75211ce0aafe6efc657f3a390234d77a67362cfb31fe0f
+Size (pyo3-macros-backend-0.29.0.crate) = 91943 bytes
 BLAKE2s (quote-1.0.45.crate) = 20533b49c424d16a57b48d77fd05ff08c31355221b3dd0d6fd917c60da7f748b
 SHA512 (quote-1.0.45.crate) = df96ede01ebd0ed642b758bf1d0862d0e116fc2b3343e14edb657ce5438ccabe743dec4a0a40de4dee98c134d169af9aba459faadf9c7a832b26377e755d49b0
 Size (quote-1.0.45.crate) = 31564 bytes



Home | Main Index | Thread Index | Old Index