diff --git a/kitty/launcher/main.c b/kitty/launcher/main.c index df0cd0b49..d2308128e 100644 --- a/kitty/launcher/main.c +++ b/kitty/launcher/main.c @@ -371,7 +371,11 @@ int main(int argc, char *argv[], char* envp[]) { delegate_to_kitten_if_possible(argc, argv, exe_dir); int num, ret=0; char lib[PATH_MAX+1] = {0}; - num = snprintf(lib, PATH_MAX, "%s/%s", exe_dir, KITTY_LIB_PATH); + if (KITTY_LIB_PATH[0] == '/') { + num = snprintf(lib, PATH_MAX, "%s", KITTY_LIB_PATH); + } else { + num = snprintf(lib, PATH_MAX, "%s/%s", exe_dir, KITTY_LIB_PATH); + } if (num < 0 || num >= PATH_MAX) { fprintf(stderr, "Failed to create path to kitty lib\n"); return 1; } RunData run_data = {.exe = exe, .exe_dir = exe_dir, .lib_dir = lib, .argc = argc, .argv = argv, .lc_ctype = lc_ctype}; diff --git a/setup.py b/setup.py index ceec00927..b73ad74dc 100755 --- a/setup.py +++ b/setup.py @@ -1073,7 +1073,9 @@ def build_launcher(args: Options, launcher_dir: str = '.', bundle_type: str = 's ph = os.path.relpath(os.environ["DEVELOP_ROOT"], '.') cppflags.append(f'-DSET_PYTHON_HOME="{ph}"') if is_macos: - pass + # use an absolute path so the exe is relocatable to the minimal + # bundle + klp = src_base else: ldflags += ['-Wl,--disable-new-dtags', f'-Wl,-rpath,$ORIGIN/../../{ph}/lib'] if bundle_type.startswith('macos-'):