This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch netbsd_support
in repository efl.

View the commit online.

commit 4be3d705dad05addac15e61f1e0debe1ef732995
Author: moihack <[email protected]>
AuthorDate: Fri Jul 10 14:36:47 2026 +0200

    feature: Add initial NetBSD support
    
    Not strictly required to compile EFL and/or Enlightenment under NetBSD.
    Resolves some runtime errors in setup wizard and freet in NetBSD.
    
    Built with: meson build meson build -Dsystemd=false -Dv4l2=false -Deeze=false -Dinput=false
    Options based on OpenBSD EFL build instructions.
    
    Based on kikadf and Matthew Danielson
    patches for Enlightenment in pkgsrc-wip.
    https://github.com/NetBSD/pkgsrc-wip/tree/master/efl/patches
    @feature
---
 src/lib/ecore/Ecore.h             |  2 +-
 src/lib/ecore/Efl_Core.h          |  2 +-
 src/lib/ecore/ecore_exe_posix.c   |  4 ++--
 src/lib/ecore/efl_core_proc_env.c |  6 +++---
 src/lib/ecore/efl_exe.c           |  6 +++---
 src/lib/eet/eet_image.c           |  4 ++--
 src/lib/eina/eina_file_posix.c    | 12 +++++++++++-
 src/lib/elementary/Efl_Ui.h       |  2 +-
 8 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/src/lib/ecore/Ecore.h b/src/lib/ecore/Ecore.h
index e87ccc6093..291575f848 100644
--- a/src/lib/ecore/Ecore.h
+++ b/src/lib/ecore/Ecore.h
@@ -307,7 +307,7 @@
 # define WIN32_LEAN_AND_MEAN
 # include <winsock2.h>
 # undef WIN32_LEAN_AND_MEAN
-#elif defined (__FreeBSD__) || defined (__OpenBSD__)
+#elif defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__)
 # include <sys/select.h>
 # include <signal.h>
 #elif defined (__ANDROID__)
diff --git a/src/lib/ecore/Efl_Core.h b/src/lib/ecore/Efl_Core.h
index 7e80819b83..ebfafedda2 100644
--- a/src/lib/ecore/Efl_Core.h
+++ b/src/lib/ecore/Efl_Core.h
@@ -36,7 +36,7 @@
 # define WIN32_LEAN_AND_MEAN
 # include <winsock2.h>
 # undef WIN32_LEAN_AND_MEAN
-#elif defined (__FreeBSD__) || defined (__OpenBSD__)
+#elif defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__)
 # include <sys/select.h>
 # include <signal.h>
 #elif defined (__ANDROID__)
diff --git a/src/lib/ecore/ecore_exe_posix.c b/src/lib/ecore/ecore_exe_posix.c
index 635fc0678b..00ef10edb0 100644
--- a/src/lib/ecore/ecore_exe_posix.c
+++ b/src/lib/ecore/ecore_exe_posix.c
@@ -218,7 +218,7 @@ _impl_ecore_exe_run_priority_get(void)
    return run_pri;
 }
 
-#if defined (__FreeBSD__) || defined (__OpenBSD__)
+#if defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__)
 # include <dlfcn.h>
 static char ***_dl_environ;
 #else
@@ -350,7 +350,7 @@ _impl_ecore_exe_efl_object_finalize(Eo *obj, Ecore_Exe_Data *exe)
 #ifdef HAVE_SYSTEMD
          char **env = NULL, **e;
 
-# if defined (__FreeBSD__) || defined (__OpenBSD__)
+# if defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__)
          _dl_environ = dlsym(NULL, "environ");
          env = *_dl_environ;
 # else
diff --git a/src/lib/ecore/efl_core_proc_env.c b/src/lib/ecore/efl_core_proc_env.c
index 9177d822f1..18e385fb1d 100644
--- a/src/lib/ecore/efl_core_proc_env.c
+++ b/src/lib/ecore/efl_core_proc_env.c
@@ -13,7 +13,7 @@
 
 #define MY_CLASS EFL_CORE_PROC_ENV_CLASS
 
-#if defined (__FreeBSD__) || defined (__OpenBSD__)
+#if defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__)
 # include <dlfcn.h>
 static char ***_dl_environ;
 #elif !defined(_MSC_VER)
@@ -42,7 +42,7 @@ _sync(Efl_Core_Env *obj, Efl_Core_Proc_Env_Data *pd)
         existing_keys = eina_list_append(existing_keys, key);
      }
 
-#if defined (__FreeBSD__) || defined (__OpenBSD__)
+#if defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__)
    _dl_environ = dlsym(NULL, "environ");
    if (_dl_environ) loc_env = *_dl_environ;
    else ERR("Can't find envrion symbol");
@@ -121,7 +121,7 @@ _efl_core_proc_env_efl_core_env_clear(Eo *obj, Efl_Core_Proc_Env_Data *pd)
 #ifdef HAVE_CLEARENV
         clearenv();
 #else
-# if defined (__FreeBSD__) || defined (__OpenBSD__)
+# if defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__)
         _dl_environ = dlsym(NULL, "environ");
         if (_dl_environ) *_dl_environ = NULL;
         else ERR("Can't find envrion symbol");
diff --git a/src/lib/ecore/efl_exe.c b/src/lib/ecore/efl_exe.c
index 7239bcdf6f..2210f6d14e 100644
--- a/src/lib/ecore/efl_exe.c
+++ b/src/lib/ecore/efl_exe.c
@@ -32,7 +32,7 @@
 #  include <sys/wait.h>
 # endif
 # ifndef HAVE_CLEARENV
-#  if defined (__FreeBSD__) || defined (__OpenBSD__)
+#  if defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__)
 #   include <dlfcn.h>
 static char ***_dl_environ;
 #  else
@@ -577,7 +577,7 @@ _efl_exe_efl_task_run(Eo *obj, Efl_Exe_Data *pd)
 
    // clear systemd notify socket... only relevant for systemd world,
    // otherwise shouldn't be trouble
-# if defined (__FreeBSD__) || defined (__OpenBSD__)
+# if defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__)
    _dl_environ = dlsym(NULL, "environ");
    if (_dl_environ) env = *_dl_environ;
 # else
@@ -620,7 +620,7 @@ _efl_exe_efl_task_run(Eo *obj, Efl_Exe_Data *pd)
           }
         // yes - we dont free itr or itr2 - we're going to exec below or exit
         // also put newenv array on stack pointign to the strings in the env
-# if defined (__FreeBSD__) || defined (__OpenBSD__)
+# if defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__)
         if (_dl_environ) *_dl_environ = newenv;
         else ERR("Can't find envrion symbol");
 # else
diff --git a/src/lib/eet/eet_image.c b/src/lib/eet/eet_image.c
index 3cfb5fca19..245db580cc 100644
--- a/src/lib/eet/eet_image.c
+++ b/src/lib/eet/eet_image.c
@@ -2,9 +2,9 @@
 # include <config.h>
 #endif /* ifdef HAVE_CONFIG_H */
 
-#ifdef __OpenBSD__
+#if defined(__OpenBSD__) || defined(__NetBSD__)
 # include <sys/types.h>
-#endif /* ifdef __OpenBSD__ */
+#endif
 
 #include <stdio.h>
 #include <string.h>
diff --git a/src/lib/eina/eina_file_posix.c b/src/lib/eina/eina_file_posix.c
index 790c7c3c70..a1d0a08e4d 100644
--- a/src/lib/eina/eina_file_posix.c
+++ b/src/lib/eina/eina_file_posix.c
@@ -1360,6 +1360,16 @@ typedef struct
    unsigned char  ____pad[4];
    char           d_name[4096];
 } Dirent;
+#elif defined(__NetBSD__)
+# define do_getdents(fd, buf, size) getdents(fd, buf, size)
+typedef struct
+{
+   ino_t          d_fileno;
+   uint16_t       d_reclen;
+   uint16_t       d_namlen;
+   uint8_t        d_type;
+   char           d_name[4096];
+} Dirent;
 #elif defined(__linux__)
 # define do_getdents(fd, buf, size) syscall(SYS_getdents64, fd, buf, size)
 // getdents64 added un glibc 2.30 ... so use raw syscall - will work
@@ -1410,7 +1420,7 @@ eina_file_close_from(int fd, int *except_fd)
 #else
 #ifdef HAVE_DIRENT_H
 //# if 0
-# if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__linux__)
+# if defined(__FreeBSD__) || defined(__OpenBSD__) || defined (__NetBSD__) || defined(__linux__)
    int dirfd;
    Dirent *d;
    char buf[4096 + 128];
diff --git a/src/lib/elementary/Efl_Ui.h b/src/lib/elementary/Efl_Ui.h
index afae5983e4..e8cc2eb1d4 100644
--- a/src/lib/elementary/Efl_Ui.h
+++ b/src/lib/elementary/Efl_Ui.h
@@ -46,7 +46,7 @@
 # define WIN32_LEAN_AND_MEAN
 # include <winsock2.h>
 # undef WIN32_LEAN_AND_MEAN
-#elif defined (__FreeBSD__) || defined (__OpenBSD__)
+#elif defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__)
 # include <sys/select.h>
 # include <signal.h>
 #elif defined (__ANDROID__)

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to