We have some news to share for the request index beta feature. We’ve added more options to sort your requests, counters to the individual filters and documentation for the search functionality. Checkout the blog post for more details.

File fix-failed-to-stat-root-.gitconfig-issue-on-gitfs-bs.patch of Package salt

From 0ef67b3a7ce03335f1bfc6545f851897e11f5795 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?=
 <psuarezhernandez@suse.com>
Date: Wed, 29 Jan 2025 10:08:28 +0000
Subject: [PATCH] Fix failed to stat '/root/.gitconfig' issue on gitfs
 (bsc#1230944) (bsc#1234881) (#699)

* Fix failed to stat '/root/.gitconfig' issue on gitfs (bsc#1230944) (bsc#1234881)

This commit ensures the right HOME value is set during Pygit2 remote
initialization, otherwise there are chances that it gets a wrong value
depending on the execution stack.

* Add changelog entry file

* Add test_checkout_pygit2_with_home_env_unset unit test
---
 changelog/64121.fixed.md               | 1 +
 salt/utils/gitfs.py                    | 9 +++++----
 tests/pytests/unit/utils/test_gitfs.py | 1 -
 3 files changed, 6 insertions(+), 5 deletions(-)
 create mode 100644 changelog/64121.fixed.md

diff --git a/changelog/64121.fixed.md b/changelog/64121.fixed.md
new file mode 100644
index 0000000000..e78bbd5b7f
--- /dev/null
+++ b/changelog/64121.fixed.md
@@ -0,0 +1 @@
+Ensure the right HOME environment value is set during Pygit2 remote initialization.
diff --git a/salt/utils/gitfs.py b/salt/utils/gitfs.py
index 58fa611db8..6f691f3869 100644
--- a/salt/utils/gitfs.py
+++ b/salt/utils/gitfs.py
@@ -1889,7 +1889,12 @@ class Pygit2(GitProvider):
         """
         # https://github.com/libgit2/pygit2/issues/339
         # https://github.com/libgit2/libgit2/issues/2122
+        # https://github.com/saltstack/salt/issues/64121
         home = os.path.expanduser("~")
+        if "HOME" not in os.environ:
+            # Make sure $HOME env variable is set to prevent
+            # _pygit2.GitError: error loading known_hosts in some libgit2 versions.
+            os.environ["HOME"] = home
         pygit2.settings.search_path[pygit2.GIT_CONFIG_LEVEL_GLOBAL] = home
         new = False
         if not os.listdir(self._cachedir):
@@ -1994,10 +1999,6 @@ class Pygit2(GitProvider):
             # pruning only available in pygit2 >= 0.26.2
             pass
         try:
-            # Make sure $HOME env variable is set to prevent
-            # _pygit2.GitError: error loading known_hosts in some libgit2 versions.
-            if "HOME" not in os.environ:
-                os.environ["HOME"] = salt.syspaths.HOME_DIR
             fetch_results = origin.fetch(**fetch_kwargs)
         except GitError as exc:  # pylint: disable=broad-except
             exc_str = get_error_message(exc).lower()
diff --git a/tests/pytests/unit/utils/test_gitfs.py b/tests/pytests/unit/utils/test_gitfs.py
index bd7d74cb2b..3c4a85a856 100644
--- a/tests/pytests/unit/utils/test_gitfs.py
+++ b/tests/pytests/unit/utils/test_gitfs.py
@@ -251,7 +251,6 @@ def test_checkout_pygit2_with_home_env_unset(_prepare_provider):
     with patched_environ(__cleanup__=["HOME"]):
         assert "HOME" not in os.environ
         provider.init_remote()
-        provider.fetch()
         assert "HOME" in os.environ
 
 
-- 
2.48.1

openSUSE Build Service is sponsored by