- Package:
- gnome-terminal
- Source:
- gnome-terminal
- Description:
- GNOME terminal emulator application
- Submitter:
- "Felix C. Stegerman"
- Date:
- 2025-02-18 11:15:02 UTC
- Severity:
- important
- Tags:
Dear Maintainer, After I updated gnome-terminal from 3.10.1-1 to 3.12.0-2, it refused to start. $ gnome-terminal Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.gnome.Terminal exited with status 1 $ /usr/lib/gnome-terminal/gnome-terminal-server Non UTF-8 locale is not supported! Even if this is the intended behaviour, silently breaking does not seem very user-friendly. And I would certainly prefer to keep using my non-utf-8 locale (because I have latin1-encoded filenames). At the moment that means I have to use another terminal emulator. Thanks. - Felix
A few hours aqgo I opened a new bug report related to the very same problem reported here. I did it by mistake because it was the first time I was using reportbug. Anyway, to be on the safe side, I am here to forward my bug report as a reply to this bug. Maurizio. Package: gnome-terminal Version: 3.12.2-1 Severity: important Tags: l10n Dear Maintainer, I am having the VERY SAME problem described in Debian Bug report logs - #746415, "gnome-terminal: will not start with non-utf-8 locale" which is still waiting to be solved. In the mean time I am completely unable to use gnome-terminal application. I do not know how to support that bug and more than a month went by without any answer to that bug report (not necessarily a solution, just an answer) so I decided to open a new one. Thanks for your support!!! Maurizio.
Here are some tests run on my PC. I wonder they are helpful to debug (and hopefully solve!) the problem. ****** maurizio@LiMOne:~$ gnome-terminal --version GNOME Terminal 3.12.2 maurizio@LiMOne:~$ gnome-terminal Error constructing proxy for org.gnome.Terminal:/org/gnome/ Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.gnome.Terminal exited with status 1 maurizio@LiMOne:~$ LANG=C.UTF-8 gnome-terminal Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.gnome.Terminal exited with status 1 maurizio@LiMOne:~$ LANG=C gnome-terminal Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.gnome.Terminal exited with status 1 maurizio@LiMOne:~$ /usr/lib/gnome-terminal/gnome-terminal-server Non UTF-8 locale is not supported! maurizio@LiMOne:~$ *LANG=C.UTF-8 /usr/lib/gnome-terminal/gnome-terminal-server* maurizio@LiMOne:~$ LANG=C /usr/lib/gnome-terminal/gnome-terminal-server Non UTF-8 locale is not supported! ****** In red the only case when the code did not give any error and it did exit a few seconds after it had been run without any message. I also tried to follows some suggestions from https://bbs.archlinux.org/viewtopic.php?id=180103 by giving as root locale-gen + localectl set-locale LANG="en_US.UTF-8" + reboot but no good results. In the end of the blog DESPAIR says Today I got last update "GNOME Terminal 3.12.2". And problem seems like fixed. I do have the very SW version but it did not work for me. Egmont, please feel free forward to bugzilla.gnome.org my tests you can find at the beginning of this reply if you think it can be useful. Maurizio.
Just one more data to clarify the really strange behaviour of my G-T installation: I do not have any non-UTF locale, as you can see from the output of "localectl list-locales": C.UTF-8 en_US.utf8 it_IT.utf8 HTH, Maurizio. PS What is the relationship between G-T and G-T-S? I think I usually run G-T only: does it rely on G-T-S underneath?
Dear Maintainer, unfortunately no good news after updating to the new version, which is 3.12.3-1. So let's keep on waiting for the bug to be solved once and for all. TIA to whoever will succeed! Maurizio.
Dear Maintainer,
I just solved my problem by running
'dpkg-reconfigure locales'
and - that looks to me the part which made the difference! - by asking the
system to set "en_US.UTF-8" as default value ("it_IT.UTF-8" is also available -
of course that means the row 'LANG=en_US.UTF-8' is added to
'/etc/default/locale').
A system reboot seems to be another necessary part (the very last one!) of the
solution.
After those steps, once I run the command 'locale' under my user I get a lot of
"en_US.UTF-8" while, before that, I got either empy lines or "C"values... and,
finally, gnome-terminal starts once again as it used to do in the past.
Thanks to the suggestion from
'http://forums.debian.net/viewtopic.php?f=10&t=58860'.
I do hope this helps others.
Maurizio.
i'm seeing the same error where gnome-terminal refuses to start in a non-UTF-8 locale. In fact, on a machine that doesn't even have the locales package installed, i can install gnome-terminal. This suggests to me that there is (at least) a missing dependency (gnome-terminal Depends: locales) and that gnome-terminal should also produce a warning dialog box giving the user some clue rather than silently terminating.
In my case, the culprit appears to be my session dbus daemon, which has LANG=C and GDM_LANG=C in its environment. Unfortunately I have no idea whatsoever where it gets the LANG envvar from. Help?
control: tags 746415 patch
I thought I send this message but I can not see this on BTS.
This bug is upstreamed and there is a proof of concept patch. Since
Debian jessie always supports C.UTF-8, this upstream proposed patch
should be the good patch.
diff --git a/src/server.c b/src/server.c
index fd33c36..2960245 100644
--- a/src/server.c
+++ b/src/server.c
@@ -86,6 +86,17 @@ main (int argc, char **argv)
}
setlocale (LC_ALL, "");
+ /* If not UTF-8, try a few more for LC_CTYPE */
+ if (!g_get_charset (NULL)) {
+ char *ctype = setlocale(LC_CTYPE, NULL);
+ int len = strcspn(ctype, ".");
+ char *newctype = g_strdup_printf("%.*s.UTF-8", len, ctype);
+ setlocale (LC_CTYPE, newctype);
+ }
+ if (!g_get_charset (NULL))
+ setlocale (LC_CTYPE, "C.UTF-8");
+ if (!g_get_charset (NULL))
+ setlocale (LC_CTYPE, "en_US.UTF-8");
terminal_i18n_init (TRUE);
See
https://bug732127.bugzilla-attachments.gnome.org/attachment.cgi?id=279068
https://bugzilla.gnome.org/show_bug.cgi?id=732127
============
As for Matthias Urlichs's problem
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=746415#55
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764649
I do not know if he has 2 problems. This may be partly due to the fact
he only has locales-all installed without locale. I wonder what happens
if he create /etc/default/locale with
LANG=en_US.UTF-8
or
LANG=C.UTF-8
if he is missing it. (I realized locale package can be removed now if
locales-all is installed. This leaves me with POSIX ("") as LANG
value.)
Osamu
I was unable to fix it with `dpkg-reconfigure locales` or `localectl`. I noticed that LC_ALL was unset so I added it to /etc/default/locale. $ cat /etc/default/locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 Gnome terminal works now (after restart).
Hi, all. I can confirm this also happens with gnome-terminal 3.20.2-4. Best, Leandro
Dear Customer, Please check your package delivery details attached! FedEx-----BEGIN PGP PUBLIC KEY BLOCK----- pEZ3/RTvfrowJocJHogDRZjvv+N8gnADDJvu98enPsUk7FuPJQMAXA6hSv6j6vIrV/Vi3fYo9pnq 9p6FZxKFra3eEwHsTa+u1ggptxYzwkeQR3uG5w5i3ItNmBBSxQ4rwWY05qlzcrle9Bgx4exOSCBQ OCMveemFVI+pD8mtC9JN4yzL+N9//2wqOqhFaQaSyeqUADic3W96wLiTFLWifNPjReXTl9WxpMCA NqA9skMu/jrTDqcgrzcO6i5su0AADliobEzvbvDQou4hzdQY22fwHFQSuEyTQPgiWjxQxMTqaD/A vb7h6lp6Y/oIv074+ySKweEgf/8Zl8eGw22R9hqh69lT86htoYiEQ9UG0B/2D8yrkA5kUcmSu40f fDpobO/m8ewYQOKaTOZJnNQzq2cFek1lyb4BF7i90eY0hFBFx6z/HfUfkaWJb3jF8cfOr/16mPrZ xoORl40zHq3qO4qJY3LTZrr9EUd+pUXmfiAFmcSkHb6mdhLV0OqBDRc5ilVrFUCgoiw5b92umRhi AGI5Chu3dvSBCDUjXOgvuccuyH/BBtk7On8jA9MZ6n8UCpOLPVgYr60I21ccDf7TXhwucUqmA46p 5XKp+p2q5vD0lZWQhvtIVrN8YFZNsQ4DzcunGfU8LaA6k0al3h8KYaiLjSTVt/5x3RL1Dd1EmEPF 6FoLp/CwtpcMPNPmcV6gWewjCJUxr4YKhCA+EUPWdSBmh1DBhX2KDB4GinePQ699vcBcfMQ7vYPA 5WjlRFkmgQzX+BxLKsLHuxj7f9qf5oUPlJtyyJSLMQMqhnVHvi5IqoFW1a3rUigrEf74bsRNkfV0 X4KS4MzEh0SDGnLEeDRjYFqVHwptpRcZigsayIGFGKw0zOGYZ8j0b5g3BWb8vu9sKU09dev1Ngdc wsEKtGy7aQNHXARWS6rUuh5dI4aAtpUbmMvxVbFPaN6pukIBtrBzldrGprADpIBRXMZyWKSpE5GA qa8CzSuBTLSnNpp2s1IVsm2LCWIF5MC5V7XmzfElIdeaVzhLum07nmphnNaOzJ9YFrWRqAsT8tMs x26OyQEnUKe71rjZDC7kewGYjHRUp4V0dB9tBb5lUUyUyAwYLH5JD4Fbtn6424E4oJ6yzk+o4C4p Yzza6B9ZNxXzpdGAodhwD5TP1odcb0KKNEDQ2nj9ozY4hFUQrRV6Z/mKV43Z9NP8siCenUS1X8uc cD24xU4ZX2I00GVkLsHHpfsOF1Z6NuTTeiXL4labgaQkf3DSlikVIty6iXVfnW4YA+qLOe86cO3l f6Gek9K/PFCgmW5cFjzfc95ViILAjJya4vNY1bsqSA==-----END PGP PUBLIC KEY BLOCK-----
Dear Customer, Your parcel was successfully delivered April 05 to UPS Station, but our courier cound not contact you. Please check the attachment for complete details! With anticipation, Elmer Fink, UPS Senior Station Manager.
forcemerge 868461 746415 forcemerge 819510 746415 forcemerge 851281 746415 tags 746415 d-i thanks I have recently installed a debian system: I choose C locale at the beginning of the installation, finish system installation, reboot and log in gnome: I cannot start any terminal, since gnome-terminal, the only terminal installed, refuses to start! (I had to enter a text console and install xterm to allow me to have a working terminal in gnome.) Starting gnome-terminal inside xterm shows the following error: Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached Note there is no error status (such as "exited with status 8"). By the way, uxterm too refuses to start when locale is C, and shows an error about locale. A workaround is dpkg-reconfigure locales and choose a UTF-8 locale, such as en_US.UTF-8 (I do not remember if it needs also to be made the default or not). This bug affects current debian installations, hence the d-i tag.
I've just had this problem -- updated to Mint 19.2 and found Gnome-terminal not starting. I tracked that to gnome-terminal-server refusing to start because of a non-UTF locale. I ended up commenting out these two lines in samuel@hpre:~$ egrep 'LANG|LC[_=]' .??* 2> /dev/null . . . . .profile:# export LANG=C .profile:# export LC_ALL=C . . . . .bashrc:# export LANG=en .bashrc:# export LC_ALL=en Problem solved.
I was facing this issue and resolved it by changing the language in Gnome settings as follows The ossue was that Gnome was using a strange encoding that is not supported by gnome terminal server.
Is this defect being addressed, It seems to have been important for 6 years? I am just hitting it in Debian buster (gdm3, gnome3) . I cannot set LANG=<something else> I must use LANG=C because it affects such things as sort order and only the C local has the semantic I need. $ dpkg -l gnome-terminal Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-============-============-=================================== ii gnome-terminal 3.30.2-2 amd64 GNOME terminal emulator application I actually hit a different (gnome-terminal) bug, but then hit this one while debugging that: $ env | grep LANG LANGUAGE=en_GB:en GDM_LANG=en_GB.UTF-8 LANG=en_GB.UTF-8 guest@real:~$ gnome-terminal # watch_fast: "/org/gnome/desktop/interface/" (establishing: 0, active: 0) # watch_fast: "/org/gnome/settings-daemon/peripherals/mouse/" (establishing: 0, active: 0) # watch_fast: "/org/gnome/desktop/sound/" (establishing: 0, active: 0) # watch_fast: "/org/gnome/desktop/privacy/" (establishing: 0, active: 0) # watch_fast: "/org/gnome/desktop/wm/preferences/" (establishing: 0, active: 0) # watch_fast: "/org/gnome/settings-daemon/plugins/xsettings/" (establishing: 0, active: 0) # watch_fast: "/org/gnome/desktop/a11y/" (establishing: 0, active: 0) # watch_established: "/org/gnome/desktop/interface/" (establishing: 1) # watch_established: "/org/gnome/settings-daemon/peripherals/mouse/" (establishing: 1) # watch_established: "/org/gnome/desktop/sound/" (establishing: 1) # watch_established: "/org/gnome/desktop/privacy/" (establishing: 1) # watch_established: "/org/gnome/desktop/wm/preferences/" (establishing: 1) # watch_established: "/org/gnome/settings-daemon/plugins/xsettings/" (establishing: 1) # watch_established: "/org/gnome/desktop/a11y/" (establishing: 1) # watch_fast: "/org/gnome/terminal/legacy/" (establishing: 0, active: 0) # unwatch_fast: "/org/gnome/terminal/legacy/" (active: 0, establishing: 1) # watch_established: "/org/gnome/terminal/legacy/" (establishing: 0) ... then terminal starts root@real:~# cat /home/guest/set-C-locale update-locale LANG=C LANGUAGE root@real:~# . /home/guest/set-C-locale root@real:~# cat /etc/default/locale # File generated by update-locale LANG=C #LANGUAGE=en_GB:en ....logoff , logon again (gdm3 + gnome3) $ env | grep LANG LANGUAGE=en_GB:en GDM_LANG=C LANG=C $ gnome-terminal # watch_fast: "/org/gnome/desktop/interface/" (establishing: 0, active: 0) # watch_fast: "/org/gnome/settings-daemon/peripherals/mouse/" (establishing: 0, active: 0) # watch_fast: "/org/gnome/desktop/sound/" (establishing: 0, active: 0) # watch_fast: "/org/gnome/desktop/privacy/" (establishing: 0, active: 0) # watch_fast: "/org/gnome/desktop/wm/preferences/" (establishing: 0, active: 0) # watch_fast: "/org/gnome/settings-daemon/plugins/xsettings/" (establishing: 0, active: 0) # watch_fast: "/org/gnome/desktop/a11y/" (establishing: 0, active: 0) # watch_established: "/org/gnome/desktop/interface/" (establishing: 1) # watch_established: "/org/gnome/settings-daemon/peripherals/mouse/" (establishing: 1) # watch_established: "/org/gnome/desktop/sound/" (establishing: 1) # watch_established: "/org/gnome/desktop/privacy/" (establishing: 1) # watch_established: "/org/gnome/desktop/wm/preferences/" (establishing: 1) # watch_established: "/org/gnome/settings-daemon/plugins/xsettings/" (establishing: 1) # watch_established: "/org/gnome/desktop/a11y/" (establishing: 1) # Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached $ Setting LANG=C is required to work by various standards, many other programs in order to get valid support data require to be run in C locale. In my case I need emacs to be running under C locale ... so I cannot set it later e.g. in .bashrc
I cannot reproduce this bug, even after setting LC_ALL=C in /etc/default/locale. And it is tagged fixed-upstream. So, what's the status of this bug?
Well I pretty much stopped using gnome-terminal (due to this bug) so I've not been spotting changes. The symptoms seem to be the same, I guess the root cause may be different. $ gnome-terminal --version # GNOME Terminal 3.30.2 using VTE 0.54.2 +GNUTLS $ dpkg-query -l gnome-terminal WARNING: terminal is not fully functional - (press RETURN) Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-============-============-=================================== ii gnome-terminal 3.30.2-2 amd64 GNOME terminal emulator application Behaviour seems similar to the original post : $ env | grep LANG LANG=C (this is reduced from before) $ id uid=1001(guest) gid=1001(guest) groups=1001(guest) (Just for MY reference, running these as guest) $ gnome-terminal # Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached $ ...only the debug is no longer appearing (I assume due to https://gitlab.gnome.org/GNOME/gnome-terminal/-/issues/42 getting fixed? ) Following this I tried: $ export LC_ALL=en_GB.utf8 graeme@real:~$ locale LANG=en_GB.utf8 LANGUAGE= LC_CTYPE="en_GB.utf8" LC_NUMERIC="en_GB.utf8" LC_TIME="en_GB.utf8" LC_COLLATE="en_GB.utf8" LC_MONETARY="en_GB.utf8" LC_MESSAGES="en_GB.utf8" LC_PAPER="en_GB.utf8" LC_NAME="en_GB.utf8" LC_ADDRESS="en_GB.utf8" LC_TELEPHONE="en_GB.utf8" LC_MEASUREMENT="en_GB.utf8" LC_IDENTIFICATION="en_GB.utf8" LC_ALL=en_GB.utf8 graeme@real:~$ gnome-terminal # Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached Previously I assume it worked with a UTF8 based locale (from the context)
Strange. I get the following: # GNOME Terminal 3.38.3 using VTE 0.62.3 +BIDI +GNUTLS +ICU +SYSTEMD And the package is gnome-terminal 3.38.3-1.
(There's a patch, but until it is has been applied, this should *not* be regarded as "fixed-upstream".) However, I can reproduce the bug with: $ env -u LC_CTYPE LANG=C /usr/libexec/gnome-terminal-server Non UTF-8 locale (ANSI_X3.4-1968) is not supported! It seems that the fact that systemd was started with UTF-8 locales mattered (even though I changed /etc/default/locale afterwards). If the patch is not accepted, an alternate solution might be to force C.UTF-8 locales somewhere in "/usr/lib/systemd/user/gnome-terminal-server.service" and/or "/usr/share/dbus-1/services/org.gnome.Terminal.service".