efl: update to 1.24.3

This commit is contained in:
q66 2020-06-17 19:30:10 +02:00
parent 4879f1fd22
commit e83b7f3fb7
8 changed files with 3 additions and 385 deletions

View file

@ -1,39 +0,0 @@
From e917e3111b2d2b27db21b47c9586d231c5785be5 Mon Sep 17 00:00:00 2001
From: "Carsten Haitzler (Rasterman)" <raster@rasterman.com>
Date: Tue, 26 May 2020 12:16:09 +0100
Subject: [PATCH 1/7] evas - csd and wl csd - fix alpha zeroing to avoid
framespace junk
i noticed some junk in framespace... this happesn when solid objects
are outside the normal window content area and their solid areas are
not clipped to this inner frame area thus those areas are not "zeroed
out" next render.
@fix
---
src/lib/evas/canvas/evas_render.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git src/lib/evas/canvas/evas_render.c src/lib/evas/canvas/evas_render.c
index 1d47ba06af..567461d1dd 100644
--- src/lib/evas/canvas/evas_render.c
+++ src/lib/evas/canvas/evas_render.c
@@ -2722,6 +2722,15 @@ _evas_render_cutout_add(Evas_Public_Data *evas, void *context,
obj->cur->cache.clip.w, obj->cur->cache.clip.h);
}
else return;
+ if (!_is_obj_in_framespace(obj, evas))
+ {
+ int fw, fh;
+
+ fw = evas->viewport.w - evas->framespace.w;
+ fh = evas->viewport.h - evas->framespace.h;
+ RECTS_CLIP_TO_RECT(cox, coy, cow, coh,
+ 0, 0, fw, fh);
+ }
if (cutout_margin)
{
cox += cutout_margin->l;
--
2.27.0

View file

@ -1,104 +0,0 @@
From af2fd2ead002b10e9b1f56b41f4a9e24b56bfca4 Mon Sep 17 00:00:00 2001
From: "Carsten Haitzler (Rasterman)" <raster@rasterman.com>
Date: Thu, 4 Jun 2020 20:25:46 +0100
Subject: [PATCH 2/7] evas - genetic update regions smart merge - merge v
adjacent regions
regions sometimes produce box sets like:
// +---+
// | |
// +---+ +-------+
// | | | |
// +---+ +-------+---------+
// | |
// | |
// +-----------------+
so the upper-left 2 boxes can be merged into 1 and they have the same
x coords and are flush-aligned one above the other. that is what
this does - find these and merge them to have fewer rects
@fix
---
.../engines/software_generic/evas_engine.c | 54 ++++++++++++++++---
1 file changed, 48 insertions(+), 6 deletions(-)
diff --git src/modules/evas/engines/software_generic/evas_engine.c src/modules/evas/engines/software_generic/evas_engine.c
index 0309d620e9..19b60f6621 100644
--- src/modules/evas/engines/software_generic/evas_engine.c
+++ src/modules/evas/engines/software_generic/evas_engine.c
@@ -3958,7 +3958,6 @@ _smart_merge(Tilebuf *tb, Tilebuf_Rect *rects)
}
j++;
}
- n2 = n;
free(box);
box = box2;
if (!did_merge) break;
@@ -3976,15 +3975,58 @@ _smart_merge(Tilebuf *tb, Tilebuf_Rect *rects)
box = region_rects(region);
n = region_rects_num(region);
merged = calloc(1, n * sizeof(Tilebuf_Rect));
+ j = 0;
+#if 1
+ // regions sometimes produce box sets like:
+ // +---+
+ // | |
+ // +---+ +-------+
+ // | | | |
+ // +---+ +-------+---------+
+ // | |
+ // | |
+ // +-----------------+
+ // so the upper-left 2 boxes can be merged into 1 and they have the same
+ // x coords and are flush-aligned one above the other. that is what
+ // this does - find these and merge them to have fewer rects
for (i = 0; i < n; i++)
{
- merged[i].x = box[i].x1;
- merged[i].y = box[i].y1;
- merged[i].w = box[i].x2 - box[i].x1;
- merged[i].h = box[i].y2 - box[i].y1;
+ // skip empty boxes
+ if (box[i].x1 == box[i].x2) continue;
+ // walk all following boxes after this and see if they can be merged
+ // into box i
+ for (k = i + 1; k < n; k++)
+ {
+ // skip empty boxes after i
+ if (box[k].x1 == box[k].x2) continue;
+ // match x coords
+ if ((box[i].x1 == box[k].x1) && // if aligned vertically
+ (box[i].x2 == box[k].x2)) // exactly above/below
+ {
+ // right below, or right above
+ if (box[i].y2 == box[k].y1) // this box flush below
+ {
+ box[i].y2 = box[k].y2; // merge below i
+ box[k].x2 = box[k].x1; // empty this box - merged
+ }
+ else if (box[i].y1 == box[k].y2) // this box flush above
+ {
+ box[i].y2 = box[k].y2; // merge above i
+ box[k].x2 = box[k].x1; // empty this box - merged
+ }
+ }
+ }
+ // i may have expanded but will not be empty. future boxes after
+ // this may be empty though but handled at top of loop
+ merged[j].x = box[i].x1;
+ merged[j].y = box[i].y1;
+ merged[j].w = box[i].x2 - box[i].x1;
+ merged[j].h = box[i].y2 - box[i].y1;
mergelist = (Tilebuf_Rect *)eina_inlist_append
- (EINA_INLIST_GET(mergelist), EINA_INLIST_GET(&(merged[i])));
+ (EINA_INLIST_GET(mergelist), EINA_INLIST_GET(&(merged[j])));
+ j++;
}
+#endif
region_free(region);
rects = mergelist;
--
2.27.0

View file

@ -1,94 +0,0 @@
From 7ef58c47d3184c04bd9b0d477b8c7bd342384189 Mon Sep 17 00:00:00 2001
From: "Carsten Haitzler (Rasterman)" <raster@rasterman.com>
Date: Tue, 9 Jun 2020 10:13:04 +0100
Subject: [PATCH 3/7] efreet - handle runtime relocation right with default
XDG_DATA_DIRS
XDG_DATA_DIRS was only set up to a default including where efl was
installed prefix-wise as the compiled-=in prefix, not runtime
determined prefix. it shouldn't actually affect most people except
those making use of this.
@fix
---
src/lib/efreet/efreet_base.c | 33 +++++++++++++++++++++++++++++----
1 file changed, 29 insertions(+), 4 deletions(-)
diff --git src/lib/efreet/efreet_base.c src/lib/efreet/efreet_base.c
index 6497e8d955..736a3a05fc 100644
--- src/lib/efreet/efreet_base.c
+++ src/lib/efreet/efreet_base.c
@@ -51,6 +51,8 @@ static const char *xdg_pictures_dir = NULL;
static const char *xdg_videos_dir = NULL;
static const char *hostname = NULL;
+static Eina_Prefix *pfx= NULL;
+
static void efreet_dirs_init(void);
static const char *efreet_dir_get(const char *key, const char *fallback);
static Eina_List *efreet_dirs_get(const char *key,
@@ -72,6 +74,9 @@ efreet_base_init(void)
EINA_LOG_ERR("Efreet: Could not create a log domain for efreet_base.\n");
return 0;
}
+ if (!pfx) pfx = eina_prefix_new
+ (NULL, efreet_init, "EFREET", "efreet", "checkme",
+ PACKAGE_BIN_DIR, PACKAGE_LIB_DIR, PACKAGE_DATA_DIR, PACKAGE_DATA_DIR);
efreet_dirs_init();
return 1;
}
@@ -105,6 +110,11 @@ efreet_base_shutdown(void)
IF_RELEASE(hostname);
+ if (pfx)
+ {
+ eina_prefix_free(pfx);
+ pfx = NULL;
+ }
eina_log_domain_unregister(_efreet_base_log_dom);
_efreet_base_log_dom = -1;
}
@@ -280,6 +290,7 @@ efreet_dirs_reset(void)
static void
efreet_dirs_init(void)
{
+ char *data_dir = DATA_DIR;
char buf[PATH_MAX];
/* efreet_home_dir */
@@ -294,13 +305,27 @@ efreet_dirs_init(void)
xdg_cache_home = efreet_dir_get("XDG_CACHE_HOME", "/.cache");
/* xdg_data_dirs */
+ if (pfx)
+ {
+ const char *dir = eina_prefix_get(pfx);
+ if (dir)
+ {
+ size_t len = strlen(dir);
+
+ data_dir = alloca(len + 1 + 5 /*"share" */ + 1);
#ifdef _WIN32
- snprintf(buf, sizeof(buf), "%s\\Efl;" DATA_DIR ";", getenv("APPDATA"));
- xdg_data_dirs = efreet_dirs_get("XDG_DATA_DIRS", buf);
+ snprintf(data_dir, len + 1 + 5 + 1, "%s\\share", dir);
#else
- xdg_data_dirs = efreet_dirs_get("XDG_DATA_DIRS",
- DATA_DIR ":/usr/share:/usr/local/share");
+ snprintf(data_dir, len + 1 + 5 + 1, "%s/share", dir);
#endif
+ }
+ }
+#ifdef _WIN32
+ snprintf(buf, sizeof(buf), "%s\\Efl;%s;", data_dir, getenv("APPDATA"));
+#else
+ snprintf(buf, sizeof(buf), "%s:/usr/share:/usr/local/share", data_dir);
+#endif
+ xdg_data_dirs = efreet_dirs_get("XDG_DATA_DIRS", buf);
/* xdg_config_dirs */
#ifdef _WIN32
xdg_config_dirs = efreet_dirs_get("XDG_CONFIG_DIRS", getenv("APPDATA"));
--
2.27.0

View file

@ -1,43 +0,0 @@
From b03baef4b52483ac6ca7d9371224273b60455432 Mon Sep 17 00:00:00 2001
From: "Carsten Haitzler (Rasterman)" <raster@rasterman.com>
Date: Wed, 27 May 2020 14:10:33 +0100
Subject: [PATCH 4/7] build - systemd service files - install fix if systemd
not found
so if systemd is not found - installe in PREFIX/lib/systemd/user which
allows build to work without disabling systemd.
---
systemd-services/meson.build | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git systemd-services/meson.build systemd-services/meson.build
index 18be63c5ef..a17790e857 100644
--- systemd-services/meson.build
+++ systemd-services/meson.build
@@ -1,13 +1,16 @@
if get_option('systemd') == true
- dep = dependency('systemd')
+ sys_dep = dependency('systemd', required: false)
+ if sys_dep.found()
+ sys_dir = sys_dep.get_pkgconfig_variable('systemduserunitdir')
+ else
+ sys_dir = join_paths(dir_lib, 'systemd', 'user')
+ endif
ethumb_service_config = configuration_data()
-
ethumb_service_config.set('prefix', dir_prefix)
- configure_file(
- input: 'ethumb.service.in',
- output: 'ethumb.service',
- configuration: ethumb_service_config,
- install_dir: dep.get_pkgconfig_variable('systemduserunitdir'))
+ configure_file(input : 'ethumb.service.in',
+ output : 'ethumb.service',
+ configuration : ethumb_service_config,
+ install_dir : sys_dir)
endif
--
2.27.0

View file

@ -1,30 +0,0 @@
From 8f59fb469fc47b2ee64453407b7d4ce4d8f29f63 Mon Sep 17 00:00:00 2001
From: Daniel Kolesa <d.kolesa@samsung.com>
Date: Thu, 11 Jun 2020 02:18:50 +0200
Subject: [PATCH 5/7] eina: only enable EINA_LOG_BACKTRACE when backtrace API
is present
This prevents build breakage on platforms that either don't have
backtrace() or don't have the appropriate library for it installed.
---
src/lib/eina/eina_log.c | 3 +++
1 file changed, 3 insertions(+)
diff --git src/lib/eina/eina_log.c src/lib/eina/eina_log.c
index 7c66ee0b53..531faba093 100644
--- src/lib/eina/eina_log.c
+++ src/lib/eina/eina_log.c
@@ -42,7 +42,10 @@
#endif
#include "eina_debug_private.h"
+
+#ifdef HAVE_BACKTRACE
#define EINA_LOG_BACKTRACE
+#endif
#include "eina_config.h"
#include "eina_private.h"
--
2.27.0

View file

@ -1,30 +0,0 @@
From f5d371d6ecdbb84acf0de34cd80ddaee2493ca72 Mon Sep 17 00:00:00 2001
From: Daniel Kolesa <d.kolesa@samsung.com>
Date: Thu, 11 Jun 2020 02:32:07 +0200
Subject: [PATCH 6/7] ecore: use standard LC_ALL instead of __LC_ALL in systemd
module
The former is a POSIX name, the latter is non-standard. I don't
know why the latter was used, considering glibc literally has
just #define LC_ALL __LC_ALL, but change it and unbreak build
on musl and other systems.
---
src/modules/ecore/system/systemd/ecore_system_systemd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git src/modules/ecore/system/systemd/ecore_system_systemd.c src/modules/ecore/system/systemd/ecore_system_systemd.c
index 78e3185287..ab19ff36cd 100644
--- src/modules/ecore/system/systemd/ecore_system_systemd.c
+++ src/modules/ecore/system/systemd/ecore_system_systemd.c
@@ -163,7 +163,7 @@ static void _locale_get(void *data EINA_UNUSED, const Eldbus_Message *msg,
setenv(type, value, 1);
}
- setlocale(__LC_ALL, "");
+ setlocale(LC_ALL, "");
end:
ecore_event_add(ECORE_EVENT_LOCALE_CHANGED, NULL, NULL, NULL);
--
2.27.0

View file

@ -1,42 +0,0 @@
From 2620295542d1b3867875056c8d0ca9fbcd0546a0 Mon Sep 17 00:00:00 2001
From: Daniel Kolesa <d.kolesa@samsung.com>
Date: Thu, 11 Jun 2020 15:14:03 +0200
Subject: [PATCH 7/7] modules: only build gl_drm evas engine when using es-egl
This module does not work with desktop opengl contexts,
and needs EGL to work.
---
src/modules/evas/engines/meson.build | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git src/modules/evas/engines/meson.build src/modules/evas/engines/meson.build
index 2504a761a9..7bb4211cf2 100644
--- src/modules/evas/engines/meson.build
+++ src/modules/evas/engines/meson.build
@@ -16,10 +16,7 @@ endif
have_gl_engine = false
if get_option('opengl') != 'none'
- engines += [
- ['gl_x11', ['x11']],
- ['gl_drm', ['drm']]
- ]
+ engines += [['gl_x11', ['x11']]]
have_gl_engine = true
endif
@@ -29,7 +26,10 @@ if get_option('opengl') == 'full'
endif
if get_option('opengl') == 'es-egl'
- engines += [['wayland_egl', ['wl']]]
+ engines += [
+ ['wayland_egl', ['wl']],
+ ['gl_drm', ['drm']]
+ ]
have_gl_engine = true
endif
--
2.27.0

View file

@ -1,7 +1,7 @@
# Template file for 'efl'
pkgname=efl
version=1.24.2
revision=3
version=1.24.3
revision=1
build_style=meson
configure_args="
-Dembedded-lz4=false
@ -52,7 +52,7 @@ license="LGPL-2.1-only"
homepage="https://enlightenment.org"
changelog="https://git.enlightenment.org/core/efl.git/plain/NEWS"
distfiles="https://download.enlightenment.org/rel/libs/efl/efl-${version}.tar.xz"
checksum=e1f91dfe8b8171f182f474eb9cfb13d9176c21f1879983fb896e92f7e2ce7a70
checksum=de95c6e673c170c1e21382918b122417c091c643e7dcaced89aa785529625c2a
if [ "$XBPS_CHECK_PKGS" ]; then
configure_args+=" -Dbuild-tests=true"