Skip to content

Commit

Permalink
devel/libkiwix: Update 13.1.0 → 14.0.0 again
Browse files Browse the repository at this point in the history
Now that devel/libkiwix13 has been created and www/kiwix-tools changed
to depend on it, fixing the latter's build and avoiding a bump of
PORTEPOCH here, we can reapply the update.

This commit is different than the initial update's one, as local patches
here match what was upstreamed in the meantime (see
kiwix/libkiwix#1173).

Selected list of changes:
- Support of IPv6
- Better public IP configuration/detection
- Fix API errors in catalog searches if Xapian keyword in used
- Improve welcome page download buttons
- Better handling of external (non-HTTP) links
- Fix book illustration size on welcome page to 48x48 pixels
- Remove "Multiple Languages" in language filter
- Stop transforming tags casing
- ZIM file size consistently advertised in MiB
- Add accesskeys
- Add OpenSearch to head of pages

See also:
https://github.com/kiwix/libkiwix/releases/tag/14.0.0

This is a maintainer update ([email protected]).

PR:             282559
Reported by:    [email protected]
Reviewed by:    jrm
Fixes:          dafb538 ("devel/libkiwix: Update to 14.0.0")
MFH:            2025Q1
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D48397
  • Loading branch information
OlCe2 authored and nanorkyo committed Jan 18, 2025
1 parent 67d07e0 commit 60c4fe4
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 10 deletions.
2 changes: 1 addition & 1 deletion devel/libkiwix/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PORTNAME= libkiwix
DISTVERSION= 13.1.0
DISTVERSION= 14.0.0
CATEGORIES= devel

MAINTAINER= [email protected]
Expand Down
6 changes: 3 additions & 3 deletions devel/libkiwix/distinfo
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
TIMESTAMP = 1716196790
SHA256 (kiwix-libkiwix-13.1.0_GH0.tar.gz) = 04d93f66b939f937df2c941af517966128d4c9872b707f9ed192177fe51364d3
SIZE (kiwix-libkiwix-13.1.0_GH0.tar.gz) = 1136812
TIMESTAMP = 1736502491
SHA256 (kiwix-libkiwix-14.0.0_GH0.tar.gz) = dae329ebc08ff510daa50b42de71366bf063813e29bf1c09cc49335d90f32094
SIZE (kiwix-libkiwix-14.0.0_GH0.tar.gz) = 1149884
SHA256 (kainjow-Mustache-v4.1_GH0.tar.gz) = acd66359feb4318b421f9574cfc5a511133a77d916d0b13c7caa3783c0bfe167
SIZE (kainjow-Mustache-v4.1_GH0.tar.gz) = 98905
46 changes: 41 additions & 5 deletions devel/libkiwix/files/patch-meson.build
Original file line number Diff line number Diff line change
@@ -1,16 +1,52 @@
--- meson.build.orig 2023-09-09 03:15:43 UTC
Has been upstreamed via https://github.com/kiwix/libkiwix/pull/1173 and will be
included in next release (14.1.0), so remove this patch at next update.

--- meson.build.orig 2024-10-09 17:18:52 UTC
+++ meson.build
@@ -7,12 +7,7 @@ compiler = meson.get_compiler('cpp')
@@ -4,14 +4,40 @@ compiler = meson.get_compiler('cpp')
default_options : ['c_std=c11', 'cpp_std=c++17', 'werror=true'])

compiler = meson.get_compiler('cpp')
-
static_deps = get_option('static-linkage') or get_option('default_library') == 'static'
+extra_libs = []

-# See https://github.com/kiwix/libkiwix/issues/371
-if ['arm', 'mips', 'm68k', 'ppc', 'sh4'].contains(host_machine.cpu_family())
- extra_libs = ['-latomic']
-else
- extra_libs = []
-endif
+extra_libs = []
+# Atomics as compiled by GCC or clang can lead to external references to
+# functions depending on the type size and the platform. LLVM provides them in
+# 'libcompiler_rt', which clang normally automatically links in, while GNU
+# provides them in 'libatomic', which GCC *does not* link in automatically (but
+# this is probably going to change, see
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81358). Regardless of the setup
+# of the compiler driver itself (GCC or clang), we can thus assume that if some
+# atomic references can't be resolved, then 'libatomic' is missing.
+atomics_program = '''
+#include <atomic>
+#include <cstdint>
+
+using namespace std;
+
+int main() {
+ volatile atomic_bool a_b = true;
+ volatile atomic_ullong a_ull = -1;
+ // Next two lines are to cover atomic<socket_t> from 'httplib.h'.
+ volatile atomic<uint32_t> a_u32 = -1;
+ volatile atomic<uint64_t> a_u64 = -1;
+
+ return atomic_load(&a_b) == false && atomic_load(&a_ull) == 0 &&
+ atomic_load(&a_u32) == 0 && atomic_load(&a_u64) == 0;
+}
+'''
+if not compiler.links(atomics_program,
+ name: 'compiler driver readily supports atomics')
+ libatomic = compiler.find_library('atomic')
+ compiler.links(atomics_program, name: 'atomics work with libatomic',
+ dependencies: libatomic, required: true)
+ extra_libs += ['-latomic']
endif

if (compiler.get_id() == 'gcc' and build_machine.system() == 'linux') or host_machine.system() == 'freebsd'
# C++ std::thread is implemented using pthread on linux by gcc
13 changes: 13 additions & 0 deletions devel/libkiwix/files/patch-src_tools_networkTools.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Has been upstreamed via https://github.com/kiwix/libkiwix/pull/1173 and will be
included in next release (14.1.0), so remove this patch at next update.

--- src/tools/networkTools.cpp.orig 2024-10-09 17:18:52 UTC
+++ src/tools/networkTools.cpp
@@ -42,6 +42,7 @@
#include <arpa/inet.h>
#include <ifaddrs.h>
#include <sys/socket.h>
+#include <netinet/in.h>
#include <net/if.h>
#include <netdb.h>
#endif
3 changes: 2 additions & 1 deletion devel/libkiwix/pkg-plist
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ include/kiwix/book.h
include/kiwix/bookmark.h
include/kiwix/common.h
include/kiwix/downloader.h
include/kiwix/i18n.h
include/kiwix/kiwix_config.h
include/kiwix/kiwixserve.h
include/kiwix/library.h
Expand All @@ -16,6 +17,6 @@ include/kiwix/version.h
lib/libkiwix.so
lib/libkiwix.so.%%PORTMAJ%%
lib/libkiwix.so.%%PORTVERSION%%
libdata/pkgconfig/kiwix.pc
libdata/pkgconfig/libkiwix.pc
share/man/man1/kiwix-compile-i18n.1.gz
share/man/man1/kiwix-compile-resources.1.gz

0 comments on commit 60c4fe4

Please sign in to comment.