forked from darealshinji/linuxdeploy-plugin-checkrt
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAppRun.c.patch
47 lines (43 loc) · 2.25 KB
/
AppRun.c.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
--- a/AppRun.c
+++ b/AppRun.c
@@ -164,6 +164,9 @@
char *old_env;
size_t length;
const char *format;
+ checkrt(usr_in_appdir);
+ if (optional_ld_preload)
+ putenv(optional_ld_preload);
/* https://docs.python.org/2/using/cmdline.html#envvar-PYTHONHOME */
SET_NEW_ENV(new_pythonhome, appdir_s, "PYTHONHOME=%s/usr/", appdir);
@@ -171,8 +174,24 @@
old_env = getenv("PATH") ?: "";
SET_NEW_ENV(new_path, appdir_s*5 + strlen(old_env), "PATH=%s/usr/bin/:%s/usr/sbin/:%s/usr/games/:%s/bin/:%s/sbin/:%s", appdir, appdir, appdir, appdir, appdir, old_env);
+ int isUbuntu1404 = 0;
+ FILE *fp = popen("/usr/bin/lsb_release -rcs 2>/dev/null", "r");
+ if (fp != NULL)
+ {
+ char version[1035];
+ fgets(version, sizeof(version), fp);
+ char codename[1035];
+ fgets(codename, sizeof(codename), fp);
+ if (strcmp(version, "14.04\n") == 0 && strcmp(codename, "trusty\n") == 0)
+ isUbuntu1404 = 1;
+
+ }
old_env = getenv("LD_LIBRARY_PATH") ?: "";
SET_NEW_ENV(new_ld_library_path, appdir_s*10 + strlen(old_env), "LD_LIBRARY_PATH=%s/usr/lib/:%s/usr/lib/i386-linux-gnu/:%s/usr/lib/x86_64-linux-gnu/:%s/usr/lib32/:%s/usr/lib64/:%s/lib/:%s/lib/i386-linux-gnu/:%s/lib/x86_64-linux-gnu/:%s/lib32/:%s/lib64/:%s", appdir, appdir, appdir, appdir, appdir, appdir, appdir, appdir, appdir, appdir, old_env);
+ if (isUbuntu1404)
+ {
+ SET_NEW_ENV(new_ld_library_path, strlen(optional_ld_library_path) + appdir_s*10 + strlen(old_env), "LD_LIBRARY_PATH=%s%s/usr/lib/:%s/usr/lib/i386-linux-gnu/:%s/usr/lib/x86_64-linux-gnu/:%s/usr/lib32/:%s/usr/lib64/:%s/lib/:%s/lib/i386-linux-gnu/:%s/lib/x86_64-linux-gnu/:%s/lib32/:%s/lib64/:%s", optional_ld_library_path, appdir, appdir, appdir, appdir, appdir, appdir, appdir, appdir, appdir, appdir, old_env);
+ }
old_env = getenv("PYTHONPATH") ?: "";
SET_NEW_ENV(new_pythonpath, appdir_s + strlen(old_env), "PYTHONPATH=%s/usr/share/pyshared/:%s", appdir, old_env);
@@ -201,6 +220,9 @@
if (ret == -1)
die("Error executing '%s': %s\n", exe, strerror(error));
+ free(optional_ld_library_path);
+ if (optional_ld_preload)
+ free(optional_ld_preload);
free(line);
free(desktop_file);
free(usr_in_appdir);