[PATCH xserver] meson: Add xkb_bin_dir option

2017-10-11 Thread Lyude Paul
Now that we can actually configure all of the directories xkb uses for
finding things, we can (finally, but only with meson) finally make it so
that with the correct meson configuration the Xserver will "just work"
without any additional changes to the installation prefix after
building.

For the people like me who have since scripted this part out of their
build process and forgotten about it, building and installing the X
server into a non-standard prefix has always required the following (or
something else that makes sure that X has a valid xkbcomp configuration)
commands be run right after doing the installation:

# start in root of prefix you installed X to
mkdir -pv share/X11/xkb/rules
ln -s /usr/share/X11/xkb/rules/evdev share/X11/xkb/rules/
rm -f bin/xkbcomp
ln -s /usr/bin/xkbcomp bin/

The one last piece of getting rid of this post-install junk is making
sure that we can control the directory that X uses for finding the
xkbcomp binary from meson so we can point it at the system provided
xkbcomp (/usr/bin/xkbcomp or similar). So, this patch adds a
configuration option for controlling this called xkb_bin_dir.

Signed-off-by: Lyude Paul 
---
 include/meson.build | 2 +-
 meson.build | 5 +
 meson_options.txt   | 1 +
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/include/meson.build b/include/meson.build
index 90f8de3cb..5d746eb70 100644
--- a/include/meson.build
+++ b/include/meson.build
@@ -219,7 +219,7 @@ configure_file(output : 'version-config.h',
 
 xkb_data = configuration_data()
 
-xkb_data.set_quoted('XKB_BIN_DIRECTORY', join_paths(get_option('prefix'), 
get_option('bindir')))
+xkb_data.set_quoted('XKB_BIN_DIRECTORY', xkb_bin_dir)
 xkb_data.set_quoted('XKB_BASE_DIRECTORY', xkb_dir)
 xkb_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules'))
 xkb_data.set_quoted('XKB_DFLT_MODEL', get_option('xkb_default_model'))
diff --git a/meson.build b/meson.build
index d71cfed5a..f9b21b36c 100644
--- a/meson.build
+++ b/meson.build
@@ -107,6 +107,11 @@ if xkb_output_dir == ''
 xkb_output_dir = join_paths(get_option('prefix'), 'share/X11/xkb/compiled')
 endif
 
+xkb_bin_dir = get_option('xkb_bin_dir')
+if xkb_bin_dir == ''
+xkb_bin_dir = join_paths(get_option('prefix'), get_option('bindir'))
+endif
+
 hal_option = get_option('hal')
 glamor_option = get_option('glamor')
 
diff --git a/meson_options.txt b/meson_options.txt
index b1ee6ccc5..1954ea7a0 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -29,6 +29,7 @@ option('ipv6', type: 'combo', choices: ['yes', 'no', 'auto'], 
value: 'auto')
 
 option('xkb_dir', type: 'string')
 option('xkb_output_dir', type: 'string')
+option('xkb_bin_dir', type: 'string')
 option('xkb_default_rules', type: 'string', value: 'evdev')
 option('xkb_default_model', type: 'string', value: 'pc105')
 option('xkb_default_layout', type: 'string', value: 'us')
-- 
2.13.6

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH xserver] meson: Add xkb_bin_dir option

2017-10-11 Thread Peter Hutterer
On Wed, Oct 11, 2017 at 06:03:45PM -0400, Lyude Paul wrote:
> Now that we can actually configure all of the directories xkb uses for
> finding things, we can (finally, but only with meson) finally make it so
> that with the correct meson configuration the Xserver will "just work"
> without any additional changes to the installation prefix after
> building.
> 
> For the people like me who have since scripted this part out of their
> build process and forgotten about it, building and installing the X
> server into a non-standard prefix has always required the following (or
> something else that makes sure that X has a valid xkbcomp configuration)
> commands be run right after doing the installation:
> 
>   # start in root of prefix you installed X to
>   mkdir -pv share/X11/xkb/rules
>   ln -s /usr/share/X11/xkb/rules/evdev share/X11/xkb/rules/
>   rm -f bin/xkbcomp
>   ln -s /usr/bin/xkbcomp bin/
> 
> The one last piece of getting rid of this post-install junk is making
> sure that we can control the directory that X uses for finding the
> xkbcomp binary from meson so we can point it at the system provided
> xkbcomp (/usr/bin/xkbcomp or similar). So, this patch adds a
> configuration option for controlling this called xkb_bin_dir.
> 
> Signed-off-by: Lyude Paul 

Reviewed-by: Peter Hutterer 

Cheers,
   Peter
> ---
>  include/meson.build | 2 +-
>  meson.build | 5 +
>  meson_options.txt   | 1 +
>  3 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/include/meson.build b/include/meson.build
> index 90f8de3cb..5d746eb70 100644
> --- a/include/meson.build
> +++ b/include/meson.build
> @@ -219,7 +219,7 @@ configure_file(output : 'version-config.h',
>  
>  xkb_data = configuration_data()
>  
> -xkb_data.set_quoted('XKB_BIN_DIRECTORY', join_paths(get_option('prefix'), 
> get_option('bindir')))
> +xkb_data.set_quoted('XKB_BIN_DIRECTORY', xkb_bin_dir)
>  xkb_data.set_quoted('XKB_BASE_DIRECTORY', xkb_dir)
>  xkb_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules'))
>  xkb_data.set_quoted('XKB_DFLT_MODEL', get_option('xkb_default_model'))
> diff --git a/meson.build b/meson.build
> index d71cfed5a..f9b21b36c 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -107,6 +107,11 @@ if xkb_output_dir == ''
>  xkb_output_dir = join_paths(get_option('prefix'), 
> 'share/X11/xkb/compiled')
>  endif
>  
> +xkb_bin_dir = get_option('xkb_bin_dir')
> +if xkb_bin_dir == ''
> +xkb_bin_dir = join_paths(get_option('prefix'), get_option('bindir'))
> +endif
> +
>  hal_option = get_option('hal')
>  glamor_option = get_option('glamor')
>  
> diff --git a/meson_options.txt b/meson_options.txt
> index b1ee6ccc5..1954ea7a0 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -29,6 +29,7 @@ option('ipv6', type: 'combo', choices: ['yes', 'no', 
> 'auto'], value: 'auto')
>  
>  option('xkb_dir', type: 'string')
>  option('xkb_output_dir', type: 'string')
> +option('xkb_bin_dir', type: 'string')
>  option('xkb_default_rules', type: 'string', value: 'evdev')
>  option('xkb_default_model', type: 'string', value: 'pc105')
>  option('xkb_default_layout', type: 'string', value: 'us')
> -- 
> 2.13.6
> 
> ___
> xorg-devel@lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: https://lists.x.org/mailman/listinfo/xorg-devel
> 
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH xserver] meson: Add xkb_bin_dir option

2017-10-12 Thread Daniel Stone
Hi,

On 11 October 2017 at 23:03, Lyude Paul  wrote:
> Now that we can actually configure all of the directories xkb uses for
> finding things, we can (finally, but only with meson) finally make it so
> that with the correct meson configuration the Xserver will "just work"
> without any additional changes to the installation prefix after
> building.
>
> For the people like me who have since scripted this part out of their
> build process and forgotten about it, building and installing the X
> server into a non-standard prefix has always required the following (or
> something else that makes sure that X has a valid xkbcomp configuration)
> commands be run right after doing the installation:
>
> # start in root of prefix you installed X to
> mkdir -pv share/X11/xkb/rules
> ln -s /usr/share/X11/xkb/rules/evdev share/X11/xkb/rules/
> rm -f bin/xkbcomp
> ln -s /usr/bin/xkbcomp bin/
>
> The one last piece of getting rid of this post-install junk is making
> sure that we can control the directory that X uses for finding the
> xkbcomp binary from meson so we can point it at the system provided
> xkbcomp (/usr/bin/xkbcomp or similar). So, this patch adds a
> configuration option for controlling this called xkb_bin_dir.

We really should've made xkbcomp ship a pkg-config file.

Reviewed-by: Daniel Stone 

Cheers,
Daniel
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH xserver] meson: Add xkb_bin_dir option

2017-10-12 Thread Adam Jackson
On Thu, 2017-10-12 at 09:35 +0100, Daniel Stone wrote:
> Hi,
> 
> On 11 October 2017 at 23:03, Lyude Paul  wrote:
> > Now that we can actually configure all of the directories xkb uses for
> > finding things, we can (finally, but only with meson) finally make it so
> > that with the correct meson configuration the Xserver will "just work"
> > without any additional changes to the installation prefix after
> > building.
> > 
> > For the people like me who have since scripted this part out of their
> > build process and forgotten about it, building and installing the X
> > server into a non-standard prefix has always required the following (or
> > something else that makes sure that X has a valid xkbcomp configuration)
> > commands be run right after doing the installation:
> > 
> > # start in root of prefix you installed X to
> > mkdir -pv share/X11/xkb/rules
> > ln -s /usr/share/X11/xkb/rules/evdev share/X11/xkb/rules/
> > rm -f bin/xkbcomp
> > ln -s /usr/bin/xkbcomp bin/
> > 
> > The one last piece of getting rid of this post-install junk is making
> > sure that we can control the directory that X uses for finding the
> > xkbcomp binary from meson so we can point it at the system provided
> > xkbcomp (/usr/bin/xkbcomp or similar). So, this patch adds a
> > configuration option for controlling this called xkb_bin_dir.
> 
> We really should've made xkbcomp ship a pkg-config file.

Should have?

https://cgit.freedesktop.org/xorg/app/xkbcomp/tree/xkbcomp.pc.in

> Reviewed-by: Daniel Stone 

remote: I: patch #181929 updated using rev 
10cba7d54668698741510374ee63dec7a3cc3647.
remote: I: 1 patch(es) updated to state Accepted.
To ssh://git.freedesktop.org/git/xorg/xserver
   b747da5e25..10cba7d546  master -> master

- ajax
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel