This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository efl.

View the commit online.

commit e8c7551b74c8325c8b43fbc6f957655b295c1d6a
Author: Carsten Haitzler <ras...@rasterman.com>
AuthorDate: Wed Dec 4 10:49:30 2024 +0000

    eina - eina prefix - fix parent path walk to find checkme files
    
    thana poionted this oput - for some binaries we've been falling back
    to compiled in paths silently becasuse the binaries are not in
    PREFIX/bin/ - they might be in PREFIX/lib/efreet/v-1.27/ ... thus walk
    back parents until we find the checkme then we know our real prefix.
    
    @fix
---
 src/lib/eina/eina_prefix.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_prefix.c b/src/lib/eina/eina_prefix.c
index 252c28056f..851cc464e1 100644
--- a/src/lib/eina/eina_prefix.c
+++ b/src/lib/eina/eina_prefix.c
@@ -652,6 +652,7 @@ eina_prefix_new(const char *argv0, void *symbol, const char *envprefix,
                        strncpy(pfx->prefix_path, pfx->exe_path,
                                p - pfx->exe_path);
                        pfx->prefix_path[p - pfx->exe_path] = 0;
+again:
                        DBG("Have prefix = %s", pfx->prefix_path);
 
                        /* bin */
@@ -694,7 +695,25 @@ eina_prefix_new(const char *argv0, void *symbol, const char *envprefix,
                                  DBG("Magic path %s stat passed", buf);
                               }
                             else
-                              WRN("Missing magic path %s", buf);
+                              {
+                                 p = strrchr(pfx->prefix_path, EINA_PATH_SEP_C);
+                                 if ((p) && (p > pfx->prefix_path))
+                                   {
+                                      *p = 0;
+                                      free(pfx->prefix_path_bin);
+                                      free(pfx->prefix_path_lib);
+                                      free(pfx->prefix_path_locale);
+                                      pfx->prefix_path_bin = NULL;
+                                      pfx->prefix_path_lib = NULL;
+                                      pfx->prefix_path_locale = NULL;
+                                      checks_passed = 0;
+                                      goto again;
+                                   }
+                                 WRN("Missing magic path %s", buf);
+                                 _fallback(pfx, pkg_bin, pkg_lib, pkg_data, pkg_locale,
+                                           envprefix);
+                                 return pfx;
+                              }
                          }
 
                        if (((!magic) && (checks_passed > 0)) ||

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to