<div dir="ltr">Hi Gilles,<div><br></div><div>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...</div><div><br></div><div>Would be absolutely great to have digikam on the raspi!</div><div><br></div><div>Thanks</div><div><br></div><div>TK</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jun 7, 2020 at 11:27 AM Gilles Caulier <<a href="mailto:caulier.gilles@gmail.com">caulier.gilles@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi all,<br>
<br>
I bought the last PI version 4 B, with 4 core ARM 64 bits and 8Gb of RAM.<br>
<br>
compared to older PI 3 mono core 1 Gb, this version rock really and<br>
fully suitable with Plasma desktop.<br>
<br>
Compared to version 3, version 4 compiles the whole digiKam from<br>
scratch in less than one hour. Under version 3, it's more than 10<br>
hours....<br>
<br>
Expected for the Opengl API, all compile fine. I will investigate why<br>
libgl API do not export right functions, even if all include files are<br>
installed...<br>
<br>
I also made a small patch to compile Exiv2 under ARM. I PR my patch<br>
but, as usual, it's always complicated with Robin to propose changes<br>
in the Exiv2 project even if the patch is very small.. I think the<br>
problem is a human one...<br>
<br>
<a href="https://github.com/Exiv2/exiv2/pull/1231" rel="noreferrer" target="_blank">https://github.com/Exiv2/exiv2/pull/1231</a><br>
<br>
digiKam under ARM report alignment of data warnings, especially with<br>
DImg API, like this :<br>
<br>
/home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp: In member<br>
function ‘Digikam::DImg Digikam::DImg::smoothScaleClipped(int, int,<br>
int, int, int, int) const’:<br>
/home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:231:81:<br>
warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka<br>
‘long long unsigned int*’} increases required alignment of target type<br>
[-Wcast-align]<br>
             dimgScaleAARGBA16(scaleinfo,<br>
reinterpret_cast<ullong*>(buffer.bits()),<br>
<br>
          ^<br>
/home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:237:80:<br>
warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka<br>
‘long long unsigned int*’} increases required alignment of target type<br>
[-Wcast-align]<br>
             dimgScaleAARGB16(scaleinfo,<br>
reinterpret_cast<ullong*>(buffer.bits()),<br>
<br>
         ^<br>
/home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:246:77:<br>
warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka<br>
‘unsigned int*’} increases required alignment of target type<br>
[-Wcast-align]<br>
             dimgScaleAARGBA(scaleinfo, reinterpret_cast<uint*>(buffer.bits()),<br>
                                                                             ^<br>
/home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:252:76:<br>
warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka<br>
‘unsigned int*’} increases required alignment of target type<br>
[-Wcast-align]<br>
             dimgScaleAARGB(scaleinfo, reinterpret_cast<uint*>(buffer.bits()),<br>
                                                                            ^<br>
/home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp: In member<br>
function ‘Digikam::DImg Digikam::DImg::smoothScaleSection(int, int,<br>
int, int, int, int) const’:<br>
/home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:338:81:<br>
warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka<br>
‘long long unsigned int*’} increases required alignment of target type<br>
[-Wcast-align]<br>
             dimgScaleAARGBA16(scaleinfo,<br>
reinterpret_cast<ullong*>(buffer.bits()),<br>
<br>
          ^<br>
/home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:346:80:<br>
warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka<br>
‘long long unsigned int*’} increases required alignment of target type<br>
[-Wcast-align]<br>
             dimgScaleAARGB16(scaleinfo,<br>
reinterpret_cast<ullong*>(buffer.bits()),<br>
<br>
         ^<br>
/home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:358:66:<br>
warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka<br>
‘unsigned int*’} increases required alignment of target type<br>
[-Wcast-align]<br>
                             reinterpret_cast<uint*>(buffer.bits()),<br>
                                                                  ^<br>
/home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:367:65:<br>
warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka<br>
‘unsigned int*’} increases required alignment of target type<br>
[-Wcast-align]<br>
                            reinterpret_cast<uint*>(buffer.bits()),<br>
                                                                 ^<br>
/home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp: In function<br>
‘Digikam::DImgScale::DImgScaleInfo*<br>
Digikam::DImgScale::dimgCalcScaleInfo(const Digikam::DImg&, int, int,<br>
int, int, bool)’:<br>
/home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:521:80:<br>
warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘ullong*’ {aka<br>
‘long long unsigned int*’} increases required alignment of target type<br>
[-Wcast-align]<br>
         isi->ypoints16 =<br>
dimgCalcYPoints16(reinterpret_cast<ullong*>(img.bits()), img.width(),<br>
img.height(), sch);<br>
<br>
         ^<br>
/home/gilles/Documents/7.x/core/libs/dimg/dimg_scale.cpp:526:76:<br>
warning: cast from ‘uchar*’ {aka ‘unsigned char*’} to ‘uint*’ {aka<br>
‘unsigned int*’} increases required alignment of target type<br>
[-Wcast-align]<br>
         isi->ypoints   =<br>
dimgCalcYPoints(reinterpret_cast<uint*>(img.bits()), img.width(),<br>
img.height(), sch);<br>
<br>
Voilà, work in progress<br>
<br>
Gilles caulier<br>
</blockquote></div>