kiwix / libkiwix

Common code base for all Kiwix ports
https://download.kiwix.org/release/libkiwix/
GNU General Public License v3.0
112 stars 54 forks source link

NMU diff for 64-bit time_t transition #1055

Closed kelson42 closed 4 months ago

kelson42 commented 4 months ago

From Debian:

As part of the 64-bit time_t transition required to support 32-bit architectures in 2038 and beyond (https://wiki.debian.org/ReleaseGoals/64bit-time), we have identified libkiwix as a source package shipping runtime libraries whose ABI either is affected by the change in size of time_t, or could not be analyzed via abi-compliance-checker (and therefore to be on the safe side we assume is affected).

More at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1062392

mgautierfr commented 4 months ago

Not sure to understand the whole implication but I think there is nothing to do on our side. Maybe @legoktm has a better understanding.

Debian will change compilation option to force use of time_t in 64bits, and this can potentially change our ABI. As they say, our ABI either is affected by the change in size of time_t, or could not be analyzed via abi-compliance-checker (and therefore to be on the safe side we assume is affected). so they "propose" (force?) a change in the package name to add the prefix t64.

The only usage of time_t in our code is in test/httplib.h so we should not be impacted. I don't know how/if we should refuse the patch. @legoktm do you have a opinion on this ?

legoktm commented 4 months ago

There's nothing for us to do here, basically everything will switch to 64-bit time and some ABIs will change. They tried to analyze all the packages semi-automatically and manually but (AIUI) it was taking too much time so they erred on the side of just updating packages where they couldn't verify there was no time_t in the ABI using their tools.

So the package name and soname will temporarily be libkiwix12t64. Then when I get to upgrading to v13, it'll go back to libkiwix13, still using 64-bit time (I was already in progress of doing the upgrade but paused because I didn't want to get in the way of this time_t stuff).