diff --git a/init.d/meson.build b/init.d/meson.build index d0699dc..5a0a6a8 100644 --- a/init.d/meson.build +++ b/init.d/meson.build @@ -101,7 +101,7 @@ foreach init_d_file : init_data install_mode: 'rwxr-xr-x') endforeach install_symlink('functions.sh', - pointing_to: rc_shdir / 'functions.sh', + pointing_to: '../../../usr/libexec/rc/sh/functions.sh', install_dir: init_d_dir) if get_option('sysvinit') == true and os == 'linux' diff --git a/meson.build b/meson.build index c1566f9..0b46532 100644 --- a/meson.build +++ b/meson.build @@ -176,11 +176,11 @@ util_dep = cc.find_library('util', required: false) subdir('bash-completion') subdir('conf.d') subdir('etc') +subdir('sh') subdir('init.d') subdir('local.d') subdir('man') subdir('runlevels') -subdir('sh') subdir('src') subdir('support') subdir('sysctl.d') diff --git a/runlevels/meson.build b/runlevels/meson.build index cb41560..aae5122 100644 --- a/runlevels/meson.build +++ b/runlevels/meson.build @@ -87,7 +87,7 @@ foreach runlevel: runlevels.keys() foreach service: runlevels[runlevel] install_symlink(service, install_dir: runlevel_dir / runlevel, - pointing_to: init_d_dir / service) + pointing_to: '../../init.d/' + service) endforeach if get_option('sysvinit') == true and os == 'linux' and runlevel == 'default' foreach tty : get_option('agetty') diff --git a/init.d/user.in b/init.d/user.in index ea416e5ce..484f01acf 100644 --- a/init.d/user.in +++ b/init.d/user.in @@ -28,4 +28,23 @@ start_pre() { eerror "symbolic links to it for the users you want to start" return 1 fi +# Source user profile if available +if [ -f "${HOME}/.profile" ]; then + . "${HOME}/.profile" +fi + +# Set up XDG_RUNTIME_DIR +uid="$(id -u "${user}")" +gid="$(id -g "${user}")" +if [ -d "/run" ]; then + export XDG_RUNTIME_DIR="/run/user/${uid}" +else + export XDG_RUNTIME_DIR="/tmp/${user}-runtime-dir" +fi + +if [ ! -d "${XDG_RUNTIME_DIR}" ]; then + mkdir -p "${XDG_RUNTIME_DIR}" + chmod 0700 "${XDG_RUNTIME_DIR}" + chown "${user}":"${gid}" "${XDG_RUNTIME_DIR}" +fi }