billiob pushed a commit to branch terminology-1.7.

http://git.enlightenment.org/apps/terminology.git/commit/?id=4745752fab5081f908e4007300a7c7073d7a2875

commit 4745752fab5081f908e4007300a7c7073d7a2875
Author: Boris Faure <[email protected]>
Date:   Mon May 18 22:16:45 2020 +0200

    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)
---
 snap/local/efl-efreetd-search.patch | 76 +++++++++++++++++++++++++++++++++++++
 snap/snapcraft.yaml                 | 25 ++++++++----
 2 files changed, 93 insertions(+), 8 deletions(-)

diff --git a/snap/local/efl-efreetd-search.patch 
b/snap/local/efl-efreetd-search.patch
new file mode 100644
index 0000000..e8b30fa
--- /dev/null
+++ b/snap/local/efl-efreetd-search.patch
@@ -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
diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index 411bd4c..880fca6 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -32,11 +32,18 @@ apps:
     command: usr/bin/tysend
   elementaryConfig:
     command: usr/bin/elementary_config
+  efreetd:
+     command: usr/bin/efreetd
 parts:
   efl:
     plugin: meson
     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:
       - --prefix=/usr
       - --libdir=/usr/lib
@@ -63,7 +70,6 @@ parts:
       - gcc
       - pkg-config
       - libdbus-1-dev
-      - libssl-dev
       - libfontconfig1-dev
       - libfreetype6-dev
       - libfribidi-dev
@@ -71,11 +77,17 @@ parts:
       - libgstreamer1.0-dev
       - libgstreamer-plugins-base1.0-dev
       - libharfbuzz-dev
+      - libibus-1.0-dev
       - libjpeg-turbo8-dev
+      - libluajit-5.1-dev
+      - libopenjp2-7-dev
       - libpng-dev
       - libpulse-dev
       - librsvg2-dev
+      - libscim-dev
       - libsndfile1-dev
+      - libssl-dev
+      - libsystemd-dev
       - libx11-dev
       - libxkbcommon-dev
       - libxkbcommon-x11-dev
@@ -86,11 +98,6 @@ parts:
       - libxrandr-dev
       - libxss-dev
       - libxtst-dev
-      - libsystemd-dev
-      - libluajit-5.1-dev
-      - libibus-1.0-dev
-      - libscim-dev
-      - libopenjp2-7-dev
     stage-packages:
       - libcairo2
       - libcroco3
@@ -110,7 +117,9 @@ parts:
       - libibus-1.0-5
       - libicu60
       - libjpeg-turbo8
+      - libltdl7
       - libluajit-5.1-2
+      - libopenjp2-7
       - liborc-0.4-0
       - libpango-1.0-0
       - libpangocairo-1.0-0
@@ -118,6 +127,7 @@ parts:
       - libpixman-1-0
       - libpng16-16
       - librsvg2-2
+      - libscim8v5
       - libthai0
       - libwayland-egl1
       - libx11-6
@@ -140,7 +150,6 @@ parts:
       - libxrender1
       - libxss1
       - libxtst6
-      - libopenjp2-7
   terminology:
     plugin: meson
     after: [ efl ]

-- 


Reply via email to