[Mesa-dev] [PATCH] meson: correctly set SYSCONFDIR for loading dirrc
Dylan Baker
dylan at pnwbakers.com
Wed Jan 24 18:19:39 UTC 2018
Quoting Emil Velikov (2018-01-24 03:53:35)
> On 24 January 2018 at 10:39, Marc Dietrich <marvin24 at gmx.de> wrote:
> > Hi Dylan,
> >
> > Am Dienstag, 23. Januar 2018, 19:28:08 CET schrieb Dylan Baker:
> >> Fixes: d1992255bb29 ("meson: Add build Intel "anv" vulkan driver")
> >> Reported-by: Marc Dietrich <marvin24 at gmx.de>
> >> Signed-off-by: Dylan Baker <dylan.c.baker at intel.com>
> >> ---
> >> src/util/meson.build | 8 ++++++--
> >> 1 file changed, 6 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/src/util/meson.build b/src/util/meson.build
> >> index fa591c92e56..b23dba3a985 100644
> >> --- a/src/util/meson.build
> >> +++ b/src/util/meson.build
> >> @@ -112,8 +112,12 @@ libxmlconfig = static_library(
> >> files_xmlconfig,
> >> include_directories : inc_common,
> >> dependencies : [dep_expat, dep_m],
> >> - c_args : [c_msvc_compat_args, c_vis_args,
> >> - '-DSYSCONFDIR="@0@"'.format(get_option('sysconfdir'))],
> >> + c_args : [
> >> + c_msvc_compat_args, c_vis_args,
> >> + '-DSYSCONFDIR="@0@"'.format(
> >> + join_paths(get_option('prefix'), get_option('sysconfdir'))
> >> + ),
> >> + ],
> >> build_by_default : false,
> >> )
> >
> > this won't work as the prefix is often set to /usr, which results in
> > sysconfdir to be /usr/etc. As this is a special case, and "/etc" is the
> > default meson sysconfdir, we could just test for "prefix=/usr" and set
> > sysconfdir to prefix/sysconfdir if it is not.
> >
> > This works for me, but dosn't look meson-stylish:
> >
> > diff --git a/src/util/meson.build b/src/util/meson.build
> > index fa591c92e5..6294e188f2 100644
> > --- a/src/util/meson.build
> > +++ b/src/util/meson.build
> > @@ -83,8 +83,6 @@ files_mesa_util = files(
> > 'u_vector.h',
> > )
> >
> > -install_data('drirc', install_dir : get_option('sysconfdir'))
> > -
> > files_xmlconfig = files(
> > 'xmlconfig.c',
> > 'xmlconfig.h',
> > @@ -107,13 +105,23 @@ libmesa_util = static_library(
> > build_by_default : false
> > )
> >
> > +if get_option('prefix') != '/usr'
> > + sysconfarg = join_paths(get_option('prefix'), get_option('sysconfdir'))
> > +else
> > + sysconfarg = '/' + get_option('sysconfdir')
> > +endif
> > +
> Tweaking sysconfdir based on the value of prefix doesn't sound
> right.It's the build system to know and manage those.
> By default everything should be installed only in prefix - that's what
> cmake, autotools and others do. I think meson should say consistent do
> the same.
>
> The reason being is that you don't want to overwrite existing [system]
> files, unless explicitly asked for. In this case by setting
> sysconfigdir to /etc.
>
> Obviously sysconfdir/sysconfigdir is one example here, but the rule
> applies throughout.
> Emil
Emil,
Ken and I talked about this, I think the right thing to do is something like:
sysdir = get_option('sysconfdir')
if not sysdir.startswith('/')
sysdir = join_paths(get_option('prefix'), sysdir)
endif
So that if someone sets --sysconfdir=/etc and --prefix=/usr they get what they
want (libs in /usr/lib and drirc in /etc), but if say a BSD sets --syconfdir=etc
--prefux=/usr/local they get what they (libs in /usr/local/libs and drirc in
/usr/local/etc)
Does that seem right to you?
Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180124/0b3a8663/attachment.sig>
More information about the mesa-dev
mailing list