JanKusanagi

Call for Testing: Dianara 1.4.1 Beta

JanKusanagi at

A couple of days ago I tagged the development version of Dianara, my Pump.io client as beta, preparing for the release of v1.4.1 by the end of the month. As usual, some wider testing would be helpful. If you can build from source, now's a good time to do so and test it. If you already run an often-updated version from git, feedback would be appreciated.


The main change since v1.4.0 is the ability to save and restore post drafts.

CHANGELOG file.


As announced several months ago, v1.3.7 was the last version to support Qt 4.x. Qt 5 is required since 1.4.0. The bad news is that, at this time, users of distributions such as Debian 9 can't build with the version of QOAuth present in their repositories, based on Qt 4. Current Debian Testing/Sid is fine though.

Please let me know if you find any issues that are not listed in the BUGS file, or in the issue tracker.

Also, if you maintain any translations, now is a good time to update them!


Thanks!

McClane, AJ Jordan, sazius, martinho and 2 others likes this.

AJ Jordan, JanKusanagi @i, martinho, EVAnaRkISTO shared this.

Show all 12 replies

>> JanKusanagi:

“» JanKusanagi:
“[...] but there's a undefined-symbol-related error at the end of compilation. [...]”
Well, no luck. I tried using Debian Sid's libqoauth2 with Sid's qca2-qt5 stuff (which is present in Ubuntu repos) to avoid the linker error at the end of the build process, but that brings other errors due to mismatch in OpenSSL versions.

I guess the only option for Ubuntu users ATM is building libqoauth2 (with Qt 5) themselves, before building Dianara.”

I am happy to do that. Can you send me the correct site/repo from which to checkout libqoauth2? I am not confident I have been grabbing it from the correct place.

Stephen Sekula at 2017-12-16T03:13:41Z

» Stephen Sekula:

“[...] an you send me the correct site/repo from which to checkout libqoauth2? [...]”

The repo is github.com/ayoy/qoauth, which I imagine is the one you're using.


It might help to look at how Debian builds it.

JanKusanagi at 2017-12-16T03:29:47Z

Stephen Sekula likes this.

>> JanKusanagi:

“» Stephen Sekula:
“[...] an you send me the correct site/repo from which to checkout libqoauth2? [...]”
The repo is github.com/ayoy/qoauth, which I imagine is the one you're using.

It might help to look at how Debian builds it.”

So, I got QtCrypto and QtOauth to build. But now when I try to build Dianara, I get this:


../src/mainwindow.cpp:539:5: warning: identifier ‘nullptr’ is a keyword in C++11 [-Wc++0x-compat]
     logViewer = new LogViewer(nullptr); // under Plasma 5, for instance
     ^
../src/mainwindow.cpp: In constructor ‘MainWindow::MainWindow(QWidget*)’:
../src/mainwindow.cpp:539:31: error: ‘nullptr’ was not declared in this scope
     logViewer = new LogViewer(nullptr); // under Plasma 5, for instance
                               ^
../src/mainwindow.cpp: In member function ‘void MainWindow::showUserTimeline(QString, QString, QIcon, QString)’:
../src/mainwindow.cpp:3207:45: error: ‘nullptr’ was not declared in this scope
                                             nullptr); // No parent, independent window
                                             ^
../src/mainwindow.cpp: In member function ‘void MainWindow::toggleLockedPanels(bool)’:
../src/mainwindow.cpp:3225:43: error: ‘nullptr’ was not declared in this scope
         sideDockWidget->setTitleBarWidget(nullptr);
                                           ^
Makefile:1220: recipe for target 'mainwindow.o' failed
make: *** [mainwindow.o] Error 1 

EDITED:


I had to edit the Makefile and manually force the use of -std=c++11. That did the trick. Wonder why that wasn't set automatically when creating the Makefile?


EDITED:


So now it gets a teeny bit further and this happens:

g++ -c -std=c++11 -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I../../dianara-dev -I. -isystem /usr/include/x86_64-linux-gnu5/QtOAuth -isystem /usr/include/x86_64-linux-gnu/qt5/Qca-qt5/QtCrypto -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt5/QtDBus -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I/usr/include/QtOAuth/ -o pumpcontroller.o ../src/pumpcontroller.cpp
../src/pumpcontroller.cpp: In member function ‘void PumpController::getImage(QString)’:
../src/pumpcontroller.cpp:475:31: error: ‘FollowRedirectsAttribute’ is not a member of ‘QNetworkRequest’
     imageRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
                               ^
 I will see if I can track that one down.  The qnetworkrequest.h header on my system (Ubuntu 16.04) comes from this package:

Package: qtbase5-dev

State: installed
Automatically installed: no
Multi-Arch: same
Version: 5.5.1+dfsg-16ubuntu7.5

FINAL UPDATE:

I edited pumpcontroller.cpp and changed "FollowRedirectsAttrbute" to "RedirectionTargetAttribute", which is a defined attribute in my version of this header. It compiled. Whether that is the correct thing to do, I cannot say...
 
FINAL FINAL UPDATE:

OOF. It was not probably the right thing to do. Dianara seg faults upon startup... not sure why, of course, but something went horribly wrong...

Stephen Sekula at 2017-12-16T18:03:59Z

Woah, so much info =)


I don't think you need to manually build "QtCrypto" or Qca-qt5, the versions already available in Ubuntu's repos should be enough... I guess xD



That network redirection thing requires Qt 5.6, but you could just comment out that line, and you would just be losing the ability to get images inserted in posts whose links redirect somewhere else, so probably not much.


The std=c++11 thingie used to be manually specified prior to dropping Qt 4 support, but given the compiler and C++ standards requirements of Qt 5, I thought it was no longer necessary. I imagine your version of Ubuntu has a pretty old version of GCC or for some reason doesn't use c++11 or later as a default syntax.



I'm not sure all this work you're doing to get this to build will be worth it ^^

JanKusanagi at 2017-12-16T19:42:45Z