Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Romain Naour <romain.naour@openwide.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v9 06/32] package/efl/libefl: new package
Date: Sat, 12 Dec 2015 19:38:22 +0100	[thread overview]
Message-ID: <566C699E.5070804@openwide.fr> (raw)
In-Reply-To: <20151212151524.0b711e40@free-electrons.com>

Hi Thomas, All,

Le 12/12/2015 15:15, Thomas Petazzoni a ?crit :
> Dear Romain Naour,
> 
> On Sat, 12 Dec 2015 14:33:09 +0100, Romain Naour wrote:
> 
>> diff --git a/package/efl/Config.in b/package/efl/Config.in
>> index 7ce5a36..1c6f9e5 100644
>> --- a/package/efl/Config.in
>> +++ b/package/efl/Config.in
>> @@ -1,8 +1,13 @@
>>  menuconfig BR2_PACKAGE_EFL
>>  	bool "Enlightenment Foundation Libraries"
>> -	depends on BR2_USE_WCHAR
>> -	# libeina uses madvise(). To revisit when bumping EFL to 1.8
>> -	depends on BR2_USE_MMU
>> +	depends on BR2_INSTALL_LIBSTDCPP # libefl
>> +	depends on BR2_PACKAGE_HAS_UDEV # libefl -> libudev
>> +	depends on BR2_PACKAGE_LUA # lua 5.1 or better
>> +	depends on BR2_TOOLCHAIN_HAS_THREADS # libefl
>> +	depends on BR2_USE_MMU # libefl
>> +	depends on BR2_USE_WCHAR # libefl
>> +	depends on !BR2_STATIC_LIBS # libefl
> 
> So we have all these dependencies here in package/efl/Config.in and
> then duplicated in package/efl/libefl/Config.in. Is this really needed?

Indeed, it's not really great but since BR2_PACKAGE_EFL select
BR2_PACKAGE_LIBEFL all libefl dependencies must be propagated.

Do you want I remove the dependencies from libefl package ?
I'm not sure the right thing to do here.

> 
>> +	select BR2_PACKAGE_LIBEFL
>>  	help
>>  	  Enlightenment Foundation Libraries
>>  
>> @@ -13,6 +18,7 @@ if BR2_PACKAGE_EFL
>>  source "package/efl/libeina/Config.in"
>>  source "package/efl/libecore/Config.in"
>>  source "package/efl/libeet/Config.in"
>> +source "package/efl/libefl/Config.in"
>>  source "package/efl/libefreet/Config.in"
>>  source "package/efl/libeio/Config.in"
>>  source "package/efl/libevas/Config.in"
>> @@ -24,5 +30,12 @@ source "package/efl/libedbus/Config.in"
>>  
>>  endif # BR2_PACKAGE_EFL
>>  
>> -comment "EFL needs a toolchain w/ wchar"
>> -	depends on !BR2_USE_WCHAR
>> +comment "EFL needs udev /dev management and a toolchain w/ C++, dynamic library, threads, wchar"
>> +	depends on !BR2_PACKAGE_LUA || !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP \
>> +		|| BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
>> +	depends on BR2_USE_MMU
>> +
>> +comment "EFL needs lua"
>> +	depends on !BR2_PACKAGE_LUA || !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP \
>> +		|| BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
>> +	depends on BR2_USE_MMU

Humm, it look like the comments dependencies are the same here..

> 
> So if I enable Lua but I don't enable udev, I am still seeing the
> comment "EFL needs lua".
> 
> And ditto: if I don't enable Lua, but I have udev, C++, dynamic
> library, threads and wchar, I will still see "EFL needs udev /dev
> management and a toolchain w/ C++, dynamic library, threads, wchar".
> 
> Seems like the handling of dependencies is not good here. It should be:
> 
>> +comment "EFL needs udev /dev management and a toolchain w/ C++, dynamic library, threads, wchar"
>> +	depends on !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP \
>> +		|| BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
>> +	depends on BR2_USE_MMU
>> +
>> +comment "EFL needs lua"
>> +	depends on !BR2_PACKAGE_LUA
>> +	depends on BR2_USE_MMU

Look better, thanks :)

> 
> Also, do you have a reason for not selecting Lua ?

Yann reported in his review that Lua is a virtual package, so we can't select it.

> 
> 
>> +if BR2_PACKAGE_LIBEFL
>> +
>> +config BR2_PACKAGE_LIBEFL_RECOMMENDED_CONFIG
>> +	bool "Use recommended and tested configurations"
> 
> configurations -> configuration
> 
>> +	depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
>> +	select BR2_PACKAGE_BULLET
>> +	select BR2_PACKAGE_FONTCONFIG
>> +	select BR2_PACKAGE_GSTREAMER1
>> +	select BR2_PACKAGE_GST1_PLUGINS_BASE
>> +	select BR2_PACKAGE_LIBFRIBIDI
>> +	select BR2_PACKAGE_LIBSNDFILE
>> +	select BR2_PACKAGE_PULSEAUDIO
>> +	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
>> +	default y
>> +	help
>> +	  Enable the basic set of recommended features.
>> +
>> +	  Without that, the EFL developpers consider the build to be
>> +	  potentially broken and won't provide any support for it.
>> +
>> +	  This turns on the following features:
>> +
>> +	  - bullet: If you have chosen to disable physics support, this
>> +	    disables lots of core functionality and is effectively never
>> +	    tested. You are going to find features that suddenly don't work
>> +	    and as a result cause a series of breakages. This is simply not
>> +	    tested so you are on your own in terms of ensuring everything
>> +	    works if you do this
>> +
>> +	  - fontconfig: If fontconfig is disabled, this is going to make
>> +	    general font searching not work, and only some very direct
>> +	    'load /path/file.ttf' will work alongside some old-school ttf
>> +	    file path searching. This is very likely not what you want, so
>> +	    highly reconsider turning fontconfig off. Having it off will
>> +	    lead to visual problems like missing text in many UI areas
>> +	    etc...
>> +
>> +	  - gstreamer 1.x: If Gstreamer 1.x support is disabled, it will
>> +	    heavily limit your media support options and render some
>> +	    functionality as useless, leading to visible application bugs.
>> +
>> +	  - libfribidi: Fribidi is used for handling right-to-left text
>> +	    (like Arabic, Hebrew, Farsi, Persian etc.) and is very likely
>> +	    not a feature you want to disable unless you know for absolute
>> +	    certain you will never encounter and have to display such
>> +	    scripts. Also note that we don't test with fribidi disabled so
>> +	    you may also trigger code paths with bugs that are never
>> +	    normally used.
>> +
>> +	  - libsndfile: If you disabled audio support in Ecore, this is not
>> +	    tested and may create bugs for you due to it creating untested
>> +	    code paths. Reconsider disabling audio.
>> +
>> +	  - pulseaudio: The only audio output method supported by Ecore
>> +	    right now is via Pulseaudio. You have disabled that and likely
>> +	    have broken a whole bunch of things in the process. Reconsider
>> +	    your configure options.
>> +	    NOTE: multisense support is automatically enabled with
>> +	    pulseaudio.
>> +
>> +	  - util-linux' libmount: Libmount is used heavily inside Eeze for
>> +	    support of removable devices etc... and disabling this will
>> +	    hurt support for Enlightenment and its filemanager.
> 
> I am wondering if it is the right approach. Would it be better to have
> sub-options for:
> 
> 	[*] Enable bullet support (recommended)
> 	[*] Enable fontconfig support (recommended)
> 	[*] Enable gstreamer1 support (recommended)
> 	[*] Enable libfridi support (recommended)
> 	[*] Enable libsndfile support (recommended)
> 	[*] Enable pulseaudio support (recommended)
> 	[*] Enable libmount support (recommended)
> 
> Those options would be enabled by default, and if one of them is not
> enabled, you can do:
> 
> comment "Warning: one of the recommended option for EFL is not enabled"
> 	depends on !BR2_PACKAGE_LIBEFL_BULLET || \
> 		!BR2_PACKAGE_LIBEFL_FONTCONFIG || \
> 		...
> 

Yes, we can try to do that but we need to be sure to add
--enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-aba
to LIBEFL_CONF_OPTS if one of them is disabled.

>> +comment "libevas loaders"
>> +
>> +config BR2_PACKAGE_LIBEFL_PNG
>> +	bool "libevas png loader"
>> +	select BR2_PACKAGE_LIBPNG
>> +	help
>> +	  This enables the loader code that loads png files using
>> +	  libpng.
>> +
>> +config BR2_PACKAGE_LIBEFL_JPEG
>> +	bool "libevas jpeg loader"
>> +	help
>> +	  This enables the loader code that loads jpeg files using
>> +	  libjpeg.
>> +
>> +config BR2_PACKAGE_LIBEFL_GIF
>> +	bool "libevas gif loader"
>> +	select BR2_PACKAGE_GIFLIB
>> +	help
>> +	  This enables the loader code that loads gif files using
>> +	  libungif.
>> +
>> +config BR2_PACKAGE_LIBEFL_TIFF
>> +	bool "libevas tiff loader"
>> +	select BR2_PACKAGE_TIFF
>> +	help
>> +	  This enables the loader code that loads tiff files.
>> +
>> +endif # BR2_PACKAGE_LIBEFL
> 
> How do these options fit with the separate libevas-generic-loaders
> package ?

As far I know libevas-generic-loaders provide additional images loaders that are
not available in libevas:

From libevas-generic-loaders README:
  * **XCF** (.xcf .xcf.gz)
  * **PDF** (using poppler)
   * use -key option to specific what page to get and load options for size
     Should we add mupdf ?
  * **PS** (using libspectre)
   * use -key option to specific what page to get and load options for size
     Should we use directly libgs ?
  * **RAW** (using libraw)
  * **SVG** (using librsvg)
  * **MPG/AVI/OGV/MOV/MKV/WMV** etc. (using gstreamer)
   * Should we add libxine and vlc ?
  * **PPT/PPTX/DOC/DOCX/XLS** etc.
   * Required PDF loader, and uses libreoffice binaries as slaves to
     export PDFs to load
> 
>> +# Prefer openssl (the default) over gnutls.
>> +ifeq ($(BR2_PACKAGE_OPENSSL),y)
>> +LIBEFL_DEPENDENCIES += openssl
>> +LIBEFL_CONF_OPTS += --with-crypto=openssl
>> +else ifeq ($(BR2_PACKAGE_GNUTLS)$(BR2_PACKAGE_LIBGCRYPT),yy)
>> +LIBEFL_DEPENDENCIES += gnutls libgcrypt
>> +LIBEFL_CONF_OPTS += --with-crypto=gnutls \
>> +	--with-libgcrypt-prefix=$(STAGING_DIR)/usr
> 
> Why do you need both gnutls and libgcrypt for gnutls support ?

I've keept libgcrypt dependency from the old libecore package. I'm not sure we
still need it.

Best regards,
Romain

> 
> Thanks!
> 
> Thomas
> 

  parent reply	other threads:[~2015-12-12 18:38 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-12 13:33 [Buildroot] [PATCH v9 00/32] efl bump to 1.15.2 Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 01/32] package/expedite: move to package directory Romain Naour
2015-12-12 13:45   ` Thomas Petazzoni
2015-12-12 13:33 ` [Buildroot] [PATCH v9 02/32] package/libevas-generic-loaders: " Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 03/32] package/libevas-generic-loaders: add missing MMU dependency Romain Naour
2015-12-12 13:46   ` Thomas Petazzoni
2015-12-12 13:33 ` [Buildroot] [PATCH v9 04/32] package/{efl packages}: reorder select/depends Romain Naour
2015-12-12 13:46   ` Thomas Petazzoni
2015-12-12 13:33 ` [Buildroot] [PATCH v9 05/32] package/efl/libefl: new host-package Romain Naour
2015-12-12 13:49   ` Thomas Petazzoni
2015-12-12 13:33 ` [Buildroot] [PATCH v9 06/32] package/efl/libefl: new package Romain Naour
2015-12-12 14:15   ` Thomas Petazzoni
2015-12-12 15:10     ` Yann E. MORIN
2015-12-12 15:55       ` Thomas Petazzoni
2015-12-12 18:38     ` Romain Naour [this message]
2015-12-12 22:39       ` Romain Naour
2015-12-13 10:37         ` Thomas Petazzoni
2015-12-14 23:08       ` Romain Naour
2015-12-14 23:50         ` Yann E. MORIN
2015-12-12 13:33 ` [Buildroot] [PATCH v9 07/32] package/efl/libefl: add harfbuzz dependency Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 08/32] package/efl/libefl: add wayland dependency Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 09/32] package/efl/libefl: add webp dependency Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 10/32] package/efl/libefl: add frame buffer config option Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 11/32] package/efl/libefl: add jp2k " Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 12/32] package/efl/libefl: add X11 support Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 13/32] package/efl/libefl: add OpenGLES support Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 14/32] package/efl/libefl: enable xinput2.2 Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 15/32] package/libevas-generic-loaders: bump to version 1.15.0 Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 16/32] package/libevas-generic-loaders: add libraw dependency Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 17/32] package/efl/libelementary: bump to version 1.15.2 Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 18/32] package/efl: libefl and libelementary share the same version number Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 19/32] package/enlightenment: bump to version 0.19.12 Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 20/32] package/expedite: bump to efl-1.15 branch Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 21/32] package/dbus-cpp: switch to libefl Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 22/32] package/efl/libethumb: remove package Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 23/32] package/efl/libedje: " Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 24/32] package/efl/libembryo: " Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 25/32] package/efl/libeio: " Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 26/32] package/efl/libefreet: " Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 27/32] package/efl/libedbus: " Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 28/32] package/efl/libecore: " Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 29/32] package/efl/libevas: " Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 30/32] package/efl/libeet: " Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 31/32] package/efl/libeina: " Romain Naour
2015-12-12 13:33 ` [Buildroot] [PATCH v9 32/32] package/libemotion-generic-players: new package Romain Naour

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=566C699E.5070804@openwide.fr \
    --to=romain.naour@openwide.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox