Skip to content

Conversation

@benoit74
Copy link
Contributor

@benoit74 benoit74 commented Nov 4, 2025

This is a minimal PR to move to libzim 9.4.0

It does not add new stuff like the new illustrations API (I propose to do this in a distinct PR #233)

It adapts to libzim changes:

  • remove Archive.dirent_lookup_cache_max_size, does not exists anymore in libzim
  • move Archive.cluster_cache_max_size and Archive.cluster_cache_current_size to methods outside of Archive object: get_cluster_cache_max_size, set_cluster_cache_max_size, get_cluster_cache_current_size (size is now in bytes)
  • deprecate usage of get_illustration_sizes()

@benoit74 benoit74 self-assigned this Nov 4, 2025
@codecov
Copy link

codecov bot commented Nov 4, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.77%. Comparing base (f2b3a59) to head (75c4e87).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #234      +/-   ##
==========================================
+ Coverage   93.69%   93.77%   +0.08%     
==========================================
  Files           1        1              
  Lines         539      546       +7     
==========================================
+ Hits          505      512       +7     
  Misses         34       34              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@benoit74 benoit74 force-pushed the libzim_9.4.0 branch 2 times, most recently from 257b200 to dd66c0e Compare November 4, 2025 08:55
@benoit74
Copy link
Contributor Author

benoit74 commented Nov 4, 2025

@rgaudin do you have any idea about how to fix the wheel build error on Ubuntu cp39 aarch64?

Is this something which is induced by libzim 9.4.0 or did I broke something?

auditwheel: error: cannot repair "/tmp/cibuildwheel/built_wheel/libzim-3.7.1.dev0-cp39-cp39-linux_aarch64.whl" to "manylinux_2_28_aarch64" ABI because of the presence of too-recent versioned symbols.

I tried update CI actions (kinda desperate move tbh) but it did not helped except having much nicer logs for the wheel building action.

@benoit74 benoit74 marked this pull request as ready for review November 4, 2025 09:44
@benoit74 benoit74 requested a review from rgaudin November 4, 2025 09:44
@rgaudin
Copy link
Member

rgaudin commented Nov 4, 2025

I use this link and this one to check which distro version has which glibc version easily. It's not up to date unfortunately but Ubuntu jammy 22.04 has glibc 2.35.

Regular libizim is now built on jammy so if we were to use it, we could only link on images that supports 2.35+. We would thus need to update our manylinux-*-image instructions to use manylinux_2_39 which is very recent. That would imply:

  • Only supporting Ubuntu 24.04+ (dropping 18.10, 20.04, 20.10, 22.04, 22.10)
  • Only supporting Debian 13+, released a month ago (dropping 10, 11, 12)

That's why we don't use regular libzim in pylibzim but a special build named manylinux. It's built on manylinux_2_28 for the sole purpose of pylibzim.

I see here though that this is an x86_64 image so obviously there will be issues on aarch64. You can open a ticket in kiwix-build because this is a problem

@benoit74
Copy link
Contributor Author

benoit74 commented Nov 4, 2025

Thank you! In addition, manylinux_2_39 is only supported on aarch64 and riscv64 according to https://github.com/pypa/manylinux

image

@benoit74
Copy link
Contributor Author

benoit74 commented Nov 4, 2025

Blocked by kiwix/kiwix-build#881 for the time being

@benoit74 benoit74 removed the request for review from rgaudin November 4, 2025 17:42
@benoit74 benoit74 marked this pull request as draft November 4, 2025 17:42
@benoit74 benoit74 marked this pull request as ready for review November 6, 2025 14:29
@benoit74 benoit74 requested a review from rgaudin November 6, 2025 14:29
@benoit74
Copy link
Contributor Author

benoit74 commented Nov 6, 2025

This is now ready for review, only waiting for kiwix/kiwix-build#884 to be merged and released

@rgaudin
Copy link
Member

rgaudin commented Nov 7, 2025

It's available and should be working

❯ auditwheel-symbols -m 2_28 libzim_linux-aarch64-manylinux-9.4.0-1/lib64/libzim.so.9.4.0
libzim.so.9.4.0 is manylinux_2_28 compliant.

@benoit74
Copy link
Contributor Author

benoit74 commented Nov 9, 2025

@rgaudin can you please review this PR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants