SpiralLinux / SpiralLinux-project

SpiralLinux project
https://spirallinux.github.io/
148 stars 5 forks source link

Switching to Testing branch: modified system language, error with locales, gnome-terminal not working #326

Closed marwenius closed 10 months ago

marwenius commented 11 months ago

Fresh install of SpiralLinux Cinnamon 12.231008 release.

There are a few errors when switching to the Testing branch.

1: modified system language

I selected German as the system language during installation. After switching to the testing branch, the system language changed to English. In addition, after the reboot a dialog appeared to adjust the folder names (from German to English).

2: error with locales

At the end of the process to switch to the Testing branch this error occurs:

update-locale: Unable to write /etc/locale.conf: Too many levels of symbolic links
dpkg: error processing package locales (--configure):
 installed locales package post-installation script subprocess returned error exit status 40
Processing triggers for man-db (2.11.2-3) ...
Errors were entcountered while processing:
 locales
E: Sub-process /usr/bin/dpkg returned an error code (1)

I removed the package and reinstalled it: The error remains the same.

3: gnome-terminal not working

Another effect is that gnome-terminal stops working.

I installed terminator as an alternative and tried to run gnome-terminal from there.

Result (after waiting 25 seconds):

user@thinkpad:~$ gnome-terminal
# Error contructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached

On the other hand: It works with sudo gnome-terminal

Maybe it has something to do with the adjustments in the SpiralLinux 12.231005 release regarding systemlink and language support?

geckolinux commented 11 months ago

Please try deleting /etc/locale.conf and then sudo update-locale again. Then post here the contents of /etc/default/locale and /etc/locale.conf (if it exists). Thanks!

marwenius commented 11 months ago

I started with a fresh installation, then switched back to the Testing branch and the error occurred again.

Then I did what you suggested.

Result:

The content of both files /etc/default/locale and /etc/locale.conf is: # File generated by update-locale

After that, I reinstalled a package as a test and the error did not occur again:

user@thinkpad:~$ sudo apt install --reinstall rolldice
[...]
locales (2.37-12) wird eingerichtet
Generating locales (this might take a while)...
  de_DE.UTF-8... done
  en_US.UTF-8... done
Generation complete.
[...]

The message with "locales" appeared only the first time during reinstallation. When I repeated sudo apt install --reinstall rolldice, the locales message no longer appeared.

BUT:

After a reboot, the system language changed back to English. The dialog that the folder names must be adjusted did not come this time.

Then i tried:

user@thinkpad:~$ env | grep LANG
LANG=C.UTF-8

I was able to fix it with your "Language support" script. After a restart, the system language is set to German again.

marwenius commented 11 months ago

BUT:

After a reboot, the system language changed back to English. The dialog that the folder names must be adjusted did not come this time.

Then i tried:

user@thinkpad:~$ env | grep LANG
LANG=C.UTF-8

I was able to fix it with your "Language support" script. After a restart, the system language is set to German again.

These additional steps were not necessary when I delete /etc/locale.conf and run sudo update-locale after a fresh install before switching to the Testing branch.

geckolinux commented 11 months ago

Thanks a lot for the detailed testing and for catching this bug.

I can confirm the behavior. It looks like Debian 13+ will drop the non-standard /etc/default/locale config file and create a symlink from /etc/locale.conf -> /etc/default/locale for backwards compatibility. (https://groups.google.com/g/linux.debian.bugs.dist/c/6TOOs1L3z3E) Whereas Debian 12 still uses /etc/default/locale, and SpiralLinux currently creates a symlink from /etc/default/locale -> /etc/locale.conf. So once upgraded to Debian 13 the update-locale script fails because the symlinks are backwards from what it expects.

I've tested this in a SpiralLinux installation before upgrading to Testing:

sudo cp /etc/default/locale /etc/locale.conf
sudo rm /etc/default/locale
sudo ln -s /etc/locale.conf /etc/default/locale

And I updated my /usr/sbin/reconfigure-locales-wrapper.sh to rm /etc/locale.conf (necessary because Debian's update-locales script is not very intelligent and it fails under certain conditions if the file is preexisting) instead of rm /etc/default/locale.conf . This works when changing the locale before upgrading SpiralLinux to Debian Testing as well as after (maintains default non-English language) and also if reconfiguring languages in the upgraded system.

I'll try to push out updated ISOs soon.

bunnymnemonic commented 11 months ago

I can confirm that this problem is fixed in the new RC (staging) ISO! Thank you!

geckolinux commented 11 months ago

I can confirm that this problem is fixed in the new RC (staging) ISO! Thank you!

Excellent thanks for confirming!

marwenius commented 11 months ago

I can confirm that this problem is fixed in the new RC (staging) ISO! Thank you!

I can confirm this too.

geckolinux commented 10 months ago

https://github.com/SpiralLinux/SpiralLinux-project/releases/tag/12.231120