summary refs log tree commit diff
path: root/distro/packages/patches/guile-relocatable.patch
diff options
context:
space:
mode:
Diffstat (limited to 'distro/packages/patches/guile-relocatable.patch')
-rw-r--r--distro/packages/patches/guile-relocatable.patch70
1 files changed, 0 insertions, 70 deletions
diff --git a/distro/packages/patches/guile-relocatable.patch b/distro/packages/patches/guile-relocatable.patch
deleted file mode 100644
index 077394cdde..0000000000
--- a/distro/packages/patches/guile-relocatable.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-This patch changes Guile to use a default search path relative to the
-location of the `guile' binary, allowing it to be relocated.
-
-diff --git a/libguile/load.c b/libguile/load.c
-index af2ca45..19dd338 100644
---- a/libguile/load.c
-+++ b/libguile/load.c
-@@ -26,6 +26,7 @@
- 
- #include <string.h>
- #include <stdio.h>
-+#include <libgen.h>
- 
- #include "libguile/_scm.h"
- #include "libguile/private-gc.h" /* scm_getenv_int */
-@@ -255,6 +256,32 @@ scm_init_load_path ()
-   SCM cpath = SCM_EOL;
- 
- #ifdef SCM_LIBRARY_DIR
-+  char *program, *bin_dir, *prefix, *module_dir, *ccache_dir;
-+
-+  /* Determine the source and compiled module directories at run-time,
-+     relative to the executable's location.
-+
-+     Note: Use /proc/self/exe instead of argv[0] because the latter is
-+     not necessarily an absolute, nor a valid file name.  */
-+
-+  program = scm_gc_malloc_pointerless (256, "string");
-+  readlink ("/proc/self/exe", program, 256);
-+
-+  bin_dir = dirname (strdupa (program));
-+
-+  prefix = scm_gc_malloc_pointerless (strlen (bin_dir) + 4, "string");
-+  strcpy (prefix, bin_dir);
-+  strcat (prefix, "/..");
-+  prefix = canonicalize_file_name (prefix);
-+
-+  module_dir = scm_gc_malloc_pointerless (strlen (prefix) + 50, "string");
-+  strcpy (module_dir, prefix);
-+  strcat (module_dir, "/share/guile/2.0");
-+
-+  ccache_dir = scm_gc_malloc_pointerless (strlen (prefix) + 50, "string");
-+  strcpy (ccache_dir, prefix);
-+  strcat (ccache_dir, "/lib/guile/2.0/ccache");
-+
-   env = getenv ("GUILE_SYSTEM_PATH");
-   if (env && strcmp (env, "") == 0)
-     /* special-case interpret system-path=="" as meaning no system path instead
-@@ -263,10 +290,7 @@ scm_init_load_path ()
-   else if (env)
-     path = scm_parse_path (scm_from_locale_string (env), path);
-   else
--    path = scm_list_4 (scm_from_locale_string (SCM_LIBRARY_DIR),
--                       scm_from_locale_string (SCM_SITE_DIR),
--                       scm_from_locale_string (SCM_GLOBAL_SITE_DIR),
--                       scm_from_locale_string (SCM_PKGDATA_DIR));
-+    path = scm_list_1 (scm_from_locale_string (module_dir));
- 
-   env = getenv ("GUILE_SYSTEM_COMPILED_PATH");
-   if (env && strcmp (env, "") == 0)
-@@ -276,8 +300,7 @@ scm_init_load_path ()
-     cpath = scm_parse_path (scm_from_locale_string (env), cpath);
-   else
-     {
--      cpath = scm_list_2 (scm_from_locale_string (SCM_CCACHE_DIR),
--                          scm_from_locale_string (SCM_SITE_CCACHE_DIR));
-+      cpath = scm_list_1 (scm_from_locale_string (ccache_dir));
-     }
- 
- #endif /* SCM_LIBRARY_DIR */