sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit bebe7dea8cd5ee4e10a368551c595397008e2d51
parent f1dbdce0b2cfb6a71f972dd58180337c8ad27096
Author: emersion <contact@emersion.fr>
Date:   Sun, 30 Sep 2018 15:04:13 +0200

Merge pull request #2734 from ivyl/use_rpath

Add support for installing binaries with DT_RPATH
Diffstat:
Mmeson.build | 11++++++++++-
Mmeson_options.txt | 3++-
Msway/main.c | 8--------
Msway/meson.build | 1+
Mswaybar/meson.build | 1+
Mswaybg/meson.build | 1+
Mswayidle/meson.build | 1+
Mswaylock/meson.build | 1+
Mswaymsg/meson.build | 1+
Mswaynag/meson.build | 1+
10 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/meson.build b/meson.build @@ -128,7 +128,16 @@ else endif add_project_arguments('-DSWAY_VERSION=@0@'.format(version), language: 'c') -add_project_arguments('-D_LD_LIBRARY_PATH="@0@"'.format(get_option('ld-library-path')), language: 'c') +if get_option('use_rpath') + if get_option('custom_rpath') == '' + # default to platform specific libdir, one level up from the binary + rpathdir = join_paths('$ORIGIN', '..', '$LIB') + else + rpathdir = get_option('custom_rpath') + endif +else + rpathdir = '' +endif sway_inc = include_directories('include') diff --git a/meson_options.txt b/meson_options.txt @@ -1,5 +1,6 @@ option('sway-version', type : 'string', description: 'The version string reported in `sway --version`.') -option('ld-library-path', type: 'string', value: '', description: 'The LD_LIBRARY_PATH environment variable.') +option('use_rpath', type: 'boolean', value: false, description: 'install binaries with rpath set') +option('custom_rpath', type: 'string', value: '', description: 'override rpath with a custom one') option('default-wallpaper', type: 'boolean', value: true, description: 'Install the default wallpaper.') option('zsh-completions', type: 'boolean', value: true, description: 'Install zsh shell completions.') option('bash-completions', type: 'boolean', value: true, description: 'Install bash shell completions.') diff --git a/sway/main.c b/sway/main.c @@ -241,14 +241,6 @@ int main(int argc, char **argv) { " --get-socketpath Gets the IPC socket path and prints it, then exits.\n" "\n"; - // Security: - unsetenv("LD_PRELOAD"); -#ifdef _LD_LIBRARY_PATH - setenv("LD_LIBRARY_PATH", _LD_LIBRARY_PATH, 1); -#else - unsetenv("LD_LIBRARY_PATH"); -#endif - int c; while (1) { int option_index = 0; diff --git a/sway/meson.build b/sway/meson.build @@ -187,5 +187,6 @@ executable( include_directories: [sway_inc], dependencies: sway_deps, link_with: [lib_sway_common], + install_rpath : rpathdir, install: true ) diff --git a/swaybar/meson.build b/swaybar/meson.build @@ -24,5 +24,6 @@ executable( wlroots, ], link_with: [lib_sway_common, lib_sway_client], + install_rpath : rpathdir, install: true ) diff --git a/swaybg/meson.build b/swaybg/meson.build @@ -14,5 +14,6 @@ executable( wlroots, ], link_with: [lib_sway_common, lib_sway_client], + install_rpath : rpathdir, install: true ) diff --git a/swayidle/meson.build b/swayidle/meson.build @@ -14,5 +14,6 @@ executable( swayidle_deps, ], link_with: [lib_sway_common, lib_sway_client], + install_rpath : rpathdir, install: true ) diff --git a/swaylock/meson.build b/swaylock/meson.build @@ -33,6 +33,7 @@ executable('swaylock', include_directories: [sway_inc], dependencies: dependencies, link_with: [lib_sway_common, lib_sway_client], + install_rpath : rpathdir, install: true ) diff --git a/swaymsg/meson.build b/swaymsg/meson.build @@ -4,5 +4,6 @@ executable( include_directories: [sway_inc], dependencies: [jsonc, wlroots], link_with: [lib_sway_common], + install_rpath : rpathdir, install: true ) diff --git a/swaynag/meson.build b/swaynag/meson.build @@ -19,5 +19,6 @@ executable( wlroots, ], link_with: [lib_sway_common, lib_sway_client], + install_rpath : rpathdir, install: true )