Hi all,
I bought the last PI version 4 B, with 4 core ARM 64 bits and 8Gb of RAM. compared to older PI 3 mono core 1 Gb, this version rock really and fully suitable with Plasma desktop. Compared to version 3, version 4 compiles the whole digiKam from scratch in less than one hour. Under version 3, it's more than 10 hours.... Expected for the Opengl API, all compile fine. I will investigate why libgl API do not export right functions, even if all include files are installed... I also made a small patch to compile Exiv2 under ARM. I PR my patch but, as usual, it's always complicated with Robin to propose changes in the Exiv2 project even if the patch is very small.. I think the problem is a human one... https://github.com/Exiv2/exiv2/pull/1231 digiKam under ARM report alignment of data warnings, especially with DImg API, like this : /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp: In member function ‘Digikam::DImg Digikam::DImg::smoothScaleClipped(int, int, int, int, int, int) const’: /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:231:81: warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka ‘long long unsigned int*’} increases required alignment of target type [-Wcast-align] dimgScaleAARGBA16(scaleinfo, reinterpret_cast<ullong*>(buffer.bits()), ^ /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:237:80: warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka ‘long long unsigned int*’} increases required alignment of target type [-Wcast-align] dimgScaleAARGB16(scaleinfo, reinterpret_cast<ullong*>(buffer.bits()), ^ /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:246:77: warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka ‘unsigned int*’} increases required alignment of target type [-Wcast-align] dimgScaleAARGBA(scaleinfo, reinterpret_cast<uint*>(buffer.bits()), ^ /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:252:76: warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka ‘unsigned int*’} increases required alignment of target type [-Wcast-align] dimgScaleAARGB(scaleinfo, reinterpret_cast<uint*>(buffer.bits()), ^ /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp: In member function ‘Digikam::DImg Digikam::DImg::smoothScaleSection(int, int, int, int, int, int) const’: /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:338:81: warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka ‘long long unsigned int*’} increases required alignment of target type [-Wcast-align] dimgScaleAARGBA16(scaleinfo, reinterpret_cast<ullong*>(buffer.bits()), ^ /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:346:80: warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka ‘long long unsigned int*’} increases required alignment of target type [-Wcast-align] dimgScaleAARGB16(scaleinfo, reinterpret_cast<ullong*>(buffer.bits()), ^ /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:358:66: warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka ‘unsigned int*’} increases required alignment of target type [-Wcast-align] reinterpret_cast<uint*>(buffer.bits()), ^ /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:367:65: warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka ‘unsigned int*’} increases required alignment of target type [-Wcast-align] reinterpret_cast<uint*>(buffer.bits()), ^ /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp: In function ‘Digikam::DImgScale::DImgScaleInfo* Digikam::DImgScale::dimgCalcScaleInfo(const Digikam::DImg&, int, int, int, int, bool)’: /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:521:80: warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka ‘long long unsigned int*’} increases required alignment of target type [-Wcast-align] isi->ypoints16 = dimgCalcYPoints16(reinterpret_cast<ullong*>(img.bits()), img.width(), img.height(), sch); ^ /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:526:76: warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka ‘unsigned int*’} increases required alignment of target type [-Wcast-align] isi->ypoints = dimgCalcYPoints(reinterpret_cast<uint*>(img.bits()), img.width(), img.height(), sch); Voilà, work in progress Gilles caulier |
Hi Gilles, that is great news! Can you give a hint/link to what are the prerequisites on the raspi? I really struggled with it. Installed a lot of stuff I had no idea what it was. In the end my (headless) raspi did not boot anymore... Would be absolutely great to have digikam on the raspi! Thanks TK On Sun, Jun 7, 2020 at 11:27 AM Gilles Caulier <[hidden email]> wrote: Hi all, |
Hi,
On the PI there is nothing special to customize in the configuration, you need only to install package with apt-get, typically this list : https://github.com/cgilles/digikam-install-deps/blob/master/preparehost-raspberryos.sh From this list you don't need to remove something (see the bottom of this file). The script is used to also recompile the mast version of Qt, but you can use the PI based OS packages as well. digiKam use a lots of memory and CPU computations. My PI is the last version with 8Gb and 4 cores. I recommend using this model. You can use a 4Gb version if your collection is not too big.... To host collection use an external SSD of course, connected on USB3 port. It work like a charm. Best Gilles Caulier Le lun. 7 sept. 2020 à 03:22, Tonio Kroeger <[hidden email]> a écrit : > > Hi Gilles, > > that is great news! Can you give a hint/link to what are the prerequisites on the raspi? I really struggled with it. Installed a lot of stuff I had no idea what it was. In the end my (headless) raspi did not boot anymore... > > Would be absolutely great to have digikam on the raspi! > > Thanks > > TK > > On Sun, Jun 7, 2020 at 11:27 AM Gilles Caulier <[hidden email]> wrote: >> >> Hi all, >> >> I bought the last PI version 4 B, with 4 core ARM 64 bits and 8Gb of RAM. >> >> compared to older PI 3 mono core 1 Gb, this version rock really and >> fully suitable with Plasma desktop. >> >> Compared to version 3, version 4 compiles the whole digiKam from >> scratch in less than one hour. Under version 3, it's more than 10 >> hours.... >> >> Expected for the Opengl API, all compile fine. I will investigate why >> libgl API do not export right functions, even if all include files are >> installed... >> >> I also made a small patch to compile Exiv2 under ARM. I PR my patch >> but, as usual, it's always complicated with Robin to propose changes >> in the Exiv2 project even if the patch is very small.. I think the >> problem is a human one... >> >> https://github.com/Exiv2/exiv2/pull/1231 >> >> digiKam under ARM report alignment of data warnings, especially with >> DImg API, like this : >> >> /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp: In member >> function ‘Digikam::DImg Digikam::DImg::smoothScaleClipped(int, int, >> int, int, int, int) const’: >> /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:231:81: >> warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka >> ‘long long unsigned int*’} increases required alignment of target type >> [-Wcast-align] >> dimgScaleAARGBA16(scaleinfo, >> reinterpret_cast<ullong*>(buffer.bits()), >> >> ^ >> /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:237:80: >> warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka >> ‘long long unsigned int*’} increases required alignment of target type >> [-Wcast-align] >> dimgScaleAARGB16(scaleinfo, >> reinterpret_cast<ullong*>(buffer.bits()), >> >> ^ >> /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:246:77: >> warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka >> ‘unsigned int*’} increases required alignment of target type >> [-Wcast-align] >> dimgScaleAARGBA(scaleinfo, reinterpret_cast<uint*>(buffer.bits()), >> ^ >> /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:252:76: >> warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka >> ‘unsigned int*’} increases required alignment of target type >> [-Wcast-align] >> dimgScaleAARGB(scaleinfo, reinterpret_cast<uint*>(buffer.bits()), >> ^ >> /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp: In member >> function ‘Digikam::DImg Digikam::DImg::smoothScaleSection(int, int, >> int, int, int, int) const’: >> /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:338:81: >> warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka >> ‘long long unsigned int*’} increases required alignment of target type >> [-Wcast-align] >> dimgScaleAARGBA16(scaleinfo, >> reinterpret_cast<ullong*>(buffer.bits()), >> >> ^ >> /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:346:80: >> warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka >> ‘long long unsigned int*’} increases required alignment of target type >> [-Wcast-align] >> dimgScaleAARGB16(scaleinfo, >> reinterpret_cast<ullong*>(buffer.bits()), >> >> ^ >> /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:358:66: >> warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka >> ‘unsigned int*’} increases required alignment of target type >> [-Wcast-align] >> reinterpret_cast<uint*>(buffer.bits()), >> ^ >> /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:367:65: >> warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka >> ‘unsigned int*’} increases required alignment of target type >> [-Wcast-align] >> reinterpret_cast<uint*>(buffer.bits()), >> ^ >> /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp: In function >> ‘Digikam::DImgScale::DImgScaleInfo* >> Digikam::DImgScale::dimgCalcScaleInfo(const Digikam::DImg&, int, int, >> int, int, bool)’: >> /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:521:80: >> warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka >> ‘long long unsigned int*’} increases required alignment of target type >> [-Wcast-align] >> isi->ypoints16 = >> dimgCalcYPoints16(reinterpret_cast<ullong*>(img.bits()), img.width(), >> img.height(), sch); >> >> ^ >> /home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:526:76: >> warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka >> ‘unsigned int*’} increases required alignment of target type >> [-Wcast-align] >> isi->ypoints = >> dimgCalcYPoints(reinterpret_cast<uint*>(img.bits()), img.width(), >> img.height(), sch); >> >> Voilà, work in progress >> >> Gilles caulier |
Hi, thanks a lot! I From the git-md-readme: to setup computer you need to:
I ran sudo ./preparehost-raspberryos.sh and it worked fine. For the second step I had no idea what paths to configure for what config file. Anyway, from your mail I concluded I can do without the steps 2 and 3. Unfortunately when compiling digikam I get ./bootstrap.linux qtpaths: could not exec '/usr/lib/qt5/bin/qtpaths': No such file or directory FAILED COMMAND: QT_INSTALL_PREFIX=`qtpaths --install-prefix` This somehow reminds me of the "configure path" above. So I am missing something here. I tried hard but I have no clue. Seems to be some general configuration in the sense of "where is qt". It is probably absolutely obvious for you folks but for me who never came in touch with qt I do not even know where to search for a solution... Thanks TK On Mon, Sep 7, 2020 at 10:24 AM Gilles Caulier <[hidden email]> wrote: Hi, |
> For the second step I had no idea what paths to configure for what config file. Anyway, from your mail I concluded I can do without the steps 2 and 3. I found the paths. It started running now. Sorry for producing unnecessary traffic. (For my next steps I assume /usr/lib/qt5/ is my "qt-path" and not something unter /opt) -TK On Thu, Sep 10, 2020 at 9:27 AM Tonio Kroeger <[hidden email]> wrote:
|
I am still working on it. sudo ./installdeps.sh never came back. The last info I got is: test config.qtwebengine_buildtools.libraries.webengine-libxml2 succeeded Checking for minizip... Trying source 0 (type pkgConfig) of library webengine-minizip ... + /usr/bin/pkg-config --exists --silence-errors minizip pkg-config did not find package. => source produced no result. test config.qtwebengine_buildtools.libraries.webengine-minizip FAILED Checking for system ninja... Found ninja from path: /usr/sbin/ninja + /usr/sbin/ninja --version and the ninja-command never came back... - TK On Thu, Sep 10, 2020 at 10:01 AM Tonio Kroeger <[hidden email]> wrote:
|
Hi As I explained before.you don’t need to run ./installdeps.sh on pi. Raspianos has already all the dependencies available to install with apt-get, no more and the list is given I the digikam api doc section for developers Best Gilles caulier Le ven. 11 sept. 2020 à 18:44, Tonio Kroeger <[hidden email]> a écrit :
Send with Gmail Mobile
|
I fear it is too complicated for me. I installed all packages by running sudo ./preparehost-raspberryos.sh but I still run into issues I don't have any clue to solve: CMake Error at core/CMakeLists.txt:53 (find_package): Could not find a package configuration file provided by "Qt5" (requested version 5.9.0) with any of the following names: Qt5Config.cmake qt5-config.cmake Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR" to a directory containing one of the above files. If "Qt5" provides a separate development package or SDK, be sure it has been installed. When I sudo apt install kdevelop* I get further: CMake Error at /usr/lib/arm-linux-gnueabihf/cmake/Qt5/Qt5Config.cmake:28 (find_package): Could not find a package configuration file provided by "Qt5WebEngineWidgets" with any of the following names: Qt5WebEngineWidgetsConfig.cmake qt5webenginewidgets-config.cmake Add the installation prefix of "Qt5WebEngineWidgets" to CMAKE_PREFIX_PATH or set "Qt5WebEngineWidgets_DIR" to a directory containing one of the above files. If "Qt5WebEngineWidgets" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): core/CMakeLists.txt:66 (find_package) It is probably not a digikam issue but some general stuff with qt. So for this time I will give up. I do not feel comfortable absorbing developer time for my personal qt-issues... Anyway, thanks! Great software!! TK On Fri, Sep 11, 2020 at 9:34 PM Gilles Caulier <[hidden email]> wrote:
|
Hi all,
I had another try with digikam on my raspberry pi. I started with a plain new raspian os installation and I do not get beyond an error message from "cmake .": CMake Error at /usr/lib/arm-linux-gnueabihf/cmake/Qt5/Qt5Config.cmake:28 (find_package): Could not find a package configuration file provided by "Qt5WebEngineWidgets" with any of the following names: Qt5WebEngineWidgetsConfig.cmake qt5webenginewidgets-config.cmake Add the installation prefix of "Qt5WebEngineWidgets" to CMAKE_PREFIX_PATH or set "Qt5WebEngineWidgets_DIR" to a directory containing one of the above files. If "Qt5WebEngineWidgets" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): core/CMakeLists.txt:66 (find_package) -- Configuring incomplete, errors occurred! Probably this is not digikam specific? My detailed steps are given below. Maybe someone can give me a hint... Thanks a lot TK 1. Plain new installation: @raspi8:~ $ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" 2. Installed the packages from https://github.com/cgilles/digikam-install-deps/blob/master/preparehost-raspberryos.sh
3. Downloaded and extracted https://download.kde.org/stable/digikam/7.1.0/digikam-7.1.0.tar.xz 4. cd ~/digikam-7.1.0 5. started configuration as given in ~/digikam-7.1.0/README.md export VERBOSE=1 export QTDIR=/usr/lib/qt5 --> changed to "export QTDIR=/usr/lib/arm-linux-gnueabihf/qt5" export PATH=$QTDIR/bin:$PATH cmake . raspi8:~/digikam-7.1.0 $ cmake . Re-run cmake no build system arguments -- CMake version: cmake version 3.13.4 CMake suite maintained and supported by Kitware (kitware.com/cmake). -- The CXX compiler identification is GNU 8.3.0 -- The C compiler identification is GNU 8.3.0 -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- ---------------------------------------------------------------------------------- -- Starting CMake configuration for digikam -- CMake Error at CMakeLists.txt:65 (find_package): Could not find a package configuration file provided by "ECM" (requested version 1.7.0) with any of the following names: ECMConfig.cmake ecm-config.cmake Add the installation prefix of "ECM" to CMAKE_PREFIX_PATH or set "ECM_DIR" to a directory containing one of the above files. If "ECM" provides a separate development package or SDK, be sure it has been installed. -- Configuring incomplete, errors occurred! 6. sudo apt install extra-cmake-modules After this I get the following result from cmake .: -- Check dependencies for digikam version 7.1.0 -- CMake Error at /usr/lib/arm-linux-gnueabihf/cmake/Qt5/Qt5Config.cmake:28 (find_package): Could not find a package configuration file provided by "Qt5WebEngineWidgets" with any of the following names: Qt5WebEngineWidgetsConfig.cmake qt5webenginewidgets-config.cmake Add the installation prefix of "Qt5WebEngineWidgets" to CMAKE_PREFIX_PATH or set "Qt5WebEngineWidgets_DIR" to a directory containing one of the above files. If "Qt5WebEngineWidgets" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): core/CMakeLists.txt:66 (find_package) -- Configuring incomplete, errors occurred! See also "/home/jochen/digikam-7.1.0/CMakeFiles/CMakeOutput.log". See also "/home/jochen/digikam-7.1.0/CMakeFiles/CMakeError.log". |
Free forum by Nabble | Edit this page |