From 2c59f5ad01aa0e6dfd1e6291e770c77041be762e Mon Sep 17 00:00:00 2001 From: Yoann Congal Date: Tue, 5 Dec 2023 09:44:18 +0100 Subject: lib/oe/patch: handle creating patches for CRLF sources 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] (From OE-Core rev: 58f845499c0277a2b8069eefa235430b5f5f7661) Signed-off-by: Yoann Congal Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- meta/lib/oe/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'meta/lib/oe') 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() -- cgit v1.2.3-54-g00ecf