DIOCGSTRIPEOFFSET ioctl used for determining of partition offset always returns 0 That's probably because it returns not the partition offset, but the offset of the first device's optimal access block, per man disk(4).
In the recently released PySolFC-Cardsets-3.1.tar.bz2 directories .thumbnails and .xvpics are no longer present, but .fr-KuTbSg/PySolFC-Cardsets-master is still there.
'register' storage class specifier is deprecated and incompatible with C++17
ChangeLog is empty in sfk-2.0.0.tar.gz
Please cleanup cardsets tarball (hidden directories)
Does this mean that no other changes are needed, that dlopen and the libraries can be found in the same locations as on a standard Linux? Admittedly, I've only tested normal linking (that check guards the entire LIBZIP block), but will test dlopen(3) mode and reply later.
Extend LIBZIP support to FreeBSD (and maybe others)
Unbreak the build in C++17 mode