Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package efl for openSUSE:Factory checked in 
at 2026-08-01 18:28:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/efl (Old)
 and      /work/SRC/openSUSE:Factory/.efl.new.16738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "efl"

Sat Aug  1 18:28:51 2026 rev:59 rq:1368538 version:unknown

Changes:
--------
--- /work/SRC/openSUSE:Factory/efl/efl.changes  2025-11-19 14:53:42.799576477 
+0100
+++ /work/SRC/openSUSE:Factory/.efl.new.16738/efl.changes       2026-08-01 
18:29:49.712790243 +0200
@@ -1,0 +2,6 @@
+Mon Jun 29 09:50:47 UTC 2026 - Bernhard Wiedemann <[email protected]>
+
+- Add reproducible.patch for deterministic .edj file creation
+  (boo#1052415)
+
+-------------------------------------------------------------------

New:
----
  reproducible.patch

----------(New B)----------
  New:
- Add reproducible.patch for deterministic .edj file creation
  (boo#1052415)
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ efl.spec ++++++
--- /var/tmp/diff_new_pack.GrDHHE/_old  2026-08-01 18:29:50.856829184 +0200
+++ /var/tmp/diff_new_pack.GrDHHE/_new  2026-08-01 18:29:50.856829184 +0200
@@ -65,6 +65,8 @@
 Patch3:         efl_scim.patch
 # PATCH-FIX-UPSTREAM
 Patch4:         efl-1.26.3-header.patch
+# PATCH-FIX-UPSTREAM
+Patch5:         
https://git.enlightenment.org/enlightenment/efl/pulls/133.patch#/reproducible.patch
 BuildRequires:  ImageMagick
 BuildRequires:  cmake
 BuildRequires:  gcc-c++

++++++ reproducible.patch ++++++
>From 3edede0e22b73076cde1f432ae761f63d9d3827a Mon Sep 17 00:00:00 2001
From: "Bernhard M. Wiedemann" <[email protected]>
Date: Sun, 19 Jul 2026 06:38:08 +0200
Subject: [PATCH] Make edje_cc script compilation order deterministic

Threaded script compilation completes out of order, so compiled
embryo scripts are written into the output file in the order the
embryo_cc processes happen to finish, making the .edj output
non-deterministic.

Serializing to 1 in-flight command fixes this at a small build-time
cost. Set the EDJE_CC_PENDING_COMMANDS_MAX environment variable to a
higher value (the previous hard-coded limit was 8) if you don't care
about reproducibility and want to wait a few seconds less. Values
below 1 are rejected with a warning, because with a limit of 0 every
script would stay in the pending queue forever and never be compiled.

See https://reproducible-builds.org/ for why this is good.

This patch was done while working on reproducible builds for openSUSE.

Fixes #41
---
 src/bin/edje/edje_cc_out.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c
index 08fbf2d517..f55a47f126 100644
--- a/src/bin/edje/edje_cc_out.c
+++ b/src/bin/edje/edje_cc_out.c
@@ -2245,7 +2245,9 @@ typedef struct
    Script_Write *sc;
 } Pending_Script_Write;
 
-#define PENDING_COMMANDS_MAX 8
+/* 1 by default so compiled scripts get written in deterministic order,
+ * for reproducible builds; raise via EDJE_CC_PENDING_COMMANDS_MAX */
+static int pending_commands_max = 1;
 
 static int pending_write_commands = 0;
 static Eina_List *pending_script_writes = NULL;
@@ -2274,7 +2276,7 @@ data_scripts_exe_del_cb(void *data EINA_UNUSED, int 
evtype EINA_UNUSED, void *ev
    if (!ev->exe) return ECORE_CALLBACK_RENEW;
    if (ecore_exe_data_get(ev->exe) != sc) return ECORE_CALLBACK_RENEW;
    pending_write_commands--;
-   if (pending_write_commands < PENDING_COMMANDS_MAX)
+   if (pending_write_commands < pending_commands_max)
      {
         if (pending_script_writes)
           {
@@ -2308,7 +2310,7 @@ data_scripts_exe_del_cb(void *data EINA_UNUSED, int 
evtype EINA_UNUSED, void *ev
 static void
 data_write_script_queue(Script_Write *sc, const char *exeline)
 {
-   if (pending_write_commands >= PENDING_COMMANDS_MAX)
+   if (pending_write_commands >= pending_commands_max)
      {
         Pending_Script_Write *pend = malloc(sizeof(Pending_Script_Write));
         if (pend)
@@ -2347,6 +2349,16 @@ data_write_scripts(Eet_File *ef)
    char embryo_cc_path[PATH_MAX] = "";
    char inc_path[PATH_MAX] = "";
    int i;
+   char *envmax;
+
+   if ((envmax = getenv("EDJE_CC_PENDING_COMMANDS_MAX")))
+     {
+        int newmax = atoi(envmax);
+
+        if (newmax > 0) pending_commands_max = newmax;
+        else
+          WRN("Ignoring invalid EDJE_CC_PENDING_COMMANDS_MAX \"%s\"", envmax);
+     }
 
 #ifdef _WIN32
 # define BIN_EXT ".exe"
-- 
2.51.0

Reply via email to