snap: make embedded efl able to start efreetd

+ add new dependencies + reorder deps
+ Also change the source for efl to my own that I find way more reliable
than efl's server (might only be because I'm closer)
This commit is contained in:
Boris Faure 2020-05-18 22:16:45 +02:00
parent e082daa6c1
commit 4745752fab
Signed by untrusted user who does not match committer: borisfaure
GPG Key ID: 35C0410516166BE8
2 changed files with 93 additions and 8 deletions

View File

@ -0,0 +1,76 @@
diff --git a/src/lib/efreet/efreet_cache.c b/src/lib/efreet/efreet_cache.c
index f859c630f0..159cc81155 100644
--- a/src/lib/efreet/efreet_cache.c
+++ b/src/lib/efreet/efreet_cache.c
@@ -112,6 +112,53 @@ EAPI int EFREET_EVENT_DESKTOP_CACHE_BUILD = 0;
if (e->server != ipc) \
return ECORE_CALLBACK_PASS_ON
+static void
+_find_binary(char buf[PATH_MAX])
+{
+ char *path_env = getenv("PATH");
+ char *names[] = { "efreetd", "terminology.efreetd"};
+ int i, n_names = sizeof(names) / sizeof(names[0]);
+
+ if (!path_env)
+ goto error;
+
+ for (i = 0; i < n_names; i++)
+ {
+ char *name = names[i];
+ char *start = path_env;
+ char *end = strchrnul(start, ':');
+ while (*start)
+ {
+ if (end > start)
+ {
+ struct stat st;
+ int res;
+ int len = (int)(end - start);
+ if (*(end-1) == '/')
+ len = snprintf(buf, PATH_MAX, "%.*s%s",
+ len,
+ start,
+ name);
+ else
+ len = snprintf(buf, PATH_MAX, "%.*s/%s",
+ len,
+ start,
+ name);
+ res = stat(buf, &st);
+ if (res == 0 && S_ISREG(st.st_mode) && (S_IXUSR & st.st_mode))
+ return;
+ }
+ if (!*end)
+ break;
+ start = end + 1;
+ end = strchrnul(start, ':');
+ }
+ }
+
+error:
+ snprintf(buf, sizeof(buf), PACKAGE_BIN_DIR "/efreetd");
+}
+
static void
_ipc_launch(void)
{
@@ -146,7 +193,7 @@ _ipc_launch(void)
if (run_in_tree)
bs_binary_get(buf, sizeof(buf), "efreet", "efreetd");
else
- snprintf(buf, sizeof(buf), PACKAGE_BIN_DIR "/efreetd");
+ _find_binary(buf);
ecore_exe_run(buf, NULL);
num = 0;
while ((!ipc) && (num < tries))
@@ -155,7 +202,7 @@ _ipc_launch(void)
usleep(try_gap);
ipc = ecore_ipc_server_connect(ECORE_IPC_LOCAL_USER, "efreetd", 0, NULL);
}
- if (!ipc) ERR("Timeout in trying to start and then connect to efreetd");
+ if (!ipc) ERR("Timeout in trying to start '%s' and then connect to efreetd", buf);
}
static Eina_Bool

View File

@ -32,11 +32,18 @@ apps:
command: usr/bin/tysend command: usr/bin/tysend
elementaryConfig: elementaryConfig:
command: usr/bin/elementary_config command: usr/bin/elementary_config
efreetd:
command: usr/bin/efreetd
parts: parts:
efl: efl:
plugin: meson plugin: meson
source-type: tar source-type: tar
source: https://download.enlightenment.org/rel/libs/efl/efl-1.24.1.tar.xz # source: https://download.enlightenment.org/rel/libs/efl/efl-1.24.1.tar.xz
source: https://downloads.terminolo.gy/efl-1.24.1.tar.xz
override-pull: |
snapcraftctl pull
cd "${SNAPCRAFT_PART_SRC}"
patch -p1 < "${SNAPCRAFT_PROJECT_DIR}"/snap/local/efl-efreetd-search.patch
meson-parameters: meson-parameters:
- --prefix=/usr - --prefix=/usr
- --libdir=/usr/lib - --libdir=/usr/lib
@ -63,7 +70,6 @@ parts:
- gcc - gcc
- pkg-config - pkg-config
- libdbus-1-dev - libdbus-1-dev
- libssl-dev
- libfontconfig1-dev - libfontconfig1-dev
- libfreetype6-dev - libfreetype6-dev
- libfribidi-dev - libfribidi-dev
@ -71,11 +77,17 @@ parts:
- libgstreamer1.0-dev - libgstreamer1.0-dev
- libgstreamer-plugins-base1.0-dev - libgstreamer-plugins-base1.0-dev
- libharfbuzz-dev - libharfbuzz-dev
- libibus-1.0-dev
- libjpeg-turbo8-dev - libjpeg-turbo8-dev
- libluajit-5.1-dev
- libopenjp2-7-dev
- libpng-dev - libpng-dev
- libpulse-dev - libpulse-dev
- librsvg2-dev - librsvg2-dev
- libscim-dev
- libsndfile1-dev - libsndfile1-dev
- libssl-dev
- libsystemd-dev
- libx11-dev - libx11-dev
- libxkbcommon-dev - libxkbcommon-dev
- libxkbcommon-x11-dev - libxkbcommon-x11-dev
@ -86,11 +98,6 @@ parts:
- libxrandr-dev - libxrandr-dev
- libxss-dev - libxss-dev
- libxtst-dev - libxtst-dev
- libsystemd-dev
- libluajit-5.1-dev
- libibus-1.0-dev
- libscim-dev
- libopenjp2-7-dev
stage-packages: stage-packages:
- libcairo2 - libcairo2
- libcroco3 - libcroco3
@ -110,7 +117,9 @@ parts:
- libibus-1.0-5 - libibus-1.0-5
- libicu60 - libicu60
- libjpeg-turbo8 - libjpeg-turbo8
- libltdl7
- libluajit-5.1-2 - libluajit-5.1-2
- libopenjp2-7
- liborc-0.4-0 - liborc-0.4-0
- libpango-1.0-0 - libpango-1.0-0
- libpangocairo-1.0-0 - libpangocairo-1.0-0
@ -118,6 +127,7 @@ parts:
- libpixman-1-0 - libpixman-1-0
- libpng16-16 - libpng16-16
- librsvg2-2 - librsvg2-2
- libscim8v5
- libthai0 - libthai0
- libwayland-egl1 - libwayland-egl1
- libx11-6 - libx11-6
@ -140,7 +150,6 @@ parts:
- libxrender1 - libxrender1
- libxss1 - libxss1
- libxtst6 - libxtst6
- libopenjp2-7
terminology: terminology:
plugin: meson plugin: meson
after: [ efl ] after: [ efl ]