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.
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.
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.
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
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
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
Most of these functions actually shouldn't be used by
standard applications. Some are hidden behind @protected.
flush_all() and reload() have not been implemented, on
purpose (save() should flush, and reload is automatic).
Summary: This fixes compilation on Windows: timeout.c is using SIGALRM which is unavailable on Windows
Test Plan: compilation
Reviewers: cedric, jpeg, stefan_schmidt
Differential Revision: https://phab.enlightenment.org/D4058
On Solaris, this header is necessary for finite(). Instead of including it
if the sun compiler is used, include it if it exists. This fixes a warning
if gcc is used on Solaris
Summary: This ports the loader to the stable cpp api.
Test Plan: Please test this patch and tell me if there are differences
Reviewers: DaveMDS
Subscribers: jayji
Differential Revision: https://phab.enlightenment.org/D4039
This is heavily inspired from Eo_Id infrastructure. Main change
are that the lower bit are always guaranteed to be zero and ignored
by all function. Also it may be a little bit less efficient in some
case, but we will tune it once we have real life usage of it.
Eo won't be migrated for 1.18 to it as Eo_Id is deeply integrated
and it is quite risky to touch it so close from a freeze. This can
wait.
Now configure should abort in case poppler is not found (unless explicitly disabled)
I'm still not sure about the hard "poppler < 0.40" requirement
added by jpeg yesterday, we should fix the issue instead of
tell "we don't support it"
This disables PDF load if poppler >= 0.40 (current is 0.42 on
my machine). Those image loaders definitely should be explicitely
enabled or disabled, not enabled based on the system.
Apparently, libudev is not thread-safe which means we cannot use Eeze
for getting the udev but rather need to actually use libudev, so those
revert needs to be reverted.
This reverts commit 354bc66d0d.
A better fix to not use libudev functions has been pushed previously,
so there is no need to add an extra dependency on libudev as we use
Eeze already.
This reverts commit 9d429a7c1f.
lib/elementary/.libs/lib_elementary_libelementary_la-elm_cnp.o: In function `wl_data_offer_accept':
/usr/include/wayland-client-protocol.h:893: undefined reference to `wl_proxy_marshal'
/usr/include/wayland-client-protocol.h:893: undefined reference to `wl_proxy_marshal'
collect2: error: ld returned 1 exit status
Based on a patch by aerodynamik. Thanks!
Fixes T3398
Elput is using udev directly so we need to amke sure we link against it.
lib/elput/.libs/lib_elput_libelput_la-elput_input.o: In function `_elput_input_init_thread':
/<<PKGBUILDDIR>>/src/lib/elput/elput_input.c:317: undefined reference to `udev_new'
/<<PKGBUILDDIR>>/src/lib/elput/elput_input.c:326: undefined reference to `udev_unref'
Patch by aerodynamik. Thanks!
Fixes T3712
so the theme build can order ok/cancel based on preference for an os,
so make configure have an option for this and build the theme
specifically based on that option. enable the option if you want mac
style cancel, ok or default ok, cancel as is common elsewhere.
--enable-cancel-ok
is the option
@feature
Small patch to deprecate Ecore_Drm. This patch also adds a configure
option to enable ecore_drm for older code. This option is disabled by
default, so must be explicitly specified during build.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
sched_getcpu() is glibc-only, so not portable. Mac OS X
does not have it, and has no obvious replacement function.
This commit will allow future code to test for the existence
of this function, to provide fallbacks instead of making
compilation fail.
Libuwind may not be shipped with a pkg-config file.
It can be distributed on the system, but the autotools
would fail to detect it because it relied only on pkg-config.
We now first check with pkg-config, and then try to compile and
link a program using libuwind to see if it is supported anyway.
This is a first step towards a working eina_log_backtrace on
Mac OS X.
On Mac OS X, we are using OBJC, not GNU-OBJC.
This test seems unnecessary as well, as a longuage tests
and a linking test are performed later.
Fixes T3710.
This new library is going to replace the existing Ecore_Drm. This will
refactor a lot of the code, bring improvements over the existing API,
and provide additional support for missing features.
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Summary:
this removes the cares/ares based resolver and the compiled-in dns.c
resolver, modified the getaddrinfo based resolver to use threads not
forking (almost halving its size) and now makes that the only resolver
we have. getaddrinfo handles ipv6 and ipv4 (according to docs). this
simplifies code paths, drops code size of the efl tree by about 11k
lines of code, makes it easier to test and more robust to future
changes with ip resolving as it now just relies on libc. we won't have
coverity complaints on dns.c imported code anymore to fix and don't
have tokeep up with bugfixes/security from the upstream imported code.
this means we use a single resolver on all platforms (windows, mac,
linux) as opposed to before where cares was used for windows, and
dns.c on linux/mac. oh and the forking original was broken since our
move to eo too. so it couldnt even compile if enabled, letalone work.
so fix bug with missing /etc/resolv.conf that dns.c couldn't cope
with, fix testability, fix maintainability and reduce efl codebase size.
this fixes T3668
@fix
@improve
Subscribers: cedric, seoz, jpeg
Maniphest Tasks: T3668
Differential Revision: https://phab.enlightenment.org/D3971
Before this commit, X11 (via Xquartz) was the default engine to be
enabled on OS X.
Since the Cocoa backend became quite stable and considering applications
running within the Xquartz windowing environment are arguably ugly,
the Cocoa backend will now be enabled by default and X11 will be
selected only if explicitely requested.
As packager will need to update their package anyway with 1.18 it is a
good time to finally make evas depends on ecore. This should enable
refactoring and simplifying a lot of complex code in EFL. This really
should have been done like that from the beginning.
This patch makes building Ecore_Wayland library disabled by default
but provides an option to enable it (if needed).
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
add support for reconnecting wayland applications if the compositor dies
disconnect -> destroy gl ctx + image textures -> block rendering ->
reconnect -> create gl ctx -> create image textures -> unblock rendering ->
sprinkle special seasoning on top -> just like ma used to make
#SamsungFeatures
@feature
This reverts commit b8860c88f5.
i wouldn't call this full of CVE's:
http://www.cvedetails.com/product/3881/Libtiff-Libtiff.html?vendor_id=2224
i do notice various CVE's on libtiff's mailing list have had patches
committed. the CVE db doesn't track if the CVE has been fixed by
upstream (in an easy to find way) and in which version or on what date so
the CVE db simply is all CVE's since the dawn of time that were ever filed.
Since session recovery is now included in Ecore_Wl2 library, we should
add a dependency on the uuid library. Thanks to aerodynamik for
reporting.
Fixes T3505
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
So I have been battling with autotools on this for a full week now,
and what we want is basically impossible. A.k.a. one file definition
and possibility to do a full build or just a partial build of efl.
Even moving to just partial build require to land a massive patch that
change everything in our build system and this is just not a road I
want to take.
For reference, if one day automake allow the use of any kind of variable
(autoconf AC_SUBST expansion or $()) in the _SOURCES parameter, it will
be possible to fix. Alternatively if they allow to build subdirectory
before they do BUILT_SOURCE, it would make it possible to incrementaly
move to only partial build. In the mean time, a less problematic solution
is to duplicate source code.
As elput can potentially use systemd-logind for various input device
functions, we should add this as an optional dependency in the
configure checks.
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
The elput library is an efl abstraction for the libinput library which
can be used by various other subsystems (ecore_fb, ecore_drm, etc) to
handle interfacing with libinput without having to duplicate the code
in each subsystem.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
I didn't know preview generation was so slow and done completely serialy.
There is potential improvement here. Still need to kind of merge the
documentation into something readable.
A small hack to the toolchain allows us to generate enums with eolian
for use by Eet and Emile (internal or otherwise non-eo libraries).
Thanks to how BUILT_SOURCES works, the eo.h files required by Emile
will be generated before they are used.
This adds a partial dependency on eo for eet and emile:
- package dependency
- include dependency
There is no library link dependency.
after elm merge build broke with things like this enabled. this fixes
that.
i'd like to bring up one issue here. ecore_drm is not a good
abstractionlayer. it requires libdrm and other headers from system and
it should have abstracted things so the system libdrm is hidden/not
needed for build (or even perhaps at runtime and this could be rolled
into ecore_drm). this is how ecore_x is... and ecore_fb etc.
This make elementary break the modularity of the underlying layer. I haven't looked
at what is going on here, but basically if you have a wayland, a drm, whatever backend
turned on. You need elementary to be link against that ecore_* directly. This means
we are lacking in abstraction in Ecore_Evas and are dlopening to much library at
startup. This needs to be improved in the future.
I am guessing this is related to maybe DnD and C&P.
EGL Fullscreen is a module intended to support many proprietary GL driver that come
with custom API to create framebuffer/window. This one is starting by covering Android
with libhybris/hwcomposer. Later on, it should be able to support easily the Raspberry Pi
driver.
At this moment this does not work properly. Activate it at your own risk ! Do not report
bug if you don't know what you are doing :-) A backend for Ecore_Evas will come later on
along with a patch for Ecore_FB to use libinput. Finally a few patch should hopefully
enable this backend to work and compile more easily (relying on proper header detection
and dlopen/dlsym for access to proprietary function).
You can read more about the goal of this patch by reading our wiki at :
https://phab.enlightenment.org/w/boot2efl/
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
This reverts commit 1affc60d00.
This reverts one of three parts of the try to get sub directory
compilation back into eina. It breaks our distcheck though and I
talked to Cedric about it and he prefers to revert these as we might
need to go another route to bring this functionality back. Details
will come to the mailing list.
Do not force this on everybody who runs with tests=coverage. It makes stdout
impossible to follow as well as overruns the tests log file. If one wants to
run with -DDEBUG it can be set from your own CFLAGS.
After aca6fc8c36 there have been problems when
linking when having coverage enabled.
AC_SEARCH_LIBS was used wrongly here. You need function name first and lib to
link against as second argument. The symbol name also has wto leading
underscores for me.
/usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/../../../../x86_64-pc-linux-gnu/bin/ld generated: undefined
reference to `__gcov_init'
OSX uses clang as a default compiler instead of gcc.
Gcov does not exist for clang, but clang has an alternative which
requires additional compilier and linker flags.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Without this compilation would fail with undefinded EVAS_DICTS_HYPHEN_DIR if
--with-xattr-tests-path was not given but hyphen enabled. Use a sane default
(/usr/share/hyphen/) to avoid this. Customization is still possible.
When we introduced the usage of floor() in ecore_drm_evdev.c we forgot to
include math.h for it as well as linking against libm. This caused linking
failures on some systems while it still worked on others. Better fix it for
good.
Original patch by aerodynamik.
ref T2953
So many problems from people who customize their builds in this
incompatible manner.
There really should be only one configure option as we don't
support opengl+egl (although possible in theory) or gles without
egl. Keeping both to not break existing builds.
The build stop wile building eldbus-codegen:
CCLD bin/eldbus/eldbus-codegen
CXXLD bin/eolian_cxx/eolian_cxx
CCLD lib/ecore_x/ecore_x_vsync
CCLD lib/evas/common/libevas_op_blend_sse3.la
CCLD lib/evas/common/libevas_convert_rgb_32.la
CCLD lib/ecore_ipc/libecore_ipc.la
[...]/i686-ctng-linux-gnu/bin/ld: warning: libefl.so.1, needed by lib/ecore/.libs/libecore.so, not found (try using -rpath or -rpath-link)
lib/ecore/.libs/libecore.so: undefined reference to `efl_control_suspend_set'
lib/ecore/.libs/libecore.so: undefined reference to `efl_control_interface_get'
collect2: error: ld returned 1 exit status
Makefile:19135: recipe for target 'bin/eldbus/eldbus-codegen' failed
make[6]: *** [bin/eldbus/eldbus-codegen] Error 1
A dependency on libefl seems to be missing for eldbus.
Fixes T2718 and T2952
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Putting aside the question if we need or want this option we should make sure
people at least have correctly updated documentation. We switched the option to
..abb but not the docs.
The wayland build requires uuid which we need to make sure we have as dependency.
Not a real problem as all wayland supported systems should have it.
Based on a patch by aerodynamik. Thanks!
Fixes T2951
To configure efl sources with bindings to use in nodejs add ––with-js=nodejs in configure flags to generate node files
$ configure --with-js=nodejs
and compile normally with:
$ make
$ make install
To use, you have to require efl:
efl = require('efl')
The bindings is divided in two parts: generated and manually
written. The generation uses the Eolian library for parsing Eo files
and generate C++ code that is compiled against V8 interpreter library
to create a efl.node file that can be required in a node.js instance.
@feature
The EINA_LOG_BACKTRACE thing is aimed at production environments,
so we can extract a backtrace from a log file post-mortem, but not
for continuous development of EFL itself.
I know this should make a few people happy.
Align it with the rest of our cmake support files. Adding it to configure as
well so the cmake file gets generate from the cmake.in
Without this I had distcheck failing with a missing target for it.
We now support hyphenation in style. Use "wrap=hyphenation" to use this
wrap option. It will hyphenate based on explicit SOFT HYPHEN (­)
placement in the text, and with the (optional) assistance of dictionaries
compatible with Hunspell's "hyphen" library.
This wrap mode favors breaking at hyphen positions in a word, over moving
the whole word to the next line. It will put an additional "-" at the
break position if it was hyphened.
Enabling the hyphen dictionaries is done by adding these configure
options:
--enable-hyphen (requires Hunspell's "hyphen" library installed)
--with-dictionaries-hyphen-dir=DIR (specifies the install location of
the actual .dic dictionary files e.g. /usr/share/hyphen)
Note that dictionary files are expected to be in the form of "en_US.dic"
or anything that ends with it e.g. "hyph_en_US.dic" (this how they are
named in Arch Linux).
@feature
The detection in configure.ac includes netinet/in.h, for linux, but this header
file does not exist on Windows. So guard this header.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This reverts commit e83fae6960.
cserve2 is enabled by default at build time. It's disabled by
default at runtime. Basically it's always built but never used.
By default, multisense is disabled. The configure help message for
multisense was incorrect because it stated that multisense was enabled
by default
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
By default, cserve2 is disabled. The configure help message for
cserve2 was incorrect in that is said cserve2 was enabled by default.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This is faster in most cases, and to be honest, should be much faster
than it is. I don't understand why there's no better directive to mark a
variable as *really* important thread storage that is used all the time.
Summary:
Xprint has been deprecated since 2008.
It's recently (August 2015) been removed from debian.
Reviewers: zmike, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3150
Summary: Implement basic kqueue/kevent backend for eio. When it comes to tracking directory changes, this backend falls back to the polling one.
Test Plan: Ran Enlightenment for several days and some other EFL apps without any issue.
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Projects: #e_on_freebsd, #efl
Differential Revision: https://phab.enlightenment.org/D2983
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Everything is implemented except visualization, mouse events and some
EMOTION_EVENT. Video can output RGBA, YUY2, YV12 or I420.
About the video sink: this emotion module use libvlc callbacks:
libvlc_video_set_format_callbacks and libvlc_video_set_callbacks. It may be
temporary. Indeed, an other solution is to add an Evas module inside vlc. But
this vlc module would need to link with emotion in order to use
_emotion_frame_new and _emotion_frame_resize private functions. I didn't
succeed to output a frame without these private functions: see
15daff4d3f
List of /* FIXME */:
- Visualization not implemented since there is no API (for now) in libvlc.
- Mouse events not implemented since there is no API (for now) in libvlc.
- Some EMOTION_EVENT are not handled.
- SIGSEGV in evas_gl_common_texture_nv12_update with
EVAS_COLORSPACE_YCBCR420NV12601_PL colorspace.
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3071
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
added support to set thread names for debugging. this wraps the gnu
extension to set a thread name of up to 15 chars (16 inc nul byte).
eina_thread_name_set() is the new api.
@feature
in the process i found the autofoo wasnt enabling cpu affinity support
at all in reality, so i had to fix that at the same time.
Summary:
since all the libs got merged into libsystemd in 209, we can just check
for libsystemd
Reviewers: cedric
Subscribers: stefan_schmidt, morlenxus
Differential Revision: https://phab.enlightenment.org/D2984
Some files were still including SDL-1 headers even though we only link
against SDL2 libs.
URL: https://bugs.gentoo.org/551882
Reported-by: Barnaby <badbit@me.com>
Reported-by: Romain Naour <romain.naour@openwide.fr>