diff --git a/devel/libkiwix/Makefile b/devel/libkiwix/Makefile index c962752a54c8..b842c0fc406f 100644 --- a/devel/libkiwix/Makefile +++ b/devel/libkiwix/Makefile @@ -1,41 +1,41 @@ PORTNAME= libkiwix -DISTVERSION= 13.1.0 +DISTVERSION= 14.0.0 CATEGORIES= devel MAINTAINER= olce.freebsd.ports@certner.fr COMMENT= Common code base for all Kiwix ports WWW= https://www.kiwix.org/ LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= bash:shells/bash LIB_DEPENDS= libzim.so:devel/libzim \ libpugixml.so:textproc/pugixml \ libaria2.so:www/aria2 \ libicui18n.so:devel/icu \ libicuuc.so:devel/icu \ libxapian.so:databases/xapian-core \ libctpp2.so:textproc/ctpp2 \ libcurl.so:ftp/curl \ libmicrohttpd.so:www/libmicrohttpd USES= compiler:c++17-lang meson pkgconfig python shebangfix USE_GITHUB= yes GH_ACCOUNT= kiwix GH_TUPLE= kiwix:${PORTNAME}:${PORTVERSION}:DEFAULT \ kainjow:Mustache:v4.1:mustache USE_LDCONFIG= yes CONFLICTS_INSTALL= libkiwix13 SHEBANG_FILES= scripts/format_code.sh SHEBANG_REGEX= ./scripts/kiwix.*[^.]. CPPFLAGS+= -I${WRKSRC_mustache} CXXFLAGS+= -I${WRKSRC_mustache} LDFLAGS+= -lz PLIST_SUB= PORTVERSION=${PORTVERSION} PORTMAJ=${PORTVERSION:C/\..*//} .include diff --git a/devel/libkiwix/distinfo b/devel/libkiwix/distinfo index 7a1264477c3c..38996a83e9f7 100644 --- a/devel/libkiwix/distinfo +++ b/devel/libkiwix/distinfo @@ -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 diff --git a/devel/libkiwix/files/patch-meson.build b/devel/libkiwix/files/patch-meson.build index eb9c07cc45fe..d8e45a01b520 100644 --- a/devel/libkiwix/files/patch-meson.build +++ b/devel/libkiwix/files/patch-meson.build @@ -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 ++#include ++ ++using namespace std; ++ ++int main() { ++ volatile atomic_bool a_b = true; ++ volatile atomic_ullong a_ull = -1; ++ // Next two lines are to cover atomic from 'httplib.h'. ++ volatile atomic a_u32 = -1; ++ volatile atomic 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 diff --git a/devel/libkiwix/files/patch-src_tools_networkTools.cpp b/devel/libkiwix/files/patch-src_tools_networkTools.cpp new file mode 100644 index 000000000000..6439ba836743 --- /dev/null +++ b/devel/libkiwix/files/patch-src_tools_networkTools.cpp @@ -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 + #include + #include ++#include + #include + #include + #endif diff --git a/devel/libkiwix/pkg-plist b/devel/libkiwix/pkg-plist index 7b2d35d0d068..8164ce90e062 100644 --- a/devel/libkiwix/pkg-plist +++ b/devel/libkiwix/pkg-plist @@ -1,21 +1,22 @@ bin/kiwix-compile-i18n bin/kiwix-compile-resources 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 include/kiwix/manager.h include/kiwix/name_mapper.h include/kiwix/search_renderer.h include/kiwix/server.h include/kiwix/tools.h 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