andresgongora/synth-shell

Failed install on ostree distros with /var/home

Pantar2205 opened this issue · 9 comments

Describe the bug
Silverblue, Kinote and other ostree distro that have home stored in /var/home/USER
Setup script doesn't work with this type of a home.

To Reproduce
Steps to reproduce the behavior:

  1. Follow install instructions on any distro with home set as /var/home

This is odd, but I wouldn't be surprised if I used /home/${USER}/... somewhere and that is the problem. Let me have a quick look at the setup script and such.

What message/behavior do you get exactly? So I can narrow down the culprit :)

Also, I've never played with any of those distros. I guess that if the envvar $HOME is always set to /var/home/USER, correct?

This is how it is on Silverblue, but I understand its the same principle on ay ostree based operating system.

image

I think simply having the user home directory not being presumed to be /home/$USER solves the problem but I am ignorant as to how to fix something like that.

I've gone through all files in the script and there is not a single /home/$USER; in fact, there seems to be no reference to /home at all, only several instances of $HOME.

pwd prints your current working directory. Could you check that $HOME is defined? (e.g., echo $HOME).

I fear I have no access to the distros you've listed at the moment to test it myself. Could you elaborate on what is not working? Do you see an error message while running the setup-script? Or is any of the sub components failing, such as synth-shell-greeter or synth-shell-prompt?

Once we know what is failing it should be fairly easy to fix ;)

Sorry Andre. I am only a casual user, so you will need to bare with me.
echo €HOME provides /var/home/ger (My username on this machine is ger)
I ran everything again and it all seemed to work fine but then the first thing I tested was running ls which provides =

ger  ger-desktop  ~  ls bash: alias: better_ls: not found bash: alias: (): not found bash: alias: {: not found bash: alias: shopt: not found bash: alias: -s: not found bash: alias: extglob;: not found bash: alias: local: not found bash: alias: ls)";: not found bash: alias: if: not found bash: alias: [: not found bash: alias: $#: not found bash: alias: -eq: not found bash: alias: 0: not found bash: alias: ];: not found bash: alias: then: not found bash: alias: -U: not found bash: alias: Applications: not found bash: alias: Desktop: not found bash: alias: Documents: not found bash: alias: Downloads: not found bash: alias: Games: not found bash: alias: Music: not found bash: alias: OnionShare: not found bash: alias: Pictures: not found bash: alias: Public: not found bash: alias: Templates: not found bash: alias: truenas-backups: not found bash: alias: truenas-data: not found bash: alias: Videos: not found bash: alias: 2>: not found bash: alias: /dev/null: not found bash: alias: |: not found bash: alias: wc: not found bash: alias: -l);: not found bash: alias: if: not found bash: alias: [: not found bash: alias: "$files": not found bash: alias: "0": not found bash: alias: ];: not found bash: alias: then: not found bash: alias: $LS: not found bash: alias: -d: not found bash: alias: {.,..,*}: not found bash: alias: -lA: not found bash: alias: --human-readable: not found bash: alias: --group-directories-first;: not found bash: alias: -U: not found bash: alias: -d: not found bash: alias: .bash_history: not found bash: alias: .bash_logout: not found bash: alias: .bash_profile: not found bash: alias: .bashrc: not found bash: alias: .cache: not found bash: alias: .config: not found bash: alias: .lesshst: not found bash: alias: .lmmsrc.xml: not found bash: alias: .local: not found bash: alias: .mozilla: not found bash: alias: .pki: not found bash: alias: .ssh: not found bash: alias: .var: not found bash: alias: .vscode: not found bash: alias: 2>: not found bash: alias: /dev/null: not found bash: alias: |: not found bash: alias: wc: not found bash: alias: -l);: not found bash: alias: if: not found bash: alias: [: not found bash: alias: "$hidden_files": not found bash: alias: "0": not found bash: alias: ];: not found bash: alias: then: not found bash: alias: echo: not found bash: alias: "";: not found bash: alias: $LS: not found bash: alias: -d: not found bash: alias: .bash_history: not found bash: alias: .bash_logout: not found bash: alias: .bash_profile: not found bash: alias: .bashrc: not found bash: alias: .cache: not found bash: alias: .config: not found bash: alias: .lesshst: not found bash: alias: .lmmsrc.xml: not found bash: alias: .local: not found bash: alias: .mozilla: not found bash: alias: .pki: not found bash: alias: .ssh: not found bash: alias: .var: not found bash: alias: .vscode: not found bash: alias: -l: not found bash: alias: --human-readable: not found bash: alias: --group-directories-first;: not found bash: alias: fi;: not found bash: alias: else: not found bash: alias: $LS: not found bash: alias: -d: not found bash: alias: {.,..,}: not found bash: alias: -lA: not found bash: alias: --human-readable: not found bash: alias: --group-directories-first;: not found bash: alias: fi;: not found bash: alias: else: not found bash: alias: if: not found bash: alias: [: not found bash: alias: $#: not found bash: alias: -eq: not found bash: alias: 1: not found bash: alias: -a: not found bash: alias: -d: not found bash: alias: "$1": not found bash: alias: ];: not found bash: alias: then: not found bash: alias: local: not found bash: alias: 'cd': not found bash: alias: "$1/";: not found bash: alias: better_ls;: not found bash: alias: 'cd': not found bash: alias: "$current_pwd";: not found bash: alias: else: not found bash: alias: if: not found bash: alias: [: not found bash: alias: $#: not found bash: alias: -eq: not found bash: alias: 1: not found bash: alias: -a: not found bash: alias: -f: not found bash: alias: "$1": not found bash: alias: ];: not found bash: alias: then: not found bash: alias: $LS: not found bash: alias: -l: not found bash: alias: --human-readable: not found bash: alias: "$1";: not found bash: alias: else: not found bash: alias: $LS: not found bash: alias: --human-readable: not found bash: alias: --group-directories-first: not found bash: alias: "$@";: not found bash: alias: fi;: not found bash: alias: fi;: not found bash: alias: fi: not found bash: alias: }: not found bash: alias: -d: not found bash: alias: .: not found bash: alias: ..: not found bash: alias: -lA: not found bash: alias: --human-readable: not found bash: alias: --group-directories-first: not found

For the greeter, I am not sure as I have always selected no to just that.

a cat of my .bashrc provides
` ger  ger-desktop  ~  cat .bashrc

.bashrc

Source global definitions

if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

User specific environment

if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
then
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH

Uncomment the following line if you don't like systemctl's auto-paging feature:

export SYSTEMD_PAGER=

User specific aliases and functions

if [ -d ~/.bashrc.d ]; then
for rc in ~/.bashrc.d/*; do
if [ -f "$rc" ]; then
. "$rc"
fi
done
fi

unset rc

##-----------------------------------------------------

synth-shell-prompt.sh

if [ -f /var/home/ger/.config/synth-shell/synth-shell-prompt.sh ] && [ -n "$( echo $- | grep i )" ]; then
source /var/home/ger/.config/synth-shell/synth-shell-prompt.sh
fi

##-----------------------------------------------------

better-ls

if [ -f /var/home/ger/.config/synth-shell/better-ls.sh ] && [ -n "$( echo $- | grep i )" ]; then
source /var/home/ger/.config/synth-shell/better-ls.sh
fi

##-----------------------------------------------------

alias

if [ -f /var/home/ger/.config/synth-shell/alias.sh ] && [ -n "$( echo $- | grep i )" ]; then
source /var/home/ger/.config/synth-shell/alias.sh
fi

##-----------------------------------------------------

better-history

if [ -f /var/home/ger/.config/synth-shell/better-history.sh ] && [ -n "$( echo $- | grep i )" ]; then
source /var/home/ger/.config/synth-shell/better-history.sh
`

Hmm this is an odd error message you are getting. Now I can only speculate, but its seems that the setup tried to "alias" everything related to better-ls or bash is going crazy.

The output of your $HOME seems sane. I'm not seeing anything in the error message pointing to the possibility that the problem is caused by your user's file not being under the traditional /home dir. What made you think it could be related? Did you get a different error message in the past?

Also great that you've shared your bashrc file. Nothing odd there... Could you try deleting all the bash entries related to better-ls, alias and better-history? Just leave in place those related to the prompt. That way we can determine whether the problem is caused by the prompt (in terms of code, the most complex one of the 4) or if it is only caused by better-ls (since the error messages mention it). Or for that matter, if alias is messing stuff up. In either case, you can peek into the code under /var/home/ger/.config/synth-shell/ and you will find all 4 scripts and some config files

before i read your post, i just moved bashrc to bashrcOLD and touch bashrc empty file. i ran your script including the greeter and its working flawlessly now.
this is worse than finding a problem and fixing it because now its totally fine but we don't know why wht happened happened.
Apologies for wasting your time and thanks for helping me out.

I suppose for anyone else reading this. just rename your bashrc and start fresh.

Well, this is surprising. Maybe the problem was not related to synth-shell? Please re-open the issue if you experience problems again, maybe there is a small no-easy-to-reproduce bug hiding in there.

Have fun fooling around with bash!!