Raspberry PI support...

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Raspberry PI support...

Gilles Caulier-4
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
Reply | Threaded
Open this post in threaded view
|

Re: Raspberry PI support...

Tonio Kroeger
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
Reply | Threaded
Open this post in threaded view
|

Re: Raspberry PI support...

Gilles Caulier-4
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
Reply | Threaded
Open this post in threaded view
|

Re: Raspberry PI support...

Tonio Kroeger
Hi,

thanks a lot! I

From the git-md-readme: to setup computer you need to:

  • run as root the "preparehost" script for your operating system.
  • configure paths to use in config file.
  • run the installdeps script and take a coffee.
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,

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
Reply | Threaded
Open this post in threaded view
|

Re: Raspberry PI support...

Tonio Kroeger
> 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:
Hi,

thanks a lot! I

From the git-md-readme: to setup computer you need to:

  • run as root the "preparehost" script for your operating system.
  • configure paths to use in config file.
  • run the installdeps script and take a coffee.
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,

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
Reply | Threaded
Open this post in threaded view
|

Re: Raspberry PI support...

Tonio Kroeger
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:
> 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:
Hi,

thanks a lot! I

From the git-md-readme: to setup computer you need to:

  • run as root the "preparehost" script for your operating system.
  • configure paths to use in config file.
  • run the installdeps script and take a coffee.
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,

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
Reply | Threaded
Open this post in threaded view
|

Re: Raspberry PI support...

Gilles Caulier-4
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 :
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:
> 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:
Hi,

thanks a lot! I

From the git-md-readme: to setup computer you need to:

  • run as root the "preparehost" script for your operating system.
  • configure paths to use in config file.
  • run the installdeps script and take a coffee.
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,





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








--
Send with Gmail Mobile
Reply | Threaded
Open this post in threaded view
|

Re: Raspberry PI support...

Tonio Kroeger
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

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 :
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:
> 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:
Hi,

thanks a lot! I

From the git-md-readme: to setup computer you need to:

  • run as root the "preparehost" script for your operating system.
  • configure paths to use in config file.
  • run the installdeps script and take a coffee.
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,





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








--
Send with Gmail Mobile
Reply | Threaded
Open this post in threaded view
|

Re: Raspberry PI support...

Tonio Kroeger
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"


sudo apt-get install -y \
wget `# For GMicQt.` \
tar `# AppImage legacy ?` \
bzip2 `# AppImage legacy ?` \
gettext `# i18n.` \
git `# source code is hosted on git server.` \
subversion `# translations are hosted on svn server.` \
libtool `# AppImage legacy ?` \
fuse `# AppImage legacy ?` \
automake `# AppImage legacy ?` \
cmake `# To compile source code.` \
gcc-8 `# To compile source code.` \
patch `# To compile source code.` \
libx11-xcb-dev `# X11 requirement for QtBase.` \
libxcb-keysyms1-dev `# X11 requirement for QtBase.` \
libxcb-util0-dev `# X11 requirement for QtBase.` \
xkb-data `# X11 requirement for QtBase.` \
xscreensaver `# X11 requirement for QtBase.` \
gperf `# To compile Qt.` \
zlib1g-dev `# To compile Qt.` \
ruby `# translations extractions scripts.` \
bison `# Panorama tool.` \
flex `# Panorama tool.` \
libexpat1-dev `# For Exiv2 and Adobe DSK` \
libfuse-dev `# AppImage legacy ?` \
libc6-dev `# To compile Qt.` \
libmariadb-dev `# To compile Qt.` \
libeigen3-dev `# Refocus tool.` \
libcppunit-dev `# AppImage legacy ?` \
libstdc++-8-dev `# For QtWebEngine` \
liblcms2-dev `# Color management support.` \
libudev-dev `# AppImage legacy ?` \
liblzma-dev `# To compile Qt.` \
libinotifytools0-dev `# To compile Qt.` \
libcups2-dev `# To compile Qt.` \
apt-get install -y \
      wget                         `#  For GMicQt.` \
      tar                          `#  AppImage legacy ?` \
      bzip2                        `#  AppImage legacy ?` \
      gettext                      `#  i18n.` \
      git                          `#  source code is hosted on git server.` \
      subversion                   `#  translations are hosted on svn server.` \
      libtool                      `#  AppImage legacy ?` \
      fuse                         `#  AppImage legacy ?` \
      automake                     `#  AppImage legacy ?` \
      cmake                        `#  To compile source code.` \
      gcc-8                        `#  To compile source code.` \
      patch                        `#  To compile source code.` \
      libx11-xcb-dev               `#  X11 requirement for QtBase.` \
      libxcb-keysyms1-dev          `#  X11 requirement for QtBase.` \
      libxcb-util0-dev             `#  X11 requirement for QtBase.` \
      xkb-data                     `#  X11 requirement for QtBase.` \
      xscreensaver                 `#  X11 requirement for QtBase.` \
      gperf                        `#  To compile Qt.` \
      zlib1g-dev                   `#  To compile Qt.` \
      ruby                         `#  translations extractions scripts.` \
      bison                        `#  Panorama tool.` \
      flex                         `#  Panorama tool.` \
      libexpat1-dev                `#  For Exiv2 and Adobe DSK` \
      libfuse-dev                  `#  AppImage legacy ?` \
      libc6-dev                    `#  To compile Qt.` \
      libmariadb-dev               `#  To compile Qt.` \
      libeigen3-dev                `#  Refocus tool.` \
      libcppunit-dev               `#  AppImage legacy ?` \
      libstdc++-8-dev              `#  For QtWebEngine` \
      liblcms2-dev                 `#  Color management support.` \
      libudev-dev                  `#  AppImage legacy ?` \
      liblzma-dev                  `#  To compile Qt.` \
      libinotifytools0-dev         `#  To compile Qt.` \
      libcups2-dev                 `#  To compile Qt.` \
      libopenal-dev                `#  For QtAv` \
      libfontconfig1-dev           `#  To compile Qt.` \
      libfreetype6-dev             `#  To compile Qt.` \
      patchelf                     `#  AppImage legacy ?` \
      dpkg                         `#  AppImage legacy ?` \
      ninja                        `#  For QtWebEngine` \
      python                       `#  For QtWebEngine` \
      ruby-dev                     `#  For QtWebEngine` \
      libsqlite3-dev               `#  To compile Qt.` \
      libavcodec-dev               `#  For QtAv` \
      libavdevice-dev              `#  For QtAv` \
      libavfilter-dev              `#  For QtAv` \
      libavformat-dev              `#  For QtAv` \
      libavresample-dev            `#  For QtAv` \
      libavutil-dev                `#  For QtAv` \
      libpostproc-dev              `#  For QtAv` \
      libswresample-dev            `#  For QtAv` \
      libboost-dev                 `#  DK deps.` \
      libgphoto2-dev               `#  DK deps.` \
      libsane-dev                  `#  DK deps.` \
      libjasper-dev                `#  DK deps.` \
      libexif-dev                  `#  AppImage legacy ?` \
      libxslt1-dev                 `#  DK deps.` \
      libdrm-dev                   `#  To compile Qt.` \
      libicu-dev                   `#  To compile Qt.` \
      libproxy-dev                 `#  To compile Qt.` \
      libical-dev                  `#  DK deps.` \
      libcap-dev                   `#  To compile Qt.` \
      libxml2-dev                  `#  DK deps.` \
      libnss3-dev                  `#  To compile Qt.` \
      libxkbcommon-dev             `#  To compile Qt.` \
      libxi-dev                    `#  For QtWebEngine` \
      libxtst-dev                  `#  For QtWebEngine` \
      libxrandr-dev                `#  For QtWebEngine` \
      libxcursor-dev               `#  For QtWebEngine` \
      libxcomposite-dev            `#  For QtWebEngine` \
      libxrender-dev               `#  For QtWebEngine` \
      libglu1-mesa-dev             `#  For QtWebEngine` \
      libegl1-mesa-dev             `#  For QtWebEngine` \
      libltdl-dev                  `#  For QtWebEngine` \
      libglib2.0-dev               `#  For QtWebEngine` \
      libusb-1.0-0-dev             `#  For Gphoto2 support` \
      libjpeg-dev                  `#  DK deps.` \
      libpng-dev                   `#  DK deps.` \
      libtiff-dev                  `#  DK deps.` \
      liblqr-1-0-dev               `#  DK deps.` \
      libfftw3-dev                 `#  QMicQt.` \
      libcurl4-nss-dev             `#  QMicQt.` \
      libmagick++-dev              `#  DK deps.` \
      libwayland-dev               `#  To Compile Qt.`apt-get install -y \
      wget                         `#  For GMicQt.` \
      tar                          `#  AppImage legacy ?` \
      bzip2                        `#  AppImage legacy ?` \
      gettext                      `#  i18n.` \
      git                          `#  source code is hosted on git server.` \
      subversion                   `#  translations are hosted on svn server.` \
      libtool                      `#  AppImage legacy ?` \
      fuse                         `#  AppImage legacy ?` \
      automake                     `#  AppImage legacy ?` \
      cmake                        `#  To compile source code.` \
      gcc-8                        `#  To compile source code.` \
      patch                        `#  To compile source code.` \
      libx11-xcb-dev               `#  X11 requirement for QtBase.` \
      libxcb-keysyms1-dev          `#  X11 requirement for QtBase.` \
      libxcb-util0-dev             `#  X11 requirement for QtBase.` \
      xkb-data                     `#  X11 requirement for QtBase.` \
      xscreensaver                 `#  X11 requirement for QtBase.` \
      gperf                        `#  To compile Qt.` \
      zlib1g-dev                   `#  To compile Qt.` \
      ruby                         `#  translations extractions scripts.` \
      bison                        `#  Panorama tool.` \
      flex                         `#  Panorama tool.` \
      libexpat1-dev                `#  For Exiv2 and Adobe DSK` \
      libfuse-dev                  `#  AppImage legacy ?` \
      libc6-dev                    `#  To compile Qt.` \
      libmariadb-dev               `#  To compile Qt.` \
      libeigen3-dev                `#  Refocus tool.` \
      libcppunit-dev               `#  AppImage legacy ?` \
      libstdc++-8-dev              `#  For QtWebEngine` \
      liblcms2-dev                 `#  Color management support.` \
      libudev-dev                  `#  AppImage legacy ?` \
      liblzma-dev                  `#  To compile Qt.` \
      libinotifytools0-dev         `#  To compile Qt.` \
      libcups2-dev                 `#  To compile Qt.` \
      libopenal-dev                `#  For QtAv` \
      libfontconfig1-dev           `#  To compile Qt.` \
      libfreetype6-dev             `#  To compile Qt.` \
      patchelf                     `#  AppImage legacy ?` \
      dpkg                         `#  AppImage legacy ?` \
      ninja                        `#  For QtWebEngine` \
      python                       `#  For QtWebEngine` \
      ruby-dev                     `#  For QtWebEngine` \
      libsqlite3-dev               `#  To compile Qt.` \
      libavcodec-dev               `#  For QtAv` \
      libavdevice-dev              `#  For QtAv` \
      libavfilter-dev              `#  For QtAv` \
      libavformat-dev              `#  For QtAv` \
      libavresample-dev            `#  For QtAv` \
      libavutil-dev                `#  For QtAv` \
      libpostproc-dev              `#  For QtAv` \
      libswresample-dev            `#  For QtAv` \
      libboost-dev                 `#  DK deps.` \
      libgphoto2-dev               `#  DK deps.` \
      libsane-dev                  `#  DK deps.` \
      libjasper-dev                `#  DK deps.` \
      libexif-dev                  `#  AppImage legacy ?` \
      libxslt1-dev                 `#  DK deps.` \
      libdrm-dev                   `#  To compile Qt.` \
      libicu-dev                   `#  To compile Qt.` \
      libproxy-dev                 `#  To compile Qt.` \
      libical-dev                  `#  DK deps.` \
      libcap-dev                   `#  To compile Qt.` \
      libxml2-dev                  `#  DK deps.` \
      libnss3-dev                  `#  To compile Qt.` \
      libxkbcommon-dev             `#  To compile Qt.` \
      libxi-dev                    `#  For QtWebEngine` \
      libxtst-dev                  `#  For QtWebEngine` \
      libxrandr-dev                `#  For QtWebEngine` \
      libxcursor-dev               `#  For QtWebEngine` \
      libxcomposite-dev            `#  For QtWebEngine` \
      libxrender-dev               `#  For QtWebEngine` \
      libglu1-mesa-dev             `#  For QtWebEngine` \
      libegl1-mesa-dev             `#  For QtWebEngine` \
      libltdl-dev                  `#  For QtWebEngine` \
      libglib2.0-dev               `#  For QtWebEngine` \
      libusb-1.0-0-dev             `#  For Gphoto2 support` \
      libjpeg-dev                  `#  DK deps.` \
      libpng-dev                   `#  DK deps.` \
      libtiff-dev                  `#  DK deps.` \
      liblqr-1-0-dev               `#  DK deps.` \
      libfftw3-dev                 `#  QMicQt.` \
      libcurl4-nss-dev             `#  QMicQt.` \
      libmagick++-dev              `#  DK deps.` \
      libwayland-dev               `#  To Compile Qt.`
libopenal-dev `# For QtAv` \
libfontconfig1-dev `# To compile Qt.` \
libfreetype6-dev `# To compile Qt.` \
patchelf `# AppImage legacy ?` \
dpkg `# AppImage legacy ?` \
ninja `# For QtWebEngine` \
python `# For QtWebEngine` \
ruby-dev `# For QtWebEngine` \
libsqlite3-dev `# To compile Qt.` \
libavcodec-dev `# For QtAv` \
libavdevice-dev `# For QtAv` \
libavfilter-dev `# For QtAv` \
libavformat-dev `# For QtAv` \
libavresample-dev `# For QtAv` \
libavutil-dev `# For QtAv` \
libpostproc-dev `# For QtAv` \
libswresample-dev `# For QtAv` \
libboost-dev `# DK deps.` \
libgphoto2-dev `# DK deps.` \
libsane-dev `# DK deps.` \
libjasper-dev `# DK deps.` \
libexif-dev `# AppImage legacy ?` \
libxslt1-dev `# DK deps.` \
libdrm-dev `# To compile Qt.` \
libicu-dev `# To compile Qt.` \
libproxy-dev `# To compile Qt.` \
libical-dev `# DK deps.` \
libcap-dev `# To compile Qt.` \
libxml2-dev `# DK deps.` \
libnss3-dev `# To compile Qt.` \
libxkbcommon-dev `# To compile Qt.` \
libxi-dev `# For QtWebEngine` \
libxtst-dev `# For QtWebEngine` \
libxrandr-dev `# For QtWebEngine` \
libxcursor-dev `# For QtWebEngine` \
libxcomposite-dev `# For QtWebEngine` \
libxrender-dev `# For QtWebEngine` \
libglu1-mesa-dev `# For QtWebEngine` \
libegl1-mesa-dev `# For QtWebEngine` \
libltdl-dev `# For QtWebEngine` \
libglib2.0-dev `# For QtWebEngine` \
libusb-1.0-0-dev `# For Gphoto2 support` \
libjpeg-dev `# DK deps.` \
libpng-dev `# DK deps.` \
libtiff-dev `# DK deps.` \
liblqr-1-0-dev `# DK deps.` \
libfftw3-dev `# QMicQt.` \
libcurl4-nss-dev `# QMicQt.` \
libmagick++-dev `# DK deps.` \
libwayland-dev `# To Compile Qt.`


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".