ceph-dovecot / dovecot-ceph-plugin

Dovecot plugin for storing mails in a Ceph cluster
Other
131 stars 23 forks source link

Compilation failure on 32bit with alpine linux #274

Open a16bitsysop opened 3 years ago

a16bitsysop commented 3 years ago

Describe the bug I am trying to package for alpine Linux with patches from: https://github.com/ceph-dovecot/dovecot-ceph-plugin/pull/272

and

build_dovecot_2.38 branch

It successfully compiles on 64bit platforms, but fails on 32bit platforms.

Alpine has Ceph and dovecot for 64bit and 32bit platforms.

To Reproduce Steps to reproduce the behavior: 64bit aarch64 log: https://gitlab.alpinelinux.org/a16bitsysop/aports/-/jobs/422088/raw

x86_64 log: https://gitlab.alpinelinux.org/a16bitsysop/aports/-/jobs/422215/raw

32bit log: https://gitlab.alpinelinux.org/a16bitsysop/aports/-/jobs/422089/raw

Expected behavior A clear and concise description of what you expected to happen.

Should not be tied to only 64bit, Ceph has been adding fixes to build on 32bit as well

Logfiles, screenshots If applicable, add Logfiles or screenshots to help explain your problem.

see above

all pipelines: https://gitlab.alpinelinux.org/a16bitsysop/aports/-/pipelines/85468

Server (please complete the following information):

Client (please complete the following information):

none, just building

Additional context Add any other context about the problem here.

a16bitsysop commented 3 years ago

Looking at the logs again x86_64 is using dovecot-3.15 and aarch64 is using dovecot-3.14 as the new version is still being built for it.

a16bitsysop commented 3 years ago

I created a patch for dovecot-3.15 but it does not check ABI version

32bit still not compiling

Could in rados-metadata.h:

'void librmb::RadosMetadata::convert(librmb::rbox_metadata_key, const uint&)'

be removed and only have: 'void librmb::RadosMetadata::convert(librmb::rbox_metadata_key, const size_t&)'

as it seems to be a problem with on 32bit uint = size_t

I did try just removing the uint stuff from rados-metadata.h but it didn’t seem to work