Commit Graph

860 Commits

Author SHA1 Message Date
Stefan Schmidt 88faca5591 build: bump minimum version requirement of gnutls to 3.3.6
This releases offers the gnutls_certificate_set_x509_trust_dir() API we use in
ecore_con. This gnutls version was release in July 2014 which gave it enough
time to be picked up by distributions.

Thanks a lot to llelectronics for reporting and tracking down the problem.

ref T5437
@fix
2017-04-28 15:25:45 +02:00
Stefan Schmidt e139fda75b configure: switch to dev mode again
Merge window for 1.20 is now open.
2017-04-12 11:19:25 +02:00
Stefan Schmidt e457e6fe63 release: Update NEWS and bump version for 1.19.0 release 2017-04-12 10:23:06 +02:00
Stefan Schmidt ec24433ef2 build: disable epoll support on solaris based systems
We have a report where the use of epoll breaks such systems. Disabling it for
now to make them work again. A deeper analysis is underway to understand this
better and maybe have epoll support later.
2017-04-12 10:17:41 +02:00
Stefan Schmidt 19d4f31839 release: Update NEWS and bump version for 1.19.0-beta4 release 2017-03-31 15:26:47 +02:00
Vincent Torri 02b6ee3ed8 Ecore_Con: Fix compilation on Solaris
FIONREAD is defined in sys/filio.h
2017-03-26 23:50:02 +09:00
Stefan Schmidt 1140ce2cd2 release: Update NEWS and bump version for 1.19.0-beta3 release 2017-03-14 10:58:39 +01:00
Stefan Schmidt ead885e7d0 release: Update NEWS and bump version for 1.19.0-beta2 release 2017-02-20 22:45:31 +01:00
Stefan Schmidt 7ce1a1467b release: Update NEWS and bump version for 1.19.0-beta1 release 2017-02-13 15:46:22 +01:00
Carsten Haitzler b9df77692c configure - eolian seemingly still needs evil due to eina
this should fix T5172
2017-02-13 18:54:43 +09:00
Derek Foreman 44804a9579 ecore: Don't call _ecore_fd_valid() in release builds
Not sure _ecore_fd_valid() is all that useful anymore, as the
commit that introduced it said it would be removed "before release"
a long time ago - it's a debug assist that probably doesn't need
to be in release builds.

(I'm counting syscalls on rpi3 - still, calling this an optimization
seems like a bit of a stretch.)
2017-02-10 12:13:06 -06:00
Stefan Schmidt 8e6e09aee8 release: Update NEWS and bump version for 1.19.0-alpha1 release 2017-02-09 16:44:06 +01:00
Marcel Hollerbach e34f36be12 ecore_x: we dont need this version file anymore
it indicated a while back which backend was used, we only have xlib
left.
2017-02-07 09:24:52 +01:00
Gustavo Sverzut Barbieri 8dc853f230 ifdef RUN_IN_TREE logic.
This logic is only needed for autotools, cmake will replicate the
installation file structure and thus eina_prefix works out of box.
2017-02-03 12:36:38 -02:00
Derek Foreman 55750d41fa build: Depend on wayland-protocols for wayland build
We need this to auto-generate protocol files for things like
xdg-shell.
2017-01-23 14:36:32 -06:00
Daniel Kolesa 6e8b628864 eolian: rmeove dependency on basename/libgen.h/evil 2017-01-21 18:06:00 +01:00
Derek Foreman 55243fba7d build: Fix wayland scanner related breakage
Oops, autoconf noob at work.
2017-01-18 17:48:08 -06:00
Derek Foreman 553751cb40 build: Add rules to auto-generate wayland headers from protocol xml
We've been checking in protocol headers and implementations that
wayland-scanner generates.  We should just generate them from the upstream
xml files.
2017-01-18 13:04:47 -06:00
Stefan Schmidt 877f55e13b Revert "build: enable -Wfloat-equal for compiling"
This reverts commit 25792d6416.

100 patches later the build output is still noisy with all these warnings.
I'm happy to see this warnings added to the default CFLAGS once the current
warnings have been dealt with.

Enable this warning in the local CFLAGS, get the current warnings fixed,
add it to the efl default flags to make the warning prominent for newly added
code.
2016-12-21 10:42:34 +01:00
Mike Blumenkrantz 25792d6416 build: enable -Wfloat-equal for compiling
#WarningOfTheMonth
2016-12-19 11:12:02 -05:00
Gustavo Sverzut Barbieri 345bba3ef1 efl_net_dialer_http: fix build on windows.
Windows time_t is not a long, but long-long, then stick with int64_t
so it works everywhere (converts to time_t internally).

And there is no gmtime_r(), then use the gmtime() if not detected.
2016-12-09 19:32:14 -02:00
Jean Guyomarc'h b860c6f18a autotools: fix configure step for non-linux platforms 2016-11-20 14:04:54 +01:00
Gustavo Sverzut Barbieri db4d4f8c87 efl_net_{control,session}: allow "none" backend.
Since connman is specific to linux, on other platforms just compile a
dummy "none" backend that will always report online and no other
details. This will be used in Windows, MacOS and other platforms that
still lack a proper backend.

The compile-time infrastructure also allows for networkmanager to be
added with ease, simply copy "efl_net*-none.c" or "efl_net*-connman.c"
to be a starting point and then add its specifics, adapting
configure.ac and Makefile_Ecore_Con.am
2016-11-18 18:20:25 -02:00
Carsten Haitzler 56fd30f6f3 Revert "efl: disable backtrace for release too."
This reverts commit dc7806e685.

NO. python does it out6 of the box by default. fix the error if you
have one and stop just "turning off the noise". the point of
having this is so that a REAL "why" can be provided by a user by
putting it through eina_btlog and you can see HOW the error happened
at least as a backtrace. turning it off "unless you sety environment
vars" is STUPID. especially for users of e who will likely be unable
to do this a they jusr use a display manager to launch e and cant just
"change environment vars" because they dont know how. you have just
made things worse for getting information fromt he people LEAST
capable of providing information which is where we need automated ways
of doing this "the most".

i use this backtrace all the time. every week or so i identify an
issue just by this built in trace so i know HOW we called that func
because the err complaint was utterly useless as it didnt tell me the
caller etc. which i needed to know "why". this also solves a valid
complain that if you are developibng with efl and e.g. use a legacy
func and pass in an invalid ob you need to know what CALLED the legacy
func. often the issue is several levels up. its the silent masses who
appreciate the feature and use it or then DONT complain. this allows
them to know what the SOURCE of the error is and notjust where it ends
up and this should be done by default out of the box regardless of it
being long because providing more informations is always better than
less. do you propose that kernel oopses should cease dumping all
registers and half a screen worth of junk because "well just set a
kernel boot param to turn it on next time". no. go propose that python
turn off their backtraces by default unless you set and env var. get
these groups to agree to do this, then i'll believe you that this is
TRULYU annoying and not useful and should be off.

you do this just because a few peolpe complain about an error happening
that "SHOULD NOT BE THERE". then FIX THE ERROR. the bt if provided should
nicely provde complete info on how you got there. just making the
error a 1 liner (and those lines are super long and for me 90% of the
time wrap 2 or 3 lines in a terminal) is just sticking your head in
the sand. if its not an error then dont use an eina ERROR use debug or
warn or something else...
2016-11-17 18:41:32 +09:00
Vincent Torri c0d8f1cc37 ecore_con: correctly include sys/ioctl.h
I had to make distclean for this patch to work.

Differential Revision: https://phab.enlightenment.org/D4402
2016-11-16 19:50:24 +09:00
Cedric BAIL dc7806e685 efl: disable backtrace for release too.
User get bitten with this more than they benefit from it. Every use of Eina_Log
will trigger backtrace which clutter the output, confuse and scare users when
they are not suffering anything serious. It is also very trivial for user to turn
it on selectively with EINA_LOG_BACKTRACE when reporting a bug. So let's fallback
to a saner approach. The alternate logical solution would be for application to
just give up on Eina_Log, which is not really acceptable.
2016-11-15 14:10:06 -08:00
Chris Michael fc81a998c8 efl: Remove link to libdrm for Ecore_Drm2
As we are moving to runtime dlsym for libdrm, we don't need to link
against libdrm anymore for Ecore_Drm2

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-15 08:42:07 -05:00
Chris Michael a3721800c4 efl: Require elput for gl-drm
Software drm requires elput in order to function. As gl-drm also uses
ecore_drm2 it should require elput too.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-15 08:42:07 -05:00
Gustavo Sverzut Barbieri 98fe627ca4 efl_net_session and efl_net_control for ConnMan
These are objects to allow control of networking devices
(efl_net_control) as well as an application to request for
connectivity (efl_net_session).

They are loosely based on ConnMan.org, which we already use in
Enlightenment Window Manager via DBus access with Eldbus. However they
do not map 1:1 as the goal was to expose a viable subset of controls
but in a simple and general way, thus nome strings were converted to
enums, some arrays of strings were converted to bitwise flags, some
names were made more general, such as "service" was turned into
"access point" so it doesn't generate confusion with other "network
services" (ie: http server), or "favorite" that was renamed to
"remembered". Some behavior are slightly different (yet able to be
implemented on top), such as "Service.MoveBefore" and "MoveAfter" were
converted to a numeric "priority", calculated from service's list
index, changing the priority will reoder the list and thus generate
the MoveBefore and MoveAfter DBus commands.

ConnMan was chosen not only because we already use it, but because its
DBus API is sane and simple, with the server doing almost all that we
need. This is visible in the efl_net_session, which is completely done
in the server and do not require any extra work on our side -- aside
from talking DBus and converting to Eo, which is a major work :-D

   NOTE: ConnMan doesn't use FreeDesktop.Org DBus interfaces such as
         Properties and ObjectManager, thus we cannot use
         eldbus_model_object.

There are two examples added:

 - efl_net_session_example: monitors the connection available for an
   application and try to connect. You need a connman compiled with
   session_policy_local and a configuration file explained in
   https://github.com/aldebaran/connman/blob/master/doc/session-policy-format.txt
   to get a connection if nothing is connected. Otherwise it will just
   monitor the connectivity state.

 - efl_net_control_example: monitors, plays the agent and configure
   the network details. It can enable/disable technologies, connect to
   access points (services) and configure them. It's quite extensive
   as allows testing all of ConnMan's DBus API except P2P (Peers).
2016-11-08 22:40:34 -02:00
Guilherme Iscaro 70b83ad455 Ecore_Evas VNC: Add frame buffer support. 2016-11-04 18:29:42 -02:00
Carsten Haitzler 4ed2e01591 remove xcb support in ecore_x and evas engines as per mailing list
as per mailing list discussion about dropping xcb support now. it
hasn't been complete for a long time, thus not recommented for being
turned on. as we are moving to a wayland world xcbmakes even less
sense. as agreed, time to clean up a bit and remove a distraction as
well as not well tested code. this also updates po's too.

@feature
2016-11-03 22:22:54 +09:00
Derek Foreman af4a71bcf0 wayland evas engines: share engine info structure
These engines are incredibly similar - by sharing the same engine info
structure we'll be able to simplify the wayland ecore_evas bits and
make them much more maintainable.
2016-11-02 13:37:01 -05:00
Jean Guyomarc'h b5fa168e96
autotools: stop summoning systemd's infernal cow
Systemd support has now been enabled by default on all capable
platforms. By explicitely providing --disable-systemd, one can disable
its integration to EFL.
When I litterally write that I don't want systemd support, please
don't tell me to enable it. It's almost a passive aggression there ;)
2016-10-29 23:43:23 +02:00
Jean Guyomarc'h 403b0ecfa6
ecore_audio: drop support for CoreAudio on macOS
CoreAudio support was initially introduced by commit
62e29b39f4 as an experimental feature.

It played basic sounds, but suffered from drawbacks: it was controlling
the master channel, and therefore any sound played by ecore_audio would
shut down a previous sound (e.g. background music) for the time of the
sound being played. So that wasn't exactly great... Also, after some
time, some hangs have been reported when playing a sound on input. Most
of the time, it translated as a pause in the main loop (see T3797).
More recently (several months ago), ecore_audio with CoreAudio stopped
working during 1.19 development...

So... CoreAudio support on macOS has never been great. And now it's fully
broken. Instead of trying to revive the thing, let just use PulseAudio.
PulseAudio can be installed without any trouble on macOS thanks to
package managers such as Homebrew. Actually, the efl package provided by
Homebrew already provides PulseAudio as a dependency. And it actually
just works very fine. Dropping CoreAudio seems therefore a nice option:
removes unmaintained code, fixes bugs, and add features.
2016-10-29 23:01:38 +02:00
Guilherme Iscaro 4bffa7bfa7 ecore_evas: refactor VNC as an Eina Module.
Summary:
This change removes the necessity to link EFL against the libvncserver

Please ignore the first three commits, they're being reviewed here:

https://phab.enlightenment.org/D4323

Reviewers: bdilly, cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4338

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2016-10-28 09:56:47 -07:00
Carsten Haitzler 973eaedf51 improve responsivness of timer sleeping threads for vsync with prctl
prctl allows us on some platforms to request a thread be woken up more
agressively e.g. due to a timeout bu setting timerslack. since we use
a dedicated thread just for vsync events, this is a very good idea to
ask the kernel to be as exact as possible for this thread as it only
wakes up once per frame (or should only) and accuracy is important. so
use this.

also improve prctl checks to be more explicit in configure.ac and use
these ifdefs in ecore exe too where prctl is used as well.

@feature
2016-10-28 22:58:36 +09:00
Marcel Hollerbach d896e3efc5 elementary: split up the build options from the main header
This splits up the definitions from the buildtool into a seperated file
called Elementary_Options.h.
Reason for that is, that every single time when someone adds or changes
something in Elementary.h.in you need to rerun configure, to get the new
up to date Elementary.h file. With this commit you have a static none
generated Elementary.h file and the Elementary_Options.h file, which
will be regenerated when platform things are changing.

The version of elementary is now defined as the version of efl, since
they are always the same. So we dont need to generate a seperated
version field.
2016-10-27 13:27:25 +02:00
Chris Michael 17652ee8f3 efl: Remove dependency on wayland-cursor library
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-10-25 14:22:07 -04:00
Chris Michael 3a44b0fd17 Revert "ecore-wl2: Remove all references to wl_cursor usage"
This reverts commit 173fda5c11.

Reverting this as we need to handle mouse pointers a different way.
2016-10-25 11:07:32 -04:00
Chris Michael 173fda5c11 ecore-wl2: Remove all references to wl_cursor usage
This commit essentially removes the ability to use wl_cursor for EFL
Wayland Client Applications. This is a request from "some old man" ;)
for efl wayland applications to use EFL pointers, not X/FDO pointers.

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-10-21 15:32:47 -04:00
Gustavo Sverzut Barbieri 278866da2c efl_net_dialer_udp: "connect" to an UDP server to send and receive data.
Like existing ecore_con code, this does not use SOCKSv5 UDP
proxy. It's kinda cumbersome to add since requires a keep alive TCP
connection to the server, a second UDP channel and framing around the
original UDP frame.

Added UDP_CORK (if present) to match TCP_UDP present in TCP sockets,
this allows one to execute multiple write() calls that will result in
a single datagram, generated when CORK becomes FALSE again.

The efl_io_copier_example.c now accepts this as output. There is no
input UDP as there is no way to notify the server of a connection
(since such thing doesn't exit), usually servers react after a
datagram is received, replying to the source.
2016-10-18 19:04:00 -02:00
Subhransu Mohanty 45b103eb0a evas/module: add a new module in vg_loader for eet
Reviewers: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4347
2016-10-13 17:09:39 +09:00
Subhransu Mohanty 0d9b168146 evas/module: Added a new module vg_loader for svg
Reviewers: cedric, jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4346
2016-10-12 18:39:10 +09:00
Bruno Dilly 46c48a498c configure: show if vnc server was enabled or not
So we can see by configure log if it should be working =)
2016-09-28 14:42:58 -03:00
Carsten Haitzler b93947e206 efl configure - show that systemd is enabled by default 2016-09-27 15:05:10 +09:00
Amitesh Singh 3b8fbf6901 autotools: correct the configure help for systemd
by default, systemd on linux is enabled. mention this in help
2016-09-27 10:56:47 +05:30
Guilherme Iscaro bc6e8d2692 Ecore_Evas_X: Add VNC draw support.
This patch adds the support to draw the X11 screen contents to
all remove VNC clients.
2016-09-26 22:06:59 -03:00
Tom Hacohen b242f50626 Eo: introducing libeo_dbg.so.
This has been in the making for a very long time. Thanks to Marcel for
reminding me to do it.

What is it?
This is a tool to help application developers debug their apps with
everything Eo. Eo is strict, but not as strict as it can be. Many strict
tests and debug are very expensive to implement, and we have so many
hot-paths that even basic "ifs" to check if debugging is enabled  will
add significant overhead to normal running applications. This is why I
created this library. All the expensive tests and bookkeeping should be
wrapped around with "#ifdef EO_DEBUG". With this change, libeo.so is
compiled twice, once normally, and once with this define set (as
libeo_dbg.so). This means that normal eo code will not be affected, but
if you decide to debug your application, all you need to do is:

LD_PRELOAD=/path/to/libeo_dbg.so ./app

Or use the convenient wrapper:
eo_debug ./app

Which will load the debug heavy version.

What's currently there: at the moment, EO_DEBUG enables xref and
data_xref and stricter tests when fetching object data.
In the future, I also plan introducing "zombie objects", which
essentially mean that objects are never really deleted, so you can query
them long after they are gone to get more information on what they were.
So if for example you have an object id that you want to query after the
object has been deleted, you can.

I also plan on having a way to disable/enable certain debug mode
features via env vars, and maybe make the test suite link against this
one instead of the normal one, and possibly add more internal hooks for
the test suite to better inspect internal state?

P.S: The amount of errors spewed out when running it on elementary_test
makes me wish I wrote this earlier. :(

@feature
2016-09-22 13:59:46 +01:00
Gustavo Sverzut Barbieri f0f9c5d24a libproxy: dlopen() and make it runtime optional. 2016-09-20 15:00:48 -03:00
Gustavo Sverzut Barbieri 0d478c301f efl_net_dialer_tcp: use libproxy settings.
libproxy allows various means to configure a proxy, will load from
gnome and kde configuration settings, envvars, macos and even windows
registry.

curl still doesn't use it, but we can make that later.
2016-09-19 10:01:51 -03:00