we know where service files SHOULD go... and soif systemd is not there
to tell us, put them in the known place. this is so the non0systemd
os's can buand should build with the support but its all runtime
detected/enabled already. this means that actually no one should need
tyo go disable systemd support in builds. it's all runtime.
so memset_s still doesn't get detected (add a check anyway), but there
are other alternatives, so detect and use them if found
(explicit_bzero, explicit_memset) in addition to the generally
"practically works" memset ptr method we had and.. just to be extra
safe add an asm memory barrier to this fallback. also.. mlock the
passwd memory in lokker (if it doesn't work - don't worry - there is
nothing we can do, so we did our best) to avoid this memory gettign
so e has had a bit of a mess of setuid root tools to do things that
are essential to maintaing a functioning desktop/laptop/tablet/phone
like device like shutting it down or suspending or sqizzling the cpu
governor or messing with the backlight or... you get the idea.
this has been spread around enlightenment_sys and other special
purpose tools. this now unifies it into a single "always there"
enlightenment_system backend setuid root slave process whose job it is
to do all these things via a stdio protocol in an organized way. this
means latency to do something is lower, but at the expense of
consuming ram and a lurking process. unfortunately the lurking will be
needed soon when i add ddc support to make it even vaguely efficient,
so it's a cost i guess we have to pay now. we'll need this in future
as well for some stats collection and more.
still need to port existing code to use this instead of the existing stuff,
and then remove of the old stuff.
this is part of the datadir distribution, it should not be in a different
directory than the rest of the datadir distribution
the gnu coding standards (https://www.gnu.org/prep/standards/html_node/Directory-Variables.html)
define 'datadir' as:
The directory for installing idiosyncratic read-only architecture-independent
data files for this program. This is usually the same place as ‘datarootdir’,
but we use the two separate variables so that you can move these program-specific
files without altering the location for Info files, man pages, etc.
This should normally be /usr/local/share, but write it as $(datarootdir).
(If you are using Autoconf, write it as ‘@datadir@’.)
The definition of ‘datadir’ is the same for all packages, so you should install your
data in a subdirectory thereof. Most packages install their data under $(datadir)/package-name/.
while this text has no clear requirement or suggestion for a corresponding
repository layout, projects typically employ a certain consistency in their
repository layout both for ease of maintenance and ease of learning for new
this project has both a data/ directory, which contains the datadir distribution,
as well as the config/ directory, which also contains the datadir distribution.
this complicates matters both for active maintainers/developers who must
remember that the repository and build tree layouts have this exception,
and for new contributors who will initially be confused by this exception
other well-organized open source projects, such as wayland, have chosen to not
use a data/ directory. these projects have the datadir distribution in the base
directory of the repositor, which is a fine practice as it maintains consistency
for the project since all the files for the datadir distribution are in the same
by applying this patch, the project will move towards a more easily readable and
learnable layout. current and future developers will no longer need to wonder why
this directory is outside of the data/ directory, and anyone attempting to reference
these files from the source/build trees will be able to do so more easily
Reviewers: cedric, raster, bu5hm4n
Reviewed By: raster
Differential Revision: https://phab.enlightenment.org/D6154