td icon indicating copy to clipboard operation
td copied to clipboard

tdlib fails to install headers that telegram needs

Open yurivict opened this issue 8 months ago • 3 comments

The telegram-desktop project fails to build:

/usr/ports/net-im/telegram-desktop/work/tdesktop-5.14.1-full/Telegram/SourceFiles/tde2e/tde2e_api.cpp:13:10: fatal error: 'td/e2e/e2e_api.h' file not found
   13 | #include <td/e2e/e2e_api.h>
      |          ^~~~~~~~~~~~~~~~~~
1 error generated.

This is because the header td/e2e/e2e_api.h isn't installed by tdlib, among other headers.

Missing header directories:

include/td/e2e
include/td/utils
include/td/telegram

Version 1.8.48

yurivict avatar May 12 '25 20:05 yurivict

tde2e is a library used by TDLib to implement group calls. Whoever uses TDLib doesn't need to use tde2e. Therefore, tde2e is no different from OpenSSL or any other library internally used by TDLib and its headers must not be installed along with TDLib.

Nevertheless, the latest TDLib version allows to build and install tde2e as a standalone library from the same repository as TDLib by providing configuration option TD_E2E_ONLY:Bool=ON to cmake. This will build tde2e and install all headers required to use it directly.

levlam avatar May 12 '25 21:05 levlam

Somehow adding -DTD_E2E_ONLY=ON didn't make any difference. And then, what about include/td/utils and include/td/telegram ?

yurivict avatar May 13 '25 00:05 yurivict

Somehow adding -DTD_E2E_ONLY=ON didn't make any difference.

Do you use the latest TDLib 1.8.49 from Github?

And then, what about include/td/utils and include/td/telegram ?

They are private even for tde2e and must never be installed.

levlam avatar May 13 '25 09:05 levlam