dir_sysconf was set to "etc". not even a /. this meant
enlightenment_sys couldnt find/load sysactions.conf as it used a
non-relocatable fixed location due to security (setuid root) reasons.
Summary:
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
contributors.
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
directory.
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
ref D6013
Reviewers: cedric, raster, bu5hm4n
Reviewed By: raster
Subscribers: devilhorns
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D6154
this shou,ld provide a compile failure for when no pam headers are
found and thus pam not enabled if we need pam for auth (i.e. linux).
so it'll be harder to foot-shoot now.also an add-on fix to T6779
find_program() did not detect the eldbus-codegen binary in a given
prefix. Which is a situation we have on Jenkins builds. Make it an
option that can be set like we already do with edje_cc.
If there is a more meson-like approach to this I do not know feel free
to enlight me.
config that is only needed fro modules only needs to be don in the
modules subdir meson.build... i tried doing what modules do but output
files cant have paths.
for now i just added HAVE_WL_DRM but its just the same as
USE_MODULE_WL_DRM, maybe we can replace HAVE_WL_DRM once autotools is
gone, so we have a clear pattern.
this will need further work. i want to try and trim this down as much
as i can and make it easy to read/follow and see mistakes (thus the
aligning or afgs in many places)
now mdoule build files that fllow one pattern (the most common by far)
all JUSt list their souce files and nothing else. this really cuts
down on build size/complexity.
there are other patterns too (no icons at all) that i'll do next, then
we're down into "weird" land where i'll have to think of some more
interesting ways to deal with this.
this module is not loaded by any other (dependency) nor is it loadable
via the gui - no module/desktop there thus will be hidden... so it's
useless/unused... thus remove it as its not usable by users.
now their build fiels are super easy to maintan. we should expand this
kind of ptterning aross the e build and then expand it to handle new
patters where needed like custom binaries (setuid or not), etc etc.
it used to include it with autofoo... it should continue to include
it. don't break things. is /usr/local/share/enlightenment .... is what
PKG_DATA_DIR would be defined as (assuming default prefix).
cfg files were installed on top of eachother in the wrong directories
and they were unreadable by anyone but root (if you sudo make
install)... so fix this with my new chmod fixing stuff (yes meson
doesnt let you specific permissions for custom targets).