Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • 66-service/arch/boot-user
  • 66-service/debian/66-service-boot-user
2 results
Show changes
Commits on Source (39)
Showing
with 555 additions and 236 deletions
*-66mod/ config.mak
Copyright (c) 2018-2019 Eric Vidal <eric@obarun.org> Copyright (c) 2024 Eric Vidal <eric@obarun.org>
All rights reserved. All rights reserved.
Permission to use, copy, modify, and/or distribute this software for any Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
# This Makefile requires GNU make.
#
# Do not make changes here.
# Use the included .mak files.
#
make_need := 3.81
ifeq "" "$(strip $(filter $(make_need), $(firstword $(sort $(make_need) $(MAKE_VERSION)))))"
fail := $(error Your make ($(MAKE_VERSION)) is too old. You need $(make_need) or newer)
endif
-include config.mak
include package/targets.mak
INSTALL := ./tools/install.sh
install: install-module install-script install-seed
install-module: $(MODULE_TARGET:module/%=$(DESTDIR)$(service_directory)/$(package)/%)
install-script: $(SCRIPT_TARGET:module/configure/%=$(DESTDIR)$(service_directory)/$(package)/configure/%)
install-seed: $(SEED_TARGET:module/configure/session=$(DESTDIR)$(seed_directory)/session)
$(DESTDIR)$(service_directory)/$(package)/%: module/%
exec $(INSTALL) -D -m 644 $< $@
sed -i -e 's,%%VERSION%%,$(version),' \
-e "s,%%DISPLAY_MANAGER%%,$(DISPLAY_MANAGER)," \
-e "s,%%CONSOLE_TRACKER%%,$(CONSOLE_TRACKER)," \
-e "s,%%XDG_RUNTIME%%,$(XDG_RUNTIME)," \
-e "s,%%DESKTOP_CMDLINE%%,$(DESKTOP_CMDLINE)," $@
$(DESTDIR)$(service_directory)/$(package)/configure/%: module/configure/%
exec $(INSTALL) -D -m 755 $< $@
sed -i -e 's,%%BINDIR%%,$(bindir),' \
-e 's,%%EXECLINEDIR%%,$(execlinedir),' $@
$(DESTDIR)$(seed_directory)/session: module/configure/session
exec $(INSTALL) -D -m 644 $< $@
version:
@echo $(version)
.PHONY: install version
.DELETE_ON_ERROR:
Changelog for boot-user-66mod
In 0.0.1
----------
- first commit.
# Changelog for boot-user-66serv
---
# In 0.5.3
- Allow execline binairies path definition through configure script.
- Avoid conflict with makefile identifier and 66 identifier of frontend service file.
---
# In 0.5.2
- Enable tree session by default through seed file
---
# In 0.5.1
- Adapt to 66 stable release.
- Provide seed file for the seesion tree.
- Allow to declare version at configure invocation.
---
# In 0.5.0
- Adapt to 66 0.7.0.0-beta
---
# In 0.4.3
- Adapt to scandir@-66serv 0.3.1
- Fix .xinitrc and .xsession: It backup those files with a suffix `-$random.backup` where `$random` is generated by `date +%M%N`.
- Sent a better message if the console tracker and display manager that the user want to install do not exist on his system.
---
# In 0.4.2
- Convenient release to udpate dependencies:
- 66 v0.5.1.0
- 66-tools v0.0.6.2
- scandir-66serv v0.2.1
- optional dependencies:
* console-tracker-66serv v0.2.1
* display-manager-66serv v0.2.1
---
# In 0.4.1
- Bugs fix:
- .xinitrc: set the correct value to the variable to export
---
# In 0.4.0
- Adapt to 66 0.4.0.1 and 66-tools 0.0.6.0.
- Respect color set at *66-enable*.
---
# In 0.3.0
- Pass to new module format
---
# In 0.2.1
-Bugs fix
---
# In 0.1.0
- Bugs fix.
---
# In 0.0.1
- first commit.
Build Instructions
------------------
## Requirements
- GNU make version 3.81 or later
This software will install on any operating system that implements POSIX.1-2008, available at [opengroup](http://pubs.opengroup.org/onlinepubs/9699919799/).
## Standard usage
`./configure && make && sudo make install` will work for most users.
## Customization
You can customize paths via flags given to configure. See `./configure --help` for a list of all available configure options.
## Runtime dependencies
- 66 version 0.8.0.0 or later https://git.obarun.org/Obarun/66/
- 66-tools version 0.1.1.0 or later https://git.obarun.org/Obarun/66-tools/
- scandir-66serv version 0.8.0 or later https://git.obarun.org/66-service/arch/scandir-66serv
#!/bin/sh
. package/info
usage () {
cat <<EOF
Usage: $0 [OPTION]... [TARGET]
Defaults for the options are specified in brackets.
Installation directories:
--prefix=PREFIX main installation prefix [/]
--exec-prefix=EPREFIX installation prefix for executable files [PREFIX]
Fine tuning of the installation directories:
--bindir=BINDIR user executables [EPREFIX/bin]
--datarootdir=DATAROOTDIR read-only architecture-independent data root [PREFIX/share]
--with-system-service=DIR 66 service intallation directory [DATAROOTDIR/$package_macro_dir/service]
--with-system-seed=DIR system trees default configuration[DATAROOTDIR/$package_macro_dir/seed]
--execlinedir=DIR absolute path of execline binaries [BINDIR]
Fine tunning of boot-user configuration:
--DISPLAY_MANAGER=VALUE display manager to use []
--CONSOLE_TRACKER=VALUE console tracker to use []
--XDG_RUNTIME=BOOLEAN create and mount the XDG_RUNTIME directory [!yes]
--DESKTOP_CMDLINE=VALUE commandline to use in the .xinitrc file [!jwm]
--version=VALUE version of the service[0.0.1]
Use yes or no with lowercase character to set BOOLEAN values.
Empty value is a commented one and not used at all.
An exclamation mark '!' at the begin of the value unexport the variable
for the environment after the use. This is avoid to poluate the environment
with tempory variables. You need to single-quote the options as
follow:
./configure --XDG_RUNTIME='!yes'
EOF
exit 0
}
# Helper functions
# If your system does not have printf, you can comment this, but it is
# generally not a good idea to use echo.
# See http://www.etalabs.net/sh_tricks.html
echo () {
IFS=" "
printf %s\\n "$*"
}
quote () {
tr '\n' ' ' <<EOF | grep '^[-[:alnum:]_=,./:]* $' >/dev/null 2>&1 && { echo "$1" ; return 0 ; }
$1
EOF
echo "$1" | sed -e "s/'/'\\\\''/g" -e "1s/^/'/" -e "\$s/\$/'/" -e "s#^'\([-[:alnum:]_,./:]*\)=\(.*\)\$#\1='\2#" -e "s|\*/|* /|g"
}
fail () {
echo "$*"
exit 1
}
fnmatch () {
eval "case \"\$2\" in $1) return 0 ;; *) return 1 ;; esac"
}
cmdexists () {
type "$1" >/dev/null 2>&1
}
stripdir () {
while eval "fnmatch '*/' \"\${$1}\"" ; do
eval "$1=\${$1%/}"
done
}
testval () {
if test -z ${1}; then
return 0 ;
else
return 1 ;
fi
}
# Actual script
prefix=
exec_prefix='$prefix'
bindir='$exec_prefix/bin'
datarootdir='$prefix/share'
service_directory='$datarootdir/$package_macro_dir/service'
seed_directory='$datarootdir/$package_macro_dir/seed'
execlinedir='$bindir'
DISPLAY_MANAGER=
CONSOLE_TRACKER=
XDG_RUNTIME='!yes'
DESKTOP_CMDLINE='!jwm'
version='0.5.3'
for arg ; do
case "$arg" in
--help) usage ;;
--prefix=*) prefix=${arg#*=} ;;
--exec-prefix=*) exec_prefix=${arg#*=} ;;
--bindir=*) bindir=${arg#*=} ;;
--datarootdir=*) datarootdir=${arg#*=} ;;
--with-system-service=*) service_directory=${arg#*=} ;;
--with-system-seed=*) seed_directory=${arg#*=} ;;
--execlinedir=*) execlinedir=${arg#*=} ;;
--DISPLAY_MANAGER=*) DISPLAY_MANAGER=${arg#*=} ;;
--CONSOLE_TRACKER=*) CONSOLE_TRACKER=${arg#*=} ;;
--XDG_RUNTIME=*) XDG_RUNTIME=${arg#*=} ;;
--DESKTOP_CMDLINE=*) DESKTOP_CMDLINE=${arg#*=} ;;
--version=*) version=${arg#*=} ;;
-* ) echo "$0: unknown option $arg" ;;
*=*) ;;
*) target=$arg ;;
esac
done
# Add /usr in the default case
if test -z "$prefix" ; then
if test "$datarootdir" = '$prefix/share'; then
datarootdir=/usr/share
fi
fi
# Expand installation directories
stripdir prefix
for i in exec_prefix bindir datarootdir \
seed_directory service_directory execlinedir; do
eval tmp=\${$i}
eval $i=$tmp
stripdir $i
done
stripdir datarootdir
for i in service_directory seed_directory; do
eval tmp=\${$i}
eval $i=$tmp
stripdir $i
done
for i in DISPLAY_MANAGER CONSOLE_TRACKER XDG_RUNTIME DESKTOP_CMDLINE; do
eval tmp=\${$i}
if testval $tmp; then
if [ "${i}" = "DISPLAY_MANAGER" ]; then
eval $i='${i}=\"\\#${i}=sddm\"'
elif [ "${i}" = "CONSOLE_TRACKER" ]; then
eval $i='${i}=\"\\#${i}=consolekit\"'
else
eval $i='${i}=\"\\#${i}=\"'
fi
else
eval $i='$i=$i=$tmp'
fi
done
# Get usable temp filenames
i=0
set -C
while : ; do
i=$(($i+1))
tmpc="./tmp-configure-$$-$PPID-$i.c"
tmpe="./tmp-configure-$$-$PPID-$i.tmp"
2>|/dev/null > "$tmpc" && break
2>|/dev/null > "$tmpe" && break
test "$i" -gt 50 && fail "$0: cannot create temporary files"
done
set +C
trap 'rm -f "$tmpc" "$tmpe"' EXIT ABRT INT QUIT TERM HUP
echo "creating config.mak..."
cmdline=$(quote "$0")
for i ; do cmdline="$cmdline $(quote "$i")" ; done
exec 3>&1 1>config.mak
cat << EOF
# This file was generated by:
# $cmdline
# Any changes made here will be lost if configure is re-run.
version := $version
package := $package
prefix := $prefix
exec_prefix := $exec_prefix
bindir := $bindir
datarootdir := $datarootdir
service_directory := $service_directory
seed_directory := $seed_directory
package_macro_dir := $package_macro_dir
execlinedir := $execlinedir
$DISPLAY_MANAGER
$CONSOLE_TRACKER
$XDG_RUNTIME
$DESKTOP_CMDLINE
EOF
exec 1>&3 3>&-
echo " ... done."
#!/usr/bin/bash
var=$(<${HOME}/.66/conf/boot-user-${USER}.conf)
for i in ${var[@]}; do
export ${i}
done
66-all up
sleep 03
#!/bin/bash
mod="${1}"
home=$(homeof ${mod})
uid=$(id -u ${mod})
gid=$(id -g ${mod})
if [[ -e ${home}/.xsession ]]; then
mv ${home}/.xsession ${home}/.xsession.bak
chown ${uid}:${gid} ${home}/.xsession.bak
fi
if [[ -e ${home}/.xinitrc ]]; then
mv ${home}/.xinitrc ${home}/.xinitrc.bak
chown ${uid}:${gid} ${home}/.xinitrc.bak
fi
cp .xsession ${home}/
chown ${uid}:${gid} ${home}/.xsession
cp .xinitrc ${home}/
chown ${uid}:${gid} ${home}/.xinitrc
Modules name:
- boot-user-@
Version:
- 0.0.1
Description:
- This module configure a set of services for an <user> to properly
deal with Display Manager(a.k.a DM).
Module dependencies:
- none
Optional module dependencies:
- none
Service Dependencies:
- none
Optional service dependencies:
- sddm-66serv
- dbus-66serv
Package dependencies:
- none
Optional package dependencies:
- consolekit
- sddm
- dbus
------------------------------------------------------------------------
Installation directive:
# 66-mods boot-user-@<user>
# 66-enable boot-user-<user>
- If you use consolekit do not enable it daemon. It should be launched
by the daemon of the DM directly. Oherwise, conflicts can occur
between the DM daemon and consolekit daemon.
- Dbus and dbus-session-@:
- dbus daemon should be enabled and up before
starting the module on a root tree.
- dbus-session-<user> should be enabled on a <user> tree.
It will be brought up at the start of the session.
Note: .xinitrc file execute an JWM session by default. Edit it
to suit your needs.
------------------------------------------------------------------------
Installed file:
- ${HOME}/.xsession file.
An already existing file is renamed to ${HOME}/.xsession.bak.
- ${HOME}/.xinitrc file.
An already existing file is renamad to ${HOME}/.xinitrc.bak.
Service:
- All-<user>
- mount-run-<user>
- setenv-<user>
- scandir-<user>
Runtime:
- It mount /run/user/<uid> of user if doesn't exist.
- It define well-know variable and write it at
${HOME}/.66/conf/boot-user-<user>.conf (see below).
- It create a scandir as <user> as owner merging the environment of
${HOME}/.66/conf/boot-user-<user>.conf and start it.
Example of ${HOME}/.66/conf/boot-user-<user>.conf file:
HOME=/home/obarun
LOGNAME=obarun
PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/bin
SHELL=/usr/bin/zsh
XDG_RUNTIME_DIR=/run/user/1000
XDG_CACHE_HOME=/home/obarun/.cache
XDG_CONFIG_HOME=/home/obarun/.config
XDG_DATA_HOME=/home/obarun/.local/share
XDG_DATA_DIRS=/home/obarun/.local/share:/usr/local/share:/usr/share
XDG_SESSION_CLASS=user
[main]
@type = bundle
@name = All-@MOD@
@description = "First service called to start a scandir for @MOD@ user"
@user = (root)
@contents = ( mount-run-@MOD@ setenv-@MOD@ scandir-@MOD@ )
[main]
@type = oneshot
@name = setenv-@MOD@
@description = "Set well-know variable for @MOD@ user"
@user = (root)
[start]
@build = auto
@runas = @MOD@
@execute =
(
execl-subuidgid
backtick -n HOME { homeof @MOD@ }
importas -u HOME HOME
redirfd -w 1 ${HOME}/.66/conf/boot-user-@MOD@.conf
## GENERAL VARIABLES
if { 66-echo HOME=${HOME} }
if { 66-echo LOGNAME=@MOD@ }
if { 66-echo USER=@MOD@ }
foreground {
importas PATH PATH
66-echo PATH=${PATH}
}
foreground {
backtick -D /usr/bin/sh -n shell {
pipeline { getent passwd ${UID} }
cut -d: -f7
}
importas -u shell shell
if { 66-echo SHELL=${shell} }
}
## DBUS
if { 66-echo DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${UID}/dbus }
## XDG variables
if { 66-echo XDG_RUNTIME_DIR=/run/user/${UID} }
if { 66-echo XDG_CACHE_HOME=${HOME}/.cache }
if { 66-echo XDG_CONFIG_HOME=${HOME}/.config }
if { 66-echo XDG_DATA_HOME=${HOME}/.local/share }
if { 66-echo XDG_DATA_DIRS=${HOME}/.local/share:/usr/local/share:/usr/share }
66-echo XDG_SESSION_CLASS=user
)
[main]
@type = oneshot
@name = mount-run-@MOD@
@description = "Mount /run/user directory of @MOD@"
@user = (root)
[start]
@build = auto
@execute =
(
## create /run/user/<uid>
execl-subuidgid -o @MOD@
foreground {
if -nt { mountpoint -q /run/user/${UID} }
if { mkdir -p /run/user/${UID} }
mount -o noatime,nodev,nosuid,gid=${GID},uid=${UID},mode=0700,size=64M -t tmpfs user /run/user/${UID}
}
)
[main]
@type = oneshot
@name = runtime-@MOD@
@description = "Launch all tree enabled of @MOD@"
@user = ( root )
@depends = ( scandir-@MOD@ )
[start]
@build = auto
@execute = (
s6-setuidgid @MOD@
66-all up
)
[stop]
@build = auto
@execute = (
s6-setuidgid @MOD@
66-all down
)
[main]
@type = longrun
@name = scandir-@MOD@
@description = "Start a scandir for @MOD@"
@user = ( root )
@options = ( log )
@depends = ( mount-run-@MOD@ setenv-@MOD@ )
@notify = 3
@timeout-up = 3000
[start]
@build = auto
@runas = @MOD@
@execute =
(
s6-setsid -qb --
umask 022
66-scandir -v3 -d3 -cu -e /home/@MOD@/.66/conf/boot-user-@MOD@.conf
)
[Main]
Type = module
Version = %%VERSION%%
Description = "Configure a nested supervision tree for @I user"
User = ( root )
Depends = ( scandir@@I )
InTree = session
[Regex]
Configure = "@I"
InFiles = (
::%%version%%=%%VERSION%%
)
[Environment]
## Uncomment it to use a display manager.
## Can be any display manager as long as the
## corresponding frontend file exist on your system
## e.g sddm,lightdm,...
## It also prepare the .xsession file.
%%DISPLAY_MANAGER%%
## Uncomment it to use a console tracker.
## Can be any console tracker as long as the
## corresponding frontend file exist on your system
## e.g consolekit,seatd,turnstile,...
%%CONSOLE_TRACKER%%
## Create and mount the XDG_RUNTIME directory
## at /run/user/@I [yes|no]
%%XDG_RUNTIME%%
## Command to use in your .xinitrc
## to launch your desktop e.g.: openbox-session.
## If commented the .xinitrc file is not configured.
%%DESKTOP_CMDLINE%%
#!/usr/bin/bash #!%%BINDIR%%/bash
if [ -d /etc/X11/xinit/xinitrc.d ] ; then if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
...@@ -7,23 +7,22 @@ if [ -d /etc/X11/xinit/xinitrc.d ] ; then ...@@ -7,23 +7,22 @@ if [ -d /etc/X11/xinit/xinitrc.d ] ; then
unset f unset f
fi fi
var=$(<${HOME}/.66/conf/boot-user-${USER}.conf) list=( $(ls -A1 %%PATH_ENVIRONMENT%% | sort) )
for i in ${list[@]};do
for i in ${var[@]}; do var=( $(<%%PATH_ENVIRONMENT%%/${i}) )
export ${i} for j in ${var[@]}; do
export ${j}
done
done done
66-all up 66 tree start
sleep 03
## Try consolekit ## Try consolekit
if 66-which -q ck-launch-session; then if 66-which -q ck-launch-session; then
cmd="exec ck-launch-session $@" cmd="exec ck-launch-session $@"
else else
cmd="exec $@" cmd="exec $@"
fi fi
## Select the session to start ## Select the session to start
${cmd} jwm ${cmd} %%DESKTOP_CMDLINE%%
#${cmd} openbox-session
#${cmd} startkde
#!%%BINDIR%%/bash
list=( $(ls -A1 %%PATH_ENVIRONMENT%% | sort) )
for i in ${list[@]};do
var=( $(<%%PATH_ENVIRONMENT%%/${i}) )
for j in ${var[@]}; do
export ${j}
done
done
66 tree start
#!%%BINDIR%%/sh
## 66-yeller variable
export PROG="${MOD_NAME}"
export VERBOSITY="${MOD_VERBOSITY}"
export CLOCK_ENABLED=0
export COLOR_ENABLED="${MOD_COLOR}"
## script variable
FRONTEND_PATH="${MOD_MODULE_DIR}/frontend"
ACTIVATED_PATH="${MOD_MODULE_DIR}/activated"
DEPENDS_PATH="${ACTIVATED_PATH}/depends"
owner="${1}"
home=$(%%EXECLINEDIR%%/homeof "${owner}")
uid=$(id -u "${owner}")
gid=$(id -g "${owner}")
home_env="${home}/${MOD_SERVICE_USERCONFDIR}svscan@${owner}"
die(){
66-yeller -fc "${@}"
exit 111
}
check_empty_var(){
name="${1}" var_value="${2}"
if [ -z "${var_value}" ]; then
die invalid value for variable: "${name}"
fi
}
depends(){
name="${1}"
66-yeller %badd%n dependency: "${name}"
touch "${DEPENDS_PATH}/${name}" || die "unable to add dependency ${MOD_MODULE_DIR}/service/${name}"
}
enable(){
name="${1}"
66-yeller %benable%n service: "${name}"
touch "${ACTIVATED_PATH}/${name}" || die "unable to enable ${MOD_MODULE_DIR}/service/${1}"
}
disable(){
name="${1}"
66-yeller %rdisable%n service: "${name}"
rm -f "${ACTIVATED_PATH}/${name}" || die "disable to enable ${MOD_MODULE_DIR}/service/${1}"
}
if execl-toc -X -V DISPLAY_MANAGER; then
check_empty_var "DISPLAY_MANAGER" "${DISPLAY_MANAGER}"
if ! [ -e "${MOD_SERVICE_ADMDIR}${DISPLAY_MANAGER}" ] && ! [ -e "${MOD_SERVICE_SYSDIR}${DISPLAY_MANAGER}" ]; then
die "the ${DISPLAY_MANAGER} frontend service file do not exist on your system -- please install it and try again"
fi
depends "${DISPLAY_MANAGER}"
66-yeller set environment at .xsession file to: %b"${home_env}"%n
sed -i "s:%%PATH_ENVIRONMENT%%:${home_env}:g" ".xsession" || die "unable to set environment directory at .xsession file"
if [ -e "${home}/.xsession" ]; then
random=$(date +%M%N)
66-yeller -W "move existing ${home}/.xsession file to ${home}/.xsession-${random}.backup"
mv "${home}/.xsession" "${home}/.xsession-${random}.backup" || exit 111
fi
66-yeller "create ${home}/.xsession"
cp .xsession "${home}/" || exit 111
chown "${uid}":"${gid}" "${home}/.xsession" || exit 111
fi
if execl-toc -X -V CONSOLE_TRACKER; then
check_empty_var "CONSOLE_TRACKER" "${CONSOLE_TRACKER}"
if ! [ -e "${MOD_SERVICE_ADMDIR}${CONSOLE_TRACKER}" ] && ! [ -e "${MOD_SERVICE_SYSDIR}${CONSOLE_TRACKER}" ]; then
die "the ${CONSOLE_TRACKER} frontend service file do not exist on your system -- please install it and try again"
fi
depends "${CONSOLE_TRACKER}"
fi
if [ "${XDG_RUNTIME}" = "yes" ]; then
enable "mount-run@${owner}"
else
disable "mount-run@${owner}"
fi
if execl-toc -X -V DESKTOP_CMDLINE; then
check_empty_var "DESKTOP_CMDLINE" "${DESKTOP_CMDLINE}"
66-yeller set environment at .xinitrc file to: %b"${home_env}"%n
sed -i "s:%%PATH_ENVIRONMENT%%:${home_env}:g" ".xinitrc" || die "unable to set environment directory at .xinitrc file"
66-yeller set commandline at .xinitrc file to: %b"${DESKTOP_CMDLINE}"%n
sed -i "s:%%DESKTOP_CMDLINE%%:${DESKTOP_CMDLINE}:g" ".xinitrc" || die "unable to set environment directory at .xinitrc file"
if [ -e "${home}/.xinitrc" ]; then
random=$(date +%M%N)
66-yeller -W "move existing ${home}/.xinitrc file to ${home}/.xinitrc-${random}.backup"
mv "${home}/.xinitrc" "${home}/.xinitrc-${random}.backup" || exit 111
fi
66-yeller -c "create ${home}/.xinitrc"
cp .xinitrc "${home}/" || exit 111
chown "${uid}":"${gid}" "${home}/.xinitrc" || exit 111
fi
66-yeller "%bsuccessfully%n configured"
allow = root
groups = admin
depends = global
enable = true