ThinLinc 4.13.0 Beta

The upcoming release of ThinLinc is almost done and will include more than 120 enhancements and fixes. The most prominent changes are:

  • The ThinLinc server has been updated to use Python 3 and GTK+ 3 in
    order to be more compatible with the latest distributions and with
    future distributions. Distributions where Python 3 is not available
    are no longer supported by this or future versions of ThinLinc.

  • Some stability issues with Kerberos on Windows have been fixed and the
    ThinLinc client should now work reliably with Kerberos on all

Ahead of the final release a beta version is now available for testing. Please give it a try to see what’s changed, and if there are any problems we’ve missed. A final version should be out very soon.

Please note that this pre-release version should not be used on critical systems. The beta version can be downloaded from our web site:

You’ll also find the release notes there, detailing all the changes in this release.



Trying to install(upgrade) on centos7:


resolving package ‘python3-gobject’ for installation
no package name ‘python3-gobject’ found
resolving package ‘gtk3’ for installation
package ‘gtk3’ is already installed (as ‘gtk3’)
Failure resolving packages

Package python-gobject-3.22.0 is installed, and after installation everythin works as expected.
But it is impossible to install using ansible :frowning:



Hello @pewo

Thank you for your report.
This is something we was made aware of recently, and we’re currently working on a fix for this.


@pewo the issue has now been fixed, but no new public beta version will be made available at the moment. Write an email to me at and I’ll send you a link to a fixed version.

2021-08-15 13:47:31,528: No information about which packages provide GTK+ and PyGObject on this distribution
2021-08-15 13:47:31,529: Traceback (most recent call last):
2021-08-15 13:47:31,529:   File "/opt/thinlinc/sbin/../libexec/", line 303, in <module>
2021-08-15 13:47:31,529:     oOoO00 ( )
2021-08-15 13:47:31,529:   File "/opt/thinlinc/sbin/../libexec/", line 259, in oOoO00
2021-08-15 13:47:31,529:     I11 = O00oOoo0 . run ( )
2021-08-15 13:47:31,530:   File "/opt/thinlinc/modules/thinlinc/", line 99, in run
2021-08-15 13:47:31,530:     return self . _run_text ( )
2021-08-15 13:47:31,530:   File "/opt/thinlinc/modules/thinlinc/", line 117, in _run_text
2021-08-15 13:47:31,530:     Oo0O0o0oO000 ( )
2021-08-15 13:47:31,530:   File "/opt/thinlinc/modules/thinlinc/tlsetup/", line 69, in <lambda>
2021-08-15 13:47:31,530:     i1iiiiIIIiIi )
2021-08-15 13:47:31,530:   File "/opt/thinlinc/modules/thinlinc/tlsetup/", line 61, in generic_text_installer
2021-08-15 13:47:31,530:     o0O0ooOoo00o = IIii . run ( )
2021-08-15 13:47:31,530:   File "/opt/thinlinc/modules/thinlinc/tlsetup/", line 420, in run
2021-08-15 13:47:31,530:     if IiIi1I11I is None or len ( Ooo000oo0O00o ) == 0 :
2021-08-15 13:47:31,531: TypeError: object of type 'NoneType' has no len()

Trying to install on: openSUSE Leap 15.3 (lxc container)

2021-08-15 17:28:11,776: no package named 'python3-ldap' found.
2021-08-15 17:28:11,794: Failure resolving packages.
2021-08-15 17:28:11,796: Traceback (most recent call last):
2021-08-15 17:28:11,796:   File "/opt/thinlinc/sbin/../libexec/", line 303, in <module>
2021-08-15 17:28:11,796:     oOoO00 ( )
2021-08-15 17:28:11,796:   File "/opt/thinlinc/sbin/../libexec/", line 259, in oOoO00
2021-08-15 17:28:11,796:     I11 = O00oOoo0 . run ( )
2021-08-15 17:28:11,796:   File "/opt/thinlinc/modules/thinlinc/", line 99, in run
2021-08-15 17:28:11,796:     return self . _run_text ( )
2021-08-15 17:28:11,796:   File "/opt/thinlinc/modules/thinlinc/", line 117, in _run_text
2021-08-15 17:28:11,796:     Oo0O0o0oO000 ( )
2021-08-15 17:28:11,796:   File "/opt/thinlinc/modules/thinlinc/tlsetup/", line 59, in <lambda>
2021-08-15 17:28:11,796:     oO0 )
2021-08-15 17:28:11,797:   File "/opt/thinlinc/modules/thinlinc/tlsetup/", line 61, in generic_text_installer
2021-08-15 17:28:11,797:     o0O0ooOoo00o = IIii . run ( )
2021-08-15 17:28:11,797:   File "/opt/thinlinc/modules/thinlinc/tlsetup/", line 446, in run
2021-08-15 17:28:11,797:     IiIi1I11I . unlock ( )
2021-08-15 17:28:11,797:   File "/opt/thinlinc/modules/thinlinc/packageinstaller/", line 157, in unlock
2021-08-15 17:28:11,797:     apt . apt_pkg . pkgsystem_unlock ( )
2021-08-15 17:28:11,797: apt_pkg.Error: E:Not locked

Trying to install on: Debian GNU/Linux 9 (stretch)

1 Like

Hello @pewo

Thank you for evaluating our beta and finding these bugs. :bug:

These two crashes were previously unknown to us and we greatly appreciate your time and effort in helping us to improve Thinlinc.

Ha a great day! :smiley:


@pewo Those two crashes has now been fixed internally. Once again, thanks for the help here.

While the crashes are fixed, it’s worth noting that ThinLinc’s Setup won’t be able to automatically install all dependencies on openSUSE Leap like it can on most major modern distros. This has been the case prior to 4.13.0 and will unfortunately continue to be the case in this version. Required packages must be manually installed on openSUSE Leap.

A minor note regarding Debian 9 is that the python3-ldap package doesn’t seem to be available. This package is only used in ThinLinc’s tl-ldap-certalias and can safely be skipped.

Contact me if you wish to get your hands on an updated server build before the final release is available.

Is there a list of openSUSE packages which needs to be installed prior to installing thinlinc ?

Yes, all server requirements are listed in our documentation. For ThinLinc 4.13.0 beta 1, you can see the documentation here:

Edit: note that this list does not list exact package names as those vary a lot between distros

Also note that ThinLinc Setup should assist you and list any missing requirements in the case it can not install them automatically. Of course, this is only useful if you run tl-setup interactively.

Do you want some more on openSUSE ? :slight_smile:

Installed some packages:

  • nfs-client
  • typelib-1_0-Gtk-3_0
  • python3-gobject
    and ran tl-setup manually:
   Configuring Services
    Configuring and starting ThinLinc services... Internal error
    The ThinLinc Server Setup Wizard will now terminate.

2021-08-21 09:50:06,945: Configuring PAM...
2021-08-21 09:50:06,946: Created /etc/pam.d/thinlinc symlink
2021-08-21 09:50:06,946: Setting /vsm/setup_completed...
2021-08-21 09:50:06,967: Installing services...
2021-08-21 09:50:06,967: Installing service 'vsmserver'...
2021-08-21 09:50:07,354: Traceback (most recent call last):
2021-08-21 09:50:07,354:   File "/opt/thinlinc/sbin/../libexec/", line 303, in <module>
2021-08-21 09:50:07,354:     oOoO00 ( )
2021-08-21 09:50:07,354:   File "/opt/thinlinc/sbin/../libexec/", line 259, in oOoO00
2021-08-21 09:50:07,354:     I11 = O00oOoo0 . run ( )
2021-08-21 09:50:07,354:   File "/opt/thinlinc/modules/thinlinc/", line 99, in run
2021-08-21 09:50:07,354:     return self . _run_text ( )
2021-08-21 09:50:07,354:   File "/opt/thinlinc/modules/thinlinc/", line 117, in _run_text
2021-08-21 09:50:07,354:     Oo0O0o0oO000 ( )
2021-08-21 09:50:07,354:   File "/opt/thinlinc/modules/thinlinc/tlsetup/", line 269, in i111II
2021-08-21 09:50:07,355:     ii1ii = iI1i ( )
2021-08-21 09:50:07,355:   File "/opt/thinlinc/modules/thinlinc/tlsetup/", line 203, in iI1i
2021-08-21 09:50:07,355:     if not o0 ( "vsmserver" ) :
2021-08-21 09:50:07,355:   File "/opt/thinlinc/modules/thinlinc/tlsetup/", line 62, in o0
2021-08-21 09:50:07,355:     ( i1111IIi , oOo00O ) = I1i . communicate ( )
2021-08-21 09:50:07,355:   File "/usr/lib64/python3.6/", line 863, in communicate
2021-08-21 09:50:07,355:     stdout, stderr = self._communicate(input, endtime, timeout)
2021-08-21 09:50:07,355:   File "/usr/lib64/python3.6/", line 1578, in _communicate
2021-08-21 09:50:07,355:     self.stderr.errors)
2021-08-21 09:50:07,355:   File "/usr/lib64/python3.6/", line 760, in _translate_newlines
2021-08-21 09:50:07,355:     data = data.decode(encoding, errors)
2021-08-21 09:50:07,355: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 78: ordinal not in range(128)

After enabling/starting vsmserver and vsmagent everything works as expected.

1 Like

Thank you for your report @pewo

Did you encounter this bug on openSUSE 15.3 running in an lxc container as you described in your previous message? Additionally, could you please provide us with the output of locale and localectl list-locales on both the host and guest OS? (or the remote machine and guest OS if you are using ssh instead of lxc-attach to access the container)

– William

Yes this is an lxc-container in proxmox. There has been problemes with the locale stuff.
If I don’t rember wrong I set LC_ALL=C on the ansible server before running the playbook.
I will get back when I get back home…

On the ansible server:

[root@ansible ansible]# locale
[root@ansible ansible]# localectl
   System Locale: n/a

       VC Keymap: n/a
      X11 Layout: n/a
[root@ansible ansible]# list-locales
-bash: list-locales: command not found

On the client (opensuse using ssh)

thinlinc-opensuse:~ # locale
thinlinc-opensuse:~ # localectl
   System Locale: LANG=C.UTF-8
       VC Keymap: n/a
      X11 Layout: n/a
thinlinc-opensuse:~ # list-locales
-bash: list-locales: command not found

Thank you @pewo!

Just to be sure, did you perform any modifications to the ThinLinc source files themselves to allow tl-setup to start at all with your current locale settings?

Nope, I have only modified my locale before starting the installation.

Sadly I have been unable to reproduce the problem which stems from systemctl detecting the locale encoding as UTF-8 while Python 3.6 detects it as ASCII. Nonetheless, during our attempts of reproducing the bug, we found a similar bug with identical symptoms to what you describe above. This other bug has now been fixed internally, and in turn, we strongly believe that your bug was corrected as well.

Still, we are very thankful for your testing efforts!

– William

If you want, I can download your latest build and test.