JFreegman / toxic

A Tox-based instant messaging and video chat client.
https://tox.chat
GNU General Public License v3.0
1.2k stars 153 forks source link

Compilation errors on FreeBSD / clang: missing header? #644

Closed thierry-FreeBSD closed 8 months ago

thierry-FreeBSD commented 1 year ago

Compilation fails on FreeBSD with clang, due to missing types definitions:

  CC    bootstrap.o
In file included from /usr/ports/net-im/toxic/work/toxic-0.12.0/src/autocomplete.c:35:
In file included from /usr/ports/net-im/toxic/work/toxic-0.12.0/src/execute.h:26:
/usr/ports/net-im/toxic/work/toxic-0.12.0/src/toxic.h:160:73: error: unknown type name 'Tox_Group_Exit_Type'
void on_group_peer_exit(Tox *m, uint32_t groupnumber, uint32_t peer_id, Tox_Group_Exit_Type exit_type,
                                                                        ^
/usr/ports/net-im/toxic/work/toxic-0.12.0/src/toxic.h:166:59: error: unknown type name 'Tox_Group_Privacy_State'
void on_group_privacy_state(Tox *m, uint32_t groupnumber, Tox_Group_Privacy_State privacy_state, void *userdata);
                                                          ^
/usr/ports/net-im/toxic/work/toxic-0.12.0/src/toxic.h:167:56: error: unknown type name 'Tox_Group_Topic_Lock'
void on_group_topic_lock(Tox *m, uint32_t groupnumber, Tox_Group_Topic_Lock topic_lock, void *userdata);
                                                       ^
/usr/ports/net-im/toxic/work/toxic-0.12.0/src/toxic.h:173:54: error: unknown type name 'Tox_Group_Join_Fail'
void on_group_rejected(Tox *m, uint32_t groupnumber, Tox_Group_Join_Fail type, void *userdata);
                                                     ^
/usr/ports/net-im/toxic/work/toxic-0.12.0/src/toxic.h:175:26: error: unknown type name 'Tox_Group_Mod_Event'
                         Tox_Group_Mod_Event type, void *userdata);
                         ^
/usr/ports/net-im/toxic/work/toxic-0.12.0/src/toxic.h:176:  CC    chat.o
57: error: unknown type name 'Tox_Group_Voice_State'
void on_group_voice_state(Tox *m, uint32_t groupnumber, Tox_Group_Voice_State voice_state, void *userdata);
                                                        ^

I surely miss some header, but where could I find it?

Green-Sky commented 1 year ago

You need a recent toxcore. there is no release of toxcore yet available with the new features.

JFreegman commented 1 year ago

You either need to compile toxic's master (or 0.12.0) against the latest toxcore master, or compile toxic version 0.11.3 against the latest toxcore release. The reason toxic didn't wait for a new toxcore version that includes the NGC changes is because the people who do toxcore releases have been MIA for months now, and I didn't see any good reason to be sitting on this major feature release indefinitely.

thierry-FreeBSD commented 1 year ago

OK, thanks! I'm still using the released toxcore v0.2.18.

barracuda156 commented 1 year ago

Thankfully found this tickets, since got the same errors on macOS:

In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/execute.h:26,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/autocomplete.c:35:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:160:73: error: unknown type name 'Tox_Group_Exit_Type'; did you mean 'Tox_Proxy_Type'?
  160 | void on_group_peer_exit(Tox *m, uint32_t groupnumber, uint32_t peer_id, Tox_Group_Exit_Type exit_type,
      |                                                                         ^~~~~~~~~~~~~~~~~~~
      |                                                                         Tox_Proxy_Type
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:166:59: error: unknown type name 'Tox_Group_Privacy_State'
  166 | void on_group_privacy_state(Tox *m, uint32_t groupnumber, Tox_Group_Privacy_State privacy_state, void *userdata);
      |                                                           ^~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:167:56: error: unknown type name 'Tox_Group_Topic_Lock'
  167 | void on_group_topic_lock(Tox *m, uint32_t groupnumber, Tox_Group_Topic_Lock topic_lock, void *userdata);
      |                                                        ^~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:173:54: error: unknown type name 'Tox_Group_Join_Fail'
  173 | void on_group_rejected(Tox *m, uint32_t groupnumber, Tox_Group_Join_Fail type, void *userdata);
      |                                                      ^~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:175:26: error: unknown type name 'Tox_Group_Mod_Event'
  175 |                          Tox_Group_Mod_Event type, void *userdata);
      |                          ^~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:176:57: error: unknown type name 'Tox_Group_Voice_State'
  176 | void on_group_voice_state(Tox *m, uint32_t groupnumber, Tox_Group_Voice_State voice_state, void *userdata);
      |                                                         ^~~~~~~~~~~~~~~~~~~~~
In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/execute.h:27:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:200:68: error: unknown type name 'Tox_Group_Exit_Type'; did you mean 'Tox_Proxy_Type'?
  200 |     void(*onGroupPeerExit)(ToxWindow *, Tox *, uint32_t, uint32_t, Tox_Group_Exit_Type, const char *, size_t, const char *,
      |                                                                    ^~~~~~~~~~~~~~~~~~~
      |                                                                    Tox_Proxy_Type
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:206:62: error: unknown type name 'Tox_Group_Privacy_State'
  206 |     void(*onGroupPrivacyState)(ToxWindow *, Tox *, uint32_t, Tox_Group_Privacy_State);
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:207:59: error: unknown type name 'Tox_Group_Topic_Lock'
  207 |     void(*onGroupTopicLock)(ToxWindow *, Tox *, uint32_t, Tox_Group_Topic_Lock);
      |                                                           ^~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:210:58: error: unknown type name 'Tox_Group_Join_Fail'
  210 |     void(*onGroupRejected)(ToxWindow *, Tox *, uint32_t, Tox_Group_Join_Fail);
      |                                                          ^~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:211:80: error: unknown type name 'Tox_Group_Mod_Event'
  211 |     void(*onGroupModeration)(ToxWindow *, Tox *, uint32_t, uint32_t, uint32_t, Tox_Group_Mod_Event);
      |                                                                                ^~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:212:60: error: unknown type name 'Tox_Group_Voice_State'
  212 |     void(*onGroupVoiceState)(ToxWindow *, Tox *, uint32_t, Tox_Group_Voice_State);
      |                                                            ^~~~~~~~~~~~~~~~~~~~~
make: python3-config: Command not found
  CC    avatars.o
make: python3-config: Command not found
make: *** [/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/build/autocomplete.o] Error 1
make: *** Waiting for unfinished jobs....
  CC    bootstrap.o
In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:37,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/notify.h:27,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/file_transfers.h:28,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/avatars.h:26,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/avatars.c:27:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:160:73: error: unknown type name 'Tox_Group_Exit_Type'; did you mean 'Tox_Proxy_Type'?
  160 | void on_group_peer_exit(Tox *m, uint32_t groupnumber, uint32_t peer_id, Tox_Group_Exit_Type exit_type,
      |                                                                         ^~~~~~~~~~~~~~~~~~~
      |                                                                         Tox_Proxy_Type
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:166:59: error: unknown type name 'Tox_Group_Privacy_State'
  166 | void on_group_privacy_state(Tox *m, uint32_t groupnumber, Tox_Group_Privacy_State privacy_state, void *userdata);
      |                                                           ^~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:167:56: error: unknown type name 'Tox_Group_Topic_Lock'
  167 | void on_group_topic_lock(Tox *m, uint32_t groupnumber, Tox_Group_Topic_Lock topic_lock, void *userdata);
      |                                                        ^~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:173:54: error: unknown type name 'Tox_Group_Join_Fail'
  173 | void on_group_rejected(Tox *m, uint32_t groupnumber, Tox_Group_Join_Fail type, void *userdata);
      |                                                      ^~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:175:26: error: unknown type name 'Tox_Group_Mod_Event'
  175 |                          Tox_Group_Mod_Event type, void *userdata);
      |                          ^~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:176:57: error: unknown type name 'Tox_Group_Voice_State'
  176 | void on_group_voice_state(Tox *m, uint32_t groupnumber, Tox_Group_Voice_State voice_state, void *userdata);
      |                                                         ^~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:200:68: error: unknown type name 'Tox_Group_Exit_Type'; did you mean 'Tox_Proxy_Type'?
  200 |     void(*onGroupPeerExit)(ToxWindow *, Tox *, uint32_t, uint32_t, Tox_Group_Exit_Type, const char *, size_t, const char *,
      |                                                                    ^~~~~~~~~~~~~~~~~~~
      |                                                                    Tox_Proxy_Type
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:206:62: error: unknown type name 'Tox_Group_Privacy_State'
  206 |     void(*onGroupPrivacyState)(ToxWindow *, Tox *, uint32_t, Tox_Group_Privacy_State);
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/line_info.h:26,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/bootstrap.c:36:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:160:73: error: unknown type name 'Tox_Group_Exit_Type'; did you mean 'Tox_Proxy_Type'?
  160 | void on_group_peer_exit(Tox *m, uint32_t groupnumber, uint32_t peer_id, Tox_Group_Exit_Type exit_type,
      |                                                                         ^~~~~~~~~~~~~~~~~~~
      |                                                                         Tox_Proxy_Type
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:207:59: error: unknown type name 'Tox_Group_Topic_Lock'
  207 |     void(*onGroupTopicLock)(ToxWindow *, Tox *, uint32_t, Tox_Group_Topic_Lock);
      |                                                           ^~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:166:59: error: unknown type name 'Tox_Group_Privacy_State'
  166 | void on_group_privacy_state(Tox *m, uint32_t groupnumber, Tox_Group_Privacy_State privacy_state, void *userdata);
      |                                                           ^~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:210:58: error: unknown type name 'Tox_Group_Join_Fail'
  210 |     void(*onGroupRejected)(ToxWindow *, Tox *, uint32_t, Tox_Group_Join_Fail);
      |                                                          ^~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:211:80: error: unknown type name 'Tox_Group_Mod_Event'
  211 |     void(*onGroupModeration)(ToxWindow *, Tox *, uint32_t, uint32_t, uint32_t, Tox_Group_Mod_Event);
      |                                                                                ^~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:167:56: error: unknown type name 'Tox_Group_Topic_Lock'
  167 | void on_group_topic_lock(Tox *m, uint32_t groupnumber, Tox_Group_Topic_Lock topic_lock, void *userdata);
      |                                                        ^~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:212:60: error: unknown type name 'Tox_Group_Voice_State'
  212 |     void(*onGroupVoiceState)(ToxWindow *, Tox *, uint32_t, Tox_Group_Voice_State);
      |                                                            ^~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:173:54: error: unknown type name 'Tox_Group_Join_Fail'
  173 | void on_group_rejected(Tox *m, uint32_t groupnumber, Tox_Group_Join_Fail type, void *userdata);
      |                                                      ^~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:175:26: error: unknown type name 'Tox_Group_Mod_Event'
  175 |                          Tox_Group_Mod_Event type, void *userdata);
      |                          ^~~~~~~~~~~~~~~~~~~
make: *** [/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/build/avatars.o] Error 1
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/toxic.h:176:57: error: unknown type name 'Tox_Group_Voice_State'
  176 | void on_group_voice_state(Tox *m, uint32_t groupnumber, Tox_Group_Voice_State voice_state, void *userdata);
      |                                                         ^~~~~~~~~~~~~~~~~~~~~
In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/line_info.h:27:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:200:68: error: unknown type name 'Tox_Group_Exit_Type'; did you mean 'Tox_Proxy_Type'?
  200 |     void(*onGroupPeerExit)(ToxWindow *, Tox *, uint32_t, uint32_t, Tox_Group_Exit_Type, const char *, size_t, const char *,
      |                                                                    ^~~~~~~~~~~~~~~~~~~
      |                                                                    Tox_Proxy_Type
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:206:62: error: unknown type name 'Tox_Group_Privacy_State'
  206 |     void(*onGroupPrivacyState)(ToxWindow *, Tox *, uint32_t, Tox_Group_Privacy_State);
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:207:59: error: unknown type name 'Tox_Group_Topic_Lock'
  207 |     void(*onGroupTopicLock)(ToxWindow *, Tox *, uint32_t, Tox_Group_Topic_Lock);
      |                                                           ^~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:210:58: error: unknown type name 'Tox_Group_Join_Fail'
  210 |     void(*onGroupRejected)(ToxWindow *, Tox *, uint32_t, Tox_Group_Join_Fail);
      |                                                          ^~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:211:80: error: unknown type name 'Tox_Group_Mod_Event'
  211 |     void(*onGroupModeration)(ToxWindow *, Tox *, uint32_t, uint32_t, uint32_t, Tox_Group_Mod_Event);
      |                                                                                ^~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/windows.h:212:60: error: unknown type name 'Tox_Group_Voice_State'
  212 |     void(*onGroupVoiceState)(ToxWindow *, Tox *, uint32_t, Tox_Group_Voice_State);
      |                                                            ^~~~~~~~~~~~~~~~~~~~~
In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/bootstrap.c:39:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/src/settings.h:90:29: error: 'TOX_GROUP_MAX_PART_LENGTH' undeclared here (not in a function); did you mean 'TOX_MAX_NAME_LENGTH'?
   90 |     char group_part_message[TOX_GROUP_MAX_PART_LENGTH];
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                             TOX_MAX_NAME_LENGTH
make: *** [/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_toxic/toxic/work/toxic-0.12.0/build/bootstrap.o] Error 1
theAkito commented 1 year ago

Same issue on Debian.

If the newest toxcore is needed, the compiling instructions ought to be updated!

https://github.com/JFreegman/toxic/blob/master/INSTALL.md

barracuda156 commented 1 year ago

@theAkito Pick toxcore from the master branch, that should work. It builds for us in Macports.

https://ports.macports.org/port/toxic/details

theAkito commented 1 year ago

@theAkito Pick toxcore from the master branch, that should work. It builds for us in Macports.

https://ports.macports.org/port/toxic/details

Done did it, thanks anyway, though.

I have a working Docker image of Toxic, now.

thierry-FreeBSD commented 8 months ago

See also https://github.com/TokTok/c-toxcore/issues/2500 .