Skip to content

windows doesn't apply patch that works on other platforms #2198

@minrk

Description

@minrk

The patch in question removes a symlink, and was created with:

git rm cpp/test/vcpkg.json
git commit -m "..."
git format-patch HEAD^1

The patch:

From 0ad004448855d5968a7dfc7bc60890c2f803865b Mon Sep 17 00:00:00 2001
From: Min RK <benjaminrk@gmail.com>
Date: Sat, 21 Feb 2026 09:16:16 -0800
Subject: [PATCH] remove symlink

---
 cpp/test/vcpkg.json | 1 -
 1 file changed, 1 deletion(-)
 delete mode 120000 cpp/test/vcpkg.json

diff --git a/cpp/test/vcpkg.json b/cpp/test/vcpkg.json
deleted file mode 120000
index e24efb77fb..0000000000
--- a/cpp/test/vcpkg.json
+++ /dev/null
@@ -1 +0,0 @@
-../vcpkg.json
\ No newline at end of file
-- 
2.49.0

On mac and linux, the patch applies cleanly, but on Windows, it errors trying to remove the wrong file, removing test/vcpkg.json instead of cpp/test/vcpkg.json:

╭─ Running build for recipe: fenics-libdolfinx-0.10.0-py310hd68938e_3
 │
 │ ╭─ Fetching source code
 │ │ Fetching source from url: https://github.com/fenics/dolfinx/archive/refs/tags/v0.10.0.tar.gz
 │ │ Found filename from Content-Disposition: dolfinx-0.10.0.tar.gz
 │ │ Downloaded file from https://github.com/fenics/dolfinx/archive/refs/tags/v0.10.0.tar.gz
 │ │ Validated SHA256 values of the downloaded file!
 │ │ Extracting tar file to cache: D:\bld\src_cache\dolfinx-0_10_0_24cbad2f.tar.gz
 │ │ Copying source from url: D:\bld\src_cache\dolfinx-0_10_0_24cbad2f to D:\bld\bld\rattler-build_fenics-libdolfinx_1771696175\work
 │ │ Applying patch: D:\a\1\s\recipe\4004.patch
 │ │ Applying patch: D:\a\1\s\recipe\remove-symlink.patch
 │ │
 │ ╰─────────────────── (took 1 second)
 │
 ╰─────────────────── (took 1 second)
Error:   × IO Error: failed to remove file `D:\bld\bld\rattler-build_fenics-
  │ libdolfinx_1771696175\work\test\vcpkg.json`: The system cannot find the
  │ path specified. (os error 3)
  ╰─▶ failed to remove file `D:\bld\bld\rattler-build_fenics-
      libdolfinx_1771696175\work\test\vcpkg.json`: The system cannot find the
      path specified. (os error 3)

Possibly relevant, the symlink to be removed points one level up, to ../vcpkg.json.

The recipe containing the patch

Metadata

Metadata

Assignees

No one assigned

    Labels

    patchingIssues affecting source code patching

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions