summaryrefslogtreecommitdiff
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 */