Skip to contentSkip to conversation

efl: allow smaller builds.

PATCH New Gustavo Sverzut Barbieri 3 participants 13 messages Jan 3, 2017 – Jan 28, 2017

lore
Share & tools
lore
#0 lore raw

cover efl: allow smaller builds.

These two patches will allow smaller builds of EFL.

1) efl: fix target package dependency on util-linux

Drops util-linux if libmount support is not needed, it was partially a bug on using the incorrect variable.

2) efl: do not force dependency on libudev by making eeze...

Follow the other 'recommends' options and allow eeze (udev's wrapper) to not be built, this allows EFL to be used without /dev management, thus no eudev/libudev.

#1 lore raw

PATCH 1/2 efl: fix target package dependency on util-linux (libmount).

use the correct variable (BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT) and do not impose dependency on util-linux if not needed.

---
 package/efl/Config.in | 6 +++---
 package/efl/efl.mk    | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)
package/efl/Config.in +3 -3
index c51fc564d..542c354a8 100644
@@ -17,9 +17,6 @@ config BR2_PACKAGE_EFL
 	# https://phab.enlightenment.org/T2728
 	select BR2_PACKAGE_LUAJIT # Lua support broken
 	select BR2_PACKAGE_LZ4
-	select BR2_PACKAGE_UTIL_LINUX
-	# libblkid is part of required tools, see EFL's README.
-	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 	select BR2_PACKAGE_ZLIB
 	help
 	  Enlightenment Foundation Libraries
@@ -101,7 +98,10 @@ config BR2_PACKAGE_EFL_PULSEAUDIO
 
 config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
 	bool "Enable libmount support (recommended)"
+	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
+	# libblkid is part of required tools, see EFL's README.
+	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 	default y
 	help
 	  Libmount is used heavily inside Eeze for support of removable
package/efl/efl.mk +2 -2
index 2fe140a30..ab08946c4 100644
@@ -20,7 +20,7 @@ EFL_LICENSE_FILES = \
 EFL_INSTALL_STAGING = YES
 
 EFL_DEPENDENCIES = host-pkgconf host-efl host-luajit dbus freetype \
-	jpeg luajit lz4 udev util-linux zlib
+	jpeg luajit lz4 udev zlib
 
 # Configure options:
 # --disable-lua-old: build elua for the target.
@@ -59,7 +59,7 @@ else
 EFL_CONF_OPTS += --disable-cxx-bindings
 endif
 
-ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),y)
+ifeq ($(BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT),y)
 EFL_DEPENDENCIES += util-linux
 EFL_CONF_OPTS += --enable-libmount
 else
Signature · 1 line
2.11.0
#2 lore raw

PATCH 1/2 efl: fix target package dependency on util-linux (libmount).

Hi Gustavo,

Le 03/01/2017 ? 22:29, Gustavo Sverzut Barbieri a ?crit :

Quoted 14 lines

use the correct variable (BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT) and do not impose dependency on util-linux if not needed.

---
 package/efl/Config.in | 6 +++---
 package/efl/efl.mk    | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)
package/efl/Config.in +0 -0
index c51fc564d..542c354a8 100644

package/efl/Config.in config BR2_PACKAGE_EFL · line 22

Quoted 6 lines
package/efl/Config.in +0 -3
@@ -17,9 +17,6 @@ config BR2_PACKAGE_EFL
 	# https://phab.enlightenment.org/T2728
 	select BR2_PACKAGE_LUAJIT # Lua support broken
 	select BR2_PACKAGE_LZ4
-	select BR2_PACKAGE_UTIL_LINUX
-	# libblkid is part of required tools, see EFL's README.
-	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID

IIRC, There is a build issue behind this, but it was with an older efl version (1.13 or 1.14). So I have to check this.

BTW do you want to be added to DEVELOPERS file and receive any build issues from Buildroot autobuilders related to efl packages ?

https://buildroot.org/downloads/manual/manual.html#DEVELOPERS

package/efl/Config.in config BR2_PACKAGE_EFL_PULSEAUDIO · line 100

Quoted 7 lines
package/efl/Config.in +0 -0
 	select BR2_PACKAGE_ZLIB
 	help
 	  Enlightenment Foundation Libraries
@@ -101,7 +98,10 @@ config BR2_PACKAGE_EFL_PULSEAUDIO
 
 config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
 	bool "Enable libmount support (recommended)"

Maybe we should rename this option to BR2_PACKAGE_EFL_UTIL_LINUX and use "Enable util-linux (limbount + libblkid) support (recommended)"

Best regards,
Romain

Quoted 30 lines
package/efl/Config.in +3 -0
+	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
+	# libblkid is part of required tools, see EFL's README.
+	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 	default y
 	help
 	  Libmount is used heavily inside Eeze for support of removable
package/efl/efl.mk +2 -2
index 2fe140a30..ab08946c4 100644
@@ -20,7 +20,7 @@ EFL_LICENSE_FILES = \
 EFL_INSTALL_STAGING = YES
 
 EFL_DEPENDENCIES = host-pkgconf host-efl host-luajit dbus freetype \
-	jpeg luajit lz4 udev util-linux zlib
+	jpeg luajit lz4 udev zlib
 
 # Configure options:
 # --disable-lua-old: build elua for the target.
@@ -59,7 +59,7 @@ else
 EFL_CONF_OPTS += --disable-cxx-bindings
 endif
 
-ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),y)
+ifeq ($(BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT),y)
 EFL_DEPENDENCIES += util-linux
 EFL_CONF_OPTS += --enable-libmount
 else
#3 lore raw

PATCH 1/2 efl: fix target package dependency on util-linux (libmount).

Quoted 12 lines · Romain Naour

Hi Gustavo,

Le 03/01/2017 ? 22:29, Gustavo Sverzut Barbieri a ?crit :

Quoted 9 lines

use the correct variable (BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT) and do not impose dependency on util-linux if not needed.

---
 package/efl/Config.in | 6 +++---
 package/efl/efl.mk    | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)
Quoted 14 lines

package/efl/Config.in config BR2_PACKAGE_EFL · line 22

Quoted 11 lines
package/efl/Config.in +0 -3
index c51fc564d..542c354a8 100644
@@ -17,9 +17,6 @@ config BR2_PACKAGE_EFL
      # https://phab.enlightenment.org/T2728
      select BR2_PACKAGE_LUAJIT # Lua support broken
      select BR2_PACKAGE_LZ4
-     select BR2_PACKAGE_UTIL_LINUX
-     # libblkid is part of required tools, see EFL's README.
-     select BR2_PACKAGE_UTIL_LINUX_LIBBLKID

IIRC, There is a build issue behind this, but it was with an older efl version (1.13 or 1.14). So I have to check this.

I did the cumbersome "make clean" then "make all" and it worked. So I assume this is safe now, but as you see these are enabled if BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT is enabled, and that's the default.

Quoted 4 lines

BTW do you want to be added to DEVELOPERS file and receive any build issues from Buildroot autobuilders related to efl packages ?

https://buildroot.org/downloads/manual/manual.html#DEVELOPERS

sounds good. Following that guideline I should add myself to that file, likely in this patch. Okay?

Quoted 10 lines

package/efl/Config.in config BR2_PACKAGE_EFL_PULSEAUDIO · line 100

Quoted 7 lines
package/efl/Config.in +0 -0
      select BR2_PACKAGE_ZLIB
      help
        Enlightenment Foundation Libraries
@@ -101,7 +98,10 @@ config BR2_PACKAGE_EFL_PULSEAUDIO
 
 config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
      bool "Enable libmount support (recommended)"

Maybe we should rename this option to BR2_PACKAGE_EFL_UTIL_LINUX and use "Enable util-linux (limbount + libblkid) support (recommended)"

Not sure... to tell you the truth I think libblkid is a "nice to have", not must have... our code doesn't refer to anything in libblkid, but if you want mount to auto detect the partition/filesystem, then blkid is needed to scan the block device and infer that AFAIU.

However if that's what people want I can do for sure, super simple.

Signature · 6 lines
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--------------------------------------
MSN, GTalk, FaceTime: barbieri at gmail.com
Skype: gsbarbieri
Mobile: +55 (16) 99354-9890
#4 lore raw

PATCH 1/2 efl: fix target package dependency on util-linux (libmount).

Le 04/01/2017 ? 03:09, Gustavo Sverzut Barbieri a ?crit :

Quoted 28 lines · Romain Naour
Quoted 12 lines

Hi Gustavo,

Le 03/01/2017 ? 22:29, Gustavo Sverzut Barbieri a ?crit :

Quoted 9 lines

use the correct variable (BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT) and do not impose dependency on util-linux if not needed.

---
 package/efl/Config.in | 6 +++---
 package/efl/efl.mk    | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)
Quoted 14 lines

package/efl/Config.in config BR2_PACKAGE_EFL · line 22

Quoted 11 lines
package/efl/Config.in +0 -3
index c51fc564d..542c354a8 100644
@@ -17,9 +17,6 @@ config BR2_PACKAGE_EFL
      # https://phab.enlightenment.org/T2728
      select BR2_PACKAGE_LUAJIT # Lua support broken
      select BR2_PACKAGE_LZ4
-     select BR2_PACKAGE_UTIL_LINUX
-     # libblkid is part of required tools, see EFL's README.
-     select BR2_PACKAGE_UTIL_LINUX_LIBBLKID

IIRC, There is a build issue behind this, but it was with an older efl version (1.13 or 1.14). So I have to check this.

Quoted 4 lines

I did the cumbersome "make clean" then "make all" and it worked. So I assume this is safe now, but as you see these are enabled if BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT is enabled, and that's the default.

I did a build test today without util-linux package and it build fine with the current efl version (1.18.4)

Quoted 9 lines
Quoted 6 lines

BTW do you want to be added to DEVELOPERS file and receive any build issues from Buildroot autobuilders related to efl packages ?

https://buildroot.org/downloads/manual/manual.html#DEVELOPERS

sounds good. Following that guideline I should add myself to that file, likely in this patch. Okay?

Well, It seems that the recommended way to do it is to send a separate patch. The reason is: if someone need to backport a patch adding a feature or a new package, we want to avoid a conflict in DEVELOPERS file while cherry-picking the commit.

Thomas, can you confirm ?

Quoted 13 lines
Quoted 7 lines
Quoted 7 lines
package/efl/Config.in +0 -0
      select BR2_PACKAGE_ZLIB
      help
        Enlightenment Foundation Libraries
@@ -101,7 +98,10 @@ config BR2_PACKAGE_EFL_PULSEAUDIO
 
Quoted 5 lines

package/efl/Config.in config BR2_PACKAGE_EFL_PULSEAUDIO · line 100

Quoted 2 lines
package/efl/Config.in +0 -0
 config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
      bool "Enable libmount support (recommended)"

Maybe we should rename this option to BR2_PACKAGE_EFL_UTIL_LINUX and use "Enable util-linux (limbount + libblkid) support (recommended)"

Quoted 7 lines

Not sure... to tell you the truth I think libblkid is a "nice to have", not must have... our code doesn't refer to anything in libblkid, but if you want mount to auto detect the partition/filesystem, then blkid is needed to scan the block device and infer that AFAIU.

However if that's what people want I can do for sure, super simple.

I followed the README comment here and because BR2_PACKAGE_UTIL_LINUX_LIBBLKID is not selected by default when util-linux package is selected. Also libblkid.so is not so big (~300Ko), I'm not sure we really need a new option BR2_PACKAGE_EFL_UTIL_LINUX_LIBLKID

config BR2_PACKAGE_EFL_UTIL_LINUX_LIBLKID
bool "Enable libblkid support (recommended)" depends on BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT

Ok, let's do it as you suggest

Best regards,
Romain

Quoted 4 lines
#5 lore raw

PATCH 1/2 efl: fix target package dependency on util-linux (libmount).

Quoted 2 lines · Romain Naour

Le 04/01/2017 ? 03:09, Gustavo Sverzut Barbieri a ?crit :

Quoted 1 line · Romain Naour

[...]

Quoted 8 lines
Quoted 7 lines
Quoted 4 lines

BTW do you want to be added to DEVELOPERS file and receive any build issues from Buildroot autobuilders related to efl packages ?

https://buildroot.org/downloads/manual/manual.html#DEVELOPERS

sounds good. Following that guideline I should add myself to that file, likely in this patch. Okay?

Quoted 6 lines

Well, It seems that the recommended way to do it is to send a separate patch. The reason is: if someone need to backport a patch adding a feature or a new package, we want to avoid a conflict in DEVELOPERS file while cherry-picking the commit.

Thomas, can you confirm ?

ok, will wait for Thomas to send as a separate patch or not.

Quoted 24 lines
Quoted 11 lines
Quoted 10 lines

package/efl/Config.in config BR2_PACKAGE_EFL_PULSEAUDIO · line 100

Quoted 7 lines

select BR2_PACKAGE_ZLIB
help
Enlightenment Foundation Libraries

package/efl/Config.in +0 -0
@@ -101,7 +98,10 @@ config BR2_PACKAGE_EFL_PULSEAUDIO
 
 config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
      bool "Enable libmount support (recommended)"

Maybe we should rename this option to BR2_PACKAGE_EFL_UTIL_LINUX and use "Enable util-linux (limbount + libblkid) support (recommended)"

Quoted 7 lines

Not sure... to tell you the truth I think libblkid is a "nice to have", not must have... our code doesn't refer to anything in libblkid, but if you want mount to auto detect the partition/filesystem, then blkid is needed to scan the block device and infer that AFAIU.

However if that's what people want I can do for sure, super simple.

I followed the README comment here and because BR2_PACKAGE_UTIL_LINUX_LIBBLKID is not selected by default when util-linux package is selected. Also libblkid.so is not so big (~300Ko), I'm not sure we really need a new option BR2_PACKAGE_EFL_UTIL_LINUX_LIBLKID

Quoted 5 lines

config BR2_PACKAGE_EFL_UTIL_LINUX_LIBLKID
bool "Enable libblkid support (recommended)" depends on BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT

Ok, let's do it as you suggest

As I said, the liblkid is not a dependency per se... is more to make libmount useful, overall. This isn't specific to EFL.

Looking at package/util-linux/Config.in to write this reply I saw it's already the case:

config BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
bool "libmount"
depends on BR2_USE_MMU # fork()
select BR2_PACKAGE_UTIL_LINUX_LIBBLKID

:-)

Signature · 6 lines
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--------------------------------------
MSN, GTalk, FaceTime: barbieri at gmail.com
Skype: gsbarbieri
Mobile: +55 (16) 99354-9890
#6 lore raw

PATCH 1/2 efl: fix target package dependency on util-linux (libmount).

In reply to Romain Naour

Hello,

Quoted 9 lines · Romain Naour
Quoted 2 lines

sounds good. Following that guideline I should add myself to that file, likely in this patch. Okay?

Well, It seems that the recommended way to do it is to send a separate patch. The reason is: if someone need to backport a patch adding a feature or a new package, we want to avoid a conflict in DEVELOPERS file while cherry-picking the commit.

Thomas, can you confirm ?

Correct. Please send a separate patch.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#7 lore raw

PATCH 1/2 efl: fix target package dependency on util-linux (libmount).

In reply to Gustavo Sverzut Barbieri

Hello,

Quoted 8 lines · Gustavo Sverzut Barbieri

use the correct variable (BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT) and do not impose dependency on util-linux if not needed.

---
 package/efl/Config.in | 6 +++---
 package/efl/efl.mk    | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#8 lore raw

PATCH 2/2 efl: do not force dependency on libudev by making eeze a config option.

In reply to Gustavo Sverzut Barbieri

Although highly recommended to be enabled, EFL's eeze can be disabled and thus no dependency on libudev or dynamic device management.

Since 'BR2_PACKAGE_HAS_UDEV' has two ways to be satisfied (eudev or systemd) we can't automatically select it, instead show a comment and use 'depends on'.

---
 package/efl/Config.in | 25 ++++++++++++++++++++++---
 package/efl/efl.mk    |  9 ++++++++-
 2 files changed, 30 insertions(+), 4 deletions(-)
package/efl/Config.in +22 -3
index 542c354a8..f4cbc2806 100644
@@ -4,7 +4,6 @@ config BR2_PACKAGE_EFL
 	depends on BR2_HOST_GCC_AT_LEAST_4_7
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_PACKAGE_HAS_UDEV # libudev
 	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS # luajit
 	depends on BR2_TOOLCHAIN_HAS_THREADS # untested without threads
 	depends on BR2_USE_MMU
@@ -37,6 +36,19 @@ config BR2_PACKAGE_EFL_BULLET
 	  simply not tested so you are on your own in terms of
 	  ensuring everything works if you do this.
 
+config BR2_PACKAGE_EFL_EEZE
+	bool "Enable eeze (udev) support (recommended)"
+	depends on BR2_PACKAGE_HAS_UDEV # libudev
+	default y
+	help
+	  Eeze is EFL's hardware abstraction layer on top of udev.
+	  Having it off will disable some hardware detetion, such as
+	  'drm' graphics engine or 'elput', as well as mounting
+	  removable media.
+
+comment "eeze needs udev /dev management (eudev or systemd)"
+	depends on !BR2_PACKAGE_HAS_UDEV
+
 config BR2_PACKAGE_EFL_FONTCONFIG
 	bool "Enable fontconfig support (recommended)"
 	select BR2_PACKAGE_FONTCONFIG
@@ -98,6 +110,7 @@ config BR2_PACKAGE_EFL_PULSEAUDIO
 
 config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
 	bool "Enable libmount support (recommended)"
+	depends on BR2_PACKAGE_EFL_EEZE
 	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	# libblkid is part of required tools, see EFL's README.
@@ -108,9 +121,13 @@ config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
 	  devices etc... and disabling this will hurt support for
 	  Enlightenment and its filemanager.
 
+comment "efl's libmount support needs eeze"
+	depends on !BR2_PACKAGE_EFL_EEZE
+
 config BR2_PACKAGE_EFL_HAS_RECOMMENDED_CONFIG
 	bool
 	default y if BR2_PACKAGE_EFL_BULLET && \
+		BR2_PACKAGE_EFL_EEZE && \
 		BR2_PACKAGE_EFL_FONTCONFIG && \
 		BR2_PACKAGE_EFL_GSTREAMER1 && \
 		BR2_PACKAGE_EFL_LIBFRIBIDI && \
@@ -197,6 +214,7 @@ endchoice # OpenGL support
 
 config BR2_PACKAGE_EFL_ELPUT
 	bool "Elput"
+	depends on BR2_PACKAGE_EFL_EEZE
 	select BR2_PACKAGE_LIBINPUT
 	select BR2_PACKAGE_LIBXKBCOMMON
 	help
@@ -207,6 +225,7 @@ config BR2_PACKAGE_EFL_ELPUT
 
 config BR2_PACKAGE_EFL_DRM
 	bool "Evas DRM Engine"
+	depends on BR2_PACKAGE_EFL_EEZE
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
 	depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # require libgbm from mesa3d
 	select BR2_PACKAGE_EFL_ELPUT
@@ -278,8 +297,8 @@ config BR2_PACKAGE_EFL_SVG
 
 endif # BR2_PACKAGE_EFL
 
-comment "efl needs udev /dev management and a toolchain w/ C++, dynamic library, gcc >= 4.7, threads, wchar"
-	depends on !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP \
+comment "efl needs a toolchain w/ C++, dynamic library, gcc >= 4.7, threads, wchar"
+	depends on !BR2_INSTALL_LIBSTDCPP \
 		|| !BR2_HOST_GCC_AT_LEAST_4_7 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 \
 		|| BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
 	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
package/efl/efl.mk +8 -1
index ab08946c4..1e54f7281 100644
@@ -20,7 +20,7 @@ EFL_LICENSE_FILES = \
 EFL_INSTALL_STAGING = YES
 
 EFL_DEPENDENCIES = host-pkgconf host-efl host-luajit dbus freetype \
-	jpeg luajit lz4 udev zlib
+	jpeg luajit lz4 zlib
 
 # Configure options:
 # --disable-lua-old: build elua for the target.
@@ -59,6 +59,13 @@ else
 EFL_CONF_OPTS += --disable-cxx-bindings
 endif
 
+ifeq ($(BR2_PACKAGE_EFL_EEZE),y)
+EFL_DEPENDENCIES += udev
+EFL_CONF_OPTS += --enable-libeeze
+else
+EFL_CONF_OPTS += --disable-libeeze
+endif
+
 ifeq ($(BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT),y)
 EFL_DEPENDENCIES += util-linux
 EFL_CONF_OPTS += --enable-libmount
Signature · 1 line
2.11.0
#9 lore raw

PATCH 2/2 efl: do not force dependency on libudev by making eeze a config option.

Hi Gustavo,

Thanks for these patches!

Le 03/01/2017 ? 22:29, Gustavo Sverzut Barbieri a ?crit :

Quoted 2 lines

Although highly recommended to be enabled, EFL's eeze can be disabled and thus no dependency on libudev or dynamic device management.

When I stated to rework and bump the efl packaging in Buildroot, the eeze dependency was mandatory. So I added an option to disable it only for the host-efl package. See [1]. As I said on IRC, I didn't event tested efl without eeze on the target and I don't think that the EFL developers even tested it.

But since you are involved in efl development, I expect --you-really-know-what-you-re-doing-and-that-this-will-probably-break-things-and-you-will-fix-them-yourself-and-send-patches-abb :)

[1]
https://git.enlightenment.org/core/efl.git/commit/?id=4351f0fa8642b163799c6ce47610d5cd9f70acfa

Quoted 4 lines

Since 'BR2_PACKAGE_HAS_UDEV' has two ways to be satisfied (eudev or systemd) we can't automatically select it, instead show a comment and use 'depends on'.

Otherwise the patch looks.

Quoted 62 lines
---
 package/efl/Config.in | 25 ++++++++++++++++++++++---
 package/efl/efl.mk    |  9 ++++++++-
 2 files changed, 30 insertions(+), 4 deletions(-)
package/efl/Config.in +18 -1
index 542c354a8..f4cbc2806 100644
@@ -4,7 +4,6 @@ config BR2_PACKAGE_EFL
 	depends on BR2_HOST_GCC_AT_LEAST_4_7
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_PACKAGE_HAS_UDEV # libudev
 	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS # luajit
 	depends on BR2_TOOLCHAIN_HAS_THREADS # untested without threads
 	depends on BR2_USE_MMU
@@ -37,6 +36,19 @@ config BR2_PACKAGE_EFL_BULLET
 	  simply not tested so you are on your own in terms of
 	  ensuring everything works if you do this.
 
+config BR2_PACKAGE_EFL_EEZE
+	bool "Enable eeze (udev) support (recommended)"
+	depends on BR2_PACKAGE_HAS_UDEV # libudev
+	default y
+	help
+	  Eeze is EFL's hardware abstraction layer on top of udev.
+	  Having it off will disable some hardware detetion, such as
+	  'drm' graphics engine or 'elput', as well as mounting
+	  removable media.
+
+comment "eeze needs udev /dev management (eudev or systemd)"
+	depends on !BR2_PACKAGE_HAS_UDEV
+
 config BR2_PACKAGE_EFL_FONTCONFIG
 	bool "Enable fontconfig support (recommended)"
 	select BR2_PACKAGE_FONTCONFIG
@@ -98,6 +110,7 @@ config BR2_PACKAGE_EFL_PULSEAUDIO
 
 config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
 	bool "Enable libmount support (recommended)"
+	depends on BR2_PACKAGE_EFL_EEZE
 	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	# libblkid is part of required tools, see EFL's README.
@@ -108,9 +121,13 @@ config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
 	  devices etc... and disabling this will hurt support for
 	  Enlightenment and its filemanager.
 
+comment "efl's libmount support needs eeze"
+	depends on !BR2_PACKAGE_EFL_EEZE
+
 config BR2_PACKAGE_EFL_HAS_RECOMMENDED_CONFIG
 	bool
 	default y if BR2_PACKAGE_EFL_BULLET && \
+		BR2_PACKAGE_EFL_EEZE && \
 		BR2_PACKAGE_EFL_FONTCONFIG && \
 		BR2_PACKAGE_EFL_GSTREAMER1 && \
 		BR2_PACKAGE_EFL_LIBFRIBIDI && \

package/efl/Config.in endchoice # OpenGL support · line 217

Quoted 4 lines
package/efl/Config.in +1 -0
@@ -197,6 +214,7 @@ endchoice # OpenGL support
 
 config BR2_PACKAGE_EFL_ELPUT
 	bool "Elput"
+	depends on BR2_PACKAGE_EFL_EEZE

Add a new comment like for BR2_PACKAGE_EFL_EEZE

package/efl/Config.in config BR2_PACKAGE_EFL_ELPUT · line 228

Quoted 8 lines
package/efl/Config.in +1 -0
 	select BR2_PACKAGE_LIBINPUT
 	select BR2_PACKAGE_LIBXKBCOMMON
 	help
@@ -207,6 +225,7 @@ config BR2_PACKAGE_EFL_ELPUT
 
 config BR2_PACKAGE_EFL_DRM
 	bool "Evas DRM Engine"
+	depends on BR2_PACKAGE_EFL_EEZE

Add a new comment like for BR2_PACKAGE_EFL_EEZE

With that fixed

Best regards,
Romain

Quoted 42 lines
package/efl/Config.in +2 -2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
 	depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # require libgbm from mesa3d
 	select BR2_PACKAGE_EFL_ELPUT
@@ -278,8 +297,8 @@ config BR2_PACKAGE_EFL_SVG
 
 endif # BR2_PACKAGE_EFL
 
-comment "efl needs udev /dev management and a toolchain w/ C++, dynamic library, gcc >= 4.7, threads, wchar"
-	depends on !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP \
+comment "efl needs a toolchain w/ C++, dynamic library, gcc >= 4.7, threads, wchar"
+	depends on !BR2_INSTALL_LIBSTDCPP \
 		|| !BR2_HOST_GCC_AT_LEAST_4_7 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 \
 		|| BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
 	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
package/efl/efl.mk +8 -1
index ab08946c4..1e54f7281 100644
@@ -20,7 +20,7 @@ EFL_LICENSE_FILES = \
 EFL_INSTALL_STAGING = YES
 
 EFL_DEPENDENCIES = host-pkgconf host-efl host-luajit dbus freetype \
-	jpeg luajit lz4 udev zlib
+	jpeg luajit lz4 zlib
 
 # Configure options:
 # --disable-lua-old: build elua for the target.
@@ -59,6 +59,13 @@ else
 EFL_CONF_OPTS += --disable-cxx-bindings
 endif
 
+ifeq ($(BR2_PACKAGE_EFL_EEZE),y)
+EFL_DEPENDENCIES += udev
+EFL_CONF_OPTS += --enable-libeeze
+else
+EFL_CONF_OPTS += --disable-libeeze
+endif
+
 ifeq ($(BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT),y)
 EFL_DEPENDENCIES += util-linux
 EFL_CONF_OPTS += --enable-libmount
#10 lore raw

PATCH 2/2 efl: do not force dependency on libudev by making eeze a config option.

Quoted 13 lines · Romain Naour

Hi Gustavo,

Thanks for these patches!

Le 03/01/2017 ? 22:29, Gustavo Sverzut Barbieri a ?crit :

Quoted 2 lines

Although highly recommended to be enabled, EFL's eeze can be disabled and thus no dependency on libudev or dynamic device management.

When I stated to rework and bump the efl packaging in Buildroot, the eeze dependency was mandatory. So I added an option to disable it only for the host-efl package. See [1]. As I said on IRC, I didn't event tested efl without eeze on the target and I don't think that the EFL developers even tested it.

Quoted 6 lines

But since you are involved in efl development, I expect --you-really-know-what-you-re-doing-and-that-this-will-probably-break-things-and-you-will-fix-them-yourself-and-send-patches-abb :)

[1]
https://git.enlightenment.org/core/efl.git/commit/?id=4351f0fa8642b163799c6ce47610d5cd9f70acfa

yes, I saw that and it's a nice addition. Eeze used to be optional, but when we moved to the single efl tree I was one of the developers unifying the autohell stuff and to make it simpler I reduced some options until someone find a need for that... so you found it... and I'm using it :-D

I'm testing that inside qemu using a build derived from qemu_arm_versatile_defconfig with glibc, efl and few other utilities to test webkitefl. So far it's working, but if something break I'll patch efl to fix that.

Quoted 5 lines
Quoted 3 lines

config BR2_PACKAGE_EFL_DRM
bool "Evas DRM Engine"
+ depends on BR2_PACKAGE_EFL_EEZE

Add a new comment like for BR2_PACKAGE_EFL_EEZE

will do.

Signature · 6 lines
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--------------------------------------
MSN, GTalk, FaceTime: barbieri at gmail.com
Skype: gsbarbieri
Mobile: +55 (16) 99354-9890
#11 lore raw

PATCH 2/2 efl: do not force dependency on libudev by making eeze a config option.

Le 04/01/2017 ? 02:10, Gustavo Sverzut Barbieri a ?crit :

Quoted 18 lines · Romain Naour
Quoted 17 lines

Hi Gustavo,

Thanks for these patches!

Le 03/01/2017 ? 22:29, Gustavo Sverzut Barbieri a ?crit :

Quoted 2 lines

Although highly recommended to be enabled, EFL's eeze can be disabled and thus no dependency on libudev or dynamic device management.

When I stated to rework and bump the efl packaging in Buildroot, the eeze dependency was mandatory. So I added an option to disable it only for the host-efl package. See [1]. As I said on IRC, I didn't event tested efl without eeze on the target and I don't think that the EFL developers even tested it.

But since you are involved in efl development, I expect --you-really-know-what-you-re-doing-and-that-this-will-probably-break-things-and-you-will-fix-them-yourself-and-send-patches-abb :)

Quoted 8 lines
Quoted 2 lines

[1]
https://git.enlightenment.org/core/efl.git/commit/?id=4351f0fa8642b163799c6ce47610d5cd9f70acfa

yes, I saw that and it's a nice addition. Eeze used to be optional, but when we moved to the single efl tree I was one of the developers unifying the autohell stuff and to make it simpler I reduced some options until someone find a need for that... so you found it... and I'm using it :-D

:)

Quoted 5 lines

I'm testing that inside qemu using a build derived from qemu_arm_versatile_defconfig with glibc, efl and few other utilities to test webkitefl. So far it's working, but if something break I'll patch efl to fix that.

OK great!

Best regards,
Romain

Quoted 12 lines
Quoted 8 lines
Quoted 6 lines

config BR2_PACKAGE_EFL_DRM
bool "Evas DRM Engine"
+ depends on BR2_PACKAGE_EFL_EEZE

Add a new comment like for BR2_PACKAGE_EFL_EEZE

will do.

#12 lore raw

PATCH 2/2 efl: do not force dependency on libudev by making eeze a config option.

In reply to Gustavo Sverzut Barbieri

Hi Gustavo,

Le 03/01/2017 ? 22:29, Gustavo Sverzut Barbieri a ?crit :

Quoted 28 lines

Although highly recommended to be enabled, EFL's eeze can be disabled and thus no dependency on libudev or dynamic device management.

Since 'BR2_PACKAGE_HAS_UDEV' has two ways to be satisfied (eudev or systemd) we can't automatically select it, instead show a comment and use 'depends on'.

---
 package/efl/Config.in | 25 ++++++++++++++++++++++---
 package/efl/efl.mk    |  9 ++++++++-
 2 files changed, 30 insertions(+), 4 deletions(-)
package/efl/Config.in +0 -1
index 542c354a8..f4cbc2806 100644
@@ -4,7 +4,6 @@ config BR2_PACKAGE_EFL
 	depends on BR2_HOST_GCC_AT_LEAST_4_7
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_PACKAGE_HAS_UDEV # libudev
 	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS # luajit
 	depends on BR2_TOOLCHAIN_HAS_THREADS # untested without threads
 	depends on BR2_USE_MMU
@@ -37,6 +36,19 @@ config BR2_PACKAGE_EFL_BULLET
 	  simply not tested so you are on your own in terms of
 	  ensuring everything works if you do this.

package/efl/Config.in config BR2_PACKAGE_EFL_BULLET · line 47

Quoted 10 lines
package/efl/Config.in +9 -0
 
+config BR2_PACKAGE_EFL_EEZE
+	bool "Enable eeze (udev) support (recommended)"
+	depends on BR2_PACKAGE_HAS_UDEV # libudev
+	default y
+	help
+	  Eeze is EFL's hardware abstraction layer on top of udev.
+	  Having it off will disable some hardware detetion, such as
+	  'drm' graphics engine or 'elput', as well as mounting
+	  removable media.

Rethinking about this patch...
Since eeze is now optional, don't forget to propagate this new dependency on packages using efl AND requiring eeze (i.e enlightenment)

Enlightenment check for eeze, so it must depend on it ;-)

Best regards,
Romain

Quoted 84 lines
package/efl/Config.in +13 -2
+
+comment "eeze needs udev /dev management (eudev or systemd)"
+	depends on !BR2_PACKAGE_HAS_UDEV
+
 config BR2_PACKAGE_EFL_FONTCONFIG
 	bool "Enable fontconfig support (recommended)"
 	select BR2_PACKAGE_FONTCONFIG
@@ -98,6 +110,7 @@ config BR2_PACKAGE_EFL_PULSEAUDIO
 
 config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
 	bool "Enable libmount support (recommended)"
+	depends on BR2_PACKAGE_EFL_EEZE
 	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	# libblkid is part of required tools, see EFL's README.
@@ -108,9 +121,13 @@ config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
 	  devices etc... and disabling this will hurt support for
 	  Enlightenment and its filemanager.
 
+comment "efl's libmount support needs eeze"
+	depends on !BR2_PACKAGE_EFL_EEZE
+
 config BR2_PACKAGE_EFL_HAS_RECOMMENDED_CONFIG
 	bool
 	default y if BR2_PACKAGE_EFL_BULLET && \
+		BR2_PACKAGE_EFL_EEZE && \
 		BR2_PACKAGE_EFL_FONTCONFIG && \
 		BR2_PACKAGE_EFL_GSTREAMER1 && \
 		BR2_PACKAGE_EFL_LIBFRIBIDI && \
@@ -197,6 +214,7 @@ endchoice # OpenGL support
 
 config BR2_PACKAGE_EFL_ELPUT
 	bool "Elput"
+	depends on BR2_PACKAGE_EFL_EEZE
 	select BR2_PACKAGE_LIBINPUT
 	select BR2_PACKAGE_LIBXKBCOMMON
 	help
@@ -207,6 +225,7 @@ config BR2_PACKAGE_EFL_ELPUT
 
 config BR2_PACKAGE_EFL_DRM
 	bool "Evas DRM Engine"
+	depends on BR2_PACKAGE_EFL_EEZE
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
 	depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # require libgbm from mesa3d
 	select BR2_PACKAGE_EFL_ELPUT
@@ -278,8 +297,8 @@ config BR2_PACKAGE_EFL_SVG
 
 endif # BR2_PACKAGE_EFL
 
-comment "efl needs udev /dev management and a toolchain w/ C++, dynamic library, gcc >= 4.7, threads, wchar"
-	depends on !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP \
+comment "efl needs a toolchain w/ C++, dynamic library, gcc >= 4.7, threads, wchar"
+	depends on !BR2_INSTALL_LIBSTDCPP \
 		|| !BR2_HOST_GCC_AT_LEAST_4_7 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 \
 		|| BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
 	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
package/efl/efl.mk +8 -1
index ab08946c4..1e54f7281 100644
@@ -20,7 +20,7 @@ EFL_LICENSE_FILES = \
 EFL_INSTALL_STAGING = YES
 
 EFL_DEPENDENCIES = host-pkgconf host-efl host-luajit dbus freetype \
-	jpeg luajit lz4 udev zlib
+	jpeg luajit lz4 zlib
 
 # Configure options:
 # --disable-lua-old: build elua for the target.
@@ -59,6 +59,13 @@ else
 EFL_CONF_OPTS += --disable-cxx-bindings
 endif
 
+ifeq ($(BR2_PACKAGE_EFL_EEZE),y)
+EFL_DEPENDENCIES += udev
+EFL_CONF_OPTS += --enable-libeeze
+else
+EFL_CONF_OPTS += --disable-libeeze
+endif
+
 ifeq ($(BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT),y)
 EFL_DEPENDENCIES += util-linux
 EFL_CONF_OPTS += --enable-libmount