Solution to Ubuntu 23.10 DingTalk Unable to Start

After upgrading to Ubuntu23.10 last Friday, the overall performance was smooth, and some minor problems were discovered:

    1. Select copy with alacritty + tmux, tmux server crashes, and it will happen inevitably. The problem is solved after reinstalling purge. The old version was compiled by myself.
    1. DingTalk cannot be started, which I did not expect.

Start error:

1➜ files ./Elevator.sh
2ubuntu
3ubuntu branch
4preload_libs=
5./com.alibabainc.dingtalk: symbol lookup error: /lib/x86_64-linux-gnu/libcairo.so.2: undefined symbol: FT_Get_Color_Glyph_Layer

First take a look at the situation of libcairo.so, it is normal:

1➜ x86_64-linux-gnu ls -al libcairo.so*
2lrwxrwxrwx 1 root root 13 Sep 24 06:39 libcairo.so -> libcairo.so.2
3lrwxrwxrwx 1 root root 21 Sep 24 06:39 libcairo.so.2 -> libcairo.so.2.11800.0
4-rw-r--r-- 1 root root 1334120 Sep 24 06:39 libcairo.so.2.11800.0
5➜ x86_64-linux-gnu pwd
6/lib/x86_64-linux-gnu
7➜ x86_64-linux-gnu

It is really incomprehensible that for a company as big as Alibaba, since it officially provides deb packages, it does not conduct at least a minimum of testing when upgrading mainstream distributions. What's even worse is that it's difficult to find a feedback channel. I used to log in on the desktop, and there was a portal for feedback. I also reported some problems with dual screens and abnormal exits, and they were almost solved (don't expect too much). ).

This time I cannot log in on the desktop, so I can only report problems on the iOS side. The entrance is "My" > "Customer Service and Help" > "Online Customer Service" (slide to the bottom for fear of people finding it 🤮) > enter "manual" (queue for 16 minutes 🤷🤷‍♂️).

Why do you enter "manual"? I found it by looking at the documentation. If you don’t believe me, try entering “convert to manual”! No intelligence at all.

The process is as follows:

dingtalk help

dingtalk dialog

dingtalk response

I originally thought that the key error information had been provided. As long as the other party showed it to the Linux client students, it would definitely be solved without any accident. Unexpectedly, I was asked to record the screen and write an email to provide the version number.

I can’t help but wonder, doesn’t Alibaba have any classmates who use Ubuntu? The test set should at least include mainstream systems...

Looking at the error message, it seemed that it was not very complicated, so I tried to solve it myself. It is better to ask for help than to ask for help yourself. The solution is as follows:

1. Find the target directory

1➜ 7.1.0-Release.31011 pwd
2/opt/apps/com.alibabainc.dingtalk/files/7.1.0-Release.31011

2. Move/delete the target .so file

Move/delete the target .so file (recommend mv, if this operation method does not work, you can still restore it)

1➜ 7.1.0-Release.31011 mv libfreetype.so.6* ~
2mv: cannot remove 'libfreetype.so.6': Permission denied
3mv: cannot remove 'libfreetype.so.6.16.1': Permission denied
4➜ 7.1.0-Release.31011 sudo mv libfreetype.so.6* ~
5[sudo] password for mephisto:

3. Test

The test starts normally:

 1➜ ~ /opt/apps/com.alibabainc.dingtalk/files/Elevator.sh
 2ubuntu
 3ubuntu branch
 4preload_libs=
 5Run Main is_gpu=0 is_zygote=0 is_render=0 cmd : ./com.alibabainc.dingtalk
 6[2023/10/18 14:17:09:ERROR:gray_sdk_manager.cpp(118)] [gray_sdk] GraySdkManager::IsGraySdkStarted uninitialized
 7[2023/10/18 14:17:09:WARNING:gray_sdk_manager.cpp(208)] [gray_sdk] GraySdkManager::GetGraySwitch module:cspace key:calendar_jsapi_cross_platform
 8[2023/10/18 14:17:09:ERROR:gray_sdk_manager.cpp(118)] [gray_sdk] GraySdkManager::IsGraySdkStarted uninitialized
 9[2023/10/18 14:17:09:WARNING:gray_sdk_manager.cpp(208)] [gray_sdk] GraySdkManager::GetGraySwitch module:mail key:enable_mail_navigation_notify_button
10[2023/10/18 14:17:09:ERROR:gray_sdk_manager.cpp(118)] [gray_sdk] GraySdkManager::IsGraySdkStarted uninitialized
11[2023/10/18 14:17:09:WARNING:gray_sdk_manager.cpp(208)] [gray_sdk] GraySdkManager::GetGraySwitch module:cspace key:change_memo_color_mac_38596632
12[2023/10/18 14:17:09:INFO:gray_switch_lemon.cpp(456)] [gray_sdk] auto route to before login interface, module:general,key:enable_dingpan_sync_20220606_common
13[2023/10/18 14:17:09:ERROR:gray_sdk_manager.cpp(118)] [gray_sdk] GraySdkManager::IsGraySdkStarted uninitialized
14[2023/10/18 14:17:09:WARNING:gray_sdk_manager.cpp(208)] [gray_sdk] GraySdkManager::GetGraySwitch module:general key:enable_dingpan_sync_20220606_common
15...... Ten thousand lines are omitted here

4. How to find the method

Keyword search first:

google search

The first few search results are not very satisfactory. They are either deleted or various soft links. I am afraid that it will affect the stability of the system.

Until you click on arch wiki, The errors reported are exactly the same, just the software name has been changed.

  • The method is to find the problem .so file and prevent dingtalk from reading it.

**In this way, DingTalk's libfreetype.so will not be used (at this time, the libfreetype.so that comes with the system will be used, and there will be no compatibility issues between the various .so files of the system, after all, we are our own), This will not trigger the problem of incompatibility between DingTalk and system dependent libraries. **

  • What the hell is FT_Get_Color_Glyph_Layer

It is used by OpenType fonts to obtain some basic information. Please refer to Document

  • Glyph Layer large model explanation

    "Glyph Layer" usually refers to the layer used to represent text or symbols in graphic design or typography. In typography, each glyph can be regarded as an independent object, and these objects are placed on their own layers. This is the so-called "Glyph Layer". This makes the layout more flexible and easier to edit and modify. In design software, such as Adobe Illustrator or QuarkXPress, there are settings for layers that allow users to edit and manage each individual element in layers.

It feels similar to the various layer operations in pictures. I have to say that large models are suitable for understanding various concepts and are faster than searching by yourself.

As an aside, there are no problems with upgrading Feishu this time. DingTalk’s Linux client still has room for improvement, but it can only be said that it is not the worst. After all, the Linux WeChat client is at the bottom, like a disability.

Lastmod: Wednesday, October 18, 2023

See Also:

Translations: