Commit Graph

74 Commits

Author SHA1 Message Date
Mike Blumenkrantz 86656e4df9 compositor rewrite / charlie-foxtrot situation
huge fustercluck commit because there wasn't really a way to separate out the changes. better to just rip it all out at once.

* compositor and window management completely rewritten. this was the goal for E19, but it pretty much required everything existing to be scrapped since it wasn't optimized, streamlined, or sensible. now instead of having the compositor strapped to the window manager like an outboard motor, it's housed more like an automobile engine.

** various comp structs have been merged into other places (eg. E_Comp_Zone is now just part of E_Zone where applicable), leading to a large deduplication of attributes

** awful E_Comp_Win is totally dead, having been replaced with e_comp_object smart objects which work just like normal canvas objects

** protocol-specific window management and compositor functionality is now kept exclusively in backend files

** e_pixmap api provides generic client finding and rendering api

** screen/xinerama screens are now provided directly by compositor on startup and re-set on change

** e_comp_render_update finally replaced with eina_tiler

** wayland compositor no longer creates X windows

** compositor e_layout removed entirely

* e_container is gone. this was made unnecessary in E18, but I kept it to avoid having too much code churn in one release. its sole purpose was to catch some events and handle window stacking, both of which are now just done by the compositor infra

* e_manager is just for screensaver and keybind stuff now, possibly remove later?

* e_border is gone along with a lot of its api. e_client has replaced it, and e_client has been rewritten completely; some parts may be similar, but the design now relies upon having a functional compositor

** window configuration/focus functions are all removed. all windows are now managed solely with evas_object_X functions on the "frame" member of a client, just as any other canvas object can be managed.

*** do NOT set interceptors on a client's comp_object. seriously.

* startup order rewritten: compositor now starts much earlier, other things just use attrs and members of the compositor

* ecore_x_pointer_xy_get usage replaced with ecore_evas_pointer_xy_get

* e_popup is totally gone, existing usage replaced by e_comp_object_util_add where applicable, otherwise just placed normally on the canvas

* deskmirror is (more) broken for now

* illume is totally fucked

* Ecore_X_Window replaced with Ecore_Window in most cases

* edge binding XWindows replaced with regular canvas objects

* some E_Win functionality has changed such that delete callbacks are now correctly called in ALL cases. various dialogs have been updated to not crash as a result

comp files and descriptions:

e_comp.c - overall compositor functions, rendering/update loop, shape cutting

e_comp_x.c - X window management and compositor functionality

e_comp_wl.c - Wayland surface management and compositor functionality

e_comp_canvas.c - general compositor canvas functions and utilities

e_comp_object.c - E_Client->frame member for managing clients as Evas_Objects, utility functions for adding objects to the compositor rendering systems

additional authors: ivan.briano@intel.com

feature: new compositor

removal: e_border, e_container, e_popup
2014-01-14 20:22:02 -05:00
Cedric BAIL 56d9c12676 gdb: test for bad kernel behavior. 2013-12-19 17:11:13 +09:00
Cedric BAIL 147f088efa gdb: detect that the file was generated properly.
This is a workaround kernel that prevent ptrace to another process.
2013-12-19 16:39:46 +09:00
Cedric BAIL fd271ba0c8 gdb: don't forget to turn on file logging to get anything useful. 2013-12-19 16:17:59 +09:00
Carsten Haitzler 0ec99b2ac5 gdb crashdump - restore old e_sys magic into e_start 2013-12-09 19:51:24 +09:00
Sebastian Dransfeld fcc82e3e34 Fix 03d50e9546
If this ever worked it's a miracle. remember_sigill is initialized for
each loop, so it can't remember anything.

Fixes CID 1039950
2013-12-07 22:09:49 +01:00
Sebastian Dransfeld 139153cf2c Initialize siginfo_t
If we don't run the ptrace below, siginfo_t should be initialized.

Fixes CID 1039767
2013-12-07 21:59:56 +01:00
Carsten Haitzler bb4a21e986 e_sys - address security concerns with environment and gdb
1. clear out environment as best is possible before executing
anything. especially PATH and IFS are set to minimal base defaults.
also use clearenv() if available and unsetenv()

2. remove gdb method as it's just too dangerous. run it as normal as
the user and if the kernel / distro dny that - then sorry. too bad.
2013-11-30 22:26:30 +09:00
Jean-Philippe Andre 9637b07ec7 e/cserve2: add restart code for cserve2
Summary: If cserve2 crashes, enlightenment_start will respawn it again.

Test Plan:
Start E18 (in Xephyr maybe) with E_CSERVE set.
Randomly kill evas_cserve2 and enlightenment, and log out from E.

I need review for this patch as I'm not sure about all the ptrace stuff
lying around.

Reviewers: cedric

CC: raster, zmike

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

Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
2013-11-08 16:58:28 +09:00
Carsten Haitzler ae7d8e2a97 don't consider sigbus a trap/crash signal offense - i/o block error for example 2013-09-04 08:54:02 +09:00
Boris Faure 91668e6e8a improve e on debian kfreebsd (Patch by Petr Salinger)
Closes task 302.
2013-08-24 15:52:27 +02:00
Mike Blumenkrantz 5b3408bb85 s/E17/E18/ 2013-06-18 15:44:57 +01:00
Mike Blumenkrantz 2d50567556 set valgrind num-callers to 40 in e_start 2013-05-21 14:58:05 +01:00
Cedric BAIL 6f955263fa enlightenment: do not propagate the systemd socket to E17.
In a proper systemd user session setup, enlightenment_start will be
gone. That is still not doable today and as I plan to roll more feature
in EFL regarding systemd, we need to prevent enlightenment to believe
it is the process started by systemd.
2013-03-15 12:07:47 +09:00
Mike Blumenkrantz 23fac6430a fix e build on 1.7 branch again...
SVN revision: 83940
2013-02-15 08:18:09 +00:00
Carsten Haitzler b239642508 add a E_CSERVE env var - set it befor e_start to make e_start run
cserve2 etc.



SVN revision: 83933
2013-02-15 04:56:11 +00:00
Carsten Haitzler d7d631ea95 begin to put ion code to launch cserve2 for e17 in e_start...
problem... it runs... mostly.. but is buggy.

svgs -> no load (generic loader issue?)
sometimes ie->data2 is null (why?)
font -> instead of normal bvold font.. i'm seeing an italic bold
font.... eek! :(

cserve2 worked well in smaller tests like elm and expedite.. it's not
having a happy day with e17 :(



SVN revision: 83871
2013-02-13 12:50:23 +00:00
Mike Blumenkrantz 9e8e755cdf formatting: all at once
SVN revision: 82625
2013-01-11 10:34:29 +00:00
Cedric BAIL 92ab0600ee e: fix restart of E17 after manually monitoring it.
SVN revision: 82023
2013-01-03 00:32:48 +00:00
Mike Blumenkrantz ae7ca9105f Hi,
here is a patch.

 1. free() already null-checks the passed argument, so it is not
    necessary to do 'if(x) free(x)'.

 2. Moved some '{free(x); x = NULL}' to E_FREE.

 3. In e_start_main.c, 'buf' is allocated with the size of the
    two arguments + '=', so we don't need to check for lenght;
    we should use sprintf().

 thanks
Maxime Villard


SVN revision: 81364
2012-12-19 14:20:34 +00:00
Cedric BAIL a97fb13810 e: forgotten move to PT_GETSIGINGO.
SVN revision: 80408
2012-12-07 02:49:40 +00:00
Cedric BAIL d8b8ba3be4 e: fix build on Solaris 11.
Patch by Robert David <robert.david.public@gmail.com>.


SVN revision: 80204
2012-12-05 02:23:00 +00:00
Cedric BAIL d6b04df109 e: when valgrind is on, no need to ptrace anything.
SVN revision: 80042
2012-12-03 10:43:14 +00:00
Cedric BAIL 85b27ab7e3 e: detect when sysactions.conf doesn't let us run gdb.
SVN revision: 79731
2012-11-27 03:48:05 +00:00
Mike Blumenkrantz cc887a265c formatting
DEAR CEDRIC: PLEASE LEARN HOW TO FORMAT YOUR CODE CORRECTLY. THANKS.


SVN revision: 79276
2012-11-14 09:57:11 +00:00
Mike Blumenkrantz 6f633693a7 fix e_start on BSDs, patch from Maxime Villard
SVN revision: 79218
2012-11-13 10:54:35 +00:00
Mike Blumenkrantz e97ccf53cd by popular (overwhelming) demand, -i-really-know-what-i-am-doing-and-accept-full-responsibility-for-it now prevents enlightenment_start from ptracing, which allows gdb attaching once more
SVN revision: 79202
2012-11-13 07:46:02 +00:00
Carsten Haitzler 80858ec4fc 1. move crashdump to its own file - not in xsession-errors (gets
overitten by whatever is already writing to it)
2. set restart env var so crashes dont bring up init splash.



SVN revision: 79198
2012-11-13 05:47:36 +00:00
Mike Blumenkrantz 4ae43fb422 check for sys/ptrace.h and only use ptrace() in e_start_main.c if it's present
ticket #1757 (3/3)


SVN revision: 79139
2012-11-12 09:23:39 +00:00
Carsten Haitzler 7c7b388014 send enlightenment_start a sigusr1 and it will give up its ptracing
efforts on e17. :) u can then gdb attach as u like.



SVN revision: 79029
2012-11-09 15:42:57 +00:00
Carsten Haitzler f534e30089 put lucas's makefiles back.. but what do you do to make it not break
between builds from older vs newer makefile setup?



SVN revision: 79024
2012-11-09 14:49:05 +00:00
Cedric BAIL 3fe9bed80e E: should now compile on Mac OS X.
SVN revision: 78977
2012-11-07 21:21:04 +00:00
Cedric BAIL 03d50e9546 E: little hack to handle valid SIGILL.
SVN revision: 78976
2012-11-07 20:56:57 +00:00
Mike Blumenkrantz 943d9d7423 fix shadow warning
SVN revision: 78849
2012-11-02 09:50:49 +00:00
Mike Blumenkrantz dc6f35c7f1 unbork e_start; 500 bonus b0rker points to cedric for b0rking the unb0rkable
SVN revision: 78848
2012-11-02 09:50:03 +00:00
Cedric BAIL 380386817b e: full rewrite of our WBOD.
NOTE: the new behaviour require a parent process,
here enlightenment_start, to watch over enlightenment.
It does use ptrace to monitor his child and track
what is going on. When a crash happen it ask gdb to
add the backtrace directly into .xsession-errors.

If you use systemd user session, you may want to offload
that work to systemd. You can do so, but don't forget to
pass -nopause to enlightenment when you start it.

WARNING: For all user, you will need to exit your
current session and start a fresh one for this new WBOD
to work at all. Just restarting Enlightenment will not
help you.


SVN revision: 78742
2012-11-01 06:23:49 +00:00
Mike Blumenkrantz b8677593fc remove all LD_LIBRARY_PATH shenanigans from e17
ticket #1542


SVN revision: 77735
2012-10-10 09:27:24 +00:00
Mike Blumenkrantz 5923846e24 remove e17 preload/precache hacks
SVN revision: 77705
2012-10-10 07:39:08 +00:00
Mike Blumenkrantz 1cdf725b70 formatting
SVN revision: 77704
2012-10-10 07:31:26 +00:00
Sebastian Dransfeld 5969b88a6a e: cleanup env var setting
Return early if there is nothing to append/prepend.
Only add ':' if there are two elements to join.

SVN revision: 77295
2012-10-02 09:26:30 +00:00
Mike Blumenkrantz f8e5e23135 fix hilarious crash startups when using enlightenment_start
SVN revision: 76415
2012-09-10 15:30:48 +00:00
Carsten Haitzler 05ed922ca5 move env var (PATH, LD_LIBRARY_PATH) fiddling to enlightenment_start
and append if u know what u are doing.



SVN revision: 76385
2012-09-10 09:34:01 +00:00
Cedric BAIL 1a728fafd9 e: add an option to automatically attach gdb when using valgrind.
SVN revision: 73904
2012-07-16 03:19:37 +00:00
Vincent Torri c3b0637802 e17: whitespaces--
SVN revision: 72561
2012-06-21 06:19:43 +00:00
Carsten Haitzler 56c31ab510 add missing )
SVN revision: 69704
2012-03-28 12:55:08 +00:00
Carsten Haitzler 6233bd09f0 put env bug so waiting to happen - env vars wont be set. no crash
though.



SVN revision: 69696
2012-03-28 07:26:22 +00:00
Carsten Haitzler cef3afa355 support mtrack... my new little memory tracker so i can finally live
track down leaks and other badnesses.



SVN revision: 65335
2011-11-17 10:19:50 +00:00
Carsten Haitzler d781ff368c fix up enlightenment_start to use eina_prefix properly.
SVN revision: 62890
2011-08-27 16:25:51 +00:00
Christopher Michael 1a13f8c26f E: Make E work with the new XCB stuffs. This breaks out e_alert into
it's own utility (as per raster's request/idea). Remove explicit
x_clags in Makefile.am(s) as they are no longer needed.

NB: I added some additional libs to the precache stuffs (even tho it's
not used right now). Also a newer e_main (more optimized).

NB: IF you are brave and want to test this, build evas w/ xcb, build
ecore w/ xcb, then rebuild E. Also, disable building opengl in both
evas & ecore (it's not ready for public consumption when paired w/ xcb).



SVN revision: 61680
2011-07-25 09:40:18 +00:00
Cedric BAIL 9dc05e298b * e: handle more valgrind tool to monitore e17.
SVN revision: 47600
2010-03-30 15:13:45 +00:00