From a1b1ba0e5efaa0651363c7b765e76c3aa445b2a5 Mon Sep 17 00:00:00 2001 From: q66 Date: Sun, 1 Mar 2020 21:43:36 +0100 Subject: [PATCH] efl: update to 1.23.3 Also import patches in the branch so far. --- ...eg-loading-which-freed-the-wrong-ptr.patch | 64 +++++++++++++++++ ...or-entire-inheritance-trees-when-com.patch | 56 +++++++++++++++ ...se-bug-where-composites-was-treated-.patch | 42 +++++++++++ ...llbacks-to-use-capital-X-in-lib-name.patch | 36 ++++++++++ srcpkgs/efl/patches/eina-bigendian.patch | 70 ------------------- srcpkgs/efl/template | 13 ++-- 6 files changed, 205 insertions(+), 76 deletions(-) create mode 100644 srcpkgs/efl/patches/0001-fix-jpeg-loading-which-freed-the-wrong-ptr.patch create mode 100644 srcpkgs/efl/patches/0002-eolian-account-for-entire-inheritance-trees-when-com.patch create mode 100644 srcpkgs/efl/patches/0003-eolian-fix-a-parse-bug-where-composites-was-treated-.patch create mode 100644 srcpkgs/efl/patches/0004-ecore-x-fix-fallbacks-to-use-capital-X-in-lib-name.patch delete mode 100644 srcpkgs/efl/patches/eina-bigendian.patch diff --git a/srcpkgs/efl/patches/0001-fix-jpeg-loading-which-freed-the-wrong-ptr.patch b/srcpkgs/efl/patches/0001-fix-jpeg-loading-which-freed-the-wrong-ptr.patch new file mode 100644 index 00000000000..ebe1ea61732 --- /dev/null +++ b/srcpkgs/efl/patches/0001-fix-jpeg-loading-which-freed-the-wrong-ptr.patch @@ -0,0 +1,64 @@ +From c6465dae30295d1b4adaaef83a62674dcc25c1d6 Mon Sep 17 00:00:00 2001 +From: "Carsten Haitzler (Rasterman)" +Date: Mon, 2 Dec 2019 19:53:31 +0000 +Subject: [PATCH 1/4] fix jpeg loading which freed the wrong ptr + +fixes T8497 +@fix +--- + src/lib/emile/emile_image.c | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git src/lib/emile/emile_image.c src/lib/emile/emile_image.c +index 4f6e11905e..21317cbe15 100644 +--- src/lib/emile/emile_image.c ++++ src/lib/emile/emile_image.c +@@ -1750,8 +1750,8 @@ _emile_jpeg_data(Emile_Image *image, + uint8_t *ptr, *line[16], *data; + volatile uint32_t *ptr2 = NULL; + uint32_t *ptr_rotate = NULL; +- uint16_t *ptrag = NULL, *ptrag_rotate = NULL; +- uint8_t *ptrg = NULL, *ptrg_rotate = NULL; ++ uint16_t *ptrag = NULL, *ptrag2 = NULL, *ptrag_rotate = NULL; ++ uint8_t *ptrg = NULL, *ptrg2 = NULL, *ptrg_rotate = NULL; + unsigned int y, l, i, scans; + volatile int region = 0; + /* rotation setting */ +@@ -2113,6 +2113,8 @@ _emile_jpeg_data(Emile_Image *image, + /* We finally handle RGB with 1 component */ + else if (cinfo.output_components == 1) + { ++ ptrg2 = ptrg; ++ ptrag2 = ptrag; + for (i = 0; (int)i < cinfo.rec_outbuf_height; i++) + line[i] = data + (i * w); + for (l = 0; l < h; l += cinfo.rec_outbuf_height) +@@ -2132,10 +2134,10 @@ _emile_jpeg_data(Emile_Image *image, + switch (prop->cspace) + { + case EMILE_COLORSPACE_GRY8: +- _jpeg_gry8_convert_copy(&ptrg, &ptr, w); ++ _jpeg_gry8_convert_copy(&ptrg2, &ptr, w); + break; + case EMILE_COLORSPACE_AGRY88: +- _jpeg_agry88_convert_copy(&ptrag, &ptr, w); ++ _jpeg_agry88_convert_copy(&ptrag2, &ptr, w); + break; + default: + _jpeg_argb8888_convert_copy(&ptr2, &ptr, w); +@@ -2168,10 +2170,10 @@ _emile_jpeg_data(Emile_Image *image, + switch (prop->cspace) + { + case EMILE_COLORSPACE_GRY8: +- _jpeg_gry8_convert_copy(&ptrg, &ptr, opts_region.w); ++ _jpeg_gry8_convert_copy(&ptrg2, &ptr, opts_region.w); + break; + case EMILE_COLORSPACE_AGRY88: +- _jpeg_agry88_convert_copy(&ptrag, &ptr, opts_region.w); ++ _jpeg_agry88_convert_copy(&ptrag2, &ptr, opts_region.w); + break; + default: + _jpeg_argb8888_convert_copy(&ptr2, &ptr, opts_region.w); +-- +2.25.1 + diff --git a/srcpkgs/efl/patches/0002-eolian-account-for-entire-inheritance-trees-when-com.patch b/srcpkgs/efl/patches/0002-eolian-account-for-entire-inheritance-trees-when-com.patch new file mode 100644 index 00000000000..f82e46b2e4f --- /dev/null +++ b/srcpkgs/efl/patches/0002-eolian-account-for-entire-inheritance-trees-when-com.patch @@ -0,0 +1,56 @@ +From 387947f6b151f5dd65c6c38d99e762e612281269 Mon Sep 17 00:00:00 2001 +From: Daniel Kolesa +Date: Wed, 4 Dec 2019 15:30:17 +0100 +Subject: [PATCH 2/4] eolian: account for entire inheritance trees when + compositing + +When a class composites an interface, we need to ignore all of +its extends (and extends of those) as well as the main interface +when doing API checks, as composites essentially provides a +guarantee that this *will* be implemented at runtime, which +further extends to the whole inheritance tree of that interface. + +Fixes T8491. +--- + src/lib/eolian/database_validate.c | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) + +diff --git src/lib/eolian/database_validate.c src/lib/eolian/database_validate.c +index 4e51718ecd..b1af2185ef 100644 +--- src/lib/eolian/database_validate.c ++++ src/lib/eolian/database_validate.c +@@ -1247,6 +1247,17 @@ _add_composite(Eolian_Class *cl, const Eolian_Class *icl, Eina_Hash *ch) + } + } + ++static void ++_add_implicit_composite(Eolian_Class *icl, Eina_Hash *ch, Eina_Bool try_tree) ++{ ++ eina_hash_set(ch, &icl, icl); ++ if (!try_tree) ++ return; ++ Eina_List *l; ++ EINA_LIST_FOREACH(icl->extends, l, icl) ++ _add_implicit_composite(icl, ch, try_tree); ++} ++ + static Eina_Bool + _db_fill_inherits(Validate_State *vals, Eolian_Class *cl, Eina_Hash *fhash, + Eina_Hash *errh) +@@ -1325,7 +1336,12 @@ _db_fill_inherits(Validate_State *vals, Eolian_Class *cl, Eina_Hash *fhash, + cl->composite = eina_list_append(cl->composite, out_cl); + succ = _db_fill_inherits(vals, out_cl, fhash, errh); + ++ncomp; +- eina_hash_set(ch, &out_cl, out_cl); ++ /* for each thing that is composited, we need to add the entire ++ * inheritance tree of it into composite hash to check, so e.g. ++ * class A -> composites B -> extends C does not complain about ++ * A not implementing C ++ */ ++ _add_implicit_composite(out_cl, ch, out_cl->type == EOLIAN_CLASS_INTERFACE); + } + + /* parent can be abstract, those are not checked for unimplemented, +-- +2.25.1 + diff --git a/srcpkgs/efl/patches/0003-eolian-fix-a-parse-bug-where-composites-was-treated-.patch b/srcpkgs/efl/patches/0003-eolian-fix-a-parse-bug-where-composites-was-treated-.patch new file mode 100644 index 00000000000..38ff3fca3c1 --- /dev/null +++ b/srcpkgs/efl/patches/0003-eolian-fix-a-parse-bug-where-composites-was-treated-.patch @@ -0,0 +1,42 @@ +From 266f0a57169efe672db44921665a05e73cc0eb58 Mon Sep 17 00:00:00 2001 +From: Daniel Kolesa +Date: Wed, 4 Dec 2019 16:04:19 +0100 +Subject: [PATCH 3/4] eolian: fix a parse bug where composites was treated as + implements + +In the specific case where you had "class A extends B composites C" +the correct composites branch was ignored and instead the implements +branch was used. This was entirely wrong/an oversight that did not +appear until now. Other combinations were handled correctly. +--- + src/lib/eolian/eo_parser.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git src/lib/eolian/eo_parser.c src/lib/eolian/eo_parser.c +index 706d6c1c37..6c45f19907 100644 +--- src/lib/eolian/eo_parser.c ++++ src/lib/eolian/eo_parser.c +@@ -2301,8 +2301,11 @@ tags_done: + { + /* regular class can have a parent, but just one */ + _inherit_dep(ls, ibuf, EINA_TRUE); ++ /* followed by composites */ ++ if (ls->t.kw == KW_composites) ++ goto noimp_comp; + /* if not followed by implements, we're done */ +- if ((ls->t.kw != KW_implements) && (ls->t.kw != KW_composites)) ++ if (ls->t.kw != KW_implements) + { + eo_lexer_dtor_pop(ls); + goto inherit_done; +@@ -2314,6 +2317,7 @@ tags_done: + while (test_next(ls, ',')); + } + ++noimp_comp: + if (ls->t.kw == KW_composites) + { + if (type == EOLIAN_CLASS_INTERFACE) +-- +2.25.1 + diff --git a/srcpkgs/efl/patches/0004-ecore-x-fix-fallbacks-to-use-capital-X-in-lib-name.patch b/srcpkgs/efl/patches/0004-ecore-x-fix-fallbacks-to-use-capital-X-in-lib-name.patch new file mode 100644 index 00000000000..f9a19f26fa9 --- /dev/null +++ b/srcpkgs/efl/patches/0004-ecore-x-fix-fallbacks-to-use-capital-X-in-lib-name.patch @@ -0,0 +1,36 @@ +From ad912c805123b84c939da6a76158fef563809101 Mon Sep 17 00:00:00 2001 +From: "Carsten Haitzler (Rasterman)" +Date: Tue, 24 Dec 2019 00:22:37 +0000 +Subject: [PATCH 4/4] ecore-x - fix fallbacks to use capital X in lib name + +thanks peter. fixes T8543 +@fix +--- + src/lib/ecore_x/meson.build | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/lib/ecore_x/meson.build src/lib/ecore_x/meson.build +index 0e16bd7385..262538bd95 100644 +--- src/lib/ecore_x/meson.build ++++ src/lib/ecore_x/meson.build +@@ -75,7 +75,7 @@ endif + + x11 = dependency('x11', required: false) + if x11.found() == false +- x11 = cc.find_library('x11', required: true) ++ x11 = cc.find_library('X11', required: true) + endif + + xcb = dependency('xcb', required: false) +@@ -85,7 +85,7 @@ endif + + x11_xcb = dependency('x11-xcb', required: false) + if x11_xcb.found() == false +- x11_xcb = cc.find_library('x11-xcb', required: true) ++ x11_xcb = cc.find_library('X11-xcb', required: true) + endif + + foreach ecore_x_check : ecore_x_checks +-- +2.25.1 + diff --git a/srcpkgs/efl/patches/eina-bigendian.patch b/srcpkgs/efl/patches/eina-bigendian.patch deleted file mode 100644 index 6ae3fa3cbbb..00000000000 --- a/srcpkgs/efl/patches/eina-bigendian.patch +++ /dev/null @@ -1,70 +0,0 @@ -From f3344941cd6cccb437a1bcd1f3ed6c2a35063f9f Mon Sep 17 00:00:00 2001 -From: Daniel Kolesa -Date: Sun, 20 Oct 2019 18:49:04 +0200 -Subject: [PATCH 1/1] eina: fix network byte order swap funcs on big endian - ---- - src/lib/eina/eina_inline_cpu.x | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/lib/eina/eina_inline_cpu.x b/src/lib/eina/eina_inline_cpu.x -index 035e5b188b..0dd293c45f 100644 ---- src/lib/eina/eina_inline_cpu.x -+++ src/lib/eina/eina_inline_cpu.x -@@ -83,7 +83,7 @@ eina_swap64(unsigned long long x) - static inline unsigned short - eina_htons(unsigned short host) - { --#ifdef EINA_HAVE_BIGENDIAN -+#ifdef EINA_HAVE_WORDS_BIGENDIAN - return host; - #else - return eina_swap16(host); -@@ -93,7 +93,7 @@ eina_htons(unsigned short host) - static inline unsigned int - eina_htonl(unsigned int host) - { --#ifdef EINA_HAVE_BIGENDIAN -+#ifdef EINA_HAVE_WORDS_BIGENDIAN - return host; - #else - return eina_swap32(host); -@@ -103,7 +103,7 @@ eina_htonl(unsigned int host) - static inline unsigned long long - eina_htonll(unsigned long long host) - { --#ifdef EINA_HAVE_BIGENDIAN -+#ifdef EINA_HAVE_WORDS_BIGENDIAN - return host; - #else - return eina_swap64(host); -@@ -113,7 +113,7 @@ eina_htonll(unsigned long long host) - static inline unsigned short - eina_ntohs(unsigned short net) - { --#ifdef EINA_HAVE_BIGENDIAN -+#ifdef EINA_HAVE_WORDS_BIGENDIAN - return net; - #else - return eina_swap16(net); -@@ -123,7 +123,7 @@ eina_ntohs(unsigned short net) - static inline unsigned int - eina_ntohl(unsigned int net) - { --#ifdef EINA_HAVE_BIGENDIAN -+#ifdef EINA_HAVE_WORDS_BIGENDIAN - return net; - #else - return eina_swap32(net); -@@ -133,7 +133,7 @@ eina_ntohl(unsigned int net) - static inline unsigned long long - eina_ntohll(unsigned long long net) - { --#ifdef EINA_HAVE_BIGENDIAN -+#ifdef EINA_HAVE_WORDS_BIGENDIAN - return net; - #else - return eina_swap64(net); --- -2.23.0 - diff --git a/srcpkgs/efl/template b/srcpkgs/efl/template index c5bd7b1c0b0..0d92842d392 100644 --- a/srcpkgs/efl/template +++ b/srcpkgs/efl/template @@ -1,7 +1,7 @@ # Template file for 'efl' pkgname=efl -version=1.23.1 -revision=2 +version=1.23.3 +revision=1 build_style=meson configure_args=" -Dsystemd=false @@ -51,7 +51,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=d62220cca16d434c18b36fe3acffa0f5c0e669da4931b133524183308f242f61 +checksum=53cea69eaabe443a099fb204b7353e968e7bb62b41fbb0da24451403c7a56901 if [ "$XBPS_CHECK_PKGS" ]; then configure_args+=" -Dbuild-tests=true" @@ -62,11 +62,12 @@ fi if [ "$CROSS_BUILD" ]; then hostmakedepends+=" gettext-devel efl-devel" - case "$XBPS_TARGET_MACHINE" in - mips*) CFLAGS="-Os";; - esac fi +case "$XBPS_TARGET_MACHINE" in + mips*) CFLAGS="-Os";; +esac + # sanitize options if [ -n "$build_option_wayland" -a -z "$build_option_drm" ]; then broken="wayland requires drm"