summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorEtienne Cordonnier <ecordonnier@snap.com>2025-02-13 17:32:10 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-02-18 11:56:03 +0000
commitd55cd3fc39b638b4b765b07c484e58880996febf (patch)
tree0a73a5f58fe9d506f1c1a5febed616f41c923f83 /meta
parent959db9cb12c19c81c1114b09d8f3eadf9831d280 (diff)
downloadpoky-d55cd3fc39b638b4b765b07c484e58880996febf.tar.gz
python3-setuptools-scm: respect GIT_CEILING_DIRECTORIES
Fixes https://bugzilla.yoctoproject.org/show_bug.cgi?id=15740 python3-setuptools-scm was ignoring GIT_CEILING_DIRECTORIES which is set by poky, and it was thus finding a wrong value of "toplevel" in ./src/setuptools_scm/_file_finders/git.py The code is supposed to generate the list of files contained in python3-setuptools-scm, but it was instead running "git archive" on whatever git repository was above the build directory, because the tarball containing the sources of python3-setuptools-scm does not contain a .git directory. This is barely noticeable when building as a subdirectory of poky which is only 48MB, but this was causing serious slowdowns of python3-setuptools-scm:do_compile when building inside a big git repository with files tracked using git-lfs (50 minutes in my use-case). Reported upstream as https://github.com/pypa/setuptools-scm/issues/1103 (From OE-Core rev: 4ebe72477484cf68165b6f736ce10373e97d0e6d) Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com> Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-devtools/python/python3-setuptools-scm/0001-respect-GIT_CEILING_DIRECTORIES.patch36
-rw-r--r--meta/recipes-devtools/python/python3-setuptools-scm_8.1.0.bb1
2 files changed, 37 insertions, 0 deletions
diff --git a/meta/recipes-devtools/python/python3-setuptools-scm/0001-respect-GIT_CEILING_DIRECTORIES.patch b/meta/recipes-devtools/python/python3-setuptools-scm/0001-respect-GIT_CEILING_DIRECTORIES.patch
new file mode 100644
index 0000000000..7d2808cc0c
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-setuptools-scm/0001-respect-GIT_CEILING_DIRECTORIES.patch
@@ -0,0 +1,36 @@
1From a1cc419a118560d63e1ab8838c256a3622185750 Mon Sep 17 00:00:00 2001
2From: Etienne Cordonnier <ecordonnier@snap.com>
3Date: Thu, 13 Feb 2025 15:44:40 +0100
4Subject: [PATCH] respect GIT_CEILING_DIRECTORIES
5
6Fix for https://github.com/pypa/setuptools-scm/issues/1103
7
8When searching for the root-directory of the git repository e.g. with git rev-parse --show-toplevel,
9git stops the search when reaching $GIT_CEILING_DIRECTORIES. By ignoring this variable, the function
10_git_toplevel can go above the real git repository (e.g. when packaging a tarball without .git repository),
11and then runs "git archive" on an unrelated git repository.
12
13Upstream-Status: Pending
14
15Signed-off-by: Ross Burton <ross.burton@arm.com>
16Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
17---
18 src/setuptools_scm/_run_cmd.py | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-)
20
21diff --git a/src/setuptools_scm/_run_cmd.py b/src/setuptools_scm/_run_cmd.py
22index f2a8285..7e13d9f 100644
23--- a/src/setuptools_scm/_run_cmd.py
24+++ b/src/setuptools_scm/_run_cmd.py
25@@ -98,7 +98,7 @@ def no_git_env(env: Mapping[str, str]) -> dict[str, str]:
26 k: v
27 for k, v in env.items()
28 if not k.startswith("GIT_")
29- or k in ("GIT_EXEC_PATH", "GIT_SSH", "GIT_SSH_COMMAND")
30+ or k in ("GIT_CEILING_DIRECTORIES", "GIT_EXEC_PATH", "GIT_SSH", "GIT_SSH_COMMAND")
31 }
32
33
34--
352.43.0
36
diff --git a/meta/recipes-devtools/python/python3-setuptools-scm_8.1.0.bb b/meta/recipes-devtools/python/python3-setuptools-scm_8.1.0.bb
index 4bcc8e438a..14913ff958 100644
--- a/meta/recipes-devtools/python/python3-setuptools-scm_8.1.0.bb
+++ b/meta/recipes-devtools/python/python3-setuptools-scm_8.1.0.bb
@@ -6,6 +6,7 @@ argument or in a SCM managed file."
6LICENSE = "MIT" 6LICENSE = "MIT"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=838c366f69b72c5df05c96dff79b35f2" 7LIC_FILES_CHKSUM = "file://LICENSE;md5=838c366f69b72c5df05c96dff79b35f2"
8 8
9SRC_URI += "file://0001-respect-GIT_CEILING_DIRECTORIES.patch"
9SRC_URI[sha256sum] = "42dea1b65771cba93b7a515d65a65d8246e560768a66b9106a592c8e7f26c8a7" 10SRC_URI[sha256sum] = "42dea1b65771cba93b7a515d65a65d8246e560768a66b9106a592c8e7f26c8a7"
10 11
11PYPI_PACKAGE = "setuptools_scm" 12PYPI_PACKAGE = "setuptools_scm"