foolab / quran

GNU General Public License v2.0
0 stars 0 forks source link

Building for SailfishOS-4.4.0.58-aarch64 #2

Closed syedmizanur closed 2 years ago

syedmizanur commented 2 years ago

Hi, Thank you very much for the Quran App for Sailfish OS.

I was trying to build the code for SailfishOS-4.4.0.58-aarch64 with the command sfdk build and got the following error Cannot read /home/mizanursyed/code/quran/quazip/quazip/quazip.pri: No such file or directory

RPM build errors: Bad exit status from /var/tmp/rpm-tmp.JBmADk (%build)

Your help would be very much appreciated!

Best Regards, Syed

foolab commented 2 years ago

wow! Good to see that I still have Sailfish OS users.

You are missing the submodules: git submodule update --init --recursive

syedmizanur commented 2 years ago

Hi,

Thanks for the prompt response. Yes, I have been using your app on my previous Sailfish devices for years now. Jazak Allahu Khairan! However, I dont find it on the Store on my new Xperia X III and thought I may have to build it myself.

I tried the git submodules update and don't have the missing rule anymore. However, the build command terminated with this error

In file included from ../common/translations.cpp:22: ../common/downloader.h:74:8: error: field ‘m_url’ has incomplete type ‘QUrl’ QUrl m_url; ^~~~~ In file included from /home/(homedir)/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/qt5/QtCore/qobject.h:48, from /home/(homedir)SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/qt5/QtCore/QObject:1, from ../common/translations.h:21, from ../common/translations.cpp:18: /home/(homedir)SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/qt5/QtCore/qmetatype.h:1887:1: note: forward declaration of ‘class QUrl’ QT_FOR_EACH_STATIC_CORE_CLASS(QT_FORWARD_DECLARE_STATIC_TYPES_ITER) ^~~~~~~~~ make: *** [Makefile:1182: translations.o] Error 1 error: Bad exit status from /var/tmp/rpm-tmp.6cys9Y (%build)

Thanks, Syed

foolab commented 2 years ago

Sorry for that. I pushed a fix. Please report any other issues :)

syedmizanur commented 2 years ago

Thanks for the reply. I updated the repo and tried to build again and got this message

g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -march=armv8-a -std=gnu++1y -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -D__STDC_CONSTANT_MACROS -DVERSION=\"0.8.0\" -DPULSE -DDATA_DIR=\"/home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/share/harbour-quran/\" -DSAILFISH=1 -D_REENTRANT -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../ffmpeg -Iffmpeg/arm64 -I../sqlite -I../quazip/quazip -I. -I../data -I../common -I../common/interfaces -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/uuid -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/freetype2 -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/libpng16 -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/mdeclarativecache5 -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/qt5/QtSensors -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/qt5 -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/qt5/QtCore -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/resource/qt5 -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/resource -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/qt5/QtQuick -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/qt5/QtGui -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/qt5/QtQml -isystem /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/include/qt5/QtNetwork -I. -I/usr/share/qt5/mkspecs/linux-g++ -o downloader.o ../common/downloader.cpp ../common/downloader.cpp: In member function ‘void Download::setReply(QNetworkReply*)’: ../common/downloader.cpp:94:8: error: ‘qOverload’ was not declared in this scope qOverload<>(&QNetworkReply::ignoreSslErrors)); ^~~~~ ../common/downloader.cpp:94:18: error: expected primary-expression before ‘>’ token qOverload<>(&QNetworkReply::ignoreSslErrors)); ^ make: *** [Makefile:1194: downloader.o] Error 1 error: Bad exit status from /var/tmp/rpm-tmp.mXgkHq (%build)

RPM build errors: Bad exit status from /var/tmp/rpm-tmp.mXgkHq (%build)

Thanks for the support. Appreciate it!

Best Regards, Syed

foolab commented 2 years ago

I pushed a few commits to master and now it builds. I am however unable to build an RPM as I do not have the SDK to inspect this failure: https://build.sailfishos.org/package/live_build_log/home:msameer:sailfish:apps/harbour-quran/sailfishos_latest_latest_aarch64/aarch64

Nor do I have Sailfish OS 4

Could you help with that?

An alternative is to rebuild the 0.7 tag for aarch64 (Should be doable via OBS too).

But please note that I have not tested if it will run or not. I switched to an Android phone unfortunately but I would love to keep SFOS alive

syedmizanur commented 2 years ago

Hi,

I tried to build it with the SDK and got the same error message as on OBS. If you let me know which steps to perform to help you understand the issue, I can try them on my side.

Thanks Again for your time.

Best, Syed

Error cd ../data/text/ && /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/lib64/qt5/bin/qmake && make gen make[1]: Entering directory '/home/mizanursyed/code/quran/data/text' make[1]: Nothing to be done for 'gen'. make[1]: Leaving directory '/home/mizanursyed/code/quran/data/text' cd ../data/search/ && /home/mizanursyed/SailfishOS/mersdk/targets/SailfishOS-4.4.0.58-aarch64.default/usr/lib64/qt5/bin/qmake && make gen make[1]: Entering directory '/home/mizanursyed/code/quran/data/search' make[1]: Nothing to be done for 'gen'. make[1]: Leaving directory '/home/mizanursyed/code/quran/data/search' g++ -Wl,-O1 -o harbour-quran qioapi.o JlCompress.o quaadler32.o quacrc32.o quagzipfile.o quaziodevice.o quazip.o quazipdir.o quazipfile.o quazipfileinfo.o quazipnewinfo.o unzip.o zip.o bookmarks.o dataprovider.o numberformatter.o settings.o quranviewmodel.o aboutdata.o textsupplier.o translations.o translation.o downloader.o textprovider.o index.o recitations.o recitation.o mediaplaylist.o main.o flipsensor.o mediaplayer.o iconprovider.o media.o audiooutput.o mediadecoder.o bookmarksmodel.o bookmarkitem.o mediaresampler.o searchmodel.o models.o coreapplication.o metadata.o chapterinfo.o partinfo.o pageinfo.o pageposition.o normalize.o chapterlistmodel.o partlistmodel.o mediacodec.o recitationdataprovider.o mediaplayerconfig.o mediaplayback.o quran.o pulse.o fsmonitor.o audiopolicy.o application.o mediaservice.o networkmanager.o qrc_data.o qrc_theme.o qrc_logo.o qrc_sailfish.o qrc_icons.o qrc_qml.o moc_quagzipfile.o moc_quaziodevice.o moc_quazipfile.o moc_bookmarks.o moc_dataprovider.o moc_numberformatter.o moc_settings.o moc_quranviewmodel.o moc_aboutdata.o moc_textsupplier.o moc_translations.o moc_translation.o moc_downloader.o moc_recitations.o moc_recitation.o moc_mediaplaylist.o moc_flipsensor.o moc_mediaplayer.o moc_audiooutput.o moc_mediadecoder.o moc_bookmarksmodel.o moc_bookmarkitem.o moc_mediaresampler.o moc_searchmodel.o moc_models.o moc_chapterinfo.o moc_partinfo.o moc_pageinfo.o moc_pageposition.o moc_chapterlistmodel.o moc_partlistmodel.o moc_mediacodec.o moc_mediaplayback.o moc_quran.o moc_pulse.o moc_fsmonitor.o moc_audiopolicy.o moc_mediaservice.o -Wl,--start-group ffmpeg/arm64/libavcodec/libavcodec.a ffmpeg/arm64/libavformat/libavformat.a ffmpeg/arm64/libavutil/libavutil.a ffmpeg/arm64/libavfilter/libavfilter.a ffmpeg/arm64/libswresample/libswresample.a -Wl,--end-group sqlite/arm64/.libs/libsqlite3.a -lz -Wl,-rpath=/usr/share/harbour-quran/lib/ -lfreetype -lpulse -pie -rdynamic -lmdeclarativecache5 -lQt5Sensors -lfontconfig -L//usr/lib64 -lresourceqt5 -ldbus-qeventloop-qt5 -ldbus-1 -lresource -lQt5Quick -lQt5Gui -lQt5Qml -lQt5Network -lQt5Core -lGLESv2 -lpthread install -m 755 -p harbour-quran /home/deploy/installroot/usr/bin/harbour-quran : /home/deploy/installroot/usr/bin/harbour-quran

RPM build errors: Bad exit status from /var/tmp/rpm-tmp.nogAGp (%install)

foolab commented 2 years ago

The problem is the move to aarch64 changed the paths for bundled libraries.

I bundle libraries because some of the APIs used are not allowed by sailfish OS (not white listed).

I have dropped all of the bundled libraries and managed to build an RPM here: https://build.sailfishos.org/package/binary/home:msameer:sailfish:apps/harbour-quran?arch=aarch64&filename=harbour-quran-0.7.0%2Bmaster.20220623205801.153.g93f59d6-118.1.aarch64.rpm&repository=sailfishos_latest_latest_aarch64

I do not have a sailfish 4 phone so I cannot test the app. The problem now is I tried walking the chain of dependencies to bundle them but I ended up with libsystemd which in my opinion should not be bundled. I don't know what to do but it seems I will have to drop harbour support. Is openrepos.net still alive?

syedmizanur commented 2 years ago

Hello,

sorry for the delayed reponse - was feeling a bit under the weather.

The build.sailfish.org link does not show any downloadable RPMs. I see this 404 Not Found Error when I follow the link to the download repositories - https://repo.sailfishos.org/obs/home:/msameer:/sailfish:/apps/sailfishos_latest_latest_aarch64

Openrepos is still up and works quite well btw.

Completely understand your constraints - The OS has evolved quite a bit now (Sailjail, aarch64, QT changes...) and it would be tough to support something with such a limited user base. I guess I can just use a pdf of the Mashaf (which is definitely better than Ad riddled / Privacy unfriendly APKs out there-)

Anyway, as a last try: if you can share the aarch64 build rpm with me, I could try testing it on my phone to see if it works.

Best Regards, Syed

foolab commented 2 years ago

No worries :) The link I posted is this one: https://build.sailfishos.org/package/binary/home:msameer:sailfish:apps/harbour-quran?arch=aarch64&filename=harbour-quran-0.7.0%2Bmaster.20220623205801.153.g93f59d6-118.1.aarch64.rpm&repository=sailfishos_latest_latest_aarch64 You can click on the RPM name up there to download it. I do not know why OBS is not publishing the build results and I am unable to investigate it right now.

I am fine keeping the Sailfish OS version alive. I'd love to but someone will have to do the testing. I can also try to submit the Android version to harbour. It is ironic and sad that getting the Android APK is easier than the native app :(

syedmizanur commented 2 years ago

Thats odd. I cannot find any download links on the link https://build.sailfishos.org/package/binary/home:msameer:sailfish:apps/harbour-quran?arch=aarch64&filename=harbour-quran-0.7.0%2Bmaster.20220623205801.153.g93f59d6-118.1.aarch64.rpm&repository=sailfishos_latest_latest_aarch64 image

What I can actually do is go to the repository state and click on "go to download repository" which results in the 404 error.

I would love to help from my side and now that I have two devices (Xperia X I and III), I could help you with the end user testing even with dev mode on for that matter. However, mobile app development/publishing are really quite alien to me. Hence, I could not really do anything more.

BTW, is the Andriod version available of FDroid/Aptoid?

Best Regards, Syed

foolab commented 2 years ago

The RPM name should be clickable (I know it's confusing) :) quran-rpm

I really have no idea why the repository is empty. OBS should publish the built binaries to it but it is not for an unknown reason.

I'd appreciate any help. I have an aqua fish but I do not know if it's supported or not. My latest submission to harbour was rejected a few years ago because my app does not meet the Sailfish OS UI guidelines. Perhaps openrepos could be the solution.

I have not published the Android APK anywhere. I was working on implementing audio playback but I still have some issues to iron out.

syedmizanur commented 2 years ago

The name isnt't clickable for me. The html shows its just h3 image Perhaps its because I'm not logged in? There is no option to register either (I'm guessing one has to be invited by the admin)

Best, Syed

foolab commented 2 years ago

It could be that you are not logged in.

Anyway, I uploaded the RPM here for now: https://foolab.org/harbour-quran-0.7.0+master.20220623205801.153.g93f59d6-118.1.aarch64.rpm

syedmizanur commented 2 years ago

It seems to work! Here are the Screenshots from the Xperia X iii..

Thanks a lot. May your efforts be accepted.

Best, Syed

image image

foolab commented 2 years ago

This is good to hear :)

I submitted issue #3 about moving to openrepos. Feel free to follow it.

And please feel free to open an issue if you find something that is not working.

Jazakom Allah khair

syedmizanur commented 2 years ago

Will do. Do carry on your good work!

syedmizanur commented 2 years ago

It seems to work. Here are the Screenshots from the Xperia X iii..

Thanks a lot. May your efforts be accepted.

Best, Syed

Am Sonntag, 26. Juni 2022 schrieb Mohammed Sameer:

It could be that you are not logged in.

Anyway, I uploaded the RPM here for now: https://foolab.org/harbour-quran-0.7.0+master.20220623205801.153.g93f59d6-118.1.aarch64.rpm

-- Reply to this email directly or view it on GitHub: https://github.com/foolab/quran/issues/2#issuecomment-1166522193 You are receiving this because you authored the thread.

Message ID: @.***

-- Gesendet von meinem Sailfish Gerät