New comment by toogley on void-packages repository https://github.com/void-linux/void-packages/pull/18648#issuecomment-581838791 Comment: I think i have managed to build dino directly some weeks ago (that means: not as void linux package and instead as a binary directly from the dino repository). I think i have used this command at that time: `./configure --enable-plugin=omemo && make` However, that fails at the moment with this error: ``` FAILED: plugins/omemo.so : && /bin/cc -fPIC -fdiagnostics-color -Wall -Wextra -Werror=format-security -Wno-duplicate-decl-specifier -g -O2 -g -DNDEBUG -shared -Wl,-soname,omemo.so -o plugins/omemo.so plugins/omemo/CMakeFiles/omemo.dir/src/plugin.c.o plugins/omemo/CMakeFiles/omemo.dir/src/register_plugin.c.o plugins/omemo/CMakeFiles/omemo.dir/src/trust_level.c.o plugins/omemo/CMakeFiles/omemo.dir/src/file_transfer/file_decryptor.c.o plugins/omemo/CMakeFiles/omemo.dir/src/file_transfer/file_encryptor.c.o plugins/omemo/CMakeFiles/omemo.dir/src/jingle/jingle_helper.c.o plugins/omemo/CMakeFiles/omemo.dir/src/jingle/jet_omemo.c.o plugins/omemo/CMakeFiles/omemo.dir/src/logic/database.c.o plugins/omemo/CMakeFiles/omemo.dir/src/logic/encrypt_state.c.o plugins/omemo/CMakeFiles/omemo.dir/src/logic/manager.c.o plugins/omemo/CMakeFiles/omemo.dir/src/logic/pre_key_store.c.o plugins/omemo/CMakeFiles/omemo.dir/src/logic/session_store.c.o plugins/omemo/CMakeFiles/omemo.dir/src/logic/signed_pre_key_store.c.o plugins/omemo/CMakeFiles/omemo.dir/src/logic/trust_manager.c.o plugins/omemo/CMakeFiles/omemo.dir/src/protocol/bundle.c.o plugins/omemo/CMakeFiles/omemo.dir/src/protocol/message_flag.c.o plugins/omemo/CMakeFiles/omemo.dir/src/protocol/stream_module.c.o plugins/omemo/CMakeFiles/omemo.dir/src/ui/account_settings_entry.c.o plugins/omemo/CMakeFiles/omemo.dir/src/ui/account_settings_widget.c.o plugins/omemo/CMakeFiles/omemo.dir/src/ui/contact_details_provider.c.o plugins/omemo/CMakeFiles/omemo.dir/src/ui/contact_details_dialog.c.o plugins/omemo/CMakeFiles/omemo.dir/src/ui/device_notification_populator.c.o plugins/omemo/CMakeFiles/omemo.dir/src/ui/own_notifications.c.o plugins/omemo/CMakeFiles/omemo.dir/src/ui/encryption_list_entry.c.o plugins/omemo/CMakeFiles/omemo.dir/src/ui/manage_key_dialog.c.o plugins/omemo/CMakeFiles/omemo.dir/src/ui/util.c.o plugins/omemo/CMakeFiles/omemo.dir/resources/resources.c.o -Wl,-rpath,/home/toogley/src/dino/build: libdino.so.0.0 plugins/signal-protocol/libsignal-protocol-vala.a plugins/crypto-vala/libcrypto-vala.a libxmpp-vala.so.0.1 /usr/lib/libicuuc.so /usr/lib/libicudata.so libqlite.so.0.1 /usr/lib/libsqlite3.so -lsignal-protocol-c -lm -lgcrypt /usr/lib/libgee-0.8.so /usr/lib/libgmodule-2.0.so /usr/lib/libgtk-3.so /usr/lib/libgdk-3.so /usr/lib/libpangocairo-1.0.so /usr/lib/libpango-1.0.so /usr/lib/libatk-1.0.so /usr/lib/libcairo-gobject.so /usr/lib/libcairo.so /usr/lib/libgdk_pixbuf-2.0.so /usr/lib/libsoup-2.4.so /usr/lib/libgio-2.0.so /usr/lib/libgobject-2.0.so /usr/lib/libglib-2.0.so /usr/lib/libqrencode.so && : /bin/ld: /usr/lib/gcc/x86_64-unknown-linux-gnu/9.2.0/../../../../lib/libsignal-protocol-c.a(curve.c.o): relocation R_X86_64_PC32 against symbol `ec_public_key_destroy' can not be used when making a shared object; recompile with -fPIC /bin/ld: final link failed: bad value collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. make: *** [Makefile:2: default] Error 1 ``` I tought it would make sense to get dino working that way before packaging it into void to understand how the build script has to look inside voidlinux. Still investigating. Also using `./configure --enable-plugin=omemo --with-libsignal-in-tree && make` fails: ``` [238/364] Building C object plugins/signal-protocol/CMakeFiles/signal-protocol-vala.dir/src/util.c.o util.c: In function 'signal_calculate_agreement': util.c:225:7: warning: variable '_res_size_' set but not used [-Wunused-but-set-variable] util.c: In function 'signal_carr_to_string': util.c:361:7: warning: variable '_nu_size_' set but not used [-Wunused-but-set-variable] [239/364] Building C object plugins/signal-protocol/libsignal...MakeFiles/signal-protocol-c.dir/LocalStorageProtocol.pb-c.c.o FAILED: plugins/signal-protocol/libsignal-protocol-c/src/CMakeFiles/signal-protocol-c.dir/LocalStorageProtocol.pb-c.c.o /bin/cc -Iplugins/signal-protocol -Iexports -I../plugins/signal-protocol/libsignal-protocol-c/src/. -I../plugins/signal-protocol/libsignal-protocol-c/src/curve25519/ed25519/nacl_includes -I../plugins/signal-protocol/libsignal-protocol-c/src/curve25519/ed25519/additions -I../plugins/signal-protocol/libsignal-protocol-c/src/curve25519/ed25519/sha512 -I../plugins/signal-protocol/libsignal-protocol-c/src/curve25519/ed25519 -I../plugins/signal-protocol/libsignal-protocol-c/src/curve25519 -fdiagnostics-color -Wall -Wextra -Werror=format-security -Wno-duplicate-decl-specifier -g -fmessage-length=0 -Wall -Wmissing-field-initializers -Wno-missing-braces -Wparentheses -Wswitch -Wunused-variable -Wunused-value -Wshadow -Wint-conversion -Wpointer-sign -Wprotocol -Wshorten-64-to-32 -g -fPIC -MD -MT plugins/signal-protocol/libsignal-protocol-c/src/CMakeFiles/signal-protocol-c.dir/LocalStorageProtocol.pb-c.c.o -MF plugins/signal-protocol/libsignal-protocol-c/src/CMakeFiles/signal-protocol-c.dir/LocalStorageProtocol.pb-c.c.o.d -o plugins/signal-protocol/libsignal-protocol-c/src/CMakeFiles/signal-protocol-c.dir/LocalStorageProtocol.pb-c.c.o -c ../plugins/signal-protocol/libsignal-protocol-c/src/LocalStorageProtocol.pb-c.c cc: error: unrecognized command line option '-Wshorten-64-to-32' [240/364] Building C object plugins/signal-protocol/libsignal...CMakeFiles/signal-protocol-c.dir/WhisperTextProtocol.pb-c.c.o FAILED: plugins/signal-protocol/libsignal-protocol-c/src/CMakeFiles/signal-protocol-c.dir/WhisperTextProtocol.pb-c.c.o /bin/cc -Iplugins/signal-protocol -Iexports -I../plugins/signal-protocol/libsignal-protocol-c/src/. -I../plugins/signal-protocol/libsignal-protocol-c/src/curve25519/ed25519/nacl_includes -I../plugins/signal-protocol/libsignal-protocol-c/src/curve25519/ed25519/additions -I../plugins/signal-protocol/libsignal-protocol-c/src/curve25519/ed25519/sha512 -I../plugins/signal-protocol/libsignal-protocol-c/src/curve25519/ed25519 -I../plugins/signal-protocol/libsignal-protocol-c/src/curve25519 -fdiagnostics-color -Wall -Wextra -Werror=format-security -Wno-duplicate-decl-specifier -g -fmessage-length=0 -Wall -Wmissing-field-initializers -Wno-missing-braces -Wparentheses -Wswitch -Wunused-variable -Wunused-value -Wshadow -Wint-conversion -Wpointer-sign -Wprotocol -Wshorten-64-to-32 -g -fPIC -MD -MT plugins/signal-protocol/libsignal-protocol-c/src/CMakeFiles/signal-protocol-c.dir/WhisperTextProtocol.pb-c.c.o -MF plugins/signal-protocol/libsignal-protocol-c/src/CMakeFiles/signal-protocol-c.dir/WhisperTextProtocol.pb-c.c.o.d -o plugins/signal-protocol/libsignal-protocol-c/src/CMakeFiles/signal-protocol-c.dir/WhisperTextProtocol.pb-c.c.o -c ../plugins/signal-protocol/libsignal-protocol-c/src/WhisperTextProtocol.pb-c.c cc: error: unrecognized command line option '-Wshorten-64-to-32' [241/364] Building C object plugins/signal-protocol/CMakeFiles/signal-protocol-vala.dir/src/store.c.o store.c: In function '_vala_signal_identity_key_store_get_property': store.c:1836:27: warning: variable 'self' set but not used [-Wunused-but-set-variable] store.c: In function '_vala_signal_identity_key_store_set_property': store.c:1856:27: warning: variable 'self' set but not used [-Wunused-but-set-variable] /home/toogley/src/dino/plugins/signal-protocol/src/store.vala: In function 'signal_store_iks_get_identity_key_pair': /home/toogley/src/dino/plugins/signal-protocol/src/store.vala:115:9: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 115 | public_data = new Buffer.from(store.identity_key_store.identity_key_public.get_data()); | ^ /home/toogley/src/dino/plugins/signal-protocol/src/store.vala:116:10: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 116 | private_data = new Buffer.from(store.identity_key_store.identity_key_private.get_data()); | ^ store.c: In function 'signal_store_ss_load_session_func': store.c:4003:8: warning: variable '__tmp1__size_' set but not used [-Wunused-but-set-variable] store.c:3972:7: warning: variable '_tmp9__length1' set but not used [-Wunused-but-set-variable] store.c:3970:7: warning: variable '_res_size_' set but not used [-Wunused-but-set-variable] store.c: In function 'signal_store_pks_load_pre_key': store.c:4796:8: warning: variable '__tmp1__size_' set but not used [-Wunused-but-set-variable] store.c:4771:7: warning: variable '_tmp9__length1' set but not used [-Wunused-but-set-variable] store.c:4769:7: warning: variable '_res_size_' set but not used [-Wunused-but-set-variable] store.c: In function 'signal_store_spks_load_signed_pre_key': store.c:5315:8: warning: variable '__tmp1__size_' set but not used [-Wunused-but-set-variable] store.c:5290:7: warning: variable '_tmp9__length1' set but not used [-Wunused-but-set-variable] store.c:5288:7: warning: variable '_res_size_' set but not used [-Wunused-but-set-variable] /home/toogley/src/dino/plugins/signal-protocol/src/store.vala: In function 'signal_store_construct': /home/toogley/src/dino/plugins/signal-protocol/src/store.vala:301:23: warning: assignment to 'int (*)(const signal_protocol_address *, uint8_t *, size_t, void *)' {aka 'int (*)(const struct signal_protocol_address *, unsigned char *, long unsigned int, void *)'} from incompatible pointer type 'gint (*)(signal_protocol_address *, guint8 *, size_t, void *)' {aka 'int (*)(struct signal_protocol_address *, unsigned char *, long unsigned int, void *)'} [-Wincompatible-pointer-types] 301 | NativeIdentityKeyStore iks = NativeIdentityKeyStore() { | ^ /home/toogley/src/dino/plugins/signal-protocol/src/store.vala:301:29: warning: assignment to 'int (*)(const signal_protocol_address *, uint8_t *, size_t, void *)' {aka 'int (*)(const struct signal_protocol_address *, unsigned char *, long unsigned int, void *)'} from incompatible pointer type 'gint (*)(signal_protocol_address *, guint8 *, size_t, void *)' {aka 'int (*)(struct signal_protocol_address *, unsigned char *, long unsigned int, void *)'} [-Wincompatible-pointer-types] 301 | NativeIdentityKeyStore iks = NativeIdentityKeyStore() { | ^ /home/toogley/src/dino/plugins/signal-protocol/src/store.vala:311:27: warning: assignment to 'int (*)(signal_buffer **, signal_buffer **, const signal_protocol_address *, void *)' {aka 'int (*)(struct signal_buffer **, struct signal_buffer **, const struct signal_protocol_address *, void *)'} from incompatible pointer type 'gint (*)(signal_buffer **, signal_buffer **, signal_protocol_address *, void *)' {aka 'int (*)(struct signal_buffer **, struct signal_buffer **, struct signal_protocol_address *, void *)'} [-Wincompatible-pointer-types] 311 | NativeSessionStore ss = NativeSessionStore() { | ^ /home/toogley/src/dino/plugins/signal-protocol/src/store.vala:311:38: warning: assignment to 'int (*)(signal_int_list **, const char *, size_t, void *)' {aka 'int (*)(struct signal_int_list **, const char *, long unsigned int, void *)'} from incompatible pointer type 'gint (*)(signal_int_list **, gchar *, size_t, void *)' {aka 'int (*)(struct signal_int_list **, char *, long unsigned int, void *)'} [-Wincompatible-pointer-types] 311 | NativeSessionStore ss = NativeSessionStore() { | ^ /home/toogley/src/dino/plugins/signal-protocol/src/store.vala:311:28: warning: assignment to 'int (*)(const signal_protocol_address *, uint8_t *, size_t, uint8_t *, size_t, void *)' {aka 'int (*)(const struct signal_protocol_address *, unsigned char *, long unsigned int, unsigned char *, long unsigned int, void *)'} from incompatible pointer type 'gint (*)(signal_protocol_address *, guint8 *, size_t, guint8 *, size_t, void *)' {aka 'int (*)(struct signal_protocol_address *, unsigned char *, long unsigned int, unsigned char *, long unsigned int, void *)'} [-Wincompatible-pointer-types] 311 | NativeSessionStore ss = NativeSessionStore() { | ^ /home/toogley/src/dino/plugins/signal-protocol/src/store.vala:311:31: warning: assignment to 'int (*)(const signal_protocol_address *, void *)' {aka 'int (*)(const struct signal_protocol_address *, void *)'} from incompatible pointer type 'gint (*)(signal_protocol_address *, void *)' {aka 'int (*)(struct signal_protocol_address *, void *)'} [-Wincompatible-pointer-types] 311 | NativeSessionStore ss = NativeSessionStore() { | ^ /home/toogley/src/dino/plugins/signal-protocol/src/store.vala:311:29: warning: assignment to 'int (*)(const signal_protocol_address *, void *)' {aka 'int (*)(const struct signal_protocol_address *, void *)'} from incompatible pointer type 'gint (*)(signal_protocol_address *, void *)' {aka 'int (*)(struct signal_protocol_address *, void *)'} [-Wincompatible-pointer-types] 311 | NativeSessionStore ss = NativeSessionStore() { | ^ /home/toogley/src/dino/plugins/signal-protocol/src/store.vala:311:34: warning: assignment to 'int (*)(const char *, size_t, void *)' {aka 'int (*)(const char *, long unsigned int, void *)'} from incompatible pointer type 'gint (*)(gchar *, size_t, void *)' {aka 'int (*)(char *, long unsigned int, void *)'} [-Wincompatible-pointer-types] 311 | NativeSessionStore ss = NativeSessionStore() { | ^ ninja: build stopped: subcommand failed. make: *** [Makefile:2: default] Error 1 ```