Commit Graph

123 Commits

Author SHA1 Message Date
Carsten Haitzler cc4df8d320 paranoia for silly people - check efl version aty runtime via eina
enlightenment_start checks the efl version and complains if it's too
old. this shoulpd at runtime give some sensible output for shen
someone did somthing very silly. it'll write this to stderr AND to
~/.e-log.log
2024-01-17 18:37:31 +00:00
Carsten Haitzler 05e150ad43 e wl - force gl for wl mode now due to kernel breaks
also make session file do this by default for wl mode.

@fix (work around kernel changes?)
2022-08-26 08:53:03 +01:00
Carsten Haitzler 5cf747d45d wayland support - add watermark and bug message and pause
this will clearly alert a user they are using e in wayland mode. this
is needed as there seems to be far too much confusion if e is in
wayland or not and when it is people having issues. this makes sure
e's wayland session desktop also has the label in it so it's clear etc.
2022-05-13 20:36:58 +01:00
Carsten Haitzler 8edf2fc0a3 e start - force stdout/err to go to specific log files
~/.e-log.log is now the stdout/err from e and child processes. finally
it always goes to a single known file. always. e will rename the old
old ~/.e-log.log.old on start - e_start handles this before it execs e.
2021-11-11 14:25:44 +00:00
Carsten Haitzler 86dd52026a e start - make e exit with parent when possible
also clean up some formatting
2021-11-11 13:37:18 +00:00
Carsten Haitzler 422b757080 e start - remove valgrind run infra - i don't see people using it
also it seems to have broken. simplifying e start to flesh it out in
more useful ways for more people
2021-11-11 12:05:09 +00:00
Carsten Haitzler 98ebe14ffd e start - clean out some unused junk in code and output 2021-11-11 11:31:17 +00:00
Alastair Poole c077e3dc33 e_start: Fix typo in error string. 2021-03-31 19:20:35 +01:00
Carsten Haitzler 347c29b952 watchdog - add a watchdog thread that pings mainloop every 10sec
if the main loop were to hang for some reason, this would detect it,
forcibly exit e and e_start can restart e again so things are working.

@feat
2021-01-02 15:25:02 +00:00
Carsten Haitzler bd69387369 e_start - remove noisy debug that isnt useful 2021-01-01 18:29:06 +00:00
Carsten Haitzler 8c06fc454c e alert - use same exit codes as e for explicit restart/logout
be consistent.
2020-07-27 11:15:21 +01:00
Carsten Haitzler 9fcd087b85 exit codes - clean up and handle consistently
also x io error - exit as we must.
2020-07-20 14:21:20 +01:00
Carsten Haitzler e0227cf536 e start - handle exit code for restart AND exit choices because of lib
so library somewhere is causing an exit(1) sometimes... this means i
lose my entire desktop. this is not e doing it... so it's some
dependency bug and this shouldn't happen - but it does and it causes
the entire login session to be losst, so treat an exit code ofr 0 as a
clean exit, and anything else as a bug to be handled like segfaults
etc. and restart e.
2020-07-12 09:58:06 +01:00
Alastair Poole 8cc3bd7cdb e_start_main: Guard against malloc.h on BSD.
This fixes a build break on FreeBSD. Guarding as per other
blocks. These guards can be removed at a later stage as OpenBSD
has removed malloc.h and FreeBSD is in the process of
reintroducing it after a failed attempt to deprecate the header.
For consistency's sake keep these blocks identical within the
tree. We can nuke these later when FreeBSD make their minds up.
2020-06-24 23:45:29 +01:00
Carsten Haitzler 1aad79dbe7 init splash - make it default as it no longer needs an option
it used ot be a separate process to run to hide e starting in the bg
on a slow hdd loading modules etc. but due to compisitng and other
changes its all internal now, so keep it on always as it guarantees a
better smoother experience with less complexity to maintain.
2020-06-09 15:54:58 +01:00
Carsten Haitzler 74815ebc9b e start - save 24k of stack that gets touched then never again.
use less stack with smaller "just big enough" alloca'd string buffers.
as e_start hangs around looking after e all day, using a bit less mem
is a good thing.

@opt
2020-06-07 00:54:57 +01:00
Elyes HAOUAS f84d23ffd2 Remove duplicated includes
Remove duplicated includes

Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11857
2020-05-19 13:06:21 -04:00
Carsten Haitzler bd97c74492 e alert - in case of crash use e system in new alert mode
this forces all ddc/backlight devices to max when discovered so you
can always see the alert.
2020-04-21 03:01:54 +01:00
Carsten Haitzler e07e56036a e - stop trying to fixup xdg runtime dir env var - leave it as is
so it's consistently broken .. or not. os/distro should just set this
for login sessions.
2020-04-16 13:09:04 +01:00
Carsten Haitzler 71cbbeff27 e start - clean up xdg runtime dir in e_start not e if created in estart 2020-02-13 16:06:44 +00:00
Carsten Haitzler 6373d5583b move xdg data dir fixup to e_start to esnure its set super-early
now everything e launched should agree on xdg data dir if hose os
doesn't set it (bad host os!) :)
2020-01-16 10:38:54 +00:00
Carsten Haitzler e122b2855f e start - fix warning on unused params when ptracing 2020-01-15 19:06:24 +01:00
Carsten Haitzler 15a5a49835 e main - use exit code 111 to have e_start parent process restart e
this means no leaked fd's between restarts too. cleaner. it also
encorces "die with parent" for enlightenment_start too as another
bonus in addition to its own fifo handling for singleton access per uid.

WARNING: you need to log out and log back in since the "protocol
expectations" (what exit codes do what and what parent and child
process are responsible for) changed so to get them both back in sync
you need to log out and in.
2020-01-15 11:33:55 +00:00
Carsten Haitzler 1a867c180d e alert - use the provided font ttf for the alert
this enforces the look i wanted, and also makes this work when no sans
or mono font exist.
2019-10-09 18:47:16 +01:00
Carsten Haitzler 6d8a1bd3fe kill e process before alert in non-x uses 2019-09-27 19:29:14 +01:00
Carsten Haitzler b0fcdf1759 e start - use static env vars when they are actually static
this avoids any possible leaks from these and uses less heap.
2019-06-04 07:14:01 +01:00
Carsten Haitzler d798b9ea83 e_start - fix alternate ifdef path putenv memory issue
we'd have corrupted env vars with the alloca code we had to store the
env var, so always malloc it at all times. as we won't (likely) be
calling env_set() multiple times for the same environment we won't be
leaking, and at worst - not very much at all.

@fix
2019-06-04 07:06:30 +01:00
Carsten Haitzler f0aafab359 e alert - change exit codes around so exit is explicit
so often enough i find e_alert is hung and you have to kill it to get
e back. this ends upo exiting and logging you out. this is not good.
the defaul should be to restart not to dump you out and lose
everything. so switch these around to be more user-friendly.

on the cards is to redo e_alert to be simpler (use full efl stack) and
thus hopefulyl be reliable in wl mode etc.
2019-05-14 21:29:32 +01:00
Carsten Haitzler 851acc7ff7 desklock - pass lock state info to e_start to lock on crash restart
is e crashes, catches it and restarts while locked you end up
unlocked. this lets enlightenment_start know this lock down state and
it sets an env var to ensure locking happens on restart after recovery.
2018-03-23 17:18:00 +09:00
Carsten Haitzler 6972a97d5d e start - fix path prepend/append if already in path assuming clue
"
I have a directory at the head of my PATH that contains alternate
versions of command line utils like grep, ls, etc., but E puts
/usr/bin ahead of it, overriding my tools of choice with the system
defaults.

If my understanding is correct, the only way currently to have
directories that E prepends to your PATH appended instead is to use
-i-really-know-what-i-am-doing-and-accept-full-responsibility-for-it.
I'd like to see a more sane option if there isn't one already.
Alternatively, I wonder if it wouldn't be a better idea to only
prepend directories to PATH if they aren't already contained within
it--thereby preserving the user's desired search order.
"

this should fix T5953

@fix
2017-09-13 18:32:38 +09:00
Carsten Haitzler fe7c39fa18 e_start - remove evas deps - don't need them.
e_start isnt really using evas atm - cserve2 env vars arent being set
so remove it - e_start can start a little faster with less linking...
good for startup time perhaps and mem footprint of e_start while it
babysits
2017-08-11 15:43:39 +09:00
Carsten Haitzler 655a8f3218 e start - remove mtrack ... no one using it (not even me)
:)
2017-06-21 11:27:50 +09:00
Carsten Haitzler 76ed021006 e - e_start - update mtrack to use new debug mode for hunting bugs
this won't affect anyone who doesnt have a ~/.e-mtrack file ... this
is for debugging purposes and no others
2016-04-21 09:42:13 +09:00
Mike Blumenkrantz 2343ab165a remove security hole in e_start_main
if a file called ~/.e-mtrack existed then during startup the launcher would
read the first line of this file and set LD_PRELOAD to that value

CID 1039785
2016-02-29 10:42:39 -05:00
Yomi 0dc33a5aeb Fix misspellings in E's files.
Summary: Fix misspellings and spaces in E's files.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2676
2015-06-16 16:10:21 -04:00
Carsten Haitzler b3cc1dc364 e start - path manipulation - don't add a : if there already is one
avoids adding more : chars to make a broken path even worse
2015-05-27 08:43:13 +09:00
Chris Michael 0a94e8ba71 enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-07 15:13:10 -04:00
Mike Blumenkrantz 471dcb24cb __UNUSED__ -> EINA_UNUSED
this has been bugging me forever. __UNUSED__ is no longer a valid macro here.
2015-03-18 18:09:09 -04:00
Tom Hacohen 86654c86f8 Allow building without ptrace
Summary: Building without ptrace (on OSes which do not support it, like OpenBSD) did not work, because the fallback code had small typos.

Reviewers: devilhorns

Projects: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D1990
2015-02-18 12:36:20 +00:00
Stefan Schmidt 9336d7c372 e_start_main: Close fd only if we actually succeeded opening it.
In the error case fd would be -1 here. Closing needs to be handled in the
cases where fd != -1.

CID: 1256492
2014-12-02 10:50:27 +01:00
Chris Michael c7386d61c9 e-start: Fix 'control reaches end of non-void function'
Summary: Seems one of the Daniels did not check their compiler output
;) _e_ptrace_attach function should return an integer value...

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-01 11:55:32 -05:00
Daniel Kolesa ef82c30bb4 fix indentation 2014-12-01 16:30:57 +00:00
Daniel Kolesa 715d7f00b4 remove unused variable 2014-12-01 16:28:46 +00:00
Daniel Kolesa f918476da1 e_start_main: refactor (reduce scope depth, separate ifdefs, cleanup)
The main reason for this change is to clean it up for proper non-Linux
platform support, but also to make it cleaner in general.
2014-12-01 16:25:58 +00:00
Daniel Kolesa 245d26c7c7 detab e_start_main.c; spank spank spank 2014-11-28 15:08:24 +00:00
Daniel Kolesa db49bda75d clean up E ptrace detection and usage 2014-11-28 15:08:00 +00:00
Carsten Haitzler 9391d261ba e_start - add ~/Applications/.bin to use for app bin searches
this is here to help for user installed apps
2014-09-21 00:21:16 +09:00
Mike Blumenkrantz ec1cd25cfe rename E19* defines/texts to just E so they don't need to keep being updated 2014-09-09 12:30:50 -04:00
Mike Blumenkrantz 6dd98df0d6 remove all remaining efl version check defines 2014-03-13 11:55:29 -04:00
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