diff mbox series

[v2] lib/oe/patch: handle creating patches for CRLF sources

Message ID 20231205084418.2008541-1-yoann.congal@smile.fr
State Accepted, archived
Commit 58f845499c0277a2b8069eefa235430b5f5f7661
Headers show
Series [v2] lib/oe/patch: handle creating patches for CRLF sources | expand

Commit Message

Yoann Congal Dec. 5, 2023, 8:44 a.m. UTC
Using devtool to patch CRLF based sources creates patch files which have
mixed end of lines : LF for headers and CRLF for source context and
modified lines.

Python open(..., newline=None) (default for newline arg)does detect
end-of-line in this mixed file but only outputs LF EOL data. This
result in patch files that does not apply on the original sources.

Switching to open(..., newline='') allows to detect end-of-line but keep
the original end-of-line intact. This generate correct patches for CRLF
based sources.

Fixes [YOCTO #15285]

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
---
v1->v2: Rebased to solve conflicts with 900129cbdf
---
 meta/lib/oe/patch.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py
index e4bb5a7839..d5ad4f3dc1 100644
--- a/meta/lib/oe/patch.py
+++ b/meta/lib/oe/patch.py
@@ -478,7 +478,7 @@  class GitApplyTree(PatchTree):
                             patchlines = []
                             outfile = None
                             try:
-                                with open(srcfile, 'r', encoding=encoding) as f:
+                                with open(srcfile, 'r', encoding=encoding, newline='') as f:
                                     for line in f:
                                         if line.startswith(GitApplyTree.patch_line_prefix):
                                             outfile = line.split()[-1].strip()