Date: Fri, 10 Jan 2025 13:48:16 GMT From: Olivier Certner <olce@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-branches@FreeBSD.org Subject: git: 11f0bd745a25 - 2025Q1 - devel/libkiwix13: New port for libkiwix 13 Message-ID: <202501101348.50ADmGdD007964@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch 2025Q1 has been updated by olce: URL: https://cgit.FreeBSD.org/ports/commit/?id=11f0bd745a25c8a3fec5121751c48b65e1e0622f commit 11f0bd745a25c8a3fec5121751c48b65e1e0622f Author: Olivier Certner <olce@FreeBSD.org> AuthorDate: 2025-01-09 15:27:50 +0000 Commit: Olivier Certner <olce@FreeBSD.org> CommitDate: 2025-01-10 13:46:20 +0000 devel/libkiwix13: New port for libkiwix 13 This port is assumed to be temporary, as the reason for its creation is that kiwix-tools 3.7.0, the latest released version at time of this writing, relies on libkiwix with major version 13, whereas devel/libkiwix was updated too soon to 14. An alternative would be to bump PORTEPOCH for libkiwix, but such bumps are forever and should be reserved for changes in version numbering as much as possible. Suggested by: jrtc27, jrm Reviewed by: jrm Fixes: dafb538b3fd6 ("devel/libkiwix: Update to 14.0.0") MFH: 2025Q1 Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D48395 (cherry picked from commit 70fd76ed56d1fa6ddb86c8dfd70c271adfea7c8b) --- devel/Makefile | 1 + devel/libkiwix/Makefile | 2 ++ devel/libkiwix13/Makefile | 42 ++++++++++++++++++++++++++ devel/libkiwix13/distinfo | 5 +++ devel/libkiwix13/files/patch-meson.build | 52 ++++++++++++++++++++++++++++++++ devel/libkiwix13/pkg-descr | 7 +++++ devel/libkiwix13/pkg-plist | 21 +++++++++++++ 7 files changed, 130 insertions(+) diff --git a/devel/Makefile b/devel/Makefile index a1169437c800..b82f1a8ef37e 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -1346,6 +1346,7 @@ SUBDIR += libjodycode SUBDIR += libk8055 SUBDIR += libkiwix + SUBDIR += libkiwix13 SUBDIR += libklel SUBDIR += liblangtag SUBDIR += liblnk diff --git a/devel/libkiwix/Makefile b/devel/libkiwix/Makefile index a6a5e2a946ad..c962752a54c8 100644 --- a/devel/libkiwix/Makefile +++ b/devel/libkiwix/Makefile @@ -27,6 +27,8 @@ 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.*[^.]. diff --git a/devel/libkiwix13/Makefile b/devel/libkiwix13/Makefile new file mode 100644 index 000000000000..3620a09e76f1 --- /dev/null +++ b/devel/libkiwix13/Makefile @@ -0,0 +1,42 @@ +PORTNAME= libkiwix +DISTVERSION= 13.1.0 +CATEGORIES= devel +PKGNAMESUFFIX= 13 + +MAINTAINER= olce.freebsd.ports@certner.fr +COMMENT= Common code base for all Kiwix ports, version 13 +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= libkiwix + +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 <bsd.port.mk> diff --git a/devel/libkiwix13/distinfo b/devel/libkiwix13/distinfo new file mode 100644 index 000000000000..7a1264477c3c --- /dev/null +++ b/devel/libkiwix13/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1716196790 +SHA256 (kiwix-libkiwix-13.1.0_GH0.tar.gz) = 04d93f66b939f937df2c941af517966128d4c9872b707f9ed192177fe51364d3 +SIZE (kiwix-libkiwix-13.1.0_GH0.tar.gz) = 1136812 +SHA256 (kainjow-Mustache-v4.1_GH0.tar.gz) = acd66359feb4318b421f9574cfc5a511133a77d916d0b13c7caa3783c0bfe167 +SIZE (kainjow-Mustache-v4.1_GH0.tar.gz) = 98905 diff --git a/devel/libkiwix13/files/patch-meson.build b/devel/libkiwix13/files/patch-meson.build new file mode 100644 index 000000000000..d8e45a01b520 --- /dev/null +++ b/devel/libkiwix13/files/patch-meson.build @@ -0,0 +1,52 @@ +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 +@@ -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 = [] ++# 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' diff --git a/devel/libkiwix13/pkg-descr b/devel/libkiwix13/pkg-descr new file mode 100644 index 000000000000..d774f60c0660 --- /dev/null +++ b/devel/libkiwix13/pkg-descr @@ -0,0 +1,7 @@ +Kiwix is an offline reader for web content archived in ZIM format. It is +particularly tailored towards Wikipedia and other wikis. + +The Kiwix library contains the code shared by Kiwix ports on all supported +platforms. + +This is version 13, which is required by kiwix-tools 3.7. diff --git a/devel/libkiwix13/pkg-plist b/devel/libkiwix13/pkg-plist new file mode 100644 index 000000000000..7b2d35d0d068 --- /dev/null +++ b/devel/libkiwix13/pkg-plist @@ -0,0 +1,21 @@ +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/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 +share/man/man1/kiwix-compile-i18n.1.gz +share/man/man1/kiwix-compile-resources.1.gz
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202501101348.50ADmGdD007964>