#1134293 libkiwix: FTBFS: 18/20 libkiwix:server FAIL

#1134293#5
Date:
2026-04-18 17:32:02 UTC
From:
To:
Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202604/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:libkiwix, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=meson
   dh_auto_clean -O--buildsystem=meson
   dh_autoreconf_clean -O--buildsystem=meson
   dh_clean -O--buildsystem=meson
 debian/rules binary
dh binary --buildsystem=meson
   dh_update_autotools_config -O--buildsystem=meson
   dh_autoreconf -O--buildsystem=meson
   debian/rules override_dh_auto_configure
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_configure -- -Dwerror=false
	cd obj-x86_64-linux-gnu && DEB_PYTHON_INSTALL_LAYOUT=deb LC_ALL=C.UTF-8 meson setup .. --wrap-mode=nodownload --buildtype=plain --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=lib/x86_64-linux-gnu -Dpython.bytecompile=-1 -Dwerror=false
The Meson build system
Version: 1.11.0

[... snipped ...]

Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
Trying a weaker check for a mismatching snippet...
[       OK ] ServerSearchTest.searchResults (224 ms)
[ RUN      ] ServerSearchTest.searchInMultilanguageBookSetIsDenied
[       OK ] ServerSearchTest.searchInMultilanguageBookSetIsDenied (32 ms)
[ RUN      ] ServerSearchTest.bookSelectionNegativeTests
[       OK ] ServerSearchTest.bookSelectionNegativeTests (4 ms)
[----------] 3 tests from ServerSearchTest (262 ms total)

[----------] Global test environment tear-down
[==========] 3 tests from 1 test suite ran. (262 ms total)
[  PASSED  ] 3 tests.
==============================================================================

=================================== 18/20 ====================================
test:         libkiwix:server
start time:   15:08:33
duration:     5.76s
result:       exit status 1
command:      MESON_TEST_ITERATION=1 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 LD_LIBRARY_PATH=/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src MALLOC_PERTURB_=228 /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/test/server
----------------------------------- stdout -----------------------------------
Running main() from ./googletest/src/gtest_main.cc
[==========] Running 50 tests from 3 test suites.
[----------] Global test environment set-up.
[----------] 2 tests from indexTemplateStringTest
[ RUN      ] indexTemplateStringTest.emptyIndexTemplate
[       OK ] indexTemplateStringTest.emptyIndexTemplate (30 ms)
[ RUN      ] indexTemplateStringTest.indexTemplateCheck
[       OK ] indexTemplateStringTest.indexTemplateCheck (19 ms)
[----------] 2 tests from indexTemplateStringTest (50 ms total)

[----------] 46 tests from ServerTest
[ RUN      ] ServerTest.200
[       OK ] ServerTest.200 (140 ms)
[ RUN      ] ServerTest.200_IdNameMapper
[       OK ] ServerTest.200_IdNameMapper (88 ms)
[ RUN      ] ServerTest.CompressibleContentIsCompressedIfAcceptable
[       OK ] ServerTest.CompressibleContentIsCompressedIfAcceptable (113 ms)
[ RUN      ] ServerTest.UncompressibleContentIsNotCompressed
[       OK ] ServerTest.UncompressibleContentIsNotCompressed (93 ms)
[ RUN      ] ServerTest.CacheIdsOfStaticResources
[       OK ] ServerTest.CacheIdsOfStaticResources (47 ms)
[ RUN      ] ServerTest.CacheIdsOfStaticResourcesMatchTheSha1HashOfResourceContent
[       OK ] ServerTest.CacheIdsOfStaticResourcesMatchTheSha1HashOfResourceContent (1527 ms)
[ RUN      ] ServerTest.400
[       OK ] ServerTest.400 (40 ms)
[ RUN      ] ServerTest.404
../test/server.cpp:476: Failure
Expected equality of these values:
  404
  zfs1_->GET(url)->status
    Which is: 400
url: /ROOT%23%

../test/server.cpp:476: Failure
Expected equality of these values:
  404
  zfs1_->GET(url)->status
    Which is: 400
url: /ROOT%23%3

[  FAILED  ] ServerTest.404 (55 ms)
[ RUN      ] ServerTest.MimeTypes
[       OK ] ServerTest.MimeTypes (47 ms)
[ RUN      ] ServerTest.Http404HtmlError
[       OK ] ServerTest.Http404HtmlError (46 ms)
[ RUN      ] ServerTest.Http400HtmlError
[       OK ] ServerTest.Http400HtmlError (39 ms)
[ RUN      ] ServerTest.HttpXmlError
[       OK ] ServerTest.HttpXmlError (38 ms)
[ RUN      ] ServerTest.500
========== INTERNAL ERROR !! ============
Requesting :
full_url : /ROOT#?/content/poor/A/redirect_loop.html
method    : GET (0)
version   : HTTP/1.1
request#  : 373
headers   :
 - accept : '*/*'
 - connection : 'close'
 - content-length : '0'
 - host : '127.0.0.1:8001'
 - user-agent : 'cpp-httplib/0.5'
arguments :
Parsed :
url   : /content/poor/A/redirect_loop.html
acceptEncodingGzip : 0
has_range : 0
is_valid_url : 1
.............
[       OK ] ServerTest.500 (34 ms)
[ RUN      ] ServerTest.UserLanguageList
[       OK ] ServerTest.UserLanguageList (34 ms)
[ RUN      ] ServerTest.UserLanguageControl
[       OK ] ServerTest.UserLanguageControl (40 ms)
[ RUN      ] ServerTest.SlashlessRootURLIsRedirectedToSlashfulURL
[       OK ] ServerTest.SlashlessRootURLIsRedirectedToSlashfulURL (35 ms)
[ RUN      ] ServerTest.EmptyRootIsNotRedirected
[       OK ] ServerTest.EmptyRootIsNotRedirected (68 ms)
[ RUN      ] ServerTest.RandomPageRedirectsToAnExistingArticle
[       OK ] ServerTest.RandomPageRedirectsToAnExistingArticle (35 ms)
[ RUN      ] ServerTest.RandomPageRedirectionsAreUriEncoded
[       OK ] ServerTest.RandomPageRedirectionsAreUriEncoded (34 ms)
[ RUN      ] ServerTest.NonEndpointUrlsAreRedirectedToContentUrls
[       OK ] ServerTest.NonEndpointUrlsAreRedirectedToContentUrls (49 ms)
[ RUN      ] ServerTest.RedirectionsToURLsWithSpecialSymbols
[       OK ] ServerTest.RedirectionsToURLsWithSpecialSymbols (34 ms)
[ RUN      ] ServerTest.BookMainPageIsRedirectedToArticleIndex
[       OK ] ServerTest.BookMainPageIsRedirectedToArticleIndex (35 ms)
[ RUN      ] ServerTest.RawEntry
[       OK ] ServerTest.RawEntry (56 ms)
[ RUN      ] ServerTest.HeadMethodIsSupported
[       OK ] ServerTest.HeadMethodIsSupported (127 ms)
[ RUN      ] ServerTest.TheResponseToHeadRequestHasNoBody
[       OK ] ServerTest.TheResponseToHeadRequestHasNoBody (130 ms)
[ RUN      ] ServerTest.HeadersAreTheSameInResponsesToHeadAndGetRequests
[       OK ] ServerTest.HeadersAreTheSameInResponsesToHeadAndGetRequests (201 ms)
[ RUN      ] ServerTest.CacheControlOfZimContent
[       OK ] ServerTest.CacheControlOfZimContent (65 ms)
[ RUN      ] ServerTest.CacheControlOfStaticContent
[       OK ] ServerTest.CacheControlOfStaticContent (55 ms)
[ RUN      ] ServerTest.CacheControlOfDynamicContent
[       OK ] ServerTest.CacheControlOfDynamicContent (87 ms)
[ RUN      ] ServerTest.ETagHeaderIsSetAsNeeded
[       OK ] ServerTest.ETagHeaderIsSetAsNeeded (130 ms)
[ RUN      ] ServerTest.ETagIsTheSameInResponsesToDifferentRequestsOfTheSameURL
[       OK ] ServerTest.ETagIsTheSameInResponsesToDifferentRequestsOfTheSameURL (203 ms)
[ RUN      ] ServerTest.ETagIsTheSameAcrossHeadAndGet
[       OK ] ServerTest.ETagIsTheSameAcrossHeadAndGet (201 ms)
[ RUN      ] ServerTest.DifferentServerInstancesProduceDifferentETagsForDynamicContent
[       OK ] ServerTest.DifferentServerInstancesProduceDifferentETagsForDynamicContent (176 ms)
[ RUN      ] ServerTest.DifferentServerInstancesProduceIdenticalETagsForZimContent
[       OK ] ServerTest.DifferentServerInstancesProduceIdenticalETagsForZimContent (134 ms)
[ RUN      ] ServerTest.CompressionInfluencesETag
[       OK ] ServerTest.CompressionInfluencesETag (135 ms)
[ RUN      ] ServerTest.ETagOfUncompressibleContentIsNotAffectedByAcceptEncoding
[       OK ] ServerTest.ETagOfUncompressibleContentIsNotAffectedByAcceptEncoding (149 ms)
[ RUN      ] ServerTest.IfNoneMatchRequestsWithMatchingETagResultIn304Responses
[       OK ] ServerTest.IfNoneMatchRequestsWithMatchingETagResultIn304Responses (352 ms)
[ RUN      ] ServerTest.IfNoneMatchRequestsWithMismatchingETagResultIn200Responses
[       OK ] ServerTest.IfNoneMatchRequestsWithMismatchingETagResultIn200Responses (275 ms)
[ RUN      ] ServerTest.ValidSingleRangeByteRangeRequestsAreHandledProperly
[       OK ] ServerTest.ValidSingleRangeByteRangeRequestsAreHandledProperly (42 ms)
[ RUN      ] ServerTest.InvalidAndMultiRangeByteRangeRequestsResultIn416Responses
[       OK ] ServerTest.InvalidAndMultiRangeByteRangeRequestsResultIn416Responses (45 ms)
[ RUN      ] ServerTest.ValidByteRangeRequestsOfZeroSizedEntriesResultIn416Responses
[       OK ] ServerTest.ValidByteRangeRequestsOfZeroSizedEntriesResultIn416Responses (37 ms)
[ RUN      ] ServerTest.RangeHasPrecedenceOverCompression
[       OK ] ServerTest.RangeHasPrecedenceOverCompression (37 ms)
[ RUN      ] ServerTest.RangeHeaderIsCaseInsensitive
[       OK ] ServerTest.RangeHeaderIsCaseInsensitive (40 ms)
[ RUN      ] ServerTest.suggestions
[       OK ] ServerTest.suggestions (39 ms)
[ RUN      ] ServerTest.suggestions_in_range
[       OK ] ServerTest.suggestions_in_range (46 ms)
[ RUN      ] ServerTest.viewerSettings
[       OK ] ServerTest.viewerSettings (173 ms)
[----------] 46 tests from ServerTest (5627 ms total)

[----------] 2 tests from CustomizedServerTest
[ RUN      ] CustomizedServerTest.NewResourcesCanBeAdded
Populating customized resources
Got /non-existent-item text/plain ./test/helloworld.txt
Got / text/html ./test/welcome.html
Got /skin/index.css application/json ./test/helloworld.txt
Got /zimfile/A/Ray_Charles ray/charles ./test/welcome.html
Got /content/zimfile/A/Ray_Charles charles/ray ./test/welcome.html
Got /search text/html ./test/helloworld.txt
Done populating customized resources
[       OK ] CustomizedServerTest.NewResourcesCanBeAdded (34 ms)
[ RUN      ] CustomizedServerTest.ContentOfAnyServableUrlCanBeOverriden
Populating customized resources
Got /non-existent-item text/plain ./test/helloworld.txt
Got / text/html ./test/welcome.html
Got /skin/index.css application/json ./test/helloworld.txt
Got /zimfile/A/Ray_Charles ray/charles ./test/welcome.html
Got /content/zimfile/A/Ray_Charles charles/ray ./test/welcome.html
Got /search text/html ./test/helloworld.txt
Done populating customized resources
[       OK ] CustomizedServerTest.ContentOfAnyServableUrlCanBeOverriden (37 ms)
[----------] 2 tests from CustomizedServerTest (71 ms total)

[----------] Global test environment tear-down
[==========] 50 tests from 3 test suites ran. (5749 ms total)
[  PASSED  ] 49 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] ServerTest.404

 1 FAILED TEST
----------------------------------- stderr -----------------------------------
===== Unhandled error : Entry redirect_loop.html is a redirect entry.
==============================================================================


Summary of Failures:

18/20 libkiwix:server           FAIL             5.76s   exit status 1

Ok:                19
Fail:              1
dh_auto_test: error: cd obj-x86_64-linux-gnu && DEB_PYTHON_INSTALL_LAYOUT=deb LC_ALL=C.UTF-8 MESON_TESTTHREADS=2 meson test --verbose -t 3 returned exit code 1
make[1]: *** [debian/rules:11: override_dh_auto_test] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:5: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
--------------------------------------------------------------------------------

#1134293#10
Date:
2026-05-11 06:39:36 UTC
From:
To:
Thank you for the bug report.

It has been tracked upstream at
https://github.com/kiwix/libkiwix/issues/1291

The compilation bug is now fixed and part of the libkiwix 14.2.1 release.

This release should be packaged though.

#1134293#15
Date:
2026-05-30 15:18:11 UTC
From:
To:
After libzim 9.7.0 has been established in the archive, I am going to
upload a libkiwix NMU with the new upstream version and an additional
fix for this. The changes are in git now.

#1134293#20
Date:
2026-05-30 18:55:59 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
libkiwix, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1134293@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Bastian Germann <bage@debian.org> (supplier of updated libkiwix package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sat, 30 May 2026 16:18:33 +0200
Source: libkiwix
Architecture: source
Version: 14.2.1-0.1
Distribution: unstable
Urgency: medium
Maintainer: Kunal Mehta <legoktm@debian.org>
Changed-By: Bastian Germann <bage@debian.org>
Closes: 1092348 1134293
Changes:
 libkiwix (14.2.1-0.1) unstable; urgency=medium
 .
   * Non-maintainer upload
   * New upstream version 14.2.1 (Closes: #1092348)
   * d/copyright: Adjust to new upstream version
   * Remove fragile mtime assertion (Closes: #1134293)
Checksums-Sha1:
 d187650a6fa763bc1c438190b2ac38e6381cb84f 1914 libkiwix_14.2.1-0.1.dsc
 7c0b3b4b96b1ea0a876a42ebcbd3f3561ec2d039 1124780 libkiwix_14.2.1.orig.tar.xz
 948aeff96efc1ad12e62000f555cf6091df183bc 11124 libkiwix_14.2.1-0.1.debian.tar.xz
 0a8ecc26051b54fd470d0f4c4289a317d4116b4a 8548 libkiwix_14.2.1-0.1_source.buildinfo
Checksums-Sha256:
 c45ff08dd34b0d36b658f3a7c884c1ef0e8eb77a84a2a58a7002a5e26f884c02 1914 libkiwix_14.2.1-0.1.dsc
 2c3218ee722c626e7a32156f76167089f01732f5a9a69e198fce363bc547b6f7 1124780 libkiwix_14.2.1.orig.tar.xz
 95de4e0f1329d5699440ac61b1a4dc04742a88415da0ac6658b30e6851aeb4b3 11124 libkiwix_14.2.1-0.1.debian.tar.xz
 420a10f2a54ebe0739adfe5defd77d7b172c62ca37136da59ca6e5542db917a1 8548 libkiwix_14.2.1-0.1_source.buildinfo
Files:
 797a3d722fa69853736a7995b04e79fb 1914 libs optional libkiwix_14.2.1-0.1.dsc
 ce36761cbc186380acb2abbe9050049f 1124780 libs optional libkiwix_14.2.1.orig.tar.xz
 806b840283297a7936e7325099e898a5 11124 libs optional libkiwix_14.2.1-0.1.debian.tar.xz
 03b26a3126e5f3439e45209d7a2d43ce 8548 libs optional libkiwix_14.2.1-0.1_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQHEBAEBCgAuFiEEQGIgyLhVKAI3jM5BH1x6i0VWQxQFAmobLjQQHGJhZ2VAZGVi
aWFuLm9yZwAKCRAfXHqLRVZDFDxuC/oDQNiZZn7G3Xe7aJ0i1EwwKlipiuaGP2DS
Lvprp6LRp26rnrlWSPY8ql7f80YutzobR5xoBfCY//BoXZbPdGnvBakp+RoXs5qU
fojkCq9zJQXzLQezI/GWEgKhbUOL31JUrJEccCDglbOUIpkOM9RFNuWRxaIwYoXt
IJCk73Bku0MsiKqlIZutydpoIVRooyIyNuh3tJmTOzVJ5RPCmYs0UDWqzl5Het0g
utuwEiqR7HlRCHFn0xeVo9TdLihh5b7T5TYKazKV0388joY+6E7Qbz9E0PYr5a+R
2N9Th45U4DczPAHMNoyIfSxLtRIpZluVcabaJ+mcjFOq43nFUeja4XM1Bz4C4BGP
i+FDDRHyRVkavINZPpa8hACfrAPEY4nYvNTfu68q6rPTqIhU+EusvGP1I03lS82M
pFPBcqUD+/33dVUA2a8HeQrnEyFlu2NFtrFaO2KuCJHtKiB/uoUGwD0YzNjQeIGu
uWg0RmC7FNyfu+jXQ9cU0wcyfrulZFs=
=85Dh
-----END PGP SIGNATURE-----