Commit Graph

840 Commits

Author SHA1 Message Date
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
Derek Foreman a453599d26 eina_cpu: Detect NEON if available
We may have a few conditionals around that think this has actually been
set at some point, let's surprise them by actually doing that.
2016-09-16 14:10:49 -05:00
Cedric BAIL 2f1d23648a autotools: time to turn on systemd integration by default on Linux. 2016-09-07 11:28:24 -07:00
Jean-Philippe Andre 7b5ec6ce30 configure: Enable elput if wayland is requested
This makes ./configure --enable-wayland work without having to
specify --enable-elput.
2016-08-25 20:10:43 +09:00
Simon Lees 2483f30f48
Fix elementary build when xkbcommon is in a non standard location
@fixes T4413
2016-08-24 18:38:03 +09:30
Jean Guyomarc'h 0ced470e39 ecore_con: fix compiling on OSX and BSD
TCP_CORK is Linux only. TCP_NOPUSH is supposed to
do the same thing than TCP_CORK, but on BSD (including
Mac OS X).

We now check for the existance of TCP_CORK or TCP_NOPUSH,
and use the right option. If none exist, cork_{set,get}
will just fail.
2016-08-23 20:28:44 +02:00
Gustavo Sverzut Barbieri e7df1a7483 efl.net: socket, server and dialer for TCP.
Efl.Net.Server defines how to accept new connections, doing the
bind(), listen() and accept() for protocols such as TCP.

Efl.Net.Dialer defines to to reach a server.

Both are based on Efl.Net.Socket as communication interface that is
based on Efl.Io.Reader, Efl.Io.Writer and Efl.Io.Closer, thus being
usable with code such as Efl.Io.Copier.

The Server will emit an event "client,add" with the established
Socket, which is a child and can be closed by both the server or the
user.

The Dialer extends the Socket and allows for creating one given an
address, that will be resolved and connected.

TCP is the initial implementation so we an validate the
interfaces. UDP, Unix-Local and SSL will come later as derivate
classes.

The examples are documented and should cover the basic principles:

 - efl_io_copier_example can accept "tcp://IP:PORT" and will work as a
   "netcat", can send data from socket, file or stdin to a socket,
   file, stdout or stderr.

 - efl_net_server_example listens for connections and can either reply
   "Hello World!" and take some data or work as an echo-server,
   looping back all received data to the user.

More complex interactions that require a "chat" between client and
server will be covered with new classes later, such as a queue that
empties itself once data is read.
2016-08-22 18:25:14 -03:00
Jean Guyomarc'h 26a26f2304 eina: fix use of strerror_r()
So, first, the wrong strerror_r() was detected on
Mac OS X. Instead of using a complex set of macros
to try to detect which strerror_r() to use, when
it is defined, let the autotools handle that clerverness
for us.
2016-08-22 20:02:02 +02:00
Stefan Schmidt 4bbe8733c4 configure: Switch to dev mode again. Merge window for 1.19 is now open. 2016-08-11 17:54:59 +02:00
Stefan Schmidt 105eb1aca2 release: Update NEWS and bump version for 1.18.0 release 2016-08-11 17:06:30 +02:00
Hermet Park 77d2e0cb95 efl: fix a neon build break.
We found a some build break problem due to a build system.

In efl configuration, our efl configure enables neon if it's available,
but neon gonna partially turned off on evas compilation if the build system
has a non neon CFLAG option (ie, mfpu=vfpv..). In the end, neon is partially enabled
and it turns out a build break.

It's non-sense but we can't allow this breakage.

There is no way to ignore build system option nor override our neon option perfectly,
so, Let efl package ruled by build system overall.
2016-08-04 15:39:51 +09:00
Carsten Haitzler 1f48ce5f6b emotion generic - vlc - make it off by default as 2 video bends is silly
as per bug. requiring by DEFAULT 2 video back ends is rather
rediculous. pick one and the others are optional. you could argue xine
now is barely worth it, but it's stable and works and has proven to be
not any real pain.

gst1 is a more optimal and far more complete/featured backend that the
vlc generic one anyway. vlc generic has the bonus of out-of-process,
but gst1 is pretty stable (unlike the 0.1 backend), so let's not make
peolpe install 2 video backends (or possibly 3 or more) just to build
efl out of the box.

this fixes T4284
2016-08-04 08:04:57 +09:00
Cedric Bail 7925c56ec9 emotion: fix autodetection of emotion generic vlc player module.
T4273
2016-08-03 12:01:17 -07:00
Stefan Schmidt 716be1bae4 release: Update NEWS and bump version for 1.18.0-beta2 release 2016-08-02 22:21:18 +02:00
Cedric BAIL dd1d3f0d2d autotools: since it has been broken for some times and nobody noticed, let's remove per directory support. 2016-08-01 13:36:47 -07:00
Carsten Haitzler 1d0b500fa8 edje - reduce memory footrpint by dlopening ephysics on demand
this saves about another 80Kb or so in dirty pages by only loading
ephysics when needed. This removed ephysics and bullet library dirty
pages from the process space. this is another patch to address T4227.

@fix
2016-08-01 19:11:39 +09:00
Carsten Haitzler d27f5fcab7 ecore_audio - save 232k of real RAM by dlopening depednecies
so libpuls and libsndfile suck in dependencies. they suck in so much
that by the time linking is done we've written to about 230kb of
PRIVATE MEMORY as dirty pages in symbol tablesm global veriables etc.
etc. - this is just horrible. especially if an app never makes any
sound... it's just wasted memory. this stuff is invisible to normal
memory debug tools. so this begins to address things. please see
T4227. my numbers now put me at:

1780Kb total dirty writable mapped from library file pages. down from
2012Kb.

This fixes some memory bloat reported in the above ticket, but there
is more to fix for sure.

@fix
2016-08-01 14:41:15 +09:00
Cedric Bail 3a9d43ff31 eina: add back option lost at some point for debugging. 2016-07-28 21:03:12 -07:00
Stefan Schmidt 1af18a8c85 release: Update NEWS and bump version for 1.18.0-beta1 release 2016-07-26 17:18:24 +02:00
Carsten Haitzler 287c543ea3 efl - when evas generic loaders merged the gst loader was missed. fix
this fixes the missing gst loader from generic loaders.
2016-07-25 15:21:45 +09:00
Stefan Schmidt 556082d2e2 release: Update NEWS and bump version for 1.18.0-alpha2 release 2016-07-23 12:02:52 +02:00