#1005363 telegram-desktop: Cannot compile telegram debian’s source

Package:
telegram-desktop
Source:
telegram-desktop
Description:
fast and secure messaging application
Submitter:
Alexandre François Garreau
Date:
2022-02-12 18:21:03 UTC
Severity:
normal
#1005363#5
Date:
2022-02-12 03:54:28 UTC
From:
To:
Dear Maintainer,

I wanted to compile telegram myself from debian source (this is especially needed, as upstream is not dynamically linked, and requests an API key that requires using the smartphone app, yet I don’t own a smartphone), so I did “apt build-dep telegram-desktop; apt source telegram-desktop; cd telegram-desktop*/; dpkg-buildpackage”, waited for several hours of compilation, then had the following output, with error return code (while I expected for it to just compile and be runnable, or even giving a .deb):

cd /home/gal/doc/comp/sw/src/net/telegram-desktop-3.4.3+ds/obj-x86_64-linux-gnu/Telegram && /usr/bin/cmake -E cmake_link_script CMakeFiles/Telegram.dir/link.txt --verbose=1
/usr/bin/c++ -g -O2 -ffile-prefix-map=/home/gal/doc/comp/sw/src/net/telegram-desktop-3.4.3+ds=. -fstack-protector-strong -Wformat -Werror=format-security -ftemplate-backtrace-limit=0 -Wdate-time -D_FORTIFY_SOURCE=2 -Werror=invalid-pch -Wl,-z,relro -Wl,-z,now -Wl,--as-needed @CMakeFiles/Telegram.dir/objects1.rsp -o ../telegram-desktop  lib_spellcheck/liblib_spellcheck.a liblib_tgcalls_legacy.a liblib_tgcalls.a lib_base/liblib_base.a lib_ui/liblib_ui.a lib_webview/liblib_webview.a ../cmake/external/statusnotifieritem/libexternal_statusnotifieritem.a /usr/lib/x86_64-linux-gnu/libhunspell-1.7.so liblib_tgvoip_bundled.a /usr/lib/x86_64-linux-gnu/libminizip.so liblib_tgcalls.a /usr/lib/x86_64-linux-gnu/libopenal.so /usr/lib/x86_64-linux-gnu/libtg_owt.a /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so /usr/lib/x86_64-linux-gnu/libprotobuf.so /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/x86_64-linux-gnu/libcrypto.so /usr/lib/x86_64-linux-gnu/libopus.so /usr/lib/x86_64-linux-gnu/libabsl_flags_parse.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_flags_usage.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_flags_usage_internal.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_flags.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_flags_internal.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_flags_marshalling.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_str_format_internal.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_flags_reflection.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_cord.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_hash.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_city.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_raw_hash_set.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_hashtablez_sampler.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_exponential_biased.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_flags_config.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_flags_private_handle_accessor.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_flags_commandlineflag.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_flags_commandlineflag_internal.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_flags_program_name.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_bad_optional_access.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_synchronization.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_graphcycles_internal.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_stacktrace.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_symbolize.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_malloc_internal.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_debugging_internal.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_demangle_internal.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_time.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_strings.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_throw_delegate.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_strings_internal.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_base.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_spinlock_wait.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_int128.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_civil_time.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_time_zone.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_bad_variant_access.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_raw_logging_internal.so.20200923.0.1 /usr/lib/x86_64-linux-gnu/libabsl_log_severity.so.20200923.0.1 -Wl,--as-needed -latomic  /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/x86_64-linux-gnu/libX11.so /usr/lib/x86_64-linux-gnu/libXcomposite.so /usr/lib/x86_64-linux-gnu/libXdamage.so /usr/lib/x86_64-linux-gnu/libXext.so /usr/lib/x86_64-linux-gnu/libXfixes.so /usr/lib/x86_64-linux-gnu/libXrender.so /usr/lib/x86_64-linux-gnu/libXrandr.so /usr/lib/x86_64-linux-gnu/libXtst.so lib_ui/liblib_ui.a /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libKF5WaylandClient.so.5.78.0 /usr/lib/x86_64-linux-gnu/liblz4.so /usr/lib/x86_64-linux-gnu/librlottie.so.0.1.0-1 -Wl,--no-undefined -ldl /usr/lib/x86_64-linux-gnu/libavcodec.so /usr/lib/x86_64-linux-gnu/libavformat.so /usr/lib/x86_64-linux-gnu/libavutil.so /usr/lib/x86_64-linux-gnu/libswscale.so /usr/lib/x86_64-linux-gnu/libswresample.so /usr/lib/x86_64-linux-gnu/libxxhash.so lib_base/liblib_base.a -lpthread /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/x86_64-linux-gnu/libcrypto.so /usr/lib/x86_64-linux-gnu/libcrypto.so /usr/lib/x86_64-linux-gnu/libgiomm-2.4.so /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so /usr/lib/x86_64-linux-gnu/libsigc-2.0.so /usr/lib/x86_64-linux-gnu/libgio-2.0.so /usr/lib/x86_64-linux-gnu/libgobject-2.0.so /usr/lib/x86_64-linux-gnu/libglib-2.0.so /usr/lib/x86_64-linux-gnu/libxcb-keysyms.so /usr/lib/x86_64-linux-gnu/libxcb.so /usr/lib/x86_64-linux-gnu/libxcb-record.so /usr/lib/x86_64-linux-gnu/libxcb-screensaver.so /usr/lib/x86_64-linux-gnu/libqrcodegencpp.so -latomic /usr/lib/x86_64-linux-gnu/libQt5Network.so.5.15.2 /usr/lib/x86_64-linux-gnu/libQt5Svg.so.5.15.2 /usr/lib/x86_64-linux-gnu/libQt5XkbCommonSupport.a /usr/lib/x86_64-linux-gnu//libQt5Gui.so /usr/lib/x86_64-linux-gnu//libQt5Core.so -lpthread /usr/lib/x86_64-linux-gnu/libxkbcommon.so /usr/lib/x86_64-linux-gnu/libGL.so /usr/lib/x86_64-linux-gnu/libQt5WaylandClient.so.5.15.2 /usr/lib/x86_64-linux-gnu/libdbusmenu-qt5.so.2.6.0 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.2 /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.15.2 /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.15.2 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.2
/usr/bin/ld: CMakeFiles/Telegram.dir/SourceFiles/media/view/media_view_playback_progress.cpp.o: error adding symbols: Eraro de en-eligo
collect2: error: ld returned 1 exit status
make[3]: *** [Telegram/CMakeFiles/Telegram.dir/build.make:9883: telegram-desktop] Error 1
make[3]: Leaving directory '/home/gal/doc/comp/sw/src/net/telegram-desktop-3.4.3+ds/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:1321: Telegram/CMakeFiles/Telegram.dir/all] Error 2
make[2]: Leaving directory '/home/gal/doc/comp/sw/src/net/telegram-desktop-3.4.3+ds/obj-x86_64-linux-gnu'
make[1]: *** [Makefile:139: all] Error 2
make[1]: Leaving directory '/home/gal/doc/comp/sw/src/net/telegram-desktop-3.4.3+ds/obj-x86_64-linux-gnu'
dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j2 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:81: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1005363#10
Date:
2022-02-12 18:17:33 UTC
From:
To:
Saluton!

This means in Esperanto "Input/output error". You might have ran into
hardware troubles. Check dmesg output.

I would recommend you to rebuild the package with no debug info if you
are not going to run Telegram Desktop under GDB. For this define the
following environment variable before running builder.

   export DEB_CXXFLAGS_STRIP="-g"

Or you can do the opposite and override ApiId and ApiHash in already
built app. Here is an example of debugging session.

   $ gdb -silent telegram-desktop
   (gdb) break MTPauth_sendCode
   (gdb) run
   (gdb) set api_id_.v = 12834
   (gdb) call (void)strcpy((char*)api_hash_.v.d + api_hash_.v.d.offset, "c84d9229db1d6be95c067b02b126352c")
   (gdb) detach

To check what api_hash_.v.d stands for, see at QArrayData sources.

https://sources.debian.org/src/qtbase-opensource-src/5.15.2%2Bdfsg-9/src/corelib/tools/qarraydata.h/#L61

This is a rather tough way to override keys. Maybe some more convenient
way is needed.