You are not logged in.

#1 2024-09-26 13:30:40

Necromortis
Member
Registered: 2024-07-01
Posts: 3

Qtox

Previous theme: https://bbs.archlinux.org/viewtopic.php?id=296201
I solved the problem, but I have no experience in creating an aur package.

Compile instructions:
https://github.com/qTox/qTox/blob/maste … clone-qtox

Receive error:

/tmp/qTox/src/video/cameradevice.cpp:298:21: error: 'const struct AVInputFormat' has no member named 'priv_data_size'
  298 |     if (s->iformat->priv_data_size > 0) {
      |                     ^~~~~~~~~~~~~~
/tmp/qTox/src/video/cameradevice.cpp:299:47: error: 'const struct AVInputFormat' has no member named 'priv_data_size'
  299 |         s->priv_data = av_mallocz(s->iformat->priv_data_size);

Need to replace lines 298 and 299 to

if (ffifmt(s->iformat)->priv_data_size > 0) {
        s->priv_data = av_mallocz(ffifmt(s->iformat)->priv_data_size);

And add new line on top file, example after 28 line:
#include <libavformat/demux.h>

Next need download demux.h header to /usr/include/libavformat/
https://raw.githubusercontent.com/FFmpe … at/demux.h

Done. Build without errors.

Offline

#2 2024-09-26 15:15:03

WorMzy
Administrator
From: Scotland
Registered: 2010-06-16
Posts: 12,399
Website

Re: Qtox

Mod note: moving to AUR Issues.


Sakura:-
Mobo: MSI MAG X570S TORPEDO MAX // Processor: AMD Ryzen 9 5950X @4.9GHz // GFX: AMD Radeon RX 5700 XT // RAM: 32GB (4x 8GB) Corsair DDR4 (@ 3000MHz) // Storage: 1x 3TB HDD, 6x 1TB SSD, 2x 120GB SSD, 1x 275GB M2 SSD

Making lemonade from lemons since 2015.

Offline

#3 2024-09-26 21:59:28

loqs
Member
Registered: 2014-03-06
Posts: 18,032

Re: Qtox

qtox is not compatible with at least ffmpeg 6 or newer looking at your build failure and the previous thread which would explain its removal from the official repositories. As the upstream project is archived a fix will not be forthcoming from there so unless you can find an active fork I would suggest looking for an alternative project to address your needs.

Online

#4 2024-09-27 06:38:30

seth
Member
Registered: 2012-09-03
Posts: 58,659

Re: Qtox

I've not looked at this because I don't use tox and I'm really not clear whether upstream wa abandonend because "help, i don't know how to fix this" or "help, i don't have time to fix this" or "nobody uses tox anyway and i won't waste more time on this" but https://archlinux.org/packages/extra/x86_64/ffmpeg4.4/ still has [edit, don't wanna get called out on exxageration, again a ton of several] consumers (one of them being vlc…), so an immediate (short-term) solution and afaict the only requirement would be to add "export PKG_CONFIG_PATH='/usr/lib/ffmpeg4.4/pkgconfig'" to the PKGBUILD and redepend it on ffmpeg4.4 ?

Last edited by seth (2024-09-27 06:40:41)

Offline

#5 2024-09-27 14:35:34

loqs
Member
Registered: 2014-03-06
Posts: 18,032

Re: Qtox

In file included from /usr/include/qt/QtCore/qfuture.h:45,
                 from /usr/include/qt/QtCore/QFuture:1,
                 from ../../qTox-1.2.2/src/video/camerasource.h:25,
                 from ../src/widget/form/settings/avform.cpp:24:
/usr/include/qt/QtCore/qfutureinterface.h:284:37: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
  284 |     explicit QFutureInterface<void>(State initialState = NoState)
      |                                     ^~~~~
/usr/include/qt/QtCore/qfutureinterface.h:284:37: note: remove the ‘< >’
In file included from ../src/widget/form/settings/generalform.cpp:26:
../../qTox-1.2.2/src/core/core.h:82:28: error: ‘TOX_PASS_KEY’ was not declared in this scope; did you mean ‘Tox_Pass_Key’?
   82 |     static std::unique_ptr<TOX_PASS_KEY> createPasskey(const QString &password, uint8_t* salt = nullptr);
      |                            ^~~~~~~~~~~~
      |                            Tox_Pass_Key
../../qTox-1.2.2/src/core/core.h:82:40: error: template argument 1 is invalid
   82 |     static std::unique_ptr<TOX_PASS_KEY> createPasskey(const QString &password, uint8_t* salt = nullptr);
      |                                        ^
../../qTox-1.2.2/src/core/core.h:82:40: error: template argument 2 is invalid
../../qTox-1.2.2/src/core/core.h:83:65: error: ‘TOX_PASS_KEY’ does not name a type; did you mean ‘Tox_Pass_Key’?
   83 |     static QByteArray encryptData(const QByteArray& data, const TOX_PASS_KEY& encryptionKey);
      |                                                                 ^~~~~~~~~~~~
      |                                                                 Tox_Pass_Key
../../qTox-1.2.2/src/core/core.h:85:65: error: ‘TOX_PASS_KEY’ does not name a type; did you mean ‘Tox_Pass_Key’?
   85 |     static QByteArray decryptData(const QByteArray& data, const TOX_PASS_KEY &encryptionKey);
      |                                                                 ^~~~~~~~~~~~
      |                                                                 Tox_Pass_Key
../../qTox-1.2.2/src/core/core.h:101:37: error: ‘TOX_GROUPCHAT_TYPE_AV’ was not declared in this scope; did you mean ‘TOX_GROUP_EXIT_TYPE_QUIT’?
  101 |     void createGroup(uint8_t type = TOX_GROUPCHAT_TYPE_AV);
      |                                     ^~~~~~~~~~~~~~~~~~~~~
      |                                     TOX_GROUP_EXIT_TYPE_QUIT
In file included from ../src/widget/form/settings/avform.cpp:28:
../../qTox-1.2.2/src/core/core.h:82:28: error: ‘TOX_PASS_KEY’ was not declared in this scope; did you mean ‘Tox_Pass_Key’?
   82 |     static std::unique_ptr<TOX_PASS_KEY> createPasskey(const QString &password, uint8_t* salt = nullptr);
      |                            ^~~~~~~~~~~~
      |                            Tox_Pass_Key
../../qTox-1.2.2/src/core/core.h:82:40: error: template argument 1 is invalid
   82 |     static std::unique_ptr<TOX_PASS_KEY> createPasskey(const QString &password, uint8_t* salt = nullptr);
      |                                        ^
../../qTox-1.2.2/src/core/core.h:82:40: error: template argument 2 is invalid
../../qTox-1.2.2/src/core/core.h:83:65: error: ‘TOX_PASS_KEY’ does not name a type; did you mean ‘Tox_Pass_Key’?
   83 |     static QByteArray encryptData(const QByteArray& data, const TOX_PASS_KEY& encryptionKey);
      |                                                                 ^~~~~~~~~~~~
      |                                                                 Tox_Pass_Key
../../qTox-1.2.2/src/core/core.h:85:65: error: ‘TOX_PASS_KEY’ does not name a type; did you mean ‘Tox_Pass_Key’?
   85 |     static QByteArray decryptData(const QByteArray& data, const TOX_PASS_KEY &encryptionKey);
      |                                                                 ^~~~~~~~~~~~
      |                                                                 Tox_Pass_Key
../../qTox-1.2.2/src/core/core.h:101:37: error: ‘TOX_GROUPCHAT_TYPE_AV’ was not declared in this scope; did you mean ‘TOX_GROUP_EXIT_TYPE_QUIT’?
  101 |     void createGroup(uint8_t type = TOX_GROUPCHAT_TYPE_AV);
      |                                     ^~~~~~~~~~~~~~~~~~~~~
      |                                     TOX_GROUP_EXIT_TYPE_QUIT
../src/widget/form/settings/avform.cpp: In constructor ‘AVForm::AVForm()’:
../src/widget/form/settings/avform.cpp:58:81: warning: ‘void QComboBox::currentIndexChanged(const QString&)’ is deprecated: Use currentIndexChanged(int) instead, and get the text using itemText(index) [-Wdeprecated-declarations]
   58 |     auto qcbxIndexChangedStr = (void(QComboBox::*)(const QString&)) &QComboBox::currentIndexChanged;
      |                                                                                 ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/qt/QtWidgets/QComboBox:1,
                 from ./ui_avsettings.h:15,
                 from ../src/widget/form/settings/avform.cpp:21:
/usr/include/qt/QtWidgets/qcombobox.h:240:10: note: declared here
  240 |     void currentIndexChanged(const QString &);
      |          ^~~~~~~~~~~~~~~~~~~
../src/widget/form/settings/avform.cpp:58:81: warning: ‘void QComboBox::currentIndexChanged(const QString&)’ is deprecated: Use currentIndexChanged(int) instead, and get the text using itemText(index) [-Wdeprecated-declarations]
   58 |     auto qcbxIndexChangedStr = (void(QComboBox::*)(const QString&)) &QComboBox::currentIndexChanged;
      |                                                                                 ^~~~~~~~~~~~~~~~~~~
/usr/include/qt/QtWidgets/qcombobox.h:240:10: note: declared here
  240 |     void currentIndexChanged(const QString &);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from ../src/widget/form/settings/generalform.cpp:30:
../../qTox-1.2.2/src/persistence/profile.h:58:11: error: ‘TOX_PASS_KEY’ does not name a type; did you mean ‘Tox_Pass_Key’?
   58 |     const TOX_PASS_KEY& getPasskey() const;
      |           ^~~~~~~~~~~~
      |           Tox_Pass_Key
../../qTox-1.2.2/src/persistence/profile.h:109:5: error: ‘TOX_PASS_KEY’ does not name a type; did you mean ‘Tox_Pass_Key’?
  109 |     TOX_PASS_KEY passkey;
      |     ^~~~~~~~~~~~
      |     Tox_Pass_Key
In file included from ../src/widget/form/settings/privacyform.cpp:24:
../../qTox-1.2.2/src/core/core.h:82:28: error: ‘TOX_PASS_KEY’ was not declared in this scope; did you mean ‘Tox_Pass_Key’?
   82 |     static std::unique_ptr<TOX_PASS_KEY> createPasskey(const QString &password, uint8_t* salt = nullptr);
      |                            ^~~~~~~~~~~~
      |                            Tox_Pass_Key
../../qTox-1.2.2/src/core/core.h:82:40: error: template argument 1 is invalid
   82 |     static std::unique_ptr<TOX_PASS_KEY> createPasskey(const QString &password, uint8_t* salt = nullptr);
      |                                        ^
../../qTox-1.2.2/src/core/core.h:82:40: error: template argument 2 is invalid
../../qTox-1.2.2/src/core/core.h:83:65: error: ‘TOX_PASS_KEY’ does not name a type; did you mean ‘Tox_Pass_Key’?
   83 |     static QByteArray encryptData(const QByteArray& data, const TOX_PASS_KEY& encryptionKey);
      |                                                                 ^~~~~~~~~~~~
      |                                                                 Tox_Pass_Key
../../qTox-1.2.2/src/core/core.h:85:65: error: ‘TOX_PASS_KEY’ does not name a type; did you mean ‘Tox_Pass_Key’?
   85 |     static QByteArray decryptData(const QByteArray& data, const TOX_PASS_KEY &encryptionKey);
      |                                                                 ^~~~~~~~~~~~
      |                                                                 Tox_Pass_Key
../../qTox-1.2.2/src/core/core.h:101:37: error: ‘TOX_GROUPCHAT_TYPE_AV’ was not declared in this scope; did you mean ‘TOX_GROUP_EXIT_TYPE_QUIT’?
  101 |     void createGroup(uint8_t type = TOX_GROUPCHAT_TYPE_AV);
      |                                     ^~~~~~~~~~~~~~~~~~~~~
      |                                     TOX_GROUP_EXIT_TYPE_QUIT
In file included from ../src/widget/form/settings/privacyform.cpp:26:
../../qTox-1.2.2/src/widget/gui.h:74:45: warning: ‘constexpr QFlags<T>::QFlags(Zero) [with Enum = Qt::WindowType; Zero = int QFlags<Qt::WindowType>::Private::*]’ is deprecated: Use default constructor instead [-Wdeprecated-declarations]
   74 |                     Qt::WindowFlags flags = 0,
      |                                             ^
In file included from /usr/include/qt/QtCore/qglobal.h:1307,
                 from /usr/include/qt/QtGui/qtguiglobal.h:43,
                 from /usr/include/qt/QtWidgets/qtwidgetsglobal.h:43,
                 from /usr/include/qt/QtWidgets/qwidget.h:43,
                 from /usr/include/qt/QtWidgets/QWidget:1,
                 from ../src/widget/form/settings/genericsettings.h:21,
                 from ../src/widget/form/settings/privacyform.h:23,
                 from ../src/widget/form/settings/privacyform.cpp:20:
/usr/include/qt/QtCore/qflags.h:123:80: note: declared here
  123 |     QT_DEPRECATED_X("Use default constructor instead") Q_DECL_CONSTEXPR inline QFlags(Zero) noexcept : i(0) {}
      |                                                                                ^~~~~~
../../qTox-1.2.2/src/widget/gui.h:108:49: warning: ‘constexpr QFlags<T>::QFlags(Zero) [with Enum = Qt::WindowType; Zero = int QFlags<Qt::WindowType>::Private::*]’ is deprecated: Use default constructor instead [-Wdeprecated-declarations]
  108 |                         Qt::WindowFlags flags = 0,
      |                                                 ^
/usr/include/qt/QtCore/qflags.h:123:80: note: declared here
  123 |     QT_DEPRECATED_X("Use default constructor instead") Q_DECL_CONSTEXPR inline QFlags(Zero) noexcept : i(0) {}
      |                                                                                ^~~~~~
make: *** [Makefile:2741: generalform.o] Error 1

Looks like there would also need to be some updates for changes in tox. TOX_GROUPCHAT_TYPE_AV to TOX_CONFERENCE_TYPE_AV e.t.c..

Online

#6 2024-09-27 17:08:22

Necromortis
Member
Registered: 2024-07-01
Posts: 3

Re: Qtox

I would gladly use another Tox client, but I have not found a normal alternative. Toxic console, did not seem too convenient. Venom looks abandoned. I did not like Toxygen ui/ux, qTox is much more convenient. I have not found any other alternatives. I'll use qTox as long as I can compile))

Offline

Board footer

Powered by FluxBB